
reg_errcode_t
re_search_internal(regex_t *preg,char *string,Idx length,Idx start,Idx last_start,Idx stop,
                  size_t nmatch,regmatch_t *pmatch,int eflags)

{
  byte bVar1;
  anon_union_4_5_a39f51ca_for_opr *paVar2;
  re_dfa_t *prVar3;
  anon_union_4_5_a39f51ca_for_opr preg_00;
  anon_union_4_5_a39f51ca_for_opr aVar4;
  code *pcVar5;
  int *piVar6;
  anon_union_4_5_a39f51ca_for_opr aVar7;
  uint uVar8;
  code *pcVar9;
  code *pcVar10;
  code *pcVar11;
  code *pcVar12;
  code *pcVar13;
  re_dfastate_t **pprVar14;
  anon_union_4_5_a39f51ca_for_opr aVar15;
  anon_union_4_5_a39f51ca_for_opr aVar16;
  Idx IVar17;
  anon_union_4_5_a39f51ca_for_opr *paVar18;
  bool bVar36;
  regmatch_t *prVar19;
  re_context_type rVar20;
  reg_errcode_t rVar21;
  char cVar37;
  bitset_word_t bVar22;
  re_state_table_entry *prVar23;
  byte *pbVar24;
  re_bitset_ptr_t pbVar25;
  uint uVar26;
  wctype_t *pwVar27;
  re_node_set *prVar28;
  re_sub_match_top_t **pprVar29;
  re_sub_match_top_t *prVar30;
  re_sub_match_top_t *prVar31;
  undefined1 *puVar32;
  int iVar33;
  reg_errcode_t rVar34;
  re_dfastate_t *prVar35;
  int *piVar38;
  anon_union_4_5_a39f51ca_for_opr aVar39;
  anon_union_4_5_a39f51ca_for_opr aVar40;
  anon_union_4_5_a39f51ca_for_opr aVar41;
  re_context_type *prVar42;
  anon_union_4_5_a39f51ca_for_opr *paVar43;
  wchar_t *pwVar44;
  char *pattern;
  anon_union_4_5_a39f51ca_for_opr aVar45;
  anon_union_4_5_a39f51ca_for_opr aVar46;
  regoff_t rVar47;
  reg_errcode_t rVar48;
  anon_union_4_5_a39f51ca_for_opr aVar49;
  uchar *puVar50;
  re_dfa_t *prVar51;
  re_dfa_t *prVar52;
  reg_syntax_t syntax;
  re_token_t *prVar53;
  anon_union_4_5_a39f51ca_for_opr *paVar54;
  int iVar55;
  anon_union_4_5_a39f51ca_for_opr aVar56;
  wint_t *pwVar57;
  re_dfa_t *unaff_s4;
  int iVar58;
  anon_union_4_5_a39f51ca_for_opr unaff_s5;
  re_dfa_t *prVar59;
  uint uVar60;
  anon_union_4_5_a39f51ca_for_opr unaff_s7;
  int iVar61;
  undefined *puVar62;
  anon_union_4_5_a39f51ca_for_opr unaff_s8;
  undefined8 uVar63;
  anon_union_4_5_a39f51ca_for_opr aStack_218;
  reg_errcode_t rStack_20c;
  reg_errcode_t rStack_208;
  re_node_set rStack_204;
  anon_union_4_5_a39f51ca_for_opr aStack_1f8;
  anon_union_4_5_a39f51ca_for_opr aaStack_1f4 [6];
  int iStack_1dc;
  int iStack_1d8;
  int iStack_1d4;
  anon_union_4_5_a39f51ca_for_opr aStack_1cc;
  anon_union_4_5_a39f51ca_for_opr aStack_1c8;
  anon_union_4_5_a39f51ca_for_opr aStack_1c4;
  anon_union_4_5_a39f51ca_for_opr aStack_1c0;
  uint uStack_1b8;
  undefined1 uStack_1b0;
  byte bStack_1af;
  byte bStack_1ae;
  char cStack_1ad;
  int iStack_1a8;
  char *pcStack_1a4;
  anon_union_4_5_a39f51ca_for_opr aStack_1a0;
  anon_union_4_5_a39f51ca_for_opr *paStack_19c;
  anon_union_4_5_a39f51ca_for_opr aStack_198;
  anon_union_4_5_a39f51ca_for_opr aStack_194;
  re_dfa_t *prStack_190;
  anon_union_4_5_a39f51ca_for_opr aStack_18c;
  re_dfa_t *prStack_188;
  anon_union_4_5_a39f51ca_for_opr aStack_184;
  anon_union_4_5_a39f51ca_for_opr aStack_180;
  code *pcStack_17c;
  anon_union_4_5_a39f51ca_for_opr local_150;
  anon_union_4_5_a39f51ca_for_opr local_148;
  int *local_144;
  anon_union_4_5_a39f51ca_for_opr local_138;
  int local_118;
  Idx match_first;
  reg_errcode_t err;
  reg_errcode_t err_1;
  re_node_set dest_nodes;
  anon_union_4_5_a39f51ca_for_opr local_c4;
  re_match_context_t mctx;
  
  preg_00 = *(anon_union_4_5_a39f51ca_for_opr *)PTR___stack_chk_guard_00079c10;
  prVar59 = preg->buffer;
  aVar45.sbcset = (re_bitset_ptr_t)0x0;
  prVar51 = (re_dfa_t *)start;
  (*(code *)PTR_memset_00079b00)(&mctx,0,0x88);
  local_148 = (anon_union_4_5_a39f51ca_for_opr)preg->fastmap;
  if ((re_dfa_t *)local_148.sbcset != (re_dfa_t *)0x0) {
    if ((preg->field_0x1c & 0x10) == 0) {
      local_148.sbcset = (re_bitset_ptr_t)0x0;
    }
    else if (start == last_start) {
      local_148.sbcset = (re_bitset_ptr_t)0x0;
    }
    else if ((char)preg->field_0x1c < '\0') {
      local_148.sbcset = (re_bitset_ptr_t)0x0;
    }
  }
  if (preg->re_nsub < nmatch) {
    local_118 = (nmatch - 1) - preg->re_nsub;
  }
  else {
    local_118 = 0;
  }
  aStack_1a0.idx = start;
  paStack_19c = (anon_union_4_5_a39f51ca_for_opr *)preg;
  local_c4 = unaff_s8;
  mctx.dfa = prVar59;
  if (preg->used == 0) {
    local_150.idx = 1;
  }
  else if (prVar59->init_state == (re_dfastate_t *)0x0) {
    local_150.idx = 1;
  }
  else if (prVar59->init_state_word == (re_dfastate_t *)0x0) {
    local_150.idx = 1;
  }
  else if (prVar59->init_state_nl == (re_dfastate_t *)0x0) {
    local_150.idx = 1;
  }
  else {
    aVar45 = (anon_union_4_5_a39f51ca_for_opr)prVar59->init_state_begbuf;
    if ((re_dfa_t *)aVar45.sbcset == (re_dfa_t *)0x0) {
      local_150.idx = 1;
    }
    else {
      aVar4.idx = last_start;
      if (((((prVar59->init_state->nodes).nelem == 0) &&
           ((prVar59->init_state_word->nodes).nelem == 0)) &&
          (((prVar59->init_state_nl->nodes).nelem == 0 || ((preg->field_0x1c & 1) == 0)))) &&
         ((aVar4.idx = start, start != 0 &&
          (start = last_start, aVar4.idx = last_start, last_start != 0)))) {
        local_150.idx = 1;
        aStack_1a0.idx = last_start;
      }
      else {
        last_start = aVar4.idx;
        aVar4.sbcset = (re_bitset_ptr_t)(nmatch - local_118);
        if ((re_dfa_t *)aVar4.sbcset == (re_dfa_t *)0x0) {
          paVar54 = (anon_union_4_5_a39f51ca_for_opr *)(uint)(prVar59->nbackref != 0);
        }
        else {
          paVar54 = (anon_union_4_5_a39f51ca_for_opr *)0x1;
        }
        puVar50 = preg->translate;
        mctx.input.icase = (uchar)((preg->syntax << 9) >> 0x1f);
        mctx.input.mb_cur_max = prVar59->mb_cur_max;
        aVar46.sbcset = (re_bitset_ptr_t)(prVar59->nodes_len + 1);
        if (aVar46.idx < mctx.input.mb_cur_max) {
          aVar46 = (anon_union_4_5_a39f51ca_for_opr)mctx.input.mb_cur_max;
        }
        aVar49.idx._0_3_ = 0;
        aVar49.idx._3_1_ = ((re_bitset_ptr_t)(length + 1)).idx < aVar46.idx;
        prVar51 = (re_dfa_t *)0x1;
        mctx.input.mbs_allocated = mctx.input.icase;
        if (puVar50 != (uchar *)0x0) {
          mctx.input.mbs_allocated = 1;
        }
        mctx.input.is_utf8 = (uchar)((uint)(*(int *)&prVar59->field_0x58 << 2) >> 0x1f);
        mctx.input.map_notascii = (uchar)((uint)(*(int *)&prVar59->field_0x58 << 3) >> 0x1f);
        aVar45.sbcset = ((re_bitset_ptr_t)(length + 1)).sbcset;
        if ((re_dfa_t *)aVar49.sbcset == (re_dfa_t *)0x0) {
          aVar45 = aVar46;
        }
        mctx.input.raw_mbs = (uchar *)string;
        mctx.input.raw_len = length;
        mctx.input.len = length;
        mctx.input.raw_stop = length;
        mctx.input.stop = length;
        mctx.input.trans = puVar50;
        local_150.idx = re_string_realloc_buffers(&mctx.input,aVar45.idx);
        aVar46.idx = start;
        paVar18 = paVar54;
        stop = stop;
        if ((re_dfa_t *)local_150.sbcset != (re_dfa_t *)0x0) goto LAB_000557e4;
        mctx.input.word_char = prVar59->word_char;
        mctx.input.word_ops_used = (uchar)((uint)(*(int *)&prVar59->field_0x58 << 4) >> 0x1f);
        paVar2 = (anon_union_4_5_a39f51ca_for_opr *)0x0;
        mctx.input.valid_len = (Idx)paVar2;
        if ((mctx.input.mbs_allocated == '\0') &&
           (mctx.input.mbs = (uchar *)string, prVar59->mb_cur_max < 2)) {
          mctx.input.valid_len = length;
        }
        mctx.input.stop = stop;
        mctx.input.raw_stop = stop;
        mctx.input.newline_anchor = (uchar)((uint)(*(int *)&preg->field_0x1c << 7) >> 0x1f);
        iVar55 = prVar59->nbackref;
        aVar56.idx = iVar55 * 2;
        mctx.eflags = eflags;
        mctx.match_last = -1;
        mctx.input.valid_raw_len = mctx.input.valid_len;
        if ((int)aVar56 < 1) {
LAB_000559f0:
          mctx.max_mb_elem_len = 1;
          mctx.abkref_ents = aVar56.idx;
          mctx.asub_tops = aVar56.idx;
          if ((aVar4.sbcset < (re_dfa_t *)0x2) && ((prVar59->field_0x58 & 0x40) == 0)) {
            mctx.state_log = (re_dfastate_t **)0x0;
LAB_00055a40:
            mctx.input.tip_context = 6;
            if ((eflags & 1U) != 0) {
              mctx.input.tip_context = 4;
            }
            aVar39.idx = 1;
            aVar40.idx = start;
            if (last_start < start) {
              aVar39.idx = -1;
              aVar40.idx = last_start;
            }
            aVar41.idx = last_start;
            if (last_start <= start) {
              aVar41.idx = start;
            }
            iVar55 = prVar59->mb_cur_max;
            rVar20 = 8;
            if ((re_dfa_t *)local_148.sbcset != (re_dfa_t *)0x0) {
              if (iVar55 == 1) {
                paVar43 = (anon_union_4_5_a39f51ca_for_opr *)0x4;
              }
              else {
                paVar43 = paVar2;
                if ((-1 < (int)(preg->syntax << 9)) && (puVar50 == (uchar *)0x0)) {
                  paVar43 = (anon_union_4_5_a39f51ca_for_opr *)0x4;
                }
              }
              aVar45.sbcset = (re_bitset_ptr_t)0x0;
              if (start <= last_start) {
                aVar45.idx = 2;
              }
              rVar20 = (uint)(puVar50 != (uchar *)0x0) | (uint)paVar43 | aVar45.ctx_type;
            }
            match_first = start;
            if (start < aVar40.idx) {
              local_150.idx = 1;
              stop = aVar56.idx;
            }
            else {
              aVar46.idx._0_3_ = 0;
              aVar46.idx._3_1_ = last_start < start;
              if (aVar41.idx < start) {
                local_150.idx = 1;
                stop = aVar56.idx;
              }
              else {
                piVar38 = &match_first;
                if ((re_dfa_t *)aVar46.sbcset != (re_dfa_t *)0x0) {
                  piVar38 = (int *)0x0;
                }
                pcVar5 = (code *)(PTR_DAT_000799a4 + -0x2b7c);
                piVar6 = (int *)(PTR_s_nt0_000795b8 + (rVar20 - 4) * 4 + 0x6e38);
LAB_00055b44:
                if (rVar20 - 4 < 5) {
                    /* WARNING: Could not emulate address calculation at 0x00054920 */
                    /* WARNING: Treating indirect jump as call */
                  rVar21 = (*(code *)(&_gp + *piVar6))();
                  return rVar21;
                }
                last_start = (Idx)&mctx;
                prVar52 = prVar51;
                while( true ) {
                  aVar46.idx = match_first;
                  uVar8 = match_first - mctx.input.raw_mbs_idx;
                  aVar49 = (anon_union_4_5_a39f51ca_for_opr)eflags;
                  paVar18 = paVar2;
                  stop = local_148.idx;
                  unaff_s4 = (re_dfa_t *)length;
                  unaff_s5 = aVar39;
                  unaff_s7 = aVar41;
                  if ((uint)mctx.input.valid_raw_len <= uVar8) {
                    aVar45.idx = match_first;
                    local_150.sbcset = (re_bitset_ptr_t)(*pcVar5)(last_start);
                    prVar51 = prVar52;
                    if ((re_dfa_t *)local_150.sbcset != (re_dfa_t *)0x0) goto LAB_000557e4;
                    uVar8 = (int)aVar46.sbcset - mctx.input.raw_mbs_idx;
                  }
                  if (aVar46.idx < length) {
                    uVar8 = (uint)mctx.input.mbs[uVar8];
                  }
                  else {
                    uVar8 = 0;
                  }
                  aVar56.sbcset = aVar46.sbcset + aVar39.sbcset;
                  aVar46.sbcset = aVar56.sbcset;
                  if (*(char *)((int)local_148.sbcset + uVar8) != '\0') break;
                  prVar51 = prVar52;
                  match_first = aVar56.idx;
                  if (aVar56.idx < aVar40.idx) {
                    local_150.idx = 1;
                    goto LAB_000557e4;
                  }
                  aVar46.idx._0_3_ = 0;
                  aVar46.idx._3_1_ = aVar41.idx < aVar56.idx;
                  if ((re_dfa_t *)aVar46.sbcset != (re_dfa_t *)0x0) {
                    local_150.idx = 1;
                    goto LAB_000557e4;
                  }
                }
                while( true ) {
                  aVar45.idx = match_first;
                  aVar49 = (anon_union_4_5_a39f51ca_for_opr)eflags;
                  aVar7.sbcset = (re_bitset_ptr_t)(*pcVar5)(&mctx);
                  aVar15 = (anon_union_4_5_a39f51ca_for_opr)mctx.dfa;
                  aVar56.idx = mctx.input.cur_idx;
                  prVar51 = prVar52;
                  local_150.sbcset = aVar7.sbcset;
                  if ((re_dfa_t *)aVar7.sbcset != (re_dfa_t *)0x0) goto LAB_000557e4;
                  if (((iVar55 != 1) && (mctx.input.valid_len != 0)) &&
                     (*mctx.input.wcs == 0xffffffff)) goto LAB_00055b1c;
                  mctx.max_mb_elem_len = 0;
                  mctx.nbkref_ents = 0;
                  mctx.state_log_top = 0;
                  local_138.idx = mctx.input.cur_idx;
                  err = _REG_NOERROR;
                  unaff_s7 = (anon_union_4_5_a39f51ca_for_opr)(mctx.dfa)->init_state;
                  aVar49 = (anon_union_4_5_a39f51ca_for_opr)mctx.eflags;
                  aVar46 = aVar15;
                  if ((*(byte *)(unaff_s7.idx + 0x34) & 1) == 0) break;
                  aVar45.sbcset = (re_bitset_ptr_t)(mctx.input.cur_idx + -1);
                  prVar51 = (re_dfa_t *)re_string_context_at(&mctx.input,aVar45.idx,mctx.eflags);
                  if (((uint)prVar51 & 1) == 0) {
                    if (prVar51 == (re_dfa_t *)0x0) break;
                    if (((uint)prVar51 & 6) == 6) {
                      unaff_s7 = (anon_union_4_5_a39f51ca_for_opr)
                                 ((re_dfa_t *)aVar15.idx)->init_state_begbuf;
                      goto LAB_00054d1c;
                    }
                    if (((uint)prVar51 & 2) != 0) {
                      unaff_s7 = (anon_union_4_5_a39f51ca_for_opr)
                                 ((re_dfa_t *)aVar15.idx)->init_state_nl;
                      goto LAB_00054d1c;
                    }
                    prVar52 = prVar51;
                    if (((uint)prVar51 & 4) == 0) break;
                    aVar49 = (anon_union_4_5_a39f51ca_for_opr)
                             ((anon_union_4_5_a39f51ca_for_opr *)(unaff_s7.idx + 0x28))->mbcset;
                    aVar45 = aVar15;
                    unaff_s7.sbcset =
                         &re_acquire_state_context
                                    (&err,aVar15.sbcset,(re_node_set *)aVar49.mbcset,(uint)prVar51)
                          ->hash;
                    prVar52 = prVar51;
                    if ((re_dfa_t *)unaff_s7.sbcset != (re_dfa_t *)0x0) break;
                    if (err == _REG_ESPACE) goto LAB_00055914;
                  }
                  else {
                    unaff_s7 = (anon_union_4_5_a39f51ca_for_opr)
                               ((re_dfa_t *)aVar15.idx)->init_state_word;
LAB_00054d1c:
                    prVar52 = (re_dfa_t *)PTR_s_nt0_000795b8;
                    if ((re_dfa_t *)unaff_s7.sbcset != (re_dfa_t *)0x0) break;
                  }
                  prVar52 = (re_dfa_t *)(PTR_s_nt0_000795b8 + 0x6eb0);
                  aVar45.sbcset = (re_bitset_ptr_t)(PTR_s_nt0_000795b8 + 0x712c);
                  match_first = (*(code *)PTR___assert_fail_000799f8)
                                          (PTR_s_nt0_000795b8 + 0x71a0,aVar45.sbcset,0x435);
                  if ((re_bitset_ptr_t)match_first == aVar41.sbcset) {
                    if (match_first < length) {
                      uVar8 = (uint)(byte)string[match_first];
                    }
                    else {
                      uVar8 = 0;
                    }
                    if (puVar50 != (uchar *)0x0) {
                      uVar8 = (uint)puVar50[uVar8];
                    }
                    if (*(char *)((int)local_148.sbcset + uVar8) == '\0') {
                      local_150.idx = 1;
                      aVar49 = (anon_union_4_5_a39f51ca_for_opr)eflags;
                      prVar51 = prVar52;
                      goto LAB_000557e4;
                    }
                  }
                }
                prVar51 = prVar52;
                bVar36 = piVar38 != (int *)0x0;
                if ((mctx.state_log == (re_dfastate_t **)0x0) ||
                   (((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + aVar56.idx))->mbcset =
                         (re_charset_t *)unaff_s7, ((re_dfa_t *)aVar15.idx)->nbackref == 0)) {
LAB_00054d50:
                  if ((int)*(bin_tree_t **)(unaff_s7.idx + 0x34) << 4 < 0) {
                    if (((*(byte *)(unaff_s7.idx + 0x34) & 1) == 0) ||
                       (aVar45 = unaff_s7, aVar49 = aVar56,
                       IVar17 = check_halt_state_context(&mctx,unaff_s7.idx,aVar56.idx), IVar17 != 0
                       )) {
                      local_c4 = aVar56;
                      if (paVar54 == (anon_union_4_5_a39f51ca_for_opr *)0x0) goto LAB_00055dbc;
                      prVar52 = (re_dfa_t *)0x1;
                    }
                    else {
                      aVar56.idx = -1;
                      prVar52 = (re_dfa_t *)0x0;
                    }
                  }
                  else {
                    aVar56.idx = -1;
                    prVar52 = (re_dfa_t *)0x0;
                  }
                  pcVar9 = (code *)(PTR_DAT_000799a4 + -0x7144);
                  pcVar10 = (code *)(PTR_DAT_000799a4 + -0x1980);
                  pcVar11 = (code *)(PTR_DAT_000799a4 + -0x2f9c);
                  local_c4 = aVar56;
                  local_144 = piVar38;
                  while( true ) {
                    uVar63 = CONCAT44(mctx.input.valid_len,mctx.input.len);
                    unaff_s5.sbcset = (re_bitset_ptr_t)(mctx.input.cur_idx + 1);
                    aVar45.idx = mctx.input.cur_idx;
                    if (mctx.input.stop <= mctx.input.cur_idx) break;
                    if ((mctx.input.bufs_len <= unaff_s5.idx) &&
                       (mctx.input.bufs_len < mctx.input.len)) goto LAB_00054e94;
                    if (mctx.input.valid_len <= unaff_s5.idx) {
                      while ((int)((ulonglong)uVar63 >> 0x20) < (int)uVar63) {
LAB_00054e94:
                        aVar45.sbcset =
                             (re_bitset_ptr_t)
                             ((int)&((re_string_t *)&(aVar45.mbcset)->mbchars)->raw_mbs + 2);
                        err = (*pcVar9)(&mctx);
                        if (err == _REG_NOERROR) break;
                        aVar15 = aVar46;
                        if (err == _REG_ESPACE) goto LAB_00055914;
                        prVar51 = (re_dfa_t *)(PTR_s_nt0_000795b8 + 0x6eb0);
                        aVar49.idx = 0x46c;
                        aVar45.sbcset = (re_bitset_ptr_t)(PTR_s_nt0_000795b8 + 0x712c);
                        uVar63 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0);
                        prVar52 = prVar59;
                      }
                    }
                    prVar3 = mctx.dfa;
                    if ((int)*(bin_tree_t **)(unaff_s7.idx + 0x34) << 5 < 0) {
                      paVar18 = (anon_union_4_5_a39f51ca_for_opr *)prVar3;
                      if (0 < (int)(unaff_s7.mbcset)->range_ends) {
                        pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6fdc);
                        pcVar13 = (code *)(PTR_DAT_000799a4 + -0x6ef0);
                        stop = 0;
                        do {
                          last_start = ((anon_union_4_5_a39f51ca_for_opr *)
                                       ((unaff_s7.mbcset)->char_classes + stop))->idx;
                          prVar53 = prVar3->nodes;
                          uVar8 = *(uint *)&prVar53[last_start].field_0x4;
                          if ((uVar8 & 0x800) != 0) {
                            if ((uVar8 & 0xffc000) != 0) {
                              aVar45.idx = mctx.input.cur_idx;
                              uVar60 = (*pcVar13)(&mctx,mctx.input.cur_idx,mctx.eflags);
                              uVar8 = (uint)(*(int *)&prVar53[last_start].field_0x4 << 8) >> 0x16;
                              if ((uVar8 & 4) == 0) {
                                uVar26 = uVar60 & 1;
                                if ((uVar8 & 8) != 0) goto joined_r0x00054f40;
                              }
                              else {
                                uVar26 = uVar8 & 8;
                                if ((uVar60 & 1) == 0) goto LAB_000550a4;
joined_r0x00054f40:
                                if (uVar26 != 0) goto LAB_000550a4;
                              }
                              if ((((uVar8 & 0x20) != 0) && ((uVar60 & 2) == 0)) ||
                                 (((uVar8 & 0x80) != 0 &&
                                  (prVar51 = (re_dfa_t *)mctx.input.cur_idx, (uVar60 & 8) == 0))))
                              goto LAB_000550a4;
                            }
                            aVar49.sbcset = (re_bitset_ptr_t)&mctx;
                            aVar45.idx = last_start;
                            prVar51 = (re_dfa_t *)mctx.input.cur_idx;
                            iVar61 = (*pcVar11)(prVar3);
                            if (iVar61 != 0) {
                              aVar46.sbcset = (re_bitset_ptr_t)(iVar61 + mctx.input.cur_idx);
                              if (iVar61 <= mctx.max_mb_elem_len) {
                                iVar61 = mctx.max_mb_elem_len;
                              }
                              aVar45.sbcset = aVar46.sbcset;
                              mctx.max_mb_elem_len = iVar61;
                              err_1 = (*pcVar12)(&mctx);
                              rVar21 = err_1;
                              if (err_1 != _REG_NOERROR) goto LAB_00055e44;
                              aVar49.sbcset =
                                   (re_bitset_ptr_t)(prVar3->eclosures + prVar3->nexts[last_start]);
                              unaff_s4 = (re_dfa_t *)(aVar46.idx * 4);
                              last_start = (Idx)(mctx.state_log + aVar46.idx);
                              if (*(bitset_word_t *)last_start == 0) {
                                dest_nodes.alloc = *aVar49.sbcset;
                                dest_nodes.nelem =
                                     ((re_node_set *)&(aVar49.mbcset)->range_starts)->alloc;
                                dest_nodes.elems = (aVar49.mbcset)->range_ends;
                                prVar51 = (re_dfa_t *)
                                          (*pcVar13)(&mctx,(undefined1 *)(aVar46.idx + -1),
                                                     mctx.eflags);
                                aVar49.sbcset = (re_bitset_ptr_t)&dest_nodes;
                                aVar45 = (anon_union_4_5_a39f51ca_for_opr)prVar3;
                                prVar35 = re_acquire_state_context
                                                    (&err_1,prVar3,(re_node_set *)aVar49.mbcset,
                                                     (uint)prVar51);
                                ((re_string_t *)&((re_charset_t *)last_start)->mbchars)->raw_mbs =
                                     (uchar *)prVar35;
                              }
                              else {
                                aVar45 = (anon_union_4_5_a39f51ca_for_opr)
                                         ((anon_union_4_5_a39f51ca_for_opr *)
                                         (*(bitset_word_t *)last_start + 0x28))->mbcset;
                                err_1 = re_node_set_init_union
                                                  (&dest_nodes,(re_node_set *)aVar45.mbcset,
                                                   (re_node_set *)aVar49.mbcset);
                                rVar21 = err_1;
                                if (err_1 != _REG_NOERROR) goto LAB_00055e44;
                                prVar51 = (re_dfa_t *)
                                          (*pcVar13)(&mctx,(undefined1 *)(aVar46.idx + -1),
                                                     mctx.eflags);
                                pprVar14 = mctx.state_log + aVar46.idx;
                                aVar49.sbcset = (re_bitset_ptr_t)&dest_nodes;
                                aVar45 = (anon_union_4_5_a39f51ca_for_opr)prVar3;
                                prVar35 = re_acquire_state_context
                                                    (&err_1,prVar3,(re_node_set *)aVar49.mbcset,
                                                     (uint)prVar51);
                                *pprVar14 = prVar35;
                                (*(code *)PTR_free_00079c24)(dest_nodes.elems);
                              }
                              unaff_s4 = (re_dfa_t *)(mctx.state_log + aVar46.idx);
                              if ((unaff_s4->nodes == (re_token_t *)0x0) &&
                                 (rVar21 = err_1, err_1 != _REG_NOERROR)) goto LAB_00055e44;
                            }
                          }
LAB_000550a4:
                          stop = (int)&((re_string_t *)&((re_charset_t *)stop)->mbchars)->raw_mbs +
                                 1;
                        } while (stop < (int)(unaff_s7.mbcset)->range_ends);
                      }
                      err = _REG_NOERROR;
                    }
                    uVar8 = (uint)mctx.input.mbs[mctx.input.cur_idx];
                    mctx.input.cur_idx = mctx.input.cur_idx + 1;
                    do {
                      if (*(re_dfastate_t **)(unaff_s7.idx + 0x2c) != (re_dfastate_t *)0x0) {
                        aVar49 = (anon_union_4_5_a39f51ca_for_opr)
                                 ((anon_union_4_5_a39f51ca_for_opr *)
                                 (&(*(re_dfastate_t **)(unaff_s7.idx + 0x2c))->hash + uVar8))->
                                 mbcset;
LAB_000553a0:
                        aVar15 = aVar49;
                        if (mctx.state_log != (re_dfastate_t **)0x0) goto LAB_000553ac;
                        goto LAB_000553cc;
                      }
                      paVar18 = *(anon_union_4_5_a39f51ca_for_opr **)(unaff_s7.idx + 0x30);
                      if (paVar18 != (anon_union_4_5_a39f51ca_for_opr *)0x0) {
                        aVar45.sbcset = (re_bitset_ptr_t)(mctx.input.cur_idx + -1);
                        uVar60 = re_string_context_at(&mctx.input,aVar45.idx,mctx.eflags);
                        if ((uVar60 & 1) == 0) {
                          aVar49 = (anon_union_4_5_a39f51ca_for_opr)paVar18[uVar8].mbcset;
                        }
                        else {
                          paVar18 = paVar18 + uVar8 + 0x100;
                          aVar49 = (anon_union_4_5_a39f51ca_for_opr)paVar18->mbcset;
                        }
                        goto LAB_000553a0;
                      }
                      aVar45 = unaff_s7;
                      aVar49 = (anon_union_4_5_a39f51ca_for_opr)mctx.eflags;
                      iVar61 = (*pcVar10)(mctx.dfa);
                    } while (iVar61 != 0);
                    err = _REG_ESPACE;
                    rVar21 = err;
LAB_00055e44:
                    err = rVar21;
                    aVar46.sbcset = (re_bitset_ptr_t)0x0;
                    if (mctx.state_log == (re_dfastate_t **)0x0) {
                      aVar15.sbcset = aVar46.sbcset;
                      if (err != _REG_NOERROR) goto LAB_00055914;
                      break;
                    }
                    aVar49.sbcset = (re_bitset_ptr_t)0x0;
LAB_000553ac:
                    aVar45.sbcset = (re_bitset_ptr_t)&mctx;
                    aVar15.sbcset =
                         &merge_state_with_log
                                    (&err,(re_match_context_t *)aVar45.mbcset,aVar49.sbcset)->hash;
LAB_000553cc:
                    aVar46 = aVar15;
                    if ((re_dfa_t *)aVar15.sbcset == (re_dfa_t *)0x0) {
                      if (err != _REG_NOERROR) goto LAB_00055914;
                      if ((mctx.state_log == (re_dfastate_t **)0x0) ||
                         ((prVar52 != (re_dfa_t *)0x0 &&
                          (paVar54 == (anon_union_4_5_a39f51ca_for_opr *)0x0)))) break;
                      stop = (Idx)&mctx;
                      last_start = (Idx)&err;
                      paVar18 = (anon_union_4_5_a39f51ca_for_opr *)(PTR_DAT_000799a4 + 0x3684);
                      do {
                        pprVar14 = mctx.state_log + mctx.input.cur_idx;
                        IVar17 = mctx.input.cur_idx;
                        do {
                          IVar17 = IVar17 + 1;
                          aVar45.idx = mctx.state_log_top;
                          aVar46 = aVar15;
                          if (mctx.state_log_top < IVar17) goto LAB_00055da8;
                          mctx.input.cur_idx = mctx.input.cur_idx + 1;
                          pprVar14 = pprVar14 + 1;
                        } while (*pprVar14 == (re_dfastate_t *)0x0);
                        aVar49.sbcset = (re_bitset_ptr_t)0x0;
                        aVar45.sbcset = (re_bitset_ptr_t)stop;
                        aVar46.sbcset = (re_bitset_ptr_t)(*(code *)paVar18)(last_start);
                        if (err != _REG_NOERROR) {
                          if ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0) goto LAB_00055da8;
                          break;
                        }
                        aVar45.idx = mctx.state_log_top;
                      } while ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0);
                    }
                    aVar16.ctx_type = unaff_s7.ctx_type ^ aVar46.ctx_type;
                    aVar56 = unaff_s7;
                    aVar15 = local_138;
                    if ((bVar36) &&
                       (aVar56.ctx_type = aVar16.ctx_type, aVar15.sbcset = unaff_s5.sbcset,
                       (re_dfa_t *)aVar16.sbcset != (re_dfa_t *)0x0)) {
                      bVar36 = false;
                      aVar15 = local_138;
                    }
                    local_138 = aVar15;
                    unaff_s7 = aVar46;
                    if (((*(byte *)(aVar46.idx + 0x34) & 8) != 0) &&
                       (((*(byte *)(aVar46.idx + 0x34) & 1) == 0 ||
                        (aVar45 = aVar46, aVar49.idx = mctx.input.cur_idx,
                        IVar17 = check_halt_state_context(&mctx,aVar46.idx,mctx.input.cur_idx),
                        IVar17 != 0)))) {
                      unaff_s7 = aVar56;
                      local_c4.idx = mctx.input.cur_idx;
                      if (paVar54 == (anon_union_4_5_a39f51ca_for_opr *)0x0) goto LAB_00055dbc;
                      prVar52 = (re_dfa_t *)0x1;
                      local_144 = (int *)0x0;
                      unaff_s7 = aVar46;
                    }
                  }
LAB_00055da8:
                  if (local_144 != (int *)0x0) {
                    *local_144 = *local_144 + (int)local_138.sbcset;
                  }
                }
                else {
                  aVar46.sbcset = (re_bitset_ptr_t)&(unaff_s7.mbcset)->range_starts;
                  aVar49.sbcset = (re_bitset_ptr_t)0x0;
                  aVar45 = aVar46;
                  err = check_subexp_matching_top(&mctx,(re_node_set *)aVar46.mbcset,0);
                  local_c4.idx = err;
                  if ((re_dfa_t *)err == (re_dfa_t *)0x0) {
                    if ((*(byte *)(unaff_s7.idx + 0x34) & 2) == 0) {
                      aVar45 = aVar46;
                      bVar36 = false;
                    }
                    else {
                      aVar45 = aVar46;
                      err = transit_state_bkref(&mctx,(re_node_set *)aVar46.mbcset);
                      local_c4.idx = err;
                      if ((re_dfa_t *)err != (re_dfa_t *)0x0) goto LAB_00055dbc;
                      bVar36 = false;
                    }
                    goto LAB_00054d50;
                  }
                }
LAB_00055dbc:
                if ((re_dfa_t *)local_c4.sbcset == (re_dfa_t *)0xffffffff) {
LAB_00055b04:
                  match_ctx_clean(&mctx);
LAB_00055b1c:
                  match_first = aVar39.idx + match_first;
                  if (aVar40.idx <= match_first) goto code_r0x00055b38;
                  local_150.idx = 1;
                  goto LAB_000557e4;
                }
                if ((re_dfa_t *)local_c4.sbcset == (re_dfa_t *)&SUB_fffffffe) {
                  local_150.idx = 0xc;
                  goto LAB_000557e4;
                }
                mctx.match_last = local_c4.idx;
                if ((preg->field_0x1c & 8) == 0) {
                  if (aVar4.sbcset < (re_dfa_t *)0x2) {
                    if (prVar59->nbackref == 0) goto LAB_00055c08;
                    aVar45 = (anon_union_4_5_a39f51ca_for_opr)
                             ((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + local_c4.idx))->
                             mbcset;
                    aVar49 = local_c4;
                    mctx.last_node =
                         check_halt_state_context(&mctx,(re_dfastate_t *)aVar45.mbcset,local_c4.idx)
                    ;
                  }
                  else {
                    aVar45 = (anon_union_4_5_a39f51ca_for_opr)
                             ((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + local_c4.idx))->
                             mbcset;
                    aVar49 = local_c4;
                    mctx.last_node =
                         check_halt_state_context(&mctx,(re_dfastate_t *)aVar45.mbcset,local_c4.idx)
                    ;
                  }
                  if (aVar4.sbcset < (re_dfa_t *)0x2) {
LAB_00055c6c:
                    prVar52 = prVar51;
                    unaff_s4 = mctx.dfa;
                    if (prVar59->nbackref == 0) goto LAB_00055548;
                  }
                  else {
                    cVar37 = prVar59->field_0x58;
LAB_00055c20:
                    prVar52 = prVar51;
                    if (-1 < cVar37) goto LAB_00055c6c;
                  }
                  paVar18 = (anon_union_4_5_a39f51ca_for_opr *)mctx.last_node;
                  prVar3 = mctx.dfa;
                  unaff_s4 = prVar3;
                  if ((uint)local_c4 < (re_dfa_t *)0x3fffffff) {
                    aVar46.idx = (int)((int)&((re_string_t *)&(local_c4.mbcset)->mbchars)->raw_mbs +
                                      1) * 4;
                    unaff_s5.sbcset = (re_bitset_ptr_t)(*(code *)PTR_malloc_00079b54)(aVar46.sbcset)
                    ;
                    if ((re_dfa_t *)unaff_s5.sbcset == (re_dfa_t *)0x0) {
LAB_00055b9c:
                      (*(code *)PTR_free_00079c24)(unaff_s5.sbcset);
                      local_150.idx = 0xc;
                      prVar51 = prVar52;
                    }
                    else {
                      aVar45.sbcset = (re_bitset_ptr_t)&dest_nodes;
                      if (prVar3->nbackref == 0) {
                        dest_nodes.nelem = 0;
                        dest_nodes.elems = &paVar18->idx;
                        dest_nodes.alloc = (Idx)unaff_s5.sbcset;
                        last_start = sift_states_backward(&mctx,(re_sift_context_t *)aVar45.mbcset);
                        (*(code *)PTR_free_00079c24)(0);
                        if ((re_dfa_t *)last_start == (re_dfa_t *)0x0) {
                          aVar46.mbcset = (re_charset_t *)*unaff_s5.sbcset;
                          if ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0) {
LAB_00055b70:
                            (*(code *)PTR_free_00079c24)(unaff_s5.sbcset);
                            (*(code *)PTR_free_00079c24)(aVar46.sbcset);
                            prVar51 = prVar52;
                            goto LAB_00055b04;
                          }
LAB_00055528:
                          (*(code *)PTR_free_00079c24)(mctx.state_log);
                          prVar51 = prVar52;
                          unaff_s4 = prVar3;
                          mctx.match_last = local_c4.idx;
                          mctx.last_node = (Idx)paVar18;
                          mctx.state_log = (re_dfastate_t **)unaff_s5.sbcset;
                          goto LAB_00055548;
                        }
LAB_00055acc:
                        aVar46.sbcset = (re_bitset_ptr_t)0x0;
                        prVar51 = prVar52;
                        unaff_s4 = prVar3;
                      }
                      else {
                        aVar46.sbcset =
                             (re_bitset_ptr_t)(*(code *)PTR_malloc_00079b54)(aVar46.sbcset);
                        if ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0) goto LAB_00055b9c;
                        unaff_s7.sbcset = (re_bitset_ptr_t)&dest_nodes;
                        pcVar9 = (code *)(PTR_DAT_000799a4 + 0x421c);
                        pcVar10 = (code *)(PTR_DAT_000799a4 + -0x6bc0);
                        prVar51 = prVar52;
                        while( true ) {
                          prVar52 = (re_dfa_t *)(local_c4.idx + 1);
                          stop = (int)prVar52 * 4;
                          aVar49.idx = stop;
                          (*(code *)PTR_memset_00079b00)(aVar46.sbcset,0);
                          aVar45.sbcset = unaff_s7.sbcset;
                          dest_nodes.alloc = (Idx)unaff_s5.sbcset;
                          dest_nodes.nelem = (Idx)aVar46.sbcset;
                          dest_nodes.elems = (Idx *)paVar18;
                          last_start = (*pcVar9)(&mctx);
                          (*(code *)PTR_free_00079c24)(0);
                          unaff_s4 = prVar52;
                          if ((re_dfa_t *)last_start != (re_dfa_t *)0x0) break;
                          if ((*unaff_s5.sbcset != 0) || (stop = stop + -4, *aVar46.sbcset != 0)) {
                            aVar45.sbcset = unaff_s5.sbcset;
                            aVar49.sbcset = aVar46.sbcset;
                            last_start = merge_state_array(prVar3,(re_dfastate_t **)unaff_s5.sbcset,
                                                           (re_dfastate_t **)aVar46.sbcset,
                                                           (Idx)prVar52);
                            (*(code *)PTR_free_00079c24)(aVar46.sbcset);
                            if ((re_dfa_t *)last_start != (re_dfa_t *)0x0) goto LAB_00055acc;
                            goto LAB_00055528;
                          }
                          stop = (Idx)(mctx.state_log + (int)&prVar52[-1].lock.__align + 0x17);
                          do {
                            while( true ) {
                              local_c4.sbcset = (re_bitset_ptr_t)(local_c4.idx + -1);
                              if (local_c4.idx < 0) goto LAB_00055b70;
                              aVar45 = (anon_union_4_5_a39f51ca_for_opr)
                                       ((anon_union_4_5_a39f51ca_for_opr *)(stop + -4))->idx;
                              if ((re_dfa_t *)aVar45.sbcset != (re_dfa_t *)0x0) break;
                              stop = stop + -4;
                            }
                            stop = stop + -4;
                          } while ((*(byte *)(aVar45.idx + 0x34) & 8) == 0);
                          paVar18 = (anon_union_4_5_a39f51ca_for_opr *)
                                    (*pcVar10)(&mctx,aVar45.sbcset,local_c4.sbcset);
                          prVar51 = prVar52;
                        }
                      }
                      (*(code *)PTR_free_00079c24)(unaff_s5.sbcset);
                      (*(code *)PTR_free_00079c24)(aVar46.sbcset);
                      local_150.idx = last_start;
                      if ((re_dfa_t *)last_start == (re_dfa_t *)0x1) goto LAB_00055b04;
                    }
                  }
                  else {
                    local_150.idx = 0xc;
                    prVar51 = prVar52;
                  }
                  goto LAB_000557e4;
                }
                if (prVar59->nbackref != 0) {
                  aVar45 = (anon_union_4_5_a39f51ca_for_opr)
                           ((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + local_c4.idx))->
                           mbcset;
                  aVar49 = local_c4;
                  mctx.last_node =
                       check_halt_state_context(&mctx,(re_dfastate_t *)aVar45.mbcset,local_c4.idx);
                  goto LAB_00055c6c;
                }
LAB_00055c08:
                if (((preg->field_0x1c & 8) == 0) && ((re_dfa_t *)0x1 < aVar4.sbcset)) {
                  cVar37 = prVar59->field_0x58;
                  goto LAB_00055c20;
                }
LAB_00055548:
                if ((re_dfa_t *)aVar4.sbcset == (re_dfa_t *)0x0) goto LAB_000557e4;
                if (aVar4.sbcset < (re_dfa_t *)0x2) {
                  pmatch->rm_so = 0;
                  pmatch->rm_eo = mctx.match_last;
                  goto LAB_000555ac;
                }
                prVar19 = pmatch + 1;
                do {
                  prVar19->rm_eo = -1;
                  prVar19->rm_so = -1;
                  prVar19 = prVar19 + 1;
                } while (prVar19 != pmatch + aVar4.idx);
                pmatch->rm_so = 0;
                pmatch->rm_eo = mctx.match_last;
                if ((preg->field_0x1c & 8) != 0) {
LAB_000555ac:
                  prVar19 = pmatch;
                  do {
                    aVar45.sbcset = (re_bitset_ptr_t)prVar19->rm_so;
                    if ((re_dfa_t *)aVar45.sbcset != (re_dfa_t *)0xffffffff) {
                      if (mctx.input.offsets_needed != '\0') {
                        rVar47 = mctx.input.valid_raw_len;
                        if (aVar45.sbcset != (re_bitset_ptr_t)mctx.input.valid_len) {
                          rVar47 = mctx.input.offsets[aVar45.idx];
                        }
                        prVar19->rm_so = rVar47;
                        rVar47 = mctx.input.valid_raw_len;
                        if (mctx.input.valid_len != prVar19->rm_eo) {
                          rVar47 = mctx.input.offsets[prVar19->rm_eo];
                        }
                        prVar19->rm_eo = rVar47;
                      }
                      prVar19->rm_so = prVar19->rm_so + match_first;
                      aVar45.sbcset = (re_bitset_ptr_t)(prVar19->rm_eo + match_first);
                      prVar19->rm_eo = (regoff_t)aVar45;
                    }
                    prVar19 = prVar19 + 1;
                  } while (prVar19 != pmatch + aVar4.idx);
                  if (0 < local_118) {
                    prVar19 = pmatch + aVar4.idx;
                    do {
                      prVar19->rm_so = -1;
                      prVar19->rm_eo = -1;
                      prVar19 = prVar19 + 1;
                    } while (prVar19 != pmatch + nmatch);
                  }
                  aVar49.idx = match_first;
                  prVar51 = (re_dfa_t *)pmatch;
                  local_150.sbcset = aVar7.sbcset;
                  if (prVar59->subexp_map != (Idx *)0x0) {
                    aVar49.sbcset = (re_bitset_ptr_t)(aVar4.idx + -1);
                    prVar52 = (re_dfa_t *)0x0;
                    prVar19 = pmatch;
                    while( true ) {
                      aVar45.idx = (int)prVar52 * 4;
                      if ((re_dfa_t *)aVar49.sbcset == prVar52) break;
                      if ((re_dfa_t *)prVar59->subexp_map[(int)prVar52] != prVar52) {
                        prVar19[1].rm_so =
                             pmatch[(int)((int)&((re_string_t *)
                                                &((re_dfa_t *)prVar59->subexp_map[(int)prVar52])->
                                                 nodes)->raw_mbs + 1)].rm_so;
                        prVar19[1].rm_eo = pmatch[prVar59->subexp_map[(int)prVar52] + 1].rm_eo;
                      }
                      prVar52 = (re_dfa_t *)((int)&((re_string_t *)&prVar52->nodes)->raw_mbs + 1);
                      prVar19 = prVar19 + 1;
                    }
                  }
                  goto LAB_000557e4;
                }
                if ((char)prVar59->field_0x58 < '\0') {
                  bVar36 = 0 < prVar59->nbackref;
                }
                else {
                  bVar36 = false;
                }
                aVar45.sbcset = (re_bitset_ptr_t)&mctx;
                aVar49.sbcset = aVar4.sbcset;
                prVar51 = (re_dfa_t *)pmatch;
                local_150.idx =
                     set_regs(preg,(re_match_context_t *)aVar45.mbcset,aVar4.ctx_type,pmatch,bVar36)
                ;
                if ((re_dfa_t *)local_150.sbcset == (re_dfa_t *)0x0) goto LAB_000555ac;
              }
            }
          }
          else if ((uint)mctx.input.bufs_len < 0x3fffffff) {
            mctx.state_log =
                 (re_dfastate_t **)(*(code *)PTR_malloc_00079b54)((mctx.input.bufs_len + 1) * 4);
            if (mctx.state_log != (re_dfastate_t **)0x0) goto LAB_00055a40;
            local_150.idx = 0xc;
            stop = aVar56.idx;
          }
          else {
            local_150.idx = 0xc;
            stop = aVar56.idx;
          }
        }
        else {
          unaff_s5.idx = iVar55 * 8;
          if (aVar56.sbcset < (re_dfa_t *)0xccccccd) {
            unaff_s4 = (re_dfa_t *)(*(code *)PTR_malloc_00079b54)(iVar55 * 0x28);
            mctx.bkref_ents = (re_backref_cache_entry *)unaff_s4;
            mctx.sub_tops = (re_sub_match_top_t **)(*(code *)PTR_malloc_00079b54)(unaff_s5.sbcset);
            if ((unaff_s4 != (re_dfa_t *)0x0) && (mctx.sub_tops != (re_sub_match_top_t **)0x0))
            goto LAB_000559f0;
          }
          local_150.idx = 0xc;
          stop = aVar56.idx;
        }
LAB_000557e4:
        (*(code *)PTR_free_00079c24)(mctx.state_log);
        preg = (regex_t *)aVar49;
        if (prVar59->nbackref != 0) {
          match_ctx_clean(&mctx);
          (*(code *)PTR_free_00079c24)(mctx.sub_tops);
          (*(code *)PTR_free_00079c24)(mctx.bkref_ents);
          preg = (regex_t *)aVar49;
        }
        re_string_destruct(&mctx.input);
        aStack_1a0 = aVar46;
        paStack_19c = paVar18;
      }
    }
  }
  if ((re_dfa_t *)preg_00.sbcset == *(re_dfa_t **)PTR___stack_chk_guard_00079c10) {
    return (reg_errcode_t)local_150.sbcset;
  }
  pcVar5 = re_compile_internal;
  puVar62 = PTR___stack_chk_fail_00079bd0;
  (*(code *)PTR___stack_chk_fail_00079bd0)();
  pcStack_1a4 = (char *)**(undefined4 **)(puVar62 + 0x23dac);
  rStack_20c = _REG_NOERROR;
  bVar1 = *(byte *)&((re_node_set *)&(preg_00.mbcset)->nequiv_classes)->alloc;
  (preg_00.mbcset)->char_classes = (wctype_t *)prVar51;
  (preg_00.mbcset)->range_ends = (wchar_t *)0x0;
  (preg_00.mbcset)->ncoll_syms = 0;
  *(byte *)&((re_node_set *)&(preg_00.mbcset)->nequiv_classes)->alloc = bVar1 & 9;
  aVar4.mbcset = (re_charset_t *)((re_string_t *)&(preg_00.mbcset)->mbchars)->raw_mbs;
  aStack_198.idx = last_start;
  aStack_194.idx = stop;
  prStack_190 = unaff_s4;
  aStack_18c = unaff_s5;
  prStack_188 = prVar59;
  aStack_184 = unaff_s7;
  aStack_180 = local_c4;
  pcStack_17c = pcVar5;
  if ((uint)((re_node_set *)&(preg_00.mbcset)->range_starts)->alloc < 0xa0) {
    aVar46.idx = 0xa0;
    aVar49 = (anon_union_4_5_a39f51ca_for_opr)preg;
    aVar4.sbcset = (re_bitset_ptr_t)(**(code **)(puVar62 + 0x23cf8))(aVar4.sbcset);
    if ((re_dfa_t *)aVar4.sbcset == (re_dfa_t *)0x0) {
      rVar21 = _REG_ESPACE;
      goto LAB_00056cfc;
    }
    ((re_node_set *)&(preg_00.mbcset)->range_starts)->alloc = 0xa0;
    ((re_string_t *)&(preg_00.mbcset)->mbchars)->raw_mbs = (uchar *)aVar4;
  }
  (preg_00.mbcset)->range_ends = (wchar_t *)0xa0;
  aVar49.idx = 0xa0;
  aVar46.sbcset = (re_bitset_ptr_t)0x0;
  (**(code **)(puVar62 + 0x23c9c))(aVar4.sbcset);
  *(int *)(aVar4.idx + 0x40) = 0x1f;
  pwVar44 = (wchar_t *)((int)&((re_string_t *)&((re_charset_t *)preg)->mbchars)->raw_mbs + 1);
  if (preg < (re_dfa_t *)0xaaaaaaa) {
    (aVar4.mbcset)->range_starts = pwVar44;
    bVar22 = (**(code **)(puVar62 + 0x23cf0))((int)pwVar44 * 8);
    *aVar4.sbcset = bVar22;
    if ((re_dfa_t *)preg == (re_dfa_t *)0x0) {
      aVar56.idx = 1;
    }
    else {
      aVar56.idx = 1;
      do {
        aVar56.ctx_type = aVar56.ctx_type << 1;
      } while (aVar56.sbcset <= preg);
    }
    aVar46 = aVar56;
    prVar23 = (re_state_table_entry *)(**(code **)(puVar62 + 0x23b8c))(0xc);
    (aVar4.mbcset)->nranges = (Idx)prVar23;
    *(undefined1 **)(aVar4.idx + 0x44) = (undefined1 *)(aVar56.idx + -1);
    iVar55 = (**(code **)(puVar62 + 0x23d2c))();
    *(int *)(aVar4.idx + 0x5c) = iVar55;
    pbVar24 = (byte *)(**(code **)(puVar62 + 0x23c2c))(0xe);
    if ((((*pbVar24 & 0xdf) == 0x55) && ((pbVar24[1] & 0xdf) == 0x54)) &&
       (aVar46.idx = 4, (pbVar24[2] & 0xdf) == 0x46)) {
      iVar55 = 3;
      if (pbVar24[3] == 0x2d) {
        iVar55 = 4;
      }
      aVar46.sbcset = (re_bitset_ptr_t)(*(int *)(puVar62 + 0x23754) + 0x71b4);
      iVar55 = (**(code **)(puVar62 + 0x23dfc))(pbVar24 + iVar55);
      if (iVar55 == 0) {
        *(byte *)(aVar4.idx + 0x58) = *(byte *)(aVar4.idx + 0x58) & 0xdf | 0x20;
      }
    }
    *(byte *)(aVar4.idx + 0x58) = *(byte *)(aVar4.idx + 0x58) & 0xef;
    if (1 < *(int *)(aVar4.idx + 0x5c)) {
      if ((*(byte *)(aVar4.idx + 0x58) & 0x20) == 0) {
        aVar46.idx = 1;
        pbVar25 = (re_bitset_ptr_t)(**(code **)(puVar62 + 0x23b8c))(0x20);
        *(re_bitset_ptr_t *)(aVar4.idx + 0x3c) = pbVar25;
        if (pbVar25 == (re_bitset_ptr_t)0x0) goto LAB_00056e5c;
        iVar55 = 0;
        do {
          uVar8 = iVar55 << 3;
          uVar60 = 0;
          do {
            uVar26 = (**(code **)(puVar62 + 0x23c88))(uVar8);
            if (uVar26 != 0xffffffff) {
              prVar42 = (re_context_type *)((int)*(re_bitset_ptr_t *)(aVar4.idx + 0x3c) + iVar55);
              aVar46.ctx_type = *prVar42;
              *prVar42 = aVar46.ctx_type | 1 << (uVar60 & 0x1f);
            }
            if (((uVar8 & 0xffffff80) == 0) && (uVar26 != uVar8)) {
              *(byte *)(aVar4.idx + 0x58) = *(byte *)(aVar4.idx + 0x58) & 0xef | 0x10;
            }
            uVar60 = uVar60 + 1;
            uVar8 = uVar8 + 1;
          } while (uVar60 != 0x20);
          iVar55 = iVar55 + 4;
        } while (iVar55 != 0x20);
      }
      else {
        *(re_bitset_ptr_t *)(aVar4.idx + 0x3c) =
             (re_bitset_ptr_t)(*(int *)(puVar62 + 0x23754) + 0x6ee4);
      }
    }
    if ((*aVar4.sbcset == 0) ||
       ((re_state_table_entry *)(aVar4.mbcset)->nranges == (re_state_table_entry *)0x0))
    goto LAB_00056e5c;
    rStack_20c = _REG_NOERROR;
    if (*(int *)(puVar62 + 0x23c78) == 0) {
LAB_00056054:
      uVar60 = ((anon_union_4_2_91654ee9_for___value *)&(preg_00.mbcset)->nmbchars)->__wch;
      uVar8 = (uint)prVar51 & 0x400000;
      bVar36 = uVar8 != 0;
      aVar49.idx = 0x4c;
      aVar46.sbcset = (re_bitset_ptr_t)0x0;
      (**(code **)(puVar62 + 0x23c9c))(aaStack_1f4);
      cStack_1ad = uVar60 != 0 || bVar36;
      iStack_1a8 = *(int *)(aVar4.idx + 0x5c);
      bStack_1af = (byte)((uint)(*(int *)(aVar4.idx + 0x58) << 2) >> 0x1f);
      bStack_1ae = (byte)((uint)(*(int *)(aVar4.idx + 0x58) << 3) >> 0x1f);
      aStack_1f8 = aVar45;
      aStack_1cc = (anon_union_4_5_a39f51ca_for_opr)preg;
      aStack_1c8 = (anon_union_4_5_a39f51ca_for_opr)preg;
      aStack_1c4 = (anon_union_4_5_a39f51ca_for_opr)preg;
      aStack_1c0 = (anon_union_4_5_a39f51ca_for_opr)preg;
      uStack_1b8 = uVar60;
      uStack_1b0 = bVar36;
      if (0 < (int)preg) {
        aVar46.sbcset = (re_bitset_ptr_t)((int)preg + 1);
        rVar21 = re_string_realloc_buffers((re_string_t *)&aStack_1f8,aVar46.idx);
        if (rVar21 == _REG_NOERROR) goto LAB_000560cc;
        goto LAB_00056168;
      }
LAB_000560cc:
      if (cStack_1ad != '\0') {
        aVar45 = aaStack_1f4[0];
      }
      aaStack_1f4[0] = aVar45;
      if (uVar8 == 0) {
        if (*(int *)(aVar4.idx + 0x5c) < 2) {
          if (uVar60 != 0) {
            re_string_translate_buffer((re_string_t *)&aStack_1f8);
          }
        }
        else {
          build_wcs_buffer((re_string_t *)&aStack_1f8);
        }
      }
      else {
        if (1 < *(int *)(aVar4.idx + 0x5c)) {
          iVar55 = *(int *)(puVar62 + 0x23abc);
          do {
            rVar21 = build_wcs_upper_buffer((re_string_t *)&aStack_1f8);
            if (rVar21 != _REG_NOERROR) break;
            if (((int)preg <= iStack_1d8) ||
               (aVar46.ctx_type = iStack_1d4 << 1,
               iStack_1dc + *(int *)(aVar4.idx + 0x5c) < iStack_1d4)) goto LAB_000563d0;
            rVar21 = (*(code *)(iVar55 + 0x6d2c))(&aStack_1f8);
          } while (rVar21 == _REG_NOERROR);
          goto LAB_00056168;
        }
        build_upper_buffer((re_string_t *)&aStack_1f8);
      }
LAB_000563d0:
      rStack_20c = _REG_NOERROR;
      (preg_00.mbcset)->ncoll_syms = 0;
      prVar59 = (re_dfa_t *)((re_string_t *)&(preg_00.mbcset)->mbchars)->raw_mbs;
      prVar59->syntax = (reg_syntax_t)prVar51;
      fetch_token((re_token_t *)&rStack_204,(re_string_t *)&aStack_1f8,(uint)prVar51 | 0x800000);
      aVar46 = preg_00;
      aVar45.sbcset =
           (re_bitset_ptr_t)
           parse_reg_exp((re_string_t *)&aStack_1f8,preg_00.sbcset,(re_token_t *)&rStack_204,
                         (reg_syntax_t)prVar51,0,&rStack_20c);
      if (rStack_20c == _REG_NOERROR) {
        aVar49.sbcset = (re_bitset_ptr_t)0x0;
        aVar46.sbcset = (re_bitset_ptr_t)0x0;
        aVar56.mbcset =
             (re_charset_t *)create_tree(prVar59,(bin_tree_t *)0x0,(bin_tree_t *)0x0,END_OF_RE);
        aVar39.mbcset = aVar56.mbcset;
        if ((re_dfa_t *)aVar45.sbcset != (re_dfa_t *)0x0) {
LAB_000564b0:
          aVar49 = aVar56;
          aVar39.sbcset =
               (re_bitset_ptr_t)
               create_tree(prVar59,(bin_tree_t *)aVar45.mbcset,aVar56.sbcset,CONCAT);
          aVar46 = aVar45;
        }
        if (((re_dfa_t *)aVar56.sbcset == (re_dfa_t *)0x0) ||
           (pcVar5 = *(code **)(puVar62 + 0x23cf0), (re_dfa_t *)aVar39.sbcset == (re_dfa_t *)0x0)) {
          rStack_20c = _REG_ESPACE;
          goto LAB_000566f4;
        }
        ((anon_union_4_5_a39f51ca_for_opr *)(aVar4.idx + 0x34))->mbcset = (re_charset_t *)aVar39;
        aVar45.mbcset = (re_charset_t *)*preg_00.sbcset;
        iVar61 = ((re_node_set *)&(aVar45.mbcset)->range_starts)->alloc;
        iVar55 = iVar61 << 2;
        pwVar27 = (wctype_t *)(*pcVar5)(iVar55);
        (aVar45.mbcset)->char_classes = pwVar27;
        iVar55 = (**(code **)(puVar62 + 0x23cf0))(iVar55);
        ((re_node_set *)(aVar45.idx + 0x10))->alloc = iVar55;
        iVar61 = iVar61 * 0xc;
        uVar60 = (**(code **)(puVar62 + 0x23cf0))(iVar61);
        ((anon_union_4_2_91654ee9_for___value *)&(aVar45.mbcset)->nmbchars)->__wch = uVar60;
        prVar28 = (re_node_set *)(**(code **)(puVar62 + 0x23cf0))(iVar61);
        (aVar45.mbcset)->ncoll_syms = (Idx)prVar28;
        if (pwVar27 == (wctype_t *)0x0) {
          rVar21 = _REG_ESPACE;
        }
        else if (iVar55 == 0) {
          rVar21 = _REG_ESPACE;
        }
        else if (uVar60 == 0) {
          rVar21 = _REG_ESPACE;
        }
        else if (prVar28 == (re_node_set *)0x0) {
          rVar21 = _REG_ESPACE;
        }
        else {
          pprVar29 = (re_sub_match_top_t **)
                     (**(code **)(puVar62 + 0x23cf0))((int)(preg_00.mbcset)->ncoll_syms << 2);
          *(re_sub_match_top_t ***)(aVar45.idx + 0x84) = pprVar29;
          if (pprVar29 != (re_sub_match_top_t **)0x0) {
            prVar30 = (re_sub_match_top_t *)0x0;
            if ((re_node_set *)(preg_00.mbcset)->ncoll_syms != (re_node_set *)0x0) {
              do {
                (*(re_sub_match_top_t ***)(aVar45.idx + 0x84))[(int)prVar30] = prVar30;
                prVar30 = (re_sub_match_top_t *)((int)&prVar30->str_idx + 1);
              } while (prVar30 < (re_sub_match_top_t *)(preg_00.mbcset)->ncoll_syms);
            }
            preorder(*(bin_tree_t **)(aVar45.idx + 0x34),
                     (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)
                     (*(int *)(puVar62 + 0x23abc) + 0x60e8),aVar45.sbcset);
            prVar30 = (re_sub_match_top_t *)(preg_00.mbcset)->ncoll_syms;
            if (prVar30 == (re_sub_match_top_t *)0x0) {
LAB_00056704:
              (**(code **)(puVar62 + 0x23dc0))(*(re_sub_match_top_t ***)(aVar45.idx + 0x84));
              *(re_sub_match_top_t ***)(aVar45.idx + 0x84) = (re_sub_match_top_t **)0x0;
            }
            else {
              pprVar29 = *(re_sub_match_top_t ***)(aVar45.idx + 0x84);
              if (*pprVar29 == (re_sub_match_top_t *)0x0) {
                prVar31 = (re_sub_match_top_t *)0x0;
                do {
                  pprVar29 = pprVar29 + 1;
                  prVar31 = (re_sub_match_top_t *)((int)&prVar31->str_idx + 1);
                  if (prVar30 == prVar31) {
                    if (prVar30 == prVar31) goto LAB_00056704;
                    break;
                  }
                } while (*pprVar29 == prVar31);
              }
            }
          }
          aVar46.sbcset = (re_bitset_ptr_t)(*(int *)(puVar62 + 0x23abc) + 0x73a4);
          rVar21 = postorder(*(bin_tree_t **)(aVar45.idx + 0x34),
                             (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar46.sbcset,
                             preg_00.sbcset);
          aVar49.mbcset = aVar45.mbcset;
          if (rVar21 == _REG_NOERROR) {
            aVar46.sbcset = (re_bitset_ptr_t)(*(int *)(puVar62 + 0x23b40) + -0x5be4);
            rVar21 = postorder(*(bin_tree_t **)(aVar45.idx + 0x34),
                               (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar46.sbcset,
                               aVar45.sbcset);
            if (rVar21 == _REG_NOERROR) {
              preorder(*(bin_tree_t **)(aVar45.idx + 0x34),
                       (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)
                       (*(int *)(puVar62 + 0x23abc) + 0x61b4),aVar45.sbcset);
              aVar46.sbcset = (re_bitset_ptr_t)(*(int *)(puVar62 + 0x23b40) + -0x4614);
              rVar21 = preorder(*(bin_tree_t **)(aVar45.idx + 0x34),
                                (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar46.sbcset,
                                aVar45.sbcset);
              if (rVar21 == _REG_NOERROR) {
                uVar60 = 0;
                iVar55 = *(int *)(puVar62 + 0x23b40);
                aVar56.sbcset = (re_bitset_ptr_t)0x0;
LAB_00056744:
                if ((re_dfa_t *)(aVar45.mbcset)->range_ends != (re_dfa_t *)aVar56.sbcset) {
LAB_00056750:
                  if (((re_node_set *)(aVar45.mbcset)->ncoll_syms)[aVar56.idx].nelem == 0) {
                    aVar46.mbcset = aVar45.mbcset;
                    aVar49 = aVar56;
                    rVar21 = (*(code *)(iVar55 + -0x561c))
                                       (&rStack_204,aVar45.sbcset,aVar56.sbcset,1);
                    if (rVar21 != _REG_NOERROR) goto LAB_00056168;
                    if (((re_node_set *)(aVar45.mbcset)->ncoll_syms)[aVar56.idx].nelem == 0) {
                      (**(code **)(puVar62 + 0x23dc0))(rStack_204.elems);
                      uVar60 = 1;
                    }
                  }
                  aVar56.sbcset =
                       (re_bitset_ptr_t)
                       ((int)&((re_string_t *)&(aVar56.mbcset)->mbchars)->raw_mbs + 1);
                  goto LAB_00056744;
                }
                if (uVar60 != 0) {
                  uVar60 = 0;
                  aVar56.sbcset = (re_bitset_ptr_t)0x0;
                  goto LAB_00056750;
                }
                if ((((((re_node_set *)&(preg_00.mbcset)->nequiv_classes)->alloc & 0x8000000) == 0)
                    && ((re_node_set *)(preg_00.mbcset)->ncoll_syms != (re_node_set *)0x0)) &&
                   (*(char *)(aVar45.idx + 0x58) < '\0')) {
                  pwVar57 = (wint_t *)(aVar45.mbcset)->range_ends;
                }
                else {
                  if (*(Idx *)(aVar45.idx + 0x4c) == 0) goto LAB_000568f0;
                  pwVar57 = (wint_t *)(aVar45.mbcset)->range_ends;
                }
                iVar55 = (**(code **)(puVar62 + 0x23cf0))((int)pwVar57 * 0xc);
                ((re_node_set *)&(aVar45.mbcset)->nequiv_classes)->alloc = iVar55;
                if (iVar55 == 0) {
                  rVar21 = _REG_ESPACE;
                  goto LAB_00056168;
                }
                if (pwVar57 != (wint_t *)0x0) {
                  iVar55 = 0;
                  uVar26 = 0;
                  do {
                    puVar32 = (undefined1 *)
                              (((re_node_set *)&(aVar45.mbcset)->nequiv_classes)->alloc + iVar55);
                    *puVar32 = 0;
                    puVar32[1] = 0;
                    puVar32[2] = 0;
                    puVar32[3] = 0;
                    puVar32[4] = 0;
                    puVar32[5] = 0;
                    puVar32[6] = 0;
                    puVar32[7] = 0;
                    puVar32[8] = 0;
                    puVar32[9] = 0;
                    puVar32[10] = 0;
                    puVar32[0xb] = 0;
                    uVar26 = uVar26 + 1;
                    iVar55 = iVar55 + 0xc;
                  } while (uVar26 < (aVar45.mbcset)->range_ends);
                  iVar55 = *(int *)(puVar62 + 0x23abc);
                  if ((wint_t *)(aVar45.mbcset)->range_ends != (wint_t *)0x0) {
                    iVar61 = 0;
                    aStack_218.sbcset = (re_bitset_ptr_t)0x0;
                    do {
                      piVar38 = *(int **)((int)&((re_node_set *)(aVar45.mbcset)->ncoll_syms)->elems
                                         + iVar61);
                      if (0 < *(int *)((int)&((re_node_set *)(aVar45.mbcset)->ncoll_syms)->nelem +
                                      iVar61)) {
                        iVar58 = 0;
                        do {
                          aVar46 = aStack_218;
                          iVar33 = (*(code *)(iVar55 + 0x6e30))
                                             (((re_node_set *)&(aVar45.mbcset)->nequiv_classes)->
                                              alloc + *piVar38 * 0xc);
                          rVar21 = _REG_ESPACE;
                          if (iVar33 == 0) goto LAB_00056168;
                          iVar58 = iVar58 + 1;
                          piVar38 = piVar38 + 1;
                        } while (iVar58 < *(int *)((int)&((re_node_set *)(aVar45.mbcset)->ncoll_syms
                                                         )->nelem + iVar61));
                      }
                      aStack_218.sbcset =
                           (re_bitset_ptr_t)
                           ((int)&((re_string_t *)&(aStack_218.mbcset)->mbchars)->raw_mbs + 1);
                      iVar61 = iVar61 + 0xc;
                    } while (aStack_218.sbcset < (re_dfa_t *)(aVar45.mbcset)->range_ends);
                  }
                }
LAB_000568f0:
                rStack_20c = _REG_NOERROR;
                if ((((*(byte *)(aVar4.idx + 0x58) & 0x20) != 0) && (uVar8 == 0)) &&
                   (((anon_union_4_2_91654ee9_for___value *)&(preg_00.mbcset)->nmbchars)->__wch == 0
                   )) {
                  if ((aVar4.mbcset)->range_ends != (wchar_t *)0x0) {
                    aVar49.sbcset = (re_bitset_ptr_t)(*(int *)(puVar62 + 0x23754) + 0x6e4c);
                    if (*(byte *)(*aVar4.sbcset + 4) < 0xd) {
                    /* WARNING: Could not recover jumptable at 0x00056a60. Too many branches */
                    /* WARNING: Treating indirect jump as call */
                      rVar21 = (*(code *)(puVar62 +
                                         aVar49.sbcset[*(byte *)(*aVar4.sbcset + 4)] + 0x2b71c))();
                      return rVar21;
                    }
                    (**(code **)(puVar62 + 0x23bc4))(0);
                    if (uVar60 != 0) {
                      aVar49.idx = (Idx)&DAT_00000007;
                      uVar8 = 0;
                      do {
                        prVar53 = (re_token_t *)(aVar4.mbcset)->mbchars + uVar8;
                        if (prVar53->field_0x4 == '\x01') {
                          if ((char)(prVar53->opr).c < '\0') {
                            *(uint *)&prVar53->field_0x4 = *(uint *)&prVar53->field_0x4 & 0xfffffbff
                            ;
                          }
                        }
                        else if (prVar53->field_0x4 == '\x05') {
                          prVar53->field_0x4 = 7;
                        }
                        uVar8 = uVar8 + 1;
                      } while (uVar8 < (aVar4.mbcset)->range_ends);
                    }
                  }
                  *(int *)(aVar4.idx + 0x5c) = 1;
                  if (0 < *(Idx *)(aVar4.idx + 0x4c)) {
                    uVar60 = 1;
                  }
                  *(byte *)(aVar4.idx + 0x58) =
                       *(byte *)(aVar4.idx + 0x58) & 0x9f | (byte)((uVar60 & 1) << 6);
                }
                iVar55 = (*(bin_tree_t **)(aVar4.idx + 0x34))->first->node_idx;
                *(int *)(aVar4.idx + 0x48) = iVar55;
                aVar46.sbcset =
                     (re_bitset_ptr_t)((re_node_set *)(aVar4.mbcset)->ncoll_syms + iVar55);
                rVar34 = re_node_set_init_copy(&rStack_204,(re_node_set *)aVar46.mbcset);
                rVar21 = rVar34;
                rStack_208 = rVar34;
                if (rVar34 == _REG_NOERROR) {
                  if ((0 < *(Idx *)(aVar4.idx + 0x4c)) && (_REG_NOERROR < rStack_204.nelem)) {
                    iVar55 = *(int *)(puVar62 + 0x23abc);
                    iVar61 = *(int *)(puVar62 + 0x23abc);
                    rVar21 = _REG_NOERROR;
                    do {
                      aVar49.sbcset =
                           (re_bitset_ptr_t)
                           ((re_token_t *)(aVar4.mbcset)->mbchars + rStack_204.elems[rVar21]);
                      if (*(char *)&((re_node_set *)&(aVar49.mbcset)->range_starts)->alloc == '\x04'
                         ) {
                        rVar48 = _REG_NOERROR;
                        piVar38 = rStack_204.elems;
                        if (rStack_204.nelem < _REG_NOMATCH) {
LAB_00056b8c:
                          if (rStack_204.nelem != rVar48) {
                            iVar33 = *((re_node_set *)(aVar4.mbcset)->nmbchars)
                                      [rStack_204.elems[rVar21]].elems;
                            iVar58 = (*(code *)(iVar55 + 0x5ea8))(&rStack_204,iVar33);
                            if (iVar58 == 0) {
                              aVar46.sbcset =
                                   (re_bitset_ptr_t)
                                   ((re_node_set *)(aVar4.mbcset)->ncoll_syms + iVar33);
                              rVar21 = (*(code *)(iVar61 + 0x7f1c))(&rStack_204);
                              if (rVar21 != _REG_NOERROR) goto LAB_00056cb8;
                            }
                          }
                        }
                        else {
                          do {
                            prVar53 = (re_token_t *)(aVar4.mbcset)->mbchars + *piVar38;
                            if ((prVar53->field_0x4 == '\t') &&
                               ((prVar53->opr).sbcset == (re_bitset_ptr_t)*aVar49.sbcset))
                            goto LAB_00056b8c;
                            rVar48 = rVar48 + _REG_NOMATCH;
                            piVar38 = piVar38 + 1;
                          } while (rStack_204.nelem != rVar48);
                        }
                      }
                      rVar21 = rVar21 + _REG_NOMATCH;
                    } while (rVar21 < rStack_204.nelem);
                  }
                  aVar49.sbcset = (re_bitset_ptr_t)&rStack_204;
                  aVar46 = aVar4;
                  prVar35 = re_acquire_state_context
                                      (&rStack_208,(re_dfa_t *)aVar4.mbcset,
                                       (re_node_set *)aVar49.mbcset,0);
                  (aVar4.mbcset)->nchar_classes = (Idx)prVar35;
                  rVar21 = rStack_208;
                  if (prVar35 != (re_dfastate_t *)0x0) {
                    if ((prVar35->field_0x34 & 1) == 0) {
                      *(re_dfastate_t **)(aVar4.idx + 0x30) = prVar35;
                      *(re_dfastate_t **)(aVar4.idx + 0x2c) = prVar35;
                      *(re_dfastate_t **)(aVar4.idx + 0x28) = prVar35;
                    }
                    else {
                      aVar49.sbcset = (re_bitset_ptr_t)&rStack_204;
                      prVar35 = re_acquire_state_context
                                          (&rStack_208,(re_dfa_t *)aVar4.mbcset,
                                           (re_node_set *)aVar49.mbcset,1);
                      *(re_dfastate_t **)(aVar4.idx + 0x28) = prVar35;
                      prVar35 = re_acquire_state_context
                                          (&rStack_208,(re_dfa_t *)aVar4.mbcset,
                                           (re_node_set *)aVar49.mbcset,2);
                      *(re_dfastate_t **)(aVar4.idx + 0x2c) = prVar35;
                      aVar46 = aVar4;
                      prVar35 = re_acquire_state_context
                                          (&rStack_208,(re_dfa_t *)aVar4.mbcset,
                                           (re_node_set *)aVar49.mbcset,6);
                      *(re_dfastate_t **)(aVar4.idx + 0x30) = prVar35;
                      rVar21 = rStack_208;
                      if (((*(re_dfastate_t **)(aVar4.idx + 0x28) == (re_dfastate_t *)0x0) ||
                          (*(re_dfastate_t **)(aVar4.idx + 0x2c) == (re_dfastate_t *)0x0)) ||
                         (prVar35 == (re_dfastate_t *)0x0)) goto LAB_00056cb8;
                    }
                    (**(code **)(puVar62 + 0x23dc0))(rStack_204.elems);
                    rVar21 = rVar34;
                  }
                }
LAB_00056cb8:
                rStack_20c = rVar21;
                free_workarea_compile((regex_t *)preg_00.mbcset);
                re_string_destruct((re_string_t *)&aStack_1f8);
                rVar21 = rStack_20c;
                if (rStack_20c != _REG_NOERROR) {
                  if (*(int *)(puVar62 + 0x23c78) != 0) {
                    (**(code **)(puVar62 + 0x23df0))((pthread_mutex_t *)(aVar4.idx + 0x88));
                  }
                  free_dfa_content((re_dfa_t *)aVar4.mbcset);
                  *preg_00.sbcset = 0;
                  ((re_node_set *)&(preg_00.mbcset)->range_starts)->alloc = 0;
                  rVar21 = rStack_20c;
                }
                goto LAB_00056cfc;
              }
            }
          }
        }
      }
      else {
        aVar49.sbcset = (re_bitset_ptr_t)0x0;
        if ((re_dfa_t *)aVar45.sbcset != (re_dfa_t *)0x0) {
          aVar56.mbcset =
               (re_charset_t *)create_tree(prVar59,(bin_tree_t *)0x0,(bin_tree_t *)0x0,END_OF_RE);
          goto LAB_000564b0;
        }
LAB_000566f4:
        *(bin_tree_t **)(aVar4.idx + 0x34) = (bin_tree_t *)0x0;
        rVar21 = rStack_20c;
      }
LAB_00056168:
      rStack_20c = rVar21;
      free_workarea_compile((regex_t *)preg_00.mbcset);
      re_string_destruct((re_string_t *)&aStack_1f8);
      if (*(int *)(puVar62 + 0x23c78) != 0) {
        (**(code **)(puVar62 + 0x23df0))((pthread_mutex_t *)(aVar4.idx + 0x88));
      }
      free_dfa_content((re_dfa_t *)aVar4.mbcset);
      *preg_00.sbcset = 0;
      ((re_node_set *)&(preg_00.mbcset)->range_starts)->alloc = 0;
      rVar21 = rStack_20c;
      goto LAB_00056cfc;
    }
    aVar46.sbcset = (re_bitset_ptr_t)0x0;
    iVar55 = (**(code **)(puVar62 + 0x23d98))((pthread_mutex_t *)(aVar4.idx + 0x88));
    if (iVar55 != 0) goto LAB_00056e5c;
    if (rStack_20c == _REG_NOERROR) goto LAB_00056054;
  }
  else {
LAB_00056e5c:
    rStack_20c = _REG_ESPACE;
  }
  free_dfa_content((re_dfa_t *)aVar4.mbcset);
  *preg_00.sbcset = 0;
  ((re_node_set *)&(preg_00.mbcset)->range_starts)->alloc = 0;
  rVar21 = rStack_20c;
LAB_00056cfc:
  if (pcStack_1a4 == (char *)**(int **)(puVar62 + 0x23dac)) {
    return rVar21;
  }
  pcVar5 = *(code **)(puVar62 + 0x23d6c);
  pattern = pcStack_1a4;
  (*pcVar5)();
  syntax = **(reg_syntax_t **)(pcVar5 + 0x22b18);
  *(byte *)&((re_node_set *)&(aVar49.mbcset)->nequiv_classes)->alloc =
       *(byte *)&((re_node_set *)&(aVar49.mbcset)->nequiv_classes)->alloc & 0xf6 |
       (byte)(((syntax << 6) >> 0x1f) << 3) | 1;
  rVar21 = re_compile_internal((regex_t *)aVar49.mbcset,pattern,aVar46.ctx_type,syntax);
  if (rVar21 == _REG_NOERROR) {
    rVar21 = _REG_NOERROR;
  }
  else {
    rVar21 = (**(code **)(pcVar5 + 0x22d48))
                       (0,*(int *)(pcVar5 + 0x22728) + 0x6f48 +
                          *(int *)(rVar21 * 4 + *(int *)(pcVar5 + 0x22728) + 0x6f04),5);
  }
  return rVar21;
code_r0x00055b38:
  if (aVar41.idx < match_first) goto LAB_000557a8;
  goto LAB_00055b44;
LAB_000557a8:
  local_150.idx = 1;
  goto LAB_000557e4;
LAB_00055914:
  local_150.idx = 0xc;
  aVar46 = aVar15;
  goto LAB_000557e4;
}



/* WARNING: Type propagation algorithm not settling */

code *******
FUN_00054610(code *******param_1,code ******param_2,code *******param_3,code *******param_4,
            code *******param_5,code *******param_6,code ******param_7,code *******param_8,
            code *******param_9)

{
  bool bVar1;
  code *******pppppppcVar2;
  code *******pppppppcVar3;
  code *pcVar4;
  int *piVar5;
  code *******pppppppcVar6;
  uint uVar7;
  code *pcVar8;
  code *pcVar9;
  code *pcVar10;
  code *pcVar11;
  code *pcVar12;
  code *****pppppcVar13;
  code *******pppppppcVar14;
  code *******pppppppcVar15;
  uint uVar16;
  code cVar23;
  byte *pbVar17;
  int iVar18;
  uint uVar19;
  code ******ppppppcVar20;
  undefined1 *puVar21;
  int iVar22;
  code *******pppppppcVar24;
  code *******pppppppcVar25;
  code *******pppppppcVar26;
  uint uVar27;
  code *******pppppppcVar28;
  code *******pppppppcVar29;
  code *******pppppppcVar30;
  code *******pppppppcVar31;
  code ******ppppppcVar32;
  code *******pppppppcVar33;
  code *******pppppppcVar34;
  code ******ppppppcVar35;
  code *******pppppppcVar36;
  code *******unaff_s4;
  int iVar37;
  code *******unaff_s5;
  code *******pppppppcVar38;
  code *******unaff_s7;
  code ******ppppppcVar39;
  code ****ppppcVar40;
  undefined *puVar41;
  code *******unaff_s8;
  code *******pppppppcVar42;
  int iVar43;
  undefined8 uVar44;
  code *******pppppppcStack_218;
  code *******pppppppcStack_20c;
  code *******pppppppcStack_208;
  code ******ppppppcStack_204;
  int iStack_200;
  int *piStack_1fc;
  code *******pppppppcStack_1f8;
  code *******apppppppcStack_1f4 [6];
  int iStack_1dc;
  int iStack_1d8;
  int iStack_1d4;
  code *******pppppppcStack_1cc;
  code *******pppppppcStack_1c8;
  code *******pppppppcStack_1c4;
  code *******pppppppcStack_1c0;
  code ******ppppppcStack_1b8;
  undefined1 uStack_1b0;
  byte bStack_1af;
  byte bStack_1ae;
  char cStack_1ad;
  code ******ppppppcStack_1a8;
  int iStack_1a4;
  code *******pppppppcStack_1a0;
  code *******pppppppcStack_19c;
  code *******pppppppcStack_198;
  code *******pppppppcStack_194;
  code *******pppppppcStack_190;
  code *******pppppppcStack_18c;
  code *******pppppppcStack_188;
  code *******pppppppcStack_184;
  code *******pppppppcStack_180;
  code *pcStack_17c;
  uint local_168;
  code *******local_150;
  code *******local_148;
  code *******local_144;
  code *******local_138;
  int local_118;
  code *******local_dc;
  code *******local_d8;
  code *******local_d4;
  code *******local_d0;
  code *******local_cc;
  code *******local_c8;
  code *******local_c4;
  undefined4 local_c0;
  undefined4 local_bc;
  undefined4 local_b8;
  code ******local_b4;
  code ******local_b0;
  int *local_ac;
  int local_a8;
  int local_9c;
  code *******local_98;
  code *******local_94;
  uint local_90;
  code *******local_8c;
  code *******local_88;
  code *******local_84;
  code *******local_80;
  code *******local_7c;
  undefined4 local_78;
  code ******local_74;
  code *******local_70;
  byte local_6c;
  byte local_6b;
  byte local_6a;
  byte local_69;
  char local_68;
  byte local_67;
  byte local_66;
  code *******local_64;
  code *******local_60;
  code *******local_5c;
  code *******local_58;
  code *******local_54;
  code *******local_50;
  code *******local_4c;
  undefined4 local_48;
  code *******local_44;
  code *******local_40;
  int local_3c;
  code *******local_34;
  int local_30;
  code *******local_2c;
  
  local_2c = *(code ********)PTR___stack_chk_guard_00079c10;
  pppppppcVar38 = (code *******)*param_1;
  pppppppcVar29 = (code *******)0x0;
  pppppppcVar33 = param_4;
  (*(code *)PTR_memset_00079b00)(&local_b4,0,0x88);
  local_148 = (code *******)param_1[4];
  if (local_148 != (code *******)0x0) {
    if (((byte)*(code *)(param_1 + 7) & 0x10) == 0) {
      local_148 = (code *******)0x0;
    }
    else if (param_4 == param_5) {
      local_148 = (code *******)0x0;
    }
    else if ((char)*(code *)(param_1 + 7) < '\0') {
      local_148 = (code *******)0x0;
    }
  }
  if (param_1[6] < param_7) {
    local_118 = (int)param_7 + (-1 - (int)param_1[6]);
  }
  else {
    local_118 = 0;
  }
  pppppppcStack_1a0 = param_4;
  pppppppcStack_19c = param_1;
  local_60 = pppppppcVar38;
  if (param_1[2] == (code ******)0x0) {
    local_150 = (code *******)0x1;
  }
  else if (pppppppcVar38[9] == (code ******)0x0) {
    local_150 = (code *******)0x1;
  }
  else if (pppppppcVar38[10] == (code ******)0x0) {
    local_150 = (code *******)0x1;
  }
  else if (pppppppcVar38[0xb] == (code ******)0x0) {
    local_150 = (code *******)0x1;
  }
  else {
    pppppppcVar29 = (code *******)pppppppcVar38[0xc];
    if (pppppppcVar29 == (code *******)0x0) {
      local_150 = (code *******)0x1;
    }
    else {
      pppppppcVar3 = param_5;
      if ((((pppppppcVar38[9][2] == (code *****)0x0) && (pppppppcVar38[10][2] == (code *****)0x0))
          && ((pppppppcVar38[0xb][2] == (code *****)0x0 || (((uint)param_1[7] & 0x1000000) == 0))))
         && ((pppppppcVar3 = param_4, param_4 != (code *******)0x0 &&
             (param_4 = param_5, pppppppcVar3 = param_5, param_5 != (code *******)0x0)))) {
        local_150 = (code *******)0x1;
        pppppppcStack_1a0 = param_5;
      }
      else {
        param_5 = pppppppcVar3;
        pppppppcVar3 = (code *******)((int)param_7 - local_118);
        if (pppppppcVar3 == (code *******)0x0) {
          pppppppcVar34 = (code *******)(uint)(pppppppcVar38[0x13] != (code ******)0x0);
        }
        else {
          pppppppcVar34 = (code *******)0x1;
        }
        ppppppcVar32 = param_1[5];
        local_6c = (byte)((uint)((int)param_1[3] << 9) >> 0x1f);
        local_64 = (code *******)pppppppcVar38[0x17];
        pppppppcVar31 = (code *******)((int)pppppppcVar38[2] + 1);
        if ((int)pppppppcVar38[2] + 1 < (int)local_64) {
          pppppppcVar31 = local_64;
        }
        pppppppcVar30 = (code *******)(uint)((int)param_3 + 1 < (int)pppppppcVar31);
        pppppppcVar33 = (code *******)0x1;
        local_69 = local_6c;
        if (ppppppcVar32 != (code ******)0x0) {
          local_69 = 1;
        }
        local_6b = (byte)((uint)((int)pppppppcVar38[0x16] << 2) >> 0x1f);
        local_6a = (byte)((uint)((int)pppppppcVar38[0x16] << 3) >> 0x1f);
        pppppppcVar29 = (code *******)((int)param_3 + 1);
        if (pppppppcVar30 == (code *******)0x0) {
          pppppppcVar29 = pppppppcVar31;
        }
        local_b4 = param_2;
        local_88 = param_3;
        local_84 = param_3;
        local_80 = param_3;
        local_7c = param_3;
        local_74 = ppppppcVar32;
        local_150 = (code *******)FUN_00046d2c(&local_b4);
        pppppppcVar31 = pppppppcVar34;
        param_6 = param_6;
        if (local_150 != (code *******)0x0) goto LAB_000557e4;
        local_70 = pppppppcVar38 + 0x18;
        local_66 = (byte)((uint)((int)pppppppcVar38[0x16] << 4) >> 0x1f);
        pppppppcVar2 = (code *******)0x0;
        local_98 = pppppppcVar2;
        if ((local_69 == 0) && (local_b0 = param_2, (int)pppppppcVar38[0x17] < 2)) {
          local_98 = param_3;
        }
        local_7c = param_6;
        local_80 = param_6;
        local_67 = (byte)((uint)((int)param_1[7] << 7) >> 0x1f);
        ppppppcVar35 = pppppppcVar38[0x13];
        pppppppcVar36 = (code *******)((int)ppppppcVar35 * 2);
        local_5c = param_9;
        local_58 = (code *******)0xffffffff;
        local_94 = local_98;
        if ((int)pppppppcVar36 < 1) {
LAB_000559f0:
          local_3c = 1;
          local_44 = pppppppcVar36;
          local_34 = pppppppcVar36;
          if ((pppppppcVar3 < (code *******)0x2) && (((uint)pppppppcVar38[0x16] & 0x40000000) == 0))
          {
            local_50 = (code *******)0x0;
LAB_00055a40:
            local_78 = 6;
            if (((uint)param_9 & 1) != 0) {
              local_78 = 4;
            }
            pppppppcVar24 = (code *******)0x1;
            pppppppcVar25 = param_4;
            if ((int)param_5 < (int)param_4) {
              pppppppcVar24 = (code *******)0xffffffff;
              pppppppcVar25 = param_5;
            }
            pppppppcVar26 = param_5;
            if ((int)param_5 <= (int)param_4) {
              pppppppcVar26 = param_4;
            }
            ppppppcVar35 = pppppppcVar38[0x17];
            uVar16 = 8;
            if (local_148 != (code *******)0x0) {
              if (ppppppcVar35 == (code ******)0x1) {
                pppppppcVar28 = (code *******)0x4;
              }
              else {
                pppppppcVar28 = pppppppcVar2;
                if ((-1 < (int)param_1[3] << 9) && (ppppppcVar32 == (code ******)0x0)) {
                  pppppppcVar28 = (code *******)0x4;
                }
              }
              pppppppcVar29 = (code *******)0x0;
              if ((int)param_4 <= (int)param_5) {
                pppppppcVar29 = (code *******)0x2;
              }
              uVar16 = (uint)(ppppppcVar32 != (code ******)0x0) | (uint)pppppppcVar28 |
                       (uint)pppppppcVar29;
            }
            local_dc = param_4;
            if ((int)param_4 < (int)pppppppcVar25) {
              local_150 = (code *******)0x1;
              param_6 = pppppppcVar36;
            }
            else if ((int)pppppppcVar26 < (int)param_4) {
              local_150 = (code *******)0x1;
              param_4 = (code *******)(uint)((int)param_5 < (int)param_4);
              param_6 = pppppppcVar36;
            }
            else {
              pppppppcVar36 = (code *******)&local_dc;
              if ((code *******)(uint)((int)param_5 < (int)param_4) != (code *******)0x0) {
                pppppppcVar36 = (code *******)0x0;
              }
              pcVar4 = (code *)(PTR_DAT_000799a4 + -0x2b7c);
              piVar5 = (int *)(PTR_s_nt0_000795b8 + (uVar16 - 4) * 4 + 0x6e38);
LAB_00055b44:
              if (uVar16 - 4 < 5) {
                    /* WARNING: Could not emulate address calculation at 0x00054920 */
                    /* WARNING: Treating indirect jump as call */
                pppppppcVar29 = (code *******)(*(code *)(&_gp_1 + *piVar5))();
                return pppppppcVar29;
              }
              param_5 = &local_b4;
              pppppppcVar28 = pppppppcVar33;
              while( true ) {
                param_4 = local_dc;
                pppppppcVar33 = (code *******)((int)local_dc - local_9c);
                pppppppcVar30 = param_9;
                pppppppcVar31 = pppppppcVar2;
                param_6 = local_148;
                unaff_s4 = param_3;
                unaff_s5 = pppppppcVar24;
                unaff_s7 = pppppppcVar26;
                if (local_94 <= pppppppcVar33) {
                  pppppppcVar29 = local_dc;
                  local_150 = (code *******)(*pcVar4)(param_5);
                  pppppppcVar33 = pppppppcVar28;
                  if (local_150 != (code *******)0x0) goto LAB_000557e4;
                  pppppppcVar33 = (code *******)((int)param_4 - local_9c);
                }
                if ((int)param_4 < (int)param_3) {
                  uVar7 = (uint)(byte)*(code *)((int)pppppppcVar33 + (int)local_b0);
                }
                else {
                  uVar7 = 0;
                }
                param_4 = (code *******)((int)param_4 + (int)pppppppcVar24);
                if (*(code *)((int)local_148 + uVar7) != (code)0x0) break;
                pppppppcVar33 = pppppppcVar28;
                local_dc = param_4;
                if ((int)param_4 < (int)pppppppcVar25) {
                  local_150 = (code *******)0x1;
                  goto LAB_000557e4;
                }
                if ((code *******)(uint)((int)pppppppcVar26 < (int)param_4) != (code *******)0x0) {
                  local_150 = (code *******)0x1;
                  param_4 = (code *******)(uint)((int)pppppppcVar26 < (int)param_4);
                  goto LAB_000557e4;
                }
              }
              while( true ) {
                pppppppcVar29 = local_dc;
                pppppppcVar30 = param_9;
                pppppppcVar6 = (code *******)(*pcVar4)(&local_b4);
                pppppppcVar14 = local_60;
                pppppppcVar42 = local_8c;
                pppppppcVar33 = pppppppcVar28;
                local_150 = pppppppcVar6;
                if (pppppppcVar6 != (code *******)0x0) goto LAB_000557e4;
                if (((ppppppcVar35 != (code ******)0x1) && (local_98 != (code *******)0x0)) &&
                   (*local_ac == -1)) goto LAB_00055b1c;
                local_3c = 0;
                local_48 = 0;
                local_4c = (code *******)0x0;
                local_138 = local_8c;
                local_d8 = (code *******)0x0;
                unaff_s7 = (code *******)local_60[9];
                pppppppcVar30 = local_5c;
                param_4 = pppppppcVar14;
                if (((uint)unaff_s7[0xd] & 0x1000000) == 0) break;
                pppppppcVar29 = (code *******)((int)local_8c + -1);
                pppppppcVar33 = (code *******)FUN_00049110(&local_b4);
                if (((uint)pppppppcVar33 & 1) == 0) {
                  if (pppppppcVar33 == (code *******)0x0) break;
                  if (((uint)pppppppcVar33 & 6) == 6) {
                    unaff_s7 = (code *******)pppppppcVar14[0xc];
                    goto LAB_00054d1c;
                  }
                  if (((uint)pppppppcVar33 & 2) != 0) {
                    unaff_s7 = (code *******)pppppppcVar14[0xb];
                    goto LAB_00054d1c;
                  }
                  pppppppcVar28 = pppppppcVar33;
                  if (((uint)pppppppcVar33 & 4) == 0) break;
                  pppppppcVar30 = (code *******)unaff_s7[10];
                  pppppppcVar29 = pppppppcVar14;
                  unaff_s7 = (code *******)FUN_0004ae34(&local_d8);
                  pppppppcVar28 = pppppppcVar33;
                  if (unaff_s7 != (code *******)0x0) break;
                  if (local_d8 == (code *******)0xc) goto LAB_00055914;
                }
                else {
                  unaff_s7 = (code *******)pppppppcVar14[10];
LAB_00054d1c:
                  pppppppcVar28 = (code *******)PTR_s_nt0_000795b8;
                  if (unaff_s7 != (code *******)0x0) break;
                }
                pppppppcVar28 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);
                pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);
                local_dc = (code *******)
                           (*(code *)PTR___assert_fail_000799f8)
                                     (PTR_s_nt0_000795b8 + 0x71a0,pppppppcVar29,0x435);
                if (local_dc == pppppppcVar26) {
                  if ((int)local_dc < (int)param_3) {
                    uVar7 = (uint)(byte)*(code *)((int)local_dc + (int)param_2);
                  }
                  else {
                    uVar7 = 0;
                  }
                  if (ppppppcVar32 != (code ******)0x0) {
                    uVar7 = (uint)*(byte *)((int)ppppppcVar32 + uVar7);
                  }
                  if (*(code *)((int)local_148 + uVar7) == (code)0x0) {
                    local_150 = (code *******)0x1;
                    pppppppcVar30 = param_9;
                    pppppppcVar33 = pppppppcVar28;
                    goto LAB_000557e4;
                  }
                }
              }
              pppppppcVar33 = pppppppcVar28;
              bVar1 = pppppppcVar36 != (code *******)0x0;
              if ((local_50 == (code *******)0x0) ||
                 (local_50[(int)pppppppcVar42] = (code ******)unaff_s7,
                 pppppppcVar14[0x13] == (code ******)0x0)) {
LAB_00054d50:
                if ((int)unaff_s7[0xd] << 4 < 0) {
                  if ((((uint)unaff_s7[0xd] & 0x1000000) == 0) ||
                     (pppppppcVar29 = unaff_s7, pppppppcVar30 = pppppppcVar42,
                     iVar18 = FUN_00049440(&local_b4), iVar18 != 0)) {
                    unaff_s8 = pppppppcVar42;
                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;
                    pppppppcVar28 = (code *******)0x1;
                  }
                  else {
                    pppppppcVar42 = (code *******)0xffffffff;
                    pppppppcVar28 = (code *******)0x0;
                  }
                }
                else {
                  pppppppcVar42 = (code *******)0xffffffff;
                  pppppppcVar28 = (code *******)0x0;
                }
                pcVar8 = (code *)(PTR_DAT_000799a4 + -0x7144);
                pcVar9 = (code *)(PTR_DAT_000799a4 + -0x1980);
                pcVar10 = (code *)(PTR_DAT_000799a4 + -0x2f9c);
                unaff_s8 = pppppppcVar42;
                local_144 = pppppppcVar36;
                while( true ) {
                  uVar44 = CONCAT44(local_98,local_84);
                  unaff_s5 = (code *******)((int)local_8c + 1);
                  pppppppcVar29 = local_8c;
                  if ((int)local_7c <= (int)local_8c) break;
                  if (((int)local_90 <= (int)unaff_s5) && ((int)local_90 < (int)local_84))
                  goto LAB_00054e94;
                  if ((int)local_98 <= (int)unaff_s5) {
                    while ((int)((ulonglong)uVar44 >> 0x20) < (int)uVar44) {
LAB_00054e94:
                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 2);
                      local_d8 = (code *******)(*pcVar8)(&local_b4);
                      if (local_d8 == (code *******)0x0) break;
                      pppppppcVar14 = param_4;
                      if (local_d8 == (code *******)0xc) goto LAB_00055914;
                      pppppppcVar33 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);
                      pppppppcVar30 = (code *******)0x46c;
                      pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);
                      uVar44 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0);
                      pppppppcVar28 = pppppppcVar38;
                    }
                  }
                  pppppppcVar42 = local_60;
                  if ((int)unaff_s7[0xd] << 5 < 0) {
                    pppppppcVar31 = pppppppcVar42;
                    if (0 < (int)unaff_s7[2]) {
                      pcVar11 = (code *)(PTR_DAT_000799a4 + -0x6fdc);
                      pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6ef0);
                      param_6 = (code *******)0x0;
                      do {
                        param_5 = (code *******)unaff_s7[3][(int)param_6];
                        ppppppcVar39 = *pppppppcVar42;
                        pppppcVar13 = ppppppcVar39[(int)param_5 * 2 + 1];
                        if (((uint)pppppcVar13 & 0x800) != 0) {
                          if (((uint)pppppcVar13 & 0xffc000) != 0) {
                            pppppppcVar29 = local_8c;
                            uVar19 = (*pcVar12)(&local_b4,local_8c,local_5c);
                            uVar7 = (uint)((int)ppppppcVar39[(int)param_5 * 2 + 1] << 8) >> 0x16;
                            if ((uVar7 & 4) == 0) {
                              uVar27 = uVar19 & 1;
                              if ((uVar7 & 8) != 0) goto joined_r0x00054f40;
                            }
                            else {
                              uVar27 = uVar7 & 8;
                              if ((uVar19 & 1) == 0) goto LAB_000550a4;
joined_r0x00054f40:
                              if (uVar27 != 0) goto LAB_000550a4;
                            }
                            if ((((uVar7 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||
                               (((uVar7 & 0x80) != 0 &&
                                (pppppppcVar33 = local_8c, (uVar19 & 8) == 0)))) goto LAB_000550a4;
                          }
                          pppppppcVar30 = &local_b4;
                          pppppppcVar29 = param_5;
                          pppppppcVar33 = local_8c;
                          iVar18 = (*pcVar10)(pppppppcVar42);
                          if (iVar18 != 0) {
                            pppppppcVar14 = (code *******)((int)local_8c + iVar18);
                            if (iVar18 <= local_3c) {
                              iVar18 = local_3c;
                            }
                            pppppppcVar29 = pppppppcVar14;
                            local_3c = iVar18;
                            local_d4 = (code *******)(*pcVar11)(&local_b4);
                            pppppppcVar15 = local_d4;
                            if (local_d4 != (code *******)0x0) goto LAB_00055e44;
                            pppppppcVar30 =
                                 (code *******)
                                 (pppppppcVar42[6] + (int)pppppppcVar42[3][(int)param_5] * 3);
                            unaff_s4 = (code *******)((int)pppppppcVar14 * 4);
                            param_5 = local_50 + (int)pppppppcVar14;
                            if (*param_5 == (code ******)0x0) {
                              local_d0 = (code *******)*pppppppcVar30;
                              local_cc = (code *******)pppppppcVar30[1];
                              local_c8 = (code *******)pppppppcVar30[2];
                              pppppppcVar33 =
                                   (code *******)
                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);
                              pppppppcVar30 = (code *******)&local_d0;
                              pppppppcVar29 = pppppppcVar42;
                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);
                              *param_5 = ppppppcVar39;
                            }
                            else {
                              pppppppcVar29 = (code *******)(*param_5)[10];
                              local_d4 = (code *******)FUN_000484bc(&local_d0);
                              pppppppcVar15 = local_d4;
                              if (local_d4 != (code *******)0x0) goto LAB_00055e44;
                              pppppppcVar33 =
                                   (code *******)
                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);
                              pppppppcVar15 = local_50 + (int)pppppppcVar14;
                              pppppppcVar30 = (code *******)&local_d0;
                              pppppppcVar29 = pppppppcVar42;
                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);
                              *pppppppcVar15 = ppppppcVar39;
                              (*(code *)PTR_free_00079c24)(local_c8);
                            }
                            unaff_s4 = local_50 + (int)pppppppcVar14;
                            if ((*unaff_s4 == (code ******)0x0) &&
                               (pppppppcVar15 = local_d4, local_d4 != (code *******)0x0))
                            goto LAB_00055e44;
                          }
                        }
LAB_000550a4:
                        param_6 = (code *******)((int)param_6 + 1);
                      } while ((int)param_6 < (int)unaff_s7[2]);
                    }
                    local_d8 = (code *******)0x0;
                  }
                  uVar7 = (uint)(byte)*(code *)((int)local_8c + (int)local_b0);
                  local_8c = (code *******)((int)local_8c + 1);
                  do {
                    if (unaff_s7[0xb] != (code ******)0x0) {
                      pppppppcVar30 = (code *******)unaff_s7[0xb][uVar7];
LAB_000553a0:
                      pppppppcVar14 = pppppppcVar30;
                      if (local_50 != (code *******)0x0) goto LAB_000553ac;
                      goto LAB_000553cc;
                    }
                    pppppppcVar31 = (code *******)unaff_s7[0xc];
                    if (pppppppcVar31 != (code *******)0x0) {
                      pppppppcVar29 = (code *******)((int)local_8c + -1);
                      uVar19 = FUN_00049110(&local_b4);
                      if ((uVar19 & 1) == 0) {
                        pppppppcVar30 = (code *******)pppppppcVar31[uVar7];
                      }
                      else {
                        pppppppcVar31 = pppppppcVar31 + uVar7 + 0x100;
                        pppppppcVar30 = (code *******)*pppppppcVar31;
                      }
                      goto LAB_000553a0;
                    }
                    pppppppcVar29 = unaff_s7;
                    pppppppcVar30 = local_5c;
                    iVar18 = (*pcVar9)(local_60);
                  } while (iVar18 != 0);
                  local_d8 = (code *******)0xc;
                  pppppppcVar15 = local_d8;
LAB_00055e44:
                  local_d8 = pppppppcVar15;
                  param_4 = (code *******)0x0;
                  if (local_50 == (code *******)0x0) {
                    pppppppcVar14 = param_4;
                    if (local_d8 != (code *******)0x0) goto LAB_00055914;
                    break;
                  }
                  pppppppcVar30 = (code *******)0x0;
LAB_000553ac:
                  pppppppcVar29 = &local_b4;
                  pppppppcVar14 = (code *******)FUN_00053684(&local_d8);
LAB_000553cc:
                  param_4 = pppppppcVar14;
                  if (pppppppcVar14 == (code *******)0x0) {
                    if (local_d8 != (code *******)0x0) goto LAB_00055914;
                    if ((local_50 == (code *******)0x0) ||
                       ((pppppppcVar28 != (code *******)0x0 && (pppppppcVar34 == (code *******)0x0))
                       )) break;
                    param_6 = &local_b4;
                    param_5 = (code *******)&local_d8;
                    pppppppcVar31 = (code *******)(PTR_DAT_000799a4 + 0x3684);
                    do {
                      pppppppcVar15 = local_50 + (int)local_8c;
                      pppppppcVar42 = local_8c;
                      do {
                        pppppppcVar42 = (code *******)((int)pppppppcVar42 + 1);
                        pppppppcVar29 = local_4c;
                        param_4 = pppppppcVar14;
                        if ((int)local_4c < (int)pppppppcVar42) goto LAB_00055da8;
                        local_8c = (code *******)((int)local_8c + 1);
                        pppppppcVar15 = pppppppcVar15 + 1;
                      } while (*pppppppcVar15 == (code ******)0x0);
                      pppppppcVar30 = (code *******)0x0;
                      pppppppcVar29 = param_6;
                      param_4 = (code *******)(*(code *)pppppppcVar31)(param_5);
                      if (local_d8 != (code *******)0x0) {
                        if (param_4 == (code *******)0x0) goto LAB_00055da8;
                        break;
                      }
                      pppppppcVar29 = local_4c;
                    } while (param_4 == (code *******)0x0);
                  }
                  pppppppcVar15 = (code *******)((uint)unaff_s7 ^ (uint)param_4);
                  pppppppcVar42 = unaff_s7;
                  pppppppcVar14 = local_138;
                  if ((bVar1) &&
                     (pppppppcVar42 = pppppppcVar15, pppppppcVar14 = unaff_s5,
                     pppppppcVar15 != (code *******)0x0)) {
                    bVar1 = false;
                    pppppppcVar14 = local_138;
                  }
                  local_138 = pppppppcVar14;
                  unaff_s7 = param_4;
                  if ((((uint)param_4[0xd] & 0x8000000) != 0) &&
                     ((((uint)param_4[0xd] & 0x1000000) == 0 ||
                      (pppppppcVar29 = param_4, pppppppcVar30 = local_8c,
                      iVar18 = FUN_00049440(&local_b4), iVar18 != 0)))) {
                    unaff_s7 = pppppppcVar42;
                    unaff_s8 = local_8c;
                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;
                    pppppppcVar28 = (code *******)0x1;
                    local_144 = (code *******)0x0;
                    unaff_s7 = param_4;
                  }
                }
LAB_00055da8:
                if (local_144 != (code *******)0x0) {
                  *local_144 = (code ******)((int)local_138 + (int)*local_144);
                }
              }
              else {
                param_4 = unaff_s7 + 1;
                pppppppcVar30 = (code *******)0x0;
                pppppppcVar29 = param_4;
                local_d8 = (code *******)FUN_00047a44(&local_b4);
                unaff_s8 = local_d8;
                if (local_d8 == (code *******)0x0) {
                  if (((uint)unaff_s7[0xd] & 0x2000000) == 0) {
                    pppppppcVar29 = param_4;
                    bVar1 = false;
                  }
                  else {
                    pppppppcVar29 = param_4;
                    local_d8 = (code *******)FUN_00052d84(&local_b4);
                    unaff_s8 = local_d8;
                    if (local_d8 != (code *******)0x0) goto LAB_00055dbc;
                    bVar1 = false;
                  }
                  goto LAB_00054d50;
                }
              }
LAB_00055dbc:
              if (unaff_s8 == (code *******)0xffffffff) {
LAB_00055b04:
                FUN_0004b7e8(&local_b4);
LAB_00055b1c:
                local_dc = (code *******)((int)pppppppcVar24 + (int)local_dc);
                if ((int)pppppppcVar25 <= (int)local_dc) goto code_r0x00055b38;
                local_150 = (code *******)0x1;
                goto LAB_000557e4;
              }
              if (unaff_s8 == (code *******)&SUB_fffffffe) {
                local_150 = (code *******)0xc;
                goto LAB_000557e4;
              }
              local_58 = unaff_s8;
              if (((uint)param_1[7] & 0x8000000) == 0) {
                if (pppppppcVar3 < (code *******)0x2) {
                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055c08;
                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];
                  pppppppcVar30 = unaff_s8;
                  local_54 = (code *******)FUN_00049440(&local_b4);
                }
                else {
                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];
                  pppppppcVar30 = unaff_s8;
                  local_54 = (code *******)FUN_00049440(&local_b4);
                }
                if (pppppppcVar3 < (code *******)0x2) {
LAB_00055c6c:
                  pppppppcVar28 = pppppppcVar33;
                  unaff_s4 = local_60;
                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055548;
                }
                else {
                  cVar23 = *(code *)(pppppppcVar38 + 0x16);
LAB_00055c20:
                  pppppppcVar28 = pppppppcVar33;
                  if (-1 < (char)cVar23) goto LAB_00055c6c;
                }
                pppppppcVar31 = local_54;
                pppppppcVar42 = local_60;
                unaff_s4 = pppppppcVar42;
                if (unaff_s8 < (code *******)0x3fffffff) {
                  param_4 = (code *******)((int)((int)unaff_s8 + 1) * 4);
                  unaff_s5 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);
                  if (unaff_s5 == (code *******)0x0) {
LAB_00055b9c:
                    (*(code *)PTR_free_00079c24)(unaff_s5);
                    local_150 = (code *******)0xc;
                    pppppppcVar33 = pppppppcVar28;
                  }
                  else {
                    pppppppcVar29 = (code *******)&local_d0;
                    if (pppppppcVar42[0x13] == (code ******)0x0) {
                      local_cc = (code *******)0x0;
                      local_c8 = pppppppcVar31;
                      local_c0 = 0;
                      local_bc = 0;
                      local_b8 = 0;
                      local_d0 = unaff_s5;
                      local_c4 = unaff_s8;
                      param_5 = (code *******)FUN_0005421c(&local_b4);
                      (*(code *)PTR_free_00079c24)(local_b8);
                      if (param_5 == (code *******)0x0) {
                        param_4 = (code *******)*unaff_s5;
                        if (param_4 == (code *******)0x0) {
LAB_00055b70:
                          (*(code *)PTR_free_00079c24)(unaff_s5);
                          (*(code *)PTR_free_00079c24)(param_4);
                          pppppppcVar33 = pppppppcVar28;
                          goto LAB_00055b04;
                        }
LAB_00055528:
                        (*(code *)PTR_free_00079c24)(local_50);
                        pppppppcVar33 = pppppppcVar28;
                        unaff_s4 = pppppppcVar42;
                        local_58 = unaff_s8;
                        local_54 = pppppppcVar31;
                        local_50 = unaff_s5;
                        goto LAB_00055548;
                      }
LAB_00055acc:
                      param_4 = (code *******)0x0;
                      pppppppcVar33 = pppppppcVar28;
                      unaff_s4 = pppppppcVar42;
                    }
                    else {
                      param_4 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);
                      if (param_4 == (code *******)0x0) goto LAB_00055b9c;
                      unaff_s7 = (code *******)&local_d0;
                      pcVar8 = (code *)(PTR_DAT_000799a4 + 0x421c);
                      pcVar9 = (code *)(PTR_DAT_000799a4 + -0x6bc0);
                      pppppppcVar33 = pppppppcVar28;
                      while( true ) {
                        pppppppcVar28 = (code *******)((int)unaff_s8 + 1);
                        param_6 = (code *******)((int)pppppppcVar28 * 4);
                        pppppppcVar30 = param_6;
                        (*(code *)PTR_memset_00079b00)(param_4,0);
                        local_c0 = 0;
                        local_bc = 0;
                        local_b8 = 0;
                        pppppppcVar29 = unaff_s7;
                        local_d0 = unaff_s5;
                        local_cc = param_4;
                        local_c8 = pppppppcVar31;
                        local_c4 = unaff_s8;
                        param_5 = (code *******)(*pcVar8)(&local_b4);
                        (*(code *)PTR_free_00079c24)(local_b8);
                        unaff_s4 = pppppppcVar28;
                        if (param_5 != (code *******)0x0) break;
                        if ((*unaff_s5 != (code ******)0x0) ||
                           (param_6 = param_6 + -1, *param_4 != (code ******)0x0)) {
                          pppppppcVar29 = unaff_s5;
                          pppppppcVar30 = param_4;
                          param_5 = (code *******)FUN_000520d0(pppppppcVar42);
                          (*(code *)PTR_free_00079c24)(param_4);
                          if (param_5 != (code *******)0x0) goto LAB_00055acc;
                          goto LAB_00055528;
                        }
                        param_6 = (code *******)((int)local_50 + (int)param_6);
                        do {
                          while( true ) {
                            unaff_s8 = (code *******)((int)unaff_s8 + -1);
                            if ((int)unaff_s8 < 0) goto LAB_00055b70;
                            pppppppcVar29 = (code *******)param_6[-1];
                            if (pppppppcVar29 != (code *******)0x0) break;
                            param_6 = param_6 + -1;
                          }
                          param_6 = param_6 + -1;
                        } while (((uint)pppppppcVar29[0xd] & 0x8000000) == 0);
                        pppppppcVar31 = (code *******)(*pcVar9)(&local_b4,pppppppcVar29,unaff_s8);
                        pppppppcVar33 = pppppppcVar28;
                      }
                    }
                    (*(code *)PTR_free_00079c24)(unaff_s5);
                    (*(code *)PTR_free_00079c24)(param_4);
                    local_150 = param_5;
                    if (param_5 == (code *******)0x1) goto LAB_00055b04;
                  }
                }
                else {
                  local_150 = (code *******)0xc;
                  pppppppcVar33 = pppppppcVar28;
                }
                goto LAB_000557e4;
              }
              if (pppppppcVar38[0x13] != (code ******)0x0) {
                pppppppcVar29 = (code *******)local_50[(int)unaff_s8];
                pppppppcVar30 = unaff_s8;
                local_54 = (code *******)FUN_00049440(&local_b4);
                goto LAB_00055c6c;
              }
LAB_00055c08:
              if ((((uint)param_1[7] & 0x8000000) == 0) && ((code *******)0x1 < pppppppcVar3)) {
                cVar23 = *(code *)(pppppppcVar38 + 0x16);
                goto LAB_00055c20;
              }
LAB_00055548:
              if (pppppppcVar3 == (code *******)0x0) goto LAB_000557e4;
              if (pppppppcVar3 < (code *******)0x2) {
                *param_8 = (code ******)0x0;
                param_8[1] = (code ******)local_58;
                goto LAB_000555ac;
              }
              pppppppcVar29 = param_8 + 2;
              do {
                pppppppcVar29[1] = (code ******)0xffffffff;
                *pppppppcVar29 = (code ******)0xffffffff;
                pppppppcVar29 = pppppppcVar29 + 2;
              } while (pppppppcVar29 != param_8 + (int)pppppppcVar3 * 2);
              *param_8 = (code ******)0x0;
              param_8[1] = (code ******)local_58;
              if (((uint)param_1[7] & 0x8000000) != 0) {
LAB_000555ac:
                pppppppcVar33 = param_8;
                do {
                  pppppppcVar29 = (code *******)*pppppppcVar33;
                  if (pppppppcVar29 != (code *******)0xffffffff) {
                    if (local_68 != '\0') {
                      pppppppcVar34 = local_94;
                      if (pppppppcVar29 != local_98) {
                        pppppppcVar34 = *(code ********)(local_a8 + (int)pppppppcVar29 * 4);
                      }
                      *pppppppcVar33 = (code ******)pppppppcVar34;
                      pppppppcVar29 = local_94;
                      if (local_98 != (code *******)pppppppcVar33[1]) {
                        pppppppcVar29 = *(code ********)(local_a8 + (int)pppppppcVar33[1] * 4);
                      }
                      pppppppcVar33[1] = (code ******)pppppppcVar29;
                    }
                    *pppppppcVar33 = (code ******)((int)local_dc + (int)*pppppppcVar33);
                    pppppppcVar29 = (code *******)((int)local_dc + (int)pppppppcVar33[1]);
                    pppppppcVar33[1] = (code ******)pppppppcVar29;
                  }
                  pppppppcVar33 = pppppppcVar33 + 2;
                } while (pppppppcVar33 != param_8 + (int)pppppppcVar3 * 2);
                if (0 < local_118) {
                  pppppppcVar33 = param_8 + (int)pppppppcVar3 * 2;
                  do {
                    *pppppppcVar33 = (code ******)0xffffffff;
                    pppppppcVar33[1] = (code ******)0xffffffff;
                    pppppppcVar33 = pppppppcVar33 + 2;
                  } while (pppppppcVar33 != param_8 + (int)param_7 * 2);
                }
                pppppppcVar30 = local_dc;
                pppppppcVar33 = param_8;
                local_150 = pppppppcVar6;
                if (pppppppcVar38[0x21] != (code ******)0x0) {
                  pppppppcVar30 = (code *******)((int)pppppppcVar3 + -1);
                  pppppppcVar34 = (code *******)0x0;
                  pppppppcVar3 = param_8;
                  while( true ) {
                    pppppppcVar29 = (code *******)((int)pppppppcVar34 * 4);
                    if (pppppppcVar30 == pppppppcVar34) break;
                    if (*(code ********)((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) !=
                        pppppppcVar34) {
                      pppppppcVar3[2] =
                           param_8[(int)((int)*(code ********)
                                               ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1)
                                   * 2];
                      pppppppcVar3[3] =
                           param_8[((int)*(code ******)
                                          ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1) * 2 +
                                   1];
                    }
                    pppppppcVar34 = (code *******)((int)pppppppcVar34 + 1);
                    pppppppcVar3 = pppppppcVar3 + 2;
                  }
                }
                goto LAB_000557e4;
              }
              if ((char)*(code *)(pppppppcVar38 + 0x16) < '\0') {
                local_168 = (uint)(0 < (int)pppppppcVar38[0x13]);
              }
              else {
                local_168 = 0;
              }
              pppppppcVar29 = &local_b4;
              pppppppcVar30 = pppppppcVar3;
              pppppppcVar33 = param_8;
              local_150 = (code *******)FUN_0004f4a0(param_1);
              if (local_150 == (code *******)0x0) goto LAB_000555ac;
            }
          }
          else if (local_90 < 0x3fffffff) {
            local_50 = (code *******)(*(code *)PTR_malloc_00079b54)((local_90 + 1) * 4);
            if (local_50 != (code *******)0x0) goto LAB_00055a40;
            local_150 = (code *******)0xc;
            param_6 = pppppppcVar36;
          }
          else {
            local_150 = (code *******)0xc;
            param_6 = pppppppcVar36;
          }
        }
        else {
          unaff_s5 = (code *******)((int)ppppppcVar35 * 8);
          if (pppppppcVar36 < (code *******)0xccccccd) {
            unaff_s4 = (code *******)(*(code *)PTR_malloc_00079b54)((int)ppppppcVar35 * 0x28);
            local_40 = unaff_s4;
            local_30 = (*(code *)PTR_malloc_00079b54)(unaff_s5);
            if ((unaff_s4 != (code *******)0x0) && (local_30 != 0)) goto LAB_000559f0;
          }
          local_150 = (code *******)0xc;
          param_6 = pppppppcVar36;
        }
LAB_000557e4:
        (*(code *)PTR_free_00079c24)(local_50);
        param_1 = pppppppcVar30;
        if (pppppppcVar38[0x13] != (code ******)0x0) {
          FUN_0004b7e8(&local_b4);
          (*(code *)PTR_free_00079c24)(local_30);
          (*(code *)PTR_free_00079c24)(local_40);
          param_1 = pppppppcVar30;
        }
        FUN_0004b2bc(&local_b4);
        pppppppcStack_1a0 = param_4;
        pppppppcStack_19c = pppppppcVar31;
      }
    }
  }
  if (local_2c == *(code ********)PTR___stack_chk_guard_00079c10) {
    return local_150;
  }
  pcVar4 = FUN_00055e64;
  pppppppcVar3 = local_2c;
  puVar41 = PTR___stack_chk_fail_00079bd0;
  (*(code *)PTR___stack_chk_fail_00079bd0)();
  iStack_1a4 = **(int **)(puVar41 + 0x23dac);
  pppppppcStack_20c = (code *******)0x0;
  pppppppcVar3[3] = (code ******)pppppppcVar33;
  pppppppcVar3[2] = (code ******)0x0;
  pppppppcVar3[6] = (code ******)0x0;
  *(byte *)(pppppppcVar3 + 7) = (byte)*(code *)(pppppppcVar3 + 7) & 9;
  pppppppcVar34 = (code *******)*pppppppcVar3;
  pppppppcStack_198 = param_5;
  pppppppcStack_194 = param_6;
  pppppppcStack_190 = unaff_s4;
  pppppppcStack_18c = unaff_s5;
  pppppppcStack_188 = pppppppcVar38;
  pppppppcStack_184 = unaff_s7;
  pppppppcStack_180 = unaff_s8;
  pcStack_17c = pcVar4;
  if (pppppppcVar3[1] < (code ******)0xa0) {
    pppppppcVar38 = (code *******)0xa0;
    pppppppcVar31 = param_1;
    pppppppcVar34 = (code *******)(**(code **)(puVar41 + 0x23cf8))(pppppppcVar34,0xa0);
    if (pppppppcVar34 == (code *******)0x0) {
      pppppppcVar29 = (code *******)0xc;
      goto LAB_00056cfc;
    }
    pppppppcVar3[1] = (code ******)0xa0;
    *pppppppcVar3 = (code ******)pppppppcVar34;
  }
  pppppppcVar3[2] = (code ******)0xa0;
  pppppppcVar31 = (code *******)0xa0;
  pppppppcVar38 = (code *******)0x0;
  (**(code **)(puVar41 + 0x23c9c))(pppppppcVar34,0);
  pppppppcVar34[0x10] = (code ******)0x1f;
  if (param_1 < (code *******)0xaaaaaaa) {
    pppppppcVar34[1] = (code ******)((int)param_1 + 1);
    ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23cf0))(((int)param_1 + 1) * 8);
    *pppppppcVar34 = ppppppcVar32;
    if (param_1 == (code *******)0x0) {
      pppppppcVar30 = (code *******)0x1;
    }
    else {
      pppppppcVar30 = (code *******)0x1;
      do {
        pppppppcVar30 = (code *******)((int)pppppppcVar30 << 1);
      } while (pppppppcVar30 <= param_1);
    }
    pppppppcVar38 = pppppppcVar30;
    ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23b8c))(0xc,pppppppcVar30);
    pppppppcVar34[8] = ppppppcVar32;
    pppppppcVar34[0x11] = (code ******)((int)pppppppcVar30 + -1);
    ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23d2c))();
    pppppppcVar34[0x17] = ppppppcVar32;
    pbVar17 = (byte *)(**(code **)(puVar41 + 0x23c2c))(0xe);
    if ((((*pbVar17 & 0xdf) == 0x55) && ((pbVar17[1] & 0xdf) == 0x54)) &&
       (pppppppcVar38 = (code *******)0x4, (pbVar17[2] & 0xdf) == 0x46)) {
      iVar18 = 3;
      if (pbVar17[3] == 0x2d) {
        iVar18 = 4;
      }
      pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23754) + 0x71b4);
      iVar18 = (**(code **)(puVar41 + 0x23dfc))(pbVar17 + iVar18,pppppppcVar38);
      if (iVar18 == 0) {
        *(byte *)(pppppppcVar34 + 0x16) = (byte)*(code *)(pppppppcVar34 + 0x16) & 0xdf | 0x20;
      }
    }
    *(byte *)(pppppppcVar34 + 0x16) = (byte)*(code *)(pppppppcVar34 + 0x16) & 0xef;
    if (1 < (int)pppppppcVar34[0x17]) {
      if (((uint)pppppppcVar34[0x16] & 0x20000000) == 0) {
        pppppppcVar38 = (code *******)0x1;
        ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23b8c))(0x20,1);
        pppppppcVar34[0xf] = ppppppcVar32;
        if (ppppppcVar32 == (code ******)0x0) goto LAB_00056e5c;
        iVar18 = 0;
        do {
          uVar16 = iVar18 << 3;
          uVar7 = 0;
          do {
            uVar19 = (**(code **)(puVar41 + 0x23c88))(uVar16);
            if (uVar19 != 0xffffffff) {
              pppppppcVar38 = *(code ********)((int)pppppppcVar34[0xf] + iVar18);
              *(uint *)((int)pppppppcVar34[0xf] + iVar18) =
                   (uint)pppppppcVar38 | 1 << (uVar7 & 0x1f);
            }
            if (((uVar16 & 0xffffff80) == 0) && (uVar19 != uVar16)) {
              *(byte *)(pppppppcVar34 + 0x16) = (byte)*(code *)(pppppppcVar34 + 0x16) & 0xef | 0x10;
            }
            uVar7 = uVar7 + 1;
            uVar16 = uVar16 + 1;
          } while (uVar7 != 0x20);
          iVar18 = iVar18 + 4;
        } while (iVar18 != 0x20);
      }
      else {
        pppppppcVar34[0xf] = (code ******)(*(int *)(puVar41 + 0x23754) + 0x6ee4);
      }
    }
    if ((*pppppppcVar34 == (code ******)0x0) || (pppppppcVar34[8] == (code ******)0x0))
    goto LAB_00056e5c;
    pppppppcStack_20c = (code *******)0x0;
    if (*(int *)(puVar41 + 0x23c78) == 0) {
LAB_00056054:
      ppppppcVar32 = pppppppcVar3[5];
      uVar16 = (uint)pppppppcVar33 & 0x400000;
      bVar1 = uVar16 != 0;
      pppppppcVar31 = (code *******)0x4c;
      pppppppcVar38 = (code *******)0x0;
      (**(code **)(puVar41 + 0x23c9c))(apppppppcStack_1f4,0);
      cStack_1ad = ppppppcVar32 != (code ******)0x0 || bVar1;
      ppppppcStack_1a8 = pppppppcVar34[0x17];
      bStack_1af = (byte)((uint)((int)pppppppcVar34[0x16] << 2) >> 0x1f);
      bStack_1ae = (byte)((uint)((int)pppppppcVar34[0x16] << 3) >> 0x1f);
      pppppppcStack_1f8 = pppppppcVar29;
      pppppppcStack_1cc = param_1;
      pppppppcStack_1c8 = param_1;
      pppppppcStack_1c4 = param_1;
      pppppppcStack_1c0 = param_1;
      ppppppcStack_1b8 = ppppppcVar32;
      uStack_1b0 = bVar1;
      if (0 < (int)param_1) {
        pppppppcVar38 = (code *******)((int)param_1 + 1);
        pppppppcVar30 = (code *******)FUN_00046d2c(&pppppppcStack_1f8,pppppppcVar38);
        if (pppppppcVar30 == (code *******)0x0) goto LAB_000560cc;
        goto LAB_00056168;
      }
LAB_000560cc:
      if (cStack_1ad != '\0') {
        pppppppcVar29 = apppppppcStack_1f4[0];
      }
      apppppppcStack_1f4[0] = pppppppcVar29;
      if (uVar16 == 0) {
        if ((int)pppppppcVar34[0x17] < 2) {
          if (ppppppcVar32 != (code ******)0x0) {
            FUN_00045dc8();
          }
        }
        else {
          FUN_00047cb0(&pppppppcStack_1f8);
        }
      }
      else {
        if (1 < (int)pppppppcVar34[0x17]) {
          iVar18 = *(int *)(puVar41 + 0x23abc);
          do {
            pppppppcVar30 = (code *******)FUN_00048714(&pppppppcStack_1f8);
            if (pppppppcVar30 != (code *******)0x0) break;
            if (((int)param_1 <= iStack_1d8) ||
               (pppppppcVar38 = (code *******)(iStack_1d4 << 1),
               (int)pppppppcVar34[0x17] + iStack_1dc < iStack_1d4)) goto LAB_000563d0;
            pppppppcVar30 =
                 (code *******)(*(code *)(iVar18 + 0x6d2c))(&pppppppcStack_1f8,pppppppcVar38);
          } while (pppppppcVar30 == (code *******)0x0);
          goto LAB_00056168;
        }
        FUN_00047be4(&pppppppcStack_1f8);
      }
LAB_000563d0:
      pppppppcStack_20c = (code *******)0x0;
      pppppppcVar3[6] = (code ******)0x0;
      ppppppcVar32 = *pppppppcVar3;
      ppppppcVar32[0x20] = (code *****)pppppppcVar33;
      FUN_00049e40(&ppppppcStack_204,&pppppppcStack_1f8,(uint)pppppppcVar33 | 0x800000);
      pppppppcVar38 = pppppppcVar3;
      pppppppcVar29 =
           (code *******)
           FUN_00051868(&pppppppcStack_1f8,pppppppcVar3,&ppppppcStack_204,pppppppcVar33,0,
                        &pppppppcStack_20c);
      if (pppppppcStack_20c == (code *******)0x0) {
        pppppppcVar31 = (code *******)0x0;
        pppppppcVar38 = (code *******)0x0;
        pppppppcVar33 = (code *******)FUN_000470f0(ppppppcVar32,0,0,2);
        pppppppcVar30 = pppppppcVar33;
        if (pppppppcVar29 != (code *******)0x0) {
LAB_000564b0:
          pppppppcVar31 = pppppppcVar33;
          pppppppcVar30 = (code *******)FUN_000470f0(ppppppcVar32,pppppppcVar29,pppppppcVar33,0x10);
          pppppppcVar38 = pppppppcVar29;
        }
        if ((pppppppcVar33 == (code *******)0x0) ||
           (pcVar4 = *(code **)(puVar41 + 0x23cf0), pppppppcVar30 == (code *******)0x0)) {
          pppppppcStack_20c = (code *******)0xc;
          goto LAB_000566f4;
        }
        pppppppcVar34[0xd] = (code ******)pppppppcVar30;
        pppppppcVar29 = (code *******)*pppppppcVar3;
        ppppppcVar39 = pppppppcVar29[1];
        iVar18 = (int)ppppppcVar39 << 2;
        ppppppcVar32 = (code ******)(*pcVar4)(iVar18);
        pppppppcVar29[3] = ppppppcVar32;
        ppppppcVar35 = (code ******)(**(code **)(puVar41 + 0x23cf0))(iVar18);
        pppppppcVar29[4] = ppppppcVar35;
        iVar18 = (int)ppppppcVar39 * 0xc;
        ppppppcVar39 = (code ******)(**(code **)(puVar41 + 0x23cf0))(iVar18);
        pppppppcVar29[5] = ppppppcVar39;
        ppppppcVar20 = (code ******)(**(code **)(puVar41 + 0x23cf0))(iVar18);
        pppppppcVar29[6] = ppppppcVar20;
        if (ppppppcVar32 == (code ******)0x0) {
          pppppppcVar30 = (code *******)0xc;
        }
        else if (ppppppcVar35 == (code ******)0x0) {
          pppppppcVar30 = (code *******)0xc;
        }
        else if (ppppppcVar39 == (code ******)0x0) {
          pppppppcVar30 = (code *******)0xc;
        }
        else if (ppppppcVar20 == (code ******)0x0) {
          pppppppcVar30 = (code *******)0xc;
        }
        else {
          ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23cf0))((int)pppppppcVar3[6] << 2);
          pppppppcVar29[0x21] = ppppppcVar32;
          if (ppppppcVar32 != (code ******)0x0) {
            ppppppcVar32 = (code ******)0x0;
            if (pppppppcVar3[6] != (code ******)0x0) {
              do {
                pppppppcVar29[0x21][(int)ppppppcVar32] = (code *****)ppppppcVar32;
                ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);
              } while (ppppppcVar32 < pppppppcVar3[6]);
            }
            FUN_00046050(pppppppcVar29[0xd],*(int *)(puVar41 + 0x23abc) + 0x60e8,pppppppcVar29);
            ppppppcVar32 = pppppppcVar3[6];
            if (ppppppcVar32 == (code ******)0x0) {
LAB_00056704:
              (**(code **)(puVar41 + 0x23dc0))(pppppppcVar29[0x21]);
              pppppppcVar29[0x21] = (code ******)0x0;
            }
            else {
              ppppppcVar35 = pppppppcVar29[0x21];
              if (*ppppppcVar35 == (code *****)0x0) {
                ppppppcVar39 = (code ******)0x0;
                do {
                  ppppppcVar35 = ppppppcVar35 + 1;
                  ppppppcVar39 = (code ******)((int)ppppppcVar39 + 1);
                  if (ppppppcVar32 == ppppppcVar39) {
                    if (ppppppcVar32 == ppppppcVar39) goto LAB_00056704;
                    break;
                  }
                } while ((code ******)*ppppppcVar35 == ppppppcVar39);
              }
            }
          }
          pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23abc) + 0x73a4);
          pppppppcVar30 = (code *******)FUN_00045fb4(pppppppcVar29[0xd],pppppppcVar38,pppppppcVar3);
          pppppppcVar31 = pppppppcVar29;
          if (pppppppcVar30 == (code *******)0x0) {
            pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23b40) + -0x5be4);
            pppppppcVar30 = (code *******)FUN_00045fb4(pppppppcVar29[0xd],pppppppcVar38);
            if (pppppppcVar30 == (code *******)0x0) {
              FUN_00046050(pppppppcVar29[0xd],*(int *)(puVar41 + 0x23abc) + 0x61b4);
              pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23b40) + -0x4614);
              pppppppcVar30 = (code *******)FUN_00046050(pppppppcVar29[0xd],pppppppcVar38);
              if (pppppppcVar30 == (code *******)0x0) {
                uVar7 = 0;
                iVar18 = *(int *)(puVar41 + 0x23b40);
                pppppppcVar33 = (code *******)0x0;
LAB_00056744:
                if ((code *******)pppppppcVar29[2] != pppppppcVar33) {
LAB_00056750:
                  if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {
                    pppppppcVar38 = pppppppcVar29;
                    pppppppcVar31 = pppppppcVar33;
                    pppppppcVar30 =
                         (code *******)
                         (*(code *)(iVar18 + -0x561c))
                                   (&ppppppcStack_204,pppppppcVar29,pppppppcVar33,1);
                    if (pppppppcVar30 != (code *******)0x0) goto LAB_00056168;
                    if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {
                      (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);
                      uVar7 = 1;
                    }
                  }
                  pppppppcVar33 = (code *******)((int)pppppppcVar33 + 1);
                  goto LAB_00056744;
                }
                if (uVar7 != 0) {
                  uVar7 = 0;
                  pppppppcVar33 = (code *******)0x0;
                  goto LAB_00056750;
                }
                if (((((uint)pppppppcVar3[7] & 0x8000000) == 0) &&
                    (pppppppcVar3[6] != (code ******)0x0)) &&
                   ((char)*(code *)(pppppppcVar29 + 0x16) < '\0')) {
                  ppppppcVar32 = pppppppcVar29[2];
                }
                else {
                  if (pppppppcVar29[0x13] == (code ******)0x0) goto LAB_000568f0;
                  ppppppcVar32 = pppppppcVar29[2];
                }
                ppppppcVar35 = (code ******)
                               (**(code **)(puVar41 + 0x23cf0))((int)ppppppcVar32 * 0xc);
                pppppppcVar29[7] = ppppppcVar35;
                if (ppppppcVar35 == (code ******)0x0) {
                  pppppppcVar30 = (code *******)0xc;
                  goto LAB_00056168;
                }
                if (ppppppcVar32 != (code ******)0x0) {
                  iVar18 = 0;
                  ppppppcVar32 = (code ******)0x0;
                  do {
                    puVar21 = (undefined1 *)((int)pppppppcVar29[7] + iVar18);
                    *puVar21 = 0;
                    puVar21[1] = 0;
                    puVar21[2] = 0;
                    puVar21[3] = 0;
                    puVar21[4] = 0;
                    puVar21[5] = 0;
                    puVar21[6] = 0;
                    puVar21[7] = 0;
                    puVar21[8] = 0;
                    puVar21[9] = 0;
                    puVar21[10] = 0;
                    puVar21[0xb] = 0;
                    ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);
                    iVar18 = iVar18 + 0xc;
                  } while (ppppppcVar32 < pppppppcVar29[2]);
                  iVar18 = *(int *)(puVar41 + 0x23abc);
                  if (pppppppcVar29[2] != (code ******)0x0) {
                    iVar43 = 0;
                    pppppppcStack_218 = (code *******)0x0;
                    do {
                      piVar5 = *(int **)((int)pppppppcVar29[6] + iVar43 + 8);
                      if (0 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4)) {
                        iVar37 = 0;
                        do {
                          pppppppcVar38 = pppppppcStack_218;
                          iVar22 = (*(code *)(iVar18 + 0x6e30))
                                             (pppppppcVar29[7] + *piVar5 * 3,pppppppcStack_218);
                          pppppppcVar30 = (code *******)0xc;
                          if (iVar22 == 0) goto LAB_00056168;
                          iVar37 = iVar37 + 1;
                          piVar5 = piVar5 + 1;
                        } while (iVar37 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4));
                      }
                      pppppppcStack_218 = (code *******)((int)pppppppcStack_218 + 1);
                      iVar43 = iVar43 + 0xc;
                    } while (pppppppcStack_218 < pppppppcVar29[2]);
                  }
                }
LAB_000568f0:
                pppppppcStack_20c = (code *******)0x0;
                if (((((uint)pppppppcVar34[0x16] & 0x20000000) != 0) && (uVar16 == 0)) &&
                   (pppppppcVar3[5] == (code ******)0x0)) {
                  if (pppppppcVar34[2] != (code ******)0x0) {
                    pppppppcVar31 = (code *******)(*(int *)(puVar41 + 0x23754) + 0x6e4c);
                    if (*(byte *)(*pppppppcVar34 + 1) < 0xd) {
                    /* WARNING: Could not recover jumptable at 0x00056a60. Too many branches */
                    /* WARNING: Treating indirect jump as call */
                      pppppppcVar29 =
                           (code *******)
                           (*(code *)(puVar41 +
                                     (int)(pppppppcVar31[*(byte *)(*pppppppcVar34 + 1)] + 0xadc7)))
                                     ();
                      return pppppppcVar29;
                    }
                    (**(code **)(puVar41 + 0x23bc4))(0);
                    if (uVar7 != 0) {
                      pppppppcVar31 = (code *******)&DAT_00000007;
                      ppppppcVar32 = (code ******)0x0;
                      do {
                        ppppppcVar35 = *pppppppcVar34 + (int)ppppppcVar32 * 2;
                        if (*(char *)(ppppppcVar35 + 1) == '\x01') {
                          if (*(char *)ppppppcVar35 < '\0') {
                            ppppppcVar35[1] = (code *****)((uint)ppppppcVar35[1] & 0xfffffbff);
                          }
                        }
                        else if (*(char *)(ppppppcVar35 + 1) == '\x05') {
                          *(char *)(ppppppcVar35 + 1) = '\a';
                        }
                        ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);
                      } while (ppppppcVar32 < pppppppcVar34[2]);
                    }
                  }
                  pppppppcVar34[0x17] = (code ******)0x1;
                  if (0 < (int)pppppppcVar34[0x13]) {
                    uVar7 = 1;
                  }
                  *(byte *)(pppppppcVar34 + 0x16) =
                       (byte)*(code *)(pppppppcVar34 + 0x16) & 0x9f | (byte)((uVar7 & 1) << 6);
                }
                ppppppcVar32 = (code ******)pppppppcVar34[0xd][3][7];
                pppppppcVar34[0x12] = ppppppcVar32;
                pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppppcVar32 * 3);
                pppppppcVar33 = (code *******)FUN_000483e8(&ppppppcStack_204,pppppppcVar38);
                pppppppcVar29 = pppppppcVar33;
                pppppppcStack_208 = pppppppcVar33;
                if (pppppppcVar33 == (code *******)0x0) {
                  if ((0 < (int)pppppppcVar34[0x13]) && (0 < iStack_200)) {
                    iVar18 = *(int *)(puVar41 + 0x23abc);
                    iVar43 = *(int *)(puVar41 + 0x23abc);
                    pppppppcVar29 = (code *******)0x0;
                    do {
                      pppppppcVar31 =
                           (code *******)(*pppppppcVar34 + piStack_1fc[(int)pppppppcVar29] * 2);
                      if (*(code *)(pppppppcVar31 + 1) == (code)0x4) {
                        iVar37 = 0;
                        piVar5 = piStack_1fc;
                        if (iStack_200 < 1) {
LAB_00056b8c:
                          if (iStack_200 != iVar37) {
                            ppppcVar40 = *pppppppcVar34[5][piStack_1fc[(int)pppppppcVar29] * 3 + 2];
                            iVar37 = (*(code *)(iVar18 + 0x5ea8))(&ppppppcStack_204,ppppcVar40);
                            if (iVar37 == 0) {
                              pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppcVar40 * 3)
                              ;
                              pppppppcVar29 =
                                   (code *******)
                                   (*(code *)(iVar43 + 0x7f1c))(&ppppppcStack_204,pppppppcVar38);
                              if (pppppppcVar29 != (code *******)0x0) goto LAB_00056cb8;
                            }
                          }
                        }
                        else {
                          do {
                            ppppppcVar32 = *pppppppcVar34 + *piVar5 * 2;
                            if ((*(char *)(ppppppcVar32 + 1) == '\t') &&
                               ((code ******)*ppppppcVar32 == *pppppppcVar31)) goto LAB_00056b8c;
                            iVar37 = iVar37 + 1;
                            piVar5 = piVar5 + 1;
                          } while (iStack_200 != iVar37);
                        }
                      }
                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1);
                    } while ((int)pppppppcVar29 < iStack_200);
                  }
                  pppppppcVar31 = &ppppppcStack_204;
                  pppppppcVar38 = pppppppcVar34;
                  ppppppcVar32 = (code ******)
                                 FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,0);
                  pppppppcVar34[9] = ppppppcVar32;
                  pppppppcVar29 = pppppppcStack_208;
                  if (ppppppcVar32 != (code ******)0x0) {
                    if (((uint)ppppppcVar32[0xd] & 0x1000000) == 0) {
                      pppppppcVar34[0xc] = ppppppcVar32;
                      pppppppcVar34[0xb] = ppppppcVar32;
                      pppppppcVar34[10] = ppppppcVar32;
                    }
                    else {
                      pppppppcVar31 = &ppppppcStack_204;
                      ppppppcVar32 = (code ******)
                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,1);
                      pppppppcVar34[10] = ppppppcVar32;
                      ppppppcVar32 = (code ******)
                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,2);
                      pppppppcVar34[0xb] = ppppppcVar32;
                      pppppppcVar38 = pppppppcVar34;
                      ppppppcVar32 = (code ******)
                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,6);
                      pppppppcVar34[0xc] = ppppppcVar32;
                      pppppppcVar29 = pppppppcStack_208;
                      if (((pppppppcVar34[10] == (code ******)0x0) ||
                          (pppppppcVar34[0xb] == (code ******)0x0)) ||
                         (ppppppcVar32 == (code ******)0x0)) goto LAB_00056cb8;
                    }
                    (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);
                    pppppppcVar29 = pppppppcVar33;
                  }
                }
LAB_00056cb8:
                pppppppcStack_20c = pppppppcVar29;
                FUN_0004b234(pppppppcVar3);
                FUN_0004b2bc(&pppppppcStack_1f8);
                pppppppcVar29 = pppppppcStack_20c;
                if (pppppppcStack_20c != (code *******)0x0) {
                  if (*(int *)(puVar41 + 0x23c78) != 0) {
                    (**(code **)(puVar41 + 0x23df0))(pppppppcVar34 + 0x22);
                  }
                  FUN_0004b338(pppppppcVar34);
                  *pppppppcVar3 = (code ******)0x0;
                  pppppppcVar3[1] = (code ******)0x0;
                  pppppppcVar29 = pppppppcStack_20c;
                }
                goto LAB_00056cfc;
              }
            }
          }
        }
      }
      else {
        pppppppcVar31 = (code *******)0x0;
        if (pppppppcVar29 != (code *******)0x0) {
          pppppppcVar33 = (code *******)FUN_000470f0(ppppppcVar32,0,0,2);
          goto LAB_000564b0;
        }
LAB_000566f4:
        pppppppcVar34[0xd] = (code ******)0x0;
        pppppppcVar30 = pppppppcStack_20c;
      }
LAB_00056168:
      pppppppcStack_20c = pppppppcVar30;
      FUN_0004b234(pppppppcVar3);
      FUN_0004b2bc(&pppppppcStack_1f8);
      if (*(int *)(puVar41 + 0x23c78) != 0) {
        (**(code **)(puVar41 + 0x23df0))(pppppppcVar34 + 0x22);
      }
      FUN_0004b338(pppppppcVar34);
      *pppppppcVar3 = (code ******)0x0;
      pppppppcVar3[1] = (code ******)0x0;
      pppppppcVar29 = pppppppcStack_20c;
      goto LAB_00056cfc;
    }
    pppppppcVar38 = (code *******)0x0;
    iVar18 = (**(code **)(puVar41 + 0x23d98))(pppppppcVar34 + 0x22,0);
    if (iVar18 != 0) goto LAB_00056e5c;
    if (pppppppcStack_20c == (code *******)0x0) goto LAB_00056054;
  }
  else {
LAB_00056e5c:
    pppppppcStack_20c = (code *******)0xc;
  }
  FUN_0004b338(pppppppcVar34);
  *pppppppcVar3 = (code ******)0x0;
  pppppppcVar3[1] = (code ******)0x0;
  pppppppcVar29 = pppppppcStack_20c;
LAB_00056cfc:
  if (iStack_1a4 == **(int **)(puVar41 + 0x23dac)) {
    return pppppppcVar29;
  }
  pcVar4 = *(code **)(puVar41 + 0x23d6c);
  iVar18 = iStack_1a4;
  (*pcVar4)();
  *(byte *)(pppppppcVar31 + 7) =
       (byte)*(code *)(pppppppcVar31 + 7) & 0xf6 |
       (byte)(((uint)(**(int **)(pcVar4 + 0x22b18) << 6) >> 0x1f) << 3) | 1;
  iVar18 = FUN_00055e64(pppppppcVar31,iVar18,pppppppcVar38);
  if (iVar18 == 0) {
    pppppppcVar29 = (code *******)0x0;
  }
  else {
    pppppppcVar29 =
         (code *******)
         (**(code **)(pcVar4 + 0x22d48))
                   (0,*(int *)(pcVar4 + 0x22728) + 0x6f48 +
                      *(int *)(iVar18 * 4 + *(int *)(pcVar4 + 0x22728) + 0x6f04),5);
  }
  return pppppppcVar29;
code_r0x00055b38:
  if ((int)pppppppcVar26 < (int)local_dc) goto LAB_000557a8;
  goto LAB_00055b44;
LAB_000557a8:
  local_150 = (code *******)0x1;
  goto LAB_000557e4;
LAB_00055914:
  local_150 = (code *******)0xc;
  param_4 = pppppppcVar14;
  goto LAB_000557e4;
}


lui gp,0x3
addiu gp,gp,-0x3090
addu gp,gp,t9
addiu sp,sp,-0x178
sw ra,0x174(sp)
sw s8,0x170(sp)
sw s7,0x16c(sp)
sw s6,0x168(sp)
sw s5,0x164(sp)
sw s4,0x160(sp)
sw s3,0x15c(sp)
sw s2,0x158(sp)
sw s1,0x154(sp)
sw s0,0x150(sp)
sw gp,0x18(sp)
or s1,a0,zero
sw a0,0x20(sp)
sw a1,0x48(sp)
sw a2,0x180(sp)
or s0,a3,zero
lw s2,0x188(sp)
lw s3,0x18c(sp)
lw v0,0x194(sp)
sw v0,0x88(sp)
lw v0,-0x7970(gp)
lw v0,0x0(v0)
sw v0,0x14c(sp)
lw s6,0x0(a0)
li a2,0x88
or a1,zero,zero
addiu a0,sp,0xc4
lw t9,-0x7a80(gp)
jalr t9
_nop
lw gp,0x18(sp)
sw s6,0x118(sp)
lw a0,0x10(s1)
beq a0,zero,0x000546d4
_sw a0,0x30(sp)
lbu v0,0x1c(s1)
andi v1,v0,0x10
beq v1,zero,0x000546d0
_nop
beq s0,s2,0x000546fc
_srl v0,v0,0x7
movn a0,zero,v0
b 0x000546d4
_sw a0,0x30(sp)
sw zero,0x30(sp)
lw v0,0x20(sp)
lw v0,0x18(v0)
lw v1,0x190(sp)
sltu v1,v0,v1
beq v1,zero,0x00054704
_lw v1,0x190(sp)
addiu v1,v1,-0x1
subu v0,v1,v0
b 0x00054708
_sw v0,0x60(sp)
b 0x000546d4
_sw zero,0x30(sp)
sw zero,0x60(sp)
lw a2,0x20(sp)
lw v0,0x8(a2)
beq v0,zero,0x0005589c
_li v0,0x1
lw v0,0x24(s6)
beq v0,zero,0x000558a4
_nop
lw v1,0x28(s6)
beq v1,zero,0x000558b0
_nop
lw a0,0x2c(s6)
beq a0,zero,0x000558bc
_nop
lw a1,0x30(s6)
beq a1,zero,0x000558c8
_nop
lw v0,0x8(v0)
bne v0,zero,0x00054798
_lw v0,0x190(sp)
lw v0,0x8(v1)
bne v0,zero,0x00054798
_lw v0,0x190(sp)
lw v0,0x8(a0)
beq v0,zero,0x0005477c
_nop
lbu v0,0x1c(a2)
andi v0,v0,0x1
bne v0,zero,0x00054798
_lw v0,0x190(sp)
beq s0,zero,0x00054794
_lw v0,0x190(sp)
bne s2,zero,0x000558d4
_or s0,s2,zero
b 0x00054798
_nop
or s2,s0,zero
lw v1,0x60(sp)
subu v0,v0,v1
bne v0,zero,0x00054888
_sw v0,0x64(sp)
lw s1,0x4c(s6)
sltu s1,zero,s1
lw v0,0x20(sp)
lw a3,0x14(v0)
sw a3,0x68(sp)
lw v0,0xc(v0)
ext v0,v0,0x16,0x1
lw a0,0x5c(s6)
lw a1,0x8(s6)
addiu a1,a1,0x1
slt v1,a1,a0
movn a1,a0,v1
or v1,a1,zero
lw a1,0x180(sp)
addiu a1,a1,0x1
slt a2,a1,v1
lw t0,0x48(sp)
sw t0,0xc4(sp)
lw t0,0x180(sp)
sw t0,0xf4(sp)
sw t0,0xf0(sp)
or t0,a3,zero
sw a3,0x104(sp)
sb v0,0x10c(sp)
li a3,0x1
movn v0,a3,t0
sb v0,0x10f(sp)
sw a0,0x114(sp)
lw v0,0x58(s6)
ext a0,v0,0x1d,0x1
sb a0,0x10d(sp)
ext v0,v0,0x1c,0x1
sb v0,0x10e(sp)
lw v0,0x180(sp)
sw v0,0xfc(sp)
sw v0,0xf8(sp)
movz a1,v1,a2
addiu a0,sp,0xc4
lw t9,-0x7c60(gp)
addiu t9,t9,0x6d2c
bal 0x00046d2c
_nop
lw gp,0x18(sp)
or v1,v0,zero
bne v0,zero,0x0005576c
_sw v0,0x5c(sp)
addiu v0,s6,0x60
sw v0,0x108(sp)
lw v0,0x58(s6)
ext v0,v0,0x1b,0x1
sb v0,0x112(sp)
lbu v0,0x10f(sp)
beq v0,zero,0x0005593c
_or v0,v1,zero
b 0x00055960
_sw v0,0xe0(sp)
b 0x000547b0
_li s1,0x1
lbu v0,0x58(s6)
andi v0,v0,0x40
bne v0,zero,0x00055a14
_lui v0,0x3fff
b 0x00055a40
_sw zero,0x128(sp)
li a0,0x4
slt v1,s2,s0
li v0,0x2
lw a1,0x5c(sp)
movz a1,v0,v1
lw v0,0x68(sp)
sltu v0,zero,v0
or v0,v0,a0
or v0,v0,a1
lw v1,0x54(sp)
slt v1,s0,v1
bne v1,zero,0x00055790
_lw v1,0x4c(sp)
slt v1,v1,s0
bne v1,zero,0x0005579c
_slt s0,s2,s0
sw s1,0x2c(sp)
addiu v1,sp,0x9c
movn v1,zero,s0
sw v1,0x90(sp)
sltu v1,zero,v1
sw v1,0x8c(sp)
addiu v1,v0,-0x4
sw v1,0x74(sp)
lw v0,-0x7bdc(gp)
addiu v0,v0,-0x2b7c
sw v0,0x70(sp)
sll v1,v1,0x2
lw v0,-0x7fc8(gp)
addiu v0,v0,0x6e38
addu v0,v0,v1
sw v0,0x80(sp)
b 0x00055b44
_sw s6,0x50(sp)
b 0x000548ac
_lw a0,0x5c(sp)
addiu s2,sp,0xc4
lw s1,0x5c(sp)
lw s3,0x30(sp)
lw s5,0x7c(sp)
lw s6,0x54(sp)
lw s7,0x4c(sp)
b 0x00054cd8
_lw s4,0x180(sp)
lw v0,0x9c(sp)
lw v1,0x4c(sp)
slt v1,v0,v1
beq v1,zero,0x00054a7c
_lw v1,0x48(sp)
addu v1,v1,v0
lbu v1,0x0(v1)
lw a0,0x68(sp)
addu v1,a0,v1
lbu v1,0x0(v1)
lw a0,0x30(sp)
addu v1,a0,v1
lb v1,0x0(v1)
bne v1,zero,0x00054a88
_addiu v0,v0,0x1
lw a0,0x4c(sp)
lw a2,0x30(sp)
lw a3,0x68(sp)
lw t0,0x48(sp)
beq a0,v0,0x00054bb0
_or a1,v0,zero
addu v1,t0,v0
lbu v1,0x0(v1)
addu v1,a3,v1
lbu v1,0x0(v1)
addu v1,a2,v1
lb v1,0x0(v1)
beq v1,zero,0x000549a4
_addiu v0,v0,0x1
b 0x00054a88
_sw a1,0x9c(sp)
lw v0,0x9c(sp)
lw v1,0x4c(sp)
slt v1,v0,v1
beq v1,zero,0x00054a7c
_lw v1,0x48(sp)
addu v1,v1,v0
lbu v1,0x0(v1)
lw a0,0x30(sp)
addu v1,a0,v1
lb v1,0x0(v1)
bne v1,zero,0x00054a88
_addiu v0,v0,0x1
lw a0,0x4c(sp)
lw a2,0x30(sp)
lw a3,0x48(sp)
beq a0,v0,0x00054a74
_or a1,v0,zero
addu v1,a3,v0
lbu v1,0x0(v1)
addu v1,a2,v1
lb v1,0x0(v1)
beq v1,zero,0x00054a10
_addiu v0,v0,0x1
b 0x00054a88
_sw a1,0x9c(sp)
lw v1,0x9c(sp)
lw v0,0x54(sp)
slt v0,v1,v0
bne v0,zero,0x00054a6c
_or a0,zero,zero
lw a2,0x5c(sp)
li a1,0x1
lw t0,0x30(sp)
lw a3,0x68(sp)
lw t2,0x54(sp)
lw t3,0x48(sp)
b 0x00054c40
_lw t1,0x180(sp)
b 0x00055924
_lw s6,0x50(sp)
sw v0,0x9c(sp)
lw v0,0x9c(sp)
lw v1,0x4c(sp)
beq v0,v1,0x00054bb8
_lw v1,0x180(sp)
lw a2,0x198(sp)
lw a1,0x9c(sp)
addiu a0,sp,0xc4
lw t9,0x70(sp)
jalr t9
_nop
lw gp,0x18(sp)
bne v0,zero,0x000557dc
_sw v0,0x28(sp)
li v0,0x1
lw v1,0x84(sp)
beq v1,v0,0x00054ad4
_lw v0,0xe0(sp)
beq v0,zero,0x00054ad4
_lw v0,0xcc(sp)
lw v1,0x0(v0)
li v0,-0x1
beq v1,v0,0x00055b1c
_lw v0,0x9c(sp)
sw zero,0x13c(sp)
sw zero,0x130(sp)
sw zero,0x12c(sp)
lw s0,0x118(sp)
lw v1,0xec(sp)
sw v1,0x40(sp)
sw zero,0xa0(sp)
lw s7,0x24(s0)
lbu v0,0x34(s7)
andi v0,v0,0x1
beq v0,zero,0x00054d24
_lw a2,0x11c(sp)
addiu a1,v1,-0x1
addiu a0,sp,0xc4
lw t9,-0x7bdc(gp)
addiu t9,t9,-0x6ef0
bal 0x00049110
_nop
lw gp,0x18(sp)
andi v1,v0,0x1
bne v1,zero,0x00054d18
_nop
beq v0,zero,0x00054d24
_andi v1,v0,0x6
li a0,0x6
beq v1,a0,0x00054d9c
_andi v1,v0,0x2
bne v1,zero,0x00054da4
_andi v1,v0,0x4
beq v1,zero,0x00054d24
_or a3,v0,zero
lw a2,0x28(s7)
or a1,s0,zero
addiu a0,sp,0xa0
lw t9,-0x7bdc(gp)
addiu t9,t9,-0x51cc
bal 0x0004ae34
_nop
lw gp,0x18(sp)
bne v0,zero,0x00054d24
_or s7,v0,zero
lw v1,0xa0(sp)
li v0,0xc
beq v1,v0,0x00055914
_lw s6,0x50(sp)
lw a3,-0x7fc8(gp)
addiu a3,a3,0x6eb0
li a2,0x435
lw a1,-0x7fc8(gp)
addiu a1,a1,0x712c
lw a0,-0x7fc8(gp)
addiu a0,a0,0x71a0
lw t9,-0x7b88(gp)
jalr t9
_nop
b 0x00054a78
_sw v0,0x9c(sp)
slt v1,v0,v1
beq v1,zero,0x00054c04
_lw v1,0x48(sp)
addu v0,v1,v0
lbu v0,0x0(v0)
lw v1,0x68(sp)
beq v1,zero,0x00054be0
_nop
addu v0,v1,v0
lbu v0,0x0(v0)
lw v1,0x30(sp)
addu v0,v1,v0
lb v0,0x0(v0)
bne v0,zero,0x00054a8c
_lw a2,0x198(sp)
lw s6,0x50(sp)
li v0,0x1
b 0x000557e0
_sw v0,0x28(sp)
b 0x00054bcc
_lw v0,0x5c(sp)
or v0,a2,zero
beq a3,zero,0x00054c20
_nop
addu v0,a3,v0
lbu v0,0x0(v0)
addu v0,t0,v0
lb v0,0x0(v0)
bne v0,zero,0x00054c54
_nop
addiu v1,v1,-0x1
slt v0,v1,t2
bne v0,zero,0x0005591c
_or a0,a1,zero
slt v0,v1,t1
beq v0,zero,0x00054c0c
_addu v0,t3,v1
b 0x00054c10
_lbu v0,0x0(v0)
beq a0,zero,0x00054c64
_lw v0,0x54(sp)
sw v1,0x9c(sp)
lw v0,0x54(sp)
slt v1,v1,v0
beq v1,zero,0x00054a8c
_lw a2,0x198(sp)
lw s6,0x50(sp)
li v0,0x1
b 0x000557e0
_sw v0,0x28(sp)
or a1,s0,zero
or a0,s2,zero
lw t9,0x70(sp)
jalr t9
_nop
lw gp,0x18(sp)
bne v0,zero,0x000557d0
_nop
lw v0,0xdc(sp)
b 0x00054cf4
_subu v0,s0,v0
or v0,s1,zero
addu v0,s3,v0
lb v0,0x0(v0)
bne v0,zero,0x00054a88
_addu s0,s0,s5
slt v0,s0,s6
bne v0,zero,0x000557b4
_sw s0,0x9c(sp)
slt s0,s7,s0
bne s0,zero,0x00054d0c
_li v0,0x1
lw s0,0x9c(sp)
lw v0,0xdc(sp)
subu v0,s0,v0
lw v1,0xe4(sp)
sltu v1,v0,v1
beq v1,zero,0x00054c80
_lw a2,0x198(sp)
slt v1,s0,s4
beq v1,zero,0x00054cac
_lw v1,0xc8(sp)
addu v0,v1,v0
b 0x00054cb0
_lbu v0,0x0(v0)
lw s6,0x50(sp)
b 0x000557e0
_sw v0,0x28(sp)
lw s7,0x28(s0)
beq s7,zero,0x00054b8c
_lw a3,-0x7fc8(gp)
lw v0,0x128(sp)
beq v0,zero,0x00054e20
_nop
lw v1,0x40(sp)
sll v1,v1,0x2
addu v0,v0,v1
sw s7,0x0(v0)
lw v0,0x4c(s0)
lw v1,0x8c(sp)
bne v0,zero,0x00054dac
_sw v1,0x24(sp)
lw v0,0x34(s7)
ext v0,v0,0x1b,0x1
bne v0,zero,0x00054e2c
_lw v0,0x28(sp)
or v1,v0,zero
li s8,-0x1
lw v0,0x90(sp)
sw v0,0x34(sp)
lw v0,-0x7bdc(gp)
addiu v0,v0,-0x7144
sw v0,0x78(sp)
lw v0,-0x7bdc(gp)
addiu v0,v0,-0x1980
sw v0,0x94(sp)
lw v0,-0x7bdc(gp)
addiu v0,v0,-0x2f9c
sw v0,0x44(sp)
b 0x0005532c
_or s6,v1,zero
b 0x00054d1c
_lw s7,0x30(s0)
b 0x00054d1c
_lw s7,0x2c(s0)
addiu s0,s7,0x4
or a2,zero,zero
or a1,s0,zero
addiu a0,sp,0xc4
lw t9,-0x7c60(gp)
addiu t9,t9,0x7a44
bal 0x00047a44
_nop
lw gp,0x18(sp)
or s8,v0,zero
bne v0,zero,0x00055dbc
_sw v0,0xa0(sp)
lbu v0,0x34(s7)
andi v0,v0,0x2
bne v0,zero,0x00054df4
_or a1,s0,zero
b 0x00054d50
_sw zero,0x24(sp)
addiu a0,sp,0xc4
lw t9,-0x7bdc(gp)
addiu t9,t9,0x2d84
bal 0x00052d84
_nop
lw gp,0x18(sp)
or s8,v0,zero
bne v0,zero,0x00055dbc
_sw v0,0xa0(sp)
b 0x00054d50
_sw zero,0x24(sp)
lw v0,0x8c(sp)
b 0x00054d50
_sw v0,0x24(sp)
lbu v0,0x34(s7)
andi v0,v0,0x1
beq v0,zero,0x00054e68
_lw v0,0x2c(sp)
lw a2,0x40(sp)
or a1,s7,zero
addiu a0,sp,0xc4
lw t9,-0x7bdc(gp)
addiu t9,t9,-0x6bc0
bal 0x00049440
_nop
lw gp,0x18(sp)
beq v0,zero,0x00055428
_or v1,v0,zero
lw v0,0x2c(sp)
beq v0,zero,0x00054e7c
_li v0,0x1
lw s8,0x40(sp)
b 0x00054d68
_or v1,v0,zero
b 0x00055dbc
_lw s8,0x40(sp)
slt v0,v0,v1
beq v0,zero,0x00055354
_lw v0,0xe0(sp)
addiu a1,a1,0x2
addiu a0,sp,0xc4
lw t9,0x78(sp)
jalr t9
_nop
lw gp,0x18(sp)
beq v0,zero,0x00055360
_sw v0,0xa0(sp)
li v1,0xc
beq v0,v1,0x00055910
_lw s6,0x50(sp)
lw a3,-0x7fc8(gp)
addiu a3,a3,0x6eb0
li a2,0x46c
lw a1,-0x7fc8(gp)
addiu a1,a1,0x712c
lw a0,-0x7fc8(gp)
addiu a0,a0,0x71a0
lw t9,-0x7b88(gp)
jalr t9
_nop
slt v0,v0,v1
beq v0,zero,0x00055360
_nop
b 0x00054e94
_addiu a1,a1,0x2
lw v0,0x8(s7)
blez v0,0x000551b8
_lw s1,0x118(sp)
lw s3,0x28(sp)
lw v0,-0x7bdc(gp)
addiu v0,v0,-0x6fdc
sw v0,0x3c(sp)
lw v0,-0x7bdc(gp)
sw v0,0x58(sp)
lw v0,-0x7bdc(gp)
addiu v0,v0,-0x6ef0
lw v1,-0x7bdc(gp)
sw v1,0x38(sp)
sw s5,0x6c(sp)
b 0x000550b4
_or s5,v0,zero
beq a0,zero,0x00054f48
_andi a0,v0,0x1
bne a0,zero,0x000550a0
_nop
andi a0,v1,0x20
beq a0,zero,0x00054f5c
_andi a0,v0,0x2
beq a0,zero,0x000550a0
_nop
andi v1,v1,0x80
beq v1,zero,0x00054f78
_lw a3,0xec(sp)
andi v0,v0,0x8
beq v0,zero,0x000550a0
_nop
lw a3,0xec(sp)
addiu a2,sp,0xc4
or a1,s2,zero
or a0,s1,zero
lw t9,0x44(sp)
jalr t9
_nop
lw gp,0x18(sp)
beq v0,zero,0x000550a0
_lw s0,0xec(sp)
addu s0,v0,s0
lw a0,0x13c(sp)
slt v1,a0,v0
movz v0,a0,v1
sw v0,0x13c(sp)
or a1,s0,zero
addiu a0,sp,0xc4
lw t9,0x3c(sp)
jalr t9
_nop
lw gp,0x18(sp)
bne v0,zero,0x00055e3c
_sw v0,0xa4(sp)
lw v0,0xc(s1)
sll s2,s2,0x2
addu s2,v0,s2
lw v0,0x0(s2)
sll a2,v0,0x1
addu a2,a2,v0
sll a2,a2,0x2
lw v0,0x18(s1)
addu a2,v0,a2
sll s4,s0,0x2
lw s2,0x128(sp)
addu s2,s2,s4
lw v0,0x0(s2)
beq v0,zero,0x00055138
_addiu a0,sp,0xa8
lw a1,0x28(v0)
lw v0,0x58(sp)
addiu t9,v0,-0x7b44
bal 0x000484bc
_nop
lw gp,0x18(sp)
bne v0,zero,0x00055198
_sw v0,0xa4(sp)
lw a2,0x11c(sp)
addiu a1,s0,-0x1
addiu a0,sp,0xc4
or t9,s5,zero
jalr t9
_nop
lw gp,0x18(sp)
lw s0,0x128(sp)
addu s0,s0,s4
or a3,v0,zero
addiu a2,sp,0xa8
or a1,s1,zero
addiu a0,sp,0xa4
lw v0,0x38(sp)
addiu t9,v0,-0x51cc
bal 0x0004ae34
_nop
lw gp,0x18(sp)
sw v0,0x0(s0)
lw a0,0xb0(sp)
lw t9,-0x795c(gp)
jalr t9
_nop
lw gp,0x18(sp)
lw v0,0x128(sp)
addu s4,v0,s4
lw v0,0x0(s4)
beq v0,zero,0x000551a0
_lw v0,0xa4(sp)
addiu s3,s3,0x1
lw v0,0x8(s7)
slt v0,s3,v0
beq v0,zero,0x000551b4
_nop
lw v0,0xc(s7)
sll v1,s3,0x2
addu v0,v0,v1
lw s2,0x0(v0)
sll v0,s2,0x3
lw s0,0x0(s1)
addu s0,s0,v0
lw v0,0x4(s0)
andi v1,v0,0x800
beq v1,zero,0x000550a0
_lui v1,0xff
ori v1,v1,0xc000
and v0,v0,v1
beq v0,zero,0x00054f74
_lw a2,0x11c(sp)
lw a1,0xec(sp)
addiu a0,sp,0xc4
or t9,s5,zero
jalr t9
_nop
lw gp,0x18(sp)
lw v1,0x4(s0)
ext v1,v1,0xe,0xa
andi a0,v1,0x4
beq a0,zero,0x00054f38
_andi a0,v1,0x8
andi a0,v0,0x1
beq a0,zero,0x000550a0
_andi a0,v1,0x8
beq a0,zero,0x00054f4c
_andi a0,v1,0x20
b 0x000550a4
_addiu s3,s3,0x1
lw a0,0x0(a2)
lw v1,0x4(a2)
lw v0,0x8(a2)
sw a0,0xa8(sp)
sw v1,0xac(sp)
sw v0,0xb0(sp)
lw a2,0x11c(sp)
addiu a1,s0,-0x1
addiu a0,sp,0xc4
or t9,s5,zero
jalr t9
_nop
lw gp,0x18(sp)
or a3,v0,zero
addiu a2,sp,0xa8
or a1,s1,zero
addiu a0,sp,0xa4
lw v0,0x38(sp)
addiu t9,v0,-0x51cc
bal 0x0004ae34
_nop
lw gp,0x18(sp)
b 0x0005508c
_sw v0,0x0(s2)
b 0x00055e40
_lw s5,0x6c(sp)
beq v0,zero,0x000550a4
_addiu s3,s3,0x1
addiu s3,s3,-0x1
b 0x00055e40
_lw s5,0x6c(sp)
lw s5,0x6c(sp)
b 0x00055370
_sw zero,0xa0(sp)
lw s1,0x30(s7)
beq s1,zero,0x0005521c
_lw a2,0x11c(sp)
lw a1,0xec(sp)
addiu a1,a1,-0x1
addiu a0,sp,0xc4
lw t9,-0x7bdc(gp)
addiu t9,t9,-0x6ef0
bal 0x00049110
_nop
lw gp,0x18(sp)
andi v0,v0,0x1
beq v0,zero,0x0005520c
_nop
addiu s0,s0,0x100
sll s0,s0,0x2
addu s1,s1,s0
b 0x000553a0
_lw s0,0x0(s1)
sll s0,s0,0x2
addu s0,s1,s0
b 0x000553a0
_lw s0,0x0(s0)
or a1,s7,zero
lw a0,0x118(sp)
lw t9,0x94(sp)
jalr t9
_nop
lw gp,0x18(sp)
bne v0,zero,0x00055388
_li v0,0xc
b 0x00055e44
_sw v0,0xa0(sp)
bne v0,zero,0x0005590c
_lw v0,0x128(sp)
beq v0,zero,0x00055da8
_lw v1,0x34(sp)
beq s6,zero,0x00055264
_lw v0,0x2c(sp)
beq v0,zero,0x00055da8
_nop
addiu s3,sp,0xc4
addiu s2,sp,0xa0
lw s1,-0x7bdc(gp)
addiu s1,s1,0x3684
lw a1,0x12c(sp)
lw v1,0xec(sp)
sll a0,v1,0x2
lw v0,0x128(sp)
addu v0,v0,a0
addiu v1,v1,0x1
slt a0,a1,v1
bne a0,zero,0x00055da4
_lw a0,0xec(sp)
addiu a0,a0,0x1
sw a0,0xec(sp)
addiu v0,v0,0x4
lw a0,0x0(v0)
beq a0,zero,0x0005528c
_addiu v1,v1,0x1
or a2,zero,zero
or a1,s3,zero
or a0,s2,zero
or t9,s1,zero
jalr t9
_nop
lw gp,0x18(sp)
lw v1,0xa0(sp)
bne v1,zero,0x000552e8
_nop
beq v0,zero,0x00055278
_lw a1,0x12c(sp)
b 0x000553d4
_or s0,v0,zero
bne v0,zero,0x000553d4
_or s0,v0,zero
b 0x00055da8
_lw v1,0x34(sp)
lw v1,0x24(sp)
movn v1,zero,v0
sw v1,0x24(sp)
or s7,v0,zero
lw v0,0x40(sp)
movz v0,s5,s7
b 0x000553e0
_sw v0,0x40(sp)
beq v0,zero,0x00055dbc
_lw s8,0xec(sp)
li s6,0x1
sw zero,0x34(sp)
or s7,s0,zero
lw a1,0xec(sp)
lw v0,0xfc(sp)
slt v0,a1,v0
beq v0,zero,0x00055da4
_addiu s5,a1,0x1
lw v0,0xe8(sp)
slt v1,s5,v0
beq v1,zero,0x00054e84
_lw v1,0xf4(sp)
lw v0,0xe0(sp)
slt v1,s5,v0
beq v1,zero,0x00054ee4
_lw v1,0xf4(sp)
lw v0,0x34(s7)
ext v0,v0,0x1a,0x1
bne v0,zero,0x00054ef8
_nop
lw v1,0xec(sp)
addiu v0,v1,0x1
sw v0,0xec(sp)
lw v0,0xc8(sp)
addu v0,v0,v1
lbu s0,0x0(v0)
lw v0,0x2c(s7)
beq v0,zero,0x000551c0
_nop
sll s0,s0,0x2
addu v0,v0,s0
lw s0,0x0(v0)
lw v0,0x128(sp)
beq v0,zero,0x000553cc
_or a2,s0,zero
addiu a1,sp,0xc4
addiu a0,sp,0xa0
lw t9,-0x7bdc(gp)
addiu t9,t9,0x3684
bal 0x00053684
_nop
lw gp,0x18(sp)
or s0,v0,zero
beq s0,zero,0x00055244
_lw v0,0xa0(sp)
lw v0,0x24(sp)
bne v0,zero,0x000552f8
_xor v0,s7,s0
lbu v0,0x34(s0)
andi v1,v0,0x8
beq v1,zero,0x00055328
_andi v0,v0,0x1
beq v0,zero,0x00055318
_lw v0,0x2c(sp)
lw a2,0xec(sp)
or a1,s0,zero
addiu a0,sp,0xc4
lw t9,-0x7bdc(gp)
addiu t9,t9,-0x6bc0
bal 0x00049440
_nop
lw gp,0x18(sp)
beq v0,zero,0x00055328
_lw v0,0x2c(sp)
b 0x00055318
_nop
b 0x00054d68
_li s8,-0x1
addiu s3,s3,-0x4
addiu s8,s8,-0x1
bltz s8,0x00055b70
_or a0,s5,zero
lw a1,-0x4(s3)
beq a1,zero,0x00055430
_nop
lbu v0,0x34(a1)
andi v0,v0,0x8
beq v0,zero,0x00055434
_addiu s3,s3,-0x4
or a2,s8,zero
or a0,s6,zero
lw t9,0x34(sp)
jalr t9
_nop
lw gp,0x18(sp)
b 0x00055cfc
_or s1,v0,zero
lw s4,0x38(sp)
or a2,s0,zero
or a1,s5,zero
or a0,s4,zero
lw t9,-0x7bdc(gp)
addiu t9,t9,0x20d0
bal 0x000520d0
_nop
lw gp,0x18(sp)
or s2,v0,zero
or a0,s0,zero
lw t9,-0x795c(gp)
jalr t9
_nop
lw gp,0x18(sp)
beq s2,zero,0x00055528
_lw s6,0x50(sp)
b 0x00055acc
_or s0,zero,zero
sw s5,0xa8(sp)
sw zero,0xac(sp)
sw s1,0xb0(sp)
sw s8,0xb4(sp)
sw zero,0xb8(sp)
sw zero,0xbc(sp)
sw zero,0xc0(sp)
addiu a0,sp,0xc4
lw t9,-0x7bdc(gp)
addiu t9,t9,0x421c
bal 0x0005421c
_nop
lw gp,0x18(sp)
or s2,v0,zero
lw a0,0xc0(sp)
lw t9,-0x795c(gp)
jalr t9
_nop
lw gp,0x18(sp)
bne s2,zero,0x00055acc
_or s0,zero,zero
lw s0,0x0(s5)
beq s0,zero,0x00055b6c
_lw s6,0x50(sp)
lw a0,0x128(sp)
lw t9,-0x795c(gp)
jalr t9
_nop
lw gp,0x18(sp)
sw s5,0x128(sp)
sw s1,0x124(sp)
sw s8,0x120(sp)
lw v1,0x64(sp)
beq v1,zero,0x000557e4
_lw a0,0x128(sp)
sltiu v0,v1,0x2
bne v0,zero,0x000558e0
_lw a1,0x88(sp)
addiu v0,a1,0x8
sll a0,v1,0x3
addu a0,a1,a0
li v1,-0x1
sw v1,0x4(v0)
sw v1,0x0(v0)
addiu v0,v0,0x8
bne v0,a0,0x00055570
_nop
lw v1,0x88(sp)
sw zero,0x0(v1)
lw v0,0x120(sp)
sw v0,0x4(v1)
lw v0,0x20(sp)
lbu v0,0x1c(v0)
andi v0,v0,0x8
beq v0,zero,0x000555ec
_nop
lbu t1,0x110(sp)
lw t2,0xe0(sp)
lw t4,0xd0(sp)
lw a2,0x9c(sp)
lw v0,0x64(sp)
sll v0,v0,0x3
lw v1,0x88(sp)
addu t0,v0,v1
li a3,-0x1
b 0x00055678
_lw t3,0xe4(sp)
lw s6,0x50(sp)
li v0,0x1
b 0x000557e0
_sw v0,0x28(sp)
b 0x00055548
_lw s6,0x50(sp)
lb v0,0x58(s6)
bltz v0,0x00055638
_nop
lw v0,0x28(sp)
andi v0,v0,0x1
sw v0,0x10(sp)
lw a3,0x88(sp)
lw a2,0x64(sp)
addiu a1,sp,0xc4
lw a0,0x20(sp)
lw t9,-0x7bdc(gp)
addiu t9,t9,-0xb60
bal 0x0004f4a0
_nop
lw gp,0x18(sp)
beq v0,zero,0x000555ac
_lbu t1,0x110(sp)
b 0x000557e0
_sw v0,0x28(sp)
lw v0,0x4c(s6)
b 0x000555fc
_slt v0,zero,v0
b 0x000556a0
_or a1,t3,zero
or a1,t3,zero
sw a1,0x4(a0)
lw a1,0x0(a0)
addu a1,a1,a2
sw a1,0x0(a0)
lw a1,0x4(a0)
addu a1,a1,a2
sw a1,0x4(a0)
addiu v1,v1,0x8
beq v1,t0,0x000556bc
_nop
lw a1,0x0(v1)
beq a1,a3,0x0005566c
_or a0,v1,zero
beq t1,zero,0x00055654
_nop
beq a1,t2,0x00055644
_nop
sll a1,a1,0x2
addu a1,t4,a1
lw a1,0x0(a1)
sw a1,0x0(a0)
lw a1,0x4(a0)
beq t2,a1,0x0005564c
_sll a1,a1,0x2
addu a1,t4,a1
b 0x00055650
_lw a1,0x0(a1)
lw v1,0x60(sp)
blez v1,0x000556f0
_lw a0,0x190(sp)
lw v1,0x88(sp)
addu v0,v1,v0
sll a0,a0,0x3
addu a0,v1,a0
li v1,-0x1
sw v1,0x0(v0)
sw v1,0x4(v0)
addiu v0,v0,0x8
bne v0,a0,0x000556dc
_nop
lw v0,0x84(s6)
beq v0,zero,0x000557e0
_lw a3,0x88(sp)
addiu a0,a3,0x8
lw v0,0x64(sp)
addiu a2,v0,-0x1
b 0x00055748
_or v1,zero,zero
sll v0,v0,0x3
addu v0,a3,v0
lw v0,0x0(v0)
sw v0,0x0(a0)
lw v0,0x84(s6)
addu a1,v0,a1
lw v0,0x0(a1)
addiu v0,v0,0x1
sll v0,v0,0x3
addu v0,a3,v0
lw v0,0x4(v0)
sw v0,0x4(a0)
addiu v1,v1,0x1
addiu a0,a0,0x8
beq a2,v1,0x000557e0
_sll a1,v1,0x2
lw v0,0x84(s6)
addu v0,v0,a1
lw v0,0x0(v0)
bne v0,v1,0x00055710
_addiu v0,v0,0x1
b 0x00055744
_addiu v1,v1,0x1
lw v0,0x5c(sp)
b 0x000557e0
_sw v0,0x28(sp)
li v0,0xc
b 0x000557e0
_sw v0,0x28(sp)
li v0,0xc
b 0x000557e0
_sw v0,0x28(sp)
li v0,0x1
b 0x000557e0
_sw v0,0x28(sp)
li v0,0x1
b 0x000557e0
_sw v0,0x28(sp)
li v0,0x1
b 0x000557e0
_sw v0,0x28(sp)
lw s6,0x50(sp)
li v0,0x1
b 0x000557e0
_sw v0,0x28(sp)
li v0,0xc
b 0x000557e0
_sw v0,0x28(sp)
lw s6,0x50(sp)
b 0x000557e0
_sw v0,0x28(sp)
lw s6,0x50(sp)
lw a0,0x128(sp)
lw t9,-0x795c(gp)
jalr t9
_nop
lw gp,0x18(sp)
lw v0,0x4c(s6)
bne v0,zero,0x00055858
_addiu a0,sp,0xc4
lw t9,-0x7bdc(gp)
addiu t9,t9,-0x4d44
bal 0x0004b2bc
_nop
lw gp,0x18(sp)
lw v0,0x28(sp)
lw a0,0x14c(sp)
lw v1,-0x7970(gp)
lw v1,0x0(v1)
bne a0,v1,0x00055e58
_lw ra,0x174(sp)
lw s8,0x170(sp)
lw s7,0x16c(sp)
lw s6,0x168(sp)
lw s5,0x164(sp)
lw s4,0x160(sp)
lw s3,0x15c(sp)
lw s2,0x158(sp)
lw s1,0x154(sp)
lw s0,0x150(sp)
jr ra
_addiu sp,sp,0x178
lw t9,-0x7bdc(gp)
addiu t9,t9,-0x4818
bal 0x0004b7e8
_nop
lw gp,0x18(sp)
lw a0,0x148(sp)
lw t9,-0x795c(gp)
jalr t9
_nop
lw gp,0x18(sp)
lw a0,0x138(sp)
lw t9,-0x795c(gp)
jalr t9
_nop
lw gp,0x18(sp)
b 0x00055800
_addiu a0,sp,0xc4
b 0x00055814
_sw v0,0x28(sp)
li v0,0x1
b 0x00055814
_sw v0,0x28(sp)
li v0,0x1
b 0x00055814
_sw v0,0x28(sp)
li v0,0x1
b 0x00055814
_sw v0,0x28(sp)
li v0,0x1
b 0x00055814
_sw v0,0x28(sp)
li v0,0x1
b 0x00055814
_sw v0,0x28(sp)
lw v1,0x88(sp)
sw zero,0x0(v1)
lw v0,0x120(sp)
b 0x000555a8
_sw v0,0x4(v1)
lw s6,0x50(sp)
li v0,0xc
b 0x000557e0
_sw v0,0x28(sp)
b 0x00055548
_lw s6,0x50(sp)
lw s6,0x50(sp)
li v0,0xc
b 0x000557e0
_sw v0,0x28(sp)
lw s6,0x50(sp)
sw v1,0x9c(sp)
li v0,0x1
b 0x000557e0
_sw v0,0x28(sp)
li v0,0xc
b 0x000557e0
_sw v0,0x28(sp)
lw v0,0x48(sp)
sw v0,0xc8(sp)
lw v0,0x5c(s6)
slti v0,v0,0x2
lw v1,0x5c(sp)
lw a0,0x180(sp)
movn v1,a0,v0
or v0,v1,zero
sw v0,0xe0(sp)
sw v0,0xe4(sp)
sw s3,0xfc(sp)
sw s3,0xf8(sp)
lw v0,0x20(sp)
lw v0,0x1c(v0)
ext v0,v0,0x18,0x1
sb v0,0x111(sp)
lw s3,0x4c(s6)
sll s3,s3,0x1
lw v0,0x198(sp)
sw v0,0x11c(sp)
li v0,-0x1
blez s3,0x000559f0
_sw v0,0x120(sp)
lui v0,0xccc
ori v0,v0,0xcccd
sltu v0,s3,v0
beq v0,zero,0x00055930
_sll s5,s3,0x2
addu a0,s5,s3
sll a0,a0,0x2
lw t9,-0x7a2c(gp)
jalr t9
_nop
lw gp,0x18(sp)
or s4,v0,zero
sw v0,0x138(sp)
or a0,s5,zero
lw t9,-0x7a2c(gp)
jalr t9
_nop
lw gp,0x18(sp)
beq s4,zero,0x00055930
_sw v0,0x148(sp)
beq v0,zero,0x00055934
_li v0,0xc
sw s3,0x134(sp)
li v0,0x1
sw v0,0x13c(sp)
sw s3,0x144(sp)
lw v0,0x64(sp)
sltiu v0,v0,0x2
bne v0,zero,0x00054890
_lw a0,0xe8(sp)
lui v0,0x3fff
ori v0,v0,0xffff
sltu v0,a0,v0
beq v0,zero,0x00055778
_addiu a0,a0,0x1
sll a0,a0,0x2
lw t9,-0x7a2c(gp)
jalr t9
_nop
lw gp,0x18(sp)
beq v0,zero,0x00055784
_sw v0,0x128(sp)
sw s0,0x9c(sp)
lw v0,0x198(sp)
andi v0,v0,0x1
li a0,0x4
li v1,0x6
movn v1,a0,v0
sw v1,0x100(sp)
slt v0,s2,s0
li a0,-0x1
li v1,0x1
movn v1,a0,v0
sw v1,0x7c(sp)
or v1,s2,zero
movz v1,s0,v0
sw v1,0x54(sp)
slt v0,s0,s2
or v1,s2,zero
movz v1,s0,v0
sw v1,0x4c(sp)
lw v1,0x5c(s6)
sw v1,0x84(sp)
lw v0,0x30(sp)
beq v0,zero,0x000548cc
_li v0,0x8
li v0,0x1
beq v1,v0,0x000548a8
_lw v0,0x20(sp)
lw v0,0xc(v0)
ext v0,v0,0x16,0x1
bne v0,zero,0x00054930
_li v0,0x4
lw a0,0x5c(sp)
lw v1,0x68(sp)
b 0x000548ac
_movz a0,v0,v1
or a0,s5,zero
lw t9,-0x795c(gp)
jalr t9
_nop
lw gp,0x18(sp)
or a0,s0,zero
lw t9,-0x795c(gp)
jalr t9
_nop
lw gp,0x18(sp)
li v0,0x1
bne s2,v0,0x00055b64
_lw s6,0x50(sp)
addiu a0,sp,0xc4
lw t9,-0x7bdc(gp)
addiu t9,t9,-0x4818
bal 0x0004b7e8
_nop
lw gp,0x18(sp)
lw v0,0x9c(sp)
lw v1,0x7c(sp)
addu v0,v1,v0
sw v0,0x9c(sp)
lw v1,0x54(sp)
slt v1,v0,v1
bne v1,zero,0x000555d4
_lw v1,0x4c(sp)
slt v0,v1,v0
bne v0,zero,0x000557a8
_lw s6,0x50(sp)
lw v0,0x74(sp)
sltiu v0,v0,0x5
beq v0,zero,0x00054938
_lw v0,0x80(sp)
lw v0,0x0(v0)
addu v0,v0,gp
jr v0
_nop
b 0x000557e0
_sw s2,0x28(sp)
or a0,s5,zero
lw t9,-0x795c(gp)
jalr t9
_nop
lw gp,0x18(sp)
or a0,s0,zero
lw t9,-0x795c(gp)
jalr t9
_nop
lw gp,0x18(sp)
b 0x00055b04
_addiu a0,sp,0xc4
lw s6,0x50(sp)
or a0,s5,zero
lw t9,-0x795c(gp)
jalr t9
_nop
lw gp,0x18(sp)
li v0,0xc
b 0x000557e0
_sw v0,0x28(sp)
b 0x00055548
_lw s6,0x50(sp)
lw v0,0x128(sp)
addu v0,v0,v1
or a2,s8,zero
lw a1,0x0(v0)
addiu a0,sp,0xc4
lw t9,-0x7bdc(gp)
addiu t9,t9,-0x6bc0
bal 0x00049440
_nop
lw gp,0x18(sp)
b 0x00055e24
_sw v0,0x124(sp)
lw v1,0x50(sp)
lw v1,0x4c(v1)
bne v1,zero,0x00055bc8
_sll v1,s8,0x2
bne v0,zero,0x00055904
_lw v0,0x64(sp)
sltiu v0,v0,0x2
bne v0,zero,0x00055bc0
_lw v0,0x50(sp)
lb v0,0x58(v0)
bgez v0,0x00055c6c
_lw v0,0x50(sp)
b 0x00055c78
_lw s4,0x118(sp)
lw v1,0x4c(v1)
beq v1,zero,0x00055c08
_lw v1,0x128(sp)
sll v0,s8,0x2
addu v0,v1,v0
or a2,s8,zero
lw a1,0x0(v0)
addiu a0,sp,0xc4
lw t9,-0x7bdc(gp)
addiu t9,t9,-0x6bc0
bal 0x00049440
_nop
lw gp,0x18(sp)
sw v0,0x124(sp)
lw v0,0x50(sp)
lw v0,0x4c(v0)
beq v0,zero,0x000555e4
_lw s4,0x118(sp)
lui v0,0x3fff
ori v0,v0,0xffff
sltu v0,s8,v0
beq v0,zero,0x000558f4
_lw s1,0x124(sp)
addiu s0,s8,0x1
sll s0,s0,0x2
or a0,s0,zero
lw t9,-0x7a2c(gp)
jalr t9
_nop
lw gp,0x18(sp)
beq v0,zero,0x00055b9c
_or s5,v0,zero
lw v0,0x4c(s4)
beq v0,zero,0x000554c8
_addiu a1,sp,0xa8
or a0,s0,zero
lw t9,-0x7a2c(gp)
jalr t9
_nop
lw gp,0x18(sp)
beq v0,zero,0x00055b9c
_or s0,v0,zero
addiu s7,sp,0xa8
addiu s6,sp,0xc4
lw v0,-0x7bdc(gp)
addiu v0,v0,0x421c
sw v0,0x24(sp)
lw v0,-0x7bdc(gp)
addiu v0,v0,-0x6bc0
sw v0,0x34(sp)
sw s4,0x38(sp)
addiu s4,s8,0x1
sll s3,s4,0x2
or a2,s3,zero
or a1,zero,zero
or a0,s0,zero
lw t9,-0x7a80(gp)
jalr t9
_nop
lw gp,0x18(sp)
sw s5,0xa8(sp)
sw s0,0xac(sp)
sw s1,0xb0(sp)
sw s8,0xb4(sp)
sw zero,0xb8(sp)
sw zero,0xbc(sp)
sw zero,0xc0(sp)
or a1,s7,zero
or a0,s6,zero
lw t9,0x24(sp)
jalr t9
_nop
lw gp,0x18(sp)
or s2,v0,zero
lw a0,0xc0(sp)
lw t9,-0x795c(gp)
jalr t9
_nop
lw gp,0x18(sp)
bne s2,zero,0x00055ad0
_or a0,s5,zero
lw v0,0x0(s5)
bne v0,zero,0x0005547c
_or a3,s4,zero
lw v0,0x0(s0)
bne v0,zero,0x0005547c
_addiu s3,s3,-0x4
lw v0,0x128(sp)
b 0x00055434
_addu s3,v0,s3
lw v0,0xa0(sp)
bne v0,zero,0x00055910
_lw s6,0x50(sp)
lw v1,0x34(sp)
beq v1,zero,0x00055dbc
_lw a0,0x40(sp)
lw v0,0x0(v1)
addu v0,v0,a0
sw v0,0x0(v1)
li v0,-0x1
beq s8,v0,0x00055b00
_li v0,-0x2
beq s8,v0,0x000557c4
_lw s6,0x50(sp)
sw s8,0x120(sp)
lw v0,0x20(sp)
lbu v0,0x1c(v0)
andi v0,v0,0x8
bne v0,zero,0x00055c30
_lw v1,0x50(sp)
lw v1,0x64(sp)
sltiu v1,v1,0x2
bne v1,zero,0x00055bf8
_lw v1,0x128(sp)
sll v0,s8,0x2
addu v0,v1,v0
or a2,s8,zero
lw a1,0x0(v0)
addiu a0,sp,0xc4
lw t9,-0x7bdc(gp)
addiu t9,t9,-0x6bc0
bal 0x00049440
_nop
lw gp,0x18(sp)
sw v0,0x124(sp)
lw v0,0x64(sp)
sltiu v0,v0,0x2
bne v0,zero,0x00055c68
_lw v0,0x50(sp)
b 0x00055c20
_lb v0,0x58(v0)
lw s5,0x6c(sp)
sw v0,0xa0(sp)
lw v0,0x128(sp)
beq v0,zero,0x00055d98
_or s0,zero,zero
b 0x000553ac
_or a2,s0,zero
lw t9,-0x79b0(gp)
jalr t9
_nop
(translation_unit "/* WARNING: Type propagation algorithm not settling */\n\ncode *******\nFUN_00054610(code *******param_1,code ******param_2,code *******param_3,code *******param_4,\n            code *******param_5,code *******param_6,code ******param_7,code *******param_8,\n            code *******param_9)\n\n{\n  bool bVar1;\n  code *******pppppppcVar2;\n  code *******pppppppcVar3;\n  code *pcVar4;\n  int *piVar5;\n  code *******pppppppcVar6;\n  uint uVar7;\n  code *pcVar8;\n  code *pcVar9;\n  code *pcVar10;\n  code *pcVar11;\n  code *pcVar12;\n  code *****pppppcVar13;\n  code *******pppppppcVar14;\n  code *******pppppppcVar15;\n  uint uVar16;\n  code cVar23;\n  byte *pbVar17;\n  int iVar18;\n  uint uVar19;\n  code ******ppppppcVar20;\n  undefined1 *puVar21;\n  int iVar22;\n  code *******pppppppcVar24;\n  code *******pppppppcVar25;\n  code *******pppppppcVar26;\n  uint uVar27;\n  code *******pppppppcVar28;\n  code *******pppppppcVar29;\n  code *******pppppppcVar30;\n  code *******pppppppcVar31;\n  code ******ppppppcVar32;\n  code *******pppppppcVar33;\n  code *******pppppppcVar34;\n  code ******ppppppcVar35;\n  code *******pppppppcVar36;\n  code *******unaff_s4;\n  int iVar37;\n  code *******unaff_s5;\n  code *******pppppppcVar38;\n  code *******unaff_s7;\n  code ******ppppppcVar39;\n  code ****ppppcVar40;\n  undefined *puVar41;\n  code *******unaff_s8;\n  code *******pppppppcVar42;\n  int iVar43;\n  undefined8 uVar44;\n  code *******pppppppcStack_218;\n  code *******pppppppcStack_20c;\n  code *******pppppppcStack_208;\n  code ******ppppppcStack_204;\n  int iStack_200;\n  int *piStack_1fc;\n  code *******pppppppcStack_1f8;\n  code *******apppppppcStack_1f4 [6];\n  int iStack_1dc;\n  int iStack_1d8;\n  int iStack_1d4;\n  code *******pppppppcStack_1cc;\n  code *******pppppppcStack_1c8;\n  code *******pppppppcStack_1c4;\n  code *******pppppppcStack_1c0;\n  code ******ppppppcStack_1b8;\n  undefined1 uStack_1b0;\n  byte bStack_1af;\n  byte bStack_1ae;\n  char cStack_1ad;\n  code ******ppppppcStack_1a8;\n  int iStack_1a4;\n  code *******pppppppcStack_1a0;\n  code *******pppppppcStack_19c;\n  code *******pppppppcStack_198;\n  code *******pppppppcStack_194;\n  code *******pppppppcStack_190;\n  code *******pppppppcStack_18c;\n  code *******pppppppcStack_188;\n  code *******pppppppcStack_184;\n  code *******pppppppcStack_180;\n  code *pcStack_17c;\n  uint local_168;\n  code *******local_150;\n  code *******local_148;\n  code *******local_144;\n  code *******local_138;\n  int local_118;\n  code *******local_dc;\n  code *******local_d8;\n  code *******local_d4;\n  code *******local_d0;\n  code *******local_cc;\n  code *******local_c8;\n  code *******local_c4;\n  undefined4 local_c0;\n  undefined4 local_bc;\n  undefined4 local_b8;\n  code ******local_b4;\n  code ******local_b0;\n  int *local_ac;\n  int local_a8;\n  int local_9c;\n  code *******local_98;\n  code *******local_94;\n  uint local_90;\n  code *******local_8c;\n  code *******local_88;\n  code *******local_84;\n  code *******local_80;\n  code *******local_7c;\n  undefined4 local_78;\n  code ******local_74;\n  code *******local_70;\n  byte local_6c;\n  byte local_6b;\n  byte local_6a;\n  byte local_69;\n  char local_68;\n  byte local_67;\n  byte local_66;\n  code *******local_64;\n  code *******local_60;\n  code *******local_5c;\n  code *******local_58;\n  code *******local_54;\n  code *******local_50;\n  code *******local_4c;\n  undefined4 local_48;\n  code *******local_44;\n  code *******local_40;\n  int local_3c;\n  code *******local_34;\n  int local_30;\n  code *******local_2c;\n  \n  local_2c = *(code ********)PTR___stack_chk_guard_00079c10;\n  pppppppcVar38 = (code *******)*param_1;\n  pppppppcVar29 = (code *******)0x0;\n  pppppppcVar33 = param_4;\n  (*(code *)PTR_memset_00079b00)(&local_b4,0,0x88);\n  local_148 = (code *******)param_1[4];\n  if (local_148 != (code *******)0x0) {\n    if (((byte)*(code *)(param_1 + 7) & 0x10) == 0) {\n      local_148 = (code *******)0x0;\n    }\n    else if (param_4 == param_5) {\n      local_148 = (code *******)0x0;\n    }\n    else if ((char)*(code *)(param_1 + 7) < '\0') {\n      local_148 = (code *******)0x0;\n    }\n  }\n  if (param_1[6] < param_7) {\n    local_118 = (int)param_7 + (-1 - (int)param_1[6]);\n  }\n  else {\n    local_118 = 0;\n  }\n  pppppppcStack_1a0 = param_4;\n  pppppppcStack_19c = param_1;\n  local_60 = pppppppcVar38;\n  if (param_1[2] == (code ******)0x0) {\n    local_150 = (code *******)0x1;\n  }\n  else if (pppppppcVar38[9] == (code ******)0x0) {\n    local_150 = (code *******)0x1;\n  }\n  else if (pppppppcVar38[10] == (code ******)0x0) {\n    local_150 = (code *******)0x1;\n  }\n  else if (pppppppcVar38[0xb] == (code ******)0x0) {\n    local_150 = (code *******)0x1;\n  }\n  else {\n    pppppppcVar29 = (code *******)pppppppcVar38[0xc];\n    if (pppppppcVar29 == (code *******)0x0) {\n      local_150 = (code *******)0x1;\n    }\n    else {\n      pppppppcVar3 = param_5;\n      if ((((pppppppcVar38[9][2] == (code *****)0x0) && (pppppppcVar38[10][2] == (code *****)0x0))\n          && ((pppppppcVar38[0xb][2] == (code *****)0x0 || (((uint)param_1[7] & 0x1000000) == 0))))\n         && ((pppppppcVar3 = param_4, param_4 != (code *******)0x0 &&\n             (param_4 = param_5, pppppppcVar3 = param_5, param_5 != (code *******)0x0)))) {\n        local_150 = (code *******)0x1;\n        pppppppcStack_1a0 = param_5;\n      }\n      else {\n        param_5 = pppppppcVar3;\n        pppppppcVar3 = (code *******)((int)param_7 - local_118);\n        if (pppppppcVar3 == (code *******)0x0) {\n          pppppppcVar34 = (code *******)(uint)(pppppppcVar38[0x13] != (code ******)0x0);\n        }\n        else {\n          pppppppcVar34 = (code *******)0x1;\n        }\n        ppppppcVar32 = param_1[5];\n        local_6c = (byte)((uint)((int)param_1[3] << 9) >> 0x1f);\n        local_64 = (code *******)pppppppcVar38[0x17];\n        pppppppcVar31 = (code *******)((int)pppppppcVar38[2] + 1);\n        if ((int)pppppppcVar38[2] + 1 < (int)local_64) {\n          pppppppcVar31 = local_64;\n        }\n        pppppppcVar30 = (code *******)(uint)((int)param_3 + 1 < (int)pppppppcVar31);\n        pppppppcVar33 = (code *******)0x1;\n        local_69 = local_6c;\n        if (ppppppcVar32 != (code ******)0x0) {\n          local_69 = 1;\n        }\n        local_6b = (byte)((uint)((int)pppppppcVar38[0x16] << 2) >> 0x1f);\n        local_6a = (byte)((uint)((int)pppppppcVar38[0x16] << 3) >> 0x1f);\n        pppppppcVar29 = (code *******)((int)param_3 + 1);\n        if (pppppppcVar30 == (code *******)0x0) {\n          pppppppcVar29 = pppppppcVar31;\n        }\n        local_b4 = param_2;\n        local_88 = param_3;\n        local_84 = param_3;\n        local_80 = param_3;\n        local_7c = param_3;\n        local_74 = ppppppcVar32;\n        local_150 = (code *******)FUN_00046d2c(&local_b4);\n        pppppppcVar31 = pppppppcVar34;\n        param_6 = param_6;\n        if (local_150 != (code *******)0x0) goto LAB_000557e4;\n        local_70 = pppppppcVar38 + 0x18;\n        local_66 = (byte)((uint)((int)pppppppcVar38[0x16] << 4) >> 0x1f);\n        pppppppcVar2 = (code *******)0x0;\n        local_98 = pppppppcVar2;\n        if ((local_69 == 0) && (local_b0 = param_2, (int)pppppppcVar38[0x17] < 2)) {\n          local_98 = param_3;\n        }\n        local_7c = param_6;\n        local_80 = param_6;\n        local_67 = (byte)((uint)((int)param_1[7] << 7) >> 0x1f);\n        ppppppcVar35 = pppppppcVar38[0x13];\n        pppppppcVar36 = (code *******)((int)ppppppcVar35 * 2);\n        local_5c = param_9;\n        local_58 = (code *******)0xffffffff;\n        local_94 = local_98;\n        if ((int)pppppppcVar36 < 1) {\nLAB_000559f0:\n          local_3c = 1;\n          local_44 = pppppppcVar36;\n          local_34 = pppppppcVar36;\n          if ((pppppppcVar3 < (code *******)0x2) && (((uint)pppppppcVar38[0x16] & 0x40000000) == 0))\n          {\n            local_50 = (code *******)0x0;\nLAB_00055a40:\n            local_78 = 6;\n            if (((uint)param_9 & 1) != 0) {\n              local_78 = 4;\n            }\n            pppppppcVar24 = (code *******)0x1;\n            pppppppcVar25 = param_4;\n            if ((int)param_5 < (int)param_4) {\n              pppppppcVar24 = (code *******)0xffffffff;\n              pppppppcVar25 = param_5;\n            }\n            pppppppcVar26 = param_5;\n            if ((int)param_5 <= (int)param_4) {\n              pppppppcVar26 = param_4;\n            }\n            ppppppcVar35 = pppppppcVar38[0x17];\n            uVar16 = 8;\n            if (local_148 != (code *******)0x0) {\n              if (ppppppcVar35 == (code ******)0x1) {\n                pppppppcVar28 = (code *******)0x4;\n              }\n              else {\n                pppppppcVar28 = pppppppcVar2;\n                if ((-1 < (int)param_1[3] << 9) && (ppppppcVar32 == (code ******)0x0)) {\n                  pppppppcVar28 = (code *******)0x4;\n                }\n              }\n              pppppppcVar29 = (code *******)0x0;\n              if ((int)param_4 <= (int)param_5) {\n                pppppppcVar29 = (code *******)0x2;\n              }\n              uVar16 = (uint)(ppppppcVar32 != (code ******)0x0) | (uint)pppppppcVar28 |\n                       (uint)pppppppcVar29;\n            }\n            local_dc = param_4;\n            if ((int)param_4 < (int)pppppppcVar25) {\n              local_150 = (code *******)0x1;\n              param_6 = pppppppcVar36;\n            }\n            else if ((int)pppppppcVar26 < (int)param_4) {\n              local_150 = (code *******)0x1;\n              param_4 = (code *******)(uint)((int)param_5 < (int)param_4);\n              param_6 = pppppppcVar36;\n            }\n            else {\n              pppppppcVar36 = (code *******)&local_dc;\n              if ((code *******)(uint)((int)param_5 < (int)param_4) != (code *******)0x0) {\n                pppppppcVar36 = (code *******)0x0;\n              }\n              pcVar4 = (code *)(PTR_DAT_000799a4 + -0x2b7c);\n              piVar5 = (int *)(PTR_s_nt0_000795b8 + (uVar16 - 4) * 4 + 0x6e38);\nLAB_00055b44:\n              if (uVar16 - 4 < 5) {\n                    /* WARNING: Could not emulate address calculation at 0x00054920 */\n                    /* WARNING: Treating indirect jump as call */\n                pppppppcVar29 = (code *******)(*(code *)(&_gp_1 + *piVar5))();\n                return pppppppcVar29;\n              }\n              param_5 = &local_b4;\n              pppppppcVar28 = pppppppcVar33;\n              while( true ) {\n                param_4 = local_dc;\n                pppppppcVar33 = (code *******)((int)local_dc - local_9c);\n                pppppppcVar30 = param_9;\n                pppppppcVar31 = pppppppcVar2;\n                param_6 = local_148;\n                unaff_s4 = param_3;\n                unaff_s5 = pppppppcVar24;\n                unaff_s7 = pppppppcVar26;\n                if (local_94 <= pppppppcVar33) {\n                  pppppppcVar29 = local_dc;\n                  local_150 = (code *******)(*pcVar4)(param_5);\n                  pppppppcVar33 = pppppppcVar28;\n                  if (local_150 != (code *******)0x0) goto LAB_000557e4;\n                  pppppppcVar33 = (code *******)((int)param_4 - local_9c);\n                }\n                if ((int)param_4 < (int)param_3) {\n                  uVar7 = (uint)(byte)*(code *)((int)pppppppcVar33 + (int)local_b0);\n                }\n                else {\n                  uVar7 = 0;\n                }\n                param_4 = (code *******)((int)param_4 + (int)pppppppcVar24);\n                if (*(code *)((int)local_148 + uVar7) != (code)0x0) break;\n                pppppppcVar33 = pppppppcVar28;\n                local_dc = param_4;\n                if ((int)param_4 < (int)pppppppcVar25) {\n                  local_150 = (code *******)0x1;\n                  goto LAB_000557e4;\n                }\n                if ((code *******)(uint)((int)pppppppcVar26 < (int)param_4) != (code *******)0x0) {\n                  local_150 = (code *******)0x1;\n                  param_4 = (code *******)(uint)((int)pppppppcVar26 < (int)param_4);\n                  goto LAB_000557e4;\n                }\n              }\n              while( true ) {\n                pppppppcVar29 = local_dc;\n                pppppppcVar30 = param_9;\n                pppppppcVar6 = (code *******)(*pcVar4)(&local_b4);\n                pppppppcVar14 = local_60;\n                pppppppcVar42 = local_8c;\n                pppppppcVar33 = pppppppcVar28;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar6 != (code *******)0x0) goto LAB_000557e4;\n                if (((ppppppcVar35 != (code ******)0x1) && (local_98 != (code *******)0x0)) &&\n                   (*local_ac == -1)) goto LAB_00055b1c;\n                local_3c = 0;\n                local_48 = 0;\n                local_4c = (code *******)0x0;\n                local_138 = local_8c;\n                local_d8 = (code *******)0x0;\n                unaff_s7 = (code *******)local_60[9];\n                pppppppcVar30 = local_5c;\n                param_4 = pppppppcVar14;\n                if (((uint)unaff_s7[0xd] & 0x1000000) == 0) break;\n                pppppppcVar29 = (code *******)((int)local_8c + -1);\n                pppppppcVar33 = (code *******)FUN_00049110(&local_b4);\n                if (((uint)pppppppcVar33 & 1) == 0) {\n                  if (pppppppcVar33 == (code *******)0x0) break;\n                  if (((uint)pppppppcVar33 & 6) == 6) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xc];\n                    goto LAB_00054d1c;\n                  }\n                  if (((uint)pppppppcVar33 & 2) != 0) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xb];\n                    goto LAB_00054d1c;\n                  }\n                  pppppppcVar28 = pppppppcVar33;\n                  if (((uint)pppppppcVar33 & 4) == 0) break;\n                  pppppppcVar30 = (code *******)unaff_s7[10];\n                  pppppppcVar29 = pppppppcVar14;\n                  unaff_s7 = (code *******)FUN_0004ae34(&local_d8);\n                  pppppppcVar28 = pppppppcVar33;\n                  if (unaff_s7 != (code *******)0x0) break;\n                  if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                }\n                else {\n                  unaff_s7 = (code *******)pppppppcVar14[10];\nLAB_00054d1c:\n                  pppppppcVar28 = (code *******)PTR_s_nt0_000795b8;\n                  if (unaff_s7 != (code *******)0x0) break;\n                }\n                pppppppcVar28 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                local_dc = (code *******)\n                           (*(code *)PTR___assert_fail_000799f8)\n                                     (PTR_s_nt0_000795b8 + 0x71a0,pppppppcVar29,0x435);\n                if (local_dc == pppppppcVar26) {\n                  if ((int)local_dc < (int)param_3) {\n                    uVar7 = (uint)(byte)*(code *)((int)local_dc + (int)param_2);\n                  }\n                  else {\n                    uVar7 = 0;\n                  }\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    uVar7 = (uint)*(byte *)((int)ppppppcVar32 + uVar7);\n                  }\n                  if (*(code *)((int)local_148 + uVar7) == (code)0x0) {\n                    local_150 = (code *******)0x1;\n                    pppppppcVar30 = param_9;\n                    pppppppcVar33 = pppppppcVar28;\n                    goto LAB_000557e4;\n                  }\n                }\n              }\n              pppppppcVar33 = pppppppcVar28;\n              bVar1 = pppppppcVar36 != (code *******)0x0;\n              if ((local_50 == (code *******)0x0) ||\n                 (local_50[(int)pppppppcVar42] = (code ******)unaff_s7,\n                 pppppppcVar14[0x13] == (code ******)0x0)) {\nLAB_00054d50:\n                if ((int)unaff_s7[0xd] << 4 < 0) {\n                  if ((((uint)unaff_s7[0xd] & 0x1000000) == 0) ||\n                     (pppppppcVar29 = unaff_s7, pppppppcVar30 = pppppppcVar42,\n                     iVar18 = FUN_00049440(&local_b4), iVar18 != 0)) {\n                    unaff_s8 = pppppppcVar42;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                  }\n                  else {\n                    pppppppcVar42 = (code *******)0xffffffff;\n                    pppppppcVar28 = (code *******)0x0;\n                  }\n                }\n                else {\n                  pppppppcVar42 = (code *******)0xffffffff;\n                  pppppppcVar28 = (code *******)0x0;\n                }\n                pcVar8 = (code *)(PTR_DAT_000799a4 + -0x7144);\n                pcVar9 = (code *)(PTR_DAT_000799a4 + -0x1980);\n                pcVar10 = (code *)(PTR_DAT_000799a4 + -0x2f9c);\n                unaff_s8 = pppppppcVar42;\n                local_144 = pppppppcVar36;\n                while( true ) {\n                  uVar44 = CONCAT44(local_98,local_84);\n                  unaff_s5 = (code *******)((int)local_8c + 1);\n                  pppppppcVar29 = local_8c;\n                  if ((int)local_7c <= (int)local_8c) break;\n                  if (((int)local_90 <= (int)unaff_s5) && ((int)local_90 < (int)local_84))\n                  goto LAB_00054e94;\n                  if ((int)local_98 <= (int)unaff_s5) {\n                    while ((int)((ulonglong)uVar44 >> 0x20) < (int)uVar44) {\nLAB_00054e94:\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 2);\n                      local_d8 = (code *******)(*pcVar8)(&local_b4);\n                      if (local_d8 == (code *******)0x0) break;\n                      pppppppcVar14 = param_4;\n                      if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                      pppppppcVar33 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                      pppppppcVar30 = (code *******)0x46c;\n                      pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                      uVar44 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0);\n                      pppppppcVar28 = pppppppcVar38;\n                    }\n                  }\n                  pppppppcVar42 = local_60;\n                  if ((int)unaff_s7[0xd] << 5 < 0) {\n                    pppppppcVar31 = pppppppcVar42;\n                    if (0 < (int)unaff_s7[2]) {\n                      pcVar11 = (code *)(PTR_DAT_000799a4 + -0x6fdc);\n                      pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6ef0);\n                      param_6 = (code *******)0x0;\n                      do {\n                        param_5 = (code *******)unaff_s7[3][(int)param_6];\n                        ppppppcVar39 = *pppppppcVar42;\n                        pppppcVar13 = ppppppcVar39[(int)param_5 * 2 + 1];\n                        if (((uint)pppppcVar13 & 0x800) != 0) {\n                          if (((uint)pppppcVar13 & 0xffc000) != 0) {\n                            pppppppcVar29 = local_8c;\n                            uVar19 = (*pcVar12)(&local_b4,local_8c,local_5c);\n                            uVar7 = (uint)((int)ppppppcVar39[(int)param_5 * 2 + 1] << 8) >> 0x16;\n                            if ((uVar7 & 4) == 0) {\n                              uVar27 = uVar19 & 1;\n                              if ((uVar7 & 8) != 0) goto joined_r0x00054f40;\n                            }\n                            else {\n                              uVar27 = uVar7 & 8;\n                              if ((uVar19 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                              if (uVar27 != 0) goto LAB_000550a4;\n                            }\n                            if ((((uVar7 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                               (((uVar7 & 0x80) != 0 &&\n                                (pppppppcVar33 = local_8c, (uVar19 & 8) == 0)))) goto LAB_000550a4;\n                          }\n                          pppppppcVar30 = &local_b4;\n                          pppppppcVar29 = param_5;\n                          pppppppcVar33 = local_8c;\n                          iVar18 = (*pcVar10)(pppppppcVar42);\n                          if (iVar18 != 0) {\n                            pppppppcVar14 = (code *******)((int)local_8c + iVar18);\n                            if (iVar18 <= local_3c) {\n                              iVar18 = local_3c;\n                            }\n                            pppppppcVar29 = pppppppcVar14;\n                            local_3c = iVar18;\n                            local_d4 = (code *******)(*pcVar11)(&local_b4);\n                            pppppppcVar15 = local_d4;\n                            if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                            pppppppcVar30 =\n                                 (code *******)\n                                 (pppppppcVar42[6] + (int)pppppppcVar42[3][(int)param_5] * 3);\n                            unaff_s4 = (code *******)((int)pppppppcVar14 * 4);\n                            param_5 = local_50 + (int)pppppppcVar14;\n                            if (*param_5 == (code ******)0x0) {\n                              local_d0 = (code *******)*pppppppcVar30;\n                              local_cc = (code *******)pppppppcVar30[1];\n                              local_c8 = (code *******)pppppppcVar30[2];\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *param_5 = ppppppcVar39;\n                            }\n                            else {\n                              pppppppcVar29 = (code *******)(*param_5)[10];\n                              local_d4 = (code *******)FUN_000484bc(&local_d0);\n                              pppppppcVar15 = local_d4;\n                              if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar15 = local_50 + (int)pppppppcVar14;\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *pppppppcVar15 = ppppppcVar39;\n                              (*(code *)PTR_free_00079c24)(local_c8);\n                            }\n                            unaff_s4 = local_50 + (int)pppppppcVar14;\n                            if ((*unaff_s4 == (code ******)0x0) &&\n                               (pppppppcVar15 = local_d4, local_d4 != (code *******)0x0))\n                            goto LAB_00055e44;\n                          }\n                        }\nLAB_000550a4:\n                        param_6 = (code *******)((int)param_6 + 1);\n                      } while ((int)param_6 < (int)unaff_s7[2]);\n                    }\n                    local_d8 = (code *******)0x0;\n                  }\n                  uVar7 = (uint)(byte)*(code *)((int)local_8c + (int)local_b0);\n                  local_8c = (code *******)((int)local_8c + 1);\n                  do {\n                    if (unaff_s7[0xb] != (code ******)0x0) {\n                      pppppppcVar30 = (code *******)unaff_s7[0xb][uVar7];\nLAB_000553a0:\n                      pppppppcVar14 = pppppppcVar30;\n                      if (local_50 != (code *******)0x0) goto LAB_000553ac;\n                      goto LAB_000553cc;\n                    }\n                    pppppppcVar31 = (code *******)unaff_s7[0xc];\n                    if (pppppppcVar31 != (code *******)0x0) {\n                      pppppppcVar29 = (code *******)((int)local_8c + -1);\n                      uVar19 = FUN_00049110(&local_b4);\n                      if ((uVar19 & 1) == 0) {\n                        pppppppcVar30 = (code *******)pppppppcVar31[uVar7];\n                      }\n                      else {\n                        pppppppcVar31 = pppppppcVar31 + uVar7 + 0x100;\n                        pppppppcVar30 = (code *******)*pppppppcVar31;\n                      }\n                      goto LAB_000553a0;\n                    }\n                    pppppppcVar29 = unaff_s7;\n                    pppppppcVar30 = local_5c;\n                    iVar18 = (*pcVar9)(local_60);\n                  } while (iVar18 != 0);\n                  local_d8 = (code *******)0xc;\n                  pppppppcVar15 = local_d8;\nLAB_00055e44:\n                  local_d8 = pppppppcVar15;\n                  param_4 = (code *******)0x0;\n                  if (local_50 == (code *******)0x0) {\n                    pppppppcVar14 = param_4;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    break;\n                  }\n                  pppppppcVar30 = (code *******)0x0;\nLAB_000553ac:\n                  pppppppcVar29 = &local_b4;\n                  pppppppcVar14 = (code *******)FUN_00053684(&local_d8);\nLAB_000553cc:\n                  param_4 = pppppppcVar14;\n                  if (pppppppcVar14 == (code *******)0x0) {\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    if ((local_50 == (code *******)0x0) ||\n                       ((pppppppcVar28 != (code *******)0x0 && (pppppppcVar34 == (code *******)0x0))\n                       )) break;\n                    param_6 = &local_b4;\n                    param_5 = (code *******)&local_d8;\n                    pppppppcVar31 = (code *******)(PTR_DAT_000799a4 + 0x3684);\n                    do {\n                      pppppppcVar15 = local_50 + (int)local_8c;\n                      pppppppcVar42 = local_8c;\n                      do {\n                        pppppppcVar42 = (code *******)((int)pppppppcVar42 + 1);\n                        pppppppcVar29 = local_4c;\n                        param_4 = pppppppcVar14;\n                        if ((int)local_4c < (int)pppppppcVar42) goto LAB_00055da8;\n                        local_8c = (code *******)((int)local_8c + 1);\n                        pppppppcVar15 = pppppppcVar15 + 1;\n                      } while (*pppppppcVar15 == (code ******)0x0);\n                      pppppppcVar30 = (code *******)0x0;\n                      pppppppcVar29 = param_6;\n                      param_4 = (code *******)(*(code *)pppppppcVar31)(param_5);\n                      if (local_d8 != (code *******)0x0) {\n                        if (param_4 == (code *******)0x0) goto LAB_00055da8;\n                        break;\n                      }\n                      pppppppcVar29 = local_4c;\n                    } while (param_4 == (code *******)0x0);\n                  }\n                  pppppppcVar15 = (code *******)((uint)unaff_s7 ^ (uint)param_4);\n                  pppppppcVar42 = unaff_s7;\n                  pppppppcVar14 = local_138;\n                  if ((bVar1) &&\n                     (pppppppcVar42 = pppppppcVar15, pppppppcVar14 = unaff_s5,\n                     pppppppcVar15 != (code *******)0x0)) {\n                    bVar1 = false;\n                    pppppppcVar14 = local_138;\n                  }\n                  local_138 = pppppppcVar14;\n                  unaff_s7 = param_4;\n                  if ((((uint)param_4[0xd] & 0x8000000) != 0) &&\n                     ((((uint)param_4[0xd] & 0x1000000) == 0 ||\n                      (pppppppcVar29 = param_4, pppppppcVar30 = local_8c,\n                      iVar18 = FUN_00049440(&local_b4), iVar18 != 0)))) {\n                    unaff_s7 = pppppppcVar42;\n                    unaff_s8 = local_8c;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                    local_144 = (code *******)0x0;\n                    unaff_s7 = param_4;\n                  }\n                }\nLAB_00055da8:\n                if (local_144 != (code *******)0x0) {\n                  *local_144 = (code ******)((int)local_138 + (int)*local_144);\n                }\n              }\n              else {\n                param_4 = unaff_s7 + 1;\n                pppppppcVar30 = (code *******)0x0;\n                pppppppcVar29 = param_4;\n                local_d8 = (code *******)FUN_00047a44(&local_b4);\n                unaff_s8 = local_d8;\n                if (local_d8 == (code *******)0x0) {\n                  if (((uint)unaff_s7[0xd] & 0x2000000) == 0) {\n                    pppppppcVar29 = param_4;\n                    bVar1 = false;\n                  }\n                  else {\n                    pppppppcVar29 = param_4;\n                    local_d8 = (code *******)FUN_00052d84(&local_b4);\n                    unaff_s8 = local_d8;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055dbc;\n                    bVar1 = false;\n                  }\n                  goto LAB_00054d50;\n                }\n              }\nLAB_00055dbc:\n              if (unaff_s8 == (code *******)0xffffffff) {\nLAB_00055b04:\n                FUN_0004b7e8(&local_b4);\nLAB_00055b1c:\n                local_dc = (code *******)((int)pppppppcVar24 + (int)local_dc);\n                if ((int)pppppppcVar25 <= (int)local_dc) goto code_r0x00055b38;\n                local_150 = (code *******)0x1;\n                goto LAB_000557e4;\n              }\n              if (unaff_s8 == (code *******)&SUB_fffffffe) {\n                local_150 = (code *******)0xc;\n                goto LAB_000557e4;\n              }\n              local_58 = unaff_s8;\n              if (((uint)param_1[7] & 0x8000000) == 0) {\n                if (pppppppcVar3 < (code *******)0x2) {\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055c08;\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                else {\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                if (pppppppcVar3 < (code *******)0x2) {\nLAB_00055c6c:\n                  pppppppcVar28 = pppppppcVar33;\n                  unaff_s4 = local_60;\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055548;\n                }\n                else {\n                  cVar23 = *(code *)(pppppppcVar38 + 0x16);\nLAB_00055c20:\n                  pppppppcVar28 = pppppppcVar33;\n                  if (-1 < (char)cVar23) goto LAB_00055c6c;\n                }\n                pppppppcVar31 = local_54;\n                pppppppcVar42 = local_60;\n                unaff_s4 = pppppppcVar42;\n                if (unaff_s8 < (code *******)0x3fffffff) {\n                  param_4 = (code *******)((int)((int)unaff_s8 + 1) * 4);\n                  unaff_s5 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                  if (unaff_s5 == (code *******)0x0) {\nLAB_00055b9c:\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    local_150 = (code *******)0xc;\n                    pppppppcVar33 = pppppppcVar28;\n                  }\n                  else {\n                    pppppppcVar29 = (code *******)&local_d0;\n                    if (pppppppcVar42[0x13] == (code ******)0x0) {\n                      local_cc = (code *******)0x0;\n                      local_c8 = pppppppcVar31;\n                      local_c0 = 0;\n                      local_bc = 0;\n                      local_b8 = 0;\n                      local_d0 = unaff_s5;\n                      local_c4 = unaff_s8;\n                      param_5 = (code *******)FUN_0005421c(&local_b4);\n                      (*(code *)PTR_free_00079c24)(local_b8);\n                      if (param_5 == (code *******)0x0) {\n                        param_4 = (code *******)*unaff_s5;\n                        if (param_4 == (code *******)0x0) {\nLAB_00055b70:\n                          (*(code *)PTR_free_00079c24)(unaff_s5);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          pppppppcVar33 = pppppppcVar28;\n                          goto LAB_00055b04;\n                        }\nLAB_00055528:\n                        (*(code *)PTR_free_00079c24)(local_50);\n                        pppppppcVar33 = pppppppcVar28;\n                        unaff_s4 = pppppppcVar42;\n                        local_58 = unaff_s8;\n                        local_54 = pppppppcVar31;\n                        local_50 = unaff_s5;\n                        goto LAB_00055548;\n                      }\nLAB_00055acc:\n                      param_4 = (code *******)0x0;\n                      pppppppcVar33 = pppppppcVar28;\n                      unaff_s4 = pppppppcVar42;\n                    }\n                    else {\n                      param_4 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                      if (param_4 == (code *******)0x0) goto LAB_00055b9c;\n                      unaff_s7 = (code *******)&local_d0;\n                      pcVar8 = (code *)(PTR_DAT_000799a4 + 0x421c);\n                      pcVar9 = (code *)(PTR_DAT_000799a4 + -0x6bc0);\n                      pppppppcVar33 = pppppppcVar28;\n                      while( true ) {\n                        pppppppcVar28 = (code *******)((int)unaff_s8 + 1);\n                        param_6 = (code *******)((int)pppppppcVar28 * 4);\n                        pppppppcVar30 = param_6;\n                        (*(code *)PTR_memset_00079b00)(param_4,0);\n                        local_c0 = 0;\n                        local_bc = 0;\n                        local_b8 = 0;\n                        pppppppcVar29 = unaff_s7;\n                        local_d0 = unaff_s5;\n                        local_cc = param_4;\n                        local_c8 = pppppppcVar31;\n                        local_c4 = unaff_s8;\n                        param_5 = (code *******)(*pcVar8)(&local_b4);\n                        (*(code *)PTR_free_00079c24)(local_b8);\n                        unaff_s4 = pppppppcVar28;\n                        if (param_5 != (code *******)0x0) break;\n                        if ((*unaff_s5 != (code ******)0x0) ||\n                           (param_6 = param_6 + -1, *param_4 != (code ******)0x0)) {\n                          pppppppcVar29 = unaff_s5;\n                          pppppppcVar30 = param_4;\n                          param_5 = (code *******)FUN_000520d0(pppppppcVar42);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          if (param_5 != (code *******)0x0) goto LAB_00055acc;\n                          goto LAB_00055528;\n                        }\n                        param_6 = (code *******)((int)local_50 + (int)param_6);\n                        do {\n                          while( true ) {\n                            unaff_s8 = (code *******)((int)unaff_s8 + -1);\n                            if ((int)unaff_s8 < 0) goto LAB_00055b70;\n                            pppppppcVar29 = (code *******)param_6[-1];\n                            if (pppppppcVar29 != (code *******)0x0) break;\n                            param_6 = param_6 + -1;\n                          }\n                          param_6 = param_6 + -1;\n                        } while (((uint)pppppppcVar29[0xd] & 0x8000000) == 0);\n                        pppppppcVar31 = (code *******)(*pcVar9)(&local_b4,pppppppcVar29,unaff_s8);\n                        pppppppcVar33 = pppppppcVar28;\n                      }\n                    }\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    (*(code *)PTR_free_00079c24)(param_4);\n                    local_150 = param_5;\n                    if (param_5 == (code *******)0x1) goto LAB_00055b04;\n                  }\n                }\n                else {\n                  local_150 = (code *******)0xc;\n                  pppppppcVar33 = pppppppcVar28;\n                }\n                goto LAB_000557e4;\n              }\n              if (pppppppcVar38[0x13] != (code ******)0x0) {\n                pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                pppppppcVar30 = unaff_s8;\n                local_54 = (code *******)FUN_00049440(&local_b4);\n                goto LAB_00055c6c;\n              }\nLAB_00055c08:\n              if ((((uint)param_1[7] & 0x8000000) == 0) && ((code *******)0x1 < pppppppcVar3)) {\n                cVar23 = *(code *)(pppppppcVar38 + 0x16);\n                goto LAB_00055c20;\n              }\nLAB_00055548:\n              if (pppppppcVar3 == (code *******)0x0) goto LAB_000557e4;\n              if (pppppppcVar3 < (code *******)0x2) {\n                *param_8 = (code ******)0x0;\n                param_8[1] = (code ******)local_58;\n                goto LAB_000555ac;\n              }\n              pppppppcVar29 = param_8 + 2;\n              do {\n                pppppppcVar29[1] = (code ******)0xffffffff;\n                *pppppppcVar29 = (code ******)0xffffffff;\n                pppppppcVar29 = pppppppcVar29 + 2;\n              } while (pppppppcVar29 != param_8 + (int)pppppppcVar3 * 2);\n              *param_8 = (code ******)0x0;\n              param_8[1] = (code ******)local_58;\n              if (((uint)param_1[7] & 0x8000000) != 0) {\nLAB_000555ac:\n                pppppppcVar33 = param_8;\n                do {\n                  pppppppcVar29 = (code *******)*pppppppcVar33;\n                  if (pppppppcVar29 != (code *******)0xffffffff) {\n                    if (local_68 != '\0') {\n                      pppppppcVar34 = local_94;\n                      if (pppppppcVar29 != local_98) {\n                        pppppppcVar34 = *(code ********)(local_a8 + (int)pppppppcVar29 * 4);\n                      }\n                      *pppppppcVar33 = (code ******)pppppppcVar34;\n                      pppppppcVar29 = local_94;\n                      if (local_98 != (code *******)pppppppcVar33[1]) {\n                        pppppppcVar29 = *(code ********)(local_a8 + (int)pppppppcVar33[1] * 4);\n                      }\n                      pppppppcVar33[1] = (code ******)pppppppcVar29;\n                    }\n                    *pppppppcVar33 = (code ******)((int)local_dc + (int)*pppppppcVar33);\n                    pppppppcVar29 = (code *******)((int)local_dc + (int)pppppppcVar33[1]);\n                    pppppppcVar33[1] = (code ******)pppppppcVar29;\n                  }\n                  pppppppcVar33 = pppppppcVar33 + 2;\n                } while (pppppppcVar33 != param_8 + (int)pppppppcVar3 * 2);\n                if (0 < local_118) {\n                  pppppppcVar33 = param_8 + (int)pppppppcVar3 * 2;\n                  do {\n                    *pppppppcVar33 = (code ******)0xffffffff;\n                    pppppppcVar33[1] = (code ******)0xffffffff;\n                    pppppppcVar33 = pppppppcVar33 + 2;\n                  } while (pppppppcVar33 != param_8 + (int)param_7 * 2);\n                }\n                pppppppcVar30 = local_dc;\n                pppppppcVar33 = param_8;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar38[0x21] != (code ******)0x0) {\n                  pppppppcVar30 = (code *******)((int)pppppppcVar3 + -1);\n                  pppppppcVar34 = (code *******)0x0;\n                  pppppppcVar3 = param_8;\n                  while( true ) {\n                    pppppppcVar29 = (code *******)((int)pppppppcVar34 * 4);\n                    if (pppppppcVar30 == pppppppcVar34) break;\n                    if (*(code ********)((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) !=\n                        pppppppcVar34) {\n                      pppppppcVar3[2] =\n                           param_8[(int)((int)*(code ********)\n                                               ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1)\n                                   * 2];\n                      pppppppcVar3[3] =\n                           param_8[((int)*(code ******)\n                                          ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1) * 2 +\n                                   1];\n                    }\n                    pppppppcVar34 = (code *******)((int)pppppppcVar34 + 1);\n                    pppppppcVar3 = pppppppcVar3 + 2;\n                  }\n                }\n                goto LAB_000557e4;\n              }\n              if ((char)*(code *)(pppppppcVar38 + 0x16) < '\0') {\n                local_168 = (uint)(0 < (int)pppppppcVar38[0x13]);\n              }\n              else {\n                local_168 = 0;\n              }\n              pppppppcVar29 = &local_b4;\n              pppppppcVar30 = pppppppcVar3;\n              pppppppcVar33 = param_8;\n              local_150 = (code *******)FUN_0004f4a0(param_1);\n              if (local_150 == (code *******)0x0) goto LAB_000555ac;\n            }\n          }\n          else if (local_90 < 0x3fffffff) {\n            local_50 = (code *******)(*(code *)PTR_malloc_00079b54)((local_90 + 1) * 4);\n            if (local_50 != (code *******)0x0) goto LAB_00055a40;\n            local_150 = (code *******)0xc;\n            param_6 = pppppppcVar36;\n          }\n          else {\n            local_150 = (code *******)0xc;\n            param_6 = pppppppcVar36;\n          }\n        }\n        else {\n          unaff_s5 = (code *******)((int)ppppppcVar35 * 8);\n          if (pppppppcVar36 < (code *******)0xccccccd) {\n            unaff_s4 = (code *******)(*(code *)PTR_malloc_00079b54)((int)ppppppcVar35 * 0x28);\n            local_40 = unaff_s4;\n            local_30 = (*(code *)PTR_malloc_00079b54)(unaff_s5);\n            if ((unaff_s4 != (code *******)0x0) && (local_30 != 0)) goto LAB_000559f0;\n          }\n          local_150 = (code *******)0xc;\n          param_6 = pppppppcVar36;\n        }\nLAB_000557e4:\n        (*(code *)PTR_free_00079c24)(local_50);\n        param_1 = pppppppcVar30;\n        if (pppppppcVar38[0x13] != (code ******)0x0) {\n          FUN_0004b7e8(&local_b4);\n          (*(code *)PTR_free_00079c24)(local_30);\n          (*(code *)PTR_free_00079c24)(local_40);\n          param_1 = pppppppcVar30;\n        }\n        FUN_0004b2bc(&local_b4);\n        pppppppcStack_1a0 = param_4;\n        pppppppcStack_19c = pppppppcVar31;\n      }\n    }\n  }\n  if (local_2c == *(code ********)PTR___stack_chk_guard_00079c10) {\n    return local_150;\n  }\n  pcVar4 = FUN_00055e64;\n  pppppppcVar3 = local_2c;\n  puVar41 = PTR___stack_chk_fail_00079bd0;\n  (*(code *)PTR___stack_chk_fail_00079bd0)();\n  iStack_1a4 = **(int **)(puVar41 + 0x23dac);\n  pppppppcStack_20c = (code *******)0x0;\n  pppppppcVar3[3] = (code ******)pppppppcVar33;\n  pppppppcVar3[2] = (code ******)0x0;\n  pppppppcVar3[6] = (code ******)0x0;\n  *(byte *)(pppppppcVar3 + 7) = (byte)*(code *)(pppppppcVar3 + 7) & 9;\n  pppppppcVar34 = (code *******)*pppppppcVar3;\n  pppppppcStack_198 = param_5;\n  pppppppcStack_194 = param_6;\n  pppppppcStack_190 = unaff_s4;\n  pppppppcStack_18c = unaff_s5;\n  pppppppcStack_188 = pppppppcVar38;\n  pppppppcStack_184 = unaff_s7;\n  pppppppcStack_180 = unaff_s8;\n  pcStack_17c = pcVar4;\n  if (pppppppcVar3[1] < (code ******)0xa0) {\n    pppppppcVar38 = (code *******)0xa0;\n    pppppppcVar31 = param_1;\n    pppppppcVar34 = (code *******)(**(code **)(puVar41 + 0x23cf8))(pppppppcVar34,0xa0);\n    if (pppppppcVar34 == (code *******)0x0) {\n      pppppppcVar29 = (code *******)0xc;\n      goto LAB_00056cfc;\n    }\n    pppppppcVar3[1] = (code ******)0xa0;\n    *pppppppcVar3 = (code ******)pppppppcVar34;\n  }\n  pppppppcVar3[2] = (code ******)0xa0;\n  pppppppcVar31 = (code *******)0xa0;\n  pppppppcVar38 = (code *******)0x0;\n  (**(code **)(puVar41 + 0x23c9c))(pppppppcVar34,0);\n  pppppppcVar34[0x10] = (code ******)0x1f;\n  if (param_1 < (code *******)0xaaaaaaa) {\n    pppppppcVar34[1] = (code ******)((int)param_1 + 1);\n    ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23cf0))(((int)param_1 + 1) * 8);\n    *pppppppcVar34 = ppppppcVar32;\n    if (param_1 == (code *******)0x0) {\n      pppppppcVar30 = (code *******)0x1;\n    }\n    else {\n      pppppppcVar30 = (code *******)0x1;\n      do {\n        pppppppcVar30 = (code *******)((int)pppppppcVar30 << 1);\n      } while (pppppppcVar30 <= param_1);\n    }\n    pppppppcVar38 = pppppppcVar30;\n    ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23b8c))(0xc,pppppppcVar30);\n    pppppppcVar34[8] = ppppppcVar32;\n    pppppppcVar34[0x11] = (code ******)((int)pppppppcVar30 + -1);\n    ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23d2c))();\n    pppppppcVar34[0x17] = ppppppcVar32;\n    pbVar17 = (byte *)(**(code **)(puVar41 + 0x23c2c))(0xe);\n    if ((((*pbVar17 & 0xdf) == 0x55) && ((pbVar17[1] & 0xdf) == 0x54)) &&\n       (pppppppcVar38 = (code *******)0x4, (pbVar17[2] & 0xdf) == 0x46)) {\n      iVar18 = 3;\n      if (pbVar17[3] == 0x2d) {\n        iVar18 = 4;\n      }\n      pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23754) + 0x71b4);\n      iVar18 = (**(code **)(puVar41 + 0x23dfc))(pbVar17 + iVar18,pppppppcVar38);\n      if (iVar18 == 0) {\n        *(byte *)(pppppppcVar34 + 0x16) = (byte)*(code *)(pppppppcVar34 + 0x16) & 0xdf | 0x20;\n      }\n    }\n    *(byte *)(pppppppcVar34 + 0x16) = (byte)*(code *)(pppppppcVar34 + 0x16) & 0xef;\n    if (1 < (int)pppppppcVar34[0x17]) {\n      if (((uint)pppppppcVar34[0x16] & 0x20000000) == 0) {\n        pppppppcVar38 = (code *******)0x1;\n        ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23b8c))(0x20,1);\n        pppppppcVar34[0xf] = ppppppcVar32;\n        if (ppppppcVar32 == (code ******)0x0) goto LAB_00056e5c;\n        iVar18 = 0;\n        do {\n          uVar16 = iVar18 << 3;\n          uVar7 = 0;\n          do {\n            uVar19 = (**(code **)(puVar41 + 0x23c88))(uVar16);\n            if (uVar19 != 0xffffffff) {\n              pppppppcVar38 = *(code ********)((int)pppppppcVar34[0xf] + iVar18);\n              *(uint *)((int)pppppppcVar34[0xf] + iVar18) =\n                   (uint)pppppppcVar38 | 1 << (uVar7 & 0x1f);\n            }\n            if (((uVar16 & 0xffffff80) == 0) && (uVar19 != uVar16)) {\n              *(byte *)(pppppppcVar34 + 0x16) = (byte)*(code *)(pppppppcVar34 + 0x16) & 0xef | 0x10;\n            }\n            uVar7 = uVar7 + 1;\n            uVar16 = uVar16 + 1;\n          } while (uVar7 != 0x20);\n          iVar18 = iVar18 + 4;\n        } while (iVar18 != 0x20);\n      }\n      else {\n        pppppppcVar34[0xf] = (code ******)(*(int *)(puVar41 + 0x23754) + 0x6ee4);\n      }\n    }\n    if ((*pppppppcVar34 == (code ******)0x0) || (pppppppcVar34[8] == (code ******)0x0))\n    goto LAB_00056e5c;\n    pppppppcStack_20c = (code *******)0x0;\n    if (*(int *)(puVar41 + 0x23c78) == 0) {\nLAB_00056054:\n      ppppppcVar32 = pppppppcVar3[5];\n      uVar16 = (uint)pppppppcVar33 & 0x400000;\n      bVar1 = uVar16 != 0;\n      pppppppcVar31 = (code *******)0x4c;\n      pppppppcVar38 = (code *******)0x0;\n      (**(code **)(puVar41 + 0x23c9c))(apppppppcStack_1f4,0);\n      cStack_1ad = ppppppcVar32 != (code ******)0x0 || bVar1;\n      ppppppcStack_1a8 = pppppppcVar34[0x17];\n      bStack_1af = (byte)((uint)((int)pppppppcVar34[0x16] << 2) >> 0x1f);\n      bStack_1ae = (byte)((uint)((int)pppppppcVar34[0x16] << 3) >> 0x1f);\n      pppppppcStack_1f8 = pppppppcVar29;\n      pppppppcStack_1cc = param_1;\n      pppppppcStack_1c8 = param_1;\n      pppppppcStack_1c4 = param_1;\n      pppppppcStack_1c0 = param_1;\n      ppppppcStack_1b8 = ppppppcVar32;\n      uStack_1b0 = bVar1;\n      if (0 < (int)param_1) {\n        pppppppcVar38 = (code *******)((int)param_1 + 1);\n        pppppppcVar30 = (code *******)FUN_00046d2c(&pppppppcStack_1f8,pppppppcVar38);\n        if (pppppppcVar30 == (code *******)0x0) goto LAB_000560cc;\n        goto LAB_00056168;\n      }\nLAB_000560cc:\n      if (cStack_1ad != '\0') {\n        pppppppcVar29 = apppppppcStack_1f4[0];\n      }\n      apppppppcStack_1f4[0] = pppppppcVar29;\n      if (uVar16 == 0) {\n        if ((int)pppppppcVar34[0x17] < 2) {\n          if (ppppppcVar32 != (code ******)0x0) {\n            FUN_00045dc8();\n          }\n        }\n        else {\n          FUN_00047cb0(&pppppppcStack_1f8);\n        }\n      }\n      else {\n        if (1 < (int)pppppppcVar34[0x17]) {\n          iVar18 = *(int *)(puVar41 + 0x23abc);\n          do {\n            pppppppcVar30 = (code *******)FUN_00048714(&pppppppcStack_1f8);\n            if (pppppppcVar30 != (code *******)0x0) break;\n            if (((int)param_1 <= iStack_1d8) ||\n               (pppppppcVar38 = (code *******)(iStack_1d4 << 1),\n               (int)pppppppcVar34[0x17] + iStack_1dc < iStack_1d4)) goto LAB_000563d0;\n            pppppppcVar30 =\n                 (code *******)(*(code *)(iVar18 + 0x6d2c))(&pppppppcStack_1f8,pppppppcVar38);\n          } while (pppppppcVar30 == (code *******)0x0);\n          goto LAB_00056168;\n        }\n        FUN_00047be4(&pppppppcStack_1f8);\n      }\nLAB_000563d0:\n      pppppppcStack_20c = (code *******)0x0;\n      pppppppcVar3[6] = (code ******)0x0;\n      ppppppcVar32 = *pppppppcVar3;\n      ppppppcVar32[0x20] = (code *****)pppppppcVar33;\n      FUN_00049e40(&ppppppcStack_204,&pppppppcStack_1f8,(uint)pppppppcVar33 | 0x800000);\n      pppppppcVar38 = pppppppcVar3;\n      pppppppcVar29 =\n           (code *******)\n           FUN_00051868(&pppppppcStack_1f8,pppppppcVar3,&ppppppcStack_204,pppppppcVar33,0,\n                        &pppppppcStack_20c);\n      if (pppppppcStack_20c == (code *******)0x0) {\n        pppppppcVar31 = (code *******)0x0;\n        pppppppcVar38 = (code *******)0x0;\n        pppppppcVar33 = (code *******)FUN_000470f0(ppppppcVar32,0,0,2);\n        pppppppcVar30 = pppppppcVar33;\n        if (pppppppcVar29 != (code *******)0x0) {\nLAB_000564b0:\n          pppppppcVar31 = pppppppcVar33;\n          pppppppcVar30 = (code *******)FUN_000470f0(ppppppcVar32,pppppppcVar29,pppppppcVar33,0x10);\n          pppppppcVar38 = pppppppcVar29;\n        }\n        if ((pppppppcVar33 == (code *******)0x0) ||\n           (pcVar4 = *(code **)(puVar41 + 0x23cf0), pppppppcVar30 == (code *******)0x0)) {\n          pppppppcStack_20c = (code *******)0xc;\n          goto LAB_000566f4;\n        }\n        pppppppcVar34[0xd] = (code ******)pppppppcVar30;\n        pppppppcVar29 = (code *******)*pppppppcVar3;\n        ppppppcVar39 = pppppppcVar29[1];\n        iVar18 = (int)ppppppcVar39 << 2;\n        ppppppcVar32 = (code ******)(*pcVar4)(iVar18);\n        pppppppcVar29[3] = ppppppcVar32;\n        ppppppcVar35 = (code ******)(**(code **)(puVar41 + 0x23cf0))(iVar18);\n        pppppppcVar29[4] = ppppppcVar35;\n        iVar18 = (int)ppppppcVar39 * 0xc;\n        ppppppcVar39 = (code ******)(**(code **)(puVar41 + 0x23cf0))(iVar18);\n        pppppppcVar29[5] = ppppppcVar39;\n        ppppppcVar20 = (code ******)(**(code **)(puVar41 + 0x23cf0))(iVar18);\n        pppppppcVar29[6] = ppppppcVar20;\n        if (ppppppcVar32 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else if (ppppppcVar35 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else if (ppppppcVar39 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else if (ppppppcVar20 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else {\n          ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23cf0))((int)pppppppcVar3[6] << 2);\n          pppppppcVar29[0x21] = ppppppcVar32;\n          if (ppppppcVar32 != (code ******)0x0) {\n            ppppppcVar32 = (code ******)0x0;\n            if (pppppppcVar3[6] != (code ******)0x0) {\n              do {\n                pppppppcVar29[0x21][(int)ppppppcVar32] = (code *****)ppppppcVar32;\n                ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n              } while (ppppppcVar32 < pppppppcVar3[6]);\n            }\n            FUN_00046050(pppppppcVar29[0xd],*(int *)(puVar41 + 0x23abc) + 0x60e8,pppppppcVar29);\n            ppppppcVar32 = pppppppcVar3[6];\n            if (ppppppcVar32 == (code ******)0x0) {\nLAB_00056704:\n              (**(code **)(puVar41 + 0x23dc0))(pppppppcVar29[0x21]);\n              pppppppcVar29[0x21] = (code ******)0x0;\n            }\n            else {\n              ppppppcVar35 = pppppppcVar29[0x21];\n              if (*ppppppcVar35 == (code *****)0x0) {\n                ppppppcVar39 = (code ******)0x0;\n                do {\n                  ppppppcVar35 = ppppppcVar35 + 1;\n                  ppppppcVar39 = (code ******)((int)ppppppcVar39 + 1);\n                  if (ppppppcVar32 == ppppppcVar39) {\n                    if (ppppppcVar32 == ppppppcVar39) goto LAB_00056704;\n                    break;\n                  }\n                } while ((code ******)*ppppppcVar35 == ppppppcVar39);\n              }\n            }\n          }\n          pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23abc) + 0x73a4);\n          pppppppcVar30 = (code *******)FUN_00045fb4(pppppppcVar29[0xd],pppppppcVar38,pppppppcVar3);\n          pppppppcVar31 = pppppppcVar29;\n          if (pppppppcVar30 == (code *******)0x0) {\n            pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23b40) + -0x5be4);\n            pppppppcVar30 = (code *******)FUN_00045fb4(pppppppcVar29[0xd],pppppppcVar38);\n            if (pppppppcVar30 == (code *******)0x0) {\n              FUN_00046050(pppppppcVar29[0xd],*(int *)(puVar41 + 0x23abc) + 0x61b4);\n              pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23b40) + -0x4614);\n              pppppppcVar30 = (code *******)FUN_00046050(pppppppcVar29[0xd],pppppppcVar38);\n              if (pppppppcVar30 == (code *******)0x0) {\n                uVar7 = 0;\n                iVar18 = *(int *)(puVar41 + 0x23b40);\n                pppppppcVar33 = (code *******)0x0;\nLAB_00056744:\n                if ((code *******)pppppppcVar29[2] != pppppppcVar33) {\nLAB_00056750:\n                  if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                    pppppppcVar38 = pppppppcVar29;\n                    pppppppcVar31 = pppppppcVar33;\n                    pppppppcVar30 =\n                         (code *******)\n                         (*(code *)(iVar18 + -0x561c))\n                                   (&ppppppcStack_204,pppppppcVar29,pppppppcVar33,1);\n                    if (pppppppcVar30 != (code *******)0x0) goto LAB_00056168;\n                    if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                      (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                      uVar7 = 1;\n                    }\n                  }\n                  pppppppcVar33 = (code *******)((int)pppppppcVar33 + 1);\n                  goto LAB_00056744;\n                }\n                if (uVar7 != 0) {\n                  uVar7 = 0;\n                  pppppppcVar33 = (code *******)0x0;\n                  goto LAB_00056750;\n                }\n                if (((((uint)pppppppcVar3[7] & 0x8000000) == 0) &&\n                    (pppppppcVar3[6] != (code ******)0x0)) &&\n                   ((char)*(code *)(pppppppcVar29 + 0x16) < '\0')) {\n                  ppppppcVar32 = pppppppcVar29[2];\n                }\n                else {\n                  if (pppppppcVar29[0x13] == (code ******)0x0) goto LAB_000568f0;\n                  ppppppcVar32 = pppppppcVar29[2];\n                }\n                ppppppcVar35 = (code ******)\n                               (**(code **)(puVar41 + 0x23cf0))((int)ppppppcVar32 * 0xc);\n                pppppppcVar29[7] = ppppppcVar35;\n                if (ppppppcVar35 == (code ******)0x0) {\n                  pppppppcVar30 = (code *******)0xc;\n                  goto LAB_00056168;\n                }\n                if (ppppppcVar32 != (code ******)0x0) {\n                  iVar18 = 0;\n                  ppppppcVar32 = (code ******)0x0;\n                  do {\n                    puVar21 = (undefined1 *)((int)pppppppcVar29[7] + iVar18);\n                    *puVar21 = 0;\n                    puVar21[1] = 0;\n                    puVar21[2] = 0;\n                    puVar21[3] = 0;\n                    puVar21[4] = 0;\n                    puVar21[5] = 0;\n                    puVar21[6] = 0;\n                    puVar21[7] = 0;\n                    puVar21[8] = 0;\n                    puVar21[9] = 0;\n                    puVar21[10] = 0;\n                    puVar21[0xb] = 0;\n                    ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                    iVar18 = iVar18 + 0xc;\n                  } while (ppppppcVar32 < pppppppcVar29[2]);\n                  iVar18 = *(int *)(puVar41 + 0x23abc);\n                  if (pppppppcVar29[2] != (code ******)0x0) {\n                    iVar43 = 0;\n                    pppppppcStack_218 = (code *******)0x0;\n                    do {\n                      piVar5 = *(int **)((int)pppppppcVar29[6] + iVar43 + 8);\n                      if (0 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4)) {\n                        iVar37 = 0;\n                        do {\n                          pppppppcVar38 = pppppppcStack_218;\n                          iVar22 = (*(code *)(iVar18 + 0x6e30))\n                                             (pppppppcVar29[7] + *piVar5 * 3,pppppppcStack_218);\n                          pppppppcVar30 = (code *******)0xc;\n                          if (iVar22 == 0) goto LAB_00056168;\n                          iVar37 = iVar37 + 1;\n                          piVar5 = piVar5 + 1;\n                        } while (iVar37 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4));\n                      }\n                      pppppppcStack_218 = (code *******)((int)pppppppcStack_218 + 1);\n                      iVar43 = iVar43 + 0xc;\n                    } while (pppppppcStack_218 < pppppppcVar29[2]);\n                  }\n                }\nLAB_000568f0:\n                pppppppcStack_20c = (code *******)0x0;\n                if (((((uint)pppppppcVar34[0x16] & 0x20000000) != 0) && (uVar16 == 0)) &&\n                   (pppppppcVar3[5] == (code ******)0x0)) {\n                  if (pppppppcVar34[2] != (code ******)0x0) {\n                    pppppppcVar31 = (code *******)(*(int *)(puVar41 + 0x23754) + 0x6e4c);\n                    if (*(byte *)(*pppppppcVar34 + 1) < 0xd) {\n                    /* WARNING: Could not recover jumptable at 0x00056a60. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      pppppppcVar29 =\n                           (code *******)\n                           (*(code *)(puVar41 +\n                                     (int)(pppppppcVar31[*(byte *)(*pppppppcVar34 + 1)] + 0xadc7)))\n                                     ();\n                      return pppppppcVar29;\n                    }\n                    (**(code **)(puVar41 + 0x23bc4))(0);\n                    if (uVar7 != 0) {\n                      pppppppcVar31 = (code *******)&DAT_00000007;\n                      ppppppcVar32 = (code ******)0x0;\n                      do {\n                        ppppppcVar35 = *pppppppcVar34 + (int)ppppppcVar32 * 2;\n                        if (*(char *)(ppppppcVar35 + 1) == '\x01') {\n                          if (*(char *)ppppppcVar35 < '\0') {\n                            ppppppcVar35[1] = (code *****)((uint)ppppppcVar35[1] & 0xfffffbff);\n                          }\n                        }\n                        else if (*(char *)(ppppppcVar35 + 1) == '\x05') {\n                          *(char *)(ppppppcVar35 + 1) = '\a';\n                        }\n                        ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                      } while (ppppppcVar32 < pppppppcVar34[2]);\n                    }\n                  }\n                  pppppppcVar34[0x17] = (code ******)0x1;\n                  if (0 < (int)pppppppcVar34[0x13]) {\n                    uVar7 = 1;\n                  }\n                  *(byte *)(pppppppcVar34 + 0x16) =\n                       (byte)*(code *)(pppppppcVar34 + 0x16) & 0x9f | (byte)((uVar7 & 1) << 6);\n                }\n                ppppppcVar32 = (code ******)pppppppcVar34[0xd][3][7];\n                pppppppcVar34[0x12] = ppppppcVar32;\n                pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppppcVar32 * 3);\n                pppppppcVar33 = (code *******)FUN_000483e8(&ppppppcStack_204,pppppppcVar38);\n                pppppppcVar29 = pppppppcVar33;\n                pppppppcStack_208 = pppppppcVar33;\n                if (pppppppcVar33 == (code *******)0x0) {\n                  if ((0 < (int)pppppppcVar34[0x13]) && (0 < iStack_200)) {\n                    iVar18 = *(int *)(puVar41 + 0x23abc);\n                    iVar43 = *(int *)(puVar41 + 0x23abc);\n                    pppppppcVar29 = (code *******)0x0;\n                    do {\n                      pppppppcVar31 =\n                           (code *******)(*pppppppcVar34 + piStack_1fc[(int)pppppppcVar29] * 2);\n                      if (*(code *)(pppppppcVar31 + 1) == (code)0x4) {\n                        iVar37 = 0;\n                        piVar5 = piStack_1fc;\n                        if (iStack_200 < 1) {\nLAB_00056b8c:\n                          if (iStack_200 != iVar37) {\n                            ppppcVar40 = *pppppppcVar34[5][piStack_1fc[(int)pppppppcVar29] * 3 + 2];\n                            iVar37 = (*(code *)(iVar18 + 0x5ea8))(&ppppppcStack_204,ppppcVar40);\n                            if (iVar37 == 0) {\n                              pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppcVar40 * 3)\n                              ;\n                              pppppppcVar29 =\n                                   (code *******)\n                                   (*(code *)(iVar43 + 0x7f1c))(&ppppppcStack_204,pppppppcVar38);\n                              if (pppppppcVar29 != (code *******)0x0) goto LAB_00056cb8;\n                            }\n                          }\n                        }\n                        else {\n                          do {\n                            ppppppcVar32 = *pppppppcVar34 + *piVar5 * 2;\n                            if ((*(char *)(ppppppcVar32 + 1) == '\t') &&\n                               ((code ******)*ppppppcVar32 == *pppppppcVar31)) goto LAB_00056b8c;\n                            iVar37 = iVar37 + 1;\n                            piVar5 = piVar5 + 1;\n                          } while (iStack_200 != iVar37);\n                        }\n                      }\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1);\n                    } while ((int)pppppppcVar29 < iStack_200);\n                  }\n                  pppppppcVar31 = &ppppppcStack_204;\n                  pppppppcVar38 = pppppppcVar34;\n                  ppppppcVar32 = (code ******)\n                                 FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,0);\n                  pppppppcVar34[9] = ppppppcVar32;\n                  pppppppcVar29 = pppppppcStack_208;\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    if (((uint)ppppppcVar32[0xd] & 0x1000000) == 0) {\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar34[10] = ppppppcVar32;\n                    }\n                    else {\n                      pppppppcVar31 = &ppppppcStack_204;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,1);\n                      pppppppcVar34[10] = ppppppcVar32;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,2);\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar38 = pppppppcVar34;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,6);\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar29 = pppppppcStack_208;\n                      if (((pppppppcVar34[10] == (code ******)0x0) ||\n                          (pppppppcVar34[0xb] == (code ******)0x0)) ||\n                         (ppppppcVar32 == (code ******)0x0)) goto LAB_00056cb8;\n                    }\n                    (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                    pppppppcVar29 = pppppppcVar33;\n                  }\n                }\nLAB_00056cb8:\n                pppppppcStack_20c = pppppppcVar29;\n                FUN_0004b234(pppppppcVar3);\n                FUN_0004b2bc(&pppppppcStack_1f8);\n                pppppppcVar29 = pppppppcStack_20c;\n                if (pppppppcStack_20c != (code *******)0x0) {\n                  if (*(int *)(puVar41 + 0x23c78) != 0) {\n                    (**(code **)(puVar41 + 0x23df0))(pppppppcVar34 + 0x22);\n                  }\n                  FUN_0004b338(pppppppcVar34);\n                  *pppppppcVar3 = (code ******)0x0;\n                  pppppppcVar3[1] = (code ******)0x0;\n                  pppppppcVar29 = pppppppcStack_20c;\n                }\n                goto LAB_00056cfc;\n              }\n            }\n          }\n        }\n      }\n      else {\n        pppppppcVar31 = (code *******)0x0;\n        if (pppppppcVar29 != (code *******)0x0) {\n          pppppppcVar33 = (code *******)FUN_000470f0(ppppppcVar32,0,0,2);\n          goto LAB_000564b0;\n        }\nLAB_000566f4:\n        pppppppcVar34[0xd] = (code ******)0x0;\n        pppppppcVar30 = pppppppcStack_20c;\n      }\nLAB_00056168:\n      pppppppcStack_20c = pppppppcVar30;\n      FUN_0004b234(pppppppcVar3);\n      FUN_0004b2bc(&pppppppcStack_1f8);\n      if (*(int *)(puVar41 + 0x23c78) != 0) {\n        (**(code **)(puVar41 + 0x23df0))(pppppppcVar34 + 0x22);\n      }\n      FUN_0004b338(pppppppcVar34);\n      *pppppppcVar3 = (code ******)0x0;\n      pppppppcVar3[1] = (code ******)0x0;\n      pppppppcVar29 = pppppppcStack_20c;\n      goto LAB_00056cfc;\n    }\n    pppppppcVar38 = (code *******)0x0;\n    iVar18 = (**(code **)(puVar41 + 0x23d98))(pppppppcVar34 + 0x22,0);\n    if (iVar18 != 0) goto LAB_00056e5c;\n    if (pppppppcStack_20c == (code *******)0x0) goto LAB_00056054;\n  }\n  else {\nLAB_00056e5c:\n    pppppppcStack_20c = (code *******)0xc;\n  }\n  FUN_0004b338(pppppppcVar34);\n  *pppppppcVar3 = (code ******)0x0;\n  pppppppcVar3[1] = (code ******)0x0;\n  pppppppcVar29 = pppppppcStack_20c;\nLAB_00056cfc:\n  if (iStack_1a4 == **(int **)(puVar41 + 0x23dac)) {\n    return pppppppcVar29;\n  }\n  pcVar4 = *(code **)(puVar41 + 0x23d6c);\n  iVar18 = iStack_1a4;\n  (*pcVar4)();\n  *(byte *)(pppppppcVar31 + 7) =\n       (byte)*(code *)(pppppppcVar31 + 7) & 0xf6 |\n       (byte)(((uint)(**(int **)(pcVar4 + 0x22b18) << 6) >> 0x1f) << 3) | 1;\n  iVar18 = FUN_00055e64(pppppppcVar31,iVar18,pppppppcVar38);\n  if (iVar18 == 0) {\n    pppppppcVar29 = (code *******)0x0;\n  }\n  else {\n    pppppppcVar29 =\n         (code *******)\n         (**(code **)(pcVar4 + 0x22d48))\n                   (0,*(int *)(pcVar4 + 0x22728) + 0x6f48 +\n                      *(int *)(iVar18 * 4 + *(int *)(pcVar4 + 0x22728) + 0x6f04),5);\n  }\n  return pppppppcVar29;\ncode_r0x00055b38:\n  if ((int)pppppppcVar26 < (int)local_dc) goto LAB_000557a8;\n  goto LAB_00055b44;\nLAB_000557a8:\n  local_150 = (code *******)0x1;\n  goto LAB_000557e4;\nLAB_00055914:\n  local_150 = (code *******)0xc;\n  param_4 = pppppppcVar14;\n  goto LAB_000557e4;\n}\n\n" comment (function_definition "code *******\nFUN_00054610(code *******param_1,code ******param_2,code *******param_3,code *******param_4,\n            code *******param_5,code *******param_6,code ******param_7,code *******param_8,\n            code *******param_9)\n\n{\n  bool bVar1;\n  code *******pppppppcVar2;\n  code *******pppppppcVar3;\n  code *pcVar4;\n  int *piVar5;\n  code *******pppppppcVar6;\n  uint uVar7;\n  code *pcVar8;\n  code *pcVar9;\n  code *pcVar10;\n  code *pcVar11;\n  code *pcVar12;\n  code *****pppppcVar13;\n  code *******pppppppcVar14;\n  code *******pppppppcVar15;\n  uint uVar16;\n  code cVar23;\n  byte *pbVar17;\n  int iVar18;\n  uint uVar19;\n  code ******ppppppcVar20;\n  undefined1 *puVar21;\n  int iVar22;\n  code *******pppppppcVar24;\n  code *******pppppppcVar25;\n  code *******pppppppcVar26;\n  uint uVar27;\n  code *******pppppppcVar28;\n  code *******pppppppcVar29;\n  code *******pppppppcVar30;\n  code *******pppppppcVar31;\n  code ******ppppppcVar32;\n  code *******pppppppcVar33;\n  code *******pppppppcVar34;\n  code ******ppppppcVar35;\n  code *******pppppppcVar36;\n  code *******unaff_s4;\n  int iVar37;\n  code *******unaff_s5;\n  code *******pppppppcVar38;\n  code *******unaff_s7;\n  code ******ppppppcVar39;\n  code ****ppppcVar40;\n  undefined *puVar41;\n  code *******unaff_s8;\n  code *******pppppppcVar42;\n  int iVar43;\n  undefined8 uVar44;\n  code *******pppppppcStack_218;\n  code *******pppppppcStack_20c;\n  code *******pppppppcStack_208;\n  code ******ppppppcStack_204;\n  int iStack_200;\n  int *piStack_1fc;\n  code *******pppppppcStack_1f8;\n  code *******apppppppcStack_1f4 [6];\n  int iStack_1dc;\n  int iStack_1d8;\n  int iStack_1d4;\n  code *******pppppppcStack_1cc;\n  code *******pppppppcStack_1c8;\n  code *******pppppppcStack_1c4;\n  code *******pppppppcStack_1c0;\n  code ******ppppppcStack_1b8;\n  undefined1 uStack_1b0;\n  byte bStack_1af;\n  byte bStack_1ae;\n  char cStack_1ad;\n  code ******ppppppcStack_1a8;\n  int iStack_1a4;\n  code *******pppppppcStack_1a0;\n  code *******pppppppcStack_19c;\n  code *******pppppppcStack_198;\n  code *******pppppppcStack_194;\n  code *******pppppppcStack_190;\n  code *******pppppppcStack_18c;\n  code *******pppppppcStack_188;\n  code *******pppppppcStack_184;\n  code *******pppppppcStack_180;\n  code *pcStack_17c;\n  uint local_168;\n  code *******local_150;\n  code *******local_148;\n  code *******local_144;\n  code *******local_138;\n  int local_118;\n  code *******local_dc;\n  code *******local_d8;\n  code *******local_d4;\n  code *******local_d0;\n  code *******local_cc;\n  code *******local_c8;\n  code *******local_c4;\n  undefined4 local_c0;\n  undefined4 local_bc;\n  undefined4 local_b8;\n  code ******local_b4;\n  code ******local_b0;\n  int *local_ac;\n  int local_a8;\n  int local_9c;\n  code *******local_98;\n  code *******local_94;\n  uint local_90;\n  code *******local_8c;\n  code *******local_88;\n  code *******local_84;\n  code *******local_80;\n  code *******local_7c;\n  undefined4 local_78;\n  code ******local_74;\n  code *******local_70;\n  byte local_6c;\n  byte local_6b;\n  byte local_6a;\n  byte local_69;\n  char local_68;\n  byte local_67;\n  byte local_66;\n  code *******local_64;\n  code *******local_60;\n  code *******local_5c;\n  code *******local_58;\n  code *******local_54;\n  code *******local_50;\n  code *******local_4c;\n  undefined4 local_48;\n  code *******local_44;\n  code *******local_40;\n  int local_3c;\n  code *******local_34;\n  int local_30;\n  code *******local_2c;\n  \n  local_2c = *(code ********)PTR___stack_chk_guard_00079c10;\n  pppppppcVar38 = (code *******)*param_1;\n  pppppppcVar29 = (code *******)0x0;\n  pppppppcVar33 = param_4;\n  (*(code *)PTR_memset_00079b00)(&local_b4,0,0x88);\n  local_148 = (code *******)param_1[4];\n  if (local_148 != (code *******)0x0) {\n    if (((byte)*(code *)(param_1 + 7) & 0x10) == 0) {\n      local_148 = (code *******)0x0;\n    }\n    else if (param_4 == param_5) {\n      local_148 = (code *******)0x0;\n    }\n    else if ((char)*(code *)(param_1 + 7) < '\0') {\n      local_148 = (code *******)0x0;\n    }\n  }\n  if (param_1[6] < param_7) {\n    local_118 = (int)param_7 + (-1 - (int)param_1[6]);\n  }\n  else {\n    local_118 = 0;\n  }\n  pppppppcStack_1a0 = param_4;\n  pppppppcStack_19c = param_1;\n  local_60 = pppppppcVar38;\n  if (param_1[2] == (code ******)0x0) {\n    local_150 = (code *******)0x1;\n  }\n  else if (pppppppcVar38[9] == (code ******)0x0) {\n    local_150 = (code *******)0x1;\n  }\n  else if (pppppppcVar38[10] == (code ******)0x0) {\n    local_150 = (code *******)0x1;\n  }\n  else if (pppppppcVar38[0xb] == (code ******)0x0) {\n    local_150 = (code *******)0x1;\n  }\n  else {\n    pppppppcVar29 = (code *******)pppppppcVar38[0xc];\n    if (pppppppcVar29 == (code *******)0x0) {\n      local_150 = (code *******)0x1;\n    }\n    else {\n      pppppppcVar3 = param_5;\n      if ((((pppppppcVar38[9][2] == (code *****)0x0) && (pppppppcVar38[10][2] == (code *****)0x0))\n          && ((pppppppcVar38[0xb][2] == (code *****)0x0 || (((uint)param_1[7] & 0x1000000) == 0))))\n         && ((pppppppcVar3 = param_4, param_4 != (code *******)0x0 &&\n             (param_4 = param_5, pppppppcVar3 = param_5, param_5 != (code *******)0x0)))) {\n        local_150 = (code *******)0x1;\n        pppppppcStack_1a0 = param_5;\n      }\n      else {\n        param_5 = pppppppcVar3;\n        pppppppcVar3 = (code *******)((int)param_7 - local_118);\n        if (pppppppcVar3 == (code *******)0x0) {\n          pppppppcVar34 = (code *******)(uint)(pppppppcVar38[0x13] != (code ******)0x0);\n        }\n        else {\n          pppppppcVar34 = (code *******)0x1;\n        }\n        ppppppcVar32 = param_1[5];\n        local_6c = (byte)((uint)((int)param_1[3] << 9) >> 0x1f);\n        local_64 = (code *******)pppppppcVar38[0x17];\n        pppppppcVar31 = (code *******)((int)pppppppcVar38[2] + 1);\n        if ((int)pppppppcVar38[2] + 1 < (int)local_64) {\n          pppppppcVar31 = local_64;\n        }\n        pppppppcVar30 = (code *******)(uint)((int)param_3 + 1 < (int)pppppppcVar31);\n        pppppppcVar33 = (code *******)0x1;\n        local_69 = local_6c;\n        if (ppppppcVar32 != (code ******)0x0) {\n          local_69 = 1;\n        }\n        local_6b = (byte)((uint)((int)pppppppcVar38[0x16] << 2) >> 0x1f);\n        local_6a = (byte)((uint)((int)pppppppcVar38[0x16] << 3) >> 0x1f);\n        pppppppcVar29 = (code *******)((int)param_3 + 1);\n        if (pppppppcVar30 == (code *******)0x0) {\n          pppppppcVar29 = pppppppcVar31;\n        }\n        local_b4 = param_2;\n        local_88 = param_3;\n        local_84 = param_3;\n        local_80 = param_3;\n        local_7c = param_3;\n        local_74 = ppppppcVar32;\n        local_150 = (code *******)FUN_00046d2c(&local_b4);\n        pppppppcVar31 = pppppppcVar34;\n        param_6 = param_6;\n        if (local_150 != (code *******)0x0) goto LAB_000557e4;\n        local_70 = pppppppcVar38 + 0x18;\n        local_66 = (byte)((uint)((int)pppppppcVar38[0x16] << 4) >> 0x1f);\n        pppppppcVar2 = (code *******)0x0;\n        local_98 = pppppppcVar2;\n        if ((local_69 == 0) && (local_b0 = param_2, (int)pppppppcVar38[0x17] < 2)) {\n          local_98 = param_3;\n        }\n        local_7c = param_6;\n        local_80 = param_6;\n        local_67 = (byte)((uint)((int)param_1[7] << 7) >> 0x1f);\n        ppppppcVar35 = pppppppcVar38[0x13];\n        pppppppcVar36 = (code *******)((int)ppppppcVar35 * 2);\n        local_5c = param_9;\n        local_58 = (code *******)0xffffffff;\n        local_94 = local_98;\n        if ((int)pppppppcVar36 < 1) {\nLAB_000559f0:\n          local_3c = 1;\n          local_44 = pppppppcVar36;\n          local_34 = pppppppcVar36;\n          if ((pppppppcVar3 < (code *******)0x2) && (((uint)pppppppcVar38[0x16] & 0x40000000) == 0))\n          {\n            local_50 = (code *******)0x0;\nLAB_00055a40:\n            local_78 = 6;\n            if (((uint)param_9 & 1) != 0) {\n              local_78 = 4;\n            }\n            pppppppcVar24 = (code *******)0x1;\n            pppppppcVar25 = param_4;\n            if ((int)param_5 < (int)param_4) {\n              pppppppcVar24 = (code *******)0xffffffff;\n              pppppppcVar25 = param_5;\n            }\n            pppppppcVar26 = param_5;\n            if ((int)param_5 <= (int)param_4) {\n              pppppppcVar26 = param_4;\n            }\n            ppppppcVar35 = pppppppcVar38[0x17];\n            uVar16 = 8;\n            if (local_148 != (code *******)0x0) {\n              if (ppppppcVar35 == (code ******)0x1) {\n                pppppppcVar28 = (code *******)0x4;\n              }\n              else {\n                pppppppcVar28 = pppppppcVar2;\n                if ((-1 < (int)param_1[3] << 9) && (ppppppcVar32 == (code ******)0x0)) {\n                  pppppppcVar28 = (code *******)0x4;\n                }\n              }\n              pppppppcVar29 = (code *******)0x0;\n              if ((int)param_4 <= (int)param_5) {\n                pppppppcVar29 = (code *******)0x2;\n              }\n              uVar16 = (uint)(ppppppcVar32 != (code ******)0x0) | (uint)pppppppcVar28 |\n                       (uint)pppppppcVar29;\n            }\n            local_dc = param_4;\n            if ((int)param_4 < (int)pppppppcVar25) {\n              local_150 = (code *******)0x1;\n              param_6 = pppppppcVar36;\n            }\n            else if ((int)pppppppcVar26 < (int)param_4) {\n              local_150 = (code *******)0x1;\n              param_4 = (code *******)(uint)((int)param_5 < (int)param_4);\n              param_6 = pppppppcVar36;\n            }\n            else {\n              pppppppcVar36 = (code *******)&local_dc;\n              if ((code *******)(uint)((int)param_5 < (int)param_4) != (code *******)0x0) {\n                pppppppcVar36 = (code *******)0x0;\n              }\n              pcVar4 = (code *)(PTR_DAT_000799a4 + -0x2b7c);\n              piVar5 = (int *)(PTR_s_nt0_000795b8 + (uVar16 - 4) * 4 + 0x6e38);\nLAB_00055b44:\n              if (uVar16 - 4 < 5) {\n                    /* WARNING: Could not emulate address calculation at 0x00054920 */\n                    /* WARNING: Treating indirect jump as call */\n                pppppppcVar29 = (code *******)(*(code *)(&_gp_1 + *piVar5))();\n                return pppppppcVar29;\n              }\n              param_5 = &local_b4;\n              pppppppcVar28 = pppppppcVar33;\n              while( true ) {\n                param_4 = local_dc;\n                pppppppcVar33 = (code *******)((int)local_dc - local_9c);\n                pppppppcVar30 = param_9;\n                pppppppcVar31 = pppppppcVar2;\n                param_6 = local_148;\n                unaff_s4 = param_3;\n                unaff_s5 = pppppppcVar24;\n                unaff_s7 = pppppppcVar26;\n                if (local_94 <= pppppppcVar33) {\n                  pppppppcVar29 = local_dc;\n                  local_150 = (code *******)(*pcVar4)(param_5);\n                  pppppppcVar33 = pppppppcVar28;\n                  if (local_150 != (code *******)0x0) goto LAB_000557e4;\n                  pppppppcVar33 = (code *******)((int)param_4 - local_9c);\n                }\n                if ((int)param_4 < (int)param_3) {\n                  uVar7 = (uint)(byte)*(code *)((int)pppppppcVar33 + (int)local_b0);\n                }\n                else {\n                  uVar7 = 0;\n                }\n                param_4 = (code *******)((int)param_4 + (int)pppppppcVar24);\n                if (*(code *)((int)local_148 + uVar7) != (code)0x0) break;\n                pppppppcVar33 = pppppppcVar28;\n                local_dc = param_4;\n                if ((int)param_4 < (int)pppppppcVar25) {\n                  local_150 = (code *******)0x1;\n                  goto LAB_000557e4;\n                }\n                if ((code *******)(uint)((int)pppppppcVar26 < (int)param_4) != (code *******)0x0) {\n                  local_150 = (code *******)0x1;\n                  param_4 = (code *******)(uint)((int)pppppppcVar26 < (int)param_4);\n                  goto LAB_000557e4;\n                }\n              }\n              while( true ) {\n                pppppppcVar29 = local_dc;\n                pppppppcVar30 = param_9;\n                pppppppcVar6 = (code *******)(*pcVar4)(&local_b4);\n                pppppppcVar14 = local_60;\n                pppppppcVar42 = local_8c;\n                pppppppcVar33 = pppppppcVar28;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar6 != (code *******)0x0) goto LAB_000557e4;\n                if (((ppppppcVar35 != (code ******)0x1) && (local_98 != (code *******)0x0)) &&\n                   (*local_ac == -1)) goto LAB_00055b1c;\n                local_3c = 0;\n                local_48 = 0;\n                local_4c = (code *******)0x0;\n                local_138 = local_8c;\n                local_d8 = (code *******)0x0;\n                unaff_s7 = (code *******)local_60[9];\n                pppppppcVar30 = local_5c;\n                param_4 = pppppppcVar14;\n                if (((uint)unaff_s7[0xd] & 0x1000000) == 0) break;\n                pppppppcVar29 = (code *******)((int)local_8c + -1);\n                pppppppcVar33 = (code *******)FUN_00049110(&local_b4);\n                if (((uint)pppppppcVar33 & 1) == 0) {\n                  if (pppppppcVar33 == (code *******)0x0) break;\n                  if (((uint)pppppppcVar33 & 6) == 6) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xc];\n                    goto LAB_00054d1c;\n                  }\n                  if (((uint)pppppppcVar33 & 2) != 0) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xb];\n                    goto LAB_00054d1c;\n                  }\n                  pppppppcVar28 = pppppppcVar33;\n                  if (((uint)pppppppcVar33 & 4) == 0) break;\n                  pppppppcVar30 = (code *******)unaff_s7[10];\n                  pppppppcVar29 = pppppppcVar14;\n                  unaff_s7 = (code *******)FUN_0004ae34(&local_d8);\n                  pppppppcVar28 = pppppppcVar33;\n                  if (unaff_s7 != (code *******)0x0) break;\n                  if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                }\n                else {\n                  unaff_s7 = (code *******)pppppppcVar14[10];\nLAB_00054d1c:\n                  pppppppcVar28 = (code *******)PTR_s_nt0_000795b8;\n                  if (unaff_s7 != (code *******)0x0) break;\n                }\n                pppppppcVar28 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                local_dc = (code *******)\n                           (*(code *)PTR___assert_fail_000799f8)\n                                     (PTR_s_nt0_000795b8 + 0x71a0,pppppppcVar29,0x435);\n                if (local_dc == pppppppcVar26) {\n                  if ((int)local_dc < (int)param_3) {\n                    uVar7 = (uint)(byte)*(code *)((int)local_dc + (int)param_2);\n                  }\n                  else {\n                    uVar7 = 0;\n                  }\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    uVar7 = (uint)*(byte *)((int)ppppppcVar32 + uVar7);\n                  }\n                  if (*(code *)((int)local_148 + uVar7) == (code)0x0) {\n                    local_150 = (code *******)0x1;\n                    pppppppcVar30 = param_9;\n                    pppppppcVar33 = pppppppcVar28;\n                    goto LAB_000557e4;\n                  }\n                }\n              }\n              pppppppcVar33 = pppppppcVar28;\n              bVar1 = pppppppcVar36 != (code *******)0x0;\n              if ((local_50 == (code *******)0x0) ||\n                 (local_50[(int)pppppppcVar42] = (code ******)unaff_s7,\n                 pppppppcVar14[0x13] == (code ******)0x0)) {\nLAB_00054d50:\n                if ((int)unaff_s7[0xd] << 4 < 0) {\n                  if ((((uint)unaff_s7[0xd] & 0x1000000) == 0) ||\n                     (pppppppcVar29 = unaff_s7, pppppppcVar30 = pppppppcVar42,\n                     iVar18 = FUN_00049440(&local_b4), iVar18 != 0)) {\n                    unaff_s8 = pppppppcVar42;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                  }\n                  else {\n                    pppppppcVar42 = (code *******)0xffffffff;\n                    pppppppcVar28 = (code *******)0x0;\n                  }\n                }\n                else {\n                  pppppppcVar42 = (code *******)0xffffffff;\n                  pppppppcVar28 = (code *******)0x0;\n                }\n                pcVar8 = (code *)(PTR_DAT_000799a4 + -0x7144);\n                pcVar9 = (code *)(PTR_DAT_000799a4 + -0x1980);\n                pcVar10 = (code *)(PTR_DAT_000799a4 + -0x2f9c);\n                unaff_s8 = pppppppcVar42;\n                local_144 = pppppppcVar36;\n                while( true ) {\n                  uVar44 = CONCAT44(local_98,local_84);\n                  unaff_s5 = (code *******)((int)local_8c + 1);\n                  pppppppcVar29 = local_8c;\n                  if ((int)local_7c <= (int)local_8c) break;\n                  if (((int)local_90 <= (int)unaff_s5) && ((int)local_90 < (int)local_84))\n                  goto LAB_00054e94;\n                  if ((int)local_98 <= (int)unaff_s5) {\n                    while ((int)((ulonglong)uVar44 >> 0x20) < (int)uVar44) {\nLAB_00054e94:\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 2);\n                      local_d8 = (code *******)(*pcVar8)(&local_b4);\n                      if (local_d8 == (code *******)0x0) break;\n                      pppppppcVar14 = param_4;\n                      if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                      pppppppcVar33 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                      pppppppcVar30 = (code *******)0x46c;\n                      pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                      uVar44 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0);\n                      pppppppcVar28 = pppppppcVar38;\n                    }\n                  }\n                  pppppppcVar42 = local_60;\n                  if ((int)unaff_s7[0xd] << 5 < 0) {\n                    pppppppcVar31 = pppppppcVar42;\n                    if (0 < (int)unaff_s7[2]) {\n                      pcVar11 = (code *)(PTR_DAT_000799a4 + -0x6fdc);\n                      pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6ef0);\n                      param_6 = (code *******)0x0;\n                      do {\n                        param_5 = (code *******)unaff_s7[3][(int)param_6];\n                        ppppppcVar39 = *pppppppcVar42;\n                        pppppcVar13 = ppppppcVar39[(int)param_5 * 2 + 1];\n                        if (((uint)pppppcVar13 & 0x800) != 0) {\n                          if (((uint)pppppcVar13 & 0xffc000) != 0) {\n                            pppppppcVar29 = local_8c;\n                            uVar19 = (*pcVar12)(&local_b4,local_8c,local_5c);\n                            uVar7 = (uint)((int)ppppppcVar39[(int)param_5 * 2 + 1] << 8) >> 0x16;\n                            if ((uVar7 & 4) == 0) {\n                              uVar27 = uVar19 & 1;\n                              if ((uVar7 & 8) != 0) goto joined_r0x00054f40;\n                            }\n                            else {\n                              uVar27 = uVar7 & 8;\n                              if ((uVar19 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                              if (uVar27 != 0) goto LAB_000550a4;\n                            }\n                            if ((((uVar7 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                               (((uVar7 & 0x80) != 0 &&\n                                (pppppppcVar33 = local_8c, (uVar19 & 8) == 0)))) goto LAB_000550a4;\n                          }\n                          pppppppcVar30 = &local_b4;\n                          pppppppcVar29 = param_5;\n                          pppppppcVar33 = local_8c;\n                          iVar18 = (*pcVar10)(pppppppcVar42);\n                          if (iVar18 != 0) {\n                            pppppppcVar14 = (code *******)((int)local_8c + iVar18);\n                            if (iVar18 <= local_3c) {\n                              iVar18 = local_3c;\n                            }\n                            pppppppcVar29 = pppppppcVar14;\n                            local_3c = iVar18;\n                            local_d4 = (code *******)(*pcVar11)(&local_b4);\n                            pppppppcVar15 = local_d4;\n                            if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                            pppppppcVar30 =\n                                 (code *******)\n                                 (pppppppcVar42[6] + (int)pppppppcVar42[3][(int)param_5] * 3);\n                            unaff_s4 = (code *******)((int)pppppppcVar14 * 4);\n                            param_5 = local_50 + (int)pppppppcVar14;\n                            if (*param_5 == (code ******)0x0) {\n                              local_d0 = (code *******)*pppppppcVar30;\n                              local_cc = (code *******)pppppppcVar30[1];\n                              local_c8 = (code *******)pppppppcVar30[2];\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *param_5 = ppppppcVar39;\n                            }\n                            else {\n                              pppppppcVar29 = (code *******)(*param_5)[10];\n                              local_d4 = (code *******)FUN_000484bc(&local_d0);\n                              pppppppcVar15 = local_d4;\n                              if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar15 = local_50 + (int)pppppppcVar14;\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *pppppppcVar15 = ppppppcVar39;\n                              (*(code *)PTR_free_00079c24)(local_c8);\n                            }\n                            unaff_s4 = local_50 + (int)pppppppcVar14;\n                            if ((*unaff_s4 == (code ******)0x0) &&\n                               (pppppppcVar15 = local_d4, local_d4 != (code *******)0x0))\n                            goto LAB_00055e44;\n                          }\n                        }\nLAB_000550a4:\n                        param_6 = (code *******)((int)param_6 + 1);\n                      } while ((int)param_6 < (int)unaff_s7[2]);\n                    }\n                    local_d8 = (code *******)0x0;\n                  }\n                  uVar7 = (uint)(byte)*(code *)((int)local_8c + (int)local_b0);\n                  local_8c = (code *******)((int)local_8c + 1);\n                  do {\n                    if (unaff_s7[0xb] != (code ******)0x0) {\n                      pppppppcVar30 = (code *******)unaff_s7[0xb][uVar7];\nLAB_000553a0:\n                      pppppppcVar14 = pppppppcVar30;\n                      if (local_50 != (code *******)0x0) goto LAB_000553ac;\n                      goto LAB_000553cc;\n                    }\n                    pppppppcVar31 = (code *******)unaff_s7[0xc];\n                    if (pppppppcVar31 != (code *******)0x0) {\n                      pppppppcVar29 = (code *******)((int)local_8c + -1);\n                      uVar19 = FUN_00049110(&local_b4);\n                      if ((uVar19 & 1) == 0) {\n                        pppppppcVar30 = (code *******)pppppppcVar31[uVar7];\n                      }\n                      else {\n                        pppppppcVar31 = pppppppcVar31 + uVar7 + 0x100;\n                        pppppppcVar30 = (code *******)*pppppppcVar31;\n                      }\n                      goto LAB_000553a0;\n                    }\n                    pppppppcVar29 = unaff_s7;\n                    pppppppcVar30 = local_5c;\n                    iVar18 = (*pcVar9)(local_60);\n                  } while (iVar18 != 0);\n                  local_d8 = (code *******)0xc;\n                  pppppppcVar15 = local_d8;\nLAB_00055e44:\n                  local_d8 = pppppppcVar15;\n                  param_4 = (code *******)0x0;\n                  if (local_50 == (code *******)0x0) {\n                    pppppppcVar14 = param_4;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    break;\n                  }\n                  pppppppcVar30 = (code *******)0x0;\nLAB_000553ac:\n                  pppppppcVar29 = &local_b4;\n                  pppppppcVar14 = (code *******)FUN_00053684(&local_d8);\nLAB_000553cc:\n                  param_4 = pppppppcVar14;\n                  if (pppppppcVar14 == (code *******)0x0) {\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    if ((local_50 == (code *******)0x0) ||\n                       ((pppppppcVar28 != (code *******)0x0 && (pppppppcVar34 == (code *******)0x0))\n                       )) break;\n                    param_6 = &local_b4;\n                    param_5 = (code *******)&local_d8;\n                    pppppppcVar31 = (code *******)(PTR_DAT_000799a4 + 0x3684);\n                    do {\n                      pppppppcVar15 = local_50 + (int)local_8c;\n                      pppppppcVar42 = local_8c;\n                      do {\n                        pppppppcVar42 = (code *******)((int)pppppppcVar42 + 1);\n                        pppppppcVar29 = local_4c;\n                        param_4 = pppppppcVar14;\n                        if ((int)local_4c < (int)pppppppcVar42) goto LAB_00055da8;\n                        local_8c = (code *******)((int)local_8c + 1);\n                        pppppppcVar15 = pppppppcVar15 + 1;\n                      } while (*pppppppcVar15 == (code ******)0x0);\n                      pppppppcVar30 = (code *******)0x0;\n                      pppppppcVar29 = param_6;\n                      param_4 = (code *******)(*(code *)pppppppcVar31)(param_5);\n                      if (local_d8 != (code *******)0x0) {\n                        if (param_4 == (code *******)0x0) goto LAB_00055da8;\n                        break;\n                      }\n                      pppppppcVar29 = local_4c;\n                    } while (param_4 == (code *******)0x0);\n                  }\n                  pppppppcVar15 = (code *******)((uint)unaff_s7 ^ (uint)param_4);\n                  pppppppcVar42 = unaff_s7;\n                  pppppppcVar14 = local_138;\n                  if ((bVar1) &&\n                     (pppppppcVar42 = pppppppcVar15, pppppppcVar14 = unaff_s5,\n                     pppppppcVar15 != (code *******)0x0)) {\n                    bVar1 = false;\n                    pppppppcVar14 = local_138;\n                  }\n                  local_138 = pppppppcVar14;\n                  unaff_s7 = param_4;\n                  if ((((uint)param_4[0xd] & 0x8000000) != 0) &&\n                     ((((uint)param_4[0xd] & 0x1000000) == 0 ||\n                      (pppppppcVar29 = param_4, pppppppcVar30 = local_8c,\n                      iVar18 = FUN_00049440(&local_b4), iVar18 != 0)))) {\n                    unaff_s7 = pppppppcVar42;\n                    unaff_s8 = local_8c;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                    local_144 = (code *******)0x0;\n                    unaff_s7 = param_4;\n                  }\n                }\nLAB_00055da8:\n                if (local_144 != (code *******)0x0) {\n                  *local_144 = (code ******)((int)local_138 + (int)*local_144);\n                }\n              }\n              else {\n                param_4 = unaff_s7 + 1;\n                pppppppcVar30 = (code *******)0x0;\n                pppppppcVar29 = param_4;\n                local_d8 = (code *******)FUN_00047a44(&local_b4);\n                unaff_s8 = local_d8;\n                if (local_d8 == (code *******)0x0) {\n                  if (((uint)unaff_s7[0xd] & 0x2000000) == 0) {\n                    pppppppcVar29 = param_4;\n                    bVar1 = false;\n                  }\n                  else {\n                    pppppppcVar29 = param_4;\n                    local_d8 = (code *******)FUN_00052d84(&local_b4);\n                    unaff_s8 = local_d8;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055dbc;\n                    bVar1 = false;\n                  }\n                  goto LAB_00054d50;\n                }\n              }\nLAB_00055dbc:\n              if (unaff_s8 == (code *******)0xffffffff) {\nLAB_00055b04:\n                FUN_0004b7e8(&local_b4);\nLAB_00055b1c:\n                local_dc = (code *******)((int)pppppppcVar24 + (int)local_dc);\n                if ((int)pppppppcVar25 <= (int)local_dc) goto code_r0x00055b38;\n                local_150 = (code *******)0x1;\n                goto LAB_000557e4;\n              }\n              if (unaff_s8 == (code *******)&SUB_fffffffe) {\n                local_150 = (code *******)0xc;\n                goto LAB_000557e4;\n              }\n              local_58 = unaff_s8;\n              if (((uint)param_1[7] & 0x8000000) == 0) {\n                if (pppppppcVar3 < (code *******)0x2) {\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055c08;\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                else {\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                if (pppppppcVar3 < (code *******)0x2) {\nLAB_00055c6c:\n                  pppppppcVar28 = pppppppcVar33;\n                  unaff_s4 = local_60;\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055548;\n                }\n                else {\n                  cVar23 = *(code *)(pppppppcVar38 + 0x16);\nLAB_00055c20:\n                  pppppppcVar28 = pppppppcVar33;\n                  if (-1 < (char)cVar23) goto LAB_00055c6c;\n                }\n                pppppppcVar31 = local_54;\n                pppppppcVar42 = local_60;\n                unaff_s4 = pppppppcVar42;\n                if (unaff_s8 < (code *******)0x3fffffff) {\n                  param_4 = (code *******)((int)((int)unaff_s8 + 1) * 4);\n                  unaff_s5 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                  if (unaff_s5 == (code *******)0x0) {\nLAB_00055b9c:\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    local_150 = (code *******)0xc;\n                    pppppppcVar33 = pppppppcVar28;\n                  }\n                  else {\n                    pppppppcVar29 = (code *******)&local_d0;\n                    if (pppppppcVar42[0x13] == (code ******)0x0) {\n                      local_cc = (code *******)0x0;\n                      local_c8 = pppppppcVar31;\n                      local_c0 = 0;\n                      local_bc = 0;\n                      local_b8 = 0;\n                      local_d0 = unaff_s5;\n                      local_c4 = unaff_s8;\n                      param_5 = (code *******)FUN_0005421c(&local_b4);\n                      (*(code *)PTR_free_00079c24)(local_b8);\n                      if (param_5 == (code *******)0x0) {\n                        param_4 = (code *******)*unaff_s5;\n                        if (param_4 == (code *******)0x0) {\nLAB_00055b70:\n                          (*(code *)PTR_free_00079c24)(unaff_s5);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          pppppppcVar33 = pppppppcVar28;\n                          goto LAB_00055b04;\n                        }\nLAB_00055528:\n                        (*(code *)PTR_free_00079c24)(local_50);\n                        pppppppcVar33 = pppppppcVar28;\n                        unaff_s4 = pppppppcVar42;\n                        local_58 = unaff_s8;\n                        local_54 = pppppppcVar31;\n                        local_50 = unaff_s5;\n                        goto LAB_00055548;\n                      }\nLAB_00055acc:\n                      param_4 = (code *******)0x0;\n                      pppppppcVar33 = pppppppcVar28;\n                      unaff_s4 = pppppppcVar42;\n                    }\n                    else {\n                      param_4 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                      if (param_4 == (code *******)0x0) goto LAB_00055b9c;\n                      unaff_s7 = (code *******)&local_d0;\n                      pcVar8 = (code *)(PTR_DAT_000799a4 + 0x421c);\n                      pcVar9 = (code *)(PTR_DAT_000799a4 + -0x6bc0);\n                      pppppppcVar33 = pppppppcVar28;\n                      while( true ) {\n                        pppppppcVar28 = (code *******)((int)unaff_s8 + 1);\n                        param_6 = (code *******)((int)pppppppcVar28 * 4);\n                        pppppppcVar30 = param_6;\n                        (*(code *)PTR_memset_00079b00)(param_4,0);\n                        local_c0 = 0;\n                        local_bc = 0;\n                        local_b8 = 0;\n                        pppppppcVar29 = unaff_s7;\n                        local_d0 = unaff_s5;\n                        local_cc = param_4;\n                        local_c8 = pppppppcVar31;\n                        local_c4 = unaff_s8;\n                        param_5 = (code *******)(*pcVar8)(&local_b4);\n                        (*(code *)PTR_free_00079c24)(local_b8);\n                        unaff_s4 = pppppppcVar28;\n                        if (param_5 != (code *******)0x0) break;\n                        if ((*unaff_s5 != (code ******)0x0) ||\n                           (param_6 = param_6 + -1, *param_4 != (code ******)0x0)) {\n                          pppppppcVar29 = unaff_s5;\n                          pppppppcVar30 = param_4;\n                          param_5 = (code *******)FUN_000520d0(pppppppcVar42);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          if (param_5 != (code *******)0x0) goto LAB_00055acc;\n                          goto LAB_00055528;\n                        }\n                        param_6 = (code *******)((int)local_50 + (int)param_6);\n                        do {\n                          while( true ) {\n                            unaff_s8 = (code *******)((int)unaff_s8 + -1);\n                            if ((int)unaff_s8 < 0) goto LAB_00055b70;\n                            pppppppcVar29 = (code *******)param_6[-1];\n                            if (pppppppcVar29 != (code *******)0x0) break;\n                            param_6 = param_6 + -1;\n                          }\n                          param_6 = param_6 + -1;\n                        } while (((uint)pppppppcVar29[0xd] & 0x8000000) == 0);\n                        pppppppcVar31 = (code *******)(*pcVar9)(&local_b4,pppppppcVar29,unaff_s8);\n                        pppppppcVar33 = pppppppcVar28;\n                      }\n                    }\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    (*(code *)PTR_free_00079c24)(param_4);\n                    local_150 = param_5;\n                    if (param_5 == (code *******)0x1) goto LAB_00055b04;\n                  }\n                }\n                else {\n                  local_150 = (code *******)0xc;\n                  pppppppcVar33 = pppppppcVar28;\n                }\n                goto LAB_000557e4;\n              }\n              if (pppppppcVar38[0x13] != (code ******)0x0) {\n                pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                pppppppcVar30 = unaff_s8;\n                local_54 = (code *******)FUN_00049440(&local_b4);\n                goto LAB_00055c6c;\n              }\nLAB_00055c08:\n              if ((((uint)param_1[7] & 0x8000000) == 0) && ((code *******)0x1 < pppppppcVar3)) {\n                cVar23 = *(code *)(pppppppcVar38 + 0x16);\n                goto LAB_00055c20;\n              }\nLAB_00055548:\n              if (pppppppcVar3 == (code *******)0x0) goto LAB_000557e4;\n              if (pppppppcVar3 < (code *******)0x2) {\n                *param_8 = (code ******)0x0;\n                param_8[1] = (code ******)local_58;\n                goto LAB_000555ac;\n              }\n              pppppppcVar29 = param_8 + 2;\n              do {\n                pppppppcVar29[1] = (code ******)0xffffffff;\n                *pppppppcVar29 = (code ******)0xffffffff;\n                pppppppcVar29 = pppppppcVar29 + 2;\n              } while (pppppppcVar29 != param_8 + (int)pppppppcVar3 * 2);\n              *param_8 = (code ******)0x0;\n              param_8[1] = (code ******)local_58;\n              if (((uint)param_1[7] & 0x8000000) != 0) {\nLAB_000555ac:\n                pppppppcVar33 = param_8;\n                do {\n                  pppppppcVar29 = (code *******)*pppppppcVar33;\n                  if (pppppppcVar29 != (code *******)0xffffffff) {\n                    if (local_68 != '\0') {\n                      pppppppcVar34 = local_94;\n                      if (pppppppcVar29 != local_98) {\n                        pppppppcVar34 = *(code ********)(local_a8 + (int)pppppppcVar29 * 4);\n                      }\n                      *pppppppcVar33 = (code ******)pppppppcVar34;\n                      pppppppcVar29 = local_94;\n                      if (local_98 != (code *******)pppppppcVar33[1]) {\n                        pppppppcVar29 = *(code ********)(local_a8 + (int)pppppppcVar33[1] * 4);\n                      }\n                      pppppppcVar33[1] = (code ******)pppppppcVar29;\n                    }\n                    *pppppppcVar33 = (code ******)((int)local_dc + (int)*pppppppcVar33);\n                    pppppppcVar29 = (code *******)((int)local_dc + (int)pppppppcVar33[1]);\n                    pppppppcVar33[1] = (code ******)pppppppcVar29;\n                  }\n                  pppppppcVar33 = pppppppcVar33 + 2;\n                } while (pppppppcVar33 != param_8 + (int)pppppppcVar3 * 2);\n                if (0 < local_118) {\n                  pppppppcVar33 = param_8 + (int)pppppppcVar3 * 2;\n                  do {\n                    *pppppppcVar33 = (code ******)0xffffffff;\n                    pppppppcVar33[1] = (code ******)0xffffffff;\n                    pppppppcVar33 = pppppppcVar33 + 2;\n                  } while (pppppppcVar33 != param_8 + (int)param_7 * 2);\n                }\n                pppppppcVar30 = local_dc;\n                pppppppcVar33 = param_8;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar38[0x21] != (code ******)0x0) {\n                  pppppppcVar30 = (code *******)((int)pppppppcVar3 + -1);\n                  pppppppcVar34 = (code *******)0x0;\n                  pppppppcVar3 = param_8;\n                  while( true ) {\n                    pppppppcVar29 = (code *******)((int)pppppppcVar34 * 4);\n                    if (pppppppcVar30 == pppppppcVar34) break;\n                    if (*(code ********)((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) !=\n                        pppppppcVar34) {\n                      pppppppcVar3[2] =\n                           param_8[(int)((int)*(code ********)\n                                               ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1)\n                                   * 2];\n                      pppppppcVar3[3] =\n                           param_8[((int)*(code ******)\n                                          ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1) * 2 +\n                                   1];\n                    }\n                    pppppppcVar34 = (code *******)((int)pppppppcVar34 + 1);\n                    pppppppcVar3 = pppppppcVar3 + 2;\n                  }\n                }\n                goto LAB_000557e4;\n              }\n              if ((char)*(code *)(pppppppcVar38 + 0x16) < '\0') {\n                local_168 = (uint)(0 < (int)pppppppcVar38[0x13]);\n              }\n              else {\n                local_168 = 0;\n              }\n              pppppppcVar29 = &local_b4;\n              pppppppcVar30 = pppppppcVar3;\n              pppppppcVar33 = param_8;\n              local_150 = (code *******)FUN_0004f4a0(param_1);\n              if (local_150 == (code *******)0x0) goto LAB_000555ac;\n            }\n          }\n          else if (local_90 < 0x3fffffff) {\n            local_50 = (code *******)(*(code *)PTR_malloc_00079b54)((local_90 + 1) * 4);\n            if (local_50 != (code *******)0x0) goto LAB_00055a40;\n            local_150 = (code *******)0xc;\n            param_6 = pppppppcVar36;\n          }\n          else {\n            local_150 = (code *******)0xc;\n            param_6 = pppppppcVar36;\n          }\n        }\n        else {\n          unaff_s5 = (code *******)((int)ppppppcVar35 * 8);\n          if (pppppppcVar36 < (code *******)0xccccccd) {\n            unaff_s4 = (code *******)(*(code *)PTR_malloc_00079b54)((int)ppppppcVar35 * 0x28);\n            local_40 = unaff_s4;\n            local_30 = (*(code *)PTR_malloc_00079b54)(unaff_s5);\n            if ((unaff_s4 != (code *******)0x0) && (local_30 != 0)) goto LAB_000559f0;\n          }\n          local_150 = (code *******)0xc;\n          param_6 = pppppppcVar36;\n        }\nLAB_000557e4:\n        (*(code *)PTR_free_00079c24)(local_50);\n        param_1 = pppppppcVar30;\n        if (pppppppcVar38[0x13] != (code ******)0x0) {\n          FUN_0004b7e8(&local_b4);\n          (*(code *)PTR_free_00079c24)(local_30);\n          (*(code *)PTR_free_00079c24)(local_40);\n          param_1 = pppppppcVar30;\n        }\n        FUN_0004b2bc(&local_b4);\n        pppppppcStack_1a0 = param_4;\n        pppppppcStack_19c = pppppppcVar31;\n      }\n    }\n  }\n  if (local_2c == *(code ********)PTR___stack_chk_guard_00079c10) {\n    return local_150;\n  }\n  pcVar4 = FUN_00055e64;\n  pppppppcVar3 = local_2c;\n  puVar41 = PTR___stack_chk_fail_00079bd0;\n  (*(code *)PTR___stack_chk_fail_00079bd0)();\n  iStack_1a4 = **(int **)(puVar41 + 0x23dac);\n  pppppppcStack_20c = (code *******)0x0;\n  pppppppcVar3[3] = (code ******)pppppppcVar33;\n  pppppppcVar3[2] = (code ******)0x0;\n  pppppppcVar3[6] = (code ******)0x0;\n  *(byte *)(pppppppcVar3 + 7) = (byte)*(code *)(pppppppcVar3 + 7) & 9;\n  pppppppcVar34 = (code *******)*pppppppcVar3;\n  pppppppcStack_198 = param_5;\n  pppppppcStack_194 = param_6;\n  pppppppcStack_190 = unaff_s4;\n  pppppppcStack_18c = unaff_s5;\n  pppppppcStack_188 = pppppppcVar38;\n  pppppppcStack_184 = unaff_s7;\n  pppppppcStack_180 = unaff_s8;\n  pcStack_17c = pcVar4;\n  if (pppppppcVar3[1] < (code ******)0xa0) {\n    pppppppcVar38 = (code *******)0xa0;\n    pppppppcVar31 = param_1;\n    pppppppcVar34 = (code *******)(**(code **)(puVar41 + 0x23cf8))(pppppppcVar34,0xa0);\n    if (pppppppcVar34 == (code *******)0x0) {\n      pppppppcVar29 = (code *******)0xc;\n      goto LAB_00056cfc;\n    }\n    pppppppcVar3[1] = (code ******)0xa0;\n    *pppppppcVar3 = (code ******)pppppppcVar34;\n  }\n  pppppppcVar3[2] = (code ******)0xa0;\n  pppppppcVar31 = (code *******)0xa0;\n  pppppppcVar38 = (code *******)0x0;\n  (**(code **)(puVar41 + 0x23c9c))(pppppppcVar34,0);\n  pppppppcVar34[0x10] = (code ******)0x1f;\n  if (param_1 < (code *******)0xaaaaaaa) {\n    pppppppcVar34[1] = (code ******)((int)param_1 + 1);\n    ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23cf0))(((int)param_1 + 1) * 8);\n    *pppppppcVar34 = ppppppcVar32;\n    if (param_1 == (code *******)0x0) {\n      pppppppcVar30 = (code *******)0x1;\n    }\n    else {\n      pppppppcVar30 = (code *******)0x1;\n      do {\n        pppppppcVar30 = (code *******)((int)pppppppcVar30 << 1);\n      } while (pppppppcVar30 <= param_1);\n    }\n    pppppppcVar38 = pppppppcVar30;\n    ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23b8c))(0xc,pppppppcVar30);\n    pppppppcVar34[8] = ppppppcVar32;\n    pppppppcVar34[0x11] = (code ******)((int)pppppppcVar30 + -1);\n    ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23d2c))();\n    pppppppcVar34[0x17] = ppppppcVar32;\n    pbVar17 = (byte *)(**(code **)(puVar41 + 0x23c2c))(0xe);\n    if ((((*pbVar17 & 0xdf) == 0x55) && ((pbVar17[1] & 0xdf) == 0x54)) &&\n       (pppppppcVar38 = (code *******)0x4, (pbVar17[2] & 0xdf) == 0x46)) {\n      iVar18 = 3;\n      if (pbVar17[3] == 0x2d) {\n        iVar18 = 4;\n      }\n      pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23754) + 0x71b4);\n      iVar18 = (**(code **)(puVar41 + 0x23dfc))(pbVar17 + iVar18,pppppppcVar38);\n      if (iVar18 == 0) {\n        *(byte *)(pppppppcVar34 + 0x16) = (byte)*(code *)(pppppppcVar34 + 0x16) & 0xdf | 0x20;\n      }\n    }\n    *(byte *)(pppppppcVar34 + 0x16) = (byte)*(code *)(pppppppcVar34 + 0x16) & 0xef;\n    if (1 < (int)pppppppcVar34[0x17]) {\n      if (((uint)pppppppcVar34[0x16] & 0x20000000) == 0) {\n        pppppppcVar38 = (code *******)0x1;\n        ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23b8c))(0x20,1);\n        pppppppcVar34[0xf] = ppppppcVar32;\n        if (ppppppcVar32 == (code ******)0x0) goto LAB_00056e5c;\n        iVar18 = 0;\n        do {\n          uVar16 = iVar18 << 3;\n          uVar7 = 0;\n          do {\n            uVar19 = (**(code **)(puVar41 + 0x23c88))(uVar16);\n            if (uVar19 != 0xffffffff) {\n              pppppppcVar38 = *(code ********)((int)pppppppcVar34[0xf] + iVar18);\n              *(uint *)((int)pppppppcVar34[0xf] + iVar18) =\n                   (uint)pppppppcVar38 | 1 << (uVar7 & 0x1f);\n            }\n            if (((uVar16 & 0xffffff80) == 0) && (uVar19 != uVar16)) {\n              *(byte *)(pppppppcVar34 + 0x16) = (byte)*(code *)(pppppppcVar34 + 0x16) & 0xef | 0x10;\n            }\n            uVar7 = uVar7 + 1;\n            uVar16 = uVar16 + 1;\n          } while (uVar7 != 0x20);\n          iVar18 = iVar18 + 4;\n        } while (iVar18 != 0x20);\n      }\n      else {\n        pppppppcVar34[0xf] = (code ******)(*(int *)(puVar41 + 0x23754) + 0x6ee4);\n      }\n    }\n    if ((*pppppppcVar34 == (code ******)0x0) || (pppppppcVar34[8] == (code ******)0x0))\n    goto LAB_00056e5c;\n    pppppppcStack_20c = (code *******)0x0;\n    if (*(int *)(puVar41 + 0x23c78) == 0) {\nLAB_00056054:\n      ppppppcVar32 = pppppppcVar3[5];\n      uVar16 = (uint)pppppppcVar33 & 0x400000;\n      bVar1 = uVar16 != 0;\n      pppppppcVar31 = (code *******)0x4c;\n      pppppppcVar38 = (code *******)0x0;\n      (**(code **)(puVar41 + 0x23c9c))(apppppppcStack_1f4,0);\n      cStack_1ad = ppppppcVar32 != (code ******)0x0 || bVar1;\n      ppppppcStack_1a8 = pppppppcVar34[0x17];\n      bStack_1af = (byte)((uint)((int)pppppppcVar34[0x16] << 2) >> 0x1f);\n      bStack_1ae = (byte)((uint)((int)pppppppcVar34[0x16] << 3) >> 0x1f);\n      pppppppcStack_1f8 = pppppppcVar29;\n      pppppppcStack_1cc = param_1;\n      pppppppcStack_1c8 = param_1;\n      pppppppcStack_1c4 = param_1;\n      pppppppcStack_1c0 = param_1;\n      ppppppcStack_1b8 = ppppppcVar32;\n      uStack_1b0 = bVar1;\n      if (0 < (int)param_1) {\n        pppppppcVar38 = (code *******)((int)param_1 + 1);\n        pppppppcVar30 = (code *******)FUN_00046d2c(&pppppppcStack_1f8,pppppppcVar38);\n        if (pppppppcVar30 == (code *******)0x0) goto LAB_000560cc;\n        goto LAB_00056168;\n      }\nLAB_000560cc:\n      if (cStack_1ad != '\0') {\n        pppppppcVar29 = apppppppcStack_1f4[0];\n      }\n      apppppppcStack_1f4[0] = pppppppcVar29;\n      if (uVar16 == 0) {\n        if ((int)pppppppcVar34[0x17] < 2) {\n          if (ppppppcVar32 != (code ******)0x0) {\n            FUN_00045dc8();\n          }\n        }\n        else {\n          FUN_00047cb0(&pppppppcStack_1f8);\n        }\n      }\n      else {\n        if (1 < (int)pppppppcVar34[0x17]) {\n          iVar18 = *(int *)(puVar41 + 0x23abc);\n          do {\n            pppppppcVar30 = (code *******)FUN_00048714(&pppppppcStack_1f8);\n            if (pppppppcVar30 != (code *******)0x0) break;\n            if (((int)param_1 <= iStack_1d8) ||\n               (pppppppcVar38 = (code *******)(iStack_1d4 << 1),\n               (int)pppppppcVar34[0x17] + iStack_1dc < iStack_1d4)) goto LAB_000563d0;\n            pppppppcVar30 =\n                 (code *******)(*(code *)(iVar18 + 0x6d2c))(&pppppppcStack_1f8,pppppppcVar38);\n          } while (pppppppcVar30 == (code *******)0x0);\n          goto LAB_00056168;\n        }\n        FUN_00047be4(&pppppppcStack_1f8);\n      }\nLAB_000563d0:\n      pppppppcStack_20c = (code *******)0x0;\n      pppppppcVar3[6] = (code ******)0x0;\n      ppppppcVar32 = *pppppppcVar3;\n      ppppppcVar32[0x20] = (code *****)pppppppcVar33;\n      FUN_00049e40(&ppppppcStack_204,&pppppppcStack_1f8,(uint)pppppppcVar33 | 0x800000);\n      pppppppcVar38 = pppppppcVar3;\n      pppppppcVar29 =\n           (code *******)\n           FUN_00051868(&pppppppcStack_1f8,pppppppcVar3,&ppppppcStack_204,pppppppcVar33,0,\n                        &pppppppcStack_20c);\n      if (pppppppcStack_20c == (code *******)0x0) {\n        pppppppcVar31 = (code *******)0x0;\n        pppppppcVar38 = (code *******)0x0;\n        pppppppcVar33 = (code *******)FUN_000470f0(ppppppcVar32,0,0,2);\n        pppppppcVar30 = pppppppcVar33;\n        if (pppppppcVar29 != (code *******)0x0) {\nLAB_000564b0:\n          pppppppcVar31 = pppppppcVar33;\n          pppppppcVar30 = (code *******)FUN_000470f0(ppppppcVar32,pppppppcVar29,pppppppcVar33,0x10);\n          pppppppcVar38 = pppppppcVar29;\n        }\n        if ((pppppppcVar33 == (code *******)0x0) ||\n           (pcVar4 = *(code **)(puVar41 + 0x23cf0), pppppppcVar30 == (code *******)0x0)) {\n          pppppppcStack_20c = (code *******)0xc;\n          goto LAB_000566f4;\n        }\n        pppppppcVar34[0xd] = (code ******)pppppppcVar30;\n        pppppppcVar29 = (code *******)*pppppppcVar3;\n        ppppppcVar39 = pppppppcVar29[1];\n        iVar18 = (int)ppppppcVar39 << 2;\n        ppppppcVar32 = (code ******)(*pcVar4)(iVar18);\n        pppppppcVar29[3] = ppppppcVar32;\n        ppppppcVar35 = (code ******)(**(code **)(puVar41 + 0x23cf0))(iVar18);\n        pppppppcVar29[4] = ppppppcVar35;\n        iVar18 = (int)ppppppcVar39 * 0xc;\n        ppppppcVar39 = (code ******)(**(code **)(puVar41 + 0x23cf0))(iVar18);\n        pppppppcVar29[5] = ppppppcVar39;\n        ppppppcVar20 = (code ******)(**(code **)(puVar41 + 0x23cf0))(iVar18);\n        pppppppcVar29[6] = ppppppcVar20;\n        if (ppppppcVar32 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else if (ppppppcVar35 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else if (ppppppcVar39 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else if (ppppppcVar20 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else {\n          ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23cf0))((int)pppppppcVar3[6] << 2);\n          pppppppcVar29[0x21] = ppppppcVar32;\n          if (ppppppcVar32 != (code ******)0x0) {\n            ppppppcVar32 = (code ******)0x0;\n            if (pppppppcVar3[6] != (code ******)0x0) {\n              do {\n                pppppppcVar29[0x21][(int)ppppppcVar32] = (code *****)ppppppcVar32;\n                ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n              } while (ppppppcVar32 < pppppppcVar3[6]);\n            }\n            FUN_00046050(pppppppcVar29[0xd],*(int *)(puVar41 + 0x23abc) + 0x60e8,pppppppcVar29);\n            ppppppcVar32 = pppppppcVar3[6];\n            if (ppppppcVar32 == (code ******)0x0) {\nLAB_00056704:\n              (**(code **)(puVar41 + 0x23dc0))(pppppppcVar29[0x21]);\n              pppppppcVar29[0x21] = (code ******)0x0;\n            }\n            else {\n              ppppppcVar35 = pppppppcVar29[0x21];\n              if (*ppppppcVar35 == (code *****)0x0) {\n                ppppppcVar39 = (code ******)0x0;\n                do {\n                  ppppppcVar35 = ppppppcVar35 + 1;\n                  ppppppcVar39 = (code ******)((int)ppppppcVar39 + 1);\n                  if (ppppppcVar32 == ppppppcVar39) {\n                    if (ppppppcVar32 == ppppppcVar39) goto LAB_00056704;\n                    break;\n                  }\n                } while ((code ******)*ppppppcVar35 == ppppppcVar39);\n              }\n            }\n          }\n          pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23abc) + 0x73a4);\n          pppppppcVar30 = (code *******)FUN_00045fb4(pppppppcVar29[0xd],pppppppcVar38,pppppppcVar3);\n          pppppppcVar31 = pppppppcVar29;\n          if (pppppppcVar30 == (code *******)0x0) {\n            pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23b40) + -0x5be4);\n            pppppppcVar30 = (code *******)FUN_00045fb4(pppppppcVar29[0xd],pppppppcVar38);\n            if (pppppppcVar30 == (code *******)0x0) {\n              FUN_00046050(pppppppcVar29[0xd],*(int *)(puVar41 + 0x23abc) + 0x61b4);\n              pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23b40) + -0x4614);\n              pppppppcVar30 = (code *******)FUN_00046050(pppppppcVar29[0xd],pppppppcVar38);\n              if (pppppppcVar30 == (code *******)0x0) {\n                uVar7 = 0;\n                iVar18 = *(int *)(puVar41 + 0x23b40);\n                pppppppcVar33 = (code *******)0x0;\nLAB_00056744:\n                if ((code *******)pppppppcVar29[2] != pppppppcVar33) {\nLAB_00056750:\n                  if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                    pppppppcVar38 = pppppppcVar29;\n                    pppppppcVar31 = pppppppcVar33;\n                    pppppppcVar30 =\n                         (code *******)\n                         (*(code *)(iVar18 + -0x561c))\n                                   (&ppppppcStack_204,pppppppcVar29,pppppppcVar33,1);\n                    if (pppppppcVar30 != (code *******)0x0) goto LAB_00056168;\n                    if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                      (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                      uVar7 = 1;\n                    }\n                  }\n                  pppppppcVar33 = (code *******)((int)pppppppcVar33 + 1);\n                  goto LAB_00056744;\n                }\n                if (uVar7 != 0) {\n                  uVar7 = 0;\n                  pppppppcVar33 = (code *******)0x0;\n                  goto LAB_00056750;\n                }\n                if (((((uint)pppppppcVar3[7] & 0x8000000) == 0) &&\n                    (pppppppcVar3[6] != (code ******)0x0)) &&\n                   ((char)*(code *)(pppppppcVar29 + 0x16) < '\0')) {\n                  ppppppcVar32 = pppppppcVar29[2];\n                }\n                else {\n                  if (pppppppcVar29[0x13] == (code ******)0x0) goto LAB_000568f0;\n                  ppppppcVar32 = pppppppcVar29[2];\n                }\n                ppppppcVar35 = (code ******)\n                               (**(code **)(puVar41 + 0x23cf0))((int)ppppppcVar32 * 0xc);\n                pppppppcVar29[7] = ppppppcVar35;\n                if (ppppppcVar35 == (code ******)0x0) {\n                  pppppppcVar30 = (code *******)0xc;\n                  goto LAB_00056168;\n                }\n                if (ppppppcVar32 != (code ******)0x0) {\n                  iVar18 = 0;\n                  ppppppcVar32 = (code ******)0x0;\n                  do {\n                    puVar21 = (undefined1 *)((int)pppppppcVar29[7] + iVar18);\n                    *puVar21 = 0;\n                    puVar21[1] = 0;\n                    puVar21[2] = 0;\n                    puVar21[3] = 0;\n                    puVar21[4] = 0;\n                    puVar21[5] = 0;\n                    puVar21[6] = 0;\n                    puVar21[7] = 0;\n                    puVar21[8] = 0;\n                    puVar21[9] = 0;\n                    puVar21[10] = 0;\n                    puVar21[0xb] = 0;\n                    ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                    iVar18 = iVar18 + 0xc;\n                  } while (ppppppcVar32 < pppppppcVar29[2]);\n                  iVar18 = *(int *)(puVar41 + 0x23abc);\n                  if (pppppppcVar29[2] != (code ******)0x0) {\n                    iVar43 = 0;\n                    pppppppcStack_218 = (code *******)0x0;\n                    do {\n                      piVar5 = *(int **)((int)pppppppcVar29[6] + iVar43 + 8);\n                      if (0 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4)) {\n                        iVar37 = 0;\n                        do {\n                          pppppppcVar38 = pppppppcStack_218;\n                          iVar22 = (*(code *)(iVar18 + 0x6e30))\n                                             (pppppppcVar29[7] + *piVar5 * 3,pppppppcStack_218);\n                          pppppppcVar30 = (code *******)0xc;\n                          if (iVar22 == 0) goto LAB_00056168;\n                          iVar37 = iVar37 + 1;\n                          piVar5 = piVar5 + 1;\n                        } while (iVar37 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4));\n                      }\n                      pppppppcStack_218 = (code *******)((int)pppppppcStack_218 + 1);\n                      iVar43 = iVar43 + 0xc;\n                    } while (pppppppcStack_218 < pppppppcVar29[2]);\n                  }\n                }\nLAB_000568f0:\n                pppppppcStack_20c = (code *******)0x0;\n                if (((((uint)pppppppcVar34[0x16] & 0x20000000) != 0) && (uVar16 == 0)) &&\n                   (pppppppcVar3[5] == (code ******)0x0)) {\n                  if (pppppppcVar34[2] != (code ******)0x0) {\n                    pppppppcVar31 = (code *******)(*(int *)(puVar41 + 0x23754) + 0x6e4c);\n                    if (*(byte *)(*pppppppcVar34 + 1) < 0xd) {\n                    /* WARNING: Could not recover jumptable at 0x00056a60. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      pppppppcVar29 =\n                           (code *******)\n                           (*(code *)(puVar41 +\n                                     (int)(pppppppcVar31[*(byte *)(*pppppppcVar34 + 1)] + 0xadc7)))\n                                     ();\n                      return pppppppcVar29;\n                    }\n                    (**(code **)(puVar41 + 0x23bc4))(0);\n                    if (uVar7 != 0) {\n                      pppppppcVar31 = (code *******)&DAT_00000007;\n                      ppppppcVar32 = (code ******)0x0;\n                      do {\n                        ppppppcVar35 = *pppppppcVar34 + (int)ppppppcVar32 * 2;\n                        if (*(char *)(ppppppcVar35 + 1) == '\x01') {\n                          if (*(char *)ppppppcVar35 < '\0') {\n                            ppppppcVar35[1] = (code *****)((uint)ppppppcVar35[1] & 0xfffffbff);\n                          }\n                        }\n                        else if (*(char *)(ppppppcVar35 + 1) == '\x05') {\n                          *(char *)(ppppppcVar35 + 1) = '\a';\n                        }\n                        ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                      } while (ppppppcVar32 < pppppppcVar34[2]);\n                    }\n                  }\n                  pppppppcVar34[0x17] = (code ******)0x1;\n                  if (0 < (int)pppppppcVar34[0x13]) {\n                    uVar7 = 1;\n                  }\n                  *(byte *)(pppppppcVar34 + 0x16) =\n                       (byte)*(code *)(pppppppcVar34 + 0x16) & 0x9f | (byte)((uVar7 & 1) << 6);\n                }\n                ppppppcVar32 = (code ******)pppppppcVar34[0xd][3][7];\n                pppppppcVar34[0x12] = ppppppcVar32;\n                pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppppcVar32 * 3);\n                pppppppcVar33 = (code *******)FUN_000483e8(&ppppppcStack_204,pppppppcVar38);\n                pppppppcVar29 = pppppppcVar33;\n                pppppppcStack_208 = pppppppcVar33;\n                if (pppppppcVar33 == (code *******)0x0) {\n                  if ((0 < (int)pppppppcVar34[0x13]) && (0 < iStack_200)) {\n                    iVar18 = *(int *)(puVar41 + 0x23abc);\n                    iVar43 = *(int *)(puVar41 + 0x23abc);\n                    pppppppcVar29 = (code *******)0x0;\n                    do {\n                      pppppppcVar31 =\n                           (code *******)(*pppppppcVar34 + piStack_1fc[(int)pppppppcVar29] * 2);\n                      if (*(code *)(pppppppcVar31 + 1) == (code)0x4) {\n                        iVar37 = 0;\n                        piVar5 = piStack_1fc;\n                        if (iStack_200 < 1) {\nLAB_00056b8c:\n                          if (iStack_200 != iVar37) {\n                            ppppcVar40 = *pppppppcVar34[5][piStack_1fc[(int)pppppppcVar29] * 3 + 2];\n                            iVar37 = (*(code *)(iVar18 + 0x5ea8))(&ppppppcStack_204,ppppcVar40);\n                            if (iVar37 == 0) {\n                              pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppcVar40 * 3)\n                              ;\n                              pppppppcVar29 =\n                                   (code *******)\n                                   (*(code *)(iVar43 + 0x7f1c))(&ppppppcStack_204,pppppppcVar38);\n                              if (pppppppcVar29 != (code *******)0x0) goto LAB_00056cb8;\n                            }\n                          }\n                        }\n                        else {\n                          do {\n                            ppppppcVar32 = *pppppppcVar34 + *piVar5 * 2;\n                            if ((*(char *)(ppppppcVar32 + 1) == '\t') &&\n                               ((code ******)*ppppppcVar32 == *pppppppcVar31)) goto LAB_00056b8c;\n                            iVar37 = iVar37 + 1;\n                            piVar5 = piVar5 + 1;\n                          } while (iStack_200 != iVar37);\n                        }\n                      }\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1);\n                    } while ((int)pppppppcVar29 < iStack_200);\n                  }\n                  pppppppcVar31 = &ppppppcStack_204;\n                  pppppppcVar38 = pppppppcVar34;\n                  ppppppcVar32 = (code ******)\n                                 FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,0);\n                  pppppppcVar34[9] = ppppppcVar32;\n                  pppppppcVar29 = pppppppcStack_208;\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    if (((uint)ppppppcVar32[0xd] & 0x1000000) == 0) {\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar34[10] = ppppppcVar32;\n                    }\n                    else {\n                      pppppppcVar31 = &ppppppcStack_204;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,1);\n                      pppppppcVar34[10] = ppppppcVar32;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,2);\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar38 = pppppppcVar34;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,6);\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar29 = pppppppcStack_208;\n                      if (((pppppppcVar34[10] == (code ******)0x0) ||\n                          (pppppppcVar34[0xb] == (code ******)0x0)) ||\n                         (ppppppcVar32 == (code ******)0x0)) goto LAB_00056cb8;\n                    }\n                    (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                    pppppppcVar29 = pppppppcVar33;\n                  }\n                }\nLAB_00056cb8:\n                pppppppcStack_20c = pppppppcVar29;\n                FUN_0004b234(pppppppcVar3);\n                FUN_0004b2bc(&pppppppcStack_1f8);\n                pppppppcVar29 = pppppppcStack_20c;\n                if (pppppppcStack_20c != (code *******)0x0) {\n                  if (*(int *)(puVar41 + 0x23c78) != 0) {\n                    (**(code **)(puVar41 + 0x23df0))(pppppppcVar34 + 0x22);\n                  }\n                  FUN_0004b338(pppppppcVar34);\n                  *pppppppcVar3 = (code ******)0x0;\n                  pppppppcVar3[1] = (code ******)0x0;\n                  pppppppcVar29 = pppppppcStack_20c;\n                }\n                goto LAB_00056cfc;\n              }\n            }\n          }\n        }\n      }\n      else {\n        pppppppcVar31 = (code *******)0x0;\n        if (pppppppcVar29 != (code *******)0x0) {\n          pppppppcVar33 = (code *******)FUN_000470f0(ppppppcVar32,0,0,2);\n          goto LAB_000564b0;\n        }\nLAB_000566f4:\n        pppppppcVar34[0xd] = (code ******)0x0;\n        pppppppcVar30 = pppppppcStack_20c;\n      }\nLAB_00056168:\n      pppppppcStack_20c = pppppppcVar30;\n      FUN_0004b234(pppppppcVar3);\n      FUN_0004b2bc(&pppppppcStack_1f8);\n      if (*(int *)(puVar41 + 0x23c78) != 0) {\n        (**(code **)(puVar41 + 0x23df0))(pppppppcVar34 + 0x22);\n      }\n      FUN_0004b338(pppppppcVar34);\n      *pppppppcVar3 = (code ******)0x0;\n      pppppppcVar3[1] = (code ******)0x0;\n      pppppppcVar29 = pppppppcStack_20c;\n      goto LAB_00056cfc;\n    }\n    pppppppcVar38 = (code *******)0x0;\n    iVar18 = (**(code **)(puVar41 + 0x23d98))(pppppppcVar34 + 0x22,0);\n    if (iVar18 != 0) goto LAB_00056e5c;\n    if (pppppppcStack_20c == (code *******)0x0) goto LAB_00056054;\n  }\n  else {\nLAB_00056e5c:\n    pppppppcStack_20c = (code *******)0xc;\n  }\n  FUN_0004b338(pppppppcVar34);\n  *pppppppcVar3 = (code ******)0x0;\n  pppppppcVar3[1] = (code ******)0x0;\n  pppppppcVar29 = pppppppcStack_20c;\nLAB_00056cfc:\n  if (iStack_1a4 == **(int **)(puVar41 + 0x23dac)) {\n    return pppppppcVar29;\n  }\n  pcVar4 = *(code **)(puVar41 + 0x23d6c);\n  iVar18 = iStack_1a4;\n  (*pcVar4)();\n  *(byte *)(pppppppcVar31 + 7) =\n       (byte)*(code *)(pppppppcVar31 + 7) & 0xf6 |\n       (byte)(((uint)(**(int **)(pcVar4 + 0x22b18) << 6) >> 0x1f) << 3) | 1;\n  iVar18 = FUN_00055e64(pppppppcVar31,iVar18,pppppppcVar38);\n  if (iVar18 == 0) {\n    pppppppcVar29 = (code *******)0x0;\n  }\n  else {\n    pppppppcVar29 =\n         (code *******)\n         (**(code **)(pcVar4 + 0x22d48))\n                   (0,*(int *)(pcVar4 + 0x22728) + 0x6f48 +\n                      *(int *)(iVar18 * 4 + *(int *)(pcVar4 + 0x22728) + 0x6f04),5);\n  }\n  return pppppppcVar29;\ncode_r0x00055b38:\n  if ((int)pppppppcVar26 < (int)local_dc) goto LAB_000557a8;\n  goto LAB_00055b44;\nLAB_000557a8:\n  local_150 = (code *******)0x1;\n  goto LAB_000557e4;\nLAB_00055914:\n  local_150 = (code *******)0xc;\n  param_4 = pppppppcVar14;\n  goto LAB_000557e4;\n}" type_identifier (pointer_declarator "*******\nFUN_00054610(code *******param_1,code ******param_2,code *******param_3,code *******param_4,\n            code *******param_5,code *******param_6,code ******param_7,code *******param_8,\n            code *******param_9)" * (pointer_declarator "******\nFUN_00054610(code *******param_1,code ******param_2,code *******param_3,code *******param_4,\n            code *******param_5,code *******param_6,code ******param_7,code *******param_8,\n            code *******param_9)" * (pointer_declarator "*****\nFUN_00054610(code *******param_1,code ******param_2,code *******param_3,code *******param_4,\n            code *******param_5,code *******param_6,code ******param_7,code *******param_8,\n            code *******param_9)" * (pointer_declarator "****\nFUN_00054610(code *******param_1,code ******param_2,code *******param_3,code *******param_4,\n            code *******param_5,code *******param_6,code ******param_7,code *******param_8,\n            code *******param_9)" * (pointer_declarator "***\nFUN_00054610(code *******param_1,code ******param_2,code *******param_3,code *******param_4,\n            code *******param_5,code *******param_6,code ******param_7,code *******param_8,\n            code *******param_9)" * (pointer_declarator "**\nFUN_00054610(code *******param_1,code ******param_2,code *******param_3,code *******param_4,\n            code *******param_5,code *******param_6,code ******param_7,code *******param_8,\n            code *******param_9)" * (pointer_declarator "*\nFUN_00054610(code *******param_1,code ******param_2,code *******param_3,code *******param_4,\n            code *******param_5,code *******param_6,code ******param_7,code *******param_8,\n            code *******param_9)" * (function_declarator "FUN_00054610(code *******param_1,code ******param_2,code *******param_3,code *******param_4,\n            code *******param_5,code *******param_6,code ******param_7,code *******param_8,\n            code *******param_9)" identifier (parameter_list "(code *******param_1,code ******param_2,code *******param_3,code *******param_4,\n            code *******param_5,code *******param_6,code ******param_7,code *******param_8,\n            code *******param_9)" ( (parameter_declaration "code *******param_1" type_identifier (pointer_declarator "*******param_1" * (pointer_declarator "******param_1" * (pointer_declarator "*****param_1" * (pointer_declarator "****param_1" * (pointer_declarator "***param_1" * (pointer_declarator "**param_1" * (pointer_declarator "*param_1" * identifier)))))))) , (parameter_declaration "code ******param_2" type_identifier (pointer_declarator "******param_2" * (pointer_declarator "*****param_2" * (pointer_declarator "****param_2" * (pointer_declarator "***param_2" * (pointer_declarator "**param_2" * (pointer_declarator "*param_2" * identifier))))))) , (parameter_declaration "code *******param_3" type_identifier (pointer_declarator "*******param_3" * (pointer_declarator "******param_3" * (pointer_declarator "*****param_3" * (pointer_declarator "****param_3" * (pointer_declarator "***param_3" * (pointer_declarator "**param_3" * (pointer_declarator "*param_3" * identifier)))))))) , (parameter_declaration "code *******param_4" type_identifier (pointer_declarator "*******param_4" * (pointer_declarator "******param_4" * (pointer_declarator "*****param_4" * (pointer_declarator "****param_4" * (pointer_declarator "***param_4" * (pointer_declarator "**param_4" * (pointer_declarator "*param_4" * identifier)))))))) , (parameter_declaration "code *******param_5" type_identifier (pointer_declarator "*******param_5" * (pointer_declarator "******param_5" * (pointer_declarator "*****param_5" * (pointer_declarator "****param_5" * (pointer_declarator "***param_5" * (pointer_declarator "**param_5" * (pointer_declarator "*param_5" * identifier)))))))) , (parameter_declaration "code *******param_6" type_identifier (pointer_declarator "*******param_6" * (pointer_declarator "******param_6" * (pointer_declarator "*****param_6" * (pointer_declarator "****param_6" * (pointer_declarator "***param_6" * (pointer_declarator "**param_6" * (pointer_declarator "*param_6" * identifier)))))))) , (parameter_declaration "code ******param_7" type_identifier (pointer_declarator "******param_7" * (pointer_declarator "*****param_7" * (pointer_declarator "****param_7" * (pointer_declarator "***param_7" * (pointer_declarator "**param_7" * (pointer_declarator "*param_7" * identifier))))))) , (parameter_declaration "code *******param_8" type_identifier (pointer_declarator "*******param_8" * (pointer_declarator "******param_8" * (pointer_declarator "*****param_8" * (pointer_declarator "****param_8" * (pointer_declarator "***param_8" * (pointer_declarator "**param_8" * (pointer_declarator "*param_8" * identifier)))))))) , (parameter_declaration "code *******param_9" type_identifier (pointer_declarator "*******param_9" * (pointer_declarator "******param_9" * (pointer_declarator "*****param_9" * (pointer_declarator "****param_9" * (pointer_declarator "***param_9" * (pointer_declarator "**param_9" * (pointer_declarator "*param_9" * identifier)))))))) )))))))))) (compound_statement "{\n  bool bVar1;\n  code *******pppppppcVar2;\n  code *******pppppppcVar3;\n  code *pcVar4;\n  int *piVar5;\n  code *******pppppppcVar6;\n  uint uVar7;\n  code *pcVar8;\n  code *pcVar9;\n  code *pcVar10;\n  code *pcVar11;\n  code *pcVar12;\n  code *****pppppcVar13;\n  code *******pppppppcVar14;\n  code *******pppppppcVar15;\n  uint uVar16;\n  code cVar23;\n  byte *pbVar17;\n  int iVar18;\n  uint uVar19;\n  code ******ppppppcVar20;\n  undefined1 *puVar21;\n  int iVar22;\n  code *******pppppppcVar24;\n  code *******pppppppcVar25;\n  code *******pppppppcVar26;\n  uint uVar27;\n  code *******pppppppcVar28;\n  code *******pppppppcVar29;\n  code *******pppppppcVar30;\n  code *******pppppppcVar31;\n  code ******ppppppcVar32;\n  code *******pppppppcVar33;\n  code *******pppppppcVar34;\n  code ******ppppppcVar35;\n  code *******pppppppcVar36;\n  code *******unaff_s4;\n  int iVar37;\n  code *******unaff_s5;\n  code *******pppppppcVar38;\n  code *******unaff_s7;\n  code ******ppppppcVar39;\n  code ****ppppcVar40;\n  undefined *puVar41;\n  code *******unaff_s8;\n  code *******pppppppcVar42;\n  int iVar43;\n  undefined8 uVar44;\n  code *******pppppppcStack_218;\n  code *******pppppppcStack_20c;\n  code *******pppppppcStack_208;\n  code ******ppppppcStack_204;\n  int iStack_200;\n  int *piStack_1fc;\n  code *******pppppppcStack_1f8;\n  code *******apppppppcStack_1f4 [6];\n  int iStack_1dc;\n  int iStack_1d8;\n  int iStack_1d4;\n  code *******pppppppcStack_1cc;\n  code *******pppppppcStack_1c8;\n  code *******pppppppcStack_1c4;\n  code *******pppppppcStack_1c0;\n  code ******ppppppcStack_1b8;\n  undefined1 uStack_1b0;\n  byte bStack_1af;\n  byte bStack_1ae;\n  char cStack_1ad;\n  code ******ppppppcStack_1a8;\n  int iStack_1a4;\n  code *******pppppppcStack_1a0;\n  code *******pppppppcStack_19c;\n  code *******pppppppcStack_198;\n  code *******pppppppcStack_194;\n  code *******pppppppcStack_190;\n  code *******pppppppcStack_18c;\n  code *******pppppppcStack_188;\n  code *******pppppppcStack_184;\n  code *******pppppppcStack_180;\n  code *pcStack_17c;\n  uint local_168;\n  code *******local_150;\n  code *******local_148;\n  code *******local_144;\n  code *******local_138;\n  int local_118;\n  code *******local_dc;\n  code *******local_d8;\n  code *******local_d4;\n  code *******local_d0;\n  code *******local_cc;\n  code *******local_c8;\n  code *******local_c4;\n  undefined4 local_c0;\n  undefined4 local_bc;\n  undefined4 local_b8;\n  code ******local_b4;\n  code ******local_b0;\n  int *local_ac;\n  int local_a8;\n  int local_9c;\n  code *******local_98;\n  code *******local_94;\n  uint local_90;\n  code *******local_8c;\n  code *******local_88;\n  code *******local_84;\n  code *******local_80;\n  code *******local_7c;\n  undefined4 local_78;\n  code ******local_74;\n  code *******local_70;\n  byte local_6c;\n  byte local_6b;\n  byte local_6a;\n  byte local_69;\n  char local_68;\n  byte local_67;\n  byte local_66;\n  code *******local_64;\n  code *******local_60;\n  code *******local_5c;\n  code *******local_58;\n  code *******local_54;\n  code *******local_50;\n  code *******local_4c;\n  undefined4 local_48;\n  code *******local_44;\n  code *******local_40;\n  int local_3c;\n  code *******local_34;\n  int local_30;\n  code *******local_2c;\n  \n  local_2c = *(code ********)PTR___stack_chk_guard_00079c10;\n  pppppppcVar38 = (code *******)*param_1;\n  pppppppcVar29 = (code *******)0x0;\n  pppppppcVar33 = param_4;\n  (*(code *)PTR_memset_00079b00)(&local_b4,0,0x88);\n  local_148 = (code *******)param_1[4];\n  if (local_148 != (code *******)0x0) {\n    if (((byte)*(code *)(param_1 + 7) & 0x10) == 0) {\n      local_148 = (code *******)0x0;\n    }\n    else if (param_4 == param_5) {\n      local_148 = (code *******)0x0;\n    }\n    else if ((char)*(code *)(param_1 + 7) < '\0') {\n      local_148 = (code *******)0x0;\n    }\n  }\n  if (param_1[6] < param_7) {\n    local_118 = (int)param_7 + (-1 - (int)param_1[6]);\n  }\n  else {\n    local_118 = 0;\n  }\n  pppppppcStack_1a0 = param_4;\n  pppppppcStack_19c = param_1;\n  local_60 = pppppppcVar38;\n  if (param_1[2] == (code ******)0x0) {\n    local_150 = (code *******)0x1;\n  }\n  else if (pppppppcVar38[9] == (code ******)0x0) {\n    local_150 = (code *******)0x1;\n  }\n  else if (pppppppcVar38[10] == (code ******)0x0) {\n    local_150 = (code *******)0x1;\n  }\n  else if (pppppppcVar38[0xb] == (code ******)0x0) {\n    local_150 = (code *******)0x1;\n  }\n  else {\n    pppppppcVar29 = (code *******)pppppppcVar38[0xc];\n    if (pppppppcVar29 == (code *******)0x0) {\n      local_150 = (code *******)0x1;\n    }\n    else {\n      pppppppcVar3 = param_5;\n      if ((((pppppppcVar38[9][2] == (code *****)0x0) && (pppppppcVar38[10][2] == (code *****)0x0))\n          && ((pppppppcVar38[0xb][2] == (code *****)0x0 || (((uint)param_1[7] & 0x1000000) == 0))))\n         && ((pppppppcVar3 = param_4, param_4 != (code *******)0x0 &&\n             (param_4 = param_5, pppppppcVar3 = param_5, param_5 != (code *******)0x0)))) {\n        local_150 = (code *******)0x1;\n        pppppppcStack_1a0 = param_5;\n      }\n      else {\n        param_5 = pppppppcVar3;\n        pppppppcVar3 = (code *******)((int)param_7 - local_118);\n        if (pppppppcVar3 == (code *******)0x0) {\n          pppppppcVar34 = (code *******)(uint)(pppppppcVar38[0x13] != (code ******)0x0);\n        }\n        else {\n          pppppppcVar34 = (code *******)0x1;\n        }\n        ppppppcVar32 = param_1[5];\n        local_6c = (byte)((uint)((int)param_1[3] << 9) >> 0x1f);\n        local_64 = (code *******)pppppppcVar38[0x17];\n        pppppppcVar31 = (code *******)((int)pppppppcVar38[2] + 1);\n        if ((int)pppppppcVar38[2] + 1 < (int)local_64) {\n          pppppppcVar31 = local_64;\n        }\n        pppppppcVar30 = (code *******)(uint)((int)param_3 + 1 < (int)pppppppcVar31);\n        pppppppcVar33 = (code *******)0x1;\n        local_69 = local_6c;\n        if (ppppppcVar32 != (code ******)0x0) {\n          local_69 = 1;\n        }\n        local_6b = (byte)((uint)((int)pppppppcVar38[0x16] << 2) >> 0x1f);\n        local_6a = (byte)((uint)((int)pppppppcVar38[0x16] << 3) >> 0x1f);\n        pppppppcVar29 = (code *******)((int)param_3 + 1);\n        if (pppppppcVar30 == (code *******)0x0) {\n          pppppppcVar29 = pppppppcVar31;\n        }\n        local_b4 = param_2;\n        local_88 = param_3;\n        local_84 = param_3;\n        local_80 = param_3;\n        local_7c = param_3;\n        local_74 = ppppppcVar32;\n        local_150 = (code *******)FUN_00046d2c(&local_b4);\n        pppppppcVar31 = pppppppcVar34;\n        param_6 = param_6;\n        if (local_150 != (code *******)0x0) goto LAB_000557e4;\n        local_70 = pppppppcVar38 + 0x18;\n        local_66 = (byte)((uint)((int)pppppppcVar38[0x16] << 4) >> 0x1f);\n        pppppppcVar2 = (code *******)0x0;\n        local_98 = pppppppcVar2;\n        if ((local_69 == 0) && (local_b0 = param_2, (int)pppppppcVar38[0x17] < 2)) {\n          local_98 = param_3;\n        }\n        local_7c = param_6;\n        local_80 = param_6;\n        local_67 = (byte)((uint)((int)param_1[7] << 7) >> 0x1f);\n        ppppppcVar35 = pppppppcVar38[0x13];\n        pppppppcVar36 = (code *******)((int)ppppppcVar35 * 2);\n        local_5c = param_9;\n        local_58 = (code *******)0xffffffff;\n        local_94 = local_98;\n        if ((int)pppppppcVar36 < 1) {\nLAB_000559f0:\n          local_3c = 1;\n          local_44 = pppppppcVar36;\n          local_34 = pppppppcVar36;\n          if ((pppppppcVar3 < (code *******)0x2) && (((uint)pppppppcVar38[0x16] & 0x40000000) == 0))\n          {\n            local_50 = (code *******)0x0;\nLAB_00055a40:\n            local_78 = 6;\n            if (((uint)param_9 & 1) != 0) {\n              local_78 = 4;\n            }\n            pppppppcVar24 = (code *******)0x1;\n            pppppppcVar25 = param_4;\n            if ((int)param_5 < (int)param_4) {\n              pppppppcVar24 = (code *******)0xffffffff;\n              pppppppcVar25 = param_5;\n            }\n            pppppppcVar26 = param_5;\n            if ((int)param_5 <= (int)param_4) {\n              pppppppcVar26 = param_4;\n            }\n            ppppppcVar35 = pppppppcVar38[0x17];\n            uVar16 = 8;\n            if (local_148 != (code *******)0x0) {\n              if (ppppppcVar35 == (code ******)0x1) {\n                pppppppcVar28 = (code *******)0x4;\n              }\n              else {\n                pppppppcVar28 = pppppppcVar2;\n                if ((-1 < (int)param_1[3] << 9) && (ppppppcVar32 == (code ******)0x0)) {\n                  pppppppcVar28 = (code *******)0x4;\n                }\n              }\n              pppppppcVar29 = (code *******)0x0;\n              if ((int)param_4 <= (int)param_5) {\n                pppppppcVar29 = (code *******)0x2;\n              }\n              uVar16 = (uint)(ppppppcVar32 != (code ******)0x0) | (uint)pppppppcVar28 |\n                       (uint)pppppppcVar29;\n            }\n            local_dc = param_4;\n            if ((int)param_4 < (int)pppppppcVar25) {\n              local_150 = (code *******)0x1;\n              param_6 = pppppppcVar36;\n            }\n            else if ((int)pppppppcVar26 < (int)param_4) {\n              local_150 = (code *******)0x1;\n              param_4 = (code *******)(uint)((int)param_5 < (int)param_4);\n              param_6 = pppppppcVar36;\n            }\n            else {\n              pppppppcVar36 = (code *******)&local_dc;\n              if ((code *******)(uint)((int)param_5 < (int)param_4) != (code *******)0x0) {\n                pppppppcVar36 = (code *******)0x0;\n              }\n              pcVar4 = (code *)(PTR_DAT_000799a4 + -0x2b7c);\n              piVar5 = (int *)(PTR_s_nt0_000795b8 + (uVar16 - 4) * 4 + 0x6e38);\nLAB_00055b44:\n              if (uVar16 - 4 < 5) {\n                    /* WARNING: Could not emulate address calculation at 0x00054920 */\n                    /* WARNING: Treating indirect jump as call */\n                pppppppcVar29 = (code *******)(*(code *)(&_gp_1 + *piVar5))();\n                return pppppppcVar29;\n              }\n              param_5 = &local_b4;\n              pppppppcVar28 = pppppppcVar33;\n              while( true ) {\n                param_4 = local_dc;\n                pppppppcVar33 = (code *******)((int)local_dc - local_9c);\n                pppppppcVar30 = param_9;\n                pppppppcVar31 = pppppppcVar2;\n                param_6 = local_148;\n                unaff_s4 = param_3;\n                unaff_s5 = pppppppcVar24;\n                unaff_s7 = pppppppcVar26;\n                if (local_94 <= pppppppcVar33) {\n                  pppppppcVar29 = local_dc;\n                  local_150 = (code *******)(*pcVar4)(param_5);\n                  pppppppcVar33 = pppppppcVar28;\n                  if (local_150 != (code *******)0x0) goto LAB_000557e4;\n                  pppppppcVar33 = (code *******)((int)param_4 - local_9c);\n                }\n                if ((int)param_4 < (int)param_3) {\n                  uVar7 = (uint)(byte)*(code *)((int)pppppppcVar33 + (int)local_b0);\n                }\n                else {\n                  uVar7 = 0;\n                }\n                param_4 = (code *******)((int)param_4 + (int)pppppppcVar24);\n                if (*(code *)((int)local_148 + uVar7) != (code)0x0) break;\n                pppppppcVar33 = pppppppcVar28;\n                local_dc = param_4;\n                if ((int)param_4 < (int)pppppppcVar25) {\n                  local_150 = (code *******)0x1;\n                  goto LAB_000557e4;\n                }\n                if ((code *******)(uint)((int)pppppppcVar26 < (int)param_4) != (code *******)0x0) {\n                  local_150 = (code *******)0x1;\n                  param_4 = (code *******)(uint)((int)pppppppcVar26 < (int)param_4);\n                  goto LAB_000557e4;\n                }\n              }\n              while( true ) {\n                pppppppcVar29 = local_dc;\n                pppppppcVar30 = param_9;\n                pppppppcVar6 = (code *******)(*pcVar4)(&local_b4);\n                pppppppcVar14 = local_60;\n                pppppppcVar42 = local_8c;\n                pppppppcVar33 = pppppppcVar28;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar6 != (code *******)0x0) goto LAB_000557e4;\n                if (((ppppppcVar35 != (code ******)0x1) && (local_98 != (code *******)0x0)) &&\n                   (*local_ac == -1)) goto LAB_00055b1c;\n                local_3c = 0;\n                local_48 = 0;\n                local_4c = (code *******)0x0;\n                local_138 = local_8c;\n                local_d8 = (code *******)0x0;\n                unaff_s7 = (code *******)local_60[9];\n                pppppppcVar30 = local_5c;\n                param_4 = pppppppcVar14;\n                if (((uint)unaff_s7[0xd] & 0x1000000) == 0) break;\n                pppppppcVar29 = (code *******)((int)local_8c + -1);\n                pppppppcVar33 = (code *******)FUN_00049110(&local_b4);\n                if (((uint)pppppppcVar33 & 1) == 0) {\n                  if (pppppppcVar33 == (code *******)0x0) break;\n                  if (((uint)pppppppcVar33 & 6) == 6) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xc];\n                    goto LAB_00054d1c;\n                  }\n                  if (((uint)pppppppcVar33 & 2) != 0) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xb];\n                    goto LAB_00054d1c;\n                  }\n                  pppppppcVar28 = pppppppcVar33;\n                  if (((uint)pppppppcVar33 & 4) == 0) break;\n                  pppppppcVar30 = (code *******)unaff_s7[10];\n                  pppppppcVar29 = pppppppcVar14;\n                  unaff_s7 = (code *******)FUN_0004ae34(&local_d8);\n                  pppppppcVar28 = pppppppcVar33;\n                  if (unaff_s7 != (code *******)0x0) break;\n                  if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                }\n                else {\n                  unaff_s7 = (code *******)pppppppcVar14[10];\nLAB_00054d1c:\n                  pppppppcVar28 = (code *******)PTR_s_nt0_000795b8;\n                  if (unaff_s7 != (code *******)0x0) break;\n                }\n                pppppppcVar28 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                local_dc = (code *******)\n                           (*(code *)PTR___assert_fail_000799f8)\n                                     (PTR_s_nt0_000795b8 + 0x71a0,pppppppcVar29,0x435);\n                if (local_dc == pppppppcVar26) {\n                  if ((int)local_dc < (int)param_3) {\n                    uVar7 = (uint)(byte)*(code *)((int)local_dc + (int)param_2);\n                  }\n                  else {\n                    uVar7 = 0;\n                  }\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    uVar7 = (uint)*(byte *)((int)ppppppcVar32 + uVar7);\n                  }\n                  if (*(code *)((int)local_148 + uVar7) == (code)0x0) {\n                    local_150 = (code *******)0x1;\n                    pppppppcVar30 = param_9;\n                    pppppppcVar33 = pppppppcVar28;\n                    goto LAB_000557e4;\n                  }\n                }\n              }\n              pppppppcVar33 = pppppppcVar28;\n              bVar1 = pppppppcVar36 != (code *******)0x0;\n              if ((local_50 == (code *******)0x0) ||\n                 (local_50[(int)pppppppcVar42] = (code ******)unaff_s7,\n                 pppppppcVar14[0x13] == (code ******)0x0)) {\nLAB_00054d50:\n                if ((int)unaff_s7[0xd] << 4 < 0) {\n                  if ((((uint)unaff_s7[0xd] & 0x1000000) == 0) ||\n                     (pppppppcVar29 = unaff_s7, pppppppcVar30 = pppppppcVar42,\n                     iVar18 = FUN_00049440(&local_b4), iVar18 != 0)) {\n                    unaff_s8 = pppppppcVar42;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                  }\n                  else {\n                    pppppppcVar42 = (code *******)0xffffffff;\n                    pppppppcVar28 = (code *******)0x0;\n                  }\n                }\n                else {\n                  pppppppcVar42 = (code *******)0xffffffff;\n                  pppppppcVar28 = (code *******)0x0;\n                }\n                pcVar8 = (code *)(PTR_DAT_000799a4 + -0x7144);\n                pcVar9 = (code *)(PTR_DAT_000799a4 + -0x1980);\n                pcVar10 = (code *)(PTR_DAT_000799a4 + -0x2f9c);\n                unaff_s8 = pppppppcVar42;\n                local_144 = pppppppcVar36;\n                while( true ) {\n                  uVar44 = CONCAT44(local_98,local_84);\n                  unaff_s5 = (code *******)((int)local_8c + 1);\n                  pppppppcVar29 = local_8c;\n                  if ((int)local_7c <= (int)local_8c) break;\n                  if (((int)local_90 <= (int)unaff_s5) && ((int)local_90 < (int)local_84))\n                  goto LAB_00054e94;\n                  if ((int)local_98 <= (int)unaff_s5) {\n                    while ((int)((ulonglong)uVar44 >> 0x20) < (int)uVar44) {\nLAB_00054e94:\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 2);\n                      local_d8 = (code *******)(*pcVar8)(&local_b4);\n                      if (local_d8 == (code *******)0x0) break;\n                      pppppppcVar14 = param_4;\n                      if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                      pppppppcVar33 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                      pppppppcVar30 = (code *******)0x46c;\n                      pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                      uVar44 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0);\n                      pppppppcVar28 = pppppppcVar38;\n                    }\n                  }\n                  pppppppcVar42 = local_60;\n                  if ((int)unaff_s7[0xd] << 5 < 0) {\n                    pppppppcVar31 = pppppppcVar42;\n                    if (0 < (int)unaff_s7[2]) {\n                      pcVar11 = (code *)(PTR_DAT_000799a4 + -0x6fdc);\n                      pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6ef0);\n                      param_6 = (code *******)0x0;\n                      do {\n                        param_5 = (code *******)unaff_s7[3][(int)param_6];\n                        ppppppcVar39 = *pppppppcVar42;\n                        pppppcVar13 = ppppppcVar39[(int)param_5 * 2 + 1];\n                        if (((uint)pppppcVar13 & 0x800) != 0) {\n                          if (((uint)pppppcVar13 & 0xffc000) != 0) {\n                            pppppppcVar29 = local_8c;\n                            uVar19 = (*pcVar12)(&local_b4,local_8c,local_5c);\n                            uVar7 = (uint)((int)ppppppcVar39[(int)param_5 * 2 + 1] << 8) >> 0x16;\n                            if ((uVar7 & 4) == 0) {\n                              uVar27 = uVar19 & 1;\n                              if ((uVar7 & 8) != 0) goto joined_r0x00054f40;\n                            }\n                            else {\n                              uVar27 = uVar7 & 8;\n                              if ((uVar19 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                              if (uVar27 != 0) goto LAB_000550a4;\n                            }\n                            if ((((uVar7 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                               (((uVar7 & 0x80) != 0 &&\n                                (pppppppcVar33 = local_8c, (uVar19 & 8) == 0)))) goto LAB_000550a4;\n                          }\n                          pppppppcVar30 = &local_b4;\n                          pppppppcVar29 = param_5;\n                          pppppppcVar33 = local_8c;\n                          iVar18 = (*pcVar10)(pppppppcVar42);\n                          if (iVar18 != 0) {\n                            pppppppcVar14 = (code *******)((int)local_8c + iVar18);\n                            if (iVar18 <= local_3c) {\n                              iVar18 = local_3c;\n                            }\n                            pppppppcVar29 = pppppppcVar14;\n                            local_3c = iVar18;\n                            local_d4 = (code *******)(*pcVar11)(&local_b4);\n                            pppppppcVar15 = local_d4;\n                            if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                            pppppppcVar30 =\n                                 (code *******)\n                                 (pppppppcVar42[6] + (int)pppppppcVar42[3][(int)param_5] * 3);\n                            unaff_s4 = (code *******)((int)pppppppcVar14 * 4);\n                            param_5 = local_50 + (int)pppppppcVar14;\n                            if (*param_5 == (code ******)0x0) {\n                              local_d0 = (code *******)*pppppppcVar30;\n                              local_cc = (code *******)pppppppcVar30[1];\n                              local_c8 = (code *******)pppppppcVar30[2];\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *param_5 = ppppppcVar39;\n                            }\n                            else {\n                              pppppppcVar29 = (code *******)(*param_5)[10];\n                              local_d4 = (code *******)FUN_000484bc(&local_d0);\n                              pppppppcVar15 = local_d4;\n                              if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar15 = local_50 + (int)pppppppcVar14;\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *pppppppcVar15 = ppppppcVar39;\n                              (*(code *)PTR_free_00079c24)(local_c8);\n                            }\n                            unaff_s4 = local_50 + (int)pppppppcVar14;\n                            if ((*unaff_s4 == (code ******)0x0) &&\n                               (pppppppcVar15 = local_d4, local_d4 != (code *******)0x0))\n                            goto LAB_00055e44;\n                          }\n                        }\nLAB_000550a4:\n                        param_6 = (code *******)((int)param_6 + 1);\n                      } while ((int)param_6 < (int)unaff_s7[2]);\n                    }\n                    local_d8 = (code *******)0x0;\n                  }\n                  uVar7 = (uint)(byte)*(code *)((int)local_8c + (int)local_b0);\n                  local_8c = (code *******)((int)local_8c + 1);\n                  do {\n                    if (unaff_s7[0xb] != (code ******)0x0) {\n                      pppppppcVar30 = (code *******)unaff_s7[0xb][uVar7];\nLAB_000553a0:\n                      pppppppcVar14 = pppppppcVar30;\n                      if (local_50 != (code *******)0x0) goto LAB_000553ac;\n                      goto LAB_000553cc;\n                    }\n                    pppppppcVar31 = (code *******)unaff_s7[0xc];\n                    if (pppppppcVar31 != (code *******)0x0) {\n                      pppppppcVar29 = (code *******)((int)local_8c + -1);\n                      uVar19 = FUN_00049110(&local_b4);\n                      if ((uVar19 & 1) == 0) {\n                        pppppppcVar30 = (code *******)pppppppcVar31[uVar7];\n                      }\n                      else {\n                        pppppppcVar31 = pppppppcVar31 + uVar7 + 0x100;\n                        pppppppcVar30 = (code *******)*pppppppcVar31;\n                      }\n                      goto LAB_000553a0;\n                    }\n                    pppppppcVar29 = unaff_s7;\n                    pppppppcVar30 = local_5c;\n                    iVar18 = (*pcVar9)(local_60);\n                  } while (iVar18 != 0);\n                  local_d8 = (code *******)0xc;\n                  pppppppcVar15 = local_d8;\nLAB_00055e44:\n                  local_d8 = pppppppcVar15;\n                  param_4 = (code *******)0x0;\n                  if (local_50 == (code *******)0x0) {\n                    pppppppcVar14 = param_4;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    break;\n                  }\n                  pppppppcVar30 = (code *******)0x0;\nLAB_000553ac:\n                  pppppppcVar29 = &local_b4;\n                  pppppppcVar14 = (code *******)FUN_00053684(&local_d8);\nLAB_000553cc:\n                  param_4 = pppppppcVar14;\n                  if (pppppppcVar14 == (code *******)0x0) {\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    if ((local_50 == (code *******)0x0) ||\n                       ((pppppppcVar28 != (code *******)0x0 && (pppppppcVar34 == (code *******)0x0))\n                       )) break;\n                    param_6 = &local_b4;\n                    param_5 = (code *******)&local_d8;\n                    pppppppcVar31 = (code *******)(PTR_DAT_000799a4 + 0x3684);\n                    do {\n                      pppppppcVar15 = local_50 + (int)local_8c;\n                      pppppppcVar42 = local_8c;\n                      do {\n                        pppppppcVar42 = (code *******)((int)pppppppcVar42 + 1);\n                        pppppppcVar29 = local_4c;\n                        param_4 = pppppppcVar14;\n                        if ((int)local_4c < (int)pppppppcVar42) goto LAB_00055da8;\n                        local_8c = (code *******)((int)local_8c + 1);\n                        pppppppcVar15 = pppppppcVar15 + 1;\n                      } while (*pppppppcVar15 == (code ******)0x0);\n                      pppppppcVar30 = (code *******)0x0;\n                      pppppppcVar29 = param_6;\n                      param_4 = (code *******)(*(code *)pppppppcVar31)(param_5);\n                      if (local_d8 != (code *******)0x0) {\n                        if (param_4 == (code *******)0x0) goto LAB_00055da8;\n                        break;\n                      }\n                      pppppppcVar29 = local_4c;\n                    } while (param_4 == (code *******)0x0);\n                  }\n                  pppppppcVar15 = (code *******)((uint)unaff_s7 ^ (uint)param_4);\n                  pppppppcVar42 = unaff_s7;\n                  pppppppcVar14 = local_138;\n                  if ((bVar1) &&\n                     (pppppppcVar42 = pppppppcVar15, pppppppcVar14 = unaff_s5,\n                     pppppppcVar15 != (code *******)0x0)) {\n                    bVar1 = false;\n                    pppppppcVar14 = local_138;\n                  }\n                  local_138 = pppppppcVar14;\n                  unaff_s7 = param_4;\n                  if ((((uint)param_4[0xd] & 0x8000000) != 0) &&\n                     ((((uint)param_4[0xd] & 0x1000000) == 0 ||\n                      (pppppppcVar29 = param_4, pppppppcVar30 = local_8c,\n                      iVar18 = FUN_00049440(&local_b4), iVar18 != 0)))) {\n                    unaff_s7 = pppppppcVar42;\n                    unaff_s8 = local_8c;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                    local_144 = (code *******)0x0;\n                    unaff_s7 = param_4;\n                  }\n                }\nLAB_00055da8:\n                if (local_144 != (code *******)0x0) {\n                  *local_144 = (code ******)((int)local_138 + (int)*local_144);\n                }\n              }\n              else {\n                param_4 = unaff_s7 + 1;\n                pppppppcVar30 = (code *******)0x0;\n                pppppppcVar29 = param_4;\n                local_d8 = (code *******)FUN_00047a44(&local_b4);\n                unaff_s8 = local_d8;\n                if (local_d8 == (code *******)0x0) {\n                  if (((uint)unaff_s7[0xd] & 0x2000000) == 0) {\n                    pppppppcVar29 = param_4;\n                    bVar1 = false;\n                  }\n                  else {\n                    pppppppcVar29 = param_4;\n                    local_d8 = (code *******)FUN_00052d84(&local_b4);\n                    unaff_s8 = local_d8;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055dbc;\n                    bVar1 = false;\n                  }\n                  goto LAB_00054d50;\n                }\n              }\nLAB_00055dbc:\n              if (unaff_s8 == (code *******)0xffffffff) {\nLAB_00055b04:\n                FUN_0004b7e8(&local_b4);\nLAB_00055b1c:\n                local_dc = (code *******)((int)pppppppcVar24 + (int)local_dc);\n                if ((int)pppppppcVar25 <= (int)local_dc) goto code_r0x00055b38;\n                local_150 = (code *******)0x1;\n                goto LAB_000557e4;\n              }\n              if (unaff_s8 == (code *******)&SUB_fffffffe) {\n                local_150 = (code *******)0xc;\n                goto LAB_000557e4;\n              }\n              local_58 = unaff_s8;\n              if (((uint)param_1[7] & 0x8000000) == 0) {\n                if (pppppppcVar3 < (code *******)0x2) {\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055c08;\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                else {\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                if (pppppppcVar3 < (code *******)0x2) {\nLAB_00055c6c:\n                  pppppppcVar28 = pppppppcVar33;\n                  unaff_s4 = local_60;\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055548;\n                }\n                else {\n                  cVar23 = *(code *)(pppppppcVar38 + 0x16);\nLAB_00055c20:\n                  pppppppcVar28 = pppppppcVar33;\n                  if (-1 < (char)cVar23) goto LAB_00055c6c;\n                }\n                pppppppcVar31 = local_54;\n                pppppppcVar42 = local_60;\n                unaff_s4 = pppppppcVar42;\n                if (unaff_s8 < (code *******)0x3fffffff) {\n                  param_4 = (code *******)((int)((int)unaff_s8 + 1) * 4);\n                  unaff_s5 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                  if (unaff_s5 == (code *******)0x0) {\nLAB_00055b9c:\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    local_150 = (code *******)0xc;\n                    pppppppcVar33 = pppppppcVar28;\n                  }\n                  else {\n                    pppppppcVar29 = (code *******)&local_d0;\n                    if (pppppppcVar42[0x13] == (code ******)0x0) {\n                      local_cc = (code *******)0x0;\n                      local_c8 = pppppppcVar31;\n                      local_c0 = 0;\n                      local_bc = 0;\n                      local_b8 = 0;\n                      local_d0 = unaff_s5;\n                      local_c4 = unaff_s8;\n                      param_5 = (code *******)FUN_0005421c(&local_b4);\n                      (*(code *)PTR_free_00079c24)(local_b8);\n                      if (param_5 == (code *******)0x0) {\n                        param_4 = (code *******)*unaff_s5;\n                        if (param_4 == (code *******)0x0) {\nLAB_00055b70:\n                          (*(code *)PTR_free_00079c24)(unaff_s5);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          pppppppcVar33 = pppppppcVar28;\n                          goto LAB_00055b04;\n                        }\nLAB_00055528:\n                        (*(code *)PTR_free_00079c24)(local_50);\n                        pppppppcVar33 = pppppppcVar28;\n                        unaff_s4 = pppppppcVar42;\n                        local_58 = unaff_s8;\n                        local_54 = pppppppcVar31;\n                        local_50 = unaff_s5;\n                        goto LAB_00055548;\n                      }\nLAB_00055acc:\n                      param_4 = (code *******)0x0;\n                      pppppppcVar33 = pppppppcVar28;\n                      unaff_s4 = pppppppcVar42;\n                    }\n                    else {\n                      param_4 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                      if (param_4 == (code *******)0x0) goto LAB_00055b9c;\n                      unaff_s7 = (code *******)&local_d0;\n                      pcVar8 = (code *)(PTR_DAT_000799a4 + 0x421c);\n                      pcVar9 = (code *)(PTR_DAT_000799a4 + -0x6bc0);\n                      pppppppcVar33 = pppppppcVar28;\n                      while( true ) {\n                        pppppppcVar28 = (code *******)((int)unaff_s8 + 1);\n                        param_6 = (code *******)((int)pppppppcVar28 * 4);\n                        pppppppcVar30 = param_6;\n                        (*(code *)PTR_memset_00079b00)(param_4,0);\n                        local_c0 = 0;\n                        local_bc = 0;\n                        local_b8 = 0;\n                        pppppppcVar29 = unaff_s7;\n                        local_d0 = unaff_s5;\n                        local_cc = param_4;\n                        local_c8 = pppppppcVar31;\n                        local_c4 = unaff_s8;\n                        param_5 = (code *******)(*pcVar8)(&local_b4);\n                        (*(code *)PTR_free_00079c24)(local_b8);\n                        unaff_s4 = pppppppcVar28;\n                        if (param_5 != (code *******)0x0) break;\n                        if ((*unaff_s5 != (code ******)0x0) ||\n                           (param_6 = param_6 + -1, *param_4 != (code ******)0x0)) {\n                          pppppppcVar29 = unaff_s5;\n                          pppppppcVar30 = param_4;\n                          param_5 = (code *******)FUN_000520d0(pppppppcVar42);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          if (param_5 != (code *******)0x0) goto LAB_00055acc;\n                          goto LAB_00055528;\n                        }\n                        param_6 = (code *******)((int)local_50 + (int)param_6);\n                        do {\n                          while( true ) {\n                            unaff_s8 = (code *******)((int)unaff_s8 + -1);\n                            if ((int)unaff_s8 < 0) goto LAB_00055b70;\n                            pppppppcVar29 = (code *******)param_6[-1];\n                            if (pppppppcVar29 != (code *******)0x0) break;\n                            param_6 = param_6 + -1;\n                          }\n                          param_6 = param_6 + -1;\n                        } while (((uint)pppppppcVar29[0xd] & 0x8000000) == 0);\n                        pppppppcVar31 = (code *******)(*pcVar9)(&local_b4,pppppppcVar29,unaff_s8);\n                        pppppppcVar33 = pppppppcVar28;\n                      }\n                    }\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    (*(code *)PTR_free_00079c24)(param_4);\n                    local_150 = param_5;\n                    if (param_5 == (code *******)0x1) goto LAB_00055b04;\n                  }\n                }\n                else {\n                  local_150 = (code *******)0xc;\n                  pppppppcVar33 = pppppppcVar28;\n                }\n                goto LAB_000557e4;\n              }\n              if (pppppppcVar38[0x13] != (code ******)0x0) {\n                pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                pppppppcVar30 = unaff_s8;\n                local_54 = (code *******)FUN_00049440(&local_b4);\n                goto LAB_00055c6c;\n              }\nLAB_00055c08:\n              if ((((uint)param_1[7] & 0x8000000) == 0) && ((code *******)0x1 < pppppppcVar3)) {\n                cVar23 = *(code *)(pppppppcVar38 + 0x16);\n                goto LAB_00055c20;\n              }\nLAB_00055548:\n              if (pppppppcVar3 == (code *******)0x0) goto LAB_000557e4;\n              if (pppppppcVar3 < (code *******)0x2) {\n                *param_8 = (code ******)0x0;\n                param_8[1] = (code ******)local_58;\n                goto LAB_000555ac;\n              }\n              pppppppcVar29 = param_8 + 2;\n              do {\n                pppppppcVar29[1] = (code ******)0xffffffff;\n                *pppppppcVar29 = (code ******)0xffffffff;\n                pppppppcVar29 = pppppppcVar29 + 2;\n              } while (pppppppcVar29 != param_8 + (int)pppppppcVar3 * 2);\n              *param_8 = (code ******)0x0;\n              param_8[1] = (code ******)local_58;\n              if (((uint)param_1[7] & 0x8000000) != 0) {\nLAB_000555ac:\n                pppppppcVar33 = param_8;\n                do {\n                  pppppppcVar29 = (code *******)*pppppppcVar33;\n                  if (pppppppcVar29 != (code *******)0xffffffff) {\n                    if (local_68 != '\0') {\n                      pppppppcVar34 = local_94;\n                      if (pppppppcVar29 != local_98) {\n                        pppppppcVar34 = *(code ********)(local_a8 + (int)pppppppcVar29 * 4);\n                      }\n                      *pppppppcVar33 = (code ******)pppppppcVar34;\n                      pppppppcVar29 = local_94;\n                      if (local_98 != (code *******)pppppppcVar33[1]) {\n                        pppppppcVar29 = *(code ********)(local_a8 + (int)pppppppcVar33[1] * 4);\n                      }\n                      pppppppcVar33[1] = (code ******)pppppppcVar29;\n                    }\n                    *pppppppcVar33 = (code ******)((int)local_dc + (int)*pppppppcVar33);\n                    pppppppcVar29 = (code *******)((int)local_dc + (int)pppppppcVar33[1]);\n                    pppppppcVar33[1] = (code ******)pppppppcVar29;\n                  }\n                  pppppppcVar33 = pppppppcVar33 + 2;\n                } while (pppppppcVar33 != param_8 + (int)pppppppcVar3 * 2);\n                if (0 < local_118) {\n                  pppppppcVar33 = param_8 + (int)pppppppcVar3 * 2;\n                  do {\n                    *pppppppcVar33 = (code ******)0xffffffff;\n                    pppppppcVar33[1] = (code ******)0xffffffff;\n                    pppppppcVar33 = pppppppcVar33 + 2;\n                  } while (pppppppcVar33 != param_8 + (int)param_7 * 2);\n                }\n                pppppppcVar30 = local_dc;\n                pppppppcVar33 = param_8;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar38[0x21] != (code ******)0x0) {\n                  pppppppcVar30 = (code *******)((int)pppppppcVar3 + -1);\n                  pppppppcVar34 = (code *******)0x0;\n                  pppppppcVar3 = param_8;\n                  while( true ) {\n                    pppppppcVar29 = (code *******)((int)pppppppcVar34 * 4);\n                    if (pppppppcVar30 == pppppppcVar34) break;\n                    if (*(code ********)((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) !=\n                        pppppppcVar34) {\n                      pppppppcVar3[2] =\n                           param_8[(int)((int)*(code ********)\n                                               ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1)\n                                   * 2];\n                      pppppppcVar3[3] =\n                           param_8[((int)*(code ******)\n                                          ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1) * 2 +\n                                   1];\n                    }\n                    pppppppcVar34 = (code *******)((int)pppppppcVar34 + 1);\n                    pppppppcVar3 = pppppppcVar3 + 2;\n                  }\n                }\n                goto LAB_000557e4;\n              }\n              if ((char)*(code *)(pppppppcVar38 + 0x16) < '\0') {\n                local_168 = (uint)(0 < (int)pppppppcVar38[0x13]);\n              }\n              else {\n                local_168 = 0;\n              }\n              pppppppcVar29 = &local_b4;\n              pppppppcVar30 = pppppppcVar3;\n              pppppppcVar33 = param_8;\n              local_150 = (code *******)FUN_0004f4a0(param_1);\n              if (local_150 == (code *******)0x0) goto LAB_000555ac;\n            }\n          }\n          else if (local_90 < 0x3fffffff) {\n            local_50 = (code *******)(*(code *)PTR_malloc_00079b54)((local_90 + 1) * 4);\n            if (local_50 != (code *******)0x0) goto LAB_00055a40;\n            local_150 = (code *******)0xc;\n            param_6 = pppppppcVar36;\n          }\n          else {\n            local_150 = (code *******)0xc;\n            param_6 = pppppppcVar36;\n          }\n        }\n        else {\n          unaff_s5 = (code *******)((int)ppppppcVar35 * 8);\n          if (pppppppcVar36 < (code *******)0xccccccd) {\n            unaff_s4 = (code *******)(*(code *)PTR_malloc_00079b54)((int)ppppppcVar35 * 0x28);\n            local_40 = unaff_s4;\n            local_30 = (*(code *)PTR_malloc_00079b54)(unaff_s5);\n            if ((unaff_s4 != (code *******)0x0) && (local_30 != 0)) goto LAB_000559f0;\n          }\n          local_150 = (code *******)0xc;\n          param_6 = pppppppcVar36;\n        }\nLAB_000557e4:\n        (*(code *)PTR_free_00079c24)(local_50);\n        param_1 = pppppppcVar30;\n        if (pppppppcVar38[0x13] != (code ******)0x0) {\n          FUN_0004b7e8(&local_b4);\n          (*(code *)PTR_free_00079c24)(local_30);\n          (*(code *)PTR_free_00079c24)(local_40);\n          param_1 = pppppppcVar30;\n        }\n        FUN_0004b2bc(&local_b4);\n        pppppppcStack_1a0 = param_4;\n        pppppppcStack_19c = pppppppcVar31;\n      }\n    }\n  }\n  if (local_2c == *(code ********)PTR___stack_chk_guard_00079c10) {\n    return local_150;\n  }\n  pcVar4 = FUN_00055e64;\n  pppppppcVar3 = local_2c;\n  puVar41 = PTR___stack_chk_fail_00079bd0;\n  (*(code *)PTR___stack_chk_fail_00079bd0)();\n  iStack_1a4 = **(int **)(puVar41 + 0x23dac);\n  pppppppcStack_20c = (code *******)0x0;\n  pppppppcVar3[3] = (code ******)pppppppcVar33;\n  pppppppcVar3[2] = (code ******)0x0;\n  pppppppcVar3[6] = (code ******)0x0;\n  *(byte *)(pppppppcVar3 + 7) = (byte)*(code *)(pppppppcVar3 + 7) & 9;\n  pppppppcVar34 = (code *******)*pppppppcVar3;\n  pppppppcStack_198 = param_5;\n  pppppppcStack_194 = param_6;\n  pppppppcStack_190 = unaff_s4;\n  pppppppcStack_18c = unaff_s5;\n  pppppppcStack_188 = pppppppcVar38;\n  pppppppcStack_184 = unaff_s7;\n  pppppppcStack_180 = unaff_s8;\n  pcStack_17c = pcVar4;\n  if (pppppppcVar3[1] < (code ******)0xa0) {\n    pppppppcVar38 = (code *******)0xa0;\n    pppppppcVar31 = param_1;\n    pppppppcVar34 = (code *******)(**(code **)(puVar41 + 0x23cf8))(pppppppcVar34,0xa0);\n    if (pppppppcVar34 == (code *******)0x0) {\n      pppppppcVar29 = (code *******)0xc;\n      goto LAB_00056cfc;\n    }\n    pppppppcVar3[1] = (code ******)0xa0;\n    *pppppppcVar3 = (code ******)pppppppcVar34;\n  }\n  pppppppcVar3[2] = (code ******)0xa0;\n  pppppppcVar31 = (code *******)0xa0;\n  pppppppcVar38 = (code *******)0x0;\n  (**(code **)(puVar41 + 0x23c9c))(pppppppcVar34,0);\n  pppppppcVar34[0x10] = (code ******)0x1f;\n  if (param_1 < (code *******)0xaaaaaaa) {\n    pppppppcVar34[1] = (code ******)((int)param_1 + 1);\n    ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23cf0))(((int)param_1 + 1) * 8);\n    *pppppppcVar34 = ppppppcVar32;\n    if (param_1 == (code *******)0x0) {\n      pppppppcVar30 = (code *******)0x1;\n    }\n    else {\n      pppppppcVar30 = (code *******)0x1;\n      do {\n        pppppppcVar30 = (code *******)((int)pppppppcVar30 << 1);\n      } while (pppppppcVar30 <= param_1);\n    }\n    pppppppcVar38 = pppppppcVar30;\n    ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23b8c))(0xc,pppppppcVar30);\n    pppppppcVar34[8] = ppppppcVar32;\n    pppppppcVar34[0x11] = (code ******)((int)pppppppcVar30 + -1);\n    ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23d2c))();\n    pppppppcVar34[0x17] = ppppppcVar32;\n    pbVar17 = (byte *)(**(code **)(puVar41 + 0x23c2c))(0xe);\n    if ((((*pbVar17 & 0xdf) == 0x55) && ((pbVar17[1] & 0xdf) == 0x54)) &&\n       (pppppppcVar38 = (code *******)0x4, (pbVar17[2] & 0xdf) == 0x46)) {\n      iVar18 = 3;\n      if (pbVar17[3] == 0x2d) {\n        iVar18 = 4;\n      }\n      pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23754) + 0x71b4);\n      iVar18 = (**(code **)(puVar41 + 0x23dfc))(pbVar17 + iVar18,pppppppcVar38);\n      if (iVar18 == 0) {\n        *(byte *)(pppppppcVar34 + 0x16) = (byte)*(code *)(pppppppcVar34 + 0x16) & 0xdf | 0x20;\n      }\n    }\n    *(byte *)(pppppppcVar34 + 0x16) = (byte)*(code *)(pppppppcVar34 + 0x16) & 0xef;\n    if (1 < (int)pppppppcVar34[0x17]) {\n      if (((uint)pppppppcVar34[0x16] & 0x20000000) == 0) {\n        pppppppcVar38 = (code *******)0x1;\n        ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23b8c))(0x20,1);\n        pppppppcVar34[0xf] = ppppppcVar32;\n        if (ppppppcVar32 == (code ******)0x0) goto LAB_00056e5c;\n        iVar18 = 0;\n        do {\n          uVar16 = iVar18 << 3;\n          uVar7 = 0;\n          do {\n            uVar19 = (**(code **)(puVar41 + 0x23c88))(uVar16);\n            if (uVar19 != 0xffffffff) {\n              pppppppcVar38 = *(code ********)((int)pppppppcVar34[0xf] + iVar18);\n              *(uint *)((int)pppppppcVar34[0xf] + iVar18) =\n                   (uint)pppppppcVar38 | 1 << (uVar7 & 0x1f);\n            }\n            if (((uVar16 & 0xffffff80) == 0) && (uVar19 != uVar16)) {\n              *(byte *)(pppppppcVar34 + 0x16) = (byte)*(code *)(pppppppcVar34 + 0x16) & 0xef | 0x10;\n            }\n            uVar7 = uVar7 + 1;\n            uVar16 = uVar16 + 1;\n          } while (uVar7 != 0x20);\n          iVar18 = iVar18 + 4;\n        } while (iVar18 != 0x20);\n      }\n      else {\n        pppppppcVar34[0xf] = (code ******)(*(int *)(puVar41 + 0x23754) + 0x6ee4);\n      }\n    }\n    if ((*pppppppcVar34 == (code ******)0x0) || (pppppppcVar34[8] == (code ******)0x0))\n    goto LAB_00056e5c;\n    pppppppcStack_20c = (code *******)0x0;\n    if (*(int *)(puVar41 + 0x23c78) == 0) {\nLAB_00056054:\n      ppppppcVar32 = pppppppcVar3[5];\n      uVar16 = (uint)pppppppcVar33 & 0x400000;\n      bVar1 = uVar16 != 0;\n      pppppppcVar31 = (code *******)0x4c;\n      pppppppcVar38 = (code *******)0x0;\n      (**(code **)(puVar41 + 0x23c9c))(apppppppcStack_1f4,0);\n      cStack_1ad = ppppppcVar32 != (code ******)0x0 || bVar1;\n      ppppppcStack_1a8 = pppppppcVar34[0x17];\n      bStack_1af = (byte)((uint)((int)pppppppcVar34[0x16] << 2) >> 0x1f);\n      bStack_1ae = (byte)((uint)((int)pppppppcVar34[0x16] << 3) >> 0x1f);\n      pppppppcStack_1f8 = pppppppcVar29;\n      pppppppcStack_1cc = param_1;\n      pppppppcStack_1c8 = param_1;\n      pppppppcStack_1c4 = param_1;\n      pppppppcStack_1c0 = param_1;\n      ppppppcStack_1b8 = ppppppcVar32;\n      uStack_1b0 = bVar1;\n      if (0 < (int)param_1) {\n        pppppppcVar38 = (code *******)((int)param_1 + 1);\n        pppppppcVar30 = (code *******)FUN_00046d2c(&pppppppcStack_1f8,pppppppcVar38);\n        if (pppppppcVar30 == (code *******)0x0) goto LAB_000560cc;\n        goto LAB_00056168;\n      }\nLAB_000560cc:\n      if (cStack_1ad != '\0') {\n        pppppppcVar29 = apppppppcStack_1f4[0];\n      }\n      apppppppcStack_1f4[0] = pppppppcVar29;\n      if (uVar16 == 0) {\n        if ((int)pppppppcVar34[0x17] < 2) {\n          if (ppppppcVar32 != (code ******)0x0) {\n            FUN_00045dc8();\n          }\n        }\n        else {\n          FUN_00047cb0(&pppppppcStack_1f8);\n        }\n      }\n      else {\n        if (1 < (int)pppppppcVar34[0x17]) {\n          iVar18 = *(int *)(puVar41 + 0x23abc);\n          do {\n            pppppppcVar30 = (code *******)FUN_00048714(&pppppppcStack_1f8);\n            if (pppppppcVar30 != (code *******)0x0) break;\n            if (((int)param_1 <= iStack_1d8) ||\n               (pppppppcVar38 = (code *******)(iStack_1d4 << 1),\n               (int)pppppppcVar34[0x17] + iStack_1dc < iStack_1d4)) goto LAB_000563d0;\n            pppppppcVar30 =\n                 (code *******)(*(code *)(iVar18 + 0x6d2c))(&pppppppcStack_1f8,pppppppcVar38);\n          } while (pppppppcVar30 == (code *******)0x0);\n          goto LAB_00056168;\n        }\n        FUN_00047be4(&pppppppcStack_1f8);\n      }\nLAB_000563d0:\n      pppppppcStack_20c = (code *******)0x0;\n      pppppppcVar3[6] = (code ******)0x0;\n      ppppppcVar32 = *pppppppcVar3;\n      ppppppcVar32[0x20] = (code *****)pppppppcVar33;\n      FUN_00049e40(&ppppppcStack_204,&pppppppcStack_1f8,(uint)pppppppcVar33 | 0x800000);\n      pppppppcVar38 = pppppppcVar3;\n      pppppppcVar29 =\n           (code *******)\n           FUN_00051868(&pppppppcStack_1f8,pppppppcVar3,&ppppppcStack_204,pppppppcVar33,0,\n                        &pppppppcStack_20c);\n      if (pppppppcStack_20c == (code *******)0x0) {\n        pppppppcVar31 = (code *******)0x0;\n        pppppppcVar38 = (code *******)0x0;\n        pppppppcVar33 = (code *******)FUN_000470f0(ppppppcVar32,0,0,2);\n        pppppppcVar30 = pppppppcVar33;\n        if (pppppppcVar29 != (code *******)0x0) {\nLAB_000564b0:\n          pppppppcVar31 = pppppppcVar33;\n          pppppppcVar30 = (code *******)FUN_000470f0(ppppppcVar32,pppppppcVar29,pppppppcVar33,0x10);\n          pppppppcVar38 = pppppppcVar29;\n        }\n        if ((pppppppcVar33 == (code *******)0x0) ||\n           (pcVar4 = *(code **)(puVar41 + 0x23cf0), pppppppcVar30 == (code *******)0x0)) {\n          pppppppcStack_20c = (code *******)0xc;\n          goto LAB_000566f4;\n        }\n        pppppppcVar34[0xd] = (code ******)pppppppcVar30;\n        pppppppcVar29 = (code *******)*pppppppcVar3;\n        ppppppcVar39 = pppppppcVar29[1];\n        iVar18 = (int)ppppppcVar39 << 2;\n        ppppppcVar32 = (code ******)(*pcVar4)(iVar18);\n        pppppppcVar29[3] = ppppppcVar32;\n        ppppppcVar35 = (code ******)(**(code **)(puVar41 + 0x23cf0))(iVar18);\n        pppppppcVar29[4] = ppppppcVar35;\n        iVar18 = (int)ppppppcVar39 * 0xc;\n        ppppppcVar39 = (code ******)(**(code **)(puVar41 + 0x23cf0))(iVar18);\n        pppppppcVar29[5] = ppppppcVar39;\n        ppppppcVar20 = (code ******)(**(code **)(puVar41 + 0x23cf0))(iVar18);\n        pppppppcVar29[6] = ppppppcVar20;\n        if (ppppppcVar32 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else if (ppppppcVar35 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else if (ppppppcVar39 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else if (ppppppcVar20 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else {\n          ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23cf0))((int)pppppppcVar3[6] << 2);\n          pppppppcVar29[0x21] = ppppppcVar32;\n          if (ppppppcVar32 != (code ******)0x0) {\n            ppppppcVar32 = (code ******)0x0;\n            if (pppppppcVar3[6] != (code ******)0x0) {\n              do {\n                pppppppcVar29[0x21][(int)ppppppcVar32] = (code *****)ppppppcVar32;\n                ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n              } while (ppppppcVar32 < pppppppcVar3[6]);\n            }\n            FUN_00046050(pppppppcVar29[0xd],*(int *)(puVar41 + 0x23abc) + 0x60e8,pppppppcVar29);\n            ppppppcVar32 = pppppppcVar3[6];\n            if (ppppppcVar32 == (code ******)0x0) {\nLAB_00056704:\n              (**(code **)(puVar41 + 0x23dc0))(pppppppcVar29[0x21]);\n              pppppppcVar29[0x21] = (code ******)0x0;\n            }\n            else {\n              ppppppcVar35 = pppppppcVar29[0x21];\n              if (*ppppppcVar35 == (code *****)0x0) {\n                ppppppcVar39 = (code ******)0x0;\n                do {\n                  ppppppcVar35 = ppppppcVar35 + 1;\n                  ppppppcVar39 = (code ******)((int)ppppppcVar39 + 1);\n                  if (ppppppcVar32 == ppppppcVar39) {\n                    if (ppppppcVar32 == ppppppcVar39) goto LAB_00056704;\n                    break;\n                  }\n                } while ((code ******)*ppppppcVar35 == ppppppcVar39);\n              }\n            }\n          }\n          pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23abc) + 0x73a4);\n          pppppppcVar30 = (code *******)FUN_00045fb4(pppppppcVar29[0xd],pppppppcVar38,pppppppcVar3);\n          pppppppcVar31 = pppppppcVar29;\n          if (pppppppcVar30 == (code *******)0x0) {\n            pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23b40) + -0x5be4);\n            pppppppcVar30 = (code *******)FUN_00045fb4(pppppppcVar29[0xd],pppppppcVar38);\n            if (pppppppcVar30 == (code *******)0x0) {\n              FUN_00046050(pppppppcVar29[0xd],*(int *)(puVar41 + 0x23abc) + 0x61b4);\n              pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23b40) + -0x4614);\n              pppppppcVar30 = (code *******)FUN_00046050(pppppppcVar29[0xd],pppppppcVar38);\n              if (pppppppcVar30 == (code *******)0x0) {\n                uVar7 = 0;\n                iVar18 = *(int *)(puVar41 + 0x23b40);\n                pppppppcVar33 = (code *******)0x0;\nLAB_00056744:\n                if ((code *******)pppppppcVar29[2] != pppppppcVar33) {\nLAB_00056750:\n                  if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                    pppppppcVar38 = pppppppcVar29;\n                    pppppppcVar31 = pppppppcVar33;\n                    pppppppcVar30 =\n                         (code *******)\n                         (*(code *)(iVar18 + -0x561c))\n                                   (&ppppppcStack_204,pppppppcVar29,pppppppcVar33,1);\n                    if (pppppppcVar30 != (code *******)0x0) goto LAB_00056168;\n                    if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                      (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                      uVar7 = 1;\n                    }\n                  }\n                  pppppppcVar33 = (code *******)((int)pppppppcVar33 + 1);\n                  goto LAB_00056744;\n                }\n                if (uVar7 != 0) {\n                  uVar7 = 0;\n                  pppppppcVar33 = (code *******)0x0;\n                  goto LAB_00056750;\n                }\n                if (((((uint)pppppppcVar3[7] & 0x8000000) == 0) &&\n                    (pppppppcVar3[6] != (code ******)0x0)) &&\n                   ((char)*(code *)(pppppppcVar29 + 0x16) < '\0')) {\n                  ppppppcVar32 = pppppppcVar29[2];\n                }\n                else {\n                  if (pppppppcVar29[0x13] == (code ******)0x0) goto LAB_000568f0;\n                  ppppppcVar32 = pppppppcVar29[2];\n                }\n                ppppppcVar35 = (code ******)\n                               (**(code **)(puVar41 + 0x23cf0))((int)ppppppcVar32 * 0xc);\n                pppppppcVar29[7] = ppppppcVar35;\n                if (ppppppcVar35 == (code ******)0x0) {\n                  pppppppcVar30 = (code *******)0xc;\n                  goto LAB_00056168;\n                }\n                if (ppppppcVar32 != (code ******)0x0) {\n                  iVar18 = 0;\n                  ppppppcVar32 = (code ******)0x0;\n                  do {\n                    puVar21 = (undefined1 *)((int)pppppppcVar29[7] + iVar18);\n                    *puVar21 = 0;\n                    puVar21[1] = 0;\n                    puVar21[2] = 0;\n                    puVar21[3] = 0;\n                    puVar21[4] = 0;\n                    puVar21[5] = 0;\n                    puVar21[6] = 0;\n                    puVar21[7] = 0;\n                    puVar21[8] = 0;\n                    puVar21[9] = 0;\n                    puVar21[10] = 0;\n                    puVar21[0xb] = 0;\n                    ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                    iVar18 = iVar18 + 0xc;\n                  } while (ppppppcVar32 < pppppppcVar29[2]);\n                  iVar18 = *(int *)(puVar41 + 0x23abc);\n                  if (pppppppcVar29[2] != (code ******)0x0) {\n                    iVar43 = 0;\n                    pppppppcStack_218 = (code *******)0x0;\n                    do {\n                      piVar5 = *(int **)((int)pppppppcVar29[6] + iVar43 + 8);\n                      if (0 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4)) {\n                        iVar37 = 0;\n                        do {\n                          pppppppcVar38 = pppppppcStack_218;\n                          iVar22 = (*(code *)(iVar18 + 0x6e30))\n                                             (pppppppcVar29[7] + *piVar5 * 3,pppppppcStack_218);\n                          pppppppcVar30 = (code *******)0xc;\n                          if (iVar22 == 0) goto LAB_00056168;\n                          iVar37 = iVar37 + 1;\n                          piVar5 = piVar5 + 1;\n                        } while (iVar37 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4));\n                      }\n                      pppppppcStack_218 = (code *******)((int)pppppppcStack_218 + 1);\n                      iVar43 = iVar43 + 0xc;\n                    } while (pppppppcStack_218 < pppppppcVar29[2]);\n                  }\n                }\nLAB_000568f0:\n                pppppppcStack_20c = (code *******)0x0;\n                if (((((uint)pppppppcVar34[0x16] & 0x20000000) != 0) && (uVar16 == 0)) &&\n                   (pppppppcVar3[5] == (code ******)0x0)) {\n                  if (pppppppcVar34[2] != (code ******)0x0) {\n                    pppppppcVar31 = (code *******)(*(int *)(puVar41 + 0x23754) + 0x6e4c);\n                    if (*(byte *)(*pppppppcVar34 + 1) < 0xd) {\n                    /* WARNING: Could not recover jumptable at 0x00056a60. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      pppppppcVar29 =\n                           (code *******)\n                           (*(code *)(puVar41 +\n                                     (int)(pppppppcVar31[*(byte *)(*pppppppcVar34 + 1)] + 0xadc7)))\n                                     ();\n                      return pppppppcVar29;\n                    }\n                    (**(code **)(puVar41 + 0x23bc4))(0);\n                    if (uVar7 != 0) {\n                      pppppppcVar31 = (code *******)&DAT_00000007;\n                      ppppppcVar32 = (code ******)0x0;\n                      do {\n                        ppppppcVar35 = *pppppppcVar34 + (int)ppppppcVar32 * 2;\n                        if (*(char *)(ppppppcVar35 + 1) == '\x01') {\n                          if (*(char *)ppppppcVar35 < '\0') {\n                            ppppppcVar35[1] = (code *****)((uint)ppppppcVar35[1] & 0xfffffbff);\n                          }\n                        }\n                        else if (*(char *)(ppppppcVar35 + 1) == '\x05') {\n                          *(char *)(ppppppcVar35 + 1) = '\a';\n                        }\n                        ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                      } while (ppppppcVar32 < pppppppcVar34[2]);\n                    }\n                  }\n                  pppppppcVar34[0x17] = (code ******)0x1;\n                  if (0 < (int)pppppppcVar34[0x13]) {\n                    uVar7 = 1;\n                  }\n                  *(byte *)(pppppppcVar34 + 0x16) =\n                       (byte)*(code *)(pppppppcVar34 + 0x16) & 0x9f | (byte)((uVar7 & 1) << 6);\n                }\n                ppppppcVar32 = (code ******)pppppppcVar34[0xd][3][7];\n                pppppppcVar34[0x12] = ppppppcVar32;\n                pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppppcVar32 * 3);\n                pppppppcVar33 = (code *******)FUN_000483e8(&ppppppcStack_204,pppppppcVar38);\n                pppppppcVar29 = pppppppcVar33;\n                pppppppcStack_208 = pppppppcVar33;\n                if (pppppppcVar33 == (code *******)0x0) {\n                  if ((0 < (int)pppppppcVar34[0x13]) && (0 < iStack_200)) {\n                    iVar18 = *(int *)(puVar41 + 0x23abc);\n                    iVar43 = *(int *)(puVar41 + 0x23abc);\n                    pppppppcVar29 = (code *******)0x0;\n                    do {\n                      pppppppcVar31 =\n                           (code *******)(*pppppppcVar34 + piStack_1fc[(int)pppppppcVar29] * 2);\n                      if (*(code *)(pppppppcVar31 + 1) == (code)0x4) {\n                        iVar37 = 0;\n                        piVar5 = piStack_1fc;\n                        if (iStack_200 < 1) {\nLAB_00056b8c:\n                          if (iStack_200 != iVar37) {\n                            ppppcVar40 = *pppppppcVar34[5][piStack_1fc[(int)pppppppcVar29] * 3 + 2];\n                            iVar37 = (*(code *)(iVar18 + 0x5ea8))(&ppppppcStack_204,ppppcVar40);\n                            if (iVar37 == 0) {\n                              pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppcVar40 * 3)\n                              ;\n                              pppppppcVar29 =\n                                   (code *******)\n                                   (*(code *)(iVar43 + 0x7f1c))(&ppppppcStack_204,pppppppcVar38);\n                              if (pppppppcVar29 != (code *******)0x0) goto LAB_00056cb8;\n                            }\n                          }\n                        }\n                        else {\n                          do {\n                            ppppppcVar32 = *pppppppcVar34 + *piVar5 * 2;\n                            if ((*(char *)(ppppppcVar32 + 1) == '\t') &&\n                               ((code ******)*ppppppcVar32 == *pppppppcVar31)) goto LAB_00056b8c;\n                            iVar37 = iVar37 + 1;\n                            piVar5 = piVar5 + 1;\n                          } while (iStack_200 != iVar37);\n                        }\n                      }\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1);\n                    } while ((int)pppppppcVar29 < iStack_200);\n                  }\n                  pppppppcVar31 = &ppppppcStack_204;\n                  pppppppcVar38 = pppppppcVar34;\n                  ppppppcVar32 = (code ******)\n                                 FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,0);\n                  pppppppcVar34[9] = ppppppcVar32;\n                  pppppppcVar29 = pppppppcStack_208;\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    if (((uint)ppppppcVar32[0xd] & 0x1000000) == 0) {\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar34[10] = ppppppcVar32;\n                    }\n                    else {\n                      pppppppcVar31 = &ppppppcStack_204;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,1);\n                      pppppppcVar34[10] = ppppppcVar32;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,2);\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar38 = pppppppcVar34;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,6);\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar29 = pppppppcStack_208;\n                      if (((pppppppcVar34[10] == (code ******)0x0) ||\n                          (pppppppcVar34[0xb] == (code ******)0x0)) ||\n                         (ppppppcVar32 == (code ******)0x0)) goto LAB_00056cb8;\n                    }\n                    (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                    pppppppcVar29 = pppppppcVar33;\n                  }\n                }\nLAB_00056cb8:\n                pppppppcStack_20c = pppppppcVar29;\n                FUN_0004b234(pppppppcVar3);\n                FUN_0004b2bc(&pppppppcStack_1f8);\n                pppppppcVar29 = pppppppcStack_20c;\n                if (pppppppcStack_20c != (code *******)0x0) {\n                  if (*(int *)(puVar41 + 0x23c78) != 0) {\n                    (**(code **)(puVar41 + 0x23df0))(pppppppcVar34 + 0x22);\n                  }\n                  FUN_0004b338(pppppppcVar34);\n                  *pppppppcVar3 = (code ******)0x0;\n                  pppppppcVar3[1] = (code ******)0x0;\n                  pppppppcVar29 = pppppppcStack_20c;\n                }\n                goto LAB_00056cfc;\n              }\n            }\n          }\n        }\n      }\n      else {\n        pppppppcVar31 = (code *******)0x0;\n        if (pppppppcVar29 != (code *******)0x0) {\n          pppppppcVar33 = (code *******)FUN_000470f0(ppppppcVar32,0,0,2);\n          goto LAB_000564b0;\n        }\nLAB_000566f4:\n        pppppppcVar34[0xd] = (code ******)0x0;\n        pppppppcVar30 = pppppppcStack_20c;\n      }\nLAB_00056168:\n      pppppppcStack_20c = pppppppcVar30;\n      FUN_0004b234(pppppppcVar3);\n      FUN_0004b2bc(&pppppppcStack_1f8);\n      if (*(int *)(puVar41 + 0x23c78) != 0) {\n        (**(code **)(puVar41 + 0x23df0))(pppppppcVar34 + 0x22);\n      }\n      FUN_0004b338(pppppppcVar34);\n      *pppppppcVar3 = (code ******)0x0;\n      pppppppcVar3[1] = (code ******)0x0;\n      pppppppcVar29 = pppppppcStack_20c;\n      goto LAB_00056cfc;\n    }\n    pppppppcVar38 = (code *******)0x0;\n    iVar18 = (**(code **)(puVar41 + 0x23d98))(pppppppcVar34 + 0x22,0);\n    if (iVar18 != 0) goto LAB_00056e5c;\n    if (pppppppcStack_20c == (code *******)0x0) goto LAB_00056054;\n  }\n  else {\nLAB_00056e5c:\n    pppppppcStack_20c = (code *******)0xc;\n  }\n  FUN_0004b338(pppppppcVar34);\n  *pppppppcVar3 = (code ******)0x0;\n  pppppppcVar3[1] = (code ******)0x0;\n  pppppppcVar29 = pppppppcStack_20c;\nLAB_00056cfc:\n  if (iStack_1a4 == **(int **)(puVar41 + 0x23dac)) {\n    return pppppppcVar29;\n  }\n  pcVar4 = *(code **)(puVar41 + 0x23d6c);\n  iVar18 = iStack_1a4;\n  (*pcVar4)();\n  *(byte *)(pppppppcVar31 + 7) =\n       (byte)*(code *)(pppppppcVar31 + 7) & 0xf6 |\n       (byte)(((uint)(**(int **)(pcVar4 + 0x22b18) << 6) >> 0x1f) << 3) | 1;\n  iVar18 = FUN_00055e64(pppppppcVar31,iVar18,pppppppcVar38);\n  if (iVar18 == 0) {\n    pppppppcVar29 = (code *******)0x0;\n  }\n  else {\n    pppppppcVar29 =\n         (code *******)\n         (**(code **)(pcVar4 + 0x22d48))\n                   (0,*(int *)(pcVar4 + 0x22728) + 0x6f48 +\n                      *(int *)(iVar18 * 4 + *(int *)(pcVar4 + 0x22728) + 0x6f04),5);\n  }\n  return pppppppcVar29;\ncode_r0x00055b38:\n  if ((int)pppppppcVar26 < (int)local_dc) goto LAB_000557a8;\n  goto LAB_00055b44;\nLAB_000557a8:\n  local_150 = (code *******)0x1;\n  goto LAB_000557e4;\nLAB_00055914:\n  local_150 = (code *******)0xc;\n  param_4 = pppppppcVar14;\n  goto LAB_000557e4;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "code *******pppppppcVar2;" type_identifier (pointer_declarator "*******pppppppcVar2" * (pointer_declarator "******pppppppcVar2" * (pointer_declarator "*****pppppppcVar2" * (pointer_declarator "****pppppppcVar2" * (pointer_declarator "***pppppppcVar2" * (pointer_declarator "**pppppppcVar2" * (pointer_declarator "*pppppppcVar2" * identifier))))))) ;) (declaration "code *******pppppppcVar3;" type_identifier (pointer_declarator "*******pppppppcVar3" * (pointer_declarator "******pppppppcVar3" * (pointer_declarator "*****pppppppcVar3" * (pointer_declarator "****pppppppcVar3" * (pointer_declarator "***pppppppcVar3" * (pointer_declarator "**pppppppcVar3" * (pointer_declarator "*pppppppcVar3" * identifier))))))) ;) (declaration "code *pcVar4;" type_identifier (pointer_declarator "*pcVar4" * identifier) ;) (declaration "int *piVar5;" primitive_type (pointer_declarator "*piVar5" * identifier) ;) (declaration "code *******pppppppcVar6;" type_identifier (pointer_declarator "*******pppppppcVar6" * (pointer_declarator "******pppppppcVar6" * (pointer_declarator "*****pppppppcVar6" * (pointer_declarator "****pppppppcVar6" * (pointer_declarator "***pppppppcVar6" * (pointer_declarator "**pppppppcVar6" * (pointer_declarator "*pppppppcVar6" * identifier))))))) ;) (declaration "uint uVar7;" 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 "code *pcVar11;" type_identifier (pointer_declarator "*pcVar11" * identifier) ;) (declaration "code *pcVar12;" type_identifier (pointer_declarator "*pcVar12" * identifier) ;) (declaration "code *****pppppcVar13;" type_identifier (pointer_declarator "*****pppppcVar13" * (pointer_declarator "****pppppcVar13" * (pointer_declarator "***pppppcVar13" * (pointer_declarator "**pppppcVar13" * (pointer_declarator "*pppppcVar13" * identifier))))) ;) (declaration "code *******pppppppcVar14;" type_identifier (pointer_declarator "*******pppppppcVar14" * (pointer_declarator "******pppppppcVar14" * (pointer_declarator "*****pppppppcVar14" * (pointer_declarator "****pppppppcVar14" * (pointer_declarator "***pppppppcVar14" * (pointer_declarator "**pppppppcVar14" * (pointer_declarator "*pppppppcVar14" * identifier))))))) ;) (declaration "code *******pppppppcVar15;" type_identifier (pointer_declarator "*******pppppppcVar15" * (pointer_declarator "******pppppppcVar15" * (pointer_declarator "*****pppppppcVar15" * (pointer_declarator "****pppppppcVar15" * (pointer_declarator "***pppppppcVar15" * (pointer_declarator "**pppppppcVar15" * (pointer_declarator "*pppppppcVar15" * identifier))))))) ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "code cVar23;" type_identifier identifier ;) (declaration "byte *pbVar17;" type_identifier (pointer_declarator "*pbVar17" * identifier) ;) (declaration "int iVar18;" primitive_type identifier ;) (declaration "uint uVar19;" type_identifier identifier ;) (declaration "code ******ppppppcVar20;" type_identifier (pointer_declarator "******ppppppcVar20" * (pointer_declarator "*****ppppppcVar20" * (pointer_declarator "****ppppppcVar20" * (pointer_declarator "***ppppppcVar20" * (pointer_declarator "**ppppppcVar20" * (pointer_declarator "*ppppppcVar20" * identifier)))))) ;) (declaration "undefined1 *puVar21;" type_identifier (pointer_declarator "*puVar21" * identifier) ;) (declaration "int iVar22;" primitive_type identifier ;) (declaration "code *******pppppppcVar24;" type_identifier (pointer_declarator "*******pppppppcVar24" * (pointer_declarator "******pppppppcVar24" * (pointer_declarator "*****pppppppcVar24" * (pointer_declarator "****pppppppcVar24" * (pointer_declarator "***pppppppcVar24" * (pointer_declarator "**pppppppcVar24" * (pointer_declarator "*pppppppcVar24" * identifier))))))) ;) (declaration "code *******pppppppcVar25;" type_identifier (pointer_declarator "*******pppppppcVar25" * (pointer_declarator "******pppppppcVar25" * (pointer_declarator "*****pppppppcVar25" * (pointer_declarator "****pppppppcVar25" * (pointer_declarator "***pppppppcVar25" * (pointer_declarator "**pppppppcVar25" * (pointer_declarator "*pppppppcVar25" * identifier))))))) ;) (declaration "code *******pppppppcVar26;" type_identifier (pointer_declarator "*******pppppppcVar26" * (pointer_declarator "******pppppppcVar26" * (pointer_declarator "*****pppppppcVar26" * (pointer_declarator "****pppppppcVar26" * (pointer_declarator "***pppppppcVar26" * (pointer_declarator "**pppppppcVar26" * (pointer_declarator "*pppppppcVar26" * identifier))))))) ;) (declaration "uint uVar27;" type_identifier identifier ;) (declaration "code *******pppppppcVar28;" type_identifier (pointer_declarator "*******pppppppcVar28" * (pointer_declarator "******pppppppcVar28" * (pointer_declarator "*****pppppppcVar28" * (pointer_declarator "****pppppppcVar28" * (pointer_declarator "***pppppppcVar28" * (pointer_declarator "**pppppppcVar28" * (pointer_declarator "*pppppppcVar28" * identifier))))))) ;) (declaration "code *******pppppppcVar29;" type_identifier (pointer_declarator "*******pppppppcVar29" * (pointer_declarator "******pppppppcVar29" * (pointer_declarator "*****pppppppcVar29" * (pointer_declarator "****pppppppcVar29" * (pointer_declarator "***pppppppcVar29" * (pointer_declarator "**pppppppcVar29" * (pointer_declarator "*pppppppcVar29" * identifier))))))) ;) (declaration "code *******pppppppcVar30;" type_identifier (pointer_declarator "*******pppppppcVar30" * (pointer_declarator "******pppppppcVar30" * (pointer_declarator "*****pppppppcVar30" * (pointer_declarator "****pppppppcVar30" * (pointer_declarator "***pppppppcVar30" * (pointer_declarator "**pppppppcVar30" * (pointer_declarator "*pppppppcVar30" * identifier))))))) ;) (declaration "code *******pppppppcVar31;" type_identifier (pointer_declarator "*******pppppppcVar31" * (pointer_declarator "******pppppppcVar31" * (pointer_declarator "*****pppppppcVar31" * (pointer_declarator "****pppppppcVar31" * (pointer_declarator "***pppppppcVar31" * (pointer_declarator "**pppppppcVar31" * (pointer_declarator "*pppppppcVar31" * identifier))))))) ;) (declaration "code ******ppppppcVar32;" type_identifier (pointer_declarator "******ppppppcVar32" * (pointer_declarator "*****ppppppcVar32" * (pointer_declarator "****ppppppcVar32" * (pointer_declarator "***ppppppcVar32" * (pointer_declarator "**ppppppcVar32" * (pointer_declarator "*ppppppcVar32" * identifier)))))) ;) (declaration "code *******pppppppcVar33;" type_identifier (pointer_declarator "*******pppppppcVar33" * (pointer_declarator "******pppppppcVar33" * (pointer_declarator "*****pppppppcVar33" * (pointer_declarator "****pppppppcVar33" * (pointer_declarator "***pppppppcVar33" * (pointer_declarator "**pppppppcVar33" * (pointer_declarator "*pppppppcVar33" * identifier))))))) ;) (declaration "code *******pppppppcVar34;" type_identifier (pointer_declarator "*******pppppppcVar34" * (pointer_declarator "******pppppppcVar34" * (pointer_declarator "*****pppppppcVar34" * (pointer_declarator "****pppppppcVar34" * (pointer_declarator "***pppppppcVar34" * (pointer_declarator "**pppppppcVar34" * (pointer_declarator "*pppppppcVar34" * identifier))))))) ;) (declaration "code ******ppppppcVar35;" type_identifier (pointer_declarator "******ppppppcVar35" * (pointer_declarator "*****ppppppcVar35" * (pointer_declarator "****ppppppcVar35" * (pointer_declarator "***ppppppcVar35" * (pointer_declarator "**ppppppcVar35" * (pointer_declarator "*ppppppcVar35" * identifier)))))) ;) (declaration "code *******pppppppcVar36;" type_identifier (pointer_declarator "*******pppppppcVar36" * (pointer_declarator "******pppppppcVar36" * (pointer_declarator "*****pppppppcVar36" * (pointer_declarator "****pppppppcVar36" * (pointer_declarator "***pppppppcVar36" * (pointer_declarator "**pppppppcVar36" * (pointer_declarator "*pppppppcVar36" * identifier))))))) ;) (declaration "code *******unaff_s4;" type_identifier (pointer_declarator "*******unaff_s4" * (pointer_declarator "******unaff_s4" * (pointer_declarator "*****unaff_s4" * (pointer_declarator "****unaff_s4" * (pointer_declarator "***unaff_s4" * (pointer_declarator "**unaff_s4" * (pointer_declarator "*unaff_s4" * identifier))))))) ;) (declaration "int iVar37;" primitive_type identifier ;) (declaration "code *******unaff_s5;" type_identifier (pointer_declarator "*******unaff_s5" * (pointer_declarator "******unaff_s5" * (pointer_declarator "*****unaff_s5" * (pointer_declarator "****unaff_s5" * (pointer_declarator "***unaff_s5" * (pointer_declarator "**unaff_s5" * (pointer_declarator "*unaff_s5" * identifier))))))) ;) (declaration "code *******pppppppcVar38;" type_identifier (pointer_declarator "*******pppppppcVar38" * (pointer_declarator "******pppppppcVar38" * (pointer_declarator "*****pppppppcVar38" * (pointer_declarator "****pppppppcVar38" * (pointer_declarator "***pppppppcVar38" * (pointer_declarator "**pppppppcVar38" * (pointer_declarator "*pppppppcVar38" * identifier))))))) ;) (declaration "code *******unaff_s7;" type_identifier (pointer_declarator "*******unaff_s7" * (pointer_declarator "******unaff_s7" * (pointer_declarator "*****unaff_s7" * (pointer_declarator "****unaff_s7" * (pointer_declarator "***unaff_s7" * (pointer_declarator "**unaff_s7" * (pointer_declarator "*unaff_s7" * identifier))))))) ;) (declaration "code ******ppppppcVar39;" type_identifier (pointer_declarator "******ppppppcVar39" * (pointer_declarator "*****ppppppcVar39" * (pointer_declarator "****ppppppcVar39" * (pointer_declarator "***ppppppcVar39" * (pointer_declarator "**ppppppcVar39" * (pointer_declarator "*ppppppcVar39" * identifier)))))) ;) (declaration "code ****ppppcVar40;" type_identifier (pointer_declarator "****ppppcVar40" * (pointer_declarator "***ppppcVar40" * (pointer_declarator "**ppppcVar40" * (pointer_declarator "*ppppcVar40" * identifier)))) ;) (declaration "undefined *puVar41;" type_identifier (pointer_declarator "*puVar41" * identifier) ;) (declaration "code *******unaff_s8;" type_identifier (pointer_declarator "*******unaff_s8" * (pointer_declarator "******unaff_s8" * (pointer_declarator "*****unaff_s8" * (pointer_declarator "****unaff_s8" * (pointer_declarator "***unaff_s8" * (pointer_declarator "**unaff_s8" * (pointer_declarator "*unaff_s8" * identifier))))))) ;) (declaration "code *******pppppppcVar42;" type_identifier (pointer_declarator "*******pppppppcVar42" * (pointer_declarator "******pppppppcVar42" * (pointer_declarator "*****pppppppcVar42" * (pointer_declarator "****pppppppcVar42" * (pointer_declarator "***pppppppcVar42" * (pointer_declarator "**pppppppcVar42" * (pointer_declarator "*pppppppcVar42" * identifier))))))) ;) (declaration "int iVar43;" primitive_type identifier ;) (declaration "undefined8 uVar44;" type_identifier identifier ;) (declaration "code *******pppppppcStack_218;" type_identifier (pointer_declarator "*******pppppppcStack_218" * (pointer_declarator "******pppppppcStack_218" * (pointer_declarator "*****pppppppcStack_218" * (pointer_declarator "****pppppppcStack_218" * (pointer_declarator "***pppppppcStack_218" * (pointer_declarator "**pppppppcStack_218" * (pointer_declarator "*pppppppcStack_218" * identifier))))))) ;) (declaration "code *******pppppppcStack_20c;" type_identifier (pointer_declarator "*******pppppppcStack_20c" * (pointer_declarator "******pppppppcStack_20c" * (pointer_declarator "*****pppppppcStack_20c" * (pointer_declarator "****pppppppcStack_20c" * (pointer_declarator "***pppppppcStack_20c" * (pointer_declarator "**pppppppcStack_20c" * (pointer_declarator "*pppppppcStack_20c" * identifier))))))) ;) (declaration "code *******pppppppcStack_208;" type_identifier (pointer_declarator "*******pppppppcStack_208" * (pointer_declarator "******pppppppcStack_208" * (pointer_declarator "*****pppppppcStack_208" * (pointer_declarator "****pppppppcStack_208" * (pointer_declarator "***pppppppcStack_208" * (pointer_declarator "**pppppppcStack_208" * (pointer_declarator "*pppppppcStack_208" * identifier))))))) ;) (declaration "code ******ppppppcStack_204;" type_identifier (pointer_declarator "******ppppppcStack_204" * (pointer_declarator "*****ppppppcStack_204" * (pointer_declarator "****ppppppcStack_204" * (pointer_declarator "***ppppppcStack_204" * (pointer_declarator "**ppppppcStack_204" * (pointer_declarator "*ppppppcStack_204" * identifier)))))) ;) (declaration "int iStack_200;" primitive_type identifier ;) (declaration "int *piStack_1fc;" primitive_type (pointer_declarator "*piStack_1fc" * identifier) ;) (declaration "code *******pppppppcStack_1f8;" type_identifier (pointer_declarator "*******pppppppcStack_1f8" * (pointer_declarator "******pppppppcStack_1f8" * (pointer_declarator "*****pppppppcStack_1f8" * (pointer_declarator "****pppppppcStack_1f8" * (pointer_declarator "***pppppppcStack_1f8" * (pointer_declarator "**pppppppcStack_1f8" * (pointer_declarator "*pppppppcStack_1f8" * identifier))))))) ;) (declaration "code *******apppppppcStack_1f4 [6];" type_identifier (pointer_declarator "*******apppppppcStack_1f4 [6]" * (pointer_declarator "******apppppppcStack_1f4 [6]" * (pointer_declarator "*****apppppppcStack_1f4 [6]" * (pointer_declarator "****apppppppcStack_1f4 [6]" * (pointer_declarator "***apppppppcStack_1f4 [6]" * (pointer_declarator "**apppppppcStack_1f4 [6]" * (pointer_declarator "*apppppppcStack_1f4 [6]" * (array_declarator "apppppppcStack_1f4 [6]" identifier [ number_literal ])))))))) ;) (declaration "int iStack_1dc;" primitive_type identifier ;) (declaration "int iStack_1d8;" primitive_type identifier ;) (declaration "int iStack_1d4;" primitive_type identifier ;) (declaration "code *******pppppppcStack_1cc;" type_identifier (pointer_declarator "*******pppppppcStack_1cc" * (pointer_declarator "******pppppppcStack_1cc" * (pointer_declarator "*****pppppppcStack_1cc" * (pointer_declarator "****pppppppcStack_1cc" * (pointer_declarator "***pppppppcStack_1cc" * (pointer_declarator "**pppppppcStack_1cc" * (pointer_declarator "*pppppppcStack_1cc" * identifier))))))) ;) (declaration "code *******pppppppcStack_1c8;" type_identifier (pointer_declarator "*******pppppppcStack_1c8" * (pointer_declarator "******pppppppcStack_1c8" * (pointer_declarator "*****pppppppcStack_1c8" * (pointer_declarator "****pppppppcStack_1c8" * (pointer_declarator "***pppppppcStack_1c8" * (pointer_declarator "**pppppppcStack_1c8" * (pointer_declarator "*pppppppcStack_1c8" * identifier))))))) ;) (declaration "code *******pppppppcStack_1c4;" type_identifier (pointer_declarator "*******pppppppcStack_1c4" * (pointer_declarator "******pppppppcStack_1c4" * (pointer_declarator "*****pppppppcStack_1c4" * (pointer_declarator "****pppppppcStack_1c4" * (pointer_declarator "***pppppppcStack_1c4" * (pointer_declarator "**pppppppcStack_1c4" * (pointer_declarator "*pppppppcStack_1c4" * identifier))))))) ;) (declaration "code *******pppppppcStack_1c0;" type_identifier (pointer_declarator "*******pppppppcStack_1c0" * (pointer_declarator "******pppppppcStack_1c0" * (pointer_declarator "*****pppppppcStack_1c0" * (pointer_declarator "****pppppppcStack_1c0" * (pointer_declarator "***pppppppcStack_1c0" * (pointer_declarator "**pppppppcStack_1c0" * (pointer_declarator "*pppppppcStack_1c0" * identifier))))))) ;) (declaration "code ******ppppppcStack_1b8;" type_identifier (pointer_declarator "******ppppppcStack_1b8" * (pointer_declarator "*****ppppppcStack_1b8" * (pointer_declarator "****ppppppcStack_1b8" * (pointer_declarator "***ppppppcStack_1b8" * (pointer_declarator "**ppppppcStack_1b8" * (pointer_declarator "*ppppppcStack_1b8" * identifier)))))) ;) (declaration "undefined1 uStack_1b0;" type_identifier identifier ;) (declaration "byte bStack_1af;" type_identifier identifier ;) (declaration "byte bStack_1ae;" type_identifier identifier ;) (declaration "char cStack_1ad;" primitive_type identifier ;) (declaration "code ******ppppppcStack_1a8;" type_identifier (pointer_declarator "******ppppppcStack_1a8" * (pointer_declarator "*****ppppppcStack_1a8" * (pointer_declarator "****ppppppcStack_1a8" * (pointer_declarator "***ppppppcStack_1a8" * (pointer_declarator "**ppppppcStack_1a8" * (pointer_declarator "*ppppppcStack_1a8" * identifier)))))) ;) (declaration "int iStack_1a4;" primitive_type identifier ;) (declaration "code *******pppppppcStack_1a0;" type_identifier (pointer_declarator "*******pppppppcStack_1a0" * (pointer_declarator "******pppppppcStack_1a0" * (pointer_declarator "*****pppppppcStack_1a0" * (pointer_declarator "****pppppppcStack_1a0" * (pointer_declarator "***pppppppcStack_1a0" * (pointer_declarator "**pppppppcStack_1a0" * (pointer_declarator "*pppppppcStack_1a0" * identifier))))))) ;) (declaration "code *******pppppppcStack_19c;" type_identifier (pointer_declarator "*******pppppppcStack_19c" * (pointer_declarator "******pppppppcStack_19c" * (pointer_declarator "*****pppppppcStack_19c" * (pointer_declarator "****pppppppcStack_19c" * (pointer_declarator "***pppppppcStack_19c" * (pointer_declarator "**pppppppcStack_19c" * (pointer_declarator "*pppppppcStack_19c" * identifier))))))) ;) (declaration "code *******pppppppcStack_198;" type_identifier (pointer_declarator "*******pppppppcStack_198" * (pointer_declarator "******pppppppcStack_198" * (pointer_declarator "*****pppppppcStack_198" * (pointer_declarator "****pppppppcStack_198" * (pointer_declarator "***pppppppcStack_198" * (pointer_declarator "**pppppppcStack_198" * (pointer_declarator "*pppppppcStack_198" * identifier))))))) ;) (declaration "code *******pppppppcStack_194;" type_identifier (pointer_declarator "*******pppppppcStack_194" * (pointer_declarator "******pppppppcStack_194" * (pointer_declarator "*****pppppppcStack_194" * (pointer_declarator "****pppppppcStack_194" * (pointer_declarator "***pppppppcStack_194" * (pointer_declarator "**pppppppcStack_194" * (pointer_declarator "*pppppppcStack_194" * identifier))))))) ;) (declaration "code *******pppppppcStack_190;" type_identifier (pointer_declarator "*******pppppppcStack_190" * (pointer_declarator "******pppppppcStack_190" * (pointer_declarator "*****pppppppcStack_190" * (pointer_declarator "****pppppppcStack_190" * (pointer_declarator "***pppppppcStack_190" * (pointer_declarator "**pppppppcStack_190" * (pointer_declarator "*pppppppcStack_190" * identifier))))))) ;) (declaration "code *******pppppppcStack_18c;" type_identifier (pointer_declarator "*******pppppppcStack_18c" * (pointer_declarator "******pppppppcStack_18c" * (pointer_declarator "*****pppppppcStack_18c" * (pointer_declarator "****pppppppcStack_18c" * (pointer_declarator "***pppppppcStack_18c" * (pointer_declarator "**pppppppcStack_18c" * (pointer_declarator "*pppppppcStack_18c" * identifier))))))) ;) (declaration "code *******pppppppcStack_188;" type_identifier (pointer_declarator "*******pppppppcStack_188" * (pointer_declarator "******pppppppcStack_188" * (pointer_declarator "*****pppppppcStack_188" * (pointer_declarator "****pppppppcStack_188" * (pointer_declarator "***pppppppcStack_188" * (pointer_declarator "**pppppppcStack_188" * (pointer_declarator "*pppppppcStack_188" * identifier))))))) ;) (declaration "code *******pppppppcStack_184;" type_identifier (pointer_declarator "*******pppppppcStack_184" * (pointer_declarator "******pppppppcStack_184" * (pointer_declarator "*****pppppppcStack_184" * (pointer_declarator "****pppppppcStack_184" * (pointer_declarator "***pppppppcStack_184" * (pointer_declarator "**pppppppcStack_184" * (pointer_declarator "*pppppppcStack_184" * identifier))))))) ;) (declaration "code *******pppppppcStack_180;" type_identifier (pointer_declarator "*******pppppppcStack_180" * (pointer_declarator "******pppppppcStack_180" * (pointer_declarator "*****pppppppcStack_180" * (pointer_declarator "****pppppppcStack_180" * (pointer_declarator "***pppppppcStack_180" * (pointer_declarator "**pppppppcStack_180" * (pointer_declarator "*pppppppcStack_180" * identifier))))))) ;) (declaration "code *pcStack_17c;" type_identifier (pointer_declarator "*pcStack_17c" * identifier) ;) (declaration "uint local_168;" type_identifier identifier ;) (declaration "code *******local_150;" type_identifier (pointer_declarator "*******local_150" * (pointer_declarator "******local_150" * (pointer_declarator "*****local_150" * (pointer_declarator "****local_150" * (pointer_declarator "***local_150" * (pointer_declarator "**local_150" * (pointer_declarator "*local_150" * identifier))))))) ;) (declaration "code *******local_148;" type_identifier (pointer_declarator "*******local_148" * (pointer_declarator "******local_148" * (pointer_declarator "*****local_148" * (pointer_declarator "****local_148" * (pointer_declarator "***local_148" * (pointer_declarator "**local_148" * (pointer_declarator "*local_148" * identifier))))))) ;) (declaration "code *******local_144;" type_identifier (pointer_declarator "*******local_144" * (pointer_declarator "******local_144" * (pointer_declarator "*****local_144" * (pointer_declarator "****local_144" * (pointer_declarator "***local_144" * (pointer_declarator "**local_144" * (pointer_declarator "*local_144" * identifier))))))) ;) (declaration "code *******local_138;" type_identifier (pointer_declarator "*******local_138" * (pointer_declarator "******local_138" * (pointer_declarator "*****local_138" * (pointer_declarator "****local_138" * (pointer_declarator "***local_138" * (pointer_declarator "**local_138" * (pointer_declarator "*local_138" * identifier))))))) ;) (declaration "int local_118;" primitive_type identifier ;) (declaration "code *******local_dc;" type_identifier (pointer_declarator "*******local_dc" * (pointer_declarator "******local_dc" * (pointer_declarator "*****local_dc" * (pointer_declarator "****local_dc" * (pointer_declarator "***local_dc" * (pointer_declarator "**local_dc" * (pointer_declarator "*local_dc" * identifier))))))) ;) (declaration "code *******local_d8;" type_identifier (pointer_declarator "*******local_d8" * (pointer_declarator "******local_d8" * (pointer_declarator "*****local_d8" * (pointer_declarator "****local_d8" * (pointer_declarator "***local_d8" * (pointer_declarator "**local_d8" * (pointer_declarator "*local_d8" * identifier))))))) ;) (declaration "code *******local_d4;" type_identifier (pointer_declarator "*******local_d4" * (pointer_declarator "******local_d4" * (pointer_declarator "*****local_d4" * (pointer_declarator "****local_d4" * (pointer_declarator "***local_d4" * (pointer_declarator "**local_d4" * (pointer_declarator "*local_d4" * identifier))))))) ;) (declaration "code *******local_d0;" type_identifier (pointer_declarator "*******local_d0" * (pointer_declarator "******local_d0" * (pointer_declarator "*****local_d0" * (pointer_declarator "****local_d0" * (pointer_declarator "***local_d0" * (pointer_declarator "**local_d0" * (pointer_declarator "*local_d0" * identifier))))))) ;) (declaration "code *******local_cc;" type_identifier (pointer_declarator "*******local_cc" * (pointer_declarator "******local_cc" * (pointer_declarator "*****local_cc" * (pointer_declarator "****local_cc" * (pointer_declarator "***local_cc" * (pointer_declarator "**local_cc" * (pointer_declarator "*local_cc" * identifier))))))) ;) (declaration "code *******local_c8;" type_identifier (pointer_declarator "*******local_c8" * (pointer_declarator "******local_c8" * (pointer_declarator "*****local_c8" * (pointer_declarator "****local_c8" * (pointer_declarator "***local_c8" * (pointer_declarator "**local_c8" * (pointer_declarator "*local_c8" * identifier))))))) ;) (declaration "code *******local_c4;" type_identifier (pointer_declarator "*******local_c4" * (pointer_declarator "******local_c4" * (pointer_declarator "*****local_c4" * (pointer_declarator "****local_c4" * (pointer_declarator "***local_c4" * (pointer_declarator "**local_c4" * (pointer_declarator "*local_c4" * identifier))))))) ;) (declaration "undefined4 local_c0;" type_identifier identifier ;) (declaration "undefined4 local_bc;" type_identifier identifier ;) (declaration "undefined4 local_b8;" type_identifier identifier ;) (declaration "code ******local_b4;" type_identifier (pointer_declarator "******local_b4" * (pointer_declarator "*****local_b4" * (pointer_declarator "****local_b4" * (pointer_declarator "***local_b4" * (pointer_declarator "**local_b4" * (pointer_declarator "*local_b4" * identifier)))))) ;) (declaration "code ******local_b0;" type_identifier (pointer_declarator "******local_b0" * (pointer_declarator "*****local_b0" * (pointer_declarator "****local_b0" * (pointer_declarator "***local_b0" * (pointer_declarator "**local_b0" * (pointer_declarator "*local_b0" * identifier)))))) ;) (declaration "int *local_ac;" primitive_type (pointer_declarator "*local_ac" * identifier) ;) (declaration "int local_a8;" primitive_type identifier ;) (declaration "int local_9c;" primitive_type identifier ;) (declaration "code *******local_98;" type_identifier (pointer_declarator "*******local_98" * (pointer_declarator "******local_98" * (pointer_declarator "*****local_98" * (pointer_declarator "****local_98" * (pointer_declarator "***local_98" * (pointer_declarator "**local_98" * (pointer_declarator "*local_98" * identifier))))))) ;) (declaration "code *******local_94;" type_identifier (pointer_declarator "*******local_94" * (pointer_declarator "******local_94" * (pointer_declarator "*****local_94" * (pointer_declarator "****local_94" * (pointer_declarator "***local_94" * (pointer_declarator "**local_94" * (pointer_declarator "*local_94" * identifier))))))) ;) (declaration "uint local_90;" type_identifier identifier ;) (declaration "code *******local_8c;" type_identifier (pointer_declarator "*******local_8c" * (pointer_declarator "******local_8c" * (pointer_declarator "*****local_8c" * (pointer_declarator "****local_8c" * (pointer_declarator "***local_8c" * (pointer_declarator "**local_8c" * (pointer_declarator "*local_8c" * identifier))))))) ;) (declaration "code *******local_88;" type_identifier (pointer_declarator "*******local_88" * (pointer_declarator "******local_88" * (pointer_declarator "*****local_88" * (pointer_declarator "****local_88" * (pointer_declarator "***local_88" * (pointer_declarator "**local_88" * (pointer_declarator "*local_88" * identifier))))))) ;) (declaration "code *******local_84;" type_identifier (pointer_declarator "*******local_84" * (pointer_declarator "******local_84" * (pointer_declarator "*****local_84" * (pointer_declarator "****local_84" * (pointer_declarator "***local_84" * (pointer_declarator "**local_84" * (pointer_declarator "*local_84" * identifier))))))) ;) (declaration "code *******local_80;" type_identifier (pointer_declarator "*******local_80" * (pointer_declarator "******local_80" * (pointer_declarator "*****local_80" * (pointer_declarator "****local_80" * (pointer_declarator "***local_80" * (pointer_declarator "**local_80" * (pointer_declarator "*local_80" * identifier))))))) ;) (declaration "code *******local_7c;" type_identifier (pointer_declarator "*******local_7c" * (pointer_declarator "******local_7c" * (pointer_declarator "*****local_7c" * (pointer_declarator "****local_7c" * (pointer_declarator "***local_7c" * (pointer_declarator "**local_7c" * (pointer_declarator "*local_7c" * identifier))))))) ;) (declaration "undefined4 local_78;" type_identifier identifier ;) (declaration "code ******local_74;" type_identifier (pointer_declarator "******local_74" * (pointer_declarator "*****local_74" * (pointer_declarator "****local_74" * (pointer_declarator "***local_74" * (pointer_declarator "**local_74" * (pointer_declarator "*local_74" * identifier)))))) ;) (declaration "code *******local_70;" type_identifier (pointer_declarator "*******local_70" * (pointer_declarator "******local_70" * (pointer_declarator "*****local_70" * (pointer_declarator "****local_70" * (pointer_declarator "***local_70" * (pointer_declarator "**local_70" * (pointer_declarator "*local_70" * identifier))))))) ;) (declaration "byte local_6c;" type_identifier identifier ;) (declaration "byte local_6b;" type_identifier identifier ;) (declaration "byte local_6a;" type_identifier identifier ;) (declaration "byte local_69;" type_identifier identifier ;) (declaration "char local_68;" primitive_type identifier ;) (declaration "byte local_67;" type_identifier identifier ;) (declaration "byte local_66;" type_identifier identifier ;) (declaration "code *******local_64;" type_identifier (pointer_declarator "*******local_64" * (pointer_declarator "******local_64" * (pointer_declarator "*****local_64" * (pointer_declarator "****local_64" * (pointer_declarator "***local_64" * (pointer_declarator "**local_64" * (pointer_declarator "*local_64" * identifier))))))) ;) (declaration "code *******local_60;" type_identifier (pointer_declarator "*******local_60" * (pointer_declarator "******local_60" * (pointer_declarator "*****local_60" * (pointer_declarator "****local_60" * (pointer_declarator "***local_60" * (pointer_declarator "**local_60" * (pointer_declarator "*local_60" * identifier))))))) ;) (declaration "code *******local_5c;" type_identifier (pointer_declarator "*******local_5c" * (pointer_declarator "******local_5c" * (pointer_declarator "*****local_5c" * (pointer_declarator "****local_5c" * (pointer_declarator "***local_5c" * (pointer_declarator "**local_5c" * (pointer_declarator "*local_5c" * identifier))))))) ;) (declaration "code *******local_58;" type_identifier (pointer_declarator "*******local_58" * (pointer_declarator "******local_58" * (pointer_declarator "*****local_58" * (pointer_declarator "****local_58" * (pointer_declarator "***local_58" * (pointer_declarator "**local_58" * (pointer_declarator "*local_58" * identifier))))))) ;) (declaration "code *******local_54;" type_identifier (pointer_declarator "*******local_54" * (pointer_declarator "******local_54" * (pointer_declarator "*****local_54" * (pointer_declarator "****local_54" * (pointer_declarator "***local_54" * (pointer_declarator "**local_54" * (pointer_declarator "*local_54" * identifier))))))) ;) (declaration "code *******local_50;" type_identifier (pointer_declarator "*******local_50" * (pointer_declarator "******local_50" * (pointer_declarator "*****local_50" * (pointer_declarator "****local_50" * (pointer_declarator "***local_50" * (pointer_declarator "**local_50" * (pointer_declarator "*local_50" * identifier))))))) ;) (declaration "code *******local_4c;" type_identifier (pointer_declarator "*******local_4c" * (pointer_declarator "******local_4c" * (pointer_declarator "*****local_4c" * (pointer_declarator "****local_4c" * (pointer_declarator "***local_4c" * (pointer_declarator "**local_4c" * (pointer_declarator "*local_4c" * identifier))))))) ;) (declaration "undefined4 local_48;" type_identifier identifier ;) (declaration "code *******local_44;" type_identifier (pointer_declarator "*******local_44" * (pointer_declarator "******local_44" * (pointer_declarator "*****local_44" * (pointer_declarator "****local_44" * (pointer_declarator "***local_44" * (pointer_declarator "**local_44" * (pointer_declarator "*local_44" * identifier))))))) ;) (declaration "code *******local_40;" type_identifier (pointer_declarator "*******local_40" * (pointer_declarator "******local_40" * (pointer_declarator "*****local_40" * (pointer_declarator "****local_40" * (pointer_declarator "***local_40" * (pointer_declarator "**local_40" * (pointer_declarator "*local_40" * identifier))))))) ;) (declaration "int local_3c;" primitive_type identifier ;) (declaration "code *******local_34;" type_identifier (pointer_declarator "*******local_34" * (pointer_declarator "******local_34" * (pointer_declarator "*****local_34" * (pointer_declarator "****local_34" * (pointer_declarator "***local_34" * (pointer_declarator "**local_34" * (pointer_declarator "*local_34" * identifier))))))) ;) (declaration "int local_30;" primitive_type identifier ;) (declaration "code *******local_2c;" type_identifier (pointer_declarator "*******local_2c" * (pointer_declarator "******local_2c" * (pointer_declarator "*****local_2c" * (pointer_declarator "****local_2c" * (pointer_declarator "***local_2c" * (pointer_declarator "**local_2c" * (pointer_declarator "*local_2c" * identifier))))))) ;) (expression_statement "local_2c = *(code ********)PTR___stack_chk_guard_00079c10;" (assignment_expression "local_2c = *(code ********)PTR___stack_chk_guard_00079c10" identifier = (pointer_expression "*(code ********)PTR___stack_chk_guard_00079c10" * (cast_expression "(code ********)PTR___stack_chk_guard_00079c10" ( (type_descriptor "code ********" type_identifier (abstract_pointer_declarator "********" * (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))))) ) identifier))) ;) (expression_statement "pppppppcVar38 = (code *******)*param_1;" (assignment_expression "pppppppcVar38 = (code *******)*param_1" identifier = (cast_expression "(code *******)*param_1" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "*param_1" * identifier))) ;) (expression_statement "pppppppcVar29 = (code *******)0x0;" (assignment_expression "pppppppcVar29 = (code *******)0x0" identifier = (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "pppppppcVar33 = param_4;" (assignment_expression "pppppppcVar33 = param_4" identifier = identifier) ;) (expression_statement "(*(code *)PTR_memset_00079b00)(&local_b4,0,0x88);" (call_expression "(*(code *)PTR_memset_00079b00)(&local_b4,0,0x88)" (parenthesized_expression "(*(code *)PTR_memset_00079b00)" ( (pointer_expression "*(code *)PTR_memset_00079b00" * (cast_expression "(code *)PTR_memset_00079b00" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&local_b4,0,0x88)" ( (pointer_expression "&local_b4" & identifier) , number_literal , number_literal ))) ;) (expression_statement "local_148 = (code *******)param_1[4];" (assignment_expression "local_148 = (code *******)param_1[4]" identifier = (cast_expression "(code *******)param_1[4]" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (subscript_expression "param_1[4]" identifier [ number_literal ]))) ;) (if_statement "if (local_148 != (code *******)0x0) {\n    if (((byte)*(code *)(param_1 + 7) & 0x10) == 0) {\n      local_148 = (code *******)0x0;\n    }\n    else if (param_4 == param_5) {\n      local_148 = (code *******)0x0;\n    }\n    else if ((char)*(code *)(param_1 + 7) < '\0') {\n      local_148 = (code *******)0x0;\n    }\n  }" if (parenthesized_expression "(local_148 != (code *******)0x0)" ( (binary_expression "local_148 != (code *******)0x0" identifier != (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\n    if (((byte)*(code *)(param_1 + 7) & 0x10) == 0) {\n      local_148 = (code *******)0x0;\n    }\n    else if (param_4 == param_5) {\n      local_148 = (code *******)0x0;\n    }\n    else if ((char)*(code *)(param_1 + 7) < '\0') {\n      local_148 = (code *******)0x0;\n    }\n  }" { (if_statement "if (((byte)*(code *)(param_1 + 7) & 0x10) == 0) {\n      local_148 = (code *******)0x0;\n    }\n    else if (param_4 == param_5) {\n      local_148 = (code *******)0x0;\n    }\n    else if ((char)*(code *)(param_1 + 7) < '\0') {\n      local_148 = (code *******)0x0;\n    }" if (parenthesized_expression "(((byte)*(code *)(param_1 + 7) & 0x10) == 0)" ( (binary_expression "((byte)*(code *)(param_1 + 7) & 0x10) == 0" (parenthesized_expression "((byte)*(code *)(param_1 + 7) & 0x10)" ( (binary_expression "(byte)*(code *)(param_1 + 7) & 0x10" (binary_expression "(byte)*(code *)(param_1 + 7)" (parenthesized_expression "(byte)" ( identifier )) * (cast_expression "(code *)(param_1 + 7)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 7)" ( (binary_expression "param_1 + 7" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n      local_148 = (code *******)0x0;\n    }" { (expression_statement "local_148 = (code *******)0x0;" (assignment_expression "local_148 = (code *******)0x0" identifier = (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) }) (else_clause "else if (param_4 == param_5) {\n      local_148 = (code *******)0x0;\n    }\n    else if ((char)*(code *)(param_1 + 7) < '\0') {\n      local_148 = (code *******)0x0;\n    }" else (if_statement "if (param_4 == param_5) {\n      local_148 = (code *******)0x0;\n    }\n    else if ((char)*(code *)(param_1 + 7) < '\0') {\n      local_148 = (code *******)0x0;\n    }" if (parenthesized_expression "(param_4 == param_5)" ( (binary_expression "param_4 == param_5" identifier == identifier) )) (compound_statement "{\n      local_148 = (code *******)0x0;\n    }" { (expression_statement "local_148 = (code *******)0x0;" (assignment_expression "local_148 = (code *******)0x0" identifier = (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) }) (else_clause "else if ((char)*(code *)(param_1 + 7) < '\0') {\n      local_148 = (code *******)0x0;\n    }" else (if_statement "if ((char)*(code *)(param_1 + 7) < '\0') {\n      local_148 = (code *******)0x0;\n    }" if (parenthesized_expression "((char)*(code *)(param_1 + 7) < '\0')" ( (binary_expression "(char)*(code *)(param_1 + 7) < '\0'" (cast_expression "(char)*(code *)(param_1 + 7)" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(code *)(param_1 + 7)" * (cast_expression "(code *)(param_1 + 7)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 7)" ( (binary_expression "param_1 + 7" identifier + number_literal) ))))) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      local_148 = (code *******)0x0;\n    }" { (expression_statement "local_148 = (code *******)0x0;" (assignment_expression "local_148 = (code *******)0x0" identifier = (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) })))))) })) (if_statement "if (param_1[6] < param_7) {\n    local_118 = (int)param_7 + (-1 - (int)param_1[6]);\n  }\n  else {\n    local_118 = 0;\n  }" if (parenthesized_expression "(param_1[6] < param_7)" ( (binary_expression "param_1[6] < param_7" (subscript_expression "param_1[6]" identifier [ number_literal ]) < identifier) )) (compound_statement "{\n    local_118 = (int)param_7 + (-1 - (int)param_1[6]);\n  }" { (expression_statement "local_118 = (int)param_7 + (-1 - (int)param_1[6]);" (assignment_expression "local_118 = (int)param_7 + (-1 - (int)param_1[6])" identifier = (binary_expression "(int)param_7 + (-1 - (int)param_1[6])" (cast_expression "(int)param_7" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(-1 - (int)param_1[6])" ( (binary_expression "-1 - (int)param_1[6]" number_literal - (cast_expression "(int)param_1[6]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_1[6]" identifier [ number_literal ]))) )))) ;) }) (else_clause "else {\n    local_118 = 0;\n  }" else (compound_statement "{\n    local_118 = 0;\n  }" { (expression_statement "local_118 = 0;" (assignment_expression "local_118 = 0" identifier = number_literal) ;) }))) (expression_statement "pppppppcStack_1a0 = param_4;" (assignment_expression "pppppppcStack_1a0 = param_4" identifier = identifier) ;) (expression_statement "pppppppcStack_19c = param_1;" (assignment_expression "pppppppcStack_19c = param_1" identifier = identifier) ;) (expression_statement "local_60 = pppppppcVar38;" (assignment_expression "local_60 = pppppppcVar38" identifier = identifier) ;) (if_statement "if (param_1[2] == (code ******)0x0) {\n    local_150 = (code *******)0x1;\n  }\n  else if (pppppppcVar38[9] == (code ******)0x0) {\n    local_150 = (code *******)0x1;\n  }\n  else if (pppppppcVar38[10] == (code ******)0x0) {\n    local_150 = (code *******)0x1;\n  }\n  else if (pppppppcVar38[0xb] == (code ******)0x0) {\n    local_150 = (code *******)0x1;\n  }\n  else {\n    pppppppcVar29 = (code *******)pppppppcVar38[0xc];\n    if (pppppppcVar29 == (code *******)0x0) {\n      local_150 = (code *******)0x1;\n    }\n    else {\n      pppppppcVar3 = param_5;\n      if ((((pppppppcVar38[9][2] == (code *****)0x0) && (pppppppcVar38[10][2] == (code *****)0x0))\n          && ((pppppppcVar38[0xb][2] == (code *****)0x0 || (((uint)param_1[7] & 0x1000000) == 0))))\n         && ((pppppppcVar3 = param_4, param_4 != (code *******)0x0 &&\n             (param_4 = param_5, pppppppcVar3 = param_5, param_5 != (code *******)0x0)))) {\n        local_150 = (code *******)0x1;\n        pppppppcStack_1a0 = param_5;\n      }\n      else {\n        param_5 = pppppppcVar3;\n        pppppppcVar3 = (code *******)((int)param_7 - local_118);\n        if (pppppppcVar3 == (code *******)0x0) {\n          pppppppcVar34 = (code *******)(uint)(pppppppcVar38[0x13] != (code ******)0x0);\n        }\n        else {\n          pppppppcVar34 = (code *******)0x1;\n        }\n        ppppppcVar32 = param_1[5];\n        local_6c = (byte)((uint)((int)param_1[3] << 9) >> 0x1f);\n        local_64 = (code *******)pppppppcVar38[0x17];\n        pppppppcVar31 = (code *******)((int)pppppppcVar38[2] + 1);\n        if ((int)pppppppcVar38[2] + 1 < (int)local_64) {\n          pppppppcVar31 = local_64;\n        }\n        pppppppcVar30 = (code *******)(uint)((int)param_3 + 1 < (int)pppppppcVar31);\n        pppppppcVar33 = (code *******)0x1;\n        local_69 = local_6c;\n        if (ppppppcVar32 != (code ******)0x0) {\n          local_69 = 1;\n        }\n        local_6b = (byte)((uint)((int)pppppppcVar38[0x16] << 2) >> 0x1f);\n        local_6a = (byte)((uint)((int)pppppppcVar38[0x16] << 3) >> 0x1f);\n        pppppppcVar29 = (code *******)((int)param_3 + 1);\n        if (pppppppcVar30 == (code *******)0x0) {\n          pppppppcVar29 = pppppppcVar31;\n        }\n        local_b4 = param_2;\n        local_88 = param_3;\n        local_84 = param_3;\n        local_80 = param_3;\n        local_7c = param_3;\n        local_74 = ppppppcVar32;\n        local_150 = (code *******)FUN_00046d2c(&local_b4);\n        pppppppcVar31 = pppppppcVar34;\n        param_6 = param_6;\n        if (local_150 != (code *******)0x0) goto LAB_000557e4;\n        local_70 = pppppppcVar38 + 0x18;\n        local_66 = (byte)((uint)((int)pppppppcVar38[0x16] << 4) >> 0x1f);\n        pppppppcVar2 = (code *******)0x0;\n        local_98 = pppppppcVar2;\n        if ((local_69 == 0) && (local_b0 = param_2, (int)pppppppcVar38[0x17] < 2)) {\n          local_98 = param_3;\n        }\n        local_7c = param_6;\n        local_80 = param_6;\n        local_67 = (byte)((uint)((int)param_1[7] << 7) >> 0x1f);\n        ppppppcVar35 = pppppppcVar38[0x13];\n        pppppppcVar36 = (code *******)((int)ppppppcVar35 * 2);\n        local_5c = param_9;\n        local_58 = (code *******)0xffffffff;\n        local_94 = local_98;\n        if ((int)pppppppcVar36 < 1) {\nLAB_000559f0:\n          local_3c = 1;\n          local_44 = pppppppcVar36;\n          local_34 = pppppppcVar36;\n          if ((pppppppcVar3 < (code *******)0x2) && (((uint)pppppppcVar38[0x16] & 0x40000000) == 0))\n          {\n            local_50 = (code *******)0x0;\nLAB_00055a40:\n            local_78 = 6;\n            if (((uint)param_9 & 1) != 0) {\n              local_78 = 4;\n            }\n            pppppppcVar24 = (code *******)0x1;\n            pppppppcVar25 = param_4;\n            if ((int)param_5 < (int)param_4) {\n              pppppppcVar24 = (code *******)0xffffffff;\n              pppppppcVar25 = param_5;\n            }\n            pppppppcVar26 = param_5;\n            if ((int)param_5 <= (int)param_4) {\n              pppppppcVar26 = param_4;\n            }\n            ppppppcVar35 = pppppppcVar38[0x17];\n            uVar16 = 8;\n            if (local_148 != (code *******)0x0) {\n              if (ppppppcVar35 == (code ******)0x1) {\n                pppppppcVar28 = (code *******)0x4;\n              }\n              else {\n                pppppppcVar28 = pppppppcVar2;\n                if ((-1 < (int)param_1[3] << 9) && (ppppppcVar32 == (code ******)0x0)) {\n                  pppppppcVar28 = (code *******)0x4;\n                }\n              }\n              pppppppcVar29 = (code *******)0x0;\n              if ((int)param_4 <= (int)param_5) {\n                pppppppcVar29 = (code *******)0x2;\n              }\n              uVar16 = (uint)(ppppppcVar32 != (code ******)0x0) | (uint)pppppppcVar28 |\n                       (uint)pppppppcVar29;\n            }\n            local_dc = param_4;\n            if ((int)param_4 < (int)pppppppcVar25) {\n              local_150 = (code *******)0x1;\n              param_6 = pppppppcVar36;\n            }\n            else if ((int)pppppppcVar26 < (int)param_4) {\n              local_150 = (code *******)0x1;\n              param_4 = (code *******)(uint)((int)param_5 < (int)param_4);\n              param_6 = pppppppcVar36;\n            }\n            else {\n              pppppppcVar36 = (code *******)&local_dc;\n              if ((code *******)(uint)((int)param_5 < (int)param_4) != (code *******)0x0) {\n                pppppppcVar36 = (code *******)0x0;\n              }\n              pcVar4 = (code *)(PTR_DAT_000799a4 + -0x2b7c);\n              piVar5 = (int *)(PTR_s_nt0_000795b8 + (uVar16 - 4) * 4 + 0x6e38);\nLAB_00055b44:\n              if (uVar16 - 4 < 5) {\n                    /* WARNING: Could not emulate address calculation at 0x00054920 */\n                    /* WARNING: Treating indirect jump as call */\n                pppppppcVar29 = (code *******)(*(code *)(&_gp_1 + *piVar5))();\n                return pppppppcVar29;\n              }\n              param_5 = &local_b4;\n              pppppppcVar28 = pppppppcVar33;\n              while( true ) {\n                param_4 = local_dc;\n                pppppppcVar33 = (code *******)((int)local_dc - local_9c);\n                pppppppcVar30 = param_9;\n                pppppppcVar31 = pppppppcVar2;\n                param_6 = local_148;\n                unaff_s4 = param_3;\n                unaff_s5 = pppppppcVar24;\n                unaff_s7 = pppppppcVar26;\n                if (local_94 <= pppppppcVar33) {\n                  pppppppcVar29 = local_dc;\n                  local_150 = (code *******)(*pcVar4)(param_5);\n                  pppppppcVar33 = pppppppcVar28;\n                  if (local_150 != (code *******)0x0) goto LAB_000557e4;\n                  pppppppcVar33 = (code *******)((int)param_4 - local_9c);\n                }\n                if ((int)param_4 < (int)param_3) {\n                  uVar7 = (uint)(byte)*(code *)((int)pppppppcVar33 + (int)local_b0);\n                }\n                else {\n                  uVar7 = 0;\n                }\n                param_4 = (code *******)((int)param_4 + (int)pppppppcVar24);\n                if (*(code *)((int)local_148 + uVar7) != (code)0x0) break;\n                pppppppcVar33 = pppppppcVar28;\n                local_dc = param_4;\n                if ((int)param_4 < (int)pppppppcVar25) {\n                  local_150 = (code *******)0x1;\n                  goto LAB_000557e4;\n                }\n                if ((code *******)(uint)((int)pppppppcVar26 < (int)param_4) != (code *******)0x0) {\n                  local_150 = (code *******)0x1;\n                  param_4 = (code *******)(uint)((int)pppppppcVar26 < (int)param_4);\n                  goto LAB_000557e4;\n                }\n              }\n              while( true ) {\n                pppppppcVar29 = local_dc;\n                pppppppcVar30 = param_9;\n                pppppppcVar6 = (code *******)(*pcVar4)(&local_b4);\n                pppppppcVar14 = local_60;\n                pppppppcVar42 = local_8c;\n                pppppppcVar33 = pppppppcVar28;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar6 != (code *******)0x0) goto LAB_000557e4;\n                if (((ppppppcVar35 != (code ******)0x1) && (local_98 != (code *******)0x0)) &&\n                   (*local_ac == -1)) goto LAB_00055b1c;\n                local_3c = 0;\n                local_48 = 0;\n                local_4c = (code *******)0x0;\n                local_138 = local_8c;\n                local_d8 = (code *******)0x0;\n                unaff_s7 = (code *******)local_60[9];\n                pppppppcVar30 = local_5c;\n                param_4 = pppppppcVar14;\n                if (((uint)unaff_s7[0xd] & 0x1000000) == 0) break;\n                pppppppcVar29 = (code *******)((int)local_8c + -1);\n                pppppppcVar33 = (code *******)FUN_00049110(&local_b4);\n                if (((uint)pppppppcVar33 & 1) == 0) {\n                  if (pppppppcVar33 == (code *******)0x0) break;\n                  if (((uint)pppppppcVar33 & 6) == 6) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xc];\n                    goto LAB_00054d1c;\n                  }\n                  if (((uint)pppppppcVar33 & 2) != 0) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xb];\n                    goto LAB_00054d1c;\n                  }\n                  pppppppcVar28 = pppppppcVar33;\n                  if (((uint)pppppppcVar33 & 4) == 0) break;\n                  pppppppcVar30 = (code *******)unaff_s7[10];\n                  pppppppcVar29 = pppppppcVar14;\n                  unaff_s7 = (code *******)FUN_0004ae34(&local_d8);\n                  pppppppcVar28 = pppppppcVar33;\n                  if (unaff_s7 != (code *******)0x0) break;\n                  if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                }\n                else {\n                  unaff_s7 = (code *******)pppppppcVar14[10];\nLAB_00054d1c:\n                  pppppppcVar28 = (code *******)PTR_s_nt0_000795b8;\n                  if (unaff_s7 != (code *******)0x0) break;\n                }\n                pppppppcVar28 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                local_dc = (code *******)\n                           (*(code *)PTR___assert_fail_000799f8)\n                                     (PTR_s_nt0_000795b8 + 0x71a0,pppppppcVar29,0x435);\n                if (local_dc == pppppppcVar26) {\n                  if ((int)local_dc < (int)param_3) {\n                    uVar7 = (uint)(byte)*(code *)((int)local_dc + (int)param_2);\n                  }\n                  else {\n                    uVar7 = 0;\n                  }\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    uVar7 = (uint)*(byte *)((int)ppppppcVar32 + uVar7);\n                  }\n                  if (*(code *)((int)local_148 + uVar7) == (code)0x0) {\n                    local_150 = (code *******)0x1;\n                    pppppppcVar30 = param_9;\n                    pppppppcVar33 = pppppppcVar28;\n                    goto LAB_000557e4;\n                  }\n                }\n              }\n              pppppppcVar33 = pppppppcVar28;\n              bVar1 = pppppppcVar36 != (code *******)0x0;\n              if ((local_50 == (code *******)0x0) ||\n                 (local_50[(int)pppppppcVar42] = (code ******)unaff_s7,\n                 pppppppcVar14[0x13] == (code ******)0x0)) {\nLAB_00054d50:\n                if ((int)unaff_s7[0xd] << 4 < 0) {\n                  if ((((uint)unaff_s7[0xd] & 0x1000000) == 0) ||\n                     (pppppppcVar29 = unaff_s7, pppppppcVar30 = pppppppcVar42,\n                     iVar18 = FUN_00049440(&local_b4), iVar18 != 0)) {\n                    unaff_s8 = pppppppcVar42;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                  }\n                  else {\n                    pppppppcVar42 = (code *******)0xffffffff;\n                    pppppppcVar28 = (code *******)0x0;\n                  }\n                }\n                else {\n                  pppppppcVar42 = (code *******)0xffffffff;\n                  pppppppcVar28 = (code *******)0x0;\n                }\n                pcVar8 = (code *)(PTR_DAT_000799a4 + -0x7144);\n                pcVar9 = (code *)(PTR_DAT_000799a4 + -0x1980);\n                pcVar10 = (code *)(PTR_DAT_000799a4 + -0x2f9c);\n                unaff_s8 = pppppppcVar42;\n                local_144 = pppppppcVar36;\n                while( true ) {\n                  uVar44 = CONCAT44(local_98,local_84);\n                  unaff_s5 = (code *******)((int)local_8c + 1);\n                  pppppppcVar29 = local_8c;\n                  if ((int)local_7c <= (int)local_8c) break;\n                  if (((int)local_90 <= (int)unaff_s5) && ((int)local_90 < (int)local_84))\n                  goto LAB_00054e94;\n                  if ((int)local_98 <= (int)unaff_s5) {\n                    while ((int)((ulonglong)uVar44 >> 0x20) < (int)uVar44) {\nLAB_00054e94:\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 2);\n                      local_d8 = (code *******)(*pcVar8)(&local_b4);\n                      if (local_d8 == (code *******)0x0) break;\n                      pppppppcVar14 = param_4;\n                      if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                      pppppppcVar33 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                      pppppppcVar30 = (code *******)0x46c;\n                      pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                      uVar44 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0);\n                      pppppppcVar28 = pppppppcVar38;\n                    }\n                  }\n                  pppppppcVar42 = local_60;\n                  if ((int)unaff_s7[0xd] << 5 < 0) {\n                    pppppppcVar31 = pppppppcVar42;\n                    if (0 < (int)unaff_s7[2]) {\n                      pcVar11 = (code *)(PTR_DAT_000799a4 + -0x6fdc);\n                      pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6ef0);\n                      param_6 = (code *******)0x0;\n                      do {\n                        param_5 = (code *******)unaff_s7[3][(int)param_6];\n                        ppppppcVar39 = *pppppppcVar42;\n                        pppppcVar13 = ppppppcVar39[(int)param_5 * 2 + 1];\n                        if (((uint)pppppcVar13 & 0x800) != 0) {\n                          if (((uint)pppppcVar13 & 0xffc000) != 0) {\n                            pppppppcVar29 = local_8c;\n                            uVar19 = (*pcVar12)(&local_b4,local_8c,local_5c);\n                            uVar7 = (uint)((int)ppppppcVar39[(int)param_5 * 2 + 1] << 8) >> 0x16;\n                            if ((uVar7 & 4) == 0) {\n                              uVar27 = uVar19 & 1;\n                              if ((uVar7 & 8) != 0) goto joined_r0x00054f40;\n                            }\n                            else {\n                              uVar27 = uVar7 & 8;\n                              if ((uVar19 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                              if (uVar27 != 0) goto LAB_000550a4;\n                            }\n                            if ((((uVar7 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                               (((uVar7 & 0x80) != 0 &&\n                                (pppppppcVar33 = local_8c, (uVar19 & 8) == 0)))) goto LAB_000550a4;\n                          }\n                          pppppppcVar30 = &local_b4;\n                          pppppppcVar29 = param_5;\n                          pppppppcVar33 = local_8c;\n                          iVar18 = (*pcVar10)(pppppppcVar42);\n                          if (iVar18 != 0) {\n                            pppppppcVar14 = (code *******)((int)local_8c + iVar18);\n                            if (iVar18 <= local_3c) {\n                              iVar18 = local_3c;\n                            }\n                            pppppppcVar29 = pppppppcVar14;\n                            local_3c = iVar18;\n                            local_d4 = (code *******)(*pcVar11)(&local_b4);\n                            pppppppcVar15 = local_d4;\n                            if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                            pppppppcVar30 =\n                                 (code *******)\n                                 (pppppppcVar42[6] + (int)pppppppcVar42[3][(int)param_5] * 3);\n                            unaff_s4 = (code *******)((int)pppppppcVar14 * 4);\n                            param_5 = local_50 + (int)pppppppcVar14;\n                            if (*param_5 == (code ******)0x0) {\n                              local_d0 = (code *******)*pppppppcVar30;\n                              local_cc = (code *******)pppppppcVar30[1];\n                              local_c8 = (code *******)pppppppcVar30[2];\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *param_5 = ppppppcVar39;\n                            }\n                            else {\n                              pppppppcVar29 = (code *******)(*param_5)[10];\n                              local_d4 = (code *******)FUN_000484bc(&local_d0);\n                              pppppppcVar15 = local_d4;\n                              if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar15 = local_50 + (int)pppppppcVar14;\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *pppppppcVar15 = ppppppcVar39;\n                              (*(code *)PTR_free_00079c24)(local_c8);\n                            }\n                            unaff_s4 = local_50 + (int)pppppppcVar14;\n                            if ((*unaff_s4 == (code ******)0x0) &&\n                               (pppppppcVar15 = local_d4, local_d4 != (code *******)0x0))\n                            goto LAB_00055e44;\n                          }\n                        }\nLAB_000550a4:\n                        param_6 = (code *******)((int)param_6 + 1);\n                      } while ((int)param_6 < (int)unaff_s7[2]);\n                    }\n                    local_d8 = (code *******)0x0;\n                  }\n                  uVar7 = (uint)(byte)*(code *)((int)local_8c + (int)local_b0);\n                  local_8c = (code *******)((int)local_8c + 1);\n                  do {\n                    if (unaff_s7[0xb] != (code ******)0x0) {\n                      pppppppcVar30 = (code *******)unaff_s7[0xb][uVar7];\nLAB_000553a0:\n                      pppppppcVar14 = pppppppcVar30;\n                      if (local_50 != (code *******)0x0) goto LAB_000553ac;\n                      goto LAB_000553cc;\n                    }\n                    pppppppcVar31 = (code *******)unaff_s7[0xc];\n                    if (pppppppcVar31 != (code *******)0x0) {\n                      pppppppcVar29 = (code *******)((int)local_8c + -1);\n                      uVar19 = FUN_00049110(&local_b4);\n                      if ((uVar19 & 1) == 0) {\n                        pppppppcVar30 = (code *******)pppppppcVar31[uVar7];\n                      }\n                      else {\n                        pppppppcVar31 = pppppppcVar31 + uVar7 + 0x100;\n                        pppppppcVar30 = (code *******)*pppppppcVar31;\n                      }\n                      goto LAB_000553a0;\n                    }\n                    pppppppcVar29 = unaff_s7;\n                    pppppppcVar30 = local_5c;\n                    iVar18 = (*pcVar9)(local_60);\n                  } while (iVar18 != 0);\n                  local_d8 = (code *******)0xc;\n                  pppppppcVar15 = local_d8;\nLAB_00055e44:\n                  local_d8 = pppppppcVar15;\n                  param_4 = (code *******)0x0;\n                  if (local_50 == (code *******)0x0) {\n                    pppppppcVar14 = param_4;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    break;\n                  }\n                  pppppppcVar30 = (code *******)0x0;\nLAB_000553ac:\n                  pppppppcVar29 = &local_b4;\n                  pppppppcVar14 = (code *******)FUN_00053684(&local_d8);\nLAB_000553cc:\n                  param_4 = pppppppcVar14;\n                  if (pppppppcVar14 == (code *******)0x0) {\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    if ((local_50 == (code *******)0x0) ||\n                       ((pppppppcVar28 != (code *******)0x0 && (pppppppcVar34 == (code *******)0x0))\n                       )) break;\n                    param_6 = &local_b4;\n                    param_5 = (code *******)&local_d8;\n                    pppppppcVar31 = (code *******)(PTR_DAT_000799a4 + 0x3684);\n                    do {\n                      pppppppcVar15 = local_50 + (int)local_8c;\n                      pppppppcVar42 = local_8c;\n                      do {\n                        pppppppcVar42 = (code *******)((int)pppppppcVar42 + 1);\n                        pppppppcVar29 = local_4c;\n                        param_4 = pppppppcVar14;\n                        if ((int)local_4c < (int)pppppppcVar42) goto LAB_00055da8;\n                        local_8c = (code *******)((int)local_8c + 1);\n                        pppppppcVar15 = pppppppcVar15 + 1;\n                      } while (*pppppppcVar15 == (code ******)0x0);\n                      pppppppcVar30 = (code *******)0x0;\n                      pppppppcVar29 = param_6;\n                      param_4 = (code *******)(*(code *)pppppppcVar31)(param_5);\n                      if (local_d8 != (code *******)0x0) {\n                        if (param_4 == (code *******)0x0) goto LAB_00055da8;\n                        break;\n                      }\n                      pppppppcVar29 = local_4c;\n                    } while (param_4 == (code *******)0x0);\n                  }\n                  pppppppcVar15 = (code *******)((uint)unaff_s7 ^ (uint)param_4);\n                  pppppppcVar42 = unaff_s7;\n                  pppppppcVar14 = local_138;\n                  if ((bVar1) &&\n                     (pppppppcVar42 = pppppppcVar15, pppppppcVar14 = unaff_s5,\n                     pppppppcVar15 != (code *******)0x0)) {\n                    bVar1 = false;\n                    pppppppcVar14 = local_138;\n                  }\n                  local_138 = pppppppcVar14;\n                  unaff_s7 = param_4;\n                  if ((((uint)param_4[0xd] & 0x8000000) != 0) &&\n                     ((((uint)param_4[0xd] & 0x1000000) == 0 ||\n                      (pppppppcVar29 = param_4, pppppppcVar30 = local_8c,\n                      iVar18 = FUN_00049440(&local_b4), iVar18 != 0)))) {\n                    unaff_s7 = pppppppcVar42;\n                    unaff_s8 = local_8c;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                    local_144 = (code *******)0x0;\n                    unaff_s7 = param_4;\n                  }\n                }\nLAB_00055da8:\n                if (local_144 != (code *******)0x0) {\n                  *local_144 = (code ******)((int)local_138 + (int)*local_144);\n                }\n              }\n              else {\n                param_4 = unaff_s7 + 1;\n                pppppppcVar30 = (code *******)0x0;\n                pppppppcVar29 = param_4;\n                local_d8 = (code *******)FUN_00047a44(&local_b4);\n                unaff_s8 = local_d8;\n                if (local_d8 == (code *******)0x0) {\n                  if (((uint)unaff_s7[0xd] & 0x2000000) == 0) {\n                    pppppppcVar29 = param_4;\n                    bVar1 = false;\n                  }\n                  else {\n                    pppppppcVar29 = param_4;\n                    local_d8 = (code *******)FUN_00052d84(&local_b4);\n                    unaff_s8 = local_d8;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055dbc;\n                    bVar1 = false;\n                  }\n                  goto LAB_00054d50;\n                }\n              }\nLAB_00055dbc:\n              if (unaff_s8 == (code *******)0xffffffff) {\nLAB_00055b04:\n                FUN_0004b7e8(&local_b4);\nLAB_00055b1c:\n                local_dc = (code *******)((int)pppppppcVar24 + (int)local_dc);\n                if ((int)pppppppcVar25 <= (int)local_dc) goto code_r0x00055b38;\n                local_150 = (code *******)0x1;\n                goto LAB_000557e4;\n              }\n              if (unaff_s8 == (code *******)&SUB_fffffffe) {\n                local_150 = (code *******)0xc;\n                goto LAB_000557e4;\n              }\n              local_58 = unaff_s8;\n              if (((uint)param_1[7] & 0x8000000) == 0) {\n                if (pppppppcVar3 < (code *******)0x2) {\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055c08;\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                else {\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                if (pppppppcVar3 < (code *******)0x2) {\nLAB_00055c6c:\n                  pppppppcVar28 = pppppppcVar33;\n                  unaff_s4 = local_60;\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055548;\n                }\n                else {\n                  cVar23 = *(code *)(pppppppcVar38 + 0x16);\nLAB_00055c20:\n                  pppppppcVar28 = pppppppcVar33;\n                  if (-1 < (char)cVar23) goto LAB_00055c6c;\n                }\n                pppppppcVar31 = local_54;\n                pppppppcVar42 = local_60;\n                unaff_s4 = pppppppcVar42;\n                if (unaff_s8 < (code *******)0x3fffffff) {\n                  param_4 = (code *******)((int)((int)unaff_s8 + 1) * 4);\n                  unaff_s5 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                  if (unaff_s5 == (code *******)0x0) {\nLAB_00055b9c:\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    local_150 = (code *******)0xc;\n                    pppppppcVar33 = pppppppcVar28;\n                  }\n                  else {\n                    pppppppcVar29 = (code *******)&local_d0;\n                    if (pppppppcVar42[0x13] == (code ******)0x0) {\n                      local_cc = (code *******)0x0;\n                      local_c8 = pppppppcVar31;\n                      local_c0 = 0;\n                      local_bc = 0;\n                      local_b8 = 0;\n                      local_d0 = unaff_s5;\n                      local_c4 = unaff_s8;\n                      param_5 = (code *******)FUN_0005421c(&local_b4);\n                      (*(code *)PTR_free_00079c24)(local_b8);\n                      if (param_5 == (code *******)0x0) {\n                        param_4 = (code *******)*unaff_s5;\n                        if (param_4 == (code *******)0x0) {\nLAB_00055b70:\n                          (*(code *)PTR_free_00079c24)(unaff_s5);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          pppppppcVar33 = pppppppcVar28;\n                          goto LAB_00055b04;\n                        }\nLAB_00055528:\n                        (*(code *)PTR_free_00079c24)(local_50);\n                        pppppppcVar33 = pppppppcVar28;\n                        unaff_s4 = pppppppcVar42;\n                        local_58 = unaff_s8;\n                        local_54 = pppppppcVar31;\n                        local_50 = unaff_s5;\n                        goto LAB_00055548;\n                      }\nLAB_00055acc:\n                      param_4 = (code *******)0x0;\n                      pppppppcVar33 = pppppppcVar28;\n                      unaff_s4 = pppppppcVar42;\n                    }\n                    else {\n                      param_4 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                      if (param_4 == (code *******)0x0) goto LAB_00055b9c;\n                      unaff_s7 = (code *******)&local_d0;\n                      pcVar8 = (code *)(PTR_DAT_000799a4 + 0x421c);\n                      pcVar9 = (code *)(PTR_DAT_000799a4 + -0x6bc0);\n                      pppppppcVar33 = pppppppcVar28;\n                      while( true ) {\n                        pppppppcVar28 = (code *******)((int)unaff_s8 + 1);\n                        param_6 = (code *******)((int)pppppppcVar28 * 4);\n                        pppppppcVar30 = param_6;\n                        (*(code *)PTR_memset_00079b00)(param_4,0);\n                        local_c0 = 0;\n                        local_bc = 0;\n                        local_b8 = 0;\n                        pppppppcVar29 = unaff_s7;\n                        local_d0 = unaff_s5;\n                        local_cc = param_4;\n                        local_c8 = pppppppcVar31;\n                        local_c4 = unaff_s8;\n                        param_5 = (code *******)(*pcVar8)(&local_b4);\n                        (*(code *)PTR_free_00079c24)(local_b8);\n                        unaff_s4 = pppppppcVar28;\n                        if (param_5 != (code *******)0x0) break;\n                        if ((*unaff_s5 != (code ******)0x0) ||\n                           (param_6 = param_6 + -1, *param_4 != (code ******)0x0)) {\n                          pppppppcVar29 = unaff_s5;\n                          pppppppcVar30 = param_4;\n                          param_5 = (code *******)FUN_000520d0(pppppppcVar42);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          if (param_5 != (code *******)0x0) goto LAB_00055acc;\n                          goto LAB_00055528;\n                        }\n                        param_6 = (code *******)((int)local_50 + (int)param_6);\n                        do {\n                          while( true ) {\n                            unaff_s8 = (code *******)((int)unaff_s8 + -1);\n                            if ((int)unaff_s8 < 0) goto LAB_00055b70;\n                            pppppppcVar29 = (code *******)param_6[-1];\n                            if (pppppppcVar29 != (code *******)0x0) break;\n                            param_6 = param_6 + -1;\n                          }\n                          param_6 = param_6 + -1;\n                        } while (((uint)pppppppcVar29[0xd] & 0x8000000) == 0);\n                        pppppppcVar31 = (code *******)(*pcVar9)(&local_b4,pppppppcVar29,unaff_s8);\n                        pppppppcVar33 = pppppppcVar28;\n                      }\n                    }\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    (*(code *)PTR_free_00079c24)(param_4);\n                    local_150 = param_5;\n                    if (param_5 == (code *******)0x1) goto LAB_00055b04;\n                  }\n                }\n                else {\n                  local_150 = (code *******)0xc;\n                  pppppppcVar33 = pppppppcVar28;\n                }\n                goto LAB_000557e4;\n              }\n              if (pppppppcVar38[0x13] != (code ******)0x0) {\n                pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                pppppppcVar30 = unaff_s8;\n                local_54 = (code *******)FUN_00049440(&local_b4);\n                goto LAB_00055c6c;\n              }\nLAB_00055c08:\n              if ((((uint)param_1[7] & 0x8000000) == 0) && ((code *******)0x1 < pppppppcVar3)) {\n                cVar23 = *(code *)(pppppppcVar38 + 0x16);\n                goto LAB_00055c20;\n              }\nLAB_00055548:\n              if (pppppppcVar3 == (code *******)0x0) goto LAB_000557e4;\n              if (pppppppcVar3 < (code *******)0x2) {\n                *param_8 = (code ******)0x0;\n                param_8[1] = (code ******)local_58;\n                goto LAB_000555ac;\n              }\n              pppppppcVar29 = param_8 + 2;\n              do {\n                pppppppcVar29[1] = (code ******)0xffffffff;\n                *pppppppcVar29 = (code ******)0xffffffff;\n                pppppppcVar29 = pppppppcVar29 + 2;\n              } while (pppppppcVar29 != param_8 + (int)pppppppcVar3 * 2);\n              *param_8 = (code ******)0x0;\n              param_8[1] = (code ******)local_58;\n              if (((uint)param_1[7] & 0x8000000) != 0) {\nLAB_000555ac:\n                pppppppcVar33 = param_8;\n                do {\n                  pppppppcVar29 = (code *******)*pppppppcVar33;\n                  if (pppppppcVar29 != (code *******)0xffffffff) {\n                    if (local_68 != '\0') {\n                      pppppppcVar34 = local_94;\n                      if (pppppppcVar29 != local_98) {\n                        pppppppcVar34 = *(code ********)(local_a8 + (int)pppppppcVar29 * 4);\n                      }\n                      *pppppppcVar33 = (code ******)pppppppcVar34;\n                      pppppppcVar29 = local_94;\n                      if (local_98 != (code *******)pppppppcVar33[1]) {\n                        pppppppcVar29 = *(code ********)(local_a8 + (int)pppppppcVar33[1] * 4);\n                      }\n                      pppppppcVar33[1] = (code ******)pppppppcVar29;\n                    }\n                    *pppppppcVar33 = (code ******)((int)local_dc + (int)*pppppppcVar33);\n                    pppppppcVar29 = (code *******)((int)local_dc + (int)pppppppcVar33[1]);\n                    pppppppcVar33[1] = (code ******)pppppppcVar29;\n                  }\n                  pppppppcVar33 = pppppppcVar33 + 2;\n                } while (pppppppcVar33 != param_8 + (int)pppppppcVar3 * 2);\n                if (0 < local_118) {\n                  pppppppcVar33 = param_8 + (int)pppppppcVar3 * 2;\n                  do {\n                    *pppppppcVar33 = (code ******)0xffffffff;\n                    pppppppcVar33[1] = (code ******)0xffffffff;\n                    pppppppcVar33 = pppppppcVar33 + 2;\n                  } while (pppppppcVar33 != param_8 + (int)param_7 * 2);\n                }\n                pppppppcVar30 = local_dc;\n                pppppppcVar33 = param_8;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar38[0x21] != (code ******)0x0) {\n                  pppppppcVar30 = (code *******)((int)pppppppcVar3 + -1);\n                  pppppppcVar34 = (code *******)0x0;\n                  pppppppcVar3 = param_8;\n                  while( true ) {\n                    pppppppcVar29 = (code *******)((int)pppppppcVar34 * 4);\n                    if (pppppppcVar30 == pppppppcVar34) break;\n                    if (*(code ********)((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) !=\n                        pppppppcVar34) {\n                      pppppppcVar3[2] =\n                           param_8[(int)((int)*(code ********)\n                                               ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1)\n                                   * 2];\n                      pppppppcVar3[3] =\n                           param_8[((int)*(code ******)\n                                          ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1) * 2 +\n                                   1];\n                    }\n                    pppppppcVar34 = (code *******)((int)pppppppcVar34 + 1);\n                    pppppppcVar3 = pppppppcVar3 + 2;\n                  }\n                }\n                goto LAB_000557e4;\n              }\n              if ((char)*(code *)(pppppppcVar38 + 0x16) < '\0') {\n                local_168 = (uint)(0 < (int)pppppppcVar38[0x13]);\n              }\n              else {\n                local_168 = 0;\n              }\n              pppppppcVar29 = &local_b4;\n              pppppppcVar30 = pppppppcVar3;\n              pppppppcVar33 = param_8;\n              local_150 = (code *******)FUN_0004f4a0(param_1);\n              if (local_150 == (code *******)0x0) goto LAB_000555ac;\n            }\n          }\n          else if (local_90 < 0x3fffffff) {\n            local_50 = (code *******)(*(code *)PTR_malloc_00079b54)((local_90 + 1) * 4);\n            if (local_50 != (code *******)0x0) goto LAB_00055a40;\n            local_150 = (code *******)0xc;\n            param_6 = pppppppcVar36;\n          }\n          else {\n            local_150 = (code *******)0xc;\n            param_6 = pppppppcVar36;\n          }\n        }\n        else {\n          unaff_s5 = (code *******)((int)ppppppcVar35 * 8);\n          if (pppppppcVar36 < (code *******)0xccccccd) {\n            unaff_s4 = (code *******)(*(code *)PTR_malloc_00079b54)((int)ppppppcVar35 * 0x28);\n            local_40 = unaff_s4;\n            local_30 = (*(code *)PTR_malloc_00079b54)(unaff_s5);\n            if ((unaff_s4 != (code *******)0x0) && (local_30 != 0)) goto LAB_000559f0;\n          }\n          local_150 = (code *******)0xc;\n          param_6 = pppppppcVar36;\n        }\nLAB_000557e4:\n        (*(code *)PTR_free_00079c24)(local_50);\n        param_1 = pppppppcVar30;\n        if (pppppppcVar38[0x13] != (code ******)0x0) {\n          FUN_0004b7e8(&local_b4);\n          (*(code *)PTR_free_00079c24)(local_30);\n          (*(code *)PTR_free_00079c24)(local_40);\n          param_1 = pppppppcVar30;\n        }\n        FUN_0004b2bc(&local_b4);\n        pppppppcStack_1a0 = param_4;\n        pppppppcStack_19c = pppppppcVar31;\n      }\n    }\n  }" if (parenthesized_expression "(param_1[2] == (code ******)0x0)" ( (binary_expression "param_1[2] == (code ******)0x0" (subscript_expression "param_1[2]" identifier [ number_literal ]) == (cast_expression "(code ******)0x0" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (compound_statement "{\n    local_150 = (code *******)0x1;\n  }" { (expression_statement "local_150 = (code *******)0x1;" (assignment_expression "local_150 = (code *******)0x1" identifier = (cast_expression "(code *******)0x1" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) }) (else_clause "else if (pppppppcVar38[9] == (code ******)0x0) {\n    local_150 = (code *******)0x1;\n  }\n  else if (pppppppcVar38[10] == (code ******)0x0) {\n    local_150 = (code *******)0x1;\n  }\n  else if (pppppppcVar38[0xb] == (code ******)0x0) {\n    local_150 = (code *******)0x1;\n  }\n  else {\n    pppppppcVar29 = (code *******)pppppppcVar38[0xc];\n    if (pppppppcVar29 == (code *******)0x0) {\n      local_150 = (code *******)0x1;\n    }\n    else {\n      pppppppcVar3 = param_5;\n      if ((((pppppppcVar38[9][2] == (code *****)0x0) && (pppppppcVar38[10][2] == (code *****)0x0))\n          && ((pppppppcVar38[0xb][2] == (code *****)0x0 || (((uint)param_1[7] & 0x1000000) == 0))))\n         && ((pppppppcVar3 = param_4, param_4 != (code *******)0x0 &&\n             (param_4 = param_5, pppppppcVar3 = param_5, param_5 != (code *******)0x0)))) {\n        local_150 = (code *******)0x1;\n        pppppppcStack_1a0 = param_5;\n      }\n      else {\n        param_5 = pppppppcVar3;\n        pppppppcVar3 = (code *******)((int)param_7 - local_118);\n        if (pppppppcVar3 == (code *******)0x0) {\n          pppppppcVar34 = (code *******)(uint)(pppppppcVar38[0x13] != (code ******)0x0);\n        }\n        else {\n          pppppppcVar34 = (code *******)0x1;\n        }\n        ppppppcVar32 = param_1[5];\n        local_6c = (byte)((uint)((int)param_1[3] << 9) >> 0x1f);\n        local_64 = (code *******)pppppppcVar38[0x17];\n        pppppppcVar31 = (code *******)((int)pppppppcVar38[2] + 1);\n        if ((int)pppppppcVar38[2] + 1 < (int)local_64) {\n          pppppppcVar31 = local_64;\n        }\n        pppppppcVar30 = (code *******)(uint)((int)param_3 + 1 < (int)pppppppcVar31);\n        pppppppcVar33 = (code *******)0x1;\n        local_69 = local_6c;\n        if (ppppppcVar32 != (code ******)0x0) {\n          local_69 = 1;\n        }\n        local_6b = (byte)((uint)((int)pppppppcVar38[0x16] << 2) >> 0x1f);\n        local_6a = (byte)((uint)((int)pppppppcVar38[0x16] << 3) >> 0x1f);\n        pppppppcVar29 = (code *******)((int)param_3 + 1);\n        if (pppppppcVar30 == (code *******)0x0) {\n          pppppppcVar29 = pppppppcVar31;\n        }\n        local_b4 = param_2;\n        local_88 = param_3;\n        local_84 = param_3;\n        local_80 = param_3;\n        local_7c = param_3;\n        local_74 = ppppppcVar32;\n        local_150 = (code *******)FUN_00046d2c(&local_b4);\n        pppppppcVar31 = pppppppcVar34;\n        param_6 = param_6;\n        if (local_150 != (code *******)0x0) goto LAB_000557e4;\n        local_70 = pppppppcVar38 + 0x18;\n        local_66 = (byte)((uint)((int)pppppppcVar38[0x16] << 4) >> 0x1f);\n        pppppppcVar2 = (code *******)0x0;\n        local_98 = pppppppcVar2;\n        if ((local_69 == 0) && (local_b0 = param_2, (int)pppppppcVar38[0x17] < 2)) {\n          local_98 = param_3;\n        }\n        local_7c = param_6;\n        local_80 = param_6;\n        local_67 = (byte)((uint)((int)param_1[7] << 7) >> 0x1f);\n        ppppppcVar35 = pppppppcVar38[0x13];\n        pppppppcVar36 = (code *******)((int)ppppppcVar35 * 2);\n        local_5c = param_9;\n        local_58 = (code *******)0xffffffff;\n        local_94 = local_98;\n        if ((int)pppppppcVar36 < 1) {\nLAB_000559f0:\n          local_3c = 1;\n          local_44 = pppppppcVar36;\n          local_34 = pppppppcVar36;\n          if ((pppppppcVar3 < (code *******)0x2) && (((uint)pppppppcVar38[0x16] & 0x40000000) == 0))\n          {\n            local_50 = (code *******)0x0;\nLAB_00055a40:\n            local_78 = 6;\n            if (((uint)param_9 & 1) != 0) {\n              local_78 = 4;\n            }\n            pppppppcVar24 = (code *******)0x1;\n            pppppppcVar25 = param_4;\n            if ((int)param_5 < (int)param_4) {\n              pppppppcVar24 = (code *******)0xffffffff;\n              pppppppcVar25 = param_5;\n            }\n            pppppppcVar26 = param_5;\n            if ((int)param_5 <= (int)param_4) {\n              pppppppcVar26 = param_4;\n            }\n            ppppppcVar35 = pppppppcVar38[0x17];\n            uVar16 = 8;\n            if (local_148 != (code *******)0x0) {\n              if (ppppppcVar35 == (code ******)0x1) {\n                pppppppcVar28 = (code *******)0x4;\n              }\n              else {\n                pppppppcVar28 = pppppppcVar2;\n                if ((-1 < (int)param_1[3] << 9) && (ppppppcVar32 == (code ******)0x0)) {\n                  pppppppcVar28 = (code *******)0x4;\n                }\n              }\n              pppppppcVar29 = (code *******)0x0;\n              if ((int)param_4 <= (int)param_5) {\n                pppppppcVar29 = (code *******)0x2;\n              }\n              uVar16 = (uint)(ppppppcVar32 != (code ******)0x0) | (uint)pppppppcVar28 |\n                       (uint)pppppppcVar29;\n            }\n            local_dc = param_4;\n            if ((int)param_4 < (int)pppppppcVar25) {\n              local_150 = (code *******)0x1;\n              param_6 = pppppppcVar36;\n            }\n            else if ((int)pppppppcVar26 < (int)param_4) {\n              local_150 = (code *******)0x1;\n              param_4 = (code *******)(uint)((int)param_5 < (int)param_4);\n              param_6 = pppppppcVar36;\n            }\n            else {\n              pppppppcVar36 = (code *******)&local_dc;\n              if ((code *******)(uint)((int)param_5 < (int)param_4) != (code *******)0x0) {\n                pppppppcVar36 = (code *******)0x0;\n              }\n              pcVar4 = (code *)(PTR_DAT_000799a4 + -0x2b7c);\n              piVar5 = (int *)(PTR_s_nt0_000795b8 + (uVar16 - 4) * 4 + 0x6e38);\nLAB_00055b44:\n              if (uVar16 - 4 < 5) {\n                    /* WARNING: Could not emulate address calculation at 0x00054920 */\n                    /* WARNING: Treating indirect jump as call */\n                pppppppcVar29 = (code *******)(*(code *)(&_gp_1 + *piVar5))();\n                return pppppppcVar29;\n              }\n              param_5 = &local_b4;\n              pppppppcVar28 = pppppppcVar33;\n              while( true ) {\n                param_4 = local_dc;\n                pppppppcVar33 = (code *******)((int)local_dc - local_9c);\n                pppppppcVar30 = param_9;\n                pppppppcVar31 = pppppppcVar2;\n                param_6 = local_148;\n                unaff_s4 = param_3;\n                unaff_s5 = pppppppcVar24;\n                unaff_s7 = pppppppcVar26;\n                if (local_94 <= pppppppcVar33) {\n                  pppppppcVar29 = local_dc;\n                  local_150 = (code *******)(*pcVar4)(param_5);\n                  pppppppcVar33 = pppppppcVar28;\n                  if (local_150 != (code *******)0x0) goto LAB_000557e4;\n                  pppppppcVar33 = (code *******)((int)param_4 - local_9c);\n                }\n                if ((int)param_4 < (int)param_3) {\n                  uVar7 = (uint)(byte)*(code *)((int)pppppppcVar33 + (int)local_b0);\n                }\n                else {\n                  uVar7 = 0;\n                }\n                param_4 = (code *******)((int)param_4 + (int)pppppppcVar24);\n                if (*(code *)((int)local_148 + uVar7) != (code)0x0) break;\n                pppppppcVar33 = pppppppcVar28;\n                local_dc = param_4;\n                if ((int)param_4 < (int)pppppppcVar25) {\n                  local_150 = (code *******)0x1;\n                  goto LAB_000557e4;\n                }\n                if ((code *******)(uint)((int)pppppppcVar26 < (int)param_4) != (code *******)0x0) {\n                  local_150 = (code *******)0x1;\n                  param_4 = (code *******)(uint)((int)pppppppcVar26 < (int)param_4);\n                  goto LAB_000557e4;\n                }\n              }\n              while( true ) {\n                pppppppcVar29 = local_dc;\n                pppppppcVar30 = param_9;\n                pppppppcVar6 = (code *******)(*pcVar4)(&local_b4);\n                pppppppcVar14 = local_60;\n                pppppppcVar42 = local_8c;\n                pppppppcVar33 = pppppppcVar28;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar6 != (code *******)0x0) goto LAB_000557e4;\n                if (((ppppppcVar35 != (code ******)0x1) && (local_98 != (code *******)0x0)) &&\n                   (*local_ac == -1)) goto LAB_00055b1c;\n                local_3c = 0;\n                local_48 = 0;\n                local_4c = (code *******)0x0;\n                local_138 = local_8c;\n                local_d8 = (code *******)0x0;\n                unaff_s7 = (code *******)local_60[9];\n                pppppppcVar30 = local_5c;\n                param_4 = pppppppcVar14;\n                if (((uint)unaff_s7[0xd] & 0x1000000) == 0) break;\n                pppppppcVar29 = (code *******)((int)local_8c + -1);\n                pppppppcVar33 = (code *******)FUN_00049110(&local_b4);\n                if (((uint)pppppppcVar33 & 1) == 0) {\n                  if (pppppppcVar33 == (code *******)0x0) break;\n                  if (((uint)pppppppcVar33 & 6) == 6) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xc];\n                    goto LAB_00054d1c;\n                  }\n                  if (((uint)pppppppcVar33 & 2) != 0) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xb];\n                    goto LAB_00054d1c;\n                  }\n                  pppppppcVar28 = pppppppcVar33;\n                  if (((uint)pppppppcVar33 & 4) == 0) break;\n                  pppppppcVar30 = (code *******)unaff_s7[10];\n                  pppppppcVar29 = pppppppcVar14;\n                  unaff_s7 = (code *******)FUN_0004ae34(&local_d8);\n                  pppppppcVar28 = pppppppcVar33;\n                  if (unaff_s7 != (code *******)0x0) break;\n                  if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                }\n                else {\n                  unaff_s7 = (code *******)pppppppcVar14[10];\nLAB_00054d1c:\n                  pppppppcVar28 = (code *******)PTR_s_nt0_000795b8;\n                  if (unaff_s7 != (code *******)0x0) break;\n                }\n                pppppppcVar28 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                local_dc = (code *******)\n                           (*(code *)PTR___assert_fail_000799f8)\n                                     (PTR_s_nt0_000795b8 + 0x71a0,pppppppcVar29,0x435);\n                if (local_dc == pppppppcVar26) {\n                  if ((int)local_dc < (int)param_3) {\n                    uVar7 = (uint)(byte)*(code *)((int)local_dc + (int)param_2);\n                  }\n                  else {\n                    uVar7 = 0;\n                  }\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    uVar7 = (uint)*(byte *)((int)ppppppcVar32 + uVar7);\n                  }\n                  if (*(code *)((int)local_148 + uVar7) == (code)0x0) {\n                    local_150 = (code *******)0x1;\n                    pppppppcVar30 = param_9;\n                    pppppppcVar33 = pppppppcVar28;\n                    goto LAB_000557e4;\n                  }\n                }\n              }\n              pppppppcVar33 = pppppppcVar28;\n              bVar1 = pppppppcVar36 != (code *******)0x0;\n              if ((local_50 == (code *******)0x0) ||\n                 (local_50[(int)pppppppcVar42] = (code ******)unaff_s7,\n                 pppppppcVar14[0x13] == (code ******)0x0)) {\nLAB_00054d50:\n                if ((int)unaff_s7[0xd] << 4 < 0) {\n                  if ((((uint)unaff_s7[0xd] & 0x1000000) == 0) ||\n                     (pppppppcVar29 = unaff_s7, pppppppcVar30 = pppppppcVar42,\n                     iVar18 = FUN_00049440(&local_b4), iVar18 != 0)) {\n                    unaff_s8 = pppppppcVar42;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                  }\n                  else {\n                    pppppppcVar42 = (code *******)0xffffffff;\n                    pppppppcVar28 = (code *******)0x0;\n                  }\n                }\n                else {\n                  pppppppcVar42 = (code *******)0xffffffff;\n                  pppppppcVar28 = (code *******)0x0;\n                }\n                pcVar8 = (code *)(PTR_DAT_000799a4 + -0x7144);\n                pcVar9 = (code *)(PTR_DAT_000799a4 + -0x1980);\n                pcVar10 = (code *)(PTR_DAT_000799a4 + -0x2f9c);\n                unaff_s8 = pppppppcVar42;\n                local_144 = pppppppcVar36;\n                while( true ) {\n                  uVar44 = CONCAT44(local_98,local_84);\n                  unaff_s5 = (code *******)((int)local_8c + 1);\n                  pppppppcVar29 = local_8c;\n                  if ((int)local_7c <= (int)local_8c) break;\n                  if (((int)local_90 <= (int)unaff_s5) && ((int)local_90 < (int)local_84))\n                  goto LAB_00054e94;\n                  if ((int)local_98 <= (int)unaff_s5) {\n                    while ((int)((ulonglong)uVar44 >> 0x20) < (int)uVar44) {\nLAB_00054e94:\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 2);\n                      local_d8 = (code *******)(*pcVar8)(&local_b4);\n                      if (local_d8 == (code *******)0x0) break;\n                      pppppppcVar14 = param_4;\n                      if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                      pppppppcVar33 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                      pppppppcVar30 = (code *******)0x46c;\n                      pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                      uVar44 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0);\n                      pppppppcVar28 = pppppppcVar38;\n                    }\n                  }\n                  pppppppcVar42 = local_60;\n                  if ((int)unaff_s7[0xd] << 5 < 0) {\n                    pppppppcVar31 = pppppppcVar42;\n                    if (0 < (int)unaff_s7[2]) {\n                      pcVar11 = (code *)(PTR_DAT_000799a4 + -0x6fdc);\n                      pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6ef0);\n                      param_6 = (code *******)0x0;\n                      do {\n                        param_5 = (code *******)unaff_s7[3][(int)param_6];\n                        ppppppcVar39 = *pppppppcVar42;\n                        pppppcVar13 = ppppppcVar39[(int)param_5 * 2 + 1];\n                        if (((uint)pppppcVar13 & 0x800) != 0) {\n                          if (((uint)pppppcVar13 & 0xffc000) != 0) {\n                            pppppppcVar29 = local_8c;\n                            uVar19 = (*pcVar12)(&local_b4,local_8c,local_5c);\n                            uVar7 = (uint)((int)ppppppcVar39[(int)param_5 * 2 + 1] << 8) >> 0x16;\n                            if ((uVar7 & 4) == 0) {\n                              uVar27 = uVar19 & 1;\n                              if ((uVar7 & 8) != 0) goto joined_r0x00054f40;\n                            }\n                            else {\n                              uVar27 = uVar7 & 8;\n                              if ((uVar19 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                              if (uVar27 != 0) goto LAB_000550a4;\n                            }\n                            if ((((uVar7 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                               (((uVar7 & 0x80) != 0 &&\n                                (pppppppcVar33 = local_8c, (uVar19 & 8) == 0)))) goto LAB_000550a4;\n                          }\n                          pppppppcVar30 = &local_b4;\n                          pppppppcVar29 = param_5;\n                          pppppppcVar33 = local_8c;\n                          iVar18 = (*pcVar10)(pppppppcVar42);\n                          if (iVar18 != 0) {\n                            pppppppcVar14 = (code *******)((int)local_8c + iVar18);\n                            if (iVar18 <= local_3c) {\n                              iVar18 = local_3c;\n                            }\n                            pppppppcVar29 = pppppppcVar14;\n                            local_3c = iVar18;\n                            local_d4 = (code *******)(*pcVar11)(&local_b4);\n                            pppppppcVar15 = local_d4;\n                            if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                            pppppppcVar30 =\n                                 (code *******)\n                                 (pppppppcVar42[6] + (int)pppppppcVar42[3][(int)param_5] * 3);\n                            unaff_s4 = (code *******)((int)pppppppcVar14 * 4);\n                            param_5 = local_50 + (int)pppppppcVar14;\n                            if (*param_5 == (code ******)0x0) {\n                              local_d0 = (code *******)*pppppppcVar30;\n                              local_cc = (code *******)pppppppcVar30[1];\n                              local_c8 = (code *******)pppppppcVar30[2];\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *param_5 = ppppppcVar39;\n                            }\n                            else {\n                              pppppppcVar29 = (code *******)(*param_5)[10];\n                              local_d4 = (code *******)FUN_000484bc(&local_d0);\n                              pppppppcVar15 = local_d4;\n                              if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar15 = local_50 + (int)pppppppcVar14;\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *pppppppcVar15 = ppppppcVar39;\n                              (*(code *)PTR_free_00079c24)(local_c8);\n                            }\n                            unaff_s4 = local_50 + (int)pppppppcVar14;\n                            if ((*unaff_s4 == (code ******)0x0) &&\n                               (pppppppcVar15 = local_d4, local_d4 != (code *******)0x0))\n                            goto LAB_00055e44;\n                          }\n                        }\nLAB_000550a4:\n                        param_6 = (code *******)((int)param_6 + 1);\n                      } while ((int)param_6 < (int)unaff_s7[2]);\n                    }\n                    local_d8 = (code *******)0x0;\n                  }\n                  uVar7 = (uint)(byte)*(code *)((int)local_8c + (int)local_b0);\n                  local_8c = (code *******)((int)local_8c + 1);\n                  do {\n                    if (unaff_s7[0xb] != (code ******)0x0) {\n                      pppppppcVar30 = (code *******)unaff_s7[0xb][uVar7];\nLAB_000553a0:\n                      pppppppcVar14 = pppppppcVar30;\n                      if (local_50 != (code *******)0x0) goto LAB_000553ac;\n                      goto LAB_000553cc;\n                    }\n                    pppppppcVar31 = (code *******)unaff_s7[0xc];\n                    if (pppppppcVar31 != (code *******)0x0) {\n                      pppppppcVar29 = (code *******)((int)local_8c + -1);\n                      uVar19 = FUN_00049110(&local_b4);\n                      if ((uVar19 & 1) == 0) {\n                        pppppppcVar30 = (code *******)pppppppcVar31[uVar7];\n                      }\n                      else {\n                        pppppppcVar31 = pppppppcVar31 + uVar7 + 0x100;\n                        pppppppcVar30 = (code *******)*pppppppcVar31;\n                      }\n                      goto LAB_000553a0;\n                    }\n                    pppppppcVar29 = unaff_s7;\n                    pppppppcVar30 = local_5c;\n                    iVar18 = (*pcVar9)(local_60);\n                  } while (iVar18 != 0);\n                  local_d8 = (code *******)0xc;\n                  pppppppcVar15 = local_d8;\nLAB_00055e44:\n                  local_d8 = pppppppcVar15;\n                  param_4 = (code *******)0x0;\n                  if (local_50 == (code *******)0x0) {\n                    pppppppcVar14 = param_4;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    break;\n                  }\n                  pppppppcVar30 = (code *******)0x0;\nLAB_000553ac:\n                  pppppppcVar29 = &local_b4;\n                  pppppppcVar14 = (code *******)FUN_00053684(&local_d8);\nLAB_000553cc:\n                  param_4 = pppppppcVar14;\n                  if (pppppppcVar14 == (code *******)0x0) {\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    if ((local_50 == (code *******)0x0) ||\n                       ((pppppppcVar28 != (code *******)0x0 && (pppppppcVar34 == (code *******)0x0))\n                       )) break;\n                    param_6 = &local_b4;\n                    param_5 = (code *******)&local_d8;\n                    pppppppcVar31 = (code *******)(PTR_DAT_000799a4 + 0x3684);\n                    do {\n                      pppppppcVar15 = local_50 + (int)local_8c;\n                      pppppppcVar42 = local_8c;\n                      do {\n                        pppppppcVar42 = (code *******)((int)pppppppcVar42 + 1);\n                        pppppppcVar29 = local_4c;\n                        param_4 = pppppppcVar14;\n                        if ((int)local_4c < (int)pppppppcVar42) goto LAB_00055da8;\n                        local_8c = (code *******)((int)local_8c + 1);\n                        pppppppcVar15 = pppppppcVar15 + 1;\n                      } while (*pppppppcVar15 == (code ******)0x0);\n                      pppppppcVar30 = (code *******)0x0;\n                      pppppppcVar29 = param_6;\n                      param_4 = (code *******)(*(code *)pppppppcVar31)(param_5);\n                      if (local_d8 != (code *******)0x0) {\n                        if (param_4 == (code *******)0x0) goto LAB_00055da8;\n                        break;\n                      }\n                      pppppppcVar29 = local_4c;\n                    } while (param_4 == (code *******)0x0);\n                  }\n                  pppppppcVar15 = (code *******)((uint)unaff_s7 ^ (uint)param_4);\n                  pppppppcVar42 = unaff_s7;\n                  pppppppcVar14 = local_138;\n                  if ((bVar1) &&\n                     (pppppppcVar42 = pppppppcVar15, pppppppcVar14 = unaff_s5,\n                     pppppppcVar15 != (code *******)0x0)) {\n                    bVar1 = false;\n                    pppppppcVar14 = local_138;\n                  }\n                  local_138 = pppppppcVar14;\n                  unaff_s7 = param_4;\n                  if ((((uint)param_4[0xd] & 0x8000000) != 0) &&\n                     ((((uint)param_4[0xd] & 0x1000000) == 0 ||\n                      (pppppppcVar29 = param_4, pppppppcVar30 = local_8c,\n                      iVar18 = FUN_00049440(&local_b4), iVar18 != 0)))) {\n                    unaff_s7 = pppppppcVar42;\n                    unaff_s8 = local_8c;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                    local_144 = (code *******)0x0;\n                    unaff_s7 = param_4;\n                  }\n                }\nLAB_00055da8:\n                if (local_144 != (code *******)0x0) {\n                  *local_144 = (code ******)((int)local_138 + (int)*local_144);\n                }\n              }\n              else {\n                param_4 = unaff_s7 + 1;\n                pppppppcVar30 = (code *******)0x0;\n                pppppppcVar29 = param_4;\n                local_d8 = (code *******)FUN_00047a44(&local_b4);\n                unaff_s8 = local_d8;\n                if (local_d8 == (code *******)0x0) {\n                  if (((uint)unaff_s7[0xd] & 0x2000000) == 0) {\n                    pppppppcVar29 = param_4;\n                    bVar1 = false;\n                  }\n                  else {\n                    pppppppcVar29 = param_4;\n                    local_d8 = (code *******)FUN_00052d84(&local_b4);\n                    unaff_s8 = local_d8;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055dbc;\n                    bVar1 = false;\n                  }\n                  goto LAB_00054d50;\n                }\n              }\nLAB_00055dbc:\n              if (unaff_s8 == (code *******)0xffffffff) {\nLAB_00055b04:\n                FUN_0004b7e8(&local_b4);\nLAB_00055b1c:\n                local_dc = (code *******)((int)pppppppcVar24 + (int)local_dc);\n                if ((int)pppppppcVar25 <= (int)local_dc) goto code_r0x00055b38;\n                local_150 = (code *******)0x1;\n                goto LAB_000557e4;\n              }\n              if (unaff_s8 == (code *******)&SUB_fffffffe) {\n                local_150 = (code *******)0xc;\n                goto LAB_000557e4;\n              }\n              local_58 = unaff_s8;\n              if (((uint)param_1[7] & 0x8000000) == 0) {\n                if (pppppppcVar3 < (code *******)0x2) {\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055c08;\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                else {\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                if (pppppppcVar3 < (code *******)0x2) {\nLAB_00055c6c:\n                  pppppppcVar28 = pppppppcVar33;\n                  unaff_s4 = local_60;\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055548;\n                }\n                else {\n                  cVar23 = *(code *)(pppppppcVar38 + 0x16);\nLAB_00055c20:\n                  pppppppcVar28 = pppppppcVar33;\n                  if (-1 < (char)cVar23) goto LAB_00055c6c;\n                }\n                pppppppcVar31 = local_54;\n                pppppppcVar42 = local_60;\n                unaff_s4 = pppppppcVar42;\n                if (unaff_s8 < (code *******)0x3fffffff) {\n                  param_4 = (code *******)((int)((int)unaff_s8 + 1) * 4);\n                  unaff_s5 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                  if (unaff_s5 == (code *******)0x0) {\nLAB_00055b9c:\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    local_150 = (code *******)0xc;\n                    pppppppcVar33 = pppppppcVar28;\n                  }\n                  else {\n                    pppppppcVar29 = (code *******)&local_d0;\n                    if (pppppppcVar42[0x13] == (code ******)0x0) {\n                      local_cc = (code *******)0x0;\n                      local_c8 = pppppppcVar31;\n                      local_c0 = 0;\n                      local_bc = 0;\n                      local_b8 = 0;\n                      local_d0 = unaff_s5;\n                      local_c4 = unaff_s8;\n                      param_5 = (code *******)FUN_0005421c(&local_b4);\n                      (*(code *)PTR_free_00079c24)(local_b8);\n                      if (param_5 == (code *******)0x0) {\n                        param_4 = (code *******)*unaff_s5;\n                        if (param_4 == (code *******)0x0) {\nLAB_00055b70:\n                          (*(code *)PTR_free_00079c24)(unaff_s5);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          pppppppcVar33 = pppppppcVar28;\n                          goto LAB_00055b04;\n                        }\nLAB_00055528:\n                        (*(code *)PTR_free_00079c24)(local_50);\n                        pppppppcVar33 = pppppppcVar28;\n                        unaff_s4 = pppppppcVar42;\n                        local_58 = unaff_s8;\n                        local_54 = pppppppcVar31;\n                        local_50 = unaff_s5;\n                        goto LAB_00055548;\n                      }\nLAB_00055acc:\n                      param_4 = (code *******)0x0;\n                      pppppppcVar33 = pppppppcVar28;\n                      unaff_s4 = pppppppcVar42;\n                    }\n                    else {\n                      param_4 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                      if (param_4 == (code *******)0x0) goto LAB_00055b9c;\n                      unaff_s7 = (code *******)&local_d0;\n                      pcVar8 = (code *)(PTR_DAT_000799a4 + 0x421c);\n                      pcVar9 = (code *)(PTR_DAT_000799a4 + -0x6bc0);\n                      pppppppcVar33 = pppppppcVar28;\n                      while( true ) {\n                        pppppppcVar28 = (code *******)((int)unaff_s8 + 1);\n                        param_6 = (code *******)((int)pppppppcVar28 * 4);\n                        pppppppcVar30 = param_6;\n                        (*(code *)PTR_memset_00079b00)(param_4,0);\n                        local_c0 = 0;\n                        local_bc = 0;\n                        local_b8 = 0;\n                        pppppppcVar29 = unaff_s7;\n                        local_d0 = unaff_s5;\n                        local_cc = param_4;\n                        local_c8 = pppppppcVar31;\n                        local_c4 = unaff_s8;\n                        param_5 = (code *******)(*pcVar8)(&local_b4);\n                        (*(code *)PTR_free_00079c24)(local_b8);\n                        unaff_s4 = pppppppcVar28;\n                        if (param_5 != (code *******)0x0) break;\n                        if ((*unaff_s5 != (code ******)0x0) ||\n                           (param_6 = param_6 + -1, *param_4 != (code ******)0x0)) {\n                          pppppppcVar29 = unaff_s5;\n                          pppppppcVar30 = param_4;\n                          param_5 = (code *******)FUN_000520d0(pppppppcVar42);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          if (param_5 != (code *******)0x0) goto LAB_00055acc;\n                          goto LAB_00055528;\n                        }\n                        param_6 = (code *******)((int)local_50 + (int)param_6);\n                        do {\n                          while( true ) {\n                            unaff_s8 = (code *******)((int)unaff_s8 + -1);\n                            if ((int)unaff_s8 < 0) goto LAB_00055b70;\n                            pppppppcVar29 = (code *******)param_6[-1];\n                            if (pppppppcVar29 != (code *******)0x0) break;\n                            param_6 = param_6 + -1;\n                          }\n                          param_6 = param_6 + -1;\n                        } while (((uint)pppppppcVar29[0xd] & 0x8000000) == 0);\n                        pppppppcVar31 = (code *******)(*pcVar9)(&local_b4,pppppppcVar29,unaff_s8);\n                        pppppppcVar33 = pppppppcVar28;\n                      }\n                    }\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    (*(code *)PTR_free_00079c24)(param_4);\n                    local_150 = param_5;\n                    if (param_5 == (code *******)0x1) goto LAB_00055b04;\n                  }\n                }\n                else {\n                  local_150 = (code *******)0xc;\n                  pppppppcVar33 = pppppppcVar28;\n                }\n                goto LAB_000557e4;\n              }\n              if (pppppppcVar38[0x13] != (code ******)0x0) {\n                pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                pppppppcVar30 = unaff_s8;\n                local_54 = (code *******)FUN_00049440(&local_b4);\n                goto LAB_00055c6c;\n              }\nLAB_00055c08:\n              if ((((uint)param_1[7] & 0x8000000) == 0) && ((code *******)0x1 < pppppppcVar3)) {\n                cVar23 = *(code *)(pppppppcVar38 + 0x16);\n                goto LAB_00055c20;\n              }\nLAB_00055548:\n              if (pppppppcVar3 == (code *******)0x0) goto LAB_000557e4;\n              if (pppppppcVar3 < (code *******)0x2) {\n                *param_8 = (code ******)0x0;\n                param_8[1] = (code ******)local_58;\n                goto LAB_000555ac;\n              }\n              pppppppcVar29 = param_8 + 2;\n              do {\n                pppppppcVar29[1] = (code ******)0xffffffff;\n                *pppppppcVar29 = (code ******)0xffffffff;\n                pppppppcVar29 = pppppppcVar29 + 2;\n              } while (pppppppcVar29 != param_8 + (int)pppppppcVar3 * 2);\n              *param_8 = (code ******)0x0;\n              param_8[1] = (code ******)local_58;\n              if (((uint)param_1[7] & 0x8000000) != 0) {\nLAB_000555ac:\n                pppppppcVar33 = param_8;\n                do {\n                  pppppppcVar29 = (code *******)*pppppppcVar33;\n                  if (pppppppcVar29 != (code *******)0xffffffff) {\n                    if (local_68 != '\0') {\n                      pppppppcVar34 = local_94;\n                      if (pppppppcVar29 != local_98) {\n                        pppppppcVar34 = *(code ********)(local_a8 + (int)pppppppcVar29 * 4);\n                      }\n                      *pppppppcVar33 = (code ******)pppppppcVar34;\n                      pppppppcVar29 = local_94;\n                      if (local_98 != (code *******)pppppppcVar33[1]) {\n                        pppppppcVar29 = *(code ********)(local_a8 + (int)pppppppcVar33[1] * 4);\n                      }\n                      pppppppcVar33[1] = (code ******)pppppppcVar29;\n                    }\n                    *pppppppcVar33 = (code ******)((int)local_dc + (int)*pppppppcVar33);\n                    pppppppcVar29 = (code *******)((int)local_dc + (int)pppppppcVar33[1]);\n                    pppppppcVar33[1] = (code ******)pppppppcVar29;\n                  }\n                  pppppppcVar33 = pppppppcVar33 + 2;\n                } while (pppppppcVar33 != param_8 + (int)pppppppcVar3 * 2);\n                if (0 < local_118) {\n                  pppppppcVar33 = param_8 + (int)pppppppcVar3 * 2;\n                  do {\n                    *pppppppcVar33 = (code ******)0xffffffff;\n                    pppppppcVar33[1] = (code ******)0xffffffff;\n                    pppppppcVar33 = pppppppcVar33 + 2;\n                  } while (pppppppcVar33 != param_8 + (int)param_7 * 2);\n                }\n                pppppppcVar30 = local_dc;\n                pppppppcVar33 = param_8;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar38[0x21] != (code ******)0x0) {\n                  pppppppcVar30 = (code *******)((int)pppppppcVar3 + -1);\n                  pppppppcVar34 = (code *******)0x0;\n                  pppppppcVar3 = param_8;\n                  while( true ) {\n                    pppppppcVar29 = (code *******)((int)pppppppcVar34 * 4);\n                    if (pppppppcVar30 == pppppppcVar34) break;\n                    if (*(code ********)((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) !=\n                        pppppppcVar34) {\n                      pppppppcVar3[2] =\n                           param_8[(int)((int)*(code ********)\n                                               ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1)\n                                   * 2];\n                      pppppppcVar3[3] =\n                           param_8[((int)*(code ******)\n                                          ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1) * 2 +\n                                   1];\n                    }\n                    pppppppcVar34 = (code *******)((int)pppppppcVar34 + 1);\n                    pppppppcVar3 = pppppppcVar3 + 2;\n                  }\n                }\n                goto LAB_000557e4;\n              }\n              if ((char)*(code *)(pppppppcVar38 + 0x16) < '\0') {\n                local_168 = (uint)(0 < (int)pppppppcVar38[0x13]);\n              }\n              else {\n                local_168 = 0;\n              }\n              pppppppcVar29 = &local_b4;\n              pppppppcVar30 = pppppppcVar3;\n              pppppppcVar33 = param_8;\n              local_150 = (code *******)FUN_0004f4a0(param_1);\n              if (local_150 == (code *******)0x0) goto LAB_000555ac;\n            }\n          }\n          else if (local_90 < 0x3fffffff) {\n            local_50 = (code *******)(*(code *)PTR_malloc_00079b54)((local_90 + 1) * 4);\n            if (local_50 != (code *******)0x0) goto LAB_00055a40;\n            local_150 = (code *******)0xc;\n            param_6 = pppppppcVar36;\n          }\n          else {\n            local_150 = (code *******)0xc;\n            param_6 = pppppppcVar36;\n          }\n        }\n        else {\n          unaff_s5 = (code *******)((int)ppppppcVar35 * 8);\n          if (pppppppcVar36 < (code *******)0xccccccd) {\n            unaff_s4 = (code *******)(*(code *)PTR_malloc_00079b54)((int)ppppppcVar35 * 0x28);\n            local_40 = unaff_s4;\n            local_30 = (*(code *)PTR_malloc_00079b54)(unaff_s5);\n            if ((unaff_s4 != (code *******)0x0) && (local_30 != 0)) goto LAB_000559f0;\n          }\n          local_150 = (code *******)0xc;\n          param_6 = pppppppcVar36;\n        }\nLAB_000557e4:\n        (*(code *)PTR_free_00079c24)(local_50);\n        param_1 = pppppppcVar30;\n        if (pppppppcVar38[0x13] != (code ******)0x0) {\n          FUN_0004b7e8(&local_b4);\n          (*(code *)PTR_free_00079c24)(local_30);\n          (*(code *)PTR_free_00079c24)(local_40);\n          param_1 = pppppppcVar30;\n        }\n        FUN_0004b2bc(&local_b4);\n        pppppppcStack_1a0 = param_4;\n        pppppppcStack_19c = pppppppcVar31;\n      }\n    }\n  }" else (if_statement "if (pppppppcVar38[9] == (code ******)0x0) {\n    local_150 = (code *******)0x1;\n  }\n  else if (pppppppcVar38[10] == (code ******)0x0) {\n    local_150 = (code *******)0x1;\n  }\n  else if (pppppppcVar38[0xb] == (code ******)0x0) {\n    local_150 = (code *******)0x1;\n  }\n  else {\n    pppppppcVar29 = (code *******)pppppppcVar38[0xc];\n    if (pppppppcVar29 == (code *******)0x0) {\n      local_150 = (code *******)0x1;\n    }\n    else {\n      pppppppcVar3 = param_5;\n      if ((((pppppppcVar38[9][2] == (code *****)0x0) && (pppppppcVar38[10][2] == (code *****)0x0))\n          && ((pppppppcVar38[0xb][2] == (code *****)0x0 || (((uint)param_1[7] & 0x1000000) == 0))))\n         && ((pppppppcVar3 = param_4, param_4 != (code *******)0x0 &&\n             (param_4 = param_5, pppppppcVar3 = param_5, param_5 != (code *******)0x0)))) {\n        local_150 = (code *******)0x1;\n        pppppppcStack_1a0 = param_5;\n      }\n      else {\n        param_5 = pppppppcVar3;\n        pppppppcVar3 = (code *******)((int)param_7 - local_118);\n        if (pppppppcVar3 == (code *******)0x0) {\n          pppppppcVar34 = (code *******)(uint)(pppppppcVar38[0x13] != (code ******)0x0);\n        }\n        else {\n          pppppppcVar34 = (code *******)0x1;\n        }\n        ppppppcVar32 = param_1[5];\n        local_6c = (byte)((uint)((int)param_1[3] << 9) >> 0x1f);\n        local_64 = (code *******)pppppppcVar38[0x17];\n        pppppppcVar31 = (code *******)((int)pppppppcVar38[2] + 1);\n        if ((int)pppppppcVar38[2] + 1 < (int)local_64) {\n          pppppppcVar31 = local_64;\n        }\n        pppppppcVar30 = (code *******)(uint)((int)param_3 + 1 < (int)pppppppcVar31);\n        pppppppcVar33 = (code *******)0x1;\n        local_69 = local_6c;\n        if (ppppppcVar32 != (code ******)0x0) {\n          local_69 = 1;\n        }\n        local_6b = (byte)((uint)((int)pppppppcVar38[0x16] << 2) >> 0x1f);\n        local_6a = (byte)((uint)((int)pppppppcVar38[0x16] << 3) >> 0x1f);\n        pppppppcVar29 = (code *******)((int)param_3 + 1);\n        if (pppppppcVar30 == (code *******)0x0) {\n          pppppppcVar29 = pppppppcVar31;\n        }\n        local_b4 = param_2;\n        local_88 = param_3;\n        local_84 = param_3;\n        local_80 = param_3;\n        local_7c = param_3;\n        local_74 = ppppppcVar32;\n        local_150 = (code *******)FUN_00046d2c(&local_b4);\n        pppppppcVar31 = pppppppcVar34;\n        param_6 = param_6;\n        if (local_150 != (code *******)0x0) goto LAB_000557e4;\n        local_70 = pppppppcVar38 + 0x18;\n        local_66 = (byte)((uint)((int)pppppppcVar38[0x16] << 4) >> 0x1f);\n        pppppppcVar2 = (code *******)0x0;\n        local_98 = pppppppcVar2;\n        if ((local_69 == 0) && (local_b0 = param_2, (int)pppppppcVar38[0x17] < 2)) {\n          local_98 = param_3;\n        }\n        local_7c = param_6;\n        local_80 = param_6;\n        local_67 = (byte)((uint)((int)param_1[7] << 7) >> 0x1f);\n        ppppppcVar35 = pppppppcVar38[0x13];\n        pppppppcVar36 = (code *******)((int)ppppppcVar35 * 2);\n        local_5c = param_9;\n        local_58 = (code *******)0xffffffff;\n        local_94 = local_98;\n        if ((int)pppppppcVar36 < 1) {\nLAB_000559f0:\n          local_3c = 1;\n          local_44 = pppppppcVar36;\n          local_34 = pppppppcVar36;\n          if ((pppppppcVar3 < (code *******)0x2) && (((uint)pppppppcVar38[0x16] & 0x40000000) == 0))\n          {\n            local_50 = (code *******)0x0;\nLAB_00055a40:\n            local_78 = 6;\n            if (((uint)param_9 & 1) != 0) {\n              local_78 = 4;\n            }\n            pppppppcVar24 = (code *******)0x1;\n            pppppppcVar25 = param_4;\n            if ((int)param_5 < (int)param_4) {\n              pppppppcVar24 = (code *******)0xffffffff;\n              pppppppcVar25 = param_5;\n            }\n            pppppppcVar26 = param_5;\n            if ((int)param_5 <= (int)param_4) {\n              pppppppcVar26 = param_4;\n            }\n            ppppppcVar35 = pppppppcVar38[0x17];\n            uVar16 = 8;\n            if (local_148 != (code *******)0x0) {\n              if (ppppppcVar35 == (code ******)0x1) {\n                pppppppcVar28 = (code *******)0x4;\n              }\n              else {\n                pppppppcVar28 = pppppppcVar2;\n                if ((-1 < (int)param_1[3] << 9) && (ppppppcVar32 == (code ******)0x0)) {\n                  pppppppcVar28 = (code *******)0x4;\n                }\n              }\n              pppppppcVar29 = (code *******)0x0;\n              if ((int)param_4 <= (int)param_5) {\n                pppppppcVar29 = (code *******)0x2;\n              }\n              uVar16 = (uint)(ppppppcVar32 != (code ******)0x0) | (uint)pppppppcVar28 |\n                       (uint)pppppppcVar29;\n            }\n            local_dc = param_4;\n            if ((int)param_4 < (int)pppppppcVar25) {\n              local_150 = (code *******)0x1;\n              param_6 = pppppppcVar36;\n            }\n            else if ((int)pppppppcVar26 < (int)param_4) {\n              local_150 = (code *******)0x1;\n              param_4 = (code *******)(uint)((int)param_5 < (int)param_4);\n              param_6 = pppppppcVar36;\n            }\n            else {\n              pppppppcVar36 = (code *******)&local_dc;\n              if ((code *******)(uint)((int)param_5 < (int)param_4) != (code *******)0x0) {\n                pppppppcVar36 = (code *******)0x0;\n              }\n              pcVar4 = (code *)(PTR_DAT_000799a4 + -0x2b7c);\n              piVar5 = (int *)(PTR_s_nt0_000795b8 + (uVar16 - 4) * 4 + 0x6e38);\nLAB_00055b44:\n              if (uVar16 - 4 < 5) {\n                    /* WARNING: Could not emulate address calculation at 0x00054920 */\n                    /* WARNING: Treating indirect jump as call */\n                pppppppcVar29 = (code *******)(*(code *)(&_gp_1 + *piVar5))();\n                return pppppppcVar29;\n              }\n              param_5 = &local_b4;\n              pppppppcVar28 = pppppppcVar33;\n              while( true ) {\n                param_4 = local_dc;\n                pppppppcVar33 = (code *******)((int)local_dc - local_9c);\n                pppppppcVar30 = param_9;\n                pppppppcVar31 = pppppppcVar2;\n                param_6 = local_148;\n                unaff_s4 = param_3;\n                unaff_s5 = pppppppcVar24;\n                unaff_s7 = pppppppcVar26;\n                if (local_94 <= pppppppcVar33) {\n                  pppppppcVar29 = local_dc;\n                  local_150 = (code *******)(*pcVar4)(param_5);\n                  pppppppcVar33 = pppppppcVar28;\n                  if (local_150 != (code *******)0x0) goto LAB_000557e4;\n                  pppppppcVar33 = (code *******)((int)param_4 - local_9c);\n                }\n                if ((int)param_4 < (int)param_3) {\n                  uVar7 = (uint)(byte)*(code *)((int)pppppppcVar33 + (int)local_b0);\n                }\n                else {\n                  uVar7 = 0;\n                }\n                param_4 = (code *******)((int)param_4 + (int)pppppppcVar24);\n                if (*(code *)((int)local_148 + uVar7) != (code)0x0) break;\n                pppppppcVar33 = pppppppcVar28;\n                local_dc = param_4;\n                if ((int)param_4 < (int)pppppppcVar25) {\n                  local_150 = (code *******)0x1;\n                  goto LAB_000557e4;\n                }\n                if ((code *******)(uint)((int)pppppppcVar26 < (int)param_4) != (code *******)0x0) {\n                  local_150 = (code *******)0x1;\n                  param_4 = (code *******)(uint)((int)pppppppcVar26 < (int)param_4);\n                  goto LAB_000557e4;\n                }\n              }\n              while( true ) {\n                pppppppcVar29 = local_dc;\n                pppppppcVar30 = param_9;\n                pppppppcVar6 = (code *******)(*pcVar4)(&local_b4);\n                pppppppcVar14 = local_60;\n                pppppppcVar42 = local_8c;\n                pppppppcVar33 = pppppppcVar28;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar6 != (code *******)0x0) goto LAB_000557e4;\n                if (((ppppppcVar35 != (code ******)0x1) && (local_98 != (code *******)0x0)) &&\n                   (*local_ac == -1)) goto LAB_00055b1c;\n                local_3c = 0;\n                local_48 = 0;\n                local_4c = (code *******)0x0;\n                local_138 = local_8c;\n                local_d8 = (code *******)0x0;\n                unaff_s7 = (code *******)local_60[9];\n                pppppppcVar30 = local_5c;\n                param_4 = pppppppcVar14;\n                if (((uint)unaff_s7[0xd] & 0x1000000) == 0) break;\n                pppppppcVar29 = (code *******)((int)local_8c + -1);\n                pppppppcVar33 = (code *******)FUN_00049110(&local_b4);\n                if (((uint)pppppppcVar33 & 1) == 0) {\n                  if (pppppppcVar33 == (code *******)0x0) break;\n                  if (((uint)pppppppcVar33 & 6) == 6) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xc];\n                    goto LAB_00054d1c;\n                  }\n                  if (((uint)pppppppcVar33 & 2) != 0) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xb];\n                    goto LAB_00054d1c;\n                  }\n                  pppppppcVar28 = pppppppcVar33;\n                  if (((uint)pppppppcVar33 & 4) == 0) break;\n                  pppppppcVar30 = (code *******)unaff_s7[10];\n                  pppppppcVar29 = pppppppcVar14;\n                  unaff_s7 = (code *******)FUN_0004ae34(&local_d8);\n                  pppppppcVar28 = pppppppcVar33;\n                  if (unaff_s7 != (code *******)0x0) break;\n                  if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                }\n                else {\n                  unaff_s7 = (code *******)pppppppcVar14[10];\nLAB_00054d1c:\n                  pppppppcVar28 = (code *******)PTR_s_nt0_000795b8;\n                  if (unaff_s7 != (code *******)0x0) break;\n                }\n                pppppppcVar28 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                local_dc = (code *******)\n                           (*(code *)PTR___assert_fail_000799f8)\n                                     (PTR_s_nt0_000795b8 + 0x71a0,pppppppcVar29,0x435);\n                if (local_dc == pppppppcVar26) {\n                  if ((int)local_dc < (int)param_3) {\n                    uVar7 = (uint)(byte)*(code *)((int)local_dc + (int)param_2);\n                  }\n                  else {\n                    uVar7 = 0;\n                  }\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    uVar7 = (uint)*(byte *)((int)ppppppcVar32 + uVar7);\n                  }\n                  if (*(code *)((int)local_148 + uVar7) == (code)0x0) {\n                    local_150 = (code *******)0x1;\n                    pppppppcVar30 = param_9;\n                    pppppppcVar33 = pppppppcVar28;\n                    goto LAB_000557e4;\n                  }\n                }\n              }\n              pppppppcVar33 = pppppppcVar28;\n              bVar1 = pppppppcVar36 != (code *******)0x0;\n              if ((local_50 == (code *******)0x0) ||\n                 (local_50[(int)pppppppcVar42] = (code ******)unaff_s7,\n                 pppppppcVar14[0x13] == (code ******)0x0)) {\nLAB_00054d50:\n                if ((int)unaff_s7[0xd] << 4 < 0) {\n                  if ((((uint)unaff_s7[0xd] & 0x1000000) == 0) ||\n                     (pppppppcVar29 = unaff_s7, pppppppcVar30 = pppppppcVar42,\n                     iVar18 = FUN_00049440(&local_b4), iVar18 != 0)) {\n                    unaff_s8 = pppppppcVar42;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                  }\n                  else {\n                    pppppppcVar42 = (code *******)0xffffffff;\n                    pppppppcVar28 = (code *******)0x0;\n                  }\n                }\n                else {\n                  pppppppcVar42 = (code *******)0xffffffff;\n                  pppppppcVar28 = (code *******)0x0;\n                }\n                pcVar8 = (code *)(PTR_DAT_000799a4 + -0x7144);\n                pcVar9 = (code *)(PTR_DAT_000799a4 + -0x1980);\n                pcVar10 = (code *)(PTR_DAT_000799a4 + -0x2f9c);\n                unaff_s8 = pppppppcVar42;\n                local_144 = pppppppcVar36;\n                while( true ) {\n                  uVar44 = CONCAT44(local_98,local_84);\n                  unaff_s5 = (code *******)((int)local_8c + 1);\n                  pppppppcVar29 = local_8c;\n                  if ((int)local_7c <= (int)local_8c) break;\n                  if (((int)local_90 <= (int)unaff_s5) && ((int)local_90 < (int)local_84))\n                  goto LAB_00054e94;\n                  if ((int)local_98 <= (int)unaff_s5) {\n                    while ((int)((ulonglong)uVar44 >> 0x20) < (int)uVar44) {\nLAB_00054e94:\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 2);\n                      local_d8 = (code *******)(*pcVar8)(&local_b4);\n                      if (local_d8 == (code *******)0x0) break;\n                      pppppppcVar14 = param_4;\n                      if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                      pppppppcVar33 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                      pppppppcVar30 = (code *******)0x46c;\n                      pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                      uVar44 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0);\n                      pppppppcVar28 = pppppppcVar38;\n                    }\n                  }\n                  pppppppcVar42 = local_60;\n                  if ((int)unaff_s7[0xd] << 5 < 0) {\n                    pppppppcVar31 = pppppppcVar42;\n                    if (0 < (int)unaff_s7[2]) {\n                      pcVar11 = (code *)(PTR_DAT_000799a4 + -0x6fdc);\n                      pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6ef0);\n                      param_6 = (code *******)0x0;\n                      do {\n                        param_5 = (code *******)unaff_s7[3][(int)param_6];\n                        ppppppcVar39 = *pppppppcVar42;\n                        pppppcVar13 = ppppppcVar39[(int)param_5 * 2 + 1];\n                        if (((uint)pppppcVar13 & 0x800) != 0) {\n                          if (((uint)pppppcVar13 & 0xffc000) != 0) {\n                            pppppppcVar29 = local_8c;\n                            uVar19 = (*pcVar12)(&local_b4,local_8c,local_5c);\n                            uVar7 = (uint)((int)ppppppcVar39[(int)param_5 * 2 + 1] << 8) >> 0x16;\n                            if ((uVar7 & 4) == 0) {\n                              uVar27 = uVar19 & 1;\n                              if ((uVar7 & 8) != 0) goto joined_r0x00054f40;\n                            }\n                            else {\n                              uVar27 = uVar7 & 8;\n                              if ((uVar19 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                              if (uVar27 != 0) goto LAB_000550a4;\n                            }\n                            if ((((uVar7 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                               (((uVar7 & 0x80) != 0 &&\n                                (pppppppcVar33 = local_8c, (uVar19 & 8) == 0)))) goto LAB_000550a4;\n                          }\n                          pppppppcVar30 = &local_b4;\n                          pppppppcVar29 = param_5;\n                          pppppppcVar33 = local_8c;\n                          iVar18 = (*pcVar10)(pppppppcVar42);\n                          if (iVar18 != 0) {\n                            pppppppcVar14 = (code *******)((int)local_8c + iVar18);\n                            if (iVar18 <= local_3c) {\n                              iVar18 = local_3c;\n                            }\n                            pppppppcVar29 = pppppppcVar14;\n                            local_3c = iVar18;\n                            local_d4 = (code *******)(*pcVar11)(&local_b4);\n                            pppppppcVar15 = local_d4;\n                            if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                            pppppppcVar30 =\n                                 (code *******)\n                                 (pppppppcVar42[6] + (int)pppppppcVar42[3][(int)param_5] * 3);\n                            unaff_s4 = (code *******)((int)pppppppcVar14 * 4);\n                            param_5 = local_50 + (int)pppppppcVar14;\n                            if (*param_5 == (code ******)0x0) {\n                              local_d0 = (code *******)*pppppppcVar30;\n                              local_cc = (code *******)pppppppcVar30[1];\n                              local_c8 = (code *******)pppppppcVar30[2];\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *param_5 = ppppppcVar39;\n                            }\n                            else {\n                              pppppppcVar29 = (code *******)(*param_5)[10];\n                              local_d4 = (code *******)FUN_000484bc(&local_d0);\n                              pppppppcVar15 = local_d4;\n                              if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar15 = local_50 + (int)pppppppcVar14;\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *pppppppcVar15 = ppppppcVar39;\n                              (*(code *)PTR_free_00079c24)(local_c8);\n                            }\n                            unaff_s4 = local_50 + (int)pppppppcVar14;\n                            if ((*unaff_s4 == (code ******)0x0) &&\n                               (pppppppcVar15 = local_d4, local_d4 != (code *******)0x0))\n                            goto LAB_00055e44;\n                          }\n                        }\nLAB_000550a4:\n                        param_6 = (code *******)((int)param_6 + 1);\n                      } while ((int)param_6 < (int)unaff_s7[2]);\n                    }\n                    local_d8 = (code *******)0x0;\n                  }\n                  uVar7 = (uint)(byte)*(code *)((int)local_8c + (int)local_b0);\n                  local_8c = (code *******)((int)local_8c + 1);\n                  do {\n                    if (unaff_s7[0xb] != (code ******)0x0) {\n                      pppppppcVar30 = (code *******)unaff_s7[0xb][uVar7];\nLAB_000553a0:\n                      pppppppcVar14 = pppppppcVar30;\n                      if (local_50 != (code *******)0x0) goto LAB_000553ac;\n                      goto LAB_000553cc;\n                    }\n                    pppppppcVar31 = (code *******)unaff_s7[0xc];\n                    if (pppppppcVar31 != (code *******)0x0) {\n                      pppppppcVar29 = (code *******)((int)local_8c + -1);\n                      uVar19 = FUN_00049110(&local_b4);\n                      if ((uVar19 & 1) == 0) {\n                        pppppppcVar30 = (code *******)pppppppcVar31[uVar7];\n                      }\n                      else {\n                        pppppppcVar31 = pppppppcVar31 + uVar7 + 0x100;\n                        pppppppcVar30 = (code *******)*pppppppcVar31;\n                      }\n                      goto LAB_000553a0;\n                    }\n                    pppppppcVar29 = unaff_s7;\n                    pppppppcVar30 = local_5c;\n                    iVar18 = (*pcVar9)(local_60);\n                  } while (iVar18 != 0);\n                  local_d8 = (code *******)0xc;\n                  pppppppcVar15 = local_d8;\nLAB_00055e44:\n                  local_d8 = pppppppcVar15;\n                  param_4 = (code *******)0x0;\n                  if (local_50 == (code *******)0x0) {\n                    pppppppcVar14 = param_4;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    break;\n                  }\n                  pppppppcVar30 = (code *******)0x0;\nLAB_000553ac:\n                  pppppppcVar29 = &local_b4;\n                  pppppppcVar14 = (code *******)FUN_00053684(&local_d8);\nLAB_000553cc:\n                  param_4 = pppppppcVar14;\n                  if (pppppppcVar14 == (code *******)0x0) {\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    if ((local_50 == (code *******)0x0) ||\n                       ((pppppppcVar28 != (code *******)0x0 && (pppppppcVar34 == (code *******)0x0))\n                       )) break;\n                    param_6 = &local_b4;\n                    param_5 = (code *******)&local_d8;\n                    pppppppcVar31 = (code *******)(PTR_DAT_000799a4 + 0x3684);\n                    do {\n                      pppppppcVar15 = local_50 + (int)local_8c;\n                      pppppppcVar42 = local_8c;\n                      do {\n                        pppppppcVar42 = (code *******)((int)pppppppcVar42 + 1);\n                        pppppppcVar29 = local_4c;\n                        param_4 = pppppppcVar14;\n                        if ((int)local_4c < (int)pppppppcVar42) goto LAB_00055da8;\n                        local_8c = (code *******)((int)local_8c + 1);\n                        pppppppcVar15 = pppppppcVar15 + 1;\n                      } while (*pppppppcVar15 == (code ******)0x0);\n                      pppppppcVar30 = (code *******)0x0;\n                      pppppppcVar29 = param_6;\n                      param_4 = (code *******)(*(code *)pppppppcVar31)(param_5);\n                      if (local_d8 != (code *******)0x0) {\n                        if (param_4 == (code *******)0x0) goto LAB_00055da8;\n                        break;\n                      }\n                      pppppppcVar29 = local_4c;\n                    } while (param_4 == (code *******)0x0);\n                  }\n                  pppppppcVar15 = (code *******)((uint)unaff_s7 ^ (uint)param_4);\n                  pppppppcVar42 = unaff_s7;\n                  pppppppcVar14 = local_138;\n                  if ((bVar1) &&\n                     (pppppppcVar42 = pppppppcVar15, pppppppcVar14 = unaff_s5,\n                     pppppppcVar15 != (code *******)0x0)) {\n                    bVar1 = false;\n                    pppppppcVar14 = local_138;\n                  }\n                  local_138 = pppppppcVar14;\n                  unaff_s7 = param_4;\n                  if ((((uint)param_4[0xd] & 0x8000000) != 0) &&\n                     ((((uint)param_4[0xd] & 0x1000000) == 0 ||\n                      (pppppppcVar29 = param_4, pppppppcVar30 = local_8c,\n                      iVar18 = FUN_00049440(&local_b4), iVar18 != 0)))) {\n                    unaff_s7 = pppppppcVar42;\n                    unaff_s8 = local_8c;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                    local_144 = (code *******)0x0;\n                    unaff_s7 = param_4;\n                  }\n                }\nLAB_00055da8:\n                if (local_144 != (code *******)0x0) {\n                  *local_144 = (code ******)((int)local_138 + (int)*local_144);\n                }\n              }\n              else {\n                param_4 = unaff_s7 + 1;\n                pppppppcVar30 = (code *******)0x0;\n                pppppppcVar29 = param_4;\n                local_d8 = (code *******)FUN_00047a44(&local_b4);\n                unaff_s8 = local_d8;\n                if (local_d8 == (code *******)0x0) {\n                  if (((uint)unaff_s7[0xd] & 0x2000000) == 0) {\n                    pppppppcVar29 = param_4;\n                    bVar1 = false;\n                  }\n                  else {\n                    pppppppcVar29 = param_4;\n                    local_d8 = (code *******)FUN_00052d84(&local_b4);\n                    unaff_s8 = local_d8;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055dbc;\n                    bVar1 = false;\n                  }\n                  goto LAB_00054d50;\n                }\n              }\nLAB_00055dbc:\n              if (unaff_s8 == (code *******)0xffffffff) {\nLAB_00055b04:\n                FUN_0004b7e8(&local_b4);\nLAB_00055b1c:\n                local_dc = (code *******)((int)pppppppcVar24 + (int)local_dc);\n                if ((int)pppppppcVar25 <= (int)local_dc) goto code_r0x00055b38;\n                local_150 = (code *******)0x1;\n                goto LAB_000557e4;\n              }\n              if (unaff_s8 == (code *******)&SUB_fffffffe) {\n                local_150 = (code *******)0xc;\n                goto LAB_000557e4;\n              }\n              local_58 = unaff_s8;\n              if (((uint)param_1[7] & 0x8000000) == 0) {\n                if (pppppppcVar3 < (code *******)0x2) {\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055c08;\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                else {\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                if (pppppppcVar3 < (code *******)0x2) {\nLAB_00055c6c:\n                  pppppppcVar28 = pppppppcVar33;\n                  unaff_s4 = local_60;\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055548;\n                }\n                else {\n                  cVar23 = *(code *)(pppppppcVar38 + 0x16);\nLAB_00055c20:\n                  pppppppcVar28 = pppppppcVar33;\n                  if (-1 < (char)cVar23) goto LAB_00055c6c;\n                }\n                pppppppcVar31 = local_54;\n                pppppppcVar42 = local_60;\n                unaff_s4 = pppppppcVar42;\n                if (unaff_s8 < (code *******)0x3fffffff) {\n                  param_4 = (code *******)((int)((int)unaff_s8 + 1) * 4);\n                  unaff_s5 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                  if (unaff_s5 == (code *******)0x0) {\nLAB_00055b9c:\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    local_150 = (code *******)0xc;\n                    pppppppcVar33 = pppppppcVar28;\n                  }\n                  else {\n                    pppppppcVar29 = (code *******)&local_d0;\n                    if (pppppppcVar42[0x13] == (code ******)0x0) {\n                      local_cc = (code *******)0x0;\n                      local_c8 = pppppppcVar31;\n                      local_c0 = 0;\n                      local_bc = 0;\n                      local_b8 = 0;\n                      local_d0 = unaff_s5;\n                      local_c4 = unaff_s8;\n                      param_5 = (code *******)FUN_0005421c(&local_b4);\n                      (*(code *)PTR_free_00079c24)(local_b8);\n                      if (param_5 == (code *******)0x0) {\n                        param_4 = (code *******)*unaff_s5;\n                        if (param_4 == (code *******)0x0) {\nLAB_00055b70:\n                          (*(code *)PTR_free_00079c24)(unaff_s5);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          pppppppcVar33 = pppppppcVar28;\n                          goto LAB_00055b04;\n                        }\nLAB_00055528:\n                        (*(code *)PTR_free_00079c24)(local_50);\n                        pppppppcVar33 = pppppppcVar28;\n                        unaff_s4 = pppppppcVar42;\n                        local_58 = unaff_s8;\n                        local_54 = pppppppcVar31;\n                        local_50 = unaff_s5;\n                        goto LAB_00055548;\n                      }\nLAB_00055acc:\n                      param_4 = (code *******)0x0;\n                      pppppppcVar33 = pppppppcVar28;\n                      unaff_s4 = pppppppcVar42;\n                    }\n                    else {\n                      param_4 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                      if (param_4 == (code *******)0x0) goto LAB_00055b9c;\n                      unaff_s7 = (code *******)&local_d0;\n                      pcVar8 = (code *)(PTR_DAT_000799a4 + 0x421c);\n                      pcVar9 = (code *)(PTR_DAT_000799a4 + -0x6bc0);\n                      pppppppcVar33 = pppppppcVar28;\n                      while( true ) {\n                        pppppppcVar28 = (code *******)((int)unaff_s8 + 1);\n                        param_6 = (code *******)((int)pppppppcVar28 * 4);\n                        pppppppcVar30 = param_6;\n                        (*(code *)PTR_memset_00079b00)(param_4,0);\n                        local_c0 = 0;\n                        local_bc = 0;\n                        local_b8 = 0;\n                        pppppppcVar29 = unaff_s7;\n                        local_d0 = unaff_s5;\n                        local_cc = param_4;\n                        local_c8 = pppppppcVar31;\n                        local_c4 = unaff_s8;\n                        param_5 = (code *******)(*pcVar8)(&local_b4);\n                        (*(code *)PTR_free_00079c24)(local_b8);\n                        unaff_s4 = pppppppcVar28;\n                        if (param_5 != (code *******)0x0) break;\n                        if ((*unaff_s5 != (code ******)0x0) ||\n                           (param_6 = param_6 + -1, *param_4 != (code ******)0x0)) {\n                          pppppppcVar29 = unaff_s5;\n                          pppppppcVar30 = param_4;\n                          param_5 = (code *******)FUN_000520d0(pppppppcVar42);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          if (param_5 != (code *******)0x0) goto LAB_00055acc;\n                          goto LAB_00055528;\n                        }\n                        param_6 = (code *******)((int)local_50 + (int)param_6);\n                        do {\n                          while( true ) {\n                            unaff_s8 = (code *******)((int)unaff_s8 + -1);\n                            if ((int)unaff_s8 < 0) goto LAB_00055b70;\n                            pppppppcVar29 = (code *******)param_6[-1];\n                            if (pppppppcVar29 != (code *******)0x0) break;\n                            param_6 = param_6 + -1;\n                          }\n                          param_6 = param_6 + -1;\n                        } while (((uint)pppppppcVar29[0xd] & 0x8000000) == 0);\n                        pppppppcVar31 = (code *******)(*pcVar9)(&local_b4,pppppppcVar29,unaff_s8);\n                        pppppppcVar33 = pppppppcVar28;\n                      }\n                    }\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    (*(code *)PTR_free_00079c24)(param_4);\n                    local_150 = param_5;\n                    if (param_5 == (code *******)0x1) goto LAB_00055b04;\n                  }\n                }\n                else {\n                  local_150 = (code *******)0xc;\n                  pppppppcVar33 = pppppppcVar28;\n                }\n                goto LAB_000557e4;\n              }\n              if (pppppppcVar38[0x13] != (code ******)0x0) {\n                pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                pppppppcVar30 = unaff_s8;\n                local_54 = (code *******)FUN_00049440(&local_b4);\n                goto LAB_00055c6c;\n              }\nLAB_00055c08:\n              if ((((uint)param_1[7] & 0x8000000) == 0) && ((code *******)0x1 < pppppppcVar3)) {\n                cVar23 = *(code *)(pppppppcVar38 + 0x16);\n                goto LAB_00055c20;\n              }\nLAB_00055548:\n              if (pppppppcVar3 == (code *******)0x0) goto LAB_000557e4;\n              if (pppppppcVar3 < (code *******)0x2) {\n                *param_8 = (code ******)0x0;\n                param_8[1] = (code ******)local_58;\n                goto LAB_000555ac;\n              }\n              pppppppcVar29 = param_8 + 2;\n              do {\n                pppppppcVar29[1] = (code ******)0xffffffff;\n                *pppppppcVar29 = (code ******)0xffffffff;\n                pppppppcVar29 = pppppppcVar29 + 2;\n              } while (pppppppcVar29 != param_8 + (int)pppppppcVar3 * 2);\n              *param_8 = (code ******)0x0;\n              param_8[1] = (code ******)local_58;\n              if (((uint)param_1[7] & 0x8000000) != 0) {\nLAB_000555ac:\n                pppppppcVar33 = param_8;\n                do {\n                  pppppppcVar29 = (code *******)*pppppppcVar33;\n                  if (pppppppcVar29 != (code *******)0xffffffff) {\n                    if (local_68 != '\0') {\n                      pppppppcVar34 = local_94;\n                      if (pppppppcVar29 != local_98) {\n                        pppppppcVar34 = *(code ********)(local_a8 + (int)pppppppcVar29 * 4);\n                      }\n                      *pppppppcVar33 = (code ******)pppppppcVar34;\n                      pppppppcVar29 = local_94;\n                      if (local_98 != (code *******)pppppppcVar33[1]) {\n                        pppppppcVar29 = *(code ********)(local_a8 + (int)pppppppcVar33[1] * 4);\n                      }\n                      pppppppcVar33[1] = (code ******)pppppppcVar29;\n                    }\n                    *pppppppcVar33 = (code ******)((int)local_dc + (int)*pppppppcVar33);\n                    pppppppcVar29 = (code *******)((int)local_dc + (int)pppppppcVar33[1]);\n                    pppppppcVar33[1] = (code ******)pppppppcVar29;\n                  }\n                  pppppppcVar33 = pppppppcVar33 + 2;\n                } while (pppppppcVar33 != param_8 + (int)pppppppcVar3 * 2);\n                if (0 < local_118) {\n                  pppppppcVar33 = param_8 + (int)pppppppcVar3 * 2;\n                  do {\n                    *pppppppcVar33 = (code ******)0xffffffff;\n                    pppppppcVar33[1] = (code ******)0xffffffff;\n                    pppppppcVar33 = pppppppcVar33 + 2;\n                  } while (pppppppcVar33 != param_8 + (int)param_7 * 2);\n                }\n                pppppppcVar30 = local_dc;\n                pppppppcVar33 = param_8;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar38[0x21] != (code ******)0x0) {\n                  pppppppcVar30 = (code *******)((int)pppppppcVar3 + -1);\n                  pppppppcVar34 = (code *******)0x0;\n                  pppppppcVar3 = param_8;\n                  while( true ) {\n                    pppppppcVar29 = (code *******)((int)pppppppcVar34 * 4);\n                    if (pppppppcVar30 == pppppppcVar34) break;\n                    if (*(code ********)((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) !=\n                        pppppppcVar34) {\n                      pppppppcVar3[2] =\n                           param_8[(int)((int)*(code ********)\n                                               ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1)\n                                   * 2];\n                      pppppppcVar3[3] =\n                           param_8[((int)*(code ******)\n                                          ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1) * 2 +\n                                   1];\n                    }\n                    pppppppcVar34 = (code *******)((int)pppppppcVar34 + 1);\n                    pppppppcVar3 = pppppppcVar3 + 2;\n                  }\n                }\n                goto LAB_000557e4;\n              }\n              if ((char)*(code *)(pppppppcVar38 + 0x16) < '\0') {\n                local_168 = (uint)(0 < (int)pppppppcVar38[0x13]);\n              }\n              else {\n                local_168 = 0;\n              }\n              pppppppcVar29 = &local_b4;\n              pppppppcVar30 = pppppppcVar3;\n              pppppppcVar33 = param_8;\n              local_150 = (code *******)FUN_0004f4a0(param_1);\n              if (local_150 == (code *******)0x0) goto LAB_000555ac;\n            }\n          }\n          else if (local_90 < 0x3fffffff) {\n            local_50 = (code *******)(*(code *)PTR_malloc_00079b54)((local_90 + 1) * 4);\n            if (local_50 != (code *******)0x0) goto LAB_00055a40;\n            local_150 = (code *******)0xc;\n            param_6 = pppppppcVar36;\n          }\n          else {\n            local_150 = (code *******)0xc;\n            param_6 = pppppppcVar36;\n          }\n        }\n        else {\n          unaff_s5 = (code *******)((int)ppppppcVar35 * 8);\n          if (pppppppcVar36 < (code *******)0xccccccd) {\n            unaff_s4 = (code *******)(*(code *)PTR_malloc_00079b54)((int)ppppppcVar35 * 0x28);\n            local_40 = unaff_s4;\n            local_30 = (*(code *)PTR_malloc_00079b54)(unaff_s5);\n            if ((unaff_s4 != (code *******)0x0) && (local_30 != 0)) goto LAB_000559f0;\n          }\n          local_150 = (code *******)0xc;\n          param_6 = pppppppcVar36;\n        }\nLAB_000557e4:\n        (*(code *)PTR_free_00079c24)(local_50);\n        param_1 = pppppppcVar30;\n        if (pppppppcVar38[0x13] != (code ******)0x0) {\n          FUN_0004b7e8(&local_b4);\n          (*(code *)PTR_free_00079c24)(local_30);\n          (*(code *)PTR_free_00079c24)(local_40);\n          param_1 = pppppppcVar30;\n        }\n        FUN_0004b2bc(&local_b4);\n        pppppppcStack_1a0 = param_4;\n        pppppppcStack_19c = pppppppcVar31;\n      }\n    }\n  }" if (parenthesized_expression "(pppppppcVar38[9] == (code ******)0x0)" ( (binary_expression "pppppppcVar38[9] == (code ******)0x0" (subscript_expression "pppppppcVar38[9]" identifier [ number_literal ]) == (cast_expression "(code ******)0x0" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (compound_statement "{\n    local_150 = (code *******)0x1;\n  }" { (expression_statement "local_150 = (code *******)0x1;" (assignment_expression "local_150 = (code *******)0x1" identifier = (cast_expression "(code *******)0x1" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) }) (else_clause "else if (pppppppcVar38[10] == (code ******)0x0) {\n    local_150 = (code *******)0x1;\n  }\n  else if (pppppppcVar38[0xb] == (code ******)0x0) {\n    local_150 = (code *******)0x1;\n  }\n  else {\n    pppppppcVar29 = (code *******)pppppppcVar38[0xc];\n    if (pppppppcVar29 == (code *******)0x0) {\n      local_150 = (code *******)0x1;\n    }\n    else {\n      pppppppcVar3 = param_5;\n      if ((((pppppppcVar38[9][2] == (code *****)0x0) && (pppppppcVar38[10][2] == (code *****)0x0))\n          && ((pppppppcVar38[0xb][2] == (code *****)0x0 || (((uint)param_1[7] & 0x1000000) == 0))))\n         && ((pppppppcVar3 = param_4, param_4 != (code *******)0x0 &&\n             (param_4 = param_5, pppppppcVar3 = param_5, param_5 != (code *******)0x0)))) {\n        local_150 = (code *******)0x1;\n        pppppppcStack_1a0 = param_5;\n      }\n      else {\n        param_5 = pppppppcVar3;\n        pppppppcVar3 = (code *******)((int)param_7 - local_118);\n        if (pppppppcVar3 == (code *******)0x0) {\n          pppppppcVar34 = (code *******)(uint)(pppppppcVar38[0x13] != (code ******)0x0);\n        }\n        else {\n          pppppppcVar34 = (code *******)0x1;\n        }\n        ppppppcVar32 = param_1[5];\n        local_6c = (byte)((uint)((int)param_1[3] << 9) >> 0x1f);\n        local_64 = (code *******)pppppppcVar38[0x17];\n        pppppppcVar31 = (code *******)((int)pppppppcVar38[2] + 1);\n        if ((int)pppppppcVar38[2] + 1 < (int)local_64) {\n          pppppppcVar31 = local_64;\n        }\n        pppppppcVar30 = (code *******)(uint)((int)param_3 + 1 < (int)pppppppcVar31);\n        pppppppcVar33 = (code *******)0x1;\n        local_69 = local_6c;\n        if (ppppppcVar32 != (code ******)0x0) {\n          local_69 = 1;\n        }\n        local_6b = (byte)((uint)((int)pppppppcVar38[0x16] << 2) >> 0x1f);\n        local_6a = (byte)((uint)((int)pppppppcVar38[0x16] << 3) >> 0x1f);\n        pppppppcVar29 = (code *******)((int)param_3 + 1);\n        if (pppppppcVar30 == (code *******)0x0) {\n          pppppppcVar29 = pppppppcVar31;\n        }\n        local_b4 = param_2;\n        local_88 = param_3;\n        local_84 = param_3;\n        local_80 = param_3;\n        local_7c = param_3;\n        local_74 = ppppppcVar32;\n        local_150 = (code *******)FUN_00046d2c(&local_b4);\n        pppppppcVar31 = pppppppcVar34;\n        param_6 = param_6;\n        if (local_150 != (code *******)0x0) goto LAB_000557e4;\n        local_70 = pppppppcVar38 + 0x18;\n        local_66 = (byte)((uint)((int)pppppppcVar38[0x16] << 4) >> 0x1f);\n        pppppppcVar2 = (code *******)0x0;\n        local_98 = pppppppcVar2;\n        if ((local_69 == 0) && (local_b0 = param_2, (int)pppppppcVar38[0x17] < 2)) {\n          local_98 = param_3;\n        }\n        local_7c = param_6;\n        local_80 = param_6;\n        local_67 = (byte)((uint)((int)param_1[7] << 7) >> 0x1f);\n        ppppppcVar35 = pppppppcVar38[0x13];\n        pppppppcVar36 = (code *******)((int)ppppppcVar35 * 2);\n        local_5c = param_9;\n        local_58 = (code *******)0xffffffff;\n        local_94 = local_98;\n        if ((int)pppppppcVar36 < 1) {\nLAB_000559f0:\n          local_3c = 1;\n          local_44 = pppppppcVar36;\n          local_34 = pppppppcVar36;\n          if ((pppppppcVar3 < (code *******)0x2) && (((uint)pppppppcVar38[0x16] & 0x40000000) == 0))\n          {\n            local_50 = (code *******)0x0;\nLAB_00055a40:\n            local_78 = 6;\n            if (((uint)param_9 & 1) != 0) {\n              local_78 = 4;\n            }\n            pppppppcVar24 = (code *******)0x1;\n            pppppppcVar25 = param_4;\n            if ((int)param_5 < (int)param_4) {\n              pppppppcVar24 = (code *******)0xffffffff;\n              pppppppcVar25 = param_5;\n            }\n            pppppppcVar26 = param_5;\n            if ((int)param_5 <= (int)param_4) {\n              pppppppcVar26 = param_4;\n            }\n            ppppppcVar35 = pppppppcVar38[0x17];\n            uVar16 = 8;\n            if (local_148 != (code *******)0x0) {\n              if (ppppppcVar35 == (code ******)0x1) {\n                pppppppcVar28 = (code *******)0x4;\n              }\n              else {\n                pppppppcVar28 = pppppppcVar2;\n                if ((-1 < (int)param_1[3] << 9) && (ppppppcVar32 == (code ******)0x0)) {\n                  pppppppcVar28 = (code *******)0x4;\n                }\n              }\n              pppppppcVar29 = (code *******)0x0;\n              if ((int)param_4 <= (int)param_5) {\n                pppppppcVar29 = (code *******)0x2;\n              }\n              uVar16 = (uint)(ppppppcVar32 != (code ******)0x0) | (uint)pppppppcVar28 |\n                       (uint)pppppppcVar29;\n            }\n            local_dc = param_4;\n            if ((int)param_4 < (int)pppppppcVar25) {\n              local_150 = (code *******)0x1;\n              param_6 = pppppppcVar36;\n            }\n            else if ((int)pppppppcVar26 < (int)param_4) {\n              local_150 = (code *******)0x1;\n              param_4 = (code *******)(uint)((int)param_5 < (int)param_4);\n              param_6 = pppppppcVar36;\n            }\n            else {\n              pppppppcVar36 = (code *******)&local_dc;\n              if ((code *******)(uint)((int)param_5 < (int)param_4) != (code *******)0x0) {\n                pppppppcVar36 = (code *******)0x0;\n              }\n              pcVar4 = (code *)(PTR_DAT_000799a4 + -0x2b7c);\n              piVar5 = (int *)(PTR_s_nt0_000795b8 + (uVar16 - 4) * 4 + 0x6e38);\nLAB_00055b44:\n              if (uVar16 - 4 < 5) {\n                    /* WARNING: Could not emulate address calculation at 0x00054920 */\n                    /* WARNING: Treating indirect jump as call */\n                pppppppcVar29 = (code *******)(*(code *)(&_gp_1 + *piVar5))();\n                return pppppppcVar29;\n              }\n              param_5 = &local_b4;\n              pppppppcVar28 = pppppppcVar33;\n              while( true ) {\n                param_4 = local_dc;\n                pppppppcVar33 = (code *******)((int)local_dc - local_9c);\n                pppppppcVar30 = param_9;\n                pppppppcVar31 = pppppppcVar2;\n                param_6 = local_148;\n                unaff_s4 = param_3;\n                unaff_s5 = pppppppcVar24;\n                unaff_s7 = pppppppcVar26;\n                if (local_94 <= pppppppcVar33) {\n                  pppppppcVar29 = local_dc;\n                  local_150 = (code *******)(*pcVar4)(param_5);\n                  pppppppcVar33 = pppppppcVar28;\n                  if (local_150 != (code *******)0x0) goto LAB_000557e4;\n                  pppppppcVar33 = (code *******)((int)param_4 - local_9c);\n                }\n                if ((int)param_4 < (int)param_3) {\n                  uVar7 = (uint)(byte)*(code *)((int)pppppppcVar33 + (int)local_b0);\n                }\n                else {\n                  uVar7 = 0;\n                }\n                param_4 = (code *******)((int)param_4 + (int)pppppppcVar24);\n                if (*(code *)((int)local_148 + uVar7) != (code)0x0) break;\n                pppppppcVar33 = pppppppcVar28;\n                local_dc = param_4;\n                if ((int)param_4 < (int)pppppppcVar25) {\n                  local_150 = (code *******)0x1;\n                  goto LAB_000557e4;\n                }\n                if ((code *******)(uint)((int)pppppppcVar26 < (int)param_4) != (code *******)0x0) {\n                  local_150 = (code *******)0x1;\n                  param_4 = (code *******)(uint)((int)pppppppcVar26 < (int)param_4);\n                  goto LAB_000557e4;\n                }\n              }\n              while( true ) {\n                pppppppcVar29 = local_dc;\n                pppppppcVar30 = param_9;\n                pppppppcVar6 = (code *******)(*pcVar4)(&local_b4);\n                pppppppcVar14 = local_60;\n                pppppppcVar42 = local_8c;\n                pppppppcVar33 = pppppppcVar28;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar6 != (code *******)0x0) goto LAB_000557e4;\n                if (((ppppppcVar35 != (code ******)0x1) && (local_98 != (code *******)0x0)) &&\n                   (*local_ac == -1)) goto LAB_00055b1c;\n                local_3c = 0;\n                local_48 = 0;\n                local_4c = (code *******)0x0;\n                local_138 = local_8c;\n                local_d8 = (code *******)0x0;\n                unaff_s7 = (code *******)local_60[9];\n                pppppppcVar30 = local_5c;\n                param_4 = pppppppcVar14;\n                if (((uint)unaff_s7[0xd] & 0x1000000) == 0) break;\n                pppppppcVar29 = (code *******)((int)local_8c + -1);\n                pppppppcVar33 = (code *******)FUN_00049110(&local_b4);\n                if (((uint)pppppppcVar33 & 1) == 0) {\n                  if (pppppppcVar33 == (code *******)0x0) break;\n                  if (((uint)pppppppcVar33 & 6) == 6) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xc];\n                    goto LAB_00054d1c;\n                  }\n                  if (((uint)pppppppcVar33 & 2) != 0) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xb];\n                    goto LAB_00054d1c;\n                  }\n                  pppppppcVar28 = pppppppcVar33;\n                  if (((uint)pppppppcVar33 & 4) == 0) break;\n                  pppppppcVar30 = (code *******)unaff_s7[10];\n                  pppppppcVar29 = pppppppcVar14;\n                  unaff_s7 = (code *******)FUN_0004ae34(&local_d8);\n                  pppppppcVar28 = pppppppcVar33;\n                  if (unaff_s7 != (code *******)0x0) break;\n                  if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                }\n                else {\n                  unaff_s7 = (code *******)pppppppcVar14[10];\nLAB_00054d1c:\n                  pppppppcVar28 = (code *******)PTR_s_nt0_000795b8;\n                  if (unaff_s7 != (code *******)0x0) break;\n                }\n                pppppppcVar28 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                local_dc = (code *******)\n                           (*(code *)PTR___assert_fail_000799f8)\n                                     (PTR_s_nt0_000795b8 + 0x71a0,pppppppcVar29,0x435);\n                if (local_dc == pppppppcVar26) {\n                  if ((int)local_dc < (int)param_3) {\n                    uVar7 = (uint)(byte)*(code *)((int)local_dc + (int)param_2);\n                  }\n                  else {\n                    uVar7 = 0;\n                  }\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    uVar7 = (uint)*(byte *)((int)ppppppcVar32 + uVar7);\n                  }\n                  if (*(code *)((int)local_148 + uVar7) == (code)0x0) {\n                    local_150 = (code *******)0x1;\n                    pppppppcVar30 = param_9;\n                    pppppppcVar33 = pppppppcVar28;\n                    goto LAB_000557e4;\n                  }\n                }\n              }\n              pppppppcVar33 = pppppppcVar28;\n              bVar1 = pppppppcVar36 != (code *******)0x0;\n              if ((local_50 == (code *******)0x0) ||\n                 (local_50[(int)pppppppcVar42] = (code ******)unaff_s7,\n                 pppppppcVar14[0x13] == (code ******)0x0)) {\nLAB_00054d50:\n                if ((int)unaff_s7[0xd] << 4 < 0) {\n                  if ((((uint)unaff_s7[0xd] & 0x1000000) == 0) ||\n                     (pppppppcVar29 = unaff_s7, pppppppcVar30 = pppppppcVar42,\n                     iVar18 = FUN_00049440(&local_b4), iVar18 != 0)) {\n                    unaff_s8 = pppppppcVar42;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                  }\n                  else {\n                    pppppppcVar42 = (code *******)0xffffffff;\n                    pppppppcVar28 = (code *******)0x0;\n                  }\n                }\n                else {\n                  pppppppcVar42 = (code *******)0xffffffff;\n                  pppppppcVar28 = (code *******)0x0;\n                }\n                pcVar8 = (code *)(PTR_DAT_000799a4 + -0x7144);\n                pcVar9 = (code *)(PTR_DAT_000799a4 + -0x1980);\n                pcVar10 = (code *)(PTR_DAT_000799a4 + -0x2f9c);\n                unaff_s8 = pppppppcVar42;\n                local_144 = pppppppcVar36;\n                while( true ) {\n                  uVar44 = CONCAT44(local_98,local_84);\n                  unaff_s5 = (code *******)((int)local_8c + 1);\n                  pppppppcVar29 = local_8c;\n                  if ((int)local_7c <= (int)local_8c) break;\n                  if (((int)local_90 <= (int)unaff_s5) && ((int)local_90 < (int)local_84))\n                  goto LAB_00054e94;\n                  if ((int)local_98 <= (int)unaff_s5) {\n                    while ((int)((ulonglong)uVar44 >> 0x20) < (int)uVar44) {\nLAB_00054e94:\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 2);\n                      local_d8 = (code *******)(*pcVar8)(&local_b4);\n                      if (local_d8 == (code *******)0x0) break;\n                      pppppppcVar14 = param_4;\n                      if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                      pppppppcVar33 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                      pppppppcVar30 = (code *******)0x46c;\n                      pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                      uVar44 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0);\n                      pppppppcVar28 = pppppppcVar38;\n                    }\n                  }\n                  pppppppcVar42 = local_60;\n                  if ((int)unaff_s7[0xd] << 5 < 0) {\n                    pppppppcVar31 = pppppppcVar42;\n                    if (0 < (int)unaff_s7[2]) {\n                      pcVar11 = (code *)(PTR_DAT_000799a4 + -0x6fdc);\n                      pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6ef0);\n                      param_6 = (code *******)0x0;\n                      do {\n                        param_5 = (code *******)unaff_s7[3][(int)param_6];\n                        ppppppcVar39 = *pppppppcVar42;\n                        pppppcVar13 = ppppppcVar39[(int)param_5 * 2 + 1];\n                        if (((uint)pppppcVar13 & 0x800) != 0) {\n                          if (((uint)pppppcVar13 & 0xffc000) != 0) {\n                            pppppppcVar29 = local_8c;\n                            uVar19 = (*pcVar12)(&local_b4,local_8c,local_5c);\n                            uVar7 = (uint)((int)ppppppcVar39[(int)param_5 * 2 + 1] << 8) >> 0x16;\n                            if ((uVar7 & 4) == 0) {\n                              uVar27 = uVar19 & 1;\n                              if ((uVar7 & 8) != 0) goto joined_r0x00054f40;\n                            }\n                            else {\n                              uVar27 = uVar7 & 8;\n                              if ((uVar19 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                              if (uVar27 != 0) goto LAB_000550a4;\n                            }\n                            if ((((uVar7 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                               (((uVar7 & 0x80) != 0 &&\n                                (pppppppcVar33 = local_8c, (uVar19 & 8) == 0)))) goto LAB_000550a4;\n                          }\n                          pppppppcVar30 = &local_b4;\n                          pppppppcVar29 = param_5;\n                          pppppppcVar33 = local_8c;\n                          iVar18 = (*pcVar10)(pppppppcVar42);\n                          if (iVar18 != 0) {\n                            pppppppcVar14 = (code *******)((int)local_8c + iVar18);\n                            if (iVar18 <= local_3c) {\n                              iVar18 = local_3c;\n                            }\n                            pppppppcVar29 = pppppppcVar14;\n                            local_3c = iVar18;\n                            local_d4 = (code *******)(*pcVar11)(&local_b4);\n                            pppppppcVar15 = local_d4;\n                            if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                            pppppppcVar30 =\n                                 (code *******)\n                                 (pppppppcVar42[6] + (int)pppppppcVar42[3][(int)param_5] * 3);\n                            unaff_s4 = (code *******)((int)pppppppcVar14 * 4);\n                            param_5 = local_50 + (int)pppppppcVar14;\n                            if (*param_5 == (code ******)0x0) {\n                              local_d0 = (code *******)*pppppppcVar30;\n                              local_cc = (code *******)pppppppcVar30[1];\n                              local_c8 = (code *******)pppppppcVar30[2];\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *param_5 = ppppppcVar39;\n                            }\n                            else {\n                              pppppppcVar29 = (code *******)(*param_5)[10];\n                              local_d4 = (code *******)FUN_000484bc(&local_d0);\n                              pppppppcVar15 = local_d4;\n                              if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar15 = local_50 + (int)pppppppcVar14;\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *pppppppcVar15 = ppppppcVar39;\n                              (*(code *)PTR_free_00079c24)(local_c8);\n                            }\n                            unaff_s4 = local_50 + (int)pppppppcVar14;\n                            if ((*unaff_s4 == (code ******)0x0) &&\n                               (pppppppcVar15 = local_d4, local_d4 != (code *******)0x0))\n                            goto LAB_00055e44;\n                          }\n                        }\nLAB_000550a4:\n                        param_6 = (code *******)((int)param_6 + 1);\n                      } while ((int)param_6 < (int)unaff_s7[2]);\n                    }\n                    local_d8 = (code *******)0x0;\n                  }\n                  uVar7 = (uint)(byte)*(code *)((int)local_8c + (int)local_b0);\n                  local_8c = (code *******)((int)local_8c + 1);\n                  do {\n                    if (unaff_s7[0xb] != (code ******)0x0) {\n                      pppppppcVar30 = (code *******)unaff_s7[0xb][uVar7];\nLAB_000553a0:\n                      pppppppcVar14 = pppppppcVar30;\n                      if (local_50 != (code *******)0x0) goto LAB_000553ac;\n                      goto LAB_000553cc;\n                    }\n                    pppppppcVar31 = (code *******)unaff_s7[0xc];\n                    if (pppppppcVar31 != (code *******)0x0) {\n                      pppppppcVar29 = (code *******)((int)local_8c + -1);\n                      uVar19 = FUN_00049110(&local_b4);\n                      if ((uVar19 & 1) == 0) {\n                        pppppppcVar30 = (code *******)pppppppcVar31[uVar7];\n                      }\n                      else {\n                        pppppppcVar31 = pppppppcVar31 + uVar7 + 0x100;\n                        pppppppcVar30 = (code *******)*pppppppcVar31;\n                      }\n                      goto LAB_000553a0;\n                    }\n                    pppppppcVar29 = unaff_s7;\n                    pppppppcVar30 = local_5c;\n                    iVar18 = (*pcVar9)(local_60);\n                  } while (iVar18 != 0);\n                  local_d8 = (code *******)0xc;\n                  pppppppcVar15 = local_d8;\nLAB_00055e44:\n                  local_d8 = pppppppcVar15;\n                  param_4 = (code *******)0x0;\n                  if (local_50 == (code *******)0x0) {\n                    pppppppcVar14 = param_4;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    break;\n                  }\n                  pppppppcVar30 = (code *******)0x0;\nLAB_000553ac:\n                  pppppppcVar29 = &local_b4;\n                  pppppppcVar14 = (code *******)FUN_00053684(&local_d8);\nLAB_000553cc:\n                  param_4 = pppppppcVar14;\n                  if (pppppppcVar14 == (code *******)0x0) {\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    if ((local_50 == (code *******)0x0) ||\n                       ((pppppppcVar28 != (code *******)0x0 && (pppppppcVar34 == (code *******)0x0))\n                       )) break;\n                    param_6 = &local_b4;\n                    param_5 = (code *******)&local_d8;\n                    pppppppcVar31 = (code *******)(PTR_DAT_000799a4 + 0x3684);\n                    do {\n                      pppppppcVar15 = local_50 + (int)local_8c;\n                      pppppppcVar42 = local_8c;\n                      do {\n                        pppppppcVar42 = (code *******)((int)pppppppcVar42 + 1);\n                        pppppppcVar29 = local_4c;\n                        param_4 = pppppppcVar14;\n                        if ((int)local_4c < (int)pppppppcVar42) goto LAB_00055da8;\n                        local_8c = (code *******)((int)local_8c + 1);\n                        pppppppcVar15 = pppppppcVar15 + 1;\n                      } while (*pppppppcVar15 == (code ******)0x0);\n                      pppppppcVar30 = (code *******)0x0;\n                      pppppppcVar29 = param_6;\n                      param_4 = (code *******)(*(code *)pppppppcVar31)(param_5);\n                      if (local_d8 != (code *******)0x0) {\n                        if (param_4 == (code *******)0x0) goto LAB_00055da8;\n                        break;\n                      }\n                      pppppppcVar29 = local_4c;\n                    } while (param_4 == (code *******)0x0);\n                  }\n                  pppppppcVar15 = (code *******)((uint)unaff_s7 ^ (uint)param_4);\n                  pppppppcVar42 = unaff_s7;\n                  pppppppcVar14 = local_138;\n                  if ((bVar1) &&\n                     (pppppppcVar42 = pppppppcVar15, pppppppcVar14 = unaff_s5,\n                     pppppppcVar15 != (code *******)0x0)) {\n                    bVar1 = false;\n                    pppppppcVar14 = local_138;\n                  }\n                  local_138 = pppppppcVar14;\n                  unaff_s7 = param_4;\n                  if ((((uint)param_4[0xd] & 0x8000000) != 0) &&\n                     ((((uint)param_4[0xd] & 0x1000000) == 0 ||\n                      (pppppppcVar29 = param_4, pppppppcVar30 = local_8c,\n                      iVar18 = FUN_00049440(&local_b4), iVar18 != 0)))) {\n                    unaff_s7 = pppppppcVar42;\n                    unaff_s8 = local_8c;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                    local_144 = (code *******)0x0;\n                    unaff_s7 = param_4;\n                  }\n                }\nLAB_00055da8:\n                if (local_144 != (code *******)0x0) {\n                  *local_144 = (code ******)((int)local_138 + (int)*local_144);\n                }\n              }\n              else {\n                param_4 = unaff_s7 + 1;\n                pppppppcVar30 = (code *******)0x0;\n                pppppppcVar29 = param_4;\n                local_d8 = (code *******)FUN_00047a44(&local_b4);\n                unaff_s8 = local_d8;\n                if (local_d8 == (code *******)0x0) {\n                  if (((uint)unaff_s7[0xd] & 0x2000000) == 0) {\n                    pppppppcVar29 = param_4;\n                    bVar1 = false;\n                  }\n                  else {\n                    pppppppcVar29 = param_4;\n                    local_d8 = (code *******)FUN_00052d84(&local_b4);\n                    unaff_s8 = local_d8;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055dbc;\n                    bVar1 = false;\n                  }\n                  goto LAB_00054d50;\n                }\n              }\nLAB_00055dbc:\n              if (unaff_s8 == (code *******)0xffffffff) {\nLAB_00055b04:\n                FUN_0004b7e8(&local_b4);\nLAB_00055b1c:\n                local_dc = (code *******)((int)pppppppcVar24 + (int)local_dc);\n                if ((int)pppppppcVar25 <= (int)local_dc) goto code_r0x00055b38;\n                local_150 = (code *******)0x1;\n                goto LAB_000557e4;\n              }\n              if (unaff_s8 == (code *******)&SUB_fffffffe) {\n                local_150 = (code *******)0xc;\n                goto LAB_000557e4;\n              }\n              local_58 = unaff_s8;\n              if (((uint)param_1[7] & 0x8000000) == 0) {\n                if (pppppppcVar3 < (code *******)0x2) {\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055c08;\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                else {\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                if (pppppppcVar3 < (code *******)0x2) {\nLAB_00055c6c:\n                  pppppppcVar28 = pppppppcVar33;\n                  unaff_s4 = local_60;\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055548;\n                }\n                else {\n                  cVar23 = *(code *)(pppppppcVar38 + 0x16);\nLAB_00055c20:\n                  pppppppcVar28 = pppppppcVar33;\n                  if (-1 < (char)cVar23) goto LAB_00055c6c;\n                }\n                pppppppcVar31 = local_54;\n                pppppppcVar42 = local_60;\n                unaff_s4 = pppppppcVar42;\n                if (unaff_s8 < (code *******)0x3fffffff) {\n                  param_4 = (code *******)((int)((int)unaff_s8 + 1) * 4);\n                  unaff_s5 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                  if (unaff_s5 == (code *******)0x0) {\nLAB_00055b9c:\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    local_150 = (code *******)0xc;\n                    pppppppcVar33 = pppppppcVar28;\n                  }\n                  else {\n                    pppppppcVar29 = (code *******)&local_d0;\n                    if (pppppppcVar42[0x13] == (code ******)0x0) {\n                      local_cc = (code *******)0x0;\n                      local_c8 = pppppppcVar31;\n                      local_c0 = 0;\n                      local_bc = 0;\n                      local_b8 = 0;\n                      local_d0 = unaff_s5;\n                      local_c4 = unaff_s8;\n                      param_5 = (code *******)FUN_0005421c(&local_b4);\n                      (*(code *)PTR_free_00079c24)(local_b8);\n                      if (param_5 == (code *******)0x0) {\n                        param_4 = (code *******)*unaff_s5;\n                        if (param_4 == (code *******)0x0) {\nLAB_00055b70:\n                          (*(code *)PTR_free_00079c24)(unaff_s5);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          pppppppcVar33 = pppppppcVar28;\n                          goto LAB_00055b04;\n                        }\nLAB_00055528:\n                        (*(code *)PTR_free_00079c24)(local_50);\n                        pppppppcVar33 = pppppppcVar28;\n                        unaff_s4 = pppppppcVar42;\n                        local_58 = unaff_s8;\n                        local_54 = pppppppcVar31;\n                        local_50 = unaff_s5;\n                        goto LAB_00055548;\n                      }\nLAB_00055acc:\n                      param_4 = (code *******)0x0;\n                      pppppppcVar33 = pppppppcVar28;\n                      unaff_s4 = pppppppcVar42;\n                    }\n                    else {\n                      param_4 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                      if (param_4 == (code *******)0x0) goto LAB_00055b9c;\n                      unaff_s7 = (code *******)&local_d0;\n                      pcVar8 = (code *)(PTR_DAT_000799a4 + 0x421c);\n                      pcVar9 = (code *)(PTR_DAT_000799a4 + -0x6bc0);\n                      pppppppcVar33 = pppppppcVar28;\n                      while( true ) {\n                        pppppppcVar28 = (code *******)((int)unaff_s8 + 1);\n                        param_6 = (code *******)((int)pppppppcVar28 * 4);\n                        pppppppcVar30 = param_6;\n                        (*(code *)PTR_memset_00079b00)(param_4,0);\n                        local_c0 = 0;\n                        local_bc = 0;\n                        local_b8 = 0;\n                        pppppppcVar29 = unaff_s7;\n                        local_d0 = unaff_s5;\n                        local_cc = param_4;\n                        local_c8 = pppppppcVar31;\n                        local_c4 = unaff_s8;\n                        param_5 = (code *******)(*pcVar8)(&local_b4);\n                        (*(code *)PTR_free_00079c24)(local_b8);\n                        unaff_s4 = pppppppcVar28;\n                        if (param_5 != (code *******)0x0) break;\n                        if ((*unaff_s5 != (code ******)0x0) ||\n                           (param_6 = param_6 + -1, *param_4 != (code ******)0x0)) {\n                          pppppppcVar29 = unaff_s5;\n                          pppppppcVar30 = param_4;\n                          param_5 = (code *******)FUN_000520d0(pppppppcVar42);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          if (param_5 != (code *******)0x0) goto LAB_00055acc;\n                          goto LAB_00055528;\n                        }\n                        param_6 = (code *******)((int)local_50 + (int)param_6);\n                        do {\n                          while( true ) {\n                            unaff_s8 = (code *******)((int)unaff_s8 + -1);\n                            if ((int)unaff_s8 < 0) goto LAB_00055b70;\n                            pppppppcVar29 = (code *******)param_6[-1];\n                            if (pppppppcVar29 != (code *******)0x0) break;\n                            param_6 = param_6 + -1;\n                          }\n                          param_6 = param_6 + -1;\n                        } while (((uint)pppppppcVar29[0xd] & 0x8000000) == 0);\n                        pppppppcVar31 = (code *******)(*pcVar9)(&local_b4,pppppppcVar29,unaff_s8);\n                        pppppppcVar33 = pppppppcVar28;\n                      }\n                    }\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    (*(code *)PTR_free_00079c24)(param_4);\n                    local_150 = param_5;\n                    if (param_5 == (code *******)0x1) goto LAB_00055b04;\n                  }\n                }\n                else {\n                  local_150 = (code *******)0xc;\n                  pppppppcVar33 = pppppppcVar28;\n                }\n                goto LAB_000557e4;\n              }\n              if (pppppppcVar38[0x13] != (code ******)0x0) {\n                pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                pppppppcVar30 = unaff_s8;\n                local_54 = (code *******)FUN_00049440(&local_b4);\n                goto LAB_00055c6c;\n              }\nLAB_00055c08:\n              if ((((uint)param_1[7] & 0x8000000) == 0) && ((code *******)0x1 < pppppppcVar3)) {\n                cVar23 = *(code *)(pppppppcVar38 + 0x16);\n                goto LAB_00055c20;\n              }\nLAB_00055548:\n              if (pppppppcVar3 == (code *******)0x0) goto LAB_000557e4;\n              if (pppppppcVar3 < (code *******)0x2) {\n                *param_8 = (code ******)0x0;\n                param_8[1] = (code ******)local_58;\n                goto LAB_000555ac;\n              }\n              pppppppcVar29 = param_8 + 2;\n              do {\n                pppppppcVar29[1] = (code ******)0xffffffff;\n                *pppppppcVar29 = (code ******)0xffffffff;\n                pppppppcVar29 = pppppppcVar29 + 2;\n              } while (pppppppcVar29 != param_8 + (int)pppppppcVar3 * 2);\n              *param_8 = (code ******)0x0;\n              param_8[1] = (code ******)local_58;\n              if (((uint)param_1[7] & 0x8000000) != 0) {\nLAB_000555ac:\n                pppppppcVar33 = param_8;\n                do {\n                  pppppppcVar29 = (code *******)*pppppppcVar33;\n                  if (pppppppcVar29 != (code *******)0xffffffff) {\n                    if (local_68 != '\0') {\n                      pppppppcVar34 = local_94;\n                      if (pppppppcVar29 != local_98) {\n                        pppppppcVar34 = *(code ********)(local_a8 + (int)pppppppcVar29 * 4);\n                      }\n                      *pppppppcVar33 = (code ******)pppppppcVar34;\n                      pppppppcVar29 = local_94;\n                      if (local_98 != (code *******)pppppppcVar33[1]) {\n                        pppppppcVar29 = *(code ********)(local_a8 + (int)pppppppcVar33[1] * 4);\n                      }\n                      pppppppcVar33[1] = (code ******)pppppppcVar29;\n                    }\n                    *pppppppcVar33 = (code ******)((int)local_dc + (int)*pppppppcVar33);\n                    pppppppcVar29 = (code *******)((int)local_dc + (int)pppppppcVar33[1]);\n                    pppppppcVar33[1] = (code ******)pppppppcVar29;\n                  }\n                  pppppppcVar33 = pppppppcVar33 + 2;\n                } while (pppppppcVar33 != param_8 + (int)pppppppcVar3 * 2);\n                if (0 < local_118) {\n                  pppppppcVar33 = param_8 + (int)pppppppcVar3 * 2;\n                  do {\n                    *pppppppcVar33 = (code ******)0xffffffff;\n                    pppppppcVar33[1] = (code ******)0xffffffff;\n                    pppppppcVar33 = pppppppcVar33 + 2;\n                  } while (pppppppcVar33 != param_8 + (int)param_7 * 2);\n                }\n                pppppppcVar30 = local_dc;\n                pppppppcVar33 = param_8;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar38[0x21] != (code ******)0x0) {\n                  pppppppcVar30 = (code *******)((int)pppppppcVar3 + -1);\n                  pppppppcVar34 = (code *******)0x0;\n                  pppppppcVar3 = param_8;\n                  while( true ) {\n                    pppppppcVar29 = (code *******)((int)pppppppcVar34 * 4);\n                    if (pppppppcVar30 == pppppppcVar34) break;\n                    if (*(code ********)((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) !=\n                        pppppppcVar34) {\n                      pppppppcVar3[2] =\n                           param_8[(int)((int)*(code ********)\n                                               ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1)\n                                   * 2];\n                      pppppppcVar3[3] =\n                           param_8[((int)*(code ******)\n                                          ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1) * 2 +\n                                   1];\n                    }\n                    pppppppcVar34 = (code *******)((int)pppppppcVar34 + 1);\n                    pppppppcVar3 = pppppppcVar3 + 2;\n                  }\n                }\n                goto LAB_000557e4;\n              }\n              if ((char)*(code *)(pppppppcVar38 + 0x16) < '\0') {\n                local_168 = (uint)(0 < (int)pppppppcVar38[0x13]);\n              }\n              else {\n                local_168 = 0;\n              }\n              pppppppcVar29 = &local_b4;\n              pppppppcVar30 = pppppppcVar3;\n              pppppppcVar33 = param_8;\n              local_150 = (code *******)FUN_0004f4a0(param_1);\n              if (local_150 == (code *******)0x0) goto LAB_000555ac;\n            }\n          }\n          else if (local_90 < 0x3fffffff) {\n            local_50 = (code *******)(*(code *)PTR_malloc_00079b54)((local_90 + 1) * 4);\n            if (local_50 != (code *******)0x0) goto LAB_00055a40;\n            local_150 = (code *******)0xc;\n            param_6 = pppppppcVar36;\n          }\n          else {\n            local_150 = (code *******)0xc;\n            param_6 = pppppppcVar36;\n          }\n        }\n        else {\n          unaff_s5 = (code *******)((int)ppppppcVar35 * 8);\n          if (pppppppcVar36 < (code *******)0xccccccd) {\n            unaff_s4 = (code *******)(*(code *)PTR_malloc_00079b54)((int)ppppppcVar35 * 0x28);\n            local_40 = unaff_s4;\n            local_30 = (*(code *)PTR_malloc_00079b54)(unaff_s5);\n            if ((unaff_s4 != (code *******)0x0) && (local_30 != 0)) goto LAB_000559f0;\n          }\n          local_150 = (code *******)0xc;\n          param_6 = pppppppcVar36;\n        }\nLAB_000557e4:\n        (*(code *)PTR_free_00079c24)(local_50);\n        param_1 = pppppppcVar30;\n        if (pppppppcVar38[0x13] != (code ******)0x0) {\n          FUN_0004b7e8(&local_b4);\n          (*(code *)PTR_free_00079c24)(local_30);\n          (*(code *)PTR_free_00079c24)(local_40);\n          param_1 = pppppppcVar30;\n        }\n        FUN_0004b2bc(&local_b4);\n        pppppppcStack_1a0 = param_4;\n        pppppppcStack_19c = pppppppcVar31;\n      }\n    }\n  }" else (if_statement "if (pppppppcVar38[10] == (code ******)0x0) {\n    local_150 = (code *******)0x1;\n  }\n  else if (pppppppcVar38[0xb] == (code ******)0x0) {\n    local_150 = (code *******)0x1;\n  }\n  else {\n    pppppppcVar29 = (code *******)pppppppcVar38[0xc];\n    if (pppppppcVar29 == (code *******)0x0) {\n      local_150 = (code *******)0x1;\n    }\n    else {\n      pppppppcVar3 = param_5;\n      if ((((pppppppcVar38[9][2] == (code *****)0x0) && (pppppppcVar38[10][2] == (code *****)0x0))\n          && ((pppppppcVar38[0xb][2] == (code *****)0x0 || (((uint)param_1[7] & 0x1000000) == 0))))\n         && ((pppppppcVar3 = param_4, param_4 != (code *******)0x0 &&\n             (param_4 = param_5, pppppppcVar3 = param_5, param_5 != (code *******)0x0)))) {\n        local_150 = (code *******)0x1;\n        pppppppcStack_1a0 = param_5;\n      }\n      else {\n        param_5 = pppppppcVar3;\n        pppppppcVar3 = (code *******)((int)param_7 - local_118);\n        if (pppppppcVar3 == (code *******)0x0) {\n          pppppppcVar34 = (code *******)(uint)(pppppppcVar38[0x13] != (code ******)0x0);\n        }\n        else {\n          pppppppcVar34 = (code *******)0x1;\n        }\n        ppppppcVar32 = param_1[5];\n        local_6c = (byte)((uint)((int)param_1[3] << 9) >> 0x1f);\n        local_64 = (code *******)pppppppcVar38[0x17];\n        pppppppcVar31 = (code *******)((int)pppppppcVar38[2] + 1);\n        if ((int)pppppppcVar38[2] + 1 < (int)local_64) {\n          pppppppcVar31 = local_64;\n        }\n        pppppppcVar30 = (code *******)(uint)((int)param_3 + 1 < (int)pppppppcVar31);\n        pppppppcVar33 = (code *******)0x1;\n        local_69 = local_6c;\n        if (ppppppcVar32 != (code ******)0x0) {\n          local_69 = 1;\n        }\n        local_6b = (byte)((uint)((int)pppppppcVar38[0x16] << 2) >> 0x1f);\n        local_6a = (byte)((uint)((int)pppppppcVar38[0x16] << 3) >> 0x1f);\n        pppppppcVar29 = (code *******)((int)param_3 + 1);\n        if (pppppppcVar30 == (code *******)0x0) {\n          pppppppcVar29 = pppppppcVar31;\n        }\n        local_b4 = param_2;\n        local_88 = param_3;\n        local_84 = param_3;\n        local_80 = param_3;\n        local_7c = param_3;\n        local_74 = ppppppcVar32;\n        local_150 = (code *******)FUN_00046d2c(&local_b4);\n        pppppppcVar31 = pppppppcVar34;\n        param_6 = param_6;\n        if (local_150 != (code *******)0x0) goto LAB_000557e4;\n        local_70 = pppppppcVar38 + 0x18;\n        local_66 = (byte)((uint)((int)pppppppcVar38[0x16] << 4) >> 0x1f);\n        pppppppcVar2 = (code *******)0x0;\n        local_98 = pppppppcVar2;\n        if ((local_69 == 0) && (local_b0 = param_2, (int)pppppppcVar38[0x17] < 2)) {\n          local_98 = param_3;\n        }\n        local_7c = param_6;\n        local_80 = param_6;\n        local_67 = (byte)((uint)((int)param_1[7] << 7) >> 0x1f);\n        ppppppcVar35 = pppppppcVar38[0x13];\n        pppppppcVar36 = (code *******)((int)ppppppcVar35 * 2);\n        local_5c = param_9;\n        local_58 = (code *******)0xffffffff;\n        local_94 = local_98;\n        if ((int)pppppppcVar36 < 1) {\nLAB_000559f0:\n          local_3c = 1;\n          local_44 = pppppppcVar36;\n          local_34 = pppppppcVar36;\n          if ((pppppppcVar3 < (code *******)0x2) && (((uint)pppppppcVar38[0x16] & 0x40000000) == 0))\n          {\n            local_50 = (code *******)0x0;\nLAB_00055a40:\n            local_78 = 6;\n            if (((uint)param_9 & 1) != 0) {\n              local_78 = 4;\n            }\n            pppppppcVar24 = (code *******)0x1;\n            pppppppcVar25 = param_4;\n            if ((int)param_5 < (int)param_4) {\n              pppppppcVar24 = (code *******)0xffffffff;\n              pppppppcVar25 = param_5;\n            }\n            pppppppcVar26 = param_5;\n            if ((int)param_5 <= (int)param_4) {\n              pppppppcVar26 = param_4;\n            }\n            ppppppcVar35 = pppppppcVar38[0x17];\n            uVar16 = 8;\n            if (local_148 != (code *******)0x0) {\n              if (ppppppcVar35 == (code ******)0x1) {\n                pppppppcVar28 = (code *******)0x4;\n              }\n              else {\n                pppppppcVar28 = pppppppcVar2;\n                if ((-1 < (int)param_1[3] << 9) && (ppppppcVar32 == (code ******)0x0)) {\n                  pppppppcVar28 = (code *******)0x4;\n                }\n              }\n              pppppppcVar29 = (code *******)0x0;\n              if ((int)param_4 <= (int)param_5) {\n                pppppppcVar29 = (code *******)0x2;\n              }\n              uVar16 = (uint)(ppppppcVar32 != (code ******)0x0) | (uint)pppppppcVar28 |\n                       (uint)pppppppcVar29;\n            }\n            local_dc = param_4;\n            if ((int)param_4 < (int)pppppppcVar25) {\n              local_150 = (code *******)0x1;\n              param_6 = pppppppcVar36;\n            }\n            else if ((int)pppppppcVar26 < (int)param_4) {\n              local_150 = (code *******)0x1;\n              param_4 = (code *******)(uint)((int)param_5 < (int)param_4);\n              param_6 = pppppppcVar36;\n            }\n            else {\n              pppppppcVar36 = (code *******)&local_dc;\n              if ((code *******)(uint)((int)param_5 < (int)param_4) != (code *******)0x0) {\n                pppppppcVar36 = (code *******)0x0;\n              }\n              pcVar4 = (code *)(PTR_DAT_000799a4 + -0x2b7c);\n              piVar5 = (int *)(PTR_s_nt0_000795b8 + (uVar16 - 4) * 4 + 0x6e38);\nLAB_00055b44:\n              if (uVar16 - 4 < 5) {\n                    /* WARNING: Could not emulate address calculation at 0x00054920 */\n                    /* WARNING: Treating indirect jump as call */\n                pppppppcVar29 = (code *******)(*(code *)(&_gp_1 + *piVar5))();\n                return pppppppcVar29;\n              }\n              param_5 = &local_b4;\n              pppppppcVar28 = pppppppcVar33;\n              while( true ) {\n                param_4 = local_dc;\n                pppppppcVar33 = (code *******)((int)local_dc - local_9c);\n                pppppppcVar30 = param_9;\n                pppppppcVar31 = pppppppcVar2;\n                param_6 = local_148;\n                unaff_s4 = param_3;\n                unaff_s5 = pppppppcVar24;\n                unaff_s7 = pppppppcVar26;\n                if (local_94 <= pppppppcVar33) {\n                  pppppppcVar29 = local_dc;\n                  local_150 = (code *******)(*pcVar4)(param_5);\n                  pppppppcVar33 = pppppppcVar28;\n                  if (local_150 != (code *******)0x0) goto LAB_000557e4;\n                  pppppppcVar33 = (code *******)((int)param_4 - local_9c);\n                }\n                if ((int)param_4 < (int)param_3) {\n                  uVar7 = (uint)(byte)*(code *)((int)pppppppcVar33 + (int)local_b0);\n                }\n                else {\n                  uVar7 = 0;\n                }\n                param_4 = (code *******)((int)param_4 + (int)pppppppcVar24);\n                if (*(code *)((int)local_148 + uVar7) != (code)0x0) break;\n                pppppppcVar33 = pppppppcVar28;\n                local_dc = param_4;\n                if ((int)param_4 < (int)pppppppcVar25) {\n                  local_150 = (code *******)0x1;\n                  goto LAB_000557e4;\n                }\n                if ((code *******)(uint)((int)pppppppcVar26 < (int)param_4) != (code *******)0x0) {\n                  local_150 = (code *******)0x1;\n                  param_4 = (code *******)(uint)((int)pppppppcVar26 < (int)param_4);\n                  goto LAB_000557e4;\n                }\n              }\n              while( true ) {\n                pppppppcVar29 = local_dc;\n                pppppppcVar30 = param_9;\n                pppppppcVar6 = (code *******)(*pcVar4)(&local_b4);\n                pppppppcVar14 = local_60;\n                pppppppcVar42 = local_8c;\n                pppppppcVar33 = pppppppcVar28;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar6 != (code *******)0x0) goto LAB_000557e4;\n                if (((ppppppcVar35 != (code ******)0x1) && (local_98 != (code *******)0x0)) &&\n                   (*local_ac == -1)) goto LAB_00055b1c;\n                local_3c = 0;\n                local_48 = 0;\n                local_4c = (code *******)0x0;\n                local_138 = local_8c;\n                local_d8 = (code *******)0x0;\n                unaff_s7 = (code *******)local_60[9];\n                pppppppcVar30 = local_5c;\n                param_4 = pppppppcVar14;\n                if (((uint)unaff_s7[0xd] & 0x1000000) == 0) break;\n                pppppppcVar29 = (code *******)((int)local_8c + -1);\n                pppppppcVar33 = (code *******)FUN_00049110(&local_b4);\n                if (((uint)pppppppcVar33 & 1) == 0) {\n                  if (pppppppcVar33 == (code *******)0x0) break;\n                  if (((uint)pppppppcVar33 & 6) == 6) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xc];\n                    goto LAB_00054d1c;\n                  }\n                  if (((uint)pppppppcVar33 & 2) != 0) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xb];\n                    goto LAB_00054d1c;\n                  }\n                  pppppppcVar28 = pppppppcVar33;\n                  if (((uint)pppppppcVar33 & 4) == 0) break;\n                  pppppppcVar30 = (code *******)unaff_s7[10];\n                  pppppppcVar29 = pppppppcVar14;\n                  unaff_s7 = (code *******)FUN_0004ae34(&local_d8);\n                  pppppppcVar28 = pppppppcVar33;\n                  if (unaff_s7 != (code *******)0x0) break;\n                  if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                }\n                else {\n                  unaff_s7 = (code *******)pppppppcVar14[10];\nLAB_00054d1c:\n                  pppppppcVar28 = (code *******)PTR_s_nt0_000795b8;\n                  if (unaff_s7 != (code *******)0x0) break;\n                }\n                pppppppcVar28 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                local_dc = (code *******)\n                           (*(code *)PTR___assert_fail_000799f8)\n                                     (PTR_s_nt0_000795b8 + 0x71a0,pppppppcVar29,0x435);\n                if (local_dc == pppppppcVar26) {\n                  if ((int)local_dc < (int)param_3) {\n                    uVar7 = (uint)(byte)*(code *)((int)local_dc + (int)param_2);\n                  }\n                  else {\n                    uVar7 = 0;\n                  }\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    uVar7 = (uint)*(byte *)((int)ppppppcVar32 + uVar7);\n                  }\n                  if (*(code *)((int)local_148 + uVar7) == (code)0x0) {\n                    local_150 = (code *******)0x1;\n                    pppppppcVar30 = param_9;\n                    pppppppcVar33 = pppppppcVar28;\n                    goto LAB_000557e4;\n                  }\n                }\n              }\n              pppppppcVar33 = pppppppcVar28;\n              bVar1 = pppppppcVar36 != (code *******)0x0;\n              if ((local_50 == (code *******)0x0) ||\n                 (local_50[(int)pppppppcVar42] = (code ******)unaff_s7,\n                 pppppppcVar14[0x13] == (code ******)0x0)) {\nLAB_00054d50:\n                if ((int)unaff_s7[0xd] << 4 < 0) {\n                  if ((((uint)unaff_s7[0xd] & 0x1000000) == 0) ||\n                     (pppppppcVar29 = unaff_s7, pppppppcVar30 = pppppppcVar42,\n                     iVar18 = FUN_00049440(&local_b4), iVar18 != 0)) {\n                    unaff_s8 = pppppppcVar42;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                  }\n                  else {\n                    pppppppcVar42 = (code *******)0xffffffff;\n                    pppppppcVar28 = (code *******)0x0;\n                  }\n                }\n                else {\n                  pppppppcVar42 = (code *******)0xffffffff;\n                  pppppppcVar28 = (code *******)0x0;\n                }\n                pcVar8 = (code *)(PTR_DAT_000799a4 + -0x7144);\n                pcVar9 = (code *)(PTR_DAT_000799a4 + -0x1980);\n                pcVar10 = (code *)(PTR_DAT_000799a4 + -0x2f9c);\n                unaff_s8 = pppppppcVar42;\n                local_144 = pppppppcVar36;\n                while( true ) {\n                  uVar44 = CONCAT44(local_98,local_84);\n                  unaff_s5 = (code *******)((int)local_8c + 1);\n                  pppppppcVar29 = local_8c;\n                  if ((int)local_7c <= (int)local_8c) break;\n                  if (((int)local_90 <= (int)unaff_s5) && ((int)local_90 < (int)local_84))\n                  goto LAB_00054e94;\n                  if ((int)local_98 <= (int)unaff_s5) {\n                    while ((int)((ulonglong)uVar44 >> 0x20) < (int)uVar44) {\nLAB_00054e94:\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 2);\n                      local_d8 = (code *******)(*pcVar8)(&local_b4);\n                      if (local_d8 == (code *******)0x0) break;\n                      pppppppcVar14 = param_4;\n                      if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                      pppppppcVar33 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                      pppppppcVar30 = (code *******)0x46c;\n                      pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                      uVar44 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0);\n                      pppppppcVar28 = pppppppcVar38;\n                    }\n                  }\n                  pppppppcVar42 = local_60;\n                  if ((int)unaff_s7[0xd] << 5 < 0) {\n                    pppppppcVar31 = pppppppcVar42;\n                    if (0 < (int)unaff_s7[2]) {\n                      pcVar11 = (code *)(PTR_DAT_000799a4 + -0x6fdc);\n                      pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6ef0);\n                      param_6 = (code *******)0x0;\n                      do {\n                        param_5 = (code *******)unaff_s7[3][(int)param_6];\n                        ppppppcVar39 = *pppppppcVar42;\n                        pppppcVar13 = ppppppcVar39[(int)param_5 * 2 + 1];\n                        if (((uint)pppppcVar13 & 0x800) != 0) {\n                          if (((uint)pppppcVar13 & 0xffc000) != 0) {\n                            pppppppcVar29 = local_8c;\n                            uVar19 = (*pcVar12)(&local_b4,local_8c,local_5c);\n                            uVar7 = (uint)((int)ppppppcVar39[(int)param_5 * 2 + 1] << 8) >> 0x16;\n                            if ((uVar7 & 4) == 0) {\n                              uVar27 = uVar19 & 1;\n                              if ((uVar7 & 8) != 0) goto joined_r0x00054f40;\n                            }\n                            else {\n                              uVar27 = uVar7 & 8;\n                              if ((uVar19 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                              if (uVar27 != 0) goto LAB_000550a4;\n                            }\n                            if ((((uVar7 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                               (((uVar7 & 0x80) != 0 &&\n                                (pppppppcVar33 = local_8c, (uVar19 & 8) == 0)))) goto LAB_000550a4;\n                          }\n                          pppppppcVar30 = &local_b4;\n                          pppppppcVar29 = param_5;\n                          pppppppcVar33 = local_8c;\n                          iVar18 = (*pcVar10)(pppppppcVar42);\n                          if (iVar18 != 0) {\n                            pppppppcVar14 = (code *******)((int)local_8c + iVar18);\n                            if (iVar18 <= local_3c) {\n                              iVar18 = local_3c;\n                            }\n                            pppppppcVar29 = pppppppcVar14;\n                            local_3c = iVar18;\n                            local_d4 = (code *******)(*pcVar11)(&local_b4);\n                            pppppppcVar15 = local_d4;\n                            if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                            pppppppcVar30 =\n                                 (code *******)\n                                 (pppppppcVar42[6] + (int)pppppppcVar42[3][(int)param_5] * 3);\n                            unaff_s4 = (code *******)((int)pppppppcVar14 * 4);\n                            param_5 = local_50 + (int)pppppppcVar14;\n                            if (*param_5 == (code ******)0x0) {\n                              local_d0 = (code *******)*pppppppcVar30;\n                              local_cc = (code *******)pppppppcVar30[1];\n                              local_c8 = (code *******)pppppppcVar30[2];\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *param_5 = ppppppcVar39;\n                            }\n                            else {\n                              pppppppcVar29 = (code *******)(*param_5)[10];\n                              local_d4 = (code *******)FUN_000484bc(&local_d0);\n                              pppppppcVar15 = local_d4;\n                              if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar15 = local_50 + (int)pppppppcVar14;\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *pppppppcVar15 = ppppppcVar39;\n                              (*(code *)PTR_free_00079c24)(local_c8);\n                            }\n                            unaff_s4 = local_50 + (int)pppppppcVar14;\n                            if ((*unaff_s4 == (code ******)0x0) &&\n                               (pppppppcVar15 = local_d4, local_d4 != (code *******)0x0))\n                            goto LAB_00055e44;\n                          }\n                        }\nLAB_000550a4:\n                        param_6 = (code *******)((int)param_6 + 1);\n                      } while ((int)param_6 < (int)unaff_s7[2]);\n                    }\n                    local_d8 = (code *******)0x0;\n                  }\n                  uVar7 = (uint)(byte)*(code *)((int)local_8c + (int)local_b0);\n                  local_8c = (code *******)((int)local_8c + 1);\n                  do {\n                    if (unaff_s7[0xb] != (code ******)0x0) {\n                      pppppppcVar30 = (code *******)unaff_s7[0xb][uVar7];\nLAB_000553a0:\n                      pppppppcVar14 = pppppppcVar30;\n                      if (local_50 != (code *******)0x0) goto LAB_000553ac;\n                      goto LAB_000553cc;\n                    }\n                    pppppppcVar31 = (code *******)unaff_s7[0xc];\n                    if (pppppppcVar31 != (code *******)0x0) {\n                      pppppppcVar29 = (code *******)((int)local_8c + -1);\n                      uVar19 = FUN_00049110(&local_b4);\n                      if ((uVar19 & 1) == 0) {\n                        pppppppcVar30 = (code *******)pppppppcVar31[uVar7];\n                      }\n                      else {\n                        pppppppcVar31 = pppppppcVar31 + uVar7 + 0x100;\n                        pppppppcVar30 = (code *******)*pppppppcVar31;\n                      }\n                      goto LAB_000553a0;\n                    }\n                    pppppppcVar29 = unaff_s7;\n                    pppppppcVar30 = local_5c;\n                    iVar18 = (*pcVar9)(local_60);\n                  } while (iVar18 != 0);\n                  local_d8 = (code *******)0xc;\n                  pppppppcVar15 = local_d8;\nLAB_00055e44:\n                  local_d8 = pppppppcVar15;\n                  param_4 = (code *******)0x0;\n                  if (local_50 == (code *******)0x0) {\n                    pppppppcVar14 = param_4;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    break;\n                  }\n                  pppppppcVar30 = (code *******)0x0;\nLAB_000553ac:\n                  pppppppcVar29 = &local_b4;\n                  pppppppcVar14 = (code *******)FUN_00053684(&local_d8);\nLAB_000553cc:\n                  param_4 = pppppppcVar14;\n                  if (pppppppcVar14 == (code *******)0x0) {\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    if ((local_50 == (code *******)0x0) ||\n                       ((pppppppcVar28 != (code *******)0x0 && (pppppppcVar34 == (code *******)0x0))\n                       )) break;\n                    param_6 = &local_b4;\n                    param_5 = (code *******)&local_d8;\n                    pppppppcVar31 = (code *******)(PTR_DAT_000799a4 + 0x3684);\n                    do {\n                      pppppppcVar15 = local_50 + (int)local_8c;\n                      pppppppcVar42 = local_8c;\n                      do {\n                        pppppppcVar42 = (code *******)((int)pppppppcVar42 + 1);\n                        pppppppcVar29 = local_4c;\n                        param_4 = pppppppcVar14;\n                        if ((int)local_4c < (int)pppppppcVar42) goto LAB_00055da8;\n                        local_8c = (code *******)((int)local_8c + 1);\n                        pppppppcVar15 = pppppppcVar15 + 1;\n                      } while (*pppppppcVar15 == (code ******)0x0);\n                      pppppppcVar30 = (code *******)0x0;\n                      pppppppcVar29 = param_6;\n                      param_4 = (code *******)(*(code *)pppppppcVar31)(param_5);\n                      if (local_d8 != (code *******)0x0) {\n                        if (param_4 == (code *******)0x0) goto LAB_00055da8;\n                        break;\n                      }\n                      pppppppcVar29 = local_4c;\n                    } while (param_4 == (code *******)0x0);\n                  }\n                  pppppppcVar15 = (code *******)((uint)unaff_s7 ^ (uint)param_4);\n                  pppppppcVar42 = unaff_s7;\n                  pppppppcVar14 = local_138;\n                  if ((bVar1) &&\n                     (pppppppcVar42 = pppppppcVar15, pppppppcVar14 = unaff_s5,\n                     pppppppcVar15 != (code *******)0x0)) {\n                    bVar1 = false;\n                    pppppppcVar14 = local_138;\n                  }\n                  local_138 = pppppppcVar14;\n                  unaff_s7 = param_4;\n                  if ((((uint)param_4[0xd] & 0x8000000) != 0) &&\n                     ((((uint)param_4[0xd] & 0x1000000) == 0 ||\n                      (pppppppcVar29 = param_4, pppppppcVar30 = local_8c,\n                      iVar18 = FUN_00049440(&local_b4), iVar18 != 0)))) {\n                    unaff_s7 = pppppppcVar42;\n                    unaff_s8 = local_8c;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                    local_144 = (code *******)0x0;\n                    unaff_s7 = param_4;\n                  }\n                }\nLAB_00055da8:\n                if (local_144 != (code *******)0x0) {\n                  *local_144 = (code ******)((int)local_138 + (int)*local_144);\n                }\n              }\n              else {\n                param_4 = unaff_s7 + 1;\n                pppppppcVar30 = (code *******)0x0;\n                pppppppcVar29 = param_4;\n                local_d8 = (code *******)FUN_00047a44(&local_b4);\n                unaff_s8 = local_d8;\n                if (local_d8 == (code *******)0x0) {\n                  if (((uint)unaff_s7[0xd] & 0x2000000) == 0) {\n                    pppppppcVar29 = param_4;\n                    bVar1 = false;\n                  }\n                  else {\n                    pppppppcVar29 = param_4;\n                    local_d8 = (code *******)FUN_00052d84(&local_b4);\n                    unaff_s8 = local_d8;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055dbc;\n                    bVar1 = false;\n                  }\n                  goto LAB_00054d50;\n                }\n              }\nLAB_00055dbc:\n              if (unaff_s8 == (code *******)0xffffffff) {\nLAB_00055b04:\n                FUN_0004b7e8(&local_b4);\nLAB_00055b1c:\n                local_dc = (code *******)((int)pppppppcVar24 + (int)local_dc);\n                if ((int)pppppppcVar25 <= (int)local_dc) goto code_r0x00055b38;\n                local_150 = (code *******)0x1;\n                goto LAB_000557e4;\n              }\n              if (unaff_s8 == (code *******)&SUB_fffffffe) {\n                local_150 = (code *******)0xc;\n                goto LAB_000557e4;\n              }\n              local_58 = unaff_s8;\n              if (((uint)param_1[7] & 0x8000000) == 0) {\n                if (pppppppcVar3 < (code *******)0x2) {\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055c08;\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                else {\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                if (pppppppcVar3 < (code *******)0x2) {\nLAB_00055c6c:\n                  pppppppcVar28 = pppppppcVar33;\n                  unaff_s4 = local_60;\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055548;\n                }\n                else {\n                  cVar23 = *(code *)(pppppppcVar38 + 0x16);\nLAB_00055c20:\n                  pppppppcVar28 = pppppppcVar33;\n                  if (-1 < (char)cVar23) goto LAB_00055c6c;\n                }\n                pppppppcVar31 = local_54;\n                pppppppcVar42 = local_60;\n                unaff_s4 = pppppppcVar42;\n                if (unaff_s8 < (code *******)0x3fffffff) {\n                  param_4 = (code *******)((int)((int)unaff_s8 + 1) * 4);\n                  unaff_s5 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                  if (unaff_s5 == (code *******)0x0) {\nLAB_00055b9c:\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    local_150 = (code *******)0xc;\n                    pppppppcVar33 = pppppppcVar28;\n                  }\n                  else {\n                    pppppppcVar29 = (code *******)&local_d0;\n                    if (pppppppcVar42[0x13] == (code ******)0x0) {\n                      local_cc = (code *******)0x0;\n                      local_c8 = pppppppcVar31;\n                      local_c0 = 0;\n                      local_bc = 0;\n                      local_b8 = 0;\n                      local_d0 = unaff_s5;\n                      local_c4 = unaff_s8;\n                      param_5 = (code *******)FUN_0005421c(&local_b4);\n                      (*(code *)PTR_free_00079c24)(local_b8);\n                      if (param_5 == (code *******)0x0) {\n                        param_4 = (code *******)*unaff_s5;\n                        if (param_4 == (code *******)0x0) {\nLAB_00055b70:\n                          (*(code *)PTR_free_00079c24)(unaff_s5);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          pppppppcVar33 = pppppppcVar28;\n                          goto LAB_00055b04;\n                        }\nLAB_00055528:\n                        (*(code *)PTR_free_00079c24)(local_50);\n                        pppppppcVar33 = pppppppcVar28;\n                        unaff_s4 = pppppppcVar42;\n                        local_58 = unaff_s8;\n                        local_54 = pppppppcVar31;\n                        local_50 = unaff_s5;\n                        goto LAB_00055548;\n                      }\nLAB_00055acc:\n                      param_4 = (code *******)0x0;\n                      pppppppcVar33 = pppppppcVar28;\n                      unaff_s4 = pppppppcVar42;\n                    }\n                    else {\n                      param_4 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                      if (param_4 == (code *******)0x0) goto LAB_00055b9c;\n                      unaff_s7 = (code *******)&local_d0;\n                      pcVar8 = (code *)(PTR_DAT_000799a4 + 0x421c);\n                      pcVar9 = (code *)(PTR_DAT_000799a4 + -0x6bc0);\n                      pppppppcVar33 = pppppppcVar28;\n                      while( true ) {\n                        pppppppcVar28 = (code *******)((int)unaff_s8 + 1);\n                        param_6 = (code *******)((int)pppppppcVar28 * 4);\n                        pppppppcVar30 = param_6;\n                        (*(code *)PTR_memset_00079b00)(param_4,0);\n                        local_c0 = 0;\n                        local_bc = 0;\n                        local_b8 = 0;\n                        pppppppcVar29 = unaff_s7;\n                        local_d0 = unaff_s5;\n                        local_cc = param_4;\n                        local_c8 = pppppppcVar31;\n                        local_c4 = unaff_s8;\n                        param_5 = (code *******)(*pcVar8)(&local_b4);\n                        (*(code *)PTR_free_00079c24)(local_b8);\n                        unaff_s4 = pppppppcVar28;\n                        if (param_5 != (code *******)0x0) break;\n                        if ((*unaff_s5 != (code ******)0x0) ||\n                           (param_6 = param_6 + -1, *param_4 != (code ******)0x0)) {\n                          pppppppcVar29 = unaff_s5;\n                          pppppppcVar30 = param_4;\n                          param_5 = (code *******)FUN_000520d0(pppppppcVar42);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          if (param_5 != (code *******)0x0) goto LAB_00055acc;\n                          goto LAB_00055528;\n                        }\n                        param_6 = (code *******)((int)local_50 + (int)param_6);\n                        do {\n                          while( true ) {\n                            unaff_s8 = (code *******)((int)unaff_s8 + -1);\n                            if ((int)unaff_s8 < 0) goto LAB_00055b70;\n                            pppppppcVar29 = (code *******)param_6[-1];\n                            if (pppppppcVar29 != (code *******)0x0) break;\n                            param_6 = param_6 + -1;\n                          }\n                          param_6 = param_6 + -1;\n                        } while (((uint)pppppppcVar29[0xd] & 0x8000000) == 0);\n                        pppppppcVar31 = (code *******)(*pcVar9)(&local_b4,pppppppcVar29,unaff_s8);\n                        pppppppcVar33 = pppppppcVar28;\n                      }\n                    }\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    (*(code *)PTR_free_00079c24)(param_4);\n                    local_150 = param_5;\n                    if (param_5 == (code *******)0x1) goto LAB_00055b04;\n                  }\n                }\n                else {\n                  local_150 = (code *******)0xc;\n                  pppppppcVar33 = pppppppcVar28;\n                }\n                goto LAB_000557e4;\n              }\n              if (pppppppcVar38[0x13] != (code ******)0x0) {\n                pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                pppppppcVar30 = unaff_s8;\n                local_54 = (code *******)FUN_00049440(&local_b4);\n                goto LAB_00055c6c;\n              }\nLAB_00055c08:\n              if ((((uint)param_1[7] & 0x8000000) == 0) && ((code *******)0x1 < pppppppcVar3)) {\n                cVar23 = *(code *)(pppppppcVar38 + 0x16);\n                goto LAB_00055c20;\n              }\nLAB_00055548:\n              if (pppppppcVar3 == (code *******)0x0) goto LAB_000557e4;\n              if (pppppppcVar3 < (code *******)0x2) {\n                *param_8 = (code ******)0x0;\n                param_8[1] = (code ******)local_58;\n                goto LAB_000555ac;\n              }\n              pppppppcVar29 = param_8 + 2;\n              do {\n                pppppppcVar29[1] = (code ******)0xffffffff;\n                *pppppppcVar29 = (code ******)0xffffffff;\n                pppppppcVar29 = pppppppcVar29 + 2;\n              } while (pppppppcVar29 != param_8 + (int)pppppppcVar3 * 2);\n              *param_8 = (code ******)0x0;\n              param_8[1] = (code ******)local_58;\n              if (((uint)param_1[7] & 0x8000000) != 0) {\nLAB_000555ac:\n                pppppppcVar33 = param_8;\n                do {\n                  pppppppcVar29 = (code *******)*pppppppcVar33;\n                  if (pppppppcVar29 != (code *******)0xffffffff) {\n                    if (local_68 != '\0') {\n                      pppppppcVar34 = local_94;\n                      if (pppppppcVar29 != local_98) {\n                        pppppppcVar34 = *(code ********)(local_a8 + (int)pppppppcVar29 * 4);\n                      }\n                      *pppppppcVar33 = (code ******)pppppppcVar34;\n                      pppppppcVar29 = local_94;\n                      if (local_98 != (code *******)pppppppcVar33[1]) {\n                        pppppppcVar29 = *(code ********)(local_a8 + (int)pppppppcVar33[1] * 4);\n                      }\n                      pppppppcVar33[1] = (code ******)pppppppcVar29;\n                    }\n                    *pppppppcVar33 = (code ******)((int)local_dc + (int)*pppppppcVar33);\n                    pppppppcVar29 = (code *******)((int)local_dc + (int)pppppppcVar33[1]);\n                    pppppppcVar33[1] = (code ******)pppppppcVar29;\n                  }\n                  pppppppcVar33 = pppppppcVar33 + 2;\n                } while (pppppppcVar33 != param_8 + (int)pppppppcVar3 * 2);\n                if (0 < local_118) {\n                  pppppppcVar33 = param_8 + (int)pppppppcVar3 * 2;\n                  do {\n                    *pppppppcVar33 = (code ******)0xffffffff;\n                    pppppppcVar33[1] = (code ******)0xffffffff;\n                    pppppppcVar33 = pppppppcVar33 + 2;\n                  } while (pppppppcVar33 != param_8 + (int)param_7 * 2);\n                }\n                pppppppcVar30 = local_dc;\n                pppppppcVar33 = param_8;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar38[0x21] != (code ******)0x0) {\n                  pppppppcVar30 = (code *******)((int)pppppppcVar3 + -1);\n                  pppppppcVar34 = (code *******)0x0;\n                  pppppppcVar3 = param_8;\n                  while( true ) {\n                    pppppppcVar29 = (code *******)((int)pppppppcVar34 * 4);\n                    if (pppppppcVar30 == pppppppcVar34) break;\n                    if (*(code ********)((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) !=\n                        pppppppcVar34) {\n                      pppppppcVar3[2] =\n                           param_8[(int)((int)*(code ********)\n                                               ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1)\n                                   * 2];\n                      pppppppcVar3[3] =\n                           param_8[((int)*(code ******)\n                                          ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1) * 2 +\n                                   1];\n                    }\n                    pppppppcVar34 = (code *******)((int)pppppppcVar34 + 1);\n                    pppppppcVar3 = pppppppcVar3 + 2;\n                  }\n                }\n                goto LAB_000557e4;\n              }\n              if ((char)*(code *)(pppppppcVar38 + 0x16) < '\0') {\n                local_168 = (uint)(0 < (int)pppppppcVar38[0x13]);\n              }\n              else {\n                local_168 = 0;\n              }\n              pppppppcVar29 = &local_b4;\n              pppppppcVar30 = pppppppcVar3;\n              pppppppcVar33 = param_8;\n              local_150 = (code *******)FUN_0004f4a0(param_1);\n              if (local_150 == (code *******)0x0) goto LAB_000555ac;\n            }\n          }\n          else if (local_90 < 0x3fffffff) {\n            local_50 = (code *******)(*(code *)PTR_malloc_00079b54)((local_90 + 1) * 4);\n            if (local_50 != (code *******)0x0) goto LAB_00055a40;\n            local_150 = (code *******)0xc;\n            param_6 = pppppppcVar36;\n          }\n          else {\n            local_150 = (code *******)0xc;\n            param_6 = pppppppcVar36;\n          }\n        }\n        else {\n          unaff_s5 = (code *******)((int)ppppppcVar35 * 8);\n          if (pppppppcVar36 < (code *******)0xccccccd) {\n            unaff_s4 = (code *******)(*(code *)PTR_malloc_00079b54)((int)ppppppcVar35 * 0x28);\n            local_40 = unaff_s4;\n            local_30 = (*(code *)PTR_malloc_00079b54)(unaff_s5);\n            if ((unaff_s4 != (code *******)0x0) && (local_30 != 0)) goto LAB_000559f0;\n          }\n          local_150 = (code *******)0xc;\n          param_6 = pppppppcVar36;\n        }\nLAB_000557e4:\n        (*(code *)PTR_free_00079c24)(local_50);\n        param_1 = pppppppcVar30;\n        if (pppppppcVar38[0x13] != (code ******)0x0) {\n          FUN_0004b7e8(&local_b4);\n          (*(code *)PTR_free_00079c24)(local_30);\n          (*(code *)PTR_free_00079c24)(local_40);\n          param_1 = pppppppcVar30;\n        }\n        FUN_0004b2bc(&local_b4);\n        pppppppcStack_1a0 = param_4;\n        pppppppcStack_19c = pppppppcVar31;\n      }\n    }\n  }" if (parenthesized_expression "(pppppppcVar38[10] == (code ******)0x0)" ( (binary_expression "pppppppcVar38[10] == (code ******)0x0" (subscript_expression "pppppppcVar38[10]" identifier [ number_literal ]) == (cast_expression "(code ******)0x0" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (compound_statement "{\n    local_150 = (code *******)0x1;\n  }" { (expression_statement "local_150 = (code *******)0x1;" (assignment_expression "local_150 = (code *******)0x1" identifier = (cast_expression "(code *******)0x1" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) }) (else_clause "else if (pppppppcVar38[0xb] == (code ******)0x0) {\n    local_150 = (code *******)0x1;\n  }\n  else {\n    pppppppcVar29 = (code *******)pppppppcVar38[0xc];\n    if (pppppppcVar29 == (code *******)0x0) {\n      local_150 = (code *******)0x1;\n    }\n    else {\n      pppppppcVar3 = param_5;\n      if ((((pppppppcVar38[9][2] == (code *****)0x0) && (pppppppcVar38[10][2] == (code *****)0x0))\n          && ((pppppppcVar38[0xb][2] == (code *****)0x0 || (((uint)param_1[7] & 0x1000000) == 0))))\n         && ((pppppppcVar3 = param_4, param_4 != (code *******)0x0 &&\n             (param_4 = param_5, pppppppcVar3 = param_5, param_5 != (code *******)0x0)))) {\n        local_150 = (code *******)0x1;\n        pppppppcStack_1a0 = param_5;\n      }\n      else {\n        param_5 = pppppppcVar3;\n        pppppppcVar3 = (code *******)((int)param_7 - local_118);\n        if (pppppppcVar3 == (code *******)0x0) {\n          pppppppcVar34 = (code *******)(uint)(pppppppcVar38[0x13] != (code ******)0x0);\n        }\n        else {\n          pppppppcVar34 = (code *******)0x1;\n        }\n        ppppppcVar32 = param_1[5];\n        local_6c = (byte)((uint)((int)param_1[3] << 9) >> 0x1f);\n        local_64 = (code *******)pppppppcVar38[0x17];\n        pppppppcVar31 = (code *******)((int)pppppppcVar38[2] + 1);\n        if ((int)pppppppcVar38[2] + 1 < (int)local_64) {\n          pppppppcVar31 = local_64;\n        }\n        pppppppcVar30 = (code *******)(uint)((int)param_3 + 1 < (int)pppppppcVar31);\n        pppppppcVar33 = (code *******)0x1;\n        local_69 = local_6c;\n        if (ppppppcVar32 != (code ******)0x0) {\n          local_69 = 1;\n        }\n        local_6b = (byte)((uint)((int)pppppppcVar38[0x16] << 2) >> 0x1f);\n        local_6a = (byte)((uint)((int)pppppppcVar38[0x16] << 3) >> 0x1f);\n        pppppppcVar29 = (code *******)((int)param_3 + 1);\n        if (pppppppcVar30 == (code *******)0x0) {\n          pppppppcVar29 = pppppppcVar31;\n        }\n        local_b4 = param_2;\n        local_88 = param_3;\n        local_84 = param_3;\n        local_80 = param_3;\n        local_7c = param_3;\n        local_74 = ppppppcVar32;\n        local_150 = (code *******)FUN_00046d2c(&local_b4);\n        pppppppcVar31 = pppppppcVar34;\n        param_6 = param_6;\n        if (local_150 != (code *******)0x0) goto LAB_000557e4;\n        local_70 = pppppppcVar38 + 0x18;\n        local_66 = (byte)((uint)((int)pppppppcVar38[0x16] << 4) >> 0x1f);\n        pppppppcVar2 = (code *******)0x0;\n        local_98 = pppppppcVar2;\n        if ((local_69 == 0) && (local_b0 = param_2, (int)pppppppcVar38[0x17] < 2)) {\n          local_98 = param_3;\n        }\n        local_7c = param_6;\n        local_80 = param_6;\n        local_67 = (byte)((uint)((int)param_1[7] << 7) >> 0x1f);\n        ppppppcVar35 = pppppppcVar38[0x13];\n        pppppppcVar36 = (code *******)((int)ppppppcVar35 * 2);\n        local_5c = param_9;\n        local_58 = (code *******)0xffffffff;\n        local_94 = local_98;\n        if ((int)pppppppcVar36 < 1) {\nLAB_000559f0:\n          local_3c = 1;\n          local_44 = pppppppcVar36;\n          local_34 = pppppppcVar36;\n          if ((pppppppcVar3 < (code *******)0x2) && (((uint)pppppppcVar38[0x16] & 0x40000000) == 0))\n          {\n            local_50 = (code *******)0x0;\nLAB_00055a40:\n            local_78 = 6;\n            if (((uint)param_9 & 1) != 0) {\n              local_78 = 4;\n            }\n            pppppppcVar24 = (code *******)0x1;\n            pppppppcVar25 = param_4;\n            if ((int)param_5 < (int)param_4) {\n              pppppppcVar24 = (code *******)0xffffffff;\n              pppppppcVar25 = param_5;\n            }\n            pppppppcVar26 = param_5;\n            if ((int)param_5 <= (int)param_4) {\n              pppppppcVar26 = param_4;\n            }\n            ppppppcVar35 = pppppppcVar38[0x17];\n            uVar16 = 8;\n            if (local_148 != (code *******)0x0) {\n              if (ppppppcVar35 == (code ******)0x1) {\n                pppppppcVar28 = (code *******)0x4;\n              }\n              else {\n                pppppppcVar28 = pppppppcVar2;\n                if ((-1 < (int)param_1[3] << 9) && (ppppppcVar32 == (code ******)0x0)) {\n                  pppppppcVar28 = (code *******)0x4;\n                }\n              }\n              pppppppcVar29 = (code *******)0x0;\n              if ((int)param_4 <= (int)param_5) {\n                pppppppcVar29 = (code *******)0x2;\n              }\n              uVar16 = (uint)(ppppppcVar32 != (code ******)0x0) | (uint)pppppppcVar28 |\n                       (uint)pppppppcVar29;\n            }\n            local_dc = param_4;\n            if ((int)param_4 < (int)pppppppcVar25) {\n              local_150 = (code *******)0x1;\n              param_6 = pppppppcVar36;\n            }\n            else if ((int)pppppppcVar26 < (int)param_4) {\n              local_150 = (code *******)0x1;\n              param_4 = (code *******)(uint)((int)param_5 < (int)param_4);\n              param_6 = pppppppcVar36;\n            }\n            else {\n              pppppppcVar36 = (code *******)&local_dc;\n              if ((code *******)(uint)((int)param_5 < (int)param_4) != (code *******)0x0) {\n                pppppppcVar36 = (code *******)0x0;\n              }\n              pcVar4 = (code *)(PTR_DAT_000799a4 + -0x2b7c);\n              piVar5 = (int *)(PTR_s_nt0_000795b8 + (uVar16 - 4) * 4 + 0x6e38);\nLAB_00055b44:\n              if (uVar16 - 4 < 5) {\n                    /* WARNING: Could not emulate address calculation at 0x00054920 */\n                    /* WARNING: Treating indirect jump as call */\n                pppppppcVar29 = (code *******)(*(code *)(&_gp_1 + *piVar5))();\n                return pppppppcVar29;\n              }\n              param_5 = &local_b4;\n              pppppppcVar28 = pppppppcVar33;\n              while( true ) {\n                param_4 = local_dc;\n                pppppppcVar33 = (code *******)((int)local_dc - local_9c);\n                pppppppcVar30 = param_9;\n                pppppppcVar31 = pppppppcVar2;\n                param_6 = local_148;\n                unaff_s4 = param_3;\n                unaff_s5 = pppppppcVar24;\n                unaff_s7 = pppppppcVar26;\n                if (local_94 <= pppppppcVar33) {\n                  pppppppcVar29 = local_dc;\n                  local_150 = (code *******)(*pcVar4)(param_5);\n                  pppppppcVar33 = pppppppcVar28;\n                  if (local_150 != (code *******)0x0) goto LAB_000557e4;\n                  pppppppcVar33 = (code *******)((int)param_4 - local_9c);\n                }\n                if ((int)param_4 < (int)param_3) {\n                  uVar7 = (uint)(byte)*(code *)((int)pppppppcVar33 + (int)local_b0);\n                }\n                else {\n                  uVar7 = 0;\n                }\n                param_4 = (code *******)((int)param_4 + (int)pppppppcVar24);\n                if (*(code *)((int)local_148 + uVar7) != (code)0x0) break;\n                pppppppcVar33 = pppppppcVar28;\n                local_dc = param_4;\n                if ((int)param_4 < (int)pppppppcVar25) {\n                  local_150 = (code *******)0x1;\n                  goto LAB_000557e4;\n                }\n                if ((code *******)(uint)((int)pppppppcVar26 < (int)param_4) != (code *******)0x0) {\n                  local_150 = (code *******)0x1;\n                  param_4 = (code *******)(uint)((int)pppppppcVar26 < (int)param_4);\n                  goto LAB_000557e4;\n                }\n              }\n              while( true ) {\n                pppppppcVar29 = local_dc;\n                pppppppcVar30 = param_9;\n                pppppppcVar6 = (code *******)(*pcVar4)(&local_b4);\n                pppppppcVar14 = local_60;\n                pppppppcVar42 = local_8c;\n                pppppppcVar33 = pppppppcVar28;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar6 != (code *******)0x0) goto LAB_000557e4;\n                if (((ppppppcVar35 != (code ******)0x1) && (local_98 != (code *******)0x0)) &&\n                   (*local_ac == -1)) goto LAB_00055b1c;\n                local_3c = 0;\n                local_48 = 0;\n                local_4c = (code *******)0x0;\n                local_138 = local_8c;\n                local_d8 = (code *******)0x0;\n                unaff_s7 = (code *******)local_60[9];\n                pppppppcVar30 = local_5c;\n                param_4 = pppppppcVar14;\n                if (((uint)unaff_s7[0xd] & 0x1000000) == 0) break;\n                pppppppcVar29 = (code *******)((int)local_8c + -1);\n                pppppppcVar33 = (code *******)FUN_00049110(&local_b4);\n                if (((uint)pppppppcVar33 & 1) == 0) {\n                  if (pppppppcVar33 == (code *******)0x0) break;\n                  if (((uint)pppppppcVar33 & 6) == 6) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xc];\n                    goto LAB_00054d1c;\n                  }\n                  if (((uint)pppppppcVar33 & 2) != 0) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xb];\n                    goto LAB_00054d1c;\n                  }\n                  pppppppcVar28 = pppppppcVar33;\n                  if (((uint)pppppppcVar33 & 4) == 0) break;\n                  pppppppcVar30 = (code *******)unaff_s7[10];\n                  pppppppcVar29 = pppppppcVar14;\n                  unaff_s7 = (code *******)FUN_0004ae34(&local_d8);\n                  pppppppcVar28 = pppppppcVar33;\n                  if (unaff_s7 != (code *******)0x0) break;\n                  if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                }\n                else {\n                  unaff_s7 = (code *******)pppppppcVar14[10];\nLAB_00054d1c:\n                  pppppppcVar28 = (code *******)PTR_s_nt0_000795b8;\n                  if (unaff_s7 != (code *******)0x0) break;\n                }\n                pppppppcVar28 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                local_dc = (code *******)\n                           (*(code *)PTR___assert_fail_000799f8)\n                                     (PTR_s_nt0_000795b8 + 0x71a0,pppppppcVar29,0x435);\n                if (local_dc == pppppppcVar26) {\n                  if ((int)local_dc < (int)param_3) {\n                    uVar7 = (uint)(byte)*(code *)((int)local_dc + (int)param_2);\n                  }\n                  else {\n                    uVar7 = 0;\n                  }\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    uVar7 = (uint)*(byte *)((int)ppppppcVar32 + uVar7);\n                  }\n                  if (*(code *)((int)local_148 + uVar7) == (code)0x0) {\n                    local_150 = (code *******)0x1;\n                    pppppppcVar30 = param_9;\n                    pppppppcVar33 = pppppppcVar28;\n                    goto LAB_000557e4;\n                  }\n                }\n              }\n              pppppppcVar33 = pppppppcVar28;\n              bVar1 = pppppppcVar36 != (code *******)0x0;\n              if ((local_50 == (code *******)0x0) ||\n                 (local_50[(int)pppppppcVar42] = (code ******)unaff_s7,\n                 pppppppcVar14[0x13] == (code ******)0x0)) {\nLAB_00054d50:\n                if ((int)unaff_s7[0xd] << 4 < 0) {\n                  if ((((uint)unaff_s7[0xd] & 0x1000000) == 0) ||\n                     (pppppppcVar29 = unaff_s7, pppppppcVar30 = pppppppcVar42,\n                     iVar18 = FUN_00049440(&local_b4), iVar18 != 0)) {\n                    unaff_s8 = pppppppcVar42;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                  }\n                  else {\n                    pppppppcVar42 = (code *******)0xffffffff;\n                    pppppppcVar28 = (code *******)0x0;\n                  }\n                }\n                else {\n                  pppppppcVar42 = (code *******)0xffffffff;\n                  pppppppcVar28 = (code *******)0x0;\n                }\n                pcVar8 = (code *)(PTR_DAT_000799a4 + -0x7144);\n                pcVar9 = (code *)(PTR_DAT_000799a4 + -0x1980);\n                pcVar10 = (code *)(PTR_DAT_000799a4 + -0x2f9c);\n                unaff_s8 = pppppppcVar42;\n                local_144 = pppppppcVar36;\n                while( true ) {\n                  uVar44 = CONCAT44(local_98,local_84);\n                  unaff_s5 = (code *******)((int)local_8c + 1);\n                  pppppppcVar29 = local_8c;\n                  if ((int)local_7c <= (int)local_8c) break;\n                  if (((int)local_90 <= (int)unaff_s5) && ((int)local_90 < (int)local_84))\n                  goto LAB_00054e94;\n                  if ((int)local_98 <= (int)unaff_s5) {\n                    while ((int)((ulonglong)uVar44 >> 0x20) < (int)uVar44) {\nLAB_00054e94:\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 2);\n                      local_d8 = (code *******)(*pcVar8)(&local_b4);\n                      if (local_d8 == (code *******)0x0) break;\n                      pppppppcVar14 = param_4;\n                      if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                      pppppppcVar33 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                      pppppppcVar30 = (code *******)0x46c;\n                      pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                      uVar44 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0);\n                      pppppppcVar28 = pppppppcVar38;\n                    }\n                  }\n                  pppppppcVar42 = local_60;\n                  if ((int)unaff_s7[0xd] << 5 < 0) {\n                    pppppppcVar31 = pppppppcVar42;\n                    if (0 < (int)unaff_s7[2]) {\n                      pcVar11 = (code *)(PTR_DAT_000799a4 + -0x6fdc);\n                      pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6ef0);\n                      param_6 = (code *******)0x0;\n                      do {\n                        param_5 = (code *******)unaff_s7[3][(int)param_6];\n                        ppppppcVar39 = *pppppppcVar42;\n                        pppppcVar13 = ppppppcVar39[(int)param_5 * 2 + 1];\n                        if (((uint)pppppcVar13 & 0x800) != 0) {\n                          if (((uint)pppppcVar13 & 0xffc000) != 0) {\n                            pppppppcVar29 = local_8c;\n                            uVar19 = (*pcVar12)(&local_b4,local_8c,local_5c);\n                            uVar7 = (uint)((int)ppppppcVar39[(int)param_5 * 2 + 1] << 8) >> 0x16;\n                            if ((uVar7 & 4) == 0) {\n                              uVar27 = uVar19 & 1;\n                              if ((uVar7 & 8) != 0) goto joined_r0x00054f40;\n                            }\n                            else {\n                              uVar27 = uVar7 & 8;\n                              if ((uVar19 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                              if (uVar27 != 0) goto LAB_000550a4;\n                            }\n                            if ((((uVar7 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                               (((uVar7 & 0x80) != 0 &&\n                                (pppppppcVar33 = local_8c, (uVar19 & 8) == 0)))) goto LAB_000550a4;\n                          }\n                          pppppppcVar30 = &local_b4;\n                          pppppppcVar29 = param_5;\n                          pppppppcVar33 = local_8c;\n                          iVar18 = (*pcVar10)(pppppppcVar42);\n                          if (iVar18 != 0) {\n                            pppppppcVar14 = (code *******)((int)local_8c + iVar18);\n                            if (iVar18 <= local_3c) {\n                              iVar18 = local_3c;\n                            }\n                            pppppppcVar29 = pppppppcVar14;\n                            local_3c = iVar18;\n                            local_d4 = (code *******)(*pcVar11)(&local_b4);\n                            pppppppcVar15 = local_d4;\n                            if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                            pppppppcVar30 =\n                                 (code *******)\n                                 (pppppppcVar42[6] + (int)pppppppcVar42[3][(int)param_5] * 3);\n                            unaff_s4 = (code *******)((int)pppppppcVar14 * 4);\n                            param_5 = local_50 + (int)pppppppcVar14;\n                            if (*param_5 == (code ******)0x0) {\n                              local_d0 = (code *******)*pppppppcVar30;\n                              local_cc = (code *******)pppppppcVar30[1];\n                              local_c8 = (code *******)pppppppcVar30[2];\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *param_5 = ppppppcVar39;\n                            }\n                            else {\n                              pppppppcVar29 = (code *******)(*param_5)[10];\n                              local_d4 = (code *******)FUN_000484bc(&local_d0);\n                              pppppppcVar15 = local_d4;\n                              if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar15 = local_50 + (int)pppppppcVar14;\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *pppppppcVar15 = ppppppcVar39;\n                              (*(code *)PTR_free_00079c24)(local_c8);\n                            }\n                            unaff_s4 = local_50 + (int)pppppppcVar14;\n                            if ((*unaff_s4 == (code ******)0x0) &&\n                               (pppppppcVar15 = local_d4, local_d4 != (code *******)0x0))\n                            goto LAB_00055e44;\n                          }\n                        }\nLAB_000550a4:\n                        param_6 = (code *******)((int)param_6 + 1);\n                      } while ((int)param_6 < (int)unaff_s7[2]);\n                    }\n                    local_d8 = (code *******)0x0;\n                  }\n                  uVar7 = (uint)(byte)*(code *)((int)local_8c + (int)local_b0);\n                  local_8c = (code *******)((int)local_8c + 1);\n                  do {\n                    if (unaff_s7[0xb] != (code ******)0x0) {\n                      pppppppcVar30 = (code *******)unaff_s7[0xb][uVar7];\nLAB_000553a0:\n                      pppppppcVar14 = pppppppcVar30;\n                      if (local_50 != (code *******)0x0) goto LAB_000553ac;\n                      goto LAB_000553cc;\n                    }\n                    pppppppcVar31 = (code *******)unaff_s7[0xc];\n                    if (pppppppcVar31 != (code *******)0x0) {\n                      pppppppcVar29 = (code *******)((int)local_8c + -1);\n                      uVar19 = FUN_00049110(&local_b4);\n                      if ((uVar19 & 1) == 0) {\n                        pppppppcVar30 = (code *******)pppppppcVar31[uVar7];\n                      }\n                      else {\n                        pppppppcVar31 = pppppppcVar31 + uVar7 + 0x100;\n                        pppppppcVar30 = (code *******)*pppppppcVar31;\n                      }\n                      goto LAB_000553a0;\n                    }\n                    pppppppcVar29 = unaff_s7;\n                    pppppppcVar30 = local_5c;\n                    iVar18 = (*pcVar9)(local_60);\n                  } while (iVar18 != 0);\n                  local_d8 = (code *******)0xc;\n                  pppppppcVar15 = local_d8;\nLAB_00055e44:\n                  local_d8 = pppppppcVar15;\n                  param_4 = (code *******)0x0;\n                  if (local_50 == (code *******)0x0) {\n                    pppppppcVar14 = param_4;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    break;\n                  }\n                  pppppppcVar30 = (code *******)0x0;\nLAB_000553ac:\n                  pppppppcVar29 = &local_b4;\n                  pppppppcVar14 = (code *******)FUN_00053684(&local_d8);\nLAB_000553cc:\n                  param_4 = pppppppcVar14;\n                  if (pppppppcVar14 == (code *******)0x0) {\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    if ((local_50 == (code *******)0x0) ||\n                       ((pppppppcVar28 != (code *******)0x0 && (pppppppcVar34 == (code *******)0x0))\n                       )) break;\n                    param_6 = &local_b4;\n                    param_5 = (code *******)&local_d8;\n                    pppppppcVar31 = (code *******)(PTR_DAT_000799a4 + 0x3684);\n                    do {\n                      pppppppcVar15 = local_50 + (int)local_8c;\n                      pppppppcVar42 = local_8c;\n                      do {\n                        pppppppcVar42 = (code *******)((int)pppppppcVar42 + 1);\n                        pppppppcVar29 = local_4c;\n                        param_4 = pppppppcVar14;\n                        if ((int)local_4c < (int)pppppppcVar42) goto LAB_00055da8;\n                        local_8c = (code *******)((int)local_8c + 1);\n                        pppppppcVar15 = pppppppcVar15 + 1;\n                      } while (*pppppppcVar15 == (code ******)0x0);\n                      pppppppcVar30 = (code *******)0x0;\n                      pppppppcVar29 = param_6;\n                      param_4 = (code *******)(*(code *)pppppppcVar31)(param_5);\n                      if (local_d8 != (code *******)0x0) {\n                        if (param_4 == (code *******)0x0) goto LAB_00055da8;\n                        break;\n                      }\n                      pppppppcVar29 = local_4c;\n                    } while (param_4 == (code *******)0x0);\n                  }\n                  pppppppcVar15 = (code *******)((uint)unaff_s7 ^ (uint)param_4);\n                  pppppppcVar42 = unaff_s7;\n                  pppppppcVar14 = local_138;\n                  if ((bVar1) &&\n                     (pppppppcVar42 = pppppppcVar15, pppppppcVar14 = unaff_s5,\n                     pppppppcVar15 != (code *******)0x0)) {\n                    bVar1 = false;\n                    pppppppcVar14 = local_138;\n                  }\n                  local_138 = pppppppcVar14;\n                  unaff_s7 = param_4;\n                  if ((((uint)param_4[0xd] & 0x8000000) != 0) &&\n                     ((((uint)param_4[0xd] & 0x1000000) == 0 ||\n                      (pppppppcVar29 = param_4, pppppppcVar30 = local_8c,\n                      iVar18 = FUN_00049440(&local_b4), iVar18 != 0)))) {\n                    unaff_s7 = pppppppcVar42;\n                    unaff_s8 = local_8c;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                    local_144 = (code *******)0x0;\n                    unaff_s7 = param_4;\n                  }\n                }\nLAB_00055da8:\n                if (local_144 != (code *******)0x0) {\n                  *local_144 = (code ******)((int)local_138 + (int)*local_144);\n                }\n              }\n              else {\n                param_4 = unaff_s7 + 1;\n                pppppppcVar30 = (code *******)0x0;\n                pppppppcVar29 = param_4;\n                local_d8 = (code *******)FUN_00047a44(&local_b4);\n                unaff_s8 = local_d8;\n                if (local_d8 == (code *******)0x0) {\n                  if (((uint)unaff_s7[0xd] & 0x2000000) == 0) {\n                    pppppppcVar29 = param_4;\n                    bVar1 = false;\n                  }\n                  else {\n                    pppppppcVar29 = param_4;\n                    local_d8 = (code *******)FUN_00052d84(&local_b4);\n                    unaff_s8 = local_d8;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055dbc;\n                    bVar1 = false;\n                  }\n                  goto LAB_00054d50;\n                }\n              }\nLAB_00055dbc:\n              if (unaff_s8 == (code *******)0xffffffff) {\nLAB_00055b04:\n                FUN_0004b7e8(&local_b4);\nLAB_00055b1c:\n                local_dc = (code *******)((int)pppppppcVar24 + (int)local_dc);\n                if ((int)pppppppcVar25 <= (int)local_dc) goto code_r0x00055b38;\n                local_150 = (code *******)0x1;\n                goto LAB_000557e4;\n              }\n              if (unaff_s8 == (code *******)&SUB_fffffffe) {\n                local_150 = (code *******)0xc;\n                goto LAB_000557e4;\n              }\n              local_58 = unaff_s8;\n              if (((uint)param_1[7] & 0x8000000) == 0) {\n                if (pppppppcVar3 < (code *******)0x2) {\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055c08;\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                else {\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                if (pppppppcVar3 < (code *******)0x2) {\nLAB_00055c6c:\n                  pppppppcVar28 = pppppppcVar33;\n                  unaff_s4 = local_60;\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055548;\n                }\n                else {\n                  cVar23 = *(code *)(pppppppcVar38 + 0x16);\nLAB_00055c20:\n                  pppppppcVar28 = pppppppcVar33;\n                  if (-1 < (char)cVar23) goto LAB_00055c6c;\n                }\n                pppppppcVar31 = local_54;\n                pppppppcVar42 = local_60;\n                unaff_s4 = pppppppcVar42;\n                if (unaff_s8 < (code *******)0x3fffffff) {\n                  param_4 = (code *******)((int)((int)unaff_s8 + 1) * 4);\n                  unaff_s5 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                  if (unaff_s5 == (code *******)0x0) {\nLAB_00055b9c:\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    local_150 = (code *******)0xc;\n                    pppppppcVar33 = pppppppcVar28;\n                  }\n                  else {\n                    pppppppcVar29 = (code *******)&local_d0;\n                    if (pppppppcVar42[0x13] == (code ******)0x0) {\n                      local_cc = (code *******)0x0;\n                      local_c8 = pppppppcVar31;\n                      local_c0 = 0;\n                      local_bc = 0;\n                      local_b8 = 0;\n                      local_d0 = unaff_s5;\n                      local_c4 = unaff_s8;\n                      param_5 = (code *******)FUN_0005421c(&local_b4);\n                      (*(code *)PTR_free_00079c24)(local_b8);\n                      if (param_5 == (code *******)0x0) {\n                        param_4 = (code *******)*unaff_s5;\n                        if (param_4 == (code *******)0x0) {\nLAB_00055b70:\n                          (*(code *)PTR_free_00079c24)(unaff_s5);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          pppppppcVar33 = pppppppcVar28;\n                          goto LAB_00055b04;\n                        }\nLAB_00055528:\n                        (*(code *)PTR_free_00079c24)(local_50);\n                        pppppppcVar33 = pppppppcVar28;\n                        unaff_s4 = pppppppcVar42;\n                        local_58 = unaff_s8;\n                        local_54 = pppppppcVar31;\n                        local_50 = unaff_s5;\n                        goto LAB_00055548;\n                      }\nLAB_00055acc:\n                      param_4 = (code *******)0x0;\n                      pppppppcVar33 = pppppppcVar28;\n                      unaff_s4 = pppppppcVar42;\n                    }\n                    else {\n                      param_4 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                      if (param_4 == (code *******)0x0) goto LAB_00055b9c;\n                      unaff_s7 = (code *******)&local_d0;\n                      pcVar8 = (code *)(PTR_DAT_000799a4 + 0x421c);\n                      pcVar9 = (code *)(PTR_DAT_000799a4 + -0x6bc0);\n                      pppppppcVar33 = pppppppcVar28;\n                      while( true ) {\n                        pppppppcVar28 = (code *******)((int)unaff_s8 + 1);\n                        param_6 = (code *******)((int)pppppppcVar28 * 4);\n                        pppppppcVar30 = param_6;\n                        (*(code *)PTR_memset_00079b00)(param_4,0);\n                        local_c0 = 0;\n                        local_bc = 0;\n                        local_b8 = 0;\n                        pppppppcVar29 = unaff_s7;\n                        local_d0 = unaff_s5;\n                        local_cc = param_4;\n                        local_c8 = pppppppcVar31;\n                        local_c4 = unaff_s8;\n                        param_5 = (code *******)(*pcVar8)(&local_b4);\n                        (*(code *)PTR_free_00079c24)(local_b8);\n                        unaff_s4 = pppppppcVar28;\n                        if (param_5 != (code *******)0x0) break;\n                        if ((*unaff_s5 != (code ******)0x0) ||\n                           (param_6 = param_6 + -1, *param_4 != (code ******)0x0)) {\n                          pppppppcVar29 = unaff_s5;\n                          pppppppcVar30 = param_4;\n                          param_5 = (code *******)FUN_000520d0(pppppppcVar42);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          if (param_5 != (code *******)0x0) goto LAB_00055acc;\n                          goto LAB_00055528;\n                        }\n                        param_6 = (code *******)((int)local_50 + (int)param_6);\n                        do {\n                          while( true ) {\n                            unaff_s8 = (code *******)((int)unaff_s8 + -1);\n                            if ((int)unaff_s8 < 0) goto LAB_00055b70;\n                            pppppppcVar29 = (code *******)param_6[-1];\n                            if (pppppppcVar29 != (code *******)0x0) break;\n                            param_6 = param_6 + -1;\n                          }\n                          param_6 = param_6 + -1;\n                        } while (((uint)pppppppcVar29[0xd] & 0x8000000) == 0);\n                        pppppppcVar31 = (code *******)(*pcVar9)(&local_b4,pppppppcVar29,unaff_s8);\n                        pppppppcVar33 = pppppppcVar28;\n                      }\n                    }\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    (*(code *)PTR_free_00079c24)(param_4);\n                    local_150 = param_5;\n                    if (param_5 == (code *******)0x1) goto LAB_00055b04;\n                  }\n                }\n                else {\n                  local_150 = (code *******)0xc;\n                  pppppppcVar33 = pppppppcVar28;\n                }\n                goto LAB_000557e4;\n              }\n              if (pppppppcVar38[0x13] != (code ******)0x0) {\n                pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                pppppppcVar30 = unaff_s8;\n                local_54 = (code *******)FUN_00049440(&local_b4);\n                goto LAB_00055c6c;\n              }\nLAB_00055c08:\n              if ((((uint)param_1[7] & 0x8000000) == 0) && ((code *******)0x1 < pppppppcVar3)) {\n                cVar23 = *(code *)(pppppppcVar38 + 0x16);\n                goto LAB_00055c20;\n              }\nLAB_00055548:\n              if (pppppppcVar3 == (code *******)0x0) goto LAB_000557e4;\n              if (pppppppcVar3 < (code *******)0x2) {\n                *param_8 = (code ******)0x0;\n                param_8[1] = (code ******)local_58;\n                goto LAB_000555ac;\n              }\n              pppppppcVar29 = param_8 + 2;\n              do {\n                pppppppcVar29[1] = (code ******)0xffffffff;\n                *pppppppcVar29 = (code ******)0xffffffff;\n                pppppppcVar29 = pppppppcVar29 + 2;\n              } while (pppppppcVar29 != param_8 + (int)pppppppcVar3 * 2);\n              *param_8 = (code ******)0x0;\n              param_8[1] = (code ******)local_58;\n              if (((uint)param_1[7] & 0x8000000) != 0) {\nLAB_000555ac:\n                pppppppcVar33 = param_8;\n                do {\n                  pppppppcVar29 = (code *******)*pppppppcVar33;\n                  if (pppppppcVar29 != (code *******)0xffffffff) {\n                    if (local_68 != '\0') {\n                      pppppppcVar34 = local_94;\n                      if (pppppppcVar29 != local_98) {\n                        pppppppcVar34 = *(code ********)(local_a8 + (int)pppppppcVar29 * 4);\n                      }\n                      *pppppppcVar33 = (code ******)pppppppcVar34;\n                      pppppppcVar29 = local_94;\n                      if (local_98 != (code *******)pppppppcVar33[1]) {\n                        pppppppcVar29 = *(code ********)(local_a8 + (int)pppppppcVar33[1] * 4);\n                      }\n                      pppppppcVar33[1] = (code ******)pppppppcVar29;\n                    }\n                    *pppppppcVar33 = (code ******)((int)local_dc + (int)*pppppppcVar33);\n                    pppppppcVar29 = (code *******)((int)local_dc + (int)pppppppcVar33[1]);\n                    pppppppcVar33[1] = (code ******)pppppppcVar29;\n                  }\n                  pppppppcVar33 = pppppppcVar33 + 2;\n                } while (pppppppcVar33 != param_8 + (int)pppppppcVar3 * 2);\n                if (0 < local_118) {\n                  pppppppcVar33 = param_8 + (int)pppppppcVar3 * 2;\n                  do {\n                    *pppppppcVar33 = (code ******)0xffffffff;\n                    pppppppcVar33[1] = (code ******)0xffffffff;\n                    pppppppcVar33 = pppppppcVar33 + 2;\n                  } while (pppppppcVar33 != param_8 + (int)param_7 * 2);\n                }\n                pppppppcVar30 = local_dc;\n                pppppppcVar33 = param_8;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar38[0x21] != (code ******)0x0) {\n                  pppppppcVar30 = (code *******)((int)pppppppcVar3 + -1);\n                  pppppppcVar34 = (code *******)0x0;\n                  pppppppcVar3 = param_8;\n                  while( true ) {\n                    pppppppcVar29 = (code *******)((int)pppppppcVar34 * 4);\n                    if (pppppppcVar30 == pppppppcVar34) break;\n                    if (*(code ********)((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) !=\n                        pppppppcVar34) {\n                      pppppppcVar3[2] =\n                           param_8[(int)((int)*(code ********)\n                                               ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1)\n                                   * 2];\n                      pppppppcVar3[3] =\n                           param_8[((int)*(code ******)\n                                          ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1) * 2 +\n                                   1];\n                    }\n                    pppppppcVar34 = (code *******)((int)pppppppcVar34 + 1);\n                    pppppppcVar3 = pppppppcVar3 + 2;\n                  }\n                }\n                goto LAB_000557e4;\n              }\n              if ((char)*(code *)(pppppppcVar38 + 0x16) < '\0') {\n                local_168 = (uint)(0 < (int)pppppppcVar38[0x13]);\n              }\n              else {\n                local_168 = 0;\n              }\n              pppppppcVar29 = &local_b4;\n              pppppppcVar30 = pppppppcVar3;\n              pppppppcVar33 = param_8;\n              local_150 = (code *******)FUN_0004f4a0(param_1);\n              if (local_150 == (code *******)0x0) goto LAB_000555ac;\n            }\n          }\n          else if (local_90 < 0x3fffffff) {\n            local_50 = (code *******)(*(code *)PTR_malloc_00079b54)((local_90 + 1) * 4);\n            if (local_50 != (code *******)0x0) goto LAB_00055a40;\n            local_150 = (code *******)0xc;\n            param_6 = pppppppcVar36;\n          }\n          else {\n            local_150 = (code *******)0xc;\n            param_6 = pppppppcVar36;\n          }\n        }\n        else {\n          unaff_s5 = (code *******)((int)ppppppcVar35 * 8);\n          if (pppppppcVar36 < (code *******)0xccccccd) {\n            unaff_s4 = (code *******)(*(code *)PTR_malloc_00079b54)((int)ppppppcVar35 * 0x28);\n            local_40 = unaff_s4;\n            local_30 = (*(code *)PTR_malloc_00079b54)(unaff_s5);\n            if ((unaff_s4 != (code *******)0x0) && (local_30 != 0)) goto LAB_000559f0;\n          }\n          local_150 = (code *******)0xc;\n          param_6 = pppppppcVar36;\n        }\nLAB_000557e4:\n        (*(code *)PTR_free_00079c24)(local_50);\n        param_1 = pppppppcVar30;\n        if (pppppppcVar38[0x13] != (code ******)0x0) {\n          FUN_0004b7e8(&local_b4);\n          (*(code *)PTR_free_00079c24)(local_30);\n          (*(code *)PTR_free_00079c24)(local_40);\n          param_1 = pppppppcVar30;\n        }\n        FUN_0004b2bc(&local_b4);\n        pppppppcStack_1a0 = param_4;\n        pppppppcStack_19c = pppppppcVar31;\n      }\n    }\n  }" else (if_statement "if (pppppppcVar38[0xb] == (code ******)0x0) {\n    local_150 = (code *******)0x1;\n  }\n  else {\n    pppppppcVar29 = (code *******)pppppppcVar38[0xc];\n    if (pppppppcVar29 == (code *******)0x0) {\n      local_150 = (code *******)0x1;\n    }\n    else {\n      pppppppcVar3 = param_5;\n      if ((((pppppppcVar38[9][2] == (code *****)0x0) && (pppppppcVar38[10][2] == (code *****)0x0))\n          && ((pppppppcVar38[0xb][2] == (code *****)0x0 || (((uint)param_1[7] & 0x1000000) == 0))))\n         && ((pppppppcVar3 = param_4, param_4 != (code *******)0x0 &&\n             (param_4 = param_5, pppppppcVar3 = param_5, param_5 != (code *******)0x0)))) {\n        local_150 = (code *******)0x1;\n        pppppppcStack_1a0 = param_5;\n      }\n      else {\n        param_5 = pppppppcVar3;\n        pppppppcVar3 = (code *******)((int)param_7 - local_118);\n        if (pppppppcVar3 == (code *******)0x0) {\n          pppppppcVar34 = (code *******)(uint)(pppppppcVar38[0x13] != (code ******)0x0);\n        }\n        else {\n          pppppppcVar34 = (code *******)0x1;\n        }\n        ppppppcVar32 = param_1[5];\n        local_6c = (byte)((uint)((int)param_1[3] << 9) >> 0x1f);\n        local_64 = (code *******)pppppppcVar38[0x17];\n        pppppppcVar31 = (code *******)((int)pppppppcVar38[2] + 1);\n        if ((int)pppppppcVar38[2] + 1 < (int)local_64) {\n          pppppppcVar31 = local_64;\n        }\n        pppppppcVar30 = (code *******)(uint)((int)param_3 + 1 < (int)pppppppcVar31);\n        pppppppcVar33 = (code *******)0x1;\n        local_69 = local_6c;\n        if (ppppppcVar32 != (code ******)0x0) {\n          local_69 = 1;\n        }\n        local_6b = (byte)((uint)((int)pppppppcVar38[0x16] << 2) >> 0x1f);\n        local_6a = (byte)((uint)((int)pppppppcVar38[0x16] << 3) >> 0x1f);\n        pppppppcVar29 = (code *******)((int)param_3 + 1);\n        if (pppppppcVar30 == (code *******)0x0) {\n          pppppppcVar29 = pppppppcVar31;\n        }\n        local_b4 = param_2;\n        local_88 = param_3;\n        local_84 = param_3;\n        local_80 = param_3;\n        local_7c = param_3;\n        local_74 = ppppppcVar32;\n        local_150 = (code *******)FUN_00046d2c(&local_b4);\n        pppppppcVar31 = pppppppcVar34;\n        param_6 = param_6;\n        if (local_150 != (code *******)0x0) goto LAB_000557e4;\n        local_70 = pppppppcVar38 + 0x18;\n        local_66 = (byte)((uint)((int)pppppppcVar38[0x16] << 4) >> 0x1f);\n        pppppppcVar2 = (code *******)0x0;\n        local_98 = pppppppcVar2;\n        if ((local_69 == 0) && (local_b0 = param_2, (int)pppppppcVar38[0x17] < 2)) {\n          local_98 = param_3;\n        }\n        local_7c = param_6;\n        local_80 = param_6;\n        local_67 = (byte)((uint)((int)param_1[7] << 7) >> 0x1f);\n        ppppppcVar35 = pppppppcVar38[0x13];\n        pppppppcVar36 = (code *******)((int)ppppppcVar35 * 2);\n        local_5c = param_9;\n        local_58 = (code *******)0xffffffff;\n        local_94 = local_98;\n        if ((int)pppppppcVar36 < 1) {\nLAB_000559f0:\n          local_3c = 1;\n          local_44 = pppppppcVar36;\n          local_34 = pppppppcVar36;\n          if ((pppppppcVar3 < (code *******)0x2) && (((uint)pppppppcVar38[0x16] & 0x40000000) == 0))\n          {\n            local_50 = (code *******)0x0;\nLAB_00055a40:\n            local_78 = 6;\n            if (((uint)param_9 & 1) != 0) {\n              local_78 = 4;\n            }\n            pppppppcVar24 = (code *******)0x1;\n            pppppppcVar25 = param_4;\n            if ((int)param_5 < (int)param_4) {\n              pppppppcVar24 = (code *******)0xffffffff;\n              pppppppcVar25 = param_5;\n            }\n            pppppppcVar26 = param_5;\n            if ((int)param_5 <= (int)param_4) {\n              pppppppcVar26 = param_4;\n            }\n            ppppppcVar35 = pppppppcVar38[0x17];\n            uVar16 = 8;\n            if (local_148 != (code *******)0x0) {\n              if (ppppppcVar35 == (code ******)0x1) {\n                pppppppcVar28 = (code *******)0x4;\n              }\n              else {\n                pppppppcVar28 = pppppppcVar2;\n                if ((-1 < (int)param_1[3] << 9) && (ppppppcVar32 == (code ******)0x0)) {\n                  pppppppcVar28 = (code *******)0x4;\n                }\n              }\n              pppppppcVar29 = (code *******)0x0;\n              if ((int)param_4 <= (int)param_5) {\n                pppppppcVar29 = (code *******)0x2;\n              }\n              uVar16 = (uint)(ppppppcVar32 != (code ******)0x0) | (uint)pppppppcVar28 |\n                       (uint)pppppppcVar29;\n            }\n            local_dc = param_4;\n            if ((int)param_4 < (int)pppppppcVar25) {\n              local_150 = (code *******)0x1;\n              param_6 = pppppppcVar36;\n            }\n            else if ((int)pppppppcVar26 < (int)param_4) {\n              local_150 = (code *******)0x1;\n              param_4 = (code *******)(uint)((int)param_5 < (int)param_4);\n              param_6 = pppppppcVar36;\n            }\n            else {\n              pppppppcVar36 = (code *******)&local_dc;\n              if ((code *******)(uint)((int)param_5 < (int)param_4) != (code *******)0x0) {\n                pppppppcVar36 = (code *******)0x0;\n              }\n              pcVar4 = (code *)(PTR_DAT_000799a4 + -0x2b7c);\n              piVar5 = (int *)(PTR_s_nt0_000795b8 + (uVar16 - 4) * 4 + 0x6e38);\nLAB_00055b44:\n              if (uVar16 - 4 < 5) {\n                    /* WARNING: Could not emulate address calculation at 0x00054920 */\n                    /* WARNING: Treating indirect jump as call */\n                pppppppcVar29 = (code *******)(*(code *)(&_gp_1 + *piVar5))();\n                return pppppppcVar29;\n              }\n              param_5 = &local_b4;\n              pppppppcVar28 = pppppppcVar33;\n              while( true ) {\n                param_4 = local_dc;\n                pppppppcVar33 = (code *******)((int)local_dc - local_9c);\n                pppppppcVar30 = param_9;\n                pppppppcVar31 = pppppppcVar2;\n                param_6 = local_148;\n                unaff_s4 = param_3;\n                unaff_s5 = pppppppcVar24;\n                unaff_s7 = pppppppcVar26;\n                if (local_94 <= pppppppcVar33) {\n                  pppppppcVar29 = local_dc;\n                  local_150 = (code *******)(*pcVar4)(param_5);\n                  pppppppcVar33 = pppppppcVar28;\n                  if (local_150 != (code *******)0x0) goto LAB_000557e4;\n                  pppppppcVar33 = (code *******)((int)param_4 - local_9c);\n                }\n                if ((int)param_4 < (int)param_3) {\n                  uVar7 = (uint)(byte)*(code *)((int)pppppppcVar33 + (int)local_b0);\n                }\n                else {\n                  uVar7 = 0;\n                }\n                param_4 = (code *******)((int)param_4 + (int)pppppppcVar24);\n                if (*(code *)((int)local_148 + uVar7) != (code)0x0) break;\n                pppppppcVar33 = pppppppcVar28;\n                local_dc = param_4;\n                if ((int)param_4 < (int)pppppppcVar25) {\n                  local_150 = (code *******)0x1;\n                  goto LAB_000557e4;\n                }\n                if ((code *******)(uint)((int)pppppppcVar26 < (int)param_4) != (code *******)0x0) {\n                  local_150 = (code *******)0x1;\n                  param_4 = (code *******)(uint)((int)pppppppcVar26 < (int)param_4);\n                  goto LAB_000557e4;\n                }\n              }\n              while( true ) {\n                pppppppcVar29 = local_dc;\n                pppppppcVar30 = param_9;\n                pppppppcVar6 = (code *******)(*pcVar4)(&local_b4);\n                pppppppcVar14 = local_60;\n                pppppppcVar42 = local_8c;\n                pppppppcVar33 = pppppppcVar28;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar6 != (code *******)0x0) goto LAB_000557e4;\n                if (((ppppppcVar35 != (code ******)0x1) && (local_98 != (code *******)0x0)) &&\n                   (*local_ac == -1)) goto LAB_00055b1c;\n                local_3c = 0;\n                local_48 = 0;\n                local_4c = (code *******)0x0;\n                local_138 = local_8c;\n                local_d8 = (code *******)0x0;\n                unaff_s7 = (code *******)local_60[9];\n                pppppppcVar30 = local_5c;\n                param_4 = pppppppcVar14;\n                if (((uint)unaff_s7[0xd] & 0x1000000) == 0) break;\n                pppppppcVar29 = (code *******)((int)local_8c + -1);\n                pppppppcVar33 = (code *******)FUN_00049110(&local_b4);\n                if (((uint)pppppppcVar33 & 1) == 0) {\n                  if (pppppppcVar33 == (code *******)0x0) break;\n                  if (((uint)pppppppcVar33 & 6) == 6) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xc];\n                    goto LAB_00054d1c;\n                  }\n                  if (((uint)pppppppcVar33 & 2) != 0) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xb];\n                    goto LAB_00054d1c;\n                  }\n                  pppppppcVar28 = pppppppcVar33;\n                  if (((uint)pppppppcVar33 & 4) == 0) break;\n                  pppppppcVar30 = (code *******)unaff_s7[10];\n                  pppppppcVar29 = pppppppcVar14;\n                  unaff_s7 = (code *******)FUN_0004ae34(&local_d8);\n                  pppppppcVar28 = pppppppcVar33;\n                  if (unaff_s7 != (code *******)0x0) break;\n                  if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                }\n                else {\n                  unaff_s7 = (code *******)pppppppcVar14[10];\nLAB_00054d1c:\n                  pppppppcVar28 = (code *******)PTR_s_nt0_000795b8;\n                  if (unaff_s7 != (code *******)0x0) break;\n                }\n                pppppppcVar28 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                local_dc = (code *******)\n                           (*(code *)PTR___assert_fail_000799f8)\n                                     (PTR_s_nt0_000795b8 + 0x71a0,pppppppcVar29,0x435);\n                if (local_dc == pppppppcVar26) {\n                  if ((int)local_dc < (int)param_3) {\n                    uVar7 = (uint)(byte)*(code *)((int)local_dc + (int)param_2);\n                  }\n                  else {\n                    uVar7 = 0;\n                  }\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    uVar7 = (uint)*(byte *)((int)ppppppcVar32 + uVar7);\n                  }\n                  if (*(code *)((int)local_148 + uVar7) == (code)0x0) {\n                    local_150 = (code *******)0x1;\n                    pppppppcVar30 = param_9;\n                    pppppppcVar33 = pppppppcVar28;\n                    goto LAB_000557e4;\n                  }\n                }\n              }\n              pppppppcVar33 = pppppppcVar28;\n              bVar1 = pppppppcVar36 != (code *******)0x0;\n              if ((local_50 == (code *******)0x0) ||\n                 (local_50[(int)pppppppcVar42] = (code ******)unaff_s7,\n                 pppppppcVar14[0x13] == (code ******)0x0)) {\nLAB_00054d50:\n                if ((int)unaff_s7[0xd] << 4 < 0) {\n                  if ((((uint)unaff_s7[0xd] & 0x1000000) == 0) ||\n                     (pppppppcVar29 = unaff_s7, pppppppcVar30 = pppppppcVar42,\n                     iVar18 = FUN_00049440(&local_b4), iVar18 != 0)) {\n                    unaff_s8 = pppppppcVar42;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                  }\n                  else {\n                    pppppppcVar42 = (code *******)0xffffffff;\n                    pppppppcVar28 = (code *******)0x0;\n                  }\n                }\n                else {\n                  pppppppcVar42 = (code *******)0xffffffff;\n                  pppppppcVar28 = (code *******)0x0;\n                }\n                pcVar8 = (code *)(PTR_DAT_000799a4 + -0x7144);\n                pcVar9 = (code *)(PTR_DAT_000799a4 + -0x1980);\n                pcVar10 = (code *)(PTR_DAT_000799a4 + -0x2f9c);\n                unaff_s8 = pppppppcVar42;\n                local_144 = pppppppcVar36;\n                while( true ) {\n                  uVar44 = CONCAT44(local_98,local_84);\n                  unaff_s5 = (code *******)((int)local_8c + 1);\n                  pppppppcVar29 = local_8c;\n                  if ((int)local_7c <= (int)local_8c) break;\n                  if (((int)local_90 <= (int)unaff_s5) && ((int)local_90 < (int)local_84))\n                  goto LAB_00054e94;\n                  if ((int)local_98 <= (int)unaff_s5) {\n                    while ((int)((ulonglong)uVar44 >> 0x20) < (int)uVar44) {\nLAB_00054e94:\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 2);\n                      local_d8 = (code *******)(*pcVar8)(&local_b4);\n                      if (local_d8 == (code *******)0x0) break;\n                      pppppppcVar14 = param_4;\n                      if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                      pppppppcVar33 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                      pppppppcVar30 = (code *******)0x46c;\n                      pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                      uVar44 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0);\n                      pppppppcVar28 = pppppppcVar38;\n                    }\n                  }\n                  pppppppcVar42 = local_60;\n                  if ((int)unaff_s7[0xd] << 5 < 0) {\n                    pppppppcVar31 = pppppppcVar42;\n                    if (0 < (int)unaff_s7[2]) {\n                      pcVar11 = (code *)(PTR_DAT_000799a4 + -0x6fdc);\n                      pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6ef0);\n                      param_6 = (code *******)0x0;\n                      do {\n                        param_5 = (code *******)unaff_s7[3][(int)param_6];\n                        ppppppcVar39 = *pppppppcVar42;\n                        pppppcVar13 = ppppppcVar39[(int)param_5 * 2 + 1];\n                        if (((uint)pppppcVar13 & 0x800) != 0) {\n                          if (((uint)pppppcVar13 & 0xffc000) != 0) {\n                            pppppppcVar29 = local_8c;\n                            uVar19 = (*pcVar12)(&local_b4,local_8c,local_5c);\n                            uVar7 = (uint)((int)ppppppcVar39[(int)param_5 * 2 + 1] << 8) >> 0x16;\n                            if ((uVar7 & 4) == 0) {\n                              uVar27 = uVar19 & 1;\n                              if ((uVar7 & 8) != 0) goto joined_r0x00054f40;\n                            }\n                            else {\n                              uVar27 = uVar7 & 8;\n                              if ((uVar19 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                              if (uVar27 != 0) goto LAB_000550a4;\n                            }\n                            if ((((uVar7 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                               (((uVar7 & 0x80) != 0 &&\n                                (pppppppcVar33 = local_8c, (uVar19 & 8) == 0)))) goto LAB_000550a4;\n                          }\n                          pppppppcVar30 = &local_b4;\n                          pppppppcVar29 = param_5;\n                          pppppppcVar33 = local_8c;\n                          iVar18 = (*pcVar10)(pppppppcVar42);\n                          if (iVar18 != 0) {\n                            pppppppcVar14 = (code *******)((int)local_8c + iVar18);\n                            if (iVar18 <= local_3c) {\n                              iVar18 = local_3c;\n                            }\n                            pppppppcVar29 = pppppppcVar14;\n                            local_3c = iVar18;\n                            local_d4 = (code *******)(*pcVar11)(&local_b4);\n                            pppppppcVar15 = local_d4;\n                            if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                            pppppppcVar30 =\n                                 (code *******)\n                                 (pppppppcVar42[6] + (int)pppppppcVar42[3][(int)param_5] * 3);\n                            unaff_s4 = (code *******)((int)pppppppcVar14 * 4);\n                            param_5 = local_50 + (int)pppppppcVar14;\n                            if (*param_5 == (code ******)0x0) {\n                              local_d0 = (code *******)*pppppppcVar30;\n                              local_cc = (code *******)pppppppcVar30[1];\n                              local_c8 = (code *******)pppppppcVar30[2];\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *param_5 = ppppppcVar39;\n                            }\n                            else {\n                              pppppppcVar29 = (code *******)(*param_5)[10];\n                              local_d4 = (code *******)FUN_000484bc(&local_d0);\n                              pppppppcVar15 = local_d4;\n                              if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar15 = local_50 + (int)pppppppcVar14;\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *pppppppcVar15 = ppppppcVar39;\n                              (*(code *)PTR_free_00079c24)(local_c8);\n                            }\n                            unaff_s4 = local_50 + (int)pppppppcVar14;\n                            if ((*unaff_s4 == (code ******)0x0) &&\n                               (pppppppcVar15 = local_d4, local_d4 != (code *******)0x0))\n                            goto LAB_00055e44;\n                          }\n                        }\nLAB_000550a4:\n                        param_6 = (code *******)((int)param_6 + 1);\n                      } while ((int)param_6 < (int)unaff_s7[2]);\n                    }\n                    local_d8 = (code *******)0x0;\n                  }\n                  uVar7 = (uint)(byte)*(code *)((int)local_8c + (int)local_b0);\n                  local_8c = (code *******)((int)local_8c + 1);\n                  do {\n                    if (unaff_s7[0xb] != (code ******)0x0) {\n                      pppppppcVar30 = (code *******)unaff_s7[0xb][uVar7];\nLAB_000553a0:\n                      pppppppcVar14 = pppppppcVar30;\n                      if (local_50 != (code *******)0x0) goto LAB_000553ac;\n                      goto LAB_000553cc;\n                    }\n                    pppppppcVar31 = (code *******)unaff_s7[0xc];\n                    if (pppppppcVar31 != (code *******)0x0) {\n                      pppppppcVar29 = (code *******)((int)local_8c + -1);\n                      uVar19 = FUN_00049110(&local_b4);\n                      if ((uVar19 & 1) == 0) {\n                        pppppppcVar30 = (code *******)pppppppcVar31[uVar7];\n                      }\n                      else {\n                        pppppppcVar31 = pppppppcVar31 + uVar7 + 0x100;\n                        pppppppcVar30 = (code *******)*pppppppcVar31;\n                      }\n                      goto LAB_000553a0;\n                    }\n                    pppppppcVar29 = unaff_s7;\n                    pppppppcVar30 = local_5c;\n                    iVar18 = (*pcVar9)(local_60);\n                  } while (iVar18 != 0);\n                  local_d8 = (code *******)0xc;\n                  pppppppcVar15 = local_d8;\nLAB_00055e44:\n                  local_d8 = pppppppcVar15;\n                  param_4 = (code *******)0x0;\n                  if (local_50 == (code *******)0x0) {\n                    pppppppcVar14 = param_4;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    break;\n                  }\n                  pppppppcVar30 = (code *******)0x0;\nLAB_000553ac:\n                  pppppppcVar29 = &local_b4;\n                  pppppppcVar14 = (code *******)FUN_00053684(&local_d8);\nLAB_000553cc:\n                  param_4 = pppppppcVar14;\n                  if (pppppppcVar14 == (code *******)0x0) {\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    if ((local_50 == (code *******)0x0) ||\n                       ((pppppppcVar28 != (code *******)0x0 && (pppppppcVar34 == (code *******)0x0))\n                       )) break;\n                    param_6 = &local_b4;\n                    param_5 = (code *******)&local_d8;\n                    pppppppcVar31 = (code *******)(PTR_DAT_000799a4 + 0x3684);\n                    do {\n                      pppppppcVar15 = local_50 + (int)local_8c;\n                      pppppppcVar42 = local_8c;\n                      do {\n                        pppppppcVar42 = (code *******)((int)pppppppcVar42 + 1);\n                        pppppppcVar29 = local_4c;\n                        param_4 = pppppppcVar14;\n                        if ((int)local_4c < (int)pppppppcVar42) goto LAB_00055da8;\n                        local_8c = (code *******)((int)local_8c + 1);\n                        pppppppcVar15 = pppppppcVar15 + 1;\n                      } while (*pppppppcVar15 == (code ******)0x0);\n                      pppppppcVar30 = (code *******)0x0;\n                      pppppppcVar29 = param_6;\n                      param_4 = (code *******)(*(code *)pppppppcVar31)(param_5);\n                      if (local_d8 != (code *******)0x0) {\n                        if (param_4 == (code *******)0x0) goto LAB_00055da8;\n                        break;\n                      }\n                      pppppppcVar29 = local_4c;\n                    } while (param_4 == (code *******)0x0);\n                  }\n                  pppppppcVar15 = (code *******)((uint)unaff_s7 ^ (uint)param_4);\n                  pppppppcVar42 = unaff_s7;\n                  pppppppcVar14 = local_138;\n                  if ((bVar1) &&\n                     (pppppppcVar42 = pppppppcVar15, pppppppcVar14 = unaff_s5,\n                     pppppppcVar15 != (code *******)0x0)) {\n                    bVar1 = false;\n                    pppppppcVar14 = local_138;\n                  }\n                  local_138 = pppppppcVar14;\n                  unaff_s7 = param_4;\n                  if ((((uint)param_4[0xd] & 0x8000000) != 0) &&\n                     ((((uint)param_4[0xd] & 0x1000000) == 0 ||\n                      (pppppppcVar29 = param_4, pppppppcVar30 = local_8c,\n                      iVar18 = FUN_00049440(&local_b4), iVar18 != 0)))) {\n                    unaff_s7 = pppppppcVar42;\n                    unaff_s8 = local_8c;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                    local_144 = (code *******)0x0;\n                    unaff_s7 = param_4;\n                  }\n                }\nLAB_00055da8:\n                if (local_144 != (code *******)0x0) {\n                  *local_144 = (code ******)((int)local_138 + (int)*local_144);\n                }\n              }\n              else {\n                param_4 = unaff_s7 + 1;\n                pppppppcVar30 = (code *******)0x0;\n                pppppppcVar29 = param_4;\n                local_d8 = (code *******)FUN_00047a44(&local_b4);\n                unaff_s8 = local_d8;\n                if (local_d8 == (code *******)0x0) {\n                  if (((uint)unaff_s7[0xd] & 0x2000000) == 0) {\n                    pppppppcVar29 = param_4;\n                    bVar1 = false;\n                  }\n                  else {\n                    pppppppcVar29 = param_4;\n                    local_d8 = (code *******)FUN_00052d84(&local_b4);\n                    unaff_s8 = local_d8;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055dbc;\n                    bVar1 = false;\n                  }\n                  goto LAB_00054d50;\n                }\n              }\nLAB_00055dbc:\n              if (unaff_s8 == (code *******)0xffffffff) {\nLAB_00055b04:\n                FUN_0004b7e8(&local_b4);\nLAB_00055b1c:\n                local_dc = (code *******)((int)pppppppcVar24 + (int)local_dc);\n                if ((int)pppppppcVar25 <= (int)local_dc) goto code_r0x00055b38;\n                local_150 = (code *******)0x1;\n                goto LAB_000557e4;\n              }\n              if (unaff_s8 == (code *******)&SUB_fffffffe) {\n                local_150 = (code *******)0xc;\n                goto LAB_000557e4;\n              }\n              local_58 = unaff_s8;\n              if (((uint)param_1[7] & 0x8000000) == 0) {\n                if (pppppppcVar3 < (code *******)0x2) {\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055c08;\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                else {\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                if (pppppppcVar3 < (code *******)0x2) {\nLAB_00055c6c:\n                  pppppppcVar28 = pppppppcVar33;\n                  unaff_s4 = local_60;\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055548;\n                }\n                else {\n                  cVar23 = *(code *)(pppppppcVar38 + 0x16);\nLAB_00055c20:\n                  pppppppcVar28 = pppppppcVar33;\n                  if (-1 < (char)cVar23) goto LAB_00055c6c;\n                }\n                pppppppcVar31 = local_54;\n                pppppppcVar42 = local_60;\n                unaff_s4 = pppppppcVar42;\n                if (unaff_s8 < (code *******)0x3fffffff) {\n                  param_4 = (code *******)((int)((int)unaff_s8 + 1) * 4);\n                  unaff_s5 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                  if (unaff_s5 == (code *******)0x0) {\nLAB_00055b9c:\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    local_150 = (code *******)0xc;\n                    pppppppcVar33 = pppppppcVar28;\n                  }\n                  else {\n                    pppppppcVar29 = (code *******)&local_d0;\n                    if (pppppppcVar42[0x13] == (code ******)0x0) {\n                      local_cc = (code *******)0x0;\n                      local_c8 = pppppppcVar31;\n                      local_c0 = 0;\n                      local_bc = 0;\n                      local_b8 = 0;\n                      local_d0 = unaff_s5;\n                      local_c4 = unaff_s8;\n                      param_5 = (code *******)FUN_0005421c(&local_b4);\n                      (*(code *)PTR_free_00079c24)(local_b8);\n                      if (param_5 == (code *******)0x0) {\n                        param_4 = (code *******)*unaff_s5;\n                        if (param_4 == (code *******)0x0) {\nLAB_00055b70:\n                          (*(code *)PTR_free_00079c24)(unaff_s5);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          pppppppcVar33 = pppppppcVar28;\n                          goto LAB_00055b04;\n                        }\nLAB_00055528:\n                        (*(code *)PTR_free_00079c24)(local_50);\n                        pppppppcVar33 = pppppppcVar28;\n                        unaff_s4 = pppppppcVar42;\n                        local_58 = unaff_s8;\n                        local_54 = pppppppcVar31;\n                        local_50 = unaff_s5;\n                        goto LAB_00055548;\n                      }\nLAB_00055acc:\n                      param_4 = (code *******)0x0;\n                      pppppppcVar33 = pppppppcVar28;\n                      unaff_s4 = pppppppcVar42;\n                    }\n                    else {\n                      param_4 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                      if (param_4 == (code *******)0x0) goto LAB_00055b9c;\n                      unaff_s7 = (code *******)&local_d0;\n                      pcVar8 = (code *)(PTR_DAT_000799a4 + 0x421c);\n                      pcVar9 = (code *)(PTR_DAT_000799a4 + -0x6bc0);\n                      pppppppcVar33 = pppppppcVar28;\n                      while( true ) {\n                        pppppppcVar28 = (code *******)((int)unaff_s8 + 1);\n                        param_6 = (code *******)((int)pppppppcVar28 * 4);\n                        pppppppcVar30 = param_6;\n                        (*(code *)PTR_memset_00079b00)(param_4,0);\n                        local_c0 = 0;\n                        local_bc = 0;\n                        local_b8 = 0;\n                        pppppppcVar29 = unaff_s7;\n                        local_d0 = unaff_s5;\n                        local_cc = param_4;\n                        local_c8 = pppppppcVar31;\n                        local_c4 = unaff_s8;\n                        param_5 = (code *******)(*pcVar8)(&local_b4);\n                        (*(code *)PTR_free_00079c24)(local_b8);\n                        unaff_s4 = pppppppcVar28;\n                        if (param_5 != (code *******)0x0) break;\n                        if ((*unaff_s5 != (code ******)0x0) ||\n                           (param_6 = param_6 + -1, *param_4 != (code ******)0x0)) {\n                          pppppppcVar29 = unaff_s5;\n                          pppppppcVar30 = param_4;\n                          param_5 = (code *******)FUN_000520d0(pppppppcVar42);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          if (param_5 != (code *******)0x0) goto LAB_00055acc;\n                          goto LAB_00055528;\n                        }\n                        param_6 = (code *******)((int)local_50 + (int)param_6);\n                        do {\n                          while( true ) {\n                            unaff_s8 = (code *******)((int)unaff_s8 + -1);\n                            if ((int)unaff_s8 < 0) goto LAB_00055b70;\n                            pppppppcVar29 = (code *******)param_6[-1];\n                            if (pppppppcVar29 != (code *******)0x0) break;\n                            param_6 = param_6 + -1;\n                          }\n                          param_6 = param_6 + -1;\n                        } while (((uint)pppppppcVar29[0xd] & 0x8000000) == 0);\n                        pppppppcVar31 = (code *******)(*pcVar9)(&local_b4,pppppppcVar29,unaff_s8);\n                        pppppppcVar33 = pppppppcVar28;\n                      }\n                    }\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    (*(code *)PTR_free_00079c24)(param_4);\n                    local_150 = param_5;\n                    if (param_5 == (code *******)0x1) goto LAB_00055b04;\n                  }\n                }\n                else {\n                  local_150 = (code *******)0xc;\n                  pppppppcVar33 = pppppppcVar28;\n                }\n                goto LAB_000557e4;\n              }\n              if (pppppppcVar38[0x13] != (code ******)0x0) {\n                pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                pppppppcVar30 = unaff_s8;\n                local_54 = (code *******)FUN_00049440(&local_b4);\n                goto LAB_00055c6c;\n              }\nLAB_00055c08:\n              if ((((uint)param_1[7] & 0x8000000) == 0) && ((code *******)0x1 < pppppppcVar3)) {\n                cVar23 = *(code *)(pppppppcVar38 + 0x16);\n                goto LAB_00055c20;\n              }\nLAB_00055548:\n              if (pppppppcVar3 == (code *******)0x0) goto LAB_000557e4;\n              if (pppppppcVar3 < (code *******)0x2) {\n                *param_8 = (code ******)0x0;\n                param_8[1] = (code ******)local_58;\n                goto LAB_000555ac;\n              }\n              pppppppcVar29 = param_8 + 2;\n              do {\n                pppppppcVar29[1] = (code ******)0xffffffff;\n                *pppppppcVar29 = (code ******)0xffffffff;\n                pppppppcVar29 = pppppppcVar29 + 2;\n              } while (pppppppcVar29 != param_8 + (int)pppppppcVar3 * 2);\n              *param_8 = (code ******)0x0;\n              param_8[1] = (code ******)local_58;\n              if (((uint)param_1[7] & 0x8000000) != 0) {\nLAB_000555ac:\n                pppppppcVar33 = param_8;\n                do {\n                  pppppppcVar29 = (code *******)*pppppppcVar33;\n                  if (pppppppcVar29 != (code *******)0xffffffff) {\n                    if (local_68 != '\0') {\n                      pppppppcVar34 = local_94;\n                      if (pppppppcVar29 != local_98) {\n                        pppppppcVar34 = *(code ********)(local_a8 + (int)pppppppcVar29 * 4);\n                      }\n                      *pppppppcVar33 = (code ******)pppppppcVar34;\n                      pppppppcVar29 = local_94;\n                      if (local_98 != (code *******)pppppppcVar33[1]) {\n                        pppppppcVar29 = *(code ********)(local_a8 + (int)pppppppcVar33[1] * 4);\n                      }\n                      pppppppcVar33[1] = (code ******)pppppppcVar29;\n                    }\n                    *pppppppcVar33 = (code ******)((int)local_dc + (int)*pppppppcVar33);\n                    pppppppcVar29 = (code *******)((int)local_dc + (int)pppppppcVar33[1]);\n                    pppppppcVar33[1] = (code ******)pppppppcVar29;\n                  }\n                  pppppppcVar33 = pppppppcVar33 + 2;\n                } while (pppppppcVar33 != param_8 + (int)pppppppcVar3 * 2);\n                if (0 < local_118) {\n                  pppppppcVar33 = param_8 + (int)pppppppcVar3 * 2;\n                  do {\n                    *pppppppcVar33 = (code ******)0xffffffff;\n                    pppppppcVar33[1] = (code ******)0xffffffff;\n                    pppppppcVar33 = pppppppcVar33 + 2;\n                  } while (pppppppcVar33 != param_8 + (int)param_7 * 2);\n                }\n                pppppppcVar30 = local_dc;\n                pppppppcVar33 = param_8;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar38[0x21] != (code ******)0x0) {\n                  pppppppcVar30 = (code *******)((int)pppppppcVar3 + -1);\n                  pppppppcVar34 = (code *******)0x0;\n                  pppppppcVar3 = param_8;\n                  while( true ) {\n                    pppppppcVar29 = (code *******)((int)pppppppcVar34 * 4);\n                    if (pppppppcVar30 == pppppppcVar34) break;\n                    if (*(code ********)((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) !=\n                        pppppppcVar34) {\n                      pppppppcVar3[2] =\n                           param_8[(int)((int)*(code ********)\n                                               ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1)\n                                   * 2];\n                      pppppppcVar3[3] =\n                           param_8[((int)*(code ******)\n                                          ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1) * 2 +\n                                   1];\n                    }\n                    pppppppcVar34 = (code *******)((int)pppppppcVar34 + 1);\n                    pppppppcVar3 = pppppppcVar3 + 2;\n                  }\n                }\n                goto LAB_000557e4;\n              }\n              if ((char)*(code *)(pppppppcVar38 + 0x16) < '\0') {\n                local_168 = (uint)(0 < (int)pppppppcVar38[0x13]);\n              }\n              else {\n                local_168 = 0;\n              }\n              pppppppcVar29 = &local_b4;\n              pppppppcVar30 = pppppppcVar3;\n              pppppppcVar33 = param_8;\n              local_150 = (code *******)FUN_0004f4a0(param_1);\n              if (local_150 == (code *******)0x0) goto LAB_000555ac;\n            }\n          }\n          else if (local_90 < 0x3fffffff) {\n            local_50 = (code *******)(*(code *)PTR_malloc_00079b54)((local_90 + 1) * 4);\n            if (local_50 != (code *******)0x0) goto LAB_00055a40;\n            local_150 = (code *******)0xc;\n            param_6 = pppppppcVar36;\n          }\n          else {\n            local_150 = (code *******)0xc;\n            param_6 = pppppppcVar36;\n          }\n        }\n        else {\n          unaff_s5 = (code *******)((int)ppppppcVar35 * 8);\n          if (pppppppcVar36 < (code *******)0xccccccd) {\n            unaff_s4 = (code *******)(*(code *)PTR_malloc_00079b54)((int)ppppppcVar35 * 0x28);\n            local_40 = unaff_s4;\n            local_30 = (*(code *)PTR_malloc_00079b54)(unaff_s5);\n            if ((unaff_s4 != (code *******)0x0) && (local_30 != 0)) goto LAB_000559f0;\n          }\n          local_150 = (code *******)0xc;\n          param_6 = pppppppcVar36;\n        }\nLAB_000557e4:\n        (*(code *)PTR_free_00079c24)(local_50);\n        param_1 = pppppppcVar30;\n        if (pppppppcVar38[0x13] != (code ******)0x0) {\n          FUN_0004b7e8(&local_b4);\n          (*(code *)PTR_free_00079c24)(local_30);\n          (*(code *)PTR_free_00079c24)(local_40);\n          param_1 = pppppppcVar30;\n        }\n        FUN_0004b2bc(&local_b4);\n        pppppppcStack_1a0 = param_4;\n        pppppppcStack_19c = pppppppcVar31;\n      }\n    }\n  }" if (parenthesized_expression "(pppppppcVar38[0xb] == (code ******)0x0)" ( (binary_expression "pppppppcVar38[0xb] == (code ******)0x0" (subscript_expression "pppppppcVar38[0xb]" identifier [ number_literal ]) == (cast_expression "(code ******)0x0" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (compound_statement "{\n    local_150 = (code *******)0x1;\n  }" { (expression_statement "local_150 = (code *******)0x1;" (assignment_expression "local_150 = (code *******)0x1" identifier = (cast_expression "(code *******)0x1" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) }) (else_clause "else {\n    pppppppcVar29 = (code *******)pppppppcVar38[0xc];\n    if (pppppppcVar29 == (code *******)0x0) {\n      local_150 = (code *******)0x1;\n    }\n    else {\n      pppppppcVar3 = param_5;\n      if ((((pppppppcVar38[9][2] == (code *****)0x0) && (pppppppcVar38[10][2] == (code *****)0x0))\n          && ((pppppppcVar38[0xb][2] == (code *****)0x0 || (((uint)param_1[7] & 0x1000000) == 0))))\n         && ((pppppppcVar3 = param_4, param_4 != (code *******)0x0 &&\n             (param_4 = param_5, pppppppcVar3 = param_5, param_5 != (code *******)0x0)))) {\n        local_150 = (code *******)0x1;\n        pppppppcStack_1a0 = param_5;\n      }\n      else {\n        param_5 = pppppppcVar3;\n        pppppppcVar3 = (code *******)((int)param_7 - local_118);\n        if (pppppppcVar3 == (code *******)0x0) {\n          pppppppcVar34 = (code *******)(uint)(pppppppcVar38[0x13] != (code ******)0x0);\n        }\n        else {\n          pppppppcVar34 = (code *******)0x1;\n        }\n        ppppppcVar32 = param_1[5];\n        local_6c = (byte)((uint)((int)param_1[3] << 9) >> 0x1f);\n        local_64 = (code *******)pppppppcVar38[0x17];\n        pppppppcVar31 = (code *******)((int)pppppppcVar38[2] + 1);\n        if ((int)pppppppcVar38[2] + 1 < (int)local_64) {\n          pppppppcVar31 = local_64;\n        }\n        pppppppcVar30 = (code *******)(uint)((int)param_3 + 1 < (int)pppppppcVar31);\n        pppppppcVar33 = (code *******)0x1;\n        local_69 = local_6c;\n        if (ppppppcVar32 != (code ******)0x0) {\n          local_69 = 1;\n        }\n        local_6b = (byte)((uint)((int)pppppppcVar38[0x16] << 2) >> 0x1f);\n        local_6a = (byte)((uint)((int)pppppppcVar38[0x16] << 3) >> 0x1f);\n        pppppppcVar29 = (code *******)((int)param_3 + 1);\n        if (pppppppcVar30 == (code *******)0x0) {\n          pppppppcVar29 = pppppppcVar31;\n        }\n        local_b4 = param_2;\n        local_88 = param_3;\n        local_84 = param_3;\n        local_80 = param_3;\n        local_7c = param_3;\n        local_74 = ppppppcVar32;\n        local_150 = (code *******)FUN_00046d2c(&local_b4);\n        pppppppcVar31 = pppppppcVar34;\n        param_6 = param_6;\n        if (local_150 != (code *******)0x0) goto LAB_000557e4;\n        local_70 = pppppppcVar38 + 0x18;\n        local_66 = (byte)((uint)((int)pppppppcVar38[0x16] << 4) >> 0x1f);\n        pppppppcVar2 = (code *******)0x0;\n        local_98 = pppppppcVar2;\n        if ((local_69 == 0) && (local_b0 = param_2, (int)pppppppcVar38[0x17] < 2)) {\n          local_98 = param_3;\n        }\n        local_7c = param_6;\n        local_80 = param_6;\n        local_67 = (byte)((uint)((int)param_1[7] << 7) >> 0x1f);\n        ppppppcVar35 = pppppppcVar38[0x13];\n        pppppppcVar36 = (code *******)((int)ppppppcVar35 * 2);\n        local_5c = param_9;\n        local_58 = (code *******)0xffffffff;\n        local_94 = local_98;\n        if ((int)pppppppcVar36 < 1) {\nLAB_000559f0:\n          local_3c = 1;\n          local_44 = pppppppcVar36;\n          local_34 = pppppppcVar36;\n          if ((pppppppcVar3 < (code *******)0x2) && (((uint)pppppppcVar38[0x16] & 0x40000000) == 0))\n          {\n            local_50 = (code *******)0x0;\nLAB_00055a40:\n            local_78 = 6;\n            if (((uint)param_9 & 1) != 0) {\n              local_78 = 4;\n            }\n            pppppppcVar24 = (code *******)0x1;\n            pppppppcVar25 = param_4;\n            if ((int)param_5 < (int)param_4) {\n              pppppppcVar24 = (code *******)0xffffffff;\n              pppppppcVar25 = param_5;\n            }\n            pppppppcVar26 = param_5;\n            if ((int)param_5 <= (int)param_4) {\n              pppppppcVar26 = param_4;\n            }\n            ppppppcVar35 = pppppppcVar38[0x17];\n            uVar16 = 8;\n            if (local_148 != (code *******)0x0) {\n              if (ppppppcVar35 == (code ******)0x1) {\n                pppppppcVar28 = (code *******)0x4;\n              }\n              else {\n                pppppppcVar28 = pppppppcVar2;\n                if ((-1 < (int)param_1[3] << 9) && (ppppppcVar32 == (code ******)0x0)) {\n                  pppppppcVar28 = (code *******)0x4;\n                }\n              }\n              pppppppcVar29 = (code *******)0x0;\n              if ((int)param_4 <= (int)param_5) {\n                pppppppcVar29 = (code *******)0x2;\n              }\n              uVar16 = (uint)(ppppppcVar32 != (code ******)0x0) | (uint)pppppppcVar28 |\n                       (uint)pppppppcVar29;\n            }\n            local_dc = param_4;\n            if ((int)param_4 < (int)pppppppcVar25) {\n              local_150 = (code *******)0x1;\n              param_6 = pppppppcVar36;\n            }\n            else if ((int)pppppppcVar26 < (int)param_4) {\n              local_150 = (code *******)0x1;\n              param_4 = (code *******)(uint)((int)param_5 < (int)param_4);\n              param_6 = pppppppcVar36;\n            }\n            else {\n              pppppppcVar36 = (code *******)&local_dc;\n              if ((code *******)(uint)((int)param_5 < (int)param_4) != (code *******)0x0) {\n                pppppppcVar36 = (code *******)0x0;\n              }\n              pcVar4 = (code *)(PTR_DAT_000799a4 + -0x2b7c);\n              piVar5 = (int *)(PTR_s_nt0_000795b8 + (uVar16 - 4) * 4 + 0x6e38);\nLAB_00055b44:\n              if (uVar16 - 4 < 5) {\n                    /* WARNING: Could not emulate address calculation at 0x00054920 */\n                    /* WARNING: Treating indirect jump as call */\n                pppppppcVar29 = (code *******)(*(code *)(&_gp_1 + *piVar5))();\n                return pppppppcVar29;\n              }\n              param_5 = &local_b4;\n              pppppppcVar28 = pppppppcVar33;\n              while( true ) {\n                param_4 = local_dc;\n                pppppppcVar33 = (code *******)((int)local_dc - local_9c);\n                pppppppcVar30 = param_9;\n                pppppppcVar31 = pppppppcVar2;\n                param_6 = local_148;\n                unaff_s4 = param_3;\n                unaff_s5 = pppppppcVar24;\n                unaff_s7 = pppppppcVar26;\n                if (local_94 <= pppppppcVar33) {\n                  pppppppcVar29 = local_dc;\n                  local_150 = (code *******)(*pcVar4)(param_5);\n                  pppppppcVar33 = pppppppcVar28;\n                  if (local_150 != (code *******)0x0) goto LAB_000557e4;\n                  pppppppcVar33 = (code *******)((int)param_4 - local_9c);\n                }\n                if ((int)param_4 < (int)param_3) {\n                  uVar7 = (uint)(byte)*(code *)((int)pppppppcVar33 + (int)local_b0);\n                }\n                else {\n                  uVar7 = 0;\n                }\n                param_4 = (code *******)((int)param_4 + (int)pppppppcVar24);\n                if (*(code *)((int)local_148 + uVar7) != (code)0x0) break;\n                pppppppcVar33 = pppppppcVar28;\n                local_dc = param_4;\n                if ((int)param_4 < (int)pppppppcVar25) {\n                  local_150 = (code *******)0x1;\n                  goto LAB_000557e4;\n                }\n                if ((code *******)(uint)((int)pppppppcVar26 < (int)param_4) != (code *******)0x0) {\n                  local_150 = (code *******)0x1;\n                  param_4 = (code *******)(uint)((int)pppppppcVar26 < (int)param_4);\n                  goto LAB_000557e4;\n                }\n              }\n              while( true ) {\n                pppppppcVar29 = local_dc;\n                pppppppcVar30 = param_9;\n                pppppppcVar6 = (code *******)(*pcVar4)(&local_b4);\n                pppppppcVar14 = local_60;\n                pppppppcVar42 = local_8c;\n                pppppppcVar33 = pppppppcVar28;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar6 != (code *******)0x0) goto LAB_000557e4;\n                if (((ppppppcVar35 != (code ******)0x1) && (local_98 != (code *******)0x0)) &&\n                   (*local_ac == -1)) goto LAB_00055b1c;\n                local_3c = 0;\n                local_48 = 0;\n                local_4c = (code *******)0x0;\n                local_138 = local_8c;\n                local_d8 = (code *******)0x0;\n                unaff_s7 = (code *******)local_60[9];\n                pppppppcVar30 = local_5c;\n                param_4 = pppppppcVar14;\n                if (((uint)unaff_s7[0xd] & 0x1000000) == 0) break;\n                pppppppcVar29 = (code *******)((int)local_8c + -1);\n                pppppppcVar33 = (code *******)FUN_00049110(&local_b4);\n                if (((uint)pppppppcVar33 & 1) == 0) {\n                  if (pppppppcVar33 == (code *******)0x0) break;\n                  if (((uint)pppppppcVar33 & 6) == 6) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xc];\n                    goto LAB_00054d1c;\n                  }\n                  if (((uint)pppppppcVar33 & 2) != 0) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xb];\n                    goto LAB_00054d1c;\n                  }\n                  pppppppcVar28 = pppppppcVar33;\n                  if (((uint)pppppppcVar33 & 4) == 0) break;\n                  pppppppcVar30 = (code *******)unaff_s7[10];\n                  pppppppcVar29 = pppppppcVar14;\n                  unaff_s7 = (code *******)FUN_0004ae34(&local_d8);\n                  pppppppcVar28 = pppppppcVar33;\n                  if (unaff_s7 != (code *******)0x0) break;\n                  if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                }\n                else {\n                  unaff_s7 = (code *******)pppppppcVar14[10];\nLAB_00054d1c:\n                  pppppppcVar28 = (code *******)PTR_s_nt0_000795b8;\n                  if (unaff_s7 != (code *******)0x0) break;\n                }\n                pppppppcVar28 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                local_dc = (code *******)\n                           (*(code *)PTR___assert_fail_000799f8)\n                                     (PTR_s_nt0_000795b8 + 0x71a0,pppppppcVar29,0x435);\n                if (local_dc == pppppppcVar26) {\n                  if ((int)local_dc < (int)param_3) {\n                    uVar7 = (uint)(byte)*(code *)((int)local_dc + (int)param_2);\n                  }\n                  else {\n                    uVar7 = 0;\n                  }\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    uVar7 = (uint)*(byte *)((int)ppppppcVar32 + uVar7);\n                  }\n                  if (*(code *)((int)local_148 + uVar7) == (code)0x0) {\n                    local_150 = (code *******)0x1;\n                    pppppppcVar30 = param_9;\n                    pppppppcVar33 = pppppppcVar28;\n                    goto LAB_000557e4;\n                  }\n                }\n              }\n              pppppppcVar33 = pppppppcVar28;\n              bVar1 = pppppppcVar36 != (code *******)0x0;\n              if ((local_50 == (code *******)0x0) ||\n                 (local_50[(int)pppppppcVar42] = (code ******)unaff_s7,\n                 pppppppcVar14[0x13] == (code ******)0x0)) {\nLAB_00054d50:\n                if ((int)unaff_s7[0xd] << 4 < 0) {\n                  if ((((uint)unaff_s7[0xd] & 0x1000000) == 0) ||\n                     (pppppppcVar29 = unaff_s7, pppppppcVar30 = pppppppcVar42,\n                     iVar18 = FUN_00049440(&local_b4), iVar18 != 0)) {\n                    unaff_s8 = pppppppcVar42;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                  }\n                  else {\n                    pppppppcVar42 = (code *******)0xffffffff;\n                    pppppppcVar28 = (code *******)0x0;\n                  }\n                }\n                else {\n                  pppppppcVar42 = (code *******)0xffffffff;\n                  pppppppcVar28 = (code *******)0x0;\n                }\n                pcVar8 = (code *)(PTR_DAT_000799a4 + -0x7144);\n                pcVar9 = (code *)(PTR_DAT_000799a4 + -0x1980);\n                pcVar10 = (code *)(PTR_DAT_000799a4 + -0x2f9c);\n                unaff_s8 = pppppppcVar42;\n                local_144 = pppppppcVar36;\n                while( true ) {\n                  uVar44 = CONCAT44(local_98,local_84);\n                  unaff_s5 = (code *******)((int)local_8c + 1);\n                  pppppppcVar29 = local_8c;\n                  if ((int)local_7c <= (int)local_8c) break;\n                  if (((int)local_90 <= (int)unaff_s5) && ((int)local_90 < (int)local_84))\n                  goto LAB_00054e94;\n                  if ((int)local_98 <= (int)unaff_s5) {\n                    while ((int)((ulonglong)uVar44 >> 0x20) < (int)uVar44) {\nLAB_00054e94:\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 2);\n                      local_d8 = (code *******)(*pcVar8)(&local_b4);\n                      if (local_d8 == (code *******)0x0) break;\n                      pppppppcVar14 = param_4;\n                      if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                      pppppppcVar33 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                      pppppppcVar30 = (code *******)0x46c;\n                      pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                      uVar44 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0);\n                      pppppppcVar28 = pppppppcVar38;\n                    }\n                  }\n                  pppppppcVar42 = local_60;\n                  if ((int)unaff_s7[0xd] << 5 < 0) {\n                    pppppppcVar31 = pppppppcVar42;\n                    if (0 < (int)unaff_s7[2]) {\n                      pcVar11 = (code *)(PTR_DAT_000799a4 + -0x6fdc);\n                      pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6ef0);\n                      param_6 = (code *******)0x0;\n                      do {\n                        param_5 = (code *******)unaff_s7[3][(int)param_6];\n                        ppppppcVar39 = *pppppppcVar42;\n                        pppppcVar13 = ppppppcVar39[(int)param_5 * 2 + 1];\n                        if (((uint)pppppcVar13 & 0x800) != 0) {\n                          if (((uint)pppppcVar13 & 0xffc000) != 0) {\n                            pppppppcVar29 = local_8c;\n                            uVar19 = (*pcVar12)(&local_b4,local_8c,local_5c);\n                            uVar7 = (uint)((int)ppppppcVar39[(int)param_5 * 2 + 1] << 8) >> 0x16;\n                            if ((uVar7 & 4) == 0) {\n                              uVar27 = uVar19 & 1;\n                              if ((uVar7 & 8) != 0) goto joined_r0x00054f40;\n                            }\n                            else {\n                              uVar27 = uVar7 & 8;\n                              if ((uVar19 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                              if (uVar27 != 0) goto LAB_000550a4;\n                            }\n                            if ((((uVar7 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                               (((uVar7 & 0x80) != 0 &&\n                                (pppppppcVar33 = local_8c, (uVar19 & 8) == 0)))) goto LAB_000550a4;\n                          }\n                          pppppppcVar30 = &local_b4;\n                          pppppppcVar29 = param_5;\n                          pppppppcVar33 = local_8c;\n                          iVar18 = (*pcVar10)(pppppppcVar42);\n                          if (iVar18 != 0) {\n                            pppppppcVar14 = (code *******)((int)local_8c + iVar18);\n                            if (iVar18 <= local_3c) {\n                              iVar18 = local_3c;\n                            }\n                            pppppppcVar29 = pppppppcVar14;\n                            local_3c = iVar18;\n                            local_d4 = (code *******)(*pcVar11)(&local_b4);\n                            pppppppcVar15 = local_d4;\n                            if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                            pppppppcVar30 =\n                                 (code *******)\n                                 (pppppppcVar42[6] + (int)pppppppcVar42[3][(int)param_5] * 3);\n                            unaff_s4 = (code *******)((int)pppppppcVar14 * 4);\n                            param_5 = local_50 + (int)pppppppcVar14;\n                            if (*param_5 == (code ******)0x0) {\n                              local_d0 = (code *******)*pppppppcVar30;\n                              local_cc = (code *******)pppppppcVar30[1];\n                              local_c8 = (code *******)pppppppcVar30[2];\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *param_5 = ppppppcVar39;\n                            }\n                            else {\n                              pppppppcVar29 = (code *******)(*param_5)[10];\n                              local_d4 = (code *******)FUN_000484bc(&local_d0);\n                              pppppppcVar15 = local_d4;\n                              if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar15 = local_50 + (int)pppppppcVar14;\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *pppppppcVar15 = ppppppcVar39;\n                              (*(code *)PTR_free_00079c24)(local_c8);\n                            }\n                            unaff_s4 = local_50 + (int)pppppppcVar14;\n                            if ((*unaff_s4 == (code ******)0x0) &&\n                               (pppppppcVar15 = local_d4, local_d4 != (code *******)0x0))\n                            goto LAB_00055e44;\n                          }\n                        }\nLAB_000550a4:\n                        param_6 = (code *******)((int)param_6 + 1);\n                      } while ((int)param_6 < (int)unaff_s7[2]);\n                    }\n                    local_d8 = (code *******)0x0;\n                  }\n                  uVar7 = (uint)(byte)*(code *)((int)local_8c + (int)local_b0);\n                  local_8c = (code *******)((int)local_8c + 1);\n                  do {\n                    if (unaff_s7[0xb] != (code ******)0x0) {\n                      pppppppcVar30 = (code *******)unaff_s7[0xb][uVar7];\nLAB_000553a0:\n                      pppppppcVar14 = pppppppcVar30;\n                      if (local_50 != (code *******)0x0) goto LAB_000553ac;\n                      goto LAB_000553cc;\n                    }\n                    pppppppcVar31 = (code *******)unaff_s7[0xc];\n                    if (pppppppcVar31 != (code *******)0x0) {\n                      pppppppcVar29 = (code *******)((int)local_8c + -1);\n                      uVar19 = FUN_00049110(&local_b4);\n                      if ((uVar19 & 1) == 0) {\n                        pppppppcVar30 = (code *******)pppppppcVar31[uVar7];\n                      }\n                      else {\n                        pppppppcVar31 = pppppppcVar31 + uVar7 + 0x100;\n                        pppppppcVar30 = (code *******)*pppppppcVar31;\n                      }\n                      goto LAB_000553a0;\n                    }\n                    pppppppcVar29 = unaff_s7;\n                    pppppppcVar30 = local_5c;\n                    iVar18 = (*pcVar9)(local_60);\n                  } while (iVar18 != 0);\n                  local_d8 = (code *******)0xc;\n                  pppppppcVar15 = local_d8;\nLAB_00055e44:\n                  local_d8 = pppppppcVar15;\n                  param_4 = (code *******)0x0;\n                  if (local_50 == (code *******)0x0) {\n                    pppppppcVar14 = param_4;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    break;\n                  }\n                  pppppppcVar30 = (code *******)0x0;\nLAB_000553ac:\n                  pppppppcVar29 = &local_b4;\n                  pppppppcVar14 = (code *******)FUN_00053684(&local_d8);\nLAB_000553cc:\n                  param_4 = pppppppcVar14;\n                  if (pppppppcVar14 == (code *******)0x0) {\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    if ((local_50 == (code *******)0x0) ||\n                       ((pppppppcVar28 != (code *******)0x0 && (pppppppcVar34 == (code *******)0x0))\n                       )) break;\n                    param_6 = &local_b4;\n                    param_5 = (code *******)&local_d8;\n                    pppppppcVar31 = (code *******)(PTR_DAT_000799a4 + 0x3684);\n                    do {\n                      pppppppcVar15 = local_50 + (int)local_8c;\n                      pppppppcVar42 = local_8c;\n                      do {\n                        pppppppcVar42 = (code *******)((int)pppppppcVar42 + 1);\n                        pppppppcVar29 = local_4c;\n                        param_4 = pppppppcVar14;\n                        if ((int)local_4c < (int)pppppppcVar42) goto LAB_00055da8;\n                        local_8c = (code *******)((int)local_8c + 1);\n                        pppppppcVar15 = pppppppcVar15 + 1;\n                      } while (*pppppppcVar15 == (code ******)0x0);\n                      pppppppcVar30 = (code *******)0x0;\n                      pppppppcVar29 = param_6;\n                      param_4 = (code *******)(*(code *)pppppppcVar31)(param_5);\n                      if (local_d8 != (code *******)0x0) {\n                        if (param_4 == (code *******)0x0) goto LAB_00055da8;\n                        break;\n                      }\n                      pppppppcVar29 = local_4c;\n                    } while (param_4 == (code *******)0x0);\n                  }\n                  pppppppcVar15 = (code *******)((uint)unaff_s7 ^ (uint)param_4);\n                  pppppppcVar42 = unaff_s7;\n                  pppppppcVar14 = local_138;\n                  if ((bVar1) &&\n                     (pppppppcVar42 = pppppppcVar15, pppppppcVar14 = unaff_s5,\n                     pppppppcVar15 != (code *******)0x0)) {\n                    bVar1 = false;\n                    pppppppcVar14 = local_138;\n                  }\n                  local_138 = pppppppcVar14;\n                  unaff_s7 = param_4;\n                  if ((((uint)param_4[0xd] & 0x8000000) != 0) &&\n                     ((((uint)param_4[0xd] & 0x1000000) == 0 ||\n                      (pppppppcVar29 = param_4, pppppppcVar30 = local_8c,\n                      iVar18 = FUN_00049440(&local_b4), iVar18 != 0)))) {\n                    unaff_s7 = pppppppcVar42;\n                    unaff_s8 = local_8c;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                    local_144 = (code *******)0x0;\n                    unaff_s7 = param_4;\n                  }\n                }\nLAB_00055da8:\n                if (local_144 != (code *******)0x0) {\n                  *local_144 = (code ******)((int)local_138 + (int)*local_144);\n                }\n              }\n              else {\n                param_4 = unaff_s7 + 1;\n                pppppppcVar30 = (code *******)0x0;\n                pppppppcVar29 = param_4;\n                local_d8 = (code *******)FUN_00047a44(&local_b4);\n                unaff_s8 = local_d8;\n                if (local_d8 == (code *******)0x0) {\n                  if (((uint)unaff_s7[0xd] & 0x2000000) == 0) {\n                    pppppppcVar29 = param_4;\n                    bVar1 = false;\n                  }\n                  else {\n                    pppppppcVar29 = param_4;\n                    local_d8 = (code *******)FUN_00052d84(&local_b4);\n                    unaff_s8 = local_d8;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055dbc;\n                    bVar1 = false;\n                  }\n                  goto LAB_00054d50;\n                }\n              }\nLAB_00055dbc:\n              if (unaff_s8 == (code *******)0xffffffff) {\nLAB_00055b04:\n                FUN_0004b7e8(&local_b4);\nLAB_00055b1c:\n                local_dc = (code *******)((int)pppppppcVar24 + (int)local_dc);\n                if ((int)pppppppcVar25 <= (int)local_dc) goto code_r0x00055b38;\n                local_150 = (code *******)0x1;\n                goto LAB_000557e4;\n              }\n              if (unaff_s8 == (code *******)&SUB_fffffffe) {\n                local_150 = (code *******)0xc;\n                goto LAB_000557e4;\n              }\n              local_58 = unaff_s8;\n              if (((uint)param_1[7] & 0x8000000) == 0) {\n                if (pppppppcVar3 < (code *******)0x2) {\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055c08;\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                else {\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                if (pppppppcVar3 < (code *******)0x2) {\nLAB_00055c6c:\n                  pppppppcVar28 = pppppppcVar33;\n                  unaff_s4 = local_60;\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055548;\n                }\n                else {\n                  cVar23 = *(code *)(pppppppcVar38 + 0x16);\nLAB_00055c20:\n                  pppppppcVar28 = pppppppcVar33;\n                  if (-1 < (char)cVar23) goto LAB_00055c6c;\n                }\n                pppppppcVar31 = local_54;\n                pppppppcVar42 = local_60;\n                unaff_s4 = pppppppcVar42;\n                if (unaff_s8 < (code *******)0x3fffffff) {\n                  param_4 = (code *******)((int)((int)unaff_s8 + 1) * 4);\n                  unaff_s5 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                  if (unaff_s5 == (code *******)0x0) {\nLAB_00055b9c:\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    local_150 = (code *******)0xc;\n                    pppppppcVar33 = pppppppcVar28;\n                  }\n                  else {\n                    pppppppcVar29 = (code *******)&local_d0;\n                    if (pppppppcVar42[0x13] == (code ******)0x0) {\n                      local_cc = (code *******)0x0;\n                      local_c8 = pppppppcVar31;\n                      local_c0 = 0;\n                      local_bc = 0;\n                      local_b8 = 0;\n                      local_d0 = unaff_s5;\n                      local_c4 = unaff_s8;\n                      param_5 = (code *******)FUN_0005421c(&local_b4);\n                      (*(code *)PTR_free_00079c24)(local_b8);\n                      if (param_5 == (code *******)0x0) {\n                        param_4 = (code *******)*unaff_s5;\n                        if (param_4 == (code *******)0x0) {\nLAB_00055b70:\n                          (*(code *)PTR_free_00079c24)(unaff_s5);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          pppppppcVar33 = pppppppcVar28;\n                          goto LAB_00055b04;\n                        }\nLAB_00055528:\n                        (*(code *)PTR_free_00079c24)(local_50);\n                        pppppppcVar33 = pppppppcVar28;\n                        unaff_s4 = pppppppcVar42;\n                        local_58 = unaff_s8;\n                        local_54 = pppppppcVar31;\n                        local_50 = unaff_s5;\n                        goto LAB_00055548;\n                      }\nLAB_00055acc:\n                      param_4 = (code *******)0x0;\n                      pppppppcVar33 = pppppppcVar28;\n                      unaff_s4 = pppppppcVar42;\n                    }\n                    else {\n                      param_4 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                      if (param_4 == (code *******)0x0) goto LAB_00055b9c;\n                      unaff_s7 = (code *******)&local_d0;\n                      pcVar8 = (code *)(PTR_DAT_000799a4 + 0x421c);\n                      pcVar9 = (code *)(PTR_DAT_000799a4 + -0x6bc0);\n                      pppppppcVar33 = pppppppcVar28;\n                      while( true ) {\n                        pppppppcVar28 = (code *******)((int)unaff_s8 + 1);\n                        param_6 = (code *******)((int)pppppppcVar28 * 4);\n                        pppppppcVar30 = param_6;\n                        (*(code *)PTR_memset_00079b00)(param_4,0);\n                        local_c0 = 0;\n                        local_bc = 0;\n                        local_b8 = 0;\n                        pppppppcVar29 = unaff_s7;\n                        local_d0 = unaff_s5;\n                        local_cc = param_4;\n                        local_c8 = pppppppcVar31;\n                        local_c4 = unaff_s8;\n                        param_5 = (code *******)(*pcVar8)(&local_b4);\n                        (*(code *)PTR_free_00079c24)(local_b8);\n                        unaff_s4 = pppppppcVar28;\n                        if (param_5 != (code *******)0x0) break;\n                        if ((*unaff_s5 != (code ******)0x0) ||\n                           (param_6 = param_6 + -1, *param_4 != (code ******)0x0)) {\n                          pppppppcVar29 = unaff_s5;\n                          pppppppcVar30 = param_4;\n                          param_5 = (code *******)FUN_000520d0(pppppppcVar42);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          if (param_5 != (code *******)0x0) goto LAB_00055acc;\n                          goto LAB_00055528;\n                        }\n                        param_6 = (code *******)((int)local_50 + (int)param_6);\n                        do {\n                          while( true ) {\n                            unaff_s8 = (code *******)((int)unaff_s8 + -1);\n                            if ((int)unaff_s8 < 0) goto LAB_00055b70;\n                            pppppppcVar29 = (code *******)param_6[-1];\n                            if (pppppppcVar29 != (code *******)0x0) break;\n                            param_6 = param_6 + -1;\n                          }\n                          param_6 = param_6 + -1;\n                        } while (((uint)pppppppcVar29[0xd] & 0x8000000) == 0);\n                        pppppppcVar31 = (code *******)(*pcVar9)(&local_b4,pppppppcVar29,unaff_s8);\n                        pppppppcVar33 = pppppppcVar28;\n                      }\n                    }\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    (*(code *)PTR_free_00079c24)(param_4);\n                    local_150 = param_5;\n                    if (param_5 == (code *******)0x1) goto LAB_00055b04;\n                  }\n                }\n                else {\n                  local_150 = (code *******)0xc;\n                  pppppppcVar33 = pppppppcVar28;\n                }\n                goto LAB_000557e4;\n              }\n              if (pppppppcVar38[0x13] != (code ******)0x0) {\n                pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                pppppppcVar30 = unaff_s8;\n                local_54 = (code *******)FUN_00049440(&local_b4);\n                goto LAB_00055c6c;\n              }\nLAB_00055c08:\n              if ((((uint)param_1[7] & 0x8000000) == 0) && ((code *******)0x1 < pppppppcVar3)) {\n                cVar23 = *(code *)(pppppppcVar38 + 0x16);\n                goto LAB_00055c20;\n              }\nLAB_00055548:\n              if (pppppppcVar3 == (code *******)0x0) goto LAB_000557e4;\n              if (pppppppcVar3 < (code *******)0x2) {\n                *param_8 = (code ******)0x0;\n                param_8[1] = (code ******)local_58;\n                goto LAB_000555ac;\n              }\n              pppppppcVar29 = param_8 + 2;\n              do {\n                pppppppcVar29[1] = (code ******)0xffffffff;\n                *pppppppcVar29 = (code ******)0xffffffff;\n                pppppppcVar29 = pppppppcVar29 + 2;\n              } while (pppppppcVar29 != param_8 + (int)pppppppcVar3 * 2);\n              *param_8 = (code ******)0x0;\n              param_8[1] = (code ******)local_58;\n              if (((uint)param_1[7] & 0x8000000) != 0) {\nLAB_000555ac:\n                pppppppcVar33 = param_8;\n                do {\n                  pppppppcVar29 = (code *******)*pppppppcVar33;\n                  if (pppppppcVar29 != (code *******)0xffffffff) {\n                    if (local_68 != '\0') {\n                      pppppppcVar34 = local_94;\n                      if (pppppppcVar29 != local_98) {\n                        pppppppcVar34 = *(code ********)(local_a8 + (int)pppppppcVar29 * 4);\n                      }\n                      *pppppppcVar33 = (code ******)pppppppcVar34;\n                      pppppppcVar29 = local_94;\n                      if (local_98 != (code *******)pppppppcVar33[1]) {\n                        pppppppcVar29 = *(code ********)(local_a8 + (int)pppppppcVar33[1] * 4);\n                      }\n                      pppppppcVar33[1] = (code ******)pppppppcVar29;\n                    }\n                    *pppppppcVar33 = (code ******)((int)local_dc + (int)*pppppppcVar33);\n                    pppppppcVar29 = (code *******)((int)local_dc + (int)pppppppcVar33[1]);\n                    pppppppcVar33[1] = (code ******)pppppppcVar29;\n                  }\n                  pppppppcVar33 = pppppppcVar33 + 2;\n                } while (pppppppcVar33 != param_8 + (int)pppppppcVar3 * 2);\n                if (0 < local_118) {\n                  pppppppcVar33 = param_8 + (int)pppppppcVar3 * 2;\n                  do {\n                    *pppppppcVar33 = (code ******)0xffffffff;\n                    pppppppcVar33[1] = (code ******)0xffffffff;\n                    pppppppcVar33 = pppppppcVar33 + 2;\n                  } while (pppppppcVar33 != param_8 + (int)param_7 * 2);\n                }\n                pppppppcVar30 = local_dc;\n                pppppppcVar33 = param_8;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar38[0x21] != (code ******)0x0) {\n                  pppppppcVar30 = (code *******)((int)pppppppcVar3 + -1);\n                  pppppppcVar34 = (code *******)0x0;\n                  pppppppcVar3 = param_8;\n                  while( true ) {\n                    pppppppcVar29 = (code *******)((int)pppppppcVar34 * 4);\n                    if (pppppppcVar30 == pppppppcVar34) break;\n                    if (*(code ********)((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) !=\n                        pppppppcVar34) {\n                      pppppppcVar3[2] =\n                           param_8[(int)((int)*(code ********)\n                                               ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1)\n                                   * 2];\n                      pppppppcVar3[3] =\n                           param_8[((int)*(code ******)\n                                          ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1) * 2 +\n                                   1];\n                    }\n                    pppppppcVar34 = (code *******)((int)pppppppcVar34 + 1);\n                    pppppppcVar3 = pppppppcVar3 + 2;\n                  }\n                }\n                goto LAB_000557e4;\n              }\n              if ((char)*(code *)(pppppppcVar38 + 0x16) < '\0') {\n                local_168 = (uint)(0 < (int)pppppppcVar38[0x13]);\n              }\n              else {\n                local_168 = 0;\n              }\n              pppppppcVar29 = &local_b4;\n              pppppppcVar30 = pppppppcVar3;\n              pppppppcVar33 = param_8;\n              local_150 = (code *******)FUN_0004f4a0(param_1);\n              if (local_150 == (code *******)0x0) goto LAB_000555ac;\n            }\n          }\n          else if (local_90 < 0x3fffffff) {\n            local_50 = (code *******)(*(code *)PTR_malloc_00079b54)((local_90 + 1) * 4);\n            if (local_50 != (code *******)0x0) goto LAB_00055a40;\n            local_150 = (code *******)0xc;\n            param_6 = pppppppcVar36;\n          }\n          else {\n            local_150 = (code *******)0xc;\n            param_6 = pppppppcVar36;\n          }\n        }\n        else {\n          unaff_s5 = (code *******)((int)ppppppcVar35 * 8);\n          if (pppppppcVar36 < (code *******)0xccccccd) {\n            unaff_s4 = (code *******)(*(code *)PTR_malloc_00079b54)((int)ppppppcVar35 * 0x28);\n            local_40 = unaff_s4;\n            local_30 = (*(code *)PTR_malloc_00079b54)(unaff_s5);\n            if ((unaff_s4 != (code *******)0x0) && (local_30 != 0)) goto LAB_000559f0;\n          }\n          local_150 = (code *******)0xc;\n          param_6 = pppppppcVar36;\n        }\nLAB_000557e4:\n        (*(code *)PTR_free_00079c24)(local_50);\n        param_1 = pppppppcVar30;\n        if (pppppppcVar38[0x13] != (code ******)0x0) {\n          FUN_0004b7e8(&local_b4);\n          (*(code *)PTR_free_00079c24)(local_30);\n          (*(code *)PTR_free_00079c24)(local_40);\n          param_1 = pppppppcVar30;\n        }\n        FUN_0004b2bc(&local_b4);\n        pppppppcStack_1a0 = param_4;\n        pppppppcStack_19c = pppppppcVar31;\n      }\n    }\n  }" else (compound_statement "{\n    pppppppcVar29 = (code *******)pppppppcVar38[0xc];\n    if (pppppppcVar29 == (code *******)0x0) {\n      local_150 = (code *******)0x1;\n    }\n    else {\n      pppppppcVar3 = param_5;\n      if ((((pppppppcVar38[9][2] == (code *****)0x0) && (pppppppcVar38[10][2] == (code *****)0x0))\n          && ((pppppppcVar38[0xb][2] == (code *****)0x0 || (((uint)param_1[7] & 0x1000000) == 0))))\n         && ((pppppppcVar3 = param_4, param_4 != (code *******)0x0 &&\n             (param_4 = param_5, pppppppcVar3 = param_5, param_5 != (code *******)0x0)))) {\n        local_150 = (code *******)0x1;\n        pppppppcStack_1a0 = param_5;\n      }\n      else {\n        param_5 = pppppppcVar3;\n        pppppppcVar3 = (code *******)((int)param_7 - local_118);\n        if (pppppppcVar3 == (code *******)0x0) {\n          pppppppcVar34 = (code *******)(uint)(pppppppcVar38[0x13] != (code ******)0x0);\n        }\n        else {\n          pppppppcVar34 = (code *******)0x1;\n        }\n        ppppppcVar32 = param_1[5];\n        local_6c = (byte)((uint)((int)param_1[3] << 9) >> 0x1f);\n        local_64 = (code *******)pppppppcVar38[0x17];\n        pppppppcVar31 = (code *******)((int)pppppppcVar38[2] + 1);\n        if ((int)pppppppcVar38[2] + 1 < (int)local_64) {\n          pppppppcVar31 = local_64;\n        }\n        pppppppcVar30 = (code *******)(uint)((int)param_3 + 1 < (int)pppppppcVar31);\n        pppppppcVar33 = (code *******)0x1;\n        local_69 = local_6c;\n        if (ppppppcVar32 != (code ******)0x0) {\n          local_69 = 1;\n        }\n        local_6b = (byte)((uint)((int)pppppppcVar38[0x16] << 2) >> 0x1f);\n        local_6a = (byte)((uint)((int)pppppppcVar38[0x16] << 3) >> 0x1f);\n        pppppppcVar29 = (code *******)((int)param_3 + 1);\n        if (pppppppcVar30 == (code *******)0x0) {\n          pppppppcVar29 = pppppppcVar31;\n        }\n        local_b4 = param_2;\n        local_88 = param_3;\n        local_84 = param_3;\n        local_80 = param_3;\n        local_7c = param_3;\n        local_74 = ppppppcVar32;\n        local_150 = (code *******)FUN_00046d2c(&local_b4);\n        pppppppcVar31 = pppppppcVar34;\n        param_6 = param_6;\n        if (local_150 != (code *******)0x0) goto LAB_000557e4;\n        local_70 = pppppppcVar38 + 0x18;\n        local_66 = (byte)((uint)((int)pppppppcVar38[0x16] << 4) >> 0x1f);\n        pppppppcVar2 = (code *******)0x0;\n        local_98 = pppppppcVar2;\n        if ((local_69 == 0) && (local_b0 = param_2, (int)pppppppcVar38[0x17] < 2)) {\n          local_98 = param_3;\n        }\n        local_7c = param_6;\n        local_80 = param_6;\n        local_67 = (byte)((uint)((int)param_1[7] << 7) >> 0x1f);\n        ppppppcVar35 = pppppppcVar38[0x13];\n        pppppppcVar36 = (code *******)((int)ppppppcVar35 * 2);\n        local_5c = param_9;\n        local_58 = (code *******)0xffffffff;\n        local_94 = local_98;\n        if ((int)pppppppcVar36 < 1) {\nLAB_000559f0:\n          local_3c = 1;\n          local_44 = pppppppcVar36;\n          local_34 = pppppppcVar36;\n          if ((pppppppcVar3 < (code *******)0x2) && (((uint)pppppppcVar38[0x16] & 0x40000000) == 0))\n          {\n            local_50 = (code *******)0x0;\nLAB_00055a40:\n            local_78 = 6;\n            if (((uint)param_9 & 1) != 0) {\n              local_78 = 4;\n            }\n            pppppppcVar24 = (code *******)0x1;\n            pppppppcVar25 = param_4;\n            if ((int)param_5 < (int)param_4) {\n              pppppppcVar24 = (code *******)0xffffffff;\n              pppppppcVar25 = param_5;\n            }\n            pppppppcVar26 = param_5;\n            if ((int)param_5 <= (int)param_4) {\n              pppppppcVar26 = param_4;\n            }\n            ppppppcVar35 = pppppppcVar38[0x17];\n            uVar16 = 8;\n            if (local_148 != (code *******)0x0) {\n              if (ppppppcVar35 == (code ******)0x1) {\n                pppppppcVar28 = (code *******)0x4;\n              }\n              else {\n                pppppppcVar28 = pppppppcVar2;\n                if ((-1 < (int)param_1[3] << 9) && (ppppppcVar32 == (code ******)0x0)) {\n                  pppppppcVar28 = (code *******)0x4;\n                }\n              }\n              pppppppcVar29 = (code *******)0x0;\n              if ((int)param_4 <= (int)param_5) {\n                pppppppcVar29 = (code *******)0x2;\n              }\n              uVar16 = (uint)(ppppppcVar32 != (code ******)0x0) | (uint)pppppppcVar28 |\n                       (uint)pppppppcVar29;\n            }\n            local_dc = param_4;\n            if ((int)param_4 < (int)pppppppcVar25) {\n              local_150 = (code *******)0x1;\n              param_6 = pppppppcVar36;\n            }\n            else if ((int)pppppppcVar26 < (int)param_4) {\n              local_150 = (code *******)0x1;\n              param_4 = (code *******)(uint)((int)param_5 < (int)param_4);\n              param_6 = pppppppcVar36;\n            }\n            else {\n              pppppppcVar36 = (code *******)&local_dc;\n              if ((code *******)(uint)((int)param_5 < (int)param_4) != (code *******)0x0) {\n                pppppppcVar36 = (code *******)0x0;\n              }\n              pcVar4 = (code *)(PTR_DAT_000799a4 + -0x2b7c);\n              piVar5 = (int *)(PTR_s_nt0_000795b8 + (uVar16 - 4) * 4 + 0x6e38);\nLAB_00055b44:\n              if (uVar16 - 4 < 5) {\n                    /* WARNING: Could not emulate address calculation at 0x00054920 */\n                    /* WARNING: Treating indirect jump as call */\n                pppppppcVar29 = (code *******)(*(code *)(&_gp_1 + *piVar5))();\n                return pppppppcVar29;\n              }\n              param_5 = &local_b4;\n              pppppppcVar28 = pppppppcVar33;\n              while( true ) {\n                param_4 = local_dc;\n                pppppppcVar33 = (code *******)((int)local_dc - local_9c);\n                pppppppcVar30 = param_9;\n                pppppppcVar31 = pppppppcVar2;\n                param_6 = local_148;\n                unaff_s4 = param_3;\n                unaff_s5 = pppppppcVar24;\n                unaff_s7 = pppppppcVar26;\n                if (local_94 <= pppppppcVar33) {\n                  pppppppcVar29 = local_dc;\n                  local_150 = (code *******)(*pcVar4)(param_5);\n                  pppppppcVar33 = pppppppcVar28;\n                  if (local_150 != (code *******)0x0) goto LAB_000557e4;\n                  pppppppcVar33 = (code *******)((int)param_4 - local_9c);\n                }\n                if ((int)param_4 < (int)param_3) {\n                  uVar7 = (uint)(byte)*(code *)((int)pppppppcVar33 + (int)local_b0);\n                }\n                else {\n                  uVar7 = 0;\n                }\n                param_4 = (code *******)((int)param_4 + (int)pppppppcVar24);\n                if (*(code *)((int)local_148 + uVar7) != (code)0x0) break;\n                pppppppcVar33 = pppppppcVar28;\n                local_dc = param_4;\n                if ((int)param_4 < (int)pppppppcVar25) {\n                  local_150 = (code *******)0x1;\n                  goto LAB_000557e4;\n                }\n                if ((code *******)(uint)((int)pppppppcVar26 < (int)param_4) != (code *******)0x0) {\n                  local_150 = (code *******)0x1;\n                  param_4 = (code *******)(uint)((int)pppppppcVar26 < (int)param_4);\n                  goto LAB_000557e4;\n                }\n              }\n              while( true ) {\n                pppppppcVar29 = local_dc;\n                pppppppcVar30 = param_9;\n                pppppppcVar6 = (code *******)(*pcVar4)(&local_b4);\n                pppppppcVar14 = local_60;\n                pppppppcVar42 = local_8c;\n                pppppppcVar33 = pppppppcVar28;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar6 != (code *******)0x0) goto LAB_000557e4;\n                if (((ppppppcVar35 != (code ******)0x1) && (local_98 != (code *******)0x0)) &&\n                   (*local_ac == -1)) goto LAB_00055b1c;\n                local_3c = 0;\n                local_48 = 0;\n                local_4c = (code *******)0x0;\n                local_138 = local_8c;\n                local_d8 = (code *******)0x0;\n                unaff_s7 = (code *******)local_60[9];\n                pppppppcVar30 = local_5c;\n                param_4 = pppppppcVar14;\n                if (((uint)unaff_s7[0xd] & 0x1000000) == 0) break;\n                pppppppcVar29 = (code *******)((int)local_8c + -1);\n                pppppppcVar33 = (code *******)FUN_00049110(&local_b4);\n                if (((uint)pppppppcVar33 & 1) == 0) {\n                  if (pppppppcVar33 == (code *******)0x0) break;\n                  if (((uint)pppppppcVar33 & 6) == 6) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xc];\n                    goto LAB_00054d1c;\n                  }\n                  if (((uint)pppppppcVar33 & 2) != 0) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xb];\n                    goto LAB_00054d1c;\n                  }\n                  pppppppcVar28 = pppppppcVar33;\n                  if (((uint)pppppppcVar33 & 4) == 0) break;\n                  pppppppcVar30 = (code *******)unaff_s7[10];\n                  pppppppcVar29 = pppppppcVar14;\n                  unaff_s7 = (code *******)FUN_0004ae34(&local_d8);\n                  pppppppcVar28 = pppppppcVar33;\n                  if (unaff_s7 != (code *******)0x0) break;\n                  if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                }\n                else {\n                  unaff_s7 = (code *******)pppppppcVar14[10];\nLAB_00054d1c:\n                  pppppppcVar28 = (code *******)PTR_s_nt0_000795b8;\n                  if (unaff_s7 != (code *******)0x0) break;\n                }\n                pppppppcVar28 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                local_dc = (code *******)\n                           (*(code *)PTR___assert_fail_000799f8)\n                                     (PTR_s_nt0_000795b8 + 0x71a0,pppppppcVar29,0x435);\n                if (local_dc == pppppppcVar26) {\n                  if ((int)local_dc < (int)param_3) {\n                    uVar7 = (uint)(byte)*(code *)((int)local_dc + (int)param_2);\n                  }\n                  else {\n                    uVar7 = 0;\n                  }\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    uVar7 = (uint)*(byte *)((int)ppppppcVar32 + uVar7);\n                  }\n                  if (*(code *)((int)local_148 + uVar7) == (code)0x0) {\n                    local_150 = (code *******)0x1;\n                    pppppppcVar30 = param_9;\n                    pppppppcVar33 = pppppppcVar28;\n                    goto LAB_000557e4;\n                  }\n                }\n              }\n              pppppppcVar33 = pppppppcVar28;\n              bVar1 = pppppppcVar36 != (code *******)0x0;\n              if ((local_50 == (code *******)0x0) ||\n                 (local_50[(int)pppppppcVar42] = (code ******)unaff_s7,\n                 pppppppcVar14[0x13] == (code ******)0x0)) {\nLAB_00054d50:\n                if ((int)unaff_s7[0xd] << 4 < 0) {\n                  if ((((uint)unaff_s7[0xd] & 0x1000000) == 0) ||\n                     (pppppppcVar29 = unaff_s7, pppppppcVar30 = pppppppcVar42,\n                     iVar18 = FUN_00049440(&local_b4), iVar18 != 0)) {\n                    unaff_s8 = pppppppcVar42;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                  }\n                  else {\n                    pppppppcVar42 = (code *******)0xffffffff;\n                    pppppppcVar28 = (code *******)0x0;\n                  }\n                }\n                else {\n                  pppppppcVar42 = (code *******)0xffffffff;\n                  pppppppcVar28 = (code *******)0x0;\n                }\n                pcVar8 = (code *)(PTR_DAT_000799a4 + -0x7144);\n                pcVar9 = (code *)(PTR_DAT_000799a4 + -0x1980);\n                pcVar10 = (code *)(PTR_DAT_000799a4 + -0x2f9c);\n                unaff_s8 = pppppppcVar42;\n                local_144 = pppppppcVar36;\n                while( true ) {\n                  uVar44 = CONCAT44(local_98,local_84);\n                  unaff_s5 = (code *******)((int)local_8c + 1);\n                  pppppppcVar29 = local_8c;\n                  if ((int)local_7c <= (int)local_8c) break;\n                  if (((int)local_90 <= (int)unaff_s5) && ((int)local_90 < (int)local_84))\n                  goto LAB_00054e94;\n                  if ((int)local_98 <= (int)unaff_s5) {\n                    while ((int)((ulonglong)uVar44 >> 0x20) < (int)uVar44) {\nLAB_00054e94:\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 2);\n                      local_d8 = (code *******)(*pcVar8)(&local_b4);\n                      if (local_d8 == (code *******)0x0) break;\n                      pppppppcVar14 = param_4;\n                      if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                      pppppppcVar33 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                      pppppppcVar30 = (code *******)0x46c;\n                      pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                      uVar44 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0);\n                      pppppppcVar28 = pppppppcVar38;\n                    }\n                  }\n                  pppppppcVar42 = local_60;\n                  if ((int)unaff_s7[0xd] << 5 < 0) {\n                    pppppppcVar31 = pppppppcVar42;\n                    if (0 < (int)unaff_s7[2]) {\n                      pcVar11 = (code *)(PTR_DAT_000799a4 + -0x6fdc);\n                      pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6ef0);\n                      param_6 = (code *******)0x0;\n                      do {\n                        param_5 = (code *******)unaff_s7[3][(int)param_6];\n                        ppppppcVar39 = *pppppppcVar42;\n                        pppppcVar13 = ppppppcVar39[(int)param_5 * 2 + 1];\n                        if (((uint)pppppcVar13 & 0x800) != 0) {\n                          if (((uint)pppppcVar13 & 0xffc000) != 0) {\n                            pppppppcVar29 = local_8c;\n                            uVar19 = (*pcVar12)(&local_b4,local_8c,local_5c);\n                            uVar7 = (uint)((int)ppppppcVar39[(int)param_5 * 2 + 1] << 8) >> 0x16;\n                            if ((uVar7 & 4) == 0) {\n                              uVar27 = uVar19 & 1;\n                              if ((uVar7 & 8) != 0) goto joined_r0x00054f40;\n                            }\n                            else {\n                              uVar27 = uVar7 & 8;\n                              if ((uVar19 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                              if (uVar27 != 0) goto LAB_000550a4;\n                            }\n                            if ((((uVar7 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                               (((uVar7 & 0x80) != 0 &&\n                                (pppppppcVar33 = local_8c, (uVar19 & 8) == 0)))) goto LAB_000550a4;\n                          }\n                          pppppppcVar30 = &local_b4;\n                          pppppppcVar29 = param_5;\n                          pppppppcVar33 = local_8c;\n                          iVar18 = (*pcVar10)(pppppppcVar42);\n                          if (iVar18 != 0) {\n                            pppppppcVar14 = (code *******)((int)local_8c + iVar18);\n                            if (iVar18 <= local_3c) {\n                              iVar18 = local_3c;\n                            }\n                            pppppppcVar29 = pppppppcVar14;\n                            local_3c = iVar18;\n                            local_d4 = (code *******)(*pcVar11)(&local_b4);\n                            pppppppcVar15 = local_d4;\n                            if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                            pppppppcVar30 =\n                                 (code *******)\n                                 (pppppppcVar42[6] + (int)pppppppcVar42[3][(int)param_5] * 3);\n                            unaff_s4 = (code *******)((int)pppppppcVar14 * 4);\n                            param_5 = local_50 + (int)pppppppcVar14;\n                            if (*param_5 == (code ******)0x0) {\n                              local_d0 = (code *******)*pppppppcVar30;\n                              local_cc = (code *******)pppppppcVar30[1];\n                              local_c8 = (code *******)pppppppcVar30[2];\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *param_5 = ppppppcVar39;\n                            }\n                            else {\n                              pppppppcVar29 = (code *******)(*param_5)[10];\n                              local_d4 = (code *******)FUN_000484bc(&local_d0);\n                              pppppppcVar15 = local_d4;\n                              if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar15 = local_50 + (int)pppppppcVar14;\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *pppppppcVar15 = ppppppcVar39;\n                              (*(code *)PTR_free_00079c24)(local_c8);\n                            }\n                            unaff_s4 = local_50 + (int)pppppppcVar14;\n                            if ((*unaff_s4 == (code ******)0x0) &&\n                               (pppppppcVar15 = local_d4, local_d4 != (code *******)0x0))\n                            goto LAB_00055e44;\n                          }\n                        }\nLAB_000550a4:\n                        param_6 = (code *******)((int)param_6 + 1);\n                      } while ((int)param_6 < (int)unaff_s7[2]);\n                    }\n                    local_d8 = (code *******)0x0;\n                  }\n                  uVar7 = (uint)(byte)*(code *)((int)local_8c + (int)local_b0);\n                  local_8c = (code *******)((int)local_8c + 1);\n                  do {\n                    if (unaff_s7[0xb] != (code ******)0x0) {\n                      pppppppcVar30 = (code *******)unaff_s7[0xb][uVar7];\nLAB_000553a0:\n                      pppppppcVar14 = pppppppcVar30;\n                      if (local_50 != (code *******)0x0) goto LAB_000553ac;\n                      goto LAB_000553cc;\n                    }\n                    pppppppcVar31 = (code *******)unaff_s7[0xc];\n                    if (pppppppcVar31 != (code *******)0x0) {\n                      pppppppcVar29 = (code *******)((int)local_8c + -1);\n                      uVar19 = FUN_00049110(&local_b4);\n                      if ((uVar19 & 1) == 0) {\n                        pppppppcVar30 = (code *******)pppppppcVar31[uVar7];\n                      }\n                      else {\n                        pppppppcVar31 = pppppppcVar31 + uVar7 + 0x100;\n                        pppppppcVar30 = (code *******)*pppppppcVar31;\n                      }\n                      goto LAB_000553a0;\n                    }\n                    pppppppcVar29 = unaff_s7;\n                    pppppppcVar30 = local_5c;\n                    iVar18 = (*pcVar9)(local_60);\n                  } while (iVar18 != 0);\n                  local_d8 = (code *******)0xc;\n                  pppppppcVar15 = local_d8;\nLAB_00055e44:\n                  local_d8 = pppppppcVar15;\n                  param_4 = (code *******)0x0;\n                  if (local_50 == (code *******)0x0) {\n                    pppppppcVar14 = param_4;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    break;\n                  }\n                  pppppppcVar30 = (code *******)0x0;\nLAB_000553ac:\n                  pppppppcVar29 = &local_b4;\n                  pppppppcVar14 = (code *******)FUN_00053684(&local_d8);\nLAB_000553cc:\n                  param_4 = pppppppcVar14;\n                  if (pppppppcVar14 == (code *******)0x0) {\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    if ((local_50 == (code *******)0x0) ||\n                       ((pppppppcVar28 != (code *******)0x0 && (pppppppcVar34 == (code *******)0x0))\n                       )) break;\n                    param_6 = &local_b4;\n                    param_5 = (code *******)&local_d8;\n                    pppppppcVar31 = (code *******)(PTR_DAT_000799a4 + 0x3684);\n                    do {\n                      pppppppcVar15 = local_50 + (int)local_8c;\n                      pppppppcVar42 = local_8c;\n                      do {\n                        pppppppcVar42 = (code *******)((int)pppppppcVar42 + 1);\n                        pppppppcVar29 = local_4c;\n                        param_4 = pppppppcVar14;\n                        if ((int)local_4c < (int)pppppppcVar42) goto LAB_00055da8;\n                        local_8c = (code *******)((int)local_8c + 1);\n                        pppppppcVar15 = pppppppcVar15 + 1;\n                      } while (*pppppppcVar15 == (code ******)0x0);\n                      pppppppcVar30 = (code *******)0x0;\n                      pppppppcVar29 = param_6;\n                      param_4 = (code *******)(*(code *)pppppppcVar31)(param_5);\n                      if (local_d8 != (code *******)0x0) {\n                        if (param_4 == (code *******)0x0) goto LAB_00055da8;\n                        break;\n                      }\n                      pppppppcVar29 = local_4c;\n                    } while (param_4 == (code *******)0x0);\n                  }\n                  pppppppcVar15 = (code *******)((uint)unaff_s7 ^ (uint)param_4);\n                  pppppppcVar42 = unaff_s7;\n                  pppppppcVar14 = local_138;\n                  if ((bVar1) &&\n                     (pppppppcVar42 = pppppppcVar15, pppppppcVar14 = unaff_s5,\n                     pppppppcVar15 != (code *******)0x0)) {\n                    bVar1 = false;\n                    pppppppcVar14 = local_138;\n                  }\n                  local_138 = pppppppcVar14;\n                  unaff_s7 = param_4;\n                  if ((((uint)param_4[0xd] & 0x8000000) != 0) &&\n                     ((((uint)param_4[0xd] & 0x1000000) == 0 ||\n                      (pppppppcVar29 = param_4, pppppppcVar30 = local_8c,\n                      iVar18 = FUN_00049440(&local_b4), iVar18 != 0)))) {\n                    unaff_s7 = pppppppcVar42;\n                    unaff_s8 = local_8c;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                    local_144 = (code *******)0x0;\n                    unaff_s7 = param_4;\n                  }\n                }\nLAB_00055da8:\n                if (local_144 != (code *******)0x0) {\n                  *local_144 = (code ******)((int)local_138 + (int)*local_144);\n                }\n              }\n              else {\n                param_4 = unaff_s7 + 1;\n                pppppppcVar30 = (code *******)0x0;\n                pppppppcVar29 = param_4;\n                local_d8 = (code *******)FUN_00047a44(&local_b4);\n                unaff_s8 = local_d8;\n                if (local_d8 == (code *******)0x0) {\n                  if (((uint)unaff_s7[0xd] & 0x2000000) == 0) {\n                    pppppppcVar29 = param_4;\n                    bVar1 = false;\n                  }\n                  else {\n                    pppppppcVar29 = param_4;\n                    local_d8 = (code *******)FUN_00052d84(&local_b4);\n                    unaff_s8 = local_d8;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055dbc;\n                    bVar1 = false;\n                  }\n                  goto LAB_00054d50;\n                }\n              }\nLAB_00055dbc:\n              if (unaff_s8 == (code *******)0xffffffff) {\nLAB_00055b04:\n                FUN_0004b7e8(&local_b4);\nLAB_00055b1c:\n                local_dc = (code *******)((int)pppppppcVar24 + (int)local_dc);\n                if ((int)pppppppcVar25 <= (int)local_dc) goto code_r0x00055b38;\n                local_150 = (code *******)0x1;\n                goto LAB_000557e4;\n              }\n              if (unaff_s8 == (code *******)&SUB_fffffffe) {\n                local_150 = (code *******)0xc;\n                goto LAB_000557e4;\n              }\n              local_58 = unaff_s8;\n              if (((uint)param_1[7] & 0x8000000) == 0) {\n                if (pppppppcVar3 < (code *******)0x2) {\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055c08;\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                else {\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                if (pppppppcVar3 < (code *******)0x2) {\nLAB_00055c6c:\n                  pppppppcVar28 = pppppppcVar33;\n                  unaff_s4 = local_60;\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055548;\n                }\n                else {\n                  cVar23 = *(code *)(pppppppcVar38 + 0x16);\nLAB_00055c20:\n                  pppppppcVar28 = pppppppcVar33;\n                  if (-1 < (char)cVar23) goto LAB_00055c6c;\n                }\n                pppppppcVar31 = local_54;\n                pppppppcVar42 = local_60;\n                unaff_s4 = pppppppcVar42;\n                if (unaff_s8 < (code *******)0x3fffffff) {\n                  param_4 = (code *******)((int)((int)unaff_s8 + 1) * 4);\n                  unaff_s5 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                  if (unaff_s5 == (code *******)0x0) {\nLAB_00055b9c:\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    local_150 = (code *******)0xc;\n                    pppppppcVar33 = pppppppcVar28;\n                  }\n                  else {\n                    pppppppcVar29 = (code *******)&local_d0;\n                    if (pppppppcVar42[0x13] == (code ******)0x0) {\n                      local_cc = (code *******)0x0;\n                      local_c8 = pppppppcVar31;\n                      local_c0 = 0;\n                      local_bc = 0;\n                      local_b8 = 0;\n                      local_d0 = unaff_s5;\n                      local_c4 = unaff_s8;\n                      param_5 = (code *******)FUN_0005421c(&local_b4);\n                      (*(code *)PTR_free_00079c24)(local_b8);\n                      if (param_5 == (code *******)0x0) {\n                        param_4 = (code *******)*unaff_s5;\n                        if (param_4 == (code *******)0x0) {\nLAB_00055b70:\n                          (*(code *)PTR_free_00079c24)(unaff_s5);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          pppppppcVar33 = pppppppcVar28;\n                          goto LAB_00055b04;\n                        }\nLAB_00055528:\n                        (*(code *)PTR_free_00079c24)(local_50);\n                        pppppppcVar33 = pppppppcVar28;\n                        unaff_s4 = pppppppcVar42;\n                        local_58 = unaff_s8;\n                        local_54 = pppppppcVar31;\n                        local_50 = unaff_s5;\n                        goto LAB_00055548;\n                      }\nLAB_00055acc:\n                      param_4 = (code *******)0x0;\n                      pppppppcVar33 = pppppppcVar28;\n                      unaff_s4 = pppppppcVar42;\n                    }\n                    else {\n                      param_4 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                      if (param_4 == (code *******)0x0) goto LAB_00055b9c;\n                      unaff_s7 = (code *******)&local_d0;\n                      pcVar8 = (code *)(PTR_DAT_000799a4 + 0x421c);\n                      pcVar9 = (code *)(PTR_DAT_000799a4 + -0x6bc0);\n                      pppppppcVar33 = pppppppcVar28;\n                      while( true ) {\n                        pppppppcVar28 = (code *******)((int)unaff_s8 + 1);\n                        param_6 = (code *******)((int)pppppppcVar28 * 4);\n                        pppppppcVar30 = param_6;\n                        (*(code *)PTR_memset_00079b00)(param_4,0);\n                        local_c0 = 0;\n                        local_bc = 0;\n                        local_b8 = 0;\n                        pppppppcVar29 = unaff_s7;\n                        local_d0 = unaff_s5;\n                        local_cc = param_4;\n                        local_c8 = pppppppcVar31;\n                        local_c4 = unaff_s8;\n                        param_5 = (code *******)(*pcVar8)(&local_b4);\n                        (*(code *)PTR_free_00079c24)(local_b8);\n                        unaff_s4 = pppppppcVar28;\n                        if (param_5 != (code *******)0x0) break;\n                        if ((*unaff_s5 != (code ******)0x0) ||\n                           (param_6 = param_6 + -1, *param_4 != (code ******)0x0)) {\n                          pppppppcVar29 = unaff_s5;\n                          pppppppcVar30 = param_4;\n                          param_5 = (code *******)FUN_000520d0(pppppppcVar42);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          if (param_5 != (code *******)0x0) goto LAB_00055acc;\n                          goto LAB_00055528;\n                        }\n                        param_6 = (code *******)((int)local_50 + (int)param_6);\n                        do {\n                          while( true ) {\n                            unaff_s8 = (code *******)((int)unaff_s8 + -1);\n                            if ((int)unaff_s8 < 0) goto LAB_00055b70;\n                            pppppppcVar29 = (code *******)param_6[-1];\n                            if (pppppppcVar29 != (code *******)0x0) break;\n                            param_6 = param_6 + -1;\n                          }\n                          param_6 = param_6 + -1;\n                        } while (((uint)pppppppcVar29[0xd] & 0x8000000) == 0);\n                        pppppppcVar31 = (code *******)(*pcVar9)(&local_b4,pppppppcVar29,unaff_s8);\n                        pppppppcVar33 = pppppppcVar28;\n                      }\n                    }\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    (*(code *)PTR_free_00079c24)(param_4);\n                    local_150 = param_5;\n                    if (param_5 == (code *******)0x1) goto LAB_00055b04;\n                  }\n                }\n                else {\n                  local_150 = (code *******)0xc;\n                  pppppppcVar33 = pppppppcVar28;\n                }\n                goto LAB_000557e4;\n              }\n              if (pppppppcVar38[0x13] != (code ******)0x0) {\n                pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                pppppppcVar30 = unaff_s8;\n                local_54 = (code *******)FUN_00049440(&local_b4);\n                goto LAB_00055c6c;\n              }\nLAB_00055c08:\n              if ((((uint)param_1[7] & 0x8000000) == 0) && ((code *******)0x1 < pppppppcVar3)) {\n                cVar23 = *(code *)(pppppppcVar38 + 0x16);\n                goto LAB_00055c20;\n              }\nLAB_00055548:\n              if (pppppppcVar3 == (code *******)0x0) goto LAB_000557e4;\n              if (pppppppcVar3 < (code *******)0x2) {\n                *param_8 = (code ******)0x0;\n                param_8[1] = (code ******)local_58;\n                goto LAB_000555ac;\n              }\n              pppppppcVar29 = param_8 + 2;\n              do {\n                pppppppcVar29[1] = (code ******)0xffffffff;\n                *pppppppcVar29 = (code ******)0xffffffff;\n                pppppppcVar29 = pppppppcVar29 + 2;\n              } while (pppppppcVar29 != param_8 + (int)pppppppcVar3 * 2);\n              *param_8 = (code ******)0x0;\n              param_8[1] = (code ******)local_58;\n              if (((uint)param_1[7] & 0x8000000) != 0) {\nLAB_000555ac:\n                pppppppcVar33 = param_8;\n                do {\n                  pppppppcVar29 = (code *******)*pppppppcVar33;\n                  if (pppppppcVar29 != (code *******)0xffffffff) {\n                    if (local_68 != '\0') {\n                      pppppppcVar34 = local_94;\n                      if (pppppppcVar29 != local_98) {\n                        pppppppcVar34 = *(code ********)(local_a8 + (int)pppppppcVar29 * 4);\n                      }\n                      *pppppppcVar33 = (code ******)pppppppcVar34;\n                      pppppppcVar29 = local_94;\n                      if (local_98 != (code *******)pppppppcVar33[1]) {\n                        pppppppcVar29 = *(code ********)(local_a8 + (int)pppppppcVar33[1] * 4);\n                      }\n                      pppppppcVar33[1] = (code ******)pppppppcVar29;\n                    }\n                    *pppppppcVar33 = (code ******)((int)local_dc + (int)*pppppppcVar33);\n                    pppppppcVar29 = (code *******)((int)local_dc + (int)pppppppcVar33[1]);\n                    pppppppcVar33[1] = (code ******)pppppppcVar29;\n                  }\n                  pppppppcVar33 = pppppppcVar33 + 2;\n                } while (pppppppcVar33 != param_8 + (int)pppppppcVar3 * 2);\n                if (0 < local_118) {\n                  pppppppcVar33 = param_8 + (int)pppppppcVar3 * 2;\n                  do {\n                    *pppppppcVar33 = (code ******)0xffffffff;\n                    pppppppcVar33[1] = (code ******)0xffffffff;\n                    pppppppcVar33 = pppppppcVar33 + 2;\n                  } while (pppppppcVar33 != param_8 + (int)param_7 * 2);\n                }\n                pppppppcVar30 = local_dc;\n                pppppppcVar33 = param_8;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar38[0x21] != (code ******)0x0) {\n                  pppppppcVar30 = (code *******)((int)pppppppcVar3 + -1);\n                  pppppppcVar34 = (code *******)0x0;\n                  pppppppcVar3 = param_8;\n                  while( true ) {\n                    pppppppcVar29 = (code *******)((int)pppppppcVar34 * 4);\n                    if (pppppppcVar30 == pppppppcVar34) break;\n                    if (*(code ********)((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) !=\n                        pppppppcVar34) {\n                      pppppppcVar3[2] =\n                           param_8[(int)((int)*(code ********)\n                                               ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1)\n                                   * 2];\n                      pppppppcVar3[3] =\n                           param_8[((int)*(code ******)\n                                          ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1) * 2 +\n                                   1];\n                    }\n                    pppppppcVar34 = (code *******)((int)pppppppcVar34 + 1);\n                    pppppppcVar3 = pppppppcVar3 + 2;\n                  }\n                }\n                goto LAB_000557e4;\n              }\n              if ((char)*(code *)(pppppppcVar38 + 0x16) < '\0') {\n                local_168 = (uint)(0 < (int)pppppppcVar38[0x13]);\n              }\n              else {\n                local_168 = 0;\n              }\n              pppppppcVar29 = &local_b4;\n              pppppppcVar30 = pppppppcVar3;\n              pppppppcVar33 = param_8;\n              local_150 = (code *******)FUN_0004f4a0(param_1);\n              if (local_150 == (code *******)0x0) goto LAB_000555ac;\n            }\n          }\n          else if (local_90 < 0x3fffffff) {\n            local_50 = (code *******)(*(code *)PTR_malloc_00079b54)((local_90 + 1) * 4);\n            if (local_50 != (code *******)0x0) goto LAB_00055a40;\n            local_150 = (code *******)0xc;\n            param_6 = pppppppcVar36;\n          }\n          else {\n            local_150 = (code *******)0xc;\n            param_6 = pppppppcVar36;\n          }\n        }\n        else {\n          unaff_s5 = (code *******)((int)ppppppcVar35 * 8);\n          if (pppppppcVar36 < (code *******)0xccccccd) {\n            unaff_s4 = (code *******)(*(code *)PTR_malloc_00079b54)((int)ppppppcVar35 * 0x28);\n            local_40 = unaff_s4;\n            local_30 = (*(code *)PTR_malloc_00079b54)(unaff_s5);\n            if ((unaff_s4 != (code *******)0x0) && (local_30 != 0)) goto LAB_000559f0;\n          }\n          local_150 = (code *******)0xc;\n          param_6 = pppppppcVar36;\n        }\nLAB_000557e4:\n        (*(code *)PTR_free_00079c24)(local_50);\n        param_1 = pppppppcVar30;\n        if (pppppppcVar38[0x13] != (code ******)0x0) {\n          FUN_0004b7e8(&local_b4);\n          (*(code *)PTR_free_00079c24)(local_30);\n          (*(code *)PTR_free_00079c24)(local_40);\n          param_1 = pppppppcVar30;\n        }\n        FUN_0004b2bc(&local_b4);\n        pppppppcStack_1a0 = param_4;\n        pppppppcStack_19c = pppppppcVar31;\n      }\n    }\n  }" { (expression_statement "pppppppcVar29 = (code *******)pppppppcVar38[0xc];" (assignment_expression "pppppppcVar29 = (code *******)pppppppcVar38[0xc]" identifier = (cast_expression "(code *******)pppppppcVar38[0xc]" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (subscript_expression "pppppppcVar38[0xc]" identifier [ number_literal ]))) ;) (if_statement "if (pppppppcVar29 == (code *******)0x0) {\n      local_150 = (code *******)0x1;\n    }\n    else {\n      pppppppcVar3 = param_5;\n      if ((((pppppppcVar38[9][2] == (code *****)0x0) && (pppppppcVar38[10][2] == (code *****)0x0))\n          && ((pppppppcVar38[0xb][2] == (code *****)0x0 || (((uint)param_1[7] & 0x1000000) == 0))))\n         && ((pppppppcVar3 = param_4, param_4 != (code *******)0x0 &&\n             (param_4 = param_5, pppppppcVar3 = param_5, param_5 != (code *******)0x0)))) {\n        local_150 = (code *******)0x1;\n        pppppppcStack_1a0 = param_5;\n      }\n      else {\n        param_5 = pppppppcVar3;\n        pppppppcVar3 = (code *******)((int)param_7 - local_118);\n        if (pppppppcVar3 == (code *******)0x0) {\n          pppppppcVar34 = (code *******)(uint)(pppppppcVar38[0x13] != (code ******)0x0);\n        }\n        else {\n          pppppppcVar34 = (code *******)0x1;\n        }\n        ppppppcVar32 = param_1[5];\n        local_6c = (byte)((uint)((int)param_1[3] << 9) >> 0x1f);\n        local_64 = (code *******)pppppppcVar38[0x17];\n        pppppppcVar31 = (code *******)((int)pppppppcVar38[2] + 1);\n        if ((int)pppppppcVar38[2] + 1 < (int)local_64) {\n          pppppppcVar31 = local_64;\n        }\n        pppppppcVar30 = (code *******)(uint)((int)param_3 + 1 < (int)pppppppcVar31);\n        pppppppcVar33 = (code *******)0x1;\n        local_69 = local_6c;\n        if (ppppppcVar32 != (code ******)0x0) {\n          local_69 = 1;\n        }\n        local_6b = (byte)((uint)((int)pppppppcVar38[0x16] << 2) >> 0x1f);\n        local_6a = (byte)((uint)((int)pppppppcVar38[0x16] << 3) >> 0x1f);\n        pppppppcVar29 = (code *******)((int)param_3 + 1);\n        if (pppppppcVar30 == (code *******)0x0) {\n          pppppppcVar29 = pppppppcVar31;\n        }\n        local_b4 = param_2;\n        local_88 = param_3;\n        local_84 = param_3;\n        local_80 = param_3;\n        local_7c = param_3;\n        local_74 = ppppppcVar32;\n        local_150 = (code *******)FUN_00046d2c(&local_b4);\n        pppppppcVar31 = pppppppcVar34;\n        param_6 = param_6;\n        if (local_150 != (code *******)0x0) goto LAB_000557e4;\n        local_70 = pppppppcVar38 + 0x18;\n        local_66 = (byte)((uint)((int)pppppppcVar38[0x16] << 4) >> 0x1f);\n        pppppppcVar2 = (code *******)0x0;\n        local_98 = pppppppcVar2;\n        if ((local_69 == 0) && (local_b0 = param_2, (int)pppppppcVar38[0x17] < 2)) {\n          local_98 = param_3;\n        }\n        local_7c = param_6;\n        local_80 = param_6;\n        local_67 = (byte)((uint)((int)param_1[7] << 7) >> 0x1f);\n        ppppppcVar35 = pppppppcVar38[0x13];\n        pppppppcVar36 = (code *******)((int)ppppppcVar35 * 2);\n        local_5c = param_9;\n        local_58 = (code *******)0xffffffff;\n        local_94 = local_98;\n        if ((int)pppppppcVar36 < 1) {\nLAB_000559f0:\n          local_3c = 1;\n          local_44 = pppppppcVar36;\n          local_34 = pppppppcVar36;\n          if ((pppppppcVar3 < (code *******)0x2) && (((uint)pppppppcVar38[0x16] & 0x40000000) == 0))\n          {\n            local_50 = (code *******)0x0;\nLAB_00055a40:\n            local_78 = 6;\n            if (((uint)param_9 & 1) != 0) {\n              local_78 = 4;\n            }\n            pppppppcVar24 = (code *******)0x1;\n            pppppppcVar25 = param_4;\n            if ((int)param_5 < (int)param_4) {\n              pppppppcVar24 = (code *******)0xffffffff;\n              pppppppcVar25 = param_5;\n            }\n            pppppppcVar26 = param_5;\n            if ((int)param_5 <= (int)param_4) {\n              pppppppcVar26 = param_4;\n            }\n            ppppppcVar35 = pppppppcVar38[0x17];\n            uVar16 = 8;\n            if (local_148 != (code *******)0x0) {\n              if (ppppppcVar35 == (code ******)0x1) {\n                pppppppcVar28 = (code *******)0x4;\n              }\n              else {\n                pppppppcVar28 = pppppppcVar2;\n                if ((-1 < (int)param_1[3] << 9) && (ppppppcVar32 == (code ******)0x0)) {\n                  pppppppcVar28 = (code *******)0x4;\n                }\n              }\n              pppppppcVar29 = (code *******)0x0;\n              if ((int)param_4 <= (int)param_5) {\n                pppppppcVar29 = (code *******)0x2;\n              }\n              uVar16 = (uint)(ppppppcVar32 != (code ******)0x0) | (uint)pppppppcVar28 |\n                       (uint)pppppppcVar29;\n            }\n            local_dc = param_4;\n            if ((int)param_4 < (int)pppppppcVar25) {\n              local_150 = (code *******)0x1;\n              param_6 = pppppppcVar36;\n            }\n            else if ((int)pppppppcVar26 < (int)param_4) {\n              local_150 = (code *******)0x1;\n              param_4 = (code *******)(uint)((int)param_5 < (int)param_4);\n              param_6 = pppppppcVar36;\n            }\n            else {\n              pppppppcVar36 = (code *******)&local_dc;\n              if ((code *******)(uint)((int)param_5 < (int)param_4) != (code *******)0x0) {\n                pppppppcVar36 = (code *******)0x0;\n              }\n              pcVar4 = (code *)(PTR_DAT_000799a4 + -0x2b7c);\n              piVar5 = (int *)(PTR_s_nt0_000795b8 + (uVar16 - 4) * 4 + 0x6e38);\nLAB_00055b44:\n              if (uVar16 - 4 < 5) {\n                    /* WARNING: Could not emulate address calculation at 0x00054920 */\n                    /* WARNING: Treating indirect jump as call */\n                pppppppcVar29 = (code *******)(*(code *)(&_gp_1 + *piVar5))();\n                return pppppppcVar29;\n              }\n              param_5 = &local_b4;\n              pppppppcVar28 = pppppppcVar33;\n              while( true ) {\n                param_4 = local_dc;\n                pppppppcVar33 = (code *******)((int)local_dc - local_9c);\n                pppppppcVar30 = param_9;\n                pppppppcVar31 = pppppppcVar2;\n                param_6 = local_148;\n                unaff_s4 = param_3;\n                unaff_s5 = pppppppcVar24;\n                unaff_s7 = pppppppcVar26;\n                if (local_94 <= pppppppcVar33) {\n                  pppppppcVar29 = local_dc;\n                  local_150 = (code *******)(*pcVar4)(param_5);\n                  pppppppcVar33 = pppppppcVar28;\n                  if (local_150 != (code *******)0x0) goto LAB_000557e4;\n                  pppppppcVar33 = (code *******)((int)param_4 - local_9c);\n                }\n                if ((int)param_4 < (int)param_3) {\n                  uVar7 = (uint)(byte)*(code *)((int)pppppppcVar33 + (int)local_b0);\n                }\n                else {\n                  uVar7 = 0;\n                }\n                param_4 = (code *******)((int)param_4 + (int)pppppppcVar24);\n                if (*(code *)((int)local_148 + uVar7) != (code)0x0) break;\n                pppppppcVar33 = pppppppcVar28;\n                local_dc = param_4;\n                if ((int)param_4 < (int)pppppppcVar25) {\n                  local_150 = (code *******)0x1;\n                  goto LAB_000557e4;\n                }\n                if ((code *******)(uint)((int)pppppppcVar26 < (int)param_4) != (code *******)0x0) {\n                  local_150 = (code *******)0x1;\n                  param_4 = (code *******)(uint)((int)pppppppcVar26 < (int)param_4);\n                  goto LAB_000557e4;\n                }\n              }\n              while( true ) {\n                pppppppcVar29 = local_dc;\n                pppppppcVar30 = param_9;\n                pppppppcVar6 = (code *******)(*pcVar4)(&local_b4);\n                pppppppcVar14 = local_60;\n                pppppppcVar42 = local_8c;\n                pppppppcVar33 = pppppppcVar28;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar6 != (code *******)0x0) goto LAB_000557e4;\n                if (((ppppppcVar35 != (code ******)0x1) && (local_98 != (code *******)0x0)) &&\n                   (*local_ac == -1)) goto LAB_00055b1c;\n                local_3c = 0;\n                local_48 = 0;\n                local_4c = (code *******)0x0;\n                local_138 = local_8c;\n                local_d8 = (code *******)0x0;\n                unaff_s7 = (code *******)local_60[9];\n                pppppppcVar30 = local_5c;\n                param_4 = pppppppcVar14;\n                if (((uint)unaff_s7[0xd] & 0x1000000) == 0) break;\n                pppppppcVar29 = (code *******)((int)local_8c + -1);\n                pppppppcVar33 = (code *******)FUN_00049110(&local_b4);\n                if (((uint)pppppppcVar33 & 1) == 0) {\n                  if (pppppppcVar33 == (code *******)0x0) break;\n                  if (((uint)pppppppcVar33 & 6) == 6) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xc];\n                    goto LAB_00054d1c;\n                  }\n                  if (((uint)pppppppcVar33 & 2) != 0) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xb];\n                    goto LAB_00054d1c;\n                  }\n                  pppppppcVar28 = pppppppcVar33;\n                  if (((uint)pppppppcVar33 & 4) == 0) break;\n                  pppppppcVar30 = (code *******)unaff_s7[10];\n                  pppppppcVar29 = pppppppcVar14;\n                  unaff_s7 = (code *******)FUN_0004ae34(&local_d8);\n                  pppppppcVar28 = pppppppcVar33;\n                  if (unaff_s7 != (code *******)0x0) break;\n                  if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                }\n                else {\n                  unaff_s7 = (code *******)pppppppcVar14[10];\nLAB_00054d1c:\n                  pppppppcVar28 = (code *******)PTR_s_nt0_000795b8;\n                  if (unaff_s7 != (code *******)0x0) break;\n                }\n                pppppppcVar28 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                local_dc = (code *******)\n                           (*(code *)PTR___assert_fail_000799f8)\n                                     (PTR_s_nt0_000795b8 + 0x71a0,pppppppcVar29,0x435);\n                if (local_dc == pppppppcVar26) {\n                  if ((int)local_dc < (int)param_3) {\n                    uVar7 = (uint)(byte)*(code *)((int)local_dc + (int)param_2);\n                  }\n                  else {\n                    uVar7 = 0;\n                  }\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    uVar7 = (uint)*(byte *)((int)ppppppcVar32 + uVar7);\n                  }\n                  if (*(code *)((int)local_148 + uVar7) == (code)0x0) {\n                    local_150 = (code *******)0x1;\n                    pppppppcVar30 = param_9;\n                    pppppppcVar33 = pppppppcVar28;\n                    goto LAB_000557e4;\n                  }\n                }\n              }\n              pppppppcVar33 = pppppppcVar28;\n              bVar1 = pppppppcVar36 != (code *******)0x0;\n              if ((local_50 == (code *******)0x0) ||\n                 (local_50[(int)pppppppcVar42] = (code ******)unaff_s7,\n                 pppppppcVar14[0x13] == (code ******)0x0)) {\nLAB_00054d50:\n                if ((int)unaff_s7[0xd] << 4 < 0) {\n                  if ((((uint)unaff_s7[0xd] & 0x1000000) == 0) ||\n                     (pppppppcVar29 = unaff_s7, pppppppcVar30 = pppppppcVar42,\n                     iVar18 = FUN_00049440(&local_b4), iVar18 != 0)) {\n                    unaff_s8 = pppppppcVar42;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                  }\n                  else {\n                    pppppppcVar42 = (code *******)0xffffffff;\n                    pppppppcVar28 = (code *******)0x0;\n                  }\n                }\n                else {\n                  pppppppcVar42 = (code *******)0xffffffff;\n                  pppppppcVar28 = (code *******)0x0;\n                }\n                pcVar8 = (code *)(PTR_DAT_000799a4 + -0x7144);\n                pcVar9 = (code *)(PTR_DAT_000799a4 + -0x1980);\n                pcVar10 = (code *)(PTR_DAT_000799a4 + -0x2f9c);\n                unaff_s8 = pppppppcVar42;\n                local_144 = pppppppcVar36;\n                while( true ) {\n                  uVar44 = CONCAT44(local_98,local_84);\n                  unaff_s5 = (code *******)((int)local_8c + 1);\n                  pppppppcVar29 = local_8c;\n                  if ((int)local_7c <= (int)local_8c) break;\n                  if (((int)local_90 <= (int)unaff_s5) && ((int)local_90 < (int)local_84))\n                  goto LAB_00054e94;\n                  if ((int)local_98 <= (int)unaff_s5) {\n                    while ((int)((ulonglong)uVar44 >> 0x20) < (int)uVar44) {\nLAB_00054e94:\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 2);\n                      local_d8 = (code *******)(*pcVar8)(&local_b4);\n                      if (local_d8 == (code *******)0x0) break;\n                      pppppppcVar14 = param_4;\n                      if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                      pppppppcVar33 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                      pppppppcVar30 = (code *******)0x46c;\n                      pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                      uVar44 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0);\n                      pppppppcVar28 = pppppppcVar38;\n                    }\n                  }\n                  pppppppcVar42 = local_60;\n                  if ((int)unaff_s7[0xd] << 5 < 0) {\n                    pppppppcVar31 = pppppppcVar42;\n                    if (0 < (int)unaff_s7[2]) {\n                      pcVar11 = (code *)(PTR_DAT_000799a4 + -0x6fdc);\n                      pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6ef0);\n                      param_6 = (code *******)0x0;\n                      do {\n                        param_5 = (code *******)unaff_s7[3][(int)param_6];\n                        ppppppcVar39 = *pppppppcVar42;\n                        pppppcVar13 = ppppppcVar39[(int)param_5 * 2 + 1];\n                        if (((uint)pppppcVar13 & 0x800) != 0) {\n                          if (((uint)pppppcVar13 & 0xffc000) != 0) {\n                            pppppppcVar29 = local_8c;\n                            uVar19 = (*pcVar12)(&local_b4,local_8c,local_5c);\n                            uVar7 = (uint)((int)ppppppcVar39[(int)param_5 * 2 + 1] << 8) >> 0x16;\n                            if ((uVar7 & 4) == 0) {\n                              uVar27 = uVar19 & 1;\n                              if ((uVar7 & 8) != 0) goto joined_r0x00054f40;\n                            }\n                            else {\n                              uVar27 = uVar7 & 8;\n                              if ((uVar19 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                              if (uVar27 != 0) goto LAB_000550a4;\n                            }\n                            if ((((uVar7 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                               (((uVar7 & 0x80) != 0 &&\n                                (pppppppcVar33 = local_8c, (uVar19 & 8) == 0)))) goto LAB_000550a4;\n                          }\n                          pppppppcVar30 = &local_b4;\n                          pppppppcVar29 = param_5;\n                          pppppppcVar33 = local_8c;\n                          iVar18 = (*pcVar10)(pppppppcVar42);\n                          if (iVar18 != 0) {\n                            pppppppcVar14 = (code *******)((int)local_8c + iVar18);\n                            if (iVar18 <= local_3c) {\n                              iVar18 = local_3c;\n                            }\n                            pppppppcVar29 = pppppppcVar14;\n                            local_3c = iVar18;\n                            local_d4 = (code *******)(*pcVar11)(&local_b4);\n                            pppppppcVar15 = local_d4;\n                            if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                            pppppppcVar30 =\n                                 (code *******)\n                                 (pppppppcVar42[6] + (int)pppppppcVar42[3][(int)param_5] * 3);\n                            unaff_s4 = (code *******)((int)pppppppcVar14 * 4);\n                            param_5 = local_50 + (int)pppppppcVar14;\n                            if (*param_5 == (code ******)0x0) {\n                              local_d0 = (code *******)*pppppppcVar30;\n                              local_cc = (code *******)pppppppcVar30[1];\n                              local_c8 = (code *******)pppppppcVar30[2];\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *param_5 = ppppppcVar39;\n                            }\n                            else {\n                              pppppppcVar29 = (code *******)(*param_5)[10];\n                              local_d4 = (code *******)FUN_000484bc(&local_d0);\n                              pppppppcVar15 = local_d4;\n                              if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar15 = local_50 + (int)pppppppcVar14;\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *pppppppcVar15 = ppppppcVar39;\n                              (*(code *)PTR_free_00079c24)(local_c8);\n                            }\n                            unaff_s4 = local_50 + (int)pppppppcVar14;\n                            if ((*unaff_s4 == (code ******)0x0) &&\n                               (pppppppcVar15 = local_d4, local_d4 != (code *******)0x0))\n                            goto LAB_00055e44;\n                          }\n                        }\nLAB_000550a4:\n                        param_6 = (code *******)((int)param_6 + 1);\n                      } while ((int)param_6 < (int)unaff_s7[2]);\n                    }\n                    local_d8 = (code *******)0x0;\n                  }\n                  uVar7 = (uint)(byte)*(code *)((int)local_8c + (int)local_b0);\n                  local_8c = (code *******)((int)local_8c + 1);\n                  do {\n                    if (unaff_s7[0xb] != (code ******)0x0) {\n                      pppppppcVar30 = (code *******)unaff_s7[0xb][uVar7];\nLAB_000553a0:\n                      pppppppcVar14 = pppppppcVar30;\n                      if (local_50 != (code *******)0x0) goto LAB_000553ac;\n                      goto LAB_000553cc;\n                    }\n                    pppppppcVar31 = (code *******)unaff_s7[0xc];\n                    if (pppppppcVar31 != (code *******)0x0) {\n                      pppppppcVar29 = (code *******)((int)local_8c + -1);\n                      uVar19 = FUN_00049110(&local_b4);\n                      if ((uVar19 & 1) == 0) {\n                        pppppppcVar30 = (code *******)pppppppcVar31[uVar7];\n                      }\n                      else {\n                        pppppppcVar31 = pppppppcVar31 + uVar7 + 0x100;\n                        pppppppcVar30 = (code *******)*pppppppcVar31;\n                      }\n                      goto LAB_000553a0;\n                    }\n                    pppppppcVar29 = unaff_s7;\n                    pppppppcVar30 = local_5c;\n                    iVar18 = (*pcVar9)(local_60);\n                  } while (iVar18 != 0);\n                  local_d8 = (code *******)0xc;\n                  pppppppcVar15 = local_d8;\nLAB_00055e44:\n                  local_d8 = pppppppcVar15;\n                  param_4 = (code *******)0x0;\n                  if (local_50 == (code *******)0x0) {\n                    pppppppcVar14 = param_4;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    break;\n                  }\n                  pppppppcVar30 = (code *******)0x0;\nLAB_000553ac:\n                  pppppppcVar29 = &local_b4;\n                  pppppppcVar14 = (code *******)FUN_00053684(&local_d8);\nLAB_000553cc:\n                  param_4 = pppppppcVar14;\n                  if (pppppppcVar14 == (code *******)0x0) {\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    if ((local_50 == (code *******)0x0) ||\n                       ((pppppppcVar28 != (code *******)0x0 && (pppppppcVar34 == (code *******)0x0))\n                       )) break;\n                    param_6 = &local_b4;\n                    param_5 = (code *******)&local_d8;\n                    pppppppcVar31 = (code *******)(PTR_DAT_000799a4 + 0x3684);\n                    do {\n                      pppppppcVar15 = local_50 + (int)local_8c;\n                      pppppppcVar42 = local_8c;\n                      do {\n                        pppppppcVar42 = (code *******)((int)pppppppcVar42 + 1);\n                        pppppppcVar29 = local_4c;\n                        param_4 = pppppppcVar14;\n                        if ((int)local_4c < (int)pppppppcVar42) goto LAB_00055da8;\n                        local_8c = (code *******)((int)local_8c + 1);\n                        pppppppcVar15 = pppppppcVar15 + 1;\n                      } while (*pppppppcVar15 == (code ******)0x0);\n                      pppppppcVar30 = (code *******)0x0;\n                      pppppppcVar29 = param_6;\n                      param_4 = (code *******)(*(code *)pppppppcVar31)(param_5);\n                      if (local_d8 != (code *******)0x0) {\n                        if (param_4 == (code *******)0x0) goto LAB_00055da8;\n                        break;\n                      }\n                      pppppppcVar29 = local_4c;\n                    } while (param_4 == (code *******)0x0);\n                  }\n                  pppppppcVar15 = (code *******)((uint)unaff_s7 ^ (uint)param_4);\n                  pppppppcVar42 = unaff_s7;\n                  pppppppcVar14 = local_138;\n                  if ((bVar1) &&\n                     (pppppppcVar42 = pppppppcVar15, pppppppcVar14 = unaff_s5,\n                     pppppppcVar15 != (code *******)0x0)) {\n                    bVar1 = false;\n                    pppppppcVar14 = local_138;\n                  }\n                  local_138 = pppppppcVar14;\n                  unaff_s7 = param_4;\n                  if ((((uint)param_4[0xd] & 0x8000000) != 0) &&\n                     ((((uint)param_4[0xd] & 0x1000000) == 0 ||\n                      (pppppppcVar29 = param_4, pppppppcVar30 = local_8c,\n                      iVar18 = FUN_00049440(&local_b4), iVar18 != 0)))) {\n                    unaff_s7 = pppppppcVar42;\n                    unaff_s8 = local_8c;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                    local_144 = (code *******)0x0;\n                    unaff_s7 = param_4;\n                  }\n                }\nLAB_00055da8:\n                if (local_144 != (code *******)0x0) {\n                  *local_144 = (code ******)((int)local_138 + (int)*local_144);\n                }\n              }\n              else {\n                param_4 = unaff_s7 + 1;\n                pppppppcVar30 = (code *******)0x0;\n                pppppppcVar29 = param_4;\n                local_d8 = (code *******)FUN_00047a44(&local_b4);\n                unaff_s8 = local_d8;\n                if (local_d8 == (code *******)0x0) {\n                  if (((uint)unaff_s7[0xd] & 0x2000000) == 0) {\n                    pppppppcVar29 = param_4;\n                    bVar1 = false;\n                  }\n                  else {\n                    pppppppcVar29 = param_4;\n                    local_d8 = (code *******)FUN_00052d84(&local_b4);\n                    unaff_s8 = local_d8;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055dbc;\n                    bVar1 = false;\n                  }\n                  goto LAB_00054d50;\n                }\n              }\nLAB_00055dbc:\n              if (unaff_s8 == (code *******)0xffffffff) {\nLAB_00055b04:\n                FUN_0004b7e8(&local_b4);\nLAB_00055b1c:\n                local_dc = (code *******)((int)pppppppcVar24 + (int)local_dc);\n                if ((int)pppppppcVar25 <= (int)local_dc) goto code_r0x00055b38;\n                local_150 = (code *******)0x1;\n                goto LAB_000557e4;\n              }\n              if (unaff_s8 == (code *******)&SUB_fffffffe) {\n                local_150 = (code *******)0xc;\n                goto LAB_000557e4;\n              }\n              local_58 = unaff_s8;\n              if (((uint)param_1[7] & 0x8000000) == 0) {\n                if (pppppppcVar3 < (code *******)0x2) {\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055c08;\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                else {\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                if (pppppppcVar3 < (code *******)0x2) {\nLAB_00055c6c:\n                  pppppppcVar28 = pppppppcVar33;\n                  unaff_s4 = local_60;\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055548;\n                }\n                else {\n                  cVar23 = *(code *)(pppppppcVar38 + 0x16);\nLAB_00055c20:\n                  pppppppcVar28 = pppppppcVar33;\n                  if (-1 < (char)cVar23) goto LAB_00055c6c;\n                }\n                pppppppcVar31 = local_54;\n                pppppppcVar42 = local_60;\n                unaff_s4 = pppppppcVar42;\n                if (unaff_s8 < (code *******)0x3fffffff) {\n                  param_4 = (code *******)((int)((int)unaff_s8 + 1) * 4);\n                  unaff_s5 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                  if (unaff_s5 == (code *******)0x0) {\nLAB_00055b9c:\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    local_150 = (code *******)0xc;\n                    pppppppcVar33 = pppppppcVar28;\n                  }\n                  else {\n                    pppppppcVar29 = (code *******)&local_d0;\n                    if (pppppppcVar42[0x13] == (code ******)0x0) {\n                      local_cc = (code *******)0x0;\n                      local_c8 = pppppppcVar31;\n                      local_c0 = 0;\n                      local_bc = 0;\n                      local_b8 = 0;\n                      local_d0 = unaff_s5;\n                      local_c4 = unaff_s8;\n                      param_5 = (code *******)FUN_0005421c(&local_b4);\n                      (*(code *)PTR_free_00079c24)(local_b8);\n                      if (param_5 == (code *******)0x0) {\n                        param_4 = (code *******)*unaff_s5;\n                        if (param_4 == (code *******)0x0) {\nLAB_00055b70:\n                          (*(code *)PTR_free_00079c24)(unaff_s5);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          pppppppcVar33 = pppppppcVar28;\n                          goto LAB_00055b04;\n                        }\nLAB_00055528:\n                        (*(code *)PTR_free_00079c24)(local_50);\n                        pppppppcVar33 = pppppppcVar28;\n                        unaff_s4 = pppppppcVar42;\n                        local_58 = unaff_s8;\n                        local_54 = pppppppcVar31;\n                        local_50 = unaff_s5;\n                        goto LAB_00055548;\n                      }\nLAB_00055acc:\n                      param_4 = (code *******)0x0;\n                      pppppppcVar33 = pppppppcVar28;\n                      unaff_s4 = pppppppcVar42;\n                    }\n                    else {\n                      param_4 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                      if (param_4 == (code *******)0x0) goto LAB_00055b9c;\n                      unaff_s7 = (code *******)&local_d0;\n                      pcVar8 = (code *)(PTR_DAT_000799a4 + 0x421c);\n                      pcVar9 = (code *)(PTR_DAT_000799a4 + -0x6bc0);\n                      pppppppcVar33 = pppppppcVar28;\n                      while( true ) {\n                        pppppppcVar28 = (code *******)((int)unaff_s8 + 1);\n                        param_6 = (code *******)((int)pppppppcVar28 * 4);\n                        pppppppcVar30 = param_6;\n                        (*(code *)PTR_memset_00079b00)(param_4,0);\n                        local_c0 = 0;\n                        local_bc = 0;\n                        local_b8 = 0;\n                        pppppppcVar29 = unaff_s7;\n                        local_d0 = unaff_s5;\n                        local_cc = param_4;\n                        local_c8 = pppppppcVar31;\n                        local_c4 = unaff_s8;\n                        param_5 = (code *******)(*pcVar8)(&local_b4);\n                        (*(code *)PTR_free_00079c24)(local_b8);\n                        unaff_s4 = pppppppcVar28;\n                        if (param_5 != (code *******)0x0) break;\n                        if ((*unaff_s5 != (code ******)0x0) ||\n                           (param_6 = param_6 + -1, *param_4 != (code ******)0x0)) {\n                          pppppppcVar29 = unaff_s5;\n                          pppppppcVar30 = param_4;\n                          param_5 = (code *******)FUN_000520d0(pppppppcVar42);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          if (param_5 != (code *******)0x0) goto LAB_00055acc;\n                          goto LAB_00055528;\n                        }\n                        param_6 = (code *******)((int)local_50 + (int)param_6);\n                        do {\n                          while( true ) {\n                            unaff_s8 = (code *******)((int)unaff_s8 + -1);\n                            if ((int)unaff_s8 < 0) goto LAB_00055b70;\n                            pppppppcVar29 = (code *******)param_6[-1];\n                            if (pppppppcVar29 != (code *******)0x0) break;\n                            param_6 = param_6 + -1;\n                          }\n                          param_6 = param_6 + -1;\n                        } while (((uint)pppppppcVar29[0xd] & 0x8000000) == 0);\n                        pppppppcVar31 = (code *******)(*pcVar9)(&local_b4,pppppppcVar29,unaff_s8);\n                        pppppppcVar33 = pppppppcVar28;\n                      }\n                    }\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    (*(code *)PTR_free_00079c24)(param_4);\n                    local_150 = param_5;\n                    if (param_5 == (code *******)0x1) goto LAB_00055b04;\n                  }\n                }\n                else {\n                  local_150 = (code *******)0xc;\n                  pppppppcVar33 = pppppppcVar28;\n                }\n                goto LAB_000557e4;\n              }\n              if (pppppppcVar38[0x13] != (code ******)0x0) {\n                pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                pppppppcVar30 = unaff_s8;\n                local_54 = (code *******)FUN_00049440(&local_b4);\n                goto LAB_00055c6c;\n              }\nLAB_00055c08:\n              if ((((uint)param_1[7] & 0x8000000) == 0) && ((code *******)0x1 < pppppppcVar3)) {\n                cVar23 = *(code *)(pppppppcVar38 + 0x16);\n                goto LAB_00055c20;\n              }\nLAB_00055548:\n              if (pppppppcVar3 == (code *******)0x0) goto LAB_000557e4;\n              if (pppppppcVar3 < (code *******)0x2) {\n                *param_8 = (code ******)0x0;\n                param_8[1] = (code ******)local_58;\n                goto LAB_000555ac;\n              }\n              pppppppcVar29 = param_8 + 2;\n              do {\n                pppppppcVar29[1] = (code ******)0xffffffff;\n                *pppppppcVar29 = (code ******)0xffffffff;\n                pppppppcVar29 = pppppppcVar29 + 2;\n              } while (pppppppcVar29 != param_8 + (int)pppppppcVar3 * 2);\n              *param_8 = (code ******)0x0;\n              param_8[1] = (code ******)local_58;\n              if (((uint)param_1[7] & 0x8000000) != 0) {\nLAB_000555ac:\n                pppppppcVar33 = param_8;\n                do {\n                  pppppppcVar29 = (code *******)*pppppppcVar33;\n                  if (pppppppcVar29 != (code *******)0xffffffff) {\n                    if (local_68 != '\0') {\n                      pppppppcVar34 = local_94;\n                      if (pppppppcVar29 != local_98) {\n                        pppppppcVar34 = *(code ********)(local_a8 + (int)pppppppcVar29 * 4);\n                      }\n                      *pppppppcVar33 = (code ******)pppppppcVar34;\n                      pppppppcVar29 = local_94;\n                      if (local_98 != (code *******)pppppppcVar33[1]) {\n                        pppppppcVar29 = *(code ********)(local_a8 + (int)pppppppcVar33[1] * 4);\n                      }\n                      pppppppcVar33[1] = (code ******)pppppppcVar29;\n                    }\n                    *pppppppcVar33 = (code ******)((int)local_dc + (int)*pppppppcVar33);\n                    pppppppcVar29 = (code *******)((int)local_dc + (int)pppppppcVar33[1]);\n                    pppppppcVar33[1] = (code ******)pppppppcVar29;\n                  }\n                  pppppppcVar33 = pppppppcVar33 + 2;\n                } while (pppppppcVar33 != param_8 + (int)pppppppcVar3 * 2);\n                if (0 < local_118) {\n                  pppppppcVar33 = param_8 + (int)pppppppcVar3 * 2;\n                  do {\n                    *pppppppcVar33 = (code ******)0xffffffff;\n                    pppppppcVar33[1] = (code ******)0xffffffff;\n                    pppppppcVar33 = pppppppcVar33 + 2;\n                  } while (pppppppcVar33 != param_8 + (int)param_7 * 2);\n                }\n                pppppppcVar30 = local_dc;\n                pppppppcVar33 = param_8;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar38[0x21] != (code ******)0x0) {\n                  pppppppcVar30 = (code *******)((int)pppppppcVar3 + -1);\n                  pppppppcVar34 = (code *******)0x0;\n                  pppppppcVar3 = param_8;\n                  while( true ) {\n                    pppppppcVar29 = (code *******)((int)pppppppcVar34 * 4);\n                    if (pppppppcVar30 == pppppppcVar34) break;\n                    if (*(code ********)((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) !=\n                        pppppppcVar34) {\n                      pppppppcVar3[2] =\n                           param_8[(int)((int)*(code ********)\n                                               ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1)\n                                   * 2];\n                      pppppppcVar3[3] =\n                           param_8[((int)*(code ******)\n                                          ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1) * 2 +\n                                   1];\n                    }\n                    pppppppcVar34 = (code *******)((int)pppppppcVar34 + 1);\n                    pppppppcVar3 = pppppppcVar3 + 2;\n                  }\n                }\n                goto LAB_000557e4;\n              }\n              if ((char)*(code *)(pppppppcVar38 + 0x16) < '\0') {\n                local_168 = (uint)(0 < (int)pppppppcVar38[0x13]);\n              }\n              else {\n                local_168 = 0;\n              }\n              pppppppcVar29 = &local_b4;\n              pppppppcVar30 = pppppppcVar3;\n              pppppppcVar33 = param_8;\n              local_150 = (code *******)FUN_0004f4a0(param_1);\n              if (local_150 == (code *******)0x0) goto LAB_000555ac;\n            }\n          }\n          else if (local_90 < 0x3fffffff) {\n            local_50 = (code *******)(*(code *)PTR_malloc_00079b54)((local_90 + 1) * 4);\n            if (local_50 != (code *******)0x0) goto LAB_00055a40;\n            local_150 = (code *******)0xc;\n            param_6 = pppppppcVar36;\n          }\n          else {\n            local_150 = (code *******)0xc;\n            param_6 = pppppppcVar36;\n          }\n        }\n        else {\n          unaff_s5 = (code *******)((int)ppppppcVar35 * 8);\n          if (pppppppcVar36 < (code *******)0xccccccd) {\n            unaff_s4 = (code *******)(*(code *)PTR_malloc_00079b54)((int)ppppppcVar35 * 0x28);\n            local_40 = unaff_s4;\n            local_30 = (*(code *)PTR_malloc_00079b54)(unaff_s5);\n            if ((unaff_s4 != (code *******)0x0) && (local_30 != 0)) goto LAB_000559f0;\n          }\n          local_150 = (code *******)0xc;\n          param_6 = pppppppcVar36;\n        }\nLAB_000557e4:\n        (*(code *)PTR_free_00079c24)(local_50);\n        param_1 = pppppppcVar30;\n        if (pppppppcVar38[0x13] != (code ******)0x0) {\n          FUN_0004b7e8(&local_b4);\n          (*(code *)PTR_free_00079c24)(local_30);\n          (*(code *)PTR_free_00079c24)(local_40);\n          param_1 = pppppppcVar30;\n        }\n        FUN_0004b2bc(&local_b4);\n        pppppppcStack_1a0 = param_4;\n        pppppppcStack_19c = pppppppcVar31;\n      }\n    }" if (parenthesized_expression "(pppppppcVar29 == (code *******)0x0)" ( (binary_expression "pppppppcVar29 == (code *******)0x0" identifier == (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\n      local_150 = (code *******)0x1;\n    }" { (expression_statement "local_150 = (code *******)0x1;" (assignment_expression "local_150 = (code *******)0x1" identifier = (cast_expression "(code *******)0x1" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) }) (else_clause "else {\n      pppppppcVar3 = param_5;\n      if ((((pppppppcVar38[9][2] == (code *****)0x0) && (pppppppcVar38[10][2] == (code *****)0x0))\n          && ((pppppppcVar38[0xb][2] == (code *****)0x0 || (((uint)param_1[7] & 0x1000000) == 0))))\n         && ((pppppppcVar3 = param_4, param_4 != (code *******)0x0 &&\n             (param_4 = param_5, pppppppcVar3 = param_5, param_5 != (code *******)0x0)))) {\n        local_150 = (code *******)0x1;\n        pppppppcStack_1a0 = param_5;\n      }\n      else {\n        param_5 = pppppppcVar3;\n        pppppppcVar3 = (code *******)((int)param_7 - local_118);\n        if (pppppppcVar3 == (code *******)0x0) {\n          pppppppcVar34 = (code *******)(uint)(pppppppcVar38[0x13] != (code ******)0x0);\n        }\n        else {\n          pppppppcVar34 = (code *******)0x1;\n        }\n        ppppppcVar32 = param_1[5];\n        local_6c = (byte)((uint)((int)param_1[3] << 9) >> 0x1f);\n        local_64 = (code *******)pppppppcVar38[0x17];\n        pppppppcVar31 = (code *******)((int)pppppppcVar38[2] + 1);\n        if ((int)pppppppcVar38[2] + 1 < (int)local_64) {\n          pppppppcVar31 = local_64;\n        }\n        pppppppcVar30 = (code *******)(uint)((int)param_3 + 1 < (int)pppppppcVar31);\n        pppppppcVar33 = (code *******)0x1;\n        local_69 = local_6c;\n        if (ppppppcVar32 != (code ******)0x0) {\n          local_69 = 1;\n        }\n        local_6b = (byte)((uint)((int)pppppppcVar38[0x16] << 2) >> 0x1f);\n        local_6a = (byte)((uint)((int)pppppppcVar38[0x16] << 3) >> 0x1f);\n        pppppppcVar29 = (code *******)((int)param_3 + 1);\n        if (pppppppcVar30 == (code *******)0x0) {\n          pppppppcVar29 = pppppppcVar31;\n        }\n        local_b4 = param_2;\n        local_88 = param_3;\n        local_84 = param_3;\n        local_80 = param_3;\n        local_7c = param_3;\n        local_74 = ppppppcVar32;\n        local_150 = (code *******)FUN_00046d2c(&local_b4);\n        pppppppcVar31 = pppppppcVar34;\n        param_6 = param_6;\n        if (local_150 != (code *******)0x0) goto LAB_000557e4;\n        local_70 = pppppppcVar38 + 0x18;\n        local_66 = (byte)((uint)((int)pppppppcVar38[0x16] << 4) >> 0x1f);\n        pppppppcVar2 = (code *******)0x0;\n        local_98 = pppppppcVar2;\n        if ((local_69 == 0) && (local_b0 = param_2, (int)pppppppcVar38[0x17] < 2)) {\n          local_98 = param_3;\n        }\n        local_7c = param_6;\n        local_80 = param_6;\n        local_67 = (byte)((uint)((int)param_1[7] << 7) >> 0x1f);\n        ppppppcVar35 = pppppppcVar38[0x13];\n        pppppppcVar36 = (code *******)((int)ppppppcVar35 * 2);\n        local_5c = param_9;\n        local_58 = (code *******)0xffffffff;\n        local_94 = local_98;\n        if ((int)pppppppcVar36 < 1) {\nLAB_000559f0:\n          local_3c = 1;\n          local_44 = pppppppcVar36;\n          local_34 = pppppppcVar36;\n          if ((pppppppcVar3 < (code *******)0x2) && (((uint)pppppppcVar38[0x16] & 0x40000000) == 0))\n          {\n            local_50 = (code *******)0x0;\nLAB_00055a40:\n            local_78 = 6;\n            if (((uint)param_9 & 1) != 0) {\n              local_78 = 4;\n            }\n            pppppppcVar24 = (code *******)0x1;\n            pppppppcVar25 = param_4;\n            if ((int)param_5 < (int)param_4) {\n              pppppppcVar24 = (code *******)0xffffffff;\n              pppppppcVar25 = param_5;\n            }\n            pppppppcVar26 = param_5;\n            if ((int)param_5 <= (int)param_4) {\n              pppppppcVar26 = param_4;\n            }\n            ppppppcVar35 = pppppppcVar38[0x17];\n            uVar16 = 8;\n            if (local_148 != (code *******)0x0) {\n              if (ppppppcVar35 == (code ******)0x1) {\n                pppppppcVar28 = (code *******)0x4;\n              }\n              else {\n                pppppppcVar28 = pppppppcVar2;\n                if ((-1 < (int)param_1[3] << 9) && (ppppppcVar32 == (code ******)0x0)) {\n                  pppppppcVar28 = (code *******)0x4;\n                }\n              }\n              pppppppcVar29 = (code *******)0x0;\n              if ((int)param_4 <= (int)param_5) {\n                pppppppcVar29 = (code *******)0x2;\n              }\n              uVar16 = (uint)(ppppppcVar32 != (code ******)0x0) | (uint)pppppppcVar28 |\n                       (uint)pppppppcVar29;\n            }\n            local_dc = param_4;\n            if ((int)param_4 < (int)pppppppcVar25) {\n              local_150 = (code *******)0x1;\n              param_6 = pppppppcVar36;\n            }\n            else if ((int)pppppppcVar26 < (int)param_4) {\n              local_150 = (code *******)0x1;\n              param_4 = (code *******)(uint)((int)param_5 < (int)param_4);\n              param_6 = pppppppcVar36;\n            }\n            else {\n              pppppppcVar36 = (code *******)&local_dc;\n              if ((code *******)(uint)((int)param_5 < (int)param_4) != (code *******)0x0) {\n                pppppppcVar36 = (code *******)0x0;\n              }\n              pcVar4 = (code *)(PTR_DAT_000799a4 + -0x2b7c);\n              piVar5 = (int *)(PTR_s_nt0_000795b8 + (uVar16 - 4) * 4 + 0x6e38);\nLAB_00055b44:\n              if (uVar16 - 4 < 5) {\n                    /* WARNING: Could not emulate address calculation at 0x00054920 */\n                    /* WARNING: Treating indirect jump as call */\n                pppppppcVar29 = (code *******)(*(code *)(&_gp_1 + *piVar5))();\n                return pppppppcVar29;\n              }\n              param_5 = &local_b4;\n              pppppppcVar28 = pppppppcVar33;\n              while( true ) {\n                param_4 = local_dc;\n                pppppppcVar33 = (code *******)((int)local_dc - local_9c);\n                pppppppcVar30 = param_9;\n                pppppppcVar31 = pppppppcVar2;\n                param_6 = local_148;\n                unaff_s4 = param_3;\n                unaff_s5 = pppppppcVar24;\n                unaff_s7 = pppppppcVar26;\n                if (local_94 <= pppppppcVar33) {\n                  pppppppcVar29 = local_dc;\n                  local_150 = (code *******)(*pcVar4)(param_5);\n                  pppppppcVar33 = pppppppcVar28;\n                  if (local_150 != (code *******)0x0) goto LAB_000557e4;\n                  pppppppcVar33 = (code *******)((int)param_4 - local_9c);\n                }\n                if ((int)param_4 < (int)param_3) {\n                  uVar7 = (uint)(byte)*(code *)((int)pppppppcVar33 + (int)local_b0);\n                }\n                else {\n                  uVar7 = 0;\n                }\n                param_4 = (code *******)((int)param_4 + (int)pppppppcVar24);\n                if (*(code *)((int)local_148 + uVar7) != (code)0x0) break;\n                pppppppcVar33 = pppppppcVar28;\n                local_dc = param_4;\n                if ((int)param_4 < (int)pppppppcVar25) {\n                  local_150 = (code *******)0x1;\n                  goto LAB_000557e4;\n                }\n                if ((code *******)(uint)((int)pppppppcVar26 < (int)param_4) != (code *******)0x0) {\n                  local_150 = (code *******)0x1;\n                  param_4 = (code *******)(uint)((int)pppppppcVar26 < (int)param_4);\n                  goto LAB_000557e4;\n                }\n              }\n              while( true ) {\n                pppppppcVar29 = local_dc;\n                pppppppcVar30 = param_9;\n                pppppppcVar6 = (code *******)(*pcVar4)(&local_b4);\n                pppppppcVar14 = local_60;\n                pppppppcVar42 = local_8c;\n                pppppppcVar33 = pppppppcVar28;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar6 != (code *******)0x0) goto LAB_000557e4;\n                if (((ppppppcVar35 != (code ******)0x1) && (local_98 != (code *******)0x0)) &&\n                   (*local_ac == -1)) goto LAB_00055b1c;\n                local_3c = 0;\n                local_48 = 0;\n                local_4c = (code *******)0x0;\n                local_138 = local_8c;\n                local_d8 = (code *******)0x0;\n                unaff_s7 = (code *******)local_60[9];\n                pppppppcVar30 = local_5c;\n                param_4 = pppppppcVar14;\n                if (((uint)unaff_s7[0xd] & 0x1000000) == 0) break;\n                pppppppcVar29 = (code *******)((int)local_8c + -1);\n                pppppppcVar33 = (code *******)FUN_00049110(&local_b4);\n                if (((uint)pppppppcVar33 & 1) == 0) {\n                  if (pppppppcVar33 == (code *******)0x0) break;\n                  if (((uint)pppppppcVar33 & 6) == 6) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xc];\n                    goto LAB_00054d1c;\n                  }\n                  if (((uint)pppppppcVar33 & 2) != 0) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xb];\n                    goto LAB_00054d1c;\n                  }\n                  pppppppcVar28 = pppppppcVar33;\n                  if (((uint)pppppppcVar33 & 4) == 0) break;\n                  pppppppcVar30 = (code *******)unaff_s7[10];\n                  pppppppcVar29 = pppppppcVar14;\n                  unaff_s7 = (code *******)FUN_0004ae34(&local_d8);\n                  pppppppcVar28 = pppppppcVar33;\n                  if (unaff_s7 != (code *******)0x0) break;\n                  if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                }\n                else {\n                  unaff_s7 = (code *******)pppppppcVar14[10];\nLAB_00054d1c:\n                  pppppppcVar28 = (code *******)PTR_s_nt0_000795b8;\n                  if (unaff_s7 != (code *******)0x0) break;\n                }\n                pppppppcVar28 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                local_dc = (code *******)\n                           (*(code *)PTR___assert_fail_000799f8)\n                                     (PTR_s_nt0_000795b8 + 0x71a0,pppppppcVar29,0x435);\n                if (local_dc == pppppppcVar26) {\n                  if ((int)local_dc < (int)param_3) {\n                    uVar7 = (uint)(byte)*(code *)((int)local_dc + (int)param_2);\n                  }\n                  else {\n                    uVar7 = 0;\n                  }\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    uVar7 = (uint)*(byte *)((int)ppppppcVar32 + uVar7);\n                  }\n                  if (*(code *)((int)local_148 + uVar7) == (code)0x0) {\n                    local_150 = (code *******)0x1;\n                    pppppppcVar30 = param_9;\n                    pppppppcVar33 = pppppppcVar28;\n                    goto LAB_000557e4;\n                  }\n                }\n              }\n              pppppppcVar33 = pppppppcVar28;\n              bVar1 = pppppppcVar36 != (code *******)0x0;\n              if ((local_50 == (code *******)0x0) ||\n                 (local_50[(int)pppppppcVar42] = (code ******)unaff_s7,\n                 pppppppcVar14[0x13] == (code ******)0x0)) {\nLAB_00054d50:\n                if ((int)unaff_s7[0xd] << 4 < 0) {\n                  if ((((uint)unaff_s7[0xd] & 0x1000000) == 0) ||\n                     (pppppppcVar29 = unaff_s7, pppppppcVar30 = pppppppcVar42,\n                     iVar18 = FUN_00049440(&local_b4), iVar18 != 0)) {\n                    unaff_s8 = pppppppcVar42;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                  }\n                  else {\n                    pppppppcVar42 = (code *******)0xffffffff;\n                    pppppppcVar28 = (code *******)0x0;\n                  }\n                }\n                else {\n                  pppppppcVar42 = (code *******)0xffffffff;\n                  pppppppcVar28 = (code *******)0x0;\n                }\n                pcVar8 = (code *)(PTR_DAT_000799a4 + -0x7144);\n                pcVar9 = (code *)(PTR_DAT_000799a4 + -0x1980);\n                pcVar10 = (code *)(PTR_DAT_000799a4 + -0x2f9c);\n                unaff_s8 = pppppppcVar42;\n                local_144 = pppppppcVar36;\n                while( true ) {\n                  uVar44 = CONCAT44(local_98,local_84);\n                  unaff_s5 = (code *******)((int)local_8c + 1);\n                  pppppppcVar29 = local_8c;\n                  if ((int)local_7c <= (int)local_8c) break;\n                  if (((int)local_90 <= (int)unaff_s5) && ((int)local_90 < (int)local_84))\n                  goto LAB_00054e94;\n                  if ((int)local_98 <= (int)unaff_s5) {\n                    while ((int)((ulonglong)uVar44 >> 0x20) < (int)uVar44) {\nLAB_00054e94:\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 2);\n                      local_d8 = (code *******)(*pcVar8)(&local_b4);\n                      if (local_d8 == (code *******)0x0) break;\n                      pppppppcVar14 = param_4;\n                      if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                      pppppppcVar33 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                      pppppppcVar30 = (code *******)0x46c;\n                      pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                      uVar44 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0);\n                      pppppppcVar28 = pppppppcVar38;\n                    }\n                  }\n                  pppppppcVar42 = local_60;\n                  if ((int)unaff_s7[0xd] << 5 < 0) {\n                    pppppppcVar31 = pppppppcVar42;\n                    if (0 < (int)unaff_s7[2]) {\n                      pcVar11 = (code *)(PTR_DAT_000799a4 + -0x6fdc);\n                      pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6ef0);\n                      param_6 = (code *******)0x0;\n                      do {\n                        param_5 = (code *******)unaff_s7[3][(int)param_6];\n                        ppppppcVar39 = *pppppppcVar42;\n                        pppppcVar13 = ppppppcVar39[(int)param_5 * 2 + 1];\n                        if (((uint)pppppcVar13 & 0x800) != 0) {\n                          if (((uint)pppppcVar13 & 0xffc000) != 0) {\n                            pppppppcVar29 = local_8c;\n                            uVar19 = (*pcVar12)(&local_b4,local_8c,local_5c);\n                            uVar7 = (uint)((int)ppppppcVar39[(int)param_5 * 2 + 1] << 8) >> 0x16;\n                            if ((uVar7 & 4) == 0) {\n                              uVar27 = uVar19 & 1;\n                              if ((uVar7 & 8) != 0) goto joined_r0x00054f40;\n                            }\n                            else {\n                              uVar27 = uVar7 & 8;\n                              if ((uVar19 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                              if (uVar27 != 0) goto LAB_000550a4;\n                            }\n                            if ((((uVar7 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                               (((uVar7 & 0x80) != 0 &&\n                                (pppppppcVar33 = local_8c, (uVar19 & 8) == 0)))) goto LAB_000550a4;\n                          }\n                          pppppppcVar30 = &local_b4;\n                          pppppppcVar29 = param_5;\n                          pppppppcVar33 = local_8c;\n                          iVar18 = (*pcVar10)(pppppppcVar42);\n                          if (iVar18 != 0) {\n                            pppppppcVar14 = (code *******)((int)local_8c + iVar18);\n                            if (iVar18 <= local_3c) {\n                              iVar18 = local_3c;\n                            }\n                            pppppppcVar29 = pppppppcVar14;\n                            local_3c = iVar18;\n                            local_d4 = (code *******)(*pcVar11)(&local_b4);\n                            pppppppcVar15 = local_d4;\n                            if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                            pppppppcVar30 =\n                                 (code *******)\n                                 (pppppppcVar42[6] + (int)pppppppcVar42[3][(int)param_5] * 3);\n                            unaff_s4 = (code *******)((int)pppppppcVar14 * 4);\n                            param_5 = local_50 + (int)pppppppcVar14;\n                            if (*param_5 == (code ******)0x0) {\n                              local_d0 = (code *******)*pppppppcVar30;\n                              local_cc = (code *******)pppppppcVar30[1];\n                              local_c8 = (code *******)pppppppcVar30[2];\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *param_5 = ppppppcVar39;\n                            }\n                            else {\n                              pppppppcVar29 = (code *******)(*param_5)[10];\n                              local_d4 = (code *******)FUN_000484bc(&local_d0);\n                              pppppppcVar15 = local_d4;\n                              if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar15 = local_50 + (int)pppppppcVar14;\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *pppppppcVar15 = ppppppcVar39;\n                              (*(code *)PTR_free_00079c24)(local_c8);\n                            }\n                            unaff_s4 = local_50 + (int)pppppppcVar14;\n                            if ((*unaff_s4 == (code ******)0x0) &&\n                               (pppppppcVar15 = local_d4, local_d4 != (code *******)0x0))\n                            goto LAB_00055e44;\n                          }\n                        }\nLAB_000550a4:\n                        param_6 = (code *******)((int)param_6 + 1);\n                      } while ((int)param_6 < (int)unaff_s7[2]);\n                    }\n                    local_d8 = (code *******)0x0;\n                  }\n                  uVar7 = (uint)(byte)*(code *)((int)local_8c + (int)local_b0);\n                  local_8c = (code *******)((int)local_8c + 1);\n                  do {\n                    if (unaff_s7[0xb] != (code ******)0x0) {\n                      pppppppcVar30 = (code *******)unaff_s7[0xb][uVar7];\nLAB_000553a0:\n                      pppppppcVar14 = pppppppcVar30;\n                      if (local_50 != (code *******)0x0) goto LAB_000553ac;\n                      goto LAB_000553cc;\n                    }\n                    pppppppcVar31 = (code *******)unaff_s7[0xc];\n                    if (pppppppcVar31 != (code *******)0x0) {\n                      pppppppcVar29 = (code *******)((int)local_8c + -1);\n                      uVar19 = FUN_00049110(&local_b4);\n                      if ((uVar19 & 1) == 0) {\n                        pppppppcVar30 = (code *******)pppppppcVar31[uVar7];\n                      }\n                      else {\n                        pppppppcVar31 = pppppppcVar31 + uVar7 + 0x100;\n                        pppppppcVar30 = (code *******)*pppppppcVar31;\n                      }\n                      goto LAB_000553a0;\n                    }\n                    pppppppcVar29 = unaff_s7;\n                    pppppppcVar30 = local_5c;\n                    iVar18 = (*pcVar9)(local_60);\n                  } while (iVar18 != 0);\n                  local_d8 = (code *******)0xc;\n                  pppppppcVar15 = local_d8;\nLAB_00055e44:\n                  local_d8 = pppppppcVar15;\n                  param_4 = (code *******)0x0;\n                  if (local_50 == (code *******)0x0) {\n                    pppppppcVar14 = param_4;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    break;\n                  }\n                  pppppppcVar30 = (code *******)0x0;\nLAB_000553ac:\n                  pppppppcVar29 = &local_b4;\n                  pppppppcVar14 = (code *******)FUN_00053684(&local_d8);\nLAB_000553cc:\n                  param_4 = pppppppcVar14;\n                  if (pppppppcVar14 == (code *******)0x0) {\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    if ((local_50 == (code *******)0x0) ||\n                       ((pppppppcVar28 != (code *******)0x0 && (pppppppcVar34 == (code *******)0x0))\n                       )) break;\n                    param_6 = &local_b4;\n                    param_5 = (code *******)&local_d8;\n                    pppppppcVar31 = (code *******)(PTR_DAT_000799a4 + 0x3684);\n                    do {\n                      pppppppcVar15 = local_50 + (int)local_8c;\n                      pppppppcVar42 = local_8c;\n                      do {\n                        pppppppcVar42 = (code *******)((int)pppppppcVar42 + 1);\n                        pppppppcVar29 = local_4c;\n                        param_4 = pppppppcVar14;\n                        if ((int)local_4c < (int)pppppppcVar42) goto LAB_00055da8;\n                        local_8c = (code *******)((int)local_8c + 1);\n                        pppppppcVar15 = pppppppcVar15 + 1;\n                      } while (*pppppppcVar15 == (code ******)0x0);\n                      pppppppcVar30 = (code *******)0x0;\n                      pppppppcVar29 = param_6;\n                      param_4 = (code *******)(*(code *)pppppppcVar31)(param_5);\n                      if (local_d8 != (code *******)0x0) {\n                        if (param_4 == (code *******)0x0) goto LAB_00055da8;\n                        break;\n                      }\n                      pppppppcVar29 = local_4c;\n                    } while (param_4 == (code *******)0x0);\n                  }\n                  pppppppcVar15 = (code *******)((uint)unaff_s7 ^ (uint)param_4);\n                  pppppppcVar42 = unaff_s7;\n                  pppppppcVar14 = local_138;\n                  if ((bVar1) &&\n                     (pppppppcVar42 = pppppppcVar15, pppppppcVar14 = unaff_s5,\n                     pppppppcVar15 != (code *******)0x0)) {\n                    bVar1 = false;\n                    pppppppcVar14 = local_138;\n                  }\n                  local_138 = pppppppcVar14;\n                  unaff_s7 = param_4;\n                  if ((((uint)param_4[0xd] & 0x8000000) != 0) &&\n                     ((((uint)param_4[0xd] & 0x1000000) == 0 ||\n                      (pppppppcVar29 = param_4, pppppppcVar30 = local_8c,\n                      iVar18 = FUN_00049440(&local_b4), iVar18 != 0)))) {\n                    unaff_s7 = pppppppcVar42;\n                    unaff_s8 = local_8c;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                    local_144 = (code *******)0x0;\n                    unaff_s7 = param_4;\n                  }\n                }\nLAB_00055da8:\n                if (local_144 != (code *******)0x0) {\n                  *local_144 = (code ******)((int)local_138 + (int)*local_144);\n                }\n              }\n              else {\n                param_4 = unaff_s7 + 1;\n                pppppppcVar30 = (code *******)0x0;\n                pppppppcVar29 = param_4;\n                local_d8 = (code *******)FUN_00047a44(&local_b4);\n                unaff_s8 = local_d8;\n                if (local_d8 == (code *******)0x0) {\n                  if (((uint)unaff_s7[0xd] & 0x2000000) == 0) {\n                    pppppppcVar29 = param_4;\n                    bVar1 = false;\n                  }\n                  else {\n                    pppppppcVar29 = param_4;\n                    local_d8 = (code *******)FUN_00052d84(&local_b4);\n                    unaff_s8 = local_d8;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055dbc;\n                    bVar1 = false;\n                  }\n                  goto LAB_00054d50;\n                }\n              }\nLAB_00055dbc:\n              if (unaff_s8 == (code *******)0xffffffff) {\nLAB_00055b04:\n                FUN_0004b7e8(&local_b4);\nLAB_00055b1c:\n                local_dc = (code *******)((int)pppppppcVar24 + (int)local_dc);\n                if ((int)pppppppcVar25 <= (int)local_dc) goto code_r0x00055b38;\n                local_150 = (code *******)0x1;\n                goto LAB_000557e4;\n              }\n              if (unaff_s8 == (code *******)&SUB_fffffffe) {\n                local_150 = (code *******)0xc;\n                goto LAB_000557e4;\n              }\n              local_58 = unaff_s8;\n              if (((uint)param_1[7] & 0x8000000) == 0) {\n                if (pppppppcVar3 < (code *******)0x2) {\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055c08;\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                else {\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                if (pppppppcVar3 < (code *******)0x2) {\nLAB_00055c6c:\n                  pppppppcVar28 = pppppppcVar33;\n                  unaff_s4 = local_60;\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055548;\n                }\n                else {\n                  cVar23 = *(code *)(pppppppcVar38 + 0x16);\nLAB_00055c20:\n                  pppppppcVar28 = pppppppcVar33;\n                  if (-1 < (char)cVar23) goto LAB_00055c6c;\n                }\n                pppppppcVar31 = local_54;\n                pppppppcVar42 = local_60;\n                unaff_s4 = pppppppcVar42;\n                if (unaff_s8 < (code *******)0x3fffffff) {\n                  param_4 = (code *******)((int)((int)unaff_s8 + 1) * 4);\n                  unaff_s5 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                  if (unaff_s5 == (code *******)0x0) {\nLAB_00055b9c:\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    local_150 = (code *******)0xc;\n                    pppppppcVar33 = pppppppcVar28;\n                  }\n                  else {\n                    pppppppcVar29 = (code *******)&local_d0;\n                    if (pppppppcVar42[0x13] == (code ******)0x0) {\n                      local_cc = (code *******)0x0;\n                      local_c8 = pppppppcVar31;\n                      local_c0 = 0;\n                      local_bc = 0;\n                      local_b8 = 0;\n                      local_d0 = unaff_s5;\n                      local_c4 = unaff_s8;\n                      param_5 = (code *******)FUN_0005421c(&local_b4);\n                      (*(code *)PTR_free_00079c24)(local_b8);\n                      if (param_5 == (code *******)0x0) {\n                        param_4 = (code *******)*unaff_s5;\n                        if (param_4 == (code *******)0x0) {\nLAB_00055b70:\n                          (*(code *)PTR_free_00079c24)(unaff_s5);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          pppppppcVar33 = pppppppcVar28;\n                          goto LAB_00055b04;\n                        }\nLAB_00055528:\n                        (*(code *)PTR_free_00079c24)(local_50);\n                        pppppppcVar33 = pppppppcVar28;\n                        unaff_s4 = pppppppcVar42;\n                        local_58 = unaff_s8;\n                        local_54 = pppppppcVar31;\n                        local_50 = unaff_s5;\n                        goto LAB_00055548;\n                      }\nLAB_00055acc:\n                      param_4 = (code *******)0x0;\n                      pppppppcVar33 = pppppppcVar28;\n                      unaff_s4 = pppppppcVar42;\n                    }\n                    else {\n                      param_4 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                      if (param_4 == (code *******)0x0) goto LAB_00055b9c;\n                      unaff_s7 = (code *******)&local_d0;\n                      pcVar8 = (code *)(PTR_DAT_000799a4 + 0x421c);\n                      pcVar9 = (code *)(PTR_DAT_000799a4 + -0x6bc0);\n                      pppppppcVar33 = pppppppcVar28;\n                      while( true ) {\n                        pppppppcVar28 = (code *******)((int)unaff_s8 + 1);\n                        param_6 = (code *******)((int)pppppppcVar28 * 4);\n                        pppppppcVar30 = param_6;\n                        (*(code *)PTR_memset_00079b00)(param_4,0);\n                        local_c0 = 0;\n                        local_bc = 0;\n                        local_b8 = 0;\n                        pppppppcVar29 = unaff_s7;\n                        local_d0 = unaff_s5;\n                        local_cc = param_4;\n                        local_c8 = pppppppcVar31;\n                        local_c4 = unaff_s8;\n                        param_5 = (code *******)(*pcVar8)(&local_b4);\n                        (*(code *)PTR_free_00079c24)(local_b8);\n                        unaff_s4 = pppppppcVar28;\n                        if (param_5 != (code *******)0x0) break;\n                        if ((*unaff_s5 != (code ******)0x0) ||\n                           (param_6 = param_6 + -1, *param_4 != (code ******)0x0)) {\n                          pppppppcVar29 = unaff_s5;\n                          pppppppcVar30 = param_4;\n                          param_5 = (code *******)FUN_000520d0(pppppppcVar42);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          if (param_5 != (code *******)0x0) goto LAB_00055acc;\n                          goto LAB_00055528;\n                        }\n                        param_6 = (code *******)((int)local_50 + (int)param_6);\n                        do {\n                          while( true ) {\n                            unaff_s8 = (code *******)((int)unaff_s8 + -1);\n                            if ((int)unaff_s8 < 0) goto LAB_00055b70;\n                            pppppppcVar29 = (code *******)param_6[-1];\n                            if (pppppppcVar29 != (code *******)0x0) break;\n                            param_6 = param_6 + -1;\n                          }\n                          param_6 = param_6 + -1;\n                        } while (((uint)pppppppcVar29[0xd] & 0x8000000) == 0);\n                        pppppppcVar31 = (code *******)(*pcVar9)(&local_b4,pppppppcVar29,unaff_s8);\n                        pppppppcVar33 = pppppppcVar28;\n                      }\n                    }\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    (*(code *)PTR_free_00079c24)(param_4);\n                    local_150 = param_5;\n                    if (param_5 == (code *******)0x1) goto LAB_00055b04;\n                  }\n                }\n                else {\n                  local_150 = (code *******)0xc;\n                  pppppppcVar33 = pppppppcVar28;\n                }\n                goto LAB_000557e4;\n              }\n              if (pppppppcVar38[0x13] != (code ******)0x0) {\n                pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                pppppppcVar30 = unaff_s8;\n                local_54 = (code *******)FUN_00049440(&local_b4);\n                goto LAB_00055c6c;\n              }\nLAB_00055c08:\n              if ((((uint)param_1[7] & 0x8000000) == 0) && ((code *******)0x1 < pppppppcVar3)) {\n                cVar23 = *(code *)(pppppppcVar38 + 0x16);\n                goto LAB_00055c20;\n              }\nLAB_00055548:\n              if (pppppppcVar3 == (code *******)0x0) goto LAB_000557e4;\n              if (pppppppcVar3 < (code *******)0x2) {\n                *param_8 = (code ******)0x0;\n                param_8[1] = (code ******)local_58;\n                goto LAB_000555ac;\n              }\n              pppppppcVar29 = param_8 + 2;\n              do {\n                pppppppcVar29[1] = (code ******)0xffffffff;\n                *pppppppcVar29 = (code ******)0xffffffff;\n                pppppppcVar29 = pppppppcVar29 + 2;\n              } while (pppppppcVar29 != param_8 + (int)pppppppcVar3 * 2);\n              *param_8 = (code ******)0x0;\n              param_8[1] = (code ******)local_58;\n              if (((uint)param_1[7] & 0x8000000) != 0) {\nLAB_000555ac:\n                pppppppcVar33 = param_8;\n                do {\n                  pppppppcVar29 = (code *******)*pppppppcVar33;\n                  if (pppppppcVar29 != (code *******)0xffffffff) {\n                    if (local_68 != '\0') {\n                      pppppppcVar34 = local_94;\n                      if (pppppppcVar29 != local_98) {\n                        pppppppcVar34 = *(code ********)(local_a8 + (int)pppppppcVar29 * 4);\n                      }\n                      *pppppppcVar33 = (code ******)pppppppcVar34;\n                      pppppppcVar29 = local_94;\n                      if (local_98 != (code *******)pppppppcVar33[1]) {\n                        pppppppcVar29 = *(code ********)(local_a8 + (int)pppppppcVar33[1] * 4);\n                      }\n                      pppppppcVar33[1] = (code ******)pppppppcVar29;\n                    }\n                    *pppppppcVar33 = (code ******)((int)local_dc + (int)*pppppppcVar33);\n                    pppppppcVar29 = (code *******)((int)local_dc + (int)pppppppcVar33[1]);\n                    pppppppcVar33[1] = (code ******)pppppppcVar29;\n                  }\n                  pppppppcVar33 = pppppppcVar33 + 2;\n                } while (pppppppcVar33 != param_8 + (int)pppppppcVar3 * 2);\n                if (0 < local_118) {\n                  pppppppcVar33 = param_8 + (int)pppppppcVar3 * 2;\n                  do {\n                    *pppppppcVar33 = (code ******)0xffffffff;\n                    pppppppcVar33[1] = (code ******)0xffffffff;\n                    pppppppcVar33 = pppppppcVar33 + 2;\n                  } while (pppppppcVar33 != param_8 + (int)param_7 * 2);\n                }\n                pppppppcVar30 = local_dc;\n                pppppppcVar33 = param_8;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar38[0x21] != (code ******)0x0) {\n                  pppppppcVar30 = (code *******)((int)pppppppcVar3 + -1);\n                  pppppppcVar34 = (code *******)0x0;\n                  pppppppcVar3 = param_8;\n                  while( true ) {\n                    pppppppcVar29 = (code *******)((int)pppppppcVar34 * 4);\n                    if (pppppppcVar30 == pppppppcVar34) break;\n                    if (*(code ********)((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) !=\n                        pppppppcVar34) {\n                      pppppppcVar3[2] =\n                           param_8[(int)((int)*(code ********)\n                                               ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1)\n                                   * 2];\n                      pppppppcVar3[3] =\n                           param_8[((int)*(code ******)\n                                          ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1) * 2 +\n                                   1];\n                    }\n                    pppppppcVar34 = (code *******)((int)pppppppcVar34 + 1);\n                    pppppppcVar3 = pppppppcVar3 + 2;\n                  }\n                }\n                goto LAB_000557e4;\n              }\n              if ((char)*(code *)(pppppppcVar38 + 0x16) < '\0') {\n                local_168 = (uint)(0 < (int)pppppppcVar38[0x13]);\n              }\n              else {\n                local_168 = 0;\n              }\n              pppppppcVar29 = &local_b4;\n              pppppppcVar30 = pppppppcVar3;\n              pppppppcVar33 = param_8;\n              local_150 = (code *******)FUN_0004f4a0(param_1);\n              if (local_150 == (code *******)0x0) goto LAB_000555ac;\n            }\n          }\n          else if (local_90 < 0x3fffffff) {\n            local_50 = (code *******)(*(code *)PTR_malloc_00079b54)((local_90 + 1) * 4);\n            if (local_50 != (code *******)0x0) goto LAB_00055a40;\n            local_150 = (code *******)0xc;\n            param_6 = pppppppcVar36;\n          }\n          else {\n            local_150 = (code *******)0xc;\n            param_6 = pppppppcVar36;\n          }\n        }\n        else {\n          unaff_s5 = (code *******)((int)ppppppcVar35 * 8);\n          if (pppppppcVar36 < (code *******)0xccccccd) {\n            unaff_s4 = (code *******)(*(code *)PTR_malloc_00079b54)((int)ppppppcVar35 * 0x28);\n            local_40 = unaff_s4;\n            local_30 = (*(code *)PTR_malloc_00079b54)(unaff_s5);\n            if ((unaff_s4 != (code *******)0x0) && (local_30 != 0)) goto LAB_000559f0;\n          }\n          local_150 = (code *******)0xc;\n          param_6 = pppppppcVar36;\n        }\nLAB_000557e4:\n        (*(code *)PTR_free_00079c24)(local_50);\n        param_1 = pppppppcVar30;\n        if (pppppppcVar38[0x13] != (code ******)0x0) {\n          FUN_0004b7e8(&local_b4);\n          (*(code *)PTR_free_00079c24)(local_30);\n          (*(code *)PTR_free_00079c24)(local_40);\n          param_1 = pppppppcVar30;\n        }\n        FUN_0004b2bc(&local_b4);\n        pppppppcStack_1a0 = param_4;\n        pppppppcStack_19c = pppppppcVar31;\n      }\n    }" else (compound_statement "{\n      pppppppcVar3 = param_5;\n      if ((((pppppppcVar38[9][2] == (code *****)0x0) && (pppppppcVar38[10][2] == (code *****)0x0))\n          && ((pppppppcVar38[0xb][2] == (code *****)0x0 || (((uint)param_1[7] & 0x1000000) == 0))))\n         && ((pppppppcVar3 = param_4, param_4 != (code *******)0x0 &&\n             (param_4 = param_5, pppppppcVar3 = param_5, param_5 != (code *******)0x0)))) {\n        local_150 = (code *******)0x1;\n        pppppppcStack_1a0 = param_5;\n      }\n      else {\n        param_5 = pppppppcVar3;\n        pppppppcVar3 = (code *******)((int)param_7 - local_118);\n        if (pppppppcVar3 == (code *******)0x0) {\n          pppppppcVar34 = (code *******)(uint)(pppppppcVar38[0x13] != (code ******)0x0);\n        }\n        else {\n          pppppppcVar34 = (code *******)0x1;\n        }\n        ppppppcVar32 = param_1[5];\n        local_6c = (byte)((uint)((int)param_1[3] << 9) >> 0x1f);\n        local_64 = (code *******)pppppppcVar38[0x17];\n        pppppppcVar31 = (code *******)((int)pppppppcVar38[2] + 1);\n        if ((int)pppppppcVar38[2] + 1 < (int)local_64) {\n          pppppppcVar31 = local_64;\n        }\n        pppppppcVar30 = (code *******)(uint)((int)param_3 + 1 < (int)pppppppcVar31);\n        pppppppcVar33 = (code *******)0x1;\n        local_69 = local_6c;\n        if (ppppppcVar32 != (code ******)0x0) {\n          local_69 = 1;\n        }\n        local_6b = (byte)((uint)((int)pppppppcVar38[0x16] << 2) >> 0x1f);\n        local_6a = (byte)((uint)((int)pppppppcVar38[0x16] << 3) >> 0x1f);\n        pppppppcVar29 = (code *******)((int)param_3 + 1);\n        if (pppppppcVar30 == (code *******)0x0) {\n          pppppppcVar29 = pppppppcVar31;\n        }\n        local_b4 = param_2;\n        local_88 = param_3;\n        local_84 = param_3;\n        local_80 = param_3;\n        local_7c = param_3;\n        local_74 = ppppppcVar32;\n        local_150 = (code *******)FUN_00046d2c(&local_b4);\n        pppppppcVar31 = pppppppcVar34;\n        param_6 = param_6;\n        if (local_150 != (code *******)0x0) goto LAB_000557e4;\n        local_70 = pppppppcVar38 + 0x18;\n        local_66 = (byte)((uint)((int)pppppppcVar38[0x16] << 4) >> 0x1f);\n        pppppppcVar2 = (code *******)0x0;\n        local_98 = pppppppcVar2;\n        if ((local_69 == 0) && (local_b0 = param_2, (int)pppppppcVar38[0x17] < 2)) {\n          local_98 = param_3;\n        }\n        local_7c = param_6;\n        local_80 = param_6;\n        local_67 = (byte)((uint)((int)param_1[7] << 7) >> 0x1f);\n        ppppppcVar35 = pppppppcVar38[0x13];\n        pppppppcVar36 = (code *******)((int)ppppppcVar35 * 2);\n        local_5c = param_9;\n        local_58 = (code *******)0xffffffff;\n        local_94 = local_98;\n        if ((int)pppppppcVar36 < 1) {\nLAB_000559f0:\n          local_3c = 1;\n          local_44 = pppppppcVar36;\n          local_34 = pppppppcVar36;\n          if ((pppppppcVar3 < (code *******)0x2) && (((uint)pppppppcVar38[0x16] & 0x40000000) == 0))\n          {\n            local_50 = (code *******)0x0;\nLAB_00055a40:\n            local_78 = 6;\n            if (((uint)param_9 & 1) != 0) {\n              local_78 = 4;\n            }\n            pppppppcVar24 = (code *******)0x1;\n            pppppppcVar25 = param_4;\n            if ((int)param_5 < (int)param_4) {\n              pppppppcVar24 = (code *******)0xffffffff;\n              pppppppcVar25 = param_5;\n            }\n            pppppppcVar26 = param_5;\n            if ((int)param_5 <= (int)param_4) {\n              pppppppcVar26 = param_4;\n            }\n            ppppppcVar35 = pppppppcVar38[0x17];\n            uVar16 = 8;\n            if (local_148 != (code *******)0x0) {\n              if (ppppppcVar35 == (code ******)0x1) {\n                pppppppcVar28 = (code *******)0x4;\n              }\n              else {\n                pppppppcVar28 = pppppppcVar2;\n                if ((-1 < (int)param_1[3] << 9) && (ppppppcVar32 == (code ******)0x0)) {\n                  pppppppcVar28 = (code *******)0x4;\n                }\n              }\n              pppppppcVar29 = (code *******)0x0;\n              if ((int)param_4 <= (int)param_5) {\n                pppppppcVar29 = (code *******)0x2;\n              }\n              uVar16 = (uint)(ppppppcVar32 != (code ******)0x0) | (uint)pppppppcVar28 |\n                       (uint)pppppppcVar29;\n            }\n            local_dc = param_4;\n            if ((int)param_4 < (int)pppppppcVar25) {\n              local_150 = (code *******)0x1;\n              param_6 = pppppppcVar36;\n            }\n            else if ((int)pppppppcVar26 < (int)param_4) {\n              local_150 = (code *******)0x1;\n              param_4 = (code *******)(uint)((int)param_5 < (int)param_4);\n              param_6 = pppppppcVar36;\n            }\n            else {\n              pppppppcVar36 = (code *******)&local_dc;\n              if ((code *******)(uint)((int)param_5 < (int)param_4) != (code *******)0x0) {\n                pppppppcVar36 = (code *******)0x0;\n              }\n              pcVar4 = (code *)(PTR_DAT_000799a4 + -0x2b7c);\n              piVar5 = (int *)(PTR_s_nt0_000795b8 + (uVar16 - 4) * 4 + 0x6e38);\nLAB_00055b44:\n              if (uVar16 - 4 < 5) {\n                    /* WARNING: Could not emulate address calculation at 0x00054920 */\n                    /* WARNING: Treating indirect jump as call */\n                pppppppcVar29 = (code *******)(*(code *)(&_gp_1 + *piVar5))();\n                return pppppppcVar29;\n              }\n              param_5 = &local_b4;\n              pppppppcVar28 = pppppppcVar33;\n              while( true ) {\n                param_4 = local_dc;\n                pppppppcVar33 = (code *******)((int)local_dc - local_9c);\n                pppppppcVar30 = param_9;\n                pppppppcVar31 = pppppppcVar2;\n                param_6 = local_148;\n                unaff_s4 = param_3;\n                unaff_s5 = pppppppcVar24;\n                unaff_s7 = pppppppcVar26;\n                if (local_94 <= pppppppcVar33) {\n                  pppppppcVar29 = local_dc;\n                  local_150 = (code *******)(*pcVar4)(param_5);\n                  pppppppcVar33 = pppppppcVar28;\n                  if (local_150 != (code *******)0x0) goto LAB_000557e4;\n                  pppppppcVar33 = (code *******)((int)param_4 - local_9c);\n                }\n                if ((int)param_4 < (int)param_3) {\n                  uVar7 = (uint)(byte)*(code *)((int)pppppppcVar33 + (int)local_b0);\n                }\n                else {\n                  uVar7 = 0;\n                }\n                param_4 = (code *******)((int)param_4 + (int)pppppppcVar24);\n                if (*(code *)((int)local_148 + uVar7) != (code)0x0) break;\n                pppppppcVar33 = pppppppcVar28;\n                local_dc = param_4;\n                if ((int)param_4 < (int)pppppppcVar25) {\n                  local_150 = (code *******)0x1;\n                  goto LAB_000557e4;\n                }\n                if ((code *******)(uint)((int)pppppppcVar26 < (int)param_4) != (code *******)0x0) {\n                  local_150 = (code *******)0x1;\n                  param_4 = (code *******)(uint)((int)pppppppcVar26 < (int)param_4);\n                  goto LAB_000557e4;\n                }\n              }\n              while( true ) {\n                pppppppcVar29 = local_dc;\n                pppppppcVar30 = param_9;\n                pppppppcVar6 = (code *******)(*pcVar4)(&local_b4);\n                pppppppcVar14 = local_60;\n                pppppppcVar42 = local_8c;\n                pppppppcVar33 = pppppppcVar28;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar6 != (code *******)0x0) goto LAB_000557e4;\n                if (((ppppppcVar35 != (code ******)0x1) && (local_98 != (code *******)0x0)) &&\n                   (*local_ac == -1)) goto LAB_00055b1c;\n                local_3c = 0;\n                local_48 = 0;\n                local_4c = (code *******)0x0;\n                local_138 = local_8c;\n                local_d8 = (code *******)0x0;\n                unaff_s7 = (code *******)local_60[9];\n                pppppppcVar30 = local_5c;\n                param_4 = pppppppcVar14;\n                if (((uint)unaff_s7[0xd] & 0x1000000) == 0) break;\n                pppppppcVar29 = (code *******)((int)local_8c + -1);\n                pppppppcVar33 = (code *******)FUN_00049110(&local_b4);\n                if (((uint)pppppppcVar33 & 1) == 0) {\n                  if (pppppppcVar33 == (code *******)0x0) break;\n                  if (((uint)pppppppcVar33 & 6) == 6) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xc];\n                    goto LAB_00054d1c;\n                  }\n                  if (((uint)pppppppcVar33 & 2) != 0) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xb];\n                    goto LAB_00054d1c;\n                  }\n                  pppppppcVar28 = pppppppcVar33;\n                  if (((uint)pppppppcVar33 & 4) == 0) break;\n                  pppppppcVar30 = (code *******)unaff_s7[10];\n                  pppppppcVar29 = pppppppcVar14;\n                  unaff_s7 = (code *******)FUN_0004ae34(&local_d8);\n                  pppppppcVar28 = pppppppcVar33;\n                  if (unaff_s7 != (code *******)0x0) break;\n                  if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                }\n                else {\n                  unaff_s7 = (code *******)pppppppcVar14[10];\nLAB_00054d1c:\n                  pppppppcVar28 = (code *******)PTR_s_nt0_000795b8;\n                  if (unaff_s7 != (code *******)0x0) break;\n                }\n                pppppppcVar28 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                local_dc = (code *******)\n                           (*(code *)PTR___assert_fail_000799f8)\n                                     (PTR_s_nt0_000795b8 + 0x71a0,pppppppcVar29,0x435);\n                if (local_dc == pppppppcVar26) {\n                  if ((int)local_dc < (int)param_3) {\n                    uVar7 = (uint)(byte)*(code *)((int)local_dc + (int)param_2);\n                  }\n                  else {\n                    uVar7 = 0;\n                  }\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    uVar7 = (uint)*(byte *)((int)ppppppcVar32 + uVar7);\n                  }\n                  if (*(code *)((int)local_148 + uVar7) == (code)0x0) {\n                    local_150 = (code *******)0x1;\n                    pppppppcVar30 = param_9;\n                    pppppppcVar33 = pppppppcVar28;\n                    goto LAB_000557e4;\n                  }\n                }\n              }\n              pppppppcVar33 = pppppppcVar28;\n              bVar1 = pppppppcVar36 != (code *******)0x0;\n              if ((local_50 == (code *******)0x0) ||\n                 (local_50[(int)pppppppcVar42] = (code ******)unaff_s7,\n                 pppppppcVar14[0x13] == (code ******)0x0)) {\nLAB_00054d50:\n                if ((int)unaff_s7[0xd] << 4 < 0) {\n                  if ((((uint)unaff_s7[0xd] & 0x1000000) == 0) ||\n                     (pppppppcVar29 = unaff_s7, pppppppcVar30 = pppppppcVar42,\n                     iVar18 = FUN_00049440(&local_b4), iVar18 != 0)) {\n                    unaff_s8 = pppppppcVar42;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                  }\n                  else {\n                    pppppppcVar42 = (code *******)0xffffffff;\n                    pppppppcVar28 = (code *******)0x0;\n                  }\n                }\n                else {\n                  pppppppcVar42 = (code *******)0xffffffff;\n                  pppppppcVar28 = (code *******)0x0;\n                }\n                pcVar8 = (code *)(PTR_DAT_000799a4 + -0x7144);\n                pcVar9 = (code *)(PTR_DAT_000799a4 + -0x1980);\n                pcVar10 = (code *)(PTR_DAT_000799a4 + -0x2f9c);\n                unaff_s8 = pppppppcVar42;\n                local_144 = pppppppcVar36;\n                while( true ) {\n                  uVar44 = CONCAT44(local_98,local_84);\n                  unaff_s5 = (code *******)((int)local_8c + 1);\n                  pppppppcVar29 = local_8c;\n                  if ((int)local_7c <= (int)local_8c) break;\n                  if (((int)local_90 <= (int)unaff_s5) && ((int)local_90 < (int)local_84))\n                  goto LAB_00054e94;\n                  if ((int)local_98 <= (int)unaff_s5) {\n                    while ((int)((ulonglong)uVar44 >> 0x20) < (int)uVar44) {\nLAB_00054e94:\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 2);\n                      local_d8 = (code *******)(*pcVar8)(&local_b4);\n                      if (local_d8 == (code *******)0x0) break;\n                      pppppppcVar14 = param_4;\n                      if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                      pppppppcVar33 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                      pppppppcVar30 = (code *******)0x46c;\n                      pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                      uVar44 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0);\n                      pppppppcVar28 = pppppppcVar38;\n                    }\n                  }\n                  pppppppcVar42 = local_60;\n                  if ((int)unaff_s7[0xd] << 5 < 0) {\n                    pppppppcVar31 = pppppppcVar42;\n                    if (0 < (int)unaff_s7[2]) {\n                      pcVar11 = (code *)(PTR_DAT_000799a4 + -0x6fdc);\n                      pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6ef0);\n                      param_6 = (code *******)0x0;\n                      do {\n                        param_5 = (code *******)unaff_s7[3][(int)param_6];\n                        ppppppcVar39 = *pppppppcVar42;\n                        pppppcVar13 = ppppppcVar39[(int)param_5 * 2 + 1];\n                        if (((uint)pppppcVar13 & 0x800) != 0) {\n                          if (((uint)pppppcVar13 & 0xffc000) != 0) {\n                            pppppppcVar29 = local_8c;\n                            uVar19 = (*pcVar12)(&local_b4,local_8c,local_5c);\n                            uVar7 = (uint)((int)ppppppcVar39[(int)param_5 * 2 + 1] << 8) >> 0x16;\n                            if ((uVar7 & 4) == 0) {\n                              uVar27 = uVar19 & 1;\n                              if ((uVar7 & 8) != 0) goto joined_r0x00054f40;\n                            }\n                            else {\n                              uVar27 = uVar7 & 8;\n                              if ((uVar19 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                              if (uVar27 != 0) goto LAB_000550a4;\n                            }\n                            if ((((uVar7 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                               (((uVar7 & 0x80) != 0 &&\n                                (pppppppcVar33 = local_8c, (uVar19 & 8) == 0)))) goto LAB_000550a4;\n                          }\n                          pppppppcVar30 = &local_b4;\n                          pppppppcVar29 = param_5;\n                          pppppppcVar33 = local_8c;\n                          iVar18 = (*pcVar10)(pppppppcVar42);\n                          if (iVar18 != 0) {\n                            pppppppcVar14 = (code *******)((int)local_8c + iVar18);\n                            if (iVar18 <= local_3c) {\n                              iVar18 = local_3c;\n                            }\n                            pppppppcVar29 = pppppppcVar14;\n                            local_3c = iVar18;\n                            local_d4 = (code *******)(*pcVar11)(&local_b4);\n                            pppppppcVar15 = local_d4;\n                            if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                            pppppppcVar30 =\n                                 (code *******)\n                                 (pppppppcVar42[6] + (int)pppppppcVar42[3][(int)param_5] * 3);\n                            unaff_s4 = (code *******)((int)pppppppcVar14 * 4);\n                            param_5 = local_50 + (int)pppppppcVar14;\n                            if (*param_5 == (code ******)0x0) {\n                              local_d0 = (code *******)*pppppppcVar30;\n                              local_cc = (code *******)pppppppcVar30[1];\n                              local_c8 = (code *******)pppppppcVar30[2];\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *param_5 = ppppppcVar39;\n                            }\n                            else {\n                              pppppppcVar29 = (code *******)(*param_5)[10];\n                              local_d4 = (code *******)FUN_000484bc(&local_d0);\n                              pppppppcVar15 = local_d4;\n                              if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar15 = local_50 + (int)pppppppcVar14;\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *pppppppcVar15 = ppppppcVar39;\n                              (*(code *)PTR_free_00079c24)(local_c8);\n                            }\n                            unaff_s4 = local_50 + (int)pppppppcVar14;\n                            if ((*unaff_s4 == (code ******)0x0) &&\n                               (pppppppcVar15 = local_d4, local_d4 != (code *******)0x0))\n                            goto LAB_00055e44;\n                          }\n                        }\nLAB_000550a4:\n                        param_6 = (code *******)((int)param_6 + 1);\n                      } while ((int)param_6 < (int)unaff_s7[2]);\n                    }\n                    local_d8 = (code *******)0x0;\n                  }\n                  uVar7 = (uint)(byte)*(code *)((int)local_8c + (int)local_b0);\n                  local_8c = (code *******)((int)local_8c + 1);\n                  do {\n                    if (unaff_s7[0xb] != (code ******)0x0) {\n                      pppppppcVar30 = (code *******)unaff_s7[0xb][uVar7];\nLAB_000553a0:\n                      pppppppcVar14 = pppppppcVar30;\n                      if (local_50 != (code *******)0x0) goto LAB_000553ac;\n                      goto LAB_000553cc;\n                    }\n                    pppppppcVar31 = (code *******)unaff_s7[0xc];\n                    if (pppppppcVar31 != (code *******)0x0) {\n                      pppppppcVar29 = (code *******)((int)local_8c + -1);\n                      uVar19 = FUN_00049110(&local_b4);\n                      if ((uVar19 & 1) == 0) {\n                        pppppppcVar30 = (code *******)pppppppcVar31[uVar7];\n                      }\n                      else {\n                        pppppppcVar31 = pppppppcVar31 + uVar7 + 0x100;\n                        pppppppcVar30 = (code *******)*pppppppcVar31;\n                      }\n                      goto LAB_000553a0;\n                    }\n                    pppppppcVar29 = unaff_s7;\n                    pppppppcVar30 = local_5c;\n                    iVar18 = (*pcVar9)(local_60);\n                  } while (iVar18 != 0);\n                  local_d8 = (code *******)0xc;\n                  pppppppcVar15 = local_d8;\nLAB_00055e44:\n                  local_d8 = pppppppcVar15;\n                  param_4 = (code *******)0x0;\n                  if (local_50 == (code *******)0x0) {\n                    pppppppcVar14 = param_4;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    break;\n                  }\n                  pppppppcVar30 = (code *******)0x0;\nLAB_000553ac:\n                  pppppppcVar29 = &local_b4;\n                  pppppppcVar14 = (code *******)FUN_00053684(&local_d8);\nLAB_000553cc:\n                  param_4 = pppppppcVar14;\n                  if (pppppppcVar14 == (code *******)0x0) {\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    if ((local_50 == (code *******)0x0) ||\n                       ((pppppppcVar28 != (code *******)0x0 && (pppppppcVar34 == (code *******)0x0))\n                       )) break;\n                    param_6 = &local_b4;\n                    param_5 = (code *******)&local_d8;\n                    pppppppcVar31 = (code *******)(PTR_DAT_000799a4 + 0x3684);\n                    do {\n                      pppppppcVar15 = local_50 + (int)local_8c;\n                      pppppppcVar42 = local_8c;\n                      do {\n                        pppppppcVar42 = (code *******)((int)pppppppcVar42 + 1);\n                        pppppppcVar29 = local_4c;\n                        param_4 = pppppppcVar14;\n                        if ((int)local_4c < (int)pppppppcVar42) goto LAB_00055da8;\n                        local_8c = (code *******)((int)local_8c + 1);\n                        pppppppcVar15 = pppppppcVar15 + 1;\n                      } while (*pppppppcVar15 == (code ******)0x0);\n                      pppppppcVar30 = (code *******)0x0;\n                      pppppppcVar29 = param_6;\n                      param_4 = (code *******)(*(code *)pppppppcVar31)(param_5);\n                      if (local_d8 != (code *******)0x0) {\n                        if (param_4 == (code *******)0x0) goto LAB_00055da8;\n                        break;\n                      }\n                      pppppppcVar29 = local_4c;\n                    } while (param_4 == (code *******)0x0);\n                  }\n                  pppppppcVar15 = (code *******)((uint)unaff_s7 ^ (uint)param_4);\n                  pppppppcVar42 = unaff_s7;\n                  pppppppcVar14 = local_138;\n                  if ((bVar1) &&\n                     (pppppppcVar42 = pppppppcVar15, pppppppcVar14 = unaff_s5,\n                     pppppppcVar15 != (code *******)0x0)) {\n                    bVar1 = false;\n                    pppppppcVar14 = local_138;\n                  }\n                  local_138 = pppppppcVar14;\n                  unaff_s7 = param_4;\n                  if ((((uint)param_4[0xd] & 0x8000000) != 0) &&\n                     ((((uint)param_4[0xd] & 0x1000000) == 0 ||\n                      (pppppppcVar29 = param_4, pppppppcVar30 = local_8c,\n                      iVar18 = FUN_00049440(&local_b4), iVar18 != 0)))) {\n                    unaff_s7 = pppppppcVar42;\n                    unaff_s8 = local_8c;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                    local_144 = (code *******)0x0;\n                    unaff_s7 = param_4;\n                  }\n                }\nLAB_00055da8:\n                if (local_144 != (code *******)0x0) {\n                  *local_144 = (code ******)((int)local_138 + (int)*local_144);\n                }\n              }\n              else {\n                param_4 = unaff_s7 + 1;\n                pppppppcVar30 = (code *******)0x0;\n                pppppppcVar29 = param_4;\n                local_d8 = (code *******)FUN_00047a44(&local_b4);\n                unaff_s8 = local_d8;\n                if (local_d8 == (code *******)0x0) {\n                  if (((uint)unaff_s7[0xd] & 0x2000000) == 0) {\n                    pppppppcVar29 = param_4;\n                    bVar1 = false;\n                  }\n                  else {\n                    pppppppcVar29 = param_4;\n                    local_d8 = (code *******)FUN_00052d84(&local_b4);\n                    unaff_s8 = local_d8;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055dbc;\n                    bVar1 = false;\n                  }\n                  goto LAB_00054d50;\n                }\n              }\nLAB_00055dbc:\n              if (unaff_s8 == (code *******)0xffffffff) {\nLAB_00055b04:\n                FUN_0004b7e8(&local_b4);\nLAB_00055b1c:\n                local_dc = (code *******)((int)pppppppcVar24 + (int)local_dc);\n                if ((int)pppppppcVar25 <= (int)local_dc) goto code_r0x00055b38;\n                local_150 = (code *******)0x1;\n                goto LAB_000557e4;\n              }\n              if (unaff_s8 == (code *******)&SUB_fffffffe) {\n                local_150 = (code *******)0xc;\n                goto LAB_000557e4;\n              }\n              local_58 = unaff_s8;\n              if (((uint)param_1[7] & 0x8000000) == 0) {\n                if (pppppppcVar3 < (code *******)0x2) {\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055c08;\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                else {\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                if (pppppppcVar3 < (code *******)0x2) {\nLAB_00055c6c:\n                  pppppppcVar28 = pppppppcVar33;\n                  unaff_s4 = local_60;\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055548;\n                }\n                else {\n                  cVar23 = *(code *)(pppppppcVar38 + 0x16);\nLAB_00055c20:\n                  pppppppcVar28 = pppppppcVar33;\n                  if (-1 < (char)cVar23) goto LAB_00055c6c;\n                }\n                pppppppcVar31 = local_54;\n                pppppppcVar42 = local_60;\n                unaff_s4 = pppppppcVar42;\n                if (unaff_s8 < (code *******)0x3fffffff) {\n                  param_4 = (code *******)((int)((int)unaff_s8 + 1) * 4);\n                  unaff_s5 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                  if (unaff_s5 == (code *******)0x0) {\nLAB_00055b9c:\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    local_150 = (code *******)0xc;\n                    pppppppcVar33 = pppppppcVar28;\n                  }\n                  else {\n                    pppppppcVar29 = (code *******)&local_d0;\n                    if (pppppppcVar42[0x13] == (code ******)0x0) {\n                      local_cc = (code *******)0x0;\n                      local_c8 = pppppppcVar31;\n                      local_c0 = 0;\n                      local_bc = 0;\n                      local_b8 = 0;\n                      local_d0 = unaff_s5;\n                      local_c4 = unaff_s8;\n                      param_5 = (code *******)FUN_0005421c(&local_b4);\n                      (*(code *)PTR_free_00079c24)(local_b8);\n                      if (param_5 == (code *******)0x0) {\n                        param_4 = (code *******)*unaff_s5;\n                        if (param_4 == (code *******)0x0) {\nLAB_00055b70:\n                          (*(code *)PTR_free_00079c24)(unaff_s5);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          pppppppcVar33 = pppppppcVar28;\n                          goto LAB_00055b04;\n                        }\nLAB_00055528:\n                        (*(code *)PTR_free_00079c24)(local_50);\n                        pppppppcVar33 = pppppppcVar28;\n                        unaff_s4 = pppppppcVar42;\n                        local_58 = unaff_s8;\n                        local_54 = pppppppcVar31;\n                        local_50 = unaff_s5;\n                        goto LAB_00055548;\n                      }\nLAB_00055acc:\n                      param_4 = (code *******)0x0;\n                      pppppppcVar33 = pppppppcVar28;\n                      unaff_s4 = pppppppcVar42;\n                    }\n                    else {\n                      param_4 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                      if (param_4 == (code *******)0x0) goto LAB_00055b9c;\n                      unaff_s7 = (code *******)&local_d0;\n                      pcVar8 = (code *)(PTR_DAT_000799a4 + 0x421c);\n                      pcVar9 = (code *)(PTR_DAT_000799a4 + -0x6bc0);\n                      pppppppcVar33 = pppppppcVar28;\n                      while( true ) {\n                        pppppppcVar28 = (code *******)((int)unaff_s8 + 1);\n                        param_6 = (code *******)((int)pppppppcVar28 * 4);\n                        pppppppcVar30 = param_6;\n                        (*(code *)PTR_memset_00079b00)(param_4,0);\n                        local_c0 = 0;\n                        local_bc = 0;\n                        local_b8 = 0;\n                        pppppppcVar29 = unaff_s7;\n                        local_d0 = unaff_s5;\n                        local_cc = param_4;\n                        local_c8 = pppppppcVar31;\n                        local_c4 = unaff_s8;\n                        param_5 = (code *******)(*pcVar8)(&local_b4);\n                        (*(code *)PTR_free_00079c24)(local_b8);\n                        unaff_s4 = pppppppcVar28;\n                        if (param_5 != (code *******)0x0) break;\n                        if ((*unaff_s5 != (code ******)0x0) ||\n                           (param_6 = param_6 + -1, *param_4 != (code ******)0x0)) {\n                          pppppppcVar29 = unaff_s5;\n                          pppppppcVar30 = param_4;\n                          param_5 = (code *******)FUN_000520d0(pppppppcVar42);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          if (param_5 != (code *******)0x0) goto LAB_00055acc;\n                          goto LAB_00055528;\n                        }\n                        param_6 = (code *******)((int)local_50 + (int)param_6);\n                        do {\n                          while( true ) {\n                            unaff_s8 = (code *******)((int)unaff_s8 + -1);\n                            if ((int)unaff_s8 < 0) goto LAB_00055b70;\n                            pppppppcVar29 = (code *******)param_6[-1];\n                            if (pppppppcVar29 != (code *******)0x0) break;\n                            param_6 = param_6 + -1;\n                          }\n                          param_6 = param_6 + -1;\n                        } while (((uint)pppppppcVar29[0xd] & 0x8000000) == 0);\n                        pppppppcVar31 = (code *******)(*pcVar9)(&local_b4,pppppppcVar29,unaff_s8);\n                        pppppppcVar33 = pppppppcVar28;\n                      }\n                    }\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    (*(code *)PTR_free_00079c24)(param_4);\n                    local_150 = param_5;\n                    if (param_5 == (code *******)0x1) goto LAB_00055b04;\n                  }\n                }\n                else {\n                  local_150 = (code *******)0xc;\n                  pppppppcVar33 = pppppppcVar28;\n                }\n                goto LAB_000557e4;\n              }\n              if (pppppppcVar38[0x13] != (code ******)0x0) {\n                pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                pppppppcVar30 = unaff_s8;\n                local_54 = (code *******)FUN_00049440(&local_b4);\n                goto LAB_00055c6c;\n              }\nLAB_00055c08:\n              if ((((uint)param_1[7] & 0x8000000) == 0) && ((code *******)0x1 < pppppppcVar3)) {\n                cVar23 = *(code *)(pppppppcVar38 + 0x16);\n                goto LAB_00055c20;\n              }\nLAB_00055548:\n              if (pppppppcVar3 == (code *******)0x0) goto LAB_000557e4;\n              if (pppppppcVar3 < (code *******)0x2) {\n                *param_8 = (code ******)0x0;\n                param_8[1] = (code ******)local_58;\n                goto LAB_000555ac;\n              }\n              pppppppcVar29 = param_8 + 2;\n              do {\n                pppppppcVar29[1] = (code ******)0xffffffff;\n                *pppppppcVar29 = (code ******)0xffffffff;\n                pppppppcVar29 = pppppppcVar29 + 2;\n              } while (pppppppcVar29 != param_8 + (int)pppppppcVar3 * 2);\n              *param_8 = (code ******)0x0;\n              param_8[1] = (code ******)local_58;\n              if (((uint)param_1[7] & 0x8000000) != 0) {\nLAB_000555ac:\n                pppppppcVar33 = param_8;\n                do {\n                  pppppppcVar29 = (code *******)*pppppppcVar33;\n                  if (pppppppcVar29 != (code *******)0xffffffff) {\n                    if (local_68 != '\0') {\n                      pppppppcVar34 = local_94;\n                      if (pppppppcVar29 != local_98) {\n                        pppppppcVar34 = *(code ********)(local_a8 + (int)pppppppcVar29 * 4);\n                      }\n                      *pppppppcVar33 = (code ******)pppppppcVar34;\n                      pppppppcVar29 = local_94;\n                      if (local_98 != (code *******)pppppppcVar33[1]) {\n                        pppppppcVar29 = *(code ********)(local_a8 + (int)pppppppcVar33[1] * 4);\n                      }\n                      pppppppcVar33[1] = (code ******)pppppppcVar29;\n                    }\n                    *pppppppcVar33 = (code ******)((int)local_dc + (int)*pppppppcVar33);\n                    pppppppcVar29 = (code *******)((int)local_dc + (int)pppppppcVar33[1]);\n                    pppppppcVar33[1] = (code ******)pppppppcVar29;\n                  }\n                  pppppppcVar33 = pppppppcVar33 + 2;\n                } while (pppppppcVar33 != param_8 + (int)pppppppcVar3 * 2);\n                if (0 < local_118) {\n                  pppppppcVar33 = param_8 + (int)pppppppcVar3 * 2;\n                  do {\n                    *pppppppcVar33 = (code ******)0xffffffff;\n                    pppppppcVar33[1] = (code ******)0xffffffff;\n                    pppppppcVar33 = pppppppcVar33 + 2;\n                  } while (pppppppcVar33 != param_8 + (int)param_7 * 2);\n                }\n                pppppppcVar30 = local_dc;\n                pppppppcVar33 = param_8;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar38[0x21] != (code ******)0x0) {\n                  pppppppcVar30 = (code *******)((int)pppppppcVar3 + -1);\n                  pppppppcVar34 = (code *******)0x0;\n                  pppppppcVar3 = param_8;\n                  while( true ) {\n                    pppppppcVar29 = (code *******)((int)pppppppcVar34 * 4);\n                    if (pppppppcVar30 == pppppppcVar34) break;\n                    if (*(code ********)((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) !=\n                        pppppppcVar34) {\n                      pppppppcVar3[2] =\n                           param_8[(int)((int)*(code ********)\n                                               ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1)\n                                   * 2];\n                      pppppppcVar3[3] =\n                           param_8[((int)*(code ******)\n                                          ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1) * 2 +\n                                   1];\n                    }\n                    pppppppcVar34 = (code *******)((int)pppppppcVar34 + 1);\n                    pppppppcVar3 = pppppppcVar3 + 2;\n                  }\n                }\n                goto LAB_000557e4;\n              }\n              if ((char)*(code *)(pppppppcVar38 + 0x16) < '\0') {\n                local_168 = (uint)(0 < (int)pppppppcVar38[0x13]);\n              }\n              else {\n                local_168 = 0;\n              }\n              pppppppcVar29 = &local_b4;\n              pppppppcVar30 = pppppppcVar3;\n              pppppppcVar33 = param_8;\n              local_150 = (code *******)FUN_0004f4a0(param_1);\n              if (local_150 == (code *******)0x0) goto LAB_000555ac;\n            }\n          }\n          else if (local_90 < 0x3fffffff) {\n            local_50 = (code *******)(*(code *)PTR_malloc_00079b54)((local_90 + 1) * 4);\n            if (local_50 != (code *******)0x0) goto LAB_00055a40;\n            local_150 = (code *******)0xc;\n            param_6 = pppppppcVar36;\n          }\n          else {\n            local_150 = (code *******)0xc;\n            param_6 = pppppppcVar36;\n          }\n        }\n        else {\n          unaff_s5 = (code *******)((int)ppppppcVar35 * 8);\n          if (pppppppcVar36 < (code *******)0xccccccd) {\n            unaff_s4 = (code *******)(*(code *)PTR_malloc_00079b54)((int)ppppppcVar35 * 0x28);\n            local_40 = unaff_s4;\n            local_30 = (*(code *)PTR_malloc_00079b54)(unaff_s5);\n            if ((unaff_s4 != (code *******)0x0) && (local_30 != 0)) goto LAB_000559f0;\n          }\n          local_150 = (code *******)0xc;\n          param_6 = pppppppcVar36;\n        }\nLAB_000557e4:\n        (*(code *)PTR_free_00079c24)(local_50);\n        param_1 = pppppppcVar30;\n        if (pppppppcVar38[0x13] != (code ******)0x0) {\n          FUN_0004b7e8(&local_b4);\n          (*(code *)PTR_free_00079c24)(local_30);\n          (*(code *)PTR_free_00079c24)(local_40);\n          param_1 = pppppppcVar30;\n        }\n        FUN_0004b2bc(&local_b4);\n        pppppppcStack_1a0 = param_4;\n        pppppppcStack_19c = pppppppcVar31;\n      }\n    }" { (expression_statement "pppppppcVar3 = param_5;" (assignment_expression "pppppppcVar3 = param_5" identifier = identifier) ;) (if_statement "if ((((pppppppcVar38[9][2] == (code *****)0x0) && (pppppppcVar38[10][2] == (code *****)0x0))\n          && ((pppppppcVar38[0xb][2] == (code *****)0x0 || (((uint)param_1[7] & 0x1000000) == 0))))\n         && ((pppppppcVar3 = param_4, param_4 != (code *******)0x0 &&\n             (param_4 = param_5, pppppppcVar3 = param_5, param_5 != (code *******)0x0)))) {\n        local_150 = (code *******)0x1;\n        pppppppcStack_1a0 = param_5;\n      }\n      else {\n        param_5 = pppppppcVar3;\n        pppppppcVar3 = (code *******)((int)param_7 - local_118);\n        if (pppppppcVar3 == (code *******)0x0) {\n          pppppppcVar34 = (code *******)(uint)(pppppppcVar38[0x13] != (code ******)0x0);\n        }\n        else {\n          pppppppcVar34 = (code *******)0x1;\n        }\n        ppppppcVar32 = param_1[5];\n        local_6c = (byte)((uint)((int)param_1[3] << 9) >> 0x1f);\n        local_64 = (code *******)pppppppcVar38[0x17];\n        pppppppcVar31 = (code *******)((int)pppppppcVar38[2] + 1);\n        if ((int)pppppppcVar38[2] + 1 < (int)local_64) {\n          pppppppcVar31 = local_64;\n        }\n        pppppppcVar30 = (code *******)(uint)((int)param_3 + 1 < (int)pppppppcVar31);\n        pppppppcVar33 = (code *******)0x1;\n        local_69 = local_6c;\n        if (ppppppcVar32 != (code ******)0x0) {\n          local_69 = 1;\n        }\n        local_6b = (byte)((uint)((int)pppppppcVar38[0x16] << 2) >> 0x1f);\n        local_6a = (byte)((uint)((int)pppppppcVar38[0x16] << 3) >> 0x1f);\n        pppppppcVar29 = (code *******)((int)param_3 + 1);\n        if (pppppppcVar30 == (code *******)0x0) {\n          pppppppcVar29 = pppppppcVar31;\n        }\n        local_b4 = param_2;\n        local_88 = param_3;\n        local_84 = param_3;\n        local_80 = param_3;\n        local_7c = param_3;\n        local_74 = ppppppcVar32;\n        local_150 = (code *******)FUN_00046d2c(&local_b4);\n        pppppppcVar31 = pppppppcVar34;\n        param_6 = param_6;\n        if (local_150 != (code *******)0x0) goto LAB_000557e4;\n        local_70 = pppppppcVar38 + 0x18;\n        local_66 = (byte)((uint)((int)pppppppcVar38[0x16] << 4) >> 0x1f);\n        pppppppcVar2 = (code *******)0x0;\n        local_98 = pppppppcVar2;\n        if ((local_69 == 0) && (local_b0 = param_2, (int)pppppppcVar38[0x17] < 2)) {\n          local_98 = param_3;\n        }\n        local_7c = param_6;\n        local_80 = param_6;\n        local_67 = (byte)((uint)((int)param_1[7] << 7) >> 0x1f);\n        ppppppcVar35 = pppppppcVar38[0x13];\n        pppppppcVar36 = (code *******)((int)ppppppcVar35 * 2);\n        local_5c = param_9;\n        local_58 = (code *******)0xffffffff;\n        local_94 = local_98;\n        if ((int)pppppppcVar36 < 1) {\nLAB_000559f0:\n          local_3c = 1;\n          local_44 = pppppppcVar36;\n          local_34 = pppppppcVar36;\n          if ((pppppppcVar3 < (code *******)0x2) && (((uint)pppppppcVar38[0x16] & 0x40000000) == 0))\n          {\n            local_50 = (code *******)0x0;\nLAB_00055a40:\n            local_78 = 6;\n            if (((uint)param_9 & 1) != 0) {\n              local_78 = 4;\n            }\n            pppppppcVar24 = (code *******)0x1;\n            pppppppcVar25 = param_4;\n            if ((int)param_5 < (int)param_4) {\n              pppppppcVar24 = (code *******)0xffffffff;\n              pppppppcVar25 = param_5;\n            }\n            pppppppcVar26 = param_5;\n            if ((int)param_5 <= (int)param_4) {\n              pppppppcVar26 = param_4;\n            }\n            ppppppcVar35 = pppppppcVar38[0x17];\n            uVar16 = 8;\n            if (local_148 != (code *******)0x0) {\n              if (ppppppcVar35 == (code ******)0x1) {\n                pppppppcVar28 = (code *******)0x4;\n              }\n              else {\n                pppppppcVar28 = pppppppcVar2;\n                if ((-1 < (int)param_1[3] << 9) && (ppppppcVar32 == (code ******)0x0)) {\n                  pppppppcVar28 = (code *******)0x4;\n                }\n              }\n              pppppppcVar29 = (code *******)0x0;\n              if ((int)param_4 <= (int)param_5) {\n                pppppppcVar29 = (code *******)0x2;\n              }\n              uVar16 = (uint)(ppppppcVar32 != (code ******)0x0) | (uint)pppppppcVar28 |\n                       (uint)pppppppcVar29;\n            }\n            local_dc = param_4;\n            if ((int)param_4 < (int)pppppppcVar25) {\n              local_150 = (code *******)0x1;\n              param_6 = pppppppcVar36;\n            }\n            else if ((int)pppppppcVar26 < (int)param_4) {\n              local_150 = (code *******)0x1;\n              param_4 = (code *******)(uint)((int)param_5 < (int)param_4);\n              param_6 = pppppppcVar36;\n            }\n            else {\n              pppppppcVar36 = (code *******)&local_dc;\n              if ((code *******)(uint)((int)param_5 < (int)param_4) != (code *******)0x0) {\n                pppppppcVar36 = (code *******)0x0;\n              }\n              pcVar4 = (code *)(PTR_DAT_000799a4 + -0x2b7c);\n              piVar5 = (int *)(PTR_s_nt0_000795b8 + (uVar16 - 4) * 4 + 0x6e38);\nLAB_00055b44:\n              if (uVar16 - 4 < 5) {\n                    /* WARNING: Could not emulate address calculation at 0x00054920 */\n                    /* WARNING: Treating indirect jump as call */\n                pppppppcVar29 = (code *******)(*(code *)(&_gp_1 + *piVar5))();\n                return pppppppcVar29;\n              }\n              param_5 = &local_b4;\n              pppppppcVar28 = pppppppcVar33;\n              while( true ) {\n                param_4 = local_dc;\n                pppppppcVar33 = (code *******)((int)local_dc - local_9c);\n                pppppppcVar30 = param_9;\n                pppppppcVar31 = pppppppcVar2;\n                param_6 = local_148;\n                unaff_s4 = param_3;\n                unaff_s5 = pppppppcVar24;\n                unaff_s7 = pppppppcVar26;\n                if (local_94 <= pppppppcVar33) {\n                  pppppppcVar29 = local_dc;\n                  local_150 = (code *******)(*pcVar4)(param_5);\n                  pppppppcVar33 = pppppppcVar28;\n                  if (local_150 != (code *******)0x0) goto LAB_000557e4;\n                  pppppppcVar33 = (code *******)((int)param_4 - local_9c);\n                }\n                if ((int)param_4 < (int)param_3) {\n                  uVar7 = (uint)(byte)*(code *)((int)pppppppcVar33 + (int)local_b0);\n                }\n                else {\n                  uVar7 = 0;\n                }\n                param_4 = (code *******)((int)param_4 + (int)pppppppcVar24);\n                if (*(code *)((int)local_148 + uVar7) != (code)0x0) break;\n                pppppppcVar33 = pppppppcVar28;\n                local_dc = param_4;\n                if ((int)param_4 < (int)pppppppcVar25) {\n                  local_150 = (code *******)0x1;\n                  goto LAB_000557e4;\n                }\n                if ((code *******)(uint)((int)pppppppcVar26 < (int)param_4) != (code *******)0x0) {\n                  local_150 = (code *******)0x1;\n                  param_4 = (code *******)(uint)((int)pppppppcVar26 < (int)param_4);\n                  goto LAB_000557e4;\n                }\n              }\n              while( true ) {\n                pppppppcVar29 = local_dc;\n                pppppppcVar30 = param_9;\n                pppppppcVar6 = (code *******)(*pcVar4)(&local_b4);\n                pppppppcVar14 = local_60;\n                pppppppcVar42 = local_8c;\n                pppppppcVar33 = pppppppcVar28;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar6 != (code *******)0x0) goto LAB_000557e4;\n                if (((ppppppcVar35 != (code ******)0x1) && (local_98 != (code *******)0x0)) &&\n                   (*local_ac == -1)) goto LAB_00055b1c;\n                local_3c = 0;\n                local_48 = 0;\n                local_4c = (code *******)0x0;\n                local_138 = local_8c;\n                local_d8 = (code *******)0x0;\n                unaff_s7 = (code *******)local_60[9];\n                pppppppcVar30 = local_5c;\n                param_4 = pppppppcVar14;\n                if (((uint)unaff_s7[0xd] & 0x1000000) == 0) break;\n                pppppppcVar29 = (code *******)((int)local_8c + -1);\n                pppppppcVar33 = (code *******)FUN_00049110(&local_b4);\n                if (((uint)pppppppcVar33 & 1) == 0) {\n                  if (pppppppcVar33 == (code *******)0x0) break;\n                  if (((uint)pppppppcVar33 & 6) == 6) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xc];\n                    goto LAB_00054d1c;\n                  }\n                  if (((uint)pppppppcVar33 & 2) != 0) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xb];\n                    goto LAB_00054d1c;\n                  }\n                  pppppppcVar28 = pppppppcVar33;\n                  if (((uint)pppppppcVar33 & 4) == 0) break;\n                  pppppppcVar30 = (code *******)unaff_s7[10];\n                  pppppppcVar29 = pppppppcVar14;\n                  unaff_s7 = (code *******)FUN_0004ae34(&local_d8);\n                  pppppppcVar28 = pppppppcVar33;\n                  if (unaff_s7 != (code *******)0x0) break;\n                  if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                }\n                else {\n                  unaff_s7 = (code *******)pppppppcVar14[10];\nLAB_00054d1c:\n                  pppppppcVar28 = (code *******)PTR_s_nt0_000795b8;\n                  if (unaff_s7 != (code *******)0x0) break;\n                }\n                pppppppcVar28 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                local_dc = (code *******)\n                           (*(code *)PTR___assert_fail_000799f8)\n                                     (PTR_s_nt0_000795b8 + 0x71a0,pppppppcVar29,0x435);\n                if (local_dc == pppppppcVar26) {\n                  if ((int)local_dc < (int)param_3) {\n                    uVar7 = (uint)(byte)*(code *)((int)local_dc + (int)param_2);\n                  }\n                  else {\n                    uVar7 = 0;\n                  }\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    uVar7 = (uint)*(byte *)((int)ppppppcVar32 + uVar7);\n                  }\n                  if (*(code *)((int)local_148 + uVar7) == (code)0x0) {\n                    local_150 = (code *******)0x1;\n                    pppppppcVar30 = param_9;\n                    pppppppcVar33 = pppppppcVar28;\n                    goto LAB_000557e4;\n                  }\n                }\n              }\n              pppppppcVar33 = pppppppcVar28;\n              bVar1 = pppppppcVar36 != (code *******)0x0;\n              if ((local_50 == (code *******)0x0) ||\n                 (local_50[(int)pppppppcVar42] = (code ******)unaff_s7,\n                 pppppppcVar14[0x13] == (code ******)0x0)) {\nLAB_00054d50:\n                if ((int)unaff_s7[0xd] << 4 < 0) {\n                  if ((((uint)unaff_s7[0xd] & 0x1000000) == 0) ||\n                     (pppppppcVar29 = unaff_s7, pppppppcVar30 = pppppppcVar42,\n                     iVar18 = FUN_00049440(&local_b4), iVar18 != 0)) {\n                    unaff_s8 = pppppppcVar42;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                  }\n                  else {\n                    pppppppcVar42 = (code *******)0xffffffff;\n                    pppppppcVar28 = (code *******)0x0;\n                  }\n                }\n                else {\n                  pppppppcVar42 = (code *******)0xffffffff;\n                  pppppppcVar28 = (code *******)0x0;\n                }\n                pcVar8 = (code *)(PTR_DAT_000799a4 + -0x7144);\n                pcVar9 = (code *)(PTR_DAT_000799a4 + -0x1980);\n                pcVar10 = (code *)(PTR_DAT_000799a4 + -0x2f9c);\n                unaff_s8 = pppppppcVar42;\n                local_144 = pppppppcVar36;\n                while( true ) {\n                  uVar44 = CONCAT44(local_98,local_84);\n                  unaff_s5 = (code *******)((int)local_8c + 1);\n                  pppppppcVar29 = local_8c;\n                  if ((int)local_7c <= (int)local_8c) break;\n                  if (((int)local_90 <= (int)unaff_s5) && ((int)local_90 < (int)local_84))\n                  goto LAB_00054e94;\n                  if ((int)local_98 <= (int)unaff_s5) {\n                    while ((int)((ulonglong)uVar44 >> 0x20) < (int)uVar44) {\nLAB_00054e94:\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 2);\n                      local_d8 = (code *******)(*pcVar8)(&local_b4);\n                      if (local_d8 == (code *******)0x0) break;\n                      pppppppcVar14 = param_4;\n                      if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                      pppppppcVar33 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                      pppppppcVar30 = (code *******)0x46c;\n                      pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                      uVar44 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0);\n                      pppppppcVar28 = pppppppcVar38;\n                    }\n                  }\n                  pppppppcVar42 = local_60;\n                  if ((int)unaff_s7[0xd] << 5 < 0) {\n                    pppppppcVar31 = pppppppcVar42;\n                    if (0 < (int)unaff_s7[2]) {\n                      pcVar11 = (code *)(PTR_DAT_000799a4 + -0x6fdc);\n                      pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6ef0);\n                      param_6 = (code *******)0x0;\n                      do {\n                        param_5 = (code *******)unaff_s7[3][(int)param_6];\n                        ppppppcVar39 = *pppppppcVar42;\n                        pppppcVar13 = ppppppcVar39[(int)param_5 * 2 + 1];\n                        if (((uint)pppppcVar13 & 0x800) != 0) {\n                          if (((uint)pppppcVar13 & 0xffc000) != 0) {\n                            pppppppcVar29 = local_8c;\n                            uVar19 = (*pcVar12)(&local_b4,local_8c,local_5c);\n                            uVar7 = (uint)((int)ppppppcVar39[(int)param_5 * 2 + 1] << 8) >> 0x16;\n                            if ((uVar7 & 4) == 0) {\n                              uVar27 = uVar19 & 1;\n                              if ((uVar7 & 8) != 0) goto joined_r0x00054f40;\n                            }\n                            else {\n                              uVar27 = uVar7 & 8;\n                              if ((uVar19 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                              if (uVar27 != 0) goto LAB_000550a4;\n                            }\n                            if ((((uVar7 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                               (((uVar7 & 0x80) != 0 &&\n                                (pppppppcVar33 = local_8c, (uVar19 & 8) == 0)))) goto LAB_000550a4;\n                          }\n                          pppppppcVar30 = &local_b4;\n                          pppppppcVar29 = param_5;\n                          pppppppcVar33 = local_8c;\n                          iVar18 = (*pcVar10)(pppppppcVar42);\n                          if (iVar18 != 0) {\n                            pppppppcVar14 = (code *******)((int)local_8c + iVar18);\n                            if (iVar18 <= local_3c) {\n                              iVar18 = local_3c;\n                            }\n                            pppppppcVar29 = pppppppcVar14;\n                            local_3c = iVar18;\n                            local_d4 = (code *******)(*pcVar11)(&local_b4);\n                            pppppppcVar15 = local_d4;\n                            if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                            pppppppcVar30 =\n                                 (code *******)\n                                 (pppppppcVar42[6] + (int)pppppppcVar42[3][(int)param_5] * 3);\n                            unaff_s4 = (code *******)((int)pppppppcVar14 * 4);\n                            param_5 = local_50 + (int)pppppppcVar14;\n                            if (*param_5 == (code ******)0x0) {\n                              local_d0 = (code *******)*pppppppcVar30;\n                              local_cc = (code *******)pppppppcVar30[1];\n                              local_c8 = (code *******)pppppppcVar30[2];\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *param_5 = ppppppcVar39;\n                            }\n                            else {\n                              pppppppcVar29 = (code *******)(*param_5)[10];\n                              local_d4 = (code *******)FUN_000484bc(&local_d0);\n                              pppppppcVar15 = local_d4;\n                              if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar15 = local_50 + (int)pppppppcVar14;\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *pppppppcVar15 = ppppppcVar39;\n                              (*(code *)PTR_free_00079c24)(local_c8);\n                            }\n                            unaff_s4 = local_50 + (int)pppppppcVar14;\n                            if ((*unaff_s4 == (code ******)0x0) &&\n                               (pppppppcVar15 = local_d4, local_d4 != (code *******)0x0))\n                            goto LAB_00055e44;\n                          }\n                        }\nLAB_000550a4:\n                        param_6 = (code *******)((int)param_6 + 1);\n                      } while ((int)param_6 < (int)unaff_s7[2]);\n                    }\n                    local_d8 = (code *******)0x0;\n                  }\n                  uVar7 = (uint)(byte)*(code *)((int)local_8c + (int)local_b0);\n                  local_8c = (code *******)((int)local_8c + 1);\n                  do {\n                    if (unaff_s7[0xb] != (code ******)0x0) {\n                      pppppppcVar30 = (code *******)unaff_s7[0xb][uVar7];\nLAB_000553a0:\n                      pppppppcVar14 = pppppppcVar30;\n                      if (local_50 != (code *******)0x0) goto LAB_000553ac;\n                      goto LAB_000553cc;\n                    }\n                    pppppppcVar31 = (code *******)unaff_s7[0xc];\n                    if (pppppppcVar31 != (code *******)0x0) {\n                      pppppppcVar29 = (code *******)((int)local_8c + -1);\n                      uVar19 = FUN_00049110(&local_b4);\n                      if ((uVar19 & 1) == 0) {\n                        pppppppcVar30 = (code *******)pppppppcVar31[uVar7];\n                      }\n                      else {\n                        pppppppcVar31 = pppppppcVar31 + uVar7 + 0x100;\n                        pppppppcVar30 = (code *******)*pppppppcVar31;\n                      }\n                      goto LAB_000553a0;\n                    }\n                    pppppppcVar29 = unaff_s7;\n                    pppppppcVar30 = local_5c;\n                    iVar18 = (*pcVar9)(local_60);\n                  } while (iVar18 != 0);\n                  local_d8 = (code *******)0xc;\n                  pppppppcVar15 = local_d8;\nLAB_00055e44:\n                  local_d8 = pppppppcVar15;\n                  param_4 = (code *******)0x0;\n                  if (local_50 == (code *******)0x0) {\n                    pppppppcVar14 = param_4;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    break;\n                  }\n                  pppppppcVar30 = (code *******)0x0;\nLAB_000553ac:\n                  pppppppcVar29 = &local_b4;\n                  pppppppcVar14 = (code *******)FUN_00053684(&local_d8);\nLAB_000553cc:\n                  param_4 = pppppppcVar14;\n                  if (pppppppcVar14 == (code *******)0x0) {\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    if ((local_50 == (code *******)0x0) ||\n                       ((pppppppcVar28 != (code *******)0x0 && (pppppppcVar34 == (code *******)0x0))\n                       )) break;\n                    param_6 = &local_b4;\n                    param_5 = (code *******)&local_d8;\n                    pppppppcVar31 = (code *******)(PTR_DAT_000799a4 + 0x3684);\n                    do {\n                      pppppppcVar15 = local_50 + (int)local_8c;\n                      pppppppcVar42 = local_8c;\n                      do {\n                        pppppppcVar42 = (code *******)((int)pppppppcVar42 + 1);\n                        pppppppcVar29 = local_4c;\n                        param_4 = pppppppcVar14;\n                        if ((int)local_4c < (int)pppppppcVar42) goto LAB_00055da8;\n                        local_8c = (code *******)((int)local_8c + 1);\n                        pppppppcVar15 = pppppppcVar15 + 1;\n                      } while (*pppppppcVar15 == (code ******)0x0);\n                      pppppppcVar30 = (code *******)0x0;\n                      pppppppcVar29 = param_6;\n                      param_4 = (code *******)(*(code *)pppppppcVar31)(param_5);\n                      if (local_d8 != (code *******)0x0) {\n                        if (param_4 == (code *******)0x0) goto LAB_00055da8;\n                        break;\n                      }\n                      pppppppcVar29 = local_4c;\n                    } while (param_4 == (code *******)0x0);\n                  }\n                  pppppppcVar15 = (code *******)((uint)unaff_s7 ^ (uint)param_4);\n                  pppppppcVar42 = unaff_s7;\n                  pppppppcVar14 = local_138;\n                  if ((bVar1) &&\n                     (pppppppcVar42 = pppppppcVar15, pppppppcVar14 = unaff_s5,\n                     pppppppcVar15 != (code *******)0x0)) {\n                    bVar1 = false;\n                    pppppppcVar14 = local_138;\n                  }\n                  local_138 = pppppppcVar14;\n                  unaff_s7 = param_4;\n                  if ((((uint)param_4[0xd] & 0x8000000) != 0) &&\n                     ((((uint)param_4[0xd] & 0x1000000) == 0 ||\n                      (pppppppcVar29 = param_4, pppppppcVar30 = local_8c,\n                      iVar18 = FUN_00049440(&local_b4), iVar18 != 0)))) {\n                    unaff_s7 = pppppppcVar42;\n                    unaff_s8 = local_8c;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                    local_144 = (code *******)0x0;\n                    unaff_s7 = param_4;\n                  }\n                }\nLAB_00055da8:\n                if (local_144 != (code *******)0x0) {\n                  *local_144 = (code ******)((int)local_138 + (int)*local_144);\n                }\n              }\n              else {\n                param_4 = unaff_s7 + 1;\n                pppppppcVar30 = (code *******)0x0;\n                pppppppcVar29 = param_4;\n                local_d8 = (code *******)FUN_00047a44(&local_b4);\n                unaff_s8 = local_d8;\n                if (local_d8 == (code *******)0x0) {\n                  if (((uint)unaff_s7[0xd] & 0x2000000) == 0) {\n                    pppppppcVar29 = param_4;\n                    bVar1 = false;\n                  }\n                  else {\n                    pppppppcVar29 = param_4;\n                    local_d8 = (code *******)FUN_00052d84(&local_b4);\n                    unaff_s8 = local_d8;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055dbc;\n                    bVar1 = false;\n                  }\n                  goto LAB_00054d50;\n                }\n              }\nLAB_00055dbc:\n              if (unaff_s8 == (code *******)0xffffffff) {\nLAB_00055b04:\n                FUN_0004b7e8(&local_b4);\nLAB_00055b1c:\n                local_dc = (code *******)((int)pppppppcVar24 + (int)local_dc);\n                if ((int)pppppppcVar25 <= (int)local_dc) goto code_r0x00055b38;\n                local_150 = (code *******)0x1;\n                goto LAB_000557e4;\n              }\n              if (unaff_s8 == (code *******)&SUB_fffffffe) {\n                local_150 = (code *******)0xc;\n                goto LAB_000557e4;\n              }\n              local_58 = unaff_s8;\n              if (((uint)param_1[7] & 0x8000000) == 0) {\n                if (pppppppcVar3 < (code *******)0x2) {\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055c08;\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                else {\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                if (pppppppcVar3 < (code *******)0x2) {\nLAB_00055c6c:\n                  pppppppcVar28 = pppppppcVar33;\n                  unaff_s4 = local_60;\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055548;\n                }\n                else {\n                  cVar23 = *(code *)(pppppppcVar38 + 0x16);\nLAB_00055c20:\n                  pppppppcVar28 = pppppppcVar33;\n                  if (-1 < (char)cVar23) goto LAB_00055c6c;\n                }\n                pppppppcVar31 = local_54;\n                pppppppcVar42 = local_60;\n                unaff_s4 = pppppppcVar42;\n                if (unaff_s8 < (code *******)0x3fffffff) {\n                  param_4 = (code *******)((int)((int)unaff_s8 + 1) * 4);\n                  unaff_s5 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                  if (unaff_s5 == (code *******)0x0) {\nLAB_00055b9c:\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    local_150 = (code *******)0xc;\n                    pppppppcVar33 = pppppppcVar28;\n                  }\n                  else {\n                    pppppppcVar29 = (code *******)&local_d0;\n                    if (pppppppcVar42[0x13] == (code ******)0x0) {\n                      local_cc = (code *******)0x0;\n                      local_c8 = pppppppcVar31;\n                      local_c0 = 0;\n                      local_bc = 0;\n                      local_b8 = 0;\n                      local_d0 = unaff_s5;\n                      local_c4 = unaff_s8;\n                      param_5 = (code *******)FUN_0005421c(&local_b4);\n                      (*(code *)PTR_free_00079c24)(local_b8);\n                      if (param_5 == (code *******)0x0) {\n                        param_4 = (code *******)*unaff_s5;\n                        if (param_4 == (code *******)0x0) {\nLAB_00055b70:\n                          (*(code *)PTR_free_00079c24)(unaff_s5);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          pppppppcVar33 = pppppppcVar28;\n                          goto LAB_00055b04;\n                        }\nLAB_00055528:\n                        (*(code *)PTR_free_00079c24)(local_50);\n                        pppppppcVar33 = pppppppcVar28;\n                        unaff_s4 = pppppppcVar42;\n                        local_58 = unaff_s8;\n                        local_54 = pppppppcVar31;\n                        local_50 = unaff_s5;\n                        goto LAB_00055548;\n                      }\nLAB_00055acc:\n                      param_4 = (code *******)0x0;\n                      pppppppcVar33 = pppppppcVar28;\n                      unaff_s4 = pppppppcVar42;\n                    }\n                    else {\n                      param_4 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                      if (param_4 == (code *******)0x0) goto LAB_00055b9c;\n                      unaff_s7 = (code *******)&local_d0;\n                      pcVar8 = (code *)(PTR_DAT_000799a4 + 0x421c);\n                      pcVar9 = (code *)(PTR_DAT_000799a4 + -0x6bc0);\n                      pppppppcVar33 = pppppppcVar28;\n                      while( true ) {\n                        pppppppcVar28 = (code *******)((int)unaff_s8 + 1);\n                        param_6 = (code *******)((int)pppppppcVar28 * 4);\n                        pppppppcVar30 = param_6;\n                        (*(code *)PTR_memset_00079b00)(param_4,0);\n                        local_c0 = 0;\n                        local_bc = 0;\n                        local_b8 = 0;\n                        pppppppcVar29 = unaff_s7;\n                        local_d0 = unaff_s5;\n                        local_cc = param_4;\n                        local_c8 = pppppppcVar31;\n                        local_c4 = unaff_s8;\n                        param_5 = (code *******)(*pcVar8)(&local_b4);\n                        (*(code *)PTR_free_00079c24)(local_b8);\n                        unaff_s4 = pppppppcVar28;\n                        if (param_5 != (code *******)0x0) break;\n                        if ((*unaff_s5 != (code ******)0x0) ||\n                           (param_6 = param_6 + -1, *param_4 != (code ******)0x0)) {\n                          pppppppcVar29 = unaff_s5;\n                          pppppppcVar30 = param_4;\n                          param_5 = (code *******)FUN_000520d0(pppppppcVar42);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          if (param_5 != (code *******)0x0) goto LAB_00055acc;\n                          goto LAB_00055528;\n                        }\n                        param_6 = (code *******)((int)local_50 + (int)param_6);\n                        do {\n                          while( true ) {\n                            unaff_s8 = (code *******)((int)unaff_s8 + -1);\n                            if ((int)unaff_s8 < 0) goto LAB_00055b70;\n                            pppppppcVar29 = (code *******)param_6[-1];\n                            if (pppppppcVar29 != (code *******)0x0) break;\n                            param_6 = param_6 + -1;\n                          }\n                          param_6 = param_6 + -1;\n                        } while (((uint)pppppppcVar29[0xd] & 0x8000000) == 0);\n                        pppppppcVar31 = (code *******)(*pcVar9)(&local_b4,pppppppcVar29,unaff_s8);\n                        pppppppcVar33 = pppppppcVar28;\n                      }\n                    }\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    (*(code *)PTR_free_00079c24)(param_4);\n                    local_150 = param_5;\n                    if (param_5 == (code *******)0x1) goto LAB_00055b04;\n                  }\n                }\n                else {\n                  local_150 = (code *******)0xc;\n                  pppppppcVar33 = pppppppcVar28;\n                }\n                goto LAB_000557e4;\n              }\n              if (pppppppcVar38[0x13] != (code ******)0x0) {\n                pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                pppppppcVar30 = unaff_s8;\n                local_54 = (code *******)FUN_00049440(&local_b4);\n                goto LAB_00055c6c;\n              }\nLAB_00055c08:\n              if ((((uint)param_1[7] & 0x8000000) == 0) && ((code *******)0x1 < pppppppcVar3)) {\n                cVar23 = *(code *)(pppppppcVar38 + 0x16);\n                goto LAB_00055c20;\n              }\nLAB_00055548:\n              if (pppppppcVar3 == (code *******)0x0) goto LAB_000557e4;\n              if (pppppppcVar3 < (code *******)0x2) {\n                *param_8 = (code ******)0x0;\n                param_8[1] = (code ******)local_58;\n                goto LAB_000555ac;\n              }\n              pppppppcVar29 = param_8 + 2;\n              do {\n                pppppppcVar29[1] = (code ******)0xffffffff;\n                *pppppppcVar29 = (code ******)0xffffffff;\n                pppppppcVar29 = pppppppcVar29 + 2;\n              } while (pppppppcVar29 != param_8 + (int)pppppppcVar3 * 2);\n              *param_8 = (code ******)0x0;\n              param_8[1] = (code ******)local_58;\n              if (((uint)param_1[7] & 0x8000000) != 0) {\nLAB_000555ac:\n                pppppppcVar33 = param_8;\n                do {\n                  pppppppcVar29 = (code *******)*pppppppcVar33;\n                  if (pppppppcVar29 != (code *******)0xffffffff) {\n                    if (local_68 != '\0') {\n                      pppppppcVar34 = local_94;\n                      if (pppppppcVar29 != local_98) {\n                        pppppppcVar34 = *(code ********)(local_a8 + (int)pppppppcVar29 * 4);\n                      }\n                      *pppppppcVar33 = (code ******)pppppppcVar34;\n                      pppppppcVar29 = local_94;\n                      if (local_98 != (code *******)pppppppcVar33[1]) {\n                        pppppppcVar29 = *(code ********)(local_a8 + (int)pppppppcVar33[1] * 4);\n                      }\n                      pppppppcVar33[1] = (code ******)pppppppcVar29;\n                    }\n                    *pppppppcVar33 = (code ******)((int)local_dc + (int)*pppppppcVar33);\n                    pppppppcVar29 = (code *******)((int)local_dc + (int)pppppppcVar33[1]);\n                    pppppppcVar33[1] = (code ******)pppppppcVar29;\n                  }\n                  pppppppcVar33 = pppppppcVar33 + 2;\n                } while (pppppppcVar33 != param_8 + (int)pppppppcVar3 * 2);\n                if (0 < local_118) {\n                  pppppppcVar33 = param_8 + (int)pppppppcVar3 * 2;\n                  do {\n                    *pppppppcVar33 = (code ******)0xffffffff;\n                    pppppppcVar33[1] = (code ******)0xffffffff;\n                    pppppppcVar33 = pppppppcVar33 + 2;\n                  } while (pppppppcVar33 != param_8 + (int)param_7 * 2);\n                }\n                pppppppcVar30 = local_dc;\n                pppppppcVar33 = param_8;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar38[0x21] != (code ******)0x0) {\n                  pppppppcVar30 = (code *******)((int)pppppppcVar3 + -1);\n                  pppppppcVar34 = (code *******)0x0;\n                  pppppppcVar3 = param_8;\n                  while( true ) {\n                    pppppppcVar29 = (code *******)((int)pppppppcVar34 * 4);\n                    if (pppppppcVar30 == pppppppcVar34) break;\n                    if (*(code ********)((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) !=\n                        pppppppcVar34) {\n                      pppppppcVar3[2] =\n                           param_8[(int)((int)*(code ********)\n                                               ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1)\n                                   * 2];\n                      pppppppcVar3[3] =\n                           param_8[((int)*(code ******)\n                                          ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1) * 2 +\n                                   1];\n                    }\n                    pppppppcVar34 = (code *******)((int)pppppppcVar34 + 1);\n                    pppppppcVar3 = pppppppcVar3 + 2;\n                  }\n                }\n                goto LAB_000557e4;\n              }\n              if ((char)*(code *)(pppppppcVar38 + 0x16) < '\0') {\n                local_168 = (uint)(0 < (int)pppppppcVar38[0x13]);\n              }\n              else {\n                local_168 = 0;\n              }\n              pppppppcVar29 = &local_b4;\n              pppppppcVar30 = pppppppcVar3;\n              pppppppcVar33 = param_8;\n              local_150 = (code *******)FUN_0004f4a0(param_1);\n              if (local_150 == (code *******)0x0) goto LAB_000555ac;\n            }\n          }\n          else if (local_90 < 0x3fffffff) {\n            local_50 = (code *******)(*(code *)PTR_malloc_00079b54)((local_90 + 1) * 4);\n            if (local_50 != (code *******)0x0) goto LAB_00055a40;\n            local_150 = (code *******)0xc;\n            param_6 = pppppppcVar36;\n          }\n          else {\n            local_150 = (code *******)0xc;\n            param_6 = pppppppcVar36;\n          }\n        }\n        else {\n          unaff_s5 = (code *******)((int)ppppppcVar35 * 8);\n          if (pppppppcVar36 < (code *******)0xccccccd) {\n            unaff_s4 = (code *******)(*(code *)PTR_malloc_00079b54)((int)ppppppcVar35 * 0x28);\n            local_40 = unaff_s4;\n            local_30 = (*(code *)PTR_malloc_00079b54)(unaff_s5);\n            if ((unaff_s4 != (code *******)0x0) && (local_30 != 0)) goto LAB_000559f0;\n          }\n          local_150 = (code *******)0xc;\n          param_6 = pppppppcVar36;\n        }\nLAB_000557e4:\n        (*(code *)PTR_free_00079c24)(local_50);\n        param_1 = pppppppcVar30;\n        if (pppppppcVar38[0x13] != (code ******)0x0) {\n          FUN_0004b7e8(&local_b4);\n          (*(code *)PTR_free_00079c24)(local_30);\n          (*(code *)PTR_free_00079c24)(local_40);\n          param_1 = pppppppcVar30;\n        }\n        FUN_0004b2bc(&local_b4);\n        pppppppcStack_1a0 = param_4;\n        pppppppcStack_19c = pppppppcVar31;\n      }" if (parenthesized_expression "((((pppppppcVar38[9][2] == (code *****)0x0) && (pppppppcVar38[10][2] == (code *****)0x0))\n          && ((pppppppcVar38[0xb][2] == (code *****)0x0 || (((uint)param_1[7] & 0x1000000) == 0))))\n         && ((pppppppcVar3 = param_4, param_4 != (code *******)0x0 &&\n             (param_4 = param_5, pppppppcVar3 = param_5, param_5 != (code *******)0x0))))" ( (binary_expression "(((pppppppcVar38[9][2] == (code *****)0x0) && (pppppppcVar38[10][2] == (code *****)0x0))\n          && ((pppppppcVar38[0xb][2] == (code *****)0x0 || (((uint)param_1[7] & 0x1000000) == 0))))\n         && ((pppppppcVar3 = param_4, param_4 != (code *******)0x0 &&\n             (param_4 = param_5, pppppppcVar3 = param_5, param_5 != (code *******)0x0)))" (parenthesized_expression "(((pppppppcVar38[9][2] == (code *****)0x0) && (pppppppcVar38[10][2] == (code *****)0x0))\n          && ((pppppppcVar38[0xb][2] == (code *****)0x0 || (((uint)param_1[7] & 0x1000000) == 0))))" ( (binary_expression "((pppppppcVar38[9][2] == (code *****)0x0) && (pppppppcVar38[10][2] == (code *****)0x0))\n          && ((pppppppcVar38[0xb][2] == (code *****)0x0 || (((uint)param_1[7] & 0x1000000) == 0)))" (parenthesized_expression "((pppppppcVar38[9][2] == (code *****)0x0) && (pppppppcVar38[10][2] == (code *****)0x0))" ( (binary_expression "(pppppppcVar38[9][2] == (code *****)0x0) && (pppppppcVar38[10][2] == (code *****)0x0)" (parenthesized_expression "(pppppppcVar38[9][2] == (code *****)0x0)" ( (binary_expression "pppppppcVar38[9][2] == (code *****)0x0" (subscript_expression "pppppppcVar38[9][2]" (subscript_expression "pppppppcVar38[9]" identifier [ number_literal ]) [ number_literal ]) == (cast_expression "(code *****)0x0" ( (type_descriptor "code *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) )) && (parenthesized_expression "(pppppppcVar38[10][2] == (code *****)0x0)" ( (binary_expression "pppppppcVar38[10][2] == (code *****)0x0" (subscript_expression "pppppppcVar38[10][2]" (subscript_expression "pppppppcVar38[10]" identifier [ number_literal ]) [ number_literal ]) == (cast_expression "(code *****)0x0" ( (type_descriptor "code *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) ))) )) && (parenthesized_expression "((pppppppcVar38[0xb][2] == (code *****)0x0 || (((uint)param_1[7] & 0x1000000) == 0)))" ( (parenthesized_expression "(pppppppcVar38[0xb][2] == (code *****)0x0 || (((uint)param_1[7] & 0x1000000) == 0))" ( (binary_expression "pppppppcVar38[0xb][2] == (code *****)0x0 || (((uint)param_1[7] & 0x1000000) == 0)" (binary_expression "pppppppcVar38[0xb][2] == (code *****)0x0" (subscript_expression "pppppppcVar38[0xb][2]" (subscript_expression "pppppppcVar38[0xb]" identifier [ number_literal ]) [ number_literal ]) == (cast_expression "(code *****)0x0" ( (type_descriptor "code *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) || (parenthesized_expression "(((uint)param_1[7] & 0x1000000) == 0)" ( (binary_expression "((uint)param_1[7] & 0x1000000) == 0" (parenthesized_expression "((uint)param_1[7] & 0x1000000)" ( (binary_expression "(uint)param_1[7] & 0x1000000" (cast_expression "(uint)param_1[7]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_1[7]" identifier [ number_literal ])) & number_literal) )) == number_literal) ))) )) ))) )) && (parenthesized_expression "((pppppppcVar3 = param_4, param_4 != (code *******)0x0 &&\n             (param_4 = param_5, pppppppcVar3 = param_5, param_5 != (code *******)0x0)))" ( (parenthesized_expression "(pppppppcVar3 = param_4, param_4 != (code *******)0x0 &&\n             (param_4 = param_5, pppppppcVar3 = param_5, param_5 != (code *******)0x0))" ( (comma_expression "pppppppcVar3 = param_4, param_4 != (code *******)0x0 &&\n             (param_4 = param_5, pppppppcVar3 = param_5, param_5 != (code *******)0x0)" (assignment_expression "pppppppcVar3 = param_4" identifier = identifier) , (binary_expression "param_4 != (code *******)0x0 &&\n             (param_4 = param_5, pppppppcVar3 = param_5, param_5 != (code *******)0x0)" (binary_expression "param_4 != (code *******)0x0" identifier != (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) && (parenthesized_expression "(param_4 = param_5, pppppppcVar3 = param_5, param_5 != (code *******)0x0)" ( (comma_expression "param_4 = param_5, pppppppcVar3 = param_5, param_5 != (code *******)0x0" (assignment_expression "param_4 = param_5" identifier = identifier) , (comma_expression "pppppppcVar3 = param_5, param_5 != (code *******)0x0" (assignment_expression "pppppppcVar3 = param_5" identifier = identifier) , (binary_expression "param_5 != (code *******)0x0" identifier != (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)))) )))) )) ))) )) (compound_statement "{\n        local_150 = (code *******)0x1;\n        pppppppcStack_1a0 = param_5;\n      }" { (expression_statement "local_150 = (code *******)0x1;" (assignment_expression "local_150 = (code *******)0x1" identifier = (cast_expression "(code *******)0x1" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "pppppppcStack_1a0 = param_5;" (assignment_expression "pppppppcStack_1a0 = param_5" identifier = identifier) ;) }) (else_clause "else {\n        param_5 = pppppppcVar3;\n        pppppppcVar3 = (code *******)((int)param_7 - local_118);\n        if (pppppppcVar3 == (code *******)0x0) {\n          pppppppcVar34 = (code *******)(uint)(pppppppcVar38[0x13] != (code ******)0x0);\n        }\n        else {\n          pppppppcVar34 = (code *******)0x1;\n        }\n        ppppppcVar32 = param_1[5];\n        local_6c = (byte)((uint)((int)param_1[3] << 9) >> 0x1f);\n        local_64 = (code *******)pppppppcVar38[0x17];\n        pppppppcVar31 = (code *******)((int)pppppppcVar38[2] + 1);\n        if ((int)pppppppcVar38[2] + 1 < (int)local_64) {\n          pppppppcVar31 = local_64;\n        }\n        pppppppcVar30 = (code *******)(uint)((int)param_3 + 1 < (int)pppppppcVar31);\n        pppppppcVar33 = (code *******)0x1;\n        local_69 = local_6c;\n        if (ppppppcVar32 != (code ******)0x0) {\n          local_69 = 1;\n        }\n        local_6b = (byte)((uint)((int)pppppppcVar38[0x16] << 2) >> 0x1f);\n        local_6a = (byte)((uint)((int)pppppppcVar38[0x16] << 3) >> 0x1f);\n        pppppppcVar29 = (code *******)((int)param_3 + 1);\n        if (pppppppcVar30 == (code *******)0x0) {\n          pppppppcVar29 = pppppppcVar31;\n        }\n        local_b4 = param_2;\n        local_88 = param_3;\n        local_84 = param_3;\n        local_80 = param_3;\n        local_7c = param_3;\n        local_74 = ppppppcVar32;\n        local_150 = (code *******)FUN_00046d2c(&local_b4);\n        pppppppcVar31 = pppppppcVar34;\n        param_6 = param_6;\n        if (local_150 != (code *******)0x0) goto LAB_000557e4;\n        local_70 = pppppppcVar38 + 0x18;\n        local_66 = (byte)((uint)((int)pppppppcVar38[0x16] << 4) >> 0x1f);\n        pppppppcVar2 = (code *******)0x0;\n        local_98 = pppppppcVar2;\n        if ((local_69 == 0) && (local_b0 = param_2, (int)pppppppcVar38[0x17] < 2)) {\n          local_98 = param_3;\n        }\n        local_7c = param_6;\n        local_80 = param_6;\n        local_67 = (byte)((uint)((int)param_1[7] << 7) >> 0x1f);\n        ppppppcVar35 = pppppppcVar38[0x13];\n        pppppppcVar36 = (code *******)((int)ppppppcVar35 * 2);\n        local_5c = param_9;\n        local_58 = (code *******)0xffffffff;\n        local_94 = local_98;\n        if ((int)pppppppcVar36 < 1) {\nLAB_000559f0:\n          local_3c = 1;\n          local_44 = pppppppcVar36;\n          local_34 = pppppppcVar36;\n          if ((pppppppcVar3 < (code *******)0x2) && (((uint)pppppppcVar38[0x16] & 0x40000000) == 0))\n          {\n            local_50 = (code *******)0x0;\nLAB_00055a40:\n            local_78 = 6;\n            if (((uint)param_9 & 1) != 0) {\n              local_78 = 4;\n            }\n            pppppppcVar24 = (code *******)0x1;\n            pppppppcVar25 = param_4;\n            if ((int)param_5 < (int)param_4) {\n              pppppppcVar24 = (code *******)0xffffffff;\n              pppppppcVar25 = param_5;\n            }\n            pppppppcVar26 = param_5;\n            if ((int)param_5 <= (int)param_4) {\n              pppppppcVar26 = param_4;\n            }\n            ppppppcVar35 = pppppppcVar38[0x17];\n            uVar16 = 8;\n            if (local_148 != (code *******)0x0) {\n              if (ppppppcVar35 == (code ******)0x1) {\n                pppppppcVar28 = (code *******)0x4;\n              }\n              else {\n                pppppppcVar28 = pppppppcVar2;\n                if ((-1 < (int)param_1[3] << 9) && (ppppppcVar32 == (code ******)0x0)) {\n                  pppppppcVar28 = (code *******)0x4;\n                }\n              }\n              pppppppcVar29 = (code *******)0x0;\n              if ((int)param_4 <= (int)param_5) {\n                pppppppcVar29 = (code *******)0x2;\n              }\n              uVar16 = (uint)(ppppppcVar32 != (code ******)0x0) | (uint)pppppppcVar28 |\n                       (uint)pppppppcVar29;\n            }\n            local_dc = param_4;\n            if ((int)param_4 < (int)pppppppcVar25) {\n              local_150 = (code *******)0x1;\n              param_6 = pppppppcVar36;\n            }\n            else if ((int)pppppppcVar26 < (int)param_4) {\n              local_150 = (code *******)0x1;\n              param_4 = (code *******)(uint)((int)param_5 < (int)param_4);\n              param_6 = pppppppcVar36;\n            }\n            else {\n              pppppppcVar36 = (code *******)&local_dc;\n              if ((code *******)(uint)((int)param_5 < (int)param_4) != (code *******)0x0) {\n                pppppppcVar36 = (code *******)0x0;\n              }\n              pcVar4 = (code *)(PTR_DAT_000799a4 + -0x2b7c);\n              piVar5 = (int *)(PTR_s_nt0_000795b8 + (uVar16 - 4) * 4 + 0x6e38);\nLAB_00055b44:\n              if (uVar16 - 4 < 5) {\n                    /* WARNING: Could not emulate address calculation at 0x00054920 */\n                    /* WARNING: Treating indirect jump as call */\n                pppppppcVar29 = (code *******)(*(code *)(&_gp_1 + *piVar5))();\n                return pppppppcVar29;\n              }\n              param_5 = &local_b4;\n              pppppppcVar28 = pppppppcVar33;\n              while( true ) {\n                param_4 = local_dc;\n                pppppppcVar33 = (code *******)((int)local_dc - local_9c);\n                pppppppcVar30 = param_9;\n                pppppppcVar31 = pppppppcVar2;\n                param_6 = local_148;\n                unaff_s4 = param_3;\n                unaff_s5 = pppppppcVar24;\n                unaff_s7 = pppppppcVar26;\n                if (local_94 <= pppppppcVar33) {\n                  pppppppcVar29 = local_dc;\n                  local_150 = (code *******)(*pcVar4)(param_5);\n                  pppppppcVar33 = pppppppcVar28;\n                  if (local_150 != (code *******)0x0) goto LAB_000557e4;\n                  pppppppcVar33 = (code *******)((int)param_4 - local_9c);\n                }\n                if ((int)param_4 < (int)param_3) {\n                  uVar7 = (uint)(byte)*(code *)((int)pppppppcVar33 + (int)local_b0);\n                }\n                else {\n                  uVar7 = 0;\n                }\n                param_4 = (code *******)((int)param_4 + (int)pppppppcVar24);\n                if (*(code *)((int)local_148 + uVar7) != (code)0x0) break;\n                pppppppcVar33 = pppppppcVar28;\n                local_dc = param_4;\n                if ((int)param_4 < (int)pppppppcVar25) {\n                  local_150 = (code *******)0x1;\n                  goto LAB_000557e4;\n                }\n                if ((code *******)(uint)((int)pppppppcVar26 < (int)param_4) != (code *******)0x0) {\n                  local_150 = (code *******)0x1;\n                  param_4 = (code *******)(uint)((int)pppppppcVar26 < (int)param_4);\n                  goto LAB_000557e4;\n                }\n              }\n              while( true ) {\n                pppppppcVar29 = local_dc;\n                pppppppcVar30 = param_9;\n                pppppppcVar6 = (code *******)(*pcVar4)(&local_b4);\n                pppppppcVar14 = local_60;\n                pppppppcVar42 = local_8c;\n                pppppppcVar33 = pppppppcVar28;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar6 != (code *******)0x0) goto LAB_000557e4;\n                if (((ppppppcVar35 != (code ******)0x1) && (local_98 != (code *******)0x0)) &&\n                   (*local_ac == -1)) goto LAB_00055b1c;\n                local_3c = 0;\n                local_48 = 0;\n                local_4c = (code *******)0x0;\n                local_138 = local_8c;\n                local_d8 = (code *******)0x0;\n                unaff_s7 = (code *******)local_60[9];\n                pppppppcVar30 = local_5c;\n                param_4 = pppppppcVar14;\n                if (((uint)unaff_s7[0xd] & 0x1000000) == 0) break;\n                pppppppcVar29 = (code *******)((int)local_8c + -1);\n                pppppppcVar33 = (code *******)FUN_00049110(&local_b4);\n                if (((uint)pppppppcVar33 & 1) == 0) {\n                  if (pppppppcVar33 == (code *******)0x0) break;\n                  if (((uint)pppppppcVar33 & 6) == 6) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xc];\n                    goto LAB_00054d1c;\n                  }\n                  if (((uint)pppppppcVar33 & 2) != 0) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xb];\n                    goto LAB_00054d1c;\n                  }\n                  pppppppcVar28 = pppppppcVar33;\n                  if (((uint)pppppppcVar33 & 4) == 0) break;\n                  pppppppcVar30 = (code *******)unaff_s7[10];\n                  pppppppcVar29 = pppppppcVar14;\n                  unaff_s7 = (code *******)FUN_0004ae34(&local_d8);\n                  pppppppcVar28 = pppppppcVar33;\n                  if (unaff_s7 != (code *******)0x0) break;\n                  if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                }\n                else {\n                  unaff_s7 = (code *******)pppppppcVar14[10];\nLAB_00054d1c:\n                  pppppppcVar28 = (code *******)PTR_s_nt0_000795b8;\n                  if (unaff_s7 != (code *******)0x0) break;\n                }\n                pppppppcVar28 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                local_dc = (code *******)\n                           (*(code *)PTR___assert_fail_000799f8)\n                                     (PTR_s_nt0_000795b8 + 0x71a0,pppppppcVar29,0x435);\n                if (local_dc == pppppppcVar26) {\n                  if ((int)local_dc < (int)param_3) {\n                    uVar7 = (uint)(byte)*(code *)((int)local_dc + (int)param_2);\n                  }\n                  else {\n                    uVar7 = 0;\n                  }\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    uVar7 = (uint)*(byte *)((int)ppppppcVar32 + uVar7);\n                  }\n                  if (*(code *)((int)local_148 + uVar7) == (code)0x0) {\n                    local_150 = (code *******)0x1;\n                    pppppppcVar30 = param_9;\n                    pppppppcVar33 = pppppppcVar28;\n                    goto LAB_000557e4;\n                  }\n                }\n              }\n              pppppppcVar33 = pppppppcVar28;\n              bVar1 = pppppppcVar36 != (code *******)0x0;\n              if ((local_50 == (code *******)0x0) ||\n                 (local_50[(int)pppppppcVar42] = (code ******)unaff_s7,\n                 pppppppcVar14[0x13] == (code ******)0x0)) {\nLAB_00054d50:\n                if ((int)unaff_s7[0xd] << 4 < 0) {\n                  if ((((uint)unaff_s7[0xd] & 0x1000000) == 0) ||\n                     (pppppppcVar29 = unaff_s7, pppppppcVar30 = pppppppcVar42,\n                     iVar18 = FUN_00049440(&local_b4), iVar18 != 0)) {\n                    unaff_s8 = pppppppcVar42;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                  }\n                  else {\n                    pppppppcVar42 = (code *******)0xffffffff;\n                    pppppppcVar28 = (code *******)0x0;\n                  }\n                }\n                else {\n                  pppppppcVar42 = (code *******)0xffffffff;\n                  pppppppcVar28 = (code *******)0x0;\n                }\n                pcVar8 = (code *)(PTR_DAT_000799a4 + -0x7144);\n                pcVar9 = (code *)(PTR_DAT_000799a4 + -0x1980);\n                pcVar10 = (code *)(PTR_DAT_000799a4 + -0x2f9c);\n                unaff_s8 = pppppppcVar42;\n                local_144 = pppppppcVar36;\n                while( true ) {\n                  uVar44 = CONCAT44(local_98,local_84);\n                  unaff_s5 = (code *******)((int)local_8c + 1);\n                  pppppppcVar29 = local_8c;\n                  if ((int)local_7c <= (int)local_8c) break;\n                  if (((int)local_90 <= (int)unaff_s5) && ((int)local_90 < (int)local_84))\n                  goto LAB_00054e94;\n                  if ((int)local_98 <= (int)unaff_s5) {\n                    while ((int)((ulonglong)uVar44 >> 0x20) < (int)uVar44) {\nLAB_00054e94:\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 2);\n                      local_d8 = (code *******)(*pcVar8)(&local_b4);\n                      if (local_d8 == (code *******)0x0) break;\n                      pppppppcVar14 = param_4;\n                      if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                      pppppppcVar33 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                      pppppppcVar30 = (code *******)0x46c;\n                      pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                      uVar44 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0);\n                      pppppppcVar28 = pppppppcVar38;\n                    }\n                  }\n                  pppppppcVar42 = local_60;\n                  if ((int)unaff_s7[0xd] << 5 < 0) {\n                    pppppppcVar31 = pppppppcVar42;\n                    if (0 < (int)unaff_s7[2]) {\n                      pcVar11 = (code *)(PTR_DAT_000799a4 + -0x6fdc);\n                      pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6ef0);\n                      param_6 = (code *******)0x0;\n                      do {\n                        param_5 = (code *******)unaff_s7[3][(int)param_6];\n                        ppppppcVar39 = *pppppppcVar42;\n                        pppppcVar13 = ppppppcVar39[(int)param_5 * 2 + 1];\n                        if (((uint)pppppcVar13 & 0x800) != 0) {\n                          if (((uint)pppppcVar13 & 0xffc000) != 0) {\n                            pppppppcVar29 = local_8c;\n                            uVar19 = (*pcVar12)(&local_b4,local_8c,local_5c);\n                            uVar7 = (uint)((int)ppppppcVar39[(int)param_5 * 2 + 1] << 8) >> 0x16;\n                            if ((uVar7 & 4) == 0) {\n                              uVar27 = uVar19 & 1;\n                              if ((uVar7 & 8) != 0) goto joined_r0x00054f40;\n                            }\n                            else {\n                              uVar27 = uVar7 & 8;\n                              if ((uVar19 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                              if (uVar27 != 0) goto LAB_000550a4;\n                            }\n                            if ((((uVar7 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                               (((uVar7 & 0x80) != 0 &&\n                                (pppppppcVar33 = local_8c, (uVar19 & 8) == 0)))) goto LAB_000550a4;\n                          }\n                          pppppppcVar30 = &local_b4;\n                          pppppppcVar29 = param_5;\n                          pppppppcVar33 = local_8c;\n                          iVar18 = (*pcVar10)(pppppppcVar42);\n                          if (iVar18 != 0) {\n                            pppppppcVar14 = (code *******)((int)local_8c + iVar18);\n                            if (iVar18 <= local_3c) {\n                              iVar18 = local_3c;\n                            }\n                            pppppppcVar29 = pppppppcVar14;\n                            local_3c = iVar18;\n                            local_d4 = (code *******)(*pcVar11)(&local_b4);\n                            pppppppcVar15 = local_d4;\n                            if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                            pppppppcVar30 =\n                                 (code *******)\n                                 (pppppppcVar42[6] + (int)pppppppcVar42[3][(int)param_5] * 3);\n                            unaff_s4 = (code *******)((int)pppppppcVar14 * 4);\n                            param_5 = local_50 + (int)pppppppcVar14;\n                            if (*param_5 == (code ******)0x0) {\n                              local_d0 = (code *******)*pppppppcVar30;\n                              local_cc = (code *******)pppppppcVar30[1];\n                              local_c8 = (code *******)pppppppcVar30[2];\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *param_5 = ppppppcVar39;\n                            }\n                            else {\n                              pppppppcVar29 = (code *******)(*param_5)[10];\n                              local_d4 = (code *******)FUN_000484bc(&local_d0);\n                              pppppppcVar15 = local_d4;\n                              if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar15 = local_50 + (int)pppppppcVar14;\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *pppppppcVar15 = ppppppcVar39;\n                              (*(code *)PTR_free_00079c24)(local_c8);\n                            }\n                            unaff_s4 = local_50 + (int)pppppppcVar14;\n                            if ((*unaff_s4 == (code ******)0x0) &&\n                               (pppppppcVar15 = local_d4, local_d4 != (code *******)0x0))\n                            goto LAB_00055e44;\n                          }\n                        }\nLAB_000550a4:\n                        param_6 = (code *******)((int)param_6 + 1);\n                      } while ((int)param_6 < (int)unaff_s7[2]);\n                    }\n                    local_d8 = (code *******)0x0;\n                  }\n                  uVar7 = (uint)(byte)*(code *)((int)local_8c + (int)local_b0);\n                  local_8c = (code *******)((int)local_8c + 1);\n                  do {\n                    if (unaff_s7[0xb] != (code ******)0x0) {\n                      pppppppcVar30 = (code *******)unaff_s7[0xb][uVar7];\nLAB_000553a0:\n                      pppppppcVar14 = pppppppcVar30;\n                      if (local_50 != (code *******)0x0) goto LAB_000553ac;\n                      goto LAB_000553cc;\n                    }\n                    pppppppcVar31 = (code *******)unaff_s7[0xc];\n                    if (pppppppcVar31 != (code *******)0x0) {\n                      pppppppcVar29 = (code *******)((int)local_8c + -1);\n                      uVar19 = FUN_00049110(&local_b4);\n                      if ((uVar19 & 1) == 0) {\n                        pppppppcVar30 = (code *******)pppppppcVar31[uVar7];\n                      }\n                      else {\n                        pppppppcVar31 = pppppppcVar31 + uVar7 + 0x100;\n                        pppppppcVar30 = (code *******)*pppppppcVar31;\n                      }\n                      goto LAB_000553a0;\n                    }\n                    pppppppcVar29 = unaff_s7;\n                    pppppppcVar30 = local_5c;\n                    iVar18 = (*pcVar9)(local_60);\n                  } while (iVar18 != 0);\n                  local_d8 = (code *******)0xc;\n                  pppppppcVar15 = local_d8;\nLAB_00055e44:\n                  local_d8 = pppppppcVar15;\n                  param_4 = (code *******)0x0;\n                  if (local_50 == (code *******)0x0) {\n                    pppppppcVar14 = param_4;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    break;\n                  }\n                  pppppppcVar30 = (code *******)0x0;\nLAB_000553ac:\n                  pppppppcVar29 = &local_b4;\n                  pppppppcVar14 = (code *******)FUN_00053684(&local_d8);\nLAB_000553cc:\n                  param_4 = pppppppcVar14;\n                  if (pppppppcVar14 == (code *******)0x0) {\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    if ((local_50 == (code *******)0x0) ||\n                       ((pppppppcVar28 != (code *******)0x0 && (pppppppcVar34 == (code *******)0x0))\n                       )) break;\n                    param_6 = &local_b4;\n                    param_5 = (code *******)&local_d8;\n                    pppppppcVar31 = (code *******)(PTR_DAT_000799a4 + 0x3684);\n                    do {\n                      pppppppcVar15 = local_50 + (int)local_8c;\n                      pppppppcVar42 = local_8c;\n                      do {\n                        pppppppcVar42 = (code *******)((int)pppppppcVar42 + 1);\n                        pppppppcVar29 = local_4c;\n                        param_4 = pppppppcVar14;\n                        if ((int)local_4c < (int)pppppppcVar42) goto LAB_00055da8;\n                        local_8c = (code *******)((int)local_8c + 1);\n                        pppppppcVar15 = pppppppcVar15 + 1;\n                      } while (*pppppppcVar15 == (code ******)0x0);\n                      pppppppcVar30 = (code *******)0x0;\n                      pppppppcVar29 = param_6;\n                      param_4 = (code *******)(*(code *)pppppppcVar31)(param_5);\n                      if (local_d8 != (code *******)0x0) {\n                        if (param_4 == (code *******)0x0) goto LAB_00055da8;\n                        break;\n                      }\n                      pppppppcVar29 = local_4c;\n                    } while (param_4 == (code *******)0x0);\n                  }\n                  pppppppcVar15 = (code *******)((uint)unaff_s7 ^ (uint)param_4);\n                  pppppppcVar42 = unaff_s7;\n                  pppppppcVar14 = local_138;\n                  if ((bVar1) &&\n                     (pppppppcVar42 = pppppppcVar15, pppppppcVar14 = unaff_s5,\n                     pppppppcVar15 != (code *******)0x0)) {\n                    bVar1 = false;\n                    pppppppcVar14 = local_138;\n                  }\n                  local_138 = pppppppcVar14;\n                  unaff_s7 = param_4;\n                  if ((((uint)param_4[0xd] & 0x8000000) != 0) &&\n                     ((((uint)param_4[0xd] & 0x1000000) == 0 ||\n                      (pppppppcVar29 = param_4, pppppppcVar30 = local_8c,\n                      iVar18 = FUN_00049440(&local_b4), iVar18 != 0)))) {\n                    unaff_s7 = pppppppcVar42;\n                    unaff_s8 = local_8c;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                    local_144 = (code *******)0x0;\n                    unaff_s7 = param_4;\n                  }\n                }\nLAB_00055da8:\n                if (local_144 != (code *******)0x0) {\n                  *local_144 = (code ******)((int)local_138 + (int)*local_144);\n                }\n              }\n              else {\n                param_4 = unaff_s7 + 1;\n                pppppppcVar30 = (code *******)0x0;\n                pppppppcVar29 = param_4;\n                local_d8 = (code *******)FUN_00047a44(&local_b4);\n                unaff_s8 = local_d8;\n                if (local_d8 == (code *******)0x0) {\n                  if (((uint)unaff_s7[0xd] & 0x2000000) == 0) {\n                    pppppppcVar29 = param_4;\n                    bVar1 = false;\n                  }\n                  else {\n                    pppppppcVar29 = param_4;\n                    local_d8 = (code *******)FUN_00052d84(&local_b4);\n                    unaff_s8 = local_d8;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055dbc;\n                    bVar1 = false;\n                  }\n                  goto LAB_00054d50;\n                }\n              }\nLAB_00055dbc:\n              if (unaff_s8 == (code *******)0xffffffff) {\nLAB_00055b04:\n                FUN_0004b7e8(&local_b4);\nLAB_00055b1c:\n                local_dc = (code *******)((int)pppppppcVar24 + (int)local_dc);\n                if ((int)pppppppcVar25 <= (int)local_dc) goto code_r0x00055b38;\n                local_150 = (code *******)0x1;\n                goto LAB_000557e4;\n              }\n              if (unaff_s8 == (code *******)&SUB_fffffffe) {\n                local_150 = (code *******)0xc;\n                goto LAB_000557e4;\n              }\n              local_58 = unaff_s8;\n              if (((uint)param_1[7] & 0x8000000) == 0) {\n                if (pppppppcVar3 < (code *******)0x2) {\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055c08;\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                else {\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                if (pppppppcVar3 < (code *******)0x2) {\nLAB_00055c6c:\n                  pppppppcVar28 = pppppppcVar33;\n                  unaff_s4 = local_60;\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055548;\n                }\n                else {\n                  cVar23 = *(code *)(pppppppcVar38 + 0x16);\nLAB_00055c20:\n                  pppppppcVar28 = pppppppcVar33;\n                  if (-1 < (char)cVar23) goto LAB_00055c6c;\n                }\n                pppppppcVar31 = local_54;\n                pppppppcVar42 = local_60;\n                unaff_s4 = pppppppcVar42;\n                if (unaff_s8 < (code *******)0x3fffffff) {\n                  param_4 = (code *******)((int)((int)unaff_s8 + 1) * 4);\n                  unaff_s5 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                  if (unaff_s5 == (code *******)0x0) {\nLAB_00055b9c:\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    local_150 = (code *******)0xc;\n                    pppppppcVar33 = pppppppcVar28;\n                  }\n                  else {\n                    pppppppcVar29 = (code *******)&local_d0;\n                    if (pppppppcVar42[0x13] == (code ******)0x0) {\n                      local_cc = (code *******)0x0;\n                      local_c8 = pppppppcVar31;\n                      local_c0 = 0;\n                      local_bc = 0;\n                      local_b8 = 0;\n                      local_d0 = unaff_s5;\n                      local_c4 = unaff_s8;\n                      param_5 = (code *******)FUN_0005421c(&local_b4);\n                      (*(code *)PTR_free_00079c24)(local_b8);\n                      if (param_5 == (code *******)0x0) {\n                        param_4 = (code *******)*unaff_s5;\n                        if (param_4 == (code *******)0x0) {\nLAB_00055b70:\n                          (*(code *)PTR_free_00079c24)(unaff_s5);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          pppppppcVar33 = pppppppcVar28;\n                          goto LAB_00055b04;\n                        }\nLAB_00055528:\n                        (*(code *)PTR_free_00079c24)(local_50);\n                        pppppppcVar33 = pppppppcVar28;\n                        unaff_s4 = pppppppcVar42;\n                        local_58 = unaff_s8;\n                        local_54 = pppppppcVar31;\n                        local_50 = unaff_s5;\n                        goto LAB_00055548;\n                      }\nLAB_00055acc:\n                      param_4 = (code *******)0x0;\n                      pppppppcVar33 = pppppppcVar28;\n                      unaff_s4 = pppppppcVar42;\n                    }\n                    else {\n                      param_4 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                      if (param_4 == (code *******)0x0) goto LAB_00055b9c;\n                      unaff_s7 = (code *******)&local_d0;\n                      pcVar8 = (code *)(PTR_DAT_000799a4 + 0x421c);\n                      pcVar9 = (code *)(PTR_DAT_000799a4 + -0x6bc0);\n                      pppppppcVar33 = pppppppcVar28;\n                      while( true ) {\n                        pppppppcVar28 = (code *******)((int)unaff_s8 + 1);\n                        param_6 = (code *******)((int)pppppppcVar28 * 4);\n                        pppppppcVar30 = param_6;\n                        (*(code *)PTR_memset_00079b00)(param_4,0);\n                        local_c0 = 0;\n                        local_bc = 0;\n                        local_b8 = 0;\n                        pppppppcVar29 = unaff_s7;\n                        local_d0 = unaff_s5;\n                        local_cc = param_4;\n                        local_c8 = pppppppcVar31;\n                        local_c4 = unaff_s8;\n                        param_5 = (code *******)(*pcVar8)(&local_b4);\n                        (*(code *)PTR_free_00079c24)(local_b8);\n                        unaff_s4 = pppppppcVar28;\n                        if (param_5 != (code *******)0x0) break;\n                        if ((*unaff_s5 != (code ******)0x0) ||\n                           (param_6 = param_6 + -1, *param_4 != (code ******)0x0)) {\n                          pppppppcVar29 = unaff_s5;\n                          pppppppcVar30 = param_4;\n                          param_5 = (code *******)FUN_000520d0(pppppppcVar42);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          if (param_5 != (code *******)0x0) goto LAB_00055acc;\n                          goto LAB_00055528;\n                        }\n                        param_6 = (code *******)((int)local_50 + (int)param_6);\n                        do {\n                          while( true ) {\n                            unaff_s8 = (code *******)((int)unaff_s8 + -1);\n                            if ((int)unaff_s8 < 0) goto LAB_00055b70;\n                            pppppppcVar29 = (code *******)param_6[-1];\n                            if (pppppppcVar29 != (code *******)0x0) break;\n                            param_6 = param_6 + -1;\n                          }\n                          param_6 = param_6 + -1;\n                        } while (((uint)pppppppcVar29[0xd] & 0x8000000) == 0);\n                        pppppppcVar31 = (code *******)(*pcVar9)(&local_b4,pppppppcVar29,unaff_s8);\n                        pppppppcVar33 = pppppppcVar28;\n                      }\n                    }\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    (*(code *)PTR_free_00079c24)(param_4);\n                    local_150 = param_5;\n                    if (param_5 == (code *******)0x1) goto LAB_00055b04;\n                  }\n                }\n                else {\n                  local_150 = (code *******)0xc;\n                  pppppppcVar33 = pppppppcVar28;\n                }\n                goto LAB_000557e4;\n              }\n              if (pppppppcVar38[0x13] != (code ******)0x0) {\n                pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                pppppppcVar30 = unaff_s8;\n                local_54 = (code *******)FUN_00049440(&local_b4);\n                goto LAB_00055c6c;\n              }\nLAB_00055c08:\n              if ((((uint)param_1[7] & 0x8000000) == 0) && ((code *******)0x1 < pppppppcVar3)) {\n                cVar23 = *(code *)(pppppppcVar38 + 0x16);\n                goto LAB_00055c20;\n              }\nLAB_00055548:\n              if (pppppppcVar3 == (code *******)0x0) goto LAB_000557e4;\n              if (pppppppcVar3 < (code *******)0x2) {\n                *param_8 = (code ******)0x0;\n                param_8[1] = (code ******)local_58;\n                goto LAB_000555ac;\n              }\n              pppppppcVar29 = param_8 + 2;\n              do {\n                pppppppcVar29[1] = (code ******)0xffffffff;\n                *pppppppcVar29 = (code ******)0xffffffff;\n                pppppppcVar29 = pppppppcVar29 + 2;\n              } while (pppppppcVar29 != param_8 + (int)pppppppcVar3 * 2);\n              *param_8 = (code ******)0x0;\n              param_8[1] = (code ******)local_58;\n              if (((uint)param_1[7] & 0x8000000) != 0) {\nLAB_000555ac:\n                pppppppcVar33 = param_8;\n                do {\n                  pppppppcVar29 = (code *******)*pppppppcVar33;\n                  if (pppppppcVar29 != (code *******)0xffffffff) {\n                    if (local_68 != '\0') {\n                      pppppppcVar34 = local_94;\n                      if (pppppppcVar29 != local_98) {\n                        pppppppcVar34 = *(code ********)(local_a8 + (int)pppppppcVar29 * 4);\n                      }\n                      *pppppppcVar33 = (code ******)pppppppcVar34;\n                      pppppppcVar29 = local_94;\n                      if (local_98 != (code *******)pppppppcVar33[1]) {\n                        pppppppcVar29 = *(code ********)(local_a8 + (int)pppppppcVar33[1] * 4);\n                      }\n                      pppppppcVar33[1] = (code ******)pppppppcVar29;\n                    }\n                    *pppppppcVar33 = (code ******)((int)local_dc + (int)*pppppppcVar33);\n                    pppppppcVar29 = (code *******)((int)local_dc + (int)pppppppcVar33[1]);\n                    pppppppcVar33[1] = (code ******)pppppppcVar29;\n                  }\n                  pppppppcVar33 = pppppppcVar33 + 2;\n                } while (pppppppcVar33 != param_8 + (int)pppppppcVar3 * 2);\n                if (0 < local_118) {\n                  pppppppcVar33 = param_8 + (int)pppppppcVar3 * 2;\n                  do {\n                    *pppppppcVar33 = (code ******)0xffffffff;\n                    pppppppcVar33[1] = (code ******)0xffffffff;\n                    pppppppcVar33 = pppppppcVar33 + 2;\n                  } while (pppppppcVar33 != param_8 + (int)param_7 * 2);\n                }\n                pppppppcVar30 = local_dc;\n                pppppppcVar33 = param_8;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar38[0x21] != (code ******)0x0) {\n                  pppppppcVar30 = (code *******)((int)pppppppcVar3 + -1);\n                  pppppppcVar34 = (code *******)0x0;\n                  pppppppcVar3 = param_8;\n                  while( true ) {\n                    pppppppcVar29 = (code *******)((int)pppppppcVar34 * 4);\n                    if (pppppppcVar30 == pppppppcVar34) break;\n                    if (*(code ********)((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) !=\n                        pppppppcVar34) {\n                      pppppppcVar3[2] =\n                           param_8[(int)((int)*(code ********)\n                                               ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1)\n                                   * 2];\n                      pppppppcVar3[3] =\n                           param_8[((int)*(code ******)\n                                          ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1) * 2 +\n                                   1];\n                    }\n                    pppppppcVar34 = (code *******)((int)pppppppcVar34 + 1);\n                    pppppppcVar3 = pppppppcVar3 + 2;\n                  }\n                }\n                goto LAB_000557e4;\n              }\n              if ((char)*(code *)(pppppppcVar38 + 0x16) < '\0') {\n                local_168 = (uint)(0 < (int)pppppppcVar38[0x13]);\n              }\n              else {\n                local_168 = 0;\n              }\n              pppppppcVar29 = &local_b4;\n              pppppppcVar30 = pppppppcVar3;\n              pppppppcVar33 = param_8;\n              local_150 = (code *******)FUN_0004f4a0(param_1);\n              if (local_150 == (code *******)0x0) goto LAB_000555ac;\n            }\n          }\n          else if (local_90 < 0x3fffffff) {\n            local_50 = (code *******)(*(code *)PTR_malloc_00079b54)((local_90 + 1) * 4);\n            if (local_50 != (code *******)0x0) goto LAB_00055a40;\n            local_150 = (code *******)0xc;\n            param_6 = pppppppcVar36;\n          }\n          else {\n            local_150 = (code *******)0xc;\n            param_6 = pppppppcVar36;\n          }\n        }\n        else {\n          unaff_s5 = (code *******)((int)ppppppcVar35 * 8);\n          if (pppppppcVar36 < (code *******)0xccccccd) {\n            unaff_s4 = (code *******)(*(code *)PTR_malloc_00079b54)((int)ppppppcVar35 * 0x28);\n            local_40 = unaff_s4;\n            local_30 = (*(code *)PTR_malloc_00079b54)(unaff_s5);\n            if ((unaff_s4 != (code *******)0x0) && (local_30 != 0)) goto LAB_000559f0;\n          }\n          local_150 = (code *******)0xc;\n          param_6 = pppppppcVar36;\n        }\nLAB_000557e4:\n        (*(code *)PTR_free_00079c24)(local_50);\n        param_1 = pppppppcVar30;\n        if (pppppppcVar38[0x13] != (code ******)0x0) {\n          FUN_0004b7e8(&local_b4);\n          (*(code *)PTR_free_00079c24)(local_30);\n          (*(code *)PTR_free_00079c24)(local_40);\n          param_1 = pppppppcVar30;\n        }\n        FUN_0004b2bc(&local_b4);\n        pppppppcStack_1a0 = param_4;\n        pppppppcStack_19c = pppppppcVar31;\n      }" else (compound_statement "{\n        param_5 = pppppppcVar3;\n        pppppppcVar3 = (code *******)((int)param_7 - local_118);\n        if (pppppppcVar3 == (code *******)0x0) {\n          pppppppcVar34 = (code *******)(uint)(pppppppcVar38[0x13] != (code ******)0x0);\n        }\n        else {\n          pppppppcVar34 = (code *******)0x1;\n        }\n        ppppppcVar32 = param_1[5];\n        local_6c = (byte)((uint)((int)param_1[3] << 9) >> 0x1f);\n        local_64 = (code *******)pppppppcVar38[0x17];\n        pppppppcVar31 = (code *******)((int)pppppppcVar38[2] + 1);\n        if ((int)pppppppcVar38[2] + 1 < (int)local_64) {\n          pppppppcVar31 = local_64;\n        }\n        pppppppcVar30 = (code *******)(uint)((int)param_3 + 1 < (int)pppppppcVar31);\n        pppppppcVar33 = (code *******)0x1;\n        local_69 = local_6c;\n        if (ppppppcVar32 != (code ******)0x0) {\n          local_69 = 1;\n        }\n        local_6b = (byte)((uint)((int)pppppppcVar38[0x16] << 2) >> 0x1f);\n        local_6a = (byte)((uint)((int)pppppppcVar38[0x16] << 3) >> 0x1f);\n        pppppppcVar29 = (code *******)((int)param_3 + 1);\n        if (pppppppcVar30 == (code *******)0x0) {\n          pppppppcVar29 = pppppppcVar31;\n        }\n        local_b4 = param_2;\n        local_88 = param_3;\n        local_84 = param_3;\n        local_80 = param_3;\n        local_7c = param_3;\n        local_74 = ppppppcVar32;\n        local_150 = (code *******)FUN_00046d2c(&local_b4);\n        pppppppcVar31 = pppppppcVar34;\n        param_6 = param_6;\n        if (local_150 != (code *******)0x0) goto LAB_000557e4;\n        local_70 = pppppppcVar38 + 0x18;\n        local_66 = (byte)((uint)((int)pppppppcVar38[0x16] << 4) >> 0x1f);\n        pppppppcVar2 = (code *******)0x0;\n        local_98 = pppppppcVar2;\n        if ((local_69 == 0) && (local_b0 = param_2, (int)pppppppcVar38[0x17] < 2)) {\n          local_98 = param_3;\n        }\n        local_7c = param_6;\n        local_80 = param_6;\n        local_67 = (byte)((uint)((int)param_1[7] << 7) >> 0x1f);\n        ppppppcVar35 = pppppppcVar38[0x13];\n        pppppppcVar36 = (code *******)((int)ppppppcVar35 * 2);\n        local_5c = param_9;\n        local_58 = (code *******)0xffffffff;\n        local_94 = local_98;\n        if ((int)pppppppcVar36 < 1) {\nLAB_000559f0:\n          local_3c = 1;\n          local_44 = pppppppcVar36;\n          local_34 = pppppppcVar36;\n          if ((pppppppcVar3 < (code *******)0x2) && (((uint)pppppppcVar38[0x16] & 0x40000000) == 0))\n          {\n            local_50 = (code *******)0x0;\nLAB_00055a40:\n            local_78 = 6;\n            if (((uint)param_9 & 1) != 0) {\n              local_78 = 4;\n            }\n            pppppppcVar24 = (code *******)0x1;\n            pppppppcVar25 = param_4;\n            if ((int)param_5 < (int)param_4) {\n              pppppppcVar24 = (code *******)0xffffffff;\n              pppppppcVar25 = param_5;\n            }\n            pppppppcVar26 = param_5;\n            if ((int)param_5 <= (int)param_4) {\n              pppppppcVar26 = param_4;\n            }\n            ppppppcVar35 = pppppppcVar38[0x17];\n            uVar16 = 8;\n            if (local_148 != (code *******)0x0) {\n              if (ppppppcVar35 == (code ******)0x1) {\n                pppppppcVar28 = (code *******)0x4;\n              }\n              else {\n                pppppppcVar28 = pppppppcVar2;\n                if ((-1 < (int)param_1[3] << 9) && (ppppppcVar32 == (code ******)0x0)) {\n                  pppppppcVar28 = (code *******)0x4;\n                }\n              }\n              pppppppcVar29 = (code *******)0x0;\n              if ((int)param_4 <= (int)param_5) {\n                pppppppcVar29 = (code *******)0x2;\n              }\n              uVar16 = (uint)(ppppppcVar32 != (code ******)0x0) | (uint)pppppppcVar28 |\n                       (uint)pppppppcVar29;\n            }\n            local_dc = param_4;\n            if ((int)param_4 < (int)pppppppcVar25) {\n              local_150 = (code *******)0x1;\n              param_6 = pppppppcVar36;\n            }\n            else if ((int)pppppppcVar26 < (int)param_4) {\n              local_150 = (code *******)0x1;\n              param_4 = (code *******)(uint)((int)param_5 < (int)param_4);\n              param_6 = pppppppcVar36;\n            }\n            else {\n              pppppppcVar36 = (code *******)&local_dc;\n              if ((code *******)(uint)((int)param_5 < (int)param_4) != (code *******)0x0) {\n                pppppppcVar36 = (code *******)0x0;\n              }\n              pcVar4 = (code *)(PTR_DAT_000799a4 + -0x2b7c);\n              piVar5 = (int *)(PTR_s_nt0_000795b8 + (uVar16 - 4) * 4 + 0x6e38);\nLAB_00055b44:\n              if (uVar16 - 4 < 5) {\n                    /* WARNING: Could not emulate address calculation at 0x00054920 */\n                    /* WARNING: Treating indirect jump as call */\n                pppppppcVar29 = (code *******)(*(code *)(&_gp_1 + *piVar5))();\n                return pppppppcVar29;\n              }\n              param_5 = &local_b4;\n              pppppppcVar28 = pppppppcVar33;\n              while( true ) {\n                param_4 = local_dc;\n                pppppppcVar33 = (code *******)((int)local_dc - local_9c);\n                pppppppcVar30 = param_9;\n                pppppppcVar31 = pppppppcVar2;\n                param_6 = local_148;\n                unaff_s4 = param_3;\n                unaff_s5 = pppppppcVar24;\n                unaff_s7 = pppppppcVar26;\n                if (local_94 <= pppppppcVar33) {\n                  pppppppcVar29 = local_dc;\n                  local_150 = (code *******)(*pcVar4)(param_5);\n                  pppppppcVar33 = pppppppcVar28;\n                  if (local_150 != (code *******)0x0) goto LAB_000557e4;\n                  pppppppcVar33 = (code *******)((int)param_4 - local_9c);\n                }\n                if ((int)param_4 < (int)param_3) {\n                  uVar7 = (uint)(byte)*(code *)((int)pppppppcVar33 + (int)local_b0);\n                }\n                else {\n                  uVar7 = 0;\n                }\n                param_4 = (code *******)((int)param_4 + (int)pppppppcVar24);\n                if (*(code *)((int)local_148 + uVar7) != (code)0x0) break;\n                pppppppcVar33 = pppppppcVar28;\n                local_dc = param_4;\n                if ((int)param_4 < (int)pppppppcVar25) {\n                  local_150 = (code *******)0x1;\n                  goto LAB_000557e4;\n                }\n                if ((code *******)(uint)((int)pppppppcVar26 < (int)param_4) != (code *******)0x0) {\n                  local_150 = (code *******)0x1;\n                  param_4 = (code *******)(uint)((int)pppppppcVar26 < (int)param_4);\n                  goto LAB_000557e4;\n                }\n              }\n              while( true ) {\n                pppppppcVar29 = local_dc;\n                pppppppcVar30 = param_9;\n                pppppppcVar6 = (code *******)(*pcVar4)(&local_b4);\n                pppppppcVar14 = local_60;\n                pppppppcVar42 = local_8c;\n                pppppppcVar33 = pppppppcVar28;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar6 != (code *******)0x0) goto LAB_000557e4;\n                if (((ppppppcVar35 != (code ******)0x1) && (local_98 != (code *******)0x0)) &&\n                   (*local_ac == -1)) goto LAB_00055b1c;\n                local_3c = 0;\n                local_48 = 0;\n                local_4c = (code *******)0x0;\n                local_138 = local_8c;\n                local_d8 = (code *******)0x0;\n                unaff_s7 = (code *******)local_60[9];\n                pppppppcVar30 = local_5c;\n                param_4 = pppppppcVar14;\n                if (((uint)unaff_s7[0xd] & 0x1000000) == 0) break;\n                pppppppcVar29 = (code *******)((int)local_8c + -1);\n                pppppppcVar33 = (code *******)FUN_00049110(&local_b4);\n                if (((uint)pppppppcVar33 & 1) == 0) {\n                  if (pppppppcVar33 == (code *******)0x0) break;\n                  if (((uint)pppppppcVar33 & 6) == 6) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xc];\n                    goto LAB_00054d1c;\n                  }\n                  if (((uint)pppppppcVar33 & 2) != 0) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xb];\n                    goto LAB_00054d1c;\n                  }\n                  pppppppcVar28 = pppppppcVar33;\n                  if (((uint)pppppppcVar33 & 4) == 0) break;\n                  pppppppcVar30 = (code *******)unaff_s7[10];\n                  pppppppcVar29 = pppppppcVar14;\n                  unaff_s7 = (code *******)FUN_0004ae34(&local_d8);\n                  pppppppcVar28 = pppppppcVar33;\n                  if (unaff_s7 != (code *******)0x0) break;\n                  if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                }\n                else {\n                  unaff_s7 = (code *******)pppppppcVar14[10];\nLAB_00054d1c:\n                  pppppppcVar28 = (code *******)PTR_s_nt0_000795b8;\n                  if (unaff_s7 != (code *******)0x0) break;\n                }\n                pppppppcVar28 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                local_dc = (code *******)\n                           (*(code *)PTR___assert_fail_000799f8)\n                                     (PTR_s_nt0_000795b8 + 0x71a0,pppppppcVar29,0x435);\n                if (local_dc == pppppppcVar26) {\n                  if ((int)local_dc < (int)param_3) {\n                    uVar7 = (uint)(byte)*(code *)((int)local_dc + (int)param_2);\n                  }\n                  else {\n                    uVar7 = 0;\n                  }\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    uVar7 = (uint)*(byte *)((int)ppppppcVar32 + uVar7);\n                  }\n                  if (*(code *)((int)local_148 + uVar7) == (code)0x0) {\n                    local_150 = (code *******)0x1;\n                    pppppppcVar30 = param_9;\n                    pppppppcVar33 = pppppppcVar28;\n                    goto LAB_000557e4;\n                  }\n                }\n              }\n              pppppppcVar33 = pppppppcVar28;\n              bVar1 = pppppppcVar36 != (code *******)0x0;\n              if ((local_50 == (code *******)0x0) ||\n                 (local_50[(int)pppppppcVar42] = (code ******)unaff_s7,\n                 pppppppcVar14[0x13] == (code ******)0x0)) {\nLAB_00054d50:\n                if ((int)unaff_s7[0xd] << 4 < 0) {\n                  if ((((uint)unaff_s7[0xd] & 0x1000000) == 0) ||\n                     (pppppppcVar29 = unaff_s7, pppppppcVar30 = pppppppcVar42,\n                     iVar18 = FUN_00049440(&local_b4), iVar18 != 0)) {\n                    unaff_s8 = pppppppcVar42;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                  }\n                  else {\n                    pppppppcVar42 = (code *******)0xffffffff;\n                    pppppppcVar28 = (code *******)0x0;\n                  }\n                }\n                else {\n                  pppppppcVar42 = (code *******)0xffffffff;\n                  pppppppcVar28 = (code *******)0x0;\n                }\n                pcVar8 = (code *)(PTR_DAT_000799a4 + -0x7144);\n                pcVar9 = (code *)(PTR_DAT_000799a4 + -0x1980);\n                pcVar10 = (code *)(PTR_DAT_000799a4 + -0x2f9c);\n                unaff_s8 = pppppppcVar42;\n                local_144 = pppppppcVar36;\n                while( true ) {\n                  uVar44 = CONCAT44(local_98,local_84);\n                  unaff_s5 = (code *******)((int)local_8c + 1);\n                  pppppppcVar29 = local_8c;\n                  if ((int)local_7c <= (int)local_8c) break;\n                  if (((int)local_90 <= (int)unaff_s5) && ((int)local_90 < (int)local_84))\n                  goto LAB_00054e94;\n                  if ((int)local_98 <= (int)unaff_s5) {\n                    while ((int)((ulonglong)uVar44 >> 0x20) < (int)uVar44) {\nLAB_00054e94:\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 2);\n                      local_d8 = (code *******)(*pcVar8)(&local_b4);\n                      if (local_d8 == (code *******)0x0) break;\n                      pppppppcVar14 = param_4;\n                      if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                      pppppppcVar33 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                      pppppppcVar30 = (code *******)0x46c;\n                      pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                      uVar44 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0);\n                      pppppppcVar28 = pppppppcVar38;\n                    }\n                  }\n                  pppppppcVar42 = local_60;\n                  if ((int)unaff_s7[0xd] << 5 < 0) {\n                    pppppppcVar31 = pppppppcVar42;\n                    if (0 < (int)unaff_s7[2]) {\n                      pcVar11 = (code *)(PTR_DAT_000799a4 + -0x6fdc);\n                      pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6ef0);\n                      param_6 = (code *******)0x0;\n                      do {\n                        param_5 = (code *******)unaff_s7[3][(int)param_6];\n                        ppppppcVar39 = *pppppppcVar42;\n                        pppppcVar13 = ppppppcVar39[(int)param_5 * 2 + 1];\n                        if (((uint)pppppcVar13 & 0x800) != 0) {\n                          if (((uint)pppppcVar13 & 0xffc000) != 0) {\n                            pppppppcVar29 = local_8c;\n                            uVar19 = (*pcVar12)(&local_b4,local_8c,local_5c);\n                            uVar7 = (uint)((int)ppppppcVar39[(int)param_5 * 2 + 1] << 8) >> 0x16;\n                            if ((uVar7 & 4) == 0) {\n                              uVar27 = uVar19 & 1;\n                              if ((uVar7 & 8) != 0) goto joined_r0x00054f40;\n                            }\n                            else {\n                              uVar27 = uVar7 & 8;\n                              if ((uVar19 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                              if (uVar27 != 0) goto LAB_000550a4;\n                            }\n                            if ((((uVar7 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                               (((uVar7 & 0x80) != 0 &&\n                                (pppppppcVar33 = local_8c, (uVar19 & 8) == 0)))) goto LAB_000550a4;\n                          }\n                          pppppppcVar30 = &local_b4;\n                          pppppppcVar29 = param_5;\n                          pppppppcVar33 = local_8c;\n                          iVar18 = (*pcVar10)(pppppppcVar42);\n                          if (iVar18 != 0) {\n                            pppppppcVar14 = (code *******)((int)local_8c + iVar18);\n                            if (iVar18 <= local_3c) {\n                              iVar18 = local_3c;\n                            }\n                            pppppppcVar29 = pppppppcVar14;\n                            local_3c = iVar18;\n                            local_d4 = (code *******)(*pcVar11)(&local_b4);\n                            pppppppcVar15 = local_d4;\n                            if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                            pppppppcVar30 =\n                                 (code *******)\n                                 (pppppppcVar42[6] + (int)pppppppcVar42[3][(int)param_5] * 3);\n                            unaff_s4 = (code *******)((int)pppppppcVar14 * 4);\n                            param_5 = local_50 + (int)pppppppcVar14;\n                            if (*param_5 == (code ******)0x0) {\n                              local_d0 = (code *******)*pppppppcVar30;\n                              local_cc = (code *******)pppppppcVar30[1];\n                              local_c8 = (code *******)pppppppcVar30[2];\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *param_5 = ppppppcVar39;\n                            }\n                            else {\n                              pppppppcVar29 = (code *******)(*param_5)[10];\n                              local_d4 = (code *******)FUN_000484bc(&local_d0);\n                              pppppppcVar15 = local_d4;\n                              if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar15 = local_50 + (int)pppppppcVar14;\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *pppppppcVar15 = ppppppcVar39;\n                              (*(code *)PTR_free_00079c24)(local_c8);\n                            }\n                            unaff_s4 = local_50 + (int)pppppppcVar14;\n                            if ((*unaff_s4 == (code ******)0x0) &&\n                               (pppppppcVar15 = local_d4, local_d4 != (code *******)0x0))\n                            goto LAB_00055e44;\n                          }\n                        }\nLAB_000550a4:\n                        param_6 = (code *******)((int)param_6 + 1);\n                      } while ((int)param_6 < (int)unaff_s7[2]);\n                    }\n                    local_d8 = (code *******)0x0;\n                  }\n                  uVar7 = (uint)(byte)*(code *)((int)local_8c + (int)local_b0);\n                  local_8c = (code *******)((int)local_8c + 1);\n                  do {\n                    if (unaff_s7[0xb] != (code ******)0x0) {\n                      pppppppcVar30 = (code *******)unaff_s7[0xb][uVar7];\nLAB_000553a0:\n                      pppppppcVar14 = pppppppcVar30;\n                      if (local_50 != (code *******)0x0) goto LAB_000553ac;\n                      goto LAB_000553cc;\n                    }\n                    pppppppcVar31 = (code *******)unaff_s7[0xc];\n                    if (pppppppcVar31 != (code *******)0x0) {\n                      pppppppcVar29 = (code *******)((int)local_8c + -1);\n                      uVar19 = FUN_00049110(&local_b4);\n                      if ((uVar19 & 1) == 0) {\n                        pppppppcVar30 = (code *******)pppppppcVar31[uVar7];\n                      }\n                      else {\n                        pppppppcVar31 = pppppppcVar31 + uVar7 + 0x100;\n                        pppppppcVar30 = (code *******)*pppppppcVar31;\n                      }\n                      goto LAB_000553a0;\n                    }\n                    pppppppcVar29 = unaff_s7;\n                    pppppppcVar30 = local_5c;\n                    iVar18 = (*pcVar9)(local_60);\n                  } while (iVar18 != 0);\n                  local_d8 = (code *******)0xc;\n                  pppppppcVar15 = local_d8;\nLAB_00055e44:\n                  local_d8 = pppppppcVar15;\n                  param_4 = (code *******)0x0;\n                  if (local_50 == (code *******)0x0) {\n                    pppppppcVar14 = param_4;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    break;\n                  }\n                  pppppppcVar30 = (code *******)0x0;\nLAB_000553ac:\n                  pppppppcVar29 = &local_b4;\n                  pppppppcVar14 = (code *******)FUN_00053684(&local_d8);\nLAB_000553cc:\n                  param_4 = pppppppcVar14;\n                  if (pppppppcVar14 == (code *******)0x0) {\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    if ((local_50 == (code *******)0x0) ||\n                       ((pppppppcVar28 != (code *******)0x0 && (pppppppcVar34 == (code *******)0x0))\n                       )) break;\n                    param_6 = &local_b4;\n                    param_5 = (code *******)&local_d8;\n                    pppppppcVar31 = (code *******)(PTR_DAT_000799a4 + 0x3684);\n                    do {\n                      pppppppcVar15 = local_50 + (int)local_8c;\n                      pppppppcVar42 = local_8c;\n                      do {\n                        pppppppcVar42 = (code *******)((int)pppppppcVar42 + 1);\n                        pppppppcVar29 = local_4c;\n                        param_4 = pppppppcVar14;\n                        if ((int)local_4c < (int)pppppppcVar42) goto LAB_00055da8;\n                        local_8c = (code *******)((int)local_8c + 1);\n                        pppppppcVar15 = pppppppcVar15 + 1;\n                      } while (*pppppppcVar15 == (code ******)0x0);\n                      pppppppcVar30 = (code *******)0x0;\n                      pppppppcVar29 = param_6;\n                      param_4 = (code *******)(*(code *)pppppppcVar31)(param_5);\n                      if (local_d8 != (code *******)0x0) {\n                        if (param_4 == (code *******)0x0) goto LAB_00055da8;\n                        break;\n                      }\n                      pppppppcVar29 = local_4c;\n                    } while (param_4 == (code *******)0x0);\n                  }\n                  pppppppcVar15 = (code *******)((uint)unaff_s7 ^ (uint)param_4);\n                  pppppppcVar42 = unaff_s7;\n                  pppppppcVar14 = local_138;\n                  if ((bVar1) &&\n                     (pppppppcVar42 = pppppppcVar15, pppppppcVar14 = unaff_s5,\n                     pppppppcVar15 != (code *******)0x0)) {\n                    bVar1 = false;\n                    pppppppcVar14 = local_138;\n                  }\n                  local_138 = pppppppcVar14;\n                  unaff_s7 = param_4;\n                  if ((((uint)param_4[0xd] & 0x8000000) != 0) &&\n                     ((((uint)param_4[0xd] & 0x1000000) == 0 ||\n                      (pppppppcVar29 = param_4, pppppppcVar30 = local_8c,\n                      iVar18 = FUN_00049440(&local_b4), iVar18 != 0)))) {\n                    unaff_s7 = pppppppcVar42;\n                    unaff_s8 = local_8c;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                    local_144 = (code *******)0x0;\n                    unaff_s7 = param_4;\n                  }\n                }\nLAB_00055da8:\n                if (local_144 != (code *******)0x0) {\n                  *local_144 = (code ******)((int)local_138 + (int)*local_144);\n                }\n              }\n              else {\n                param_4 = unaff_s7 + 1;\n                pppppppcVar30 = (code *******)0x0;\n                pppppppcVar29 = param_4;\n                local_d8 = (code *******)FUN_00047a44(&local_b4);\n                unaff_s8 = local_d8;\n                if (local_d8 == (code *******)0x0) {\n                  if (((uint)unaff_s7[0xd] & 0x2000000) == 0) {\n                    pppppppcVar29 = param_4;\n                    bVar1 = false;\n                  }\n                  else {\n                    pppppppcVar29 = param_4;\n                    local_d8 = (code *******)FUN_00052d84(&local_b4);\n                    unaff_s8 = local_d8;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055dbc;\n                    bVar1 = false;\n                  }\n                  goto LAB_00054d50;\n                }\n              }\nLAB_00055dbc:\n              if (unaff_s8 == (code *******)0xffffffff) {\nLAB_00055b04:\n                FUN_0004b7e8(&local_b4);\nLAB_00055b1c:\n                local_dc = (code *******)((int)pppppppcVar24 + (int)local_dc);\n                if ((int)pppppppcVar25 <= (int)local_dc) goto code_r0x00055b38;\n                local_150 = (code *******)0x1;\n                goto LAB_000557e4;\n              }\n              if (unaff_s8 == (code *******)&SUB_fffffffe) {\n                local_150 = (code *******)0xc;\n                goto LAB_000557e4;\n              }\n              local_58 = unaff_s8;\n              if (((uint)param_1[7] & 0x8000000) == 0) {\n                if (pppppppcVar3 < (code *******)0x2) {\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055c08;\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                else {\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                if (pppppppcVar3 < (code *******)0x2) {\nLAB_00055c6c:\n                  pppppppcVar28 = pppppppcVar33;\n                  unaff_s4 = local_60;\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055548;\n                }\n                else {\n                  cVar23 = *(code *)(pppppppcVar38 + 0x16);\nLAB_00055c20:\n                  pppppppcVar28 = pppppppcVar33;\n                  if (-1 < (char)cVar23) goto LAB_00055c6c;\n                }\n                pppppppcVar31 = local_54;\n                pppppppcVar42 = local_60;\n                unaff_s4 = pppppppcVar42;\n                if (unaff_s8 < (code *******)0x3fffffff) {\n                  param_4 = (code *******)((int)((int)unaff_s8 + 1) * 4);\n                  unaff_s5 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                  if (unaff_s5 == (code *******)0x0) {\nLAB_00055b9c:\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    local_150 = (code *******)0xc;\n                    pppppppcVar33 = pppppppcVar28;\n                  }\n                  else {\n                    pppppppcVar29 = (code *******)&local_d0;\n                    if (pppppppcVar42[0x13] == (code ******)0x0) {\n                      local_cc = (code *******)0x0;\n                      local_c8 = pppppppcVar31;\n                      local_c0 = 0;\n                      local_bc = 0;\n                      local_b8 = 0;\n                      local_d0 = unaff_s5;\n                      local_c4 = unaff_s8;\n                      param_5 = (code *******)FUN_0005421c(&local_b4);\n                      (*(code *)PTR_free_00079c24)(local_b8);\n                      if (param_5 == (code *******)0x0) {\n                        param_4 = (code *******)*unaff_s5;\n                        if (param_4 == (code *******)0x0) {\nLAB_00055b70:\n                          (*(code *)PTR_free_00079c24)(unaff_s5);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          pppppppcVar33 = pppppppcVar28;\n                          goto LAB_00055b04;\n                        }\nLAB_00055528:\n                        (*(code *)PTR_free_00079c24)(local_50);\n                        pppppppcVar33 = pppppppcVar28;\n                        unaff_s4 = pppppppcVar42;\n                        local_58 = unaff_s8;\n                        local_54 = pppppppcVar31;\n                        local_50 = unaff_s5;\n                        goto LAB_00055548;\n                      }\nLAB_00055acc:\n                      param_4 = (code *******)0x0;\n                      pppppppcVar33 = pppppppcVar28;\n                      unaff_s4 = pppppppcVar42;\n                    }\n                    else {\n                      param_4 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                      if (param_4 == (code *******)0x0) goto LAB_00055b9c;\n                      unaff_s7 = (code *******)&local_d0;\n                      pcVar8 = (code *)(PTR_DAT_000799a4 + 0x421c);\n                      pcVar9 = (code *)(PTR_DAT_000799a4 + -0x6bc0);\n                      pppppppcVar33 = pppppppcVar28;\n                      while( true ) {\n                        pppppppcVar28 = (code *******)((int)unaff_s8 + 1);\n                        param_6 = (code *******)((int)pppppppcVar28 * 4);\n                        pppppppcVar30 = param_6;\n                        (*(code *)PTR_memset_00079b00)(param_4,0);\n                        local_c0 = 0;\n                        local_bc = 0;\n                        local_b8 = 0;\n                        pppppppcVar29 = unaff_s7;\n                        local_d0 = unaff_s5;\n                        local_cc = param_4;\n                        local_c8 = pppppppcVar31;\n                        local_c4 = unaff_s8;\n                        param_5 = (code *******)(*pcVar8)(&local_b4);\n                        (*(code *)PTR_free_00079c24)(local_b8);\n                        unaff_s4 = pppppppcVar28;\n                        if (param_5 != (code *******)0x0) break;\n                        if ((*unaff_s5 != (code ******)0x0) ||\n                           (param_6 = param_6 + -1, *param_4 != (code ******)0x0)) {\n                          pppppppcVar29 = unaff_s5;\n                          pppppppcVar30 = param_4;\n                          param_5 = (code *******)FUN_000520d0(pppppppcVar42);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          if (param_5 != (code *******)0x0) goto LAB_00055acc;\n                          goto LAB_00055528;\n                        }\n                        param_6 = (code *******)((int)local_50 + (int)param_6);\n                        do {\n                          while( true ) {\n                            unaff_s8 = (code *******)((int)unaff_s8 + -1);\n                            if ((int)unaff_s8 < 0) goto LAB_00055b70;\n                            pppppppcVar29 = (code *******)param_6[-1];\n                            if (pppppppcVar29 != (code *******)0x0) break;\n                            param_6 = param_6 + -1;\n                          }\n                          param_6 = param_6 + -1;\n                        } while (((uint)pppppppcVar29[0xd] & 0x8000000) == 0);\n                        pppppppcVar31 = (code *******)(*pcVar9)(&local_b4,pppppppcVar29,unaff_s8);\n                        pppppppcVar33 = pppppppcVar28;\n                      }\n                    }\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    (*(code *)PTR_free_00079c24)(param_4);\n                    local_150 = param_5;\n                    if (param_5 == (code *******)0x1) goto LAB_00055b04;\n                  }\n                }\n                else {\n                  local_150 = (code *******)0xc;\n                  pppppppcVar33 = pppppppcVar28;\n                }\n                goto LAB_000557e4;\n              }\n              if (pppppppcVar38[0x13] != (code ******)0x0) {\n                pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                pppppppcVar30 = unaff_s8;\n                local_54 = (code *******)FUN_00049440(&local_b4);\n                goto LAB_00055c6c;\n              }\nLAB_00055c08:\n              if ((((uint)param_1[7] & 0x8000000) == 0) && ((code *******)0x1 < pppppppcVar3)) {\n                cVar23 = *(code *)(pppppppcVar38 + 0x16);\n                goto LAB_00055c20;\n              }\nLAB_00055548:\n              if (pppppppcVar3 == (code *******)0x0) goto LAB_000557e4;\n              if (pppppppcVar3 < (code *******)0x2) {\n                *param_8 = (code ******)0x0;\n                param_8[1] = (code ******)local_58;\n                goto LAB_000555ac;\n              }\n              pppppppcVar29 = param_8 + 2;\n              do {\n                pppppppcVar29[1] = (code ******)0xffffffff;\n                *pppppppcVar29 = (code ******)0xffffffff;\n                pppppppcVar29 = pppppppcVar29 + 2;\n              } while (pppppppcVar29 != param_8 + (int)pppppppcVar3 * 2);\n              *param_8 = (code ******)0x0;\n              param_8[1] = (code ******)local_58;\n              if (((uint)param_1[7] & 0x8000000) != 0) {\nLAB_000555ac:\n                pppppppcVar33 = param_8;\n                do {\n                  pppppppcVar29 = (code *******)*pppppppcVar33;\n                  if (pppppppcVar29 != (code *******)0xffffffff) {\n                    if (local_68 != '\0') {\n                      pppppppcVar34 = local_94;\n                      if (pppppppcVar29 != local_98) {\n                        pppppppcVar34 = *(code ********)(local_a8 + (int)pppppppcVar29 * 4);\n                      }\n                      *pppppppcVar33 = (code ******)pppppppcVar34;\n                      pppppppcVar29 = local_94;\n                      if (local_98 != (code *******)pppppppcVar33[1]) {\n                        pppppppcVar29 = *(code ********)(local_a8 + (int)pppppppcVar33[1] * 4);\n                      }\n                      pppppppcVar33[1] = (code ******)pppppppcVar29;\n                    }\n                    *pppppppcVar33 = (code ******)((int)local_dc + (int)*pppppppcVar33);\n                    pppppppcVar29 = (code *******)((int)local_dc + (int)pppppppcVar33[1]);\n                    pppppppcVar33[1] = (code ******)pppppppcVar29;\n                  }\n                  pppppppcVar33 = pppppppcVar33 + 2;\n                } while (pppppppcVar33 != param_8 + (int)pppppppcVar3 * 2);\n                if (0 < local_118) {\n                  pppppppcVar33 = param_8 + (int)pppppppcVar3 * 2;\n                  do {\n                    *pppppppcVar33 = (code ******)0xffffffff;\n                    pppppppcVar33[1] = (code ******)0xffffffff;\n                    pppppppcVar33 = pppppppcVar33 + 2;\n                  } while (pppppppcVar33 != param_8 + (int)param_7 * 2);\n                }\n                pppppppcVar30 = local_dc;\n                pppppppcVar33 = param_8;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar38[0x21] != (code ******)0x0) {\n                  pppppppcVar30 = (code *******)((int)pppppppcVar3 + -1);\n                  pppppppcVar34 = (code *******)0x0;\n                  pppppppcVar3 = param_8;\n                  while( true ) {\n                    pppppppcVar29 = (code *******)((int)pppppppcVar34 * 4);\n                    if (pppppppcVar30 == pppppppcVar34) break;\n                    if (*(code ********)((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) !=\n                        pppppppcVar34) {\n                      pppppppcVar3[2] =\n                           param_8[(int)((int)*(code ********)\n                                               ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1)\n                                   * 2];\n                      pppppppcVar3[3] =\n                           param_8[((int)*(code ******)\n                                          ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1) * 2 +\n                                   1];\n                    }\n                    pppppppcVar34 = (code *******)((int)pppppppcVar34 + 1);\n                    pppppppcVar3 = pppppppcVar3 + 2;\n                  }\n                }\n                goto LAB_000557e4;\n              }\n              if ((char)*(code *)(pppppppcVar38 + 0x16) < '\0') {\n                local_168 = (uint)(0 < (int)pppppppcVar38[0x13]);\n              }\n              else {\n                local_168 = 0;\n              }\n              pppppppcVar29 = &local_b4;\n              pppppppcVar30 = pppppppcVar3;\n              pppppppcVar33 = param_8;\n              local_150 = (code *******)FUN_0004f4a0(param_1);\n              if (local_150 == (code *******)0x0) goto LAB_000555ac;\n            }\n          }\n          else if (local_90 < 0x3fffffff) {\n            local_50 = (code *******)(*(code *)PTR_malloc_00079b54)((local_90 + 1) * 4);\n            if (local_50 != (code *******)0x0) goto LAB_00055a40;\n            local_150 = (code *******)0xc;\n            param_6 = pppppppcVar36;\n          }\n          else {\n            local_150 = (code *******)0xc;\n            param_6 = pppppppcVar36;\n          }\n        }\n        else {\n          unaff_s5 = (code *******)((int)ppppppcVar35 * 8);\n          if (pppppppcVar36 < (code *******)0xccccccd) {\n            unaff_s4 = (code *******)(*(code *)PTR_malloc_00079b54)((int)ppppppcVar35 * 0x28);\n            local_40 = unaff_s4;\n            local_30 = (*(code *)PTR_malloc_00079b54)(unaff_s5);\n            if ((unaff_s4 != (code *******)0x0) && (local_30 != 0)) goto LAB_000559f0;\n          }\n          local_150 = (code *******)0xc;\n          param_6 = pppppppcVar36;\n        }\nLAB_000557e4:\n        (*(code *)PTR_free_00079c24)(local_50);\n        param_1 = pppppppcVar30;\n        if (pppppppcVar38[0x13] != (code ******)0x0) {\n          FUN_0004b7e8(&local_b4);\n          (*(code *)PTR_free_00079c24)(local_30);\n          (*(code *)PTR_free_00079c24)(local_40);\n          param_1 = pppppppcVar30;\n        }\n        FUN_0004b2bc(&local_b4);\n        pppppppcStack_1a0 = param_4;\n        pppppppcStack_19c = pppppppcVar31;\n      }" { (expression_statement "param_5 = pppppppcVar3;" (assignment_expression "param_5 = pppppppcVar3" identifier = identifier) ;) (expression_statement "pppppppcVar3 = (code *******)((int)param_7 - local_118);" (assignment_expression "pppppppcVar3 = (code *******)((int)param_7 - local_118)" identifier = (cast_expression "(code *******)((int)param_7 - local_118)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)param_7 - local_118)" ( (binary_expression "(int)param_7 - local_118" (cast_expression "(int)param_7" ( (type_descriptor "int" primitive_type) ) identifier) - identifier) )))) ;) (if_statement "if (pppppppcVar3 == (code *******)0x0) {\n          pppppppcVar34 = (code *******)(uint)(pppppppcVar38[0x13] != (code ******)0x0);\n        }\n        else {\n          pppppppcVar34 = (code *******)0x1;\n        }" if (parenthesized_expression "(pppppppcVar3 == (code *******)0x0)" ( (binary_expression "pppppppcVar3 == (code *******)0x0" identifier == (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\n          pppppppcVar34 = (code *******)(uint)(pppppppcVar38[0x13] != (code ******)0x0);\n        }" { (expression_statement "pppppppcVar34 = (code *******)(uint)(pppppppcVar38[0x13] != (code ******)0x0);" (assignment_expression "pppppppcVar34 = (code *******)(uint)(pppppppcVar38[0x13] != (code ******)0x0)" identifier = (cast_expression "(code *******)(uint)(pppppppcVar38[0x13] != (code ******)0x0)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "(uint)(pppppppcVar38[0x13] != (code ******)0x0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pppppppcVar38[0x13] != (code ******)0x0)" ( (binary_expression "pppppppcVar38[0x13] != (code ******)0x0" (subscript_expression "pppppppcVar38[0x13]" identifier [ number_literal ]) != (cast_expression "(code ******)0x0" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ))))) ;) }) (else_clause "else {\n          pppppppcVar34 = (code *******)0x1;\n        }" else (compound_statement "{\n          pppppppcVar34 = (code *******)0x1;\n        }" { (expression_statement "pppppppcVar34 = (code *******)0x1;" (assignment_expression "pppppppcVar34 = (code *******)0x1" identifier = (cast_expression "(code *******)0x1" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) }))) (expression_statement "ppppppcVar32 = param_1[5];" (assignment_expression "ppppppcVar32 = param_1[5]" identifier = (subscript_expression "param_1[5]" identifier [ number_literal ])) ;) (expression_statement "local_6c = (byte)((uint)((int)param_1[3] << 9) >> 0x1f);" (assignment_expression "local_6c = (byte)((uint)((int)param_1[3] << 9) >> 0x1f)" identifier = (call_expression "(byte)((uint)((int)param_1[3] << 9) >> 0x1f)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)((int)param_1[3] << 9) >> 0x1f)" ( (binary_expression "(uint)((int)param_1[3] << 9) >> 0x1f" (call_expression "(uint)((int)param_1[3] << 9)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)param_1[3] << 9)" ( (binary_expression "(int)param_1[3] << 9" (cast_expression "(int)param_1[3]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_1[3]" identifier [ number_literal ])) << number_literal) ))) >> number_literal) )))) ;) (expression_statement "local_64 = (code *******)pppppppcVar38[0x17];" (assignment_expression "local_64 = (code *******)pppppppcVar38[0x17]" identifier = (cast_expression "(code *******)pppppppcVar38[0x17]" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (subscript_expression "pppppppcVar38[0x17]" identifier [ number_literal ]))) ;) (expression_statement "pppppppcVar31 = (code *******)((int)pppppppcVar38[2] + 1);" (assignment_expression "pppppppcVar31 = (code *******)((int)pppppppcVar38[2] + 1)" identifier = (cast_expression "(code *******)((int)pppppppcVar38[2] + 1)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)pppppppcVar38[2] + 1)" ( (binary_expression "(int)pppppppcVar38[2] + 1" (cast_expression "(int)pppppppcVar38[2]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "pppppppcVar38[2]" identifier [ number_literal ])) + number_literal) )))) ;) (if_statement "if ((int)pppppppcVar38[2] + 1 < (int)local_64) {\n          pppppppcVar31 = local_64;\n        }" if (parenthesized_expression "((int)pppppppcVar38[2] + 1 < (int)local_64)" ( (binary_expression "(int)pppppppcVar38[2] + 1 < (int)local_64" (binary_expression "(int)pppppppcVar38[2] + 1" (cast_expression "(int)pppppppcVar38[2]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "pppppppcVar38[2]" identifier [ number_literal ])) + number_literal) < (cast_expression "(int)local_64" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          pppppppcVar31 = local_64;\n        }" { (expression_statement "pppppppcVar31 = local_64;" (assignment_expression "pppppppcVar31 = local_64" identifier = identifier) ;) })) (expression_statement "pppppppcVar30 = (code *******)(uint)((int)param_3 + 1 < (int)pppppppcVar31);" (assignment_expression "pppppppcVar30 = (code *******)(uint)((int)param_3 + 1 < (int)pppppppcVar31)" identifier = (cast_expression "(code *******)(uint)((int)param_3 + 1 < (int)pppppppcVar31)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "(uint)((int)param_3 + 1 < (int)pppppppcVar31)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)param_3 + 1 < (int)pppppppcVar31)" ( (binary_expression "(int)param_3 + 1 < (int)pppppppcVar31" (binary_expression "(int)param_3 + 1" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) < (cast_expression "(int)pppppppcVar31" ( (type_descriptor "int" primitive_type) ) identifier)) ))))) ;) (expression_statement "pppppppcVar33 = (code *******)0x1;" (assignment_expression "pppppppcVar33 = (code *******)0x1" identifier = (cast_expression "(code *******)0x1" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "local_69 = local_6c;" (assignment_expression "local_69 = local_6c" identifier = identifier) ;) (if_statement "if (ppppppcVar32 != (code ******)0x0) {\n          local_69 = 1;\n        }" if (parenthesized_expression "(ppppppcVar32 != (code ******)0x0)" ( (binary_expression "ppppppcVar32 != (code ******)0x0" identifier != (cast_expression "(code ******)0x0" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (compound_statement "{\n          local_69 = 1;\n        }" { (expression_statement "local_69 = 1;" (assignment_expression "local_69 = 1" identifier = number_literal) ;) })) (expression_statement "local_6b = (byte)((uint)((int)pppppppcVar38[0x16] << 2) >> 0x1f);" (assignment_expression "local_6b = (byte)((uint)((int)pppppppcVar38[0x16] << 2) >> 0x1f)" identifier = (call_expression "(byte)((uint)((int)pppppppcVar38[0x16] << 2) >> 0x1f)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)((int)pppppppcVar38[0x16] << 2) >> 0x1f)" ( (binary_expression "(uint)((int)pppppppcVar38[0x16] << 2) >> 0x1f" (call_expression "(uint)((int)pppppppcVar38[0x16] << 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)pppppppcVar38[0x16] << 2)" ( (binary_expression "(int)pppppppcVar38[0x16] << 2" (cast_expression "(int)pppppppcVar38[0x16]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "pppppppcVar38[0x16]" identifier [ number_literal ])) << number_literal) ))) >> number_literal) )))) ;) (expression_statement "local_6a = (byte)((uint)((int)pppppppcVar38[0x16] << 3) >> 0x1f);" (assignment_expression "local_6a = (byte)((uint)((int)pppppppcVar38[0x16] << 3) >> 0x1f)" identifier = (call_expression "(byte)((uint)((int)pppppppcVar38[0x16] << 3) >> 0x1f)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)((int)pppppppcVar38[0x16] << 3) >> 0x1f)" ( (binary_expression "(uint)((int)pppppppcVar38[0x16] << 3) >> 0x1f" (call_expression "(uint)((int)pppppppcVar38[0x16] << 3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)pppppppcVar38[0x16] << 3)" ( (binary_expression "(int)pppppppcVar38[0x16] << 3" (cast_expression "(int)pppppppcVar38[0x16]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "pppppppcVar38[0x16]" identifier [ number_literal ])) << number_literal) ))) >> number_literal) )))) ;) (expression_statement "pppppppcVar29 = (code *******)((int)param_3 + 1);" (assignment_expression "pppppppcVar29 = (code *******)((int)param_3 + 1)" identifier = (cast_expression "(code *******)((int)param_3 + 1)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)param_3 + 1)" ( (binary_expression "(int)param_3 + 1" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if (pppppppcVar30 == (code *******)0x0) {\n          pppppppcVar29 = pppppppcVar31;\n        }" if (parenthesized_expression "(pppppppcVar30 == (code *******)0x0)" ( (binary_expression "pppppppcVar30 == (code *******)0x0" identifier == (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\n          pppppppcVar29 = pppppppcVar31;\n        }" { (expression_statement "pppppppcVar29 = pppppppcVar31;" (assignment_expression "pppppppcVar29 = pppppppcVar31" identifier = identifier) ;) })) (expression_statement "local_b4 = param_2;" (assignment_expression "local_b4 = param_2" identifier = identifier) ;) (expression_statement "local_88 = param_3;" (assignment_expression "local_88 = param_3" identifier = identifier) ;) (expression_statement "local_84 = param_3;" (assignment_expression "local_84 = param_3" identifier = identifier) ;) (expression_statement "local_80 = param_3;" (assignment_expression "local_80 = param_3" identifier = identifier) ;) (expression_statement "local_7c = param_3;" (assignment_expression "local_7c = param_3" identifier = identifier) ;) (expression_statement "local_74 = ppppppcVar32;" (assignment_expression "local_74 = ppppppcVar32" identifier = identifier) ;) (expression_statement "local_150 = (code *******)FUN_00046d2c(&local_b4);" (assignment_expression "local_150 = (code *******)FUN_00046d2c(&local_b4)" identifier = (cast_expression "(code *******)FUN_00046d2c(&local_b4)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "FUN_00046d2c(&local_b4)" identifier (argument_list "(&local_b4)" ( (pointer_expression "&local_b4" & identifier) ))))) ;) (expression_statement "pppppppcVar31 = pppppppcVar34;" (assignment_expression "pppppppcVar31 = pppppppcVar34" identifier = identifier) ;) (expression_statement "param_6 = param_6;" (assignment_expression "param_6 = param_6" identifier = identifier) ;) (if_statement "if (local_150 != (code *******)0x0) goto LAB_000557e4;" if (parenthesized_expression "(local_150 != (code *******)0x0)" ( (binary_expression "local_150 != (code *******)0x0" identifier != (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (goto_statement "goto LAB_000557e4;" goto statement_identifier ;)) (expression_statement "local_70 = pppppppcVar38 + 0x18;" (assignment_expression "local_70 = pppppppcVar38 + 0x18" identifier = (binary_expression "pppppppcVar38 + 0x18" identifier + number_literal)) ;) (expression_statement "local_66 = (byte)((uint)((int)pppppppcVar38[0x16] << 4) >> 0x1f);" (assignment_expression "local_66 = (byte)((uint)((int)pppppppcVar38[0x16] << 4) >> 0x1f)" identifier = (call_expression "(byte)((uint)((int)pppppppcVar38[0x16] << 4) >> 0x1f)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)((int)pppppppcVar38[0x16] << 4) >> 0x1f)" ( (binary_expression "(uint)((int)pppppppcVar38[0x16] << 4) >> 0x1f" (call_expression "(uint)((int)pppppppcVar38[0x16] << 4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)pppppppcVar38[0x16] << 4)" ( (binary_expression "(int)pppppppcVar38[0x16] << 4" (cast_expression "(int)pppppppcVar38[0x16]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "pppppppcVar38[0x16]" identifier [ number_literal ])) << number_literal) ))) >> number_literal) )))) ;) (expression_statement "pppppppcVar2 = (code *******)0x0;" (assignment_expression "pppppppcVar2 = (code *******)0x0" identifier = (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "local_98 = pppppppcVar2;" (assignment_expression "local_98 = pppppppcVar2" identifier = identifier) ;) (if_statement "if ((local_69 == 0) && (local_b0 = param_2, (int)pppppppcVar38[0x17] < 2)) {\n          local_98 = param_3;\n        }" if (parenthesized_expression "((local_69 == 0) && (local_b0 = param_2, (int)pppppppcVar38[0x17] < 2))" ( (binary_expression "(local_69 == 0) && (local_b0 = param_2, (int)pppppppcVar38[0x17] < 2)" (parenthesized_expression "(local_69 == 0)" ( (binary_expression "local_69 == 0" identifier == number_literal) )) && (parenthesized_expression "(local_b0 = param_2, (int)pppppppcVar38[0x17] < 2)" ( (comma_expression "local_b0 = param_2, (int)pppppppcVar38[0x17] < 2" (assignment_expression "local_b0 = param_2" identifier = identifier) , (binary_expression "(int)pppppppcVar38[0x17] < 2" (cast_expression "(int)pppppppcVar38[0x17]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "pppppppcVar38[0x17]" identifier [ number_literal ])) < number_literal)) ))) )) (compound_statement "{\n          local_98 = param_3;\n        }" { (expression_statement "local_98 = param_3;" (assignment_expression "local_98 = param_3" identifier = identifier) ;) })) (expression_statement "local_7c = param_6;" (assignment_expression "local_7c = param_6" identifier = identifier) ;) (expression_statement "local_80 = param_6;" (assignment_expression "local_80 = param_6" identifier = identifier) ;) (expression_statement "local_67 = (byte)((uint)((int)param_1[7] << 7) >> 0x1f);" (assignment_expression "local_67 = (byte)((uint)((int)param_1[7] << 7) >> 0x1f)" identifier = (call_expression "(byte)((uint)((int)param_1[7] << 7) >> 0x1f)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)((int)param_1[7] << 7) >> 0x1f)" ( (binary_expression "(uint)((int)param_1[7] << 7) >> 0x1f" (call_expression "(uint)((int)param_1[7] << 7)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)param_1[7] << 7)" ( (binary_expression "(int)param_1[7] << 7" (cast_expression "(int)param_1[7]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_1[7]" identifier [ number_literal ])) << number_literal) ))) >> number_literal) )))) ;) (expression_statement "ppppppcVar35 = pppppppcVar38[0x13];" (assignment_expression "ppppppcVar35 = pppppppcVar38[0x13]" identifier = (subscript_expression "pppppppcVar38[0x13]" identifier [ number_literal ])) ;) (expression_statement "pppppppcVar36 = (code *******)((int)ppppppcVar35 * 2);" (assignment_expression "pppppppcVar36 = (code *******)((int)ppppppcVar35 * 2)" identifier = (cast_expression "(code *******)((int)ppppppcVar35 * 2)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)ppppppcVar35 * 2)" ( (binary_expression "(int)ppppppcVar35 * 2" (cast_expression "(int)ppppppcVar35" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) )))) ;) (expression_statement "local_5c = param_9;" (assignment_expression "local_5c = param_9" identifier = identifier) ;) (expression_statement "local_58 = (code *******)0xffffffff;" (assignment_expression "local_58 = (code *******)0xffffffff" identifier = (cast_expression "(code *******)0xffffffff" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "local_94 = local_98;" (assignment_expression "local_94 = local_98" identifier = identifier) ;) (if_statement "if ((int)pppppppcVar36 < 1) {\nLAB_000559f0:\n          local_3c = 1;\n          local_44 = pppppppcVar36;\n          local_34 = pppppppcVar36;\n          if ((pppppppcVar3 < (code *******)0x2) && (((uint)pppppppcVar38[0x16] & 0x40000000) == 0))\n          {\n            local_50 = (code *******)0x0;\nLAB_00055a40:\n            local_78 = 6;\n            if (((uint)param_9 & 1) != 0) {\n              local_78 = 4;\n            }\n            pppppppcVar24 = (code *******)0x1;\n            pppppppcVar25 = param_4;\n            if ((int)param_5 < (int)param_4) {\n              pppppppcVar24 = (code *******)0xffffffff;\n              pppppppcVar25 = param_5;\n            }\n            pppppppcVar26 = param_5;\n            if ((int)param_5 <= (int)param_4) {\n              pppppppcVar26 = param_4;\n            }\n            ppppppcVar35 = pppppppcVar38[0x17];\n            uVar16 = 8;\n            if (local_148 != (code *******)0x0) {\n              if (ppppppcVar35 == (code ******)0x1) {\n                pppppppcVar28 = (code *******)0x4;\n              }\n              else {\n                pppppppcVar28 = pppppppcVar2;\n                if ((-1 < (int)param_1[3] << 9) && (ppppppcVar32 == (code ******)0x0)) {\n                  pppppppcVar28 = (code *******)0x4;\n                }\n              }\n              pppppppcVar29 = (code *******)0x0;\n              if ((int)param_4 <= (int)param_5) {\n                pppppppcVar29 = (code *******)0x2;\n              }\n              uVar16 = (uint)(ppppppcVar32 != (code ******)0x0) | (uint)pppppppcVar28 |\n                       (uint)pppppppcVar29;\n            }\n            local_dc = param_4;\n            if ((int)param_4 < (int)pppppppcVar25) {\n              local_150 = (code *******)0x1;\n              param_6 = pppppppcVar36;\n            }\n            else if ((int)pppppppcVar26 < (int)param_4) {\n              local_150 = (code *******)0x1;\n              param_4 = (code *******)(uint)((int)param_5 < (int)param_4);\n              param_6 = pppppppcVar36;\n            }\n            else {\n              pppppppcVar36 = (code *******)&local_dc;\n              if ((code *******)(uint)((int)param_5 < (int)param_4) != (code *******)0x0) {\n                pppppppcVar36 = (code *******)0x0;\n              }\n              pcVar4 = (code *)(PTR_DAT_000799a4 + -0x2b7c);\n              piVar5 = (int *)(PTR_s_nt0_000795b8 + (uVar16 - 4) * 4 + 0x6e38);\nLAB_00055b44:\n              if (uVar16 - 4 < 5) {\n                    /* WARNING: Could not emulate address calculation at 0x00054920 */\n                    /* WARNING: Treating indirect jump as call */\n                pppppppcVar29 = (code *******)(*(code *)(&_gp_1 + *piVar5))();\n                return pppppppcVar29;\n              }\n              param_5 = &local_b4;\n              pppppppcVar28 = pppppppcVar33;\n              while( true ) {\n                param_4 = local_dc;\n                pppppppcVar33 = (code *******)((int)local_dc - local_9c);\n                pppppppcVar30 = param_9;\n                pppppppcVar31 = pppppppcVar2;\n                param_6 = local_148;\n                unaff_s4 = param_3;\n                unaff_s5 = pppppppcVar24;\n                unaff_s7 = pppppppcVar26;\n                if (local_94 <= pppppppcVar33) {\n                  pppppppcVar29 = local_dc;\n                  local_150 = (code *******)(*pcVar4)(param_5);\n                  pppppppcVar33 = pppppppcVar28;\n                  if (local_150 != (code *******)0x0) goto LAB_000557e4;\n                  pppppppcVar33 = (code *******)((int)param_4 - local_9c);\n                }\n                if ((int)param_4 < (int)param_3) {\n                  uVar7 = (uint)(byte)*(code *)((int)pppppppcVar33 + (int)local_b0);\n                }\n                else {\n                  uVar7 = 0;\n                }\n                param_4 = (code *******)((int)param_4 + (int)pppppppcVar24);\n                if (*(code *)((int)local_148 + uVar7) != (code)0x0) break;\n                pppppppcVar33 = pppppppcVar28;\n                local_dc = param_4;\n                if ((int)param_4 < (int)pppppppcVar25) {\n                  local_150 = (code *******)0x1;\n                  goto LAB_000557e4;\n                }\n                if ((code *******)(uint)((int)pppppppcVar26 < (int)param_4) != (code *******)0x0) {\n                  local_150 = (code *******)0x1;\n                  param_4 = (code *******)(uint)((int)pppppppcVar26 < (int)param_4);\n                  goto LAB_000557e4;\n                }\n              }\n              while( true ) {\n                pppppppcVar29 = local_dc;\n                pppppppcVar30 = param_9;\n                pppppppcVar6 = (code *******)(*pcVar4)(&local_b4);\n                pppppppcVar14 = local_60;\n                pppppppcVar42 = local_8c;\n                pppppppcVar33 = pppppppcVar28;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar6 != (code *******)0x0) goto LAB_000557e4;\n                if (((ppppppcVar35 != (code ******)0x1) && (local_98 != (code *******)0x0)) &&\n                   (*local_ac == -1)) goto LAB_00055b1c;\n                local_3c = 0;\n                local_48 = 0;\n                local_4c = (code *******)0x0;\n                local_138 = local_8c;\n                local_d8 = (code *******)0x0;\n                unaff_s7 = (code *******)local_60[9];\n                pppppppcVar30 = local_5c;\n                param_4 = pppppppcVar14;\n                if (((uint)unaff_s7[0xd] & 0x1000000) == 0) break;\n                pppppppcVar29 = (code *******)((int)local_8c + -1);\n                pppppppcVar33 = (code *******)FUN_00049110(&local_b4);\n                if (((uint)pppppppcVar33 & 1) == 0) {\n                  if (pppppppcVar33 == (code *******)0x0) break;\n                  if (((uint)pppppppcVar33 & 6) == 6) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xc];\n                    goto LAB_00054d1c;\n                  }\n                  if (((uint)pppppppcVar33 & 2) != 0) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xb];\n                    goto LAB_00054d1c;\n                  }\n                  pppppppcVar28 = pppppppcVar33;\n                  if (((uint)pppppppcVar33 & 4) == 0) break;\n                  pppppppcVar30 = (code *******)unaff_s7[10];\n                  pppppppcVar29 = pppppppcVar14;\n                  unaff_s7 = (code *******)FUN_0004ae34(&local_d8);\n                  pppppppcVar28 = pppppppcVar33;\n                  if (unaff_s7 != (code *******)0x0) break;\n                  if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                }\n                else {\n                  unaff_s7 = (code *******)pppppppcVar14[10];\nLAB_00054d1c:\n                  pppppppcVar28 = (code *******)PTR_s_nt0_000795b8;\n                  if (unaff_s7 != (code *******)0x0) break;\n                }\n                pppppppcVar28 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                local_dc = (code *******)\n                           (*(code *)PTR___assert_fail_000799f8)\n                                     (PTR_s_nt0_000795b8 + 0x71a0,pppppppcVar29,0x435);\n                if (local_dc == pppppppcVar26) {\n                  if ((int)local_dc < (int)param_3) {\n                    uVar7 = (uint)(byte)*(code *)((int)local_dc + (int)param_2);\n                  }\n                  else {\n                    uVar7 = 0;\n                  }\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    uVar7 = (uint)*(byte *)((int)ppppppcVar32 + uVar7);\n                  }\n                  if (*(code *)((int)local_148 + uVar7) == (code)0x0) {\n                    local_150 = (code *******)0x1;\n                    pppppppcVar30 = param_9;\n                    pppppppcVar33 = pppppppcVar28;\n                    goto LAB_000557e4;\n                  }\n                }\n              }\n              pppppppcVar33 = pppppppcVar28;\n              bVar1 = pppppppcVar36 != (code *******)0x0;\n              if ((local_50 == (code *******)0x0) ||\n                 (local_50[(int)pppppppcVar42] = (code ******)unaff_s7,\n                 pppppppcVar14[0x13] == (code ******)0x0)) {\nLAB_00054d50:\n                if ((int)unaff_s7[0xd] << 4 < 0) {\n                  if ((((uint)unaff_s7[0xd] & 0x1000000) == 0) ||\n                     (pppppppcVar29 = unaff_s7, pppppppcVar30 = pppppppcVar42,\n                     iVar18 = FUN_00049440(&local_b4), iVar18 != 0)) {\n                    unaff_s8 = pppppppcVar42;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                  }\n                  else {\n                    pppppppcVar42 = (code *******)0xffffffff;\n                    pppppppcVar28 = (code *******)0x0;\n                  }\n                }\n                else {\n                  pppppppcVar42 = (code *******)0xffffffff;\n                  pppppppcVar28 = (code *******)0x0;\n                }\n                pcVar8 = (code *)(PTR_DAT_000799a4 + -0x7144);\n                pcVar9 = (code *)(PTR_DAT_000799a4 + -0x1980);\n                pcVar10 = (code *)(PTR_DAT_000799a4 + -0x2f9c);\n                unaff_s8 = pppppppcVar42;\n                local_144 = pppppppcVar36;\n                while( true ) {\n                  uVar44 = CONCAT44(local_98,local_84);\n                  unaff_s5 = (code *******)((int)local_8c + 1);\n                  pppppppcVar29 = local_8c;\n                  if ((int)local_7c <= (int)local_8c) break;\n                  if (((int)local_90 <= (int)unaff_s5) && ((int)local_90 < (int)local_84))\n                  goto LAB_00054e94;\n                  if ((int)local_98 <= (int)unaff_s5) {\n                    while ((int)((ulonglong)uVar44 >> 0x20) < (int)uVar44) {\nLAB_00054e94:\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 2);\n                      local_d8 = (code *******)(*pcVar8)(&local_b4);\n                      if (local_d8 == (code *******)0x0) break;\n                      pppppppcVar14 = param_4;\n                      if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                      pppppppcVar33 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                      pppppppcVar30 = (code *******)0x46c;\n                      pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                      uVar44 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0);\n                      pppppppcVar28 = pppppppcVar38;\n                    }\n                  }\n                  pppppppcVar42 = local_60;\n                  if ((int)unaff_s7[0xd] << 5 < 0) {\n                    pppppppcVar31 = pppppppcVar42;\n                    if (0 < (int)unaff_s7[2]) {\n                      pcVar11 = (code *)(PTR_DAT_000799a4 + -0x6fdc);\n                      pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6ef0);\n                      param_6 = (code *******)0x0;\n                      do {\n                        param_5 = (code *******)unaff_s7[3][(int)param_6];\n                        ppppppcVar39 = *pppppppcVar42;\n                        pppppcVar13 = ppppppcVar39[(int)param_5 * 2 + 1];\n                        if (((uint)pppppcVar13 & 0x800) != 0) {\n                          if (((uint)pppppcVar13 & 0xffc000) != 0) {\n                            pppppppcVar29 = local_8c;\n                            uVar19 = (*pcVar12)(&local_b4,local_8c,local_5c);\n                            uVar7 = (uint)((int)ppppppcVar39[(int)param_5 * 2 + 1] << 8) >> 0x16;\n                            if ((uVar7 & 4) == 0) {\n                              uVar27 = uVar19 & 1;\n                              if ((uVar7 & 8) != 0) goto joined_r0x00054f40;\n                            }\n                            else {\n                              uVar27 = uVar7 & 8;\n                              if ((uVar19 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                              if (uVar27 != 0) goto LAB_000550a4;\n                            }\n                            if ((((uVar7 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                               (((uVar7 & 0x80) != 0 &&\n                                (pppppppcVar33 = local_8c, (uVar19 & 8) == 0)))) goto LAB_000550a4;\n                          }\n                          pppppppcVar30 = &local_b4;\n                          pppppppcVar29 = param_5;\n                          pppppppcVar33 = local_8c;\n                          iVar18 = (*pcVar10)(pppppppcVar42);\n                          if (iVar18 != 0) {\n                            pppppppcVar14 = (code *******)((int)local_8c + iVar18);\n                            if (iVar18 <= local_3c) {\n                              iVar18 = local_3c;\n                            }\n                            pppppppcVar29 = pppppppcVar14;\n                            local_3c = iVar18;\n                            local_d4 = (code *******)(*pcVar11)(&local_b4);\n                            pppppppcVar15 = local_d4;\n                            if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                            pppppppcVar30 =\n                                 (code *******)\n                                 (pppppppcVar42[6] + (int)pppppppcVar42[3][(int)param_5] * 3);\n                            unaff_s4 = (code *******)((int)pppppppcVar14 * 4);\n                            param_5 = local_50 + (int)pppppppcVar14;\n                            if (*param_5 == (code ******)0x0) {\n                              local_d0 = (code *******)*pppppppcVar30;\n                              local_cc = (code *******)pppppppcVar30[1];\n                              local_c8 = (code *******)pppppppcVar30[2];\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *param_5 = ppppppcVar39;\n                            }\n                            else {\n                              pppppppcVar29 = (code *******)(*param_5)[10];\n                              local_d4 = (code *******)FUN_000484bc(&local_d0);\n                              pppppppcVar15 = local_d4;\n                              if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar15 = local_50 + (int)pppppppcVar14;\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *pppppppcVar15 = ppppppcVar39;\n                              (*(code *)PTR_free_00079c24)(local_c8);\n                            }\n                            unaff_s4 = local_50 + (int)pppppppcVar14;\n                            if ((*unaff_s4 == (code ******)0x0) &&\n                               (pppppppcVar15 = local_d4, local_d4 != (code *******)0x0))\n                            goto LAB_00055e44;\n                          }\n                        }\nLAB_000550a4:\n                        param_6 = (code *******)((int)param_6 + 1);\n                      } while ((int)param_6 < (int)unaff_s7[2]);\n                    }\n                    local_d8 = (code *******)0x0;\n                  }\n                  uVar7 = (uint)(byte)*(code *)((int)local_8c + (int)local_b0);\n                  local_8c = (code *******)((int)local_8c + 1);\n                  do {\n                    if (unaff_s7[0xb] != (code ******)0x0) {\n                      pppppppcVar30 = (code *******)unaff_s7[0xb][uVar7];\nLAB_000553a0:\n                      pppppppcVar14 = pppppppcVar30;\n                      if (local_50 != (code *******)0x0) goto LAB_000553ac;\n                      goto LAB_000553cc;\n                    }\n                    pppppppcVar31 = (code *******)unaff_s7[0xc];\n                    if (pppppppcVar31 != (code *******)0x0) {\n                      pppppppcVar29 = (code *******)((int)local_8c + -1);\n                      uVar19 = FUN_00049110(&local_b4);\n                      if ((uVar19 & 1) == 0) {\n                        pppppppcVar30 = (code *******)pppppppcVar31[uVar7];\n                      }\n                      else {\n                        pppppppcVar31 = pppppppcVar31 + uVar7 + 0x100;\n                        pppppppcVar30 = (code *******)*pppppppcVar31;\n                      }\n                      goto LAB_000553a0;\n                    }\n                    pppppppcVar29 = unaff_s7;\n                    pppppppcVar30 = local_5c;\n                    iVar18 = (*pcVar9)(local_60);\n                  } while (iVar18 != 0);\n                  local_d8 = (code *******)0xc;\n                  pppppppcVar15 = local_d8;\nLAB_00055e44:\n                  local_d8 = pppppppcVar15;\n                  param_4 = (code *******)0x0;\n                  if (local_50 == (code *******)0x0) {\n                    pppppppcVar14 = param_4;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    break;\n                  }\n                  pppppppcVar30 = (code *******)0x0;\nLAB_000553ac:\n                  pppppppcVar29 = &local_b4;\n                  pppppppcVar14 = (code *******)FUN_00053684(&local_d8);\nLAB_000553cc:\n                  param_4 = pppppppcVar14;\n                  if (pppppppcVar14 == (code *******)0x0) {\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    if ((local_50 == (code *******)0x0) ||\n                       ((pppppppcVar28 != (code *******)0x0 && (pppppppcVar34 == (code *******)0x0))\n                       )) break;\n                    param_6 = &local_b4;\n                    param_5 = (code *******)&local_d8;\n                    pppppppcVar31 = (code *******)(PTR_DAT_000799a4 + 0x3684);\n                    do {\n                      pppppppcVar15 = local_50 + (int)local_8c;\n                      pppppppcVar42 = local_8c;\n                      do {\n                        pppppppcVar42 = (code *******)((int)pppppppcVar42 + 1);\n                        pppppppcVar29 = local_4c;\n                        param_4 = pppppppcVar14;\n                        if ((int)local_4c < (int)pppppppcVar42) goto LAB_00055da8;\n                        local_8c = (code *******)((int)local_8c + 1);\n                        pppppppcVar15 = pppppppcVar15 + 1;\n                      } while (*pppppppcVar15 == (code ******)0x0);\n                      pppppppcVar30 = (code *******)0x0;\n                      pppppppcVar29 = param_6;\n                      param_4 = (code *******)(*(code *)pppppppcVar31)(param_5);\n                      if (local_d8 != (code *******)0x0) {\n                        if (param_4 == (code *******)0x0) goto LAB_00055da8;\n                        break;\n                      }\n                      pppppppcVar29 = local_4c;\n                    } while (param_4 == (code *******)0x0);\n                  }\n                  pppppppcVar15 = (code *******)((uint)unaff_s7 ^ (uint)param_4);\n                  pppppppcVar42 = unaff_s7;\n                  pppppppcVar14 = local_138;\n                  if ((bVar1) &&\n                     (pppppppcVar42 = pppppppcVar15, pppppppcVar14 = unaff_s5,\n                     pppppppcVar15 != (code *******)0x0)) {\n                    bVar1 = false;\n                    pppppppcVar14 = local_138;\n                  }\n                  local_138 = pppppppcVar14;\n                  unaff_s7 = param_4;\n                  if ((((uint)param_4[0xd] & 0x8000000) != 0) &&\n                     ((((uint)param_4[0xd] & 0x1000000) == 0 ||\n                      (pppppppcVar29 = param_4, pppppppcVar30 = local_8c,\n                      iVar18 = FUN_00049440(&local_b4), iVar18 != 0)))) {\n                    unaff_s7 = pppppppcVar42;\n                    unaff_s8 = local_8c;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                    local_144 = (code *******)0x0;\n                    unaff_s7 = param_4;\n                  }\n                }\nLAB_00055da8:\n                if (local_144 != (code *******)0x0) {\n                  *local_144 = (code ******)((int)local_138 + (int)*local_144);\n                }\n              }\n              else {\n                param_4 = unaff_s7 + 1;\n                pppppppcVar30 = (code *******)0x0;\n                pppppppcVar29 = param_4;\n                local_d8 = (code *******)FUN_00047a44(&local_b4);\n                unaff_s8 = local_d8;\n                if (local_d8 == (code *******)0x0) {\n                  if (((uint)unaff_s7[0xd] & 0x2000000) == 0) {\n                    pppppppcVar29 = param_4;\n                    bVar1 = false;\n                  }\n                  else {\n                    pppppppcVar29 = param_4;\n                    local_d8 = (code *******)FUN_00052d84(&local_b4);\n                    unaff_s8 = local_d8;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055dbc;\n                    bVar1 = false;\n                  }\n                  goto LAB_00054d50;\n                }\n              }\nLAB_00055dbc:\n              if (unaff_s8 == (code *******)0xffffffff) {\nLAB_00055b04:\n                FUN_0004b7e8(&local_b4);\nLAB_00055b1c:\n                local_dc = (code *******)((int)pppppppcVar24 + (int)local_dc);\n                if ((int)pppppppcVar25 <= (int)local_dc) goto code_r0x00055b38;\n                local_150 = (code *******)0x1;\n                goto LAB_000557e4;\n              }\n              if (unaff_s8 == (code *******)&SUB_fffffffe) {\n                local_150 = (code *******)0xc;\n                goto LAB_000557e4;\n              }\n              local_58 = unaff_s8;\n              if (((uint)param_1[7] & 0x8000000) == 0) {\n                if (pppppppcVar3 < (code *******)0x2) {\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055c08;\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                else {\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                if (pppppppcVar3 < (code *******)0x2) {\nLAB_00055c6c:\n                  pppppppcVar28 = pppppppcVar33;\n                  unaff_s4 = local_60;\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055548;\n                }\n                else {\n                  cVar23 = *(code *)(pppppppcVar38 + 0x16);\nLAB_00055c20:\n                  pppppppcVar28 = pppppppcVar33;\n                  if (-1 < (char)cVar23) goto LAB_00055c6c;\n                }\n                pppppppcVar31 = local_54;\n                pppppppcVar42 = local_60;\n                unaff_s4 = pppppppcVar42;\n                if (unaff_s8 < (code *******)0x3fffffff) {\n                  param_4 = (code *******)((int)((int)unaff_s8 + 1) * 4);\n                  unaff_s5 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                  if (unaff_s5 == (code *******)0x0) {\nLAB_00055b9c:\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    local_150 = (code *******)0xc;\n                    pppppppcVar33 = pppppppcVar28;\n                  }\n                  else {\n                    pppppppcVar29 = (code *******)&local_d0;\n                    if (pppppppcVar42[0x13] == (code ******)0x0) {\n                      local_cc = (code *******)0x0;\n                      local_c8 = pppppppcVar31;\n                      local_c0 = 0;\n                      local_bc = 0;\n                      local_b8 = 0;\n                      local_d0 = unaff_s5;\n                      local_c4 = unaff_s8;\n                      param_5 = (code *******)FUN_0005421c(&local_b4);\n                      (*(code *)PTR_free_00079c24)(local_b8);\n                      if (param_5 == (code *******)0x0) {\n                        param_4 = (code *******)*unaff_s5;\n                        if (param_4 == (code *******)0x0) {\nLAB_00055b70:\n                          (*(code *)PTR_free_00079c24)(unaff_s5);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          pppppppcVar33 = pppppppcVar28;\n                          goto LAB_00055b04;\n                        }\nLAB_00055528:\n                        (*(code *)PTR_free_00079c24)(local_50);\n                        pppppppcVar33 = pppppppcVar28;\n                        unaff_s4 = pppppppcVar42;\n                        local_58 = unaff_s8;\n                        local_54 = pppppppcVar31;\n                        local_50 = unaff_s5;\n                        goto LAB_00055548;\n                      }\nLAB_00055acc:\n                      param_4 = (code *******)0x0;\n                      pppppppcVar33 = pppppppcVar28;\n                      unaff_s4 = pppppppcVar42;\n                    }\n                    else {\n                      param_4 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                      if (param_4 == (code *******)0x0) goto LAB_00055b9c;\n                      unaff_s7 = (code *******)&local_d0;\n                      pcVar8 = (code *)(PTR_DAT_000799a4 + 0x421c);\n                      pcVar9 = (code *)(PTR_DAT_000799a4 + -0x6bc0);\n                      pppppppcVar33 = pppppppcVar28;\n                      while( true ) {\n                        pppppppcVar28 = (code *******)((int)unaff_s8 + 1);\n                        param_6 = (code *******)((int)pppppppcVar28 * 4);\n                        pppppppcVar30 = param_6;\n                        (*(code *)PTR_memset_00079b00)(param_4,0);\n                        local_c0 = 0;\n                        local_bc = 0;\n                        local_b8 = 0;\n                        pppppppcVar29 = unaff_s7;\n                        local_d0 = unaff_s5;\n                        local_cc = param_4;\n                        local_c8 = pppppppcVar31;\n                        local_c4 = unaff_s8;\n                        param_5 = (code *******)(*pcVar8)(&local_b4);\n                        (*(code *)PTR_free_00079c24)(local_b8);\n                        unaff_s4 = pppppppcVar28;\n                        if (param_5 != (code *******)0x0) break;\n                        if ((*unaff_s5 != (code ******)0x0) ||\n                           (param_6 = param_6 + -1, *param_4 != (code ******)0x0)) {\n                          pppppppcVar29 = unaff_s5;\n                          pppppppcVar30 = param_4;\n                          param_5 = (code *******)FUN_000520d0(pppppppcVar42);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          if (param_5 != (code *******)0x0) goto LAB_00055acc;\n                          goto LAB_00055528;\n                        }\n                        param_6 = (code *******)((int)local_50 + (int)param_6);\n                        do {\n                          while( true ) {\n                            unaff_s8 = (code *******)((int)unaff_s8 + -1);\n                            if ((int)unaff_s8 < 0) goto LAB_00055b70;\n                            pppppppcVar29 = (code *******)param_6[-1];\n                            if (pppppppcVar29 != (code *******)0x0) break;\n                            param_6 = param_6 + -1;\n                          }\n                          param_6 = param_6 + -1;\n                        } while (((uint)pppppppcVar29[0xd] & 0x8000000) == 0);\n                        pppppppcVar31 = (code *******)(*pcVar9)(&local_b4,pppppppcVar29,unaff_s8);\n                        pppppppcVar33 = pppppppcVar28;\n                      }\n                    }\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    (*(code *)PTR_free_00079c24)(param_4);\n                    local_150 = param_5;\n                    if (param_5 == (code *******)0x1) goto LAB_00055b04;\n                  }\n                }\n                else {\n                  local_150 = (code *******)0xc;\n                  pppppppcVar33 = pppppppcVar28;\n                }\n                goto LAB_000557e4;\n              }\n              if (pppppppcVar38[0x13] != (code ******)0x0) {\n                pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                pppppppcVar30 = unaff_s8;\n                local_54 = (code *******)FUN_00049440(&local_b4);\n                goto LAB_00055c6c;\n              }\nLAB_00055c08:\n              if ((((uint)param_1[7] & 0x8000000) == 0) && ((code *******)0x1 < pppppppcVar3)) {\n                cVar23 = *(code *)(pppppppcVar38 + 0x16);\n                goto LAB_00055c20;\n              }\nLAB_00055548:\n              if (pppppppcVar3 == (code *******)0x0) goto LAB_000557e4;\n              if (pppppppcVar3 < (code *******)0x2) {\n                *param_8 = (code ******)0x0;\n                param_8[1] = (code ******)local_58;\n                goto LAB_000555ac;\n              }\n              pppppppcVar29 = param_8 + 2;\n              do {\n                pppppppcVar29[1] = (code ******)0xffffffff;\n                *pppppppcVar29 = (code ******)0xffffffff;\n                pppppppcVar29 = pppppppcVar29 + 2;\n              } while (pppppppcVar29 != param_8 + (int)pppppppcVar3 * 2);\n              *param_8 = (code ******)0x0;\n              param_8[1] = (code ******)local_58;\n              if (((uint)param_1[7] & 0x8000000) != 0) {\nLAB_000555ac:\n                pppppppcVar33 = param_8;\n                do {\n                  pppppppcVar29 = (code *******)*pppppppcVar33;\n                  if (pppppppcVar29 != (code *******)0xffffffff) {\n                    if (local_68 != '\0') {\n                      pppppppcVar34 = local_94;\n                      if (pppppppcVar29 != local_98) {\n                        pppppppcVar34 = *(code ********)(local_a8 + (int)pppppppcVar29 * 4);\n                      }\n                      *pppppppcVar33 = (code ******)pppppppcVar34;\n                      pppppppcVar29 = local_94;\n                      if (local_98 != (code *******)pppppppcVar33[1]) {\n                        pppppppcVar29 = *(code ********)(local_a8 + (int)pppppppcVar33[1] * 4);\n                      }\n                      pppppppcVar33[1] = (code ******)pppppppcVar29;\n                    }\n                    *pppppppcVar33 = (code ******)((int)local_dc + (int)*pppppppcVar33);\n                    pppppppcVar29 = (code *******)((int)local_dc + (int)pppppppcVar33[1]);\n                    pppppppcVar33[1] = (code ******)pppppppcVar29;\n                  }\n                  pppppppcVar33 = pppppppcVar33 + 2;\n                } while (pppppppcVar33 != param_8 + (int)pppppppcVar3 * 2);\n                if (0 < local_118) {\n                  pppppppcVar33 = param_8 + (int)pppppppcVar3 * 2;\n                  do {\n                    *pppppppcVar33 = (code ******)0xffffffff;\n                    pppppppcVar33[1] = (code ******)0xffffffff;\n                    pppppppcVar33 = pppppppcVar33 + 2;\n                  } while (pppppppcVar33 != param_8 + (int)param_7 * 2);\n                }\n                pppppppcVar30 = local_dc;\n                pppppppcVar33 = param_8;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar38[0x21] != (code ******)0x0) {\n                  pppppppcVar30 = (code *******)((int)pppppppcVar3 + -1);\n                  pppppppcVar34 = (code *******)0x0;\n                  pppppppcVar3 = param_8;\n                  while( true ) {\n                    pppppppcVar29 = (code *******)((int)pppppppcVar34 * 4);\n                    if (pppppppcVar30 == pppppppcVar34) break;\n                    if (*(code ********)((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) !=\n                        pppppppcVar34) {\n                      pppppppcVar3[2] =\n                           param_8[(int)((int)*(code ********)\n                                               ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1)\n                                   * 2];\n                      pppppppcVar3[3] =\n                           param_8[((int)*(code ******)\n                                          ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1) * 2 +\n                                   1];\n                    }\n                    pppppppcVar34 = (code *******)((int)pppppppcVar34 + 1);\n                    pppppppcVar3 = pppppppcVar3 + 2;\n                  }\n                }\n                goto LAB_000557e4;\n              }\n              if ((char)*(code *)(pppppppcVar38 + 0x16) < '\0') {\n                local_168 = (uint)(0 < (int)pppppppcVar38[0x13]);\n              }\n              else {\n                local_168 = 0;\n              }\n              pppppppcVar29 = &local_b4;\n              pppppppcVar30 = pppppppcVar3;\n              pppppppcVar33 = param_8;\n              local_150 = (code *******)FUN_0004f4a0(param_1);\n              if (local_150 == (code *******)0x0) goto LAB_000555ac;\n            }\n          }\n          else if (local_90 < 0x3fffffff) {\n            local_50 = (code *******)(*(code *)PTR_malloc_00079b54)((local_90 + 1) * 4);\n            if (local_50 != (code *******)0x0) goto LAB_00055a40;\n            local_150 = (code *******)0xc;\n            param_6 = pppppppcVar36;\n          }\n          else {\n            local_150 = (code *******)0xc;\n            param_6 = pppppppcVar36;\n          }\n        }\n        else {\n          unaff_s5 = (code *******)((int)ppppppcVar35 * 8);\n          if (pppppppcVar36 < (code *******)0xccccccd) {\n            unaff_s4 = (code *******)(*(code *)PTR_malloc_00079b54)((int)ppppppcVar35 * 0x28);\n            local_40 = unaff_s4;\n            local_30 = (*(code *)PTR_malloc_00079b54)(unaff_s5);\n            if ((unaff_s4 != (code *******)0x0) && (local_30 != 0)) goto LAB_000559f0;\n          }\n          local_150 = (code *******)0xc;\n          param_6 = pppppppcVar36;\n        }" if (parenthesized_expression "((int)pppppppcVar36 < 1)" ( (binary_expression "(int)pppppppcVar36 < 1" (cast_expression "(int)pppppppcVar36" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\nLAB_000559f0:\n          local_3c = 1;\n          local_44 = pppppppcVar36;\n          local_34 = pppppppcVar36;\n          if ((pppppppcVar3 < (code *******)0x2) && (((uint)pppppppcVar38[0x16] & 0x40000000) == 0))\n          {\n            local_50 = (code *******)0x0;\nLAB_00055a40:\n            local_78 = 6;\n            if (((uint)param_9 & 1) != 0) {\n              local_78 = 4;\n            }\n            pppppppcVar24 = (code *******)0x1;\n            pppppppcVar25 = param_4;\n            if ((int)param_5 < (int)param_4) {\n              pppppppcVar24 = (code *******)0xffffffff;\n              pppppppcVar25 = param_5;\n            }\n            pppppppcVar26 = param_5;\n            if ((int)param_5 <= (int)param_4) {\n              pppppppcVar26 = param_4;\n            }\n            ppppppcVar35 = pppppppcVar38[0x17];\n            uVar16 = 8;\n            if (local_148 != (code *******)0x0) {\n              if (ppppppcVar35 == (code ******)0x1) {\n                pppppppcVar28 = (code *******)0x4;\n              }\n              else {\n                pppppppcVar28 = pppppppcVar2;\n                if ((-1 < (int)param_1[3] << 9) && (ppppppcVar32 == (code ******)0x0)) {\n                  pppppppcVar28 = (code *******)0x4;\n                }\n              }\n              pppppppcVar29 = (code *******)0x0;\n              if ((int)param_4 <= (int)param_5) {\n                pppppppcVar29 = (code *******)0x2;\n              }\n              uVar16 = (uint)(ppppppcVar32 != (code ******)0x0) | (uint)pppppppcVar28 |\n                       (uint)pppppppcVar29;\n            }\n            local_dc = param_4;\n            if ((int)param_4 < (int)pppppppcVar25) {\n              local_150 = (code *******)0x1;\n              param_6 = pppppppcVar36;\n            }\n            else if ((int)pppppppcVar26 < (int)param_4) {\n              local_150 = (code *******)0x1;\n              param_4 = (code *******)(uint)((int)param_5 < (int)param_4);\n              param_6 = pppppppcVar36;\n            }\n            else {\n              pppppppcVar36 = (code *******)&local_dc;\n              if ((code *******)(uint)((int)param_5 < (int)param_4) != (code *******)0x0) {\n                pppppppcVar36 = (code *******)0x0;\n              }\n              pcVar4 = (code *)(PTR_DAT_000799a4 + -0x2b7c);\n              piVar5 = (int *)(PTR_s_nt0_000795b8 + (uVar16 - 4) * 4 + 0x6e38);\nLAB_00055b44:\n              if (uVar16 - 4 < 5) {\n                    /* WARNING: Could not emulate address calculation at 0x00054920 */\n                    /* WARNING: Treating indirect jump as call */\n                pppppppcVar29 = (code *******)(*(code *)(&_gp_1 + *piVar5))();\n                return pppppppcVar29;\n              }\n              param_5 = &local_b4;\n              pppppppcVar28 = pppppppcVar33;\n              while( true ) {\n                param_4 = local_dc;\n                pppppppcVar33 = (code *******)((int)local_dc - local_9c);\n                pppppppcVar30 = param_9;\n                pppppppcVar31 = pppppppcVar2;\n                param_6 = local_148;\n                unaff_s4 = param_3;\n                unaff_s5 = pppppppcVar24;\n                unaff_s7 = pppppppcVar26;\n                if (local_94 <= pppppppcVar33) {\n                  pppppppcVar29 = local_dc;\n                  local_150 = (code *******)(*pcVar4)(param_5);\n                  pppppppcVar33 = pppppppcVar28;\n                  if (local_150 != (code *******)0x0) goto LAB_000557e4;\n                  pppppppcVar33 = (code *******)((int)param_4 - local_9c);\n                }\n                if ((int)param_4 < (int)param_3) {\n                  uVar7 = (uint)(byte)*(code *)((int)pppppppcVar33 + (int)local_b0);\n                }\n                else {\n                  uVar7 = 0;\n                }\n                param_4 = (code *******)((int)param_4 + (int)pppppppcVar24);\n                if (*(code *)((int)local_148 + uVar7) != (code)0x0) break;\n                pppppppcVar33 = pppppppcVar28;\n                local_dc = param_4;\n                if ((int)param_4 < (int)pppppppcVar25) {\n                  local_150 = (code *******)0x1;\n                  goto LAB_000557e4;\n                }\n                if ((code *******)(uint)((int)pppppppcVar26 < (int)param_4) != (code *******)0x0) {\n                  local_150 = (code *******)0x1;\n                  param_4 = (code *******)(uint)((int)pppppppcVar26 < (int)param_4);\n                  goto LAB_000557e4;\n                }\n              }\n              while( true ) {\n                pppppppcVar29 = local_dc;\n                pppppppcVar30 = param_9;\n                pppppppcVar6 = (code *******)(*pcVar4)(&local_b4);\n                pppppppcVar14 = local_60;\n                pppppppcVar42 = local_8c;\n                pppppppcVar33 = pppppppcVar28;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar6 != (code *******)0x0) goto LAB_000557e4;\n                if (((ppppppcVar35 != (code ******)0x1) && (local_98 != (code *******)0x0)) &&\n                   (*local_ac == -1)) goto LAB_00055b1c;\n                local_3c = 0;\n                local_48 = 0;\n                local_4c = (code *******)0x0;\n                local_138 = local_8c;\n                local_d8 = (code *******)0x0;\n                unaff_s7 = (code *******)local_60[9];\n                pppppppcVar30 = local_5c;\n                param_4 = pppppppcVar14;\n                if (((uint)unaff_s7[0xd] & 0x1000000) == 0) break;\n                pppppppcVar29 = (code *******)((int)local_8c + -1);\n                pppppppcVar33 = (code *******)FUN_00049110(&local_b4);\n                if (((uint)pppppppcVar33 & 1) == 0) {\n                  if (pppppppcVar33 == (code *******)0x0) break;\n                  if (((uint)pppppppcVar33 & 6) == 6) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xc];\n                    goto LAB_00054d1c;\n                  }\n                  if (((uint)pppppppcVar33 & 2) != 0) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xb];\n                    goto LAB_00054d1c;\n                  }\n                  pppppppcVar28 = pppppppcVar33;\n                  if (((uint)pppppppcVar33 & 4) == 0) break;\n                  pppppppcVar30 = (code *******)unaff_s7[10];\n                  pppppppcVar29 = pppppppcVar14;\n                  unaff_s7 = (code *******)FUN_0004ae34(&local_d8);\n                  pppppppcVar28 = pppppppcVar33;\n                  if (unaff_s7 != (code *******)0x0) break;\n                  if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                }\n                else {\n                  unaff_s7 = (code *******)pppppppcVar14[10];\nLAB_00054d1c:\n                  pppppppcVar28 = (code *******)PTR_s_nt0_000795b8;\n                  if (unaff_s7 != (code *******)0x0) break;\n                }\n                pppppppcVar28 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                local_dc = (code *******)\n                           (*(code *)PTR___assert_fail_000799f8)\n                                     (PTR_s_nt0_000795b8 + 0x71a0,pppppppcVar29,0x435);\n                if (local_dc == pppppppcVar26) {\n                  if ((int)local_dc < (int)param_3) {\n                    uVar7 = (uint)(byte)*(code *)((int)local_dc + (int)param_2);\n                  }\n                  else {\n                    uVar7 = 0;\n                  }\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    uVar7 = (uint)*(byte *)((int)ppppppcVar32 + uVar7);\n                  }\n                  if (*(code *)((int)local_148 + uVar7) == (code)0x0) {\n                    local_150 = (code *******)0x1;\n                    pppppppcVar30 = param_9;\n                    pppppppcVar33 = pppppppcVar28;\n                    goto LAB_000557e4;\n                  }\n                }\n              }\n              pppppppcVar33 = pppppppcVar28;\n              bVar1 = pppppppcVar36 != (code *******)0x0;\n              if ((local_50 == (code *******)0x0) ||\n                 (local_50[(int)pppppppcVar42] = (code ******)unaff_s7,\n                 pppppppcVar14[0x13] == (code ******)0x0)) {\nLAB_00054d50:\n                if ((int)unaff_s7[0xd] << 4 < 0) {\n                  if ((((uint)unaff_s7[0xd] & 0x1000000) == 0) ||\n                     (pppppppcVar29 = unaff_s7, pppppppcVar30 = pppppppcVar42,\n                     iVar18 = FUN_00049440(&local_b4), iVar18 != 0)) {\n                    unaff_s8 = pppppppcVar42;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                  }\n                  else {\n                    pppppppcVar42 = (code *******)0xffffffff;\n                    pppppppcVar28 = (code *******)0x0;\n                  }\n                }\n                else {\n                  pppppppcVar42 = (code *******)0xffffffff;\n                  pppppppcVar28 = (code *******)0x0;\n                }\n                pcVar8 = (code *)(PTR_DAT_000799a4 + -0x7144);\n                pcVar9 = (code *)(PTR_DAT_000799a4 + -0x1980);\n                pcVar10 = (code *)(PTR_DAT_000799a4 + -0x2f9c);\n                unaff_s8 = pppppppcVar42;\n                local_144 = pppppppcVar36;\n                while( true ) {\n                  uVar44 = CONCAT44(local_98,local_84);\n                  unaff_s5 = (code *******)((int)local_8c + 1);\n                  pppppppcVar29 = local_8c;\n                  if ((int)local_7c <= (int)local_8c) break;\n                  if (((int)local_90 <= (int)unaff_s5) && ((int)local_90 < (int)local_84))\n                  goto LAB_00054e94;\n                  if ((int)local_98 <= (int)unaff_s5) {\n                    while ((int)((ulonglong)uVar44 >> 0x20) < (int)uVar44) {\nLAB_00054e94:\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 2);\n                      local_d8 = (code *******)(*pcVar8)(&local_b4);\n                      if (local_d8 == (code *******)0x0) break;\n                      pppppppcVar14 = param_4;\n                      if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                      pppppppcVar33 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                      pppppppcVar30 = (code *******)0x46c;\n                      pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                      uVar44 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0);\n                      pppppppcVar28 = pppppppcVar38;\n                    }\n                  }\n                  pppppppcVar42 = local_60;\n                  if ((int)unaff_s7[0xd] << 5 < 0) {\n                    pppppppcVar31 = pppppppcVar42;\n                    if (0 < (int)unaff_s7[2]) {\n                      pcVar11 = (code *)(PTR_DAT_000799a4 + -0x6fdc);\n                      pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6ef0);\n                      param_6 = (code *******)0x0;\n                      do {\n                        param_5 = (code *******)unaff_s7[3][(int)param_6];\n                        ppppppcVar39 = *pppppppcVar42;\n                        pppppcVar13 = ppppppcVar39[(int)param_5 * 2 + 1];\n                        if (((uint)pppppcVar13 & 0x800) != 0) {\n                          if (((uint)pppppcVar13 & 0xffc000) != 0) {\n                            pppppppcVar29 = local_8c;\n                            uVar19 = (*pcVar12)(&local_b4,local_8c,local_5c);\n                            uVar7 = (uint)((int)ppppppcVar39[(int)param_5 * 2 + 1] << 8) >> 0x16;\n                            if ((uVar7 & 4) == 0) {\n                              uVar27 = uVar19 & 1;\n                              if ((uVar7 & 8) != 0) goto joined_r0x00054f40;\n                            }\n                            else {\n                              uVar27 = uVar7 & 8;\n                              if ((uVar19 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                              if (uVar27 != 0) goto LAB_000550a4;\n                            }\n                            if ((((uVar7 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                               (((uVar7 & 0x80) != 0 &&\n                                (pppppppcVar33 = local_8c, (uVar19 & 8) == 0)))) goto LAB_000550a4;\n                          }\n                          pppppppcVar30 = &local_b4;\n                          pppppppcVar29 = param_5;\n                          pppppppcVar33 = local_8c;\n                          iVar18 = (*pcVar10)(pppppppcVar42);\n                          if (iVar18 != 0) {\n                            pppppppcVar14 = (code *******)((int)local_8c + iVar18);\n                            if (iVar18 <= local_3c) {\n                              iVar18 = local_3c;\n                            }\n                            pppppppcVar29 = pppppppcVar14;\n                            local_3c = iVar18;\n                            local_d4 = (code *******)(*pcVar11)(&local_b4);\n                            pppppppcVar15 = local_d4;\n                            if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                            pppppppcVar30 =\n                                 (code *******)\n                                 (pppppppcVar42[6] + (int)pppppppcVar42[3][(int)param_5] * 3);\n                            unaff_s4 = (code *******)((int)pppppppcVar14 * 4);\n                            param_5 = local_50 + (int)pppppppcVar14;\n                            if (*param_5 == (code ******)0x0) {\n                              local_d0 = (code *******)*pppppppcVar30;\n                              local_cc = (code *******)pppppppcVar30[1];\n                              local_c8 = (code *******)pppppppcVar30[2];\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *param_5 = ppppppcVar39;\n                            }\n                            else {\n                              pppppppcVar29 = (code *******)(*param_5)[10];\n                              local_d4 = (code *******)FUN_000484bc(&local_d0);\n                              pppppppcVar15 = local_d4;\n                              if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar15 = local_50 + (int)pppppppcVar14;\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *pppppppcVar15 = ppppppcVar39;\n                              (*(code *)PTR_free_00079c24)(local_c8);\n                            }\n                            unaff_s4 = local_50 + (int)pppppppcVar14;\n                            if ((*unaff_s4 == (code ******)0x0) &&\n                               (pppppppcVar15 = local_d4, local_d4 != (code *******)0x0))\n                            goto LAB_00055e44;\n                          }\n                        }\nLAB_000550a4:\n                        param_6 = (code *******)((int)param_6 + 1);\n                      } while ((int)param_6 < (int)unaff_s7[2]);\n                    }\n                    local_d8 = (code *******)0x0;\n                  }\n                  uVar7 = (uint)(byte)*(code *)((int)local_8c + (int)local_b0);\n                  local_8c = (code *******)((int)local_8c + 1);\n                  do {\n                    if (unaff_s7[0xb] != (code ******)0x0) {\n                      pppppppcVar30 = (code *******)unaff_s7[0xb][uVar7];\nLAB_000553a0:\n                      pppppppcVar14 = pppppppcVar30;\n                      if (local_50 != (code *******)0x0) goto LAB_000553ac;\n                      goto LAB_000553cc;\n                    }\n                    pppppppcVar31 = (code *******)unaff_s7[0xc];\n                    if (pppppppcVar31 != (code *******)0x0) {\n                      pppppppcVar29 = (code *******)((int)local_8c + -1);\n                      uVar19 = FUN_00049110(&local_b4);\n                      if ((uVar19 & 1) == 0) {\n                        pppppppcVar30 = (code *******)pppppppcVar31[uVar7];\n                      }\n                      else {\n                        pppppppcVar31 = pppppppcVar31 + uVar7 + 0x100;\n                        pppppppcVar30 = (code *******)*pppppppcVar31;\n                      }\n                      goto LAB_000553a0;\n                    }\n                    pppppppcVar29 = unaff_s7;\n                    pppppppcVar30 = local_5c;\n                    iVar18 = (*pcVar9)(local_60);\n                  } while (iVar18 != 0);\n                  local_d8 = (code *******)0xc;\n                  pppppppcVar15 = local_d8;\nLAB_00055e44:\n                  local_d8 = pppppppcVar15;\n                  param_4 = (code *******)0x0;\n                  if (local_50 == (code *******)0x0) {\n                    pppppppcVar14 = param_4;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    break;\n                  }\n                  pppppppcVar30 = (code *******)0x0;\nLAB_000553ac:\n                  pppppppcVar29 = &local_b4;\n                  pppppppcVar14 = (code *******)FUN_00053684(&local_d8);\nLAB_000553cc:\n                  param_4 = pppppppcVar14;\n                  if (pppppppcVar14 == (code *******)0x0) {\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    if ((local_50 == (code *******)0x0) ||\n                       ((pppppppcVar28 != (code *******)0x0 && (pppppppcVar34 == (code *******)0x0))\n                       )) break;\n                    param_6 = &local_b4;\n                    param_5 = (code *******)&local_d8;\n                    pppppppcVar31 = (code *******)(PTR_DAT_000799a4 + 0x3684);\n                    do {\n                      pppppppcVar15 = local_50 + (int)local_8c;\n                      pppppppcVar42 = local_8c;\n                      do {\n                        pppppppcVar42 = (code *******)((int)pppppppcVar42 + 1);\n                        pppppppcVar29 = local_4c;\n                        param_4 = pppppppcVar14;\n                        if ((int)local_4c < (int)pppppppcVar42) goto LAB_00055da8;\n                        local_8c = (code *******)((int)local_8c + 1);\n                        pppppppcVar15 = pppppppcVar15 + 1;\n                      } while (*pppppppcVar15 == (code ******)0x0);\n                      pppppppcVar30 = (code *******)0x0;\n                      pppppppcVar29 = param_6;\n                      param_4 = (code *******)(*(code *)pppppppcVar31)(param_5);\n                      if (local_d8 != (code *******)0x0) {\n                        if (param_4 == (code *******)0x0) goto LAB_00055da8;\n                        break;\n                      }\n                      pppppppcVar29 = local_4c;\n                    } while (param_4 == (code *******)0x0);\n                  }\n                  pppppppcVar15 = (code *******)((uint)unaff_s7 ^ (uint)param_4);\n                  pppppppcVar42 = unaff_s7;\n                  pppppppcVar14 = local_138;\n                  if ((bVar1) &&\n                     (pppppppcVar42 = pppppppcVar15, pppppppcVar14 = unaff_s5,\n                     pppppppcVar15 != (code *******)0x0)) {\n                    bVar1 = false;\n                    pppppppcVar14 = local_138;\n                  }\n                  local_138 = pppppppcVar14;\n                  unaff_s7 = param_4;\n                  if ((((uint)param_4[0xd] & 0x8000000) != 0) &&\n                     ((((uint)param_4[0xd] & 0x1000000) == 0 ||\n                      (pppppppcVar29 = param_4, pppppppcVar30 = local_8c,\n                      iVar18 = FUN_00049440(&local_b4), iVar18 != 0)))) {\n                    unaff_s7 = pppppppcVar42;\n                    unaff_s8 = local_8c;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                    local_144 = (code *******)0x0;\n                    unaff_s7 = param_4;\n                  }\n                }\nLAB_00055da8:\n                if (local_144 != (code *******)0x0) {\n                  *local_144 = (code ******)((int)local_138 + (int)*local_144);\n                }\n              }\n              else {\n                param_4 = unaff_s7 + 1;\n                pppppppcVar30 = (code *******)0x0;\n                pppppppcVar29 = param_4;\n                local_d8 = (code *******)FUN_00047a44(&local_b4);\n                unaff_s8 = local_d8;\n                if (local_d8 == (code *******)0x0) {\n                  if (((uint)unaff_s7[0xd] & 0x2000000) == 0) {\n                    pppppppcVar29 = param_4;\n                    bVar1 = false;\n                  }\n                  else {\n                    pppppppcVar29 = param_4;\n                    local_d8 = (code *******)FUN_00052d84(&local_b4);\n                    unaff_s8 = local_d8;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055dbc;\n                    bVar1 = false;\n                  }\n                  goto LAB_00054d50;\n                }\n              }\nLAB_00055dbc:\n              if (unaff_s8 == (code *******)0xffffffff) {\nLAB_00055b04:\n                FUN_0004b7e8(&local_b4);\nLAB_00055b1c:\n                local_dc = (code *******)((int)pppppppcVar24 + (int)local_dc);\n                if ((int)pppppppcVar25 <= (int)local_dc) goto code_r0x00055b38;\n                local_150 = (code *******)0x1;\n                goto LAB_000557e4;\n              }\n              if (unaff_s8 == (code *******)&SUB_fffffffe) {\n                local_150 = (code *******)0xc;\n                goto LAB_000557e4;\n              }\n              local_58 = unaff_s8;\n              if (((uint)param_1[7] & 0x8000000) == 0) {\n                if (pppppppcVar3 < (code *******)0x2) {\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055c08;\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                else {\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                if (pppppppcVar3 < (code *******)0x2) {\nLAB_00055c6c:\n                  pppppppcVar28 = pppppppcVar33;\n                  unaff_s4 = local_60;\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055548;\n                }\n                else {\n                  cVar23 = *(code *)(pppppppcVar38 + 0x16);\nLAB_00055c20:\n                  pppppppcVar28 = pppppppcVar33;\n                  if (-1 < (char)cVar23) goto LAB_00055c6c;\n                }\n                pppppppcVar31 = local_54;\n                pppppppcVar42 = local_60;\n                unaff_s4 = pppppppcVar42;\n                if (unaff_s8 < (code *******)0x3fffffff) {\n                  param_4 = (code *******)((int)((int)unaff_s8 + 1) * 4);\n                  unaff_s5 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                  if (unaff_s5 == (code *******)0x0) {\nLAB_00055b9c:\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    local_150 = (code *******)0xc;\n                    pppppppcVar33 = pppppppcVar28;\n                  }\n                  else {\n                    pppppppcVar29 = (code *******)&local_d0;\n                    if (pppppppcVar42[0x13] == (code ******)0x0) {\n                      local_cc = (code *******)0x0;\n                      local_c8 = pppppppcVar31;\n                      local_c0 = 0;\n                      local_bc = 0;\n                      local_b8 = 0;\n                      local_d0 = unaff_s5;\n                      local_c4 = unaff_s8;\n                      param_5 = (code *******)FUN_0005421c(&local_b4);\n                      (*(code *)PTR_free_00079c24)(local_b8);\n                      if (param_5 == (code *******)0x0) {\n                        param_4 = (code *******)*unaff_s5;\n                        if (param_4 == (code *******)0x0) {\nLAB_00055b70:\n                          (*(code *)PTR_free_00079c24)(unaff_s5);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          pppppppcVar33 = pppppppcVar28;\n                          goto LAB_00055b04;\n                        }\nLAB_00055528:\n                        (*(code *)PTR_free_00079c24)(local_50);\n                        pppppppcVar33 = pppppppcVar28;\n                        unaff_s4 = pppppppcVar42;\n                        local_58 = unaff_s8;\n                        local_54 = pppppppcVar31;\n                        local_50 = unaff_s5;\n                        goto LAB_00055548;\n                      }\nLAB_00055acc:\n                      param_4 = (code *******)0x0;\n                      pppppppcVar33 = pppppppcVar28;\n                      unaff_s4 = pppppppcVar42;\n                    }\n                    else {\n                      param_4 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                      if (param_4 == (code *******)0x0) goto LAB_00055b9c;\n                      unaff_s7 = (code *******)&local_d0;\n                      pcVar8 = (code *)(PTR_DAT_000799a4 + 0x421c);\n                      pcVar9 = (code *)(PTR_DAT_000799a4 + -0x6bc0);\n                      pppppppcVar33 = pppppppcVar28;\n                      while( true ) {\n                        pppppppcVar28 = (code *******)((int)unaff_s8 + 1);\n                        param_6 = (code *******)((int)pppppppcVar28 * 4);\n                        pppppppcVar30 = param_6;\n                        (*(code *)PTR_memset_00079b00)(param_4,0);\n                        local_c0 = 0;\n                        local_bc = 0;\n                        local_b8 = 0;\n                        pppppppcVar29 = unaff_s7;\n                        local_d0 = unaff_s5;\n                        local_cc = param_4;\n                        local_c8 = pppppppcVar31;\n                        local_c4 = unaff_s8;\n                        param_5 = (code *******)(*pcVar8)(&local_b4);\n                        (*(code *)PTR_free_00079c24)(local_b8);\n                        unaff_s4 = pppppppcVar28;\n                        if (param_5 != (code *******)0x0) break;\n                        if ((*unaff_s5 != (code ******)0x0) ||\n                           (param_6 = param_6 + -1, *param_4 != (code ******)0x0)) {\n                          pppppppcVar29 = unaff_s5;\n                          pppppppcVar30 = param_4;\n                          param_5 = (code *******)FUN_000520d0(pppppppcVar42);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          if (param_5 != (code *******)0x0) goto LAB_00055acc;\n                          goto LAB_00055528;\n                        }\n                        param_6 = (code *******)((int)local_50 + (int)param_6);\n                        do {\n                          while( true ) {\n                            unaff_s8 = (code *******)((int)unaff_s8 + -1);\n                            if ((int)unaff_s8 < 0) goto LAB_00055b70;\n                            pppppppcVar29 = (code *******)param_6[-1];\n                            if (pppppppcVar29 != (code *******)0x0) break;\n                            param_6 = param_6 + -1;\n                          }\n                          param_6 = param_6 + -1;\n                        } while (((uint)pppppppcVar29[0xd] & 0x8000000) == 0);\n                        pppppppcVar31 = (code *******)(*pcVar9)(&local_b4,pppppppcVar29,unaff_s8);\n                        pppppppcVar33 = pppppppcVar28;\n                      }\n                    }\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    (*(code *)PTR_free_00079c24)(param_4);\n                    local_150 = param_5;\n                    if (param_5 == (code *******)0x1) goto LAB_00055b04;\n                  }\n                }\n                else {\n                  local_150 = (code *******)0xc;\n                  pppppppcVar33 = pppppppcVar28;\n                }\n                goto LAB_000557e4;\n              }\n              if (pppppppcVar38[0x13] != (code ******)0x0) {\n                pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                pppppppcVar30 = unaff_s8;\n                local_54 = (code *******)FUN_00049440(&local_b4);\n                goto LAB_00055c6c;\n              }\nLAB_00055c08:\n              if ((((uint)param_1[7] & 0x8000000) == 0) && ((code *******)0x1 < pppppppcVar3)) {\n                cVar23 = *(code *)(pppppppcVar38 + 0x16);\n                goto LAB_00055c20;\n              }\nLAB_00055548:\n              if (pppppppcVar3 == (code *******)0x0) goto LAB_000557e4;\n              if (pppppppcVar3 < (code *******)0x2) {\n                *param_8 = (code ******)0x0;\n                param_8[1] = (code ******)local_58;\n                goto LAB_000555ac;\n              }\n              pppppppcVar29 = param_8 + 2;\n              do {\n                pppppppcVar29[1] = (code ******)0xffffffff;\n                *pppppppcVar29 = (code ******)0xffffffff;\n                pppppppcVar29 = pppppppcVar29 + 2;\n              } while (pppppppcVar29 != param_8 + (int)pppppppcVar3 * 2);\n              *param_8 = (code ******)0x0;\n              param_8[1] = (code ******)local_58;\n              if (((uint)param_1[7] & 0x8000000) != 0) {\nLAB_000555ac:\n                pppppppcVar33 = param_8;\n                do {\n                  pppppppcVar29 = (code *******)*pppppppcVar33;\n                  if (pppppppcVar29 != (code *******)0xffffffff) {\n                    if (local_68 != '\0') {\n                      pppppppcVar34 = local_94;\n                      if (pppppppcVar29 != local_98) {\n                        pppppppcVar34 = *(code ********)(local_a8 + (int)pppppppcVar29 * 4);\n                      }\n                      *pppppppcVar33 = (code ******)pppppppcVar34;\n                      pppppppcVar29 = local_94;\n                      if (local_98 != (code *******)pppppppcVar33[1]) {\n                        pppppppcVar29 = *(code ********)(local_a8 + (int)pppppppcVar33[1] * 4);\n                      }\n                      pppppppcVar33[1] = (code ******)pppppppcVar29;\n                    }\n                    *pppppppcVar33 = (code ******)((int)local_dc + (int)*pppppppcVar33);\n                    pppppppcVar29 = (code *******)((int)local_dc + (int)pppppppcVar33[1]);\n                    pppppppcVar33[1] = (code ******)pppppppcVar29;\n                  }\n                  pppppppcVar33 = pppppppcVar33 + 2;\n                } while (pppppppcVar33 != param_8 + (int)pppppppcVar3 * 2);\n                if (0 < local_118) {\n                  pppppppcVar33 = param_8 + (int)pppppppcVar3 * 2;\n                  do {\n                    *pppppppcVar33 = (code ******)0xffffffff;\n                    pppppppcVar33[1] = (code ******)0xffffffff;\n                    pppppppcVar33 = pppppppcVar33 + 2;\n                  } while (pppppppcVar33 != param_8 + (int)param_7 * 2);\n                }\n                pppppppcVar30 = local_dc;\n                pppppppcVar33 = param_8;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar38[0x21] != (code ******)0x0) {\n                  pppppppcVar30 = (code *******)((int)pppppppcVar3 + -1);\n                  pppppppcVar34 = (code *******)0x0;\n                  pppppppcVar3 = param_8;\n                  while( true ) {\n                    pppppppcVar29 = (code *******)((int)pppppppcVar34 * 4);\n                    if (pppppppcVar30 == pppppppcVar34) break;\n                    if (*(code ********)((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) !=\n                        pppppppcVar34) {\n                      pppppppcVar3[2] =\n                           param_8[(int)((int)*(code ********)\n                                               ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1)\n                                   * 2];\n                      pppppppcVar3[3] =\n                           param_8[((int)*(code ******)\n                                          ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1) * 2 +\n                                   1];\n                    }\n                    pppppppcVar34 = (code *******)((int)pppppppcVar34 + 1);\n                    pppppppcVar3 = pppppppcVar3 + 2;\n                  }\n                }\n                goto LAB_000557e4;\n              }\n              if ((char)*(code *)(pppppppcVar38 + 0x16) < '\0') {\n                local_168 = (uint)(0 < (int)pppppppcVar38[0x13]);\n              }\n              else {\n                local_168 = 0;\n              }\n              pppppppcVar29 = &local_b4;\n              pppppppcVar30 = pppppppcVar3;\n              pppppppcVar33 = param_8;\n              local_150 = (code *******)FUN_0004f4a0(param_1);\n              if (local_150 == (code *******)0x0) goto LAB_000555ac;\n            }\n          }\n          else if (local_90 < 0x3fffffff) {\n            local_50 = (code *******)(*(code *)PTR_malloc_00079b54)((local_90 + 1) * 4);\n            if (local_50 != (code *******)0x0) goto LAB_00055a40;\n            local_150 = (code *******)0xc;\n            param_6 = pppppppcVar36;\n          }\n          else {\n            local_150 = (code *******)0xc;\n            param_6 = pppppppcVar36;\n          }\n        }" { (labeled_statement "LAB_000559f0:\n          local_3c = 1;" statement_identifier : (expression_statement "local_3c = 1;" (assignment_expression "local_3c = 1" identifier = number_literal) ;)) (expression_statement "local_44 = pppppppcVar36;" (assignment_expression "local_44 = pppppppcVar36" identifier = identifier) ;) (expression_statement "local_34 = pppppppcVar36;" (assignment_expression "local_34 = pppppppcVar36" identifier = identifier) ;) (if_statement "if ((pppppppcVar3 < (code *******)0x2) && (((uint)pppppppcVar38[0x16] & 0x40000000) == 0))\n          {\n            local_50 = (code *******)0x0;\nLAB_00055a40:\n            local_78 = 6;\n            if (((uint)param_9 & 1) != 0) {\n              local_78 = 4;\n            }\n            pppppppcVar24 = (code *******)0x1;\n            pppppppcVar25 = param_4;\n            if ((int)param_5 < (int)param_4) {\n              pppppppcVar24 = (code *******)0xffffffff;\n              pppppppcVar25 = param_5;\n            }\n            pppppppcVar26 = param_5;\n            if ((int)param_5 <= (int)param_4) {\n              pppppppcVar26 = param_4;\n            }\n            ppppppcVar35 = pppppppcVar38[0x17];\n            uVar16 = 8;\n            if (local_148 != (code *******)0x0) {\n              if (ppppppcVar35 == (code ******)0x1) {\n                pppppppcVar28 = (code *******)0x4;\n              }\n              else {\n                pppppppcVar28 = pppppppcVar2;\n                if ((-1 < (int)param_1[3] << 9) && (ppppppcVar32 == (code ******)0x0)) {\n                  pppppppcVar28 = (code *******)0x4;\n                }\n              }\n              pppppppcVar29 = (code *******)0x0;\n              if ((int)param_4 <= (int)param_5) {\n                pppppppcVar29 = (code *******)0x2;\n              }\n              uVar16 = (uint)(ppppppcVar32 != (code ******)0x0) | (uint)pppppppcVar28 |\n                       (uint)pppppppcVar29;\n            }\n            local_dc = param_4;\n            if ((int)param_4 < (int)pppppppcVar25) {\n              local_150 = (code *******)0x1;\n              param_6 = pppppppcVar36;\n            }\n            else if ((int)pppppppcVar26 < (int)param_4) {\n              local_150 = (code *******)0x1;\n              param_4 = (code *******)(uint)((int)param_5 < (int)param_4);\n              param_6 = pppppppcVar36;\n            }\n            else {\n              pppppppcVar36 = (code *******)&local_dc;\n              if ((code *******)(uint)((int)param_5 < (int)param_4) != (code *******)0x0) {\n                pppppppcVar36 = (code *******)0x0;\n              }\n              pcVar4 = (code *)(PTR_DAT_000799a4 + -0x2b7c);\n              piVar5 = (int *)(PTR_s_nt0_000795b8 + (uVar16 - 4) * 4 + 0x6e38);\nLAB_00055b44:\n              if (uVar16 - 4 < 5) {\n                    /* WARNING: Could not emulate address calculation at 0x00054920 */\n                    /* WARNING: Treating indirect jump as call */\n                pppppppcVar29 = (code *******)(*(code *)(&_gp_1 + *piVar5))();\n                return pppppppcVar29;\n              }\n              param_5 = &local_b4;\n              pppppppcVar28 = pppppppcVar33;\n              while( true ) {\n                param_4 = local_dc;\n                pppppppcVar33 = (code *******)((int)local_dc - local_9c);\n                pppppppcVar30 = param_9;\n                pppppppcVar31 = pppppppcVar2;\n                param_6 = local_148;\n                unaff_s4 = param_3;\n                unaff_s5 = pppppppcVar24;\n                unaff_s7 = pppppppcVar26;\n                if (local_94 <= pppppppcVar33) {\n                  pppppppcVar29 = local_dc;\n                  local_150 = (code *******)(*pcVar4)(param_5);\n                  pppppppcVar33 = pppppppcVar28;\n                  if (local_150 != (code *******)0x0) goto LAB_000557e4;\n                  pppppppcVar33 = (code *******)((int)param_4 - local_9c);\n                }\n                if ((int)param_4 < (int)param_3) {\n                  uVar7 = (uint)(byte)*(code *)((int)pppppppcVar33 + (int)local_b0);\n                }\n                else {\n                  uVar7 = 0;\n                }\n                param_4 = (code *******)((int)param_4 + (int)pppppppcVar24);\n                if (*(code *)((int)local_148 + uVar7) != (code)0x0) break;\n                pppppppcVar33 = pppppppcVar28;\n                local_dc = param_4;\n                if ((int)param_4 < (int)pppppppcVar25) {\n                  local_150 = (code *******)0x1;\n                  goto LAB_000557e4;\n                }\n                if ((code *******)(uint)((int)pppppppcVar26 < (int)param_4) != (code *******)0x0) {\n                  local_150 = (code *******)0x1;\n                  param_4 = (code *******)(uint)((int)pppppppcVar26 < (int)param_4);\n                  goto LAB_000557e4;\n                }\n              }\n              while( true ) {\n                pppppppcVar29 = local_dc;\n                pppppppcVar30 = param_9;\n                pppppppcVar6 = (code *******)(*pcVar4)(&local_b4);\n                pppppppcVar14 = local_60;\n                pppppppcVar42 = local_8c;\n                pppppppcVar33 = pppppppcVar28;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar6 != (code *******)0x0) goto LAB_000557e4;\n                if (((ppppppcVar35 != (code ******)0x1) && (local_98 != (code *******)0x0)) &&\n                   (*local_ac == -1)) goto LAB_00055b1c;\n                local_3c = 0;\n                local_48 = 0;\n                local_4c = (code *******)0x0;\n                local_138 = local_8c;\n                local_d8 = (code *******)0x0;\n                unaff_s7 = (code *******)local_60[9];\n                pppppppcVar30 = local_5c;\n                param_4 = pppppppcVar14;\n                if (((uint)unaff_s7[0xd] & 0x1000000) == 0) break;\n                pppppppcVar29 = (code *******)((int)local_8c + -1);\n                pppppppcVar33 = (code *******)FUN_00049110(&local_b4);\n                if (((uint)pppppppcVar33 & 1) == 0) {\n                  if (pppppppcVar33 == (code *******)0x0) break;\n                  if (((uint)pppppppcVar33 & 6) == 6) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xc];\n                    goto LAB_00054d1c;\n                  }\n                  if (((uint)pppppppcVar33 & 2) != 0) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xb];\n                    goto LAB_00054d1c;\n                  }\n                  pppppppcVar28 = pppppppcVar33;\n                  if (((uint)pppppppcVar33 & 4) == 0) break;\n                  pppppppcVar30 = (code *******)unaff_s7[10];\n                  pppppppcVar29 = pppppppcVar14;\n                  unaff_s7 = (code *******)FUN_0004ae34(&local_d8);\n                  pppppppcVar28 = pppppppcVar33;\n                  if (unaff_s7 != (code *******)0x0) break;\n                  if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                }\n                else {\n                  unaff_s7 = (code *******)pppppppcVar14[10];\nLAB_00054d1c:\n                  pppppppcVar28 = (code *******)PTR_s_nt0_000795b8;\n                  if (unaff_s7 != (code *******)0x0) break;\n                }\n                pppppppcVar28 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                local_dc = (code *******)\n                           (*(code *)PTR___assert_fail_000799f8)\n                                     (PTR_s_nt0_000795b8 + 0x71a0,pppppppcVar29,0x435);\n                if (local_dc == pppppppcVar26) {\n                  if ((int)local_dc < (int)param_3) {\n                    uVar7 = (uint)(byte)*(code *)((int)local_dc + (int)param_2);\n                  }\n                  else {\n                    uVar7 = 0;\n                  }\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    uVar7 = (uint)*(byte *)((int)ppppppcVar32 + uVar7);\n                  }\n                  if (*(code *)((int)local_148 + uVar7) == (code)0x0) {\n                    local_150 = (code *******)0x1;\n                    pppppppcVar30 = param_9;\n                    pppppppcVar33 = pppppppcVar28;\n                    goto LAB_000557e4;\n                  }\n                }\n              }\n              pppppppcVar33 = pppppppcVar28;\n              bVar1 = pppppppcVar36 != (code *******)0x0;\n              if ((local_50 == (code *******)0x0) ||\n                 (local_50[(int)pppppppcVar42] = (code ******)unaff_s7,\n                 pppppppcVar14[0x13] == (code ******)0x0)) {\nLAB_00054d50:\n                if ((int)unaff_s7[0xd] << 4 < 0) {\n                  if ((((uint)unaff_s7[0xd] & 0x1000000) == 0) ||\n                     (pppppppcVar29 = unaff_s7, pppppppcVar30 = pppppppcVar42,\n                     iVar18 = FUN_00049440(&local_b4), iVar18 != 0)) {\n                    unaff_s8 = pppppppcVar42;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                  }\n                  else {\n                    pppppppcVar42 = (code *******)0xffffffff;\n                    pppppppcVar28 = (code *******)0x0;\n                  }\n                }\n                else {\n                  pppppppcVar42 = (code *******)0xffffffff;\n                  pppppppcVar28 = (code *******)0x0;\n                }\n                pcVar8 = (code *)(PTR_DAT_000799a4 + -0x7144);\n                pcVar9 = (code *)(PTR_DAT_000799a4 + -0x1980);\n                pcVar10 = (code *)(PTR_DAT_000799a4 + -0x2f9c);\n                unaff_s8 = pppppppcVar42;\n                local_144 = pppppppcVar36;\n                while( true ) {\n                  uVar44 = CONCAT44(local_98,local_84);\n                  unaff_s5 = (code *******)((int)local_8c + 1);\n                  pppppppcVar29 = local_8c;\n                  if ((int)local_7c <= (int)local_8c) break;\n                  if (((int)local_90 <= (int)unaff_s5) && ((int)local_90 < (int)local_84))\n                  goto LAB_00054e94;\n                  if ((int)local_98 <= (int)unaff_s5) {\n                    while ((int)((ulonglong)uVar44 >> 0x20) < (int)uVar44) {\nLAB_00054e94:\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 2);\n                      local_d8 = (code *******)(*pcVar8)(&local_b4);\n                      if (local_d8 == (code *******)0x0) break;\n                      pppppppcVar14 = param_4;\n                      if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                      pppppppcVar33 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                      pppppppcVar30 = (code *******)0x46c;\n                      pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                      uVar44 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0);\n                      pppppppcVar28 = pppppppcVar38;\n                    }\n                  }\n                  pppppppcVar42 = local_60;\n                  if ((int)unaff_s7[0xd] << 5 < 0) {\n                    pppppppcVar31 = pppppppcVar42;\n                    if (0 < (int)unaff_s7[2]) {\n                      pcVar11 = (code *)(PTR_DAT_000799a4 + -0x6fdc);\n                      pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6ef0);\n                      param_6 = (code *******)0x0;\n                      do {\n                        param_5 = (code *******)unaff_s7[3][(int)param_6];\n                        ppppppcVar39 = *pppppppcVar42;\n                        pppppcVar13 = ppppppcVar39[(int)param_5 * 2 + 1];\n                        if (((uint)pppppcVar13 & 0x800) != 0) {\n                          if (((uint)pppppcVar13 & 0xffc000) != 0) {\n                            pppppppcVar29 = local_8c;\n                            uVar19 = (*pcVar12)(&local_b4,local_8c,local_5c);\n                            uVar7 = (uint)((int)ppppppcVar39[(int)param_5 * 2 + 1] << 8) >> 0x16;\n                            if ((uVar7 & 4) == 0) {\n                              uVar27 = uVar19 & 1;\n                              if ((uVar7 & 8) != 0) goto joined_r0x00054f40;\n                            }\n                            else {\n                              uVar27 = uVar7 & 8;\n                              if ((uVar19 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                              if (uVar27 != 0) goto LAB_000550a4;\n                            }\n                            if ((((uVar7 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                               (((uVar7 & 0x80) != 0 &&\n                                (pppppppcVar33 = local_8c, (uVar19 & 8) == 0)))) goto LAB_000550a4;\n                          }\n                          pppppppcVar30 = &local_b4;\n                          pppppppcVar29 = param_5;\n                          pppppppcVar33 = local_8c;\n                          iVar18 = (*pcVar10)(pppppppcVar42);\n                          if (iVar18 != 0) {\n                            pppppppcVar14 = (code *******)((int)local_8c + iVar18);\n                            if (iVar18 <= local_3c) {\n                              iVar18 = local_3c;\n                            }\n                            pppppppcVar29 = pppppppcVar14;\n                            local_3c = iVar18;\n                            local_d4 = (code *******)(*pcVar11)(&local_b4);\n                            pppppppcVar15 = local_d4;\n                            if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                            pppppppcVar30 =\n                                 (code *******)\n                                 (pppppppcVar42[6] + (int)pppppppcVar42[3][(int)param_5] * 3);\n                            unaff_s4 = (code *******)((int)pppppppcVar14 * 4);\n                            param_5 = local_50 + (int)pppppppcVar14;\n                            if (*param_5 == (code ******)0x0) {\n                              local_d0 = (code *******)*pppppppcVar30;\n                              local_cc = (code *******)pppppppcVar30[1];\n                              local_c8 = (code *******)pppppppcVar30[2];\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *param_5 = ppppppcVar39;\n                            }\n                            else {\n                              pppppppcVar29 = (code *******)(*param_5)[10];\n                              local_d4 = (code *******)FUN_000484bc(&local_d0);\n                              pppppppcVar15 = local_d4;\n                              if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar15 = local_50 + (int)pppppppcVar14;\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *pppppppcVar15 = ppppppcVar39;\n                              (*(code *)PTR_free_00079c24)(local_c8);\n                            }\n                            unaff_s4 = local_50 + (int)pppppppcVar14;\n                            if ((*unaff_s4 == (code ******)0x0) &&\n                               (pppppppcVar15 = local_d4, local_d4 != (code *******)0x0))\n                            goto LAB_00055e44;\n                          }\n                        }\nLAB_000550a4:\n                        param_6 = (code *******)((int)param_6 + 1);\n                      } while ((int)param_6 < (int)unaff_s7[2]);\n                    }\n                    local_d8 = (code *******)0x0;\n                  }\n                  uVar7 = (uint)(byte)*(code *)((int)local_8c + (int)local_b0);\n                  local_8c = (code *******)((int)local_8c + 1);\n                  do {\n                    if (unaff_s7[0xb] != (code ******)0x0) {\n                      pppppppcVar30 = (code *******)unaff_s7[0xb][uVar7];\nLAB_000553a0:\n                      pppppppcVar14 = pppppppcVar30;\n                      if (local_50 != (code *******)0x0) goto LAB_000553ac;\n                      goto LAB_000553cc;\n                    }\n                    pppppppcVar31 = (code *******)unaff_s7[0xc];\n                    if (pppppppcVar31 != (code *******)0x0) {\n                      pppppppcVar29 = (code *******)((int)local_8c + -1);\n                      uVar19 = FUN_00049110(&local_b4);\n                      if ((uVar19 & 1) == 0) {\n                        pppppppcVar30 = (code *******)pppppppcVar31[uVar7];\n                      }\n                      else {\n                        pppppppcVar31 = pppppppcVar31 + uVar7 + 0x100;\n                        pppppppcVar30 = (code *******)*pppppppcVar31;\n                      }\n                      goto LAB_000553a0;\n                    }\n                    pppppppcVar29 = unaff_s7;\n                    pppppppcVar30 = local_5c;\n                    iVar18 = (*pcVar9)(local_60);\n                  } while (iVar18 != 0);\n                  local_d8 = (code *******)0xc;\n                  pppppppcVar15 = local_d8;\nLAB_00055e44:\n                  local_d8 = pppppppcVar15;\n                  param_4 = (code *******)0x0;\n                  if (local_50 == (code *******)0x0) {\n                    pppppppcVar14 = param_4;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    break;\n                  }\n                  pppppppcVar30 = (code *******)0x0;\nLAB_000553ac:\n                  pppppppcVar29 = &local_b4;\n                  pppppppcVar14 = (code *******)FUN_00053684(&local_d8);\nLAB_000553cc:\n                  param_4 = pppppppcVar14;\n                  if (pppppppcVar14 == (code *******)0x0) {\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    if ((local_50 == (code *******)0x0) ||\n                       ((pppppppcVar28 != (code *******)0x0 && (pppppppcVar34 == (code *******)0x0))\n                       )) break;\n                    param_6 = &local_b4;\n                    param_5 = (code *******)&local_d8;\n                    pppppppcVar31 = (code *******)(PTR_DAT_000799a4 + 0x3684);\n                    do {\n                      pppppppcVar15 = local_50 + (int)local_8c;\n                      pppppppcVar42 = local_8c;\n                      do {\n                        pppppppcVar42 = (code *******)((int)pppppppcVar42 + 1);\n                        pppppppcVar29 = local_4c;\n                        param_4 = pppppppcVar14;\n                        if ((int)local_4c < (int)pppppppcVar42) goto LAB_00055da8;\n                        local_8c = (code *******)((int)local_8c + 1);\n                        pppppppcVar15 = pppppppcVar15 + 1;\n                      } while (*pppppppcVar15 == (code ******)0x0);\n                      pppppppcVar30 = (code *******)0x0;\n                      pppppppcVar29 = param_6;\n                      param_4 = (code *******)(*(code *)pppppppcVar31)(param_5);\n                      if (local_d8 != (code *******)0x0) {\n                        if (param_4 == (code *******)0x0) goto LAB_00055da8;\n                        break;\n                      }\n                      pppppppcVar29 = local_4c;\n                    } while (param_4 == (code *******)0x0);\n                  }\n                  pppppppcVar15 = (code *******)((uint)unaff_s7 ^ (uint)param_4);\n                  pppppppcVar42 = unaff_s7;\n                  pppppppcVar14 = local_138;\n                  if ((bVar1) &&\n                     (pppppppcVar42 = pppppppcVar15, pppppppcVar14 = unaff_s5,\n                     pppppppcVar15 != (code *******)0x0)) {\n                    bVar1 = false;\n                    pppppppcVar14 = local_138;\n                  }\n                  local_138 = pppppppcVar14;\n                  unaff_s7 = param_4;\n                  if ((((uint)param_4[0xd] & 0x8000000) != 0) &&\n                     ((((uint)param_4[0xd] & 0x1000000) == 0 ||\n                      (pppppppcVar29 = param_4, pppppppcVar30 = local_8c,\n                      iVar18 = FUN_00049440(&local_b4), iVar18 != 0)))) {\n                    unaff_s7 = pppppppcVar42;\n                    unaff_s8 = local_8c;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                    local_144 = (code *******)0x0;\n                    unaff_s7 = param_4;\n                  }\n                }\nLAB_00055da8:\n                if (local_144 != (code *******)0x0) {\n                  *local_144 = (code ******)((int)local_138 + (int)*local_144);\n                }\n              }\n              else {\n                param_4 = unaff_s7 + 1;\n                pppppppcVar30 = (code *******)0x0;\n                pppppppcVar29 = param_4;\n                local_d8 = (code *******)FUN_00047a44(&local_b4);\n                unaff_s8 = local_d8;\n                if (local_d8 == (code *******)0x0) {\n                  if (((uint)unaff_s7[0xd] & 0x2000000) == 0) {\n                    pppppppcVar29 = param_4;\n                    bVar1 = false;\n                  }\n                  else {\n                    pppppppcVar29 = param_4;\n                    local_d8 = (code *******)FUN_00052d84(&local_b4);\n                    unaff_s8 = local_d8;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055dbc;\n                    bVar1 = false;\n                  }\n                  goto LAB_00054d50;\n                }\n              }\nLAB_00055dbc:\n              if (unaff_s8 == (code *******)0xffffffff) {\nLAB_00055b04:\n                FUN_0004b7e8(&local_b4);\nLAB_00055b1c:\n                local_dc = (code *******)((int)pppppppcVar24 + (int)local_dc);\n                if ((int)pppppppcVar25 <= (int)local_dc) goto code_r0x00055b38;\n                local_150 = (code *******)0x1;\n                goto LAB_000557e4;\n              }\n              if (unaff_s8 == (code *******)&SUB_fffffffe) {\n                local_150 = (code *******)0xc;\n                goto LAB_000557e4;\n              }\n              local_58 = unaff_s8;\n              if (((uint)param_1[7] & 0x8000000) == 0) {\n                if (pppppppcVar3 < (code *******)0x2) {\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055c08;\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                else {\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                if (pppppppcVar3 < (code *******)0x2) {\nLAB_00055c6c:\n                  pppppppcVar28 = pppppppcVar33;\n                  unaff_s4 = local_60;\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055548;\n                }\n                else {\n                  cVar23 = *(code *)(pppppppcVar38 + 0x16);\nLAB_00055c20:\n                  pppppppcVar28 = pppppppcVar33;\n                  if (-1 < (char)cVar23) goto LAB_00055c6c;\n                }\n                pppppppcVar31 = local_54;\n                pppppppcVar42 = local_60;\n                unaff_s4 = pppppppcVar42;\n                if (unaff_s8 < (code *******)0x3fffffff) {\n                  param_4 = (code *******)((int)((int)unaff_s8 + 1) * 4);\n                  unaff_s5 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                  if (unaff_s5 == (code *******)0x0) {\nLAB_00055b9c:\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    local_150 = (code *******)0xc;\n                    pppppppcVar33 = pppppppcVar28;\n                  }\n                  else {\n                    pppppppcVar29 = (code *******)&local_d0;\n                    if (pppppppcVar42[0x13] == (code ******)0x0) {\n                      local_cc = (code *******)0x0;\n                      local_c8 = pppppppcVar31;\n                      local_c0 = 0;\n                      local_bc = 0;\n                      local_b8 = 0;\n                      local_d0 = unaff_s5;\n                      local_c4 = unaff_s8;\n                      param_5 = (code *******)FUN_0005421c(&local_b4);\n                      (*(code *)PTR_free_00079c24)(local_b8);\n                      if (param_5 == (code *******)0x0) {\n                        param_4 = (code *******)*unaff_s5;\n                        if (param_4 == (code *******)0x0) {\nLAB_00055b70:\n                          (*(code *)PTR_free_00079c24)(unaff_s5);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          pppppppcVar33 = pppppppcVar28;\n                          goto LAB_00055b04;\n                        }\nLAB_00055528:\n                        (*(code *)PTR_free_00079c24)(local_50);\n                        pppppppcVar33 = pppppppcVar28;\n                        unaff_s4 = pppppppcVar42;\n                        local_58 = unaff_s8;\n                        local_54 = pppppppcVar31;\n                        local_50 = unaff_s5;\n                        goto LAB_00055548;\n                      }\nLAB_00055acc:\n                      param_4 = (code *******)0x0;\n                      pppppppcVar33 = pppppppcVar28;\n                      unaff_s4 = pppppppcVar42;\n                    }\n                    else {\n                      param_4 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                      if (param_4 == (code *******)0x0) goto LAB_00055b9c;\n                      unaff_s7 = (code *******)&local_d0;\n                      pcVar8 = (code *)(PTR_DAT_000799a4 + 0x421c);\n                      pcVar9 = (code *)(PTR_DAT_000799a4 + -0x6bc0);\n                      pppppppcVar33 = pppppppcVar28;\n                      while( true ) {\n                        pppppppcVar28 = (code *******)((int)unaff_s8 + 1);\n                        param_6 = (code *******)((int)pppppppcVar28 * 4);\n                        pppppppcVar30 = param_6;\n                        (*(code *)PTR_memset_00079b00)(param_4,0);\n                        local_c0 = 0;\n                        local_bc = 0;\n                        local_b8 = 0;\n                        pppppppcVar29 = unaff_s7;\n                        local_d0 = unaff_s5;\n                        local_cc = param_4;\n                        local_c8 = pppppppcVar31;\n                        local_c4 = unaff_s8;\n                        param_5 = (code *******)(*pcVar8)(&local_b4);\n                        (*(code *)PTR_free_00079c24)(local_b8);\n                        unaff_s4 = pppppppcVar28;\n                        if (param_5 != (code *******)0x0) break;\n                        if ((*unaff_s5 != (code ******)0x0) ||\n                           (param_6 = param_6 + -1, *param_4 != (code ******)0x0)) {\n                          pppppppcVar29 = unaff_s5;\n                          pppppppcVar30 = param_4;\n                          param_5 = (code *******)FUN_000520d0(pppppppcVar42);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          if (param_5 != (code *******)0x0) goto LAB_00055acc;\n                          goto LAB_00055528;\n                        }\n                        param_6 = (code *******)((int)local_50 + (int)param_6);\n                        do {\n                          while( true ) {\n                            unaff_s8 = (code *******)((int)unaff_s8 + -1);\n                            if ((int)unaff_s8 < 0) goto LAB_00055b70;\n                            pppppppcVar29 = (code *******)param_6[-1];\n                            if (pppppppcVar29 != (code *******)0x0) break;\n                            param_6 = param_6 + -1;\n                          }\n                          param_6 = param_6 + -1;\n                        } while (((uint)pppppppcVar29[0xd] & 0x8000000) == 0);\n                        pppppppcVar31 = (code *******)(*pcVar9)(&local_b4,pppppppcVar29,unaff_s8);\n                        pppppppcVar33 = pppppppcVar28;\n                      }\n                    }\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    (*(code *)PTR_free_00079c24)(param_4);\n                    local_150 = param_5;\n                    if (param_5 == (code *******)0x1) goto LAB_00055b04;\n                  }\n                }\n                else {\n                  local_150 = (code *******)0xc;\n                  pppppppcVar33 = pppppppcVar28;\n                }\n                goto LAB_000557e4;\n              }\n              if (pppppppcVar38[0x13] != (code ******)0x0) {\n                pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                pppppppcVar30 = unaff_s8;\n                local_54 = (code *******)FUN_00049440(&local_b4);\n                goto LAB_00055c6c;\n              }\nLAB_00055c08:\n              if ((((uint)param_1[7] & 0x8000000) == 0) && ((code *******)0x1 < pppppppcVar3)) {\n                cVar23 = *(code *)(pppppppcVar38 + 0x16);\n                goto LAB_00055c20;\n              }\nLAB_00055548:\n              if (pppppppcVar3 == (code *******)0x0) goto LAB_000557e4;\n              if (pppppppcVar3 < (code *******)0x2) {\n                *param_8 = (code ******)0x0;\n                param_8[1] = (code ******)local_58;\n                goto LAB_000555ac;\n              }\n              pppppppcVar29 = param_8 + 2;\n              do {\n                pppppppcVar29[1] = (code ******)0xffffffff;\n                *pppppppcVar29 = (code ******)0xffffffff;\n                pppppppcVar29 = pppppppcVar29 + 2;\n              } while (pppppppcVar29 != param_8 + (int)pppppppcVar3 * 2);\n              *param_8 = (code ******)0x0;\n              param_8[1] = (code ******)local_58;\n              if (((uint)param_1[7] & 0x8000000) != 0) {\nLAB_000555ac:\n                pppppppcVar33 = param_8;\n                do {\n                  pppppppcVar29 = (code *******)*pppppppcVar33;\n                  if (pppppppcVar29 != (code *******)0xffffffff) {\n                    if (local_68 != '\0') {\n                      pppppppcVar34 = local_94;\n                      if (pppppppcVar29 != local_98) {\n                        pppppppcVar34 = *(code ********)(local_a8 + (int)pppppppcVar29 * 4);\n                      }\n                      *pppppppcVar33 = (code ******)pppppppcVar34;\n                      pppppppcVar29 = local_94;\n                      if (local_98 != (code *******)pppppppcVar33[1]) {\n                        pppppppcVar29 = *(code ********)(local_a8 + (int)pppppppcVar33[1] * 4);\n                      }\n                      pppppppcVar33[1] = (code ******)pppppppcVar29;\n                    }\n                    *pppppppcVar33 = (code ******)((int)local_dc + (int)*pppppppcVar33);\n                    pppppppcVar29 = (code *******)((int)local_dc + (int)pppppppcVar33[1]);\n                    pppppppcVar33[1] = (code ******)pppppppcVar29;\n                  }\n                  pppppppcVar33 = pppppppcVar33 + 2;\n                } while (pppppppcVar33 != param_8 + (int)pppppppcVar3 * 2);\n                if (0 < local_118) {\n                  pppppppcVar33 = param_8 + (int)pppppppcVar3 * 2;\n                  do {\n                    *pppppppcVar33 = (code ******)0xffffffff;\n                    pppppppcVar33[1] = (code ******)0xffffffff;\n                    pppppppcVar33 = pppppppcVar33 + 2;\n                  } while (pppppppcVar33 != param_8 + (int)param_7 * 2);\n                }\n                pppppppcVar30 = local_dc;\n                pppppppcVar33 = param_8;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar38[0x21] != (code ******)0x0) {\n                  pppppppcVar30 = (code *******)((int)pppppppcVar3 + -1);\n                  pppppppcVar34 = (code *******)0x0;\n                  pppppppcVar3 = param_8;\n                  while( true ) {\n                    pppppppcVar29 = (code *******)((int)pppppppcVar34 * 4);\n                    if (pppppppcVar30 == pppppppcVar34) break;\n                    if (*(code ********)((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) !=\n                        pppppppcVar34) {\n                      pppppppcVar3[2] =\n                           param_8[(int)((int)*(code ********)\n                                               ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1)\n                                   * 2];\n                      pppppppcVar3[3] =\n                           param_8[((int)*(code ******)\n                                          ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1) * 2 +\n                                   1];\n                    }\n                    pppppppcVar34 = (code *******)((int)pppppppcVar34 + 1);\n                    pppppppcVar3 = pppppppcVar3 + 2;\n                  }\n                }\n                goto LAB_000557e4;\n              }\n              if ((char)*(code *)(pppppppcVar38 + 0x16) < '\0') {\n                local_168 = (uint)(0 < (int)pppppppcVar38[0x13]);\n              }\n              else {\n                local_168 = 0;\n              }\n              pppppppcVar29 = &local_b4;\n              pppppppcVar30 = pppppppcVar3;\n              pppppppcVar33 = param_8;\n              local_150 = (code *******)FUN_0004f4a0(param_1);\n              if (local_150 == (code *******)0x0) goto LAB_000555ac;\n            }\n          }\n          else if (local_90 < 0x3fffffff) {\n            local_50 = (code *******)(*(code *)PTR_malloc_00079b54)((local_90 + 1) * 4);\n            if (local_50 != (code *******)0x0) goto LAB_00055a40;\n            local_150 = (code *******)0xc;\n            param_6 = pppppppcVar36;\n          }\n          else {\n            local_150 = (code *******)0xc;\n            param_6 = pppppppcVar36;\n          }" if (parenthesized_expression "((pppppppcVar3 < (code *******)0x2) && (((uint)pppppppcVar38[0x16] & 0x40000000) == 0))" ( (binary_expression "(pppppppcVar3 < (code *******)0x2) && (((uint)pppppppcVar38[0x16] & 0x40000000) == 0)" (parenthesized_expression "(pppppppcVar3 < (code *******)0x2)" ( (binary_expression "pppppppcVar3 < (code *******)0x2" identifier < (cast_expression "(code *******)0x2" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) && (parenthesized_expression "(((uint)pppppppcVar38[0x16] & 0x40000000) == 0)" ( (binary_expression "((uint)pppppppcVar38[0x16] & 0x40000000) == 0" (parenthesized_expression "((uint)pppppppcVar38[0x16] & 0x40000000)" ( (binary_expression "(uint)pppppppcVar38[0x16] & 0x40000000" (cast_expression "(uint)pppppppcVar38[0x16]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pppppppcVar38[0x16]" identifier [ number_literal ])) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n            local_50 = (code *******)0x0;\nLAB_00055a40:\n            local_78 = 6;\n            if (((uint)param_9 & 1) != 0) {\n              local_78 = 4;\n            }\n            pppppppcVar24 = (code *******)0x1;\n            pppppppcVar25 = param_4;\n            if ((int)param_5 < (int)param_4) {\n              pppppppcVar24 = (code *******)0xffffffff;\n              pppppppcVar25 = param_5;\n            }\n            pppppppcVar26 = param_5;\n            if ((int)param_5 <= (int)param_4) {\n              pppppppcVar26 = param_4;\n            }\n            ppppppcVar35 = pppppppcVar38[0x17];\n            uVar16 = 8;\n            if (local_148 != (code *******)0x0) {\n              if (ppppppcVar35 == (code ******)0x1) {\n                pppppppcVar28 = (code *******)0x4;\n              }\n              else {\n                pppppppcVar28 = pppppppcVar2;\n                if ((-1 < (int)param_1[3] << 9) && (ppppppcVar32 == (code ******)0x0)) {\n                  pppppppcVar28 = (code *******)0x4;\n                }\n              }\n              pppppppcVar29 = (code *******)0x0;\n              if ((int)param_4 <= (int)param_5) {\n                pppppppcVar29 = (code *******)0x2;\n              }\n              uVar16 = (uint)(ppppppcVar32 != (code ******)0x0) | (uint)pppppppcVar28 |\n                       (uint)pppppppcVar29;\n            }\n            local_dc = param_4;\n            if ((int)param_4 < (int)pppppppcVar25) {\n              local_150 = (code *******)0x1;\n              param_6 = pppppppcVar36;\n            }\n            else if ((int)pppppppcVar26 < (int)param_4) {\n              local_150 = (code *******)0x1;\n              param_4 = (code *******)(uint)((int)param_5 < (int)param_4);\n              param_6 = pppppppcVar36;\n            }\n            else {\n              pppppppcVar36 = (code *******)&local_dc;\n              if ((code *******)(uint)((int)param_5 < (int)param_4) != (code *******)0x0) {\n                pppppppcVar36 = (code *******)0x0;\n              }\n              pcVar4 = (code *)(PTR_DAT_000799a4 + -0x2b7c);\n              piVar5 = (int *)(PTR_s_nt0_000795b8 + (uVar16 - 4) * 4 + 0x6e38);\nLAB_00055b44:\n              if (uVar16 - 4 < 5) {\n                    /* WARNING: Could not emulate address calculation at 0x00054920 */\n                    /* WARNING: Treating indirect jump as call */\n                pppppppcVar29 = (code *******)(*(code *)(&_gp_1 + *piVar5))();\n                return pppppppcVar29;\n              }\n              param_5 = &local_b4;\n              pppppppcVar28 = pppppppcVar33;\n              while( true ) {\n                param_4 = local_dc;\n                pppppppcVar33 = (code *******)((int)local_dc - local_9c);\n                pppppppcVar30 = param_9;\n                pppppppcVar31 = pppppppcVar2;\n                param_6 = local_148;\n                unaff_s4 = param_3;\n                unaff_s5 = pppppppcVar24;\n                unaff_s7 = pppppppcVar26;\n                if (local_94 <= pppppppcVar33) {\n                  pppppppcVar29 = local_dc;\n                  local_150 = (code *******)(*pcVar4)(param_5);\n                  pppppppcVar33 = pppppppcVar28;\n                  if (local_150 != (code *******)0x0) goto LAB_000557e4;\n                  pppppppcVar33 = (code *******)((int)param_4 - local_9c);\n                }\n                if ((int)param_4 < (int)param_3) {\n                  uVar7 = (uint)(byte)*(code *)((int)pppppppcVar33 + (int)local_b0);\n                }\n                else {\n                  uVar7 = 0;\n                }\n                param_4 = (code *******)((int)param_4 + (int)pppppppcVar24);\n                if (*(code *)((int)local_148 + uVar7) != (code)0x0) break;\n                pppppppcVar33 = pppppppcVar28;\n                local_dc = param_4;\n                if ((int)param_4 < (int)pppppppcVar25) {\n                  local_150 = (code *******)0x1;\n                  goto LAB_000557e4;\n                }\n                if ((code *******)(uint)((int)pppppppcVar26 < (int)param_4) != (code *******)0x0) {\n                  local_150 = (code *******)0x1;\n                  param_4 = (code *******)(uint)((int)pppppppcVar26 < (int)param_4);\n                  goto LAB_000557e4;\n                }\n              }\n              while( true ) {\n                pppppppcVar29 = local_dc;\n                pppppppcVar30 = param_9;\n                pppppppcVar6 = (code *******)(*pcVar4)(&local_b4);\n                pppppppcVar14 = local_60;\n                pppppppcVar42 = local_8c;\n                pppppppcVar33 = pppppppcVar28;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar6 != (code *******)0x0) goto LAB_000557e4;\n                if (((ppppppcVar35 != (code ******)0x1) && (local_98 != (code *******)0x0)) &&\n                   (*local_ac == -1)) goto LAB_00055b1c;\n                local_3c = 0;\n                local_48 = 0;\n                local_4c = (code *******)0x0;\n                local_138 = local_8c;\n                local_d8 = (code *******)0x0;\n                unaff_s7 = (code *******)local_60[9];\n                pppppppcVar30 = local_5c;\n                param_4 = pppppppcVar14;\n                if (((uint)unaff_s7[0xd] & 0x1000000) == 0) break;\n                pppppppcVar29 = (code *******)((int)local_8c + -1);\n                pppppppcVar33 = (code *******)FUN_00049110(&local_b4);\n                if (((uint)pppppppcVar33 & 1) == 0) {\n                  if (pppppppcVar33 == (code *******)0x0) break;\n                  if (((uint)pppppppcVar33 & 6) == 6) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xc];\n                    goto LAB_00054d1c;\n                  }\n                  if (((uint)pppppppcVar33 & 2) != 0) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xb];\n                    goto LAB_00054d1c;\n                  }\n                  pppppppcVar28 = pppppppcVar33;\n                  if (((uint)pppppppcVar33 & 4) == 0) break;\n                  pppppppcVar30 = (code *******)unaff_s7[10];\n                  pppppppcVar29 = pppppppcVar14;\n                  unaff_s7 = (code *******)FUN_0004ae34(&local_d8);\n                  pppppppcVar28 = pppppppcVar33;\n                  if (unaff_s7 != (code *******)0x0) break;\n                  if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                }\n                else {\n                  unaff_s7 = (code *******)pppppppcVar14[10];\nLAB_00054d1c:\n                  pppppppcVar28 = (code *******)PTR_s_nt0_000795b8;\n                  if (unaff_s7 != (code *******)0x0) break;\n                }\n                pppppppcVar28 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                local_dc = (code *******)\n                           (*(code *)PTR___assert_fail_000799f8)\n                                     (PTR_s_nt0_000795b8 + 0x71a0,pppppppcVar29,0x435);\n                if (local_dc == pppppppcVar26) {\n                  if ((int)local_dc < (int)param_3) {\n                    uVar7 = (uint)(byte)*(code *)((int)local_dc + (int)param_2);\n                  }\n                  else {\n                    uVar7 = 0;\n                  }\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    uVar7 = (uint)*(byte *)((int)ppppppcVar32 + uVar7);\n                  }\n                  if (*(code *)((int)local_148 + uVar7) == (code)0x0) {\n                    local_150 = (code *******)0x1;\n                    pppppppcVar30 = param_9;\n                    pppppppcVar33 = pppppppcVar28;\n                    goto LAB_000557e4;\n                  }\n                }\n              }\n              pppppppcVar33 = pppppppcVar28;\n              bVar1 = pppppppcVar36 != (code *******)0x0;\n              if ((local_50 == (code *******)0x0) ||\n                 (local_50[(int)pppppppcVar42] = (code ******)unaff_s7,\n                 pppppppcVar14[0x13] == (code ******)0x0)) {\nLAB_00054d50:\n                if ((int)unaff_s7[0xd] << 4 < 0) {\n                  if ((((uint)unaff_s7[0xd] & 0x1000000) == 0) ||\n                     (pppppppcVar29 = unaff_s7, pppppppcVar30 = pppppppcVar42,\n                     iVar18 = FUN_00049440(&local_b4), iVar18 != 0)) {\n                    unaff_s8 = pppppppcVar42;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                  }\n                  else {\n                    pppppppcVar42 = (code *******)0xffffffff;\n                    pppppppcVar28 = (code *******)0x0;\n                  }\n                }\n                else {\n                  pppppppcVar42 = (code *******)0xffffffff;\n                  pppppppcVar28 = (code *******)0x0;\n                }\n                pcVar8 = (code *)(PTR_DAT_000799a4 + -0x7144);\n                pcVar9 = (code *)(PTR_DAT_000799a4 + -0x1980);\n                pcVar10 = (code *)(PTR_DAT_000799a4 + -0x2f9c);\n                unaff_s8 = pppppppcVar42;\n                local_144 = pppppppcVar36;\n                while( true ) {\n                  uVar44 = CONCAT44(local_98,local_84);\n                  unaff_s5 = (code *******)((int)local_8c + 1);\n                  pppppppcVar29 = local_8c;\n                  if ((int)local_7c <= (int)local_8c) break;\n                  if (((int)local_90 <= (int)unaff_s5) && ((int)local_90 < (int)local_84))\n                  goto LAB_00054e94;\n                  if ((int)local_98 <= (int)unaff_s5) {\n                    while ((int)((ulonglong)uVar44 >> 0x20) < (int)uVar44) {\nLAB_00054e94:\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 2);\n                      local_d8 = (code *******)(*pcVar8)(&local_b4);\n                      if (local_d8 == (code *******)0x0) break;\n                      pppppppcVar14 = param_4;\n                      if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                      pppppppcVar33 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                      pppppppcVar30 = (code *******)0x46c;\n                      pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                      uVar44 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0);\n                      pppppppcVar28 = pppppppcVar38;\n                    }\n                  }\n                  pppppppcVar42 = local_60;\n                  if ((int)unaff_s7[0xd] << 5 < 0) {\n                    pppppppcVar31 = pppppppcVar42;\n                    if (0 < (int)unaff_s7[2]) {\n                      pcVar11 = (code *)(PTR_DAT_000799a4 + -0x6fdc);\n                      pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6ef0);\n                      param_6 = (code *******)0x0;\n                      do {\n                        param_5 = (code *******)unaff_s7[3][(int)param_6];\n                        ppppppcVar39 = *pppppppcVar42;\n                        pppppcVar13 = ppppppcVar39[(int)param_5 * 2 + 1];\n                        if (((uint)pppppcVar13 & 0x800) != 0) {\n                          if (((uint)pppppcVar13 & 0xffc000) != 0) {\n                            pppppppcVar29 = local_8c;\n                            uVar19 = (*pcVar12)(&local_b4,local_8c,local_5c);\n                            uVar7 = (uint)((int)ppppppcVar39[(int)param_5 * 2 + 1] << 8) >> 0x16;\n                            if ((uVar7 & 4) == 0) {\n                              uVar27 = uVar19 & 1;\n                              if ((uVar7 & 8) != 0) goto joined_r0x00054f40;\n                            }\n                            else {\n                              uVar27 = uVar7 & 8;\n                              if ((uVar19 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                              if (uVar27 != 0) goto LAB_000550a4;\n                            }\n                            if ((((uVar7 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                               (((uVar7 & 0x80) != 0 &&\n                                (pppppppcVar33 = local_8c, (uVar19 & 8) == 0)))) goto LAB_000550a4;\n                          }\n                          pppppppcVar30 = &local_b4;\n                          pppppppcVar29 = param_5;\n                          pppppppcVar33 = local_8c;\n                          iVar18 = (*pcVar10)(pppppppcVar42);\n                          if (iVar18 != 0) {\n                            pppppppcVar14 = (code *******)((int)local_8c + iVar18);\n                            if (iVar18 <= local_3c) {\n                              iVar18 = local_3c;\n                            }\n                            pppppppcVar29 = pppppppcVar14;\n                            local_3c = iVar18;\n                            local_d4 = (code *******)(*pcVar11)(&local_b4);\n                            pppppppcVar15 = local_d4;\n                            if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                            pppppppcVar30 =\n                                 (code *******)\n                                 (pppppppcVar42[6] + (int)pppppppcVar42[3][(int)param_5] * 3);\n                            unaff_s4 = (code *******)((int)pppppppcVar14 * 4);\n                            param_5 = local_50 + (int)pppppppcVar14;\n                            if (*param_5 == (code ******)0x0) {\n                              local_d0 = (code *******)*pppppppcVar30;\n                              local_cc = (code *******)pppppppcVar30[1];\n                              local_c8 = (code *******)pppppppcVar30[2];\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *param_5 = ppppppcVar39;\n                            }\n                            else {\n                              pppppppcVar29 = (code *******)(*param_5)[10];\n                              local_d4 = (code *******)FUN_000484bc(&local_d0);\n                              pppppppcVar15 = local_d4;\n                              if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar15 = local_50 + (int)pppppppcVar14;\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *pppppppcVar15 = ppppppcVar39;\n                              (*(code *)PTR_free_00079c24)(local_c8);\n                            }\n                            unaff_s4 = local_50 + (int)pppppppcVar14;\n                            if ((*unaff_s4 == (code ******)0x0) &&\n                               (pppppppcVar15 = local_d4, local_d4 != (code *******)0x0))\n                            goto LAB_00055e44;\n                          }\n                        }\nLAB_000550a4:\n                        param_6 = (code *******)((int)param_6 + 1);\n                      } while ((int)param_6 < (int)unaff_s7[2]);\n                    }\n                    local_d8 = (code *******)0x0;\n                  }\n                  uVar7 = (uint)(byte)*(code *)((int)local_8c + (int)local_b0);\n                  local_8c = (code *******)((int)local_8c + 1);\n                  do {\n                    if (unaff_s7[0xb] != (code ******)0x0) {\n                      pppppppcVar30 = (code *******)unaff_s7[0xb][uVar7];\nLAB_000553a0:\n                      pppppppcVar14 = pppppppcVar30;\n                      if (local_50 != (code *******)0x0) goto LAB_000553ac;\n                      goto LAB_000553cc;\n                    }\n                    pppppppcVar31 = (code *******)unaff_s7[0xc];\n                    if (pppppppcVar31 != (code *******)0x0) {\n                      pppppppcVar29 = (code *******)((int)local_8c + -1);\n                      uVar19 = FUN_00049110(&local_b4);\n                      if ((uVar19 & 1) == 0) {\n                        pppppppcVar30 = (code *******)pppppppcVar31[uVar7];\n                      }\n                      else {\n                        pppppppcVar31 = pppppppcVar31 + uVar7 + 0x100;\n                        pppppppcVar30 = (code *******)*pppppppcVar31;\n                      }\n                      goto LAB_000553a0;\n                    }\n                    pppppppcVar29 = unaff_s7;\n                    pppppppcVar30 = local_5c;\n                    iVar18 = (*pcVar9)(local_60);\n                  } while (iVar18 != 0);\n                  local_d8 = (code *******)0xc;\n                  pppppppcVar15 = local_d8;\nLAB_00055e44:\n                  local_d8 = pppppppcVar15;\n                  param_4 = (code *******)0x0;\n                  if (local_50 == (code *******)0x0) {\n                    pppppppcVar14 = param_4;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    break;\n                  }\n                  pppppppcVar30 = (code *******)0x0;\nLAB_000553ac:\n                  pppppppcVar29 = &local_b4;\n                  pppppppcVar14 = (code *******)FUN_00053684(&local_d8);\nLAB_000553cc:\n                  param_4 = pppppppcVar14;\n                  if (pppppppcVar14 == (code *******)0x0) {\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    if ((local_50 == (code *******)0x0) ||\n                       ((pppppppcVar28 != (code *******)0x0 && (pppppppcVar34 == (code *******)0x0))\n                       )) break;\n                    param_6 = &local_b4;\n                    param_5 = (code *******)&local_d8;\n                    pppppppcVar31 = (code *******)(PTR_DAT_000799a4 + 0x3684);\n                    do {\n                      pppppppcVar15 = local_50 + (int)local_8c;\n                      pppppppcVar42 = local_8c;\n                      do {\n                        pppppppcVar42 = (code *******)((int)pppppppcVar42 + 1);\n                        pppppppcVar29 = local_4c;\n                        param_4 = pppppppcVar14;\n                        if ((int)local_4c < (int)pppppppcVar42) goto LAB_00055da8;\n                        local_8c = (code *******)((int)local_8c + 1);\n                        pppppppcVar15 = pppppppcVar15 + 1;\n                      } while (*pppppppcVar15 == (code ******)0x0);\n                      pppppppcVar30 = (code *******)0x0;\n                      pppppppcVar29 = param_6;\n                      param_4 = (code *******)(*(code *)pppppppcVar31)(param_5);\n                      if (local_d8 != (code *******)0x0) {\n                        if (param_4 == (code *******)0x0) goto LAB_00055da8;\n                        break;\n                      }\n                      pppppppcVar29 = local_4c;\n                    } while (param_4 == (code *******)0x0);\n                  }\n                  pppppppcVar15 = (code *******)((uint)unaff_s7 ^ (uint)param_4);\n                  pppppppcVar42 = unaff_s7;\n                  pppppppcVar14 = local_138;\n                  if ((bVar1) &&\n                     (pppppppcVar42 = pppppppcVar15, pppppppcVar14 = unaff_s5,\n                     pppppppcVar15 != (code *******)0x0)) {\n                    bVar1 = false;\n                    pppppppcVar14 = local_138;\n                  }\n                  local_138 = pppppppcVar14;\n                  unaff_s7 = param_4;\n                  if ((((uint)param_4[0xd] & 0x8000000) != 0) &&\n                     ((((uint)param_4[0xd] & 0x1000000) == 0 ||\n                      (pppppppcVar29 = param_4, pppppppcVar30 = local_8c,\n                      iVar18 = FUN_00049440(&local_b4), iVar18 != 0)))) {\n                    unaff_s7 = pppppppcVar42;\n                    unaff_s8 = local_8c;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                    local_144 = (code *******)0x0;\n                    unaff_s7 = param_4;\n                  }\n                }\nLAB_00055da8:\n                if (local_144 != (code *******)0x0) {\n                  *local_144 = (code ******)((int)local_138 + (int)*local_144);\n                }\n              }\n              else {\n                param_4 = unaff_s7 + 1;\n                pppppppcVar30 = (code *******)0x0;\n                pppppppcVar29 = param_4;\n                local_d8 = (code *******)FUN_00047a44(&local_b4);\n                unaff_s8 = local_d8;\n                if (local_d8 == (code *******)0x0) {\n                  if (((uint)unaff_s7[0xd] & 0x2000000) == 0) {\n                    pppppppcVar29 = param_4;\n                    bVar1 = false;\n                  }\n                  else {\n                    pppppppcVar29 = param_4;\n                    local_d8 = (code *******)FUN_00052d84(&local_b4);\n                    unaff_s8 = local_d8;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055dbc;\n                    bVar1 = false;\n                  }\n                  goto LAB_00054d50;\n                }\n              }\nLAB_00055dbc:\n              if (unaff_s8 == (code *******)0xffffffff) {\nLAB_00055b04:\n                FUN_0004b7e8(&local_b4);\nLAB_00055b1c:\n                local_dc = (code *******)((int)pppppppcVar24 + (int)local_dc);\n                if ((int)pppppppcVar25 <= (int)local_dc) goto code_r0x00055b38;\n                local_150 = (code *******)0x1;\n                goto LAB_000557e4;\n              }\n              if (unaff_s8 == (code *******)&SUB_fffffffe) {\n                local_150 = (code *******)0xc;\n                goto LAB_000557e4;\n              }\n              local_58 = unaff_s8;\n              if (((uint)param_1[7] & 0x8000000) == 0) {\n                if (pppppppcVar3 < (code *******)0x2) {\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055c08;\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                else {\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                if (pppppppcVar3 < (code *******)0x2) {\nLAB_00055c6c:\n                  pppppppcVar28 = pppppppcVar33;\n                  unaff_s4 = local_60;\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055548;\n                }\n                else {\n                  cVar23 = *(code *)(pppppppcVar38 + 0x16);\nLAB_00055c20:\n                  pppppppcVar28 = pppppppcVar33;\n                  if (-1 < (char)cVar23) goto LAB_00055c6c;\n                }\n                pppppppcVar31 = local_54;\n                pppppppcVar42 = local_60;\n                unaff_s4 = pppppppcVar42;\n                if (unaff_s8 < (code *******)0x3fffffff) {\n                  param_4 = (code *******)((int)((int)unaff_s8 + 1) * 4);\n                  unaff_s5 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                  if (unaff_s5 == (code *******)0x0) {\nLAB_00055b9c:\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    local_150 = (code *******)0xc;\n                    pppppppcVar33 = pppppppcVar28;\n                  }\n                  else {\n                    pppppppcVar29 = (code *******)&local_d0;\n                    if (pppppppcVar42[0x13] == (code ******)0x0) {\n                      local_cc = (code *******)0x0;\n                      local_c8 = pppppppcVar31;\n                      local_c0 = 0;\n                      local_bc = 0;\n                      local_b8 = 0;\n                      local_d0 = unaff_s5;\n                      local_c4 = unaff_s8;\n                      param_5 = (code *******)FUN_0005421c(&local_b4);\n                      (*(code *)PTR_free_00079c24)(local_b8);\n                      if (param_5 == (code *******)0x0) {\n                        param_4 = (code *******)*unaff_s5;\n                        if (param_4 == (code *******)0x0) {\nLAB_00055b70:\n                          (*(code *)PTR_free_00079c24)(unaff_s5);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          pppppppcVar33 = pppppppcVar28;\n                          goto LAB_00055b04;\n                        }\nLAB_00055528:\n                        (*(code *)PTR_free_00079c24)(local_50);\n                        pppppppcVar33 = pppppppcVar28;\n                        unaff_s4 = pppppppcVar42;\n                        local_58 = unaff_s8;\n                        local_54 = pppppppcVar31;\n                        local_50 = unaff_s5;\n                        goto LAB_00055548;\n                      }\nLAB_00055acc:\n                      param_4 = (code *******)0x0;\n                      pppppppcVar33 = pppppppcVar28;\n                      unaff_s4 = pppppppcVar42;\n                    }\n                    else {\n                      param_4 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                      if (param_4 == (code *******)0x0) goto LAB_00055b9c;\n                      unaff_s7 = (code *******)&local_d0;\n                      pcVar8 = (code *)(PTR_DAT_000799a4 + 0x421c);\n                      pcVar9 = (code *)(PTR_DAT_000799a4 + -0x6bc0);\n                      pppppppcVar33 = pppppppcVar28;\n                      while( true ) {\n                        pppppppcVar28 = (code *******)((int)unaff_s8 + 1);\n                        param_6 = (code *******)((int)pppppppcVar28 * 4);\n                        pppppppcVar30 = param_6;\n                        (*(code *)PTR_memset_00079b00)(param_4,0);\n                        local_c0 = 0;\n                        local_bc = 0;\n                        local_b8 = 0;\n                        pppppppcVar29 = unaff_s7;\n                        local_d0 = unaff_s5;\n                        local_cc = param_4;\n                        local_c8 = pppppppcVar31;\n                        local_c4 = unaff_s8;\n                        param_5 = (code *******)(*pcVar8)(&local_b4);\n                        (*(code *)PTR_free_00079c24)(local_b8);\n                        unaff_s4 = pppppppcVar28;\n                        if (param_5 != (code *******)0x0) break;\n                        if ((*unaff_s5 != (code ******)0x0) ||\n                           (param_6 = param_6 + -1, *param_4 != (code ******)0x0)) {\n                          pppppppcVar29 = unaff_s5;\n                          pppppppcVar30 = param_4;\n                          param_5 = (code *******)FUN_000520d0(pppppppcVar42);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          if (param_5 != (code *******)0x0) goto LAB_00055acc;\n                          goto LAB_00055528;\n                        }\n                        param_6 = (code *******)((int)local_50 + (int)param_6);\n                        do {\n                          while( true ) {\n                            unaff_s8 = (code *******)((int)unaff_s8 + -1);\n                            if ((int)unaff_s8 < 0) goto LAB_00055b70;\n                            pppppppcVar29 = (code *******)param_6[-1];\n                            if (pppppppcVar29 != (code *******)0x0) break;\n                            param_6 = param_6 + -1;\n                          }\n                          param_6 = param_6 + -1;\n                        } while (((uint)pppppppcVar29[0xd] & 0x8000000) == 0);\n                        pppppppcVar31 = (code *******)(*pcVar9)(&local_b4,pppppppcVar29,unaff_s8);\n                        pppppppcVar33 = pppppppcVar28;\n                      }\n                    }\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    (*(code *)PTR_free_00079c24)(param_4);\n                    local_150 = param_5;\n                    if (param_5 == (code *******)0x1) goto LAB_00055b04;\n                  }\n                }\n                else {\n                  local_150 = (code *******)0xc;\n                  pppppppcVar33 = pppppppcVar28;\n                }\n                goto LAB_000557e4;\n              }\n              if (pppppppcVar38[0x13] != (code ******)0x0) {\n                pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                pppppppcVar30 = unaff_s8;\n                local_54 = (code *******)FUN_00049440(&local_b4);\n                goto LAB_00055c6c;\n              }\nLAB_00055c08:\n              if ((((uint)param_1[7] & 0x8000000) == 0) && ((code *******)0x1 < pppppppcVar3)) {\n                cVar23 = *(code *)(pppppppcVar38 + 0x16);\n                goto LAB_00055c20;\n              }\nLAB_00055548:\n              if (pppppppcVar3 == (code *******)0x0) goto LAB_000557e4;\n              if (pppppppcVar3 < (code *******)0x2) {\n                *param_8 = (code ******)0x0;\n                param_8[1] = (code ******)local_58;\n                goto LAB_000555ac;\n              }\n              pppppppcVar29 = param_8 + 2;\n              do {\n                pppppppcVar29[1] = (code ******)0xffffffff;\n                *pppppppcVar29 = (code ******)0xffffffff;\n                pppppppcVar29 = pppppppcVar29 + 2;\n              } while (pppppppcVar29 != param_8 + (int)pppppppcVar3 * 2);\n              *param_8 = (code ******)0x0;\n              param_8[1] = (code ******)local_58;\n              if (((uint)param_1[7] & 0x8000000) != 0) {\nLAB_000555ac:\n                pppppppcVar33 = param_8;\n                do {\n                  pppppppcVar29 = (code *******)*pppppppcVar33;\n                  if (pppppppcVar29 != (code *******)0xffffffff) {\n                    if (local_68 != '\0') {\n                      pppppppcVar34 = local_94;\n                      if (pppppppcVar29 != local_98) {\n                        pppppppcVar34 = *(code ********)(local_a8 + (int)pppppppcVar29 * 4);\n                      }\n                      *pppppppcVar33 = (code ******)pppppppcVar34;\n                      pppppppcVar29 = local_94;\n                      if (local_98 != (code *******)pppppppcVar33[1]) {\n                        pppppppcVar29 = *(code ********)(local_a8 + (int)pppppppcVar33[1] * 4);\n                      }\n                      pppppppcVar33[1] = (code ******)pppppppcVar29;\n                    }\n                    *pppppppcVar33 = (code ******)((int)local_dc + (int)*pppppppcVar33);\n                    pppppppcVar29 = (code *******)((int)local_dc + (int)pppppppcVar33[1]);\n                    pppppppcVar33[1] = (code ******)pppppppcVar29;\n                  }\n                  pppppppcVar33 = pppppppcVar33 + 2;\n                } while (pppppppcVar33 != param_8 + (int)pppppppcVar3 * 2);\n                if (0 < local_118) {\n                  pppppppcVar33 = param_8 + (int)pppppppcVar3 * 2;\n                  do {\n                    *pppppppcVar33 = (code ******)0xffffffff;\n                    pppppppcVar33[1] = (code ******)0xffffffff;\n                    pppppppcVar33 = pppppppcVar33 + 2;\n                  } while (pppppppcVar33 != param_8 + (int)param_7 * 2);\n                }\n                pppppppcVar30 = local_dc;\n                pppppppcVar33 = param_8;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar38[0x21] != (code ******)0x0) {\n                  pppppppcVar30 = (code *******)((int)pppppppcVar3 + -1);\n                  pppppppcVar34 = (code *******)0x0;\n                  pppppppcVar3 = param_8;\n                  while( true ) {\n                    pppppppcVar29 = (code *******)((int)pppppppcVar34 * 4);\n                    if (pppppppcVar30 == pppppppcVar34) break;\n                    if (*(code ********)((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) !=\n                        pppppppcVar34) {\n                      pppppppcVar3[2] =\n                           param_8[(int)((int)*(code ********)\n                                               ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1)\n                                   * 2];\n                      pppppppcVar3[3] =\n                           param_8[((int)*(code ******)\n                                          ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1) * 2 +\n                                   1];\n                    }\n                    pppppppcVar34 = (code *******)((int)pppppppcVar34 + 1);\n                    pppppppcVar3 = pppppppcVar3 + 2;\n                  }\n                }\n                goto LAB_000557e4;\n              }\n              if ((char)*(code *)(pppppppcVar38 + 0x16) < '\0') {\n                local_168 = (uint)(0 < (int)pppppppcVar38[0x13]);\n              }\n              else {\n                local_168 = 0;\n              }\n              pppppppcVar29 = &local_b4;\n              pppppppcVar30 = pppppppcVar3;\n              pppppppcVar33 = param_8;\n              local_150 = (code *******)FUN_0004f4a0(param_1);\n              if (local_150 == (code *******)0x0) goto LAB_000555ac;\n            }\n          }" { (expression_statement "local_50 = (code *******)0x0;" (assignment_expression "local_50 = (code *******)0x0" identifier = (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (labeled_statement "LAB_00055a40:\n            local_78 = 6;" statement_identifier : (expression_statement "local_78 = 6;" (assignment_expression "local_78 = 6" identifier = number_literal) ;)) (if_statement "if (((uint)param_9 & 1) != 0) {\n              local_78 = 4;\n            }" if (parenthesized_expression "(((uint)param_9 & 1) != 0)" ( (binary_expression "((uint)param_9 & 1) != 0" (parenthesized_expression "((uint)param_9 & 1)" ( (binary_expression "(uint)param_9 & 1" (cast_expression "(uint)param_9" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n              local_78 = 4;\n            }" { (expression_statement "local_78 = 4;" (assignment_expression "local_78 = 4" identifier = number_literal) ;) })) (expression_statement "pppppppcVar24 = (code *******)0x1;" (assignment_expression "pppppppcVar24 = (code *******)0x1" identifier = (cast_expression "(code *******)0x1" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "pppppppcVar25 = param_4;" (assignment_expression "pppppppcVar25 = param_4" identifier = identifier) ;) (if_statement "if ((int)param_5 < (int)param_4) {\n              pppppppcVar24 = (code *******)0xffffffff;\n              pppppppcVar25 = param_5;\n            }" if (parenthesized_expression "((int)param_5 < (int)param_4)" ( (binary_expression "(int)param_5 < (int)param_4" (cast_expression "(int)param_5" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)param_4" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n              pppppppcVar24 = (code *******)0xffffffff;\n              pppppppcVar25 = param_5;\n            }" { (expression_statement "pppppppcVar24 = (code *******)0xffffffff;" (assignment_expression "pppppppcVar24 = (code *******)0xffffffff" identifier = (cast_expression "(code *******)0xffffffff" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "pppppppcVar25 = param_5;" (assignment_expression "pppppppcVar25 = param_5" identifier = identifier) ;) })) (expression_statement "pppppppcVar26 = param_5;" (assignment_expression "pppppppcVar26 = param_5" identifier = identifier) ;) (if_statement "if ((int)param_5 <= (int)param_4) {\n              pppppppcVar26 = param_4;\n            }" if (parenthesized_expression "((int)param_5 <= (int)param_4)" ( (binary_expression "(int)param_5 <= (int)param_4" (cast_expression "(int)param_5" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)param_4" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n              pppppppcVar26 = param_4;\n            }" { (expression_statement "pppppppcVar26 = param_4;" (assignment_expression "pppppppcVar26 = param_4" identifier = identifier) ;) })) (expression_statement "ppppppcVar35 = pppppppcVar38[0x17];" (assignment_expression "ppppppcVar35 = pppppppcVar38[0x17]" identifier = (subscript_expression "pppppppcVar38[0x17]" identifier [ number_literal ])) ;) (expression_statement "uVar16 = 8;" (assignment_expression "uVar16 = 8" identifier = number_literal) ;) (if_statement "if (local_148 != (code *******)0x0) {\n              if (ppppppcVar35 == (code ******)0x1) {\n                pppppppcVar28 = (code *******)0x4;\n              }\n              else {\n                pppppppcVar28 = pppppppcVar2;\n                if ((-1 < (int)param_1[3] << 9) && (ppppppcVar32 == (code ******)0x0)) {\n                  pppppppcVar28 = (code *******)0x4;\n                }\n              }\n              pppppppcVar29 = (code *******)0x0;\n              if ((int)param_4 <= (int)param_5) {\n                pppppppcVar29 = (code *******)0x2;\n              }\n              uVar16 = (uint)(ppppppcVar32 != (code ******)0x0) | (uint)pppppppcVar28 |\n                       (uint)pppppppcVar29;\n            }" if (parenthesized_expression "(local_148 != (code *******)0x0)" ( (binary_expression "local_148 != (code *******)0x0" identifier != (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\n              if (ppppppcVar35 == (code ******)0x1) {\n                pppppppcVar28 = (code *******)0x4;\n              }\n              else {\n                pppppppcVar28 = pppppppcVar2;\n                if ((-1 < (int)param_1[3] << 9) && (ppppppcVar32 == (code ******)0x0)) {\n                  pppppppcVar28 = (code *******)0x4;\n                }\n              }\n              pppppppcVar29 = (code *******)0x0;\n              if ((int)param_4 <= (int)param_5) {\n                pppppppcVar29 = (code *******)0x2;\n              }\n              uVar16 = (uint)(ppppppcVar32 != (code ******)0x0) | (uint)pppppppcVar28 |\n                       (uint)pppppppcVar29;\n            }" { (if_statement "if (ppppppcVar35 == (code ******)0x1) {\n                pppppppcVar28 = (code *******)0x4;\n              }\n              else {\n                pppppppcVar28 = pppppppcVar2;\n                if ((-1 < (int)param_1[3] << 9) && (ppppppcVar32 == (code ******)0x0)) {\n                  pppppppcVar28 = (code *******)0x4;\n                }\n              }" if (parenthesized_expression "(ppppppcVar35 == (code ******)0x1)" ( (binary_expression "ppppppcVar35 == (code ******)0x1" identifier == (cast_expression "(code ******)0x1" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (compound_statement "{\n                pppppppcVar28 = (code *******)0x4;\n              }" { (expression_statement "pppppppcVar28 = (code *******)0x4;" (assignment_expression "pppppppcVar28 = (code *******)0x4" identifier = (cast_expression "(code *******)0x4" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) }) (else_clause "else {\n                pppppppcVar28 = pppppppcVar2;\n                if ((-1 < (int)param_1[3] << 9) && (ppppppcVar32 == (code ******)0x0)) {\n                  pppppppcVar28 = (code *******)0x4;\n                }\n              }" else (compound_statement "{\n                pppppppcVar28 = pppppppcVar2;\n                if ((-1 < (int)param_1[3] << 9) && (ppppppcVar32 == (code ******)0x0)) {\n                  pppppppcVar28 = (code *******)0x4;\n                }\n              }" { (expression_statement "pppppppcVar28 = pppppppcVar2;" (assignment_expression "pppppppcVar28 = pppppppcVar2" identifier = identifier) ;) (if_statement "if ((-1 < (int)param_1[3] << 9) && (ppppppcVar32 == (code ******)0x0)) {\n                  pppppppcVar28 = (code *******)0x4;\n                }" if (parenthesized_expression "((-1 < (int)param_1[3] << 9) && (ppppppcVar32 == (code ******)0x0))" ( (binary_expression "(-1 < (int)param_1[3] << 9) && (ppppppcVar32 == (code ******)0x0)" (parenthesized_expression "(-1 < (int)param_1[3] << 9)" ( (binary_expression "-1 < (int)param_1[3] << 9" number_literal < (binary_expression "(int)param_1[3] << 9" (cast_expression "(int)param_1[3]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_1[3]" identifier [ number_literal ])) << number_literal)) )) && (parenthesized_expression "(ppppppcVar32 == (code ******)0x0)" ( (binary_expression "ppppppcVar32 == (code ******)0x0" identifier == (cast_expression "(code ******)0x0" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ))) )) (compound_statement "{\n                  pppppppcVar28 = (code *******)0x4;\n                }" { (expression_statement "pppppppcVar28 = (code *******)0x4;" (assignment_expression "pppppppcVar28 = (code *******)0x4" identifier = (cast_expression "(code *******)0x4" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) })) }))) (expression_statement "pppppppcVar29 = (code *******)0x0;" (assignment_expression "pppppppcVar29 = (code *******)0x0" identifier = (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (if_statement "if ((int)param_4 <= (int)param_5) {\n                pppppppcVar29 = (code *******)0x2;\n              }" if (parenthesized_expression "((int)param_4 <= (int)param_5)" ( (binary_expression "(int)param_4 <= (int)param_5" (cast_expression "(int)param_4" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)param_5" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                pppppppcVar29 = (code *******)0x2;\n              }" { (expression_statement "pppppppcVar29 = (code *******)0x2;" (assignment_expression "pppppppcVar29 = (code *******)0x2" identifier = (cast_expression "(code *******)0x2" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) })) (expression_statement "uVar16 = (uint)(ppppppcVar32 != (code ******)0x0) | (uint)pppppppcVar28 |\n                       (uint)pppppppcVar29;" (assignment_expression "uVar16 = (uint)(ppppppcVar32 != (code ******)0x0) | (uint)pppppppcVar28 |\n                       (uint)pppppppcVar29" identifier = (binary_expression "(uint)(ppppppcVar32 != (code ******)0x0) | (uint)pppppppcVar28 |\n                       (uint)pppppppcVar29" (binary_expression "(uint)(ppppppcVar32 != (code ******)0x0) | (uint)pppppppcVar28" (call_expression "(uint)(ppppppcVar32 != (code ******)0x0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(ppppppcVar32 != (code ******)0x0)" ( (binary_expression "ppppppcVar32 != (code ******)0x0" identifier != (cast_expression "(code ******)0x0" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ))) | (cast_expression "(uint)pppppppcVar28" ( (type_descriptor "uint" type_identifier) ) identifier)) | (cast_expression "(uint)pppppppcVar29" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) })) (expression_statement "local_dc = param_4;" (assignment_expression "local_dc = param_4" identifier = identifier) ;) (if_statement "if ((int)param_4 < (int)pppppppcVar25) {\n              local_150 = (code *******)0x1;\n              param_6 = pppppppcVar36;\n            }\n            else if ((int)pppppppcVar26 < (int)param_4) {\n              local_150 = (code *******)0x1;\n              param_4 = (code *******)(uint)((int)param_5 < (int)param_4);\n              param_6 = pppppppcVar36;\n            }\n            else {\n              pppppppcVar36 = (code *******)&local_dc;\n              if ((code *******)(uint)((int)param_5 < (int)param_4) != (code *******)0x0) {\n                pppppppcVar36 = (code *******)0x0;\n              }\n              pcVar4 = (code *)(PTR_DAT_000799a4 + -0x2b7c);\n              piVar5 = (int *)(PTR_s_nt0_000795b8 + (uVar16 - 4) * 4 + 0x6e38);\nLAB_00055b44:\n              if (uVar16 - 4 < 5) {\n                    /* WARNING: Could not emulate address calculation at 0x00054920 */\n                    /* WARNING: Treating indirect jump as call */\n                pppppppcVar29 = (code *******)(*(code *)(&_gp_1 + *piVar5))();\n                return pppppppcVar29;\n              }\n              param_5 = &local_b4;\n              pppppppcVar28 = pppppppcVar33;\n              while( true ) {\n                param_4 = local_dc;\n                pppppppcVar33 = (code *******)((int)local_dc - local_9c);\n                pppppppcVar30 = param_9;\n                pppppppcVar31 = pppppppcVar2;\n                param_6 = local_148;\n                unaff_s4 = param_3;\n                unaff_s5 = pppppppcVar24;\n                unaff_s7 = pppppppcVar26;\n                if (local_94 <= pppppppcVar33) {\n                  pppppppcVar29 = local_dc;\n                  local_150 = (code *******)(*pcVar4)(param_5);\n                  pppppppcVar33 = pppppppcVar28;\n                  if (local_150 != (code *******)0x0) goto LAB_000557e4;\n                  pppppppcVar33 = (code *******)((int)param_4 - local_9c);\n                }\n                if ((int)param_4 < (int)param_3) {\n                  uVar7 = (uint)(byte)*(code *)((int)pppppppcVar33 + (int)local_b0);\n                }\n                else {\n                  uVar7 = 0;\n                }\n                param_4 = (code *******)((int)param_4 + (int)pppppppcVar24);\n                if (*(code *)((int)local_148 + uVar7) != (code)0x0) break;\n                pppppppcVar33 = pppppppcVar28;\n                local_dc = param_4;\n                if ((int)param_4 < (int)pppppppcVar25) {\n                  local_150 = (code *******)0x1;\n                  goto LAB_000557e4;\n                }\n                if ((code *******)(uint)((int)pppppppcVar26 < (int)param_4) != (code *******)0x0) {\n                  local_150 = (code *******)0x1;\n                  param_4 = (code *******)(uint)((int)pppppppcVar26 < (int)param_4);\n                  goto LAB_000557e4;\n                }\n              }\n              while( true ) {\n                pppppppcVar29 = local_dc;\n                pppppppcVar30 = param_9;\n                pppppppcVar6 = (code *******)(*pcVar4)(&local_b4);\n                pppppppcVar14 = local_60;\n                pppppppcVar42 = local_8c;\n                pppppppcVar33 = pppppppcVar28;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar6 != (code *******)0x0) goto LAB_000557e4;\n                if (((ppppppcVar35 != (code ******)0x1) && (local_98 != (code *******)0x0)) &&\n                   (*local_ac == -1)) goto LAB_00055b1c;\n                local_3c = 0;\n                local_48 = 0;\n                local_4c = (code *******)0x0;\n                local_138 = local_8c;\n                local_d8 = (code *******)0x0;\n                unaff_s7 = (code *******)local_60[9];\n                pppppppcVar30 = local_5c;\n                param_4 = pppppppcVar14;\n                if (((uint)unaff_s7[0xd] & 0x1000000) == 0) break;\n                pppppppcVar29 = (code *******)((int)local_8c + -1);\n                pppppppcVar33 = (code *******)FUN_00049110(&local_b4);\n                if (((uint)pppppppcVar33 & 1) == 0) {\n                  if (pppppppcVar33 == (code *******)0x0) break;\n                  if (((uint)pppppppcVar33 & 6) == 6) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xc];\n                    goto LAB_00054d1c;\n                  }\n                  if (((uint)pppppppcVar33 & 2) != 0) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xb];\n                    goto LAB_00054d1c;\n                  }\n                  pppppppcVar28 = pppppppcVar33;\n                  if (((uint)pppppppcVar33 & 4) == 0) break;\n                  pppppppcVar30 = (code *******)unaff_s7[10];\n                  pppppppcVar29 = pppppppcVar14;\n                  unaff_s7 = (code *******)FUN_0004ae34(&local_d8);\n                  pppppppcVar28 = pppppppcVar33;\n                  if (unaff_s7 != (code *******)0x0) break;\n                  if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                }\n                else {\n                  unaff_s7 = (code *******)pppppppcVar14[10];\nLAB_00054d1c:\n                  pppppppcVar28 = (code *******)PTR_s_nt0_000795b8;\n                  if (unaff_s7 != (code *******)0x0) break;\n                }\n                pppppppcVar28 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                local_dc = (code *******)\n                           (*(code *)PTR___assert_fail_000799f8)\n                                     (PTR_s_nt0_000795b8 + 0x71a0,pppppppcVar29,0x435);\n                if (local_dc == pppppppcVar26) {\n                  if ((int)local_dc < (int)param_3) {\n                    uVar7 = (uint)(byte)*(code *)((int)local_dc + (int)param_2);\n                  }\n                  else {\n                    uVar7 = 0;\n                  }\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    uVar7 = (uint)*(byte *)((int)ppppppcVar32 + uVar7);\n                  }\n                  if (*(code *)((int)local_148 + uVar7) == (code)0x0) {\n                    local_150 = (code *******)0x1;\n                    pppppppcVar30 = param_9;\n                    pppppppcVar33 = pppppppcVar28;\n                    goto LAB_000557e4;\n                  }\n                }\n              }\n              pppppppcVar33 = pppppppcVar28;\n              bVar1 = pppppppcVar36 != (code *******)0x0;\n              if ((local_50 == (code *******)0x0) ||\n                 (local_50[(int)pppppppcVar42] = (code ******)unaff_s7,\n                 pppppppcVar14[0x13] == (code ******)0x0)) {\nLAB_00054d50:\n                if ((int)unaff_s7[0xd] << 4 < 0) {\n                  if ((((uint)unaff_s7[0xd] & 0x1000000) == 0) ||\n                     (pppppppcVar29 = unaff_s7, pppppppcVar30 = pppppppcVar42,\n                     iVar18 = FUN_00049440(&local_b4), iVar18 != 0)) {\n                    unaff_s8 = pppppppcVar42;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                  }\n                  else {\n                    pppppppcVar42 = (code *******)0xffffffff;\n                    pppppppcVar28 = (code *******)0x0;\n                  }\n                }\n                else {\n                  pppppppcVar42 = (code *******)0xffffffff;\n                  pppppppcVar28 = (code *******)0x0;\n                }\n                pcVar8 = (code *)(PTR_DAT_000799a4 + -0x7144);\n                pcVar9 = (code *)(PTR_DAT_000799a4 + -0x1980);\n                pcVar10 = (code *)(PTR_DAT_000799a4 + -0x2f9c);\n                unaff_s8 = pppppppcVar42;\n                local_144 = pppppppcVar36;\n                while( true ) {\n                  uVar44 = CONCAT44(local_98,local_84);\n                  unaff_s5 = (code *******)((int)local_8c + 1);\n                  pppppppcVar29 = local_8c;\n                  if ((int)local_7c <= (int)local_8c) break;\n                  if (((int)local_90 <= (int)unaff_s5) && ((int)local_90 < (int)local_84))\n                  goto LAB_00054e94;\n                  if ((int)local_98 <= (int)unaff_s5) {\n                    while ((int)((ulonglong)uVar44 >> 0x20) < (int)uVar44) {\nLAB_00054e94:\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 2);\n                      local_d8 = (code *******)(*pcVar8)(&local_b4);\n                      if (local_d8 == (code *******)0x0) break;\n                      pppppppcVar14 = param_4;\n                      if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                      pppppppcVar33 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                      pppppppcVar30 = (code *******)0x46c;\n                      pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                      uVar44 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0);\n                      pppppppcVar28 = pppppppcVar38;\n                    }\n                  }\n                  pppppppcVar42 = local_60;\n                  if ((int)unaff_s7[0xd] << 5 < 0) {\n                    pppppppcVar31 = pppppppcVar42;\n                    if (0 < (int)unaff_s7[2]) {\n                      pcVar11 = (code *)(PTR_DAT_000799a4 + -0x6fdc);\n                      pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6ef0);\n                      param_6 = (code *******)0x0;\n                      do {\n                        param_5 = (code *******)unaff_s7[3][(int)param_6];\n                        ppppppcVar39 = *pppppppcVar42;\n                        pppppcVar13 = ppppppcVar39[(int)param_5 * 2 + 1];\n                        if (((uint)pppppcVar13 & 0x800) != 0) {\n                          if (((uint)pppppcVar13 & 0xffc000) != 0) {\n                            pppppppcVar29 = local_8c;\n                            uVar19 = (*pcVar12)(&local_b4,local_8c,local_5c);\n                            uVar7 = (uint)((int)ppppppcVar39[(int)param_5 * 2 + 1] << 8) >> 0x16;\n                            if ((uVar7 & 4) == 0) {\n                              uVar27 = uVar19 & 1;\n                              if ((uVar7 & 8) != 0) goto joined_r0x00054f40;\n                            }\n                            else {\n                              uVar27 = uVar7 & 8;\n                              if ((uVar19 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                              if (uVar27 != 0) goto LAB_000550a4;\n                            }\n                            if ((((uVar7 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                               (((uVar7 & 0x80) != 0 &&\n                                (pppppppcVar33 = local_8c, (uVar19 & 8) == 0)))) goto LAB_000550a4;\n                          }\n                          pppppppcVar30 = &local_b4;\n                          pppppppcVar29 = param_5;\n                          pppppppcVar33 = local_8c;\n                          iVar18 = (*pcVar10)(pppppppcVar42);\n                          if (iVar18 != 0) {\n                            pppppppcVar14 = (code *******)((int)local_8c + iVar18);\n                            if (iVar18 <= local_3c) {\n                              iVar18 = local_3c;\n                            }\n                            pppppppcVar29 = pppppppcVar14;\n                            local_3c = iVar18;\n                            local_d4 = (code *******)(*pcVar11)(&local_b4);\n                            pppppppcVar15 = local_d4;\n                            if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                            pppppppcVar30 =\n                                 (code *******)\n                                 (pppppppcVar42[6] + (int)pppppppcVar42[3][(int)param_5] * 3);\n                            unaff_s4 = (code *******)((int)pppppppcVar14 * 4);\n                            param_5 = local_50 + (int)pppppppcVar14;\n                            if (*param_5 == (code ******)0x0) {\n                              local_d0 = (code *******)*pppppppcVar30;\n                              local_cc = (code *******)pppppppcVar30[1];\n                              local_c8 = (code *******)pppppppcVar30[2];\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *param_5 = ppppppcVar39;\n                            }\n                            else {\n                              pppppppcVar29 = (code *******)(*param_5)[10];\n                              local_d4 = (code *******)FUN_000484bc(&local_d0);\n                              pppppppcVar15 = local_d4;\n                              if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar15 = local_50 + (int)pppppppcVar14;\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *pppppppcVar15 = ppppppcVar39;\n                              (*(code *)PTR_free_00079c24)(local_c8);\n                            }\n                            unaff_s4 = local_50 + (int)pppppppcVar14;\n                            if ((*unaff_s4 == (code ******)0x0) &&\n                               (pppppppcVar15 = local_d4, local_d4 != (code *******)0x0))\n                            goto LAB_00055e44;\n                          }\n                        }\nLAB_000550a4:\n                        param_6 = (code *******)((int)param_6 + 1);\n                      } while ((int)param_6 < (int)unaff_s7[2]);\n                    }\n                    local_d8 = (code *******)0x0;\n                  }\n                  uVar7 = (uint)(byte)*(code *)((int)local_8c + (int)local_b0);\n                  local_8c = (code *******)((int)local_8c + 1);\n                  do {\n                    if (unaff_s7[0xb] != (code ******)0x0) {\n                      pppppppcVar30 = (code *******)unaff_s7[0xb][uVar7];\nLAB_000553a0:\n                      pppppppcVar14 = pppppppcVar30;\n                      if (local_50 != (code *******)0x0) goto LAB_000553ac;\n                      goto LAB_000553cc;\n                    }\n                    pppppppcVar31 = (code *******)unaff_s7[0xc];\n                    if (pppppppcVar31 != (code *******)0x0) {\n                      pppppppcVar29 = (code *******)((int)local_8c + -1);\n                      uVar19 = FUN_00049110(&local_b4);\n                      if ((uVar19 & 1) == 0) {\n                        pppppppcVar30 = (code *******)pppppppcVar31[uVar7];\n                      }\n                      else {\n                        pppppppcVar31 = pppppppcVar31 + uVar7 + 0x100;\n                        pppppppcVar30 = (code *******)*pppppppcVar31;\n                      }\n                      goto LAB_000553a0;\n                    }\n                    pppppppcVar29 = unaff_s7;\n                    pppppppcVar30 = local_5c;\n                    iVar18 = (*pcVar9)(local_60);\n                  } while (iVar18 != 0);\n                  local_d8 = (code *******)0xc;\n                  pppppppcVar15 = local_d8;\nLAB_00055e44:\n                  local_d8 = pppppppcVar15;\n                  param_4 = (code *******)0x0;\n                  if (local_50 == (code *******)0x0) {\n                    pppppppcVar14 = param_4;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    break;\n                  }\n                  pppppppcVar30 = (code *******)0x0;\nLAB_000553ac:\n                  pppppppcVar29 = &local_b4;\n                  pppppppcVar14 = (code *******)FUN_00053684(&local_d8);\nLAB_000553cc:\n                  param_4 = pppppppcVar14;\n                  if (pppppppcVar14 == (code *******)0x0) {\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    if ((local_50 == (code *******)0x0) ||\n                       ((pppppppcVar28 != (code *******)0x0 && (pppppppcVar34 == (code *******)0x0))\n                       )) break;\n                    param_6 = &local_b4;\n                    param_5 = (code *******)&local_d8;\n                    pppppppcVar31 = (code *******)(PTR_DAT_000799a4 + 0x3684);\n                    do {\n                      pppppppcVar15 = local_50 + (int)local_8c;\n                      pppppppcVar42 = local_8c;\n                      do {\n                        pppppppcVar42 = (code *******)((int)pppppppcVar42 + 1);\n                        pppppppcVar29 = local_4c;\n                        param_4 = pppppppcVar14;\n                        if ((int)local_4c < (int)pppppppcVar42) goto LAB_00055da8;\n                        local_8c = (code *******)((int)local_8c + 1);\n                        pppppppcVar15 = pppppppcVar15 + 1;\n                      } while (*pppppppcVar15 == (code ******)0x0);\n                      pppppppcVar30 = (code *******)0x0;\n                      pppppppcVar29 = param_6;\n                      param_4 = (code *******)(*(code *)pppppppcVar31)(param_5);\n                      if (local_d8 != (code *******)0x0) {\n                        if (param_4 == (code *******)0x0) goto LAB_00055da8;\n                        break;\n                      }\n                      pppppppcVar29 = local_4c;\n                    } while (param_4 == (code *******)0x0);\n                  }\n                  pppppppcVar15 = (code *******)((uint)unaff_s7 ^ (uint)param_4);\n                  pppppppcVar42 = unaff_s7;\n                  pppppppcVar14 = local_138;\n                  if ((bVar1) &&\n                     (pppppppcVar42 = pppppppcVar15, pppppppcVar14 = unaff_s5,\n                     pppppppcVar15 != (code *******)0x0)) {\n                    bVar1 = false;\n                    pppppppcVar14 = local_138;\n                  }\n                  local_138 = pppppppcVar14;\n                  unaff_s7 = param_4;\n                  if ((((uint)param_4[0xd] & 0x8000000) != 0) &&\n                     ((((uint)param_4[0xd] & 0x1000000) == 0 ||\n                      (pppppppcVar29 = param_4, pppppppcVar30 = local_8c,\n                      iVar18 = FUN_00049440(&local_b4), iVar18 != 0)))) {\n                    unaff_s7 = pppppppcVar42;\n                    unaff_s8 = local_8c;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                    local_144 = (code *******)0x0;\n                    unaff_s7 = param_4;\n                  }\n                }\nLAB_00055da8:\n                if (local_144 != (code *******)0x0) {\n                  *local_144 = (code ******)((int)local_138 + (int)*local_144);\n                }\n              }\n              else {\n                param_4 = unaff_s7 + 1;\n                pppppppcVar30 = (code *******)0x0;\n                pppppppcVar29 = param_4;\n                local_d8 = (code *******)FUN_00047a44(&local_b4);\n                unaff_s8 = local_d8;\n                if (local_d8 == (code *******)0x0) {\n                  if (((uint)unaff_s7[0xd] & 0x2000000) == 0) {\n                    pppppppcVar29 = param_4;\n                    bVar1 = false;\n                  }\n                  else {\n                    pppppppcVar29 = param_4;\n                    local_d8 = (code *******)FUN_00052d84(&local_b4);\n                    unaff_s8 = local_d8;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055dbc;\n                    bVar1 = false;\n                  }\n                  goto LAB_00054d50;\n                }\n              }\nLAB_00055dbc:\n              if (unaff_s8 == (code *******)0xffffffff) {\nLAB_00055b04:\n                FUN_0004b7e8(&local_b4);\nLAB_00055b1c:\n                local_dc = (code *******)((int)pppppppcVar24 + (int)local_dc);\n                if ((int)pppppppcVar25 <= (int)local_dc) goto code_r0x00055b38;\n                local_150 = (code *******)0x1;\n                goto LAB_000557e4;\n              }\n              if (unaff_s8 == (code *******)&SUB_fffffffe) {\n                local_150 = (code *******)0xc;\n                goto LAB_000557e4;\n              }\n              local_58 = unaff_s8;\n              if (((uint)param_1[7] & 0x8000000) == 0) {\n                if (pppppppcVar3 < (code *******)0x2) {\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055c08;\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                else {\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                if (pppppppcVar3 < (code *******)0x2) {\nLAB_00055c6c:\n                  pppppppcVar28 = pppppppcVar33;\n                  unaff_s4 = local_60;\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055548;\n                }\n                else {\n                  cVar23 = *(code *)(pppppppcVar38 + 0x16);\nLAB_00055c20:\n                  pppppppcVar28 = pppppppcVar33;\n                  if (-1 < (char)cVar23) goto LAB_00055c6c;\n                }\n                pppppppcVar31 = local_54;\n                pppppppcVar42 = local_60;\n                unaff_s4 = pppppppcVar42;\n                if (unaff_s8 < (code *******)0x3fffffff) {\n                  param_4 = (code *******)((int)((int)unaff_s8 + 1) * 4);\n                  unaff_s5 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                  if (unaff_s5 == (code *******)0x0) {\nLAB_00055b9c:\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    local_150 = (code *******)0xc;\n                    pppppppcVar33 = pppppppcVar28;\n                  }\n                  else {\n                    pppppppcVar29 = (code *******)&local_d0;\n                    if (pppppppcVar42[0x13] == (code ******)0x0) {\n                      local_cc = (code *******)0x0;\n                      local_c8 = pppppppcVar31;\n                      local_c0 = 0;\n                      local_bc = 0;\n                      local_b8 = 0;\n                      local_d0 = unaff_s5;\n                      local_c4 = unaff_s8;\n                      param_5 = (code *******)FUN_0005421c(&local_b4);\n                      (*(code *)PTR_free_00079c24)(local_b8);\n                      if (param_5 == (code *******)0x0) {\n                        param_4 = (code *******)*unaff_s5;\n                        if (param_4 == (code *******)0x0) {\nLAB_00055b70:\n                          (*(code *)PTR_free_00079c24)(unaff_s5);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          pppppppcVar33 = pppppppcVar28;\n                          goto LAB_00055b04;\n                        }\nLAB_00055528:\n                        (*(code *)PTR_free_00079c24)(local_50);\n                        pppppppcVar33 = pppppppcVar28;\n                        unaff_s4 = pppppppcVar42;\n                        local_58 = unaff_s8;\n                        local_54 = pppppppcVar31;\n                        local_50 = unaff_s5;\n                        goto LAB_00055548;\n                      }\nLAB_00055acc:\n                      param_4 = (code *******)0x0;\n                      pppppppcVar33 = pppppppcVar28;\n                      unaff_s4 = pppppppcVar42;\n                    }\n                    else {\n                      param_4 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                      if (param_4 == (code *******)0x0) goto LAB_00055b9c;\n                      unaff_s7 = (code *******)&local_d0;\n                      pcVar8 = (code *)(PTR_DAT_000799a4 + 0x421c);\n                      pcVar9 = (code *)(PTR_DAT_000799a4 + -0x6bc0);\n                      pppppppcVar33 = pppppppcVar28;\n                      while( true ) {\n                        pppppppcVar28 = (code *******)((int)unaff_s8 + 1);\n                        param_6 = (code *******)((int)pppppppcVar28 * 4);\n                        pppppppcVar30 = param_6;\n                        (*(code *)PTR_memset_00079b00)(param_4,0);\n                        local_c0 = 0;\n                        local_bc = 0;\n                        local_b8 = 0;\n                        pppppppcVar29 = unaff_s7;\n                        local_d0 = unaff_s5;\n                        local_cc = param_4;\n                        local_c8 = pppppppcVar31;\n                        local_c4 = unaff_s8;\n                        param_5 = (code *******)(*pcVar8)(&local_b4);\n                        (*(code *)PTR_free_00079c24)(local_b8);\n                        unaff_s4 = pppppppcVar28;\n                        if (param_5 != (code *******)0x0) break;\n                        if ((*unaff_s5 != (code ******)0x0) ||\n                           (param_6 = param_6 + -1, *param_4 != (code ******)0x0)) {\n                          pppppppcVar29 = unaff_s5;\n                          pppppppcVar30 = param_4;\n                          param_5 = (code *******)FUN_000520d0(pppppppcVar42);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          if (param_5 != (code *******)0x0) goto LAB_00055acc;\n                          goto LAB_00055528;\n                        }\n                        param_6 = (code *******)((int)local_50 + (int)param_6);\n                        do {\n                          while( true ) {\n                            unaff_s8 = (code *******)((int)unaff_s8 + -1);\n                            if ((int)unaff_s8 < 0) goto LAB_00055b70;\n                            pppppppcVar29 = (code *******)param_6[-1];\n                            if (pppppppcVar29 != (code *******)0x0) break;\n                            param_6 = param_6 + -1;\n                          }\n                          param_6 = param_6 + -1;\n                        } while (((uint)pppppppcVar29[0xd] & 0x8000000) == 0);\n                        pppppppcVar31 = (code *******)(*pcVar9)(&local_b4,pppppppcVar29,unaff_s8);\n                        pppppppcVar33 = pppppppcVar28;\n                      }\n                    }\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    (*(code *)PTR_free_00079c24)(param_4);\n                    local_150 = param_5;\n                    if (param_5 == (code *******)0x1) goto LAB_00055b04;\n                  }\n                }\n                else {\n                  local_150 = (code *******)0xc;\n                  pppppppcVar33 = pppppppcVar28;\n                }\n                goto LAB_000557e4;\n              }\n              if (pppppppcVar38[0x13] != (code ******)0x0) {\n                pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                pppppppcVar30 = unaff_s8;\n                local_54 = (code *******)FUN_00049440(&local_b4);\n                goto LAB_00055c6c;\n              }\nLAB_00055c08:\n              if ((((uint)param_1[7] & 0x8000000) == 0) && ((code *******)0x1 < pppppppcVar3)) {\n                cVar23 = *(code *)(pppppppcVar38 + 0x16);\n                goto LAB_00055c20;\n              }\nLAB_00055548:\n              if (pppppppcVar3 == (code *******)0x0) goto LAB_000557e4;\n              if (pppppppcVar3 < (code *******)0x2) {\n                *param_8 = (code ******)0x0;\n                param_8[1] = (code ******)local_58;\n                goto LAB_000555ac;\n              }\n              pppppppcVar29 = param_8 + 2;\n              do {\n                pppppppcVar29[1] = (code ******)0xffffffff;\n                *pppppppcVar29 = (code ******)0xffffffff;\n                pppppppcVar29 = pppppppcVar29 + 2;\n              } while (pppppppcVar29 != param_8 + (int)pppppppcVar3 * 2);\n              *param_8 = (code ******)0x0;\n              param_8[1] = (code ******)local_58;\n              if (((uint)param_1[7] & 0x8000000) != 0) {\nLAB_000555ac:\n                pppppppcVar33 = param_8;\n                do {\n                  pppppppcVar29 = (code *******)*pppppppcVar33;\n                  if (pppppppcVar29 != (code *******)0xffffffff) {\n                    if (local_68 != '\0') {\n                      pppppppcVar34 = local_94;\n                      if (pppppppcVar29 != local_98) {\n                        pppppppcVar34 = *(code ********)(local_a8 + (int)pppppppcVar29 * 4);\n                      }\n                      *pppppppcVar33 = (code ******)pppppppcVar34;\n                      pppppppcVar29 = local_94;\n                      if (local_98 != (code *******)pppppppcVar33[1]) {\n                        pppppppcVar29 = *(code ********)(local_a8 + (int)pppppppcVar33[1] * 4);\n                      }\n                      pppppppcVar33[1] = (code ******)pppppppcVar29;\n                    }\n                    *pppppppcVar33 = (code ******)((int)local_dc + (int)*pppppppcVar33);\n                    pppppppcVar29 = (code *******)((int)local_dc + (int)pppppppcVar33[1]);\n                    pppppppcVar33[1] = (code ******)pppppppcVar29;\n                  }\n                  pppppppcVar33 = pppppppcVar33 + 2;\n                } while (pppppppcVar33 != param_8 + (int)pppppppcVar3 * 2);\n                if (0 < local_118) {\n                  pppppppcVar33 = param_8 + (int)pppppppcVar3 * 2;\n                  do {\n                    *pppppppcVar33 = (code ******)0xffffffff;\n                    pppppppcVar33[1] = (code ******)0xffffffff;\n                    pppppppcVar33 = pppppppcVar33 + 2;\n                  } while (pppppppcVar33 != param_8 + (int)param_7 * 2);\n                }\n                pppppppcVar30 = local_dc;\n                pppppppcVar33 = param_8;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar38[0x21] != (code ******)0x0) {\n                  pppppppcVar30 = (code *******)((int)pppppppcVar3 + -1);\n                  pppppppcVar34 = (code *******)0x0;\n                  pppppppcVar3 = param_8;\n                  while( true ) {\n                    pppppppcVar29 = (code *******)((int)pppppppcVar34 * 4);\n                    if (pppppppcVar30 == pppppppcVar34) break;\n                    if (*(code ********)((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) !=\n                        pppppppcVar34) {\n                      pppppppcVar3[2] =\n                           param_8[(int)((int)*(code ********)\n                                               ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1)\n                                   * 2];\n                      pppppppcVar3[3] =\n                           param_8[((int)*(code ******)\n                                          ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1) * 2 +\n                                   1];\n                    }\n                    pppppppcVar34 = (code *******)((int)pppppppcVar34 + 1);\n                    pppppppcVar3 = pppppppcVar3 + 2;\n                  }\n                }\n                goto LAB_000557e4;\n              }\n              if ((char)*(code *)(pppppppcVar38 + 0x16) < '\0') {\n                local_168 = (uint)(0 < (int)pppppppcVar38[0x13]);\n              }\n              else {\n                local_168 = 0;\n              }\n              pppppppcVar29 = &local_b4;\n              pppppppcVar30 = pppppppcVar3;\n              pppppppcVar33 = param_8;\n              local_150 = (code *******)FUN_0004f4a0(param_1);\n              if (local_150 == (code *******)0x0) goto LAB_000555ac;\n            }" if (parenthesized_expression "((int)param_4 < (int)pppppppcVar25)" ( (binary_expression "(int)param_4 < (int)pppppppcVar25" (cast_expression "(int)param_4" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)pppppppcVar25" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n              local_150 = (code *******)0x1;\n              param_6 = pppppppcVar36;\n            }" { (expression_statement "local_150 = (code *******)0x1;" (assignment_expression "local_150 = (code *******)0x1" identifier = (cast_expression "(code *******)0x1" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "param_6 = pppppppcVar36;" (assignment_expression "param_6 = pppppppcVar36" identifier = identifier) ;) }) (else_clause "else if ((int)pppppppcVar26 < (int)param_4) {\n              local_150 = (code *******)0x1;\n              param_4 = (code *******)(uint)((int)param_5 < (int)param_4);\n              param_6 = pppppppcVar36;\n            }\n            else {\n              pppppppcVar36 = (code *******)&local_dc;\n              if ((code *******)(uint)((int)param_5 < (int)param_4) != (code *******)0x0) {\n                pppppppcVar36 = (code *******)0x0;\n              }\n              pcVar4 = (code *)(PTR_DAT_000799a4 + -0x2b7c);\n              piVar5 = (int *)(PTR_s_nt0_000795b8 + (uVar16 - 4) * 4 + 0x6e38);\nLAB_00055b44:\n              if (uVar16 - 4 < 5) {\n                    /* WARNING: Could not emulate address calculation at 0x00054920 */\n                    /* WARNING: Treating indirect jump as call */\n                pppppppcVar29 = (code *******)(*(code *)(&_gp_1 + *piVar5))();\n                return pppppppcVar29;\n              }\n              param_5 = &local_b4;\n              pppppppcVar28 = pppppppcVar33;\n              while( true ) {\n                param_4 = local_dc;\n                pppppppcVar33 = (code *******)((int)local_dc - local_9c);\n                pppppppcVar30 = param_9;\n                pppppppcVar31 = pppppppcVar2;\n                param_6 = local_148;\n                unaff_s4 = param_3;\n                unaff_s5 = pppppppcVar24;\n                unaff_s7 = pppppppcVar26;\n                if (local_94 <= pppppppcVar33) {\n                  pppppppcVar29 = local_dc;\n                  local_150 = (code *******)(*pcVar4)(param_5);\n                  pppppppcVar33 = pppppppcVar28;\n                  if (local_150 != (code *******)0x0) goto LAB_000557e4;\n                  pppppppcVar33 = (code *******)((int)param_4 - local_9c);\n                }\n                if ((int)param_4 < (int)param_3) {\n                  uVar7 = (uint)(byte)*(code *)((int)pppppppcVar33 + (int)local_b0);\n                }\n                else {\n                  uVar7 = 0;\n                }\n                param_4 = (code *******)((int)param_4 + (int)pppppppcVar24);\n                if (*(code *)((int)local_148 + uVar7) != (code)0x0) break;\n                pppppppcVar33 = pppppppcVar28;\n                local_dc = param_4;\n                if ((int)param_4 < (int)pppppppcVar25) {\n                  local_150 = (code *******)0x1;\n                  goto LAB_000557e4;\n                }\n                if ((code *******)(uint)((int)pppppppcVar26 < (int)param_4) != (code *******)0x0) {\n                  local_150 = (code *******)0x1;\n                  param_4 = (code *******)(uint)((int)pppppppcVar26 < (int)param_4);\n                  goto LAB_000557e4;\n                }\n              }\n              while( true ) {\n                pppppppcVar29 = local_dc;\n                pppppppcVar30 = param_9;\n                pppppppcVar6 = (code *******)(*pcVar4)(&local_b4);\n                pppppppcVar14 = local_60;\n                pppppppcVar42 = local_8c;\n                pppppppcVar33 = pppppppcVar28;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar6 != (code *******)0x0) goto LAB_000557e4;\n                if (((ppppppcVar35 != (code ******)0x1) && (local_98 != (code *******)0x0)) &&\n                   (*local_ac == -1)) goto LAB_00055b1c;\n                local_3c = 0;\n                local_48 = 0;\n                local_4c = (code *******)0x0;\n                local_138 = local_8c;\n                local_d8 = (code *******)0x0;\n                unaff_s7 = (code *******)local_60[9];\n                pppppppcVar30 = local_5c;\n                param_4 = pppppppcVar14;\n                if (((uint)unaff_s7[0xd] & 0x1000000) == 0) break;\n                pppppppcVar29 = (code *******)((int)local_8c + -1);\n                pppppppcVar33 = (code *******)FUN_00049110(&local_b4);\n                if (((uint)pppppppcVar33 & 1) == 0) {\n                  if (pppppppcVar33 == (code *******)0x0) break;\n                  if (((uint)pppppppcVar33 & 6) == 6) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xc];\n                    goto LAB_00054d1c;\n                  }\n                  if (((uint)pppppppcVar33 & 2) != 0) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xb];\n                    goto LAB_00054d1c;\n                  }\n                  pppppppcVar28 = pppppppcVar33;\n                  if (((uint)pppppppcVar33 & 4) == 0) break;\n                  pppppppcVar30 = (code *******)unaff_s7[10];\n                  pppppppcVar29 = pppppppcVar14;\n                  unaff_s7 = (code *******)FUN_0004ae34(&local_d8);\n                  pppppppcVar28 = pppppppcVar33;\n                  if (unaff_s7 != (code *******)0x0) break;\n                  if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                }\n                else {\n                  unaff_s7 = (code *******)pppppppcVar14[10];\nLAB_00054d1c:\n                  pppppppcVar28 = (code *******)PTR_s_nt0_000795b8;\n                  if (unaff_s7 != (code *******)0x0) break;\n                }\n                pppppppcVar28 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                local_dc = (code *******)\n                           (*(code *)PTR___assert_fail_000799f8)\n                                     (PTR_s_nt0_000795b8 + 0x71a0,pppppppcVar29,0x435);\n                if (local_dc == pppppppcVar26) {\n                  if ((int)local_dc < (int)param_3) {\n                    uVar7 = (uint)(byte)*(code *)((int)local_dc + (int)param_2);\n                  }\n                  else {\n                    uVar7 = 0;\n                  }\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    uVar7 = (uint)*(byte *)((int)ppppppcVar32 + uVar7);\n                  }\n                  if (*(code *)((int)local_148 + uVar7) == (code)0x0) {\n                    local_150 = (code *******)0x1;\n                    pppppppcVar30 = param_9;\n                    pppppppcVar33 = pppppppcVar28;\n                    goto LAB_000557e4;\n                  }\n                }\n              }\n              pppppppcVar33 = pppppppcVar28;\n              bVar1 = pppppppcVar36 != (code *******)0x0;\n              if ((local_50 == (code *******)0x0) ||\n                 (local_50[(int)pppppppcVar42] = (code ******)unaff_s7,\n                 pppppppcVar14[0x13] == (code ******)0x0)) {\nLAB_00054d50:\n                if ((int)unaff_s7[0xd] << 4 < 0) {\n                  if ((((uint)unaff_s7[0xd] & 0x1000000) == 0) ||\n                     (pppppppcVar29 = unaff_s7, pppppppcVar30 = pppppppcVar42,\n                     iVar18 = FUN_00049440(&local_b4), iVar18 != 0)) {\n                    unaff_s8 = pppppppcVar42;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                  }\n                  else {\n                    pppppppcVar42 = (code *******)0xffffffff;\n                    pppppppcVar28 = (code *******)0x0;\n                  }\n                }\n                else {\n                  pppppppcVar42 = (code *******)0xffffffff;\n                  pppppppcVar28 = (code *******)0x0;\n                }\n                pcVar8 = (code *)(PTR_DAT_000799a4 + -0x7144);\n                pcVar9 = (code *)(PTR_DAT_000799a4 + -0x1980);\n                pcVar10 = (code *)(PTR_DAT_000799a4 + -0x2f9c);\n                unaff_s8 = pppppppcVar42;\n                local_144 = pppppppcVar36;\n                while( true ) {\n                  uVar44 = CONCAT44(local_98,local_84);\n                  unaff_s5 = (code *******)((int)local_8c + 1);\n                  pppppppcVar29 = local_8c;\n                  if ((int)local_7c <= (int)local_8c) break;\n                  if (((int)local_90 <= (int)unaff_s5) && ((int)local_90 < (int)local_84))\n                  goto LAB_00054e94;\n                  if ((int)local_98 <= (int)unaff_s5) {\n                    while ((int)((ulonglong)uVar44 >> 0x20) < (int)uVar44) {\nLAB_00054e94:\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 2);\n                      local_d8 = (code *******)(*pcVar8)(&local_b4);\n                      if (local_d8 == (code *******)0x0) break;\n                      pppppppcVar14 = param_4;\n                      if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                      pppppppcVar33 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                      pppppppcVar30 = (code *******)0x46c;\n                      pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                      uVar44 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0);\n                      pppppppcVar28 = pppppppcVar38;\n                    }\n                  }\n                  pppppppcVar42 = local_60;\n                  if ((int)unaff_s7[0xd] << 5 < 0) {\n                    pppppppcVar31 = pppppppcVar42;\n                    if (0 < (int)unaff_s7[2]) {\n                      pcVar11 = (code *)(PTR_DAT_000799a4 + -0x6fdc);\n                      pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6ef0);\n                      param_6 = (code *******)0x0;\n                      do {\n                        param_5 = (code *******)unaff_s7[3][(int)param_6];\n                        ppppppcVar39 = *pppppppcVar42;\n                        pppppcVar13 = ppppppcVar39[(int)param_5 * 2 + 1];\n                        if (((uint)pppppcVar13 & 0x800) != 0) {\n                          if (((uint)pppppcVar13 & 0xffc000) != 0) {\n                            pppppppcVar29 = local_8c;\n                            uVar19 = (*pcVar12)(&local_b4,local_8c,local_5c);\n                            uVar7 = (uint)((int)ppppppcVar39[(int)param_5 * 2 + 1] << 8) >> 0x16;\n                            if ((uVar7 & 4) == 0) {\n                              uVar27 = uVar19 & 1;\n                              if ((uVar7 & 8) != 0) goto joined_r0x00054f40;\n                            }\n                            else {\n                              uVar27 = uVar7 & 8;\n                              if ((uVar19 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                              if (uVar27 != 0) goto LAB_000550a4;\n                            }\n                            if ((((uVar7 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                               (((uVar7 & 0x80) != 0 &&\n                                (pppppppcVar33 = local_8c, (uVar19 & 8) == 0)))) goto LAB_000550a4;\n                          }\n                          pppppppcVar30 = &local_b4;\n                          pppppppcVar29 = param_5;\n                          pppppppcVar33 = local_8c;\n                          iVar18 = (*pcVar10)(pppppppcVar42);\n                          if (iVar18 != 0) {\n                            pppppppcVar14 = (code *******)((int)local_8c + iVar18);\n                            if (iVar18 <= local_3c) {\n                              iVar18 = local_3c;\n                            }\n                            pppppppcVar29 = pppppppcVar14;\n                            local_3c = iVar18;\n                            local_d4 = (code *******)(*pcVar11)(&local_b4);\n                            pppppppcVar15 = local_d4;\n                            if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                            pppppppcVar30 =\n                                 (code *******)\n                                 (pppppppcVar42[6] + (int)pppppppcVar42[3][(int)param_5] * 3);\n                            unaff_s4 = (code *******)((int)pppppppcVar14 * 4);\n                            param_5 = local_50 + (int)pppppppcVar14;\n                            if (*param_5 == (code ******)0x0) {\n                              local_d0 = (code *******)*pppppppcVar30;\n                              local_cc = (code *******)pppppppcVar30[1];\n                              local_c8 = (code *******)pppppppcVar30[2];\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *param_5 = ppppppcVar39;\n                            }\n                            else {\n                              pppppppcVar29 = (code *******)(*param_5)[10];\n                              local_d4 = (code *******)FUN_000484bc(&local_d0);\n                              pppppppcVar15 = local_d4;\n                              if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar15 = local_50 + (int)pppppppcVar14;\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *pppppppcVar15 = ppppppcVar39;\n                              (*(code *)PTR_free_00079c24)(local_c8);\n                            }\n                            unaff_s4 = local_50 + (int)pppppppcVar14;\n                            if ((*unaff_s4 == (code ******)0x0) &&\n                               (pppppppcVar15 = local_d4, local_d4 != (code *******)0x0))\n                            goto LAB_00055e44;\n                          }\n                        }\nLAB_000550a4:\n                        param_6 = (code *******)((int)param_6 + 1);\n                      } while ((int)param_6 < (int)unaff_s7[2]);\n                    }\n                    local_d8 = (code *******)0x0;\n                  }\n                  uVar7 = (uint)(byte)*(code *)((int)local_8c + (int)local_b0);\n                  local_8c = (code *******)((int)local_8c + 1);\n                  do {\n                    if (unaff_s7[0xb] != (code ******)0x0) {\n                      pppppppcVar30 = (code *******)unaff_s7[0xb][uVar7];\nLAB_000553a0:\n                      pppppppcVar14 = pppppppcVar30;\n                      if (local_50 != (code *******)0x0) goto LAB_000553ac;\n                      goto LAB_000553cc;\n                    }\n                    pppppppcVar31 = (code *******)unaff_s7[0xc];\n                    if (pppppppcVar31 != (code *******)0x0) {\n                      pppppppcVar29 = (code *******)((int)local_8c + -1);\n                      uVar19 = FUN_00049110(&local_b4);\n                      if ((uVar19 & 1) == 0) {\n                        pppppppcVar30 = (code *******)pppppppcVar31[uVar7];\n                      }\n                      else {\n                        pppppppcVar31 = pppppppcVar31 + uVar7 + 0x100;\n                        pppppppcVar30 = (code *******)*pppppppcVar31;\n                      }\n                      goto LAB_000553a0;\n                    }\n                    pppppppcVar29 = unaff_s7;\n                    pppppppcVar30 = local_5c;\n                    iVar18 = (*pcVar9)(local_60);\n                  } while (iVar18 != 0);\n                  local_d8 = (code *******)0xc;\n                  pppppppcVar15 = local_d8;\nLAB_00055e44:\n                  local_d8 = pppppppcVar15;\n                  param_4 = (code *******)0x0;\n                  if (local_50 == (code *******)0x0) {\n                    pppppppcVar14 = param_4;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    break;\n                  }\n                  pppppppcVar30 = (code *******)0x0;\nLAB_000553ac:\n                  pppppppcVar29 = &local_b4;\n                  pppppppcVar14 = (code *******)FUN_00053684(&local_d8);\nLAB_000553cc:\n                  param_4 = pppppppcVar14;\n                  if (pppppppcVar14 == (code *******)0x0) {\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    if ((local_50 == (code *******)0x0) ||\n                       ((pppppppcVar28 != (code *******)0x0 && (pppppppcVar34 == (code *******)0x0))\n                       )) break;\n                    param_6 = &local_b4;\n                    param_5 = (code *******)&local_d8;\n                    pppppppcVar31 = (code *******)(PTR_DAT_000799a4 + 0x3684);\n                    do {\n                      pppppppcVar15 = local_50 + (int)local_8c;\n                      pppppppcVar42 = local_8c;\n                      do {\n                        pppppppcVar42 = (code *******)((int)pppppppcVar42 + 1);\n                        pppppppcVar29 = local_4c;\n                        param_4 = pppppppcVar14;\n                        if ((int)local_4c < (int)pppppppcVar42) goto LAB_00055da8;\n                        local_8c = (code *******)((int)local_8c + 1);\n                        pppppppcVar15 = pppppppcVar15 + 1;\n                      } while (*pppppppcVar15 == (code ******)0x0);\n                      pppppppcVar30 = (code *******)0x0;\n                      pppppppcVar29 = param_6;\n                      param_4 = (code *******)(*(code *)pppppppcVar31)(param_5);\n                      if (local_d8 != (code *******)0x0) {\n                        if (param_4 == (code *******)0x0) goto LAB_00055da8;\n                        break;\n                      }\n                      pppppppcVar29 = local_4c;\n                    } while (param_4 == (code *******)0x0);\n                  }\n                  pppppppcVar15 = (code *******)((uint)unaff_s7 ^ (uint)param_4);\n                  pppppppcVar42 = unaff_s7;\n                  pppppppcVar14 = local_138;\n                  if ((bVar1) &&\n                     (pppppppcVar42 = pppppppcVar15, pppppppcVar14 = unaff_s5,\n                     pppppppcVar15 != (code *******)0x0)) {\n                    bVar1 = false;\n                    pppppppcVar14 = local_138;\n                  }\n                  local_138 = pppppppcVar14;\n                  unaff_s7 = param_4;\n                  if ((((uint)param_4[0xd] & 0x8000000) != 0) &&\n                     ((((uint)param_4[0xd] & 0x1000000) == 0 ||\n                      (pppppppcVar29 = param_4, pppppppcVar30 = local_8c,\n                      iVar18 = FUN_00049440(&local_b4), iVar18 != 0)))) {\n                    unaff_s7 = pppppppcVar42;\n                    unaff_s8 = local_8c;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                    local_144 = (code *******)0x0;\n                    unaff_s7 = param_4;\n                  }\n                }\nLAB_00055da8:\n                if (local_144 != (code *******)0x0) {\n                  *local_144 = (code ******)((int)local_138 + (int)*local_144);\n                }\n              }\n              else {\n                param_4 = unaff_s7 + 1;\n                pppppppcVar30 = (code *******)0x0;\n                pppppppcVar29 = param_4;\n                local_d8 = (code *******)FUN_00047a44(&local_b4);\n                unaff_s8 = local_d8;\n                if (local_d8 == (code *******)0x0) {\n                  if (((uint)unaff_s7[0xd] & 0x2000000) == 0) {\n                    pppppppcVar29 = param_4;\n                    bVar1 = false;\n                  }\n                  else {\n                    pppppppcVar29 = param_4;\n                    local_d8 = (code *******)FUN_00052d84(&local_b4);\n                    unaff_s8 = local_d8;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055dbc;\n                    bVar1 = false;\n                  }\n                  goto LAB_00054d50;\n                }\n              }\nLAB_00055dbc:\n              if (unaff_s8 == (code *******)0xffffffff) {\nLAB_00055b04:\n                FUN_0004b7e8(&local_b4);\nLAB_00055b1c:\n                local_dc = (code *******)((int)pppppppcVar24 + (int)local_dc);\n                if ((int)pppppppcVar25 <= (int)local_dc) goto code_r0x00055b38;\n                local_150 = (code *******)0x1;\n                goto LAB_000557e4;\n              }\n              if (unaff_s8 == (code *******)&SUB_fffffffe) {\n                local_150 = (code *******)0xc;\n                goto LAB_000557e4;\n              }\n              local_58 = unaff_s8;\n              if (((uint)param_1[7] & 0x8000000) == 0) {\n                if (pppppppcVar3 < (code *******)0x2) {\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055c08;\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                else {\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                if (pppppppcVar3 < (code *******)0x2) {\nLAB_00055c6c:\n                  pppppppcVar28 = pppppppcVar33;\n                  unaff_s4 = local_60;\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055548;\n                }\n                else {\n                  cVar23 = *(code *)(pppppppcVar38 + 0x16);\nLAB_00055c20:\n                  pppppppcVar28 = pppppppcVar33;\n                  if (-1 < (char)cVar23) goto LAB_00055c6c;\n                }\n                pppppppcVar31 = local_54;\n                pppppppcVar42 = local_60;\n                unaff_s4 = pppppppcVar42;\n                if (unaff_s8 < (code *******)0x3fffffff) {\n                  param_4 = (code *******)((int)((int)unaff_s8 + 1) * 4);\n                  unaff_s5 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                  if (unaff_s5 == (code *******)0x0) {\nLAB_00055b9c:\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    local_150 = (code *******)0xc;\n                    pppppppcVar33 = pppppppcVar28;\n                  }\n                  else {\n                    pppppppcVar29 = (code *******)&local_d0;\n                    if (pppppppcVar42[0x13] == (code ******)0x0) {\n                      local_cc = (code *******)0x0;\n                      local_c8 = pppppppcVar31;\n                      local_c0 = 0;\n                      local_bc = 0;\n                      local_b8 = 0;\n                      local_d0 = unaff_s5;\n                      local_c4 = unaff_s8;\n                      param_5 = (code *******)FUN_0005421c(&local_b4);\n                      (*(code *)PTR_free_00079c24)(local_b8);\n                      if (param_5 == (code *******)0x0) {\n                        param_4 = (code *******)*unaff_s5;\n                        if (param_4 == (code *******)0x0) {\nLAB_00055b70:\n                          (*(code *)PTR_free_00079c24)(unaff_s5);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          pppppppcVar33 = pppppppcVar28;\n                          goto LAB_00055b04;\n                        }\nLAB_00055528:\n                        (*(code *)PTR_free_00079c24)(local_50);\n                        pppppppcVar33 = pppppppcVar28;\n                        unaff_s4 = pppppppcVar42;\n                        local_58 = unaff_s8;\n                        local_54 = pppppppcVar31;\n                        local_50 = unaff_s5;\n                        goto LAB_00055548;\n                      }\nLAB_00055acc:\n                      param_4 = (code *******)0x0;\n                      pppppppcVar33 = pppppppcVar28;\n                      unaff_s4 = pppppppcVar42;\n                    }\n                    else {\n                      param_4 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                      if (param_4 == (code *******)0x0) goto LAB_00055b9c;\n                      unaff_s7 = (code *******)&local_d0;\n                      pcVar8 = (code *)(PTR_DAT_000799a4 + 0x421c);\n                      pcVar9 = (code *)(PTR_DAT_000799a4 + -0x6bc0);\n                      pppppppcVar33 = pppppppcVar28;\n                      while( true ) {\n                        pppppppcVar28 = (code *******)((int)unaff_s8 + 1);\n                        param_6 = (code *******)((int)pppppppcVar28 * 4);\n                        pppppppcVar30 = param_6;\n                        (*(code *)PTR_memset_00079b00)(param_4,0);\n                        local_c0 = 0;\n                        local_bc = 0;\n                        local_b8 = 0;\n                        pppppppcVar29 = unaff_s7;\n                        local_d0 = unaff_s5;\n                        local_cc = param_4;\n                        local_c8 = pppppppcVar31;\n                        local_c4 = unaff_s8;\n                        param_5 = (code *******)(*pcVar8)(&local_b4);\n                        (*(code *)PTR_free_00079c24)(local_b8);\n                        unaff_s4 = pppppppcVar28;\n                        if (param_5 != (code *******)0x0) break;\n                        if ((*unaff_s5 != (code ******)0x0) ||\n                           (param_6 = param_6 + -1, *param_4 != (code ******)0x0)) {\n                          pppppppcVar29 = unaff_s5;\n                          pppppppcVar30 = param_4;\n                          param_5 = (code *******)FUN_000520d0(pppppppcVar42);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          if (param_5 != (code *******)0x0) goto LAB_00055acc;\n                          goto LAB_00055528;\n                        }\n                        param_6 = (code *******)((int)local_50 + (int)param_6);\n                        do {\n                          while( true ) {\n                            unaff_s8 = (code *******)((int)unaff_s8 + -1);\n                            if ((int)unaff_s8 < 0) goto LAB_00055b70;\n                            pppppppcVar29 = (code *******)param_6[-1];\n                            if (pppppppcVar29 != (code *******)0x0) break;\n                            param_6 = param_6 + -1;\n                          }\n                          param_6 = param_6 + -1;\n                        } while (((uint)pppppppcVar29[0xd] & 0x8000000) == 0);\n                        pppppppcVar31 = (code *******)(*pcVar9)(&local_b4,pppppppcVar29,unaff_s8);\n                        pppppppcVar33 = pppppppcVar28;\n                      }\n                    }\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    (*(code *)PTR_free_00079c24)(param_4);\n                    local_150 = param_5;\n                    if (param_5 == (code *******)0x1) goto LAB_00055b04;\n                  }\n                }\n                else {\n                  local_150 = (code *******)0xc;\n                  pppppppcVar33 = pppppppcVar28;\n                }\n                goto LAB_000557e4;\n              }\n              if (pppppppcVar38[0x13] != (code ******)0x0) {\n                pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                pppppppcVar30 = unaff_s8;\n                local_54 = (code *******)FUN_00049440(&local_b4);\n                goto LAB_00055c6c;\n              }\nLAB_00055c08:\n              if ((((uint)param_1[7] & 0x8000000) == 0) && ((code *******)0x1 < pppppppcVar3)) {\n                cVar23 = *(code *)(pppppppcVar38 + 0x16);\n                goto LAB_00055c20;\n              }\nLAB_00055548:\n              if (pppppppcVar3 == (code *******)0x0) goto LAB_000557e4;\n              if (pppppppcVar3 < (code *******)0x2) {\n                *param_8 = (code ******)0x0;\n                param_8[1] = (code ******)local_58;\n                goto LAB_000555ac;\n              }\n              pppppppcVar29 = param_8 + 2;\n              do {\n                pppppppcVar29[1] = (code ******)0xffffffff;\n                *pppppppcVar29 = (code ******)0xffffffff;\n                pppppppcVar29 = pppppppcVar29 + 2;\n              } while (pppppppcVar29 != param_8 + (int)pppppppcVar3 * 2);\n              *param_8 = (code ******)0x0;\n              param_8[1] = (code ******)local_58;\n              if (((uint)param_1[7] & 0x8000000) != 0) {\nLAB_000555ac:\n                pppppppcVar33 = param_8;\n                do {\n                  pppppppcVar29 = (code *******)*pppppppcVar33;\n                  if (pppppppcVar29 != (code *******)0xffffffff) {\n                    if (local_68 != '\0') {\n                      pppppppcVar34 = local_94;\n                      if (pppppppcVar29 != local_98) {\n                        pppppppcVar34 = *(code ********)(local_a8 + (int)pppppppcVar29 * 4);\n                      }\n                      *pppppppcVar33 = (code ******)pppppppcVar34;\n                      pppppppcVar29 = local_94;\n                      if (local_98 != (code *******)pppppppcVar33[1]) {\n                        pppppppcVar29 = *(code ********)(local_a8 + (int)pppppppcVar33[1] * 4);\n                      }\n                      pppppppcVar33[1] = (code ******)pppppppcVar29;\n                    }\n                    *pppppppcVar33 = (code ******)((int)local_dc + (int)*pppppppcVar33);\n                    pppppppcVar29 = (code *******)((int)local_dc + (int)pppppppcVar33[1]);\n                    pppppppcVar33[1] = (code ******)pppppppcVar29;\n                  }\n                  pppppppcVar33 = pppppppcVar33 + 2;\n                } while (pppppppcVar33 != param_8 + (int)pppppppcVar3 * 2);\n                if (0 < local_118) {\n                  pppppppcVar33 = param_8 + (int)pppppppcVar3 * 2;\n                  do {\n                    *pppppppcVar33 = (code ******)0xffffffff;\n                    pppppppcVar33[1] = (code ******)0xffffffff;\n                    pppppppcVar33 = pppppppcVar33 + 2;\n                  } while (pppppppcVar33 != param_8 + (int)param_7 * 2);\n                }\n                pppppppcVar30 = local_dc;\n                pppppppcVar33 = param_8;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar38[0x21] != (code ******)0x0) {\n                  pppppppcVar30 = (code *******)((int)pppppppcVar3 + -1);\n                  pppppppcVar34 = (code *******)0x0;\n                  pppppppcVar3 = param_8;\n                  while( true ) {\n                    pppppppcVar29 = (code *******)((int)pppppppcVar34 * 4);\n                    if (pppppppcVar30 == pppppppcVar34) break;\n                    if (*(code ********)((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) !=\n                        pppppppcVar34) {\n                      pppppppcVar3[2] =\n                           param_8[(int)((int)*(code ********)\n                                               ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1)\n                                   * 2];\n                      pppppppcVar3[3] =\n                           param_8[((int)*(code ******)\n                                          ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1) * 2 +\n                                   1];\n                    }\n                    pppppppcVar34 = (code *******)((int)pppppppcVar34 + 1);\n                    pppppppcVar3 = pppppppcVar3 + 2;\n                  }\n                }\n                goto LAB_000557e4;\n              }\n              if ((char)*(code *)(pppppppcVar38 + 0x16) < '\0') {\n                local_168 = (uint)(0 < (int)pppppppcVar38[0x13]);\n              }\n              else {\n                local_168 = 0;\n              }\n              pppppppcVar29 = &local_b4;\n              pppppppcVar30 = pppppppcVar3;\n              pppppppcVar33 = param_8;\n              local_150 = (code *******)FUN_0004f4a0(param_1);\n              if (local_150 == (code *******)0x0) goto LAB_000555ac;\n            }" else (if_statement "if ((int)pppppppcVar26 < (int)param_4) {\n              local_150 = (code *******)0x1;\n              param_4 = (code *******)(uint)((int)param_5 < (int)param_4);\n              param_6 = pppppppcVar36;\n            }\n            else {\n              pppppppcVar36 = (code *******)&local_dc;\n              if ((code *******)(uint)((int)param_5 < (int)param_4) != (code *******)0x0) {\n                pppppppcVar36 = (code *******)0x0;\n              }\n              pcVar4 = (code *)(PTR_DAT_000799a4 + -0x2b7c);\n              piVar5 = (int *)(PTR_s_nt0_000795b8 + (uVar16 - 4) * 4 + 0x6e38);\nLAB_00055b44:\n              if (uVar16 - 4 < 5) {\n                    /* WARNING: Could not emulate address calculation at 0x00054920 */\n                    /* WARNING: Treating indirect jump as call */\n                pppppppcVar29 = (code *******)(*(code *)(&_gp_1 + *piVar5))();\n                return pppppppcVar29;\n              }\n              param_5 = &local_b4;\n              pppppppcVar28 = pppppppcVar33;\n              while( true ) {\n                param_4 = local_dc;\n                pppppppcVar33 = (code *******)((int)local_dc - local_9c);\n                pppppppcVar30 = param_9;\n                pppppppcVar31 = pppppppcVar2;\n                param_6 = local_148;\n                unaff_s4 = param_3;\n                unaff_s5 = pppppppcVar24;\n                unaff_s7 = pppppppcVar26;\n                if (local_94 <= pppppppcVar33) {\n                  pppppppcVar29 = local_dc;\n                  local_150 = (code *******)(*pcVar4)(param_5);\n                  pppppppcVar33 = pppppppcVar28;\n                  if (local_150 != (code *******)0x0) goto LAB_000557e4;\n                  pppppppcVar33 = (code *******)((int)param_4 - local_9c);\n                }\n                if ((int)param_4 < (int)param_3) {\n                  uVar7 = (uint)(byte)*(code *)((int)pppppppcVar33 + (int)local_b0);\n                }\n                else {\n                  uVar7 = 0;\n                }\n                param_4 = (code *******)((int)param_4 + (int)pppppppcVar24);\n                if (*(code *)((int)local_148 + uVar7) != (code)0x0) break;\n                pppppppcVar33 = pppppppcVar28;\n                local_dc = param_4;\n                if ((int)param_4 < (int)pppppppcVar25) {\n                  local_150 = (code *******)0x1;\n                  goto LAB_000557e4;\n                }\n                if ((code *******)(uint)((int)pppppppcVar26 < (int)param_4) != (code *******)0x0) {\n                  local_150 = (code *******)0x1;\n                  param_4 = (code *******)(uint)((int)pppppppcVar26 < (int)param_4);\n                  goto LAB_000557e4;\n                }\n              }\n              while( true ) {\n                pppppppcVar29 = local_dc;\n                pppppppcVar30 = param_9;\n                pppppppcVar6 = (code *******)(*pcVar4)(&local_b4);\n                pppppppcVar14 = local_60;\n                pppppppcVar42 = local_8c;\n                pppppppcVar33 = pppppppcVar28;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar6 != (code *******)0x0) goto LAB_000557e4;\n                if (((ppppppcVar35 != (code ******)0x1) && (local_98 != (code *******)0x0)) &&\n                   (*local_ac == -1)) goto LAB_00055b1c;\n                local_3c = 0;\n                local_48 = 0;\n                local_4c = (code *******)0x0;\n                local_138 = local_8c;\n                local_d8 = (code *******)0x0;\n                unaff_s7 = (code *******)local_60[9];\n                pppppppcVar30 = local_5c;\n                param_4 = pppppppcVar14;\n                if (((uint)unaff_s7[0xd] & 0x1000000) == 0) break;\n                pppppppcVar29 = (code *******)((int)local_8c + -1);\n                pppppppcVar33 = (code *******)FUN_00049110(&local_b4);\n                if (((uint)pppppppcVar33 & 1) == 0) {\n                  if (pppppppcVar33 == (code *******)0x0) break;\n                  if (((uint)pppppppcVar33 & 6) == 6) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xc];\n                    goto LAB_00054d1c;\n                  }\n                  if (((uint)pppppppcVar33 & 2) != 0) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xb];\n                    goto LAB_00054d1c;\n                  }\n                  pppppppcVar28 = pppppppcVar33;\n                  if (((uint)pppppppcVar33 & 4) == 0) break;\n                  pppppppcVar30 = (code *******)unaff_s7[10];\n                  pppppppcVar29 = pppppppcVar14;\n                  unaff_s7 = (code *******)FUN_0004ae34(&local_d8);\n                  pppppppcVar28 = pppppppcVar33;\n                  if (unaff_s7 != (code *******)0x0) break;\n                  if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                }\n                else {\n                  unaff_s7 = (code *******)pppppppcVar14[10];\nLAB_00054d1c:\n                  pppppppcVar28 = (code *******)PTR_s_nt0_000795b8;\n                  if (unaff_s7 != (code *******)0x0) break;\n                }\n                pppppppcVar28 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                local_dc = (code *******)\n                           (*(code *)PTR___assert_fail_000799f8)\n                                     (PTR_s_nt0_000795b8 + 0x71a0,pppppppcVar29,0x435);\n                if (local_dc == pppppppcVar26) {\n                  if ((int)local_dc < (int)param_3) {\n                    uVar7 = (uint)(byte)*(code *)((int)local_dc + (int)param_2);\n                  }\n                  else {\n                    uVar7 = 0;\n                  }\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    uVar7 = (uint)*(byte *)((int)ppppppcVar32 + uVar7);\n                  }\n                  if (*(code *)((int)local_148 + uVar7) == (code)0x0) {\n                    local_150 = (code *******)0x1;\n                    pppppppcVar30 = param_9;\n                    pppppppcVar33 = pppppppcVar28;\n                    goto LAB_000557e4;\n                  }\n                }\n              }\n              pppppppcVar33 = pppppppcVar28;\n              bVar1 = pppppppcVar36 != (code *******)0x0;\n              if ((local_50 == (code *******)0x0) ||\n                 (local_50[(int)pppppppcVar42] = (code ******)unaff_s7,\n                 pppppppcVar14[0x13] == (code ******)0x0)) {\nLAB_00054d50:\n                if ((int)unaff_s7[0xd] << 4 < 0) {\n                  if ((((uint)unaff_s7[0xd] & 0x1000000) == 0) ||\n                     (pppppppcVar29 = unaff_s7, pppppppcVar30 = pppppppcVar42,\n                     iVar18 = FUN_00049440(&local_b4), iVar18 != 0)) {\n                    unaff_s8 = pppppppcVar42;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                  }\n                  else {\n                    pppppppcVar42 = (code *******)0xffffffff;\n                    pppppppcVar28 = (code *******)0x0;\n                  }\n                }\n                else {\n                  pppppppcVar42 = (code *******)0xffffffff;\n                  pppppppcVar28 = (code *******)0x0;\n                }\n                pcVar8 = (code *)(PTR_DAT_000799a4 + -0x7144);\n                pcVar9 = (code *)(PTR_DAT_000799a4 + -0x1980);\n                pcVar10 = (code *)(PTR_DAT_000799a4 + -0x2f9c);\n                unaff_s8 = pppppppcVar42;\n                local_144 = pppppppcVar36;\n                while( true ) {\n                  uVar44 = CONCAT44(local_98,local_84);\n                  unaff_s5 = (code *******)((int)local_8c + 1);\n                  pppppppcVar29 = local_8c;\n                  if ((int)local_7c <= (int)local_8c) break;\n                  if (((int)local_90 <= (int)unaff_s5) && ((int)local_90 < (int)local_84))\n                  goto LAB_00054e94;\n                  if ((int)local_98 <= (int)unaff_s5) {\n                    while ((int)((ulonglong)uVar44 >> 0x20) < (int)uVar44) {\nLAB_00054e94:\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 2);\n                      local_d8 = (code *******)(*pcVar8)(&local_b4);\n                      if (local_d8 == (code *******)0x0) break;\n                      pppppppcVar14 = param_4;\n                      if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                      pppppppcVar33 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                      pppppppcVar30 = (code *******)0x46c;\n                      pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                      uVar44 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0);\n                      pppppppcVar28 = pppppppcVar38;\n                    }\n                  }\n                  pppppppcVar42 = local_60;\n                  if ((int)unaff_s7[0xd] << 5 < 0) {\n                    pppppppcVar31 = pppppppcVar42;\n                    if (0 < (int)unaff_s7[2]) {\n                      pcVar11 = (code *)(PTR_DAT_000799a4 + -0x6fdc);\n                      pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6ef0);\n                      param_6 = (code *******)0x0;\n                      do {\n                        param_5 = (code *******)unaff_s7[3][(int)param_6];\n                        ppppppcVar39 = *pppppppcVar42;\n                        pppppcVar13 = ppppppcVar39[(int)param_5 * 2 + 1];\n                        if (((uint)pppppcVar13 & 0x800) != 0) {\n                          if (((uint)pppppcVar13 & 0xffc000) != 0) {\n                            pppppppcVar29 = local_8c;\n                            uVar19 = (*pcVar12)(&local_b4,local_8c,local_5c);\n                            uVar7 = (uint)((int)ppppppcVar39[(int)param_5 * 2 + 1] << 8) >> 0x16;\n                            if ((uVar7 & 4) == 0) {\n                              uVar27 = uVar19 & 1;\n                              if ((uVar7 & 8) != 0) goto joined_r0x00054f40;\n                            }\n                            else {\n                              uVar27 = uVar7 & 8;\n                              if ((uVar19 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                              if (uVar27 != 0) goto LAB_000550a4;\n                            }\n                            if ((((uVar7 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                               (((uVar7 & 0x80) != 0 &&\n                                (pppppppcVar33 = local_8c, (uVar19 & 8) == 0)))) goto LAB_000550a4;\n                          }\n                          pppppppcVar30 = &local_b4;\n                          pppppppcVar29 = param_5;\n                          pppppppcVar33 = local_8c;\n                          iVar18 = (*pcVar10)(pppppppcVar42);\n                          if (iVar18 != 0) {\n                            pppppppcVar14 = (code *******)((int)local_8c + iVar18);\n                            if (iVar18 <= local_3c) {\n                              iVar18 = local_3c;\n                            }\n                            pppppppcVar29 = pppppppcVar14;\n                            local_3c = iVar18;\n                            local_d4 = (code *******)(*pcVar11)(&local_b4);\n                            pppppppcVar15 = local_d4;\n                            if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                            pppppppcVar30 =\n                                 (code *******)\n                                 (pppppppcVar42[6] + (int)pppppppcVar42[3][(int)param_5] * 3);\n                            unaff_s4 = (code *******)((int)pppppppcVar14 * 4);\n                            param_5 = local_50 + (int)pppppppcVar14;\n                            if (*param_5 == (code ******)0x0) {\n                              local_d0 = (code *******)*pppppppcVar30;\n                              local_cc = (code *******)pppppppcVar30[1];\n                              local_c8 = (code *******)pppppppcVar30[2];\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *param_5 = ppppppcVar39;\n                            }\n                            else {\n                              pppppppcVar29 = (code *******)(*param_5)[10];\n                              local_d4 = (code *******)FUN_000484bc(&local_d0);\n                              pppppppcVar15 = local_d4;\n                              if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar15 = local_50 + (int)pppppppcVar14;\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *pppppppcVar15 = ppppppcVar39;\n                              (*(code *)PTR_free_00079c24)(local_c8);\n                            }\n                            unaff_s4 = local_50 + (int)pppppppcVar14;\n                            if ((*unaff_s4 == (code ******)0x0) &&\n                               (pppppppcVar15 = local_d4, local_d4 != (code *******)0x0))\n                            goto LAB_00055e44;\n                          }\n                        }\nLAB_000550a4:\n                        param_6 = (code *******)((int)param_6 + 1);\n                      } while ((int)param_6 < (int)unaff_s7[2]);\n                    }\n                    local_d8 = (code *******)0x0;\n                  }\n                  uVar7 = (uint)(byte)*(code *)((int)local_8c + (int)local_b0);\n                  local_8c = (code *******)((int)local_8c + 1);\n                  do {\n                    if (unaff_s7[0xb] != (code ******)0x0) {\n                      pppppppcVar30 = (code *******)unaff_s7[0xb][uVar7];\nLAB_000553a0:\n                      pppppppcVar14 = pppppppcVar30;\n                      if (local_50 != (code *******)0x0) goto LAB_000553ac;\n                      goto LAB_000553cc;\n                    }\n                    pppppppcVar31 = (code *******)unaff_s7[0xc];\n                    if (pppppppcVar31 != (code *******)0x0) {\n                      pppppppcVar29 = (code *******)((int)local_8c + -1);\n                      uVar19 = FUN_00049110(&local_b4);\n                      if ((uVar19 & 1) == 0) {\n                        pppppppcVar30 = (code *******)pppppppcVar31[uVar7];\n                      }\n                      else {\n                        pppppppcVar31 = pppppppcVar31 + uVar7 + 0x100;\n                        pppppppcVar30 = (code *******)*pppppppcVar31;\n                      }\n                      goto LAB_000553a0;\n                    }\n                    pppppppcVar29 = unaff_s7;\n                    pppppppcVar30 = local_5c;\n                    iVar18 = (*pcVar9)(local_60);\n                  } while (iVar18 != 0);\n                  local_d8 = (code *******)0xc;\n                  pppppppcVar15 = local_d8;\nLAB_00055e44:\n                  local_d8 = pppppppcVar15;\n                  param_4 = (code *******)0x0;\n                  if (local_50 == (code *******)0x0) {\n                    pppppppcVar14 = param_4;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    break;\n                  }\n                  pppppppcVar30 = (code *******)0x0;\nLAB_000553ac:\n                  pppppppcVar29 = &local_b4;\n                  pppppppcVar14 = (code *******)FUN_00053684(&local_d8);\nLAB_000553cc:\n                  param_4 = pppppppcVar14;\n                  if (pppppppcVar14 == (code *******)0x0) {\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    if ((local_50 == (code *******)0x0) ||\n                       ((pppppppcVar28 != (code *******)0x0 && (pppppppcVar34 == (code *******)0x0))\n                       )) break;\n                    param_6 = &local_b4;\n                    param_5 = (code *******)&local_d8;\n                    pppppppcVar31 = (code *******)(PTR_DAT_000799a4 + 0x3684);\n                    do {\n                      pppppppcVar15 = local_50 + (int)local_8c;\n                      pppppppcVar42 = local_8c;\n                      do {\n                        pppppppcVar42 = (code *******)((int)pppppppcVar42 + 1);\n                        pppppppcVar29 = local_4c;\n                        param_4 = pppppppcVar14;\n                        if ((int)local_4c < (int)pppppppcVar42) goto LAB_00055da8;\n                        local_8c = (code *******)((int)local_8c + 1);\n                        pppppppcVar15 = pppppppcVar15 + 1;\n                      } while (*pppppppcVar15 == (code ******)0x0);\n                      pppppppcVar30 = (code *******)0x0;\n                      pppppppcVar29 = param_6;\n                      param_4 = (code *******)(*(code *)pppppppcVar31)(param_5);\n                      if (local_d8 != (code *******)0x0) {\n                        if (param_4 == (code *******)0x0) goto LAB_00055da8;\n                        break;\n                      }\n                      pppppppcVar29 = local_4c;\n                    } while (param_4 == (code *******)0x0);\n                  }\n                  pppppppcVar15 = (code *******)((uint)unaff_s7 ^ (uint)param_4);\n                  pppppppcVar42 = unaff_s7;\n                  pppppppcVar14 = local_138;\n                  if ((bVar1) &&\n                     (pppppppcVar42 = pppppppcVar15, pppppppcVar14 = unaff_s5,\n                     pppppppcVar15 != (code *******)0x0)) {\n                    bVar1 = false;\n                    pppppppcVar14 = local_138;\n                  }\n                  local_138 = pppppppcVar14;\n                  unaff_s7 = param_4;\n                  if ((((uint)param_4[0xd] & 0x8000000) != 0) &&\n                     ((((uint)param_4[0xd] & 0x1000000) == 0 ||\n                      (pppppppcVar29 = param_4, pppppppcVar30 = local_8c,\n                      iVar18 = FUN_00049440(&local_b4), iVar18 != 0)))) {\n                    unaff_s7 = pppppppcVar42;\n                    unaff_s8 = local_8c;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                    local_144 = (code *******)0x0;\n                    unaff_s7 = param_4;\n                  }\n                }\nLAB_00055da8:\n                if (local_144 != (code *******)0x0) {\n                  *local_144 = (code ******)((int)local_138 + (int)*local_144);\n                }\n              }\n              else {\n                param_4 = unaff_s7 + 1;\n                pppppppcVar30 = (code *******)0x0;\n                pppppppcVar29 = param_4;\n                local_d8 = (code *******)FUN_00047a44(&local_b4);\n                unaff_s8 = local_d8;\n                if (local_d8 == (code *******)0x0) {\n                  if (((uint)unaff_s7[0xd] & 0x2000000) == 0) {\n                    pppppppcVar29 = param_4;\n                    bVar1 = false;\n                  }\n                  else {\n                    pppppppcVar29 = param_4;\n                    local_d8 = (code *******)FUN_00052d84(&local_b4);\n                    unaff_s8 = local_d8;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055dbc;\n                    bVar1 = false;\n                  }\n                  goto LAB_00054d50;\n                }\n              }\nLAB_00055dbc:\n              if (unaff_s8 == (code *******)0xffffffff) {\nLAB_00055b04:\n                FUN_0004b7e8(&local_b4);\nLAB_00055b1c:\n                local_dc = (code *******)((int)pppppppcVar24 + (int)local_dc);\n                if ((int)pppppppcVar25 <= (int)local_dc) goto code_r0x00055b38;\n                local_150 = (code *******)0x1;\n                goto LAB_000557e4;\n              }\n              if (unaff_s8 == (code *******)&SUB_fffffffe) {\n                local_150 = (code *******)0xc;\n                goto LAB_000557e4;\n              }\n              local_58 = unaff_s8;\n              if (((uint)param_1[7] & 0x8000000) == 0) {\n                if (pppppppcVar3 < (code *******)0x2) {\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055c08;\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                else {\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                if (pppppppcVar3 < (code *******)0x2) {\nLAB_00055c6c:\n                  pppppppcVar28 = pppppppcVar33;\n                  unaff_s4 = local_60;\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055548;\n                }\n                else {\n                  cVar23 = *(code *)(pppppppcVar38 + 0x16);\nLAB_00055c20:\n                  pppppppcVar28 = pppppppcVar33;\n                  if (-1 < (char)cVar23) goto LAB_00055c6c;\n                }\n                pppppppcVar31 = local_54;\n                pppppppcVar42 = local_60;\n                unaff_s4 = pppppppcVar42;\n                if (unaff_s8 < (code *******)0x3fffffff) {\n                  param_4 = (code *******)((int)((int)unaff_s8 + 1) * 4);\n                  unaff_s5 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                  if (unaff_s5 == (code *******)0x0) {\nLAB_00055b9c:\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    local_150 = (code *******)0xc;\n                    pppppppcVar33 = pppppppcVar28;\n                  }\n                  else {\n                    pppppppcVar29 = (code *******)&local_d0;\n                    if (pppppppcVar42[0x13] == (code ******)0x0) {\n                      local_cc = (code *******)0x0;\n                      local_c8 = pppppppcVar31;\n                      local_c0 = 0;\n                      local_bc = 0;\n                      local_b8 = 0;\n                      local_d0 = unaff_s5;\n                      local_c4 = unaff_s8;\n                      param_5 = (code *******)FUN_0005421c(&local_b4);\n                      (*(code *)PTR_free_00079c24)(local_b8);\n                      if (param_5 == (code *******)0x0) {\n                        param_4 = (code *******)*unaff_s5;\n                        if (param_4 == (code *******)0x0) {\nLAB_00055b70:\n                          (*(code *)PTR_free_00079c24)(unaff_s5);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          pppppppcVar33 = pppppppcVar28;\n                          goto LAB_00055b04;\n                        }\nLAB_00055528:\n                        (*(code *)PTR_free_00079c24)(local_50);\n                        pppppppcVar33 = pppppppcVar28;\n                        unaff_s4 = pppppppcVar42;\n                        local_58 = unaff_s8;\n                        local_54 = pppppppcVar31;\n                        local_50 = unaff_s5;\n                        goto LAB_00055548;\n                      }\nLAB_00055acc:\n                      param_4 = (code *******)0x0;\n                      pppppppcVar33 = pppppppcVar28;\n                      unaff_s4 = pppppppcVar42;\n                    }\n                    else {\n                      param_4 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                      if (param_4 == (code *******)0x0) goto LAB_00055b9c;\n                      unaff_s7 = (code *******)&local_d0;\n                      pcVar8 = (code *)(PTR_DAT_000799a4 + 0x421c);\n                      pcVar9 = (code *)(PTR_DAT_000799a4 + -0x6bc0);\n                      pppppppcVar33 = pppppppcVar28;\n                      while( true ) {\n                        pppppppcVar28 = (code *******)((int)unaff_s8 + 1);\n                        param_6 = (code *******)((int)pppppppcVar28 * 4);\n                        pppppppcVar30 = param_6;\n                        (*(code *)PTR_memset_00079b00)(param_4,0);\n                        local_c0 = 0;\n                        local_bc = 0;\n                        local_b8 = 0;\n                        pppppppcVar29 = unaff_s7;\n                        local_d0 = unaff_s5;\n                        local_cc = param_4;\n                        local_c8 = pppppppcVar31;\n                        local_c4 = unaff_s8;\n                        param_5 = (code *******)(*pcVar8)(&local_b4);\n                        (*(code *)PTR_free_00079c24)(local_b8);\n                        unaff_s4 = pppppppcVar28;\n                        if (param_5 != (code *******)0x0) break;\n                        if ((*unaff_s5 != (code ******)0x0) ||\n                           (param_6 = param_6 + -1, *param_4 != (code ******)0x0)) {\n                          pppppppcVar29 = unaff_s5;\n                          pppppppcVar30 = param_4;\n                          param_5 = (code *******)FUN_000520d0(pppppppcVar42);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          if (param_5 != (code *******)0x0) goto LAB_00055acc;\n                          goto LAB_00055528;\n                        }\n                        param_6 = (code *******)((int)local_50 + (int)param_6);\n                        do {\n                          while( true ) {\n                            unaff_s8 = (code *******)((int)unaff_s8 + -1);\n                            if ((int)unaff_s8 < 0) goto LAB_00055b70;\n                            pppppppcVar29 = (code *******)param_6[-1];\n                            if (pppppppcVar29 != (code *******)0x0) break;\n                            param_6 = param_6 + -1;\n                          }\n                          param_6 = param_6 + -1;\n                        } while (((uint)pppppppcVar29[0xd] & 0x8000000) == 0);\n                        pppppppcVar31 = (code *******)(*pcVar9)(&local_b4,pppppppcVar29,unaff_s8);\n                        pppppppcVar33 = pppppppcVar28;\n                      }\n                    }\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    (*(code *)PTR_free_00079c24)(param_4);\n                    local_150 = param_5;\n                    if (param_5 == (code *******)0x1) goto LAB_00055b04;\n                  }\n                }\n                else {\n                  local_150 = (code *******)0xc;\n                  pppppppcVar33 = pppppppcVar28;\n                }\n                goto LAB_000557e4;\n              }\n              if (pppppppcVar38[0x13] != (code ******)0x0) {\n                pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                pppppppcVar30 = unaff_s8;\n                local_54 = (code *******)FUN_00049440(&local_b4);\n                goto LAB_00055c6c;\n              }\nLAB_00055c08:\n              if ((((uint)param_1[7] & 0x8000000) == 0) && ((code *******)0x1 < pppppppcVar3)) {\n                cVar23 = *(code *)(pppppppcVar38 + 0x16);\n                goto LAB_00055c20;\n              }\nLAB_00055548:\n              if (pppppppcVar3 == (code *******)0x0) goto LAB_000557e4;\n              if (pppppppcVar3 < (code *******)0x2) {\n                *param_8 = (code ******)0x0;\n                param_8[1] = (code ******)local_58;\n                goto LAB_000555ac;\n              }\n              pppppppcVar29 = param_8 + 2;\n              do {\n                pppppppcVar29[1] = (code ******)0xffffffff;\n                *pppppppcVar29 = (code ******)0xffffffff;\n                pppppppcVar29 = pppppppcVar29 + 2;\n              } while (pppppppcVar29 != param_8 + (int)pppppppcVar3 * 2);\n              *param_8 = (code ******)0x0;\n              param_8[1] = (code ******)local_58;\n              if (((uint)param_1[7] & 0x8000000) != 0) {\nLAB_000555ac:\n                pppppppcVar33 = param_8;\n                do {\n                  pppppppcVar29 = (code *******)*pppppppcVar33;\n                  if (pppppppcVar29 != (code *******)0xffffffff) {\n                    if (local_68 != '\0') {\n                      pppppppcVar34 = local_94;\n                      if (pppppppcVar29 != local_98) {\n                        pppppppcVar34 = *(code ********)(local_a8 + (int)pppppppcVar29 * 4);\n                      }\n                      *pppppppcVar33 = (code ******)pppppppcVar34;\n                      pppppppcVar29 = local_94;\n                      if (local_98 != (code *******)pppppppcVar33[1]) {\n                        pppppppcVar29 = *(code ********)(local_a8 + (int)pppppppcVar33[1] * 4);\n                      }\n                      pppppppcVar33[1] = (code ******)pppppppcVar29;\n                    }\n                    *pppppppcVar33 = (code ******)((int)local_dc + (int)*pppppppcVar33);\n                    pppppppcVar29 = (code *******)((int)local_dc + (int)pppppppcVar33[1]);\n                    pppppppcVar33[1] = (code ******)pppppppcVar29;\n                  }\n                  pppppppcVar33 = pppppppcVar33 + 2;\n                } while (pppppppcVar33 != param_8 + (int)pppppppcVar3 * 2);\n                if (0 < local_118) {\n                  pppppppcVar33 = param_8 + (int)pppppppcVar3 * 2;\n                  do {\n                    *pppppppcVar33 = (code ******)0xffffffff;\n                    pppppppcVar33[1] = (code ******)0xffffffff;\n                    pppppppcVar33 = pppppppcVar33 + 2;\n                  } while (pppppppcVar33 != param_8 + (int)param_7 * 2);\n                }\n                pppppppcVar30 = local_dc;\n                pppppppcVar33 = param_8;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar38[0x21] != (code ******)0x0) {\n                  pppppppcVar30 = (code *******)((int)pppppppcVar3 + -1);\n                  pppppppcVar34 = (code *******)0x0;\n                  pppppppcVar3 = param_8;\n                  while( true ) {\n                    pppppppcVar29 = (code *******)((int)pppppppcVar34 * 4);\n                    if (pppppppcVar30 == pppppppcVar34) break;\n                    if (*(code ********)((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) !=\n                        pppppppcVar34) {\n                      pppppppcVar3[2] =\n                           param_8[(int)((int)*(code ********)\n                                               ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1)\n                                   * 2];\n                      pppppppcVar3[3] =\n                           param_8[((int)*(code ******)\n                                          ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1) * 2 +\n                                   1];\n                    }\n                    pppppppcVar34 = (code *******)((int)pppppppcVar34 + 1);\n                    pppppppcVar3 = pppppppcVar3 + 2;\n                  }\n                }\n                goto LAB_000557e4;\n              }\n              if ((char)*(code *)(pppppppcVar38 + 0x16) < '\0') {\n                local_168 = (uint)(0 < (int)pppppppcVar38[0x13]);\n              }\n              else {\n                local_168 = 0;\n              }\n              pppppppcVar29 = &local_b4;\n              pppppppcVar30 = pppppppcVar3;\n              pppppppcVar33 = param_8;\n              local_150 = (code *******)FUN_0004f4a0(param_1);\n              if (local_150 == (code *******)0x0) goto LAB_000555ac;\n            }" if (parenthesized_expression "((int)pppppppcVar26 < (int)param_4)" ( (binary_expression "(int)pppppppcVar26 < (int)param_4" (cast_expression "(int)pppppppcVar26" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)param_4" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n              local_150 = (code *******)0x1;\n              param_4 = (code *******)(uint)((int)param_5 < (int)param_4);\n              param_6 = pppppppcVar36;\n            }" { (expression_statement "local_150 = (code *******)0x1;" (assignment_expression "local_150 = (code *******)0x1" identifier = (cast_expression "(code *******)0x1" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "param_4 = (code *******)(uint)((int)param_5 < (int)param_4);" (assignment_expression "param_4 = (code *******)(uint)((int)param_5 < (int)param_4)" identifier = (cast_expression "(code *******)(uint)((int)param_5 < (int)param_4)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "(uint)((int)param_5 < (int)param_4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)param_5 < (int)param_4)" ( (binary_expression "(int)param_5 < (int)param_4" (cast_expression "(int)param_5" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)param_4" ( (type_descriptor "int" primitive_type) ) identifier)) ))))) ;) (expression_statement "param_6 = pppppppcVar36;" (assignment_expression "param_6 = pppppppcVar36" identifier = identifier) ;) }) (else_clause "else {\n              pppppppcVar36 = (code *******)&local_dc;\n              if ((code *******)(uint)((int)param_5 < (int)param_4) != (code *******)0x0) {\n                pppppppcVar36 = (code *******)0x0;\n              }\n              pcVar4 = (code *)(PTR_DAT_000799a4 + -0x2b7c);\n              piVar5 = (int *)(PTR_s_nt0_000795b8 + (uVar16 - 4) * 4 + 0x6e38);\nLAB_00055b44:\n              if (uVar16 - 4 < 5) {\n                    /* WARNING: Could not emulate address calculation at 0x00054920 */\n                    /* WARNING: Treating indirect jump as call */\n                pppppppcVar29 = (code *******)(*(code *)(&_gp_1 + *piVar5))();\n                return pppppppcVar29;\n              }\n              param_5 = &local_b4;\n              pppppppcVar28 = pppppppcVar33;\n              while( true ) {\n                param_4 = local_dc;\n                pppppppcVar33 = (code *******)((int)local_dc - local_9c);\n                pppppppcVar30 = param_9;\n                pppppppcVar31 = pppppppcVar2;\n                param_6 = local_148;\n                unaff_s4 = param_3;\n                unaff_s5 = pppppppcVar24;\n                unaff_s7 = pppppppcVar26;\n                if (local_94 <= pppppppcVar33) {\n                  pppppppcVar29 = local_dc;\n                  local_150 = (code *******)(*pcVar4)(param_5);\n                  pppppppcVar33 = pppppppcVar28;\n                  if (local_150 != (code *******)0x0) goto LAB_000557e4;\n                  pppppppcVar33 = (code *******)((int)param_4 - local_9c);\n                }\n                if ((int)param_4 < (int)param_3) {\n                  uVar7 = (uint)(byte)*(code *)((int)pppppppcVar33 + (int)local_b0);\n                }\n                else {\n                  uVar7 = 0;\n                }\n                param_4 = (code *******)((int)param_4 + (int)pppppppcVar24);\n                if (*(code *)((int)local_148 + uVar7) != (code)0x0) break;\n                pppppppcVar33 = pppppppcVar28;\n                local_dc = param_4;\n                if ((int)param_4 < (int)pppppppcVar25) {\n                  local_150 = (code *******)0x1;\n                  goto LAB_000557e4;\n                }\n                if ((code *******)(uint)((int)pppppppcVar26 < (int)param_4) != (code *******)0x0) {\n                  local_150 = (code *******)0x1;\n                  param_4 = (code *******)(uint)((int)pppppppcVar26 < (int)param_4);\n                  goto LAB_000557e4;\n                }\n              }\n              while( true ) {\n                pppppppcVar29 = local_dc;\n                pppppppcVar30 = param_9;\n                pppppppcVar6 = (code *******)(*pcVar4)(&local_b4);\n                pppppppcVar14 = local_60;\n                pppppppcVar42 = local_8c;\n                pppppppcVar33 = pppppppcVar28;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar6 != (code *******)0x0) goto LAB_000557e4;\n                if (((ppppppcVar35 != (code ******)0x1) && (local_98 != (code *******)0x0)) &&\n                   (*local_ac == -1)) goto LAB_00055b1c;\n                local_3c = 0;\n                local_48 = 0;\n                local_4c = (code *******)0x0;\n                local_138 = local_8c;\n                local_d8 = (code *******)0x0;\n                unaff_s7 = (code *******)local_60[9];\n                pppppppcVar30 = local_5c;\n                param_4 = pppppppcVar14;\n                if (((uint)unaff_s7[0xd] & 0x1000000) == 0) break;\n                pppppppcVar29 = (code *******)((int)local_8c + -1);\n                pppppppcVar33 = (code *******)FUN_00049110(&local_b4);\n                if (((uint)pppppppcVar33 & 1) == 0) {\n                  if (pppppppcVar33 == (code *******)0x0) break;\n                  if (((uint)pppppppcVar33 & 6) == 6) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xc];\n                    goto LAB_00054d1c;\n                  }\n                  if (((uint)pppppppcVar33 & 2) != 0) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xb];\n                    goto LAB_00054d1c;\n                  }\n                  pppppppcVar28 = pppppppcVar33;\n                  if (((uint)pppppppcVar33 & 4) == 0) break;\n                  pppppppcVar30 = (code *******)unaff_s7[10];\n                  pppppppcVar29 = pppppppcVar14;\n                  unaff_s7 = (code *******)FUN_0004ae34(&local_d8);\n                  pppppppcVar28 = pppppppcVar33;\n                  if (unaff_s7 != (code *******)0x0) break;\n                  if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                }\n                else {\n                  unaff_s7 = (code *******)pppppppcVar14[10];\nLAB_00054d1c:\n                  pppppppcVar28 = (code *******)PTR_s_nt0_000795b8;\n                  if (unaff_s7 != (code *******)0x0) break;\n                }\n                pppppppcVar28 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                local_dc = (code *******)\n                           (*(code *)PTR___assert_fail_000799f8)\n                                     (PTR_s_nt0_000795b8 + 0x71a0,pppppppcVar29,0x435);\n                if (local_dc == pppppppcVar26) {\n                  if ((int)local_dc < (int)param_3) {\n                    uVar7 = (uint)(byte)*(code *)((int)local_dc + (int)param_2);\n                  }\n                  else {\n                    uVar7 = 0;\n                  }\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    uVar7 = (uint)*(byte *)((int)ppppppcVar32 + uVar7);\n                  }\n                  if (*(code *)((int)local_148 + uVar7) == (code)0x0) {\n                    local_150 = (code *******)0x1;\n                    pppppppcVar30 = param_9;\n                    pppppppcVar33 = pppppppcVar28;\n                    goto LAB_000557e4;\n                  }\n                }\n              }\n              pppppppcVar33 = pppppppcVar28;\n              bVar1 = pppppppcVar36 != (code *******)0x0;\n              if ((local_50 == (code *******)0x0) ||\n                 (local_50[(int)pppppppcVar42] = (code ******)unaff_s7,\n                 pppppppcVar14[0x13] == (code ******)0x0)) {\nLAB_00054d50:\n                if ((int)unaff_s7[0xd] << 4 < 0) {\n                  if ((((uint)unaff_s7[0xd] & 0x1000000) == 0) ||\n                     (pppppppcVar29 = unaff_s7, pppppppcVar30 = pppppppcVar42,\n                     iVar18 = FUN_00049440(&local_b4), iVar18 != 0)) {\n                    unaff_s8 = pppppppcVar42;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                  }\n                  else {\n                    pppppppcVar42 = (code *******)0xffffffff;\n                    pppppppcVar28 = (code *******)0x0;\n                  }\n                }\n                else {\n                  pppppppcVar42 = (code *******)0xffffffff;\n                  pppppppcVar28 = (code *******)0x0;\n                }\n                pcVar8 = (code *)(PTR_DAT_000799a4 + -0x7144);\n                pcVar9 = (code *)(PTR_DAT_000799a4 + -0x1980);\n                pcVar10 = (code *)(PTR_DAT_000799a4 + -0x2f9c);\n                unaff_s8 = pppppppcVar42;\n                local_144 = pppppppcVar36;\n                while( true ) {\n                  uVar44 = CONCAT44(local_98,local_84);\n                  unaff_s5 = (code *******)((int)local_8c + 1);\n                  pppppppcVar29 = local_8c;\n                  if ((int)local_7c <= (int)local_8c) break;\n                  if (((int)local_90 <= (int)unaff_s5) && ((int)local_90 < (int)local_84))\n                  goto LAB_00054e94;\n                  if ((int)local_98 <= (int)unaff_s5) {\n                    while ((int)((ulonglong)uVar44 >> 0x20) < (int)uVar44) {\nLAB_00054e94:\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 2);\n                      local_d8 = (code *******)(*pcVar8)(&local_b4);\n                      if (local_d8 == (code *******)0x0) break;\n                      pppppppcVar14 = param_4;\n                      if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                      pppppppcVar33 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                      pppppppcVar30 = (code *******)0x46c;\n                      pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                      uVar44 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0);\n                      pppppppcVar28 = pppppppcVar38;\n                    }\n                  }\n                  pppppppcVar42 = local_60;\n                  if ((int)unaff_s7[0xd] << 5 < 0) {\n                    pppppppcVar31 = pppppppcVar42;\n                    if (0 < (int)unaff_s7[2]) {\n                      pcVar11 = (code *)(PTR_DAT_000799a4 + -0x6fdc);\n                      pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6ef0);\n                      param_6 = (code *******)0x0;\n                      do {\n                        param_5 = (code *******)unaff_s7[3][(int)param_6];\n                        ppppppcVar39 = *pppppppcVar42;\n                        pppppcVar13 = ppppppcVar39[(int)param_5 * 2 + 1];\n                        if (((uint)pppppcVar13 & 0x800) != 0) {\n                          if (((uint)pppppcVar13 & 0xffc000) != 0) {\n                            pppppppcVar29 = local_8c;\n                            uVar19 = (*pcVar12)(&local_b4,local_8c,local_5c);\n                            uVar7 = (uint)((int)ppppppcVar39[(int)param_5 * 2 + 1] << 8) >> 0x16;\n                            if ((uVar7 & 4) == 0) {\n                              uVar27 = uVar19 & 1;\n                              if ((uVar7 & 8) != 0) goto joined_r0x00054f40;\n                            }\n                            else {\n                              uVar27 = uVar7 & 8;\n                              if ((uVar19 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                              if (uVar27 != 0) goto LAB_000550a4;\n                            }\n                            if ((((uVar7 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                               (((uVar7 & 0x80) != 0 &&\n                                (pppppppcVar33 = local_8c, (uVar19 & 8) == 0)))) goto LAB_000550a4;\n                          }\n                          pppppppcVar30 = &local_b4;\n                          pppppppcVar29 = param_5;\n                          pppppppcVar33 = local_8c;\n                          iVar18 = (*pcVar10)(pppppppcVar42);\n                          if (iVar18 != 0) {\n                            pppppppcVar14 = (code *******)((int)local_8c + iVar18);\n                            if (iVar18 <= local_3c) {\n                              iVar18 = local_3c;\n                            }\n                            pppppppcVar29 = pppppppcVar14;\n                            local_3c = iVar18;\n                            local_d4 = (code *******)(*pcVar11)(&local_b4);\n                            pppppppcVar15 = local_d4;\n                            if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                            pppppppcVar30 =\n                                 (code *******)\n                                 (pppppppcVar42[6] + (int)pppppppcVar42[3][(int)param_5] * 3);\n                            unaff_s4 = (code *******)((int)pppppppcVar14 * 4);\n                            param_5 = local_50 + (int)pppppppcVar14;\n                            if (*param_5 == (code ******)0x0) {\n                              local_d0 = (code *******)*pppppppcVar30;\n                              local_cc = (code *******)pppppppcVar30[1];\n                              local_c8 = (code *******)pppppppcVar30[2];\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *param_5 = ppppppcVar39;\n                            }\n                            else {\n                              pppppppcVar29 = (code *******)(*param_5)[10];\n                              local_d4 = (code *******)FUN_000484bc(&local_d0);\n                              pppppppcVar15 = local_d4;\n                              if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar15 = local_50 + (int)pppppppcVar14;\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *pppppppcVar15 = ppppppcVar39;\n                              (*(code *)PTR_free_00079c24)(local_c8);\n                            }\n                            unaff_s4 = local_50 + (int)pppppppcVar14;\n                            if ((*unaff_s4 == (code ******)0x0) &&\n                               (pppppppcVar15 = local_d4, local_d4 != (code *******)0x0))\n                            goto LAB_00055e44;\n                          }\n                        }\nLAB_000550a4:\n                        param_6 = (code *******)((int)param_6 + 1);\n                      } while ((int)param_6 < (int)unaff_s7[2]);\n                    }\n                    local_d8 = (code *******)0x0;\n                  }\n                  uVar7 = (uint)(byte)*(code *)((int)local_8c + (int)local_b0);\n                  local_8c = (code *******)((int)local_8c + 1);\n                  do {\n                    if (unaff_s7[0xb] != (code ******)0x0) {\n                      pppppppcVar30 = (code *******)unaff_s7[0xb][uVar7];\nLAB_000553a0:\n                      pppppppcVar14 = pppppppcVar30;\n                      if (local_50 != (code *******)0x0) goto LAB_000553ac;\n                      goto LAB_000553cc;\n                    }\n                    pppppppcVar31 = (code *******)unaff_s7[0xc];\n                    if (pppppppcVar31 != (code *******)0x0) {\n                      pppppppcVar29 = (code *******)((int)local_8c + -1);\n                      uVar19 = FUN_00049110(&local_b4);\n                      if ((uVar19 & 1) == 0) {\n                        pppppppcVar30 = (code *******)pppppppcVar31[uVar7];\n                      }\n                      else {\n                        pppppppcVar31 = pppppppcVar31 + uVar7 + 0x100;\n                        pppppppcVar30 = (code *******)*pppppppcVar31;\n                      }\n                      goto LAB_000553a0;\n                    }\n                    pppppppcVar29 = unaff_s7;\n                    pppppppcVar30 = local_5c;\n                    iVar18 = (*pcVar9)(local_60);\n                  } while (iVar18 != 0);\n                  local_d8 = (code *******)0xc;\n                  pppppppcVar15 = local_d8;\nLAB_00055e44:\n                  local_d8 = pppppppcVar15;\n                  param_4 = (code *******)0x0;\n                  if (local_50 == (code *******)0x0) {\n                    pppppppcVar14 = param_4;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    break;\n                  }\n                  pppppppcVar30 = (code *******)0x0;\nLAB_000553ac:\n                  pppppppcVar29 = &local_b4;\n                  pppppppcVar14 = (code *******)FUN_00053684(&local_d8);\nLAB_000553cc:\n                  param_4 = pppppppcVar14;\n                  if (pppppppcVar14 == (code *******)0x0) {\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    if ((local_50 == (code *******)0x0) ||\n                       ((pppppppcVar28 != (code *******)0x0 && (pppppppcVar34 == (code *******)0x0))\n                       )) break;\n                    param_6 = &local_b4;\n                    param_5 = (code *******)&local_d8;\n                    pppppppcVar31 = (code *******)(PTR_DAT_000799a4 + 0x3684);\n                    do {\n                      pppppppcVar15 = local_50 + (int)local_8c;\n                      pppppppcVar42 = local_8c;\n                      do {\n                        pppppppcVar42 = (code *******)((int)pppppppcVar42 + 1);\n                        pppppppcVar29 = local_4c;\n                        param_4 = pppppppcVar14;\n                        if ((int)local_4c < (int)pppppppcVar42) goto LAB_00055da8;\n                        local_8c = (code *******)((int)local_8c + 1);\n                        pppppppcVar15 = pppppppcVar15 + 1;\n                      } while (*pppppppcVar15 == (code ******)0x0);\n                      pppppppcVar30 = (code *******)0x0;\n                      pppppppcVar29 = param_6;\n                      param_4 = (code *******)(*(code *)pppppppcVar31)(param_5);\n                      if (local_d8 != (code *******)0x0) {\n                        if (param_4 == (code *******)0x0) goto LAB_00055da8;\n                        break;\n                      }\n                      pppppppcVar29 = local_4c;\n                    } while (param_4 == (code *******)0x0);\n                  }\n                  pppppppcVar15 = (code *******)((uint)unaff_s7 ^ (uint)param_4);\n                  pppppppcVar42 = unaff_s7;\n                  pppppppcVar14 = local_138;\n                  if ((bVar1) &&\n                     (pppppppcVar42 = pppppppcVar15, pppppppcVar14 = unaff_s5,\n                     pppppppcVar15 != (code *******)0x0)) {\n                    bVar1 = false;\n                    pppppppcVar14 = local_138;\n                  }\n                  local_138 = pppppppcVar14;\n                  unaff_s7 = param_4;\n                  if ((((uint)param_4[0xd] & 0x8000000) != 0) &&\n                     ((((uint)param_4[0xd] & 0x1000000) == 0 ||\n                      (pppppppcVar29 = param_4, pppppppcVar30 = local_8c,\n                      iVar18 = FUN_00049440(&local_b4), iVar18 != 0)))) {\n                    unaff_s7 = pppppppcVar42;\n                    unaff_s8 = local_8c;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                    local_144 = (code *******)0x0;\n                    unaff_s7 = param_4;\n                  }\n                }\nLAB_00055da8:\n                if (local_144 != (code *******)0x0) {\n                  *local_144 = (code ******)((int)local_138 + (int)*local_144);\n                }\n              }\n              else {\n                param_4 = unaff_s7 + 1;\n                pppppppcVar30 = (code *******)0x0;\n                pppppppcVar29 = param_4;\n                local_d8 = (code *******)FUN_00047a44(&local_b4);\n                unaff_s8 = local_d8;\n                if (local_d8 == (code *******)0x0) {\n                  if (((uint)unaff_s7[0xd] & 0x2000000) == 0) {\n                    pppppppcVar29 = param_4;\n                    bVar1 = false;\n                  }\n                  else {\n                    pppppppcVar29 = param_4;\n                    local_d8 = (code *******)FUN_00052d84(&local_b4);\n                    unaff_s8 = local_d8;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055dbc;\n                    bVar1 = false;\n                  }\n                  goto LAB_00054d50;\n                }\n              }\nLAB_00055dbc:\n              if (unaff_s8 == (code *******)0xffffffff) {\nLAB_00055b04:\n                FUN_0004b7e8(&local_b4);\nLAB_00055b1c:\n                local_dc = (code *******)((int)pppppppcVar24 + (int)local_dc);\n                if ((int)pppppppcVar25 <= (int)local_dc) goto code_r0x00055b38;\n                local_150 = (code *******)0x1;\n                goto LAB_000557e4;\n              }\n              if (unaff_s8 == (code *******)&SUB_fffffffe) {\n                local_150 = (code *******)0xc;\n                goto LAB_000557e4;\n              }\n              local_58 = unaff_s8;\n              if (((uint)param_1[7] & 0x8000000) == 0) {\n                if (pppppppcVar3 < (code *******)0x2) {\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055c08;\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                else {\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                if (pppppppcVar3 < (code *******)0x2) {\nLAB_00055c6c:\n                  pppppppcVar28 = pppppppcVar33;\n                  unaff_s4 = local_60;\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055548;\n                }\n                else {\n                  cVar23 = *(code *)(pppppppcVar38 + 0x16);\nLAB_00055c20:\n                  pppppppcVar28 = pppppppcVar33;\n                  if (-1 < (char)cVar23) goto LAB_00055c6c;\n                }\n                pppppppcVar31 = local_54;\n                pppppppcVar42 = local_60;\n                unaff_s4 = pppppppcVar42;\n                if (unaff_s8 < (code *******)0x3fffffff) {\n                  param_4 = (code *******)((int)((int)unaff_s8 + 1) * 4);\n                  unaff_s5 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                  if (unaff_s5 == (code *******)0x0) {\nLAB_00055b9c:\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    local_150 = (code *******)0xc;\n                    pppppppcVar33 = pppppppcVar28;\n                  }\n                  else {\n                    pppppppcVar29 = (code *******)&local_d0;\n                    if (pppppppcVar42[0x13] == (code ******)0x0) {\n                      local_cc = (code *******)0x0;\n                      local_c8 = pppppppcVar31;\n                      local_c0 = 0;\n                      local_bc = 0;\n                      local_b8 = 0;\n                      local_d0 = unaff_s5;\n                      local_c4 = unaff_s8;\n                      param_5 = (code *******)FUN_0005421c(&local_b4);\n                      (*(code *)PTR_free_00079c24)(local_b8);\n                      if (param_5 == (code *******)0x0) {\n                        param_4 = (code *******)*unaff_s5;\n                        if (param_4 == (code *******)0x0) {\nLAB_00055b70:\n                          (*(code *)PTR_free_00079c24)(unaff_s5);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          pppppppcVar33 = pppppppcVar28;\n                          goto LAB_00055b04;\n                        }\nLAB_00055528:\n                        (*(code *)PTR_free_00079c24)(local_50);\n                        pppppppcVar33 = pppppppcVar28;\n                        unaff_s4 = pppppppcVar42;\n                        local_58 = unaff_s8;\n                        local_54 = pppppppcVar31;\n                        local_50 = unaff_s5;\n                        goto LAB_00055548;\n                      }\nLAB_00055acc:\n                      param_4 = (code *******)0x0;\n                      pppppppcVar33 = pppppppcVar28;\n                      unaff_s4 = pppppppcVar42;\n                    }\n                    else {\n                      param_4 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                      if (param_4 == (code *******)0x0) goto LAB_00055b9c;\n                      unaff_s7 = (code *******)&local_d0;\n                      pcVar8 = (code *)(PTR_DAT_000799a4 + 0x421c);\n                      pcVar9 = (code *)(PTR_DAT_000799a4 + -0x6bc0);\n                      pppppppcVar33 = pppppppcVar28;\n                      while( true ) {\n                        pppppppcVar28 = (code *******)((int)unaff_s8 + 1);\n                        param_6 = (code *******)((int)pppppppcVar28 * 4);\n                        pppppppcVar30 = param_6;\n                        (*(code *)PTR_memset_00079b00)(param_4,0);\n                        local_c0 = 0;\n                        local_bc = 0;\n                        local_b8 = 0;\n                        pppppppcVar29 = unaff_s7;\n                        local_d0 = unaff_s5;\n                        local_cc = param_4;\n                        local_c8 = pppppppcVar31;\n                        local_c4 = unaff_s8;\n                        param_5 = (code *******)(*pcVar8)(&local_b4);\n                        (*(code *)PTR_free_00079c24)(local_b8);\n                        unaff_s4 = pppppppcVar28;\n                        if (param_5 != (code *******)0x0) break;\n                        if ((*unaff_s5 != (code ******)0x0) ||\n                           (param_6 = param_6 + -1, *param_4 != (code ******)0x0)) {\n                          pppppppcVar29 = unaff_s5;\n                          pppppppcVar30 = param_4;\n                          param_5 = (code *******)FUN_000520d0(pppppppcVar42);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          if (param_5 != (code *******)0x0) goto LAB_00055acc;\n                          goto LAB_00055528;\n                        }\n                        param_6 = (code *******)((int)local_50 + (int)param_6);\n                        do {\n                          while( true ) {\n                            unaff_s8 = (code *******)((int)unaff_s8 + -1);\n                            if ((int)unaff_s8 < 0) goto LAB_00055b70;\n                            pppppppcVar29 = (code *******)param_6[-1];\n                            if (pppppppcVar29 != (code *******)0x0) break;\n                            param_6 = param_6 + -1;\n                          }\n                          param_6 = param_6 + -1;\n                        } while (((uint)pppppppcVar29[0xd] & 0x8000000) == 0);\n                        pppppppcVar31 = (code *******)(*pcVar9)(&local_b4,pppppppcVar29,unaff_s8);\n                        pppppppcVar33 = pppppppcVar28;\n                      }\n                    }\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    (*(code *)PTR_free_00079c24)(param_4);\n                    local_150 = param_5;\n                    if (param_5 == (code *******)0x1) goto LAB_00055b04;\n                  }\n                }\n                else {\n                  local_150 = (code *******)0xc;\n                  pppppppcVar33 = pppppppcVar28;\n                }\n                goto LAB_000557e4;\n              }\n              if (pppppppcVar38[0x13] != (code ******)0x0) {\n                pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                pppppppcVar30 = unaff_s8;\n                local_54 = (code *******)FUN_00049440(&local_b4);\n                goto LAB_00055c6c;\n              }\nLAB_00055c08:\n              if ((((uint)param_1[7] & 0x8000000) == 0) && ((code *******)0x1 < pppppppcVar3)) {\n                cVar23 = *(code *)(pppppppcVar38 + 0x16);\n                goto LAB_00055c20;\n              }\nLAB_00055548:\n              if (pppppppcVar3 == (code *******)0x0) goto LAB_000557e4;\n              if (pppppppcVar3 < (code *******)0x2) {\n                *param_8 = (code ******)0x0;\n                param_8[1] = (code ******)local_58;\n                goto LAB_000555ac;\n              }\n              pppppppcVar29 = param_8 + 2;\n              do {\n                pppppppcVar29[1] = (code ******)0xffffffff;\n                *pppppppcVar29 = (code ******)0xffffffff;\n                pppppppcVar29 = pppppppcVar29 + 2;\n              } while (pppppppcVar29 != param_8 + (int)pppppppcVar3 * 2);\n              *param_8 = (code ******)0x0;\n              param_8[1] = (code ******)local_58;\n              if (((uint)param_1[7] & 0x8000000) != 0) {\nLAB_000555ac:\n                pppppppcVar33 = param_8;\n                do {\n                  pppppppcVar29 = (code *******)*pppppppcVar33;\n                  if (pppppppcVar29 != (code *******)0xffffffff) {\n                    if (local_68 != '\0') {\n                      pppppppcVar34 = local_94;\n                      if (pppppppcVar29 != local_98) {\n                        pppppppcVar34 = *(code ********)(local_a8 + (int)pppppppcVar29 * 4);\n                      }\n                      *pppppppcVar33 = (code ******)pppppppcVar34;\n                      pppppppcVar29 = local_94;\n                      if (local_98 != (code *******)pppppppcVar33[1]) {\n                        pppppppcVar29 = *(code ********)(local_a8 + (int)pppppppcVar33[1] * 4);\n                      }\n                      pppppppcVar33[1] = (code ******)pppppppcVar29;\n                    }\n                    *pppppppcVar33 = (code ******)((int)local_dc + (int)*pppppppcVar33);\n                    pppppppcVar29 = (code *******)((int)local_dc + (int)pppppppcVar33[1]);\n                    pppppppcVar33[1] = (code ******)pppppppcVar29;\n                  }\n                  pppppppcVar33 = pppppppcVar33 + 2;\n                } while (pppppppcVar33 != param_8 + (int)pppppppcVar3 * 2);\n                if (0 < local_118) {\n                  pppppppcVar33 = param_8 + (int)pppppppcVar3 * 2;\n                  do {\n                    *pppppppcVar33 = (code ******)0xffffffff;\n                    pppppppcVar33[1] = (code ******)0xffffffff;\n                    pppppppcVar33 = pppppppcVar33 + 2;\n                  } while (pppppppcVar33 != param_8 + (int)param_7 * 2);\n                }\n                pppppppcVar30 = local_dc;\n                pppppppcVar33 = param_8;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar38[0x21] != (code ******)0x0) {\n                  pppppppcVar30 = (code *******)((int)pppppppcVar3 + -1);\n                  pppppppcVar34 = (code *******)0x0;\n                  pppppppcVar3 = param_8;\n                  while( true ) {\n                    pppppppcVar29 = (code *******)((int)pppppppcVar34 * 4);\n                    if (pppppppcVar30 == pppppppcVar34) break;\n                    if (*(code ********)((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) !=\n                        pppppppcVar34) {\n                      pppppppcVar3[2] =\n                           param_8[(int)((int)*(code ********)\n                                               ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1)\n                                   * 2];\n                      pppppppcVar3[3] =\n                           param_8[((int)*(code ******)\n                                          ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1) * 2 +\n                                   1];\n                    }\n                    pppppppcVar34 = (code *******)((int)pppppppcVar34 + 1);\n                    pppppppcVar3 = pppppppcVar3 + 2;\n                  }\n                }\n                goto LAB_000557e4;\n              }\n              if ((char)*(code *)(pppppppcVar38 + 0x16) < '\0') {\n                local_168 = (uint)(0 < (int)pppppppcVar38[0x13]);\n              }\n              else {\n                local_168 = 0;\n              }\n              pppppppcVar29 = &local_b4;\n              pppppppcVar30 = pppppppcVar3;\n              pppppppcVar33 = param_8;\n              local_150 = (code *******)FUN_0004f4a0(param_1);\n              if (local_150 == (code *******)0x0) goto LAB_000555ac;\n            }" else (compound_statement "{\n              pppppppcVar36 = (code *******)&local_dc;\n              if ((code *******)(uint)((int)param_5 < (int)param_4) != (code *******)0x0) {\n                pppppppcVar36 = (code *******)0x0;\n              }\n              pcVar4 = (code *)(PTR_DAT_000799a4 + -0x2b7c);\n              piVar5 = (int *)(PTR_s_nt0_000795b8 + (uVar16 - 4) * 4 + 0x6e38);\nLAB_00055b44:\n              if (uVar16 - 4 < 5) {\n                    /* WARNING: Could not emulate address calculation at 0x00054920 */\n                    /* WARNING: Treating indirect jump as call */\n                pppppppcVar29 = (code *******)(*(code *)(&_gp_1 + *piVar5))();\n                return pppppppcVar29;\n              }\n              param_5 = &local_b4;\n              pppppppcVar28 = pppppppcVar33;\n              while( true ) {\n                param_4 = local_dc;\n                pppppppcVar33 = (code *******)((int)local_dc - local_9c);\n                pppppppcVar30 = param_9;\n                pppppppcVar31 = pppppppcVar2;\n                param_6 = local_148;\n                unaff_s4 = param_3;\n                unaff_s5 = pppppppcVar24;\n                unaff_s7 = pppppppcVar26;\n                if (local_94 <= pppppppcVar33) {\n                  pppppppcVar29 = local_dc;\n                  local_150 = (code *******)(*pcVar4)(param_5);\n                  pppppppcVar33 = pppppppcVar28;\n                  if (local_150 != (code *******)0x0) goto LAB_000557e4;\n                  pppppppcVar33 = (code *******)((int)param_4 - local_9c);\n                }\n                if ((int)param_4 < (int)param_3) {\n                  uVar7 = (uint)(byte)*(code *)((int)pppppppcVar33 + (int)local_b0);\n                }\n                else {\n                  uVar7 = 0;\n                }\n                param_4 = (code *******)((int)param_4 + (int)pppppppcVar24);\n                if (*(code *)((int)local_148 + uVar7) != (code)0x0) break;\n                pppppppcVar33 = pppppppcVar28;\n                local_dc = param_4;\n                if ((int)param_4 < (int)pppppppcVar25) {\n                  local_150 = (code *******)0x1;\n                  goto LAB_000557e4;\n                }\n                if ((code *******)(uint)((int)pppppppcVar26 < (int)param_4) != (code *******)0x0) {\n                  local_150 = (code *******)0x1;\n                  param_4 = (code *******)(uint)((int)pppppppcVar26 < (int)param_4);\n                  goto LAB_000557e4;\n                }\n              }\n              while( true ) {\n                pppppppcVar29 = local_dc;\n                pppppppcVar30 = param_9;\n                pppppppcVar6 = (code *******)(*pcVar4)(&local_b4);\n                pppppppcVar14 = local_60;\n                pppppppcVar42 = local_8c;\n                pppppppcVar33 = pppppppcVar28;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar6 != (code *******)0x0) goto LAB_000557e4;\n                if (((ppppppcVar35 != (code ******)0x1) && (local_98 != (code *******)0x0)) &&\n                   (*local_ac == -1)) goto LAB_00055b1c;\n                local_3c = 0;\n                local_48 = 0;\n                local_4c = (code *******)0x0;\n                local_138 = local_8c;\n                local_d8 = (code *******)0x0;\n                unaff_s7 = (code *******)local_60[9];\n                pppppppcVar30 = local_5c;\n                param_4 = pppppppcVar14;\n                if (((uint)unaff_s7[0xd] & 0x1000000) == 0) break;\n                pppppppcVar29 = (code *******)((int)local_8c + -1);\n                pppppppcVar33 = (code *******)FUN_00049110(&local_b4);\n                if (((uint)pppppppcVar33 & 1) == 0) {\n                  if (pppppppcVar33 == (code *******)0x0) break;\n                  if (((uint)pppppppcVar33 & 6) == 6) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xc];\n                    goto LAB_00054d1c;\n                  }\n                  if (((uint)pppppppcVar33 & 2) != 0) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xb];\n                    goto LAB_00054d1c;\n                  }\n                  pppppppcVar28 = pppppppcVar33;\n                  if (((uint)pppppppcVar33 & 4) == 0) break;\n                  pppppppcVar30 = (code *******)unaff_s7[10];\n                  pppppppcVar29 = pppppppcVar14;\n                  unaff_s7 = (code *******)FUN_0004ae34(&local_d8);\n                  pppppppcVar28 = pppppppcVar33;\n                  if (unaff_s7 != (code *******)0x0) break;\n                  if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                }\n                else {\n                  unaff_s7 = (code *******)pppppppcVar14[10];\nLAB_00054d1c:\n                  pppppppcVar28 = (code *******)PTR_s_nt0_000795b8;\n                  if (unaff_s7 != (code *******)0x0) break;\n                }\n                pppppppcVar28 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                local_dc = (code *******)\n                           (*(code *)PTR___assert_fail_000799f8)\n                                     (PTR_s_nt0_000795b8 + 0x71a0,pppppppcVar29,0x435);\n                if (local_dc == pppppppcVar26) {\n                  if ((int)local_dc < (int)param_3) {\n                    uVar7 = (uint)(byte)*(code *)((int)local_dc + (int)param_2);\n                  }\n                  else {\n                    uVar7 = 0;\n                  }\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    uVar7 = (uint)*(byte *)((int)ppppppcVar32 + uVar7);\n                  }\n                  if (*(code *)((int)local_148 + uVar7) == (code)0x0) {\n                    local_150 = (code *******)0x1;\n                    pppppppcVar30 = param_9;\n                    pppppppcVar33 = pppppppcVar28;\n                    goto LAB_000557e4;\n                  }\n                }\n              }\n              pppppppcVar33 = pppppppcVar28;\n              bVar1 = pppppppcVar36 != (code *******)0x0;\n              if ((local_50 == (code *******)0x0) ||\n                 (local_50[(int)pppppppcVar42] = (code ******)unaff_s7,\n                 pppppppcVar14[0x13] == (code ******)0x0)) {\nLAB_00054d50:\n                if ((int)unaff_s7[0xd] << 4 < 0) {\n                  if ((((uint)unaff_s7[0xd] & 0x1000000) == 0) ||\n                     (pppppppcVar29 = unaff_s7, pppppppcVar30 = pppppppcVar42,\n                     iVar18 = FUN_00049440(&local_b4), iVar18 != 0)) {\n                    unaff_s8 = pppppppcVar42;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                  }\n                  else {\n                    pppppppcVar42 = (code *******)0xffffffff;\n                    pppppppcVar28 = (code *******)0x0;\n                  }\n                }\n                else {\n                  pppppppcVar42 = (code *******)0xffffffff;\n                  pppppppcVar28 = (code *******)0x0;\n                }\n                pcVar8 = (code *)(PTR_DAT_000799a4 + -0x7144);\n                pcVar9 = (code *)(PTR_DAT_000799a4 + -0x1980);\n                pcVar10 = (code *)(PTR_DAT_000799a4 + -0x2f9c);\n                unaff_s8 = pppppppcVar42;\n                local_144 = pppppppcVar36;\n                while( true ) {\n                  uVar44 = CONCAT44(local_98,local_84);\n                  unaff_s5 = (code *******)((int)local_8c + 1);\n                  pppppppcVar29 = local_8c;\n                  if ((int)local_7c <= (int)local_8c) break;\n                  if (((int)local_90 <= (int)unaff_s5) && ((int)local_90 < (int)local_84))\n                  goto LAB_00054e94;\n                  if ((int)local_98 <= (int)unaff_s5) {\n                    while ((int)((ulonglong)uVar44 >> 0x20) < (int)uVar44) {\nLAB_00054e94:\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 2);\n                      local_d8 = (code *******)(*pcVar8)(&local_b4);\n                      if (local_d8 == (code *******)0x0) break;\n                      pppppppcVar14 = param_4;\n                      if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                      pppppppcVar33 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                      pppppppcVar30 = (code *******)0x46c;\n                      pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                      uVar44 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0);\n                      pppppppcVar28 = pppppppcVar38;\n                    }\n                  }\n                  pppppppcVar42 = local_60;\n                  if ((int)unaff_s7[0xd] << 5 < 0) {\n                    pppppppcVar31 = pppppppcVar42;\n                    if (0 < (int)unaff_s7[2]) {\n                      pcVar11 = (code *)(PTR_DAT_000799a4 + -0x6fdc);\n                      pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6ef0);\n                      param_6 = (code *******)0x0;\n                      do {\n                        param_5 = (code *******)unaff_s7[3][(int)param_6];\n                        ppppppcVar39 = *pppppppcVar42;\n                        pppppcVar13 = ppppppcVar39[(int)param_5 * 2 + 1];\n                        if (((uint)pppppcVar13 & 0x800) != 0) {\n                          if (((uint)pppppcVar13 & 0xffc000) != 0) {\n                            pppppppcVar29 = local_8c;\n                            uVar19 = (*pcVar12)(&local_b4,local_8c,local_5c);\n                            uVar7 = (uint)((int)ppppppcVar39[(int)param_5 * 2 + 1] << 8) >> 0x16;\n                            if ((uVar7 & 4) == 0) {\n                              uVar27 = uVar19 & 1;\n                              if ((uVar7 & 8) != 0) goto joined_r0x00054f40;\n                            }\n                            else {\n                              uVar27 = uVar7 & 8;\n                              if ((uVar19 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                              if (uVar27 != 0) goto LAB_000550a4;\n                            }\n                            if ((((uVar7 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                               (((uVar7 & 0x80) != 0 &&\n                                (pppppppcVar33 = local_8c, (uVar19 & 8) == 0)))) goto LAB_000550a4;\n                          }\n                          pppppppcVar30 = &local_b4;\n                          pppppppcVar29 = param_5;\n                          pppppppcVar33 = local_8c;\n                          iVar18 = (*pcVar10)(pppppppcVar42);\n                          if (iVar18 != 0) {\n                            pppppppcVar14 = (code *******)((int)local_8c + iVar18);\n                            if (iVar18 <= local_3c) {\n                              iVar18 = local_3c;\n                            }\n                            pppppppcVar29 = pppppppcVar14;\n                            local_3c = iVar18;\n                            local_d4 = (code *******)(*pcVar11)(&local_b4);\n                            pppppppcVar15 = local_d4;\n                            if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                            pppppppcVar30 =\n                                 (code *******)\n                                 (pppppppcVar42[6] + (int)pppppppcVar42[3][(int)param_5] * 3);\n                            unaff_s4 = (code *******)((int)pppppppcVar14 * 4);\n                            param_5 = local_50 + (int)pppppppcVar14;\n                            if (*param_5 == (code ******)0x0) {\n                              local_d0 = (code *******)*pppppppcVar30;\n                              local_cc = (code *******)pppppppcVar30[1];\n                              local_c8 = (code *******)pppppppcVar30[2];\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *param_5 = ppppppcVar39;\n                            }\n                            else {\n                              pppppppcVar29 = (code *******)(*param_5)[10];\n                              local_d4 = (code *******)FUN_000484bc(&local_d0);\n                              pppppppcVar15 = local_d4;\n                              if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar15 = local_50 + (int)pppppppcVar14;\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *pppppppcVar15 = ppppppcVar39;\n                              (*(code *)PTR_free_00079c24)(local_c8);\n                            }\n                            unaff_s4 = local_50 + (int)pppppppcVar14;\n                            if ((*unaff_s4 == (code ******)0x0) &&\n                               (pppppppcVar15 = local_d4, local_d4 != (code *******)0x0))\n                            goto LAB_00055e44;\n                          }\n                        }\nLAB_000550a4:\n                        param_6 = (code *******)((int)param_6 + 1);\n                      } while ((int)param_6 < (int)unaff_s7[2]);\n                    }\n                    local_d8 = (code *******)0x0;\n                  }\n                  uVar7 = (uint)(byte)*(code *)((int)local_8c + (int)local_b0);\n                  local_8c = (code *******)((int)local_8c + 1);\n                  do {\n                    if (unaff_s7[0xb] != (code ******)0x0) {\n                      pppppppcVar30 = (code *******)unaff_s7[0xb][uVar7];\nLAB_000553a0:\n                      pppppppcVar14 = pppppppcVar30;\n                      if (local_50 != (code *******)0x0) goto LAB_000553ac;\n                      goto LAB_000553cc;\n                    }\n                    pppppppcVar31 = (code *******)unaff_s7[0xc];\n                    if (pppppppcVar31 != (code *******)0x0) {\n                      pppppppcVar29 = (code *******)((int)local_8c + -1);\n                      uVar19 = FUN_00049110(&local_b4);\n                      if ((uVar19 & 1) == 0) {\n                        pppppppcVar30 = (code *******)pppppppcVar31[uVar7];\n                      }\n                      else {\n                        pppppppcVar31 = pppppppcVar31 + uVar7 + 0x100;\n                        pppppppcVar30 = (code *******)*pppppppcVar31;\n                      }\n                      goto LAB_000553a0;\n                    }\n                    pppppppcVar29 = unaff_s7;\n                    pppppppcVar30 = local_5c;\n                    iVar18 = (*pcVar9)(local_60);\n                  } while (iVar18 != 0);\n                  local_d8 = (code *******)0xc;\n                  pppppppcVar15 = local_d8;\nLAB_00055e44:\n                  local_d8 = pppppppcVar15;\n                  param_4 = (code *******)0x0;\n                  if (local_50 == (code *******)0x0) {\n                    pppppppcVar14 = param_4;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    break;\n                  }\n                  pppppppcVar30 = (code *******)0x0;\nLAB_000553ac:\n                  pppppppcVar29 = &local_b4;\n                  pppppppcVar14 = (code *******)FUN_00053684(&local_d8);\nLAB_000553cc:\n                  param_4 = pppppppcVar14;\n                  if (pppppppcVar14 == (code *******)0x0) {\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    if ((local_50 == (code *******)0x0) ||\n                       ((pppppppcVar28 != (code *******)0x0 && (pppppppcVar34 == (code *******)0x0))\n                       )) break;\n                    param_6 = &local_b4;\n                    param_5 = (code *******)&local_d8;\n                    pppppppcVar31 = (code *******)(PTR_DAT_000799a4 + 0x3684);\n                    do {\n                      pppppppcVar15 = local_50 + (int)local_8c;\n                      pppppppcVar42 = local_8c;\n                      do {\n                        pppppppcVar42 = (code *******)((int)pppppppcVar42 + 1);\n                        pppppppcVar29 = local_4c;\n                        param_4 = pppppppcVar14;\n                        if ((int)local_4c < (int)pppppppcVar42) goto LAB_00055da8;\n                        local_8c = (code *******)((int)local_8c + 1);\n                        pppppppcVar15 = pppppppcVar15 + 1;\n                      } while (*pppppppcVar15 == (code ******)0x0);\n                      pppppppcVar30 = (code *******)0x0;\n                      pppppppcVar29 = param_6;\n                      param_4 = (code *******)(*(code *)pppppppcVar31)(param_5);\n                      if (local_d8 != (code *******)0x0) {\n                        if (param_4 == (code *******)0x0) goto LAB_00055da8;\n                        break;\n                      }\n                      pppppppcVar29 = local_4c;\n                    } while (param_4 == (code *******)0x0);\n                  }\n                  pppppppcVar15 = (code *******)((uint)unaff_s7 ^ (uint)param_4);\n                  pppppppcVar42 = unaff_s7;\n                  pppppppcVar14 = local_138;\n                  if ((bVar1) &&\n                     (pppppppcVar42 = pppppppcVar15, pppppppcVar14 = unaff_s5,\n                     pppppppcVar15 != (code *******)0x0)) {\n                    bVar1 = false;\n                    pppppppcVar14 = local_138;\n                  }\n                  local_138 = pppppppcVar14;\n                  unaff_s7 = param_4;\n                  if ((((uint)param_4[0xd] & 0x8000000) != 0) &&\n                     ((((uint)param_4[0xd] & 0x1000000) == 0 ||\n                      (pppppppcVar29 = param_4, pppppppcVar30 = local_8c,\n                      iVar18 = FUN_00049440(&local_b4), iVar18 != 0)))) {\n                    unaff_s7 = pppppppcVar42;\n                    unaff_s8 = local_8c;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                    local_144 = (code *******)0x0;\n                    unaff_s7 = param_4;\n                  }\n                }\nLAB_00055da8:\n                if (local_144 != (code *******)0x0) {\n                  *local_144 = (code ******)((int)local_138 + (int)*local_144);\n                }\n              }\n              else {\n                param_4 = unaff_s7 + 1;\n                pppppppcVar30 = (code *******)0x0;\n                pppppppcVar29 = param_4;\n                local_d8 = (code *******)FUN_00047a44(&local_b4);\n                unaff_s8 = local_d8;\n                if (local_d8 == (code *******)0x0) {\n                  if (((uint)unaff_s7[0xd] & 0x2000000) == 0) {\n                    pppppppcVar29 = param_4;\n                    bVar1 = false;\n                  }\n                  else {\n                    pppppppcVar29 = param_4;\n                    local_d8 = (code *******)FUN_00052d84(&local_b4);\n                    unaff_s8 = local_d8;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055dbc;\n                    bVar1 = false;\n                  }\n                  goto LAB_00054d50;\n                }\n              }\nLAB_00055dbc:\n              if (unaff_s8 == (code *******)0xffffffff) {\nLAB_00055b04:\n                FUN_0004b7e8(&local_b4);\nLAB_00055b1c:\n                local_dc = (code *******)((int)pppppppcVar24 + (int)local_dc);\n                if ((int)pppppppcVar25 <= (int)local_dc) goto code_r0x00055b38;\n                local_150 = (code *******)0x1;\n                goto LAB_000557e4;\n              }\n              if (unaff_s8 == (code *******)&SUB_fffffffe) {\n                local_150 = (code *******)0xc;\n                goto LAB_000557e4;\n              }\n              local_58 = unaff_s8;\n              if (((uint)param_1[7] & 0x8000000) == 0) {\n                if (pppppppcVar3 < (code *******)0x2) {\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055c08;\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                else {\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                if (pppppppcVar3 < (code *******)0x2) {\nLAB_00055c6c:\n                  pppppppcVar28 = pppppppcVar33;\n                  unaff_s4 = local_60;\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055548;\n                }\n                else {\n                  cVar23 = *(code *)(pppppppcVar38 + 0x16);\nLAB_00055c20:\n                  pppppppcVar28 = pppppppcVar33;\n                  if (-1 < (char)cVar23) goto LAB_00055c6c;\n                }\n                pppppppcVar31 = local_54;\n                pppppppcVar42 = local_60;\n                unaff_s4 = pppppppcVar42;\n                if (unaff_s8 < (code *******)0x3fffffff) {\n                  param_4 = (code *******)((int)((int)unaff_s8 + 1) * 4);\n                  unaff_s5 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                  if (unaff_s5 == (code *******)0x0) {\nLAB_00055b9c:\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    local_150 = (code *******)0xc;\n                    pppppppcVar33 = pppppppcVar28;\n                  }\n                  else {\n                    pppppppcVar29 = (code *******)&local_d0;\n                    if (pppppppcVar42[0x13] == (code ******)0x0) {\n                      local_cc = (code *******)0x0;\n                      local_c8 = pppppppcVar31;\n                      local_c0 = 0;\n                      local_bc = 0;\n                      local_b8 = 0;\n                      local_d0 = unaff_s5;\n                      local_c4 = unaff_s8;\n                      param_5 = (code *******)FUN_0005421c(&local_b4);\n                      (*(code *)PTR_free_00079c24)(local_b8);\n                      if (param_5 == (code *******)0x0) {\n                        param_4 = (code *******)*unaff_s5;\n                        if (param_4 == (code *******)0x0) {\nLAB_00055b70:\n                          (*(code *)PTR_free_00079c24)(unaff_s5);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          pppppppcVar33 = pppppppcVar28;\n                          goto LAB_00055b04;\n                        }\nLAB_00055528:\n                        (*(code *)PTR_free_00079c24)(local_50);\n                        pppppppcVar33 = pppppppcVar28;\n                        unaff_s4 = pppppppcVar42;\n                        local_58 = unaff_s8;\n                        local_54 = pppppppcVar31;\n                        local_50 = unaff_s5;\n                        goto LAB_00055548;\n                      }\nLAB_00055acc:\n                      param_4 = (code *******)0x0;\n                      pppppppcVar33 = pppppppcVar28;\n                      unaff_s4 = pppppppcVar42;\n                    }\n                    else {\n                      param_4 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                      if (param_4 == (code *******)0x0) goto LAB_00055b9c;\n                      unaff_s7 = (code *******)&local_d0;\n                      pcVar8 = (code *)(PTR_DAT_000799a4 + 0x421c);\n                      pcVar9 = (code *)(PTR_DAT_000799a4 + -0x6bc0);\n                      pppppppcVar33 = pppppppcVar28;\n                      while( true ) {\n                        pppppppcVar28 = (code *******)((int)unaff_s8 + 1);\n                        param_6 = (code *******)((int)pppppppcVar28 * 4);\n                        pppppppcVar30 = param_6;\n                        (*(code *)PTR_memset_00079b00)(param_4,0);\n                        local_c0 = 0;\n                        local_bc = 0;\n                        local_b8 = 0;\n                        pppppppcVar29 = unaff_s7;\n                        local_d0 = unaff_s5;\n                        local_cc = param_4;\n                        local_c8 = pppppppcVar31;\n                        local_c4 = unaff_s8;\n                        param_5 = (code *******)(*pcVar8)(&local_b4);\n                        (*(code *)PTR_free_00079c24)(local_b8);\n                        unaff_s4 = pppppppcVar28;\n                        if (param_5 != (code *******)0x0) break;\n                        if ((*unaff_s5 != (code ******)0x0) ||\n                           (param_6 = param_6 + -1, *param_4 != (code ******)0x0)) {\n                          pppppppcVar29 = unaff_s5;\n                          pppppppcVar30 = param_4;\n                          param_5 = (code *******)FUN_000520d0(pppppppcVar42);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          if (param_5 != (code *******)0x0) goto LAB_00055acc;\n                          goto LAB_00055528;\n                        }\n                        param_6 = (code *******)((int)local_50 + (int)param_6);\n                        do {\n                          while( true ) {\n                            unaff_s8 = (code *******)((int)unaff_s8 + -1);\n                            if ((int)unaff_s8 < 0) goto LAB_00055b70;\n                            pppppppcVar29 = (code *******)param_6[-1];\n                            if (pppppppcVar29 != (code *******)0x0) break;\n                            param_6 = param_6 + -1;\n                          }\n                          param_6 = param_6 + -1;\n                        } while (((uint)pppppppcVar29[0xd] & 0x8000000) == 0);\n                        pppppppcVar31 = (code *******)(*pcVar9)(&local_b4,pppppppcVar29,unaff_s8);\n                        pppppppcVar33 = pppppppcVar28;\n                      }\n                    }\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    (*(code *)PTR_free_00079c24)(param_4);\n                    local_150 = param_5;\n                    if (param_5 == (code *******)0x1) goto LAB_00055b04;\n                  }\n                }\n                else {\n                  local_150 = (code *******)0xc;\n                  pppppppcVar33 = pppppppcVar28;\n                }\n                goto LAB_000557e4;\n              }\n              if (pppppppcVar38[0x13] != (code ******)0x0) {\n                pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                pppppppcVar30 = unaff_s8;\n                local_54 = (code *******)FUN_00049440(&local_b4);\n                goto LAB_00055c6c;\n              }\nLAB_00055c08:\n              if ((((uint)param_1[7] & 0x8000000) == 0) && ((code *******)0x1 < pppppppcVar3)) {\n                cVar23 = *(code *)(pppppppcVar38 + 0x16);\n                goto LAB_00055c20;\n              }\nLAB_00055548:\n              if (pppppppcVar3 == (code *******)0x0) goto LAB_000557e4;\n              if (pppppppcVar3 < (code *******)0x2) {\n                *param_8 = (code ******)0x0;\n                param_8[1] = (code ******)local_58;\n                goto LAB_000555ac;\n              }\n              pppppppcVar29 = param_8 + 2;\n              do {\n                pppppppcVar29[1] = (code ******)0xffffffff;\n                *pppppppcVar29 = (code ******)0xffffffff;\n                pppppppcVar29 = pppppppcVar29 + 2;\n              } while (pppppppcVar29 != param_8 + (int)pppppppcVar3 * 2);\n              *param_8 = (code ******)0x0;\n              param_8[1] = (code ******)local_58;\n              if (((uint)param_1[7] & 0x8000000) != 0) {\nLAB_000555ac:\n                pppppppcVar33 = param_8;\n                do {\n                  pppppppcVar29 = (code *******)*pppppppcVar33;\n                  if (pppppppcVar29 != (code *******)0xffffffff) {\n                    if (local_68 != '\0') {\n                      pppppppcVar34 = local_94;\n                      if (pppppppcVar29 != local_98) {\n                        pppppppcVar34 = *(code ********)(local_a8 + (int)pppppppcVar29 * 4);\n                      }\n                      *pppppppcVar33 = (code ******)pppppppcVar34;\n                      pppppppcVar29 = local_94;\n                      if (local_98 != (code *******)pppppppcVar33[1]) {\n                        pppppppcVar29 = *(code ********)(local_a8 + (int)pppppppcVar33[1] * 4);\n                      }\n                      pppppppcVar33[1] = (code ******)pppppppcVar29;\n                    }\n                    *pppppppcVar33 = (code ******)((int)local_dc + (int)*pppppppcVar33);\n                    pppppppcVar29 = (code *******)((int)local_dc + (int)pppppppcVar33[1]);\n                    pppppppcVar33[1] = (code ******)pppppppcVar29;\n                  }\n                  pppppppcVar33 = pppppppcVar33 + 2;\n                } while (pppppppcVar33 != param_8 + (int)pppppppcVar3 * 2);\n                if (0 < local_118) {\n                  pppppppcVar33 = param_8 + (int)pppppppcVar3 * 2;\n                  do {\n                    *pppppppcVar33 = (code ******)0xffffffff;\n                    pppppppcVar33[1] = (code ******)0xffffffff;\n                    pppppppcVar33 = pppppppcVar33 + 2;\n                  } while (pppppppcVar33 != param_8 + (int)param_7 * 2);\n                }\n                pppppppcVar30 = local_dc;\n                pppppppcVar33 = param_8;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar38[0x21] != (code ******)0x0) {\n                  pppppppcVar30 = (code *******)((int)pppppppcVar3 + -1);\n                  pppppppcVar34 = (code *******)0x0;\n                  pppppppcVar3 = param_8;\n                  while( true ) {\n                    pppppppcVar29 = (code *******)((int)pppppppcVar34 * 4);\n                    if (pppppppcVar30 == pppppppcVar34) break;\n                    if (*(code ********)((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) !=\n                        pppppppcVar34) {\n                      pppppppcVar3[2] =\n                           param_8[(int)((int)*(code ********)\n                                               ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1)\n                                   * 2];\n                      pppppppcVar3[3] =\n                           param_8[((int)*(code ******)\n                                          ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1) * 2 +\n                                   1];\n                    }\n                    pppppppcVar34 = (code *******)((int)pppppppcVar34 + 1);\n                    pppppppcVar3 = pppppppcVar3 + 2;\n                  }\n                }\n                goto LAB_000557e4;\n              }\n              if ((char)*(code *)(pppppppcVar38 + 0x16) < '\0') {\n                local_168 = (uint)(0 < (int)pppppppcVar38[0x13]);\n              }\n              else {\n                local_168 = 0;\n              }\n              pppppppcVar29 = &local_b4;\n              pppppppcVar30 = pppppppcVar3;\n              pppppppcVar33 = param_8;\n              local_150 = (code *******)FUN_0004f4a0(param_1);\n              if (local_150 == (code *******)0x0) goto LAB_000555ac;\n            }" { (expression_statement "pppppppcVar36 = (code *******)&local_dc;" (assignment_expression "pppppppcVar36 = (code *******)&local_dc" identifier = (cast_expression "(code *******)&local_dc" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "&local_dc" & identifier))) ;) (if_statement "if ((code *******)(uint)((int)param_5 < (int)param_4) != (code *******)0x0) {\n                pppppppcVar36 = (code *******)0x0;\n              }" if (parenthesized_expression "((code *******)(uint)((int)param_5 < (int)param_4) != (code *******)0x0)" ( (binary_expression "(code *******)(uint)((int)param_5 < (int)param_4) != (code *******)0x0" (cast_expression "(code *******)(uint)((int)param_5 < (int)param_4)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "(uint)((int)param_5 < (int)param_4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)param_5 < (int)param_4)" ( (binary_expression "(int)param_5 < (int)param_4" (cast_expression "(int)param_5" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)param_4" ( (type_descriptor "int" primitive_type) ) identifier)) )))) != (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\n                pppppppcVar36 = (code *******)0x0;\n              }" { (expression_statement "pppppppcVar36 = (code *******)0x0;" (assignment_expression "pppppppcVar36 = (code *******)0x0" identifier = (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) })) (expression_statement "pcVar4 = (code *)(PTR_DAT_000799a4 + -0x2b7c);" (assignment_expression "pcVar4 = (code *)(PTR_DAT_000799a4 + -0x2b7c)" identifier = (cast_expression "(code *)(PTR_DAT_000799a4 + -0x2b7c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000799a4 + -0x2b7c)" ( (binary_expression "PTR_DAT_000799a4 + -0x2b7c" identifier + number_literal) )))) ;) (expression_statement "piVar5 = (int *)(PTR_s_nt0_000795b8 + (uVar16 - 4) * 4 + 0x6e38);" (assignment_expression "piVar5 = (int *)(PTR_s_nt0_000795b8 + (uVar16 - 4) * 4 + 0x6e38)" identifier = (cast_expression "(int *)(PTR_s_nt0_000795b8 + (uVar16 - 4) * 4 + 0x6e38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_nt0_000795b8 + (uVar16 - 4) * 4 + 0x6e38)" ( (binary_expression "PTR_s_nt0_000795b8 + (uVar16 - 4) * 4 + 0x6e38" (binary_expression "PTR_s_nt0_000795b8 + (uVar16 - 4) * 4" identifier + (binary_expression "(uVar16 - 4) * 4" (parenthesized_expression "(uVar16 - 4)" ( (binary_expression "uVar16 - 4" identifier - number_literal) )) * number_literal)) + number_literal) )))) ;) (labeled_statement "LAB_00055b44:\n              if (uVar16 - 4 < 5) {\n                    /* WARNING: Could not emulate address calculation at 0x00054920 */\n                    /* WARNING: Treating indirect jump as call */\n                pppppppcVar29 = (code *******)(*(code *)(&_gp_1 + *piVar5))();\n                return pppppppcVar29;\n              }" statement_identifier : (if_statement "if (uVar16 - 4 < 5) {\n                    /* WARNING: Could not emulate address calculation at 0x00054920 */\n                    /* WARNING: Treating indirect jump as call */\n                pppppppcVar29 = (code *******)(*(code *)(&_gp_1 + *piVar5))();\n                return pppppppcVar29;\n              }" if (parenthesized_expression "(uVar16 - 4 < 5)" ( (binary_expression "uVar16 - 4 < 5" (binary_expression "uVar16 - 4" identifier - number_literal) < number_literal) )) (compound_statement "{\n                    /* WARNING: Could not emulate address calculation at 0x00054920 */\n                    /* WARNING: Treating indirect jump as call */\n                pppppppcVar29 = (code *******)(*(code *)(&_gp_1 + *piVar5))();\n                return pppppppcVar29;\n              }" { comment comment (expression_statement "pppppppcVar29 = (code *******)(*(code *)(&_gp_1 + *piVar5))();" (assignment_expression "pppppppcVar29 = (code *******)(*(code *)(&_gp_1 + *piVar5))()" identifier = (cast_expression "(code *******)(*(code *)(&_gp_1 + *piVar5))()" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "(*(code *)(&_gp_1 + *piVar5))()" (parenthesized_expression "(*(code *)(&_gp_1 + *piVar5))" ( (pointer_expression "*(code *)(&_gp_1 + *piVar5)" * (cast_expression "(code *)(&_gp_1 + *piVar5)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&_gp_1 + *piVar5)" ( (binary_expression "&_gp_1 + *piVar5" (pointer_expression "&_gp_1" & identifier) + (pointer_expression "*piVar5" * identifier)) )))) )) (argument_list "()" ( ))))) ;) (return_statement "return pppppppcVar29;" return identifier ;) }))) (expression_statement "param_5 = &local_b4;" (assignment_expression "param_5 = &local_b4" identifier = (pointer_expression "&local_b4" & identifier)) ;) (expression_statement "pppppppcVar28 = pppppppcVar33;" (assignment_expression "pppppppcVar28 = pppppppcVar33" identifier = identifier) ;) (while_statement "while( true ) {\n                param_4 = local_dc;\n                pppppppcVar33 = (code *******)((int)local_dc - local_9c);\n                pppppppcVar30 = param_9;\n                pppppppcVar31 = pppppppcVar2;\n                param_6 = local_148;\n                unaff_s4 = param_3;\n                unaff_s5 = pppppppcVar24;\n                unaff_s7 = pppppppcVar26;\n                if (local_94 <= pppppppcVar33) {\n                  pppppppcVar29 = local_dc;\n                  local_150 = (code *******)(*pcVar4)(param_5);\n                  pppppppcVar33 = pppppppcVar28;\n                  if (local_150 != (code *******)0x0) goto LAB_000557e4;\n                  pppppppcVar33 = (code *******)((int)param_4 - local_9c);\n                }\n                if ((int)param_4 < (int)param_3) {\n                  uVar7 = (uint)(byte)*(code *)((int)pppppppcVar33 + (int)local_b0);\n                }\n                else {\n                  uVar7 = 0;\n                }\n                param_4 = (code *******)((int)param_4 + (int)pppppppcVar24);\n                if (*(code *)((int)local_148 + uVar7) != (code)0x0) break;\n                pppppppcVar33 = pppppppcVar28;\n                local_dc = param_4;\n                if ((int)param_4 < (int)pppppppcVar25) {\n                  local_150 = (code *******)0x1;\n                  goto LAB_000557e4;\n                }\n                if ((code *******)(uint)((int)pppppppcVar26 < (int)param_4) != (code *******)0x0) {\n                  local_150 = (code *******)0x1;\n                  param_4 = (code *******)(uint)((int)pppppppcVar26 < (int)param_4);\n                  goto LAB_000557e4;\n                }\n              }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                param_4 = local_dc;\n                pppppppcVar33 = (code *******)((int)local_dc - local_9c);\n                pppppppcVar30 = param_9;\n                pppppppcVar31 = pppppppcVar2;\n                param_6 = local_148;\n                unaff_s4 = param_3;\n                unaff_s5 = pppppppcVar24;\n                unaff_s7 = pppppppcVar26;\n                if (local_94 <= pppppppcVar33) {\n                  pppppppcVar29 = local_dc;\n                  local_150 = (code *******)(*pcVar4)(param_5);\n                  pppppppcVar33 = pppppppcVar28;\n                  if (local_150 != (code *******)0x0) goto LAB_000557e4;\n                  pppppppcVar33 = (code *******)((int)param_4 - local_9c);\n                }\n                if ((int)param_4 < (int)param_3) {\n                  uVar7 = (uint)(byte)*(code *)((int)pppppppcVar33 + (int)local_b0);\n                }\n                else {\n                  uVar7 = 0;\n                }\n                param_4 = (code *******)((int)param_4 + (int)pppppppcVar24);\n                if (*(code *)((int)local_148 + uVar7) != (code)0x0) break;\n                pppppppcVar33 = pppppppcVar28;\n                local_dc = param_4;\n                if ((int)param_4 < (int)pppppppcVar25) {\n                  local_150 = (code *******)0x1;\n                  goto LAB_000557e4;\n                }\n                if ((code *******)(uint)((int)pppppppcVar26 < (int)param_4) != (code *******)0x0) {\n                  local_150 = (code *******)0x1;\n                  param_4 = (code *******)(uint)((int)pppppppcVar26 < (int)param_4);\n                  goto LAB_000557e4;\n                }\n              }" { (expression_statement "param_4 = local_dc;" (assignment_expression "param_4 = local_dc" identifier = identifier) ;) (expression_statement "pppppppcVar33 = (code *******)((int)local_dc - local_9c);" (assignment_expression "pppppppcVar33 = (code *******)((int)local_dc - local_9c)" identifier = (cast_expression "(code *******)((int)local_dc - local_9c)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)local_dc - local_9c)" ( (binary_expression "(int)local_dc - local_9c" (cast_expression "(int)local_dc" ( (type_descriptor "int" primitive_type) ) identifier) - identifier) )))) ;) (expression_statement "pppppppcVar30 = param_9;" (assignment_expression "pppppppcVar30 = param_9" identifier = identifier) ;) (expression_statement "pppppppcVar31 = pppppppcVar2;" (assignment_expression "pppppppcVar31 = pppppppcVar2" identifier = identifier) ;) (expression_statement "param_6 = local_148;" (assignment_expression "param_6 = local_148" identifier = identifier) ;) (expression_statement "unaff_s4 = param_3;" (assignment_expression "unaff_s4 = param_3" identifier = identifier) ;) (expression_statement "unaff_s5 = pppppppcVar24;" (assignment_expression "unaff_s5 = pppppppcVar24" identifier = identifier) ;) (expression_statement "unaff_s7 = pppppppcVar26;" (assignment_expression "unaff_s7 = pppppppcVar26" identifier = identifier) ;) (if_statement "if (local_94 <= pppppppcVar33) {\n                  pppppppcVar29 = local_dc;\n                  local_150 = (code *******)(*pcVar4)(param_5);\n                  pppppppcVar33 = pppppppcVar28;\n                  if (local_150 != (code *******)0x0) goto LAB_000557e4;\n                  pppppppcVar33 = (code *******)((int)param_4 - local_9c);\n                }" if (parenthesized_expression "(local_94 <= pppppppcVar33)" ( (binary_expression "local_94 <= pppppppcVar33" identifier <= identifier) )) (compound_statement "{\n                  pppppppcVar29 = local_dc;\n                  local_150 = (code *******)(*pcVar4)(param_5);\n                  pppppppcVar33 = pppppppcVar28;\n                  if (local_150 != (code *******)0x0) goto LAB_000557e4;\n                  pppppppcVar33 = (code *******)((int)param_4 - local_9c);\n                }" { (expression_statement "pppppppcVar29 = local_dc;" (assignment_expression "pppppppcVar29 = local_dc" identifier = identifier) ;) (expression_statement "local_150 = (code *******)(*pcVar4)(param_5);" (assignment_expression "local_150 = (code *******)(*pcVar4)(param_5)" identifier = (cast_expression "(code *******)(*pcVar4)(param_5)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "(*pcVar4)(param_5)" (parenthesized_expression "(*pcVar4)" ( (pointer_expression "*pcVar4" * identifier) )) (argument_list "(param_5)" ( identifier ))))) ;) (expression_statement "pppppppcVar33 = pppppppcVar28;" (assignment_expression "pppppppcVar33 = pppppppcVar28" identifier = identifier) ;) (if_statement "if (local_150 != (code *******)0x0) goto LAB_000557e4;" if (parenthesized_expression "(local_150 != (code *******)0x0)" ( (binary_expression "local_150 != (code *******)0x0" identifier != (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (goto_statement "goto LAB_000557e4;" goto statement_identifier ;)) (expression_statement "pppppppcVar33 = (code *******)((int)param_4 - local_9c);" (assignment_expression "pppppppcVar33 = (code *******)((int)param_4 - local_9c)" identifier = (cast_expression "(code *******)((int)param_4 - local_9c)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)param_4 - local_9c)" ( (binary_expression "(int)param_4 - local_9c" (cast_expression "(int)param_4" ( (type_descriptor "int" primitive_type) ) identifier) - identifier) )))) ;) })) (if_statement "if ((int)param_4 < (int)param_3) {\n                  uVar7 = (uint)(byte)*(code *)((int)pppppppcVar33 + (int)local_b0);\n                }\n                else {\n                  uVar7 = 0;\n                }" if (parenthesized_expression "((int)param_4 < (int)param_3)" ( (binary_expression "(int)param_4 < (int)param_3" (cast_expression "(int)param_4" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                  uVar7 = (uint)(byte)*(code *)((int)pppppppcVar33 + (int)local_b0);\n                }" { (expression_statement "uVar7 = (uint)(byte)*(code *)((int)pppppppcVar33 + (int)local_b0);" (assignment_expression "uVar7 = (uint)(byte)*(code *)((int)pppppppcVar33 + (int)local_b0)" identifier = (binary_expression "(uint)(byte)*(code *)((int)pppppppcVar33 + (int)local_b0)" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(byte)" ( identifier ))) * (cast_expression "(code *)((int)pppppppcVar33 + (int)local_b0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppppppcVar33 + (int)local_b0)" ( (binary_expression "(int)pppppppcVar33 + (int)local_b0" (cast_expression "(int)pppppppcVar33" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)local_b0" ( (type_descriptor "int" primitive_type) ) identifier)) ))))) ;) }) (else_clause "else {\n                  uVar7 = 0;\n                }" else (compound_statement "{\n                  uVar7 = 0;\n                }" { (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" identifier = number_literal) ;) }))) (expression_statement "param_4 = (code *******)((int)param_4 + (int)pppppppcVar24);" (assignment_expression "param_4 = (code *******)((int)param_4 + (int)pppppppcVar24)" identifier = (cast_expression "(code *******)((int)param_4 + (int)pppppppcVar24)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)param_4 + (int)pppppppcVar24)" ( (binary_expression "(int)param_4 + (int)pppppppcVar24" (cast_expression "(int)param_4" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)pppppppcVar24" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (if_statement "if (*(code *)((int)local_148 + uVar7) != (code)0x0) break;" if (parenthesized_expression "(*(code *)((int)local_148 + uVar7) != (code)0x0)" ( (binary_expression "*(code *)((int)local_148 + uVar7) != (code)0x0" (pointer_expression "*(code *)((int)local_148 + uVar7)" * (cast_expression "(code *)((int)local_148 + uVar7)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_148 + uVar7)" ( (binary_expression "(int)local_148 + uVar7" (cast_expression "(int)local_148" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) != (cast_expression "(code)0x0" ( (type_descriptor "code" type_identifier) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "pppppppcVar33 = pppppppcVar28;" (assignment_expression "pppppppcVar33 = pppppppcVar28" identifier = identifier) ;) (expression_statement "local_dc = param_4;" (assignment_expression "local_dc = param_4" identifier = identifier) ;) (if_statement "if ((int)param_4 < (int)pppppppcVar25) {\n                  local_150 = (code *******)0x1;\n                  goto LAB_000557e4;\n                }" if (parenthesized_expression "((int)param_4 < (int)pppppppcVar25)" ( (binary_expression "(int)param_4 < (int)pppppppcVar25" (cast_expression "(int)param_4" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)pppppppcVar25" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                  local_150 = (code *******)0x1;\n                  goto LAB_000557e4;\n                }" { (expression_statement "local_150 = (code *******)0x1;" (assignment_expression "local_150 = (code *******)0x1" identifier = (cast_expression "(code *******)0x1" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (goto_statement "goto LAB_000557e4;" goto statement_identifier ;) })) (if_statement "if ((code *******)(uint)((int)pppppppcVar26 < (int)param_4) != (code *******)0x0) {\n                  local_150 = (code *******)0x1;\n                  param_4 = (code *******)(uint)((int)pppppppcVar26 < (int)param_4);\n                  goto LAB_000557e4;\n                }" if (parenthesized_expression "((code *******)(uint)((int)pppppppcVar26 < (int)param_4) != (code *******)0x0)" ( (binary_expression "(code *******)(uint)((int)pppppppcVar26 < (int)param_4) != (code *******)0x0" (cast_expression "(code *******)(uint)((int)pppppppcVar26 < (int)param_4)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "(uint)((int)pppppppcVar26 < (int)param_4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)pppppppcVar26 < (int)param_4)" ( (binary_expression "(int)pppppppcVar26 < (int)param_4" (cast_expression "(int)pppppppcVar26" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)param_4" ( (type_descriptor "int" primitive_type) ) identifier)) )))) != (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\n                  local_150 = (code *******)0x1;\n                  param_4 = (code *******)(uint)((int)pppppppcVar26 < (int)param_4);\n                  goto LAB_000557e4;\n                }" { (expression_statement "local_150 = (code *******)0x1;" (assignment_expression "local_150 = (code *******)0x1" identifier = (cast_expression "(code *******)0x1" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "param_4 = (code *******)(uint)((int)pppppppcVar26 < (int)param_4);" (assignment_expression "param_4 = (code *******)(uint)((int)pppppppcVar26 < (int)param_4)" identifier = (cast_expression "(code *******)(uint)((int)pppppppcVar26 < (int)param_4)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "(uint)((int)pppppppcVar26 < (int)param_4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)pppppppcVar26 < (int)param_4)" ( (binary_expression "(int)pppppppcVar26 < (int)param_4" (cast_expression "(int)pppppppcVar26" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)param_4" ( (type_descriptor "int" primitive_type) ) identifier)) ))))) ;) (goto_statement "goto LAB_000557e4;" goto statement_identifier ;) })) })) (while_statement "while( true ) {\n                pppppppcVar29 = local_dc;\n                pppppppcVar30 = param_9;\n                pppppppcVar6 = (code *******)(*pcVar4)(&local_b4);\n                pppppppcVar14 = local_60;\n                pppppppcVar42 = local_8c;\n                pppppppcVar33 = pppppppcVar28;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar6 != (code *******)0x0) goto LAB_000557e4;\n                if (((ppppppcVar35 != (code ******)0x1) && (local_98 != (code *******)0x0)) &&\n                   (*local_ac == -1)) goto LAB_00055b1c;\n                local_3c = 0;\n                local_48 = 0;\n                local_4c = (code *******)0x0;\n                local_138 = local_8c;\n                local_d8 = (code *******)0x0;\n                unaff_s7 = (code *******)local_60[9];\n                pppppppcVar30 = local_5c;\n                param_4 = pppppppcVar14;\n                if (((uint)unaff_s7[0xd] & 0x1000000) == 0) break;\n                pppppppcVar29 = (code *******)((int)local_8c + -1);\n                pppppppcVar33 = (code *******)FUN_00049110(&local_b4);\n                if (((uint)pppppppcVar33 & 1) == 0) {\n                  if (pppppppcVar33 == (code *******)0x0) break;\n                  if (((uint)pppppppcVar33 & 6) == 6) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xc];\n                    goto LAB_00054d1c;\n                  }\n                  if (((uint)pppppppcVar33 & 2) != 0) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xb];\n                    goto LAB_00054d1c;\n                  }\n                  pppppppcVar28 = pppppppcVar33;\n                  if (((uint)pppppppcVar33 & 4) == 0) break;\n                  pppppppcVar30 = (code *******)unaff_s7[10];\n                  pppppppcVar29 = pppppppcVar14;\n                  unaff_s7 = (code *******)FUN_0004ae34(&local_d8);\n                  pppppppcVar28 = pppppppcVar33;\n                  if (unaff_s7 != (code *******)0x0) break;\n                  if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                }\n                else {\n                  unaff_s7 = (code *******)pppppppcVar14[10];\nLAB_00054d1c:\n                  pppppppcVar28 = (code *******)PTR_s_nt0_000795b8;\n                  if (unaff_s7 != (code *******)0x0) break;\n                }\n                pppppppcVar28 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                local_dc = (code *******)\n                           (*(code *)PTR___assert_fail_000799f8)\n                                     (PTR_s_nt0_000795b8 + 0x71a0,pppppppcVar29,0x435);\n                if (local_dc == pppppppcVar26) {\n                  if ((int)local_dc < (int)param_3) {\n                    uVar7 = (uint)(byte)*(code *)((int)local_dc + (int)param_2);\n                  }\n                  else {\n                    uVar7 = 0;\n                  }\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    uVar7 = (uint)*(byte *)((int)ppppppcVar32 + uVar7);\n                  }\n                  if (*(code *)((int)local_148 + uVar7) == (code)0x0) {\n                    local_150 = (code *******)0x1;\n                    pppppppcVar30 = param_9;\n                    pppppppcVar33 = pppppppcVar28;\n                    goto LAB_000557e4;\n                  }\n                }\n              }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                pppppppcVar29 = local_dc;\n                pppppppcVar30 = param_9;\n                pppppppcVar6 = (code *******)(*pcVar4)(&local_b4);\n                pppppppcVar14 = local_60;\n                pppppppcVar42 = local_8c;\n                pppppppcVar33 = pppppppcVar28;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar6 != (code *******)0x0) goto LAB_000557e4;\n                if (((ppppppcVar35 != (code ******)0x1) && (local_98 != (code *******)0x0)) &&\n                   (*local_ac == -1)) goto LAB_00055b1c;\n                local_3c = 0;\n                local_48 = 0;\n                local_4c = (code *******)0x0;\n                local_138 = local_8c;\n                local_d8 = (code *******)0x0;\n                unaff_s7 = (code *******)local_60[9];\n                pppppppcVar30 = local_5c;\n                param_4 = pppppppcVar14;\n                if (((uint)unaff_s7[0xd] & 0x1000000) == 0) break;\n                pppppppcVar29 = (code *******)((int)local_8c + -1);\n                pppppppcVar33 = (code *******)FUN_00049110(&local_b4);\n                if (((uint)pppppppcVar33 & 1) == 0) {\n                  if (pppppppcVar33 == (code *******)0x0) break;\n                  if (((uint)pppppppcVar33 & 6) == 6) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xc];\n                    goto LAB_00054d1c;\n                  }\n                  if (((uint)pppppppcVar33 & 2) != 0) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xb];\n                    goto LAB_00054d1c;\n                  }\n                  pppppppcVar28 = pppppppcVar33;\n                  if (((uint)pppppppcVar33 & 4) == 0) break;\n                  pppppppcVar30 = (code *******)unaff_s7[10];\n                  pppppppcVar29 = pppppppcVar14;\n                  unaff_s7 = (code *******)FUN_0004ae34(&local_d8);\n                  pppppppcVar28 = pppppppcVar33;\n                  if (unaff_s7 != (code *******)0x0) break;\n                  if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                }\n                else {\n                  unaff_s7 = (code *******)pppppppcVar14[10];\nLAB_00054d1c:\n                  pppppppcVar28 = (code *******)PTR_s_nt0_000795b8;\n                  if (unaff_s7 != (code *******)0x0) break;\n                }\n                pppppppcVar28 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                local_dc = (code *******)\n                           (*(code *)PTR___assert_fail_000799f8)\n                                     (PTR_s_nt0_000795b8 + 0x71a0,pppppppcVar29,0x435);\n                if (local_dc == pppppppcVar26) {\n                  if ((int)local_dc < (int)param_3) {\n                    uVar7 = (uint)(byte)*(code *)((int)local_dc + (int)param_2);\n                  }\n                  else {\n                    uVar7 = 0;\n                  }\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    uVar7 = (uint)*(byte *)((int)ppppppcVar32 + uVar7);\n                  }\n                  if (*(code *)((int)local_148 + uVar7) == (code)0x0) {\n                    local_150 = (code *******)0x1;\n                    pppppppcVar30 = param_9;\n                    pppppppcVar33 = pppppppcVar28;\n                    goto LAB_000557e4;\n                  }\n                }\n              }" { (expression_statement "pppppppcVar29 = local_dc;" (assignment_expression "pppppppcVar29 = local_dc" identifier = identifier) ;) (expression_statement "pppppppcVar30 = param_9;" (assignment_expression "pppppppcVar30 = param_9" identifier = identifier) ;) (expression_statement "pppppppcVar6 = (code *******)(*pcVar4)(&local_b4);" (assignment_expression "pppppppcVar6 = (code *******)(*pcVar4)(&local_b4)" identifier = (cast_expression "(code *******)(*pcVar4)(&local_b4)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "(*pcVar4)(&local_b4)" (parenthesized_expression "(*pcVar4)" ( (pointer_expression "*pcVar4" * identifier) )) (argument_list "(&local_b4)" ( (pointer_expression "&local_b4" & identifier) ))))) ;) (expression_statement "pppppppcVar14 = local_60;" (assignment_expression "pppppppcVar14 = local_60" identifier = identifier) ;) (expression_statement "pppppppcVar42 = local_8c;" (assignment_expression "pppppppcVar42 = local_8c" identifier = identifier) ;) (expression_statement "pppppppcVar33 = pppppppcVar28;" (assignment_expression "pppppppcVar33 = pppppppcVar28" identifier = identifier) ;) (expression_statement "local_150 = pppppppcVar6;" (assignment_expression "local_150 = pppppppcVar6" identifier = identifier) ;) (if_statement "if (pppppppcVar6 != (code *******)0x0) goto LAB_000557e4;" if (parenthesized_expression "(pppppppcVar6 != (code *******)0x0)" ( (binary_expression "pppppppcVar6 != (code *******)0x0" identifier != (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (goto_statement "goto LAB_000557e4;" goto statement_identifier ;)) (if_statement "if (((ppppppcVar35 != (code ******)0x1) && (local_98 != (code *******)0x0)) &&\n                   (*local_ac == -1)) goto LAB_00055b1c;" if (parenthesized_expression "(((ppppppcVar35 != (code ******)0x1) && (local_98 != (code *******)0x0)) &&\n                   (*local_ac == -1))" ( (binary_expression "((ppppppcVar35 != (code ******)0x1) && (local_98 != (code *******)0x0)) &&\n                   (*local_ac == -1)" (parenthesized_expression "((ppppppcVar35 != (code ******)0x1) && (local_98 != (code *******)0x0))" ( (binary_expression "(ppppppcVar35 != (code ******)0x1) && (local_98 != (code *******)0x0)" (parenthesized_expression "(ppppppcVar35 != (code ******)0x1)" ( (binary_expression "ppppppcVar35 != (code ******)0x1" identifier != (cast_expression "(code ******)0x1" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) && (parenthesized_expression "(local_98 != (code *******)0x0)" ( (binary_expression "local_98 != (code *******)0x0" identifier != (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ))) )) && (parenthesized_expression "(*local_ac == -1)" ( (binary_expression "*local_ac == -1" (pointer_expression "*local_ac" * identifier) == number_literal) ))) )) (goto_statement "goto LAB_00055b1c;" goto statement_identifier ;)) (expression_statement "local_3c = 0;" (assignment_expression "local_3c = 0" identifier = number_literal) ;) (expression_statement "local_48 = 0;" (assignment_expression "local_48 = 0" identifier = number_literal) ;) (expression_statement "local_4c = (code *******)0x0;" (assignment_expression "local_4c = (code *******)0x0" identifier = (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "local_138 = local_8c;" (assignment_expression "local_138 = local_8c" identifier = identifier) ;) (expression_statement "local_d8 = (code *******)0x0;" (assignment_expression "local_d8 = (code *******)0x0" identifier = (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "unaff_s7 = (code *******)local_60[9];" (assignment_expression "unaff_s7 = (code *******)local_60[9]" identifier = (cast_expression "(code *******)local_60[9]" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (subscript_expression "local_60[9]" identifier [ number_literal ]))) ;) (expression_statement "pppppppcVar30 = local_5c;" (assignment_expression "pppppppcVar30 = local_5c" identifier = identifier) ;) (expression_statement "param_4 = pppppppcVar14;" (assignment_expression "param_4 = pppppppcVar14" identifier = identifier) ;) (if_statement "if (((uint)unaff_s7[0xd] & 0x1000000) == 0) break;" if (parenthesized_expression "(((uint)unaff_s7[0xd] & 0x1000000) == 0)" ( (binary_expression "((uint)unaff_s7[0xd] & 0x1000000) == 0" (parenthesized_expression "((uint)unaff_s7[0xd] & 0x1000000)" ( (binary_expression "(uint)unaff_s7[0xd] & 0x1000000" (cast_expression "(uint)unaff_s7[0xd]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "unaff_s7[0xd]" identifier [ number_literal ])) & number_literal) )) == number_literal) )) (break_statement "break;" break ;)) (expression_statement "pppppppcVar29 = (code *******)((int)local_8c + -1);" (assignment_expression "pppppppcVar29 = (code *******)((int)local_8c + -1)" identifier = (cast_expression "(code *******)((int)local_8c + -1)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)local_8c + -1)" ( (binary_expression "(int)local_8c + -1" (cast_expression "(int)local_8c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "pppppppcVar33 = (code *******)FUN_00049110(&local_b4);" (assignment_expression "pppppppcVar33 = (code *******)FUN_00049110(&local_b4)" identifier = (cast_expression "(code *******)FUN_00049110(&local_b4)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "FUN_00049110(&local_b4)" identifier (argument_list "(&local_b4)" ( (pointer_expression "&local_b4" & identifier) ))))) ;) (if_statement "if (((uint)pppppppcVar33 & 1) == 0) {\n                  if (pppppppcVar33 == (code *******)0x0) break;\n                  if (((uint)pppppppcVar33 & 6) == 6) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xc];\n                    goto LAB_00054d1c;\n                  }\n                  if (((uint)pppppppcVar33 & 2) != 0) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xb];\n                    goto LAB_00054d1c;\n                  }\n                  pppppppcVar28 = pppppppcVar33;\n                  if (((uint)pppppppcVar33 & 4) == 0) break;\n                  pppppppcVar30 = (code *******)unaff_s7[10];\n                  pppppppcVar29 = pppppppcVar14;\n                  unaff_s7 = (code *******)FUN_0004ae34(&local_d8);\n                  pppppppcVar28 = pppppppcVar33;\n                  if (unaff_s7 != (code *******)0x0) break;\n                  if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                }\n                else {\n                  unaff_s7 = (code *******)pppppppcVar14[10];\nLAB_00054d1c:\n                  pppppppcVar28 = (code *******)PTR_s_nt0_000795b8;\n                  if (unaff_s7 != (code *******)0x0) break;\n                }" if (parenthesized_expression "(((uint)pppppppcVar33 & 1) == 0)" ( (binary_expression "((uint)pppppppcVar33 & 1) == 0" (parenthesized_expression "((uint)pppppppcVar33 & 1)" ( (binary_expression "(uint)pppppppcVar33 & 1" (cast_expression "(uint)pppppppcVar33" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n                  if (pppppppcVar33 == (code *******)0x0) break;\n                  if (((uint)pppppppcVar33 & 6) == 6) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xc];\n                    goto LAB_00054d1c;\n                  }\n                  if (((uint)pppppppcVar33 & 2) != 0) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xb];\n                    goto LAB_00054d1c;\n                  }\n                  pppppppcVar28 = pppppppcVar33;\n                  if (((uint)pppppppcVar33 & 4) == 0) break;\n                  pppppppcVar30 = (code *******)unaff_s7[10];\n                  pppppppcVar29 = pppppppcVar14;\n                  unaff_s7 = (code *******)FUN_0004ae34(&local_d8);\n                  pppppppcVar28 = pppppppcVar33;\n                  if (unaff_s7 != (code *******)0x0) break;\n                  if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                }" { (if_statement "if (pppppppcVar33 == (code *******)0x0) break;" if (parenthesized_expression "(pppppppcVar33 == (code *******)0x0)" ( (binary_expression "pppppppcVar33 == (code *******)0x0" identifier == (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (break_statement "break;" break ;)) (if_statement "if (((uint)pppppppcVar33 & 6) == 6) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xc];\n                    goto LAB_00054d1c;\n                  }" if (parenthesized_expression "(((uint)pppppppcVar33 & 6) == 6)" ( (binary_expression "((uint)pppppppcVar33 & 6) == 6" (parenthesized_expression "((uint)pppppppcVar33 & 6)" ( (binary_expression "(uint)pppppppcVar33 & 6" (cast_expression "(uint)pppppppcVar33" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n                    unaff_s7 = (code *******)pppppppcVar14[0xc];\n                    goto LAB_00054d1c;\n                  }" { (expression_statement "unaff_s7 = (code *******)pppppppcVar14[0xc];" (assignment_expression "unaff_s7 = (code *******)pppppppcVar14[0xc]" identifier = (cast_expression "(code *******)pppppppcVar14[0xc]" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (subscript_expression "pppppppcVar14[0xc]" identifier [ number_literal ]))) ;) (goto_statement "goto LAB_00054d1c;" goto statement_identifier ;) })) (if_statement "if (((uint)pppppppcVar33 & 2) != 0) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xb];\n                    goto LAB_00054d1c;\n                  }" if (parenthesized_expression "(((uint)pppppppcVar33 & 2) != 0)" ( (binary_expression "((uint)pppppppcVar33 & 2) != 0" (parenthesized_expression "((uint)pppppppcVar33 & 2)" ( (binary_expression "(uint)pppppppcVar33 & 2" (cast_expression "(uint)pppppppcVar33" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n                    unaff_s7 = (code *******)pppppppcVar14[0xb];\n                    goto LAB_00054d1c;\n                  }" { (expression_statement "unaff_s7 = (code *******)pppppppcVar14[0xb];" (assignment_expression "unaff_s7 = (code *******)pppppppcVar14[0xb]" identifier = (cast_expression "(code *******)pppppppcVar14[0xb]" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (subscript_expression "pppppppcVar14[0xb]" identifier [ number_literal ]))) ;) (goto_statement "goto LAB_00054d1c;" goto statement_identifier ;) })) (expression_statement "pppppppcVar28 = pppppppcVar33;" (assignment_expression "pppppppcVar28 = pppppppcVar33" identifier = identifier) ;) (if_statement "if (((uint)pppppppcVar33 & 4) == 0) break;" if (parenthesized_expression "(((uint)pppppppcVar33 & 4) == 0)" ( (binary_expression "((uint)pppppppcVar33 & 4) == 0" (parenthesized_expression "((uint)pppppppcVar33 & 4)" ( (binary_expression "(uint)pppppppcVar33 & 4" (cast_expression "(uint)pppppppcVar33" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) == number_literal) )) (break_statement "break;" break ;)) (expression_statement "pppppppcVar30 = (code *******)unaff_s7[10];" (assignment_expression "pppppppcVar30 = (code *******)unaff_s7[10]" identifier = (cast_expression "(code *******)unaff_s7[10]" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (subscript_expression "unaff_s7[10]" identifier [ number_literal ]))) ;) (expression_statement "pppppppcVar29 = pppppppcVar14;" (assignment_expression "pppppppcVar29 = pppppppcVar14" identifier = identifier) ;) (expression_statement "unaff_s7 = (code *******)FUN_0004ae34(&local_d8);" (assignment_expression "unaff_s7 = (code *******)FUN_0004ae34(&local_d8)" identifier = (cast_expression "(code *******)FUN_0004ae34(&local_d8)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "FUN_0004ae34(&local_d8)" identifier (argument_list "(&local_d8)" ( (pointer_expression "&local_d8" & identifier) ))))) ;) (expression_statement "pppppppcVar28 = pppppppcVar33;" (assignment_expression "pppppppcVar28 = pppppppcVar33" identifier = identifier) ;) (if_statement "if (unaff_s7 != (code *******)0x0) break;" if (parenthesized_expression "(unaff_s7 != (code *******)0x0)" ( (binary_expression "unaff_s7 != (code *******)0x0" identifier != (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (break_statement "break;" break ;)) (if_statement "if (local_d8 == (code *******)0xc) goto LAB_00055914;" if (parenthesized_expression "(local_d8 == (code *******)0xc)" ( (binary_expression "local_d8 == (code *******)0xc" identifier == (cast_expression "(code *******)0xc" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (goto_statement "goto LAB_00055914;" goto statement_identifier ;)) }) (else_clause "else {\n                  unaff_s7 = (code *******)pppppppcVar14[10];\nLAB_00054d1c:\n                  pppppppcVar28 = (code *******)PTR_s_nt0_000795b8;\n                  if (unaff_s7 != (code *******)0x0) break;\n                }" else (compound_statement "{\n                  unaff_s7 = (code *******)pppppppcVar14[10];\nLAB_00054d1c:\n                  pppppppcVar28 = (code *******)PTR_s_nt0_000795b8;\n                  if (unaff_s7 != (code *******)0x0) break;\n                }" { (expression_statement "unaff_s7 = (code *******)pppppppcVar14[10];" (assignment_expression "unaff_s7 = (code *******)pppppppcVar14[10]" identifier = (cast_expression "(code *******)pppppppcVar14[10]" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (subscript_expression "pppppppcVar14[10]" identifier [ number_literal ]))) ;) (labeled_statement "LAB_00054d1c:\n                  pppppppcVar28 = (code *******)PTR_s_nt0_000795b8;" statement_identifier : (expression_statement "pppppppcVar28 = (code *******)PTR_s_nt0_000795b8;" (assignment_expression "pppppppcVar28 = (code *******)PTR_s_nt0_000795b8" identifier = (cast_expression "(code *******)PTR_s_nt0_000795b8" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) identifier)) ;)) (if_statement "if (unaff_s7 != (code *******)0x0) break;" if (parenthesized_expression "(unaff_s7 != (code *******)0x0)" ( (binary_expression "unaff_s7 != (code *******)0x0" identifier != (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (break_statement "break;" break ;)) }))) (expression_statement "pppppppcVar28 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);" (assignment_expression "pppppppcVar28 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0)" identifier = (cast_expression "(code *******)(PTR_s_nt0_000795b8 + 0x6eb0)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(PTR_s_nt0_000795b8 + 0x6eb0)" ( (binary_expression "PTR_s_nt0_000795b8 + 0x6eb0" identifier + number_literal) )))) ;) (expression_statement "pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);" (assignment_expression "pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c)" identifier = (cast_expression "(code *******)(PTR_s_nt0_000795b8 + 0x712c)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(PTR_s_nt0_000795b8 + 0x712c)" ( (binary_expression "PTR_s_nt0_000795b8 + 0x712c" identifier + number_literal) )))) ;) (expression_statement "local_dc = (code *******)\n                           (*(code *)PTR___assert_fail_000799f8)\n                                     (PTR_s_nt0_000795b8 + 0x71a0,pppppppcVar29,0x435);" (assignment_expression "local_dc = (code *******)\n                           (*(code *)PTR___assert_fail_000799f8)\n                                     (PTR_s_nt0_000795b8 + 0x71a0,pppppppcVar29,0x435)" identifier = (cast_expression "(code *******)\n                           (*(code *)PTR___assert_fail_000799f8)\n                                     (PTR_s_nt0_000795b8 + 0x71a0,pppppppcVar29,0x435)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "(*(code *)PTR___assert_fail_000799f8)\n                                     (PTR_s_nt0_000795b8 + 0x71a0,pppppppcVar29,0x435)" (parenthesized_expression "(*(code *)PTR___assert_fail_000799f8)" ( (pointer_expression "*(code *)PTR___assert_fail_000799f8" * (cast_expression "(code *)PTR___assert_fail_000799f8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_nt0_000795b8 + 0x71a0,pppppppcVar29,0x435)" ( (binary_expression "PTR_s_nt0_000795b8 + 0x71a0" identifier + number_literal) , identifier , number_literal ))))) ;) (if_statement "if (local_dc == pppppppcVar26) {\n                  if ((int)local_dc < (int)param_3) {\n                    uVar7 = (uint)(byte)*(code *)((int)local_dc + (int)param_2);\n                  }\n                  else {\n                    uVar7 = 0;\n                  }\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    uVar7 = (uint)*(byte *)((int)ppppppcVar32 + uVar7);\n                  }\n                  if (*(code *)((int)local_148 + uVar7) == (code)0x0) {\n                    local_150 = (code *******)0x1;\n                    pppppppcVar30 = param_9;\n                    pppppppcVar33 = pppppppcVar28;\n                    goto LAB_000557e4;\n                  }\n                }" if (parenthesized_expression "(local_dc == pppppppcVar26)" ( (binary_expression "local_dc == pppppppcVar26" identifier == identifier) )) (compound_statement "{\n                  if ((int)local_dc < (int)param_3) {\n                    uVar7 = (uint)(byte)*(code *)((int)local_dc + (int)param_2);\n                  }\n                  else {\n                    uVar7 = 0;\n                  }\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    uVar7 = (uint)*(byte *)((int)ppppppcVar32 + uVar7);\n                  }\n                  if (*(code *)((int)local_148 + uVar7) == (code)0x0) {\n                    local_150 = (code *******)0x1;\n                    pppppppcVar30 = param_9;\n                    pppppppcVar33 = pppppppcVar28;\n                    goto LAB_000557e4;\n                  }\n                }" { (if_statement "if ((int)local_dc < (int)param_3) {\n                    uVar7 = (uint)(byte)*(code *)((int)local_dc + (int)param_2);\n                  }\n                  else {\n                    uVar7 = 0;\n                  }" if (parenthesized_expression "((int)local_dc < (int)param_3)" ( (binary_expression "(int)local_dc < (int)param_3" (cast_expression "(int)local_dc" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                    uVar7 = (uint)(byte)*(code *)((int)local_dc + (int)param_2);\n                  }" { (expression_statement "uVar7 = (uint)(byte)*(code *)((int)local_dc + (int)param_2);" (assignment_expression "uVar7 = (uint)(byte)*(code *)((int)local_dc + (int)param_2)" identifier = (binary_expression "(uint)(byte)*(code *)((int)local_dc + (int)param_2)" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(byte)" ( identifier ))) * (cast_expression "(code *)((int)local_dc + (int)param_2)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_dc + (int)param_2)" ( (binary_expression "(int)local_dc + (int)param_2" (cast_expression "(int)local_dc" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier)) ))))) ;) }) (else_clause "else {\n                    uVar7 = 0;\n                  }" else (compound_statement "{\n                    uVar7 = 0;\n                  }" { (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" identifier = number_literal) ;) }))) (if_statement "if (ppppppcVar32 != (code ******)0x0) {\n                    uVar7 = (uint)*(byte *)((int)ppppppcVar32 + uVar7);\n                  }" if (parenthesized_expression "(ppppppcVar32 != (code ******)0x0)" ( (binary_expression "ppppppcVar32 != (code ******)0x0" identifier != (cast_expression "(code ******)0x0" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (compound_statement "{\n                    uVar7 = (uint)*(byte *)((int)ppppppcVar32 + uVar7);\n                  }" { (expression_statement "uVar7 = (uint)*(byte *)((int)ppppppcVar32 + uVar7);" (assignment_expression "uVar7 = (uint)*(byte *)((int)ppppppcVar32 + uVar7)" identifier = (binary_expression "(uint)*(byte *)((int)ppppppcVar32 + uVar7)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)((int)ppppppcVar32 + uVar7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppppppcVar32 + uVar7)" ( (binary_expression "(int)ppppppcVar32 + uVar7" (cast_expression "(int)ppppppcVar32" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) ))))) ;) })) (if_statement "if (*(code *)((int)local_148 + uVar7) == (code)0x0) {\n                    local_150 = (code *******)0x1;\n                    pppppppcVar30 = param_9;\n                    pppppppcVar33 = pppppppcVar28;\n                    goto LAB_000557e4;\n                  }" if (parenthesized_expression "(*(code *)((int)local_148 + uVar7) == (code)0x0)" ( (binary_expression "*(code *)((int)local_148 + uVar7) == (code)0x0" (pointer_expression "*(code *)((int)local_148 + uVar7)" * (cast_expression "(code *)((int)local_148 + uVar7)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_148 + uVar7)" ( (binary_expression "(int)local_148 + uVar7" (cast_expression "(int)local_148" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) == (cast_expression "(code)0x0" ( (type_descriptor "code" type_identifier) ) number_literal)) )) (compound_statement "{\n                    local_150 = (code *******)0x1;\n                    pppppppcVar30 = param_9;\n                    pppppppcVar33 = pppppppcVar28;\n                    goto LAB_000557e4;\n                  }" { (expression_statement "local_150 = (code *******)0x1;" (assignment_expression "local_150 = (code *******)0x1" identifier = (cast_expression "(code *******)0x1" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "pppppppcVar30 = param_9;" (assignment_expression "pppppppcVar30 = param_9" identifier = identifier) ;) (expression_statement "pppppppcVar33 = pppppppcVar28;" (assignment_expression "pppppppcVar33 = pppppppcVar28" identifier = identifier) ;) (goto_statement "goto LAB_000557e4;" goto statement_identifier ;) })) })) })) (expression_statement "pppppppcVar33 = pppppppcVar28;" (assignment_expression "pppppppcVar33 = pppppppcVar28" identifier = identifier) ;) (expression_statement "bVar1 = pppppppcVar36 != (code *******)0x0;" (assignment_expression "bVar1 = pppppppcVar36 != (code *******)0x0" identifier = (binary_expression "pppppppcVar36 != (code *******)0x0" identifier != (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal))) ;) (if_statement "if ((local_50 == (code *******)0x0) ||\n                 (local_50[(int)pppppppcVar42] = (code ******)unaff_s7,\n                 pppppppcVar14[0x13] == (code ******)0x0)) {\nLAB_00054d50:\n                if ((int)unaff_s7[0xd] << 4 < 0) {\n                  if ((((uint)unaff_s7[0xd] & 0x1000000) == 0) ||\n                     (pppppppcVar29 = unaff_s7, pppppppcVar30 = pppppppcVar42,\n                     iVar18 = FUN_00049440(&local_b4), iVar18 != 0)) {\n                    unaff_s8 = pppppppcVar42;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                  }\n                  else {\n                    pppppppcVar42 = (code *******)0xffffffff;\n                    pppppppcVar28 = (code *******)0x0;\n                  }\n                }\n                else {\n                  pppppppcVar42 = (code *******)0xffffffff;\n                  pppppppcVar28 = (code *******)0x0;\n                }\n                pcVar8 = (code *)(PTR_DAT_000799a4 + -0x7144);\n                pcVar9 = (code *)(PTR_DAT_000799a4 + -0x1980);\n                pcVar10 = (code *)(PTR_DAT_000799a4 + -0x2f9c);\n                unaff_s8 = pppppppcVar42;\n                local_144 = pppppppcVar36;\n                while( true ) {\n                  uVar44 = CONCAT44(local_98,local_84);\n                  unaff_s5 = (code *******)((int)local_8c + 1);\n                  pppppppcVar29 = local_8c;\n                  if ((int)local_7c <= (int)local_8c) break;\n                  if (((int)local_90 <= (int)unaff_s5) && ((int)local_90 < (int)local_84))\n                  goto LAB_00054e94;\n                  if ((int)local_98 <= (int)unaff_s5) {\n                    while ((int)((ulonglong)uVar44 >> 0x20) < (int)uVar44) {\nLAB_00054e94:\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 2);\n                      local_d8 = (code *******)(*pcVar8)(&local_b4);\n                      if (local_d8 == (code *******)0x0) break;\n                      pppppppcVar14 = param_4;\n                      if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                      pppppppcVar33 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                      pppppppcVar30 = (code *******)0x46c;\n                      pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                      uVar44 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0);\n                      pppppppcVar28 = pppppppcVar38;\n                    }\n                  }\n                  pppppppcVar42 = local_60;\n                  if ((int)unaff_s7[0xd] << 5 < 0) {\n                    pppppppcVar31 = pppppppcVar42;\n                    if (0 < (int)unaff_s7[2]) {\n                      pcVar11 = (code *)(PTR_DAT_000799a4 + -0x6fdc);\n                      pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6ef0);\n                      param_6 = (code *******)0x0;\n                      do {\n                        param_5 = (code *******)unaff_s7[3][(int)param_6];\n                        ppppppcVar39 = *pppppppcVar42;\n                        pppppcVar13 = ppppppcVar39[(int)param_5 * 2 + 1];\n                        if (((uint)pppppcVar13 & 0x800) != 0) {\n                          if (((uint)pppppcVar13 & 0xffc000) != 0) {\n                            pppppppcVar29 = local_8c;\n                            uVar19 = (*pcVar12)(&local_b4,local_8c,local_5c);\n                            uVar7 = (uint)((int)ppppppcVar39[(int)param_5 * 2 + 1] << 8) >> 0x16;\n                            if ((uVar7 & 4) == 0) {\n                              uVar27 = uVar19 & 1;\n                              if ((uVar7 & 8) != 0) goto joined_r0x00054f40;\n                            }\n                            else {\n                              uVar27 = uVar7 & 8;\n                              if ((uVar19 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                              if (uVar27 != 0) goto LAB_000550a4;\n                            }\n                            if ((((uVar7 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                               (((uVar7 & 0x80) != 0 &&\n                                (pppppppcVar33 = local_8c, (uVar19 & 8) == 0)))) goto LAB_000550a4;\n                          }\n                          pppppppcVar30 = &local_b4;\n                          pppppppcVar29 = param_5;\n                          pppppppcVar33 = local_8c;\n                          iVar18 = (*pcVar10)(pppppppcVar42);\n                          if (iVar18 != 0) {\n                            pppppppcVar14 = (code *******)((int)local_8c + iVar18);\n                            if (iVar18 <= local_3c) {\n                              iVar18 = local_3c;\n                            }\n                            pppppppcVar29 = pppppppcVar14;\n                            local_3c = iVar18;\n                            local_d4 = (code *******)(*pcVar11)(&local_b4);\n                            pppppppcVar15 = local_d4;\n                            if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                            pppppppcVar30 =\n                                 (code *******)\n                                 (pppppppcVar42[6] + (int)pppppppcVar42[3][(int)param_5] * 3);\n                            unaff_s4 = (code *******)((int)pppppppcVar14 * 4);\n                            param_5 = local_50 + (int)pppppppcVar14;\n                            if (*param_5 == (code ******)0x0) {\n                              local_d0 = (code *******)*pppppppcVar30;\n                              local_cc = (code *******)pppppppcVar30[1];\n                              local_c8 = (code *******)pppppppcVar30[2];\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *param_5 = ppppppcVar39;\n                            }\n                            else {\n                              pppppppcVar29 = (code *******)(*param_5)[10];\n                              local_d4 = (code *******)FUN_000484bc(&local_d0);\n                              pppppppcVar15 = local_d4;\n                              if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar15 = local_50 + (int)pppppppcVar14;\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *pppppppcVar15 = ppppppcVar39;\n                              (*(code *)PTR_free_00079c24)(local_c8);\n                            }\n                            unaff_s4 = local_50 + (int)pppppppcVar14;\n                            if ((*unaff_s4 == (code ******)0x0) &&\n                               (pppppppcVar15 = local_d4, local_d4 != (code *******)0x0))\n                            goto LAB_00055e44;\n                          }\n                        }\nLAB_000550a4:\n                        param_6 = (code *******)((int)param_6 + 1);\n                      } while ((int)param_6 < (int)unaff_s7[2]);\n                    }\n                    local_d8 = (code *******)0x0;\n                  }\n                  uVar7 = (uint)(byte)*(code *)((int)local_8c + (int)local_b0);\n                  local_8c = (code *******)((int)local_8c + 1);\n                  do {\n                    if (unaff_s7[0xb] != (code ******)0x0) {\n                      pppppppcVar30 = (code *******)unaff_s7[0xb][uVar7];\nLAB_000553a0:\n                      pppppppcVar14 = pppppppcVar30;\n                      if (local_50 != (code *******)0x0) goto LAB_000553ac;\n                      goto LAB_000553cc;\n                    }\n                    pppppppcVar31 = (code *******)unaff_s7[0xc];\n                    if (pppppppcVar31 != (code *******)0x0) {\n                      pppppppcVar29 = (code *******)((int)local_8c + -1);\n                      uVar19 = FUN_00049110(&local_b4);\n                      if ((uVar19 & 1) == 0) {\n                        pppppppcVar30 = (code *******)pppppppcVar31[uVar7];\n                      }\n                      else {\n                        pppppppcVar31 = pppppppcVar31 + uVar7 + 0x100;\n                        pppppppcVar30 = (code *******)*pppppppcVar31;\n                      }\n                      goto LAB_000553a0;\n                    }\n                    pppppppcVar29 = unaff_s7;\n                    pppppppcVar30 = local_5c;\n                    iVar18 = (*pcVar9)(local_60);\n                  } while (iVar18 != 0);\n                  local_d8 = (code *******)0xc;\n                  pppppppcVar15 = local_d8;\nLAB_00055e44:\n                  local_d8 = pppppppcVar15;\n                  param_4 = (code *******)0x0;\n                  if (local_50 == (code *******)0x0) {\n                    pppppppcVar14 = param_4;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    break;\n                  }\n                  pppppppcVar30 = (code *******)0x0;\nLAB_000553ac:\n                  pppppppcVar29 = &local_b4;\n                  pppppppcVar14 = (code *******)FUN_00053684(&local_d8);\nLAB_000553cc:\n                  param_4 = pppppppcVar14;\n                  if (pppppppcVar14 == (code *******)0x0) {\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    if ((local_50 == (code *******)0x0) ||\n                       ((pppppppcVar28 != (code *******)0x0 && (pppppppcVar34 == (code *******)0x0))\n                       )) break;\n                    param_6 = &local_b4;\n                    param_5 = (code *******)&local_d8;\n                    pppppppcVar31 = (code *******)(PTR_DAT_000799a4 + 0x3684);\n                    do {\n                      pppppppcVar15 = local_50 + (int)local_8c;\n                      pppppppcVar42 = local_8c;\n                      do {\n                        pppppppcVar42 = (code *******)((int)pppppppcVar42 + 1);\n                        pppppppcVar29 = local_4c;\n                        param_4 = pppppppcVar14;\n                        if ((int)local_4c < (int)pppppppcVar42) goto LAB_00055da8;\n                        local_8c = (code *******)((int)local_8c + 1);\n                        pppppppcVar15 = pppppppcVar15 + 1;\n                      } while (*pppppppcVar15 == (code ******)0x0);\n                      pppppppcVar30 = (code *******)0x0;\n                      pppppppcVar29 = param_6;\n                      param_4 = (code *******)(*(code *)pppppppcVar31)(param_5);\n                      if (local_d8 != (code *******)0x0) {\n                        if (param_4 == (code *******)0x0) goto LAB_00055da8;\n                        break;\n                      }\n                      pppppppcVar29 = local_4c;\n                    } while (param_4 == (code *******)0x0);\n                  }\n                  pppppppcVar15 = (code *******)((uint)unaff_s7 ^ (uint)param_4);\n                  pppppppcVar42 = unaff_s7;\n                  pppppppcVar14 = local_138;\n                  if ((bVar1) &&\n                     (pppppppcVar42 = pppppppcVar15, pppppppcVar14 = unaff_s5,\n                     pppppppcVar15 != (code *******)0x0)) {\n                    bVar1 = false;\n                    pppppppcVar14 = local_138;\n                  }\n                  local_138 = pppppppcVar14;\n                  unaff_s7 = param_4;\n                  if ((((uint)param_4[0xd] & 0x8000000) != 0) &&\n                     ((((uint)param_4[0xd] & 0x1000000) == 0 ||\n                      (pppppppcVar29 = param_4, pppppppcVar30 = local_8c,\n                      iVar18 = FUN_00049440(&local_b4), iVar18 != 0)))) {\n                    unaff_s7 = pppppppcVar42;\n                    unaff_s8 = local_8c;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                    local_144 = (code *******)0x0;\n                    unaff_s7 = param_4;\n                  }\n                }\nLAB_00055da8:\n                if (local_144 != (code *******)0x0) {\n                  *local_144 = (code ******)((int)local_138 + (int)*local_144);\n                }\n              }\n              else {\n                param_4 = unaff_s7 + 1;\n                pppppppcVar30 = (code *******)0x0;\n                pppppppcVar29 = param_4;\n                local_d8 = (code *******)FUN_00047a44(&local_b4);\n                unaff_s8 = local_d8;\n                if (local_d8 == (code *******)0x0) {\n                  if (((uint)unaff_s7[0xd] & 0x2000000) == 0) {\n                    pppppppcVar29 = param_4;\n                    bVar1 = false;\n                  }\n                  else {\n                    pppppppcVar29 = param_4;\n                    local_d8 = (code *******)FUN_00052d84(&local_b4);\n                    unaff_s8 = local_d8;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055dbc;\n                    bVar1 = false;\n                  }\n                  goto LAB_00054d50;\n                }\n              }" if (parenthesized_expression "((local_50 == (code *******)0x0) ||\n                 (local_50[(int)pppppppcVar42] = (code ******)unaff_s7,\n                 pppppppcVar14[0x13] == (code ******)0x0))" ( (binary_expression "(local_50 == (code *******)0x0) ||\n                 (local_50[(int)pppppppcVar42] = (code ******)unaff_s7,\n                 pppppppcVar14[0x13] == (code ******)0x0)" (parenthesized_expression "(local_50 == (code *******)0x0)" ( (binary_expression "local_50 == (code *******)0x0" identifier == (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) || (parenthesized_expression "(local_50[(int)pppppppcVar42] = (code ******)unaff_s7,\n                 pppppppcVar14[0x13] == (code ******)0x0)" ( (comma_expression "local_50[(int)pppppppcVar42] = (code ******)unaff_s7,\n                 pppppppcVar14[0x13] == (code ******)0x0" (assignment_expression "local_50[(int)pppppppcVar42] = (code ******)unaff_s7" (subscript_expression "local_50[(int)pppppppcVar42]" identifier [ (cast_expression "(int)pppppppcVar42" ( (type_descriptor "int" primitive_type) ) identifier) ]) = (cast_expression "(code ******)unaff_s7" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) identifier)) , (binary_expression "pppppppcVar14[0x13] == (code ******)0x0" (subscript_expression "pppppppcVar14[0x13]" identifier [ number_literal ]) == (cast_expression "(code ******)0x0" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal))) ))) )) (compound_statement "{\nLAB_00054d50:\n                if ((int)unaff_s7[0xd] << 4 < 0) {\n                  if ((((uint)unaff_s7[0xd] & 0x1000000) == 0) ||\n                     (pppppppcVar29 = unaff_s7, pppppppcVar30 = pppppppcVar42,\n                     iVar18 = FUN_00049440(&local_b4), iVar18 != 0)) {\n                    unaff_s8 = pppppppcVar42;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                  }\n                  else {\n                    pppppppcVar42 = (code *******)0xffffffff;\n                    pppppppcVar28 = (code *******)0x0;\n                  }\n                }\n                else {\n                  pppppppcVar42 = (code *******)0xffffffff;\n                  pppppppcVar28 = (code *******)0x0;\n                }\n                pcVar8 = (code *)(PTR_DAT_000799a4 + -0x7144);\n                pcVar9 = (code *)(PTR_DAT_000799a4 + -0x1980);\n                pcVar10 = (code *)(PTR_DAT_000799a4 + -0x2f9c);\n                unaff_s8 = pppppppcVar42;\n                local_144 = pppppppcVar36;\n                while( true ) {\n                  uVar44 = CONCAT44(local_98,local_84);\n                  unaff_s5 = (code *******)((int)local_8c + 1);\n                  pppppppcVar29 = local_8c;\n                  if ((int)local_7c <= (int)local_8c) break;\n                  if (((int)local_90 <= (int)unaff_s5) && ((int)local_90 < (int)local_84))\n                  goto LAB_00054e94;\n                  if ((int)local_98 <= (int)unaff_s5) {\n                    while ((int)((ulonglong)uVar44 >> 0x20) < (int)uVar44) {\nLAB_00054e94:\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 2);\n                      local_d8 = (code *******)(*pcVar8)(&local_b4);\n                      if (local_d8 == (code *******)0x0) break;\n                      pppppppcVar14 = param_4;\n                      if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                      pppppppcVar33 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                      pppppppcVar30 = (code *******)0x46c;\n                      pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                      uVar44 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0);\n                      pppppppcVar28 = pppppppcVar38;\n                    }\n                  }\n                  pppppppcVar42 = local_60;\n                  if ((int)unaff_s7[0xd] << 5 < 0) {\n                    pppppppcVar31 = pppppppcVar42;\n                    if (0 < (int)unaff_s7[2]) {\n                      pcVar11 = (code *)(PTR_DAT_000799a4 + -0x6fdc);\n                      pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6ef0);\n                      param_6 = (code *******)0x0;\n                      do {\n                        param_5 = (code *******)unaff_s7[3][(int)param_6];\n                        ppppppcVar39 = *pppppppcVar42;\n                        pppppcVar13 = ppppppcVar39[(int)param_5 * 2 + 1];\n                        if (((uint)pppppcVar13 & 0x800) != 0) {\n                          if (((uint)pppppcVar13 & 0xffc000) != 0) {\n                            pppppppcVar29 = local_8c;\n                            uVar19 = (*pcVar12)(&local_b4,local_8c,local_5c);\n                            uVar7 = (uint)((int)ppppppcVar39[(int)param_5 * 2 + 1] << 8) >> 0x16;\n                            if ((uVar7 & 4) == 0) {\n                              uVar27 = uVar19 & 1;\n                              if ((uVar7 & 8) != 0) goto joined_r0x00054f40;\n                            }\n                            else {\n                              uVar27 = uVar7 & 8;\n                              if ((uVar19 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                              if (uVar27 != 0) goto LAB_000550a4;\n                            }\n                            if ((((uVar7 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                               (((uVar7 & 0x80) != 0 &&\n                                (pppppppcVar33 = local_8c, (uVar19 & 8) == 0)))) goto LAB_000550a4;\n                          }\n                          pppppppcVar30 = &local_b4;\n                          pppppppcVar29 = param_5;\n                          pppppppcVar33 = local_8c;\n                          iVar18 = (*pcVar10)(pppppppcVar42);\n                          if (iVar18 != 0) {\n                            pppppppcVar14 = (code *******)((int)local_8c + iVar18);\n                            if (iVar18 <= local_3c) {\n                              iVar18 = local_3c;\n                            }\n                            pppppppcVar29 = pppppppcVar14;\n                            local_3c = iVar18;\n                            local_d4 = (code *******)(*pcVar11)(&local_b4);\n                            pppppppcVar15 = local_d4;\n                            if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                            pppppppcVar30 =\n                                 (code *******)\n                                 (pppppppcVar42[6] + (int)pppppppcVar42[3][(int)param_5] * 3);\n                            unaff_s4 = (code *******)((int)pppppppcVar14 * 4);\n                            param_5 = local_50 + (int)pppppppcVar14;\n                            if (*param_5 == (code ******)0x0) {\n                              local_d0 = (code *******)*pppppppcVar30;\n                              local_cc = (code *******)pppppppcVar30[1];\n                              local_c8 = (code *******)pppppppcVar30[2];\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *param_5 = ppppppcVar39;\n                            }\n                            else {\n                              pppppppcVar29 = (code *******)(*param_5)[10];\n                              local_d4 = (code *******)FUN_000484bc(&local_d0);\n                              pppppppcVar15 = local_d4;\n                              if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar15 = local_50 + (int)pppppppcVar14;\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *pppppppcVar15 = ppppppcVar39;\n                              (*(code *)PTR_free_00079c24)(local_c8);\n                            }\n                            unaff_s4 = local_50 + (int)pppppppcVar14;\n                            if ((*unaff_s4 == (code ******)0x0) &&\n                               (pppppppcVar15 = local_d4, local_d4 != (code *******)0x0))\n                            goto LAB_00055e44;\n                          }\n                        }\nLAB_000550a4:\n                        param_6 = (code *******)((int)param_6 + 1);\n                      } while ((int)param_6 < (int)unaff_s7[2]);\n                    }\n                    local_d8 = (code *******)0x0;\n                  }\n                  uVar7 = (uint)(byte)*(code *)((int)local_8c + (int)local_b0);\n                  local_8c = (code *******)((int)local_8c + 1);\n                  do {\n                    if (unaff_s7[0xb] != (code ******)0x0) {\n                      pppppppcVar30 = (code *******)unaff_s7[0xb][uVar7];\nLAB_000553a0:\n                      pppppppcVar14 = pppppppcVar30;\n                      if (local_50 != (code *******)0x0) goto LAB_000553ac;\n                      goto LAB_000553cc;\n                    }\n                    pppppppcVar31 = (code *******)unaff_s7[0xc];\n                    if (pppppppcVar31 != (code *******)0x0) {\n                      pppppppcVar29 = (code *******)((int)local_8c + -1);\n                      uVar19 = FUN_00049110(&local_b4);\n                      if ((uVar19 & 1) == 0) {\n                        pppppppcVar30 = (code *******)pppppppcVar31[uVar7];\n                      }\n                      else {\n                        pppppppcVar31 = pppppppcVar31 + uVar7 + 0x100;\n                        pppppppcVar30 = (code *******)*pppppppcVar31;\n                      }\n                      goto LAB_000553a0;\n                    }\n                    pppppppcVar29 = unaff_s7;\n                    pppppppcVar30 = local_5c;\n                    iVar18 = (*pcVar9)(local_60);\n                  } while (iVar18 != 0);\n                  local_d8 = (code *******)0xc;\n                  pppppppcVar15 = local_d8;\nLAB_00055e44:\n                  local_d8 = pppppppcVar15;\n                  param_4 = (code *******)0x0;\n                  if (local_50 == (code *******)0x0) {\n                    pppppppcVar14 = param_4;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    break;\n                  }\n                  pppppppcVar30 = (code *******)0x0;\nLAB_000553ac:\n                  pppppppcVar29 = &local_b4;\n                  pppppppcVar14 = (code *******)FUN_00053684(&local_d8);\nLAB_000553cc:\n                  param_4 = pppppppcVar14;\n                  if (pppppppcVar14 == (code *******)0x0) {\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    if ((local_50 == (code *******)0x0) ||\n                       ((pppppppcVar28 != (code *******)0x0 && (pppppppcVar34 == (code *******)0x0))\n                       )) break;\n                    param_6 = &local_b4;\n                    param_5 = (code *******)&local_d8;\n                    pppppppcVar31 = (code *******)(PTR_DAT_000799a4 + 0x3684);\n                    do {\n                      pppppppcVar15 = local_50 + (int)local_8c;\n                      pppppppcVar42 = local_8c;\n                      do {\n                        pppppppcVar42 = (code *******)((int)pppppppcVar42 + 1);\n                        pppppppcVar29 = local_4c;\n                        param_4 = pppppppcVar14;\n                        if ((int)local_4c < (int)pppppppcVar42) goto LAB_00055da8;\n                        local_8c = (code *******)((int)local_8c + 1);\n                        pppppppcVar15 = pppppppcVar15 + 1;\n                      } while (*pppppppcVar15 == (code ******)0x0);\n                      pppppppcVar30 = (code *******)0x0;\n                      pppppppcVar29 = param_6;\n                      param_4 = (code *******)(*(code *)pppppppcVar31)(param_5);\n                      if (local_d8 != (code *******)0x0) {\n                        if (param_4 == (code *******)0x0) goto LAB_00055da8;\n                        break;\n                      }\n                      pppppppcVar29 = local_4c;\n                    } while (param_4 == (code *******)0x0);\n                  }\n                  pppppppcVar15 = (code *******)((uint)unaff_s7 ^ (uint)param_4);\n                  pppppppcVar42 = unaff_s7;\n                  pppppppcVar14 = local_138;\n                  if ((bVar1) &&\n                     (pppppppcVar42 = pppppppcVar15, pppppppcVar14 = unaff_s5,\n                     pppppppcVar15 != (code *******)0x0)) {\n                    bVar1 = false;\n                    pppppppcVar14 = local_138;\n                  }\n                  local_138 = pppppppcVar14;\n                  unaff_s7 = param_4;\n                  if ((((uint)param_4[0xd] & 0x8000000) != 0) &&\n                     ((((uint)param_4[0xd] & 0x1000000) == 0 ||\n                      (pppppppcVar29 = param_4, pppppppcVar30 = local_8c,\n                      iVar18 = FUN_00049440(&local_b4), iVar18 != 0)))) {\n                    unaff_s7 = pppppppcVar42;\n                    unaff_s8 = local_8c;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                    local_144 = (code *******)0x0;\n                    unaff_s7 = param_4;\n                  }\n                }\nLAB_00055da8:\n                if (local_144 != (code *******)0x0) {\n                  *local_144 = (code ******)((int)local_138 + (int)*local_144);\n                }\n              }" { (labeled_statement "LAB_00054d50:\n                if ((int)unaff_s7[0xd] << 4 < 0) {\n                  if ((((uint)unaff_s7[0xd] & 0x1000000) == 0) ||\n                     (pppppppcVar29 = unaff_s7, pppppppcVar30 = pppppppcVar42,\n                     iVar18 = FUN_00049440(&local_b4), iVar18 != 0)) {\n                    unaff_s8 = pppppppcVar42;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                  }\n                  else {\n                    pppppppcVar42 = (code *******)0xffffffff;\n                    pppppppcVar28 = (code *******)0x0;\n                  }\n                }\n                else {\n                  pppppppcVar42 = (code *******)0xffffffff;\n                  pppppppcVar28 = (code *******)0x0;\n                }" statement_identifier : (if_statement "if ((int)unaff_s7[0xd] << 4 < 0) {\n                  if ((((uint)unaff_s7[0xd] & 0x1000000) == 0) ||\n                     (pppppppcVar29 = unaff_s7, pppppppcVar30 = pppppppcVar42,\n                     iVar18 = FUN_00049440(&local_b4), iVar18 != 0)) {\n                    unaff_s8 = pppppppcVar42;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                  }\n                  else {\n                    pppppppcVar42 = (code *******)0xffffffff;\n                    pppppppcVar28 = (code *******)0x0;\n                  }\n                }\n                else {\n                  pppppppcVar42 = (code *******)0xffffffff;\n                  pppppppcVar28 = (code *******)0x0;\n                }" if (parenthesized_expression "((int)unaff_s7[0xd] << 4 < 0)" ( (binary_expression "(int)unaff_s7[0xd] << 4 < 0" (binary_expression "(int)unaff_s7[0xd] << 4" (cast_expression "(int)unaff_s7[0xd]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "unaff_s7[0xd]" identifier [ number_literal ])) << number_literal) < number_literal) )) (compound_statement "{\n                  if ((((uint)unaff_s7[0xd] & 0x1000000) == 0) ||\n                     (pppppppcVar29 = unaff_s7, pppppppcVar30 = pppppppcVar42,\n                     iVar18 = FUN_00049440(&local_b4), iVar18 != 0)) {\n                    unaff_s8 = pppppppcVar42;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                  }\n                  else {\n                    pppppppcVar42 = (code *******)0xffffffff;\n                    pppppppcVar28 = (code *******)0x0;\n                  }\n                }" { (if_statement "if ((((uint)unaff_s7[0xd] & 0x1000000) == 0) ||\n                     (pppppppcVar29 = unaff_s7, pppppppcVar30 = pppppppcVar42,\n                     iVar18 = FUN_00049440(&local_b4), iVar18 != 0)) {\n                    unaff_s8 = pppppppcVar42;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                  }\n                  else {\n                    pppppppcVar42 = (code *******)0xffffffff;\n                    pppppppcVar28 = (code *******)0x0;\n                  }" if (parenthesized_expression "((((uint)unaff_s7[0xd] & 0x1000000) == 0) ||\n                     (pppppppcVar29 = unaff_s7, pppppppcVar30 = pppppppcVar42,\n                     iVar18 = FUN_00049440(&local_b4), iVar18 != 0))" ( (binary_expression "(((uint)unaff_s7[0xd] & 0x1000000) == 0) ||\n                     (pppppppcVar29 = unaff_s7, pppppppcVar30 = pppppppcVar42,\n                     iVar18 = FUN_00049440(&local_b4), iVar18 != 0)" (parenthesized_expression "(((uint)unaff_s7[0xd] & 0x1000000) == 0)" ( (binary_expression "((uint)unaff_s7[0xd] & 0x1000000) == 0" (parenthesized_expression "((uint)unaff_s7[0xd] & 0x1000000)" ( (binary_expression "(uint)unaff_s7[0xd] & 0x1000000" (cast_expression "(uint)unaff_s7[0xd]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "unaff_s7[0xd]" identifier [ number_literal ])) & number_literal) )) == number_literal) )) || (parenthesized_expression "(pppppppcVar29 = unaff_s7, pppppppcVar30 = pppppppcVar42,\n                     iVar18 = FUN_00049440(&local_b4), iVar18 != 0)" ( (comma_expression "pppppppcVar29 = unaff_s7, pppppppcVar30 = pppppppcVar42,\n                     iVar18 = FUN_00049440(&local_b4), iVar18 != 0" (assignment_expression "pppppppcVar29 = unaff_s7" identifier = identifier) , (comma_expression "pppppppcVar30 = pppppppcVar42,\n                     iVar18 = FUN_00049440(&local_b4), iVar18 != 0" (assignment_expression "pppppppcVar30 = pppppppcVar42" identifier = identifier) , (comma_expression "iVar18 = FUN_00049440(&local_b4), iVar18 != 0" (assignment_expression "iVar18 = FUN_00049440(&local_b4)" identifier = (call_expression "FUN_00049440(&local_b4)" identifier (argument_list "(&local_b4)" ( (pointer_expression "&local_b4" & identifier) )))) , (binary_expression "iVar18 != 0" identifier != number_literal)))) ))) )) (compound_statement "{\n                    unaff_s8 = pppppppcVar42;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                  }" { (expression_statement "unaff_s8 = pppppppcVar42;" (assignment_expression "unaff_s8 = pppppppcVar42" identifier = identifier) ;) (if_statement "if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;" if (parenthesized_expression "(pppppppcVar34 == (code *******)0x0)" ( (binary_expression "pppppppcVar34 == (code *******)0x0" identifier == (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (goto_statement "goto LAB_00055dbc;" goto statement_identifier ;)) (expression_statement "pppppppcVar28 = (code *******)0x1;" (assignment_expression "pppppppcVar28 = (code *******)0x1" identifier = (cast_expression "(code *******)0x1" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) }) (else_clause "else {\n                    pppppppcVar42 = (code *******)0xffffffff;\n                    pppppppcVar28 = (code *******)0x0;\n                  }" else (compound_statement "{\n                    pppppppcVar42 = (code *******)0xffffffff;\n                    pppppppcVar28 = (code *******)0x0;\n                  }" { (expression_statement "pppppppcVar42 = (code *******)0xffffffff;" (assignment_expression "pppppppcVar42 = (code *******)0xffffffff" identifier = (cast_expression "(code *******)0xffffffff" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "pppppppcVar28 = (code *******)0x0;" (assignment_expression "pppppppcVar28 = (code *******)0x0" identifier = (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) }))) }) (else_clause "else {\n                  pppppppcVar42 = (code *******)0xffffffff;\n                  pppppppcVar28 = (code *******)0x0;\n                }" else (compound_statement "{\n                  pppppppcVar42 = (code *******)0xffffffff;\n                  pppppppcVar28 = (code *******)0x0;\n                }" { (expression_statement "pppppppcVar42 = (code *******)0xffffffff;" (assignment_expression "pppppppcVar42 = (code *******)0xffffffff" identifier = (cast_expression "(code *******)0xffffffff" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "pppppppcVar28 = (code *******)0x0;" (assignment_expression "pppppppcVar28 = (code *******)0x0" identifier = (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) })))) (expression_statement "pcVar8 = (code *)(PTR_DAT_000799a4 + -0x7144);" (assignment_expression "pcVar8 = (code *)(PTR_DAT_000799a4 + -0x7144)" identifier = (cast_expression "(code *)(PTR_DAT_000799a4 + -0x7144)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000799a4 + -0x7144)" ( (binary_expression "PTR_DAT_000799a4 + -0x7144" identifier + number_literal) )))) ;) (expression_statement "pcVar9 = (code *)(PTR_DAT_000799a4 + -0x1980);" (assignment_expression "pcVar9 = (code *)(PTR_DAT_000799a4 + -0x1980)" identifier = (cast_expression "(code *)(PTR_DAT_000799a4 + -0x1980)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000799a4 + -0x1980)" ( (binary_expression "PTR_DAT_000799a4 + -0x1980" identifier + number_literal) )))) ;) (expression_statement "pcVar10 = (code *)(PTR_DAT_000799a4 + -0x2f9c);" (assignment_expression "pcVar10 = (code *)(PTR_DAT_000799a4 + -0x2f9c)" identifier = (cast_expression "(code *)(PTR_DAT_000799a4 + -0x2f9c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000799a4 + -0x2f9c)" ( (binary_expression "PTR_DAT_000799a4 + -0x2f9c" identifier + number_literal) )))) ;) (expression_statement "unaff_s8 = pppppppcVar42;" (assignment_expression "unaff_s8 = pppppppcVar42" identifier = identifier) ;) (expression_statement "local_144 = pppppppcVar36;" (assignment_expression "local_144 = pppppppcVar36" identifier = identifier) ;) (while_statement "while( true ) {\n                  uVar44 = CONCAT44(local_98,local_84);\n                  unaff_s5 = (code *******)((int)local_8c + 1);\n                  pppppppcVar29 = local_8c;\n                  if ((int)local_7c <= (int)local_8c) break;\n                  if (((int)local_90 <= (int)unaff_s5) && ((int)local_90 < (int)local_84))\n                  goto LAB_00054e94;\n                  if ((int)local_98 <= (int)unaff_s5) {\n                    while ((int)((ulonglong)uVar44 >> 0x20) < (int)uVar44) {\nLAB_00054e94:\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 2);\n                      local_d8 = (code *******)(*pcVar8)(&local_b4);\n                      if (local_d8 == (code *******)0x0) break;\n                      pppppppcVar14 = param_4;\n                      if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                      pppppppcVar33 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                      pppppppcVar30 = (code *******)0x46c;\n                      pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                      uVar44 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0);\n                      pppppppcVar28 = pppppppcVar38;\n                    }\n                  }\n                  pppppppcVar42 = local_60;\n                  if ((int)unaff_s7[0xd] << 5 < 0) {\n                    pppppppcVar31 = pppppppcVar42;\n                    if (0 < (int)unaff_s7[2]) {\n                      pcVar11 = (code *)(PTR_DAT_000799a4 + -0x6fdc);\n                      pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6ef0);\n                      param_6 = (code *******)0x0;\n                      do {\n                        param_5 = (code *******)unaff_s7[3][(int)param_6];\n                        ppppppcVar39 = *pppppppcVar42;\n                        pppppcVar13 = ppppppcVar39[(int)param_5 * 2 + 1];\n                        if (((uint)pppppcVar13 & 0x800) != 0) {\n                          if (((uint)pppppcVar13 & 0xffc000) != 0) {\n                            pppppppcVar29 = local_8c;\n                            uVar19 = (*pcVar12)(&local_b4,local_8c,local_5c);\n                            uVar7 = (uint)((int)ppppppcVar39[(int)param_5 * 2 + 1] << 8) >> 0x16;\n                            if ((uVar7 & 4) == 0) {\n                              uVar27 = uVar19 & 1;\n                              if ((uVar7 & 8) != 0) goto joined_r0x00054f40;\n                            }\n                            else {\n                              uVar27 = uVar7 & 8;\n                              if ((uVar19 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                              if (uVar27 != 0) goto LAB_000550a4;\n                            }\n                            if ((((uVar7 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                               (((uVar7 & 0x80) != 0 &&\n                                (pppppppcVar33 = local_8c, (uVar19 & 8) == 0)))) goto LAB_000550a4;\n                          }\n                          pppppppcVar30 = &local_b4;\n                          pppppppcVar29 = param_5;\n                          pppppppcVar33 = local_8c;\n                          iVar18 = (*pcVar10)(pppppppcVar42);\n                          if (iVar18 != 0) {\n                            pppppppcVar14 = (code *******)((int)local_8c + iVar18);\n                            if (iVar18 <= local_3c) {\n                              iVar18 = local_3c;\n                            }\n                            pppppppcVar29 = pppppppcVar14;\n                            local_3c = iVar18;\n                            local_d4 = (code *******)(*pcVar11)(&local_b4);\n                            pppppppcVar15 = local_d4;\n                            if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                            pppppppcVar30 =\n                                 (code *******)\n                                 (pppppppcVar42[6] + (int)pppppppcVar42[3][(int)param_5] * 3);\n                            unaff_s4 = (code *******)((int)pppppppcVar14 * 4);\n                            param_5 = local_50 + (int)pppppppcVar14;\n                            if (*param_5 == (code ******)0x0) {\n                              local_d0 = (code *******)*pppppppcVar30;\n                              local_cc = (code *******)pppppppcVar30[1];\n                              local_c8 = (code *******)pppppppcVar30[2];\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *param_5 = ppppppcVar39;\n                            }\n                            else {\n                              pppppppcVar29 = (code *******)(*param_5)[10];\n                              local_d4 = (code *******)FUN_000484bc(&local_d0);\n                              pppppppcVar15 = local_d4;\n                              if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar15 = local_50 + (int)pppppppcVar14;\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *pppppppcVar15 = ppppppcVar39;\n                              (*(code *)PTR_free_00079c24)(local_c8);\n                            }\n                            unaff_s4 = local_50 + (int)pppppppcVar14;\n                            if ((*unaff_s4 == (code ******)0x0) &&\n                               (pppppppcVar15 = local_d4, local_d4 != (code *******)0x0))\n                            goto LAB_00055e44;\n                          }\n                        }\nLAB_000550a4:\n                        param_6 = (code *******)((int)param_6 + 1);\n                      } while ((int)param_6 < (int)unaff_s7[2]);\n                    }\n                    local_d8 = (code *******)0x0;\n                  }\n                  uVar7 = (uint)(byte)*(code *)((int)local_8c + (int)local_b0);\n                  local_8c = (code *******)((int)local_8c + 1);\n                  do {\n                    if (unaff_s7[0xb] != (code ******)0x0) {\n                      pppppppcVar30 = (code *******)unaff_s7[0xb][uVar7];\nLAB_000553a0:\n                      pppppppcVar14 = pppppppcVar30;\n                      if (local_50 != (code *******)0x0) goto LAB_000553ac;\n                      goto LAB_000553cc;\n                    }\n                    pppppppcVar31 = (code *******)unaff_s7[0xc];\n                    if (pppppppcVar31 != (code *******)0x0) {\n                      pppppppcVar29 = (code *******)((int)local_8c + -1);\n                      uVar19 = FUN_00049110(&local_b4);\n                      if ((uVar19 & 1) == 0) {\n                        pppppppcVar30 = (code *******)pppppppcVar31[uVar7];\n                      }\n                      else {\n                        pppppppcVar31 = pppppppcVar31 + uVar7 + 0x100;\n                        pppppppcVar30 = (code *******)*pppppppcVar31;\n                      }\n                      goto LAB_000553a0;\n                    }\n                    pppppppcVar29 = unaff_s7;\n                    pppppppcVar30 = local_5c;\n                    iVar18 = (*pcVar9)(local_60);\n                  } while (iVar18 != 0);\n                  local_d8 = (code *******)0xc;\n                  pppppppcVar15 = local_d8;\nLAB_00055e44:\n                  local_d8 = pppppppcVar15;\n                  param_4 = (code *******)0x0;\n                  if (local_50 == (code *******)0x0) {\n                    pppppppcVar14 = param_4;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    break;\n                  }\n                  pppppppcVar30 = (code *******)0x0;\nLAB_000553ac:\n                  pppppppcVar29 = &local_b4;\n                  pppppppcVar14 = (code *******)FUN_00053684(&local_d8);\nLAB_000553cc:\n                  param_4 = pppppppcVar14;\n                  if (pppppppcVar14 == (code *******)0x0) {\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    if ((local_50 == (code *******)0x0) ||\n                       ((pppppppcVar28 != (code *******)0x0 && (pppppppcVar34 == (code *******)0x0))\n                       )) break;\n                    param_6 = &local_b4;\n                    param_5 = (code *******)&local_d8;\n                    pppppppcVar31 = (code *******)(PTR_DAT_000799a4 + 0x3684);\n                    do {\n                      pppppppcVar15 = local_50 + (int)local_8c;\n                      pppppppcVar42 = local_8c;\n                      do {\n                        pppppppcVar42 = (code *******)((int)pppppppcVar42 + 1);\n                        pppppppcVar29 = local_4c;\n                        param_4 = pppppppcVar14;\n                        if ((int)local_4c < (int)pppppppcVar42) goto LAB_00055da8;\n                        local_8c = (code *******)((int)local_8c + 1);\n                        pppppppcVar15 = pppppppcVar15 + 1;\n                      } while (*pppppppcVar15 == (code ******)0x0);\n                      pppppppcVar30 = (code *******)0x0;\n                      pppppppcVar29 = param_6;\n                      param_4 = (code *******)(*(code *)pppppppcVar31)(param_5);\n                      if (local_d8 != (code *******)0x0) {\n                        if (param_4 == (code *******)0x0) goto LAB_00055da8;\n                        break;\n                      }\n                      pppppppcVar29 = local_4c;\n                    } while (param_4 == (code *******)0x0);\n                  }\n                  pppppppcVar15 = (code *******)((uint)unaff_s7 ^ (uint)param_4);\n                  pppppppcVar42 = unaff_s7;\n                  pppppppcVar14 = local_138;\n                  if ((bVar1) &&\n                     (pppppppcVar42 = pppppppcVar15, pppppppcVar14 = unaff_s5,\n                     pppppppcVar15 != (code *******)0x0)) {\n                    bVar1 = false;\n                    pppppppcVar14 = local_138;\n                  }\n                  local_138 = pppppppcVar14;\n                  unaff_s7 = param_4;\n                  if ((((uint)param_4[0xd] & 0x8000000) != 0) &&\n                     ((((uint)param_4[0xd] & 0x1000000) == 0 ||\n                      (pppppppcVar29 = param_4, pppppppcVar30 = local_8c,\n                      iVar18 = FUN_00049440(&local_b4), iVar18 != 0)))) {\n                    unaff_s7 = pppppppcVar42;\n                    unaff_s8 = local_8c;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                    local_144 = (code *******)0x0;\n                    unaff_s7 = param_4;\n                  }\n                }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                  uVar44 = CONCAT44(local_98,local_84);\n                  unaff_s5 = (code *******)((int)local_8c + 1);\n                  pppppppcVar29 = local_8c;\n                  if ((int)local_7c <= (int)local_8c) break;\n                  if (((int)local_90 <= (int)unaff_s5) && ((int)local_90 < (int)local_84))\n                  goto LAB_00054e94;\n                  if ((int)local_98 <= (int)unaff_s5) {\n                    while ((int)((ulonglong)uVar44 >> 0x20) < (int)uVar44) {\nLAB_00054e94:\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 2);\n                      local_d8 = (code *******)(*pcVar8)(&local_b4);\n                      if (local_d8 == (code *******)0x0) break;\n                      pppppppcVar14 = param_4;\n                      if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                      pppppppcVar33 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                      pppppppcVar30 = (code *******)0x46c;\n                      pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                      uVar44 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0);\n                      pppppppcVar28 = pppppppcVar38;\n                    }\n                  }\n                  pppppppcVar42 = local_60;\n                  if ((int)unaff_s7[0xd] << 5 < 0) {\n                    pppppppcVar31 = pppppppcVar42;\n                    if (0 < (int)unaff_s7[2]) {\n                      pcVar11 = (code *)(PTR_DAT_000799a4 + -0x6fdc);\n                      pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6ef0);\n                      param_6 = (code *******)0x0;\n                      do {\n                        param_5 = (code *******)unaff_s7[3][(int)param_6];\n                        ppppppcVar39 = *pppppppcVar42;\n                        pppppcVar13 = ppppppcVar39[(int)param_5 * 2 + 1];\n                        if (((uint)pppppcVar13 & 0x800) != 0) {\n                          if (((uint)pppppcVar13 & 0xffc000) != 0) {\n                            pppppppcVar29 = local_8c;\n                            uVar19 = (*pcVar12)(&local_b4,local_8c,local_5c);\n                            uVar7 = (uint)((int)ppppppcVar39[(int)param_5 * 2 + 1] << 8) >> 0x16;\n                            if ((uVar7 & 4) == 0) {\n                              uVar27 = uVar19 & 1;\n                              if ((uVar7 & 8) != 0) goto joined_r0x00054f40;\n                            }\n                            else {\n                              uVar27 = uVar7 & 8;\n                              if ((uVar19 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                              if (uVar27 != 0) goto LAB_000550a4;\n                            }\n                            if ((((uVar7 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                               (((uVar7 & 0x80) != 0 &&\n                                (pppppppcVar33 = local_8c, (uVar19 & 8) == 0)))) goto LAB_000550a4;\n                          }\n                          pppppppcVar30 = &local_b4;\n                          pppppppcVar29 = param_5;\n                          pppppppcVar33 = local_8c;\n                          iVar18 = (*pcVar10)(pppppppcVar42);\n                          if (iVar18 != 0) {\n                            pppppppcVar14 = (code *******)((int)local_8c + iVar18);\n                            if (iVar18 <= local_3c) {\n                              iVar18 = local_3c;\n                            }\n                            pppppppcVar29 = pppppppcVar14;\n                            local_3c = iVar18;\n                            local_d4 = (code *******)(*pcVar11)(&local_b4);\n                            pppppppcVar15 = local_d4;\n                            if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                            pppppppcVar30 =\n                                 (code *******)\n                                 (pppppppcVar42[6] + (int)pppppppcVar42[3][(int)param_5] * 3);\n                            unaff_s4 = (code *******)((int)pppppppcVar14 * 4);\n                            param_5 = local_50 + (int)pppppppcVar14;\n                            if (*param_5 == (code ******)0x0) {\n                              local_d0 = (code *******)*pppppppcVar30;\n                              local_cc = (code *******)pppppppcVar30[1];\n                              local_c8 = (code *******)pppppppcVar30[2];\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *param_5 = ppppppcVar39;\n                            }\n                            else {\n                              pppppppcVar29 = (code *******)(*param_5)[10];\n                              local_d4 = (code *******)FUN_000484bc(&local_d0);\n                              pppppppcVar15 = local_d4;\n                              if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar15 = local_50 + (int)pppppppcVar14;\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *pppppppcVar15 = ppppppcVar39;\n                              (*(code *)PTR_free_00079c24)(local_c8);\n                            }\n                            unaff_s4 = local_50 + (int)pppppppcVar14;\n                            if ((*unaff_s4 == (code ******)0x0) &&\n                               (pppppppcVar15 = local_d4, local_d4 != (code *******)0x0))\n                            goto LAB_00055e44;\n                          }\n                        }\nLAB_000550a4:\n                        param_6 = (code *******)((int)param_6 + 1);\n                      } while ((int)param_6 < (int)unaff_s7[2]);\n                    }\n                    local_d8 = (code *******)0x0;\n                  }\n                  uVar7 = (uint)(byte)*(code *)((int)local_8c + (int)local_b0);\n                  local_8c = (code *******)((int)local_8c + 1);\n                  do {\n                    if (unaff_s7[0xb] != (code ******)0x0) {\n                      pppppppcVar30 = (code *******)unaff_s7[0xb][uVar7];\nLAB_000553a0:\n                      pppppppcVar14 = pppppppcVar30;\n                      if (local_50 != (code *******)0x0) goto LAB_000553ac;\n                      goto LAB_000553cc;\n                    }\n                    pppppppcVar31 = (code *******)unaff_s7[0xc];\n                    if (pppppppcVar31 != (code *******)0x0) {\n                      pppppppcVar29 = (code *******)((int)local_8c + -1);\n                      uVar19 = FUN_00049110(&local_b4);\n                      if ((uVar19 & 1) == 0) {\n                        pppppppcVar30 = (code *******)pppppppcVar31[uVar7];\n                      }\n                      else {\n                        pppppppcVar31 = pppppppcVar31 + uVar7 + 0x100;\n                        pppppppcVar30 = (code *******)*pppppppcVar31;\n                      }\n                      goto LAB_000553a0;\n                    }\n                    pppppppcVar29 = unaff_s7;\n                    pppppppcVar30 = local_5c;\n                    iVar18 = (*pcVar9)(local_60);\n                  } while (iVar18 != 0);\n                  local_d8 = (code *******)0xc;\n                  pppppppcVar15 = local_d8;\nLAB_00055e44:\n                  local_d8 = pppppppcVar15;\n                  param_4 = (code *******)0x0;\n                  if (local_50 == (code *******)0x0) {\n                    pppppppcVar14 = param_4;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    break;\n                  }\n                  pppppppcVar30 = (code *******)0x0;\nLAB_000553ac:\n                  pppppppcVar29 = &local_b4;\n                  pppppppcVar14 = (code *******)FUN_00053684(&local_d8);\nLAB_000553cc:\n                  param_4 = pppppppcVar14;\n                  if (pppppppcVar14 == (code *******)0x0) {\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    if ((local_50 == (code *******)0x0) ||\n                       ((pppppppcVar28 != (code *******)0x0 && (pppppppcVar34 == (code *******)0x0))\n                       )) break;\n                    param_6 = &local_b4;\n                    param_5 = (code *******)&local_d8;\n                    pppppppcVar31 = (code *******)(PTR_DAT_000799a4 + 0x3684);\n                    do {\n                      pppppppcVar15 = local_50 + (int)local_8c;\n                      pppppppcVar42 = local_8c;\n                      do {\n                        pppppppcVar42 = (code *******)((int)pppppppcVar42 + 1);\n                        pppppppcVar29 = local_4c;\n                        param_4 = pppppppcVar14;\n                        if ((int)local_4c < (int)pppppppcVar42) goto LAB_00055da8;\n                        local_8c = (code *******)((int)local_8c + 1);\n                        pppppppcVar15 = pppppppcVar15 + 1;\n                      } while (*pppppppcVar15 == (code ******)0x0);\n                      pppppppcVar30 = (code *******)0x0;\n                      pppppppcVar29 = param_6;\n                      param_4 = (code *******)(*(code *)pppppppcVar31)(param_5);\n                      if (local_d8 != (code *******)0x0) {\n                        if (param_4 == (code *******)0x0) goto LAB_00055da8;\n                        break;\n                      }\n                      pppppppcVar29 = local_4c;\n                    } while (param_4 == (code *******)0x0);\n                  }\n                  pppppppcVar15 = (code *******)((uint)unaff_s7 ^ (uint)param_4);\n                  pppppppcVar42 = unaff_s7;\n                  pppppppcVar14 = local_138;\n                  if ((bVar1) &&\n                     (pppppppcVar42 = pppppppcVar15, pppppppcVar14 = unaff_s5,\n                     pppppppcVar15 != (code *******)0x0)) {\n                    bVar1 = false;\n                    pppppppcVar14 = local_138;\n                  }\n                  local_138 = pppppppcVar14;\n                  unaff_s7 = param_4;\n                  if ((((uint)param_4[0xd] & 0x8000000) != 0) &&\n                     ((((uint)param_4[0xd] & 0x1000000) == 0 ||\n                      (pppppppcVar29 = param_4, pppppppcVar30 = local_8c,\n                      iVar18 = FUN_00049440(&local_b4), iVar18 != 0)))) {\n                    unaff_s7 = pppppppcVar42;\n                    unaff_s8 = local_8c;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                    local_144 = (code *******)0x0;\n                    unaff_s7 = param_4;\n                  }\n                }" { (expression_statement "uVar44 = CONCAT44(local_98,local_84);" (assignment_expression "uVar44 = CONCAT44(local_98,local_84)" identifier = (call_expression "CONCAT44(local_98,local_84)" identifier (argument_list "(local_98,local_84)" ( identifier , identifier )))) ;) (expression_statement "unaff_s5 = (code *******)((int)local_8c + 1);" (assignment_expression "unaff_s5 = (code *******)((int)local_8c + 1)" identifier = (cast_expression "(code *******)((int)local_8c + 1)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)local_8c + 1)" ( (binary_expression "(int)local_8c + 1" (cast_expression "(int)local_8c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "pppppppcVar29 = local_8c;" (assignment_expression "pppppppcVar29 = local_8c" identifier = identifier) ;) (if_statement "if ((int)local_7c <= (int)local_8c) break;" if (parenthesized_expression "((int)local_7c <= (int)local_8c)" ( (binary_expression "(int)local_7c <= (int)local_8c" (cast_expression "(int)local_7c" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)local_8c" ( (type_descriptor "int" primitive_type) ) identifier)) )) (break_statement "break;" break ;)) (if_statement "if (((int)local_90 <= (int)unaff_s5) && ((int)local_90 < (int)local_84))\n                  goto LAB_00054e94;" if (parenthesized_expression "(((int)local_90 <= (int)unaff_s5) && ((int)local_90 < (int)local_84))" ( (binary_expression "((int)local_90 <= (int)unaff_s5) && ((int)local_90 < (int)local_84)" (parenthesized_expression "((int)local_90 <= (int)unaff_s5)" ( (binary_expression "(int)local_90 <= (int)unaff_s5" (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)unaff_s5" ( (type_descriptor "int" primitive_type) ) identifier)) )) && (parenthesized_expression "((int)local_90 < (int)local_84)" ( (binary_expression "(int)local_90 < (int)local_84" (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)local_84" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )) (goto_statement "goto LAB_00054e94;" goto statement_identifier ;)) (if_statement "if ((int)local_98 <= (int)unaff_s5) {\n                    while ((int)((ulonglong)uVar44 >> 0x20) < (int)uVar44) {\nLAB_00054e94:\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 2);\n                      local_d8 = (code *******)(*pcVar8)(&local_b4);\n                      if (local_d8 == (code *******)0x0) break;\n                      pppppppcVar14 = param_4;\n                      if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                      pppppppcVar33 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                      pppppppcVar30 = (code *******)0x46c;\n                      pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                      uVar44 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0);\n                      pppppppcVar28 = pppppppcVar38;\n                    }\n                  }" if (parenthesized_expression "((int)local_98 <= (int)unaff_s5)" ( (binary_expression "(int)local_98 <= (int)unaff_s5" (cast_expression "(int)local_98" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)unaff_s5" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                    while ((int)((ulonglong)uVar44 >> 0x20) < (int)uVar44) {\nLAB_00054e94:\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 2);\n                      local_d8 = (code *******)(*pcVar8)(&local_b4);\n                      if (local_d8 == (code *******)0x0) break;\n                      pppppppcVar14 = param_4;\n                      if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                      pppppppcVar33 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                      pppppppcVar30 = (code *******)0x46c;\n                      pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                      uVar44 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0);\n                      pppppppcVar28 = pppppppcVar38;\n                    }\n                  }" { (while_statement "while ((int)((ulonglong)uVar44 >> 0x20) < (int)uVar44) {\nLAB_00054e94:\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 2);\n                      local_d8 = (code *******)(*pcVar8)(&local_b4);\n                      if (local_d8 == (code *******)0x0) break;\n                      pppppppcVar14 = param_4;\n                      if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                      pppppppcVar33 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                      pppppppcVar30 = (code *******)0x46c;\n                      pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                      uVar44 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0);\n                      pppppppcVar28 = pppppppcVar38;\n                    }" while (parenthesized_expression "((int)((ulonglong)uVar44 >> 0x20) < (int)uVar44)" ( (binary_expression "(int)((ulonglong)uVar44 >> 0x20) < (int)uVar44" (cast_expression "(int)((ulonglong)uVar44 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar44 >> 0x20)" ( (binary_expression "(ulonglong)uVar44 >> 0x20" (cast_expression "(ulonglong)uVar44" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) < (cast_expression "(int)uVar44" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\nLAB_00054e94:\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 2);\n                      local_d8 = (code *******)(*pcVar8)(&local_b4);\n                      if (local_d8 == (code *******)0x0) break;\n                      pppppppcVar14 = param_4;\n                      if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                      pppppppcVar33 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                      pppppppcVar30 = (code *******)0x46c;\n                      pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                      uVar44 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0);\n                      pppppppcVar28 = pppppppcVar38;\n                    }" { (labeled_statement "LAB_00054e94:\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 2);" statement_identifier : (expression_statement "pppppppcVar29 = (code *******)((int)pppppppcVar29 + 2);" (assignment_expression "pppppppcVar29 = (code *******)((int)pppppppcVar29 + 2)" identifier = (cast_expression "(code *******)((int)pppppppcVar29 + 2)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)pppppppcVar29 + 2)" ( (binary_expression "(int)pppppppcVar29 + 2" (cast_expression "(int)pppppppcVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;)) (expression_statement "local_d8 = (code *******)(*pcVar8)(&local_b4);" (assignment_expression "local_d8 = (code *******)(*pcVar8)(&local_b4)" identifier = (cast_expression "(code *******)(*pcVar8)(&local_b4)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "(*pcVar8)(&local_b4)" (parenthesized_expression "(*pcVar8)" ( (pointer_expression "*pcVar8" * identifier) )) (argument_list "(&local_b4)" ( (pointer_expression "&local_b4" & identifier) ))))) ;) (if_statement "if (local_d8 == (code *******)0x0) break;" if (parenthesized_expression "(local_d8 == (code *******)0x0)" ( (binary_expression "local_d8 == (code *******)0x0" identifier == (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "pppppppcVar14 = param_4;" (assignment_expression "pppppppcVar14 = param_4" identifier = identifier) ;) (if_statement "if (local_d8 == (code *******)0xc) goto LAB_00055914;" if (parenthesized_expression "(local_d8 == (code *******)0xc)" ( (binary_expression "local_d8 == (code *******)0xc" identifier == (cast_expression "(code *******)0xc" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (goto_statement "goto LAB_00055914;" goto statement_identifier ;)) (expression_statement "pppppppcVar33 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);" (assignment_expression "pppppppcVar33 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0)" identifier = (cast_expression "(code *******)(PTR_s_nt0_000795b8 + 0x6eb0)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(PTR_s_nt0_000795b8 + 0x6eb0)" ( (binary_expression "PTR_s_nt0_000795b8 + 0x6eb0" identifier + number_literal) )))) ;) (expression_statement "pppppppcVar30 = (code *******)0x46c;" (assignment_expression "pppppppcVar30 = (code *******)0x46c" identifier = (cast_expression "(code *******)0x46c" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);" (assignment_expression "pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c)" identifier = (cast_expression "(code *******)(PTR_s_nt0_000795b8 + 0x712c)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(PTR_s_nt0_000795b8 + 0x712c)" ( (binary_expression "PTR_s_nt0_000795b8 + 0x712c" identifier + number_literal) )))) ;) (expression_statement "uVar44 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0);" (assignment_expression "uVar44 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0)" identifier = (call_expression "(*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0)" (parenthesized_expression "(*(code *)PTR___assert_fail_000799f8)" ( (pointer_expression "*(code *)PTR___assert_fail_000799f8" * (cast_expression "(code *)PTR___assert_fail_000799f8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_nt0_000795b8 + 0x71a0)" ( (binary_expression "PTR_s_nt0_000795b8 + 0x71a0" identifier + number_literal) )))) ;) (expression_statement "pppppppcVar28 = pppppppcVar38;" (assignment_expression "pppppppcVar28 = pppppppcVar38" identifier = identifier) ;) })) })) (expression_statement "pppppppcVar42 = local_60;" (assignment_expression "pppppppcVar42 = local_60" identifier = identifier) ;) (if_statement "if ((int)unaff_s7[0xd] << 5 < 0) {\n                    pppppppcVar31 = pppppppcVar42;\n                    if (0 < (int)unaff_s7[2]) {\n                      pcVar11 = (code *)(PTR_DAT_000799a4 + -0x6fdc);\n                      pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6ef0);\n                      param_6 = (code *******)0x0;\n                      do {\n                        param_5 = (code *******)unaff_s7[3][(int)param_6];\n                        ppppppcVar39 = *pppppppcVar42;\n                        pppppcVar13 = ppppppcVar39[(int)param_5 * 2 + 1];\n                        if (((uint)pppppcVar13 & 0x800) != 0) {\n                          if (((uint)pppppcVar13 & 0xffc000) != 0) {\n                            pppppppcVar29 = local_8c;\n                            uVar19 = (*pcVar12)(&local_b4,local_8c,local_5c);\n                            uVar7 = (uint)((int)ppppppcVar39[(int)param_5 * 2 + 1] << 8) >> 0x16;\n                            if ((uVar7 & 4) == 0) {\n                              uVar27 = uVar19 & 1;\n                              if ((uVar7 & 8) != 0) goto joined_r0x00054f40;\n                            }\n                            else {\n                              uVar27 = uVar7 & 8;\n                              if ((uVar19 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                              if (uVar27 != 0) goto LAB_000550a4;\n                            }\n                            if ((((uVar7 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                               (((uVar7 & 0x80) != 0 &&\n                                (pppppppcVar33 = local_8c, (uVar19 & 8) == 0)))) goto LAB_000550a4;\n                          }\n                          pppppppcVar30 = &local_b4;\n                          pppppppcVar29 = param_5;\n                          pppppppcVar33 = local_8c;\n                          iVar18 = (*pcVar10)(pppppppcVar42);\n                          if (iVar18 != 0) {\n                            pppppppcVar14 = (code *******)((int)local_8c + iVar18);\n                            if (iVar18 <= local_3c) {\n                              iVar18 = local_3c;\n                            }\n                            pppppppcVar29 = pppppppcVar14;\n                            local_3c = iVar18;\n                            local_d4 = (code *******)(*pcVar11)(&local_b4);\n                            pppppppcVar15 = local_d4;\n                            if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                            pppppppcVar30 =\n                                 (code *******)\n                                 (pppppppcVar42[6] + (int)pppppppcVar42[3][(int)param_5] * 3);\n                            unaff_s4 = (code *******)((int)pppppppcVar14 * 4);\n                            param_5 = local_50 + (int)pppppppcVar14;\n                            if (*param_5 == (code ******)0x0) {\n                              local_d0 = (code *******)*pppppppcVar30;\n                              local_cc = (code *******)pppppppcVar30[1];\n                              local_c8 = (code *******)pppppppcVar30[2];\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *param_5 = ppppppcVar39;\n                            }\n                            else {\n                              pppppppcVar29 = (code *******)(*param_5)[10];\n                              local_d4 = (code *******)FUN_000484bc(&local_d0);\n                              pppppppcVar15 = local_d4;\n                              if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar15 = local_50 + (int)pppppppcVar14;\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *pppppppcVar15 = ppppppcVar39;\n                              (*(code *)PTR_free_00079c24)(local_c8);\n                            }\n                            unaff_s4 = local_50 + (int)pppppppcVar14;\n                            if ((*unaff_s4 == (code ******)0x0) &&\n                               (pppppppcVar15 = local_d4, local_d4 != (code *******)0x0))\n                            goto LAB_00055e44;\n                          }\n                        }\nLAB_000550a4:\n                        param_6 = (code *******)((int)param_6 + 1);\n                      } while ((int)param_6 < (int)unaff_s7[2]);\n                    }\n                    local_d8 = (code *******)0x0;\n                  }" if (parenthesized_expression "((int)unaff_s7[0xd] << 5 < 0)" ( (binary_expression "(int)unaff_s7[0xd] << 5 < 0" (binary_expression "(int)unaff_s7[0xd] << 5" (cast_expression "(int)unaff_s7[0xd]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "unaff_s7[0xd]" identifier [ number_literal ])) << number_literal) < number_literal) )) (compound_statement "{\n                    pppppppcVar31 = pppppppcVar42;\n                    if (0 < (int)unaff_s7[2]) {\n                      pcVar11 = (code *)(PTR_DAT_000799a4 + -0x6fdc);\n                      pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6ef0);\n                      param_6 = (code *******)0x0;\n                      do {\n                        param_5 = (code *******)unaff_s7[3][(int)param_6];\n                        ppppppcVar39 = *pppppppcVar42;\n                        pppppcVar13 = ppppppcVar39[(int)param_5 * 2 + 1];\n                        if (((uint)pppppcVar13 & 0x800) != 0) {\n                          if (((uint)pppppcVar13 & 0xffc000) != 0) {\n                            pppppppcVar29 = local_8c;\n                            uVar19 = (*pcVar12)(&local_b4,local_8c,local_5c);\n                            uVar7 = (uint)((int)ppppppcVar39[(int)param_5 * 2 + 1] << 8) >> 0x16;\n                            if ((uVar7 & 4) == 0) {\n                              uVar27 = uVar19 & 1;\n                              if ((uVar7 & 8) != 0) goto joined_r0x00054f40;\n                            }\n                            else {\n                              uVar27 = uVar7 & 8;\n                              if ((uVar19 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                              if (uVar27 != 0) goto LAB_000550a4;\n                            }\n                            if ((((uVar7 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                               (((uVar7 & 0x80) != 0 &&\n                                (pppppppcVar33 = local_8c, (uVar19 & 8) == 0)))) goto LAB_000550a4;\n                          }\n                          pppppppcVar30 = &local_b4;\n                          pppppppcVar29 = param_5;\n                          pppppppcVar33 = local_8c;\n                          iVar18 = (*pcVar10)(pppppppcVar42);\n                          if (iVar18 != 0) {\n                            pppppppcVar14 = (code *******)((int)local_8c + iVar18);\n                            if (iVar18 <= local_3c) {\n                              iVar18 = local_3c;\n                            }\n                            pppppppcVar29 = pppppppcVar14;\n                            local_3c = iVar18;\n                            local_d4 = (code *******)(*pcVar11)(&local_b4);\n                            pppppppcVar15 = local_d4;\n                            if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                            pppppppcVar30 =\n                                 (code *******)\n                                 (pppppppcVar42[6] + (int)pppppppcVar42[3][(int)param_5] * 3);\n                            unaff_s4 = (code *******)((int)pppppppcVar14 * 4);\n                            param_5 = local_50 + (int)pppppppcVar14;\n                            if (*param_5 == (code ******)0x0) {\n                              local_d0 = (code *******)*pppppppcVar30;\n                              local_cc = (code *******)pppppppcVar30[1];\n                              local_c8 = (code *******)pppppppcVar30[2];\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *param_5 = ppppppcVar39;\n                            }\n                            else {\n                              pppppppcVar29 = (code *******)(*param_5)[10];\n                              local_d4 = (code *******)FUN_000484bc(&local_d0);\n                              pppppppcVar15 = local_d4;\n                              if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar15 = local_50 + (int)pppppppcVar14;\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *pppppppcVar15 = ppppppcVar39;\n                              (*(code *)PTR_free_00079c24)(local_c8);\n                            }\n                            unaff_s4 = local_50 + (int)pppppppcVar14;\n                            if ((*unaff_s4 == (code ******)0x0) &&\n                               (pppppppcVar15 = local_d4, local_d4 != (code *******)0x0))\n                            goto LAB_00055e44;\n                          }\n                        }\nLAB_000550a4:\n                        param_6 = (code *******)((int)param_6 + 1);\n                      } while ((int)param_6 < (int)unaff_s7[2]);\n                    }\n                    local_d8 = (code *******)0x0;\n                  }" { (expression_statement "pppppppcVar31 = pppppppcVar42;" (assignment_expression "pppppppcVar31 = pppppppcVar42" identifier = identifier) ;) (if_statement "if (0 < (int)unaff_s7[2]) {\n                      pcVar11 = (code *)(PTR_DAT_000799a4 + -0x6fdc);\n                      pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6ef0);\n                      param_6 = (code *******)0x0;\n                      do {\n                        param_5 = (code *******)unaff_s7[3][(int)param_6];\n                        ppppppcVar39 = *pppppppcVar42;\n                        pppppcVar13 = ppppppcVar39[(int)param_5 * 2 + 1];\n                        if (((uint)pppppcVar13 & 0x800) != 0) {\n                          if (((uint)pppppcVar13 & 0xffc000) != 0) {\n                            pppppppcVar29 = local_8c;\n                            uVar19 = (*pcVar12)(&local_b4,local_8c,local_5c);\n                            uVar7 = (uint)((int)ppppppcVar39[(int)param_5 * 2 + 1] << 8) >> 0x16;\n                            if ((uVar7 & 4) == 0) {\n                              uVar27 = uVar19 & 1;\n                              if ((uVar7 & 8) != 0) goto joined_r0x00054f40;\n                            }\n                            else {\n                              uVar27 = uVar7 & 8;\n                              if ((uVar19 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                              if (uVar27 != 0) goto LAB_000550a4;\n                            }\n                            if ((((uVar7 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                               (((uVar7 & 0x80) != 0 &&\n                                (pppppppcVar33 = local_8c, (uVar19 & 8) == 0)))) goto LAB_000550a4;\n                          }\n                          pppppppcVar30 = &local_b4;\n                          pppppppcVar29 = param_5;\n                          pppppppcVar33 = local_8c;\n                          iVar18 = (*pcVar10)(pppppppcVar42);\n                          if (iVar18 != 0) {\n                            pppppppcVar14 = (code *******)((int)local_8c + iVar18);\n                            if (iVar18 <= local_3c) {\n                              iVar18 = local_3c;\n                            }\n                            pppppppcVar29 = pppppppcVar14;\n                            local_3c = iVar18;\n                            local_d4 = (code *******)(*pcVar11)(&local_b4);\n                            pppppppcVar15 = local_d4;\n                            if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                            pppppppcVar30 =\n                                 (code *******)\n                                 (pppppppcVar42[6] + (int)pppppppcVar42[3][(int)param_5] * 3);\n                            unaff_s4 = (code *******)((int)pppppppcVar14 * 4);\n                            param_5 = local_50 + (int)pppppppcVar14;\n                            if (*param_5 == (code ******)0x0) {\n                              local_d0 = (code *******)*pppppppcVar30;\n                              local_cc = (code *******)pppppppcVar30[1];\n                              local_c8 = (code *******)pppppppcVar30[2];\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *param_5 = ppppppcVar39;\n                            }\n                            else {\n                              pppppppcVar29 = (code *******)(*param_5)[10];\n                              local_d4 = (code *******)FUN_000484bc(&local_d0);\n                              pppppppcVar15 = local_d4;\n                              if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar15 = local_50 + (int)pppppppcVar14;\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *pppppppcVar15 = ppppppcVar39;\n                              (*(code *)PTR_free_00079c24)(local_c8);\n                            }\n                            unaff_s4 = local_50 + (int)pppppppcVar14;\n                            if ((*unaff_s4 == (code ******)0x0) &&\n                               (pppppppcVar15 = local_d4, local_d4 != (code *******)0x0))\n                            goto LAB_00055e44;\n                          }\n                        }\nLAB_000550a4:\n                        param_6 = (code *******)((int)param_6 + 1);\n                      } while ((int)param_6 < (int)unaff_s7[2]);\n                    }" if (parenthesized_expression "(0 < (int)unaff_s7[2])" ( (binary_expression "0 < (int)unaff_s7[2]" number_literal < (cast_expression "(int)unaff_s7[2]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "unaff_s7[2]" identifier [ number_literal ]))) )) (compound_statement "{\n                      pcVar11 = (code *)(PTR_DAT_000799a4 + -0x6fdc);\n                      pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6ef0);\n                      param_6 = (code *******)0x0;\n                      do {\n                        param_5 = (code *******)unaff_s7[3][(int)param_6];\n                        ppppppcVar39 = *pppppppcVar42;\n                        pppppcVar13 = ppppppcVar39[(int)param_5 * 2 + 1];\n                        if (((uint)pppppcVar13 & 0x800) != 0) {\n                          if (((uint)pppppcVar13 & 0xffc000) != 0) {\n                            pppppppcVar29 = local_8c;\n                            uVar19 = (*pcVar12)(&local_b4,local_8c,local_5c);\n                            uVar7 = (uint)((int)ppppppcVar39[(int)param_5 * 2 + 1] << 8) >> 0x16;\n                            if ((uVar7 & 4) == 0) {\n                              uVar27 = uVar19 & 1;\n                              if ((uVar7 & 8) != 0) goto joined_r0x00054f40;\n                            }\n                            else {\n                              uVar27 = uVar7 & 8;\n                              if ((uVar19 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                              if (uVar27 != 0) goto LAB_000550a4;\n                            }\n                            if ((((uVar7 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                               (((uVar7 & 0x80) != 0 &&\n                                (pppppppcVar33 = local_8c, (uVar19 & 8) == 0)))) goto LAB_000550a4;\n                          }\n                          pppppppcVar30 = &local_b4;\n                          pppppppcVar29 = param_5;\n                          pppppppcVar33 = local_8c;\n                          iVar18 = (*pcVar10)(pppppppcVar42);\n                          if (iVar18 != 0) {\n                            pppppppcVar14 = (code *******)((int)local_8c + iVar18);\n                            if (iVar18 <= local_3c) {\n                              iVar18 = local_3c;\n                            }\n                            pppppppcVar29 = pppppppcVar14;\n                            local_3c = iVar18;\n                            local_d4 = (code *******)(*pcVar11)(&local_b4);\n                            pppppppcVar15 = local_d4;\n                            if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                            pppppppcVar30 =\n                                 (code *******)\n                                 (pppppppcVar42[6] + (int)pppppppcVar42[3][(int)param_5] * 3);\n                            unaff_s4 = (code *******)((int)pppppppcVar14 * 4);\n                            param_5 = local_50 + (int)pppppppcVar14;\n                            if (*param_5 == (code ******)0x0) {\n                              local_d0 = (code *******)*pppppppcVar30;\n                              local_cc = (code *******)pppppppcVar30[1];\n                              local_c8 = (code *******)pppppppcVar30[2];\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *param_5 = ppppppcVar39;\n                            }\n                            else {\n                              pppppppcVar29 = (code *******)(*param_5)[10];\n                              local_d4 = (code *******)FUN_000484bc(&local_d0);\n                              pppppppcVar15 = local_d4;\n                              if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar15 = local_50 + (int)pppppppcVar14;\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *pppppppcVar15 = ppppppcVar39;\n                              (*(code *)PTR_free_00079c24)(local_c8);\n                            }\n                            unaff_s4 = local_50 + (int)pppppppcVar14;\n                            if ((*unaff_s4 == (code ******)0x0) &&\n                               (pppppppcVar15 = local_d4, local_d4 != (code *******)0x0))\n                            goto LAB_00055e44;\n                          }\n                        }\nLAB_000550a4:\n                        param_6 = (code *******)((int)param_6 + 1);\n                      } while ((int)param_6 < (int)unaff_s7[2]);\n                    }" { (expression_statement "pcVar11 = (code *)(PTR_DAT_000799a4 + -0x6fdc);" (assignment_expression "pcVar11 = (code *)(PTR_DAT_000799a4 + -0x6fdc)" identifier = (cast_expression "(code *)(PTR_DAT_000799a4 + -0x6fdc)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000799a4 + -0x6fdc)" ( (binary_expression "PTR_DAT_000799a4 + -0x6fdc" identifier + number_literal) )))) ;) (expression_statement "pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6ef0);" (assignment_expression "pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6ef0)" identifier = (cast_expression "(code *)(PTR_DAT_000799a4 + -0x6ef0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000799a4 + -0x6ef0)" ( (binary_expression "PTR_DAT_000799a4 + -0x6ef0" identifier + number_literal) )))) ;) (expression_statement "param_6 = (code *******)0x0;" (assignment_expression "param_6 = (code *******)0x0" identifier = (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (do_statement "do {\n                        param_5 = (code *******)unaff_s7[3][(int)param_6];\n                        ppppppcVar39 = *pppppppcVar42;\n                        pppppcVar13 = ppppppcVar39[(int)param_5 * 2 + 1];\n                        if (((uint)pppppcVar13 & 0x800) != 0) {\n                          if (((uint)pppppcVar13 & 0xffc000) != 0) {\n                            pppppppcVar29 = local_8c;\n                            uVar19 = (*pcVar12)(&local_b4,local_8c,local_5c);\n                            uVar7 = (uint)((int)ppppppcVar39[(int)param_5 * 2 + 1] << 8) >> 0x16;\n                            if ((uVar7 & 4) == 0) {\n                              uVar27 = uVar19 & 1;\n                              if ((uVar7 & 8) != 0) goto joined_r0x00054f40;\n                            }\n                            else {\n                              uVar27 = uVar7 & 8;\n                              if ((uVar19 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                              if (uVar27 != 0) goto LAB_000550a4;\n                            }\n                            if ((((uVar7 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                               (((uVar7 & 0x80) != 0 &&\n                                (pppppppcVar33 = local_8c, (uVar19 & 8) == 0)))) goto LAB_000550a4;\n                          }\n                          pppppppcVar30 = &local_b4;\n                          pppppppcVar29 = param_5;\n                          pppppppcVar33 = local_8c;\n                          iVar18 = (*pcVar10)(pppppppcVar42);\n                          if (iVar18 != 0) {\n                            pppppppcVar14 = (code *******)((int)local_8c + iVar18);\n                            if (iVar18 <= local_3c) {\n                              iVar18 = local_3c;\n                            }\n                            pppppppcVar29 = pppppppcVar14;\n                            local_3c = iVar18;\n                            local_d4 = (code *******)(*pcVar11)(&local_b4);\n                            pppppppcVar15 = local_d4;\n                            if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                            pppppppcVar30 =\n                                 (code *******)\n                                 (pppppppcVar42[6] + (int)pppppppcVar42[3][(int)param_5] * 3);\n                            unaff_s4 = (code *******)((int)pppppppcVar14 * 4);\n                            param_5 = local_50 + (int)pppppppcVar14;\n                            if (*param_5 == (code ******)0x0) {\n                              local_d0 = (code *******)*pppppppcVar30;\n                              local_cc = (code *******)pppppppcVar30[1];\n                              local_c8 = (code *******)pppppppcVar30[2];\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *param_5 = ppppppcVar39;\n                            }\n                            else {\n                              pppppppcVar29 = (code *******)(*param_5)[10];\n                              local_d4 = (code *******)FUN_000484bc(&local_d0);\n                              pppppppcVar15 = local_d4;\n                              if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar15 = local_50 + (int)pppppppcVar14;\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *pppppppcVar15 = ppppppcVar39;\n                              (*(code *)PTR_free_00079c24)(local_c8);\n                            }\n                            unaff_s4 = local_50 + (int)pppppppcVar14;\n                            if ((*unaff_s4 == (code ******)0x0) &&\n                               (pppppppcVar15 = local_d4, local_d4 != (code *******)0x0))\n                            goto LAB_00055e44;\n                          }\n                        }\nLAB_000550a4:\n                        param_6 = (code *******)((int)param_6 + 1);\n                      } while ((int)param_6 < (int)unaff_s7[2]);" do (compound_statement "{\n                        param_5 = (code *******)unaff_s7[3][(int)param_6];\n                        ppppppcVar39 = *pppppppcVar42;\n                        pppppcVar13 = ppppppcVar39[(int)param_5 * 2 + 1];\n                        if (((uint)pppppcVar13 & 0x800) != 0) {\n                          if (((uint)pppppcVar13 & 0xffc000) != 0) {\n                            pppppppcVar29 = local_8c;\n                            uVar19 = (*pcVar12)(&local_b4,local_8c,local_5c);\n                            uVar7 = (uint)((int)ppppppcVar39[(int)param_5 * 2 + 1] << 8) >> 0x16;\n                            if ((uVar7 & 4) == 0) {\n                              uVar27 = uVar19 & 1;\n                              if ((uVar7 & 8) != 0) goto joined_r0x00054f40;\n                            }\n                            else {\n                              uVar27 = uVar7 & 8;\n                              if ((uVar19 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                              if (uVar27 != 0) goto LAB_000550a4;\n                            }\n                            if ((((uVar7 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                               (((uVar7 & 0x80) != 0 &&\n                                (pppppppcVar33 = local_8c, (uVar19 & 8) == 0)))) goto LAB_000550a4;\n                          }\n                          pppppppcVar30 = &local_b4;\n                          pppppppcVar29 = param_5;\n                          pppppppcVar33 = local_8c;\n                          iVar18 = (*pcVar10)(pppppppcVar42);\n                          if (iVar18 != 0) {\n                            pppppppcVar14 = (code *******)((int)local_8c + iVar18);\n                            if (iVar18 <= local_3c) {\n                              iVar18 = local_3c;\n                            }\n                            pppppppcVar29 = pppppppcVar14;\n                            local_3c = iVar18;\n                            local_d4 = (code *******)(*pcVar11)(&local_b4);\n                            pppppppcVar15 = local_d4;\n                            if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                            pppppppcVar30 =\n                                 (code *******)\n                                 (pppppppcVar42[6] + (int)pppppppcVar42[3][(int)param_5] * 3);\n                            unaff_s4 = (code *******)((int)pppppppcVar14 * 4);\n                            param_5 = local_50 + (int)pppppppcVar14;\n                            if (*param_5 == (code ******)0x0) {\n                              local_d0 = (code *******)*pppppppcVar30;\n                              local_cc = (code *******)pppppppcVar30[1];\n                              local_c8 = (code *******)pppppppcVar30[2];\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *param_5 = ppppppcVar39;\n                            }\n                            else {\n                              pppppppcVar29 = (code *******)(*param_5)[10];\n                              local_d4 = (code *******)FUN_000484bc(&local_d0);\n                              pppppppcVar15 = local_d4;\n                              if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar15 = local_50 + (int)pppppppcVar14;\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *pppppppcVar15 = ppppppcVar39;\n                              (*(code *)PTR_free_00079c24)(local_c8);\n                            }\n                            unaff_s4 = local_50 + (int)pppppppcVar14;\n                            if ((*unaff_s4 == (code ******)0x0) &&\n                               (pppppppcVar15 = local_d4, local_d4 != (code *******)0x0))\n                            goto LAB_00055e44;\n                          }\n                        }\nLAB_000550a4:\n                        param_6 = (code *******)((int)param_6 + 1);\n                      }" { (expression_statement "param_5 = (code *******)unaff_s7[3][(int)param_6];" (assignment_expression "param_5 = (code *******)unaff_s7[3][(int)param_6]" identifier = (cast_expression "(code *******)unaff_s7[3][(int)param_6]" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (subscript_expression "unaff_s7[3][(int)param_6]" (subscript_expression "unaff_s7[3]" identifier [ number_literal ]) [ (cast_expression "(int)param_6" ( (type_descriptor "int" primitive_type) ) identifier) ]))) ;) (expression_statement "ppppppcVar39 = *pppppppcVar42;" (assignment_expression "ppppppcVar39 = *pppppppcVar42" identifier = (pointer_expression "*pppppppcVar42" * identifier)) ;) (expression_statement "pppppcVar13 = ppppppcVar39[(int)param_5 * 2 + 1];" (assignment_expression "pppppcVar13 = ppppppcVar39[(int)param_5 * 2 + 1]" identifier = (subscript_expression "ppppppcVar39[(int)param_5 * 2 + 1]" identifier [ (binary_expression "(int)param_5 * 2 + 1" (binary_expression "(int)param_5 * 2" (cast_expression "(int)param_5" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal) ])) ;) (if_statement "if (((uint)pppppcVar13 & 0x800) != 0) {\n                          if (((uint)pppppcVar13 & 0xffc000) != 0) {\n                            pppppppcVar29 = local_8c;\n                            uVar19 = (*pcVar12)(&local_b4,local_8c,local_5c);\n                            uVar7 = (uint)((int)ppppppcVar39[(int)param_5 * 2 + 1] << 8) >> 0x16;\n                            if ((uVar7 & 4) == 0) {\n                              uVar27 = uVar19 & 1;\n                              if ((uVar7 & 8) != 0) goto joined_r0x00054f40;\n                            }\n                            else {\n                              uVar27 = uVar7 & 8;\n                              if ((uVar19 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                              if (uVar27 != 0) goto LAB_000550a4;\n                            }\n                            if ((((uVar7 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                               (((uVar7 & 0x80) != 0 &&\n                                (pppppppcVar33 = local_8c, (uVar19 & 8) == 0)))) goto LAB_000550a4;\n                          }\n                          pppppppcVar30 = &local_b4;\n                          pppppppcVar29 = param_5;\n                          pppppppcVar33 = local_8c;\n                          iVar18 = (*pcVar10)(pppppppcVar42);\n                          if (iVar18 != 0) {\n                            pppppppcVar14 = (code *******)((int)local_8c + iVar18);\n                            if (iVar18 <= local_3c) {\n                              iVar18 = local_3c;\n                            }\n                            pppppppcVar29 = pppppppcVar14;\n                            local_3c = iVar18;\n                            local_d4 = (code *******)(*pcVar11)(&local_b4);\n                            pppppppcVar15 = local_d4;\n                            if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                            pppppppcVar30 =\n                                 (code *******)\n                                 (pppppppcVar42[6] + (int)pppppppcVar42[3][(int)param_5] * 3);\n                            unaff_s4 = (code *******)((int)pppppppcVar14 * 4);\n                            param_5 = local_50 + (int)pppppppcVar14;\n                            if (*param_5 == (code ******)0x0) {\n                              local_d0 = (code *******)*pppppppcVar30;\n                              local_cc = (code *******)pppppppcVar30[1];\n                              local_c8 = (code *******)pppppppcVar30[2];\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *param_5 = ppppppcVar39;\n                            }\n                            else {\n                              pppppppcVar29 = (code *******)(*param_5)[10];\n                              local_d4 = (code *******)FUN_000484bc(&local_d0);\n                              pppppppcVar15 = local_d4;\n                              if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar15 = local_50 + (int)pppppppcVar14;\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *pppppppcVar15 = ppppppcVar39;\n                              (*(code *)PTR_free_00079c24)(local_c8);\n                            }\n                            unaff_s4 = local_50 + (int)pppppppcVar14;\n                            if ((*unaff_s4 == (code ******)0x0) &&\n                               (pppppppcVar15 = local_d4, local_d4 != (code *******)0x0))\n                            goto LAB_00055e44;\n                          }\n                        }" if (parenthesized_expression "(((uint)pppppcVar13 & 0x800) != 0)" ( (binary_expression "((uint)pppppcVar13 & 0x800) != 0" (parenthesized_expression "((uint)pppppcVar13 & 0x800)" ( (binary_expression "(uint)pppppcVar13 & 0x800" (cast_expression "(uint)pppppcVar13" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n                          if (((uint)pppppcVar13 & 0xffc000) != 0) {\n                            pppppppcVar29 = local_8c;\n                            uVar19 = (*pcVar12)(&local_b4,local_8c,local_5c);\n                            uVar7 = (uint)((int)ppppppcVar39[(int)param_5 * 2 + 1] << 8) >> 0x16;\n                            if ((uVar7 & 4) == 0) {\n                              uVar27 = uVar19 & 1;\n                              if ((uVar7 & 8) != 0) goto joined_r0x00054f40;\n                            }\n                            else {\n                              uVar27 = uVar7 & 8;\n                              if ((uVar19 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                              if (uVar27 != 0) goto LAB_000550a4;\n                            }\n                            if ((((uVar7 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                               (((uVar7 & 0x80) != 0 &&\n                                (pppppppcVar33 = local_8c, (uVar19 & 8) == 0)))) goto LAB_000550a4;\n                          }\n                          pppppppcVar30 = &local_b4;\n                          pppppppcVar29 = param_5;\n                          pppppppcVar33 = local_8c;\n                          iVar18 = (*pcVar10)(pppppppcVar42);\n                          if (iVar18 != 0) {\n                            pppppppcVar14 = (code *******)((int)local_8c + iVar18);\n                            if (iVar18 <= local_3c) {\n                              iVar18 = local_3c;\n                            }\n                            pppppppcVar29 = pppppppcVar14;\n                            local_3c = iVar18;\n                            local_d4 = (code *******)(*pcVar11)(&local_b4);\n                            pppppppcVar15 = local_d4;\n                            if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                            pppppppcVar30 =\n                                 (code *******)\n                                 (pppppppcVar42[6] + (int)pppppppcVar42[3][(int)param_5] * 3);\n                            unaff_s4 = (code *******)((int)pppppppcVar14 * 4);\n                            param_5 = local_50 + (int)pppppppcVar14;\n                            if (*param_5 == (code ******)0x0) {\n                              local_d0 = (code *******)*pppppppcVar30;\n                              local_cc = (code *******)pppppppcVar30[1];\n                              local_c8 = (code *******)pppppppcVar30[2];\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *param_5 = ppppppcVar39;\n                            }\n                            else {\n                              pppppppcVar29 = (code *******)(*param_5)[10];\n                              local_d4 = (code *******)FUN_000484bc(&local_d0);\n                              pppppppcVar15 = local_d4;\n                              if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar15 = local_50 + (int)pppppppcVar14;\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *pppppppcVar15 = ppppppcVar39;\n                              (*(code *)PTR_free_00079c24)(local_c8);\n                            }\n                            unaff_s4 = local_50 + (int)pppppppcVar14;\n                            if ((*unaff_s4 == (code ******)0x0) &&\n                               (pppppppcVar15 = local_d4, local_d4 != (code *******)0x0))\n                            goto LAB_00055e44;\n                          }\n                        }" { (if_statement "if (((uint)pppppcVar13 & 0xffc000) != 0) {\n                            pppppppcVar29 = local_8c;\n                            uVar19 = (*pcVar12)(&local_b4,local_8c,local_5c);\n                            uVar7 = (uint)((int)ppppppcVar39[(int)param_5 * 2 + 1] << 8) >> 0x16;\n                            if ((uVar7 & 4) == 0) {\n                              uVar27 = uVar19 & 1;\n                              if ((uVar7 & 8) != 0) goto joined_r0x00054f40;\n                            }\n                            else {\n                              uVar27 = uVar7 & 8;\n                              if ((uVar19 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                              if (uVar27 != 0) goto LAB_000550a4;\n                            }\n                            if ((((uVar7 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                               (((uVar7 & 0x80) != 0 &&\n                                (pppppppcVar33 = local_8c, (uVar19 & 8) == 0)))) goto LAB_000550a4;\n                          }" if (parenthesized_expression "(((uint)pppppcVar13 & 0xffc000) != 0)" ( (binary_expression "((uint)pppppcVar13 & 0xffc000) != 0" (parenthesized_expression "((uint)pppppcVar13 & 0xffc000)" ( (binary_expression "(uint)pppppcVar13 & 0xffc000" (cast_expression "(uint)pppppcVar13" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n                            pppppppcVar29 = local_8c;\n                            uVar19 = (*pcVar12)(&local_b4,local_8c,local_5c);\n                            uVar7 = (uint)((int)ppppppcVar39[(int)param_5 * 2 + 1] << 8) >> 0x16;\n                            if ((uVar7 & 4) == 0) {\n                              uVar27 = uVar19 & 1;\n                              if ((uVar7 & 8) != 0) goto joined_r0x00054f40;\n                            }\n                            else {\n                              uVar27 = uVar7 & 8;\n                              if ((uVar19 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                              if (uVar27 != 0) goto LAB_000550a4;\n                            }\n                            if ((((uVar7 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                               (((uVar7 & 0x80) != 0 &&\n                                (pppppppcVar33 = local_8c, (uVar19 & 8) == 0)))) goto LAB_000550a4;\n                          }" { (expression_statement "pppppppcVar29 = local_8c;" (assignment_expression "pppppppcVar29 = local_8c" identifier = identifier) ;) (expression_statement "uVar19 = (*pcVar12)(&local_b4,local_8c,local_5c);" (assignment_expression "uVar19 = (*pcVar12)(&local_b4,local_8c,local_5c)" identifier = (call_expression "(*pcVar12)(&local_b4,local_8c,local_5c)" (parenthesized_expression "(*pcVar12)" ( (pointer_expression "*pcVar12" * identifier) )) (argument_list "(&local_b4,local_8c,local_5c)" ( (pointer_expression "&local_b4" & identifier) , identifier , identifier )))) ;) (expression_statement "uVar7 = (uint)((int)ppppppcVar39[(int)param_5 * 2 + 1] << 8) >> 0x16;" (assignment_expression "uVar7 = (uint)((int)ppppppcVar39[(int)param_5 * 2 + 1] << 8) >> 0x16" identifier = (binary_expression "(uint)((int)ppppppcVar39[(int)param_5 * 2 + 1] << 8) >> 0x16" (call_expression "(uint)((int)ppppppcVar39[(int)param_5 * 2 + 1] << 8)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)ppppppcVar39[(int)param_5 * 2 + 1] << 8)" ( (binary_expression "(int)ppppppcVar39[(int)param_5 * 2 + 1] << 8" (cast_expression "(int)ppppppcVar39[(int)param_5 * 2 + 1]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "ppppppcVar39[(int)param_5 * 2 + 1]" identifier [ (binary_expression "(int)param_5 * 2 + 1" (binary_expression "(int)param_5 * 2" (cast_expression "(int)param_5" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal) ])) << number_literal) ))) >> number_literal)) ;) (if_statement "if ((uVar7 & 4) == 0) {\n                              uVar27 = uVar19 & 1;\n                              if ((uVar7 & 8) != 0) goto joined_r0x00054f40;\n                            }\n                            else {\n                              uVar27 = uVar7 & 8;\n                              if ((uVar19 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                              if (uVar27 != 0) goto LAB_000550a4;\n                            }" if (parenthesized_expression "((uVar7 & 4) == 0)" ( (binary_expression "(uVar7 & 4) == 0" (parenthesized_expression "(uVar7 & 4)" ( (binary_expression "uVar7 & 4" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n                              uVar27 = uVar19 & 1;\n                              if ((uVar7 & 8) != 0) goto joined_r0x00054f40;\n                            }" { (expression_statement "uVar27 = uVar19 & 1;" (assignment_expression "uVar27 = uVar19 & 1" identifier = (binary_expression "uVar19 & 1" identifier & number_literal)) ;) (if_statement "if ((uVar7 & 8) != 0) goto joined_r0x00054f40;" if (parenthesized_expression "((uVar7 & 8) != 0)" ( (binary_expression "(uVar7 & 8) != 0" (parenthesized_expression "(uVar7 & 8)" ( (binary_expression "uVar7 & 8" identifier & number_literal) )) != number_literal) )) (goto_statement "goto joined_r0x00054f40;" goto statement_identifier ;)) }) (else_clause "else {\n                              uVar27 = uVar7 & 8;\n                              if ((uVar19 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                              if (uVar27 != 0) goto LAB_000550a4;\n                            }" else (compound_statement "{\n                              uVar27 = uVar7 & 8;\n                              if ((uVar19 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                              if (uVar27 != 0) goto LAB_000550a4;\n                            }" { (expression_statement "uVar27 = uVar7 & 8;" (assignment_expression "uVar27 = uVar7 & 8" identifier = (binary_expression "uVar7 & 8" identifier & number_literal)) ;) (if_statement "if ((uVar19 & 1) == 0) goto LAB_000550a4;" 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_000550a4;" goto statement_identifier ;)) (labeled_statement "joined_r0x00054f40:\n                              if (uVar27 != 0) goto LAB_000550a4;" statement_identifier : (if_statement "if (uVar27 != 0) goto LAB_000550a4;" if (parenthesized_expression "(uVar27 != 0)" ( (binary_expression "uVar27 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000550a4;" goto statement_identifier ;))) }))) (if_statement "if ((((uVar7 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                               (((uVar7 & 0x80) != 0 &&\n                                (pppppppcVar33 = local_8c, (uVar19 & 8) == 0)))) goto LAB_000550a4;" if (parenthesized_expression "((((uVar7 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                               (((uVar7 & 0x80) != 0 &&\n                                (pppppppcVar33 = local_8c, (uVar19 & 8) == 0))))" ( (binary_expression "(((uVar7 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                               (((uVar7 & 0x80) != 0 &&\n                                (pppppppcVar33 = local_8c, (uVar19 & 8) == 0)))" (parenthesized_expression "(((uVar7 & 0x20) != 0) && ((uVar19 & 2) == 0))" ( (binary_expression "((uVar7 & 0x20) != 0) && ((uVar19 & 2) == 0)" (parenthesized_expression "((uVar7 & 0x20) != 0)" ( (binary_expression "(uVar7 & 0x20) != 0" (parenthesized_expression "(uVar7 & 0x20)" ( (binary_expression "uVar7 & 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 "(((uVar7 & 0x80) != 0 &&\n                                (pppppppcVar33 = local_8c, (uVar19 & 8) == 0)))" ( (parenthesized_expression "((uVar7 & 0x80) != 0 &&\n                                (pppppppcVar33 = local_8c, (uVar19 & 8) == 0))" ( (binary_expression "(uVar7 & 0x80) != 0 &&\n                                (pppppppcVar33 = local_8c, (uVar19 & 8) == 0)" (binary_expression "(uVar7 & 0x80) != 0" (parenthesized_expression "(uVar7 & 0x80)" ( (binary_expression "uVar7 & 0x80" identifier & number_literal) )) != number_literal) && (parenthesized_expression "(pppppppcVar33 = local_8c, (uVar19 & 8) == 0)" ( (comma_expression "pppppppcVar33 = local_8c, (uVar19 & 8) == 0" (assignment_expression "pppppppcVar33 = local_8c" identifier = identifier) , (binary_expression "(uVar19 & 8) == 0" (parenthesized_expression "(uVar19 & 8)" ( (binary_expression "uVar19 & 8" identifier & number_literal) )) == number_literal)) ))) )) ))) )) (goto_statement "goto LAB_000550a4;" goto statement_identifier ;)) })) (expression_statement "pppppppcVar30 = &local_b4;" (assignment_expression "pppppppcVar30 = &local_b4" identifier = (pointer_expression "&local_b4" & identifier)) ;) (expression_statement "pppppppcVar29 = param_5;" (assignment_expression "pppppppcVar29 = param_5" identifier = identifier) ;) (expression_statement "pppppppcVar33 = local_8c;" (assignment_expression "pppppppcVar33 = local_8c" identifier = identifier) ;) (expression_statement "iVar18 = (*pcVar10)(pppppppcVar42);" (assignment_expression "iVar18 = (*pcVar10)(pppppppcVar42)" identifier = (call_expression "(*pcVar10)(pppppppcVar42)" (parenthesized_expression "(*pcVar10)" ( (pointer_expression "*pcVar10" * identifier) )) (argument_list "(pppppppcVar42)" ( identifier )))) ;) (if_statement "if (iVar18 != 0) {\n                            pppppppcVar14 = (code *******)((int)local_8c + iVar18);\n                            if (iVar18 <= local_3c) {\n                              iVar18 = local_3c;\n                            }\n                            pppppppcVar29 = pppppppcVar14;\n                            local_3c = iVar18;\n                            local_d4 = (code *******)(*pcVar11)(&local_b4);\n                            pppppppcVar15 = local_d4;\n                            if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                            pppppppcVar30 =\n                                 (code *******)\n                                 (pppppppcVar42[6] + (int)pppppppcVar42[3][(int)param_5] * 3);\n                            unaff_s4 = (code *******)((int)pppppppcVar14 * 4);\n                            param_5 = local_50 + (int)pppppppcVar14;\n                            if (*param_5 == (code ******)0x0) {\n                              local_d0 = (code *******)*pppppppcVar30;\n                              local_cc = (code *******)pppppppcVar30[1];\n                              local_c8 = (code *******)pppppppcVar30[2];\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *param_5 = ppppppcVar39;\n                            }\n                            else {\n                              pppppppcVar29 = (code *******)(*param_5)[10];\n                              local_d4 = (code *******)FUN_000484bc(&local_d0);\n                              pppppppcVar15 = local_d4;\n                              if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar15 = local_50 + (int)pppppppcVar14;\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *pppppppcVar15 = ppppppcVar39;\n                              (*(code *)PTR_free_00079c24)(local_c8);\n                            }\n                            unaff_s4 = local_50 + (int)pppppppcVar14;\n                            if ((*unaff_s4 == (code ******)0x0) &&\n                               (pppppppcVar15 = local_d4, local_d4 != (code *******)0x0))\n                            goto LAB_00055e44;\n                          }" if (parenthesized_expression "(iVar18 != 0)" ( (binary_expression "iVar18 != 0" identifier != number_literal) )) (compound_statement "{\n                            pppppppcVar14 = (code *******)((int)local_8c + iVar18);\n                            if (iVar18 <= local_3c) {\n                              iVar18 = local_3c;\n                            }\n                            pppppppcVar29 = pppppppcVar14;\n                            local_3c = iVar18;\n                            local_d4 = (code *******)(*pcVar11)(&local_b4);\n                            pppppppcVar15 = local_d4;\n                            if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                            pppppppcVar30 =\n                                 (code *******)\n                                 (pppppppcVar42[6] + (int)pppppppcVar42[3][(int)param_5] * 3);\n                            unaff_s4 = (code *******)((int)pppppppcVar14 * 4);\n                            param_5 = local_50 + (int)pppppppcVar14;\n                            if (*param_5 == (code ******)0x0) {\n                              local_d0 = (code *******)*pppppppcVar30;\n                              local_cc = (code *******)pppppppcVar30[1];\n                              local_c8 = (code *******)pppppppcVar30[2];\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *param_5 = ppppppcVar39;\n                            }\n                            else {\n                              pppppppcVar29 = (code *******)(*param_5)[10];\n                              local_d4 = (code *******)FUN_000484bc(&local_d0);\n                              pppppppcVar15 = local_d4;\n                              if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar15 = local_50 + (int)pppppppcVar14;\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *pppppppcVar15 = ppppppcVar39;\n                              (*(code *)PTR_free_00079c24)(local_c8);\n                            }\n                            unaff_s4 = local_50 + (int)pppppppcVar14;\n                            if ((*unaff_s4 == (code ******)0x0) &&\n                               (pppppppcVar15 = local_d4, local_d4 != (code *******)0x0))\n                            goto LAB_00055e44;\n                          }" { (expression_statement "pppppppcVar14 = (code *******)((int)local_8c + iVar18);" (assignment_expression "pppppppcVar14 = (code *******)((int)local_8c + iVar18)" identifier = (cast_expression "(code *******)((int)local_8c + iVar18)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)local_8c + iVar18)" ( (binary_expression "(int)local_8c + iVar18" (cast_expression "(int)local_8c" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (if_statement "if (iVar18 <= local_3c) {\n                              iVar18 = local_3c;\n                            }" if (parenthesized_expression "(iVar18 <= local_3c)" ( (binary_expression "iVar18 <= local_3c" identifier <= identifier) )) (compound_statement "{\n                              iVar18 = local_3c;\n                            }" { (expression_statement "iVar18 = local_3c;" (assignment_expression "iVar18 = local_3c" identifier = identifier) ;) })) (expression_statement "pppppppcVar29 = pppppppcVar14;" (assignment_expression "pppppppcVar29 = pppppppcVar14" identifier = identifier) ;) (expression_statement "local_3c = iVar18;" (assignment_expression "local_3c = iVar18" identifier = identifier) ;) (expression_statement "local_d4 = (code *******)(*pcVar11)(&local_b4);" (assignment_expression "local_d4 = (code *******)(*pcVar11)(&local_b4)" identifier = (cast_expression "(code *******)(*pcVar11)(&local_b4)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "(*pcVar11)(&local_b4)" (parenthesized_expression "(*pcVar11)" ( (pointer_expression "*pcVar11" * identifier) )) (argument_list "(&local_b4)" ( (pointer_expression "&local_b4" & identifier) ))))) ;) (expression_statement "pppppppcVar15 = local_d4;" (assignment_expression "pppppppcVar15 = local_d4" identifier = identifier) ;) (if_statement "if (local_d4 != (code *******)0x0) goto LAB_00055e44;" if (parenthesized_expression "(local_d4 != (code *******)0x0)" ( (binary_expression "local_d4 != (code *******)0x0" identifier != (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (goto_statement "goto LAB_00055e44;" goto statement_identifier ;)) (expression_statement "pppppppcVar30 =\n                                 (code *******)\n                                 (pppppppcVar42[6] + (int)pppppppcVar42[3][(int)param_5] * 3);" (assignment_expression "pppppppcVar30 =\n                                 (code *******)\n                                 (pppppppcVar42[6] + (int)pppppppcVar42[3][(int)param_5] * 3)" identifier = (cast_expression "(code *******)\n                                 (pppppppcVar42[6] + (int)pppppppcVar42[3][(int)param_5] * 3)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(pppppppcVar42[6] + (int)pppppppcVar42[3][(int)param_5] * 3)" ( (binary_expression "pppppppcVar42[6] + (int)pppppppcVar42[3][(int)param_5] * 3" (subscript_expression "pppppppcVar42[6]" identifier [ number_literal ]) + (binary_expression "(int)pppppppcVar42[3][(int)param_5] * 3" (cast_expression "(int)pppppppcVar42[3][(int)param_5]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "pppppppcVar42[3][(int)param_5]" (subscript_expression "pppppppcVar42[3]" identifier [ number_literal ]) [ (cast_expression "(int)param_5" ( (type_descriptor "int" primitive_type) ) identifier) ])) * number_literal)) )))) ;) (expression_statement "unaff_s4 = (code *******)((int)pppppppcVar14 * 4);" (assignment_expression "unaff_s4 = (code *******)((int)pppppppcVar14 * 4)" identifier = (cast_expression "(code *******)((int)pppppppcVar14 * 4)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)pppppppcVar14 * 4)" ( (binary_expression "(int)pppppppcVar14 * 4" (cast_expression "(int)pppppppcVar14" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) )))) ;) (expression_statement "param_5 = local_50 + (int)pppppppcVar14;" (assignment_expression "param_5 = local_50 + (int)pppppppcVar14" identifier = (binary_expression "local_50 + (int)pppppppcVar14" identifier + (cast_expression "(int)pppppppcVar14" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (*param_5 == (code ******)0x0) {\n                              local_d0 = (code *******)*pppppppcVar30;\n                              local_cc = (code *******)pppppppcVar30[1];\n                              local_c8 = (code *******)pppppppcVar30[2];\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *param_5 = ppppppcVar39;\n                            }\n                            else {\n                              pppppppcVar29 = (code *******)(*param_5)[10];\n                              local_d4 = (code *******)FUN_000484bc(&local_d0);\n                              pppppppcVar15 = local_d4;\n                              if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar15 = local_50 + (int)pppppppcVar14;\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *pppppppcVar15 = ppppppcVar39;\n                              (*(code *)PTR_free_00079c24)(local_c8);\n                            }" if (parenthesized_expression "(*param_5 == (code ******)0x0)" ( (binary_expression "*param_5 == (code ******)0x0" (pointer_expression "*param_5" * identifier) == (cast_expression "(code ******)0x0" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (compound_statement "{\n                              local_d0 = (code *******)*pppppppcVar30;\n                              local_cc = (code *******)pppppppcVar30[1];\n                              local_c8 = (code *******)pppppppcVar30[2];\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *param_5 = ppppppcVar39;\n                            }" { (expression_statement "local_d0 = (code *******)*pppppppcVar30;" (assignment_expression "local_d0 = (code *******)*pppppppcVar30" identifier = (cast_expression "(code *******)*pppppppcVar30" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "*pppppppcVar30" * identifier))) ;) (expression_statement "local_cc = (code *******)pppppppcVar30[1];" (assignment_expression "local_cc = (code *******)pppppppcVar30[1]" identifier = (cast_expression "(code *******)pppppppcVar30[1]" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (subscript_expression "pppppppcVar30[1]" identifier [ number_literal ]))) ;) (expression_statement "local_c8 = (code *******)pppppppcVar30[2];" (assignment_expression "local_c8 = (code *******)pppppppcVar30[2]" identifier = (cast_expression "(code *******)pppppppcVar30[2]" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (subscript_expression "pppppppcVar30[2]" identifier [ number_literal ]))) ;) (expression_statement "pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);" (assignment_expression "pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c)" identifier = (cast_expression "(code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "(*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c)" (parenthesized_expression "(*pcVar12)" ( (pointer_expression "*pcVar12" * identifier) )) (argument_list "(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c)" ( (pointer_expression "&local_b4" & identifier) , (cast_expression "(code *)((int)pppppppcVar14 + -1)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppppppcVar14 + -1)" ( (binary_expression "(int)pppppppcVar14 + -1" (cast_expression "(int)pppppppcVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) , identifier ))))) ;) (expression_statement "pppppppcVar30 = (code *******)&local_d0;" (assignment_expression "pppppppcVar30 = (code *******)&local_d0" identifier = (cast_expression "(code *******)&local_d0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "&local_d0" & identifier))) ;) (expression_statement "pppppppcVar29 = pppppppcVar42;" (assignment_expression "pppppppcVar29 = pppppppcVar42" identifier = identifier) ;) (expression_statement "ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);" (assignment_expression "ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4)" identifier = (cast_expression "(code ******)FUN_0004ae34(&local_d4)" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (call_expression "FUN_0004ae34(&local_d4)" identifier (argument_list "(&local_d4)" ( (pointer_expression "&local_d4" & identifier) ))))) ;) (expression_statement "*param_5 = ppppppcVar39;" (assignment_expression "*param_5 = ppppppcVar39" (pointer_expression "*param_5" * identifier) = identifier) ;) }) (else_clause "else {\n                              pppppppcVar29 = (code *******)(*param_5)[10];\n                              local_d4 = (code *******)FUN_000484bc(&local_d0);\n                              pppppppcVar15 = local_d4;\n                              if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar15 = local_50 + (int)pppppppcVar14;\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *pppppppcVar15 = ppppppcVar39;\n                              (*(code *)PTR_free_00079c24)(local_c8);\n                            }" else (compound_statement "{\n                              pppppppcVar29 = (code *******)(*param_5)[10];\n                              local_d4 = (code *******)FUN_000484bc(&local_d0);\n                              pppppppcVar15 = local_d4;\n                              if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar15 = local_50 + (int)pppppppcVar14;\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *pppppppcVar15 = ppppppcVar39;\n                              (*(code *)PTR_free_00079c24)(local_c8);\n                            }" { (expression_statement "pppppppcVar29 = (code *******)(*param_5)[10];" (assignment_expression "pppppppcVar29 = (code *******)(*param_5)[10]" identifier = (cast_expression "(code *******)(*param_5)[10]" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (subscript_expression "(*param_5)[10]" (parenthesized_expression "(*param_5)" ( (pointer_expression "*param_5" * identifier) )) [ number_literal ]))) ;) (expression_statement "local_d4 = (code *******)FUN_000484bc(&local_d0);" (assignment_expression "local_d4 = (code *******)FUN_000484bc(&local_d0)" identifier = (cast_expression "(code *******)FUN_000484bc(&local_d0)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "FUN_000484bc(&local_d0)" identifier (argument_list "(&local_d0)" ( (pointer_expression "&local_d0" & identifier) ))))) ;) (expression_statement "pppppppcVar15 = local_d4;" (assignment_expression "pppppppcVar15 = local_d4" identifier = identifier) ;) (if_statement "if (local_d4 != (code *******)0x0) goto LAB_00055e44;" if (parenthesized_expression "(local_d4 != (code *******)0x0)" ( (binary_expression "local_d4 != (code *******)0x0" identifier != (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (goto_statement "goto LAB_00055e44;" goto statement_identifier ;)) (expression_statement "pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);" (assignment_expression "pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c)" identifier = (cast_expression "(code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "(*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c)" (parenthesized_expression "(*pcVar12)" ( (pointer_expression "*pcVar12" * identifier) )) (argument_list "(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c)" ( (pointer_expression "&local_b4" & identifier) , (cast_expression "(code *)((int)pppppppcVar14 + -1)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppppppcVar14 + -1)" ( (binary_expression "(int)pppppppcVar14 + -1" (cast_expression "(int)pppppppcVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) , identifier ))))) ;) (expression_statement "pppppppcVar15 = local_50 + (int)pppppppcVar14;" (assignment_expression "pppppppcVar15 = local_50 + (int)pppppppcVar14" identifier = (binary_expression "local_50 + (int)pppppppcVar14" identifier + (cast_expression "(int)pppppppcVar14" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "pppppppcVar30 = (code *******)&local_d0;" (assignment_expression "pppppppcVar30 = (code *******)&local_d0" identifier = (cast_expression "(code *******)&local_d0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "&local_d0" & identifier))) ;) (expression_statement "pppppppcVar29 = pppppppcVar42;" (assignment_expression "pppppppcVar29 = pppppppcVar42" identifier = identifier) ;) (expression_statement "ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);" (assignment_expression "ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4)" identifier = (cast_expression "(code ******)FUN_0004ae34(&local_d4)" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (call_expression "FUN_0004ae34(&local_d4)" identifier (argument_list "(&local_d4)" ( (pointer_expression "&local_d4" & identifier) ))))) ;) (expression_statement "*pppppppcVar15 = ppppppcVar39;" (assignment_expression "*pppppppcVar15 = ppppppcVar39" (pointer_expression "*pppppppcVar15" * identifier) = identifier) ;) (expression_statement "(*(code *)PTR_free_00079c24)(local_c8);" (call_expression "(*(code *)PTR_free_00079c24)(local_c8)" (parenthesized_expression "(*(code *)PTR_free_00079c24)" ( (pointer_expression "*(code *)PTR_free_00079c24" * (cast_expression "(code *)PTR_free_00079c24" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_c8)" ( identifier ))) ;) }))) (expression_statement "unaff_s4 = local_50 + (int)pppppppcVar14;" (assignment_expression "unaff_s4 = local_50 + (int)pppppppcVar14" identifier = (binary_expression "local_50 + (int)pppppppcVar14" identifier + (cast_expression "(int)pppppppcVar14" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if ((*unaff_s4 == (code ******)0x0) &&\n                               (pppppppcVar15 = local_d4, local_d4 != (code *******)0x0))\n                            goto LAB_00055e44;" if (parenthesized_expression "((*unaff_s4 == (code ******)0x0) &&\n                               (pppppppcVar15 = local_d4, local_d4 != (code *******)0x0))" ( (binary_expression "(*unaff_s4 == (code ******)0x0) &&\n                               (pppppppcVar15 = local_d4, local_d4 != (code *******)0x0)" (parenthesized_expression "(*unaff_s4 == (code ******)0x0)" ( (binary_expression "*unaff_s4 == (code ******)0x0" (pointer_expression "*unaff_s4" * identifier) == (cast_expression "(code ******)0x0" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) && (parenthesized_expression "(pppppppcVar15 = local_d4, local_d4 != (code *******)0x0)" ( (comma_expression "pppppppcVar15 = local_d4, local_d4 != (code *******)0x0" (assignment_expression "pppppppcVar15 = local_d4" identifier = identifier) , (binary_expression "local_d4 != (code *******)0x0" identifier != (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal))) ))) )) (goto_statement "goto LAB_00055e44;" goto statement_identifier ;)) })) })) (labeled_statement "LAB_000550a4:\n                        param_6 = (code *******)((int)param_6 + 1);" statement_identifier : (expression_statement "param_6 = (code *******)((int)param_6 + 1);" (assignment_expression "param_6 = (code *******)((int)param_6 + 1)" identifier = (cast_expression "(code *******)((int)param_6 + 1)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)param_6 + 1)" ( (binary_expression "(int)param_6 + 1" (cast_expression "(int)param_6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;)) }) while (parenthesized_expression "((int)param_6 < (int)unaff_s7[2])" ( (binary_expression "(int)param_6 < (int)unaff_s7[2]" (cast_expression "(int)param_6" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)unaff_s7[2]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "unaff_s7[2]" identifier [ number_literal ]))) )) ;) })) (expression_statement "local_d8 = (code *******)0x0;" (assignment_expression "local_d8 = (code *******)0x0" identifier = (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) })) (expression_statement "uVar7 = (uint)(byte)*(code *)((int)local_8c + (int)local_b0);" (assignment_expression "uVar7 = (uint)(byte)*(code *)((int)local_8c + (int)local_b0)" identifier = (binary_expression "(uint)(byte)*(code *)((int)local_8c + (int)local_b0)" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(byte)" ( identifier ))) * (cast_expression "(code *)((int)local_8c + (int)local_b0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_8c + (int)local_b0)" ( (binary_expression "(int)local_8c + (int)local_b0" (cast_expression "(int)local_8c" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)local_b0" ( (type_descriptor "int" primitive_type) ) identifier)) ))))) ;) (expression_statement "local_8c = (code *******)((int)local_8c + 1);" (assignment_expression "local_8c = (code *******)((int)local_8c + 1)" identifier = (cast_expression "(code *******)((int)local_8c + 1)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)local_8c + 1)" ( (binary_expression "(int)local_8c + 1" (cast_expression "(int)local_8c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (do_statement "do {\n                    if (unaff_s7[0xb] != (code ******)0x0) {\n                      pppppppcVar30 = (code *******)unaff_s7[0xb][uVar7];\nLAB_000553a0:\n                      pppppppcVar14 = pppppppcVar30;\n                      if (local_50 != (code *******)0x0) goto LAB_000553ac;\n                      goto LAB_000553cc;\n                    }\n                    pppppppcVar31 = (code *******)unaff_s7[0xc];\n                    if (pppppppcVar31 != (code *******)0x0) {\n                      pppppppcVar29 = (code *******)((int)local_8c + -1);\n                      uVar19 = FUN_00049110(&local_b4);\n                      if ((uVar19 & 1) == 0) {\n                        pppppppcVar30 = (code *******)pppppppcVar31[uVar7];\n                      }\n                      else {\n                        pppppppcVar31 = pppppppcVar31 + uVar7 + 0x100;\n                        pppppppcVar30 = (code *******)*pppppppcVar31;\n                      }\n                      goto LAB_000553a0;\n                    }\n                    pppppppcVar29 = unaff_s7;\n                    pppppppcVar30 = local_5c;\n                    iVar18 = (*pcVar9)(local_60);\n                  } while (iVar18 != 0);" do (compound_statement "{\n                    if (unaff_s7[0xb] != (code ******)0x0) {\n                      pppppppcVar30 = (code *******)unaff_s7[0xb][uVar7];\nLAB_000553a0:\n                      pppppppcVar14 = pppppppcVar30;\n                      if (local_50 != (code *******)0x0) goto LAB_000553ac;\n                      goto LAB_000553cc;\n                    }\n                    pppppppcVar31 = (code *******)unaff_s7[0xc];\n                    if (pppppppcVar31 != (code *******)0x0) {\n                      pppppppcVar29 = (code *******)((int)local_8c + -1);\n                      uVar19 = FUN_00049110(&local_b4);\n                      if ((uVar19 & 1) == 0) {\n                        pppppppcVar30 = (code *******)pppppppcVar31[uVar7];\n                      }\n                      else {\n                        pppppppcVar31 = pppppppcVar31 + uVar7 + 0x100;\n                        pppppppcVar30 = (code *******)*pppppppcVar31;\n                      }\n                      goto LAB_000553a0;\n                    }\n                    pppppppcVar29 = unaff_s7;\n                    pppppppcVar30 = local_5c;\n                    iVar18 = (*pcVar9)(local_60);\n                  }" { (if_statement "if (unaff_s7[0xb] != (code ******)0x0) {\n                      pppppppcVar30 = (code *******)unaff_s7[0xb][uVar7];\nLAB_000553a0:\n                      pppppppcVar14 = pppppppcVar30;\n                      if (local_50 != (code *******)0x0) goto LAB_000553ac;\n                      goto LAB_000553cc;\n                    }" if (parenthesized_expression "(unaff_s7[0xb] != (code ******)0x0)" ( (binary_expression "unaff_s7[0xb] != (code ******)0x0" (subscript_expression "unaff_s7[0xb]" identifier [ number_literal ]) != (cast_expression "(code ******)0x0" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (compound_statement "{\n                      pppppppcVar30 = (code *******)unaff_s7[0xb][uVar7];\nLAB_000553a0:\n                      pppppppcVar14 = pppppppcVar30;\n                      if (local_50 != (code *******)0x0) goto LAB_000553ac;\n                      goto LAB_000553cc;\n                    }" { (expression_statement "pppppppcVar30 = (code *******)unaff_s7[0xb][uVar7];" (assignment_expression "pppppppcVar30 = (code *******)unaff_s7[0xb][uVar7]" identifier = (cast_expression "(code *******)unaff_s7[0xb][uVar7]" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (subscript_expression "unaff_s7[0xb][uVar7]" (subscript_expression "unaff_s7[0xb]" identifier [ number_literal ]) [ identifier ]))) ;) (labeled_statement "LAB_000553a0:\n                      pppppppcVar14 = pppppppcVar30;" statement_identifier : (expression_statement "pppppppcVar14 = pppppppcVar30;" (assignment_expression "pppppppcVar14 = pppppppcVar30" identifier = identifier) ;)) (if_statement "if (local_50 != (code *******)0x0) goto LAB_000553ac;" if (parenthesized_expression "(local_50 != (code *******)0x0)" ( (binary_expression "local_50 != (code *******)0x0" identifier != (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (goto_statement "goto LAB_000553ac;" goto statement_identifier ;)) (goto_statement "goto LAB_000553cc;" goto statement_identifier ;) })) (expression_statement "pppppppcVar31 = (code *******)unaff_s7[0xc];" (assignment_expression "pppppppcVar31 = (code *******)unaff_s7[0xc]" identifier = (cast_expression "(code *******)unaff_s7[0xc]" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (subscript_expression "unaff_s7[0xc]" identifier [ number_literal ]))) ;) (if_statement "if (pppppppcVar31 != (code *******)0x0) {\n                      pppppppcVar29 = (code *******)((int)local_8c + -1);\n                      uVar19 = FUN_00049110(&local_b4);\n                      if ((uVar19 & 1) == 0) {\n                        pppppppcVar30 = (code *******)pppppppcVar31[uVar7];\n                      }\n                      else {\n                        pppppppcVar31 = pppppppcVar31 + uVar7 + 0x100;\n                        pppppppcVar30 = (code *******)*pppppppcVar31;\n                      }\n                      goto LAB_000553a0;\n                    }" if (parenthesized_expression "(pppppppcVar31 != (code *******)0x0)" ( (binary_expression "pppppppcVar31 != (code *******)0x0" identifier != (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\n                      pppppppcVar29 = (code *******)((int)local_8c + -1);\n                      uVar19 = FUN_00049110(&local_b4);\n                      if ((uVar19 & 1) == 0) {\n                        pppppppcVar30 = (code *******)pppppppcVar31[uVar7];\n                      }\n                      else {\n                        pppppppcVar31 = pppppppcVar31 + uVar7 + 0x100;\n                        pppppppcVar30 = (code *******)*pppppppcVar31;\n                      }\n                      goto LAB_000553a0;\n                    }" { (expression_statement "pppppppcVar29 = (code *******)((int)local_8c + -1);" (assignment_expression "pppppppcVar29 = (code *******)((int)local_8c + -1)" identifier = (cast_expression "(code *******)((int)local_8c + -1)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)local_8c + -1)" ( (binary_expression "(int)local_8c + -1" (cast_expression "(int)local_8c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "uVar19 = FUN_00049110(&local_b4);" (assignment_expression "uVar19 = FUN_00049110(&local_b4)" identifier = (call_expression "FUN_00049110(&local_b4)" identifier (argument_list "(&local_b4)" ( (pointer_expression "&local_b4" & identifier) )))) ;) (if_statement "if ((uVar19 & 1) == 0) {\n                        pppppppcVar30 = (code *******)pppppppcVar31[uVar7];\n                      }\n                      else {\n                        pppppppcVar31 = pppppppcVar31 + uVar7 + 0x100;\n                        pppppppcVar30 = (code *******)*pppppppcVar31;\n                      }" if (parenthesized_expression "((uVar19 & 1) == 0)" ( (binary_expression "(uVar19 & 1) == 0" (parenthesized_expression "(uVar19 & 1)" ( (binary_expression "uVar19 & 1" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n                        pppppppcVar30 = (code *******)pppppppcVar31[uVar7];\n                      }" { (expression_statement "pppppppcVar30 = (code *******)pppppppcVar31[uVar7];" (assignment_expression "pppppppcVar30 = (code *******)pppppppcVar31[uVar7]" identifier = (cast_expression "(code *******)pppppppcVar31[uVar7]" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (subscript_expression "pppppppcVar31[uVar7]" identifier [ identifier ]))) ;) }) (else_clause "else {\n                        pppppppcVar31 = pppppppcVar31 + uVar7 + 0x100;\n                        pppppppcVar30 = (code *******)*pppppppcVar31;\n                      }" else (compound_statement "{\n                        pppppppcVar31 = pppppppcVar31 + uVar7 + 0x100;\n                        pppppppcVar30 = (code *******)*pppppppcVar31;\n                      }" { (expression_statement "pppppppcVar31 = pppppppcVar31 + uVar7 + 0x100;" (assignment_expression "pppppppcVar31 = pppppppcVar31 + uVar7 + 0x100" identifier = (binary_expression "pppppppcVar31 + uVar7 + 0x100" (binary_expression "pppppppcVar31 + uVar7" identifier + identifier) + number_literal)) ;) (expression_statement "pppppppcVar30 = (code *******)*pppppppcVar31;" (assignment_expression "pppppppcVar30 = (code *******)*pppppppcVar31" identifier = (cast_expression "(code *******)*pppppppcVar31" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "*pppppppcVar31" * identifier))) ;) }))) (goto_statement "goto LAB_000553a0;" goto statement_identifier ;) })) (expression_statement "pppppppcVar29 = unaff_s7;" (assignment_expression "pppppppcVar29 = unaff_s7" identifier = identifier) ;) (expression_statement "pppppppcVar30 = local_5c;" (assignment_expression "pppppppcVar30 = local_5c" identifier = identifier) ;) (expression_statement "iVar18 = (*pcVar9)(local_60);" (assignment_expression "iVar18 = (*pcVar9)(local_60)" identifier = (call_expression "(*pcVar9)(local_60)" (parenthesized_expression "(*pcVar9)" ( (pointer_expression "*pcVar9" * identifier) )) (argument_list "(local_60)" ( identifier )))) ;) }) while (parenthesized_expression "(iVar18 != 0)" ( (binary_expression "iVar18 != 0" identifier != number_literal) )) ;) (expression_statement "local_d8 = (code *******)0xc;" (assignment_expression "local_d8 = (code *******)0xc" identifier = (cast_expression "(code *******)0xc" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "pppppppcVar15 = local_d8;" (assignment_expression "pppppppcVar15 = local_d8" identifier = identifier) ;) (labeled_statement "LAB_00055e44:\n                  local_d8 = pppppppcVar15;" statement_identifier : (expression_statement "local_d8 = pppppppcVar15;" (assignment_expression "local_d8 = pppppppcVar15" identifier = identifier) ;)) (expression_statement "param_4 = (code *******)0x0;" (assignment_expression "param_4 = (code *******)0x0" identifier = (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (if_statement "if (local_50 == (code *******)0x0) {\n                    pppppppcVar14 = param_4;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    break;\n                  }" if (parenthesized_expression "(local_50 == (code *******)0x0)" ( (binary_expression "local_50 == (code *******)0x0" identifier == (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\n                    pppppppcVar14 = param_4;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    break;\n                  }" { (expression_statement "pppppppcVar14 = param_4;" (assignment_expression "pppppppcVar14 = param_4" identifier = identifier) ;) (if_statement "if (local_d8 != (code *******)0x0) goto LAB_00055914;" if (parenthesized_expression "(local_d8 != (code *******)0x0)" ( (binary_expression "local_d8 != (code *******)0x0" identifier != (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (goto_statement "goto LAB_00055914;" goto statement_identifier ;)) (break_statement "break;" break ;) })) (expression_statement "pppppppcVar30 = (code *******)0x0;" (assignment_expression "pppppppcVar30 = (code *******)0x0" identifier = (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (labeled_statement "LAB_000553ac:\n                  pppppppcVar29 = &local_b4;" statement_identifier : (expression_statement "pppppppcVar29 = &local_b4;" (assignment_expression "pppppppcVar29 = &local_b4" identifier = (pointer_expression "&local_b4" & identifier)) ;)) (expression_statement "pppppppcVar14 = (code *******)FUN_00053684(&local_d8);" (assignment_expression "pppppppcVar14 = (code *******)FUN_00053684(&local_d8)" identifier = (cast_expression "(code *******)FUN_00053684(&local_d8)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "FUN_00053684(&local_d8)" identifier (argument_list "(&local_d8)" ( (pointer_expression "&local_d8" & identifier) ))))) ;) (labeled_statement "LAB_000553cc:\n                  param_4 = pppppppcVar14;" statement_identifier : (expression_statement "param_4 = pppppppcVar14;" (assignment_expression "param_4 = pppppppcVar14" identifier = identifier) ;)) (if_statement "if (pppppppcVar14 == (code *******)0x0) {\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    if ((local_50 == (code *******)0x0) ||\n                       ((pppppppcVar28 != (code *******)0x0 && (pppppppcVar34 == (code *******)0x0))\n                       )) break;\n                    param_6 = &local_b4;\n                    param_5 = (code *******)&local_d8;\n                    pppppppcVar31 = (code *******)(PTR_DAT_000799a4 + 0x3684);\n                    do {\n                      pppppppcVar15 = local_50 + (int)local_8c;\n                      pppppppcVar42 = local_8c;\n                      do {\n                        pppppppcVar42 = (code *******)((int)pppppppcVar42 + 1);\n                        pppppppcVar29 = local_4c;\n                        param_4 = pppppppcVar14;\n                        if ((int)local_4c < (int)pppppppcVar42) goto LAB_00055da8;\n                        local_8c = (code *******)((int)local_8c + 1);\n                        pppppppcVar15 = pppppppcVar15 + 1;\n                      } while (*pppppppcVar15 == (code ******)0x0);\n                      pppppppcVar30 = (code *******)0x0;\n                      pppppppcVar29 = param_6;\n                      param_4 = (code *******)(*(code *)pppppppcVar31)(param_5);\n                      if (local_d8 != (code *******)0x0) {\n                        if (param_4 == (code *******)0x0) goto LAB_00055da8;\n                        break;\n                      }\n                      pppppppcVar29 = local_4c;\n                    } while (param_4 == (code *******)0x0);\n                  }" if (parenthesized_expression "(pppppppcVar14 == (code *******)0x0)" ( (binary_expression "pppppppcVar14 == (code *******)0x0" identifier == (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    if ((local_50 == (code *******)0x0) ||\n                       ((pppppppcVar28 != (code *******)0x0 && (pppppppcVar34 == (code *******)0x0))\n                       )) break;\n                    param_6 = &local_b4;\n                    param_5 = (code *******)&local_d8;\n                    pppppppcVar31 = (code *******)(PTR_DAT_000799a4 + 0x3684);\n                    do {\n                      pppppppcVar15 = local_50 + (int)local_8c;\n                      pppppppcVar42 = local_8c;\n                      do {\n                        pppppppcVar42 = (code *******)((int)pppppppcVar42 + 1);\n                        pppppppcVar29 = local_4c;\n                        param_4 = pppppppcVar14;\n                        if ((int)local_4c < (int)pppppppcVar42) goto LAB_00055da8;\n                        local_8c = (code *******)((int)local_8c + 1);\n                        pppppppcVar15 = pppppppcVar15 + 1;\n                      } while (*pppppppcVar15 == (code ******)0x0);\n                      pppppppcVar30 = (code *******)0x0;\n                      pppppppcVar29 = param_6;\n                      param_4 = (code *******)(*(code *)pppppppcVar31)(param_5);\n                      if (local_d8 != (code *******)0x0) {\n                        if (param_4 == (code *******)0x0) goto LAB_00055da8;\n                        break;\n                      }\n                      pppppppcVar29 = local_4c;\n                    } while (param_4 == (code *******)0x0);\n                  }" { (if_statement "if (local_d8 != (code *******)0x0) goto LAB_00055914;" if (parenthesized_expression "(local_d8 != (code *******)0x0)" ( (binary_expression "local_d8 != (code *******)0x0" identifier != (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (goto_statement "goto LAB_00055914;" goto statement_identifier ;)) (if_statement "if ((local_50 == (code *******)0x0) ||\n                       ((pppppppcVar28 != (code *******)0x0 && (pppppppcVar34 == (code *******)0x0))\n                       )) break;" if (parenthesized_expression "((local_50 == (code *******)0x0) ||\n                       ((pppppppcVar28 != (code *******)0x0 && (pppppppcVar34 == (code *******)0x0))\n                       ))" ( (binary_expression "(local_50 == (code *******)0x0) ||\n                       ((pppppppcVar28 != (code *******)0x0 && (pppppppcVar34 == (code *******)0x0))\n                       )" (parenthesized_expression "(local_50 == (code *******)0x0)" ( (binary_expression "local_50 == (code *******)0x0" identifier == (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) || (parenthesized_expression "((pppppppcVar28 != (code *******)0x0 && (pppppppcVar34 == (code *******)0x0))\n                       )" ( (parenthesized_expression "(pppppppcVar28 != (code *******)0x0 && (pppppppcVar34 == (code *******)0x0))" ( (binary_expression "pppppppcVar28 != (code *******)0x0 && (pppppppcVar34 == (code *******)0x0)" (binary_expression "pppppppcVar28 != (code *******)0x0" identifier != (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) && (parenthesized_expression "(pppppppcVar34 == (code *******)0x0)" ( (binary_expression "pppppppcVar34 == (code *******)0x0" identifier == (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ))) )) ))) )) (break_statement "break;" break ;)) (expression_statement "param_6 = &local_b4;" (assignment_expression "param_6 = &local_b4" identifier = (pointer_expression "&local_b4" & identifier)) ;) (expression_statement "param_5 = (code *******)&local_d8;" (assignment_expression "param_5 = (code *******)&local_d8" identifier = (cast_expression "(code *******)&local_d8" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "&local_d8" & identifier))) ;) (expression_statement "pppppppcVar31 = (code *******)(PTR_DAT_000799a4 + 0x3684);" (assignment_expression "pppppppcVar31 = (code *******)(PTR_DAT_000799a4 + 0x3684)" identifier = (cast_expression "(code *******)(PTR_DAT_000799a4 + 0x3684)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(PTR_DAT_000799a4 + 0x3684)" ( (binary_expression "PTR_DAT_000799a4 + 0x3684" identifier + number_literal) )))) ;) (do_statement "do {\n                      pppppppcVar15 = local_50 + (int)local_8c;\n                      pppppppcVar42 = local_8c;\n                      do {\n                        pppppppcVar42 = (code *******)((int)pppppppcVar42 + 1);\n                        pppppppcVar29 = local_4c;\n                        param_4 = pppppppcVar14;\n                        if ((int)local_4c < (int)pppppppcVar42) goto LAB_00055da8;\n                        local_8c = (code *******)((int)local_8c + 1);\n                        pppppppcVar15 = pppppppcVar15 + 1;\n                      } while (*pppppppcVar15 == (code ******)0x0);\n                      pppppppcVar30 = (code *******)0x0;\n                      pppppppcVar29 = param_6;\n                      param_4 = (code *******)(*(code *)pppppppcVar31)(param_5);\n                      if (local_d8 != (code *******)0x0) {\n                        if (param_4 == (code *******)0x0) goto LAB_00055da8;\n                        break;\n                      }\n                      pppppppcVar29 = local_4c;\n                    } while (param_4 == (code *******)0x0);" do (compound_statement "{\n                      pppppppcVar15 = local_50 + (int)local_8c;\n                      pppppppcVar42 = local_8c;\n                      do {\n                        pppppppcVar42 = (code *******)((int)pppppppcVar42 + 1);\n                        pppppppcVar29 = local_4c;\n                        param_4 = pppppppcVar14;\n                        if ((int)local_4c < (int)pppppppcVar42) goto LAB_00055da8;\n                        local_8c = (code *******)((int)local_8c + 1);\n                        pppppppcVar15 = pppppppcVar15 + 1;\n                      } while (*pppppppcVar15 == (code ******)0x0);\n                      pppppppcVar30 = (code *******)0x0;\n                      pppppppcVar29 = param_6;\n                      param_4 = (code *******)(*(code *)pppppppcVar31)(param_5);\n                      if (local_d8 != (code *******)0x0) {\n                        if (param_4 == (code *******)0x0) goto LAB_00055da8;\n                        break;\n                      }\n                      pppppppcVar29 = local_4c;\n                    }" { (expression_statement "pppppppcVar15 = local_50 + (int)local_8c;" (assignment_expression "pppppppcVar15 = local_50 + (int)local_8c" identifier = (binary_expression "local_50 + (int)local_8c" identifier + (cast_expression "(int)local_8c" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "pppppppcVar42 = local_8c;" (assignment_expression "pppppppcVar42 = local_8c" identifier = identifier) ;) (do_statement "do {\n                        pppppppcVar42 = (code *******)((int)pppppppcVar42 + 1);\n                        pppppppcVar29 = local_4c;\n                        param_4 = pppppppcVar14;\n                        if ((int)local_4c < (int)pppppppcVar42) goto LAB_00055da8;\n                        local_8c = (code *******)((int)local_8c + 1);\n                        pppppppcVar15 = pppppppcVar15 + 1;\n                      } while (*pppppppcVar15 == (code ******)0x0);" do (compound_statement "{\n                        pppppppcVar42 = (code *******)((int)pppppppcVar42 + 1);\n                        pppppppcVar29 = local_4c;\n                        param_4 = pppppppcVar14;\n                        if ((int)local_4c < (int)pppppppcVar42) goto LAB_00055da8;\n                        local_8c = (code *******)((int)local_8c + 1);\n                        pppppppcVar15 = pppppppcVar15 + 1;\n                      }" { (expression_statement "pppppppcVar42 = (code *******)((int)pppppppcVar42 + 1);" (assignment_expression "pppppppcVar42 = (code *******)((int)pppppppcVar42 + 1)" identifier = (cast_expression "(code *******)((int)pppppppcVar42 + 1)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)pppppppcVar42 + 1)" ( (binary_expression "(int)pppppppcVar42 + 1" (cast_expression "(int)pppppppcVar42" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "pppppppcVar29 = local_4c;" (assignment_expression "pppppppcVar29 = local_4c" identifier = identifier) ;) (expression_statement "param_4 = pppppppcVar14;" (assignment_expression "param_4 = pppppppcVar14" identifier = identifier) ;) (if_statement "if ((int)local_4c < (int)pppppppcVar42) goto LAB_00055da8;" if (parenthesized_expression "((int)local_4c < (int)pppppppcVar42)" ( (binary_expression "(int)local_4c < (int)pppppppcVar42" (cast_expression "(int)local_4c" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)pppppppcVar42" ( (type_descriptor "int" primitive_type) ) identifier)) )) (goto_statement "goto LAB_00055da8;" goto statement_identifier ;)) (expression_statement "local_8c = (code *******)((int)local_8c + 1);" (assignment_expression "local_8c = (code *******)((int)local_8c + 1)" identifier = (cast_expression "(code *******)((int)local_8c + 1)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)local_8c + 1)" ( (binary_expression "(int)local_8c + 1" (cast_expression "(int)local_8c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "pppppppcVar15 = pppppppcVar15 + 1;" (assignment_expression "pppppppcVar15 = pppppppcVar15 + 1" identifier = (binary_expression "pppppppcVar15 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(*pppppppcVar15 == (code ******)0x0)" ( (binary_expression "*pppppppcVar15 == (code ******)0x0" (pointer_expression "*pppppppcVar15" * identifier) == (cast_expression "(code ******)0x0" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) ;) (expression_statement "pppppppcVar30 = (code *******)0x0;" (assignment_expression "pppppppcVar30 = (code *******)0x0" identifier = (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "pppppppcVar29 = param_6;" (assignment_expression "pppppppcVar29 = param_6" identifier = identifier) ;) (expression_statement "param_4 = (code *******)(*(code *)pppppppcVar31)(param_5);" (assignment_expression "param_4 = (code *******)(*(code *)pppppppcVar31)(param_5)" identifier = (cast_expression "(code *******)(*(code *)pppppppcVar31)(param_5)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "(*(code *)pppppppcVar31)(param_5)" (parenthesized_expression "(*(code *)pppppppcVar31)" ( (pointer_expression "*(code *)pppppppcVar31" * (cast_expression "(code *)pppppppcVar31" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_5)" ( identifier ))))) ;) (if_statement "if (local_d8 != (code *******)0x0) {\n                        if (param_4 == (code *******)0x0) goto LAB_00055da8;\n                        break;\n                      }" if (parenthesized_expression "(local_d8 != (code *******)0x0)" ( (binary_expression "local_d8 != (code *******)0x0" identifier != (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\n                        if (param_4 == (code *******)0x0) goto LAB_00055da8;\n                        break;\n                      }" { (if_statement "if (param_4 == (code *******)0x0) goto LAB_00055da8;" if (parenthesized_expression "(param_4 == (code *******)0x0)" ( (binary_expression "param_4 == (code *******)0x0" identifier == (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (goto_statement "goto LAB_00055da8;" goto statement_identifier ;)) (break_statement "break;" break ;) })) (expression_statement "pppppppcVar29 = local_4c;" (assignment_expression "pppppppcVar29 = local_4c" identifier = identifier) ;) }) while (parenthesized_expression "(param_4 == (code *******)0x0)" ( (binary_expression "param_4 == (code *******)0x0" identifier == (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) ;) })) (expression_statement "pppppppcVar15 = (code *******)((uint)unaff_s7 ^ (uint)param_4);" (assignment_expression "pppppppcVar15 = (code *******)((uint)unaff_s7 ^ (uint)param_4)" identifier = (cast_expression "(code *******)((uint)unaff_s7 ^ (uint)param_4)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((uint)unaff_s7 ^ (uint)param_4)" ( (binary_expression "(uint)unaff_s7 ^ (uint)param_4" (cast_expression "(uint)unaff_s7" ( (type_descriptor "uint" type_identifier) ) identifier) ^ (cast_expression "(uint)param_4" ( (type_descriptor "uint" type_identifier) ) identifier)) )))) ;) (expression_statement "pppppppcVar42 = unaff_s7;" (assignment_expression "pppppppcVar42 = unaff_s7" identifier = identifier) ;) (expression_statement "pppppppcVar14 = local_138;" (assignment_expression "pppppppcVar14 = local_138" identifier = identifier) ;) (if_statement "if ((bVar1) &&\n                     (pppppppcVar42 = pppppppcVar15, pppppppcVar14 = unaff_s5,\n                     pppppppcVar15 != (code *******)0x0)) {\n                    bVar1 = false;\n                    pppppppcVar14 = local_138;\n                  }" if (parenthesized_expression "((bVar1) &&\n                     (pppppppcVar42 = pppppppcVar15, pppppppcVar14 = unaff_s5,\n                     pppppppcVar15 != (code *******)0x0))" ( (binary_expression "(bVar1) &&\n                     (pppppppcVar42 = pppppppcVar15, pppppppcVar14 = unaff_s5,\n                     pppppppcVar15 != (code *******)0x0)" (parenthesized_expression "(bVar1)" ( identifier )) && (parenthesized_expression "(pppppppcVar42 = pppppppcVar15, pppppppcVar14 = unaff_s5,\n                     pppppppcVar15 != (code *******)0x0)" ( (comma_expression "pppppppcVar42 = pppppppcVar15, pppppppcVar14 = unaff_s5,\n                     pppppppcVar15 != (code *******)0x0" (assignment_expression "pppppppcVar42 = pppppppcVar15" identifier = identifier) , (comma_expression "pppppppcVar14 = unaff_s5,\n                     pppppppcVar15 != (code *******)0x0" (assignment_expression "pppppppcVar14 = unaff_s5" identifier = identifier) , (binary_expression "pppppppcVar15 != (code *******)0x0" identifier != (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)))) ))) )) (compound_statement "{\n                    bVar1 = false;\n                    pppppppcVar14 = local_138;\n                  }" { (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" identifier = false) ;) (expression_statement "pppppppcVar14 = local_138;" (assignment_expression "pppppppcVar14 = local_138" identifier = identifier) ;) })) (expression_statement "local_138 = pppppppcVar14;" (assignment_expression "local_138 = pppppppcVar14" identifier = identifier) ;) (expression_statement "unaff_s7 = param_4;" (assignment_expression "unaff_s7 = param_4" identifier = identifier) ;) (if_statement "if ((((uint)param_4[0xd] & 0x8000000) != 0) &&\n                     ((((uint)param_4[0xd] & 0x1000000) == 0 ||\n                      (pppppppcVar29 = param_4, pppppppcVar30 = local_8c,\n                      iVar18 = FUN_00049440(&local_b4), iVar18 != 0)))) {\n                    unaff_s7 = pppppppcVar42;\n                    unaff_s8 = local_8c;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                    local_144 = (code *******)0x0;\n                    unaff_s7 = param_4;\n                  }" if (parenthesized_expression "((((uint)param_4[0xd] & 0x8000000) != 0) &&\n                     ((((uint)param_4[0xd] & 0x1000000) == 0 ||\n                      (pppppppcVar29 = param_4, pppppppcVar30 = local_8c,\n                      iVar18 = FUN_00049440(&local_b4), iVar18 != 0))))" ( (binary_expression "(((uint)param_4[0xd] & 0x8000000) != 0) &&\n                     ((((uint)param_4[0xd] & 0x1000000) == 0 ||\n                      (pppppppcVar29 = param_4, pppppppcVar30 = local_8c,\n                      iVar18 = FUN_00049440(&local_b4), iVar18 != 0)))" (parenthesized_expression "(((uint)param_4[0xd] & 0x8000000) != 0)" ( (binary_expression "((uint)param_4[0xd] & 0x8000000) != 0" (parenthesized_expression "((uint)param_4[0xd] & 0x8000000)" ( (binary_expression "(uint)param_4[0xd] & 0x8000000" (cast_expression "(uint)param_4[0xd]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_4[0xd]" identifier [ number_literal ])) & number_literal) )) != number_literal) )) && (parenthesized_expression "((((uint)param_4[0xd] & 0x1000000) == 0 ||\n                      (pppppppcVar29 = param_4, pppppppcVar30 = local_8c,\n                      iVar18 = FUN_00049440(&local_b4), iVar18 != 0)))" ( (parenthesized_expression "(((uint)param_4[0xd] & 0x1000000) == 0 ||\n                      (pppppppcVar29 = param_4, pppppppcVar30 = local_8c,\n                      iVar18 = FUN_00049440(&local_b4), iVar18 != 0))" ( (binary_expression "((uint)param_4[0xd] & 0x1000000) == 0 ||\n                      (pppppppcVar29 = param_4, pppppppcVar30 = local_8c,\n                      iVar18 = FUN_00049440(&local_b4), iVar18 != 0)" (binary_expression "((uint)param_4[0xd] & 0x1000000) == 0" (parenthesized_expression "((uint)param_4[0xd] & 0x1000000)" ( (binary_expression "(uint)param_4[0xd] & 0x1000000" (cast_expression "(uint)param_4[0xd]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_4[0xd]" identifier [ number_literal ])) & number_literal) )) == number_literal) || (parenthesized_expression "(pppppppcVar29 = param_4, pppppppcVar30 = local_8c,\n                      iVar18 = FUN_00049440(&local_b4), iVar18 != 0)" ( (comma_expression "pppppppcVar29 = param_4, pppppppcVar30 = local_8c,\n                      iVar18 = FUN_00049440(&local_b4), iVar18 != 0" (assignment_expression "pppppppcVar29 = param_4" identifier = identifier) , (comma_expression "pppppppcVar30 = local_8c,\n                      iVar18 = FUN_00049440(&local_b4), iVar18 != 0" (assignment_expression "pppppppcVar30 = local_8c" identifier = identifier) , (comma_expression "iVar18 = FUN_00049440(&local_b4), iVar18 != 0" (assignment_expression "iVar18 = FUN_00049440(&local_b4)" identifier = (call_expression "FUN_00049440(&local_b4)" identifier (argument_list "(&local_b4)" ( (pointer_expression "&local_b4" & identifier) )))) , (binary_expression "iVar18 != 0" identifier != number_literal)))) ))) )) ))) )) (compound_statement "{\n                    unaff_s7 = pppppppcVar42;\n                    unaff_s8 = local_8c;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                    local_144 = (code *******)0x0;\n                    unaff_s7 = param_4;\n                  }" { (expression_statement "unaff_s7 = pppppppcVar42;" (assignment_expression "unaff_s7 = pppppppcVar42" identifier = identifier) ;) (expression_statement "unaff_s8 = local_8c;" (assignment_expression "unaff_s8 = local_8c" identifier = identifier) ;) (if_statement "if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;" if (parenthesized_expression "(pppppppcVar34 == (code *******)0x0)" ( (binary_expression "pppppppcVar34 == (code *******)0x0" identifier == (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (goto_statement "goto LAB_00055dbc;" goto statement_identifier ;)) (expression_statement "pppppppcVar28 = (code *******)0x1;" (assignment_expression "pppppppcVar28 = (code *******)0x1" identifier = (cast_expression "(code *******)0x1" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "local_144 = (code *******)0x0;" (assignment_expression "local_144 = (code *******)0x0" identifier = (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "unaff_s7 = param_4;" (assignment_expression "unaff_s7 = param_4" identifier = identifier) ;) })) })) (labeled_statement "LAB_00055da8:\n                if (local_144 != (code *******)0x0) {\n                  *local_144 = (code ******)((int)local_138 + (int)*local_144);\n                }" statement_identifier : (if_statement "if (local_144 != (code *******)0x0) {\n                  *local_144 = (code ******)((int)local_138 + (int)*local_144);\n                }" if (parenthesized_expression "(local_144 != (code *******)0x0)" ( (binary_expression "local_144 != (code *******)0x0" identifier != (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\n                  *local_144 = (code ******)((int)local_138 + (int)*local_144);\n                }" { (expression_statement "*local_144 = (code ******)((int)local_138 + (int)*local_144);" (assignment_expression "*local_144 = (code ******)((int)local_138 + (int)*local_144)" (pointer_expression "*local_144" * identifier) = (cast_expression "(code ******)((int)local_138 + (int)*local_144)" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "((int)local_138 + (int)*local_144)" ( (binary_expression "(int)local_138 + (int)*local_144" (cast_expression "(int)local_138" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)*local_144" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*local_144" * identifier))) )))) ;) }))) }) (else_clause "else {\n                param_4 = unaff_s7 + 1;\n                pppppppcVar30 = (code *******)0x0;\n                pppppppcVar29 = param_4;\n                local_d8 = (code *******)FUN_00047a44(&local_b4);\n                unaff_s8 = local_d8;\n                if (local_d8 == (code *******)0x0) {\n                  if (((uint)unaff_s7[0xd] & 0x2000000) == 0) {\n                    pppppppcVar29 = param_4;\n                    bVar1 = false;\n                  }\n                  else {\n                    pppppppcVar29 = param_4;\n                    local_d8 = (code *******)FUN_00052d84(&local_b4);\n                    unaff_s8 = local_d8;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055dbc;\n                    bVar1 = false;\n                  }\n                  goto LAB_00054d50;\n                }\n              }" else (compound_statement "{\n                param_4 = unaff_s7 + 1;\n                pppppppcVar30 = (code *******)0x0;\n                pppppppcVar29 = param_4;\n                local_d8 = (code *******)FUN_00047a44(&local_b4);\n                unaff_s8 = local_d8;\n                if (local_d8 == (code *******)0x0) {\n                  if (((uint)unaff_s7[0xd] & 0x2000000) == 0) {\n                    pppppppcVar29 = param_4;\n                    bVar1 = false;\n                  }\n                  else {\n                    pppppppcVar29 = param_4;\n                    local_d8 = (code *******)FUN_00052d84(&local_b4);\n                    unaff_s8 = local_d8;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055dbc;\n                    bVar1 = false;\n                  }\n                  goto LAB_00054d50;\n                }\n              }" { (expression_statement "param_4 = unaff_s7 + 1;" (assignment_expression "param_4 = unaff_s7 + 1" identifier = (binary_expression "unaff_s7 + 1" identifier + number_literal)) ;) (expression_statement "pppppppcVar30 = (code *******)0x0;" (assignment_expression "pppppppcVar30 = (code *******)0x0" identifier = (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "pppppppcVar29 = param_4;" (assignment_expression "pppppppcVar29 = param_4" identifier = identifier) ;) (expression_statement "local_d8 = (code *******)FUN_00047a44(&local_b4);" (assignment_expression "local_d8 = (code *******)FUN_00047a44(&local_b4)" identifier = (cast_expression "(code *******)FUN_00047a44(&local_b4)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "FUN_00047a44(&local_b4)" identifier (argument_list "(&local_b4)" ( (pointer_expression "&local_b4" & identifier) ))))) ;) (expression_statement "unaff_s8 = local_d8;" (assignment_expression "unaff_s8 = local_d8" identifier = identifier) ;) (if_statement "if (local_d8 == (code *******)0x0) {\n                  if (((uint)unaff_s7[0xd] & 0x2000000) == 0) {\n                    pppppppcVar29 = param_4;\n                    bVar1 = false;\n                  }\n                  else {\n                    pppppppcVar29 = param_4;\n                    local_d8 = (code *******)FUN_00052d84(&local_b4);\n                    unaff_s8 = local_d8;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055dbc;\n                    bVar1 = false;\n                  }\n                  goto LAB_00054d50;\n                }" if (parenthesized_expression "(local_d8 == (code *******)0x0)" ( (binary_expression "local_d8 == (code *******)0x0" identifier == (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\n                  if (((uint)unaff_s7[0xd] & 0x2000000) == 0) {\n                    pppppppcVar29 = param_4;\n                    bVar1 = false;\n                  }\n                  else {\n                    pppppppcVar29 = param_4;\n                    local_d8 = (code *******)FUN_00052d84(&local_b4);\n                    unaff_s8 = local_d8;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055dbc;\n                    bVar1 = false;\n                  }\n                  goto LAB_00054d50;\n                }" { (if_statement "if (((uint)unaff_s7[0xd] & 0x2000000) == 0) {\n                    pppppppcVar29 = param_4;\n                    bVar1 = false;\n                  }\n                  else {\n                    pppppppcVar29 = param_4;\n                    local_d8 = (code *******)FUN_00052d84(&local_b4);\n                    unaff_s8 = local_d8;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055dbc;\n                    bVar1 = false;\n                  }" if (parenthesized_expression "(((uint)unaff_s7[0xd] & 0x2000000) == 0)" ( (binary_expression "((uint)unaff_s7[0xd] & 0x2000000) == 0" (parenthesized_expression "((uint)unaff_s7[0xd] & 0x2000000)" ( (binary_expression "(uint)unaff_s7[0xd] & 0x2000000" (cast_expression "(uint)unaff_s7[0xd]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "unaff_s7[0xd]" identifier [ number_literal ])) & number_literal) )) == number_literal) )) (compound_statement "{\n                    pppppppcVar29 = param_4;\n                    bVar1 = false;\n                  }" { (expression_statement "pppppppcVar29 = param_4;" (assignment_expression "pppppppcVar29 = param_4" identifier = identifier) ;) (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" identifier = false) ;) }) (else_clause "else {\n                    pppppppcVar29 = param_4;\n                    local_d8 = (code *******)FUN_00052d84(&local_b4);\n                    unaff_s8 = local_d8;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055dbc;\n                    bVar1 = false;\n                  }" else (compound_statement "{\n                    pppppppcVar29 = param_4;\n                    local_d8 = (code *******)FUN_00052d84(&local_b4);\n                    unaff_s8 = local_d8;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055dbc;\n                    bVar1 = false;\n                  }" { (expression_statement "pppppppcVar29 = param_4;" (assignment_expression "pppppppcVar29 = param_4" identifier = identifier) ;) (expression_statement "local_d8 = (code *******)FUN_00052d84(&local_b4);" (assignment_expression "local_d8 = (code *******)FUN_00052d84(&local_b4)" identifier = (cast_expression "(code *******)FUN_00052d84(&local_b4)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "FUN_00052d84(&local_b4)" identifier (argument_list "(&local_b4)" ( (pointer_expression "&local_b4" & identifier) ))))) ;) (expression_statement "unaff_s8 = local_d8;" (assignment_expression "unaff_s8 = local_d8" identifier = identifier) ;) (if_statement "if (local_d8 != (code *******)0x0) goto LAB_00055dbc;" if (parenthesized_expression "(local_d8 != (code *******)0x0)" ( (binary_expression "local_d8 != (code *******)0x0" identifier != (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (goto_statement "goto LAB_00055dbc;" goto statement_identifier ;)) (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" identifier = false) ;) }))) (goto_statement "goto LAB_00054d50;" goto statement_identifier ;) })) }))) (labeled_statement "LAB_00055dbc:\n              if (unaff_s8 == (code *******)0xffffffff) {\nLAB_00055b04:\n                FUN_0004b7e8(&local_b4);\nLAB_00055b1c:\n                local_dc = (code *******)((int)pppppppcVar24 + (int)local_dc);\n                if ((int)pppppppcVar25 <= (int)local_dc) goto code_r0x00055b38;\n                local_150 = (code *******)0x1;\n                goto LAB_000557e4;\n              }" statement_identifier : (if_statement "if (unaff_s8 == (code *******)0xffffffff) {\nLAB_00055b04:\n                FUN_0004b7e8(&local_b4);\nLAB_00055b1c:\n                local_dc = (code *******)((int)pppppppcVar24 + (int)local_dc);\n                if ((int)pppppppcVar25 <= (int)local_dc) goto code_r0x00055b38;\n                local_150 = (code *******)0x1;\n                goto LAB_000557e4;\n              }" if (parenthesized_expression "(unaff_s8 == (code *******)0xffffffff)" ( (binary_expression "unaff_s8 == (code *******)0xffffffff" identifier == (cast_expression "(code *******)0xffffffff" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\nLAB_00055b04:\n                FUN_0004b7e8(&local_b4);\nLAB_00055b1c:\n                local_dc = (code *******)((int)pppppppcVar24 + (int)local_dc);\n                if ((int)pppppppcVar25 <= (int)local_dc) goto code_r0x00055b38;\n                local_150 = (code *******)0x1;\n                goto LAB_000557e4;\n              }" { (labeled_statement "LAB_00055b04:\n                FUN_0004b7e8(&local_b4);" statement_identifier : (expression_statement "FUN_0004b7e8(&local_b4);" (call_expression "FUN_0004b7e8(&local_b4)" identifier (argument_list "(&local_b4)" ( (pointer_expression "&local_b4" & identifier) ))) ;)) (labeled_statement "LAB_00055b1c:\n                local_dc = (code *******)((int)pppppppcVar24 + (int)local_dc);" statement_identifier : (expression_statement "local_dc = (code *******)((int)pppppppcVar24 + (int)local_dc);" (assignment_expression "local_dc = (code *******)((int)pppppppcVar24 + (int)local_dc)" identifier = (cast_expression "(code *******)((int)pppppppcVar24 + (int)local_dc)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)pppppppcVar24 + (int)local_dc)" ( (binary_expression "(int)pppppppcVar24 + (int)local_dc" (cast_expression "(int)pppppppcVar24" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)local_dc" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;)) (if_statement "if ((int)pppppppcVar25 <= (int)local_dc) goto code_r0x00055b38;" if (parenthesized_expression "((int)pppppppcVar25 <= (int)local_dc)" ( (binary_expression "(int)pppppppcVar25 <= (int)local_dc" (cast_expression "(int)pppppppcVar25" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)local_dc" ( (type_descriptor "int" primitive_type) ) identifier)) )) (goto_statement "goto code_r0x00055b38;" goto statement_identifier ;)) (expression_statement "local_150 = (code *******)0x1;" (assignment_expression "local_150 = (code *******)0x1" identifier = (cast_expression "(code *******)0x1" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (goto_statement "goto LAB_000557e4;" goto statement_identifier ;) }))) (if_statement "if (unaff_s8 == (code *******)&SUB_fffffffe) {\n                local_150 = (code *******)0xc;\n                goto LAB_000557e4;\n              }" if (parenthesized_expression "(unaff_s8 == (code *******)&SUB_fffffffe)" ( (binary_expression "unaff_s8 == (code *******)&SUB_fffffffe" identifier == (cast_expression "(code *******)&SUB_fffffffe" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "&SUB_fffffffe" & identifier))) )) (compound_statement "{\n                local_150 = (code *******)0xc;\n                goto LAB_000557e4;\n              }" { (expression_statement "local_150 = (code *******)0xc;" (assignment_expression "local_150 = (code *******)0xc" identifier = (cast_expression "(code *******)0xc" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (goto_statement "goto LAB_000557e4;" goto statement_identifier ;) })) (expression_statement "local_58 = unaff_s8;" (assignment_expression "local_58 = unaff_s8" identifier = identifier) ;) (if_statement "if (((uint)param_1[7] & 0x8000000) == 0) {\n                if (pppppppcVar3 < (code *******)0x2) {\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055c08;\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                else {\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                if (pppppppcVar3 < (code *******)0x2) {\nLAB_00055c6c:\n                  pppppppcVar28 = pppppppcVar33;\n                  unaff_s4 = local_60;\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055548;\n                }\n                else {\n                  cVar23 = *(code *)(pppppppcVar38 + 0x16);\nLAB_00055c20:\n                  pppppppcVar28 = pppppppcVar33;\n                  if (-1 < (char)cVar23) goto LAB_00055c6c;\n                }\n                pppppppcVar31 = local_54;\n                pppppppcVar42 = local_60;\n                unaff_s4 = pppppppcVar42;\n                if (unaff_s8 < (code *******)0x3fffffff) {\n                  param_4 = (code *******)((int)((int)unaff_s8 + 1) * 4);\n                  unaff_s5 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                  if (unaff_s5 == (code *******)0x0) {\nLAB_00055b9c:\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    local_150 = (code *******)0xc;\n                    pppppppcVar33 = pppppppcVar28;\n                  }\n                  else {\n                    pppppppcVar29 = (code *******)&local_d0;\n                    if (pppppppcVar42[0x13] == (code ******)0x0) {\n                      local_cc = (code *******)0x0;\n                      local_c8 = pppppppcVar31;\n                      local_c0 = 0;\n                      local_bc = 0;\n                      local_b8 = 0;\n                      local_d0 = unaff_s5;\n                      local_c4 = unaff_s8;\n                      param_5 = (code *******)FUN_0005421c(&local_b4);\n                      (*(code *)PTR_free_00079c24)(local_b8);\n                      if (param_5 == (code *******)0x0) {\n                        param_4 = (code *******)*unaff_s5;\n                        if (param_4 == (code *******)0x0) {\nLAB_00055b70:\n                          (*(code *)PTR_free_00079c24)(unaff_s5);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          pppppppcVar33 = pppppppcVar28;\n                          goto LAB_00055b04;\n                        }\nLAB_00055528:\n                        (*(code *)PTR_free_00079c24)(local_50);\n                        pppppppcVar33 = pppppppcVar28;\n                        unaff_s4 = pppppppcVar42;\n                        local_58 = unaff_s8;\n                        local_54 = pppppppcVar31;\n                        local_50 = unaff_s5;\n                        goto LAB_00055548;\n                      }\nLAB_00055acc:\n                      param_4 = (code *******)0x0;\n                      pppppppcVar33 = pppppppcVar28;\n                      unaff_s4 = pppppppcVar42;\n                    }\n                    else {\n                      param_4 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                      if (param_4 == (code *******)0x0) goto LAB_00055b9c;\n                      unaff_s7 = (code *******)&local_d0;\n                      pcVar8 = (code *)(PTR_DAT_000799a4 + 0x421c);\n                      pcVar9 = (code *)(PTR_DAT_000799a4 + -0x6bc0);\n                      pppppppcVar33 = pppppppcVar28;\n                      while( true ) {\n                        pppppppcVar28 = (code *******)((int)unaff_s8 + 1);\n                        param_6 = (code *******)((int)pppppppcVar28 * 4);\n                        pppppppcVar30 = param_6;\n                        (*(code *)PTR_memset_00079b00)(param_4,0);\n                        local_c0 = 0;\n                        local_bc = 0;\n                        local_b8 = 0;\n                        pppppppcVar29 = unaff_s7;\n                        local_d0 = unaff_s5;\n                        local_cc = param_4;\n                        local_c8 = pppppppcVar31;\n                        local_c4 = unaff_s8;\n                        param_5 = (code *******)(*pcVar8)(&local_b4);\n                        (*(code *)PTR_free_00079c24)(local_b8);\n                        unaff_s4 = pppppppcVar28;\n                        if (param_5 != (code *******)0x0) break;\n                        if ((*unaff_s5 != (code ******)0x0) ||\n                           (param_6 = param_6 + -1, *param_4 != (code ******)0x0)) {\n                          pppppppcVar29 = unaff_s5;\n                          pppppppcVar30 = param_4;\n                          param_5 = (code *******)FUN_000520d0(pppppppcVar42);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          if (param_5 != (code *******)0x0) goto LAB_00055acc;\n                          goto LAB_00055528;\n                        }\n                        param_6 = (code *******)((int)local_50 + (int)param_6);\n                        do {\n                          while( true ) {\n                            unaff_s8 = (code *******)((int)unaff_s8 + -1);\n                            if ((int)unaff_s8 < 0) goto LAB_00055b70;\n                            pppppppcVar29 = (code *******)param_6[-1];\n                            if (pppppppcVar29 != (code *******)0x0) break;\n                            param_6 = param_6 + -1;\n                          }\n                          param_6 = param_6 + -1;\n                        } while (((uint)pppppppcVar29[0xd] & 0x8000000) == 0);\n                        pppppppcVar31 = (code *******)(*pcVar9)(&local_b4,pppppppcVar29,unaff_s8);\n                        pppppppcVar33 = pppppppcVar28;\n                      }\n                    }\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    (*(code *)PTR_free_00079c24)(param_4);\n                    local_150 = param_5;\n                    if (param_5 == (code *******)0x1) goto LAB_00055b04;\n                  }\n                }\n                else {\n                  local_150 = (code *******)0xc;\n                  pppppppcVar33 = pppppppcVar28;\n                }\n                goto LAB_000557e4;\n              }" if (parenthesized_expression "(((uint)param_1[7] & 0x8000000) == 0)" ( (binary_expression "((uint)param_1[7] & 0x8000000) == 0" (parenthesized_expression "((uint)param_1[7] & 0x8000000)" ( (binary_expression "(uint)param_1[7] & 0x8000000" (cast_expression "(uint)param_1[7]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_1[7]" identifier [ number_literal ])) & number_literal) )) == number_literal) )) (compound_statement "{\n                if (pppppppcVar3 < (code *******)0x2) {\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055c08;\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                else {\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                if (pppppppcVar3 < (code *******)0x2) {\nLAB_00055c6c:\n                  pppppppcVar28 = pppppppcVar33;\n                  unaff_s4 = local_60;\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055548;\n                }\n                else {\n                  cVar23 = *(code *)(pppppppcVar38 + 0x16);\nLAB_00055c20:\n                  pppppppcVar28 = pppppppcVar33;\n                  if (-1 < (char)cVar23) goto LAB_00055c6c;\n                }\n                pppppppcVar31 = local_54;\n                pppppppcVar42 = local_60;\n                unaff_s4 = pppppppcVar42;\n                if (unaff_s8 < (code *******)0x3fffffff) {\n                  param_4 = (code *******)((int)((int)unaff_s8 + 1) * 4);\n                  unaff_s5 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                  if (unaff_s5 == (code *******)0x0) {\nLAB_00055b9c:\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    local_150 = (code *******)0xc;\n                    pppppppcVar33 = pppppppcVar28;\n                  }\n                  else {\n                    pppppppcVar29 = (code *******)&local_d0;\n                    if (pppppppcVar42[0x13] == (code ******)0x0) {\n                      local_cc = (code *******)0x0;\n                      local_c8 = pppppppcVar31;\n                      local_c0 = 0;\n                      local_bc = 0;\n                      local_b8 = 0;\n                      local_d0 = unaff_s5;\n                      local_c4 = unaff_s8;\n                      param_5 = (code *******)FUN_0005421c(&local_b4);\n                      (*(code *)PTR_free_00079c24)(local_b8);\n                      if (param_5 == (code *******)0x0) {\n                        param_4 = (code *******)*unaff_s5;\n                        if (param_4 == (code *******)0x0) {\nLAB_00055b70:\n                          (*(code *)PTR_free_00079c24)(unaff_s5);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          pppppppcVar33 = pppppppcVar28;\n                          goto LAB_00055b04;\n                        }\nLAB_00055528:\n                        (*(code *)PTR_free_00079c24)(local_50);\n                        pppppppcVar33 = pppppppcVar28;\n                        unaff_s4 = pppppppcVar42;\n                        local_58 = unaff_s8;\n                        local_54 = pppppppcVar31;\n                        local_50 = unaff_s5;\n                        goto LAB_00055548;\n                      }\nLAB_00055acc:\n                      param_4 = (code *******)0x0;\n                      pppppppcVar33 = pppppppcVar28;\n                      unaff_s4 = pppppppcVar42;\n                    }\n                    else {\n                      param_4 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                      if (param_4 == (code *******)0x0) goto LAB_00055b9c;\n                      unaff_s7 = (code *******)&local_d0;\n                      pcVar8 = (code *)(PTR_DAT_000799a4 + 0x421c);\n                      pcVar9 = (code *)(PTR_DAT_000799a4 + -0x6bc0);\n                      pppppppcVar33 = pppppppcVar28;\n                      while( true ) {\n                        pppppppcVar28 = (code *******)((int)unaff_s8 + 1);\n                        param_6 = (code *******)((int)pppppppcVar28 * 4);\n                        pppppppcVar30 = param_6;\n                        (*(code *)PTR_memset_00079b00)(param_4,0);\n                        local_c0 = 0;\n                        local_bc = 0;\n                        local_b8 = 0;\n                        pppppppcVar29 = unaff_s7;\n                        local_d0 = unaff_s5;\n                        local_cc = param_4;\n                        local_c8 = pppppppcVar31;\n                        local_c4 = unaff_s8;\n                        param_5 = (code *******)(*pcVar8)(&local_b4);\n                        (*(code *)PTR_free_00079c24)(local_b8);\n                        unaff_s4 = pppppppcVar28;\n                        if (param_5 != (code *******)0x0) break;\n                        if ((*unaff_s5 != (code ******)0x0) ||\n                           (param_6 = param_6 + -1, *param_4 != (code ******)0x0)) {\n                          pppppppcVar29 = unaff_s5;\n                          pppppppcVar30 = param_4;\n                          param_5 = (code *******)FUN_000520d0(pppppppcVar42);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          if (param_5 != (code *******)0x0) goto LAB_00055acc;\n                          goto LAB_00055528;\n                        }\n                        param_6 = (code *******)((int)local_50 + (int)param_6);\n                        do {\n                          while( true ) {\n                            unaff_s8 = (code *******)((int)unaff_s8 + -1);\n                            if ((int)unaff_s8 < 0) goto LAB_00055b70;\n                            pppppppcVar29 = (code *******)param_6[-1];\n                            if (pppppppcVar29 != (code *******)0x0) break;\n                            param_6 = param_6 + -1;\n                          }\n                          param_6 = param_6 + -1;\n                        } while (((uint)pppppppcVar29[0xd] & 0x8000000) == 0);\n                        pppppppcVar31 = (code *******)(*pcVar9)(&local_b4,pppppppcVar29,unaff_s8);\n                        pppppppcVar33 = pppppppcVar28;\n                      }\n                    }\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    (*(code *)PTR_free_00079c24)(param_4);\n                    local_150 = param_5;\n                    if (param_5 == (code *******)0x1) goto LAB_00055b04;\n                  }\n                }\n                else {\n                  local_150 = (code *******)0xc;\n                  pppppppcVar33 = pppppppcVar28;\n                }\n                goto LAB_000557e4;\n              }" { (if_statement "if (pppppppcVar3 < (code *******)0x2) {\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055c08;\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                else {\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }" if (parenthesized_expression "(pppppppcVar3 < (code *******)0x2)" ( (binary_expression "pppppppcVar3 < (code *******)0x2" identifier < (cast_expression "(code *******)0x2" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055c08;\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }" { (if_statement "if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055c08;" if (parenthesized_expression "(pppppppcVar38[0x13] == (code ******)0x0)" ( (binary_expression "pppppppcVar38[0x13] == (code ******)0x0" (subscript_expression "pppppppcVar38[0x13]" identifier [ number_literal ]) == (cast_expression "(code ******)0x0" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (goto_statement "goto LAB_00055c08;" goto statement_identifier ;)) (expression_statement "pppppppcVar29 = (code *******)local_50[(int)unaff_s8];" (assignment_expression "pppppppcVar29 = (code *******)local_50[(int)unaff_s8]" identifier = (cast_expression "(code *******)local_50[(int)unaff_s8]" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (subscript_expression "local_50[(int)unaff_s8]" identifier [ (cast_expression "(int)unaff_s8" ( (type_descriptor "int" primitive_type) ) identifier) ]))) ;) (expression_statement "pppppppcVar30 = unaff_s8;" (assignment_expression "pppppppcVar30 = unaff_s8" identifier = identifier) ;) (expression_statement "local_54 = (code *******)FUN_00049440(&local_b4);" (assignment_expression "local_54 = (code *******)FUN_00049440(&local_b4)" identifier = (cast_expression "(code *******)FUN_00049440(&local_b4)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "FUN_00049440(&local_b4)" identifier (argument_list "(&local_b4)" ( (pointer_expression "&local_b4" & identifier) ))))) ;) }) (else_clause "else {\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }" else (compound_statement "{\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }" { (expression_statement "pppppppcVar29 = (code *******)local_50[(int)unaff_s8];" (assignment_expression "pppppppcVar29 = (code *******)local_50[(int)unaff_s8]" identifier = (cast_expression "(code *******)local_50[(int)unaff_s8]" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (subscript_expression "local_50[(int)unaff_s8]" identifier [ (cast_expression "(int)unaff_s8" ( (type_descriptor "int" primitive_type) ) identifier) ]))) ;) (expression_statement "pppppppcVar30 = unaff_s8;" (assignment_expression "pppppppcVar30 = unaff_s8" identifier = identifier) ;) (expression_statement "local_54 = (code *******)FUN_00049440(&local_b4);" (assignment_expression "local_54 = (code *******)FUN_00049440(&local_b4)" identifier = (cast_expression "(code *******)FUN_00049440(&local_b4)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "FUN_00049440(&local_b4)" identifier (argument_list "(&local_b4)" ( (pointer_expression "&local_b4" & identifier) ))))) ;) }))) (if_statement "if (pppppppcVar3 < (code *******)0x2) {\nLAB_00055c6c:\n                  pppppppcVar28 = pppppppcVar33;\n                  unaff_s4 = local_60;\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055548;\n                }\n                else {\n                  cVar23 = *(code *)(pppppppcVar38 + 0x16);\nLAB_00055c20:\n                  pppppppcVar28 = pppppppcVar33;\n                  if (-1 < (char)cVar23) goto LAB_00055c6c;\n                }" if (parenthesized_expression "(pppppppcVar3 < (code *******)0x2)" ( (binary_expression "pppppppcVar3 < (code *******)0x2" identifier < (cast_expression "(code *******)0x2" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\nLAB_00055c6c:\n                  pppppppcVar28 = pppppppcVar33;\n                  unaff_s4 = local_60;\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055548;\n                }" { (labeled_statement "LAB_00055c6c:\n                  pppppppcVar28 = pppppppcVar33;" statement_identifier : (expression_statement "pppppppcVar28 = pppppppcVar33;" (assignment_expression "pppppppcVar28 = pppppppcVar33" identifier = identifier) ;)) (expression_statement "unaff_s4 = local_60;" (assignment_expression "unaff_s4 = local_60" identifier = identifier) ;) (if_statement "if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055548;" if (parenthesized_expression "(pppppppcVar38[0x13] == (code ******)0x0)" ( (binary_expression "pppppppcVar38[0x13] == (code ******)0x0" (subscript_expression "pppppppcVar38[0x13]" identifier [ number_literal ]) == (cast_expression "(code ******)0x0" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (goto_statement "goto LAB_00055548;" goto statement_identifier ;)) }) (else_clause "else {\n                  cVar23 = *(code *)(pppppppcVar38 + 0x16);\nLAB_00055c20:\n                  pppppppcVar28 = pppppppcVar33;\n                  if (-1 < (char)cVar23) goto LAB_00055c6c;\n                }" else (compound_statement "{\n                  cVar23 = *(code *)(pppppppcVar38 + 0x16);\nLAB_00055c20:\n                  pppppppcVar28 = pppppppcVar33;\n                  if (-1 < (char)cVar23) goto LAB_00055c6c;\n                }" { (expression_statement "cVar23 = *(code *)(pppppppcVar38 + 0x16);" (assignment_expression "cVar23 = *(code *)(pppppppcVar38 + 0x16)" identifier = (pointer_expression "*(code *)(pppppppcVar38 + 0x16)" * (cast_expression "(code *)(pppppppcVar38 + 0x16)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pppppppcVar38 + 0x16)" ( (binary_expression "pppppppcVar38 + 0x16" identifier + number_literal) ))))) ;) (labeled_statement "LAB_00055c20:\n                  pppppppcVar28 = pppppppcVar33;" statement_identifier : (expression_statement "pppppppcVar28 = pppppppcVar33;" (assignment_expression "pppppppcVar28 = pppppppcVar33" identifier = identifier) ;)) (if_statement "if (-1 < (char)cVar23) goto LAB_00055c6c;" if (parenthesized_expression "(-1 < (char)cVar23)" ( (binary_expression "-1 < (char)cVar23" number_literal < (cast_expression "(char)cVar23" ( (type_descriptor "char" primitive_type) ) identifier)) )) (goto_statement "goto LAB_00055c6c;" goto statement_identifier ;)) }))) (expression_statement "pppppppcVar31 = local_54;" (assignment_expression "pppppppcVar31 = local_54" identifier = identifier) ;) (expression_statement "pppppppcVar42 = local_60;" (assignment_expression "pppppppcVar42 = local_60" identifier = identifier) ;) (expression_statement "unaff_s4 = pppppppcVar42;" (assignment_expression "unaff_s4 = pppppppcVar42" identifier = identifier) ;) (if_statement "if (unaff_s8 < (code *******)0x3fffffff) {\n                  param_4 = (code *******)((int)((int)unaff_s8 + 1) * 4);\n                  unaff_s5 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                  if (unaff_s5 == (code *******)0x0) {\nLAB_00055b9c:\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    local_150 = (code *******)0xc;\n                    pppppppcVar33 = pppppppcVar28;\n                  }\n                  else {\n                    pppppppcVar29 = (code *******)&local_d0;\n                    if (pppppppcVar42[0x13] == (code ******)0x0) {\n                      local_cc = (code *******)0x0;\n                      local_c8 = pppppppcVar31;\n                      local_c0 = 0;\n                      local_bc = 0;\n                      local_b8 = 0;\n                      local_d0 = unaff_s5;\n                      local_c4 = unaff_s8;\n                      param_5 = (code *******)FUN_0005421c(&local_b4);\n                      (*(code *)PTR_free_00079c24)(local_b8);\n                      if (param_5 == (code *******)0x0) {\n                        param_4 = (code *******)*unaff_s5;\n                        if (param_4 == (code *******)0x0) {\nLAB_00055b70:\n                          (*(code *)PTR_free_00079c24)(unaff_s5);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          pppppppcVar33 = pppppppcVar28;\n                          goto LAB_00055b04;\n                        }\nLAB_00055528:\n                        (*(code *)PTR_free_00079c24)(local_50);\n                        pppppppcVar33 = pppppppcVar28;\n                        unaff_s4 = pppppppcVar42;\n                        local_58 = unaff_s8;\n                        local_54 = pppppppcVar31;\n                        local_50 = unaff_s5;\n                        goto LAB_00055548;\n                      }\nLAB_00055acc:\n                      param_4 = (code *******)0x0;\n                      pppppppcVar33 = pppppppcVar28;\n                      unaff_s4 = pppppppcVar42;\n                    }\n                    else {\n                      param_4 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                      if (param_4 == (code *******)0x0) goto LAB_00055b9c;\n                      unaff_s7 = (code *******)&local_d0;\n                      pcVar8 = (code *)(PTR_DAT_000799a4 + 0x421c);\n                      pcVar9 = (code *)(PTR_DAT_000799a4 + -0x6bc0);\n                      pppppppcVar33 = pppppppcVar28;\n                      while( true ) {\n                        pppppppcVar28 = (code *******)((int)unaff_s8 + 1);\n                        param_6 = (code *******)((int)pppppppcVar28 * 4);\n                        pppppppcVar30 = param_6;\n                        (*(code *)PTR_memset_00079b00)(param_4,0);\n                        local_c0 = 0;\n                        local_bc = 0;\n                        local_b8 = 0;\n                        pppppppcVar29 = unaff_s7;\n                        local_d0 = unaff_s5;\n                        local_cc = param_4;\n                        local_c8 = pppppppcVar31;\n                        local_c4 = unaff_s8;\n                        param_5 = (code *******)(*pcVar8)(&local_b4);\n                        (*(code *)PTR_free_00079c24)(local_b8);\n                        unaff_s4 = pppppppcVar28;\n                        if (param_5 != (code *******)0x0) break;\n                        if ((*unaff_s5 != (code ******)0x0) ||\n                           (param_6 = param_6 + -1, *param_4 != (code ******)0x0)) {\n                          pppppppcVar29 = unaff_s5;\n                          pppppppcVar30 = param_4;\n                          param_5 = (code *******)FUN_000520d0(pppppppcVar42);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          if (param_5 != (code *******)0x0) goto LAB_00055acc;\n                          goto LAB_00055528;\n                        }\n                        param_6 = (code *******)((int)local_50 + (int)param_6);\n                        do {\n                          while( true ) {\n                            unaff_s8 = (code *******)((int)unaff_s8 + -1);\n                            if ((int)unaff_s8 < 0) goto LAB_00055b70;\n                            pppppppcVar29 = (code *******)param_6[-1];\n                            if (pppppppcVar29 != (code *******)0x0) break;\n                            param_6 = param_6 + -1;\n                          }\n                          param_6 = param_6 + -1;\n                        } while (((uint)pppppppcVar29[0xd] & 0x8000000) == 0);\n                        pppppppcVar31 = (code *******)(*pcVar9)(&local_b4,pppppppcVar29,unaff_s8);\n                        pppppppcVar33 = pppppppcVar28;\n                      }\n                    }\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    (*(code *)PTR_free_00079c24)(param_4);\n                    local_150 = param_5;\n                    if (param_5 == (code *******)0x1) goto LAB_00055b04;\n                  }\n                }\n                else {\n                  local_150 = (code *******)0xc;\n                  pppppppcVar33 = pppppppcVar28;\n                }" if (parenthesized_expression "(unaff_s8 < (code *******)0x3fffffff)" ( (binary_expression "unaff_s8 < (code *******)0x3fffffff" identifier < (cast_expression "(code *******)0x3fffffff" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\n                  param_4 = (code *******)((int)((int)unaff_s8 + 1) * 4);\n                  unaff_s5 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                  if (unaff_s5 == (code *******)0x0) {\nLAB_00055b9c:\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    local_150 = (code *******)0xc;\n                    pppppppcVar33 = pppppppcVar28;\n                  }\n                  else {\n                    pppppppcVar29 = (code *******)&local_d0;\n                    if (pppppppcVar42[0x13] == (code ******)0x0) {\n                      local_cc = (code *******)0x0;\n                      local_c8 = pppppppcVar31;\n                      local_c0 = 0;\n                      local_bc = 0;\n                      local_b8 = 0;\n                      local_d0 = unaff_s5;\n                      local_c4 = unaff_s8;\n                      param_5 = (code *******)FUN_0005421c(&local_b4);\n                      (*(code *)PTR_free_00079c24)(local_b8);\n                      if (param_5 == (code *******)0x0) {\n                        param_4 = (code *******)*unaff_s5;\n                        if (param_4 == (code *******)0x0) {\nLAB_00055b70:\n                          (*(code *)PTR_free_00079c24)(unaff_s5);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          pppppppcVar33 = pppppppcVar28;\n                          goto LAB_00055b04;\n                        }\nLAB_00055528:\n                        (*(code *)PTR_free_00079c24)(local_50);\n                        pppppppcVar33 = pppppppcVar28;\n                        unaff_s4 = pppppppcVar42;\n                        local_58 = unaff_s8;\n                        local_54 = pppppppcVar31;\n                        local_50 = unaff_s5;\n                        goto LAB_00055548;\n                      }\nLAB_00055acc:\n                      param_4 = (code *******)0x0;\n                      pppppppcVar33 = pppppppcVar28;\n                      unaff_s4 = pppppppcVar42;\n                    }\n                    else {\n                      param_4 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                      if (param_4 == (code *******)0x0) goto LAB_00055b9c;\n                      unaff_s7 = (code *******)&local_d0;\n                      pcVar8 = (code *)(PTR_DAT_000799a4 + 0x421c);\n                      pcVar9 = (code *)(PTR_DAT_000799a4 + -0x6bc0);\n                      pppppppcVar33 = pppppppcVar28;\n                      while( true ) {\n                        pppppppcVar28 = (code *******)((int)unaff_s8 + 1);\n                        param_6 = (code *******)((int)pppppppcVar28 * 4);\n                        pppppppcVar30 = param_6;\n                        (*(code *)PTR_memset_00079b00)(param_4,0);\n                        local_c0 = 0;\n                        local_bc = 0;\n                        local_b8 = 0;\n                        pppppppcVar29 = unaff_s7;\n                        local_d0 = unaff_s5;\n                        local_cc = param_4;\n                        local_c8 = pppppppcVar31;\n                        local_c4 = unaff_s8;\n                        param_5 = (code *******)(*pcVar8)(&local_b4);\n                        (*(code *)PTR_free_00079c24)(local_b8);\n                        unaff_s4 = pppppppcVar28;\n                        if (param_5 != (code *******)0x0) break;\n                        if ((*unaff_s5 != (code ******)0x0) ||\n                           (param_6 = param_6 + -1, *param_4 != (code ******)0x0)) {\n                          pppppppcVar29 = unaff_s5;\n                          pppppppcVar30 = param_4;\n                          param_5 = (code *******)FUN_000520d0(pppppppcVar42);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          if (param_5 != (code *******)0x0) goto LAB_00055acc;\n                          goto LAB_00055528;\n                        }\n                        param_6 = (code *******)((int)local_50 + (int)param_6);\n                        do {\n                          while( true ) {\n                            unaff_s8 = (code *******)((int)unaff_s8 + -1);\n                            if ((int)unaff_s8 < 0) goto LAB_00055b70;\n                            pppppppcVar29 = (code *******)param_6[-1];\n                            if (pppppppcVar29 != (code *******)0x0) break;\n                            param_6 = param_6 + -1;\n                          }\n                          param_6 = param_6 + -1;\n                        } while (((uint)pppppppcVar29[0xd] & 0x8000000) == 0);\n                        pppppppcVar31 = (code *******)(*pcVar9)(&local_b4,pppppppcVar29,unaff_s8);\n                        pppppppcVar33 = pppppppcVar28;\n                      }\n                    }\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    (*(code *)PTR_free_00079c24)(param_4);\n                    local_150 = param_5;\n                    if (param_5 == (code *******)0x1) goto LAB_00055b04;\n                  }\n                }" { (expression_statement "param_4 = (code *******)((int)((int)unaff_s8 + 1) * 4);" (assignment_expression "param_4 = (code *******)((int)((int)unaff_s8 + 1) * 4)" identifier = (cast_expression "(code *******)((int)((int)unaff_s8 + 1) * 4)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)((int)unaff_s8 + 1) * 4)" ( (binary_expression "(int)((int)unaff_s8 + 1) * 4" (cast_expression "(int)((int)unaff_s8 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)unaff_s8 + 1)" ( (binary_expression "(int)unaff_s8 + 1" (cast_expression "(int)unaff_s8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) * number_literal) )))) ;) (expression_statement "unaff_s5 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);" (assignment_expression "unaff_s5 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4)" identifier = (cast_expression "(code *******)(*(code *)PTR_malloc_00079b54)(param_4)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "(*(code *)PTR_malloc_00079b54)(param_4)" (parenthesized_expression "(*(code *)PTR_malloc_00079b54)" ( (pointer_expression "*(code *)PTR_malloc_00079b54" * (cast_expression "(code *)PTR_malloc_00079b54" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_4)" ( identifier ))))) ;) (if_statement "if (unaff_s5 == (code *******)0x0) {\nLAB_00055b9c:\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    local_150 = (code *******)0xc;\n                    pppppppcVar33 = pppppppcVar28;\n                  }\n                  else {\n                    pppppppcVar29 = (code *******)&local_d0;\n                    if (pppppppcVar42[0x13] == (code ******)0x0) {\n                      local_cc = (code *******)0x0;\n                      local_c8 = pppppppcVar31;\n                      local_c0 = 0;\n                      local_bc = 0;\n                      local_b8 = 0;\n                      local_d0 = unaff_s5;\n                      local_c4 = unaff_s8;\n                      param_5 = (code *******)FUN_0005421c(&local_b4);\n                      (*(code *)PTR_free_00079c24)(local_b8);\n                      if (param_5 == (code *******)0x0) {\n                        param_4 = (code *******)*unaff_s5;\n                        if (param_4 == (code *******)0x0) {\nLAB_00055b70:\n                          (*(code *)PTR_free_00079c24)(unaff_s5);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          pppppppcVar33 = pppppppcVar28;\n                          goto LAB_00055b04;\n                        }\nLAB_00055528:\n                        (*(code *)PTR_free_00079c24)(local_50);\n                        pppppppcVar33 = pppppppcVar28;\n                        unaff_s4 = pppppppcVar42;\n                        local_58 = unaff_s8;\n                        local_54 = pppppppcVar31;\n                        local_50 = unaff_s5;\n                        goto LAB_00055548;\n                      }\nLAB_00055acc:\n                      param_4 = (code *******)0x0;\n                      pppppppcVar33 = pppppppcVar28;\n                      unaff_s4 = pppppppcVar42;\n                    }\n                    else {\n                      param_4 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                      if (param_4 == (code *******)0x0) goto LAB_00055b9c;\n                      unaff_s7 = (code *******)&local_d0;\n                      pcVar8 = (code *)(PTR_DAT_000799a4 + 0x421c);\n                      pcVar9 = (code *)(PTR_DAT_000799a4 + -0x6bc0);\n                      pppppppcVar33 = pppppppcVar28;\n                      while( true ) {\n                        pppppppcVar28 = (code *******)((int)unaff_s8 + 1);\n                        param_6 = (code *******)((int)pppppppcVar28 * 4);\n                        pppppppcVar30 = param_6;\n                        (*(code *)PTR_memset_00079b00)(param_4,0);\n                        local_c0 = 0;\n                        local_bc = 0;\n                        local_b8 = 0;\n                        pppppppcVar29 = unaff_s7;\n                        local_d0 = unaff_s5;\n                        local_cc = param_4;\n                        local_c8 = pppppppcVar31;\n                        local_c4 = unaff_s8;\n                        param_5 = (code *******)(*pcVar8)(&local_b4);\n                        (*(code *)PTR_free_00079c24)(local_b8);\n                        unaff_s4 = pppppppcVar28;\n                        if (param_5 != (code *******)0x0) break;\n                        if ((*unaff_s5 != (code ******)0x0) ||\n                           (param_6 = param_6 + -1, *param_4 != (code ******)0x0)) {\n                          pppppppcVar29 = unaff_s5;\n                          pppppppcVar30 = param_4;\n                          param_5 = (code *******)FUN_000520d0(pppppppcVar42);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          if (param_5 != (code *******)0x0) goto LAB_00055acc;\n                          goto LAB_00055528;\n                        }\n                        param_6 = (code *******)((int)local_50 + (int)param_6);\n                        do {\n                          while( true ) {\n                            unaff_s8 = (code *******)((int)unaff_s8 + -1);\n                            if ((int)unaff_s8 < 0) goto LAB_00055b70;\n                            pppppppcVar29 = (code *******)param_6[-1];\n                            if (pppppppcVar29 != (code *******)0x0) break;\n                            param_6 = param_6 + -1;\n                          }\n                          param_6 = param_6 + -1;\n                        } while (((uint)pppppppcVar29[0xd] & 0x8000000) == 0);\n                        pppppppcVar31 = (code *******)(*pcVar9)(&local_b4,pppppppcVar29,unaff_s8);\n                        pppppppcVar33 = pppppppcVar28;\n                      }\n                    }\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    (*(code *)PTR_free_00079c24)(param_4);\n                    local_150 = param_5;\n                    if (param_5 == (code *******)0x1) goto LAB_00055b04;\n                  }" if (parenthesized_expression "(unaff_s5 == (code *******)0x0)" ( (binary_expression "unaff_s5 == (code *******)0x0" identifier == (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\nLAB_00055b9c:\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    local_150 = (code *******)0xc;\n                    pppppppcVar33 = pppppppcVar28;\n                  }" { (labeled_statement "LAB_00055b9c:\n                    (*(code *)PTR_free_00079c24)(unaff_s5);" statement_identifier : (expression_statement "(*(code *)PTR_free_00079c24)(unaff_s5);" (call_expression "(*(code *)PTR_free_00079c24)(unaff_s5)" (parenthesized_expression "(*(code *)PTR_free_00079c24)" ( (pointer_expression "*(code *)PTR_free_00079c24" * (cast_expression "(code *)PTR_free_00079c24" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s5)" ( identifier ))) ;)) (expression_statement "local_150 = (code *******)0xc;" (assignment_expression "local_150 = (code *******)0xc" identifier = (cast_expression "(code *******)0xc" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "pppppppcVar33 = pppppppcVar28;" (assignment_expression "pppppppcVar33 = pppppppcVar28" identifier = identifier) ;) }) (else_clause "else {\n                    pppppppcVar29 = (code *******)&local_d0;\n                    if (pppppppcVar42[0x13] == (code ******)0x0) {\n                      local_cc = (code *******)0x0;\n                      local_c8 = pppppppcVar31;\n                      local_c0 = 0;\n                      local_bc = 0;\n                      local_b8 = 0;\n                      local_d0 = unaff_s5;\n                      local_c4 = unaff_s8;\n                      param_5 = (code *******)FUN_0005421c(&local_b4);\n                      (*(code *)PTR_free_00079c24)(local_b8);\n                      if (param_5 == (code *******)0x0) {\n                        param_4 = (code *******)*unaff_s5;\n                        if (param_4 == (code *******)0x0) {\nLAB_00055b70:\n                          (*(code *)PTR_free_00079c24)(unaff_s5);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          pppppppcVar33 = pppppppcVar28;\n                          goto LAB_00055b04;\n                        }\nLAB_00055528:\n                        (*(code *)PTR_free_00079c24)(local_50);\n                        pppppppcVar33 = pppppppcVar28;\n                        unaff_s4 = pppppppcVar42;\n                        local_58 = unaff_s8;\n                        local_54 = pppppppcVar31;\n                        local_50 = unaff_s5;\n                        goto LAB_00055548;\n                      }\nLAB_00055acc:\n                      param_4 = (code *******)0x0;\n                      pppppppcVar33 = pppppppcVar28;\n                      unaff_s4 = pppppppcVar42;\n                    }\n                    else {\n                      param_4 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                      if (param_4 == (code *******)0x0) goto LAB_00055b9c;\n                      unaff_s7 = (code *******)&local_d0;\n                      pcVar8 = (code *)(PTR_DAT_000799a4 + 0x421c);\n                      pcVar9 = (code *)(PTR_DAT_000799a4 + -0x6bc0);\n                      pppppppcVar33 = pppppppcVar28;\n                      while( true ) {\n                        pppppppcVar28 = (code *******)((int)unaff_s8 + 1);\n                        param_6 = (code *******)((int)pppppppcVar28 * 4);\n                        pppppppcVar30 = param_6;\n                        (*(code *)PTR_memset_00079b00)(param_4,0);\n                        local_c0 = 0;\n                        local_bc = 0;\n                        local_b8 = 0;\n                        pppppppcVar29 = unaff_s7;\n                        local_d0 = unaff_s5;\n                        local_cc = param_4;\n                        local_c8 = pppppppcVar31;\n                        local_c4 = unaff_s8;\n                        param_5 = (code *******)(*pcVar8)(&local_b4);\n                        (*(code *)PTR_free_00079c24)(local_b8);\n                        unaff_s4 = pppppppcVar28;\n                        if (param_5 != (code *******)0x0) break;\n                        if ((*unaff_s5 != (code ******)0x0) ||\n                           (param_6 = param_6 + -1, *param_4 != (code ******)0x0)) {\n                          pppppppcVar29 = unaff_s5;\n                          pppppppcVar30 = param_4;\n                          param_5 = (code *******)FUN_000520d0(pppppppcVar42);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          if (param_5 != (code *******)0x0) goto LAB_00055acc;\n                          goto LAB_00055528;\n                        }\n                        param_6 = (code *******)((int)local_50 + (int)param_6);\n                        do {\n                          while( true ) {\n                            unaff_s8 = (code *******)((int)unaff_s8 + -1);\n                            if ((int)unaff_s8 < 0) goto LAB_00055b70;\n                            pppppppcVar29 = (code *******)param_6[-1];\n                            if (pppppppcVar29 != (code *******)0x0) break;\n                            param_6 = param_6 + -1;\n                          }\n                          param_6 = param_6 + -1;\n                        } while (((uint)pppppppcVar29[0xd] & 0x8000000) == 0);\n                        pppppppcVar31 = (code *******)(*pcVar9)(&local_b4,pppppppcVar29,unaff_s8);\n                        pppppppcVar33 = pppppppcVar28;\n                      }\n                    }\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    (*(code *)PTR_free_00079c24)(param_4);\n                    local_150 = param_5;\n                    if (param_5 == (code *******)0x1) goto LAB_00055b04;\n                  }" else (compound_statement "{\n                    pppppppcVar29 = (code *******)&local_d0;\n                    if (pppppppcVar42[0x13] == (code ******)0x0) {\n                      local_cc = (code *******)0x0;\n                      local_c8 = pppppppcVar31;\n                      local_c0 = 0;\n                      local_bc = 0;\n                      local_b8 = 0;\n                      local_d0 = unaff_s5;\n                      local_c4 = unaff_s8;\n                      param_5 = (code *******)FUN_0005421c(&local_b4);\n                      (*(code *)PTR_free_00079c24)(local_b8);\n                      if (param_5 == (code *******)0x0) {\n                        param_4 = (code *******)*unaff_s5;\n                        if (param_4 == (code *******)0x0) {\nLAB_00055b70:\n                          (*(code *)PTR_free_00079c24)(unaff_s5);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          pppppppcVar33 = pppppppcVar28;\n                          goto LAB_00055b04;\n                        }\nLAB_00055528:\n                        (*(code *)PTR_free_00079c24)(local_50);\n                        pppppppcVar33 = pppppppcVar28;\n                        unaff_s4 = pppppppcVar42;\n                        local_58 = unaff_s8;\n                        local_54 = pppppppcVar31;\n                        local_50 = unaff_s5;\n                        goto LAB_00055548;\n                      }\nLAB_00055acc:\n                      param_4 = (code *******)0x0;\n                      pppppppcVar33 = pppppppcVar28;\n                      unaff_s4 = pppppppcVar42;\n                    }\n                    else {\n                      param_4 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                      if (param_4 == (code *******)0x0) goto LAB_00055b9c;\n                      unaff_s7 = (code *******)&local_d0;\n                      pcVar8 = (code *)(PTR_DAT_000799a4 + 0x421c);\n                      pcVar9 = (code *)(PTR_DAT_000799a4 + -0x6bc0);\n                      pppppppcVar33 = pppppppcVar28;\n                      while( true ) {\n                        pppppppcVar28 = (code *******)((int)unaff_s8 + 1);\n                        param_6 = (code *******)((int)pppppppcVar28 * 4);\n                        pppppppcVar30 = param_6;\n                        (*(code *)PTR_memset_00079b00)(param_4,0);\n                        local_c0 = 0;\n                        local_bc = 0;\n                        local_b8 = 0;\n                        pppppppcVar29 = unaff_s7;\n                        local_d0 = unaff_s5;\n                        local_cc = param_4;\n                        local_c8 = pppppppcVar31;\n                        local_c4 = unaff_s8;\n                        param_5 = (code *******)(*pcVar8)(&local_b4);\n                        (*(code *)PTR_free_00079c24)(local_b8);\n                        unaff_s4 = pppppppcVar28;\n                        if (param_5 != (code *******)0x0) break;\n                        if ((*unaff_s5 != (code ******)0x0) ||\n                           (param_6 = param_6 + -1, *param_4 != (code ******)0x0)) {\n                          pppppppcVar29 = unaff_s5;\n                          pppppppcVar30 = param_4;\n                          param_5 = (code *******)FUN_000520d0(pppppppcVar42);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          if (param_5 != (code *******)0x0) goto LAB_00055acc;\n                          goto LAB_00055528;\n                        }\n                        param_6 = (code *******)((int)local_50 + (int)param_6);\n                        do {\n                          while( true ) {\n                            unaff_s8 = (code *******)((int)unaff_s8 + -1);\n                            if ((int)unaff_s8 < 0) goto LAB_00055b70;\n                            pppppppcVar29 = (code *******)param_6[-1];\n                            if (pppppppcVar29 != (code *******)0x0) break;\n                            param_6 = param_6 + -1;\n                          }\n                          param_6 = param_6 + -1;\n                        } while (((uint)pppppppcVar29[0xd] & 0x8000000) == 0);\n                        pppppppcVar31 = (code *******)(*pcVar9)(&local_b4,pppppppcVar29,unaff_s8);\n                        pppppppcVar33 = pppppppcVar28;\n                      }\n                    }\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    (*(code *)PTR_free_00079c24)(param_4);\n                    local_150 = param_5;\n                    if (param_5 == (code *******)0x1) goto LAB_00055b04;\n                  }" { (expression_statement "pppppppcVar29 = (code *******)&local_d0;" (assignment_expression "pppppppcVar29 = (code *******)&local_d0" identifier = (cast_expression "(code *******)&local_d0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "&local_d0" & identifier))) ;) (if_statement "if (pppppppcVar42[0x13] == (code ******)0x0) {\n                      local_cc = (code *******)0x0;\n                      local_c8 = pppppppcVar31;\n                      local_c0 = 0;\n                      local_bc = 0;\n                      local_b8 = 0;\n                      local_d0 = unaff_s5;\n                      local_c4 = unaff_s8;\n                      param_5 = (code *******)FUN_0005421c(&local_b4);\n                      (*(code *)PTR_free_00079c24)(local_b8);\n                      if (param_5 == (code *******)0x0) {\n                        param_4 = (code *******)*unaff_s5;\n                        if (param_4 == (code *******)0x0) {\nLAB_00055b70:\n                          (*(code *)PTR_free_00079c24)(unaff_s5);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          pppppppcVar33 = pppppppcVar28;\n                          goto LAB_00055b04;\n                        }\nLAB_00055528:\n                        (*(code *)PTR_free_00079c24)(local_50);\n                        pppppppcVar33 = pppppppcVar28;\n                        unaff_s4 = pppppppcVar42;\n                        local_58 = unaff_s8;\n                        local_54 = pppppppcVar31;\n                        local_50 = unaff_s5;\n                        goto LAB_00055548;\n                      }\nLAB_00055acc:\n                      param_4 = (code *******)0x0;\n                      pppppppcVar33 = pppppppcVar28;\n                      unaff_s4 = pppppppcVar42;\n                    }\n                    else {\n                      param_4 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                      if (param_4 == (code *******)0x0) goto LAB_00055b9c;\n                      unaff_s7 = (code *******)&local_d0;\n                      pcVar8 = (code *)(PTR_DAT_000799a4 + 0x421c);\n                      pcVar9 = (code *)(PTR_DAT_000799a4 + -0x6bc0);\n                      pppppppcVar33 = pppppppcVar28;\n                      while( true ) {\n                        pppppppcVar28 = (code *******)((int)unaff_s8 + 1);\n                        param_6 = (code *******)((int)pppppppcVar28 * 4);\n                        pppppppcVar30 = param_6;\n                        (*(code *)PTR_memset_00079b00)(param_4,0);\n                        local_c0 = 0;\n                        local_bc = 0;\n                        local_b8 = 0;\n                        pppppppcVar29 = unaff_s7;\n                        local_d0 = unaff_s5;\n                        local_cc = param_4;\n                        local_c8 = pppppppcVar31;\n                        local_c4 = unaff_s8;\n                        param_5 = (code *******)(*pcVar8)(&local_b4);\n                        (*(code *)PTR_free_00079c24)(local_b8);\n                        unaff_s4 = pppppppcVar28;\n                        if (param_5 != (code *******)0x0) break;\n                        if ((*unaff_s5 != (code ******)0x0) ||\n                           (param_6 = param_6 + -1, *param_4 != (code ******)0x0)) {\n                          pppppppcVar29 = unaff_s5;\n                          pppppppcVar30 = param_4;\n                          param_5 = (code *******)FUN_000520d0(pppppppcVar42);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          if (param_5 != (code *******)0x0) goto LAB_00055acc;\n                          goto LAB_00055528;\n                        }\n                        param_6 = (code *******)((int)local_50 + (int)param_6);\n                        do {\n                          while( true ) {\n                            unaff_s8 = (code *******)((int)unaff_s8 + -1);\n                            if ((int)unaff_s8 < 0) goto LAB_00055b70;\n                            pppppppcVar29 = (code *******)param_6[-1];\n                            if (pppppppcVar29 != (code *******)0x0) break;\n                            param_6 = param_6 + -1;\n                          }\n                          param_6 = param_6 + -1;\n                        } while (((uint)pppppppcVar29[0xd] & 0x8000000) == 0);\n                        pppppppcVar31 = (code *******)(*pcVar9)(&local_b4,pppppppcVar29,unaff_s8);\n                        pppppppcVar33 = pppppppcVar28;\n                      }\n                    }" if (parenthesized_expression "(pppppppcVar42[0x13] == (code ******)0x0)" ( (binary_expression "pppppppcVar42[0x13] == (code ******)0x0" (subscript_expression "pppppppcVar42[0x13]" identifier [ number_literal ]) == (cast_expression "(code ******)0x0" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (compound_statement "{\n                      local_cc = (code *******)0x0;\n                      local_c8 = pppppppcVar31;\n                      local_c0 = 0;\n                      local_bc = 0;\n                      local_b8 = 0;\n                      local_d0 = unaff_s5;\n                      local_c4 = unaff_s8;\n                      param_5 = (code *******)FUN_0005421c(&local_b4);\n                      (*(code *)PTR_free_00079c24)(local_b8);\n                      if (param_5 == (code *******)0x0) {\n                        param_4 = (code *******)*unaff_s5;\n                        if (param_4 == (code *******)0x0) {\nLAB_00055b70:\n                          (*(code *)PTR_free_00079c24)(unaff_s5);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          pppppppcVar33 = pppppppcVar28;\n                          goto LAB_00055b04;\n                        }\nLAB_00055528:\n                        (*(code *)PTR_free_00079c24)(local_50);\n                        pppppppcVar33 = pppppppcVar28;\n                        unaff_s4 = pppppppcVar42;\n                        local_58 = unaff_s8;\n                        local_54 = pppppppcVar31;\n                        local_50 = unaff_s5;\n                        goto LAB_00055548;\n                      }\nLAB_00055acc:\n                      param_4 = (code *******)0x0;\n                      pppppppcVar33 = pppppppcVar28;\n                      unaff_s4 = pppppppcVar42;\n                    }" { (expression_statement "local_cc = (code *******)0x0;" (assignment_expression "local_cc = (code *******)0x0" identifier = (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "local_c8 = pppppppcVar31;" (assignment_expression "local_c8 = pppppppcVar31" identifier = identifier) ;) (expression_statement "local_c0 = 0;" (assignment_expression "local_c0 = 0" identifier = number_literal) ;) (expression_statement "local_bc = 0;" (assignment_expression "local_bc = 0" identifier = number_literal) ;) (expression_statement "local_b8 = 0;" (assignment_expression "local_b8 = 0" identifier = number_literal) ;) (expression_statement "local_d0 = unaff_s5;" (assignment_expression "local_d0 = unaff_s5" identifier = identifier) ;) (expression_statement "local_c4 = unaff_s8;" (assignment_expression "local_c4 = unaff_s8" identifier = identifier) ;) (expression_statement "param_5 = (code *******)FUN_0005421c(&local_b4);" (assignment_expression "param_5 = (code *******)FUN_0005421c(&local_b4)" identifier = (cast_expression "(code *******)FUN_0005421c(&local_b4)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "FUN_0005421c(&local_b4)" identifier (argument_list "(&local_b4)" ( (pointer_expression "&local_b4" & identifier) ))))) ;) (expression_statement "(*(code *)PTR_free_00079c24)(local_b8);" (call_expression "(*(code *)PTR_free_00079c24)(local_b8)" (parenthesized_expression "(*(code *)PTR_free_00079c24)" ( (pointer_expression "*(code *)PTR_free_00079c24" * (cast_expression "(code *)PTR_free_00079c24" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_b8)" ( identifier ))) ;) (if_statement "if (param_5 == (code *******)0x0) {\n                        param_4 = (code *******)*unaff_s5;\n                        if (param_4 == (code *******)0x0) {\nLAB_00055b70:\n                          (*(code *)PTR_free_00079c24)(unaff_s5);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          pppppppcVar33 = pppppppcVar28;\n                          goto LAB_00055b04;\n                        }\nLAB_00055528:\n                        (*(code *)PTR_free_00079c24)(local_50);\n                        pppppppcVar33 = pppppppcVar28;\n                        unaff_s4 = pppppppcVar42;\n                        local_58 = unaff_s8;\n                        local_54 = pppppppcVar31;\n                        local_50 = unaff_s5;\n                        goto LAB_00055548;\n                      }" if (parenthesized_expression "(param_5 == (code *******)0x0)" ( (binary_expression "param_5 == (code *******)0x0" identifier == (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\n                        param_4 = (code *******)*unaff_s5;\n                        if (param_4 == (code *******)0x0) {\nLAB_00055b70:\n                          (*(code *)PTR_free_00079c24)(unaff_s5);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          pppppppcVar33 = pppppppcVar28;\n                          goto LAB_00055b04;\n                        }\nLAB_00055528:\n                        (*(code *)PTR_free_00079c24)(local_50);\n                        pppppppcVar33 = pppppppcVar28;\n                        unaff_s4 = pppppppcVar42;\n                        local_58 = unaff_s8;\n                        local_54 = pppppppcVar31;\n                        local_50 = unaff_s5;\n                        goto LAB_00055548;\n                      }" { (expression_statement "param_4 = (code *******)*unaff_s5;" (assignment_expression "param_4 = (code *******)*unaff_s5" identifier = (cast_expression "(code *******)*unaff_s5" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "*unaff_s5" * identifier))) ;) (if_statement "if (param_4 == (code *******)0x0) {\nLAB_00055b70:\n                          (*(code *)PTR_free_00079c24)(unaff_s5);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          pppppppcVar33 = pppppppcVar28;\n                          goto LAB_00055b04;\n                        }" if (parenthesized_expression "(param_4 == (code *******)0x0)" ( (binary_expression "param_4 == (code *******)0x0" identifier == (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\nLAB_00055b70:\n                          (*(code *)PTR_free_00079c24)(unaff_s5);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          pppppppcVar33 = pppppppcVar28;\n                          goto LAB_00055b04;\n                        }" { (labeled_statement "LAB_00055b70:\n                          (*(code *)PTR_free_00079c24)(unaff_s5);" statement_identifier : (expression_statement "(*(code *)PTR_free_00079c24)(unaff_s5);" (call_expression "(*(code *)PTR_free_00079c24)(unaff_s5)" (parenthesized_expression "(*(code *)PTR_free_00079c24)" ( (pointer_expression "*(code *)PTR_free_00079c24" * (cast_expression "(code *)PTR_free_00079c24" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s5)" ( identifier ))) ;)) (expression_statement "(*(code *)PTR_free_00079c24)(param_4);" (call_expression "(*(code *)PTR_free_00079c24)(param_4)" (parenthesized_expression "(*(code *)PTR_free_00079c24)" ( (pointer_expression "*(code *)PTR_free_00079c24" * (cast_expression "(code *)PTR_free_00079c24" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_4)" ( identifier ))) ;) (expression_statement "pppppppcVar33 = pppppppcVar28;" (assignment_expression "pppppppcVar33 = pppppppcVar28" identifier = identifier) ;) (goto_statement "goto LAB_00055b04;" goto statement_identifier ;) })) (labeled_statement "LAB_00055528:\n                        (*(code *)PTR_free_00079c24)(local_50);" statement_identifier : (expression_statement "(*(code *)PTR_free_00079c24)(local_50);" (call_expression "(*(code *)PTR_free_00079c24)(local_50)" (parenthesized_expression "(*(code *)PTR_free_00079c24)" ( (pointer_expression "*(code *)PTR_free_00079c24" * (cast_expression "(code *)PTR_free_00079c24" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_50)" ( identifier ))) ;)) (expression_statement "pppppppcVar33 = pppppppcVar28;" (assignment_expression "pppppppcVar33 = pppppppcVar28" identifier = identifier) ;) (expression_statement "unaff_s4 = pppppppcVar42;" (assignment_expression "unaff_s4 = pppppppcVar42" identifier = identifier) ;) (expression_statement "local_58 = unaff_s8;" (assignment_expression "local_58 = unaff_s8" identifier = identifier) ;) (expression_statement "local_54 = pppppppcVar31;" (assignment_expression "local_54 = pppppppcVar31" identifier = identifier) ;) (expression_statement "local_50 = unaff_s5;" (assignment_expression "local_50 = unaff_s5" identifier = identifier) ;) (goto_statement "goto LAB_00055548;" goto statement_identifier ;) })) (labeled_statement "LAB_00055acc:\n                      param_4 = (code *******)0x0;" statement_identifier : (expression_statement "param_4 = (code *******)0x0;" (assignment_expression "param_4 = (code *******)0x0" identifier = (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;)) (expression_statement "pppppppcVar33 = pppppppcVar28;" (assignment_expression "pppppppcVar33 = pppppppcVar28" identifier = identifier) ;) (expression_statement "unaff_s4 = pppppppcVar42;" (assignment_expression "unaff_s4 = pppppppcVar42" identifier = identifier) ;) }) (else_clause "else {\n                      param_4 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                      if (param_4 == (code *******)0x0) goto LAB_00055b9c;\n                      unaff_s7 = (code *******)&local_d0;\n                      pcVar8 = (code *)(PTR_DAT_000799a4 + 0x421c);\n                      pcVar9 = (code *)(PTR_DAT_000799a4 + -0x6bc0);\n                      pppppppcVar33 = pppppppcVar28;\n                      while( true ) {\n                        pppppppcVar28 = (code *******)((int)unaff_s8 + 1);\n                        param_6 = (code *******)((int)pppppppcVar28 * 4);\n                        pppppppcVar30 = param_6;\n                        (*(code *)PTR_memset_00079b00)(param_4,0);\n                        local_c0 = 0;\n                        local_bc = 0;\n                        local_b8 = 0;\n                        pppppppcVar29 = unaff_s7;\n                        local_d0 = unaff_s5;\n                        local_cc = param_4;\n                        local_c8 = pppppppcVar31;\n                        local_c4 = unaff_s8;\n                        param_5 = (code *******)(*pcVar8)(&local_b4);\n                        (*(code *)PTR_free_00079c24)(local_b8);\n                        unaff_s4 = pppppppcVar28;\n                        if (param_5 != (code *******)0x0) break;\n                        if ((*unaff_s5 != (code ******)0x0) ||\n                           (param_6 = param_6 + -1, *param_4 != (code ******)0x0)) {\n                          pppppppcVar29 = unaff_s5;\n                          pppppppcVar30 = param_4;\n                          param_5 = (code *******)FUN_000520d0(pppppppcVar42);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          if (param_5 != (code *******)0x0) goto LAB_00055acc;\n                          goto LAB_00055528;\n                        }\n                        param_6 = (code *******)((int)local_50 + (int)param_6);\n                        do {\n                          while( true ) {\n                            unaff_s8 = (code *******)((int)unaff_s8 + -1);\n                            if ((int)unaff_s8 < 0) goto LAB_00055b70;\n                            pppppppcVar29 = (code *******)param_6[-1];\n                            if (pppppppcVar29 != (code *******)0x0) break;\n                            param_6 = param_6 + -1;\n                          }\n                          param_6 = param_6 + -1;\n                        } while (((uint)pppppppcVar29[0xd] & 0x8000000) == 0);\n                        pppppppcVar31 = (code *******)(*pcVar9)(&local_b4,pppppppcVar29,unaff_s8);\n                        pppppppcVar33 = pppppppcVar28;\n                      }\n                    }" else (compound_statement "{\n                      param_4 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                      if (param_4 == (code *******)0x0) goto LAB_00055b9c;\n                      unaff_s7 = (code *******)&local_d0;\n                      pcVar8 = (code *)(PTR_DAT_000799a4 + 0x421c);\n                      pcVar9 = (code *)(PTR_DAT_000799a4 + -0x6bc0);\n                      pppppppcVar33 = pppppppcVar28;\n                      while( true ) {\n                        pppppppcVar28 = (code *******)((int)unaff_s8 + 1);\n                        param_6 = (code *******)((int)pppppppcVar28 * 4);\n                        pppppppcVar30 = param_6;\n                        (*(code *)PTR_memset_00079b00)(param_4,0);\n                        local_c0 = 0;\n                        local_bc = 0;\n                        local_b8 = 0;\n                        pppppppcVar29 = unaff_s7;\n                        local_d0 = unaff_s5;\n                        local_cc = param_4;\n                        local_c8 = pppppppcVar31;\n                        local_c4 = unaff_s8;\n                        param_5 = (code *******)(*pcVar8)(&local_b4);\n                        (*(code *)PTR_free_00079c24)(local_b8);\n                        unaff_s4 = pppppppcVar28;\n                        if (param_5 != (code *******)0x0) break;\n                        if ((*unaff_s5 != (code ******)0x0) ||\n                           (param_6 = param_6 + -1, *param_4 != (code ******)0x0)) {\n                          pppppppcVar29 = unaff_s5;\n                          pppppppcVar30 = param_4;\n                          param_5 = (code *******)FUN_000520d0(pppppppcVar42);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          if (param_5 != (code *******)0x0) goto LAB_00055acc;\n                          goto LAB_00055528;\n                        }\n                        param_6 = (code *******)((int)local_50 + (int)param_6);\n                        do {\n                          while( true ) {\n                            unaff_s8 = (code *******)((int)unaff_s8 + -1);\n                            if ((int)unaff_s8 < 0) goto LAB_00055b70;\n                            pppppppcVar29 = (code *******)param_6[-1];\n                            if (pppppppcVar29 != (code *******)0x0) break;\n                            param_6 = param_6 + -1;\n                          }\n                          param_6 = param_6 + -1;\n                        } while (((uint)pppppppcVar29[0xd] & 0x8000000) == 0);\n                        pppppppcVar31 = (code *******)(*pcVar9)(&local_b4,pppppppcVar29,unaff_s8);\n                        pppppppcVar33 = pppppppcVar28;\n                      }\n                    }" { (expression_statement "param_4 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);" (assignment_expression "param_4 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4)" identifier = (cast_expression "(code *******)(*(code *)PTR_malloc_00079b54)(param_4)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "(*(code *)PTR_malloc_00079b54)(param_4)" (parenthesized_expression "(*(code *)PTR_malloc_00079b54)" ( (pointer_expression "*(code *)PTR_malloc_00079b54" * (cast_expression "(code *)PTR_malloc_00079b54" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_4)" ( identifier ))))) ;) (if_statement "if (param_4 == (code *******)0x0) goto LAB_00055b9c;" if (parenthesized_expression "(param_4 == (code *******)0x0)" ( (binary_expression "param_4 == (code *******)0x0" identifier == (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (goto_statement "goto LAB_00055b9c;" goto statement_identifier ;)) (expression_statement "unaff_s7 = (code *******)&local_d0;" (assignment_expression "unaff_s7 = (code *******)&local_d0" identifier = (cast_expression "(code *******)&local_d0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "&local_d0" & identifier))) ;) (expression_statement "pcVar8 = (code *)(PTR_DAT_000799a4 + 0x421c);" (assignment_expression "pcVar8 = (code *)(PTR_DAT_000799a4 + 0x421c)" identifier = (cast_expression "(code *)(PTR_DAT_000799a4 + 0x421c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000799a4 + 0x421c)" ( (binary_expression "PTR_DAT_000799a4 + 0x421c" identifier + number_literal) )))) ;) (expression_statement "pcVar9 = (code *)(PTR_DAT_000799a4 + -0x6bc0);" (assignment_expression "pcVar9 = (code *)(PTR_DAT_000799a4 + -0x6bc0)" identifier = (cast_expression "(code *)(PTR_DAT_000799a4 + -0x6bc0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000799a4 + -0x6bc0)" ( (binary_expression "PTR_DAT_000799a4 + -0x6bc0" identifier + number_literal) )))) ;) (expression_statement "pppppppcVar33 = pppppppcVar28;" (assignment_expression "pppppppcVar33 = pppppppcVar28" identifier = identifier) ;) (while_statement "while( true ) {\n                        pppppppcVar28 = (code *******)((int)unaff_s8 + 1);\n                        param_6 = (code *******)((int)pppppppcVar28 * 4);\n                        pppppppcVar30 = param_6;\n                        (*(code *)PTR_memset_00079b00)(param_4,0);\n                        local_c0 = 0;\n                        local_bc = 0;\n                        local_b8 = 0;\n                        pppppppcVar29 = unaff_s7;\n                        local_d0 = unaff_s5;\n                        local_cc = param_4;\n                        local_c8 = pppppppcVar31;\n                        local_c4 = unaff_s8;\n                        param_5 = (code *******)(*pcVar8)(&local_b4);\n                        (*(code *)PTR_free_00079c24)(local_b8);\n                        unaff_s4 = pppppppcVar28;\n                        if (param_5 != (code *******)0x0) break;\n                        if ((*unaff_s5 != (code ******)0x0) ||\n                           (param_6 = param_6 + -1, *param_4 != (code ******)0x0)) {\n                          pppppppcVar29 = unaff_s5;\n                          pppppppcVar30 = param_4;\n                          param_5 = (code *******)FUN_000520d0(pppppppcVar42);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          if (param_5 != (code *******)0x0) goto LAB_00055acc;\n                          goto LAB_00055528;\n                        }\n                        param_6 = (code *******)((int)local_50 + (int)param_6);\n                        do {\n                          while( true ) {\n                            unaff_s8 = (code *******)((int)unaff_s8 + -1);\n                            if ((int)unaff_s8 < 0) goto LAB_00055b70;\n                            pppppppcVar29 = (code *******)param_6[-1];\n                            if (pppppppcVar29 != (code *******)0x0) break;\n                            param_6 = param_6 + -1;\n                          }\n                          param_6 = param_6 + -1;\n                        } while (((uint)pppppppcVar29[0xd] & 0x8000000) == 0);\n                        pppppppcVar31 = (code *******)(*pcVar9)(&local_b4,pppppppcVar29,unaff_s8);\n                        pppppppcVar33 = pppppppcVar28;\n                      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                        pppppppcVar28 = (code *******)((int)unaff_s8 + 1);\n                        param_6 = (code *******)((int)pppppppcVar28 * 4);\n                        pppppppcVar30 = param_6;\n                        (*(code *)PTR_memset_00079b00)(param_4,0);\n                        local_c0 = 0;\n                        local_bc = 0;\n                        local_b8 = 0;\n                        pppppppcVar29 = unaff_s7;\n                        local_d0 = unaff_s5;\n                        local_cc = param_4;\n                        local_c8 = pppppppcVar31;\n                        local_c4 = unaff_s8;\n                        param_5 = (code *******)(*pcVar8)(&local_b4);\n                        (*(code *)PTR_free_00079c24)(local_b8);\n                        unaff_s4 = pppppppcVar28;\n                        if (param_5 != (code *******)0x0) break;\n                        if ((*unaff_s5 != (code ******)0x0) ||\n                           (param_6 = param_6 + -1, *param_4 != (code ******)0x0)) {\n                          pppppppcVar29 = unaff_s5;\n                          pppppppcVar30 = param_4;\n                          param_5 = (code *******)FUN_000520d0(pppppppcVar42);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          if (param_5 != (code *******)0x0) goto LAB_00055acc;\n                          goto LAB_00055528;\n                        }\n                        param_6 = (code *******)((int)local_50 + (int)param_6);\n                        do {\n                          while( true ) {\n                            unaff_s8 = (code *******)((int)unaff_s8 + -1);\n                            if ((int)unaff_s8 < 0) goto LAB_00055b70;\n                            pppppppcVar29 = (code *******)param_6[-1];\n                            if (pppppppcVar29 != (code *******)0x0) break;\n                            param_6 = param_6 + -1;\n                          }\n                          param_6 = param_6 + -1;\n                        } while (((uint)pppppppcVar29[0xd] & 0x8000000) == 0);\n                        pppppppcVar31 = (code *******)(*pcVar9)(&local_b4,pppppppcVar29,unaff_s8);\n                        pppppppcVar33 = pppppppcVar28;\n                      }" { (expression_statement "pppppppcVar28 = (code *******)((int)unaff_s8 + 1);" (assignment_expression "pppppppcVar28 = (code *******)((int)unaff_s8 + 1)" identifier = (cast_expression "(code *******)((int)unaff_s8 + 1)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)unaff_s8 + 1)" ( (binary_expression "(int)unaff_s8 + 1" (cast_expression "(int)unaff_s8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "param_6 = (code *******)((int)pppppppcVar28 * 4);" (assignment_expression "param_6 = (code *******)((int)pppppppcVar28 * 4)" identifier = (cast_expression "(code *******)((int)pppppppcVar28 * 4)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)pppppppcVar28 * 4)" ( (binary_expression "(int)pppppppcVar28 * 4" (cast_expression "(int)pppppppcVar28" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) )))) ;) (expression_statement "pppppppcVar30 = param_6;" (assignment_expression "pppppppcVar30 = param_6" identifier = identifier) ;) (expression_statement "(*(code *)PTR_memset_00079b00)(param_4,0);" (call_expression "(*(code *)PTR_memset_00079b00)(param_4,0)" (parenthesized_expression "(*(code *)PTR_memset_00079b00)" ( (pointer_expression "*(code *)PTR_memset_00079b00" * (cast_expression "(code *)PTR_memset_00079b00" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_4,0)" ( identifier , number_literal ))) ;) (expression_statement "local_c0 = 0;" (assignment_expression "local_c0 = 0" identifier = number_literal) ;) (expression_statement "local_bc = 0;" (assignment_expression "local_bc = 0" identifier = number_literal) ;) (expression_statement "local_b8 = 0;" (assignment_expression "local_b8 = 0" identifier = number_literal) ;) (expression_statement "pppppppcVar29 = unaff_s7;" (assignment_expression "pppppppcVar29 = unaff_s7" identifier = identifier) ;) (expression_statement "local_d0 = unaff_s5;" (assignment_expression "local_d0 = unaff_s5" identifier = identifier) ;) (expression_statement "local_cc = param_4;" (assignment_expression "local_cc = param_4" identifier = identifier) ;) (expression_statement "local_c8 = pppppppcVar31;" (assignment_expression "local_c8 = pppppppcVar31" identifier = identifier) ;) (expression_statement "local_c4 = unaff_s8;" (assignment_expression "local_c4 = unaff_s8" identifier = identifier) ;) (expression_statement "param_5 = (code *******)(*pcVar8)(&local_b4);" (assignment_expression "param_5 = (code *******)(*pcVar8)(&local_b4)" identifier = (cast_expression "(code *******)(*pcVar8)(&local_b4)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "(*pcVar8)(&local_b4)" (parenthesized_expression "(*pcVar8)" ( (pointer_expression "*pcVar8" * identifier) )) (argument_list "(&local_b4)" ( (pointer_expression "&local_b4" & identifier) ))))) ;) (expression_statement "(*(code *)PTR_free_00079c24)(local_b8);" (call_expression "(*(code *)PTR_free_00079c24)(local_b8)" (parenthesized_expression "(*(code *)PTR_free_00079c24)" ( (pointer_expression "*(code *)PTR_free_00079c24" * (cast_expression "(code *)PTR_free_00079c24" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_b8)" ( identifier ))) ;) (expression_statement "unaff_s4 = pppppppcVar28;" (assignment_expression "unaff_s4 = pppppppcVar28" identifier = identifier) ;) (if_statement "if (param_5 != (code *******)0x0) break;" if (parenthesized_expression "(param_5 != (code *******)0x0)" ( (binary_expression "param_5 != (code *******)0x0" identifier != (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (break_statement "break;" break ;)) (if_statement "if ((*unaff_s5 != (code ******)0x0) ||\n                           (param_6 = param_6 + -1, *param_4 != (code ******)0x0)) {\n                          pppppppcVar29 = unaff_s5;\n                          pppppppcVar30 = param_4;\n                          param_5 = (code *******)FUN_000520d0(pppppppcVar42);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          if (param_5 != (code *******)0x0) goto LAB_00055acc;\n                          goto LAB_00055528;\n                        }" if (parenthesized_expression "((*unaff_s5 != (code ******)0x0) ||\n                           (param_6 = param_6 + -1, *param_4 != (code ******)0x0))" ( (binary_expression "(*unaff_s5 != (code ******)0x0) ||\n                           (param_6 = param_6 + -1, *param_4 != (code ******)0x0)" (parenthesized_expression "(*unaff_s5 != (code ******)0x0)" ( (binary_expression "*unaff_s5 != (code ******)0x0" (pointer_expression "*unaff_s5" * identifier) != (cast_expression "(code ******)0x0" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) || (parenthesized_expression "(param_6 = param_6 + -1, *param_4 != (code ******)0x0)" ( (comma_expression "param_6 = param_6 + -1, *param_4 != (code ******)0x0" (assignment_expression "param_6 = param_6 + -1" identifier = (binary_expression "param_6 + -1" identifier + number_literal)) , (binary_expression "*param_4 != (code ******)0x0" (pointer_expression "*param_4" * identifier) != (cast_expression "(code ******)0x0" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal))) ))) )) (compound_statement "{\n                          pppppppcVar29 = unaff_s5;\n                          pppppppcVar30 = param_4;\n                          param_5 = (code *******)FUN_000520d0(pppppppcVar42);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          if (param_5 != (code *******)0x0) goto LAB_00055acc;\n                          goto LAB_00055528;\n                        }" { (expression_statement "pppppppcVar29 = unaff_s5;" (assignment_expression "pppppppcVar29 = unaff_s5" identifier = identifier) ;) (expression_statement "pppppppcVar30 = param_4;" (assignment_expression "pppppppcVar30 = param_4" identifier = identifier) ;) (expression_statement "param_5 = (code *******)FUN_000520d0(pppppppcVar42);" (assignment_expression "param_5 = (code *******)FUN_000520d0(pppppppcVar42)" identifier = (cast_expression "(code *******)FUN_000520d0(pppppppcVar42)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "FUN_000520d0(pppppppcVar42)" identifier (argument_list "(pppppppcVar42)" ( identifier ))))) ;) (expression_statement "(*(code *)PTR_free_00079c24)(param_4);" (call_expression "(*(code *)PTR_free_00079c24)(param_4)" (parenthesized_expression "(*(code *)PTR_free_00079c24)" ( (pointer_expression "*(code *)PTR_free_00079c24" * (cast_expression "(code *)PTR_free_00079c24" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_4)" ( identifier ))) ;) (if_statement "if (param_5 != (code *******)0x0) goto LAB_00055acc;" if (parenthesized_expression "(param_5 != (code *******)0x0)" ( (binary_expression "param_5 != (code *******)0x0" identifier != (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (goto_statement "goto LAB_00055acc;" goto statement_identifier ;)) (goto_statement "goto LAB_00055528;" goto statement_identifier ;) })) (expression_statement "param_6 = (code *******)((int)local_50 + (int)param_6);" (assignment_expression "param_6 = (code *******)((int)local_50 + (int)param_6)" identifier = (cast_expression "(code *******)((int)local_50 + (int)param_6)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)local_50 + (int)param_6)" ( (binary_expression "(int)local_50 + (int)param_6" (cast_expression "(int)local_50" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)param_6" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (do_statement "do {\n                          while( true ) {\n                            unaff_s8 = (code *******)((int)unaff_s8 + -1);\n                            if ((int)unaff_s8 < 0) goto LAB_00055b70;\n                            pppppppcVar29 = (code *******)param_6[-1];\n                            if (pppppppcVar29 != (code *******)0x0) break;\n                            param_6 = param_6 + -1;\n                          }\n                          param_6 = param_6 + -1;\n                        } while (((uint)pppppppcVar29[0xd] & 0x8000000) == 0);" do (compound_statement "{\n                          while( true ) {\n                            unaff_s8 = (code *******)((int)unaff_s8 + -1);\n                            if ((int)unaff_s8 < 0) goto LAB_00055b70;\n                            pppppppcVar29 = (code *******)param_6[-1];\n                            if (pppppppcVar29 != (code *******)0x0) break;\n                            param_6 = param_6 + -1;\n                          }\n                          param_6 = param_6 + -1;\n                        }" { (while_statement "while( true ) {\n                            unaff_s8 = (code *******)((int)unaff_s8 + -1);\n                            if ((int)unaff_s8 < 0) goto LAB_00055b70;\n                            pppppppcVar29 = (code *******)param_6[-1];\n                            if (pppppppcVar29 != (code *******)0x0) break;\n                            param_6 = param_6 + -1;\n                          }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                            unaff_s8 = (code *******)((int)unaff_s8 + -1);\n                            if ((int)unaff_s8 < 0) goto LAB_00055b70;\n                            pppppppcVar29 = (code *******)param_6[-1];\n                            if (pppppppcVar29 != (code *******)0x0) break;\n                            param_6 = param_6 + -1;\n                          }" { (expression_statement "unaff_s8 = (code *******)((int)unaff_s8 + -1);" (assignment_expression "unaff_s8 = (code *******)((int)unaff_s8 + -1)" identifier = (cast_expression "(code *******)((int)unaff_s8 + -1)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)unaff_s8 + -1)" ( (binary_expression "(int)unaff_s8 + -1" (cast_expression "(int)unaff_s8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if ((int)unaff_s8 < 0) goto LAB_00055b70;" if (parenthesized_expression "((int)unaff_s8 < 0)" ( (binary_expression "(int)unaff_s8 < 0" (cast_expression "(int)unaff_s8" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto LAB_00055b70;" goto statement_identifier ;)) (expression_statement "pppppppcVar29 = (code *******)param_6[-1];" (assignment_expression "pppppppcVar29 = (code *******)param_6[-1]" identifier = (cast_expression "(code *******)param_6[-1]" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (subscript_expression "param_6[-1]" identifier [ number_literal ]))) ;) (if_statement "if (pppppppcVar29 != (code *******)0x0) break;" if (parenthesized_expression "(pppppppcVar29 != (code *******)0x0)" ( (binary_expression "pppppppcVar29 != (code *******)0x0" identifier != (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "param_6 = param_6 + -1;" (assignment_expression "param_6 = param_6 + -1" identifier = (binary_expression "param_6 + -1" identifier + number_literal)) ;) })) (expression_statement "param_6 = param_6 + -1;" (assignment_expression "param_6 = param_6 + -1" identifier = (binary_expression "param_6 + -1" identifier + number_literal)) ;) }) while (parenthesized_expression "(((uint)pppppppcVar29[0xd] & 0x8000000) == 0)" ( (binary_expression "((uint)pppppppcVar29[0xd] & 0x8000000) == 0" (parenthesized_expression "((uint)pppppppcVar29[0xd] & 0x8000000)" ( (binary_expression "(uint)pppppppcVar29[0xd] & 0x8000000" (cast_expression "(uint)pppppppcVar29[0xd]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pppppppcVar29[0xd]" identifier [ number_literal ])) & number_literal) )) == number_literal) )) ;) (expression_statement "pppppppcVar31 = (code *******)(*pcVar9)(&local_b4,pppppppcVar29,unaff_s8);" (assignment_expression "pppppppcVar31 = (code *******)(*pcVar9)(&local_b4,pppppppcVar29,unaff_s8)" identifier = (cast_expression "(code *******)(*pcVar9)(&local_b4,pppppppcVar29,unaff_s8)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "(*pcVar9)(&local_b4,pppppppcVar29,unaff_s8)" (parenthesized_expression "(*pcVar9)" ( (pointer_expression "*pcVar9" * identifier) )) (argument_list "(&local_b4,pppppppcVar29,unaff_s8)" ( (pointer_expression "&local_b4" & identifier) , identifier , identifier ))))) ;) (expression_statement "pppppppcVar33 = pppppppcVar28;" (assignment_expression "pppppppcVar33 = pppppppcVar28" identifier = identifier) ;) })) }))) (expression_statement "(*(code *)PTR_free_00079c24)(unaff_s5);" (call_expression "(*(code *)PTR_free_00079c24)(unaff_s5)" (parenthesized_expression "(*(code *)PTR_free_00079c24)" ( (pointer_expression "*(code *)PTR_free_00079c24" * (cast_expression "(code *)PTR_free_00079c24" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s5)" ( identifier ))) ;) (expression_statement "(*(code *)PTR_free_00079c24)(param_4);" (call_expression "(*(code *)PTR_free_00079c24)(param_4)" (parenthesized_expression "(*(code *)PTR_free_00079c24)" ( (pointer_expression "*(code *)PTR_free_00079c24" * (cast_expression "(code *)PTR_free_00079c24" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_4)" ( identifier ))) ;) (expression_statement "local_150 = param_5;" (assignment_expression "local_150 = param_5" identifier = identifier) ;) (if_statement "if (param_5 == (code *******)0x1) goto LAB_00055b04;" if (parenthesized_expression "(param_5 == (code *******)0x1)" ( (binary_expression "param_5 == (code *******)0x1" identifier == (cast_expression "(code *******)0x1" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (goto_statement "goto LAB_00055b04;" goto statement_identifier ;)) }))) }) (else_clause "else {\n                  local_150 = (code *******)0xc;\n                  pppppppcVar33 = pppppppcVar28;\n                }" else (compound_statement "{\n                  local_150 = (code *******)0xc;\n                  pppppppcVar33 = pppppppcVar28;\n                }" { (expression_statement "local_150 = (code *******)0xc;" (assignment_expression "local_150 = (code *******)0xc" identifier = (cast_expression "(code *******)0xc" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "pppppppcVar33 = pppppppcVar28;" (assignment_expression "pppppppcVar33 = pppppppcVar28" identifier = identifier) ;) }))) (goto_statement "goto LAB_000557e4;" goto statement_identifier ;) })) (if_statement "if (pppppppcVar38[0x13] != (code ******)0x0) {\n                pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                pppppppcVar30 = unaff_s8;\n                local_54 = (code *******)FUN_00049440(&local_b4);\n                goto LAB_00055c6c;\n              }" if (parenthesized_expression "(pppppppcVar38[0x13] != (code ******)0x0)" ( (binary_expression "pppppppcVar38[0x13] != (code ******)0x0" (subscript_expression "pppppppcVar38[0x13]" identifier [ number_literal ]) != (cast_expression "(code ******)0x0" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (compound_statement "{\n                pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                pppppppcVar30 = unaff_s8;\n                local_54 = (code *******)FUN_00049440(&local_b4);\n                goto LAB_00055c6c;\n              }" { (expression_statement "pppppppcVar29 = (code *******)local_50[(int)unaff_s8];" (assignment_expression "pppppppcVar29 = (code *******)local_50[(int)unaff_s8]" identifier = (cast_expression "(code *******)local_50[(int)unaff_s8]" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (subscript_expression "local_50[(int)unaff_s8]" identifier [ (cast_expression "(int)unaff_s8" ( (type_descriptor "int" primitive_type) ) identifier) ]))) ;) (expression_statement "pppppppcVar30 = unaff_s8;" (assignment_expression "pppppppcVar30 = unaff_s8" identifier = identifier) ;) (expression_statement "local_54 = (code *******)FUN_00049440(&local_b4);" (assignment_expression "local_54 = (code *******)FUN_00049440(&local_b4)" identifier = (cast_expression "(code *******)FUN_00049440(&local_b4)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "FUN_00049440(&local_b4)" identifier (argument_list "(&local_b4)" ( (pointer_expression "&local_b4" & identifier) ))))) ;) (goto_statement "goto LAB_00055c6c;" goto statement_identifier ;) })) (labeled_statement "LAB_00055c08:\n              if ((((uint)param_1[7] & 0x8000000) == 0) && ((code *******)0x1 < pppppppcVar3)) {\n                cVar23 = *(code *)(pppppppcVar38 + 0x16);\n                goto LAB_00055c20;\n              }" statement_identifier : (if_statement "if ((((uint)param_1[7] & 0x8000000) == 0) && ((code *******)0x1 < pppppppcVar3)) {\n                cVar23 = *(code *)(pppppppcVar38 + 0x16);\n                goto LAB_00055c20;\n              }" if (parenthesized_expression "((((uint)param_1[7] & 0x8000000) == 0) && ((code *******)0x1 < pppppppcVar3))" ( (binary_expression "(((uint)param_1[7] & 0x8000000) == 0) && ((code *******)0x1 < pppppppcVar3)" (parenthesized_expression "(((uint)param_1[7] & 0x8000000) == 0)" ( (binary_expression "((uint)param_1[7] & 0x8000000) == 0" (parenthesized_expression "((uint)param_1[7] & 0x8000000)" ( (binary_expression "(uint)param_1[7] & 0x8000000" (cast_expression "(uint)param_1[7]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_1[7]" identifier [ number_literal ])) & number_literal) )) == number_literal) )) && (parenthesized_expression "((code *******)0x1 < pppppppcVar3)" ( (binary_expression "(code *******)0x1 < pppppppcVar3" (cast_expression "(code *******)0x1" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal) < identifier) ))) )) (compound_statement "{\n                cVar23 = *(code *)(pppppppcVar38 + 0x16);\n                goto LAB_00055c20;\n              }" { (expression_statement "cVar23 = *(code *)(pppppppcVar38 + 0x16);" (assignment_expression "cVar23 = *(code *)(pppppppcVar38 + 0x16)" identifier = (pointer_expression "*(code *)(pppppppcVar38 + 0x16)" * (cast_expression "(code *)(pppppppcVar38 + 0x16)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pppppppcVar38 + 0x16)" ( (binary_expression "pppppppcVar38 + 0x16" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_00055c20;" goto statement_identifier ;) }))) (labeled_statement "LAB_00055548:\n              if (pppppppcVar3 == (code *******)0x0) goto LAB_000557e4;" statement_identifier : (if_statement "if (pppppppcVar3 == (code *******)0x0) goto LAB_000557e4;" if (parenthesized_expression "(pppppppcVar3 == (code *******)0x0)" ( (binary_expression "pppppppcVar3 == (code *******)0x0" identifier == (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (goto_statement "goto LAB_000557e4;" goto statement_identifier ;))) (if_statement "if (pppppppcVar3 < (code *******)0x2) {\n                *param_8 = (code ******)0x0;\n                param_8[1] = (code ******)local_58;\n                goto LAB_000555ac;\n              }" if (parenthesized_expression "(pppppppcVar3 < (code *******)0x2)" ( (binary_expression "pppppppcVar3 < (code *******)0x2" identifier < (cast_expression "(code *******)0x2" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\n                *param_8 = (code ******)0x0;\n                param_8[1] = (code ******)local_58;\n                goto LAB_000555ac;\n              }" { (expression_statement "*param_8 = (code ******)0x0;" (assignment_expression "*param_8 = (code ******)0x0" (pointer_expression "*param_8" * identifier) = (cast_expression "(code ******)0x0" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) (expression_statement "param_8[1] = (code ******)local_58;" (assignment_expression "param_8[1] = (code ******)local_58" (subscript_expression "param_8[1]" identifier [ number_literal ]) = (cast_expression "(code ******)local_58" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) identifier)) ;) (goto_statement "goto LAB_000555ac;" goto statement_identifier ;) })) (expression_statement "pppppppcVar29 = param_8 + 2;" (assignment_expression "pppppppcVar29 = param_8 + 2" identifier = (binary_expression "param_8 + 2" identifier + number_literal)) ;) (do_statement "do {\n                pppppppcVar29[1] = (code ******)0xffffffff;\n                *pppppppcVar29 = (code ******)0xffffffff;\n                pppppppcVar29 = pppppppcVar29 + 2;\n              } while (pppppppcVar29 != param_8 + (int)pppppppcVar3 * 2);" do (compound_statement "{\n                pppppppcVar29[1] = (code ******)0xffffffff;\n                *pppppppcVar29 = (code ******)0xffffffff;\n                pppppppcVar29 = pppppppcVar29 + 2;\n              }" { (expression_statement "pppppppcVar29[1] = (code ******)0xffffffff;" (assignment_expression "pppppppcVar29[1] = (code ******)0xffffffff" (subscript_expression "pppppppcVar29[1]" identifier [ number_literal ]) = (cast_expression "(code ******)0xffffffff" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) (expression_statement "*pppppppcVar29 = (code ******)0xffffffff;" (assignment_expression "*pppppppcVar29 = (code ******)0xffffffff" (pointer_expression "*pppppppcVar29" * identifier) = (cast_expression "(code ******)0xffffffff" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) (expression_statement "pppppppcVar29 = pppppppcVar29 + 2;" (assignment_expression "pppppppcVar29 = pppppppcVar29 + 2" identifier = (binary_expression "pppppppcVar29 + 2" identifier + number_literal)) ;) }) while (parenthesized_expression "(pppppppcVar29 != param_8 + (int)pppppppcVar3 * 2)" ( (binary_expression "pppppppcVar29 != param_8 + (int)pppppppcVar3 * 2" identifier != (binary_expression "param_8 + (int)pppppppcVar3 * 2" identifier + (binary_expression "(int)pppppppcVar3 * 2" (cast_expression "(int)pppppppcVar3" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal))) )) ;) (expression_statement "*param_8 = (code ******)0x0;" (assignment_expression "*param_8 = (code ******)0x0" (pointer_expression "*param_8" * identifier) = (cast_expression "(code ******)0x0" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) (expression_statement "param_8[1] = (code ******)local_58;" (assignment_expression "param_8[1] = (code ******)local_58" (subscript_expression "param_8[1]" identifier [ number_literal ]) = (cast_expression "(code ******)local_58" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) identifier)) ;) (if_statement "if (((uint)param_1[7] & 0x8000000) != 0) {\nLAB_000555ac:\n                pppppppcVar33 = param_8;\n                do {\n                  pppppppcVar29 = (code *******)*pppppppcVar33;\n                  if (pppppppcVar29 != (code *******)0xffffffff) {\n                    if (local_68 != '\0') {\n                      pppppppcVar34 = local_94;\n                      if (pppppppcVar29 != local_98) {\n                        pppppppcVar34 = *(code ********)(local_a8 + (int)pppppppcVar29 * 4);\n                      }\n                      *pppppppcVar33 = (code ******)pppppppcVar34;\n                      pppppppcVar29 = local_94;\n                      if (local_98 != (code *******)pppppppcVar33[1]) {\n                        pppppppcVar29 = *(code ********)(local_a8 + (int)pppppppcVar33[1] * 4);\n                      }\n                      pppppppcVar33[1] = (code ******)pppppppcVar29;\n                    }\n                    *pppppppcVar33 = (code ******)((int)local_dc + (int)*pppppppcVar33);\n                    pppppppcVar29 = (code *******)((int)local_dc + (int)pppppppcVar33[1]);\n                    pppppppcVar33[1] = (code ******)pppppppcVar29;\n                  }\n                  pppppppcVar33 = pppppppcVar33 + 2;\n                } while (pppppppcVar33 != param_8 + (int)pppppppcVar3 * 2);\n                if (0 < local_118) {\n                  pppppppcVar33 = param_8 + (int)pppppppcVar3 * 2;\n                  do {\n                    *pppppppcVar33 = (code ******)0xffffffff;\n                    pppppppcVar33[1] = (code ******)0xffffffff;\n                    pppppppcVar33 = pppppppcVar33 + 2;\n                  } while (pppppppcVar33 != param_8 + (int)param_7 * 2);\n                }\n                pppppppcVar30 = local_dc;\n                pppppppcVar33 = param_8;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar38[0x21] != (code ******)0x0) {\n                  pppppppcVar30 = (code *******)((int)pppppppcVar3 + -1);\n                  pppppppcVar34 = (code *******)0x0;\n                  pppppppcVar3 = param_8;\n                  while( true ) {\n                    pppppppcVar29 = (code *******)((int)pppppppcVar34 * 4);\n                    if (pppppppcVar30 == pppppppcVar34) break;\n                    if (*(code ********)((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) !=\n                        pppppppcVar34) {\n                      pppppppcVar3[2] =\n                           param_8[(int)((int)*(code ********)\n                                               ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1)\n                                   * 2];\n                      pppppppcVar3[3] =\n                           param_8[((int)*(code ******)\n                                          ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1) * 2 +\n                                   1];\n                    }\n                    pppppppcVar34 = (code *******)((int)pppppppcVar34 + 1);\n                    pppppppcVar3 = pppppppcVar3 + 2;\n                  }\n                }\n                goto LAB_000557e4;\n              }" if (parenthesized_expression "(((uint)param_1[7] & 0x8000000) != 0)" ( (binary_expression "((uint)param_1[7] & 0x8000000) != 0" (parenthesized_expression "((uint)param_1[7] & 0x8000000)" ( (binary_expression "(uint)param_1[7] & 0x8000000" (cast_expression "(uint)param_1[7]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_1[7]" identifier [ number_literal ])) & number_literal) )) != number_literal) )) (compound_statement "{\nLAB_000555ac:\n                pppppppcVar33 = param_8;\n                do {\n                  pppppppcVar29 = (code *******)*pppppppcVar33;\n                  if (pppppppcVar29 != (code *******)0xffffffff) {\n                    if (local_68 != '\0') {\n                      pppppppcVar34 = local_94;\n                      if (pppppppcVar29 != local_98) {\n                        pppppppcVar34 = *(code ********)(local_a8 + (int)pppppppcVar29 * 4);\n                      }\n                      *pppppppcVar33 = (code ******)pppppppcVar34;\n                      pppppppcVar29 = local_94;\n                      if (local_98 != (code *******)pppppppcVar33[1]) {\n                        pppppppcVar29 = *(code ********)(local_a8 + (int)pppppppcVar33[1] * 4);\n                      }\n                      pppppppcVar33[1] = (code ******)pppppppcVar29;\n                    }\n                    *pppppppcVar33 = (code ******)((int)local_dc + (int)*pppppppcVar33);\n                    pppppppcVar29 = (code *******)((int)local_dc + (int)pppppppcVar33[1]);\n                    pppppppcVar33[1] = (code ******)pppppppcVar29;\n                  }\n                  pppppppcVar33 = pppppppcVar33 + 2;\n                } while (pppppppcVar33 != param_8 + (int)pppppppcVar3 * 2);\n                if (0 < local_118) {\n                  pppppppcVar33 = param_8 + (int)pppppppcVar3 * 2;\n                  do {\n                    *pppppppcVar33 = (code ******)0xffffffff;\n                    pppppppcVar33[1] = (code ******)0xffffffff;\n                    pppppppcVar33 = pppppppcVar33 + 2;\n                  } while (pppppppcVar33 != param_8 + (int)param_7 * 2);\n                }\n                pppppppcVar30 = local_dc;\n                pppppppcVar33 = param_8;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar38[0x21] != (code ******)0x0) {\n                  pppppppcVar30 = (code *******)((int)pppppppcVar3 + -1);\n                  pppppppcVar34 = (code *******)0x0;\n                  pppppppcVar3 = param_8;\n                  while( true ) {\n                    pppppppcVar29 = (code *******)((int)pppppppcVar34 * 4);\n                    if (pppppppcVar30 == pppppppcVar34) break;\n                    if (*(code ********)((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) !=\n                        pppppppcVar34) {\n                      pppppppcVar3[2] =\n                           param_8[(int)((int)*(code ********)\n                                               ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1)\n                                   * 2];\n                      pppppppcVar3[3] =\n                           param_8[((int)*(code ******)\n                                          ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1) * 2 +\n                                   1];\n                    }\n                    pppppppcVar34 = (code *******)((int)pppppppcVar34 + 1);\n                    pppppppcVar3 = pppppppcVar3 + 2;\n                  }\n                }\n                goto LAB_000557e4;\n              }" { (labeled_statement "LAB_000555ac:\n                pppppppcVar33 = param_8;" statement_identifier : (expression_statement "pppppppcVar33 = param_8;" (assignment_expression "pppppppcVar33 = param_8" identifier = identifier) ;)) (do_statement "do {\n                  pppppppcVar29 = (code *******)*pppppppcVar33;\n                  if (pppppppcVar29 != (code *******)0xffffffff) {\n                    if (local_68 != '\0') {\n                      pppppppcVar34 = local_94;\n                      if (pppppppcVar29 != local_98) {\n                        pppppppcVar34 = *(code ********)(local_a8 + (int)pppppppcVar29 * 4);\n                      }\n                      *pppppppcVar33 = (code ******)pppppppcVar34;\n                      pppppppcVar29 = local_94;\n                      if (local_98 != (code *******)pppppppcVar33[1]) {\n                        pppppppcVar29 = *(code ********)(local_a8 + (int)pppppppcVar33[1] * 4);\n                      }\n                      pppppppcVar33[1] = (code ******)pppppppcVar29;\n                    }\n                    *pppppppcVar33 = (code ******)((int)local_dc + (int)*pppppppcVar33);\n                    pppppppcVar29 = (code *******)((int)local_dc + (int)pppppppcVar33[1]);\n                    pppppppcVar33[1] = (code ******)pppppppcVar29;\n                  }\n                  pppppppcVar33 = pppppppcVar33 + 2;\n                } while (pppppppcVar33 != param_8 + (int)pppppppcVar3 * 2);" do (compound_statement "{\n                  pppppppcVar29 = (code *******)*pppppppcVar33;\n                  if (pppppppcVar29 != (code *******)0xffffffff) {\n                    if (local_68 != '\0') {\n                      pppppppcVar34 = local_94;\n                      if (pppppppcVar29 != local_98) {\n                        pppppppcVar34 = *(code ********)(local_a8 + (int)pppppppcVar29 * 4);\n                      }\n                      *pppppppcVar33 = (code ******)pppppppcVar34;\n                      pppppppcVar29 = local_94;\n                      if (local_98 != (code *******)pppppppcVar33[1]) {\n                        pppppppcVar29 = *(code ********)(local_a8 + (int)pppppppcVar33[1] * 4);\n                      }\n                      pppppppcVar33[1] = (code ******)pppppppcVar29;\n                    }\n                    *pppppppcVar33 = (code ******)((int)local_dc + (int)*pppppppcVar33);\n                    pppppppcVar29 = (code *******)((int)local_dc + (int)pppppppcVar33[1]);\n                    pppppppcVar33[1] = (code ******)pppppppcVar29;\n                  }\n                  pppppppcVar33 = pppppppcVar33 + 2;\n                }" { (expression_statement "pppppppcVar29 = (code *******)*pppppppcVar33;" (assignment_expression "pppppppcVar29 = (code *******)*pppppppcVar33" identifier = (cast_expression "(code *******)*pppppppcVar33" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "*pppppppcVar33" * identifier))) ;) (if_statement "if (pppppppcVar29 != (code *******)0xffffffff) {\n                    if (local_68 != '\0') {\n                      pppppppcVar34 = local_94;\n                      if (pppppppcVar29 != local_98) {\n                        pppppppcVar34 = *(code ********)(local_a8 + (int)pppppppcVar29 * 4);\n                      }\n                      *pppppppcVar33 = (code ******)pppppppcVar34;\n                      pppppppcVar29 = local_94;\n                      if (local_98 != (code *******)pppppppcVar33[1]) {\n                        pppppppcVar29 = *(code ********)(local_a8 + (int)pppppppcVar33[1] * 4);\n                      }\n                      pppppppcVar33[1] = (code ******)pppppppcVar29;\n                    }\n                    *pppppppcVar33 = (code ******)((int)local_dc + (int)*pppppppcVar33);\n                    pppppppcVar29 = (code *******)((int)local_dc + (int)pppppppcVar33[1]);\n                    pppppppcVar33[1] = (code ******)pppppppcVar29;\n                  }" if (parenthesized_expression "(pppppppcVar29 != (code *******)0xffffffff)" ( (binary_expression "pppppppcVar29 != (code *******)0xffffffff" identifier != (cast_expression "(code *******)0xffffffff" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\n                    if (local_68 != '\0') {\n                      pppppppcVar34 = local_94;\n                      if (pppppppcVar29 != local_98) {\n                        pppppppcVar34 = *(code ********)(local_a8 + (int)pppppppcVar29 * 4);\n                      }\n                      *pppppppcVar33 = (code ******)pppppppcVar34;\n                      pppppppcVar29 = local_94;\n                      if (local_98 != (code *******)pppppppcVar33[1]) {\n                        pppppppcVar29 = *(code ********)(local_a8 + (int)pppppppcVar33[1] * 4);\n                      }\n                      pppppppcVar33[1] = (code ******)pppppppcVar29;\n                    }\n                    *pppppppcVar33 = (code ******)((int)local_dc + (int)*pppppppcVar33);\n                    pppppppcVar29 = (code *******)((int)local_dc + (int)pppppppcVar33[1]);\n                    pppppppcVar33[1] = (code ******)pppppppcVar29;\n                  }" { (if_statement "if (local_68 != '\0') {\n                      pppppppcVar34 = local_94;\n                      if (pppppppcVar29 != local_98) {\n                        pppppppcVar34 = *(code ********)(local_a8 + (int)pppppppcVar29 * 4);\n                      }\n                      *pppppppcVar33 = (code ******)pppppppcVar34;\n                      pppppppcVar29 = local_94;\n                      if (local_98 != (code *******)pppppppcVar33[1]) {\n                        pppppppcVar29 = *(code ********)(local_a8 + (int)pppppppcVar33[1] * 4);\n                      }\n                      pppppppcVar33[1] = (code ******)pppppppcVar29;\n                    }" if (parenthesized_expression "(local_68 != '\0')" ( (binary_expression "local_68 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                      pppppppcVar34 = local_94;\n                      if (pppppppcVar29 != local_98) {\n                        pppppppcVar34 = *(code ********)(local_a8 + (int)pppppppcVar29 * 4);\n                      }\n                      *pppppppcVar33 = (code ******)pppppppcVar34;\n                      pppppppcVar29 = local_94;\n                      if (local_98 != (code *******)pppppppcVar33[1]) {\n                        pppppppcVar29 = *(code ********)(local_a8 + (int)pppppppcVar33[1] * 4);\n                      }\n                      pppppppcVar33[1] = (code ******)pppppppcVar29;\n                    }" { (expression_statement "pppppppcVar34 = local_94;" (assignment_expression "pppppppcVar34 = local_94" identifier = identifier) ;) (if_statement "if (pppppppcVar29 != local_98) {\n                        pppppppcVar34 = *(code ********)(local_a8 + (int)pppppppcVar29 * 4);\n                      }" if (parenthesized_expression "(pppppppcVar29 != local_98)" ( (binary_expression "pppppppcVar29 != local_98" identifier != identifier) )) (compound_statement "{\n                        pppppppcVar34 = *(code ********)(local_a8 + (int)pppppppcVar29 * 4);\n                      }" { (expression_statement "pppppppcVar34 = *(code ********)(local_a8 + (int)pppppppcVar29 * 4);" (assignment_expression "pppppppcVar34 = *(code ********)(local_a8 + (int)pppppppcVar29 * 4)" identifier = (pointer_expression "*(code ********)(local_a8 + (int)pppppppcVar29 * 4)" * (cast_expression "(code ********)(local_a8 + (int)pppppppcVar29 * 4)" ( (type_descriptor "code ********" type_identifier (abstract_pointer_declarator "********" * (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))))) ) (parenthesized_expression "(local_a8 + (int)pppppppcVar29 * 4)" ( (binary_expression "local_a8 + (int)pppppppcVar29 * 4" identifier + (binary_expression "(int)pppppppcVar29 * 4" (cast_expression "(int)pppppppcVar29" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ))))) ;) })) (expression_statement "*pppppppcVar33 = (code ******)pppppppcVar34;" (assignment_expression "*pppppppcVar33 = (code ******)pppppppcVar34" (pointer_expression "*pppppppcVar33" * identifier) = (cast_expression "(code ******)pppppppcVar34" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) identifier)) ;) (expression_statement "pppppppcVar29 = local_94;" (assignment_expression "pppppppcVar29 = local_94" identifier = identifier) ;) (if_statement "if (local_98 != (code *******)pppppppcVar33[1]) {\n                        pppppppcVar29 = *(code ********)(local_a8 + (int)pppppppcVar33[1] * 4);\n                      }" if (parenthesized_expression "(local_98 != (code *******)pppppppcVar33[1])" ( (binary_expression "local_98 != (code *******)pppppppcVar33[1]" identifier != (cast_expression "(code *******)pppppppcVar33[1]" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (subscript_expression "pppppppcVar33[1]" identifier [ number_literal ]))) )) (compound_statement "{\n                        pppppppcVar29 = *(code ********)(local_a8 + (int)pppppppcVar33[1] * 4);\n                      }" { (expression_statement "pppppppcVar29 = *(code ********)(local_a8 + (int)pppppppcVar33[1] * 4);" (assignment_expression "pppppppcVar29 = *(code ********)(local_a8 + (int)pppppppcVar33[1] * 4)" identifier = (pointer_expression "*(code ********)(local_a8 + (int)pppppppcVar33[1] * 4)" * (cast_expression "(code ********)(local_a8 + (int)pppppppcVar33[1] * 4)" ( (type_descriptor "code ********" type_identifier (abstract_pointer_declarator "********" * (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))))) ) (parenthesized_expression "(local_a8 + (int)pppppppcVar33[1] * 4)" ( (binary_expression "local_a8 + (int)pppppppcVar33[1] * 4" identifier + (binary_expression "(int)pppppppcVar33[1] * 4" (cast_expression "(int)pppppppcVar33[1]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "pppppppcVar33[1]" identifier [ number_literal ])) * number_literal)) ))))) ;) })) (expression_statement "pppppppcVar33[1] = (code ******)pppppppcVar29;" (assignment_expression "pppppppcVar33[1] = (code ******)pppppppcVar29" (subscript_expression "pppppppcVar33[1]" identifier [ number_literal ]) = (cast_expression "(code ******)pppppppcVar29" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) identifier)) ;) })) (expression_statement "*pppppppcVar33 = (code ******)((int)local_dc + (int)*pppppppcVar33);" (assignment_expression "*pppppppcVar33 = (code ******)((int)local_dc + (int)*pppppppcVar33)" (pointer_expression "*pppppppcVar33" * identifier) = (cast_expression "(code ******)((int)local_dc + (int)*pppppppcVar33)" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "((int)local_dc + (int)*pppppppcVar33)" ( (binary_expression "(int)local_dc + (int)*pppppppcVar33" (cast_expression "(int)local_dc" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)*pppppppcVar33" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*pppppppcVar33" * identifier))) )))) ;) (expression_statement "pppppppcVar29 = (code *******)((int)local_dc + (int)pppppppcVar33[1]);" (assignment_expression "pppppppcVar29 = (code *******)((int)local_dc + (int)pppppppcVar33[1])" identifier = (cast_expression "(code *******)((int)local_dc + (int)pppppppcVar33[1])" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)local_dc + (int)pppppppcVar33[1])" ( (binary_expression "(int)local_dc + (int)pppppppcVar33[1]" (cast_expression "(int)local_dc" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)pppppppcVar33[1]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "pppppppcVar33[1]" identifier [ number_literal ]))) )))) ;) (expression_statement "pppppppcVar33[1] = (code ******)pppppppcVar29;" (assignment_expression "pppppppcVar33[1] = (code ******)pppppppcVar29" (subscript_expression "pppppppcVar33[1]" identifier [ number_literal ]) = (cast_expression "(code ******)pppppppcVar29" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) identifier)) ;) })) (expression_statement "pppppppcVar33 = pppppppcVar33 + 2;" (assignment_expression "pppppppcVar33 = pppppppcVar33 + 2" identifier = (binary_expression "pppppppcVar33 + 2" identifier + number_literal)) ;) }) while (parenthesized_expression "(pppppppcVar33 != param_8 + (int)pppppppcVar3 * 2)" ( (binary_expression "pppppppcVar33 != param_8 + (int)pppppppcVar3 * 2" identifier != (binary_expression "param_8 + (int)pppppppcVar3 * 2" identifier + (binary_expression "(int)pppppppcVar3 * 2" (cast_expression "(int)pppppppcVar3" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal))) )) ;) (if_statement "if (0 < local_118) {\n                  pppppppcVar33 = param_8 + (int)pppppppcVar3 * 2;\n                  do {\n                    *pppppppcVar33 = (code ******)0xffffffff;\n                    pppppppcVar33[1] = (code ******)0xffffffff;\n                    pppppppcVar33 = pppppppcVar33 + 2;\n                  } while (pppppppcVar33 != param_8 + (int)param_7 * 2);\n                }" if (parenthesized_expression "(0 < local_118)" ( (binary_expression "0 < local_118" number_literal < identifier) )) (compound_statement "{\n                  pppppppcVar33 = param_8 + (int)pppppppcVar3 * 2;\n                  do {\n                    *pppppppcVar33 = (code ******)0xffffffff;\n                    pppppppcVar33[1] = (code ******)0xffffffff;\n                    pppppppcVar33 = pppppppcVar33 + 2;\n                  } while (pppppppcVar33 != param_8 + (int)param_7 * 2);\n                }" { (expression_statement "pppppppcVar33 = param_8 + (int)pppppppcVar3 * 2;" (assignment_expression "pppppppcVar33 = param_8 + (int)pppppppcVar3 * 2" identifier = (binary_expression "param_8 + (int)pppppppcVar3 * 2" identifier + (binary_expression "(int)pppppppcVar3 * 2" (cast_expression "(int)pppppppcVar3" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal))) ;) (do_statement "do {\n                    *pppppppcVar33 = (code ******)0xffffffff;\n                    pppppppcVar33[1] = (code ******)0xffffffff;\n                    pppppppcVar33 = pppppppcVar33 + 2;\n                  } while (pppppppcVar33 != param_8 + (int)param_7 * 2);" do (compound_statement "{\n                    *pppppppcVar33 = (code ******)0xffffffff;\n                    pppppppcVar33[1] = (code ******)0xffffffff;\n                    pppppppcVar33 = pppppppcVar33 + 2;\n                  }" { (expression_statement "*pppppppcVar33 = (code ******)0xffffffff;" (assignment_expression "*pppppppcVar33 = (code ******)0xffffffff" (pointer_expression "*pppppppcVar33" * identifier) = (cast_expression "(code ******)0xffffffff" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) (expression_statement "pppppppcVar33[1] = (code ******)0xffffffff;" (assignment_expression "pppppppcVar33[1] = (code ******)0xffffffff" (subscript_expression "pppppppcVar33[1]" identifier [ number_literal ]) = (cast_expression "(code ******)0xffffffff" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) (expression_statement "pppppppcVar33 = pppppppcVar33 + 2;" (assignment_expression "pppppppcVar33 = pppppppcVar33 + 2" identifier = (binary_expression "pppppppcVar33 + 2" identifier + number_literal)) ;) }) while (parenthesized_expression "(pppppppcVar33 != param_8 + (int)param_7 * 2)" ( (binary_expression "pppppppcVar33 != param_8 + (int)param_7 * 2" identifier != (binary_expression "param_8 + (int)param_7 * 2" identifier + (binary_expression "(int)param_7 * 2" (cast_expression "(int)param_7" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal))) )) ;) })) (expression_statement "pppppppcVar30 = local_dc;" (assignment_expression "pppppppcVar30 = local_dc" identifier = identifier) ;) (expression_statement "pppppppcVar33 = param_8;" (assignment_expression "pppppppcVar33 = param_8" identifier = identifier) ;) (expression_statement "local_150 = pppppppcVar6;" (assignment_expression "local_150 = pppppppcVar6" identifier = identifier) ;) (if_statement "if (pppppppcVar38[0x21] != (code ******)0x0) {\n                  pppppppcVar30 = (code *******)((int)pppppppcVar3 + -1);\n                  pppppppcVar34 = (code *******)0x0;\n                  pppppppcVar3 = param_8;\n                  while( true ) {\n                    pppppppcVar29 = (code *******)((int)pppppppcVar34 * 4);\n                    if (pppppppcVar30 == pppppppcVar34) break;\n                    if (*(code ********)((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) !=\n                        pppppppcVar34) {\n                      pppppppcVar3[2] =\n                           param_8[(int)((int)*(code ********)\n                                               ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1)\n                                   * 2];\n                      pppppppcVar3[3] =\n                           param_8[((int)*(code ******)\n                                          ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1) * 2 +\n                                   1];\n                    }\n                    pppppppcVar34 = (code *******)((int)pppppppcVar34 + 1);\n                    pppppppcVar3 = pppppppcVar3 + 2;\n                  }\n                }" if (parenthesized_expression "(pppppppcVar38[0x21] != (code ******)0x0)" ( (binary_expression "pppppppcVar38[0x21] != (code ******)0x0" (subscript_expression "pppppppcVar38[0x21]" identifier [ number_literal ]) != (cast_expression "(code ******)0x0" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (compound_statement "{\n                  pppppppcVar30 = (code *******)((int)pppppppcVar3 + -1);\n                  pppppppcVar34 = (code *******)0x0;\n                  pppppppcVar3 = param_8;\n                  while( true ) {\n                    pppppppcVar29 = (code *******)((int)pppppppcVar34 * 4);\n                    if (pppppppcVar30 == pppppppcVar34) break;\n                    if (*(code ********)((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) !=\n                        pppppppcVar34) {\n                      pppppppcVar3[2] =\n                           param_8[(int)((int)*(code ********)\n                                               ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1)\n                                   * 2];\n                      pppppppcVar3[3] =\n                           param_8[((int)*(code ******)\n                                          ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1) * 2 +\n                                   1];\n                    }\n                    pppppppcVar34 = (code *******)((int)pppppppcVar34 + 1);\n                    pppppppcVar3 = pppppppcVar3 + 2;\n                  }\n                }" { (expression_statement "pppppppcVar30 = (code *******)((int)pppppppcVar3 + -1);" (assignment_expression "pppppppcVar30 = (code *******)((int)pppppppcVar3 + -1)" identifier = (cast_expression "(code *******)((int)pppppppcVar3 + -1)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)pppppppcVar3 + -1)" ( (binary_expression "(int)pppppppcVar3 + -1" (cast_expression "(int)pppppppcVar3" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "pppppppcVar34 = (code *******)0x0;" (assignment_expression "pppppppcVar34 = (code *******)0x0" identifier = (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "pppppppcVar3 = param_8;" (assignment_expression "pppppppcVar3 = param_8" identifier = identifier) ;) (while_statement "while( true ) {\n                    pppppppcVar29 = (code *******)((int)pppppppcVar34 * 4);\n                    if (pppppppcVar30 == pppppppcVar34) break;\n                    if (*(code ********)((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) !=\n                        pppppppcVar34) {\n                      pppppppcVar3[2] =\n                           param_8[(int)((int)*(code ********)\n                                               ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1)\n                                   * 2];\n                      pppppppcVar3[3] =\n                           param_8[((int)*(code ******)\n                                          ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1) * 2 +\n                                   1];\n                    }\n                    pppppppcVar34 = (code *******)((int)pppppppcVar34 + 1);\n                    pppppppcVar3 = pppppppcVar3 + 2;\n                  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                    pppppppcVar29 = (code *******)((int)pppppppcVar34 * 4);\n                    if (pppppppcVar30 == pppppppcVar34) break;\n                    if (*(code ********)((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) !=\n                        pppppppcVar34) {\n                      pppppppcVar3[2] =\n                           param_8[(int)((int)*(code ********)\n                                               ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1)\n                                   * 2];\n                      pppppppcVar3[3] =\n                           param_8[((int)*(code ******)\n                                          ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1) * 2 +\n                                   1];\n                    }\n                    pppppppcVar34 = (code *******)((int)pppppppcVar34 + 1);\n                    pppppppcVar3 = pppppppcVar3 + 2;\n                  }" { (expression_statement "pppppppcVar29 = (code *******)((int)pppppppcVar34 * 4);" (assignment_expression "pppppppcVar29 = (code *******)((int)pppppppcVar34 * 4)" identifier = (cast_expression "(code *******)((int)pppppppcVar34 * 4)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)pppppppcVar34 * 4)" ( (binary_expression "(int)pppppppcVar34 * 4" (cast_expression "(int)pppppppcVar34" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) )))) ;) (if_statement "if (pppppppcVar30 == pppppppcVar34) break;" if (parenthesized_expression "(pppppppcVar30 == pppppppcVar34)" ( (binary_expression "pppppppcVar30 == pppppppcVar34" identifier == identifier) )) (break_statement "break;" break ;)) (if_statement "if (*(code ********)((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) !=\n                        pppppppcVar34) {\n                      pppppppcVar3[2] =\n                           param_8[(int)((int)*(code ********)\n                                               ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1)\n                                   * 2];\n                      pppppppcVar3[3] =\n                           param_8[((int)*(code ******)\n                                          ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1) * 2 +\n                                   1];\n                    }" if (parenthesized_expression "(*(code ********)((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) !=\n                        pppppppcVar34)" ( (binary_expression "*(code ********)((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) !=\n                        pppppppcVar34" (pointer_expression "*(code ********)((int)pppppppcVar29 + (int)pppppppcVar38[0x21])" * (cast_expression "(code ********)((int)pppppppcVar29 + (int)pppppppcVar38[0x21])" ( (type_descriptor "code ********" type_identifier (abstract_pointer_declarator "********" * (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))))) ) (parenthesized_expression "((int)pppppppcVar29 + (int)pppppppcVar38[0x21])" ( (binary_expression "(int)pppppppcVar29 + (int)pppppppcVar38[0x21]" (cast_expression "(int)pppppppcVar29" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)pppppppcVar38[0x21]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "pppppppcVar38[0x21]" identifier [ number_literal ]))) )))) != identifier) )) (compound_statement "{\n                      pppppppcVar3[2] =\n                           param_8[(int)((int)*(code ********)\n                                               ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1)\n                                   * 2];\n                      pppppppcVar3[3] =\n                           param_8[((int)*(code ******)\n                                          ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1) * 2 +\n                                   1];\n                    }" { (expression_statement "pppppppcVar3[2] =\n                           param_8[(int)((int)*(code ********)\n                                               ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1)\n                                   * 2];" (assignment_expression "pppppppcVar3[2] =\n                           param_8[(int)((int)*(code ********)\n                                               ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1)\n                                   * 2]" (subscript_expression "pppppppcVar3[2]" identifier [ number_literal ]) = (subscript_expression "param_8[(int)((int)*(code ********)\n                                               ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1)\n                                   * 2]" identifier [ (binary_expression "(int)((int)*(code ********)\n                                               ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1)\n                                   * 2" (cast_expression "(int)((int)*(code ********)\n                                               ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)*(code ********)\n                                               ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1)" ( (binary_expression "(int)*(code ********)\n                                               ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1" (cast_expression "(int)*(code ********)\n                                               ((int)pppppppcVar29 + (int)pppppppcVar38[0x21])" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(code ********)\n                                               ((int)pppppppcVar29 + (int)pppppppcVar38[0x21])" * (cast_expression "(code ********)\n                                               ((int)pppppppcVar29 + (int)pppppppcVar38[0x21])" ( (type_descriptor "code ********" type_identifier (abstract_pointer_declarator "********" * (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))))) ) (parenthesized_expression "((int)pppppppcVar29 + (int)pppppppcVar38[0x21])" ( (binary_expression "(int)pppppppcVar29 + (int)pppppppcVar38[0x21]" (cast_expression "(int)pppppppcVar29" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)pppppppcVar38[0x21]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "pppppppcVar38[0x21]" identifier [ number_literal ]))) ))))) + number_literal) ))) * number_literal) ])) ;) (expression_statement "pppppppcVar3[3] =\n                           param_8[((int)*(code ******)\n                                          ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1) * 2 +\n                                   1];" (assignment_expression "pppppppcVar3[3] =\n                           param_8[((int)*(code ******)\n                                          ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1) * 2 +\n                                   1]" (subscript_expression "pppppppcVar3[3]" identifier [ number_literal ]) = (subscript_expression "param_8[((int)*(code ******)\n                                          ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1) * 2 +\n                                   1]" identifier [ (binary_expression "((int)*(code ******)\n                                          ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1) * 2 +\n                                   1" (binary_expression "((int)*(code ******)\n                                          ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1) * 2" (parenthesized_expression "((int)*(code ******)\n                                          ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1)" ( (binary_expression "(int)*(code ******)\n                                          ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1" (cast_expression "(int)*(code ******)\n                                          ((int)pppppppcVar29 + (int)pppppppcVar38[0x21])" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(code ******)\n                                          ((int)pppppppcVar29 + (int)pppppppcVar38[0x21])" * (cast_expression "(code ******)\n                                          ((int)pppppppcVar29 + (int)pppppppcVar38[0x21])" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "((int)pppppppcVar29 + (int)pppppppcVar38[0x21])" ( (binary_expression "(int)pppppppcVar29 + (int)pppppppcVar38[0x21]" (cast_expression "(int)pppppppcVar29" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)pppppppcVar38[0x21]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "pppppppcVar38[0x21]" identifier [ number_literal ]))) ))))) + number_literal) )) * number_literal) + number_literal) ])) ;) })) (expression_statement "pppppppcVar34 = (code *******)((int)pppppppcVar34 + 1);" (assignment_expression "pppppppcVar34 = (code *******)((int)pppppppcVar34 + 1)" identifier = (cast_expression "(code *******)((int)pppppppcVar34 + 1)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)pppppppcVar34 + 1)" ( (binary_expression "(int)pppppppcVar34 + 1" (cast_expression "(int)pppppppcVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "pppppppcVar3 = pppppppcVar3 + 2;" (assignment_expression "pppppppcVar3 = pppppppcVar3 + 2" identifier = (binary_expression "pppppppcVar3 + 2" identifier + number_literal)) ;) })) })) (goto_statement "goto LAB_000557e4;" goto statement_identifier ;) })) (if_statement "if ((char)*(code *)(pppppppcVar38 + 0x16) < '\0') {\n                local_168 = (uint)(0 < (int)pppppppcVar38[0x13]);\n              }\n              else {\n                local_168 = 0;\n              }" if (parenthesized_expression "((char)*(code *)(pppppppcVar38 + 0x16) < '\0')" ( (binary_expression "(char)*(code *)(pppppppcVar38 + 0x16) < '\0'" (cast_expression "(char)*(code *)(pppppppcVar38 + 0x16)" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(code *)(pppppppcVar38 + 0x16)" * (cast_expression "(code *)(pppppppcVar38 + 0x16)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pppppppcVar38 + 0x16)" ( (binary_expression "pppppppcVar38 + 0x16" identifier + number_literal) ))))) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                local_168 = (uint)(0 < (int)pppppppcVar38[0x13]);\n              }" { (expression_statement "local_168 = (uint)(0 < (int)pppppppcVar38[0x13]);" (assignment_expression "local_168 = (uint)(0 < (int)pppppppcVar38[0x13])" identifier = (call_expression "(uint)(0 < (int)pppppppcVar38[0x13])" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(0 < (int)pppppppcVar38[0x13])" ( (binary_expression "0 < (int)pppppppcVar38[0x13]" number_literal < (cast_expression "(int)pppppppcVar38[0x13]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "pppppppcVar38[0x13]" identifier [ number_literal ]))) )))) ;) }) (else_clause "else {\n                local_168 = 0;\n              }" else (compound_statement "{\n                local_168 = 0;\n              }" { (expression_statement "local_168 = 0;" (assignment_expression "local_168 = 0" identifier = number_literal) ;) }))) (expression_statement "pppppppcVar29 = &local_b4;" (assignment_expression "pppppppcVar29 = &local_b4" identifier = (pointer_expression "&local_b4" & identifier)) ;) (expression_statement "pppppppcVar30 = pppppppcVar3;" (assignment_expression "pppppppcVar30 = pppppppcVar3" identifier = identifier) ;) (expression_statement "pppppppcVar33 = param_8;" (assignment_expression "pppppppcVar33 = param_8" identifier = identifier) ;) (expression_statement "local_150 = (code *******)FUN_0004f4a0(param_1);" (assignment_expression "local_150 = (code *******)FUN_0004f4a0(param_1)" identifier = (cast_expression "(code *******)FUN_0004f4a0(param_1)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "FUN_0004f4a0(param_1)" identifier (argument_list "(param_1)" ( identifier ))))) ;) (if_statement "if (local_150 == (code *******)0x0) goto LAB_000555ac;" if (parenthesized_expression "(local_150 == (code *******)0x0)" ( (binary_expression "local_150 == (code *******)0x0" identifier == (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (goto_statement "goto LAB_000555ac;" goto statement_identifier ;)) }))))) }) (else_clause "else if (local_90 < 0x3fffffff) {\n            local_50 = (code *******)(*(code *)PTR_malloc_00079b54)((local_90 + 1) * 4);\n            if (local_50 != (code *******)0x0) goto LAB_00055a40;\n            local_150 = (code *******)0xc;\n            param_6 = pppppppcVar36;\n          }\n          else {\n            local_150 = (code *******)0xc;\n            param_6 = pppppppcVar36;\n          }" else (if_statement "if (local_90 < 0x3fffffff) {\n            local_50 = (code *******)(*(code *)PTR_malloc_00079b54)((local_90 + 1) * 4);\n            if (local_50 != (code *******)0x0) goto LAB_00055a40;\n            local_150 = (code *******)0xc;\n            param_6 = pppppppcVar36;\n          }\n          else {\n            local_150 = (code *******)0xc;\n            param_6 = pppppppcVar36;\n          }" if (parenthesized_expression "(local_90 < 0x3fffffff)" ( (binary_expression "local_90 < 0x3fffffff" identifier < number_literal) )) (compound_statement "{\n            local_50 = (code *******)(*(code *)PTR_malloc_00079b54)((local_90 + 1) * 4);\n            if (local_50 != (code *******)0x0) goto LAB_00055a40;\n            local_150 = (code *******)0xc;\n            param_6 = pppppppcVar36;\n          }" { (expression_statement "local_50 = (code *******)(*(code *)PTR_malloc_00079b54)((local_90 + 1) * 4);" (assignment_expression "local_50 = (code *******)(*(code *)PTR_malloc_00079b54)((local_90 + 1) * 4)" identifier = (cast_expression "(code *******)(*(code *)PTR_malloc_00079b54)((local_90 + 1) * 4)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "(*(code *)PTR_malloc_00079b54)((local_90 + 1) * 4)" (parenthesized_expression "(*(code *)PTR_malloc_00079b54)" ( (pointer_expression "*(code *)PTR_malloc_00079b54" * (cast_expression "(code *)PTR_malloc_00079b54" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "((local_90 + 1) * 4)" ( (binary_expression "(local_90 + 1) * 4" (parenthesized_expression "(local_90 + 1)" ( (binary_expression "local_90 + 1" identifier + number_literal) )) * number_literal) ))))) ;) (if_statement "if (local_50 != (code *******)0x0) goto LAB_00055a40;" if (parenthesized_expression "(local_50 != (code *******)0x0)" ( (binary_expression "local_50 != (code *******)0x0" identifier != (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (goto_statement "goto LAB_00055a40;" goto statement_identifier ;)) (expression_statement "local_150 = (code *******)0xc;" (assignment_expression "local_150 = (code *******)0xc" identifier = (cast_expression "(code *******)0xc" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "param_6 = pppppppcVar36;" (assignment_expression "param_6 = pppppppcVar36" identifier = identifier) ;) }) (else_clause "else {\n            local_150 = (code *******)0xc;\n            param_6 = pppppppcVar36;\n          }" else (compound_statement "{\n            local_150 = (code *******)0xc;\n            param_6 = pppppppcVar36;\n          }" { (expression_statement "local_150 = (code *******)0xc;" (assignment_expression "local_150 = (code *******)0xc" identifier = (cast_expression "(code *******)0xc" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "param_6 = pppppppcVar36;" (assignment_expression "param_6 = pppppppcVar36" identifier = identifier) ;) }))))) }) (else_clause "else {\n          unaff_s5 = (code *******)((int)ppppppcVar35 * 8);\n          if (pppppppcVar36 < (code *******)0xccccccd) {\n            unaff_s4 = (code *******)(*(code *)PTR_malloc_00079b54)((int)ppppppcVar35 * 0x28);\n            local_40 = unaff_s4;\n            local_30 = (*(code *)PTR_malloc_00079b54)(unaff_s5);\n            if ((unaff_s4 != (code *******)0x0) && (local_30 != 0)) goto LAB_000559f0;\n          }\n          local_150 = (code *******)0xc;\n          param_6 = pppppppcVar36;\n        }" else (compound_statement "{\n          unaff_s5 = (code *******)((int)ppppppcVar35 * 8);\n          if (pppppppcVar36 < (code *******)0xccccccd) {\n            unaff_s4 = (code *******)(*(code *)PTR_malloc_00079b54)((int)ppppppcVar35 * 0x28);\n            local_40 = unaff_s4;\n            local_30 = (*(code *)PTR_malloc_00079b54)(unaff_s5);\n            if ((unaff_s4 != (code *******)0x0) && (local_30 != 0)) goto LAB_000559f0;\n          }\n          local_150 = (code *******)0xc;\n          param_6 = pppppppcVar36;\n        }" { (expression_statement "unaff_s5 = (code *******)((int)ppppppcVar35 * 8);" (assignment_expression "unaff_s5 = (code *******)((int)ppppppcVar35 * 8)" identifier = (cast_expression "(code *******)((int)ppppppcVar35 * 8)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)ppppppcVar35 * 8)" ( (binary_expression "(int)ppppppcVar35 * 8" (cast_expression "(int)ppppppcVar35" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) )))) ;) (if_statement "if (pppppppcVar36 < (code *******)0xccccccd) {\n            unaff_s4 = (code *******)(*(code *)PTR_malloc_00079b54)((int)ppppppcVar35 * 0x28);\n            local_40 = unaff_s4;\n            local_30 = (*(code *)PTR_malloc_00079b54)(unaff_s5);\n            if ((unaff_s4 != (code *******)0x0) && (local_30 != 0)) goto LAB_000559f0;\n          }" if (parenthesized_expression "(pppppppcVar36 < (code *******)0xccccccd)" ( (binary_expression "pppppppcVar36 < (code *******)0xccccccd" identifier < (cast_expression "(code *******)0xccccccd" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\n            unaff_s4 = (code *******)(*(code *)PTR_malloc_00079b54)((int)ppppppcVar35 * 0x28);\n            local_40 = unaff_s4;\n            local_30 = (*(code *)PTR_malloc_00079b54)(unaff_s5);\n            if ((unaff_s4 != (code *******)0x0) && (local_30 != 0)) goto LAB_000559f0;\n          }" { (expression_statement "unaff_s4 = (code *******)(*(code *)PTR_malloc_00079b54)((int)ppppppcVar35 * 0x28);" (assignment_expression "unaff_s4 = (code *******)(*(code *)PTR_malloc_00079b54)((int)ppppppcVar35 * 0x28)" identifier = (cast_expression "(code *******)(*(code *)PTR_malloc_00079b54)((int)ppppppcVar35 * 0x28)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "(*(code *)PTR_malloc_00079b54)((int)ppppppcVar35 * 0x28)" (parenthesized_expression "(*(code *)PTR_malloc_00079b54)" ( (pointer_expression "*(code *)PTR_malloc_00079b54" * (cast_expression "(code *)PTR_malloc_00079b54" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "((int)ppppppcVar35 * 0x28)" ( (binary_expression "(int)ppppppcVar35 * 0x28" (cast_expression "(int)ppppppcVar35" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) ))))) ;) (expression_statement "local_40 = unaff_s4;" (assignment_expression "local_40 = unaff_s4" identifier = identifier) ;) (expression_statement "local_30 = (*(code *)PTR_malloc_00079b54)(unaff_s5);" (assignment_expression "local_30 = (*(code *)PTR_malloc_00079b54)(unaff_s5)" identifier = (call_expression "(*(code *)PTR_malloc_00079b54)(unaff_s5)" (parenthesized_expression "(*(code *)PTR_malloc_00079b54)" ( (pointer_expression "*(code *)PTR_malloc_00079b54" * (cast_expression "(code *)PTR_malloc_00079b54" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s5)" ( identifier )))) ;) (if_statement "if ((unaff_s4 != (code *******)0x0) && (local_30 != 0)) goto LAB_000559f0;" if (parenthesized_expression "((unaff_s4 != (code *******)0x0) && (local_30 != 0))" ( (binary_expression "(unaff_s4 != (code *******)0x0) && (local_30 != 0)" (parenthesized_expression "(unaff_s4 != (code *******)0x0)" ( (binary_expression "unaff_s4 != (code *******)0x0" identifier != (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) && (parenthesized_expression "(local_30 != 0)" ( (binary_expression "local_30 != 0" identifier != number_literal) ))) )) (goto_statement "goto LAB_000559f0;" goto statement_identifier ;)) })) (expression_statement "local_150 = (code *******)0xc;" (assignment_expression "local_150 = (code *******)0xc" identifier = (cast_expression "(code *******)0xc" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "param_6 = pppppppcVar36;" (assignment_expression "param_6 = pppppppcVar36" identifier = identifier) ;) }))) (labeled_statement "LAB_000557e4:\n        (*(code *)PTR_free_00079c24)(local_50);" statement_identifier : (expression_statement "(*(code *)PTR_free_00079c24)(local_50);" (call_expression "(*(code *)PTR_free_00079c24)(local_50)" (parenthesized_expression "(*(code *)PTR_free_00079c24)" ( (pointer_expression "*(code *)PTR_free_00079c24" * (cast_expression "(code *)PTR_free_00079c24" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_50)" ( identifier ))) ;)) (expression_statement "param_1 = pppppppcVar30;" (assignment_expression "param_1 = pppppppcVar30" identifier = identifier) ;) (if_statement "if (pppppppcVar38[0x13] != (code ******)0x0) {\n          FUN_0004b7e8(&local_b4);\n          (*(code *)PTR_free_00079c24)(local_30);\n          (*(code *)PTR_free_00079c24)(local_40);\n          param_1 = pppppppcVar30;\n        }" if (parenthesized_expression "(pppppppcVar38[0x13] != (code ******)0x0)" ( (binary_expression "pppppppcVar38[0x13] != (code ******)0x0" (subscript_expression "pppppppcVar38[0x13]" identifier [ number_literal ]) != (cast_expression "(code ******)0x0" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (compound_statement "{\n          FUN_0004b7e8(&local_b4);\n          (*(code *)PTR_free_00079c24)(local_30);\n          (*(code *)PTR_free_00079c24)(local_40);\n          param_1 = pppppppcVar30;\n        }" { (expression_statement "FUN_0004b7e8(&local_b4);" (call_expression "FUN_0004b7e8(&local_b4)" identifier (argument_list "(&local_b4)" ( (pointer_expression "&local_b4" & identifier) ))) ;) (expression_statement "(*(code *)PTR_free_00079c24)(local_30);" (call_expression "(*(code *)PTR_free_00079c24)(local_30)" (parenthesized_expression "(*(code *)PTR_free_00079c24)" ( (pointer_expression "*(code *)PTR_free_00079c24" * (cast_expression "(code *)PTR_free_00079c24" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_30)" ( identifier ))) ;) (expression_statement "(*(code *)PTR_free_00079c24)(local_40);" (call_expression "(*(code *)PTR_free_00079c24)(local_40)" (parenthesized_expression "(*(code *)PTR_free_00079c24)" ( (pointer_expression "*(code *)PTR_free_00079c24" * (cast_expression "(code *)PTR_free_00079c24" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_40)" ( identifier ))) ;) (expression_statement "param_1 = pppppppcVar30;" (assignment_expression "param_1 = pppppppcVar30" identifier = identifier) ;) })) (expression_statement "FUN_0004b2bc(&local_b4);" (call_expression "FUN_0004b2bc(&local_b4)" identifier (argument_list "(&local_b4)" ( (pointer_expression "&local_b4" & identifier) ))) ;) (expression_statement "pppppppcStack_1a0 = param_4;" (assignment_expression "pppppppcStack_1a0 = param_4" identifier = identifier) ;) (expression_statement "pppppppcStack_19c = pppppppcVar31;" (assignment_expression "pppppppcStack_19c = pppppppcVar31" identifier = identifier) ;) }))) }))) }))))))))) (if_statement "if (local_2c == *(code ********)PTR___stack_chk_guard_00079c10) {\n    return local_150;\n  }" if (parenthesized_expression "(local_2c == *(code ********)PTR___stack_chk_guard_00079c10)" ( (binary_expression "local_2c == *(code ********)PTR___stack_chk_guard_00079c10" identifier == (pointer_expression "*(code ********)PTR___stack_chk_guard_00079c10" * (cast_expression "(code ********)PTR___stack_chk_guard_00079c10" ( (type_descriptor "code ********" type_identifier (abstract_pointer_declarator "********" * (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))))) ) identifier))) )) (compound_statement "{\n    return local_150;\n  }" { (return_statement "return local_150;" return identifier ;) })) (expression_statement "pcVar4 = FUN_00055e64;" (assignment_expression "pcVar4 = FUN_00055e64" identifier = identifier) ;) (expression_statement "pppppppcVar3 = local_2c;" (assignment_expression "pppppppcVar3 = local_2c" identifier = identifier) ;) (expression_statement "puVar41 = PTR___stack_chk_fail_00079bd0;" (assignment_expression "puVar41 = PTR___stack_chk_fail_00079bd0" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_00079bd0)();" (call_expression "(*(code *)PTR___stack_chk_fail_00079bd0)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_00079bd0)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_00079bd0" * (cast_expression "(code *)PTR___stack_chk_fail_00079bd0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "iStack_1a4 = **(int **)(puVar41 + 0x23dac);" (assignment_expression "iStack_1a4 = **(int **)(puVar41 + 0x23dac)" identifier = (pointer_expression "**(int **)(puVar41 + 0x23dac)" * (pointer_expression "*(int **)(puVar41 + 0x23dac)" * (cast_expression "(int **)(puVar41 + 0x23dac)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar41 + 0x23dac)" ( (binary_expression "puVar41 + 0x23dac" identifier + number_literal) )))))) ;) (expression_statement "pppppppcStack_20c = (code *******)0x0;" (assignment_expression "pppppppcStack_20c = (code *******)0x0" identifier = (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "pppppppcVar3[3] = (code ******)pppppppcVar33;" (assignment_expression "pppppppcVar3[3] = (code ******)pppppppcVar33" (subscript_expression "pppppppcVar3[3]" identifier [ number_literal ]) = (cast_expression "(code ******)pppppppcVar33" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) identifier)) ;) (expression_statement "pppppppcVar3[2] = (code ******)0x0;" (assignment_expression "pppppppcVar3[2] = (code ******)0x0" (subscript_expression "pppppppcVar3[2]" identifier [ number_literal ]) = (cast_expression "(code ******)0x0" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) (expression_statement "pppppppcVar3[6] = (code ******)0x0;" (assignment_expression "pppppppcVar3[6] = (code ******)0x0" (subscript_expression "pppppppcVar3[6]" identifier [ number_literal ]) = (cast_expression "(code ******)0x0" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) (expression_statement "*(byte *)(pppppppcVar3 + 7) = (byte)*(code *)(pppppppcVar3 + 7) & 9;" (assignment_expression "*(byte *)(pppppppcVar3 + 7) = (byte)*(code *)(pppppppcVar3 + 7) & 9" (pointer_expression "*(byte *)(pppppppcVar3 + 7)" * (cast_expression "(byte *)(pppppppcVar3 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pppppppcVar3 + 7)" ( (binary_expression "pppppppcVar3 + 7" identifier + number_literal) )))) = (binary_expression "(byte)*(code *)(pppppppcVar3 + 7) & 9" (binary_expression "(byte)*(code *)(pppppppcVar3 + 7)" (parenthesized_expression "(byte)" ( identifier )) * (cast_expression "(code *)(pppppppcVar3 + 7)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pppppppcVar3 + 7)" ( (binary_expression "pppppppcVar3 + 7" identifier + number_literal) )))) & number_literal)) ;) (expression_statement "pppppppcVar34 = (code *******)*pppppppcVar3;" (assignment_expression "pppppppcVar34 = (code *******)*pppppppcVar3" identifier = (cast_expression "(code *******)*pppppppcVar3" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "*pppppppcVar3" * identifier))) ;) (expression_statement "pppppppcStack_198 = param_5;" (assignment_expression "pppppppcStack_198 = param_5" identifier = identifier) ;) (expression_statement "pppppppcStack_194 = param_6;" (assignment_expression "pppppppcStack_194 = param_6" identifier = identifier) ;) (expression_statement "pppppppcStack_190 = unaff_s4;" (assignment_expression "pppppppcStack_190 = unaff_s4" identifier = identifier) ;) (expression_statement "pppppppcStack_18c = unaff_s5;" (assignment_expression "pppppppcStack_18c = unaff_s5" identifier = identifier) ;) (expression_statement "pppppppcStack_188 = pppppppcVar38;" (assignment_expression "pppppppcStack_188 = pppppppcVar38" identifier = identifier) ;) (expression_statement "pppppppcStack_184 = unaff_s7;" (assignment_expression "pppppppcStack_184 = unaff_s7" identifier = identifier) ;) (expression_statement "pppppppcStack_180 = unaff_s8;" (assignment_expression "pppppppcStack_180 = unaff_s8" identifier = identifier) ;) (expression_statement "pcStack_17c = pcVar4;" (assignment_expression "pcStack_17c = pcVar4" identifier = identifier) ;) (if_statement "if (pppppppcVar3[1] < (code ******)0xa0) {\n    pppppppcVar38 = (code *******)0xa0;\n    pppppppcVar31 = param_1;\n    pppppppcVar34 = (code *******)(**(code **)(puVar41 + 0x23cf8))(pppppppcVar34,0xa0);\n    if (pppppppcVar34 == (code *******)0x0) {\n      pppppppcVar29 = (code *******)0xc;\n      goto LAB_00056cfc;\n    }\n    pppppppcVar3[1] = (code ******)0xa0;\n    *pppppppcVar3 = (code ******)pppppppcVar34;\n  }" if (parenthesized_expression "(pppppppcVar3[1] < (code ******)0xa0)" ( (binary_expression "pppppppcVar3[1] < (code ******)0xa0" (subscript_expression "pppppppcVar3[1]" identifier [ number_literal ]) < (cast_expression "(code ******)0xa0" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (compound_statement "{\n    pppppppcVar38 = (code *******)0xa0;\n    pppppppcVar31 = param_1;\n    pppppppcVar34 = (code *******)(**(code **)(puVar41 + 0x23cf8))(pppppppcVar34,0xa0);\n    if (pppppppcVar34 == (code *******)0x0) {\n      pppppppcVar29 = (code *******)0xc;\n      goto LAB_00056cfc;\n    }\n    pppppppcVar3[1] = (code ******)0xa0;\n    *pppppppcVar3 = (code ******)pppppppcVar34;\n  }" { (expression_statement "pppppppcVar38 = (code *******)0xa0;" (assignment_expression "pppppppcVar38 = (code *******)0xa0" identifier = (cast_expression "(code *******)0xa0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "pppppppcVar31 = param_1;" (assignment_expression "pppppppcVar31 = param_1" identifier = identifier) ;) (expression_statement "pppppppcVar34 = (code *******)(**(code **)(puVar41 + 0x23cf8))(pppppppcVar34,0xa0);" (assignment_expression "pppppppcVar34 = (code *******)(**(code **)(puVar41 + 0x23cf8))(pppppppcVar34,0xa0)" identifier = (cast_expression "(code *******)(**(code **)(puVar41 + 0x23cf8))(pppppppcVar34,0xa0)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "(**(code **)(puVar41 + 0x23cf8))(pppppppcVar34,0xa0)" (parenthesized_expression "(**(code **)(puVar41 + 0x23cf8))" ( (pointer_expression "**(code **)(puVar41 + 0x23cf8)" * (pointer_expression "*(code **)(puVar41 + 0x23cf8)" * (cast_expression "(code **)(puVar41 + 0x23cf8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar41 + 0x23cf8)" ( (binary_expression "puVar41 + 0x23cf8" identifier + number_literal) ))))) )) (argument_list "(pppppppcVar34,0xa0)" ( identifier , number_literal ))))) ;) (if_statement "if (pppppppcVar34 == (code *******)0x0) {\n      pppppppcVar29 = (code *******)0xc;\n      goto LAB_00056cfc;\n    }" if (parenthesized_expression "(pppppppcVar34 == (code *******)0x0)" ( (binary_expression "pppppppcVar34 == (code *******)0x0" identifier == (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\n      pppppppcVar29 = (code *******)0xc;\n      goto LAB_00056cfc;\n    }" { (expression_statement "pppppppcVar29 = (code *******)0xc;" (assignment_expression "pppppppcVar29 = (code *******)0xc" identifier = (cast_expression "(code *******)0xc" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (goto_statement "goto LAB_00056cfc;" goto statement_identifier ;) })) (expression_statement "pppppppcVar3[1] = (code ******)0xa0;" (assignment_expression "pppppppcVar3[1] = (code ******)0xa0" (subscript_expression "pppppppcVar3[1]" identifier [ number_literal ]) = (cast_expression "(code ******)0xa0" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) (expression_statement "*pppppppcVar3 = (code ******)pppppppcVar34;" (assignment_expression "*pppppppcVar3 = (code ******)pppppppcVar34" (pointer_expression "*pppppppcVar3" * identifier) = (cast_expression "(code ******)pppppppcVar34" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) identifier)) ;) })) (expression_statement "pppppppcVar3[2] = (code ******)0xa0;" (assignment_expression "pppppppcVar3[2] = (code ******)0xa0" (subscript_expression "pppppppcVar3[2]" identifier [ number_literal ]) = (cast_expression "(code ******)0xa0" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) (expression_statement "pppppppcVar31 = (code *******)0xa0;" (assignment_expression "pppppppcVar31 = (code *******)0xa0" identifier = (cast_expression "(code *******)0xa0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "pppppppcVar38 = (code *******)0x0;" (assignment_expression "pppppppcVar38 = (code *******)0x0" identifier = (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "(**(code **)(puVar41 + 0x23c9c))(pppppppcVar34,0);" (call_expression "(**(code **)(puVar41 + 0x23c9c))(pppppppcVar34,0)" (parenthesized_expression "(**(code **)(puVar41 + 0x23c9c))" ( (pointer_expression "**(code **)(puVar41 + 0x23c9c)" * (pointer_expression "*(code **)(puVar41 + 0x23c9c)" * (cast_expression "(code **)(puVar41 + 0x23c9c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar41 + 0x23c9c)" ( (binary_expression "puVar41 + 0x23c9c" identifier + number_literal) ))))) )) (argument_list "(pppppppcVar34,0)" ( identifier , number_literal ))) ;) (expression_statement "pppppppcVar34[0x10] = (code ******)0x1f;" (assignment_expression "pppppppcVar34[0x10] = (code ******)0x1f" (subscript_expression "pppppppcVar34[0x10]" identifier [ number_literal ]) = (cast_expression "(code ******)0x1f" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) (if_statement "if (param_1 < (code *******)0xaaaaaaa) {\n    pppppppcVar34[1] = (code ******)((int)param_1 + 1);\n    ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23cf0))(((int)param_1 + 1) * 8);\n    *pppppppcVar34 = ppppppcVar32;\n    if (param_1 == (code *******)0x0) {\n      pppppppcVar30 = (code *******)0x1;\n    }\n    else {\n      pppppppcVar30 = (code *******)0x1;\n      do {\n        pppppppcVar30 = (code *******)((int)pppppppcVar30 << 1);\n      } while (pppppppcVar30 <= param_1);\n    }\n    pppppppcVar38 = pppppppcVar30;\n    ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23b8c))(0xc,pppppppcVar30);\n    pppppppcVar34[8] = ppppppcVar32;\n    pppppppcVar34[0x11] = (code ******)((int)pppppppcVar30 + -1);\n    ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23d2c))();\n    pppppppcVar34[0x17] = ppppppcVar32;\n    pbVar17 = (byte *)(**(code **)(puVar41 + 0x23c2c))(0xe);\n    if ((((*pbVar17 & 0xdf) == 0x55) && ((pbVar17[1] & 0xdf) == 0x54)) &&\n       (pppppppcVar38 = (code *******)0x4, (pbVar17[2] & 0xdf) == 0x46)) {\n      iVar18 = 3;\n      if (pbVar17[3] == 0x2d) {\n        iVar18 = 4;\n      }\n      pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23754) + 0x71b4);\n      iVar18 = (**(code **)(puVar41 + 0x23dfc))(pbVar17 + iVar18,pppppppcVar38);\n      if (iVar18 == 0) {\n        *(byte *)(pppppppcVar34 + 0x16) = (byte)*(code *)(pppppppcVar34 + 0x16) & 0xdf | 0x20;\n      }\n    }\n    *(byte *)(pppppppcVar34 + 0x16) = (byte)*(code *)(pppppppcVar34 + 0x16) & 0xef;\n    if (1 < (int)pppppppcVar34[0x17]) {\n      if (((uint)pppppppcVar34[0x16] & 0x20000000) == 0) {\n        pppppppcVar38 = (code *******)0x1;\n        ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23b8c))(0x20,1);\n        pppppppcVar34[0xf] = ppppppcVar32;\n        if (ppppppcVar32 == (code ******)0x0) goto LAB_00056e5c;\n        iVar18 = 0;\n        do {\n          uVar16 = iVar18 << 3;\n          uVar7 = 0;\n          do {\n            uVar19 = (**(code **)(puVar41 + 0x23c88))(uVar16);\n            if (uVar19 != 0xffffffff) {\n              pppppppcVar38 = *(code ********)((int)pppppppcVar34[0xf] + iVar18);\n              *(uint *)((int)pppppppcVar34[0xf] + iVar18) =\n                   (uint)pppppppcVar38 | 1 << (uVar7 & 0x1f);\n            }\n            if (((uVar16 & 0xffffff80) == 0) && (uVar19 != uVar16)) {\n              *(byte *)(pppppppcVar34 + 0x16) = (byte)*(code *)(pppppppcVar34 + 0x16) & 0xef | 0x10;\n            }\n            uVar7 = uVar7 + 1;\n            uVar16 = uVar16 + 1;\n          } while (uVar7 != 0x20);\n          iVar18 = iVar18 + 4;\n        } while (iVar18 != 0x20);\n      }\n      else {\n        pppppppcVar34[0xf] = (code ******)(*(int *)(puVar41 + 0x23754) + 0x6ee4);\n      }\n    }\n    if ((*pppppppcVar34 == (code ******)0x0) || (pppppppcVar34[8] == (code ******)0x0))\n    goto LAB_00056e5c;\n    pppppppcStack_20c = (code *******)0x0;\n    if (*(int *)(puVar41 + 0x23c78) == 0) {\nLAB_00056054:\n      ppppppcVar32 = pppppppcVar3[5];\n      uVar16 = (uint)pppppppcVar33 & 0x400000;\n      bVar1 = uVar16 != 0;\n      pppppppcVar31 = (code *******)0x4c;\n      pppppppcVar38 = (code *******)0x0;\n      (**(code **)(puVar41 + 0x23c9c))(apppppppcStack_1f4,0);\n      cStack_1ad = ppppppcVar32 != (code ******)0x0 || bVar1;\n      ppppppcStack_1a8 = pppppppcVar34[0x17];\n      bStack_1af = (byte)((uint)((int)pppppppcVar34[0x16] << 2) >> 0x1f);\n      bStack_1ae = (byte)((uint)((int)pppppppcVar34[0x16] << 3) >> 0x1f);\n      pppppppcStack_1f8 = pppppppcVar29;\n      pppppppcStack_1cc = param_1;\n      pppppppcStack_1c8 = param_1;\n      pppppppcStack_1c4 = param_1;\n      pppppppcStack_1c0 = param_1;\n      ppppppcStack_1b8 = ppppppcVar32;\n      uStack_1b0 = bVar1;\n      if (0 < (int)param_1) {\n        pppppppcVar38 = (code *******)((int)param_1 + 1);\n        pppppppcVar30 = (code *******)FUN_00046d2c(&pppppppcStack_1f8,pppppppcVar38);\n        if (pppppppcVar30 == (code *******)0x0) goto LAB_000560cc;\n        goto LAB_00056168;\n      }\nLAB_000560cc:\n      if (cStack_1ad != '\0') {\n        pppppppcVar29 = apppppppcStack_1f4[0];\n      }\n      apppppppcStack_1f4[0] = pppppppcVar29;\n      if (uVar16 == 0) {\n        if ((int)pppppppcVar34[0x17] < 2) {\n          if (ppppppcVar32 != (code ******)0x0) {\n            FUN_00045dc8();\n          }\n        }\n        else {\n          FUN_00047cb0(&pppppppcStack_1f8);\n        }\n      }\n      else {\n        if (1 < (int)pppppppcVar34[0x17]) {\n          iVar18 = *(int *)(puVar41 + 0x23abc);\n          do {\n            pppppppcVar30 = (code *******)FUN_00048714(&pppppppcStack_1f8);\n            if (pppppppcVar30 != (code *******)0x0) break;\n            if (((int)param_1 <= iStack_1d8) ||\n               (pppppppcVar38 = (code *******)(iStack_1d4 << 1),\n               (int)pppppppcVar34[0x17] + iStack_1dc < iStack_1d4)) goto LAB_000563d0;\n            pppppppcVar30 =\n                 (code *******)(*(code *)(iVar18 + 0x6d2c))(&pppppppcStack_1f8,pppppppcVar38);\n          } while (pppppppcVar30 == (code *******)0x0);\n          goto LAB_00056168;\n        }\n        FUN_00047be4(&pppppppcStack_1f8);\n      }\nLAB_000563d0:\n      pppppppcStack_20c = (code *******)0x0;\n      pppppppcVar3[6] = (code ******)0x0;\n      ppppppcVar32 = *pppppppcVar3;\n      ppppppcVar32[0x20] = (code *****)pppppppcVar33;\n      FUN_00049e40(&ppppppcStack_204,&pppppppcStack_1f8,(uint)pppppppcVar33 | 0x800000);\n      pppppppcVar38 = pppppppcVar3;\n      pppppppcVar29 =\n           (code *******)\n           FUN_00051868(&pppppppcStack_1f8,pppppppcVar3,&ppppppcStack_204,pppppppcVar33,0,\n                        &pppppppcStack_20c);\n      if (pppppppcStack_20c == (code *******)0x0) {\n        pppppppcVar31 = (code *******)0x0;\n        pppppppcVar38 = (code *******)0x0;\n        pppppppcVar33 = (code *******)FUN_000470f0(ppppppcVar32,0,0,2);\n        pppppppcVar30 = pppppppcVar33;\n        if (pppppppcVar29 != (code *******)0x0) {\nLAB_000564b0:\n          pppppppcVar31 = pppppppcVar33;\n          pppppppcVar30 = (code *******)FUN_000470f0(ppppppcVar32,pppppppcVar29,pppppppcVar33,0x10);\n          pppppppcVar38 = pppppppcVar29;\n        }\n        if ((pppppppcVar33 == (code *******)0x0) ||\n           (pcVar4 = *(code **)(puVar41 + 0x23cf0), pppppppcVar30 == (code *******)0x0)) {\n          pppppppcStack_20c = (code *******)0xc;\n          goto LAB_000566f4;\n        }\n        pppppppcVar34[0xd] = (code ******)pppppppcVar30;\n        pppppppcVar29 = (code *******)*pppppppcVar3;\n        ppppppcVar39 = pppppppcVar29[1];\n        iVar18 = (int)ppppppcVar39 << 2;\n        ppppppcVar32 = (code ******)(*pcVar4)(iVar18);\n        pppppppcVar29[3] = ppppppcVar32;\n        ppppppcVar35 = (code ******)(**(code **)(puVar41 + 0x23cf0))(iVar18);\n        pppppppcVar29[4] = ppppppcVar35;\n        iVar18 = (int)ppppppcVar39 * 0xc;\n        ppppppcVar39 = (code ******)(**(code **)(puVar41 + 0x23cf0))(iVar18);\n        pppppppcVar29[5] = ppppppcVar39;\n        ppppppcVar20 = (code ******)(**(code **)(puVar41 + 0x23cf0))(iVar18);\n        pppppppcVar29[6] = ppppppcVar20;\n        if (ppppppcVar32 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else if (ppppppcVar35 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else if (ppppppcVar39 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else if (ppppppcVar20 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else {\n          ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23cf0))((int)pppppppcVar3[6] << 2);\n          pppppppcVar29[0x21] = ppppppcVar32;\n          if (ppppppcVar32 != (code ******)0x0) {\n            ppppppcVar32 = (code ******)0x0;\n            if (pppppppcVar3[6] != (code ******)0x0) {\n              do {\n                pppppppcVar29[0x21][(int)ppppppcVar32] = (code *****)ppppppcVar32;\n                ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n              } while (ppppppcVar32 < pppppppcVar3[6]);\n            }\n            FUN_00046050(pppppppcVar29[0xd],*(int *)(puVar41 + 0x23abc) + 0x60e8,pppppppcVar29);\n            ppppppcVar32 = pppppppcVar3[6];\n            if (ppppppcVar32 == (code ******)0x0) {\nLAB_00056704:\n              (**(code **)(puVar41 + 0x23dc0))(pppppppcVar29[0x21]);\n              pppppppcVar29[0x21] = (code ******)0x0;\n            }\n            else {\n              ppppppcVar35 = pppppppcVar29[0x21];\n              if (*ppppppcVar35 == (code *****)0x0) {\n                ppppppcVar39 = (code ******)0x0;\n                do {\n                  ppppppcVar35 = ppppppcVar35 + 1;\n                  ppppppcVar39 = (code ******)((int)ppppppcVar39 + 1);\n                  if (ppppppcVar32 == ppppppcVar39) {\n                    if (ppppppcVar32 == ppppppcVar39) goto LAB_00056704;\n                    break;\n                  }\n                } while ((code ******)*ppppppcVar35 == ppppppcVar39);\n              }\n            }\n          }\n          pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23abc) + 0x73a4);\n          pppppppcVar30 = (code *******)FUN_00045fb4(pppppppcVar29[0xd],pppppppcVar38,pppppppcVar3);\n          pppppppcVar31 = pppppppcVar29;\n          if (pppppppcVar30 == (code *******)0x0) {\n            pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23b40) + -0x5be4);\n            pppppppcVar30 = (code *******)FUN_00045fb4(pppppppcVar29[0xd],pppppppcVar38);\n            if (pppppppcVar30 == (code *******)0x0) {\n              FUN_00046050(pppppppcVar29[0xd],*(int *)(puVar41 + 0x23abc) + 0x61b4);\n              pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23b40) + -0x4614);\n              pppppppcVar30 = (code *******)FUN_00046050(pppppppcVar29[0xd],pppppppcVar38);\n              if (pppppppcVar30 == (code *******)0x0) {\n                uVar7 = 0;\n                iVar18 = *(int *)(puVar41 + 0x23b40);\n                pppppppcVar33 = (code *******)0x0;\nLAB_00056744:\n                if ((code *******)pppppppcVar29[2] != pppppppcVar33) {\nLAB_00056750:\n                  if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                    pppppppcVar38 = pppppppcVar29;\n                    pppppppcVar31 = pppppppcVar33;\n                    pppppppcVar30 =\n                         (code *******)\n                         (*(code *)(iVar18 + -0x561c))\n                                   (&ppppppcStack_204,pppppppcVar29,pppppppcVar33,1);\n                    if (pppppppcVar30 != (code *******)0x0) goto LAB_00056168;\n                    if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                      (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                      uVar7 = 1;\n                    }\n                  }\n                  pppppppcVar33 = (code *******)((int)pppppppcVar33 + 1);\n                  goto LAB_00056744;\n                }\n                if (uVar7 != 0) {\n                  uVar7 = 0;\n                  pppppppcVar33 = (code *******)0x0;\n                  goto LAB_00056750;\n                }\n                if (((((uint)pppppppcVar3[7] & 0x8000000) == 0) &&\n                    (pppppppcVar3[6] != (code ******)0x0)) &&\n                   ((char)*(code *)(pppppppcVar29 + 0x16) < '\0')) {\n                  ppppppcVar32 = pppppppcVar29[2];\n                }\n                else {\n                  if (pppppppcVar29[0x13] == (code ******)0x0) goto LAB_000568f0;\n                  ppppppcVar32 = pppppppcVar29[2];\n                }\n                ppppppcVar35 = (code ******)\n                               (**(code **)(puVar41 + 0x23cf0))((int)ppppppcVar32 * 0xc);\n                pppppppcVar29[7] = ppppppcVar35;\n                if (ppppppcVar35 == (code ******)0x0) {\n                  pppppppcVar30 = (code *******)0xc;\n                  goto LAB_00056168;\n                }\n                if (ppppppcVar32 != (code ******)0x0) {\n                  iVar18 = 0;\n                  ppppppcVar32 = (code ******)0x0;\n                  do {\n                    puVar21 = (undefined1 *)((int)pppppppcVar29[7] + iVar18);\n                    *puVar21 = 0;\n                    puVar21[1] = 0;\n                    puVar21[2] = 0;\n                    puVar21[3] = 0;\n                    puVar21[4] = 0;\n                    puVar21[5] = 0;\n                    puVar21[6] = 0;\n                    puVar21[7] = 0;\n                    puVar21[8] = 0;\n                    puVar21[9] = 0;\n                    puVar21[10] = 0;\n                    puVar21[0xb] = 0;\n                    ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                    iVar18 = iVar18 + 0xc;\n                  } while (ppppppcVar32 < pppppppcVar29[2]);\n                  iVar18 = *(int *)(puVar41 + 0x23abc);\n                  if (pppppppcVar29[2] != (code ******)0x0) {\n                    iVar43 = 0;\n                    pppppppcStack_218 = (code *******)0x0;\n                    do {\n                      piVar5 = *(int **)((int)pppppppcVar29[6] + iVar43 + 8);\n                      if (0 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4)) {\n                        iVar37 = 0;\n                        do {\n                          pppppppcVar38 = pppppppcStack_218;\n                          iVar22 = (*(code *)(iVar18 + 0x6e30))\n                                             (pppppppcVar29[7] + *piVar5 * 3,pppppppcStack_218);\n                          pppppppcVar30 = (code *******)0xc;\n                          if (iVar22 == 0) goto LAB_00056168;\n                          iVar37 = iVar37 + 1;\n                          piVar5 = piVar5 + 1;\n                        } while (iVar37 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4));\n                      }\n                      pppppppcStack_218 = (code *******)((int)pppppppcStack_218 + 1);\n                      iVar43 = iVar43 + 0xc;\n                    } while (pppppppcStack_218 < pppppppcVar29[2]);\n                  }\n                }\nLAB_000568f0:\n                pppppppcStack_20c = (code *******)0x0;\n                if (((((uint)pppppppcVar34[0x16] & 0x20000000) != 0) && (uVar16 == 0)) &&\n                   (pppppppcVar3[5] == (code ******)0x0)) {\n                  if (pppppppcVar34[2] != (code ******)0x0) {\n                    pppppppcVar31 = (code *******)(*(int *)(puVar41 + 0x23754) + 0x6e4c);\n                    if (*(byte *)(*pppppppcVar34 + 1) < 0xd) {\n                    /* WARNING: Could not recover jumptable at 0x00056a60. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      pppppppcVar29 =\n                           (code *******)\n                           (*(code *)(puVar41 +\n                                     (int)(pppppppcVar31[*(byte *)(*pppppppcVar34 + 1)] + 0xadc7)))\n                                     ();\n                      return pppppppcVar29;\n                    }\n                    (**(code **)(puVar41 + 0x23bc4))(0);\n                    if (uVar7 != 0) {\n                      pppppppcVar31 = (code *******)&DAT_00000007;\n                      ppppppcVar32 = (code ******)0x0;\n                      do {\n                        ppppppcVar35 = *pppppppcVar34 + (int)ppppppcVar32 * 2;\n                        if (*(char *)(ppppppcVar35 + 1) == '\x01') {\n                          if (*(char *)ppppppcVar35 < '\0') {\n                            ppppppcVar35[1] = (code *****)((uint)ppppppcVar35[1] & 0xfffffbff);\n                          }\n                        }\n                        else if (*(char *)(ppppppcVar35 + 1) == '\x05') {\n                          *(char *)(ppppppcVar35 + 1) = '\a';\n                        }\n                        ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                      } while (ppppppcVar32 < pppppppcVar34[2]);\n                    }\n                  }\n                  pppppppcVar34[0x17] = (code ******)0x1;\n                  if (0 < (int)pppppppcVar34[0x13]) {\n                    uVar7 = 1;\n                  }\n                  *(byte *)(pppppppcVar34 + 0x16) =\n                       (byte)*(code *)(pppppppcVar34 + 0x16) & 0x9f | (byte)((uVar7 & 1) << 6);\n                }\n                ppppppcVar32 = (code ******)pppppppcVar34[0xd][3][7];\n                pppppppcVar34[0x12] = ppppppcVar32;\n                pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppppcVar32 * 3);\n                pppppppcVar33 = (code *******)FUN_000483e8(&ppppppcStack_204,pppppppcVar38);\n                pppppppcVar29 = pppppppcVar33;\n                pppppppcStack_208 = pppppppcVar33;\n                if (pppppppcVar33 == (code *******)0x0) {\n                  if ((0 < (int)pppppppcVar34[0x13]) && (0 < iStack_200)) {\n                    iVar18 = *(int *)(puVar41 + 0x23abc);\n                    iVar43 = *(int *)(puVar41 + 0x23abc);\n                    pppppppcVar29 = (code *******)0x0;\n                    do {\n                      pppppppcVar31 =\n                           (code *******)(*pppppppcVar34 + piStack_1fc[(int)pppppppcVar29] * 2);\n                      if (*(code *)(pppppppcVar31 + 1) == (code)0x4) {\n                        iVar37 = 0;\n                        piVar5 = piStack_1fc;\n                        if (iStack_200 < 1) {\nLAB_00056b8c:\n                          if (iStack_200 != iVar37) {\n                            ppppcVar40 = *pppppppcVar34[5][piStack_1fc[(int)pppppppcVar29] * 3 + 2];\n                            iVar37 = (*(code *)(iVar18 + 0x5ea8))(&ppppppcStack_204,ppppcVar40);\n                            if (iVar37 == 0) {\n                              pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppcVar40 * 3)\n                              ;\n                              pppppppcVar29 =\n                                   (code *******)\n                                   (*(code *)(iVar43 + 0x7f1c))(&ppppppcStack_204,pppppppcVar38);\n                              if (pppppppcVar29 != (code *******)0x0) goto LAB_00056cb8;\n                            }\n                          }\n                        }\n                        else {\n                          do {\n                            ppppppcVar32 = *pppppppcVar34 + *piVar5 * 2;\n                            if ((*(char *)(ppppppcVar32 + 1) == '\t') &&\n                               ((code ******)*ppppppcVar32 == *pppppppcVar31)) goto LAB_00056b8c;\n                            iVar37 = iVar37 + 1;\n                            piVar5 = piVar5 + 1;\n                          } while (iStack_200 != iVar37);\n                        }\n                      }\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1);\n                    } while ((int)pppppppcVar29 < iStack_200);\n                  }\n                  pppppppcVar31 = &ppppppcStack_204;\n                  pppppppcVar38 = pppppppcVar34;\n                  ppppppcVar32 = (code ******)\n                                 FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,0);\n                  pppppppcVar34[9] = ppppppcVar32;\n                  pppppppcVar29 = pppppppcStack_208;\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    if (((uint)ppppppcVar32[0xd] & 0x1000000) == 0) {\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar34[10] = ppppppcVar32;\n                    }\n                    else {\n                      pppppppcVar31 = &ppppppcStack_204;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,1);\n                      pppppppcVar34[10] = ppppppcVar32;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,2);\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar38 = pppppppcVar34;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,6);\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar29 = pppppppcStack_208;\n                      if (((pppppppcVar34[10] == (code ******)0x0) ||\n                          (pppppppcVar34[0xb] == (code ******)0x0)) ||\n                         (ppppppcVar32 == (code ******)0x0)) goto LAB_00056cb8;\n                    }\n                    (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                    pppppppcVar29 = pppppppcVar33;\n                  }\n                }\nLAB_00056cb8:\n                pppppppcStack_20c = pppppppcVar29;\n                FUN_0004b234(pppppppcVar3);\n                FUN_0004b2bc(&pppppppcStack_1f8);\n                pppppppcVar29 = pppppppcStack_20c;\n                if (pppppppcStack_20c != (code *******)0x0) {\n                  if (*(int *)(puVar41 + 0x23c78) != 0) {\n                    (**(code **)(puVar41 + 0x23df0))(pppppppcVar34 + 0x22);\n                  }\n                  FUN_0004b338(pppppppcVar34);\n                  *pppppppcVar3 = (code ******)0x0;\n                  pppppppcVar3[1] = (code ******)0x0;\n                  pppppppcVar29 = pppppppcStack_20c;\n                }\n                goto LAB_00056cfc;\n              }\n            }\n          }\n        }\n      }\n      else {\n        pppppppcVar31 = (code *******)0x0;\n        if (pppppppcVar29 != (code *******)0x0) {\n          pppppppcVar33 = (code *******)FUN_000470f0(ppppppcVar32,0,0,2);\n          goto LAB_000564b0;\n        }\nLAB_000566f4:\n        pppppppcVar34[0xd] = (code ******)0x0;\n        pppppppcVar30 = pppppppcStack_20c;\n      }\nLAB_00056168:\n      pppppppcStack_20c = pppppppcVar30;\n      FUN_0004b234(pppppppcVar3);\n      FUN_0004b2bc(&pppppppcStack_1f8);\n      if (*(int *)(puVar41 + 0x23c78) != 0) {\n        (**(code **)(puVar41 + 0x23df0))(pppppppcVar34 + 0x22);\n      }\n      FUN_0004b338(pppppppcVar34);\n      *pppppppcVar3 = (code ******)0x0;\n      pppppppcVar3[1] = (code ******)0x0;\n      pppppppcVar29 = pppppppcStack_20c;\n      goto LAB_00056cfc;\n    }\n    pppppppcVar38 = (code *******)0x0;\n    iVar18 = (**(code **)(puVar41 + 0x23d98))(pppppppcVar34 + 0x22,0);\n    if (iVar18 != 0) goto LAB_00056e5c;\n    if (pppppppcStack_20c == (code *******)0x0) goto LAB_00056054;\n  }\n  else {\nLAB_00056e5c:\n    pppppppcStack_20c = (code *******)0xc;\n  }" if (parenthesized_expression "(param_1 < (code *******)0xaaaaaaa)" ( (binary_expression "param_1 < (code *******)0xaaaaaaa" identifier < (cast_expression "(code *******)0xaaaaaaa" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\n    pppppppcVar34[1] = (code ******)((int)param_1 + 1);\n    ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23cf0))(((int)param_1 + 1) * 8);\n    *pppppppcVar34 = ppppppcVar32;\n    if (param_1 == (code *******)0x0) {\n      pppppppcVar30 = (code *******)0x1;\n    }\n    else {\n      pppppppcVar30 = (code *******)0x1;\n      do {\n        pppppppcVar30 = (code *******)((int)pppppppcVar30 << 1);\n      } while (pppppppcVar30 <= param_1);\n    }\n    pppppppcVar38 = pppppppcVar30;\n    ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23b8c))(0xc,pppppppcVar30);\n    pppppppcVar34[8] = ppppppcVar32;\n    pppppppcVar34[0x11] = (code ******)((int)pppppppcVar30 + -1);\n    ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23d2c))();\n    pppppppcVar34[0x17] = ppppppcVar32;\n    pbVar17 = (byte *)(**(code **)(puVar41 + 0x23c2c))(0xe);\n    if ((((*pbVar17 & 0xdf) == 0x55) && ((pbVar17[1] & 0xdf) == 0x54)) &&\n       (pppppppcVar38 = (code *******)0x4, (pbVar17[2] & 0xdf) == 0x46)) {\n      iVar18 = 3;\n      if (pbVar17[3] == 0x2d) {\n        iVar18 = 4;\n      }\n      pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23754) + 0x71b4);\n      iVar18 = (**(code **)(puVar41 + 0x23dfc))(pbVar17 + iVar18,pppppppcVar38);\n      if (iVar18 == 0) {\n        *(byte *)(pppppppcVar34 + 0x16) = (byte)*(code *)(pppppppcVar34 + 0x16) & 0xdf | 0x20;\n      }\n    }\n    *(byte *)(pppppppcVar34 + 0x16) = (byte)*(code *)(pppppppcVar34 + 0x16) & 0xef;\n    if (1 < (int)pppppppcVar34[0x17]) {\n      if (((uint)pppppppcVar34[0x16] & 0x20000000) == 0) {\n        pppppppcVar38 = (code *******)0x1;\n        ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23b8c))(0x20,1);\n        pppppppcVar34[0xf] = ppppppcVar32;\n        if (ppppppcVar32 == (code ******)0x0) goto LAB_00056e5c;\n        iVar18 = 0;\n        do {\n          uVar16 = iVar18 << 3;\n          uVar7 = 0;\n          do {\n            uVar19 = (**(code **)(puVar41 + 0x23c88))(uVar16);\n            if (uVar19 != 0xffffffff) {\n              pppppppcVar38 = *(code ********)((int)pppppppcVar34[0xf] + iVar18);\n              *(uint *)((int)pppppppcVar34[0xf] + iVar18) =\n                   (uint)pppppppcVar38 | 1 << (uVar7 & 0x1f);\n            }\n            if (((uVar16 & 0xffffff80) == 0) && (uVar19 != uVar16)) {\n              *(byte *)(pppppppcVar34 + 0x16) = (byte)*(code *)(pppppppcVar34 + 0x16) & 0xef | 0x10;\n            }\n            uVar7 = uVar7 + 1;\n            uVar16 = uVar16 + 1;\n          } while (uVar7 != 0x20);\n          iVar18 = iVar18 + 4;\n        } while (iVar18 != 0x20);\n      }\n      else {\n        pppppppcVar34[0xf] = (code ******)(*(int *)(puVar41 + 0x23754) + 0x6ee4);\n      }\n    }\n    if ((*pppppppcVar34 == (code ******)0x0) || (pppppppcVar34[8] == (code ******)0x0))\n    goto LAB_00056e5c;\n    pppppppcStack_20c = (code *******)0x0;\n    if (*(int *)(puVar41 + 0x23c78) == 0) {\nLAB_00056054:\n      ppppppcVar32 = pppppppcVar3[5];\n      uVar16 = (uint)pppppppcVar33 & 0x400000;\n      bVar1 = uVar16 != 0;\n      pppppppcVar31 = (code *******)0x4c;\n      pppppppcVar38 = (code *******)0x0;\n      (**(code **)(puVar41 + 0x23c9c))(apppppppcStack_1f4,0);\n      cStack_1ad = ppppppcVar32 != (code ******)0x0 || bVar1;\n      ppppppcStack_1a8 = pppppppcVar34[0x17];\n      bStack_1af = (byte)((uint)((int)pppppppcVar34[0x16] << 2) >> 0x1f);\n      bStack_1ae = (byte)((uint)((int)pppppppcVar34[0x16] << 3) >> 0x1f);\n      pppppppcStack_1f8 = pppppppcVar29;\n      pppppppcStack_1cc = param_1;\n      pppppppcStack_1c8 = param_1;\n      pppppppcStack_1c4 = param_1;\n      pppppppcStack_1c0 = param_1;\n      ppppppcStack_1b8 = ppppppcVar32;\n      uStack_1b0 = bVar1;\n      if (0 < (int)param_1) {\n        pppppppcVar38 = (code *******)((int)param_1 + 1);\n        pppppppcVar30 = (code *******)FUN_00046d2c(&pppppppcStack_1f8,pppppppcVar38);\n        if (pppppppcVar30 == (code *******)0x0) goto LAB_000560cc;\n        goto LAB_00056168;\n      }\nLAB_000560cc:\n      if (cStack_1ad != '\0') {\n        pppppppcVar29 = apppppppcStack_1f4[0];\n      }\n      apppppppcStack_1f4[0] = pppppppcVar29;\n      if (uVar16 == 0) {\n        if ((int)pppppppcVar34[0x17] < 2) {\n          if (ppppppcVar32 != (code ******)0x0) {\n            FUN_00045dc8();\n          }\n        }\n        else {\n          FUN_00047cb0(&pppppppcStack_1f8);\n        }\n      }\n      else {\n        if (1 < (int)pppppppcVar34[0x17]) {\n          iVar18 = *(int *)(puVar41 + 0x23abc);\n          do {\n            pppppppcVar30 = (code *******)FUN_00048714(&pppppppcStack_1f8);\n            if (pppppppcVar30 != (code *******)0x0) break;\n            if (((int)param_1 <= iStack_1d8) ||\n               (pppppppcVar38 = (code *******)(iStack_1d4 << 1),\n               (int)pppppppcVar34[0x17] + iStack_1dc < iStack_1d4)) goto LAB_000563d0;\n            pppppppcVar30 =\n                 (code *******)(*(code *)(iVar18 + 0x6d2c))(&pppppppcStack_1f8,pppppppcVar38);\n          } while (pppppppcVar30 == (code *******)0x0);\n          goto LAB_00056168;\n        }\n        FUN_00047be4(&pppppppcStack_1f8);\n      }\nLAB_000563d0:\n      pppppppcStack_20c = (code *******)0x0;\n      pppppppcVar3[6] = (code ******)0x0;\n      ppppppcVar32 = *pppppppcVar3;\n      ppppppcVar32[0x20] = (code *****)pppppppcVar33;\n      FUN_00049e40(&ppppppcStack_204,&pppppppcStack_1f8,(uint)pppppppcVar33 | 0x800000);\n      pppppppcVar38 = pppppppcVar3;\n      pppppppcVar29 =\n           (code *******)\n           FUN_00051868(&pppppppcStack_1f8,pppppppcVar3,&ppppppcStack_204,pppppppcVar33,0,\n                        &pppppppcStack_20c);\n      if (pppppppcStack_20c == (code *******)0x0) {\n        pppppppcVar31 = (code *******)0x0;\n        pppppppcVar38 = (code *******)0x0;\n        pppppppcVar33 = (code *******)FUN_000470f0(ppppppcVar32,0,0,2);\n        pppppppcVar30 = pppppppcVar33;\n        if (pppppppcVar29 != (code *******)0x0) {\nLAB_000564b0:\n          pppppppcVar31 = pppppppcVar33;\n          pppppppcVar30 = (code *******)FUN_000470f0(ppppppcVar32,pppppppcVar29,pppppppcVar33,0x10);\n          pppppppcVar38 = pppppppcVar29;\n        }\n        if ((pppppppcVar33 == (code *******)0x0) ||\n           (pcVar4 = *(code **)(puVar41 + 0x23cf0), pppppppcVar30 == (code *******)0x0)) {\n          pppppppcStack_20c = (code *******)0xc;\n          goto LAB_000566f4;\n        }\n        pppppppcVar34[0xd] = (code ******)pppppppcVar30;\n        pppppppcVar29 = (code *******)*pppppppcVar3;\n        ppppppcVar39 = pppppppcVar29[1];\n        iVar18 = (int)ppppppcVar39 << 2;\n        ppppppcVar32 = (code ******)(*pcVar4)(iVar18);\n        pppppppcVar29[3] = ppppppcVar32;\n        ppppppcVar35 = (code ******)(**(code **)(puVar41 + 0x23cf0))(iVar18);\n        pppppppcVar29[4] = ppppppcVar35;\n        iVar18 = (int)ppppppcVar39 * 0xc;\n        ppppppcVar39 = (code ******)(**(code **)(puVar41 + 0x23cf0))(iVar18);\n        pppppppcVar29[5] = ppppppcVar39;\n        ppppppcVar20 = (code ******)(**(code **)(puVar41 + 0x23cf0))(iVar18);\n        pppppppcVar29[6] = ppppppcVar20;\n        if (ppppppcVar32 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else if (ppppppcVar35 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else if (ppppppcVar39 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else if (ppppppcVar20 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else {\n          ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23cf0))((int)pppppppcVar3[6] << 2);\n          pppppppcVar29[0x21] = ppppppcVar32;\n          if (ppppppcVar32 != (code ******)0x0) {\n            ppppppcVar32 = (code ******)0x0;\n            if (pppppppcVar3[6] != (code ******)0x0) {\n              do {\n                pppppppcVar29[0x21][(int)ppppppcVar32] = (code *****)ppppppcVar32;\n                ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n              } while (ppppppcVar32 < pppppppcVar3[6]);\n            }\n            FUN_00046050(pppppppcVar29[0xd],*(int *)(puVar41 + 0x23abc) + 0x60e8,pppppppcVar29);\n            ppppppcVar32 = pppppppcVar3[6];\n            if (ppppppcVar32 == (code ******)0x0) {\nLAB_00056704:\n              (**(code **)(puVar41 + 0x23dc0))(pppppppcVar29[0x21]);\n              pppppppcVar29[0x21] = (code ******)0x0;\n            }\n            else {\n              ppppppcVar35 = pppppppcVar29[0x21];\n              if (*ppppppcVar35 == (code *****)0x0) {\n                ppppppcVar39 = (code ******)0x0;\n                do {\n                  ppppppcVar35 = ppppppcVar35 + 1;\n                  ppppppcVar39 = (code ******)((int)ppppppcVar39 + 1);\n                  if (ppppppcVar32 == ppppppcVar39) {\n                    if (ppppppcVar32 == ppppppcVar39) goto LAB_00056704;\n                    break;\n                  }\n                } while ((code ******)*ppppppcVar35 == ppppppcVar39);\n              }\n            }\n          }\n          pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23abc) + 0x73a4);\n          pppppppcVar30 = (code *******)FUN_00045fb4(pppppppcVar29[0xd],pppppppcVar38,pppppppcVar3);\n          pppppppcVar31 = pppppppcVar29;\n          if (pppppppcVar30 == (code *******)0x0) {\n            pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23b40) + -0x5be4);\n            pppppppcVar30 = (code *******)FUN_00045fb4(pppppppcVar29[0xd],pppppppcVar38);\n            if (pppppppcVar30 == (code *******)0x0) {\n              FUN_00046050(pppppppcVar29[0xd],*(int *)(puVar41 + 0x23abc) + 0x61b4);\n              pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23b40) + -0x4614);\n              pppppppcVar30 = (code *******)FUN_00046050(pppppppcVar29[0xd],pppppppcVar38);\n              if (pppppppcVar30 == (code *******)0x0) {\n                uVar7 = 0;\n                iVar18 = *(int *)(puVar41 + 0x23b40);\n                pppppppcVar33 = (code *******)0x0;\nLAB_00056744:\n                if ((code *******)pppppppcVar29[2] != pppppppcVar33) {\nLAB_00056750:\n                  if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                    pppppppcVar38 = pppppppcVar29;\n                    pppppppcVar31 = pppppppcVar33;\n                    pppppppcVar30 =\n                         (code *******)\n                         (*(code *)(iVar18 + -0x561c))\n                                   (&ppppppcStack_204,pppppppcVar29,pppppppcVar33,1);\n                    if (pppppppcVar30 != (code *******)0x0) goto LAB_00056168;\n                    if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                      (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                      uVar7 = 1;\n                    }\n                  }\n                  pppppppcVar33 = (code *******)((int)pppppppcVar33 + 1);\n                  goto LAB_00056744;\n                }\n                if (uVar7 != 0) {\n                  uVar7 = 0;\n                  pppppppcVar33 = (code *******)0x0;\n                  goto LAB_00056750;\n                }\n                if (((((uint)pppppppcVar3[7] & 0x8000000) == 0) &&\n                    (pppppppcVar3[6] != (code ******)0x0)) &&\n                   ((char)*(code *)(pppppppcVar29 + 0x16) < '\0')) {\n                  ppppppcVar32 = pppppppcVar29[2];\n                }\n                else {\n                  if (pppppppcVar29[0x13] == (code ******)0x0) goto LAB_000568f0;\n                  ppppppcVar32 = pppppppcVar29[2];\n                }\n                ppppppcVar35 = (code ******)\n                               (**(code **)(puVar41 + 0x23cf0))((int)ppppppcVar32 * 0xc);\n                pppppppcVar29[7] = ppppppcVar35;\n                if (ppppppcVar35 == (code ******)0x0) {\n                  pppppppcVar30 = (code *******)0xc;\n                  goto LAB_00056168;\n                }\n                if (ppppppcVar32 != (code ******)0x0) {\n                  iVar18 = 0;\n                  ppppppcVar32 = (code ******)0x0;\n                  do {\n                    puVar21 = (undefined1 *)((int)pppppppcVar29[7] + iVar18);\n                    *puVar21 = 0;\n                    puVar21[1] = 0;\n                    puVar21[2] = 0;\n                    puVar21[3] = 0;\n                    puVar21[4] = 0;\n                    puVar21[5] = 0;\n                    puVar21[6] = 0;\n                    puVar21[7] = 0;\n                    puVar21[8] = 0;\n                    puVar21[9] = 0;\n                    puVar21[10] = 0;\n                    puVar21[0xb] = 0;\n                    ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                    iVar18 = iVar18 + 0xc;\n                  } while (ppppppcVar32 < pppppppcVar29[2]);\n                  iVar18 = *(int *)(puVar41 + 0x23abc);\n                  if (pppppppcVar29[2] != (code ******)0x0) {\n                    iVar43 = 0;\n                    pppppppcStack_218 = (code *******)0x0;\n                    do {\n                      piVar5 = *(int **)((int)pppppppcVar29[6] + iVar43 + 8);\n                      if (0 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4)) {\n                        iVar37 = 0;\n                        do {\n                          pppppppcVar38 = pppppppcStack_218;\n                          iVar22 = (*(code *)(iVar18 + 0x6e30))\n                                             (pppppppcVar29[7] + *piVar5 * 3,pppppppcStack_218);\n                          pppppppcVar30 = (code *******)0xc;\n                          if (iVar22 == 0) goto LAB_00056168;\n                          iVar37 = iVar37 + 1;\n                          piVar5 = piVar5 + 1;\n                        } while (iVar37 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4));\n                      }\n                      pppppppcStack_218 = (code *******)((int)pppppppcStack_218 + 1);\n                      iVar43 = iVar43 + 0xc;\n                    } while (pppppppcStack_218 < pppppppcVar29[2]);\n                  }\n                }\nLAB_000568f0:\n                pppppppcStack_20c = (code *******)0x0;\n                if (((((uint)pppppppcVar34[0x16] & 0x20000000) != 0) && (uVar16 == 0)) &&\n                   (pppppppcVar3[5] == (code ******)0x0)) {\n                  if (pppppppcVar34[2] != (code ******)0x0) {\n                    pppppppcVar31 = (code *******)(*(int *)(puVar41 + 0x23754) + 0x6e4c);\n                    if (*(byte *)(*pppppppcVar34 + 1) < 0xd) {\n                    /* WARNING: Could not recover jumptable at 0x00056a60. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      pppppppcVar29 =\n                           (code *******)\n                           (*(code *)(puVar41 +\n                                     (int)(pppppppcVar31[*(byte *)(*pppppppcVar34 + 1)] + 0xadc7)))\n                                     ();\n                      return pppppppcVar29;\n                    }\n                    (**(code **)(puVar41 + 0x23bc4))(0);\n                    if (uVar7 != 0) {\n                      pppppppcVar31 = (code *******)&DAT_00000007;\n                      ppppppcVar32 = (code ******)0x0;\n                      do {\n                        ppppppcVar35 = *pppppppcVar34 + (int)ppppppcVar32 * 2;\n                        if (*(char *)(ppppppcVar35 + 1) == '\x01') {\n                          if (*(char *)ppppppcVar35 < '\0') {\n                            ppppppcVar35[1] = (code *****)((uint)ppppppcVar35[1] & 0xfffffbff);\n                          }\n                        }\n                        else if (*(char *)(ppppppcVar35 + 1) == '\x05') {\n                          *(char *)(ppppppcVar35 + 1) = '\a';\n                        }\n                        ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                      } while (ppppppcVar32 < pppppppcVar34[2]);\n                    }\n                  }\n                  pppppppcVar34[0x17] = (code ******)0x1;\n                  if (0 < (int)pppppppcVar34[0x13]) {\n                    uVar7 = 1;\n                  }\n                  *(byte *)(pppppppcVar34 + 0x16) =\n                       (byte)*(code *)(pppppppcVar34 + 0x16) & 0x9f | (byte)((uVar7 & 1) << 6);\n                }\n                ppppppcVar32 = (code ******)pppppppcVar34[0xd][3][7];\n                pppppppcVar34[0x12] = ppppppcVar32;\n                pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppppcVar32 * 3);\n                pppppppcVar33 = (code *******)FUN_000483e8(&ppppppcStack_204,pppppppcVar38);\n                pppppppcVar29 = pppppppcVar33;\n                pppppppcStack_208 = pppppppcVar33;\n                if (pppppppcVar33 == (code *******)0x0) {\n                  if ((0 < (int)pppppppcVar34[0x13]) && (0 < iStack_200)) {\n                    iVar18 = *(int *)(puVar41 + 0x23abc);\n                    iVar43 = *(int *)(puVar41 + 0x23abc);\n                    pppppppcVar29 = (code *******)0x0;\n                    do {\n                      pppppppcVar31 =\n                           (code *******)(*pppppppcVar34 + piStack_1fc[(int)pppppppcVar29] * 2);\n                      if (*(code *)(pppppppcVar31 + 1) == (code)0x4) {\n                        iVar37 = 0;\n                        piVar5 = piStack_1fc;\n                        if (iStack_200 < 1) {\nLAB_00056b8c:\n                          if (iStack_200 != iVar37) {\n                            ppppcVar40 = *pppppppcVar34[5][piStack_1fc[(int)pppppppcVar29] * 3 + 2];\n                            iVar37 = (*(code *)(iVar18 + 0x5ea8))(&ppppppcStack_204,ppppcVar40);\n                            if (iVar37 == 0) {\n                              pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppcVar40 * 3)\n                              ;\n                              pppppppcVar29 =\n                                   (code *******)\n                                   (*(code *)(iVar43 + 0x7f1c))(&ppppppcStack_204,pppppppcVar38);\n                              if (pppppppcVar29 != (code *******)0x0) goto LAB_00056cb8;\n                            }\n                          }\n                        }\n                        else {\n                          do {\n                            ppppppcVar32 = *pppppppcVar34 + *piVar5 * 2;\n                            if ((*(char *)(ppppppcVar32 + 1) == '\t') &&\n                               ((code ******)*ppppppcVar32 == *pppppppcVar31)) goto LAB_00056b8c;\n                            iVar37 = iVar37 + 1;\n                            piVar5 = piVar5 + 1;\n                          } while (iStack_200 != iVar37);\n                        }\n                      }\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1);\n                    } while ((int)pppppppcVar29 < iStack_200);\n                  }\n                  pppppppcVar31 = &ppppppcStack_204;\n                  pppppppcVar38 = pppppppcVar34;\n                  ppppppcVar32 = (code ******)\n                                 FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,0);\n                  pppppppcVar34[9] = ppppppcVar32;\n                  pppppppcVar29 = pppppppcStack_208;\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    if (((uint)ppppppcVar32[0xd] & 0x1000000) == 0) {\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar34[10] = ppppppcVar32;\n                    }\n                    else {\n                      pppppppcVar31 = &ppppppcStack_204;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,1);\n                      pppppppcVar34[10] = ppppppcVar32;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,2);\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar38 = pppppppcVar34;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,6);\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar29 = pppppppcStack_208;\n                      if (((pppppppcVar34[10] == (code ******)0x0) ||\n                          (pppppppcVar34[0xb] == (code ******)0x0)) ||\n                         (ppppppcVar32 == (code ******)0x0)) goto LAB_00056cb8;\n                    }\n                    (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                    pppppppcVar29 = pppppppcVar33;\n                  }\n                }\nLAB_00056cb8:\n                pppppppcStack_20c = pppppppcVar29;\n                FUN_0004b234(pppppppcVar3);\n                FUN_0004b2bc(&pppppppcStack_1f8);\n                pppppppcVar29 = pppppppcStack_20c;\n                if (pppppppcStack_20c != (code *******)0x0) {\n                  if (*(int *)(puVar41 + 0x23c78) != 0) {\n                    (**(code **)(puVar41 + 0x23df0))(pppppppcVar34 + 0x22);\n                  }\n                  FUN_0004b338(pppppppcVar34);\n                  *pppppppcVar3 = (code ******)0x0;\n                  pppppppcVar3[1] = (code ******)0x0;\n                  pppppppcVar29 = pppppppcStack_20c;\n                }\n                goto LAB_00056cfc;\n              }\n            }\n          }\n        }\n      }\n      else {\n        pppppppcVar31 = (code *******)0x0;\n        if (pppppppcVar29 != (code *******)0x0) {\n          pppppppcVar33 = (code *******)FUN_000470f0(ppppppcVar32,0,0,2);\n          goto LAB_000564b0;\n        }\nLAB_000566f4:\n        pppppppcVar34[0xd] = (code ******)0x0;\n        pppppppcVar30 = pppppppcStack_20c;\n      }\nLAB_00056168:\n      pppppppcStack_20c = pppppppcVar30;\n      FUN_0004b234(pppppppcVar3);\n      FUN_0004b2bc(&pppppppcStack_1f8);\n      if (*(int *)(puVar41 + 0x23c78) != 0) {\n        (**(code **)(puVar41 + 0x23df0))(pppppppcVar34 + 0x22);\n      }\n      FUN_0004b338(pppppppcVar34);\n      *pppppppcVar3 = (code ******)0x0;\n      pppppppcVar3[1] = (code ******)0x0;\n      pppppppcVar29 = pppppppcStack_20c;\n      goto LAB_00056cfc;\n    }\n    pppppppcVar38 = (code *******)0x0;\n    iVar18 = (**(code **)(puVar41 + 0x23d98))(pppppppcVar34 + 0x22,0);\n    if (iVar18 != 0) goto LAB_00056e5c;\n    if (pppppppcStack_20c == (code *******)0x0) goto LAB_00056054;\n  }" { (expression_statement "pppppppcVar34[1] = (code ******)((int)param_1 + 1);" (assignment_expression "pppppppcVar34[1] = (code ******)((int)param_1 + 1)" (subscript_expression "pppppppcVar34[1]" identifier [ number_literal ]) = (cast_expression "(code ******)((int)param_1 + 1)" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "((int)param_1 + 1)" ( (binary_expression "(int)param_1 + 1" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23cf0))(((int)param_1 + 1) * 8);" (assignment_expression "ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23cf0))(((int)param_1 + 1) * 8)" identifier = (cast_expression "(code ******)(**(code **)(puVar41 + 0x23cf0))(((int)param_1 + 1) * 8)" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (call_expression "(**(code **)(puVar41 + 0x23cf0))(((int)param_1 + 1) * 8)" (parenthesized_expression "(**(code **)(puVar41 + 0x23cf0))" ( (pointer_expression "**(code **)(puVar41 + 0x23cf0)" * (pointer_expression "*(code **)(puVar41 + 0x23cf0)" * (cast_expression "(code **)(puVar41 + 0x23cf0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar41 + 0x23cf0)" ( (binary_expression "puVar41 + 0x23cf0" identifier + number_literal) ))))) )) (argument_list "(((int)param_1 + 1) * 8)" ( (binary_expression "((int)param_1 + 1) * 8" (parenthesized_expression "((int)param_1 + 1)" ( (binary_expression "(int)param_1 + 1" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )) * number_literal) ))))) ;) (expression_statement "*pppppppcVar34 = ppppppcVar32;" (assignment_expression "*pppppppcVar34 = ppppppcVar32" (pointer_expression "*pppppppcVar34" * identifier) = identifier) ;) (if_statement "if (param_1 == (code *******)0x0) {\n      pppppppcVar30 = (code *******)0x1;\n    }\n    else {\n      pppppppcVar30 = (code *******)0x1;\n      do {\n        pppppppcVar30 = (code *******)((int)pppppppcVar30 << 1);\n      } while (pppppppcVar30 <= param_1);\n    }" if (parenthesized_expression "(param_1 == (code *******)0x0)" ( (binary_expression "param_1 == (code *******)0x0" identifier == (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\n      pppppppcVar30 = (code *******)0x1;\n    }" { (expression_statement "pppppppcVar30 = (code *******)0x1;" (assignment_expression "pppppppcVar30 = (code *******)0x1" identifier = (cast_expression "(code *******)0x1" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) }) (else_clause "else {\n      pppppppcVar30 = (code *******)0x1;\n      do {\n        pppppppcVar30 = (code *******)((int)pppppppcVar30 << 1);\n      } while (pppppppcVar30 <= param_1);\n    }" else (compound_statement "{\n      pppppppcVar30 = (code *******)0x1;\n      do {\n        pppppppcVar30 = (code *******)((int)pppppppcVar30 << 1);\n      } while (pppppppcVar30 <= param_1);\n    }" { (expression_statement "pppppppcVar30 = (code *******)0x1;" (assignment_expression "pppppppcVar30 = (code *******)0x1" identifier = (cast_expression "(code *******)0x1" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (do_statement "do {\n        pppppppcVar30 = (code *******)((int)pppppppcVar30 << 1);\n      } while (pppppppcVar30 <= param_1);" do (compound_statement "{\n        pppppppcVar30 = (code *******)((int)pppppppcVar30 << 1);\n      }" { (expression_statement "pppppppcVar30 = (code *******)((int)pppppppcVar30 << 1);" (assignment_expression "pppppppcVar30 = (code *******)((int)pppppppcVar30 << 1)" identifier = (cast_expression "(code *******)((int)pppppppcVar30 << 1)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)pppppppcVar30 << 1)" ( (binary_expression "(int)pppppppcVar30 << 1" (cast_expression "(int)pppppppcVar30" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) )))) ;) }) while (parenthesized_expression "(pppppppcVar30 <= param_1)" ( (binary_expression "pppppppcVar30 <= param_1" identifier <= identifier) )) ;) }))) (expression_statement "pppppppcVar38 = pppppppcVar30;" (assignment_expression "pppppppcVar38 = pppppppcVar30" identifier = identifier) ;) (expression_statement "ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23b8c))(0xc,pppppppcVar30);" (assignment_expression "ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23b8c))(0xc,pppppppcVar30)" identifier = (cast_expression "(code ******)(**(code **)(puVar41 + 0x23b8c))(0xc,pppppppcVar30)" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (call_expression "(**(code **)(puVar41 + 0x23b8c))(0xc,pppppppcVar30)" (parenthesized_expression "(**(code **)(puVar41 + 0x23b8c))" ( (pointer_expression "**(code **)(puVar41 + 0x23b8c)" * (pointer_expression "*(code **)(puVar41 + 0x23b8c)" * (cast_expression "(code **)(puVar41 + 0x23b8c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar41 + 0x23b8c)" ( (binary_expression "puVar41 + 0x23b8c" identifier + number_literal) ))))) )) (argument_list "(0xc,pppppppcVar30)" ( number_literal , identifier ))))) ;) (expression_statement "pppppppcVar34[8] = ppppppcVar32;" (assignment_expression "pppppppcVar34[8] = ppppppcVar32" (subscript_expression "pppppppcVar34[8]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pppppppcVar34[0x11] = (code ******)((int)pppppppcVar30 + -1);" (assignment_expression "pppppppcVar34[0x11] = (code ******)((int)pppppppcVar30 + -1)" (subscript_expression "pppppppcVar34[0x11]" identifier [ number_literal ]) = (cast_expression "(code ******)((int)pppppppcVar30 + -1)" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "((int)pppppppcVar30 + -1)" ( (binary_expression "(int)pppppppcVar30 + -1" (cast_expression "(int)pppppppcVar30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23d2c))();" (assignment_expression "ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23d2c))()" identifier = (cast_expression "(code ******)(**(code **)(puVar41 + 0x23d2c))()" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (call_expression "(**(code **)(puVar41 + 0x23d2c))()" (parenthesized_expression "(**(code **)(puVar41 + 0x23d2c))" ( (pointer_expression "**(code **)(puVar41 + 0x23d2c)" * (pointer_expression "*(code **)(puVar41 + 0x23d2c)" * (cast_expression "(code **)(puVar41 + 0x23d2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar41 + 0x23d2c)" ( (binary_expression "puVar41 + 0x23d2c" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "pppppppcVar34[0x17] = ppppppcVar32;" (assignment_expression "pppppppcVar34[0x17] = ppppppcVar32" (subscript_expression "pppppppcVar34[0x17]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pbVar17 = (byte *)(**(code **)(puVar41 + 0x23c2c))(0xe);" (assignment_expression "pbVar17 = (byte *)(**(code **)(puVar41 + 0x23c2c))(0xe)" identifier = (cast_expression "(byte *)(**(code **)(puVar41 + 0x23c2c))(0xe)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar41 + 0x23c2c))(0xe)" (parenthesized_expression "(**(code **)(puVar41 + 0x23c2c))" ( (pointer_expression "**(code **)(puVar41 + 0x23c2c)" * (pointer_expression "*(code **)(puVar41 + 0x23c2c)" * (cast_expression "(code **)(puVar41 + 0x23c2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar41 + 0x23c2c)" ( (binary_expression "puVar41 + 0x23c2c" identifier + number_literal) ))))) )) (argument_list "(0xe)" ( number_literal ))))) ;) (if_statement "if ((((*pbVar17 & 0xdf) == 0x55) && ((pbVar17[1] & 0xdf) == 0x54)) &&\n       (pppppppcVar38 = (code *******)0x4, (pbVar17[2] & 0xdf) == 0x46)) {\n      iVar18 = 3;\n      if (pbVar17[3] == 0x2d) {\n        iVar18 = 4;\n      }\n      pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23754) + 0x71b4);\n      iVar18 = (**(code **)(puVar41 + 0x23dfc))(pbVar17 + iVar18,pppppppcVar38);\n      if (iVar18 == 0) {\n        *(byte *)(pppppppcVar34 + 0x16) = (byte)*(code *)(pppppppcVar34 + 0x16) & 0xdf | 0x20;\n      }\n    }" if (parenthesized_expression "((((*pbVar17 & 0xdf) == 0x55) && ((pbVar17[1] & 0xdf) == 0x54)) &&\n       (pppppppcVar38 = (code *******)0x4, (pbVar17[2] & 0xdf) == 0x46))" ( (binary_expression "(((*pbVar17 & 0xdf) == 0x55) && ((pbVar17[1] & 0xdf) == 0x54)) &&\n       (pppppppcVar38 = (code *******)0x4, (pbVar17[2] & 0xdf) == 0x46)" (parenthesized_expression "(((*pbVar17 & 0xdf) == 0x55) && ((pbVar17[1] & 0xdf) == 0x54))" ( (binary_expression "((*pbVar17 & 0xdf) == 0x55) && ((pbVar17[1] & 0xdf) == 0x54)" (parenthesized_expression "((*pbVar17 & 0xdf) == 0x55)" ( (binary_expression "(*pbVar17 & 0xdf) == 0x55" (parenthesized_expression "(*pbVar17 & 0xdf)" ( (binary_expression "*pbVar17 & 0xdf" (pointer_expression "*pbVar17" * identifier) & number_literal) )) == number_literal) )) && (parenthesized_expression "((pbVar17[1] & 0xdf) == 0x54)" ( (binary_expression "(pbVar17[1] & 0xdf) == 0x54" (parenthesized_expression "(pbVar17[1] & 0xdf)" ( (binary_expression "pbVar17[1] & 0xdf" (subscript_expression "pbVar17[1]" identifier [ number_literal ]) & number_literal) )) == number_literal) ))) )) && (parenthesized_expression "(pppppppcVar38 = (code *******)0x4, (pbVar17[2] & 0xdf) == 0x46)" ( (comma_expression "pppppppcVar38 = (code *******)0x4, (pbVar17[2] & 0xdf) == 0x46" (assignment_expression "pppppppcVar38 = (code *******)0x4" identifier = (cast_expression "(code *******)0x4" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) , (binary_expression "(pbVar17[2] & 0xdf) == 0x46" (parenthesized_expression "(pbVar17[2] & 0xdf)" ( (binary_expression "pbVar17[2] & 0xdf" (subscript_expression "pbVar17[2]" identifier [ number_literal ]) & number_literal) )) == number_literal)) ))) )) (compound_statement "{\n      iVar18 = 3;\n      if (pbVar17[3] == 0x2d) {\n        iVar18 = 4;\n      }\n      pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23754) + 0x71b4);\n      iVar18 = (**(code **)(puVar41 + 0x23dfc))(pbVar17 + iVar18,pppppppcVar38);\n      if (iVar18 == 0) {\n        *(byte *)(pppppppcVar34 + 0x16) = (byte)*(code *)(pppppppcVar34 + 0x16) & 0xdf | 0x20;\n      }\n    }" { (expression_statement "iVar18 = 3;" (assignment_expression "iVar18 = 3" identifier = number_literal) ;) (if_statement "if (pbVar17[3] == 0x2d) {\n        iVar18 = 4;\n      }" if (parenthesized_expression "(pbVar17[3] == 0x2d)" ( (binary_expression "pbVar17[3] == 0x2d" (subscript_expression "pbVar17[3]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n        iVar18 = 4;\n      }" { (expression_statement "iVar18 = 4;" (assignment_expression "iVar18 = 4" identifier = number_literal) ;) })) (expression_statement "pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23754) + 0x71b4);" (assignment_expression "pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23754) + 0x71b4)" identifier = (cast_expression "(code *******)(*(int *)(puVar41 + 0x23754) + 0x71b4)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(*(int *)(puVar41 + 0x23754) + 0x71b4)" ( (binary_expression "*(int *)(puVar41 + 0x23754) + 0x71b4" (pointer_expression "*(int *)(puVar41 + 0x23754)" * (cast_expression "(int *)(puVar41 + 0x23754)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar41 + 0x23754)" ( (binary_expression "puVar41 + 0x23754" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "iVar18 = (**(code **)(puVar41 + 0x23dfc))(pbVar17 + iVar18,pppppppcVar38);" (assignment_expression "iVar18 = (**(code **)(puVar41 + 0x23dfc))(pbVar17 + iVar18,pppppppcVar38)" identifier = (call_expression "(**(code **)(puVar41 + 0x23dfc))(pbVar17 + iVar18,pppppppcVar38)" (parenthesized_expression "(**(code **)(puVar41 + 0x23dfc))" ( (pointer_expression "**(code **)(puVar41 + 0x23dfc)" * (pointer_expression "*(code **)(puVar41 + 0x23dfc)" * (cast_expression "(code **)(puVar41 + 0x23dfc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar41 + 0x23dfc)" ( (binary_expression "puVar41 + 0x23dfc" identifier + number_literal) ))))) )) (argument_list "(pbVar17 + iVar18,pppppppcVar38)" ( (binary_expression "pbVar17 + iVar18" identifier + identifier) , identifier )))) ;) (if_statement "if (iVar18 == 0) {\n        *(byte *)(pppppppcVar34 + 0x16) = (byte)*(code *)(pppppppcVar34 + 0x16) & 0xdf | 0x20;\n      }" if (parenthesized_expression "(iVar18 == 0)" ( (binary_expression "iVar18 == 0" identifier == number_literal) )) (compound_statement "{\n        *(byte *)(pppppppcVar34 + 0x16) = (byte)*(code *)(pppppppcVar34 + 0x16) & 0xdf | 0x20;\n      }" { (expression_statement "*(byte *)(pppppppcVar34 + 0x16) = (byte)*(code *)(pppppppcVar34 + 0x16) & 0xdf | 0x20;" (assignment_expression "*(byte *)(pppppppcVar34 + 0x16) = (byte)*(code *)(pppppppcVar34 + 0x16) & 0xdf | 0x20" (pointer_expression "*(byte *)(pppppppcVar34 + 0x16)" * (cast_expression "(byte *)(pppppppcVar34 + 0x16)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pppppppcVar34 + 0x16)" ( (binary_expression "pppppppcVar34 + 0x16" identifier + number_literal) )))) = (binary_expression "(byte)*(code *)(pppppppcVar34 + 0x16) & 0xdf | 0x20" (binary_expression "(byte)*(code *)(pppppppcVar34 + 0x16) & 0xdf" (binary_expression "(byte)*(code *)(pppppppcVar34 + 0x16)" (parenthesized_expression "(byte)" ( identifier )) * (cast_expression "(code *)(pppppppcVar34 + 0x16)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pppppppcVar34 + 0x16)" ( (binary_expression "pppppppcVar34 + 0x16" identifier + number_literal) )))) & number_literal) | number_literal)) ;) })) })) (expression_statement "*(byte *)(pppppppcVar34 + 0x16) = (byte)*(code *)(pppppppcVar34 + 0x16) & 0xef;" (assignment_expression "*(byte *)(pppppppcVar34 + 0x16) = (byte)*(code *)(pppppppcVar34 + 0x16) & 0xef" (pointer_expression "*(byte *)(pppppppcVar34 + 0x16)" * (cast_expression "(byte *)(pppppppcVar34 + 0x16)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pppppppcVar34 + 0x16)" ( (binary_expression "pppppppcVar34 + 0x16" identifier + number_literal) )))) = (binary_expression "(byte)*(code *)(pppppppcVar34 + 0x16) & 0xef" (binary_expression "(byte)*(code *)(pppppppcVar34 + 0x16)" (parenthesized_expression "(byte)" ( identifier )) * (cast_expression "(code *)(pppppppcVar34 + 0x16)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pppppppcVar34 + 0x16)" ( (binary_expression "pppppppcVar34 + 0x16" identifier + number_literal) )))) & number_literal)) ;) (if_statement "if (1 < (int)pppppppcVar34[0x17]) {\n      if (((uint)pppppppcVar34[0x16] & 0x20000000) == 0) {\n        pppppppcVar38 = (code *******)0x1;\n        ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23b8c))(0x20,1);\n        pppppppcVar34[0xf] = ppppppcVar32;\n        if (ppppppcVar32 == (code ******)0x0) goto LAB_00056e5c;\n        iVar18 = 0;\n        do {\n          uVar16 = iVar18 << 3;\n          uVar7 = 0;\n          do {\n            uVar19 = (**(code **)(puVar41 + 0x23c88))(uVar16);\n            if (uVar19 != 0xffffffff) {\n              pppppppcVar38 = *(code ********)((int)pppppppcVar34[0xf] + iVar18);\n              *(uint *)((int)pppppppcVar34[0xf] + iVar18) =\n                   (uint)pppppppcVar38 | 1 << (uVar7 & 0x1f);\n            }\n            if (((uVar16 & 0xffffff80) == 0) && (uVar19 != uVar16)) {\n              *(byte *)(pppppppcVar34 + 0x16) = (byte)*(code *)(pppppppcVar34 + 0x16) & 0xef | 0x10;\n            }\n            uVar7 = uVar7 + 1;\n            uVar16 = uVar16 + 1;\n          } while (uVar7 != 0x20);\n          iVar18 = iVar18 + 4;\n        } while (iVar18 != 0x20);\n      }\n      else {\n        pppppppcVar34[0xf] = (code ******)(*(int *)(puVar41 + 0x23754) + 0x6ee4);\n      }\n    }" if (parenthesized_expression "(1 < (int)pppppppcVar34[0x17])" ( (binary_expression "1 < (int)pppppppcVar34[0x17]" number_literal < (cast_expression "(int)pppppppcVar34[0x17]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "pppppppcVar34[0x17]" identifier [ number_literal ]))) )) (compound_statement "{\n      if (((uint)pppppppcVar34[0x16] & 0x20000000) == 0) {\n        pppppppcVar38 = (code *******)0x1;\n        ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23b8c))(0x20,1);\n        pppppppcVar34[0xf] = ppppppcVar32;\n        if (ppppppcVar32 == (code ******)0x0) goto LAB_00056e5c;\n        iVar18 = 0;\n        do {\n          uVar16 = iVar18 << 3;\n          uVar7 = 0;\n          do {\n            uVar19 = (**(code **)(puVar41 + 0x23c88))(uVar16);\n            if (uVar19 != 0xffffffff) {\n              pppppppcVar38 = *(code ********)((int)pppppppcVar34[0xf] + iVar18);\n              *(uint *)((int)pppppppcVar34[0xf] + iVar18) =\n                   (uint)pppppppcVar38 | 1 << (uVar7 & 0x1f);\n            }\n            if (((uVar16 & 0xffffff80) == 0) && (uVar19 != uVar16)) {\n              *(byte *)(pppppppcVar34 + 0x16) = (byte)*(code *)(pppppppcVar34 + 0x16) & 0xef | 0x10;\n            }\n            uVar7 = uVar7 + 1;\n            uVar16 = uVar16 + 1;\n          } while (uVar7 != 0x20);\n          iVar18 = iVar18 + 4;\n        } while (iVar18 != 0x20);\n      }\n      else {\n        pppppppcVar34[0xf] = (code ******)(*(int *)(puVar41 + 0x23754) + 0x6ee4);\n      }\n    }" { (if_statement "if (((uint)pppppppcVar34[0x16] & 0x20000000) == 0) {\n        pppppppcVar38 = (code *******)0x1;\n        ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23b8c))(0x20,1);\n        pppppppcVar34[0xf] = ppppppcVar32;\n        if (ppppppcVar32 == (code ******)0x0) goto LAB_00056e5c;\n        iVar18 = 0;\n        do {\n          uVar16 = iVar18 << 3;\n          uVar7 = 0;\n          do {\n            uVar19 = (**(code **)(puVar41 + 0x23c88))(uVar16);\n            if (uVar19 != 0xffffffff) {\n              pppppppcVar38 = *(code ********)((int)pppppppcVar34[0xf] + iVar18);\n              *(uint *)((int)pppppppcVar34[0xf] + iVar18) =\n                   (uint)pppppppcVar38 | 1 << (uVar7 & 0x1f);\n            }\n            if (((uVar16 & 0xffffff80) == 0) && (uVar19 != uVar16)) {\n              *(byte *)(pppppppcVar34 + 0x16) = (byte)*(code *)(pppppppcVar34 + 0x16) & 0xef | 0x10;\n            }\n            uVar7 = uVar7 + 1;\n            uVar16 = uVar16 + 1;\n          } while (uVar7 != 0x20);\n          iVar18 = iVar18 + 4;\n        } while (iVar18 != 0x20);\n      }\n      else {\n        pppppppcVar34[0xf] = (code ******)(*(int *)(puVar41 + 0x23754) + 0x6ee4);\n      }" if (parenthesized_expression "(((uint)pppppppcVar34[0x16] & 0x20000000) == 0)" ( (binary_expression "((uint)pppppppcVar34[0x16] & 0x20000000) == 0" (parenthesized_expression "((uint)pppppppcVar34[0x16] & 0x20000000)" ( (binary_expression "(uint)pppppppcVar34[0x16] & 0x20000000" (cast_expression "(uint)pppppppcVar34[0x16]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pppppppcVar34[0x16]" identifier [ number_literal ])) & number_literal) )) == number_literal) )) (compound_statement "{\n        pppppppcVar38 = (code *******)0x1;\n        ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23b8c))(0x20,1);\n        pppppppcVar34[0xf] = ppppppcVar32;\n        if (ppppppcVar32 == (code ******)0x0) goto LAB_00056e5c;\n        iVar18 = 0;\n        do {\n          uVar16 = iVar18 << 3;\n          uVar7 = 0;\n          do {\n            uVar19 = (**(code **)(puVar41 + 0x23c88))(uVar16);\n            if (uVar19 != 0xffffffff) {\n              pppppppcVar38 = *(code ********)((int)pppppppcVar34[0xf] + iVar18);\n              *(uint *)((int)pppppppcVar34[0xf] + iVar18) =\n                   (uint)pppppppcVar38 | 1 << (uVar7 & 0x1f);\n            }\n            if (((uVar16 & 0xffffff80) == 0) && (uVar19 != uVar16)) {\n              *(byte *)(pppppppcVar34 + 0x16) = (byte)*(code *)(pppppppcVar34 + 0x16) & 0xef | 0x10;\n            }\n            uVar7 = uVar7 + 1;\n            uVar16 = uVar16 + 1;\n          } while (uVar7 != 0x20);\n          iVar18 = iVar18 + 4;\n        } while (iVar18 != 0x20);\n      }" { (expression_statement "pppppppcVar38 = (code *******)0x1;" (assignment_expression "pppppppcVar38 = (code *******)0x1" identifier = (cast_expression "(code *******)0x1" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23b8c))(0x20,1);" (assignment_expression "ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23b8c))(0x20,1)" identifier = (cast_expression "(code ******)(**(code **)(puVar41 + 0x23b8c))(0x20,1)" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (call_expression "(**(code **)(puVar41 + 0x23b8c))(0x20,1)" (parenthesized_expression "(**(code **)(puVar41 + 0x23b8c))" ( (pointer_expression "**(code **)(puVar41 + 0x23b8c)" * (pointer_expression "*(code **)(puVar41 + 0x23b8c)" * (cast_expression "(code **)(puVar41 + 0x23b8c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar41 + 0x23b8c)" ( (binary_expression "puVar41 + 0x23b8c" identifier + number_literal) ))))) )) (argument_list "(0x20,1)" ( number_literal , number_literal ))))) ;) (expression_statement "pppppppcVar34[0xf] = ppppppcVar32;" (assignment_expression "pppppppcVar34[0xf] = ppppppcVar32" (subscript_expression "pppppppcVar34[0xf]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (ppppppcVar32 == (code ******)0x0) goto LAB_00056e5c;" if (parenthesized_expression "(ppppppcVar32 == (code ******)0x0)" ( (binary_expression "ppppppcVar32 == (code ******)0x0" identifier == (cast_expression "(code ******)0x0" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (goto_statement "goto LAB_00056e5c;" goto statement_identifier ;)) (expression_statement "iVar18 = 0;" (assignment_expression "iVar18 = 0" identifier = number_literal) ;) (do_statement "do {\n          uVar16 = iVar18 << 3;\n          uVar7 = 0;\n          do {\n            uVar19 = (**(code **)(puVar41 + 0x23c88))(uVar16);\n            if (uVar19 != 0xffffffff) {\n              pppppppcVar38 = *(code ********)((int)pppppppcVar34[0xf] + iVar18);\n              *(uint *)((int)pppppppcVar34[0xf] + iVar18) =\n                   (uint)pppppppcVar38 | 1 << (uVar7 & 0x1f);\n            }\n            if (((uVar16 & 0xffffff80) == 0) && (uVar19 != uVar16)) {\n              *(byte *)(pppppppcVar34 + 0x16) = (byte)*(code *)(pppppppcVar34 + 0x16) & 0xef | 0x10;\n            }\n            uVar7 = uVar7 + 1;\n            uVar16 = uVar16 + 1;\n          } while (uVar7 != 0x20);\n          iVar18 = iVar18 + 4;\n        } while (iVar18 != 0x20);" do (compound_statement "{\n          uVar16 = iVar18 << 3;\n          uVar7 = 0;\n          do {\n            uVar19 = (**(code **)(puVar41 + 0x23c88))(uVar16);\n            if (uVar19 != 0xffffffff) {\n              pppppppcVar38 = *(code ********)((int)pppppppcVar34[0xf] + iVar18);\n              *(uint *)((int)pppppppcVar34[0xf] + iVar18) =\n                   (uint)pppppppcVar38 | 1 << (uVar7 & 0x1f);\n            }\n            if (((uVar16 & 0xffffff80) == 0) && (uVar19 != uVar16)) {\n              *(byte *)(pppppppcVar34 + 0x16) = (byte)*(code *)(pppppppcVar34 + 0x16) & 0xef | 0x10;\n            }\n            uVar7 = uVar7 + 1;\n            uVar16 = uVar16 + 1;\n          } while (uVar7 != 0x20);\n          iVar18 = iVar18 + 4;\n        }" { (expression_statement "uVar16 = iVar18 << 3;" (assignment_expression "uVar16 = iVar18 << 3" identifier = (binary_expression "iVar18 << 3" identifier << number_literal)) ;) (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" identifier = number_literal) ;) (do_statement "do {\n            uVar19 = (**(code **)(puVar41 + 0x23c88))(uVar16);\n            if (uVar19 != 0xffffffff) {\n              pppppppcVar38 = *(code ********)((int)pppppppcVar34[0xf] + iVar18);\n              *(uint *)((int)pppppppcVar34[0xf] + iVar18) =\n                   (uint)pppppppcVar38 | 1 << (uVar7 & 0x1f);\n            }\n            if (((uVar16 & 0xffffff80) == 0) && (uVar19 != uVar16)) {\n              *(byte *)(pppppppcVar34 + 0x16) = (byte)*(code *)(pppppppcVar34 + 0x16) & 0xef | 0x10;\n            }\n            uVar7 = uVar7 + 1;\n            uVar16 = uVar16 + 1;\n          } while (uVar7 != 0x20);" do (compound_statement "{\n            uVar19 = (**(code **)(puVar41 + 0x23c88))(uVar16);\n            if (uVar19 != 0xffffffff) {\n              pppppppcVar38 = *(code ********)((int)pppppppcVar34[0xf] + iVar18);\n              *(uint *)((int)pppppppcVar34[0xf] + iVar18) =\n                   (uint)pppppppcVar38 | 1 << (uVar7 & 0x1f);\n            }\n            if (((uVar16 & 0xffffff80) == 0) && (uVar19 != uVar16)) {\n              *(byte *)(pppppppcVar34 + 0x16) = (byte)*(code *)(pppppppcVar34 + 0x16) & 0xef | 0x10;\n            }\n            uVar7 = uVar7 + 1;\n            uVar16 = uVar16 + 1;\n          }" { (expression_statement "uVar19 = (**(code **)(puVar41 + 0x23c88))(uVar16);" (assignment_expression "uVar19 = (**(code **)(puVar41 + 0x23c88))(uVar16)" identifier = (call_expression "(**(code **)(puVar41 + 0x23c88))(uVar16)" (parenthesized_expression "(**(code **)(puVar41 + 0x23c88))" ( (pointer_expression "**(code **)(puVar41 + 0x23c88)" * (pointer_expression "*(code **)(puVar41 + 0x23c88)" * (cast_expression "(code **)(puVar41 + 0x23c88)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar41 + 0x23c88)" ( (binary_expression "puVar41 + 0x23c88" identifier + number_literal) ))))) )) (argument_list "(uVar16)" ( identifier )))) ;) (if_statement "if (uVar19 != 0xffffffff) {\n              pppppppcVar38 = *(code ********)((int)pppppppcVar34[0xf] + iVar18);\n              *(uint *)((int)pppppppcVar34[0xf] + iVar18) =\n                   (uint)pppppppcVar38 | 1 << (uVar7 & 0x1f);\n            }" if (parenthesized_expression "(uVar19 != 0xffffffff)" ( (binary_expression "uVar19 != 0xffffffff" identifier != number_literal) )) (compound_statement "{\n              pppppppcVar38 = *(code ********)((int)pppppppcVar34[0xf] + iVar18);\n              *(uint *)((int)pppppppcVar34[0xf] + iVar18) =\n                   (uint)pppppppcVar38 | 1 << (uVar7 & 0x1f);\n            }" { (expression_statement "pppppppcVar38 = *(code ********)((int)pppppppcVar34[0xf] + iVar18);" (assignment_expression "pppppppcVar38 = *(code ********)((int)pppppppcVar34[0xf] + iVar18)" identifier = (pointer_expression "*(code ********)((int)pppppppcVar34[0xf] + iVar18)" * (cast_expression "(code ********)((int)pppppppcVar34[0xf] + iVar18)" ( (type_descriptor "code ********" type_identifier (abstract_pointer_declarator "********" * (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))))) ) (parenthesized_expression "((int)pppppppcVar34[0xf] + iVar18)" ( (binary_expression "(int)pppppppcVar34[0xf] + iVar18" (cast_expression "(int)pppppppcVar34[0xf]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "pppppppcVar34[0xf]" identifier [ number_literal ])) + identifier) ))))) ;) (expression_statement "*(uint *)((int)pppppppcVar34[0xf] + iVar18) =\n                   (uint)pppppppcVar38 | 1 << (uVar7 & 0x1f);" (assignment_expression "*(uint *)((int)pppppppcVar34[0xf] + iVar18) =\n                   (uint)pppppppcVar38 | 1 << (uVar7 & 0x1f)" (pointer_expression "*(uint *)((int)pppppppcVar34[0xf] + iVar18)" * (cast_expression "(uint *)((int)pppppppcVar34[0xf] + iVar18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppppppcVar34[0xf] + iVar18)" ( (binary_expression "(int)pppppppcVar34[0xf] + iVar18" (cast_expression "(int)pppppppcVar34[0xf]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "pppppppcVar34[0xf]" identifier [ number_literal ])) + identifier) )))) = (binary_expression "(uint)pppppppcVar38 | 1 << (uVar7 & 0x1f)" (cast_expression "(uint)pppppppcVar38" ( (type_descriptor "uint" type_identifier) ) identifier) | (binary_expression "1 << (uVar7 & 0x1f)" number_literal << (parenthesized_expression "(uVar7 & 0x1f)" ( (binary_expression "uVar7 & 0x1f" identifier & number_literal) ))))) ;) })) (if_statement "if (((uVar16 & 0xffffff80) == 0) && (uVar19 != uVar16)) {\n              *(byte *)(pppppppcVar34 + 0x16) = (byte)*(code *)(pppppppcVar34 + 0x16) & 0xef | 0x10;\n            }" if (parenthesized_expression "(((uVar16 & 0xffffff80) == 0) && (uVar19 != uVar16))" ( (binary_expression "((uVar16 & 0xffffff80) == 0) && (uVar19 != uVar16)" (parenthesized_expression "((uVar16 & 0xffffff80) == 0)" ( (binary_expression "(uVar16 & 0xffffff80) == 0" (parenthesized_expression "(uVar16 & 0xffffff80)" ( (binary_expression "uVar16 & 0xffffff80" identifier & number_literal) )) == number_literal) )) && (parenthesized_expression "(uVar19 != uVar16)" ( (binary_expression "uVar19 != uVar16" identifier != identifier) ))) )) (compound_statement "{\n              *(byte *)(pppppppcVar34 + 0x16) = (byte)*(code *)(pppppppcVar34 + 0x16) & 0xef | 0x10;\n            }" { (expression_statement "*(byte *)(pppppppcVar34 + 0x16) = (byte)*(code *)(pppppppcVar34 + 0x16) & 0xef | 0x10;" (assignment_expression "*(byte *)(pppppppcVar34 + 0x16) = (byte)*(code *)(pppppppcVar34 + 0x16) & 0xef | 0x10" (pointer_expression "*(byte *)(pppppppcVar34 + 0x16)" * (cast_expression "(byte *)(pppppppcVar34 + 0x16)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pppppppcVar34 + 0x16)" ( (binary_expression "pppppppcVar34 + 0x16" identifier + number_literal) )))) = (binary_expression "(byte)*(code *)(pppppppcVar34 + 0x16) & 0xef | 0x10" (binary_expression "(byte)*(code *)(pppppppcVar34 + 0x16) & 0xef" (binary_expression "(byte)*(code *)(pppppppcVar34 + 0x16)" (parenthesized_expression "(byte)" ( identifier )) * (cast_expression "(code *)(pppppppcVar34 + 0x16)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pppppppcVar34 + 0x16)" ( (binary_expression "pppppppcVar34 + 0x16" identifier + number_literal) )))) & number_literal) | number_literal)) ;) })) (expression_statement "uVar7 = uVar7 + 1;" (assignment_expression "uVar7 = uVar7 + 1" identifier = (binary_expression "uVar7 + 1" identifier + number_literal)) ;) (expression_statement "uVar16 = uVar16 + 1;" (assignment_expression "uVar16 = uVar16 + 1" identifier = (binary_expression "uVar16 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar7 != 0x20)" ( (binary_expression "uVar7 != 0x20" identifier != number_literal) )) ;) (expression_statement "iVar18 = iVar18 + 4;" (assignment_expression "iVar18 = iVar18 + 4" identifier = (binary_expression "iVar18 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar18 != 0x20)" ( (binary_expression "iVar18 != 0x20" identifier != number_literal) )) ;) }) (else_clause "else {\n        pppppppcVar34[0xf] = (code ******)(*(int *)(puVar41 + 0x23754) + 0x6ee4);\n      }" else (compound_statement "{\n        pppppppcVar34[0xf] = (code ******)(*(int *)(puVar41 + 0x23754) + 0x6ee4);\n      }" { (expression_statement "pppppppcVar34[0xf] = (code ******)(*(int *)(puVar41 + 0x23754) + 0x6ee4);" (assignment_expression "pppppppcVar34[0xf] = (code ******)(*(int *)(puVar41 + 0x23754) + 0x6ee4)" (subscript_expression "pppppppcVar34[0xf]" identifier [ number_literal ]) = (cast_expression "(code ******)(*(int *)(puVar41 + 0x23754) + 0x6ee4)" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "(*(int *)(puVar41 + 0x23754) + 0x6ee4)" ( (binary_expression "*(int *)(puVar41 + 0x23754) + 0x6ee4" (pointer_expression "*(int *)(puVar41 + 0x23754)" * (cast_expression "(int *)(puVar41 + 0x23754)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar41 + 0x23754)" ( (binary_expression "puVar41 + 0x23754" identifier + number_literal) )))) + number_literal) )))) ;) }))) })) (if_statement "if ((*pppppppcVar34 == (code ******)0x0) || (pppppppcVar34[8] == (code ******)0x0))\n    goto LAB_00056e5c;" if (parenthesized_expression "((*pppppppcVar34 == (code ******)0x0) || (pppppppcVar34[8] == (code ******)0x0))" ( (binary_expression "(*pppppppcVar34 == (code ******)0x0) || (pppppppcVar34[8] == (code ******)0x0)" (parenthesized_expression "(*pppppppcVar34 == (code ******)0x0)" ( (binary_expression "*pppppppcVar34 == (code ******)0x0" (pointer_expression "*pppppppcVar34" * identifier) == (cast_expression "(code ******)0x0" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) || (parenthesized_expression "(pppppppcVar34[8] == (code ******)0x0)" ( (binary_expression "pppppppcVar34[8] == (code ******)0x0" (subscript_expression "pppppppcVar34[8]" identifier [ number_literal ]) == (cast_expression "(code ******)0x0" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ))) )) (goto_statement "goto LAB_00056e5c;" goto statement_identifier ;)) (expression_statement "pppppppcStack_20c = (code *******)0x0;" (assignment_expression "pppppppcStack_20c = (code *******)0x0" identifier = (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (if_statement "if (*(int *)(puVar41 + 0x23c78) == 0) {\nLAB_00056054:\n      ppppppcVar32 = pppppppcVar3[5];\n      uVar16 = (uint)pppppppcVar33 & 0x400000;\n      bVar1 = uVar16 != 0;\n      pppppppcVar31 = (code *******)0x4c;\n      pppppppcVar38 = (code *******)0x0;\n      (**(code **)(puVar41 + 0x23c9c))(apppppppcStack_1f4,0);\n      cStack_1ad = ppppppcVar32 != (code ******)0x0 || bVar1;\n      ppppppcStack_1a8 = pppppppcVar34[0x17];\n      bStack_1af = (byte)((uint)((int)pppppppcVar34[0x16] << 2) >> 0x1f);\n      bStack_1ae = (byte)((uint)((int)pppppppcVar34[0x16] << 3) >> 0x1f);\n      pppppppcStack_1f8 = pppppppcVar29;\n      pppppppcStack_1cc = param_1;\n      pppppppcStack_1c8 = param_1;\n      pppppppcStack_1c4 = param_1;\n      pppppppcStack_1c0 = param_1;\n      ppppppcStack_1b8 = ppppppcVar32;\n      uStack_1b0 = bVar1;\n      if (0 < (int)param_1) {\n        pppppppcVar38 = (code *******)((int)param_1 + 1);\n        pppppppcVar30 = (code *******)FUN_00046d2c(&pppppppcStack_1f8,pppppppcVar38);\n        if (pppppppcVar30 == (code *******)0x0) goto LAB_000560cc;\n        goto LAB_00056168;\n      }\nLAB_000560cc:\n      if (cStack_1ad != '\0') {\n        pppppppcVar29 = apppppppcStack_1f4[0];\n      }\n      apppppppcStack_1f4[0] = pppppppcVar29;\n      if (uVar16 == 0) {\n        if ((int)pppppppcVar34[0x17] < 2) {\n          if (ppppppcVar32 != (code ******)0x0) {\n            FUN_00045dc8();\n          }\n        }\n        else {\n          FUN_00047cb0(&pppppppcStack_1f8);\n        }\n      }\n      else {\n        if (1 < (int)pppppppcVar34[0x17]) {\n          iVar18 = *(int *)(puVar41 + 0x23abc);\n          do {\n            pppppppcVar30 = (code *******)FUN_00048714(&pppppppcStack_1f8);\n            if (pppppppcVar30 != (code *******)0x0) break;\n            if (((int)param_1 <= iStack_1d8) ||\n               (pppppppcVar38 = (code *******)(iStack_1d4 << 1),\n               (int)pppppppcVar34[0x17] + iStack_1dc < iStack_1d4)) goto LAB_000563d0;\n            pppppppcVar30 =\n                 (code *******)(*(code *)(iVar18 + 0x6d2c))(&pppppppcStack_1f8,pppppppcVar38);\n          } while (pppppppcVar30 == (code *******)0x0);\n          goto LAB_00056168;\n        }\n        FUN_00047be4(&pppppppcStack_1f8);\n      }\nLAB_000563d0:\n      pppppppcStack_20c = (code *******)0x0;\n      pppppppcVar3[6] = (code ******)0x0;\n      ppppppcVar32 = *pppppppcVar3;\n      ppppppcVar32[0x20] = (code *****)pppppppcVar33;\n      FUN_00049e40(&ppppppcStack_204,&pppppppcStack_1f8,(uint)pppppppcVar33 | 0x800000);\n      pppppppcVar38 = pppppppcVar3;\n      pppppppcVar29 =\n           (code *******)\n           FUN_00051868(&pppppppcStack_1f8,pppppppcVar3,&ppppppcStack_204,pppppppcVar33,0,\n                        &pppppppcStack_20c);\n      if (pppppppcStack_20c == (code *******)0x0) {\n        pppppppcVar31 = (code *******)0x0;\n        pppppppcVar38 = (code *******)0x0;\n        pppppppcVar33 = (code *******)FUN_000470f0(ppppppcVar32,0,0,2);\n        pppppppcVar30 = pppppppcVar33;\n        if (pppppppcVar29 != (code *******)0x0) {\nLAB_000564b0:\n          pppppppcVar31 = pppppppcVar33;\n          pppppppcVar30 = (code *******)FUN_000470f0(ppppppcVar32,pppppppcVar29,pppppppcVar33,0x10);\n          pppppppcVar38 = pppppppcVar29;\n        }\n        if ((pppppppcVar33 == (code *******)0x0) ||\n           (pcVar4 = *(code **)(puVar41 + 0x23cf0), pppppppcVar30 == (code *******)0x0)) {\n          pppppppcStack_20c = (code *******)0xc;\n          goto LAB_000566f4;\n        }\n        pppppppcVar34[0xd] = (code ******)pppppppcVar30;\n        pppppppcVar29 = (code *******)*pppppppcVar3;\n        ppppppcVar39 = pppppppcVar29[1];\n        iVar18 = (int)ppppppcVar39 << 2;\n        ppppppcVar32 = (code ******)(*pcVar4)(iVar18);\n        pppppppcVar29[3] = ppppppcVar32;\n        ppppppcVar35 = (code ******)(**(code **)(puVar41 + 0x23cf0))(iVar18);\n        pppppppcVar29[4] = ppppppcVar35;\n        iVar18 = (int)ppppppcVar39 * 0xc;\n        ppppppcVar39 = (code ******)(**(code **)(puVar41 + 0x23cf0))(iVar18);\n        pppppppcVar29[5] = ppppppcVar39;\n        ppppppcVar20 = (code ******)(**(code **)(puVar41 + 0x23cf0))(iVar18);\n        pppppppcVar29[6] = ppppppcVar20;\n        if (ppppppcVar32 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else if (ppppppcVar35 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else if (ppppppcVar39 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else if (ppppppcVar20 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else {\n          ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23cf0))((int)pppppppcVar3[6] << 2);\n          pppppppcVar29[0x21] = ppppppcVar32;\n          if (ppppppcVar32 != (code ******)0x0) {\n            ppppppcVar32 = (code ******)0x0;\n            if (pppppppcVar3[6] != (code ******)0x0) {\n              do {\n                pppppppcVar29[0x21][(int)ppppppcVar32] = (code *****)ppppppcVar32;\n                ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n              } while (ppppppcVar32 < pppppppcVar3[6]);\n            }\n            FUN_00046050(pppppppcVar29[0xd],*(int *)(puVar41 + 0x23abc) + 0x60e8,pppppppcVar29);\n            ppppppcVar32 = pppppppcVar3[6];\n            if (ppppppcVar32 == (code ******)0x0) {\nLAB_00056704:\n              (**(code **)(puVar41 + 0x23dc0))(pppppppcVar29[0x21]);\n              pppppppcVar29[0x21] = (code ******)0x0;\n            }\n            else {\n              ppppppcVar35 = pppppppcVar29[0x21];\n              if (*ppppppcVar35 == (code *****)0x0) {\n                ppppppcVar39 = (code ******)0x0;\n                do {\n                  ppppppcVar35 = ppppppcVar35 + 1;\n                  ppppppcVar39 = (code ******)((int)ppppppcVar39 + 1);\n                  if (ppppppcVar32 == ppppppcVar39) {\n                    if (ppppppcVar32 == ppppppcVar39) goto LAB_00056704;\n                    break;\n                  }\n                } while ((code ******)*ppppppcVar35 == ppppppcVar39);\n              }\n            }\n          }\n          pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23abc) + 0x73a4);\n          pppppppcVar30 = (code *******)FUN_00045fb4(pppppppcVar29[0xd],pppppppcVar38,pppppppcVar3);\n          pppppppcVar31 = pppppppcVar29;\n          if (pppppppcVar30 == (code *******)0x0) {\n            pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23b40) + -0x5be4);\n            pppppppcVar30 = (code *******)FUN_00045fb4(pppppppcVar29[0xd],pppppppcVar38);\n            if (pppppppcVar30 == (code *******)0x0) {\n              FUN_00046050(pppppppcVar29[0xd],*(int *)(puVar41 + 0x23abc) + 0x61b4);\n              pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23b40) + -0x4614);\n              pppppppcVar30 = (code *******)FUN_00046050(pppppppcVar29[0xd],pppppppcVar38);\n              if (pppppppcVar30 == (code *******)0x0) {\n                uVar7 = 0;\n                iVar18 = *(int *)(puVar41 + 0x23b40);\n                pppppppcVar33 = (code *******)0x0;\nLAB_00056744:\n                if ((code *******)pppppppcVar29[2] != pppppppcVar33) {\nLAB_00056750:\n                  if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                    pppppppcVar38 = pppppppcVar29;\n                    pppppppcVar31 = pppppppcVar33;\n                    pppppppcVar30 =\n                         (code *******)\n                         (*(code *)(iVar18 + -0x561c))\n                                   (&ppppppcStack_204,pppppppcVar29,pppppppcVar33,1);\n                    if (pppppppcVar30 != (code *******)0x0) goto LAB_00056168;\n                    if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                      (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                      uVar7 = 1;\n                    }\n                  }\n                  pppppppcVar33 = (code *******)((int)pppppppcVar33 + 1);\n                  goto LAB_00056744;\n                }\n                if (uVar7 != 0) {\n                  uVar7 = 0;\n                  pppppppcVar33 = (code *******)0x0;\n                  goto LAB_00056750;\n                }\n                if (((((uint)pppppppcVar3[7] & 0x8000000) == 0) &&\n                    (pppppppcVar3[6] != (code ******)0x0)) &&\n                   ((char)*(code *)(pppppppcVar29 + 0x16) < '\0')) {\n                  ppppppcVar32 = pppppppcVar29[2];\n                }\n                else {\n                  if (pppppppcVar29[0x13] == (code ******)0x0) goto LAB_000568f0;\n                  ppppppcVar32 = pppppppcVar29[2];\n                }\n                ppppppcVar35 = (code ******)\n                               (**(code **)(puVar41 + 0x23cf0))((int)ppppppcVar32 * 0xc);\n                pppppppcVar29[7] = ppppppcVar35;\n                if (ppppppcVar35 == (code ******)0x0) {\n                  pppppppcVar30 = (code *******)0xc;\n                  goto LAB_00056168;\n                }\n                if (ppppppcVar32 != (code ******)0x0) {\n                  iVar18 = 0;\n                  ppppppcVar32 = (code ******)0x0;\n                  do {\n                    puVar21 = (undefined1 *)((int)pppppppcVar29[7] + iVar18);\n                    *puVar21 = 0;\n                    puVar21[1] = 0;\n                    puVar21[2] = 0;\n                    puVar21[3] = 0;\n                    puVar21[4] = 0;\n                    puVar21[5] = 0;\n                    puVar21[6] = 0;\n                    puVar21[7] = 0;\n                    puVar21[8] = 0;\n                    puVar21[9] = 0;\n                    puVar21[10] = 0;\n                    puVar21[0xb] = 0;\n                    ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                    iVar18 = iVar18 + 0xc;\n                  } while (ppppppcVar32 < pppppppcVar29[2]);\n                  iVar18 = *(int *)(puVar41 + 0x23abc);\n                  if (pppppppcVar29[2] != (code ******)0x0) {\n                    iVar43 = 0;\n                    pppppppcStack_218 = (code *******)0x0;\n                    do {\n                      piVar5 = *(int **)((int)pppppppcVar29[6] + iVar43 + 8);\n                      if (0 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4)) {\n                        iVar37 = 0;\n                        do {\n                          pppppppcVar38 = pppppppcStack_218;\n                          iVar22 = (*(code *)(iVar18 + 0x6e30))\n                                             (pppppppcVar29[7] + *piVar5 * 3,pppppppcStack_218);\n                          pppppppcVar30 = (code *******)0xc;\n                          if (iVar22 == 0) goto LAB_00056168;\n                          iVar37 = iVar37 + 1;\n                          piVar5 = piVar5 + 1;\n                        } while (iVar37 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4));\n                      }\n                      pppppppcStack_218 = (code *******)((int)pppppppcStack_218 + 1);\n                      iVar43 = iVar43 + 0xc;\n                    } while (pppppppcStack_218 < pppppppcVar29[2]);\n                  }\n                }\nLAB_000568f0:\n                pppppppcStack_20c = (code *******)0x0;\n                if (((((uint)pppppppcVar34[0x16] & 0x20000000) != 0) && (uVar16 == 0)) &&\n                   (pppppppcVar3[5] == (code ******)0x0)) {\n                  if (pppppppcVar34[2] != (code ******)0x0) {\n                    pppppppcVar31 = (code *******)(*(int *)(puVar41 + 0x23754) + 0x6e4c);\n                    if (*(byte *)(*pppppppcVar34 + 1) < 0xd) {\n                    /* WARNING: Could not recover jumptable at 0x00056a60. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      pppppppcVar29 =\n                           (code *******)\n                           (*(code *)(puVar41 +\n                                     (int)(pppppppcVar31[*(byte *)(*pppppppcVar34 + 1)] + 0xadc7)))\n                                     ();\n                      return pppppppcVar29;\n                    }\n                    (**(code **)(puVar41 + 0x23bc4))(0);\n                    if (uVar7 != 0) {\n                      pppppppcVar31 = (code *******)&DAT_00000007;\n                      ppppppcVar32 = (code ******)0x0;\n                      do {\n                        ppppppcVar35 = *pppppppcVar34 + (int)ppppppcVar32 * 2;\n                        if (*(char *)(ppppppcVar35 + 1) == '\x01') {\n                          if (*(char *)ppppppcVar35 < '\0') {\n                            ppppppcVar35[1] = (code *****)((uint)ppppppcVar35[1] & 0xfffffbff);\n                          }\n                        }\n                        else if (*(char *)(ppppppcVar35 + 1) == '\x05') {\n                          *(char *)(ppppppcVar35 + 1) = '\a';\n                        }\n                        ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                      } while (ppppppcVar32 < pppppppcVar34[2]);\n                    }\n                  }\n                  pppppppcVar34[0x17] = (code ******)0x1;\n                  if (0 < (int)pppppppcVar34[0x13]) {\n                    uVar7 = 1;\n                  }\n                  *(byte *)(pppppppcVar34 + 0x16) =\n                       (byte)*(code *)(pppppppcVar34 + 0x16) & 0x9f | (byte)((uVar7 & 1) << 6);\n                }\n                ppppppcVar32 = (code ******)pppppppcVar34[0xd][3][7];\n                pppppppcVar34[0x12] = ppppppcVar32;\n                pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppppcVar32 * 3);\n                pppppppcVar33 = (code *******)FUN_000483e8(&ppppppcStack_204,pppppppcVar38);\n                pppppppcVar29 = pppppppcVar33;\n                pppppppcStack_208 = pppppppcVar33;\n                if (pppppppcVar33 == (code *******)0x0) {\n                  if ((0 < (int)pppppppcVar34[0x13]) && (0 < iStack_200)) {\n                    iVar18 = *(int *)(puVar41 + 0x23abc);\n                    iVar43 = *(int *)(puVar41 + 0x23abc);\n                    pppppppcVar29 = (code *******)0x0;\n                    do {\n                      pppppppcVar31 =\n                           (code *******)(*pppppppcVar34 + piStack_1fc[(int)pppppppcVar29] * 2);\n                      if (*(code *)(pppppppcVar31 + 1) == (code)0x4) {\n                        iVar37 = 0;\n                        piVar5 = piStack_1fc;\n                        if (iStack_200 < 1) {\nLAB_00056b8c:\n                          if (iStack_200 != iVar37) {\n                            ppppcVar40 = *pppppppcVar34[5][piStack_1fc[(int)pppppppcVar29] * 3 + 2];\n                            iVar37 = (*(code *)(iVar18 + 0x5ea8))(&ppppppcStack_204,ppppcVar40);\n                            if (iVar37 == 0) {\n                              pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppcVar40 * 3)\n                              ;\n                              pppppppcVar29 =\n                                   (code *******)\n                                   (*(code *)(iVar43 + 0x7f1c))(&ppppppcStack_204,pppppppcVar38);\n                              if (pppppppcVar29 != (code *******)0x0) goto LAB_00056cb8;\n                            }\n                          }\n                        }\n                        else {\n                          do {\n                            ppppppcVar32 = *pppppppcVar34 + *piVar5 * 2;\n                            if ((*(char *)(ppppppcVar32 + 1) == '\t') &&\n                               ((code ******)*ppppppcVar32 == *pppppppcVar31)) goto LAB_00056b8c;\n                            iVar37 = iVar37 + 1;\n                            piVar5 = piVar5 + 1;\n                          } while (iStack_200 != iVar37);\n                        }\n                      }\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1);\n                    } while ((int)pppppppcVar29 < iStack_200);\n                  }\n                  pppppppcVar31 = &ppppppcStack_204;\n                  pppppppcVar38 = pppppppcVar34;\n                  ppppppcVar32 = (code ******)\n                                 FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,0);\n                  pppppppcVar34[9] = ppppppcVar32;\n                  pppppppcVar29 = pppppppcStack_208;\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    if (((uint)ppppppcVar32[0xd] & 0x1000000) == 0) {\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar34[10] = ppppppcVar32;\n                    }\n                    else {\n                      pppppppcVar31 = &ppppppcStack_204;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,1);\n                      pppppppcVar34[10] = ppppppcVar32;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,2);\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar38 = pppppppcVar34;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,6);\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar29 = pppppppcStack_208;\n                      if (((pppppppcVar34[10] == (code ******)0x0) ||\n                          (pppppppcVar34[0xb] == (code ******)0x0)) ||\n                         (ppppppcVar32 == (code ******)0x0)) goto LAB_00056cb8;\n                    }\n                    (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                    pppppppcVar29 = pppppppcVar33;\n                  }\n                }\nLAB_00056cb8:\n                pppppppcStack_20c = pppppppcVar29;\n                FUN_0004b234(pppppppcVar3);\n                FUN_0004b2bc(&pppppppcStack_1f8);\n                pppppppcVar29 = pppppppcStack_20c;\n                if (pppppppcStack_20c != (code *******)0x0) {\n                  if (*(int *)(puVar41 + 0x23c78) != 0) {\n                    (**(code **)(puVar41 + 0x23df0))(pppppppcVar34 + 0x22);\n                  }\n                  FUN_0004b338(pppppppcVar34);\n                  *pppppppcVar3 = (code ******)0x0;\n                  pppppppcVar3[1] = (code ******)0x0;\n                  pppppppcVar29 = pppppppcStack_20c;\n                }\n                goto LAB_00056cfc;\n              }\n            }\n          }\n        }\n      }\n      else {\n        pppppppcVar31 = (code *******)0x0;\n        if (pppppppcVar29 != (code *******)0x0) {\n          pppppppcVar33 = (code *******)FUN_000470f0(ppppppcVar32,0,0,2);\n          goto LAB_000564b0;\n        }\nLAB_000566f4:\n        pppppppcVar34[0xd] = (code ******)0x0;\n        pppppppcVar30 = pppppppcStack_20c;\n      }\nLAB_00056168:\n      pppppppcStack_20c = pppppppcVar30;\n      FUN_0004b234(pppppppcVar3);\n      FUN_0004b2bc(&pppppppcStack_1f8);\n      if (*(int *)(puVar41 + 0x23c78) != 0) {\n        (**(code **)(puVar41 + 0x23df0))(pppppppcVar34 + 0x22);\n      }\n      FUN_0004b338(pppppppcVar34);\n      *pppppppcVar3 = (code ******)0x0;\n      pppppppcVar3[1] = (code ******)0x0;\n      pppppppcVar29 = pppppppcStack_20c;\n      goto LAB_00056cfc;\n    }" if (parenthesized_expression "(*(int *)(puVar41 + 0x23c78) == 0)" ( (binary_expression "*(int *)(puVar41 + 0x23c78) == 0" (pointer_expression "*(int *)(puVar41 + 0x23c78)" * (cast_expression "(int *)(puVar41 + 0x23c78)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar41 + 0x23c78)" ( (binary_expression "puVar41 + 0x23c78" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\nLAB_00056054:\n      ppppppcVar32 = pppppppcVar3[5];\n      uVar16 = (uint)pppppppcVar33 & 0x400000;\n      bVar1 = uVar16 != 0;\n      pppppppcVar31 = (code *******)0x4c;\n      pppppppcVar38 = (code *******)0x0;\n      (**(code **)(puVar41 + 0x23c9c))(apppppppcStack_1f4,0);\n      cStack_1ad = ppppppcVar32 != (code ******)0x0 || bVar1;\n      ppppppcStack_1a8 = pppppppcVar34[0x17];\n      bStack_1af = (byte)((uint)((int)pppppppcVar34[0x16] << 2) >> 0x1f);\n      bStack_1ae = (byte)((uint)((int)pppppppcVar34[0x16] << 3) >> 0x1f);\n      pppppppcStack_1f8 = pppppppcVar29;\n      pppppppcStack_1cc = param_1;\n      pppppppcStack_1c8 = param_1;\n      pppppppcStack_1c4 = param_1;\n      pppppppcStack_1c0 = param_1;\n      ppppppcStack_1b8 = ppppppcVar32;\n      uStack_1b0 = bVar1;\n      if (0 < (int)param_1) {\n        pppppppcVar38 = (code *******)((int)param_1 + 1);\n        pppppppcVar30 = (code *******)FUN_00046d2c(&pppppppcStack_1f8,pppppppcVar38);\n        if (pppppppcVar30 == (code *******)0x0) goto LAB_000560cc;\n        goto LAB_00056168;\n      }\nLAB_000560cc:\n      if (cStack_1ad != '\0') {\n        pppppppcVar29 = apppppppcStack_1f4[0];\n      }\n      apppppppcStack_1f4[0] = pppppppcVar29;\n      if (uVar16 == 0) {\n        if ((int)pppppppcVar34[0x17] < 2) {\n          if (ppppppcVar32 != (code ******)0x0) {\n            FUN_00045dc8();\n          }\n        }\n        else {\n          FUN_00047cb0(&pppppppcStack_1f8);\n        }\n      }\n      else {\n        if (1 < (int)pppppppcVar34[0x17]) {\n          iVar18 = *(int *)(puVar41 + 0x23abc);\n          do {\n            pppppppcVar30 = (code *******)FUN_00048714(&pppppppcStack_1f8);\n            if (pppppppcVar30 != (code *******)0x0) break;\n            if (((int)param_1 <= iStack_1d8) ||\n               (pppppppcVar38 = (code *******)(iStack_1d4 << 1),\n               (int)pppppppcVar34[0x17] + iStack_1dc < iStack_1d4)) goto LAB_000563d0;\n            pppppppcVar30 =\n                 (code *******)(*(code *)(iVar18 + 0x6d2c))(&pppppppcStack_1f8,pppppppcVar38);\n          } while (pppppppcVar30 == (code *******)0x0);\n          goto LAB_00056168;\n        }\n        FUN_00047be4(&pppppppcStack_1f8);\n      }\nLAB_000563d0:\n      pppppppcStack_20c = (code *******)0x0;\n      pppppppcVar3[6] = (code ******)0x0;\n      ppppppcVar32 = *pppppppcVar3;\n      ppppppcVar32[0x20] = (code *****)pppppppcVar33;\n      FUN_00049e40(&ppppppcStack_204,&pppppppcStack_1f8,(uint)pppppppcVar33 | 0x800000);\n      pppppppcVar38 = pppppppcVar3;\n      pppppppcVar29 =\n           (code *******)\n           FUN_00051868(&pppppppcStack_1f8,pppppppcVar3,&ppppppcStack_204,pppppppcVar33,0,\n                        &pppppppcStack_20c);\n      if (pppppppcStack_20c == (code *******)0x0) {\n        pppppppcVar31 = (code *******)0x0;\n        pppppppcVar38 = (code *******)0x0;\n        pppppppcVar33 = (code *******)FUN_000470f0(ppppppcVar32,0,0,2);\n        pppppppcVar30 = pppppppcVar33;\n        if (pppppppcVar29 != (code *******)0x0) {\nLAB_000564b0:\n          pppppppcVar31 = pppppppcVar33;\n          pppppppcVar30 = (code *******)FUN_000470f0(ppppppcVar32,pppppppcVar29,pppppppcVar33,0x10);\n          pppppppcVar38 = pppppppcVar29;\n        }\n        if ((pppppppcVar33 == (code *******)0x0) ||\n           (pcVar4 = *(code **)(puVar41 + 0x23cf0), pppppppcVar30 == (code *******)0x0)) {\n          pppppppcStack_20c = (code *******)0xc;\n          goto LAB_000566f4;\n        }\n        pppppppcVar34[0xd] = (code ******)pppppppcVar30;\n        pppppppcVar29 = (code *******)*pppppppcVar3;\n        ppppppcVar39 = pppppppcVar29[1];\n        iVar18 = (int)ppppppcVar39 << 2;\n        ppppppcVar32 = (code ******)(*pcVar4)(iVar18);\n        pppppppcVar29[3] = ppppppcVar32;\n        ppppppcVar35 = (code ******)(**(code **)(puVar41 + 0x23cf0))(iVar18);\n        pppppppcVar29[4] = ppppppcVar35;\n        iVar18 = (int)ppppppcVar39 * 0xc;\n        ppppppcVar39 = (code ******)(**(code **)(puVar41 + 0x23cf0))(iVar18);\n        pppppppcVar29[5] = ppppppcVar39;\n        ppppppcVar20 = (code ******)(**(code **)(puVar41 + 0x23cf0))(iVar18);\n        pppppppcVar29[6] = ppppppcVar20;\n        if (ppppppcVar32 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else if (ppppppcVar35 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else if (ppppppcVar39 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else if (ppppppcVar20 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else {\n          ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23cf0))((int)pppppppcVar3[6] << 2);\n          pppppppcVar29[0x21] = ppppppcVar32;\n          if (ppppppcVar32 != (code ******)0x0) {\n            ppppppcVar32 = (code ******)0x0;\n            if (pppppppcVar3[6] != (code ******)0x0) {\n              do {\n                pppppppcVar29[0x21][(int)ppppppcVar32] = (code *****)ppppppcVar32;\n                ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n              } while (ppppppcVar32 < pppppppcVar3[6]);\n            }\n            FUN_00046050(pppppppcVar29[0xd],*(int *)(puVar41 + 0x23abc) + 0x60e8,pppppppcVar29);\n            ppppppcVar32 = pppppppcVar3[6];\n            if (ppppppcVar32 == (code ******)0x0) {\nLAB_00056704:\n              (**(code **)(puVar41 + 0x23dc0))(pppppppcVar29[0x21]);\n              pppppppcVar29[0x21] = (code ******)0x0;\n            }\n            else {\n              ppppppcVar35 = pppppppcVar29[0x21];\n              if (*ppppppcVar35 == (code *****)0x0) {\n                ppppppcVar39 = (code ******)0x0;\n                do {\n                  ppppppcVar35 = ppppppcVar35 + 1;\n                  ppppppcVar39 = (code ******)((int)ppppppcVar39 + 1);\n                  if (ppppppcVar32 == ppppppcVar39) {\n                    if (ppppppcVar32 == ppppppcVar39) goto LAB_00056704;\n                    break;\n                  }\n                } while ((code ******)*ppppppcVar35 == ppppppcVar39);\n              }\n            }\n          }\n          pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23abc) + 0x73a4);\n          pppppppcVar30 = (code *******)FUN_00045fb4(pppppppcVar29[0xd],pppppppcVar38,pppppppcVar3);\n          pppppppcVar31 = pppppppcVar29;\n          if (pppppppcVar30 == (code *******)0x0) {\n            pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23b40) + -0x5be4);\n            pppppppcVar30 = (code *******)FUN_00045fb4(pppppppcVar29[0xd],pppppppcVar38);\n            if (pppppppcVar30 == (code *******)0x0) {\n              FUN_00046050(pppppppcVar29[0xd],*(int *)(puVar41 + 0x23abc) + 0x61b4);\n              pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23b40) + -0x4614);\n              pppppppcVar30 = (code *******)FUN_00046050(pppppppcVar29[0xd],pppppppcVar38);\n              if (pppppppcVar30 == (code *******)0x0) {\n                uVar7 = 0;\n                iVar18 = *(int *)(puVar41 + 0x23b40);\n                pppppppcVar33 = (code *******)0x0;\nLAB_00056744:\n                if ((code *******)pppppppcVar29[2] != pppppppcVar33) {\nLAB_00056750:\n                  if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                    pppppppcVar38 = pppppppcVar29;\n                    pppppppcVar31 = pppppppcVar33;\n                    pppppppcVar30 =\n                         (code *******)\n                         (*(code *)(iVar18 + -0x561c))\n                                   (&ppppppcStack_204,pppppppcVar29,pppppppcVar33,1);\n                    if (pppppppcVar30 != (code *******)0x0) goto LAB_00056168;\n                    if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                      (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                      uVar7 = 1;\n                    }\n                  }\n                  pppppppcVar33 = (code *******)((int)pppppppcVar33 + 1);\n                  goto LAB_00056744;\n                }\n                if (uVar7 != 0) {\n                  uVar7 = 0;\n                  pppppppcVar33 = (code *******)0x0;\n                  goto LAB_00056750;\n                }\n                if (((((uint)pppppppcVar3[7] & 0x8000000) == 0) &&\n                    (pppppppcVar3[6] != (code ******)0x0)) &&\n                   ((char)*(code *)(pppppppcVar29 + 0x16) < '\0')) {\n                  ppppppcVar32 = pppppppcVar29[2];\n                }\n                else {\n                  if (pppppppcVar29[0x13] == (code ******)0x0) goto LAB_000568f0;\n                  ppppppcVar32 = pppppppcVar29[2];\n                }\n                ppppppcVar35 = (code ******)\n                               (**(code **)(puVar41 + 0x23cf0))((int)ppppppcVar32 * 0xc);\n                pppppppcVar29[7] = ppppppcVar35;\n                if (ppppppcVar35 == (code ******)0x0) {\n                  pppppppcVar30 = (code *******)0xc;\n                  goto LAB_00056168;\n                }\n                if (ppppppcVar32 != (code ******)0x0) {\n                  iVar18 = 0;\n                  ppppppcVar32 = (code ******)0x0;\n                  do {\n                    puVar21 = (undefined1 *)((int)pppppppcVar29[7] + iVar18);\n                    *puVar21 = 0;\n                    puVar21[1] = 0;\n                    puVar21[2] = 0;\n                    puVar21[3] = 0;\n                    puVar21[4] = 0;\n                    puVar21[5] = 0;\n                    puVar21[6] = 0;\n                    puVar21[7] = 0;\n                    puVar21[8] = 0;\n                    puVar21[9] = 0;\n                    puVar21[10] = 0;\n                    puVar21[0xb] = 0;\n                    ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                    iVar18 = iVar18 + 0xc;\n                  } while (ppppppcVar32 < pppppppcVar29[2]);\n                  iVar18 = *(int *)(puVar41 + 0x23abc);\n                  if (pppppppcVar29[2] != (code ******)0x0) {\n                    iVar43 = 0;\n                    pppppppcStack_218 = (code *******)0x0;\n                    do {\n                      piVar5 = *(int **)((int)pppppppcVar29[6] + iVar43 + 8);\n                      if (0 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4)) {\n                        iVar37 = 0;\n                        do {\n                          pppppppcVar38 = pppppppcStack_218;\n                          iVar22 = (*(code *)(iVar18 + 0x6e30))\n                                             (pppppppcVar29[7] + *piVar5 * 3,pppppppcStack_218);\n                          pppppppcVar30 = (code *******)0xc;\n                          if (iVar22 == 0) goto LAB_00056168;\n                          iVar37 = iVar37 + 1;\n                          piVar5 = piVar5 + 1;\n                        } while (iVar37 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4));\n                      }\n                      pppppppcStack_218 = (code *******)((int)pppppppcStack_218 + 1);\n                      iVar43 = iVar43 + 0xc;\n                    } while (pppppppcStack_218 < pppppppcVar29[2]);\n                  }\n                }\nLAB_000568f0:\n                pppppppcStack_20c = (code *******)0x0;\n                if (((((uint)pppppppcVar34[0x16] & 0x20000000) != 0) && (uVar16 == 0)) &&\n                   (pppppppcVar3[5] == (code ******)0x0)) {\n                  if (pppppppcVar34[2] != (code ******)0x0) {\n                    pppppppcVar31 = (code *******)(*(int *)(puVar41 + 0x23754) + 0x6e4c);\n                    if (*(byte *)(*pppppppcVar34 + 1) < 0xd) {\n                    /* WARNING: Could not recover jumptable at 0x00056a60. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      pppppppcVar29 =\n                           (code *******)\n                           (*(code *)(puVar41 +\n                                     (int)(pppppppcVar31[*(byte *)(*pppppppcVar34 + 1)] + 0xadc7)))\n                                     ();\n                      return pppppppcVar29;\n                    }\n                    (**(code **)(puVar41 + 0x23bc4))(0);\n                    if (uVar7 != 0) {\n                      pppppppcVar31 = (code *******)&DAT_00000007;\n                      ppppppcVar32 = (code ******)0x0;\n                      do {\n                        ppppppcVar35 = *pppppppcVar34 + (int)ppppppcVar32 * 2;\n                        if (*(char *)(ppppppcVar35 + 1) == '\x01') {\n                          if (*(char *)ppppppcVar35 < '\0') {\n                            ppppppcVar35[1] = (code *****)((uint)ppppppcVar35[1] & 0xfffffbff);\n                          }\n                        }\n                        else if (*(char *)(ppppppcVar35 + 1) == '\x05') {\n                          *(char *)(ppppppcVar35 + 1) = '\a';\n                        }\n                        ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                      } while (ppppppcVar32 < pppppppcVar34[2]);\n                    }\n                  }\n                  pppppppcVar34[0x17] = (code ******)0x1;\n                  if (0 < (int)pppppppcVar34[0x13]) {\n                    uVar7 = 1;\n                  }\n                  *(byte *)(pppppppcVar34 + 0x16) =\n                       (byte)*(code *)(pppppppcVar34 + 0x16) & 0x9f | (byte)((uVar7 & 1) << 6);\n                }\n                ppppppcVar32 = (code ******)pppppppcVar34[0xd][3][7];\n                pppppppcVar34[0x12] = ppppppcVar32;\n                pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppppcVar32 * 3);\n                pppppppcVar33 = (code *******)FUN_000483e8(&ppppppcStack_204,pppppppcVar38);\n                pppppppcVar29 = pppppppcVar33;\n                pppppppcStack_208 = pppppppcVar33;\n                if (pppppppcVar33 == (code *******)0x0) {\n                  if ((0 < (int)pppppppcVar34[0x13]) && (0 < iStack_200)) {\n                    iVar18 = *(int *)(puVar41 + 0x23abc);\n                    iVar43 = *(int *)(puVar41 + 0x23abc);\n                    pppppppcVar29 = (code *******)0x0;\n                    do {\n                      pppppppcVar31 =\n                           (code *******)(*pppppppcVar34 + piStack_1fc[(int)pppppppcVar29] * 2);\n                      if (*(code *)(pppppppcVar31 + 1) == (code)0x4) {\n                        iVar37 = 0;\n                        piVar5 = piStack_1fc;\n                        if (iStack_200 < 1) {\nLAB_00056b8c:\n                          if (iStack_200 != iVar37) {\n                            ppppcVar40 = *pppppppcVar34[5][piStack_1fc[(int)pppppppcVar29] * 3 + 2];\n                            iVar37 = (*(code *)(iVar18 + 0x5ea8))(&ppppppcStack_204,ppppcVar40);\n                            if (iVar37 == 0) {\n                              pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppcVar40 * 3)\n                              ;\n                              pppppppcVar29 =\n                                   (code *******)\n                                   (*(code *)(iVar43 + 0x7f1c))(&ppppppcStack_204,pppppppcVar38);\n                              if (pppppppcVar29 != (code *******)0x0) goto LAB_00056cb8;\n                            }\n                          }\n                        }\n                        else {\n                          do {\n                            ppppppcVar32 = *pppppppcVar34 + *piVar5 * 2;\n                            if ((*(char *)(ppppppcVar32 + 1) == '\t') &&\n                               ((code ******)*ppppppcVar32 == *pppppppcVar31)) goto LAB_00056b8c;\n                            iVar37 = iVar37 + 1;\n                            piVar5 = piVar5 + 1;\n                          } while (iStack_200 != iVar37);\n                        }\n                      }\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1);\n                    } while ((int)pppppppcVar29 < iStack_200);\n                  }\n                  pppppppcVar31 = &ppppppcStack_204;\n                  pppppppcVar38 = pppppppcVar34;\n                  ppppppcVar32 = (code ******)\n                                 FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,0);\n                  pppppppcVar34[9] = ppppppcVar32;\n                  pppppppcVar29 = pppppppcStack_208;\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    if (((uint)ppppppcVar32[0xd] & 0x1000000) == 0) {\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar34[10] = ppppppcVar32;\n                    }\n                    else {\n                      pppppppcVar31 = &ppppppcStack_204;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,1);\n                      pppppppcVar34[10] = ppppppcVar32;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,2);\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar38 = pppppppcVar34;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,6);\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar29 = pppppppcStack_208;\n                      if (((pppppppcVar34[10] == (code ******)0x0) ||\n                          (pppppppcVar34[0xb] == (code ******)0x0)) ||\n                         (ppppppcVar32 == (code ******)0x0)) goto LAB_00056cb8;\n                    }\n                    (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                    pppppppcVar29 = pppppppcVar33;\n                  }\n                }\nLAB_00056cb8:\n                pppppppcStack_20c = pppppppcVar29;\n                FUN_0004b234(pppppppcVar3);\n                FUN_0004b2bc(&pppppppcStack_1f8);\n                pppppppcVar29 = pppppppcStack_20c;\n                if (pppppppcStack_20c != (code *******)0x0) {\n                  if (*(int *)(puVar41 + 0x23c78) != 0) {\n                    (**(code **)(puVar41 + 0x23df0))(pppppppcVar34 + 0x22);\n                  }\n                  FUN_0004b338(pppppppcVar34);\n                  *pppppppcVar3 = (code ******)0x0;\n                  pppppppcVar3[1] = (code ******)0x0;\n                  pppppppcVar29 = pppppppcStack_20c;\n                }\n                goto LAB_00056cfc;\n              }\n            }\n          }\n        }\n      }\n      else {\n        pppppppcVar31 = (code *******)0x0;\n        if (pppppppcVar29 != (code *******)0x0) {\n          pppppppcVar33 = (code *******)FUN_000470f0(ppppppcVar32,0,0,2);\n          goto LAB_000564b0;\n        }\nLAB_000566f4:\n        pppppppcVar34[0xd] = (code ******)0x0;\n        pppppppcVar30 = pppppppcStack_20c;\n      }\nLAB_00056168:\n      pppppppcStack_20c = pppppppcVar30;\n      FUN_0004b234(pppppppcVar3);\n      FUN_0004b2bc(&pppppppcStack_1f8);\n      if (*(int *)(puVar41 + 0x23c78) != 0) {\n        (**(code **)(puVar41 + 0x23df0))(pppppppcVar34 + 0x22);\n      }\n      FUN_0004b338(pppppppcVar34);\n      *pppppppcVar3 = (code ******)0x0;\n      pppppppcVar3[1] = (code ******)0x0;\n      pppppppcVar29 = pppppppcStack_20c;\n      goto LAB_00056cfc;\n    }" { (labeled_statement "LAB_00056054:\n      ppppppcVar32 = pppppppcVar3[5];" statement_identifier : (expression_statement "ppppppcVar32 = pppppppcVar3[5];" (assignment_expression "ppppppcVar32 = pppppppcVar3[5]" identifier = (subscript_expression "pppppppcVar3[5]" identifier [ number_literal ])) ;)) (expression_statement "uVar16 = (uint)pppppppcVar33 & 0x400000;" (assignment_expression "uVar16 = (uint)pppppppcVar33 & 0x400000" identifier = (binary_expression "(uint)pppppppcVar33 & 0x400000" (cast_expression "(uint)pppppppcVar33" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "bVar1 = uVar16 != 0;" (assignment_expression "bVar1 = uVar16 != 0" identifier = (binary_expression "uVar16 != 0" identifier != number_literal)) ;) (expression_statement "pppppppcVar31 = (code *******)0x4c;" (assignment_expression "pppppppcVar31 = (code *******)0x4c" identifier = (cast_expression "(code *******)0x4c" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "pppppppcVar38 = (code *******)0x0;" (assignment_expression "pppppppcVar38 = (code *******)0x0" identifier = (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "(**(code **)(puVar41 + 0x23c9c))(apppppppcStack_1f4,0);" (call_expression "(**(code **)(puVar41 + 0x23c9c))(apppppppcStack_1f4,0)" (parenthesized_expression "(**(code **)(puVar41 + 0x23c9c))" ( (pointer_expression "**(code **)(puVar41 + 0x23c9c)" * (pointer_expression "*(code **)(puVar41 + 0x23c9c)" * (cast_expression "(code **)(puVar41 + 0x23c9c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar41 + 0x23c9c)" ( (binary_expression "puVar41 + 0x23c9c" identifier + number_literal) ))))) )) (argument_list "(apppppppcStack_1f4,0)" ( identifier , number_literal ))) ;) (expression_statement "cStack_1ad = ppppppcVar32 != (code ******)0x0 || bVar1;" (assignment_expression "cStack_1ad = ppppppcVar32 != (code ******)0x0 || bVar1" identifier = (binary_expression "ppppppcVar32 != (code ******)0x0 || bVar1" (binary_expression "ppppppcVar32 != (code ******)0x0" identifier != (cast_expression "(code ******)0x0" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) || identifier)) ;) (expression_statement "ppppppcStack_1a8 = pppppppcVar34[0x17];" (assignment_expression "ppppppcStack_1a8 = pppppppcVar34[0x17]" identifier = (subscript_expression "pppppppcVar34[0x17]" identifier [ number_literal ])) ;) (expression_statement "bStack_1af = (byte)((uint)((int)pppppppcVar34[0x16] << 2) >> 0x1f);" (assignment_expression "bStack_1af = (byte)((uint)((int)pppppppcVar34[0x16] << 2) >> 0x1f)" identifier = (call_expression "(byte)((uint)((int)pppppppcVar34[0x16] << 2) >> 0x1f)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)((int)pppppppcVar34[0x16] << 2) >> 0x1f)" ( (binary_expression "(uint)((int)pppppppcVar34[0x16] << 2) >> 0x1f" (call_expression "(uint)((int)pppppppcVar34[0x16] << 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)pppppppcVar34[0x16] << 2)" ( (binary_expression "(int)pppppppcVar34[0x16] << 2" (cast_expression "(int)pppppppcVar34[0x16]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "pppppppcVar34[0x16]" identifier [ number_literal ])) << number_literal) ))) >> number_literal) )))) ;) (expression_statement "bStack_1ae = (byte)((uint)((int)pppppppcVar34[0x16] << 3) >> 0x1f);" (assignment_expression "bStack_1ae = (byte)((uint)((int)pppppppcVar34[0x16] << 3) >> 0x1f)" identifier = (call_expression "(byte)((uint)((int)pppppppcVar34[0x16] << 3) >> 0x1f)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)((int)pppppppcVar34[0x16] << 3) >> 0x1f)" ( (binary_expression "(uint)((int)pppppppcVar34[0x16] << 3) >> 0x1f" (call_expression "(uint)((int)pppppppcVar34[0x16] << 3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)pppppppcVar34[0x16] << 3)" ( (binary_expression "(int)pppppppcVar34[0x16] << 3" (cast_expression "(int)pppppppcVar34[0x16]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "pppppppcVar34[0x16]" identifier [ number_literal ])) << number_literal) ))) >> number_literal) )))) ;) (expression_statement "pppppppcStack_1f8 = pppppppcVar29;" (assignment_expression "pppppppcStack_1f8 = pppppppcVar29" identifier = identifier) ;) (expression_statement "pppppppcStack_1cc = param_1;" (assignment_expression "pppppppcStack_1cc = param_1" identifier = identifier) ;) (expression_statement "pppppppcStack_1c8 = param_1;" (assignment_expression "pppppppcStack_1c8 = param_1" identifier = identifier) ;) (expression_statement "pppppppcStack_1c4 = param_1;" (assignment_expression "pppppppcStack_1c4 = param_1" identifier = identifier) ;) (expression_statement "pppppppcStack_1c0 = param_1;" (assignment_expression "pppppppcStack_1c0 = param_1" identifier = identifier) ;) (expression_statement "ppppppcStack_1b8 = ppppppcVar32;" (assignment_expression "ppppppcStack_1b8 = ppppppcVar32" identifier = identifier) ;) (expression_statement "uStack_1b0 = bVar1;" (assignment_expression "uStack_1b0 = bVar1" identifier = identifier) ;) (if_statement "if (0 < (int)param_1) {\n        pppppppcVar38 = (code *******)((int)param_1 + 1);\n        pppppppcVar30 = (code *******)FUN_00046d2c(&pppppppcStack_1f8,pppppppcVar38);\n        if (pppppppcVar30 == (code *******)0x0) goto LAB_000560cc;\n        goto LAB_00056168;\n      }" if (parenthesized_expression "(0 < (int)param_1)" ( (binary_expression "0 < (int)param_1" number_literal < (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n        pppppppcVar38 = (code *******)((int)param_1 + 1);\n        pppppppcVar30 = (code *******)FUN_00046d2c(&pppppppcStack_1f8,pppppppcVar38);\n        if (pppppppcVar30 == (code *******)0x0) goto LAB_000560cc;\n        goto LAB_00056168;\n      }" { (expression_statement "pppppppcVar38 = (code *******)((int)param_1 + 1);" (assignment_expression "pppppppcVar38 = (code *******)((int)param_1 + 1)" identifier = (cast_expression "(code *******)((int)param_1 + 1)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)param_1 + 1)" ( (binary_expression "(int)param_1 + 1" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "pppppppcVar30 = (code *******)FUN_00046d2c(&pppppppcStack_1f8,pppppppcVar38);" (assignment_expression "pppppppcVar30 = (code *******)FUN_00046d2c(&pppppppcStack_1f8,pppppppcVar38)" identifier = (cast_expression "(code *******)FUN_00046d2c(&pppppppcStack_1f8,pppppppcVar38)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "FUN_00046d2c(&pppppppcStack_1f8,pppppppcVar38)" identifier (argument_list "(&pppppppcStack_1f8,pppppppcVar38)" ( (pointer_expression "&pppppppcStack_1f8" & identifier) , identifier ))))) ;) (if_statement "if (pppppppcVar30 == (code *******)0x0) goto LAB_000560cc;" if (parenthesized_expression "(pppppppcVar30 == (code *******)0x0)" ( (binary_expression "pppppppcVar30 == (code *******)0x0" identifier == (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (goto_statement "goto LAB_000560cc;" goto statement_identifier ;)) (goto_statement "goto LAB_00056168;" goto statement_identifier ;) })) (labeled_statement "LAB_000560cc:\n      if (cStack_1ad != '\0') {\n        pppppppcVar29 = apppppppcStack_1f4[0];\n      }" statement_identifier : (if_statement "if (cStack_1ad != '\0') {\n        pppppppcVar29 = apppppppcStack_1f4[0];\n      }" if (parenthesized_expression "(cStack_1ad != '\0')" ( (binary_expression "cStack_1ad != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        pppppppcVar29 = apppppppcStack_1f4[0];\n      }" { (expression_statement "pppppppcVar29 = apppppppcStack_1f4[0];" (assignment_expression "pppppppcVar29 = apppppppcStack_1f4[0]" identifier = (subscript_expression "apppppppcStack_1f4[0]" identifier [ number_literal ])) ;) }))) (expression_statement "apppppppcStack_1f4[0] = pppppppcVar29;" (assignment_expression "apppppppcStack_1f4[0] = pppppppcVar29" (subscript_expression "apppppppcStack_1f4[0]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (uVar16 == 0) {\n        if ((int)pppppppcVar34[0x17] < 2) {\n          if (ppppppcVar32 != (code ******)0x0) {\n            FUN_00045dc8();\n          }\n        }\n        else {\n          FUN_00047cb0(&pppppppcStack_1f8);\n        }\n      }\n      else {\n        if (1 < (int)pppppppcVar34[0x17]) {\n          iVar18 = *(int *)(puVar41 + 0x23abc);\n          do {\n            pppppppcVar30 = (code *******)FUN_00048714(&pppppppcStack_1f8);\n            if (pppppppcVar30 != (code *******)0x0) break;\n            if (((int)param_1 <= iStack_1d8) ||\n               (pppppppcVar38 = (code *******)(iStack_1d4 << 1),\n               (int)pppppppcVar34[0x17] + iStack_1dc < iStack_1d4)) goto LAB_000563d0;\n            pppppppcVar30 =\n                 (code *******)(*(code *)(iVar18 + 0x6d2c))(&pppppppcStack_1f8,pppppppcVar38);\n          } while (pppppppcVar30 == (code *******)0x0);\n          goto LAB_00056168;\n        }\n        FUN_00047be4(&pppppppcStack_1f8);\n      }" if (parenthesized_expression "(uVar16 == 0)" ( (binary_expression "uVar16 == 0" identifier == number_literal) )) (compound_statement "{\n        if ((int)pppppppcVar34[0x17] < 2) {\n          if (ppppppcVar32 != (code ******)0x0) {\n            FUN_00045dc8();\n          }\n        }\n        else {\n          FUN_00047cb0(&pppppppcStack_1f8);\n        }\n      }" { (if_statement "if ((int)pppppppcVar34[0x17] < 2) {\n          if (ppppppcVar32 != (code ******)0x0) {\n            FUN_00045dc8();\n          }\n        }\n        else {\n          FUN_00047cb0(&pppppppcStack_1f8);\n        }" if (parenthesized_expression "((int)pppppppcVar34[0x17] < 2)" ( (binary_expression "(int)pppppppcVar34[0x17] < 2" (cast_expression "(int)pppppppcVar34[0x17]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "pppppppcVar34[0x17]" identifier [ number_literal ])) < number_literal) )) (compound_statement "{\n          if (ppppppcVar32 != (code ******)0x0) {\n            FUN_00045dc8();\n          }\n        }" { (if_statement "if (ppppppcVar32 != (code ******)0x0) {\n            FUN_00045dc8();\n          }" if (parenthesized_expression "(ppppppcVar32 != (code ******)0x0)" ( (binary_expression "ppppppcVar32 != (code ******)0x0" identifier != (cast_expression "(code ******)0x0" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (compound_statement "{\n            FUN_00045dc8();\n          }" { (expression_statement "FUN_00045dc8();" (call_expression "FUN_00045dc8()" identifier (argument_list "()" ( ))) ;) })) }) (else_clause "else {\n          FUN_00047cb0(&pppppppcStack_1f8);\n        }" else (compound_statement "{\n          FUN_00047cb0(&pppppppcStack_1f8);\n        }" { (expression_statement "FUN_00047cb0(&pppppppcStack_1f8);" (call_expression "FUN_00047cb0(&pppppppcStack_1f8)" identifier (argument_list "(&pppppppcStack_1f8)" ( (pointer_expression "&pppppppcStack_1f8" & identifier) ))) ;) }))) }) (else_clause "else {\n        if (1 < (int)pppppppcVar34[0x17]) {\n          iVar18 = *(int *)(puVar41 + 0x23abc);\n          do {\n            pppppppcVar30 = (code *******)FUN_00048714(&pppppppcStack_1f8);\n            if (pppppppcVar30 != (code *******)0x0) break;\n            if (((int)param_1 <= iStack_1d8) ||\n               (pppppppcVar38 = (code *******)(iStack_1d4 << 1),\n               (int)pppppppcVar34[0x17] + iStack_1dc < iStack_1d4)) goto LAB_000563d0;\n            pppppppcVar30 =\n                 (code *******)(*(code *)(iVar18 + 0x6d2c))(&pppppppcStack_1f8,pppppppcVar38);\n          } while (pppppppcVar30 == (code *******)0x0);\n          goto LAB_00056168;\n        }\n        FUN_00047be4(&pppppppcStack_1f8);\n      }" else (compound_statement "{\n        if (1 < (int)pppppppcVar34[0x17]) {\n          iVar18 = *(int *)(puVar41 + 0x23abc);\n          do {\n            pppppppcVar30 = (code *******)FUN_00048714(&pppppppcStack_1f8);\n            if (pppppppcVar30 != (code *******)0x0) break;\n            if (((int)param_1 <= iStack_1d8) ||\n               (pppppppcVar38 = (code *******)(iStack_1d4 << 1),\n               (int)pppppppcVar34[0x17] + iStack_1dc < iStack_1d4)) goto LAB_000563d0;\n            pppppppcVar30 =\n                 (code *******)(*(code *)(iVar18 + 0x6d2c))(&pppppppcStack_1f8,pppppppcVar38);\n          } while (pppppppcVar30 == (code *******)0x0);\n          goto LAB_00056168;\n        }\n        FUN_00047be4(&pppppppcStack_1f8);\n      }" { (if_statement "if (1 < (int)pppppppcVar34[0x17]) {\n          iVar18 = *(int *)(puVar41 + 0x23abc);\n          do {\n            pppppppcVar30 = (code *******)FUN_00048714(&pppppppcStack_1f8);\n            if (pppppppcVar30 != (code *******)0x0) break;\n            if (((int)param_1 <= iStack_1d8) ||\n               (pppppppcVar38 = (code *******)(iStack_1d4 << 1),\n               (int)pppppppcVar34[0x17] + iStack_1dc < iStack_1d4)) goto LAB_000563d0;\n            pppppppcVar30 =\n                 (code *******)(*(code *)(iVar18 + 0x6d2c))(&pppppppcStack_1f8,pppppppcVar38);\n          } while (pppppppcVar30 == (code *******)0x0);\n          goto LAB_00056168;\n        }" if (parenthesized_expression "(1 < (int)pppppppcVar34[0x17])" ( (binary_expression "1 < (int)pppppppcVar34[0x17]" number_literal < (cast_expression "(int)pppppppcVar34[0x17]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "pppppppcVar34[0x17]" identifier [ number_literal ]))) )) (compound_statement "{\n          iVar18 = *(int *)(puVar41 + 0x23abc);\n          do {\n            pppppppcVar30 = (code *******)FUN_00048714(&pppppppcStack_1f8);\n            if (pppppppcVar30 != (code *******)0x0) break;\n            if (((int)param_1 <= iStack_1d8) ||\n               (pppppppcVar38 = (code *******)(iStack_1d4 << 1),\n               (int)pppppppcVar34[0x17] + iStack_1dc < iStack_1d4)) goto LAB_000563d0;\n            pppppppcVar30 =\n                 (code *******)(*(code *)(iVar18 + 0x6d2c))(&pppppppcStack_1f8,pppppppcVar38);\n          } while (pppppppcVar30 == (code *******)0x0);\n          goto LAB_00056168;\n        }" { (expression_statement "iVar18 = *(int *)(puVar41 + 0x23abc);" (assignment_expression "iVar18 = *(int *)(puVar41 + 0x23abc)" identifier = (pointer_expression "*(int *)(puVar41 + 0x23abc)" * (cast_expression "(int *)(puVar41 + 0x23abc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar41 + 0x23abc)" ( (binary_expression "puVar41 + 0x23abc" identifier + number_literal) ))))) ;) (do_statement "do {\n            pppppppcVar30 = (code *******)FUN_00048714(&pppppppcStack_1f8);\n            if (pppppppcVar30 != (code *******)0x0) break;\n            if (((int)param_1 <= iStack_1d8) ||\n               (pppppppcVar38 = (code *******)(iStack_1d4 << 1),\n               (int)pppppppcVar34[0x17] + iStack_1dc < iStack_1d4)) goto LAB_000563d0;\n            pppppppcVar30 =\n                 (code *******)(*(code *)(iVar18 + 0x6d2c))(&pppppppcStack_1f8,pppppppcVar38);\n          } while (pppppppcVar30 == (code *******)0x0);" do (compound_statement "{\n            pppppppcVar30 = (code *******)FUN_00048714(&pppppppcStack_1f8);\n            if (pppppppcVar30 != (code *******)0x0) break;\n            if (((int)param_1 <= iStack_1d8) ||\n               (pppppppcVar38 = (code *******)(iStack_1d4 << 1),\n               (int)pppppppcVar34[0x17] + iStack_1dc < iStack_1d4)) goto LAB_000563d0;\n            pppppppcVar30 =\n                 (code *******)(*(code *)(iVar18 + 0x6d2c))(&pppppppcStack_1f8,pppppppcVar38);\n          }" { (expression_statement "pppppppcVar30 = (code *******)FUN_00048714(&pppppppcStack_1f8);" (assignment_expression "pppppppcVar30 = (code *******)FUN_00048714(&pppppppcStack_1f8)" identifier = (cast_expression "(code *******)FUN_00048714(&pppppppcStack_1f8)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "FUN_00048714(&pppppppcStack_1f8)" identifier (argument_list "(&pppppppcStack_1f8)" ( (pointer_expression "&pppppppcStack_1f8" & identifier) ))))) ;) (if_statement "if (pppppppcVar30 != (code *******)0x0) break;" if (parenthesized_expression "(pppppppcVar30 != (code *******)0x0)" ( (binary_expression "pppppppcVar30 != (code *******)0x0" identifier != (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (break_statement "break;" break ;)) (if_statement "if (((int)param_1 <= iStack_1d8) ||\n               (pppppppcVar38 = (code *******)(iStack_1d4 << 1),\n               (int)pppppppcVar34[0x17] + iStack_1dc < iStack_1d4)) goto LAB_000563d0;" if (parenthesized_expression "(((int)param_1 <= iStack_1d8) ||\n               (pppppppcVar38 = (code *******)(iStack_1d4 << 1),\n               (int)pppppppcVar34[0x17] + iStack_1dc < iStack_1d4))" ( (binary_expression "((int)param_1 <= iStack_1d8) ||\n               (pppppppcVar38 = (code *******)(iStack_1d4 << 1),\n               (int)pppppppcVar34[0x17] + iStack_1dc < iStack_1d4)" (parenthesized_expression "((int)param_1 <= iStack_1d8)" ( (binary_expression "(int)param_1 <= iStack_1d8" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) <= identifier) )) || (parenthesized_expression "(pppppppcVar38 = (code *******)(iStack_1d4 << 1),\n               (int)pppppppcVar34[0x17] + iStack_1dc < iStack_1d4)" ( (comma_expression "pppppppcVar38 = (code *******)(iStack_1d4 << 1),\n               (int)pppppppcVar34[0x17] + iStack_1dc < iStack_1d4" (assignment_expression "pppppppcVar38 = (code *******)(iStack_1d4 << 1)" identifier = (cast_expression "(code *******)(iStack_1d4 << 1)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(iStack_1d4 << 1)" ( (binary_expression "iStack_1d4 << 1" identifier << number_literal) )))) , (binary_expression "(int)pppppppcVar34[0x17] + iStack_1dc < iStack_1d4" (binary_expression "(int)pppppppcVar34[0x17] + iStack_1dc" (cast_expression "(int)pppppppcVar34[0x17]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "pppppppcVar34[0x17]" identifier [ number_literal ])) + identifier) < identifier)) ))) )) (goto_statement "goto LAB_000563d0;" goto statement_identifier ;)) (expression_statement "pppppppcVar30 =\n                 (code *******)(*(code *)(iVar18 + 0x6d2c))(&pppppppcStack_1f8,pppppppcVar38);" (assignment_expression "pppppppcVar30 =\n                 (code *******)(*(code *)(iVar18 + 0x6d2c))(&pppppppcStack_1f8,pppppppcVar38)" identifier = (cast_expression "(code *******)(*(code *)(iVar18 + 0x6d2c))(&pppppppcStack_1f8,pppppppcVar38)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "(*(code *)(iVar18 + 0x6d2c))(&pppppppcStack_1f8,pppppppcVar38)" (parenthesized_expression "(*(code *)(iVar18 + 0x6d2c))" ( (pointer_expression "*(code *)(iVar18 + 0x6d2c)" * (cast_expression "(code *)(iVar18 + 0x6d2c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x6d2c)" ( (binary_expression "iVar18 + 0x6d2c" identifier + number_literal) )))) )) (argument_list "(&pppppppcStack_1f8,pppppppcVar38)" ( (pointer_expression "&pppppppcStack_1f8" & identifier) , identifier ))))) ;) }) while (parenthesized_expression "(pppppppcVar30 == (code *******)0x0)" ( (binary_expression "pppppppcVar30 == (code *******)0x0" identifier == (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) ;) (goto_statement "goto LAB_00056168;" goto statement_identifier ;) })) (expression_statement "FUN_00047be4(&pppppppcStack_1f8);" (call_expression "FUN_00047be4(&pppppppcStack_1f8)" identifier (argument_list "(&pppppppcStack_1f8)" ( (pointer_expression "&pppppppcStack_1f8" & identifier) ))) ;) }))) (labeled_statement "LAB_000563d0:\n      pppppppcStack_20c = (code *******)0x0;" statement_identifier : (expression_statement "pppppppcStack_20c = (code *******)0x0;" (assignment_expression "pppppppcStack_20c = (code *******)0x0" identifier = (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;)) (expression_statement "pppppppcVar3[6] = (code ******)0x0;" (assignment_expression "pppppppcVar3[6] = (code ******)0x0" (subscript_expression "pppppppcVar3[6]" identifier [ number_literal ]) = (cast_expression "(code ******)0x0" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) (expression_statement "ppppppcVar32 = *pppppppcVar3;" (assignment_expression "ppppppcVar32 = *pppppppcVar3" identifier = (pointer_expression "*pppppppcVar3" * identifier)) ;) (expression_statement "ppppppcVar32[0x20] = (code *****)pppppppcVar33;" (assignment_expression "ppppppcVar32[0x20] = (code *****)pppppppcVar33" (subscript_expression "ppppppcVar32[0x20]" identifier [ number_literal ]) = (cast_expression "(code *****)pppppppcVar33" ( (type_descriptor "code *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier)) ;) (expression_statement "FUN_00049e40(&ppppppcStack_204,&pppppppcStack_1f8,(uint)pppppppcVar33 | 0x800000);" (call_expression "FUN_00049e40(&ppppppcStack_204,&pppppppcStack_1f8,(uint)pppppppcVar33 | 0x800000)" identifier (argument_list "(&ppppppcStack_204,&pppppppcStack_1f8,(uint)pppppppcVar33 | 0x800000)" ( (pointer_expression "&ppppppcStack_204" & identifier) , (pointer_expression "&pppppppcStack_1f8" & identifier) , (binary_expression "(uint)pppppppcVar33 | 0x800000" (cast_expression "(uint)pppppppcVar33" ( (type_descriptor "uint" type_identifier) ) identifier) | number_literal) ))) ;) (expression_statement "pppppppcVar38 = pppppppcVar3;" (assignment_expression "pppppppcVar38 = pppppppcVar3" identifier = identifier) ;) (expression_statement "pppppppcVar29 =\n           (code *******)\n           FUN_00051868(&pppppppcStack_1f8,pppppppcVar3,&ppppppcStack_204,pppppppcVar33,0,\n                        &pppppppcStack_20c);" (assignment_expression "pppppppcVar29 =\n           (code *******)\n           FUN_00051868(&pppppppcStack_1f8,pppppppcVar3,&ppppppcStack_204,pppppppcVar33,0,\n                        &pppppppcStack_20c)" identifier = (cast_expression "(code *******)\n           FUN_00051868(&pppppppcStack_1f8,pppppppcVar3,&ppppppcStack_204,pppppppcVar33,0,\n                        &pppppppcStack_20c)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "FUN_00051868(&pppppppcStack_1f8,pppppppcVar3,&ppppppcStack_204,pppppppcVar33,0,\n                        &pppppppcStack_20c)" identifier (argument_list "(&pppppppcStack_1f8,pppppppcVar3,&ppppppcStack_204,pppppppcVar33,0,\n                        &pppppppcStack_20c)" ( (pointer_expression "&pppppppcStack_1f8" & identifier) , identifier , (pointer_expression "&ppppppcStack_204" & identifier) , identifier , number_literal , (pointer_expression "&pppppppcStack_20c" & identifier) ))))) ;) (if_statement "if (pppppppcStack_20c == (code *******)0x0) {\n        pppppppcVar31 = (code *******)0x0;\n        pppppppcVar38 = (code *******)0x0;\n        pppppppcVar33 = (code *******)FUN_000470f0(ppppppcVar32,0,0,2);\n        pppppppcVar30 = pppppppcVar33;\n        if (pppppppcVar29 != (code *******)0x0) {\nLAB_000564b0:\n          pppppppcVar31 = pppppppcVar33;\n          pppppppcVar30 = (code *******)FUN_000470f0(ppppppcVar32,pppppppcVar29,pppppppcVar33,0x10);\n          pppppppcVar38 = pppppppcVar29;\n        }\n        if ((pppppppcVar33 == (code *******)0x0) ||\n           (pcVar4 = *(code **)(puVar41 + 0x23cf0), pppppppcVar30 == (code *******)0x0)) {\n          pppppppcStack_20c = (code *******)0xc;\n          goto LAB_000566f4;\n        }\n        pppppppcVar34[0xd] = (code ******)pppppppcVar30;\n        pppppppcVar29 = (code *******)*pppppppcVar3;\n        ppppppcVar39 = pppppppcVar29[1];\n        iVar18 = (int)ppppppcVar39 << 2;\n        ppppppcVar32 = (code ******)(*pcVar4)(iVar18);\n        pppppppcVar29[3] = ppppppcVar32;\n        ppppppcVar35 = (code ******)(**(code **)(puVar41 + 0x23cf0))(iVar18);\n        pppppppcVar29[4] = ppppppcVar35;\n        iVar18 = (int)ppppppcVar39 * 0xc;\n        ppppppcVar39 = (code ******)(**(code **)(puVar41 + 0x23cf0))(iVar18);\n        pppppppcVar29[5] = ppppppcVar39;\n        ppppppcVar20 = (code ******)(**(code **)(puVar41 + 0x23cf0))(iVar18);\n        pppppppcVar29[6] = ppppppcVar20;\n        if (ppppppcVar32 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else if (ppppppcVar35 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else if (ppppppcVar39 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else if (ppppppcVar20 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else {\n          ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23cf0))((int)pppppppcVar3[6] << 2);\n          pppppppcVar29[0x21] = ppppppcVar32;\n          if (ppppppcVar32 != (code ******)0x0) {\n            ppppppcVar32 = (code ******)0x0;\n            if (pppppppcVar3[6] != (code ******)0x0) {\n              do {\n                pppppppcVar29[0x21][(int)ppppppcVar32] = (code *****)ppppppcVar32;\n                ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n              } while (ppppppcVar32 < pppppppcVar3[6]);\n            }\n            FUN_00046050(pppppppcVar29[0xd],*(int *)(puVar41 + 0x23abc) + 0x60e8,pppppppcVar29);\n            ppppppcVar32 = pppppppcVar3[6];\n            if (ppppppcVar32 == (code ******)0x0) {\nLAB_00056704:\n              (**(code **)(puVar41 + 0x23dc0))(pppppppcVar29[0x21]);\n              pppppppcVar29[0x21] = (code ******)0x0;\n            }\n            else {\n              ppppppcVar35 = pppppppcVar29[0x21];\n              if (*ppppppcVar35 == (code *****)0x0) {\n                ppppppcVar39 = (code ******)0x0;\n                do {\n                  ppppppcVar35 = ppppppcVar35 + 1;\n                  ppppppcVar39 = (code ******)((int)ppppppcVar39 + 1);\n                  if (ppppppcVar32 == ppppppcVar39) {\n                    if (ppppppcVar32 == ppppppcVar39) goto LAB_00056704;\n                    break;\n                  }\n                } while ((code ******)*ppppppcVar35 == ppppppcVar39);\n              }\n            }\n          }\n          pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23abc) + 0x73a4);\n          pppppppcVar30 = (code *******)FUN_00045fb4(pppppppcVar29[0xd],pppppppcVar38,pppppppcVar3);\n          pppppppcVar31 = pppppppcVar29;\n          if (pppppppcVar30 == (code *******)0x0) {\n            pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23b40) + -0x5be4);\n            pppppppcVar30 = (code *******)FUN_00045fb4(pppppppcVar29[0xd],pppppppcVar38);\n            if (pppppppcVar30 == (code *******)0x0) {\n              FUN_00046050(pppppppcVar29[0xd],*(int *)(puVar41 + 0x23abc) + 0x61b4);\n              pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23b40) + -0x4614);\n              pppppppcVar30 = (code *******)FUN_00046050(pppppppcVar29[0xd],pppppppcVar38);\n              if (pppppppcVar30 == (code *******)0x0) {\n                uVar7 = 0;\n                iVar18 = *(int *)(puVar41 + 0x23b40);\n                pppppppcVar33 = (code *******)0x0;\nLAB_00056744:\n                if ((code *******)pppppppcVar29[2] != pppppppcVar33) {\nLAB_00056750:\n                  if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                    pppppppcVar38 = pppppppcVar29;\n                    pppppppcVar31 = pppppppcVar33;\n                    pppppppcVar30 =\n                         (code *******)\n                         (*(code *)(iVar18 + -0x561c))\n                                   (&ppppppcStack_204,pppppppcVar29,pppppppcVar33,1);\n                    if (pppppppcVar30 != (code *******)0x0) goto LAB_00056168;\n                    if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                      (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                      uVar7 = 1;\n                    }\n                  }\n                  pppppppcVar33 = (code *******)((int)pppppppcVar33 + 1);\n                  goto LAB_00056744;\n                }\n                if (uVar7 != 0) {\n                  uVar7 = 0;\n                  pppppppcVar33 = (code *******)0x0;\n                  goto LAB_00056750;\n                }\n                if (((((uint)pppppppcVar3[7] & 0x8000000) == 0) &&\n                    (pppppppcVar3[6] != (code ******)0x0)) &&\n                   ((char)*(code *)(pppppppcVar29 + 0x16) < '\0')) {\n                  ppppppcVar32 = pppppppcVar29[2];\n                }\n                else {\n                  if (pppppppcVar29[0x13] == (code ******)0x0) goto LAB_000568f0;\n                  ppppppcVar32 = pppppppcVar29[2];\n                }\n                ppppppcVar35 = (code ******)\n                               (**(code **)(puVar41 + 0x23cf0))((int)ppppppcVar32 * 0xc);\n                pppppppcVar29[7] = ppppppcVar35;\n                if (ppppppcVar35 == (code ******)0x0) {\n                  pppppppcVar30 = (code *******)0xc;\n                  goto LAB_00056168;\n                }\n                if (ppppppcVar32 != (code ******)0x0) {\n                  iVar18 = 0;\n                  ppppppcVar32 = (code ******)0x0;\n                  do {\n                    puVar21 = (undefined1 *)((int)pppppppcVar29[7] + iVar18);\n                    *puVar21 = 0;\n                    puVar21[1] = 0;\n                    puVar21[2] = 0;\n                    puVar21[3] = 0;\n                    puVar21[4] = 0;\n                    puVar21[5] = 0;\n                    puVar21[6] = 0;\n                    puVar21[7] = 0;\n                    puVar21[8] = 0;\n                    puVar21[9] = 0;\n                    puVar21[10] = 0;\n                    puVar21[0xb] = 0;\n                    ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                    iVar18 = iVar18 + 0xc;\n                  } while (ppppppcVar32 < pppppppcVar29[2]);\n                  iVar18 = *(int *)(puVar41 + 0x23abc);\n                  if (pppppppcVar29[2] != (code ******)0x0) {\n                    iVar43 = 0;\n                    pppppppcStack_218 = (code *******)0x0;\n                    do {\n                      piVar5 = *(int **)((int)pppppppcVar29[6] + iVar43 + 8);\n                      if (0 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4)) {\n                        iVar37 = 0;\n                        do {\n                          pppppppcVar38 = pppppppcStack_218;\n                          iVar22 = (*(code *)(iVar18 + 0x6e30))\n                                             (pppppppcVar29[7] + *piVar5 * 3,pppppppcStack_218);\n                          pppppppcVar30 = (code *******)0xc;\n                          if (iVar22 == 0) goto LAB_00056168;\n                          iVar37 = iVar37 + 1;\n                          piVar5 = piVar5 + 1;\n                        } while (iVar37 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4));\n                      }\n                      pppppppcStack_218 = (code *******)((int)pppppppcStack_218 + 1);\n                      iVar43 = iVar43 + 0xc;\n                    } while (pppppppcStack_218 < pppppppcVar29[2]);\n                  }\n                }\nLAB_000568f0:\n                pppppppcStack_20c = (code *******)0x0;\n                if (((((uint)pppppppcVar34[0x16] & 0x20000000) != 0) && (uVar16 == 0)) &&\n                   (pppppppcVar3[5] == (code ******)0x0)) {\n                  if (pppppppcVar34[2] != (code ******)0x0) {\n                    pppppppcVar31 = (code *******)(*(int *)(puVar41 + 0x23754) + 0x6e4c);\n                    if (*(byte *)(*pppppppcVar34 + 1) < 0xd) {\n                    /* WARNING: Could not recover jumptable at 0x00056a60. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      pppppppcVar29 =\n                           (code *******)\n                           (*(code *)(puVar41 +\n                                     (int)(pppppppcVar31[*(byte *)(*pppppppcVar34 + 1)] + 0xadc7)))\n                                     ();\n                      return pppppppcVar29;\n                    }\n                    (**(code **)(puVar41 + 0x23bc4))(0);\n                    if (uVar7 != 0) {\n                      pppppppcVar31 = (code *******)&DAT_00000007;\n                      ppppppcVar32 = (code ******)0x0;\n                      do {\n                        ppppppcVar35 = *pppppppcVar34 + (int)ppppppcVar32 * 2;\n                        if (*(char *)(ppppppcVar35 + 1) == '\x01') {\n                          if (*(char *)ppppppcVar35 < '\0') {\n                            ppppppcVar35[1] = (code *****)((uint)ppppppcVar35[1] & 0xfffffbff);\n                          }\n                        }\n                        else if (*(char *)(ppppppcVar35 + 1) == '\x05') {\n                          *(char *)(ppppppcVar35 + 1) = '\a';\n                        }\n                        ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                      } while (ppppppcVar32 < pppppppcVar34[2]);\n                    }\n                  }\n                  pppppppcVar34[0x17] = (code ******)0x1;\n                  if (0 < (int)pppppppcVar34[0x13]) {\n                    uVar7 = 1;\n                  }\n                  *(byte *)(pppppppcVar34 + 0x16) =\n                       (byte)*(code *)(pppppppcVar34 + 0x16) & 0x9f | (byte)((uVar7 & 1) << 6);\n                }\n                ppppppcVar32 = (code ******)pppppppcVar34[0xd][3][7];\n                pppppppcVar34[0x12] = ppppppcVar32;\n                pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppppcVar32 * 3);\n                pppppppcVar33 = (code *******)FUN_000483e8(&ppppppcStack_204,pppppppcVar38);\n                pppppppcVar29 = pppppppcVar33;\n                pppppppcStack_208 = pppppppcVar33;\n                if (pppppppcVar33 == (code *******)0x0) {\n                  if ((0 < (int)pppppppcVar34[0x13]) && (0 < iStack_200)) {\n                    iVar18 = *(int *)(puVar41 + 0x23abc);\n                    iVar43 = *(int *)(puVar41 + 0x23abc);\n                    pppppppcVar29 = (code *******)0x0;\n                    do {\n                      pppppppcVar31 =\n                           (code *******)(*pppppppcVar34 + piStack_1fc[(int)pppppppcVar29] * 2);\n                      if (*(code *)(pppppppcVar31 + 1) == (code)0x4) {\n                        iVar37 = 0;\n                        piVar5 = piStack_1fc;\n                        if (iStack_200 < 1) {\nLAB_00056b8c:\n                          if (iStack_200 != iVar37) {\n                            ppppcVar40 = *pppppppcVar34[5][piStack_1fc[(int)pppppppcVar29] * 3 + 2];\n                            iVar37 = (*(code *)(iVar18 + 0x5ea8))(&ppppppcStack_204,ppppcVar40);\n                            if (iVar37 == 0) {\n                              pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppcVar40 * 3)\n                              ;\n                              pppppppcVar29 =\n                                   (code *******)\n                                   (*(code *)(iVar43 + 0x7f1c))(&ppppppcStack_204,pppppppcVar38);\n                              if (pppppppcVar29 != (code *******)0x0) goto LAB_00056cb8;\n                            }\n                          }\n                        }\n                        else {\n                          do {\n                            ppppppcVar32 = *pppppppcVar34 + *piVar5 * 2;\n                            if ((*(char *)(ppppppcVar32 + 1) == '\t') &&\n                               ((code ******)*ppppppcVar32 == *pppppppcVar31)) goto LAB_00056b8c;\n                            iVar37 = iVar37 + 1;\n                            piVar5 = piVar5 + 1;\n                          } while (iStack_200 != iVar37);\n                        }\n                      }\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1);\n                    } while ((int)pppppppcVar29 < iStack_200);\n                  }\n                  pppppppcVar31 = &ppppppcStack_204;\n                  pppppppcVar38 = pppppppcVar34;\n                  ppppppcVar32 = (code ******)\n                                 FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,0);\n                  pppppppcVar34[9] = ppppppcVar32;\n                  pppppppcVar29 = pppppppcStack_208;\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    if (((uint)ppppppcVar32[0xd] & 0x1000000) == 0) {\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar34[10] = ppppppcVar32;\n                    }\n                    else {\n                      pppppppcVar31 = &ppppppcStack_204;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,1);\n                      pppppppcVar34[10] = ppppppcVar32;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,2);\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar38 = pppppppcVar34;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,6);\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar29 = pppppppcStack_208;\n                      if (((pppppppcVar34[10] == (code ******)0x0) ||\n                          (pppppppcVar34[0xb] == (code ******)0x0)) ||\n                         (ppppppcVar32 == (code ******)0x0)) goto LAB_00056cb8;\n                    }\n                    (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                    pppppppcVar29 = pppppppcVar33;\n                  }\n                }\nLAB_00056cb8:\n                pppppppcStack_20c = pppppppcVar29;\n                FUN_0004b234(pppppppcVar3);\n                FUN_0004b2bc(&pppppppcStack_1f8);\n                pppppppcVar29 = pppppppcStack_20c;\n                if (pppppppcStack_20c != (code *******)0x0) {\n                  if (*(int *)(puVar41 + 0x23c78) != 0) {\n                    (**(code **)(puVar41 + 0x23df0))(pppppppcVar34 + 0x22);\n                  }\n                  FUN_0004b338(pppppppcVar34);\n                  *pppppppcVar3 = (code ******)0x0;\n                  pppppppcVar3[1] = (code ******)0x0;\n                  pppppppcVar29 = pppppppcStack_20c;\n                }\n                goto LAB_00056cfc;\n              }\n            }\n          }\n        }\n      }\n      else {\n        pppppppcVar31 = (code *******)0x0;\n        if (pppppppcVar29 != (code *******)0x0) {\n          pppppppcVar33 = (code *******)FUN_000470f0(ppppppcVar32,0,0,2);\n          goto LAB_000564b0;\n        }\nLAB_000566f4:\n        pppppppcVar34[0xd] = (code ******)0x0;\n        pppppppcVar30 = pppppppcStack_20c;\n      }" if (parenthesized_expression "(pppppppcStack_20c == (code *******)0x0)" ( (binary_expression "pppppppcStack_20c == (code *******)0x0" identifier == (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\n        pppppppcVar31 = (code *******)0x0;\n        pppppppcVar38 = (code *******)0x0;\n        pppppppcVar33 = (code *******)FUN_000470f0(ppppppcVar32,0,0,2);\n        pppppppcVar30 = pppppppcVar33;\n        if (pppppppcVar29 != (code *******)0x0) {\nLAB_000564b0:\n          pppppppcVar31 = pppppppcVar33;\n          pppppppcVar30 = (code *******)FUN_000470f0(ppppppcVar32,pppppppcVar29,pppppppcVar33,0x10);\n          pppppppcVar38 = pppppppcVar29;\n        }\n        if ((pppppppcVar33 == (code *******)0x0) ||\n           (pcVar4 = *(code **)(puVar41 + 0x23cf0), pppppppcVar30 == (code *******)0x0)) {\n          pppppppcStack_20c = (code *******)0xc;\n          goto LAB_000566f4;\n        }\n        pppppppcVar34[0xd] = (code ******)pppppppcVar30;\n        pppppppcVar29 = (code *******)*pppppppcVar3;\n        ppppppcVar39 = pppppppcVar29[1];\n        iVar18 = (int)ppppppcVar39 << 2;\n        ppppppcVar32 = (code ******)(*pcVar4)(iVar18);\n        pppppppcVar29[3] = ppppppcVar32;\n        ppppppcVar35 = (code ******)(**(code **)(puVar41 + 0x23cf0))(iVar18);\n        pppppppcVar29[4] = ppppppcVar35;\n        iVar18 = (int)ppppppcVar39 * 0xc;\n        ppppppcVar39 = (code ******)(**(code **)(puVar41 + 0x23cf0))(iVar18);\n        pppppppcVar29[5] = ppppppcVar39;\n        ppppppcVar20 = (code ******)(**(code **)(puVar41 + 0x23cf0))(iVar18);\n        pppppppcVar29[6] = ppppppcVar20;\n        if (ppppppcVar32 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else if (ppppppcVar35 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else if (ppppppcVar39 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else if (ppppppcVar20 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else {\n          ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23cf0))((int)pppppppcVar3[6] << 2);\n          pppppppcVar29[0x21] = ppppppcVar32;\n          if (ppppppcVar32 != (code ******)0x0) {\n            ppppppcVar32 = (code ******)0x0;\n            if (pppppppcVar3[6] != (code ******)0x0) {\n              do {\n                pppppppcVar29[0x21][(int)ppppppcVar32] = (code *****)ppppppcVar32;\n                ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n              } while (ppppppcVar32 < pppppppcVar3[6]);\n            }\n            FUN_00046050(pppppppcVar29[0xd],*(int *)(puVar41 + 0x23abc) + 0x60e8,pppppppcVar29);\n            ppppppcVar32 = pppppppcVar3[6];\n            if (ppppppcVar32 == (code ******)0x0) {\nLAB_00056704:\n              (**(code **)(puVar41 + 0x23dc0))(pppppppcVar29[0x21]);\n              pppppppcVar29[0x21] = (code ******)0x0;\n            }\n            else {\n              ppppppcVar35 = pppppppcVar29[0x21];\n              if (*ppppppcVar35 == (code *****)0x0) {\n                ppppppcVar39 = (code ******)0x0;\n                do {\n                  ppppppcVar35 = ppppppcVar35 + 1;\n                  ppppppcVar39 = (code ******)((int)ppppppcVar39 + 1);\n                  if (ppppppcVar32 == ppppppcVar39) {\n                    if (ppppppcVar32 == ppppppcVar39) goto LAB_00056704;\n                    break;\n                  }\n                } while ((code ******)*ppppppcVar35 == ppppppcVar39);\n              }\n            }\n          }\n          pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23abc) + 0x73a4);\n          pppppppcVar30 = (code *******)FUN_00045fb4(pppppppcVar29[0xd],pppppppcVar38,pppppppcVar3);\n          pppppppcVar31 = pppppppcVar29;\n          if (pppppppcVar30 == (code *******)0x0) {\n            pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23b40) + -0x5be4);\n            pppppppcVar30 = (code *******)FUN_00045fb4(pppppppcVar29[0xd],pppppppcVar38);\n            if (pppppppcVar30 == (code *******)0x0) {\n              FUN_00046050(pppppppcVar29[0xd],*(int *)(puVar41 + 0x23abc) + 0x61b4);\n              pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23b40) + -0x4614);\n              pppppppcVar30 = (code *******)FUN_00046050(pppppppcVar29[0xd],pppppppcVar38);\n              if (pppppppcVar30 == (code *******)0x0) {\n                uVar7 = 0;\n                iVar18 = *(int *)(puVar41 + 0x23b40);\n                pppppppcVar33 = (code *******)0x0;\nLAB_00056744:\n                if ((code *******)pppppppcVar29[2] != pppppppcVar33) {\nLAB_00056750:\n                  if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                    pppppppcVar38 = pppppppcVar29;\n                    pppppppcVar31 = pppppppcVar33;\n                    pppppppcVar30 =\n                         (code *******)\n                         (*(code *)(iVar18 + -0x561c))\n                                   (&ppppppcStack_204,pppppppcVar29,pppppppcVar33,1);\n                    if (pppppppcVar30 != (code *******)0x0) goto LAB_00056168;\n                    if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                      (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                      uVar7 = 1;\n                    }\n                  }\n                  pppppppcVar33 = (code *******)((int)pppppppcVar33 + 1);\n                  goto LAB_00056744;\n                }\n                if (uVar7 != 0) {\n                  uVar7 = 0;\n                  pppppppcVar33 = (code *******)0x0;\n                  goto LAB_00056750;\n                }\n                if (((((uint)pppppppcVar3[7] & 0x8000000) == 0) &&\n                    (pppppppcVar3[6] != (code ******)0x0)) &&\n                   ((char)*(code *)(pppppppcVar29 + 0x16) < '\0')) {\n                  ppppppcVar32 = pppppppcVar29[2];\n                }\n                else {\n                  if (pppppppcVar29[0x13] == (code ******)0x0) goto LAB_000568f0;\n                  ppppppcVar32 = pppppppcVar29[2];\n                }\n                ppppppcVar35 = (code ******)\n                               (**(code **)(puVar41 + 0x23cf0))((int)ppppppcVar32 * 0xc);\n                pppppppcVar29[7] = ppppppcVar35;\n                if (ppppppcVar35 == (code ******)0x0) {\n                  pppppppcVar30 = (code *******)0xc;\n                  goto LAB_00056168;\n                }\n                if (ppppppcVar32 != (code ******)0x0) {\n                  iVar18 = 0;\n                  ppppppcVar32 = (code ******)0x0;\n                  do {\n                    puVar21 = (undefined1 *)((int)pppppppcVar29[7] + iVar18);\n                    *puVar21 = 0;\n                    puVar21[1] = 0;\n                    puVar21[2] = 0;\n                    puVar21[3] = 0;\n                    puVar21[4] = 0;\n                    puVar21[5] = 0;\n                    puVar21[6] = 0;\n                    puVar21[7] = 0;\n                    puVar21[8] = 0;\n                    puVar21[9] = 0;\n                    puVar21[10] = 0;\n                    puVar21[0xb] = 0;\n                    ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                    iVar18 = iVar18 + 0xc;\n                  } while (ppppppcVar32 < pppppppcVar29[2]);\n                  iVar18 = *(int *)(puVar41 + 0x23abc);\n                  if (pppppppcVar29[2] != (code ******)0x0) {\n                    iVar43 = 0;\n                    pppppppcStack_218 = (code *******)0x0;\n                    do {\n                      piVar5 = *(int **)((int)pppppppcVar29[6] + iVar43 + 8);\n                      if (0 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4)) {\n                        iVar37 = 0;\n                        do {\n                          pppppppcVar38 = pppppppcStack_218;\n                          iVar22 = (*(code *)(iVar18 + 0x6e30))\n                                             (pppppppcVar29[7] + *piVar5 * 3,pppppppcStack_218);\n                          pppppppcVar30 = (code *******)0xc;\n                          if (iVar22 == 0) goto LAB_00056168;\n                          iVar37 = iVar37 + 1;\n                          piVar5 = piVar5 + 1;\n                        } while (iVar37 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4));\n                      }\n                      pppppppcStack_218 = (code *******)((int)pppppppcStack_218 + 1);\n                      iVar43 = iVar43 + 0xc;\n                    } while (pppppppcStack_218 < pppppppcVar29[2]);\n                  }\n                }\nLAB_000568f0:\n                pppppppcStack_20c = (code *******)0x0;\n                if (((((uint)pppppppcVar34[0x16] & 0x20000000) != 0) && (uVar16 == 0)) &&\n                   (pppppppcVar3[5] == (code ******)0x0)) {\n                  if (pppppppcVar34[2] != (code ******)0x0) {\n                    pppppppcVar31 = (code *******)(*(int *)(puVar41 + 0x23754) + 0x6e4c);\n                    if (*(byte *)(*pppppppcVar34 + 1) < 0xd) {\n                    /* WARNING: Could not recover jumptable at 0x00056a60. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      pppppppcVar29 =\n                           (code *******)\n                           (*(code *)(puVar41 +\n                                     (int)(pppppppcVar31[*(byte *)(*pppppppcVar34 + 1)] + 0xadc7)))\n                                     ();\n                      return pppppppcVar29;\n                    }\n                    (**(code **)(puVar41 + 0x23bc4))(0);\n                    if (uVar7 != 0) {\n                      pppppppcVar31 = (code *******)&DAT_00000007;\n                      ppppppcVar32 = (code ******)0x0;\n                      do {\n                        ppppppcVar35 = *pppppppcVar34 + (int)ppppppcVar32 * 2;\n                        if (*(char *)(ppppppcVar35 + 1) == '\x01') {\n                          if (*(char *)ppppppcVar35 < '\0') {\n                            ppppppcVar35[1] = (code *****)((uint)ppppppcVar35[1] & 0xfffffbff);\n                          }\n                        }\n                        else if (*(char *)(ppppppcVar35 + 1) == '\x05') {\n                          *(char *)(ppppppcVar35 + 1) = '\a';\n                        }\n                        ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                      } while (ppppppcVar32 < pppppppcVar34[2]);\n                    }\n                  }\n                  pppppppcVar34[0x17] = (code ******)0x1;\n                  if (0 < (int)pppppppcVar34[0x13]) {\n                    uVar7 = 1;\n                  }\n                  *(byte *)(pppppppcVar34 + 0x16) =\n                       (byte)*(code *)(pppppppcVar34 + 0x16) & 0x9f | (byte)((uVar7 & 1) << 6);\n                }\n                ppppppcVar32 = (code ******)pppppppcVar34[0xd][3][7];\n                pppppppcVar34[0x12] = ppppppcVar32;\n                pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppppcVar32 * 3);\n                pppppppcVar33 = (code *******)FUN_000483e8(&ppppppcStack_204,pppppppcVar38);\n                pppppppcVar29 = pppppppcVar33;\n                pppppppcStack_208 = pppppppcVar33;\n                if (pppppppcVar33 == (code *******)0x0) {\n                  if ((0 < (int)pppppppcVar34[0x13]) && (0 < iStack_200)) {\n                    iVar18 = *(int *)(puVar41 + 0x23abc);\n                    iVar43 = *(int *)(puVar41 + 0x23abc);\n                    pppppppcVar29 = (code *******)0x0;\n                    do {\n                      pppppppcVar31 =\n                           (code *******)(*pppppppcVar34 + piStack_1fc[(int)pppppppcVar29] * 2);\n                      if (*(code *)(pppppppcVar31 + 1) == (code)0x4) {\n                        iVar37 = 0;\n                        piVar5 = piStack_1fc;\n                        if (iStack_200 < 1) {\nLAB_00056b8c:\n                          if (iStack_200 != iVar37) {\n                            ppppcVar40 = *pppppppcVar34[5][piStack_1fc[(int)pppppppcVar29] * 3 + 2];\n                            iVar37 = (*(code *)(iVar18 + 0x5ea8))(&ppppppcStack_204,ppppcVar40);\n                            if (iVar37 == 0) {\n                              pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppcVar40 * 3)\n                              ;\n                              pppppppcVar29 =\n                                   (code *******)\n                                   (*(code *)(iVar43 + 0x7f1c))(&ppppppcStack_204,pppppppcVar38);\n                              if (pppppppcVar29 != (code *******)0x0) goto LAB_00056cb8;\n                            }\n                          }\n                        }\n                        else {\n                          do {\n                            ppppppcVar32 = *pppppppcVar34 + *piVar5 * 2;\n                            if ((*(char *)(ppppppcVar32 + 1) == '\t') &&\n                               ((code ******)*ppppppcVar32 == *pppppppcVar31)) goto LAB_00056b8c;\n                            iVar37 = iVar37 + 1;\n                            piVar5 = piVar5 + 1;\n                          } while (iStack_200 != iVar37);\n                        }\n                      }\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1);\n                    } while ((int)pppppppcVar29 < iStack_200);\n                  }\n                  pppppppcVar31 = &ppppppcStack_204;\n                  pppppppcVar38 = pppppppcVar34;\n                  ppppppcVar32 = (code ******)\n                                 FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,0);\n                  pppppppcVar34[9] = ppppppcVar32;\n                  pppppppcVar29 = pppppppcStack_208;\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    if (((uint)ppppppcVar32[0xd] & 0x1000000) == 0) {\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar34[10] = ppppppcVar32;\n                    }\n                    else {\n                      pppppppcVar31 = &ppppppcStack_204;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,1);\n                      pppppppcVar34[10] = ppppppcVar32;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,2);\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar38 = pppppppcVar34;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,6);\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar29 = pppppppcStack_208;\n                      if (((pppppppcVar34[10] == (code ******)0x0) ||\n                          (pppppppcVar34[0xb] == (code ******)0x0)) ||\n                         (ppppppcVar32 == (code ******)0x0)) goto LAB_00056cb8;\n                    }\n                    (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                    pppppppcVar29 = pppppppcVar33;\n                  }\n                }\nLAB_00056cb8:\n                pppppppcStack_20c = pppppppcVar29;\n                FUN_0004b234(pppppppcVar3);\n                FUN_0004b2bc(&pppppppcStack_1f8);\n                pppppppcVar29 = pppppppcStack_20c;\n                if (pppppppcStack_20c != (code *******)0x0) {\n                  if (*(int *)(puVar41 + 0x23c78) != 0) {\n                    (**(code **)(puVar41 + 0x23df0))(pppppppcVar34 + 0x22);\n                  }\n                  FUN_0004b338(pppppppcVar34);\n                  *pppppppcVar3 = (code ******)0x0;\n                  pppppppcVar3[1] = (code ******)0x0;\n                  pppppppcVar29 = pppppppcStack_20c;\n                }\n                goto LAB_00056cfc;\n              }\n            }\n          }\n        }\n      }" { (expression_statement "pppppppcVar31 = (code *******)0x0;" (assignment_expression "pppppppcVar31 = (code *******)0x0" identifier = (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "pppppppcVar38 = (code *******)0x0;" (assignment_expression "pppppppcVar38 = (code *******)0x0" identifier = (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "pppppppcVar33 = (code *******)FUN_000470f0(ppppppcVar32,0,0,2);" (assignment_expression "pppppppcVar33 = (code *******)FUN_000470f0(ppppppcVar32,0,0,2)" identifier = (cast_expression "(code *******)FUN_000470f0(ppppppcVar32,0,0,2)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "FUN_000470f0(ppppppcVar32,0,0,2)" identifier (argument_list "(ppppppcVar32,0,0,2)" ( identifier , number_literal , number_literal , number_literal ))))) ;) (expression_statement "pppppppcVar30 = pppppppcVar33;" (assignment_expression "pppppppcVar30 = pppppppcVar33" identifier = identifier) ;) (if_statement "if (pppppppcVar29 != (code *******)0x0) {\nLAB_000564b0:\n          pppppppcVar31 = pppppppcVar33;\n          pppppppcVar30 = (code *******)FUN_000470f0(ppppppcVar32,pppppppcVar29,pppppppcVar33,0x10);\n          pppppppcVar38 = pppppppcVar29;\n        }" if (parenthesized_expression "(pppppppcVar29 != (code *******)0x0)" ( (binary_expression "pppppppcVar29 != (code *******)0x0" identifier != (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\nLAB_000564b0:\n          pppppppcVar31 = pppppppcVar33;\n          pppppppcVar30 = (code *******)FUN_000470f0(ppppppcVar32,pppppppcVar29,pppppppcVar33,0x10);\n          pppppppcVar38 = pppppppcVar29;\n        }" { (labeled_statement "LAB_000564b0:\n          pppppppcVar31 = pppppppcVar33;" statement_identifier : (expression_statement "pppppppcVar31 = pppppppcVar33;" (assignment_expression "pppppppcVar31 = pppppppcVar33" identifier = identifier) ;)) (expression_statement "pppppppcVar30 = (code *******)FUN_000470f0(ppppppcVar32,pppppppcVar29,pppppppcVar33,0x10);" (assignment_expression "pppppppcVar30 = (code *******)FUN_000470f0(ppppppcVar32,pppppppcVar29,pppppppcVar33,0x10)" identifier = (cast_expression "(code *******)FUN_000470f0(ppppppcVar32,pppppppcVar29,pppppppcVar33,0x10)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "FUN_000470f0(ppppppcVar32,pppppppcVar29,pppppppcVar33,0x10)" identifier (argument_list "(ppppppcVar32,pppppppcVar29,pppppppcVar33,0x10)" ( identifier , identifier , identifier , number_literal ))))) ;) (expression_statement "pppppppcVar38 = pppppppcVar29;" (assignment_expression "pppppppcVar38 = pppppppcVar29" identifier = identifier) ;) })) (if_statement "if ((pppppppcVar33 == (code *******)0x0) ||\n           (pcVar4 = *(code **)(puVar41 + 0x23cf0), pppppppcVar30 == (code *******)0x0)) {\n          pppppppcStack_20c = (code *******)0xc;\n          goto LAB_000566f4;\n        }" if (parenthesized_expression "((pppppppcVar33 == (code *******)0x0) ||\n           (pcVar4 = *(code **)(puVar41 + 0x23cf0), pppppppcVar30 == (code *******)0x0))" ( (binary_expression "(pppppppcVar33 == (code *******)0x0) ||\n           (pcVar4 = *(code **)(puVar41 + 0x23cf0), pppppppcVar30 == (code *******)0x0)" (parenthesized_expression "(pppppppcVar33 == (code *******)0x0)" ( (binary_expression "pppppppcVar33 == (code *******)0x0" identifier == (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) || (parenthesized_expression "(pcVar4 = *(code **)(puVar41 + 0x23cf0), pppppppcVar30 == (code *******)0x0)" ( (comma_expression "pcVar4 = *(code **)(puVar41 + 0x23cf0), pppppppcVar30 == (code *******)0x0" (assignment_expression "pcVar4 = *(code **)(puVar41 + 0x23cf0)" identifier = (pointer_expression "*(code **)(puVar41 + 0x23cf0)" * (cast_expression "(code **)(puVar41 + 0x23cf0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar41 + 0x23cf0)" ( (binary_expression "puVar41 + 0x23cf0" identifier + number_literal) ))))) , (binary_expression "pppppppcVar30 == (code *******)0x0" identifier == (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal))) ))) )) (compound_statement "{\n          pppppppcStack_20c = (code *******)0xc;\n          goto LAB_000566f4;\n        }" { (expression_statement "pppppppcStack_20c = (code *******)0xc;" (assignment_expression "pppppppcStack_20c = (code *******)0xc" identifier = (cast_expression "(code *******)0xc" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (goto_statement "goto LAB_000566f4;" goto statement_identifier ;) })) (expression_statement "pppppppcVar34[0xd] = (code ******)pppppppcVar30;" (assignment_expression "pppppppcVar34[0xd] = (code ******)pppppppcVar30" (subscript_expression "pppppppcVar34[0xd]" identifier [ number_literal ]) = (cast_expression "(code ******)pppppppcVar30" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) identifier)) ;) (expression_statement "pppppppcVar29 = (code *******)*pppppppcVar3;" (assignment_expression "pppppppcVar29 = (code *******)*pppppppcVar3" identifier = (cast_expression "(code *******)*pppppppcVar3" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "*pppppppcVar3" * identifier))) ;) (expression_statement "ppppppcVar39 = pppppppcVar29[1];" (assignment_expression "ppppppcVar39 = pppppppcVar29[1]" identifier = (subscript_expression "pppppppcVar29[1]" identifier [ number_literal ])) ;) (expression_statement "iVar18 = (int)ppppppcVar39 << 2;" (assignment_expression "iVar18 = (int)ppppppcVar39 << 2" identifier = (binary_expression "(int)ppppppcVar39 << 2" (cast_expression "(int)ppppppcVar39" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal)) ;) (expression_statement "ppppppcVar32 = (code ******)(*pcVar4)(iVar18);" (assignment_expression "ppppppcVar32 = (code ******)(*pcVar4)(iVar18)" identifier = (cast_expression "(code ******)(*pcVar4)(iVar18)" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (call_expression "(*pcVar4)(iVar18)" (parenthesized_expression "(*pcVar4)" ( (pointer_expression "*pcVar4" * identifier) )) (argument_list "(iVar18)" ( identifier ))))) ;) (expression_statement "pppppppcVar29[3] = ppppppcVar32;" (assignment_expression "pppppppcVar29[3] = ppppppcVar32" (subscript_expression "pppppppcVar29[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "ppppppcVar35 = (code ******)(**(code **)(puVar41 + 0x23cf0))(iVar18);" (assignment_expression "ppppppcVar35 = (code ******)(**(code **)(puVar41 + 0x23cf0))(iVar18)" identifier = (cast_expression "(code ******)(**(code **)(puVar41 + 0x23cf0))(iVar18)" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (call_expression "(**(code **)(puVar41 + 0x23cf0))(iVar18)" (parenthesized_expression "(**(code **)(puVar41 + 0x23cf0))" ( (pointer_expression "**(code **)(puVar41 + 0x23cf0)" * (pointer_expression "*(code **)(puVar41 + 0x23cf0)" * (cast_expression "(code **)(puVar41 + 0x23cf0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar41 + 0x23cf0)" ( (binary_expression "puVar41 + 0x23cf0" identifier + number_literal) ))))) )) (argument_list "(iVar18)" ( identifier ))))) ;) (expression_statement "pppppppcVar29[4] = ppppppcVar35;" (assignment_expression "pppppppcVar29[4] = ppppppcVar35" (subscript_expression "pppppppcVar29[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar18 = (int)ppppppcVar39 * 0xc;" (assignment_expression "iVar18 = (int)ppppppcVar39 * 0xc" identifier = (binary_expression "(int)ppppppcVar39 * 0xc" (cast_expression "(int)ppppppcVar39" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ;) (expression_statement "ppppppcVar39 = (code ******)(**(code **)(puVar41 + 0x23cf0))(iVar18);" (assignment_expression "ppppppcVar39 = (code ******)(**(code **)(puVar41 + 0x23cf0))(iVar18)" identifier = (cast_expression "(code ******)(**(code **)(puVar41 + 0x23cf0))(iVar18)" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (call_expression "(**(code **)(puVar41 + 0x23cf0))(iVar18)" (parenthesized_expression "(**(code **)(puVar41 + 0x23cf0))" ( (pointer_expression "**(code **)(puVar41 + 0x23cf0)" * (pointer_expression "*(code **)(puVar41 + 0x23cf0)" * (cast_expression "(code **)(puVar41 + 0x23cf0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar41 + 0x23cf0)" ( (binary_expression "puVar41 + 0x23cf0" identifier + number_literal) ))))) )) (argument_list "(iVar18)" ( identifier ))))) ;) (expression_statement "pppppppcVar29[5] = ppppppcVar39;" (assignment_expression "pppppppcVar29[5] = ppppppcVar39" (subscript_expression "pppppppcVar29[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "ppppppcVar20 = (code ******)(**(code **)(puVar41 + 0x23cf0))(iVar18);" (assignment_expression "ppppppcVar20 = (code ******)(**(code **)(puVar41 + 0x23cf0))(iVar18)" identifier = (cast_expression "(code ******)(**(code **)(puVar41 + 0x23cf0))(iVar18)" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (call_expression "(**(code **)(puVar41 + 0x23cf0))(iVar18)" (parenthesized_expression "(**(code **)(puVar41 + 0x23cf0))" ( (pointer_expression "**(code **)(puVar41 + 0x23cf0)" * (pointer_expression "*(code **)(puVar41 + 0x23cf0)" * (cast_expression "(code **)(puVar41 + 0x23cf0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar41 + 0x23cf0)" ( (binary_expression "puVar41 + 0x23cf0" identifier + number_literal) ))))) )) (argument_list "(iVar18)" ( identifier ))))) ;) (expression_statement "pppppppcVar29[6] = ppppppcVar20;" (assignment_expression "pppppppcVar29[6] = ppppppcVar20" (subscript_expression "pppppppcVar29[6]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (ppppppcVar32 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else if (ppppppcVar35 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else if (ppppppcVar39 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else if (ppppppcVar20 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else {\n          ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23cf0))((int)pppppppcVar3[6] << 2);\n          pppppppcVar29[0x21] = ppppppcVar32;\n          if (ppppppcVar32 != (code ******)0x0) {\n            ppppppcVar32 = (code ******)0x0;\n            if (pppppppcVar3[6] != (code ******)0x0) {\n              do {\n                pppppppcVar29[0x21][(int)ppppppcVar32] = (code *****)ppppppcVar32;\n                ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n              } while (ppppppcVar32 < pppppppcVar3[6]);\n            }\n            FUN_00046050(pppppppcVar29[0xd],*(int *)(puVar41 + 0x23abc) + 0x60e8,pppppppcVar29);\n            ppppppcVar32 = pppppppcVar3[6];\n            if (ppppppcVar32 == (code ******)0x0) {\nLAB_00056704:\n              (**(code **)(puVar41 + 0x23dc0))(pppppppcVar29[0x21]);\n              pppppppcVar29[0x21] = (code ******)0x0;\n            }\n            else {\n              ppppppcVar35 = pppppppcVar29[0x21];\n              if (*ppppppcVar35 == (code *****)0x0) {\n                ppppppcVar39 = (code ******)0x0;\n                do {\n                  ppppppcVar35 = ppppppcVar35 + 1;\n                  ppppppcVar39 = (code ******)((int)ppppppcVar39 + 1);\n                  if (ppppppcVar32 == ppppppcVar39) {\n                    if (ppppppcVar32 == ppppppcVar39) goto LAB_00056704;\n                    break;\n                  }\n                } while ((code ******)*ppppppcVar35 == ppppppcVar39);\n              }\n            }\n          }\n          pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23abc) + 0x73a4);\n          pppppppcVar30 = (code *******)FUN_00045fb4(pppppppcVar29[0xd],pppppppcVar38,pppppppcVar3);\n          pppppppcVar31 = pppppppcVar29;\n          if (pppppppcVar30 == (code *******)0x0) {\n            pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23b40) + -0x5be4);\n            pppppppcVar30 = (code *******)FUN_00045fb4(pppppppcVar29[0xd],pppppppcVar38);\n            if (pppppppcVar30 == (code *******)0x0) {\n              FUN_00046050(pppppppcVar29[0xd],*(int *)(puVar41 + 0x23abc) + 0x61b4);\n              pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23b40) + -0x4614);\n              pppppppcVar30 = (code *******)FUN_00046050(pppppppcVar29[0xd],pppppppcVar38);\n              if (pppppppcVar30 == (code *******)0x0) {\n                uVar7 = 0;\n                iVar18 = *(int *)(puVar41 + 0x23b40);\n                pppppppcVar33 = (code *******)0x0;\nLAB_00056744:\n                if ((code *******)pppppppcVar29[2] != pppppppcVar33) {\nLAB_00056750:\n                  if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                    pppppppcVar38 = pppppppcVar29;\n                    pppppppcVar31 = pppppppcVar33;\n                    pppppppcVar30 =\n                         (code *******)\n                         (*(code *)(iVar18 + -0x561c))\n                                   (&ppppppcStack_204,pppppppcVar29,pppppppcVar33,1);\n                    if (pppppppcVar30 != (code *******)0x0) goto LAB_00056168;\n                    if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                      (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                      uVar7 = 1;\n                    }\n                  }\n                  pppppppcVar33 = (code *******)((int)pppppppcVar33 + 1);\n                  goto LAB_00056744;\n                }\n                if (uVar7 != 0) {\n                  uVar7 = 0;\n                  pppppppcVar33 = (code *******)0x0;\n                  goto LAB_00056750;\n                }\n                if (((((uint)pppppppcVar3[7] & 0x8000000) == 0) &&\n                    (pppppppcVar3[6] != (code ******)0x0)) &&\n                   ((char)*(code *)(pppppppcVar29 + 0x16) < '\0')) {\n                  ppppppcVar32 = pppppppcVar29[2];\n                }\n                else {\n                  if (pppppppcVar29[0x13] == (code ******)0x0) goto LAB_000568f0;\n                  ppppppcVar32 = pppppppcVar29[2];\n                }\n                ppppppcVar35 = (code ******)\n                               (**(code **)(puVar41 + 0x23cf0))((int)ppppppcVar32 * 0xc);\n                pppppppcVar29[7] = ppppppcVar35;\n                if (ppppppcVar35 == (code ******)0x0) {\n                  pppppppcVar30 = (code *******)0xc;\n                  goto LAB_00056168;\n                }\n                if (ppppppcVar32 != (code ******)0x0) {\n                  iVar18 = 0;\n                  ppppppcVar32 = (code ******)0x0;\n                  do {\n                    puVar21 = (undefined1 *)((int)pppppppcVar29[7] + iVar18);\n                    *puVar21 = 0;\n                    puVar21[1] = 0;\n                    puVar21[2] = 0;\n                    puVar21[3] = 0;\n                    puVar21[4] = 0;\n                    puVar21[5] = 0;\n                    puVar21[6] = 0;\n                    puVar21[7] = 0;\n                    puVar21[8] = 0;\n                    puVar21[9] = 0;\n                    puVar21[10] = 0;\n                    puVar21[0xb] = 0;\n                    ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                    iVar18 = iVar18 + 0xc;\n                  } while (ppppppcVar32 < pppppppcVar29[2]);\n                  iVar18 = *(int *)(puVar41 + 0x23abc);\n                  if (pppppppcVar29[2] != (code ******)0x0) {\n                    iVar43 = 0;\n                    pppppppcStack_218 = (code *******)0x0;\n                    do {\n                      piVar5 = *(int **)((int)pppppppcVar29[6] + iVar43 + 8);\n                      if (0 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4)) {\n                        iVar37 = 0;\n                        do {\n                          pppppppcVar38 = pppppppcStack_218;\n                          iVar22 = (*(code *)(iVar18 + 0x6e30))\n                                             (pppppppcVar29[7] + *piVar5 * 3,pppppppcStack_218);\n                          pppppppcVar30 = (code *******)0xc;\n                          if (iVar22 == 0) goto LAB_00056168;\n                          iVar37 = iVar37 + 1;\n                          piVar5 = piVar5 + 1;\n                        } while (iVar37 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4));\n                      }\n                      pppppppcStack_218 = (code *******)((int)pppppppcStack_218 + 1);\n                      iVar43 = iVar43 + 0xc;\n                    } while (pppppppcStack_218 < pppppppcVar29[2]);\n                  }\n                }\nLAB_000568f0:\n                pppppppcStack_20c = (code *******)0x0;\n                if (((((uint)pppppppcVar34[0x16] & 0x20000000) != 0) && (uVar16 == 0)) &&\n                   (pppppppcVar3[5] == (code ******)0x0)) {\n                  if (pppppppcVar34[2] != (code ******)0x0) {\n                    pppppppcVar31 = (code *******)(*(int *)(puVar41 + 0x23754) + 0x6e4c);\n                    if (*(byte *)(*pppppppcVar34 + 1) < 0xd) {\n                    /* WARNING: Could not recover jumptable at 0x00056a60. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      pppppppcVar29 =\n                           (code *******)\n                           (*(code *)(puVar41 +\n                                     (int)(pppppppcVar31[*(byte *)(*pppppppcVar34 + 1)] + 0xadc7)))\n                                     ();\n                      return pppppppcVar29;\n                    }\n                    (**(code **)(puVar41 + 0x23bc4))(0);\n                    if (uVar7 != 0) {\n                      pppppppcVar31 = (code *******)&DAT_00000007;\n                      ppppppcVar32 = (code ******)0x0;\n                      do {\n                        ppppppcVar35 = *pppppppcVar34 + (int)ppppppcVar32 * 2;\n                        if (*(char *)(ppppppcVar35 + 1) == '\x01') {\n                          if (*(char *)ppppppcVar35 < '\0') {\n                            ppppppcVar35[1] = (code *****)((uint)ppppppcVar35[1] & 0xfffffbff);\n                          }\n                        }\n                        else if (*(char *)(ppppppcVar35 + 1) == '\x05') {\n                          *(char *)(ppppppcVar35 + 1) = '\a';\n                        }\n                        ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                      } while (ppppppcVar32 < pppppppcVar34[2]);\n                    }\n                  }\n                  pppppppcVar34[0x17] = (code ******)0x1;\n                  if (0 < (int)pppppppcVar34[0x13]) {\n                    uVar7 = 1;\n                  }\n                  *(byte *)(pppppppcVar34 + 0x16) =\n                       (byte)*(code *)(pppppppcVar34 + 0x16) & 0x9f | (byte)((uVar7 & 1) << 6);\n                }\n                ppppppcVar32 = (code ******)pppppppcVar34[0xd][3][7];\n                pppppppcVar34[0x12] = ppppppcVar32;\n                pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppppcVar32 * 3);\n                pppppppcVar33 = (code *******)FUN_000483e8(&ppppppcStack_204,pppppppcVar38);\n                pppppppcVar29 = pppppppcVar33;\n                pppppppcStack_208 = pppppppcVar33;\n                if (pppppppcVar33 == (code *******)0x0) {\n                  if ((0 < (int)pppppppcVar34[0x13]) && (0 < iStack_200)) {\n                    iVar18 = *(int *)(puVar41 + 0x23abc);\n                    iVar43 = *(int *)(puVar41 + 0x23abc);\n                    pppppppcVar29 = (code *******)0x0;\n                    do {\n                      pppppppcVar31 =\n                           (code *******)(*pppppppcVar34 + piStack_1fc[(int)pppppppcVar29] * 2);\n                      if (*(code *)(pppppppcVar31 + 1) == (code)0x4) {\n                        iVar37 = 0;\n                        piVar5 = piStack_1fc;\n                        if (iStack_200 < 1) {\nLAB_00056b8c:\n                          if (iStack_200 != iVar37) {\n                            ppppcVar40 = *pppppppcVar34[5][piStack_1fc[(int)pppppppcVar29] * 3 + 2];\n                            iVar37 = (*(code *)(iVar18 + 0x5ea8))(&ppppppcStack_204,ppppcVar40);\n                            if (iVar37 == 0) {\n                              pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppcVar40 * 3)\n                              ;\n                              pppppppcVar29 =\n                                   (code *******)\n                                   (*(code *)(iVar43 + 0x7f1c))(&ppppppcStack_204,pppppppcVar38);\n                              if (pppppppcVar29 != (code *******)0x0) goto LAB_00056cb8;\n                            }\n                          }\n                        }\n                        else {\n                          do {\n                            ppppppcVar32 = *pppppppcVar34 + *piVar5 * 2;\n                            if ((*(char *)(ppppppcVar32 + 1) == '\t') &&\n                               ((code ******)*ppppppcVar32 == *pppppppcVar31)) goto LAB_00056b8c;\n                            iVar37 = iVar37 + 1;\n                            piVar5 = piVar5 + 1;\n                          } while (iStack_200 != iVar37);\n                        }\n                      }\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1);\n                    } while ((int)pppppppcVar29 < iStack_200);\n                  }\n                  pppppppcVar31 = &ppppppcStack_204;\n                  pppppppcVar38 = pppppppcVar34;\n                  ppppppcVar32 = (code ******)\n                                 FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,0);\n                  pppppppcVar34[9] = ppppppcVar32;\n                  pppppppcVar29 = pppppppcStack_208;\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    if (((uint)ppppppcVar32[0xd] & 0x1000000) == 0) {\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar34[10] = ppppppcVar32;\n                    }\n                    else {\n                      pppppppcVar31 = &ppppppcStack_204;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,1);\n                      pppppppcVar34[10] = ppppppcVar32;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,2);\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar38 = pppppppcVar34;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,6);\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar29 = pppppppcStack_208;\n                      if (((pppppppcVar34[10] == (code ******)0x0) ||\n                          (pppppppcVar34[0xb] == (code ******)0x0)) ||\n                         (ppppppcVar32 == (code ******)0x0)) goto LAB_00056cb8;\n                    }\n                    (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                    pppppppcVar29 = pppppppcVar33;\n                  }\n                }\nLAB_00056cb8:\n                pppppppcStack_20c = pppppppcVar29;\n                FUN_0004b234(pppppppcVar3);\n                FUN_0004b2bc(&pppppppcStack_1f8);\n                pppppppcVar29 = pppppppcStack_20c;\n                if (pppppppcStack_20c != (code *******)0x0) {\n                  if (*(int *)(puVar41 + 0x23c78) != 0) {\n                    (**(code **)(puVar41 + 0x23df0))(pppppppcVar34 + 0x22);\n                  }\n                  FUN_0004b338(pppppppcVar34);\n                  *pppppppcVar3 = (code ******)0x0;\n                  pppppppcVar3[1] = (code ******)0x0;\n                  pppppppcVar29 = pppppppcStack_20c;\n                }\n                goto LAB_00056cfc;\n              }\n            }\n          }\n        }" if (parenthesized_expression "(ppppppcVar32 == (code ******)0x0)" ( (binary_expression "ppppppcVar32 == (code ******)0x0" identifier == (cast_expression "(code ******)0x0" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (compound_statement "{\n          pppppppcVar30 = (code *******)0xc;\n        }" { (expression_statement "pppppppcVar30 = (code *******)0xc;" (assignment_expression "pppppppcVar30 = (code *******)0xc" identifier = (cast_expression "(code *******)0xc" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) }) (else_clause "else if (ppppppcVar35 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else if (ppppppcVar39 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else if (ppppppcVar20 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else {\n          ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23cf0))((int)pppppppcVar3[6] << 2);\n          pppppppcVar29[0x21] = ppppppcVar32;\n          if (ppppppcVar32 != (code ******)0x0) {\n            ppppppcVar32 = (code ******)0x0;\n            if (pppppppcVar3[6] != (code ******)0x0) {\n              do {\n                pppppppcVar29[0x21][(int)ppppppcVar32] = (code *****)ppppppcVar32;\n                ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n              } while (ppppppcVar32 < pppppppcVar3[6]);\n            }\n            FUN_00046050(pppppppcVar29[0xd],*(int *)(puVar41 + 0x23abc) + 0x60e8,pppppppcVar29);\n            ppppppcVar32 = pppppppcVar3[6];\n            if (ppppppcVar32 == (code ******)0x0) {\nLAB_00056704:\n              (**(code **)(puVar41 + 0x23dc0))(pppppppcVar29[0x21]);\n              pppppppcVar29[0x21] = (code ******)0x0;\n            }\n            else {\n              ppppppcVar35 = pppppppcVar29[0x21];\n              if (*ppppppcVar35 == (code *****)0x0) {\n                ppppppcVar39 = (code ******)0x0;\n                do {\n                  ppppppcVar35 = ppppppcVar35 + 1;\n                  ppppppcVar39 = (code ******)((int)ppppppcVar39 + 1);\n                  if (ppppppcVar32 == ppppppcVar39) {\n                    if (ppppppcVar32 == ppppppcVar39) goto LAB_00056704;\n                    break;\n                  }\n                } while ((code ******)*ppppppcVar35 == ppppppcVar39);\n              }\n            }\n          }\n          pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23abc) + 0x73a4);\n          pppppppcVar30 = (code *******)FUN_00045fb4(pppppppcVar29[0xd],pppppppcVar38,pppppppcVar3);\n          pppppppcVar31 = pppppppcVar29;\n          if (pppppppcVar30 == (code *******)0x0) {\n            pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23b40) + -0x5be4);\n            pppppppcVar30 = (code *******)FUN_00045fb4(pppppppcVar29[0xd],pppppppcVar38);\n            if (pppppppcVar30 == (code *******)0x0) {\n              FUN_00046050(pppppppcVar29[0xd],*(int *)(puVar41 + 0x23abc) + 0x61b4);\n              pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23b40) + -0x4614);\n              pppppppcVar30 = (code *******)FUN_00046050(pppppppcVar29[0xd],pppppppcVar38);\n              if (pppppppcVar30 == (code *******)0x0) {\n                uVar7 = 0;\n                iVar18 = *(int *)(puVar41 + 0x23b40);\n                pppppppcVar33 = (code *******)0x0;\nLAB_00056744:\n                if ((code *******)pppppppcVar29[2] != pppppppcVar33) {\nLAB_00056750:\n                  if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                    pppppppcVar38 = pppppppcVar29;\n                    pppppppcVar31 = pppppppcVar33;\n                    pppppppcVar30 =\n                         (code *******)\n                         (*(code *)(iVar18 + -0x561c))\n                                   (&ppppppcStack_204,pppppppcVar29,pppppppcVar33,1);\n                    if (pppppppcVar30 != (code *******)0x0) goto LAB_00056168;\n                    if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                      (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                      uVar7 = 1;\n                    }\n                  }\n                  pppppppcVar33 = (code *******)((int)pppppppcVar33 + 1);\n                  goto LAB_00056744;\n                }\n                if (uVar7 != 0) {\n                  uVar7 = 0;\n                  pppppppcVar33 = (code *******)0x0;\n                  goto LAB_00056750;\n                }\n                if (((((uint)pppppppcVar3[7] & 0x8000000) == 0) &&\n                    (pppppppcVar3[6] != (code ******)0x0)) &&\n                   ((char)*(code *)(pppppppcVar29 + 0x16) < '\0')) {\n                  ppppppcVar32 = pppppppcVar29[2];\n                }\n                else {\n                  if (pppppppcVar29[0x13] == (code ******)0x0) goto LAB_000568f0;\n                  ppppppcVar32 = pppppppcVar29[2];\n                }\n                ppppppcVar35 = (code ******)\n                               (**(code **)(puVar41 + 0x23cf0))((int)ppppppcVar32 * 0xc);\n                pppppppcVar29[7] = ppppppcVar35;\n                if (ppppppcVar35 == (code ******)0x0) {\n                  pppppppcVar30 = (code *******)0xc;\n                  goto LAB_00056168;\n                }\n                if (ppppppcVar32 != (code ******)0x0) {\n                  iVar18 = 0;\n                  ppppppcVar32 = (code ******)0x0;\n                  do {\n                    puVar21 = (undefined1 *)((int)pppppppcVar29[7] + iVar18);\n                    *puVar21 = 0;\n                    puVar21[1] = 0;\n                    puVar21[2] = 0;\n                    puVar21[3] = 0;\n                    puVar21[4] = 0;\n                    puVar21[5] = 0;\n                    puVar21[6] = 0;\n                    puVar21[7] = 0;\n                    puVar21[8] = 0;\n                    puVar21[9] = 0;\n                    puVar21[10] = 0;\n                    puVar21[0xb] = 0;\n                    ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                    iVar18 = iVar18 + 0xc;\n                  } while (ppppppcVar32 < pppppppcVar29[2]);\n                  iVar18 = *(int *)(puVar41 + 0x23abc);\n                  if (pppppppcVar29[2] != (code ******)0x0) {\n                    iVar43 = 0;\n                    pppppppcStack_218 = (code *******)0x0;\n                    do {\n                      piVar5 = *(int **)((int)pppppppcVar29[6] + iVar43 + 8);\n                      if (0 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4)) {\n                        iVar37 = 0;\n                        do {\n                          pppppppcVar38 = pppppppcStack_218;\n                          iVar22 = (*(code *)(iVar18 + 0x6e30))\n                                             (pppppppcVar29[7] + *piVar5 * 3,pppppppcStack_218);\n                          pppppppcVar30 = (code *******)0xc;\n                          if (iVar22 == 0) goto LAB_00056168;\n                          iVar37 = iVar37 + 1;\n                          piVar5 = piVar5 + 1;\n                        } while (iVar37 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4));\n                      }\n                      pppppppcStack_218 = (code *******)((int)pppppppcStack_218 + 1);\n                      iVar43 = iVar43 + 0xc;\n                    } while (pppppppcStack_218 < pppppppcVar29[2]);\n                  }\n                }\nLAB_000568f0:\n                pppppppcStack_20c = (code *******)0x0;\n                if (((((uint)pppppppcVar34[0x16] & 0x20000000) != 0) && (uVar16 == 0)) &&\n                   (pppppppcVar3[5] == (code ******)0x0)) {\n                  if (pppppppcVar34[2] != (code ******)0x0) {\n                    pppppppcVar31 = (code *******)(*(int *)(puVar41 + 0x23754) + 0x6e4c);\n                    if (*(byte *)(*pppppppcVar34 + 1) < 0xd) {\n                    /* WARNING: Could not recover jumptable at 0x00056a60. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      pppppppcVar29 =\n                           (code *******)\n                           (*(code *)(puVar41 +\n                                     (int)(pppppppcVar31[*(byte *)(*pppppppcVar34 + 1)] + 0xadc7)))\n                                     ();\n                      return pppppppcVar29;\n                    }\n                    (**(code **)(puVar41 + 0x23bc4))(0);\n                    if (uVar7 != 0) {\n                      pppppppcVar31 = (code *******)&DAT_00000007;\n                      ppppppcVar32 = (code ******)0x0;\n                      do {\n                        ppppppcVar35 = *pppppppcVar34 + (int)ppppppcVar32 * 2;\n                        if (*(char *)(ppppppcVar35 + 1) == '\x01') {\n                          if (*(char *)ppppppcVar35 < '\0') {\n                            ppppppcVar35[1] = (code *****)((uint)ppppppcVar35[1] & 0xfffffbff);\n                          }\n                        }\n                        else if (*(char *)(ppppppcVar35 + 1) == '\x05') {\n                          *(char *)(ppppppcVar35 + 1) = '\a';\n                        }\n                        ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                      } while (ppppppcVar32 < pppppppcVar34[2]);\n                    }\n                  }\n                  pppppppcVar34[0x17] = (code ******)0x1;\n                  if (0 < (int)pppppppcVar34[0x13]) {\n                    uVar7 = 1;\n                  }\n                  *(byte *)(pppppppcVar34 + 0x16) =\n                       (byte)*(code *)(pppppppcVar34 + 0x16) & 0x9f | (byte)((uVar7 & 1) << 6);\n                }\n                ppppppcVar32 = (code ******)pppppppcVar34[0xd][3][7];\n                pppppppcVar34[0x12] = ppppppcVar32;\n                pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppppcVar32 * 3);\n                pppppppcVar33 = (code *******)FUN_000483e8(&ppppppcStack_204,pppppppcVar38);\n                pppppppcVar29 = pppppppcVar33;\n                pppppppcStack_208 = pppppppcVar33;\n                if (pppppppcVar33 == (code *******)0x0) {\n                  if ((0 < (int)pppppppcVar34[0x13]) && (0 < iStack_200)) {\n                    iVar18 = *(int *)(puVar41 + 0x23abc);\n                    iVar43 = *(int *)(puVar41 + 0x23abc);\n                    pppppppcVar29 = (code *******)0x0;\n                    do {\n                      pppppppcVar31 =\n                           (code *******)(*pppppppcVar34 + piStack_1fc[(int)pppppppcVar29] * 2);\n                      if (*(code *)(pppppppcVar31 + 1) == (code)0x4) {\n                        iVar37 = 0;\n                        piVar5 = piStack_1fc;\n                        if (iStack_200 < 1) {\nLAB_00056b8c:\n                          if (iStack_200 != iVar37) {\n                            ppppcVar40 = *pppppppcVar34[5][piStack_1fc[(int)pppppppcVar29] * 3 + 2];\n                            iVar37 = (*(code *)(iVar18 + 0x5ea8))(&ppppppcStack_204,ppppcVar40);\n                            if (iVar37 == 0) {\n                              pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppcVar40 * 3)\n                              ;\n                              pppppppcVar29 =\n                                   (code *******)\n                                   (*(code *)(iVar43 + 0x7f1c))(&ppppppcStack_204,pppppppcVar38);\n                              if (pppppppcVar29 != (code *******)0x0) goto LAB_00056cb8;\n                            }\n                          }\n                        }\n                        else {\n                          do {\n                            ppppppcVar32 = *pppppppcVar34 + *piVar5 * 2;\n                            if ((*(char *)(ppppppcVar32 + 1) == '\t') &&\n                               ((code ******)*ppppppcVar32 == *pppppppcVar31)) goto LAB_00056b8c;\n                            iVar37 = iVar37 + 1;\n                            piVar5 = piVar5 + 1;\n                          } while (iStack_200 != iVar37);\n                        }\n                      }\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1);\n                    } while ((int)pppppppcVar29 < iStack_200);\n                  }\n                  pppppppcVar31 = &ppppppcStack_204;\n                  pppppppcVar38 = pppppppcVar34;\n                  ppppppcVar32 = (code ******)\n                                 FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,0);\n                  pppppppcVar34[9] = ppppppcVar32;\n                  pppppppcVar29 = pppppppcStack_208;\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    if (((uint)ppppppcVar32[0xd] & 0x1000000) == 0) {\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar34[10] = ppppppcVar32;\n                    }\n                    else {\n                      pppppppcVar31 = &ppppppcStack_204;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,1);\n                      pppppppcVar34[10] = ppppppcVar32;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,2);\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar38 = pppppppcVar34;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,6);\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar29 = pppppppcStack_208;\n                      if (((pppppppcVar34[10] == (code ******)0x0) ||\n                          (pppppppcVar34[0xb] == (code ******)0x0)) ||\n                         (ppppppcVar32 == (code ******)0x0)) goto LAB_00056cb8;\n                    }\n                    (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                    pppppppcVar29 = pppppppcVar33;\n                  }\n                }\nLAB_00056cb8:\n                pppppppcStack_20c = pppppppcVar29;\n                FUN_0004b234(pppppppcVar3);\n                FUN_0004b2bc(&pppppppcStack_1f8);\n                pppppppcVar29 = pppppppcStack_20c;\n                if (pppppppcStack_20c != (code *******)0x0) {\n                  if (*(int *)(puVar41 + 0x23c78) != 0) {\n                    (**(code **)(puVar41 + 0x23df0))(pppppppcVar34 + 0x22);\n                  }\n                  FUN_0004b338(pppppppcVar34);\n                  *pppppppcVar3 = (code ******)0x0;\n                  pppppppcVar3[1] = (code ******)0x0;\n                  pppppppcVar29 = pppppppcStack_20c;\n                }\n                goto LAB_00056cfc;\n              }\n            }\n          }\n        }" else (if_statement "if (ppppppcVar35 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else if (ppppppcVar39 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else if (ppppppcVar20 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else {\n          ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23cf0))((int)pppppppcVar3[6] << 2);\n          pppppppcVar29[0x21] = ppppppcVar32;\n          if (ppppppcVar32 != (code ******)0x0) {\n            ppppppcVar32 = (code ******)0x0;\n            if (pppppppcVar3[6] != (code ******)0x0) {\n              do {\n                pppppppcVar29[0x21][(int)ppppppcVar32] = (code *****)ppppppcVar32;\n                ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n              } while (ppppppcVar32 < pppppppcVar3[6]);\n            }\n            FUN_00046050(pppppppcVar29[0xd],*(int *)(puVar41 + 0x23abc) + 0x60e8,pppppppcVar29);\n            ppppppcVar32 = pppppppcVar3[6];\n            if (ppppppcVar32 == (code ******)0x0) {\nLAB_00056704:\n              (**(code **)(puVar41 + 0x23dc0))(pppppppcVar29[0x21]);\n              pppppppcVar29[0x21] = (code ******)0x0;\n            }\n            else {\n              ppppppcVar35 = pppppppcVar29[0x21];\n              if (*ppppppcVar35 == (code *****)0x0) {\n                ppppppcVar39 = (code ******)0x0;\n                do {\n                  ppppppcVar35 = ppppppcVar35 + 1;\n                  ppppppcVar39 = (code ******)((int)ppppppcVar39 + 1);\n                  if (ppppppcVar32 == ppppppcVar39) {\n                    if (ppppppcVar32 == ppppppcVar39) goto LAB_00056704;\n                    break;\n                  }\n                } while ((code ******)*ppppppcVar35 == ppppppcVar39);\n              }\n            }\n          }\n          pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23abc) + 0x73a4);\n          pppppppcVar30 = (code *******)FUN_00045fb4(pppppppcVar29[0xd],pppppppcVar38,pppppppcVar3);\n          pppppppcVar31 = pppppppcVar29;\n          if (pppppppcVar30 == (code *******)0x0) {\n            pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23b40) + -0x5be4);\n            pppppppcVar30 = (code *******)FUN_00045fb4(pppppppcVar29[0xd],pppppppcVar38);\n            if (pppppppcVar30 == (code *******)0x0) {\n              FUN_00046050(pppppppcVar29[0xd],*(int *)(puVar41 + 0x23abc) + 0x61b4);\n              pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23b40) + -0x4614);\n              pppppppcVar30 = (code *******)FUN_00046050(pppppppcVar29[0xd],pppppppcVar38);\n              if (pppppppcVar30 == (code *******)0x0) {\n                uVar7 = 0;\n                iVar18 = *(int *)(puVar41 + 0x23b40);\n                pppppppcVar33 = (code *******)0x0;\nLAB_00056744:\n                if ((code *******)pppppppcVar29[2] != pppppppcVar33) {\nLAB_00056750:\n                  if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                    pppppppcVar38 = pppppppcVar29;\n                    pppppppcVar31 = pppppppcVar33;\n                    pppppppcVar30 =\n                         (code *******)\n                         (*(code *)(iVar18 + -0x561c))\n                                   (&ppppppcStack_204,pppppppcVar29,pppppppcVar33,1);\n                    if (pppppppcVar30 != (code *******)0x0) goto LAB_00056168;\n                    if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                      (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                      uVar7 = 1;\n                    }\n                  }\n                  pppppppcVar33 = (code *******)((int)pppppppcVar33 + 1);\n                  goto LAB_00056744;\n                }\n                if (uVar7 != 0) {\n                  uVar7 = 0;\n                  pppppppcVar33 = (code *******)0x0;\n                  goto LAB_00056750;\n                }\n                if (((((uint)pppppppcVar3[7] & 0x8000000) == 0) &&\n                    (pppppppcVar3[6] != (code ******)0x0)) &&\n                   ((char)*(code *)(pppppppcVar29 + 0x16) < '\0')) {\n                  ppppppcVar32 = pppppppcVar29[2];\n                }\n                else {\n                  if (pppppppcVar29[0x13] == (code ******)0x0) goto LAB_000568f0;\n                  ppppppcVar32 = pppppppcVar29[2];\n                }\n                ppppppcVar35 = (code ******)\n                               (**(code **)(puVar41 + 0x23cf0))((int)ppppppcVar32 * 0xc);\n                pppppppcVar29[7] = ppppppcVar35;\n                if (ppppppcVar35 == (code ******)0x0) {\n                  pppppppcVar30 = (code *******)0xc;\n                  goto LAB_00056168;\n                }\n                if (ppppppcVar32 != (code ******)0x0) {\n                  iVar18 = 0;\n                  ppppppcVar32 = (code ******)0x0;\n                  do {\n                    puVar21 = (undefined1 *)((int)pppppppcVar29[7] + iVar18);\n                    *puVar21 = 0;\n                    puVar21[1] = 0;\n                    puVar21[2] = 0;\n                    puVar21[3] = 0;\n                    puVar21[4] = 0;\n                    puVar21[5] = 0;\n                    puVar21[6] = 0;\n                    puVar21[7] = 0;\n                    puVar21[8] = 0;\n                    puVar21[9] = 0;\n                    puVar21[10] = 0;\n                    puVar21[0xb] = 0;\n                    ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                    iVar18 = iVar18 + 0xc;\n                  } while (ppppppcVar32 < pppppppcVar29[2]);\n                  iVar18 = *(int *)(puVar41 + 0x23abc);\n                  if (pppppppcVar29[2] != (code ******)0x0) {\n                    iVar43 = 0;\n                    pppppppcStack_218 = (code *******)0x0;\n                    do {\n                      piVar5 = *(int **)((int)pppppppcVar29[6] + iVar43 + 8);\n                      if (0 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4)) {\n                        iVar37 = 0;\n                        do {\n                          pppppppcVar38 = pppppppcStack_218;\n                          iVar22 = (*(code *)(iVar18 + 0x6e30))\n                                             (pppppppcVar29[7] + *piVar5 * 3,pppppppcStack_218);\n                          pppppppcVar30 = (code *******)0xc;\n                          if (iVar22 == 0) goto LAB_00056168;\n                          iVar37 = iVar37 + 1;\n                          piVar5 = piVar5 + 1;\n                        } while (iVar37 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4));\n                      }\n                      pppppppcStack_218 = (code *******)((int)pppppppcStack_218 + 1);\n                      iVar43 = iVar43 + 0xc;\n                    } while (pppppppcStack_218 < pppppppcVar29[2]);\n                  }\n                }\nLAB_000568f0:\n                pppppppcStack_20c = (code *******)0x0;\n                if (((((uint)pppppppcVar34[0x16] & 0x20000000) != 0) && (uVar16 == 0)) &&\n                   (pppppppcVar3[5] == (code ******)0x0)) {\n                  if (pppppppcVar34[2] != (code ******)0x0) {\n                    pppppppcVar31 = (code *******)(*(int *)(puVar41 + 0x23754) + 0x6e4c);\n                    if (*(byte *)(*pppppppcVar34 + 1) < 0xd) {\n                    /* WARNING: Could not recover jumptable at 0x00056a60. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      pppppppcVar29 =\n                           (code *******)\n                           (*(code *)(puVar41 +\n                                     (int)(pppppppcVar31[*(byte *)(*pppppppcVar34 + 1)] + 0xadc7)))\n                                     ();\n                      return pppppppcVar29;\n                    }\n                    (**(code **)(puVar41 + 0x23bc4))(0);\n                    if (uVar7 != 0) {\n                      pppppppcVar31 = (code *******)&DAT_00000007;\n                      ppppppcVar32 = (code ******)0x0;\n                      do {\n                        ppppppcVar35 = *pppppppcVar34 + (int)ppppppcVar32 * 2;\n                        if (*(char *)(ppppppcVar35 + 1) == '\x01') {\n                          if (*(char *)ppppppcVar35 < '\0') {\n                            ppppppcVar35[1] = (code *****)((uint)ppppppcVar35[1] & 0xfffffbff);\n                          }\n                        }\n                        else if (*(char *)(ppppppcVar35 + 1) == '\x05') {\n                          *(char *)(ppppppcVar35 + 1) = '\a';\n                        }\n                        ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                      } while (ppppppcVar32 < pppppppcVar34[2]);\n                    }\n                  }\n                  pppppppcVar34[0x17] = (code ******)0x1;\n                  if (0 < (int)pppppppcVar34[0x13]) {\n                    uVar7 = 1;\n                  }\n                  *(byte *)(pppppppcVar34 + 0x16) =\n                       (byte)*(code *)(pppppppcVar34 + 0x16) & 0x9f | (byte)((uVar7 & 1) << 6);\n                }\n                ppppppcVar32 = (code ******)pppppppcVar34[0xd][3][7];\n                pppppppcVar34[0x12] = ppppppcVar32;\n                pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppppcVar32 * 3);\n                pppppppcVar33 = (code *******)FUN_000483e8(&ppppppcStack_204,pppppppcVar38);\n                pppppppcVar29 = pppppppcVar33;\n                pppppppcStack_208 = pppppppcVar33;\n                if (pppppppcVar33 == (code *******)0x0) {\n                  if ((0 < (int)pppppppcVar34[0x13]) && (0 < iStack_200)) {\n                    iVar18 = *(int *)(puVar41 + 0x23abc);\n                    iVar43 = *(int *)(puVar41 + 0x23abc);\n                    pppppppcVar29 = (code *******)0x0;\n                    do {\n                      pppppppcVar31 =\n                           (code *******)(*pppppppcVar34 + piStack_1fc[(int)pppppppcVar29] * 2);\n                      if (*(code *)(pppppppcVar31 + 1) == (code)0x4) {\n                        iVar37 = 0;\n                        piVar5 = piStack_1fc;\n                        if (iStack_200 < 1) {\nLAB_00056b8c:\n                          if (iStack_200 != iVar37) {\n                            ppppcVar40 = *pppppppcVar34[5][piStack_1fc[(int)pppppppcVar29] * 3 + 2];\n                            iVar37 = (*(code *)(iVar18 + 0x5ea8))(&ppppppcStack_204,ppppcVar40);\n                            if (iVar37 == 0) {\n                              pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppcVar40 * 3)\n                              ;\n                              pppppppcVar29 =\n                                   (code *******)\n                                   (*(code *)(iVar43 + 0x7f1c))(&ppppppcStack_204,pppppppcVar38);\n                              if (pppppppcVar29 != (code *******)0x0) goto LAB_00056cb8;\n                            }\n                          }\n                        }\n                        else {\n                          do {\n                            ppppppcVar32 = *pppppppcVar34 + *piVar5 * 2;\n                            if ((*(char *)(ppppppcVar32 + 1) == '\t') &&\n                               ((code ******)*ppppppcVar32 == *pppppppcVar31)) goto LAB_00056b8c;\n                            iVar37 = iVar37 + 1;\n                            piVar5 = piVar5 + 1;\n                          } while (iStack_200 != iVar37);\n                        }\n                      }\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1);\n                    } while ((int)pppppppcVar29 < iStack_200);\n                  }\n                  pppppppcVar31 = &ppppppcStack_204;\n                  pppppppcVar38 = pppppppcVar34;\n                  ppppppcVar32 = (code ******)\n                                 FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,0);\n                  pppppppcVar34[9] = ppppppcVar32;\n                  pppppppcVar29 = pppppppcStack_208;\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    if (((uint)ppppppcVar32[0xd] & 0x1000000) == 0) {\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar34[10] = ppppppcVar32;\n                    }\n                    else {\n                      pppppppcVar31 = &ppppppcStack_204;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,1);\n                      pppppppcVar34[10] = ppppppcVar32;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,2);\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar38 = pppppppcVar34;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,6);\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar29 = pppppppcStack_208;\n                      if (((pppppppcVar34[10] == (code ******)0x0) ||\n                          (pppppppcVar34[0xb] == (code ******)0x0)) ||\n                         (ppppppcVar32 == (code ******)0x0)) goto LAB_00056cb8;\n                    }\n                    (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                    pppppppcVar29 = pppppppcVar33;\n                  }\n                }\nLAB_00056cb8:\n                pppppppcStack_20c = pppppppcVar29;\n                FUN_0004b234(pppppppcVar3);\n                FUN_0004b2bc(&pppppppcStack_1f8);\n                pppppppcVar29 = pppppppcStack_20c;\n                if (pppppppcStack_20c != (code *******)0x0) {\n                  if (*(int *)(puVar41 + 0x23c78) != 0) {\n                    (**(code **)(puVar41 + 0x23df0))(pppppppcVar34 + 0x22);\n                  }\n                  FUN_0004b338(pppppppcVar34);\n                  *pppppppcVar3 = (code ******)0x0;\n                  pppppppcVar3[1] = (code ******)0x0;\n                  pppppppcVar29 = pppppppcStack_20c;\n                }\n                goto LAB_00056cfc;\n              }\n            }\n          }\n        }" if (parenthesized_expression "(ppppppcVar35 == (code ******)0x0)" ( (binary_expression "ppppppcVar35 == (code ******)0x0" identifier == (cast_expression "(code ******)0x0" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (compound_statement "{\n          pppppppcVar30 = (code *******)0xc;\n        }" { (expression_statement "pppppppcVar30 = (code *******)0xc;" (assignment_expression "pppppppcVar30 = (code *******)0xc" identifier = (cast_expression "(code *******)0xc" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) }) (else_clause "else if (ppppppcVar39 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else if (ppppppcVar20 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else {\n          ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23cf0))((int)pppppppcVar3[6] << 2);\n          pppppppcVar29[0x21] = ppppppcVar32;\n          if (ppppppcVar32 != (code ******)0x0) {\n            ppppppcVar32 = (code ******)0x0;\n            if (pppppppcVar3[6] != (code ******)0x0) {\n              do {\n                pppppppcVar29[0x21][(int)ppppppcVar32] = (code *****)ppppppcVar32;\n                ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n              } while (ppppppcVar32 < pppppppcVar3[6]);\n            }\n            FUN_00046050(pppppppcVar29[0xd],*(int *)(puVar41 + 0x23abc) + 0x60e8,pppppppcVar29);\n            ppppppcVar32 = pppppppcVar3[6];\n            if (ppppppcVar32 == (code ******)0x0) {\nLAB_00056704:\n              (**(code **)(puVar41 + 0x23dc0))(pppppppcVar29[0x21]);\n              pppppppcVar29[0x21] = (code ******)0x0;\n            }\n            else {\n              ppppppcVar35 = pppppppcVar29[0x21];\n              if (*ppppppcVar35 == (code *****)0x0) {\n                ppppppcVar39 = (code ******)0x0;\n                do {\n                  ppppppcVar35 = ppppppcVar35 + 1;\n                  ppppppcVar39 = (code ******)((int)ppppppcVar39 + 1);\n                  if (ppppppcVar32 == ppppppcVar39) {\n                    if (ppppppcVar32 == ppppppcVar39) goto LAB_00056704;\n                    break;\n                  }\n                } while ((code ******)*ppppppcVar35 == ppppppcVar39);\n              }\n            }\n          }\n          pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23abc) + 0x73a4);\n          pppppppcVar30 = (code *******)FUN_00045fb4(pppppppcVar29[0xd],pppppppcVar38,pppppppcVar3);\n          pppppppcVar31 = pppppppcVar29;\n          if (pppppppcVar30 == (code *******)0x0) {\n            pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23b40) + -0x5be4);\n            pppppppcVar30 = (code *******)FUN_00045fb4(pppppppcVar29[0xd],pppppppcVar38);\n            if (pppppppcVar30 == (code *******)0x0) {\n              FUN_00046050(pppppppcVar29[0xd],*(int *)(puVar41 + 0x23abc) + 0x61b4);\n              pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23b40) + -0x4614);\n              pppppppcVar30 = (code *******)FUN_00046050(pppppppcVar29[0xd],pppppppcVar38);\n              if (pppppppcVar30 == (code *******)0x0) {\n                uVar7 = 0;\n                iVar18 = *(int *)(puVar41 + 0x23b40);\n                pppppppcVar33 = (code *******)0x0;\nLAB_00056744:\n                if ((code *******)pppppppcVar29[2] != pppppppcVar33) {\nLAB_00056750:\n                  if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                    pppppppcVar38 = pppppppcVar29;\n                    pppppppcVar31 = pppppppcVar33;\n                    pppppppcVar30 =\n                         (code *******)\n                         (*(code *)(iVar18 + -0x561c))\n                                   (&ppppppcStack_204,pppppppcVar29,pppppppcVar33,1);\n                    if (pppppppcVar30 != (code *******)0x0) goto LAB_00056168;\n                    if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                      (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                      uVar7 = 1;\n                    }\n                  }\n                  pppppppcVar33 = (code *******)((int)pppppppcVar33 + 1);\n                  goto LAB_00056744;\n                }\n                if (uVar7 != 0) {\n                  uVar7 = 0;\n                  pppppppcVar33 = (code *******)0x0;\n                  goto LAB_00056750;\n                }\n                if (((((uint)pppppppcVar3[7] & 0x8000000) == 0) &&\n                    (pppppppcVar3[6] != (code ******)0x0)) &&\n                   ((char)*(code *)(pppppppcVar29 + 0x16) < '\0')) {\n                  ppppppcVar32 = pppppppcVar29[2];\n                }\n                else {\n                  if (pppppppcVar29[0x13] == (code ******)0x0) goto LAB_000568f0;\n                  ppppppcVar32 = pppppppcVar29[2];\n                }\n                ppppppcVar35 = (code ******)\n                               (**(code **)(puVar41 + 0x23cf0))((int)ppppppcVar32 * 0xc);\n                pppppppcVar29[7] = ppppppcVar35;\n                if (ppppppcVar35 == (code ******)0x0) {\n                  pppppppcVar30 = (code *******)0xc;\n                  goto LAB_00056168;\n                }\n                if (ppppppcVar32 != (code ******)0x0) {\n                  iVar18 = 0;\n                  ppppppcVar32 = (code ******)0x0;\n                  do {\n                    puVar21 = (undefined1 *)((int)pppppppcVar29[7] + iVar18);\n                    *puVar21 = 0;\n                    puVar21[1] = 0;\n                    puVar21[2] = 0;\n                    puVar21[3] = 0;\n                    puVar21[4] = 0;\n                    puVar21[5] = 0;\n                    puVar21[6] = 0;\n                    puVar21[7] = 0;\n                    puVar21[8] = 0;\n                    puVar21[9] = 0;\n                    puVar21[10] = 0;\n                    puVar21[0xb] = 0;\n                    ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                    iVar18 = iVar18 + 0xc;\n                  } while (ppppppcVar32 < pppppppcVar29[2]);\n                  iVar18 = *(int *)(puVar41 + 0x23abc);\n                  if (pppppppcVar29[2] != (code ******)0x0) {\n                    iVar43 = 0;\n                    pppppppcStack_218 = (code *******)0x0;\n                    do {\n                      piVar5 = *(int **)((int)pppppppcVar29[6] + iVar43 + 8);\n                      if (0 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4)) {\n                        iVar37 = 0;\n                        do {\n                          pppppppcVar38 = pppppppcStack_218;\n                          iVar22 = (*(code *)(iVar18 + 0x6e30))\n                                             (pppppppcVar29[7] + *piVar5 * 3,pppppppcStack_218);\n                          pppppppcVar30 = (code *******)0xc;\n                          if (iVar22 == 0) goto LAB_00056168;\n                          iVar37 = iVar37 + 1;\n                          piVar5 = piVar5 + 1;\n                        } while (iVar37 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4));\n                      }\n                      pppppppcStack_218 = (code *******)((int)pppppppcStack_218 + 1);\n                      iVar43 = iVar43 + 0xc;\n                    } while (pppppppcStack_218 < pppppppcVar29[2]);\n                  }\n                }\nLAB_000568f0:\n                pppppppcStack_20c = (code *******)0x0;\n                if (((((uint)pppppppcVar34[0x16] & 0x20000000) != 0) && (uVar16 == 0)) &&\n                   (pppppppcVar3[5] == (code ******)0x0)) {\n                  if (pppppppcVar34[2] != (code ******)0x0) {\n                    pppppppcVar31 = (code *******)(*(int *)(puVar41 + 0x23754) + 0x6e4c);\n                    if (*(byte *)(*pppppppcVar34 + 1) < 0xd) {\n                    /* WARNING: Could not recover jumptable at 0x00056a60. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      pppppppcVar29 =\n                           (code *******)\n                           (*(code *)(puVar41 +\n                                     (int)(pppppppcVar31[*(byte *)(*pppppppcVar34 + 1)] + 0xadc7)))\n                                     ();\n                      return pppppppcVar29;\n                    }\n                    (**(code **)(puVar41 + 0x23bc4))(0);\n                    if (uVar7 != 0) {\n                      pppppppcVar31 = (code *******)&DAT_00000007;\n                      ppppppcVar32 = (code ******)0x0;\n                      do {\n                        ppppppcVar35 = *pppppppcVar34 + (int)ppppppcVar32 * 2;\n                        if (*(char *)(ppppppcVar35 + 1) == '\x01') {\n                          if (*(char *)ppppppcVar35 < '\0') {\n                            ppppppcVar35[1] = (code *****)((uint)ppppppcVar35[1] & 0xfffffbff);\n                          }\n                        }\n                        else if (*(char *)(ppppppcVar35 + 1) == '\x05') {\n                          *(char *)(ppppppcVar35 + 1) = '\a';\n                        }\n                        ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                      } while (ppppppcVar32 < pppppppcVar34[2]);\n                    }\n                  }\n                  pppppppcVar34[0x17] = (code ******)0x1;\n                  if (0 < (int)pppppppcVar34[0x13]) {\n                    uVar7 = 1;\n                  }\n                  *(byte *)(pppppppcVar34 + 0x16) =\n                       (byte)*(code *)(pppppppcVar34 + 0x16) & 0x9f | (byte)((uVar7 & 1) << 6);\n                }\n                ppppppcVar32 = (code ******)pppppppcVar34[0xd][3][7];\n                pppppppcVar34[0x12] = ppppppcVar32;\n                pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppppcVar32 * 3);\n                pppppppcVar33 = (code *******)FUN_000483e8(&ppppppcStack_204,pppppppcVar38);\n                pppppppcVar29 = pppppppcVar33;\n                pppppppcStack_208 = pppppppcVar33;\n                if (pppppppcVar33 == (code *******)0x0) {\n                  if ((0 < (int)pppppppcVar34[0x13]) && (0 < iStack_200)) {\n                    iVar18 = *(int *)(puVar41 + 0x23abc);\n                    iVar43 = *(int *)(puVar41 + 0x23abc);\n                    pppppppcVar29 = (code *******)0x0;\n                    do {\n                      pppppppcVar31 =\n                           (code *******)(*pppppppcVar34 + piStack_1fc[(int)pppppppcVar29] * 2);\n                      if (*(code *)(pppppppcVar31 + 1) == (code)0x4) {\n                        iVar37 = 0;\n                        piVar5 = piStack_1fc;\n                        if (iStack_200 < 1) {\nLAB_00056b8c:\n                          if (iStack_200 != iVar37) {\n                            ppppcVar40 = *pppppppcVar34[5][piStack_1fc[(int)pppppppcVar29] * 3 + 2];\n                            iVar37 = (*(code *)(iVar18 + 0x5ea8))(&ppppppcStack_204,ppppcVar40);\n                            if (iVar37 == 0) {\n                              pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppcVar40 * 3)\n                              ;\n                              pppppppcVar29 =\n                                   (code *******)\n                                   (*(code *)(iVar43 + 0x7f1c))(&ppppppcStack_204,pppppppcVar38);\n                              if (pppppppcVar29 != (code *******)0x0) goto LAB_00056cb8;\n                            }\n                          }\n                        }\n                        else {\n                          do {\n                            ppppppcVar32 = *pppppppcVar34 + *piVar5 * 2;\n                            if ((*(char *)(ppppppcVar32 + 1) == '\t') &&\n                               ((code ******)*ppppppcVar32 == *pppppppcVar31)) goto LAB_00056b8c;\n                            iVar37 = iVar37 + 1;\n                            piVar5 = piVar5 + 1;\n                          } while (iStack_200 != iVar37);\n                        }\n                      }\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1);\n                    } while ((int)pppppppcVar29 < iStack_200);\n                  }\n                  pppppppcVar31 = &ppppppcStack_204;\n                  pppppppcVar38 = pppppppcVar34;\n                  ppppppcVar32 = (code ******)\n                                 FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,0);\n                  pppppppcVar34[9] = ppppppcVar32;\n                  pppppppcVar29 = pppppppcStack_208;\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    if (((uint)ppppppcVar32[0xd] & 0x1000000) == 0) {\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar34[10] = ppppppcVar32;\n                    }\n                    else {\n                      pppppppcVar31 = &ppppppcStack_204;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,1);\n                      pppppppcVar34[10] = ppppppcVar32;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,2);\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar38 = pppppppcVar34;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,6);\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar29 = pppppppcStack_208;\n                      if (((pppppppcVar34[10] == (code ******)0x0) ||\n                          (pppppppcVar34[0xb] == (code ******)0x0)) ||\n                         (ppppppcVar32 == (code ******)0x0)) goto LAB_00056cb8;\n                    }\n                    (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                    pppppppcVar29 = pppppppcVar33;\n                  }\n                }\nLAB_00056cb8:\n                pppppppcStack_20c = pppppppcVar29;\n                FUN_0004b234(pppppppcVar3);\n                FUN_0004b2bc(&pppppppcStack_1f8);\n                pppppppcVar29 = pppppppcStack_20c;\n                if (pppppppcStack_20c != (code *******)0x0) {\n                  if (*(int *)(puVar41 + 0x23c78) != 0) {\n                    (**(code **)(puVar41 + 0x23df0))(pppppppcVar34 + 0x22);\n                  }\n                  FUN_0004b338(pppppppcVar34);\n                  *pppppppcVar3 = (code ******)0x0;\n                  pppppppcVar3[1] = (code ******)0x0;\n                  pppppppcVar29 = pppppppcStack_20c;\n                }\n                goto LAB_00056cfc;\n              }\n            }\n          }\n        }" else (if_statement "if (ppppppcVar39 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else if (ppppppcVar20 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else {\n          ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23cf0))((int)pppppppcVar3[6] << 2);\n          pppppppcVar29[0x21] = ppppppcVar32;\n          if (ppppppcVar32 != (code ******)0x0) {\n            ppppppcVar32 = (code ******)0x0;\n            if (pppppppcVar3[6] != (code ******)0x0) {\n              do {\n                pppppppcVar29[0x21][(int)ppppppcVar32] = (code *****)ppppppcVar32;\n                ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n              } while (ppppppcVar32 < pppppppcVar3[6]);\n            }\n            FUN_00046050(pppppppcVar29[0xd],*(int *)(puVar41 + 0x23abc) + 0x60e8,pppppppcVar29);\n            ppppppcVar32 = pppppppcVar3[6];\n            if (ppppppcVar32 == (code ******)0x0) {\nLAB_00056704:\n              (**(code **)(puVar41 + 0x23dc0))(pppppppcVar29[0x21]);\n              pppppppcVar29[0x21] = (code ******)0x0;\n            }\n            else {\n              ppppppcVar35 = pppppppcVar29[0x21];\n              if (*ppppppcVar35 == (code *****)0x0) {\n                ppppppcVar39 = (code ******)0x0;\n                do {\n                  ppppppcVar35 = ppppppcVar35 + 1;\n                  ppppppcVar39 = (code ******)((int)ppppppcVar39 + 1);\n                  if (ppppppcVar32 == ppppppcVar39) {\n                    if (ppppppcVar32 == ppppppcVar39) goto LAB_00056704;\n                    break;\n                  }\n                } while ((code ******)*ppppppcVar35 == ppppppcVar39);\n              }\n            }\n          }\n          pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23abc) + 0x73a4);\n          pppppppcVar30 = (code *******)FUN_00045fb4(pppppppcVar29[0xd],pppppppcVar38,pppppppcVar3);\n          pppppppcVar31 = pppppppcVar29;\n          if (pppppppcVar30 == (code *******)0x0) {\n            pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23b40) + -0x5be4);\n            pppppppcVar30 = (code *******)FUN_00045fb4(pppppppcVar29[0xd],pppppppcVar38);\n            if (pppppppcVar30 == (code *******)0x0) {\n              FUN_00046050(pppppppcVar29[0xd],*(int *)(puVar41 + 0x23abc) + 0x61b4);\n              pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23b40) + -0x4614);\n              pppppppcVar30 = (code *******)FUN_00046050(pppppppcVar29[0xd],pppppppcVar38);\n              if (pppppppcVar30 == (code *******)0x0) {\n                uVar7 = 0;\n                iVar18 = *(int *)(puVar41 + 0x23b40);\n                pppppppcVar33 = (code *******)0x0;\nLAB_00056744:\n                if ((code *******)pppppppcVar29[2] != pppppppcVar33) {\nLAB_00056750:\n                  if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                    pppppppcVar38 = pppppppcVar29;\n                    pppppppcVar31 = pppppppcVar33;\n                    pppppppcVar30 =\n                         (code *******)\n                         (*(code *)(iVar18 + -0x561c))\n                                   (&ppppppcStack_204,pppppppcVar29,pppppppcVar33,1);\n                    if (pppppppcVar30 != (code *******)0x0) goto LAB_00056168;\n                    if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                      (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                      uVar7 = 1;\n                    }\n                  }\n                  pppppppcVar33 = (code *******)((int)pppppppcVar33 + 1);\n                  goto LAB_00056744;\n                }\n                if (uVar7 != 0) {\n                  uVar7 = 0;\n                  pppppppcVar33 = (code *******)0x0;\n                  goto LAB_00056750;\n                }\n                if (((((uint)pppppppcVar3[7] & 0x8000000) == 0) &&\n                    (pppppppcVar3[6] != (code ******)0x0)) &&\n                   ((char)*(code *)(pppppppcVar29 + 0x16) < '\0')) {\n                  ppppppcVar32 = pppppppcVar29[2];\n                }\n                else {\n                  if (pppppppcVar29[0x13] == (code ******)0x0) goto LAB_000568f0;\n                  ppppppcVar32 = pppppppcVar29[2];\n                }\n                ppppppcVar35 = (code ******)\n                               (**(code **)(puVar41 + 0x23cf0))((int)ppppppcVar32 * 0xc);\n                pppppppcVar29[7] = ppppppcVar35;\n                if (ppppppcVar35 == (code ******)0x0) {\n                  pppppppcVar30 = (code *******)0xc;\n                  goto LAB_00056168;\n                }\n                if (ppppppcVar32 != (code ******)0x0) {\n                  iVar18 = 0;\n                  ppppppcVar32 = (code ******)0x0;\n                  do {\n                    puVar21 = (undefined1 *)((int)pppppppcVar29[7] + iVar18);\n                    *puVar21 = 0;\n                    puVar21[1] = 0;\n                    puVar21[2] = 0;\n                    puVar21[3] = 0;\n                    puVar21[4] = 0;\n                    puVar21[5] = 0;\n                    puVar21[6] = 0;\n                    puVar21[7] = 0;\n                    puVar21[8] = 0;\n                    puVar21[9] = 0;\n                    puVar21[10] = 0;\n                    puVar21[0xb] = 0;\n                    ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                    iVar18 = iVar18 + 0xc;\n                  } while (ppppppcVar32 < pppppppcVar29[2]);\n                  iVar18 = *(int *)(puVar41 + 0x23abc);\n                  if (pppppppcVar29[2] != (code ******)0x0) {\n                    iVar43 = 0;\n                    pppppppcStack_218 = (code *******)0x0;\n                    do {\n                      piVar5 = *(int **)((int)pppppppcVar29[6] + iVar43 + 8);\n                      if (0 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4)) {\n                        iVar37 = 0;\n                        do {\n                          pppppppcVar38 = pppppppcStack_218;\n                          iVar22 = (*(code *)(iVar18 + 0x6e30))\n                                             (pppppppcVar29[7] + *piVar5 * 3,pppppppcStack_218);\n                          pppppppcVar30 = (code *******)0xc;\n                          if (iVar22 == 0) goto LAB_00056168;\n                          iVar37 = iVar37 + 1;\n                          piVar5 = piVar5 + 1;\n                        } while (iVar37 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4));\n                      }\n                      pppppppcStack_218 = (code *******)((int)pppppppcStack_218 + 1);\n                      iVar43 = iVar43 + 0xc;\n                    } while (pppppppcStack_218 < pppppppcVar29[2]);\n                  }\n                }\nLAB_000568f0:\n                pppppppcStack_20c = (code *******)0x0;\n                if (((((uint)pppppppcVar34[0x16] & 0x20000000) != 0) && (uVar16 == 0)) &&\n                   (pppppppcVar3[5] == (code ******)0x0)) {\n                  if (pppppppcVar34[2] != (code ******)0x0) {\n                    pppppppcVar31 = (code *******)(*(int *)(puVar41 + 0x23754) + 0x6e4c);\n                    if (*(byte *)(*pppppppcVar34 + 1) < 0xd) {\n                    /* WARNING: Could not recover jumptable at 0x00056a60. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      pppppppcVar29 =\n                           (code *******)\n                           (*(code *)(puVar41 +\n                                     (int)(pppppppcVar31[*(byte *)(*pppppppcVar34 + 1)] + 0xadc7)))\n                                     ();\n                      return pppppppcVar29;\n                    }\n                    (**(code **)(puVar41 + 0x23bc4))(0);\n                    if (uVar7 != 0) {\n                      pppppppcVar31 = (code *******)&DAT_00000007;\n                      ppppppcVar32 = (code ******)0x0;\n                      do {\n                        ppppppcVar35 = *pppppppcVar34 + (int)ppppppcVar32 * 2;\n                        if (*(char *)(ppppppcVar35 + 1) == '\x01') {\n                          if (*(char *)ppppppcVar35 < '\0') {\n                            ppppppcVar35[1] = (code *****)((uint)ppppppcVar35[1] & 0xfffffbff);\n                          }\n                        }\n                        else if (*(char *)(ppppppcVar35 + 1) == '\x05') {\n                          *(char *)(ppppppcVar35 + 1) = '\a';\n                        }\n                        ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                      } while (ppppppcVar32 < pppppppcVar34[2]);\n                    }\n                  }\n                  pppppppcVar34[0x17] = (code ******)0x1;\n                  if (0 < (int)pppppppcVar34[0x13]) {\n                    uVar7 = 1;\n                  }\n                  *(byte *)(pppppppcVar34 + 0x16) =\n                       (byte)*(code *)(pppppppcVar34 + 0x16) & 0x9f | (byte)((uVar7 & 1) << 6);\n                }\n                ppppppcVar32 = (code ******)pppppppcVar34[0xd][3][7];\n                pppppppcVar34[0x12] = ppppppcVar32;\n                pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppppcVar32 * 3);\n                pppppppcVar33 = (code *******)FUN_000483e8(&ppppppcStack_204,pppppppcVar38);\n                pppppppcVar29 = pppppppcVar33;\n                pppppppcStack_208 = pppppppcVar33;\n                if (pppppppcVar33 == (code *******)0x0) {\n                  if ((0 < (int)pppppppcVar34[0x13]) && (0 < iStack_200)) {\n                    iVar18 = *(int *)(puVar41 + 0x23abc);\n                    iVar43 = *(int *)(puVar41 + 0x23abc);\n                    pppppppcVar29 = (code *******)0x0;\n                    do {\n                      pppppppcVar31 =\n                           (code *******)(*pppppppcVar34 + piStack_1fc[(int)pppppppcVar29] * 2);\n                      if (*(code *)(pppppppcVar31 + 1) == (code)0x4) {\n                        iVar37 = 0;\n                        piVar5 = piStack_1fc;\n                        if (iStack_200 < 1) {\nLAB_00056b8c:\n                          if (iStack_200 != iVar37) {\n                            ppppcVar40 = *pppppppcVar34[5][piStack_1fc[(int)pppppppcVar29] * 3 + 2];\n                            iVar37 = (*(code *)(iVar18 + 0x5ea8))(&ppppppcStack_204,ppppcVar40);\n                            if (iVar37 == 0) {\n                              pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppcVar40 * 3)\n                              ;\n                              pppppppcVar29 =\n                                   (code *******)\n                                   (*(code *)(iVar43 + 0x7f1c))(&ppppppcStack_204,pppppppcVar38);\n                              if (pppppppcVar29 != (code *******)0x0) goto LAB_00056cb8;\n                            }\n                          }\n                        }\n                        else {\n                          do {\n                            ppppppcVar32 = *pppppppcVar34 + *piVar5 * 2;\n                            if ((*(char *)(ppppppcVar32 + 1) == '\t') &&\n                               ((code ******)*ppppppcVar32 == *pppppppcVar31)) goto LAB_00056b8c;\n                            iVar37 = iVar37 + 1;\n                            piVar5 = piVar5 + 1;\n                          } while (iStack_200 != iVar37);\n                        }\n                      }\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1);\n                    } while ((int)pppppppcVar29 < iStack_200);\n                  }\n                  pppppppcVar31 = &ppppppcStack_204;\n                  pppppppcVar38 = pppppppcVar34;\n                  ppppppcVar32 = (code ******)\n                                 FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,0);\n                  pppppppcVar34[9] = ppppppcVar32;\n                  pppppppcVar29 = pppppppcStack_208;\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    if (((uint)ppppppcVar32[0xd] & 0x1000000) == 0) {\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar34[10] = ppppppcVar32;\n                    }\n                    else {\n                      pppppppcVar31 = &ppppppcStack_204;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,1);\n                      pppppppcVar34[10] = ppppppcVar32;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,2);\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar38 = pppppppcVar34;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,6);\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar29 = pppppppcStack_208;\n                      if (((pppppppcVar34[10] == (code ******)0x0) ||\n                          (pppppppcVar34[0xb] == (code ******)0x0)) ||\n                         (ppppppcVar32 == (code ******)0x0)) goto LAB_00056cb8;\n                    }\n                    (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                    pppppppcVar29 = pppppppcVar33;\n                  }\n                }\nLAB_00056cb8:\n                pppppppcStack_20c = pppppppcVar29;\n                FUN_0004b234(pppppppcVar3);\n                FUN_0004b2bc(&pppppppcStack_1f8);\n                pppppppcVar29 = pppppppcStack_20c;\n                if (pppppppcStack_20c != (code *******)0x0) {\n                  if (*(int *)(puVar41 + 0x23c78) != 0) {\n                    (**(code **)(puVar41 + 0x23df0))(pppppppcVar34 + 0x22);\n                  }\n                  FUN_0004b338(pppppppcVar34);\n                  *pppppppcVar3 = (code ******)0x0;\n                  pppppppcVar3[1] = (code ******)0x0;\n                  pppppppcVar29 = pppppppcStack_20c;\n                }\n                goto LAB_00056cfc;\n              }\n            }\n          }\n        }" if (parenthesized_expression "(ppppppcVar39 == (code ******)0x0)" ( (binary_expression "ppppppcVar39 == (code ******)0x0" identifier == (cast_expression "(code ******)0x0" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (compound_statement "{\n          pppppppcVar30 = (code *******)0xc;\n        }" { (expression_statement "pppppppcVar30 = (code *******)0xc;" (assignment_expression "pppppppcVar30 = (code *******)0xc" identifier = (cast_expression "(code *******)0xc" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) }) (else_clause "else if (ppppppcVar20 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else {\n          ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23cf0))((int)pppppppcVar3[6] << 2);\n          pppppppcVar29[0x21] = ppppppcVar32;\n          if (ppppppcVar32 != (code ******)0x0) {\n            ppppppcVar32 = (code ******)0x0;\n            if (pppppppcVar3[6] != (code ******)0x0) {\n              do {\n                pppppppcVar29[0x21][(int)ppppppcVar32] = (code *****)ppppppcVar32;\n                ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n              } while (ppppppcVar32 < pppppppcVar3[6]);\n            }\n            FUN_00046050(pppppppcVar29[0xd],*(int *)(puVar41 + 0x23abc) + 0x60e8,pppppppcVar29);\n            ppppppcVar32 = pppppppcVar3[6];\n            if (ppppppcVar32 == (code ******)0x0) {\nLAB_00056704:\n              (**(code **)(puVar41 + 0x23dc0))(pppppppcVar29[0x21]);\n              pppppppcVar29[0x21] = (code ******)0x0;\n            }\n            else {\n              ppppppcVar35 = pppppppcVar29[0x21];\n              if (*ppppppcVar35 == (code *****)0x0) {\n                ppppppcVar39 = (code ******)0x0;\n                do {\n                  ppppppcVar35 = ppppppcVar35 + 1;\n                  ppppppcVar39 = (code ******)((int)ppppppcVar39 + 1);\n                  if (ppppppcVar32 == ppppppcVar39) {\n                    if (ppppppcVar32 == ppppppcVar39) goto LAB_00056704;\n                    break;\n                  }\n                } while ((code ******)*ppppppcVar35 == ppppppcVar39);\n              }\n            }\n          }\n          pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23abc) + 0x73a4);\n          pppppppcVar30 = (code *******)FUN_00045fb4(pppppppcVar29[0xd],pppppppcVar38,pppppppcVar3);\n          pppppppcVar31 = pppppppcVar29;\n          if (pppppppcVar30 == (code *******)0x0) {\n            pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23b40) + -0x5be4);\n            pppppppcVar30 = (code *******)FUN_00045fb4(pppppppcVar29[0xd],pppppppcVar38);\n            if (pppppppcVar30 == (code *******)0x0) {\n              FUN_00046050(pppppppcVar29[0xd],*(int *)(puVar41 + 0x23abc) + 0x61b4);\n              pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23b40) + -0x4614);\n              pppppppcVar30 = (code *******)FUN_00046050(pppppppcVar29[0xd],pppppppcVar38);\n              if (pppppppcVar30 == (code *******)0x0) {\n                uVar7 = 0;\n                iVar18 = *(int *)(puVar41 + 0x23b40);\n                pppppppcVar33 = (code *******)0x0;\nLAB_00056744:\n                if ((code *******)pppppppcVar29[2] != pppppppcVar33) {\nLAB_00056750:\n                  if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                    pppppppcVar38 = pppppppcVar29;\n                    pppppppcVar31 = pppppppcVar33;\n                    pppppppcVar30 =\n                         (code *******)\n                         (*(code *)(iVar18 + -0x561c))\n                                   (&ppppppcStack_204,pppppppcVar29,pppppppcVar33,1);\n                    if (pppppppcVar30 != (code *******)0x0) goto LAB_00056168;\n                    if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                      (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                      uVar7 = 1;\n                    }\n                  }\n                  pppppppcVar33 = (code *******)((int)pppppppcVar33 + 1);\n                  goto LAB_00056744;\n                }\n                if (uVar7 != 0) {\n                  uVar7 = 0;\n                  pppppppcVar33 = (code *******)0x0;\n                  goto LAB_00056750;\n                }\n                if (((((uint)pppppppcVar3[7] & 0x8000000) == 0) &&\n                    (pppppppcVar3[6] != (code ******)0x0)) &&\n                   ((char)*(code *)(pppppppcVar29 + 0x16) < '\0')) {\n                  ppppppcVar32 = pppppppcVar29[2];\n                }\n                else {\n                  if (pppppppcVar29[0x13] == (code ******)0x0) goto LAB_000568f0;\n                  ppppppcVar32 = pppppppcVar29[2];\n                }\n                ppppppcVar35 = (code ******)\n                               (**(code **)(puVar41 + 0x23cf0))((int)ppppppcVar32 * 0xc);\n                pppppppcVar29[7] = ppppppcVar35;\n                if (ppppppcVar35 == (code ******)0x0) {\n                  pppppppcVar30 = (code *******)0xc;\n                  goto LAB_00056168;\n                }\n                if (ppppppcVar32 != (code ******)0x0) {\n                  iVar18 = 0;\n                  ppppppcVar32 = (code ******)0x0;\n                  do {\n                    puVar21 = (undefined1 *)((int)pppppppcVar29[7] + iVar18);\n                    *puVar21 = 0;\n                    puVar21[1] = 0;\n                    puVar21[2] = 0;\n                    puVar21[3] = 0;\n                    puVar21[4] = 0;\n                    puVar21[5] = 0;\n                    puVar21[6] = 0;\n                    puVar21[7] = 0;\n                    puVar21[8] = 0;\n                    puVar21[9] = 0;\n                    puVar21[10] = 0;\n                    puVar21[0xb] = 0;\n                    ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                    iVar18 = iVar18 + 0xc;\n                  } while (ppppppcVar32 < pppppppcVar29[2]);\n                  iVar18 = *(int *)(puVar41 + 0x23abc);\n                  if (pppppppcVar29[2] != (code ******)0x0) {\n                    iVar43 = 0;\n                    pppppppcStack_218 = (code *******)0x0;\n                    do {\n                      piVar5 = *(int **)((int)pppppppcVar29[6] + iVar43 + 8);\n                      if (0 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4)) {\n                        iVar37 = 0;\n                        do {\n                          pppppppcVar38 = pppppppcStack_218;\n                          iVar22 = (*(code *)(iVar18 + 0x6e30))\n                                             (pppppppcVar29[7] + *piVar5 * 3,pppppppcStack_218);\n                          pppppppcVar30 = (code *******)0xc;\n                          if (iVar22 == 0) goto LAB_00056168;\n                          iVar37 = iVar37 + 1;\n                          piVar5 = piVar5 + 1;\n                        } while (iVar37 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4));\n                      }\n                      pppppppcStack_218 = (code *******)((int)pppppppcStack_218 + 1);\n                      iVar43 = iVar43 + 0xc;\n                    } while (pppppppcStack_218 < pppppppcVar29[2]);\n                  }\n                }\nLAB_000568f0:\n                pppppppcStack_20c = (code *******)0x0;\n                if (((((uint)pppppppcVar34[0x16] & 0x20000000) != 0) && (uVar16 == 0)) &&\n                   (pppppppcVar3[5] == (code ******)0x0)) {\n                  if (pppppppcVar34[2] != (code ******)0x0) {\n                    pppppppcVar31 = (code *******)(*(int *)(puVar41 + 0x23754) + 0x6e4c);\n                    if (*(byte *)(*pppppppcVar34 + 1) < 0xd) {\n                    /* WARNING: Could not recover jumptable at 0x00056a60. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      pppppppcVar29 =\n                           (code *******)\n                           (*(code *)(puVar41 +\n                                     (int)(pppppppcVar31[*(byte *)(*pppppppcVar34 + 1)] + 0xadc7)))\n                                     ();\n                      return pppppppcVar29;\n                    }\n                    (**(code **)(puVar41 + 0x23bc4))(0);\n                    if (uVar7 != 0) {\n                      pppppppcVar31 = (code *******)&DAT_00000007;\n                      ppppppcVar32 = (code ******)0x0;\n                      do {\n                        ppppppcVar35 = *pppppppcVar34 + (int)ppppppcVar32 * 2;\n                        if (*(char *)(ppppppcVar35 + 1) == '\x01') {\n                          if (*(char *)ppppppcVar35 < '\0') {\n                            ppppppcVar35[1] = (code *****)((uint)ppppppcVar35[1] & 0xfffffbff);\n                          }\n                        }\n                        else if (*(char *)(ppppppcVar35 + 1) == '\x05') {\n                          *(char *)(ppppppcVar35 + 1) = '\a';\n                        }\n                        ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                      } while (ppppppcVar32 < pppppppcVar34[2]);\n                    }\n                  }\n                  pppppppcVar34[0x17] = (code ******)0x1;\n                  if (0 < (int)pppppppcVar34[0x13]) {\n                    uVar7 = 1;\n                  }\n                  *(byte *)(pppppppcVar34 + 0x16) =\n                       (byte)*(code *)(pppppppcVar34 + 0x16) & 0x9f | (byte)((uVar7 & 1) << 6);\n                }\n                ppppppcVar32 = (code ******)pppppppcVar34[0xd][3][7];\n                pppppppcVar34[0x12] = ppppppcVar32;\n                pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppppcVar32 * 3);\n                pppppppcVar33 = (code *******)FUN_000483e8(&ppppppcStack_204,pppppppcVar38);\n                pppppppcVar29 = pppppppcVar33;\n                pppppppcStack_208 = pppppppcVar33;\n                if (pppppppcVar33 == (code *******)0x0) {\n                  if ((0 < (int)pppppppcVar34[0x13]) && (0 < iStack_200)) {\n                    iVar18 = *(int *)(puVar41 + 0x23abc);\n                    iVar43 = *(int *)(puVar41 + 0x23abc);\n                    pppppppcVar29 = (code *******)0x0;\n                    do {\n                      pppppppcVar31 =\n                           (code *******)(*pppppppcVar34 + piStack_1fc[(int)pppppppcVar29] * 2);\n                      if (*(code *)(pppppppcVar31 + 1) == (code)0x4) {\n                        iVar37 = 0;\n                        piVar5 = piStack_1fc;\n                        if (iStack_200 < 1) {\nLAB_00056b8c:\n                          if (iStack_200 != iVar37) {\n                            ppppcVar40 = *pppppppcVar34[5][piStack_1fc[(int)pppppppcVar29] * 3 + 2];\n                            iVar37 = (*(code *)(iVar18 + 0x5ea8))(&ppppppcStack_204,ppppcVar40);\n                            if (iVar37 == 0) {\n                              pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppcVar40 * 3)\n                              ;\n                              pppppppcVar29 =\n                                   (code *******)\n                                   (*(code *)(iVar43 + 0x7f1c))(&ppppppcStack_204,pppppppcVar38);\n                              if (pppppppcVar29 != (code *******)0x0) goto LAB_00056cb8;\n                            }\n                          }\n                        }\n                        else {\n                          do {\n                            ppppppcVar32 = *pppppppcVar34 + *piVar5 * 2;\n                            if ((*(char *)(ppppppcVar32 + 1) == '\t') &&\n                               ((code ******)*ppppppcVar32 == *pppppppcVar31)) goto LAB_00056b8c;\n                            iVar37 = iVar37 + 1;\n                            piVar5 = piVar5 + 1;\n                          } while (iStack_200 != iVar37);\n                        }\n                      }\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1);\n                    } while ((int)pppppppcVar29 < iStack_200);\n                  }\n                  pppppppcVar31 = &ppppppcStack_204;\n                  pppppppcVar38 = pppppppcVar34;\n                  ppppppcVar32 = (code ******)\n                                 FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,0);\n                  pppppppcVar34[9] = ppppppcVar32;\n                  pppppppcVar29 = pppppppcStack_208;\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    if (((uint)ppppppcVar32[0xd] & 0x1000000) == 0) {\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar34[10] = ppppppcVar32;\n                    }\n                    else {\n                      pppppppcVar31 = &ppppppcStack_204;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,1);\n                      pppppppcVar34[10] = ppppppcVar32;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,2);\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar38 = pppppppcVar34;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,6);\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar29 = pppppppcStack_208;\n                      if (((pppppppcVar34[10] == (code ******)0x0) ||\n                          (pppppppcVar34[0xb] == (code ******)0x0)) ||\n                         (ppppppcVar32 == (code ******)0x0)) goto LAB_00056cb8;\n                    }\n                    (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                    pppppppcVar29 = pppppppcVar33;\n                  }\n                }\nLAB_00056cb8:\n                pppppppcStack_20c = pppppppcVar29;\n                FUN_0004b234(pppppppcVar3);\n                FUN_0004b2bc(&pppppppcStack_1f8);\n                pppppppcVar29 = pppppppcStack_20c;\n                if (pppppppcStack_20c != (code *******)0x0) {\n                  if (*(int *)(puVar41 + 0x23c78) != 0) {\n                    (**(code **)(puVar41 + 0x23df0))(pppppppcVar34 + 0x22);\n                  }\n                  FUN_0004b338(pppppppcVar34);\n                  *pppppppcVar3 = (code ******)0x0;\n                  pppppppcVar3[1] = (code ******)0x0;\n                  pppppppcVar29 = pppppppcStack_20c;\n                }\n                goto LAB_00056cfc;\n              }\n            }\n          }\n        }" else (if_statement "if (ppppppcVar20 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else {\n          ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23cf0))((int)pppppppcVar3[6] << 2);\n          pppppppcVar29[0x21] = ppppppcVar32;\n          if (ppppppcVar32 != (code ******)0x0) {\n            ppppppcVar32 = (code ******)0x0;\n            if (pppppppcVar3[6] != (code ******)0x0) {\n              do {\n                pppppppcVar29[0x21][(int)ppppppcVar32] = (code *****)ppppppcVar32;\n                ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n              } while (ppppppcVar32 < pppppppcVar3[6]);\n            }\n            FUN_00046050(pppppppcVar29[0xd],*(int *)(puVar41 + 0x23abc) + 0x60e8,pppppppcVar29);\n            ppppppcVar32 = pppppppcVar3[6];\n            if (ppppppcVar32 == (code ******)0x0) {\nLAB_00056704:\n              (**(code **)(puVar41 + 0x23dc0))(pppppppcVar29[0x21]);\n              pppppppcVar29[0x21] = (code ******)0x0;\n            }\n            else {\n              ppppppcVar35 = pppppppcVar29[0x21];\n              if (*ppppppcVar35 == (code *****)0x0) {\n                ppppppcVar39 = (code ******)0x0;\n                do {\n                  ppppppcVar35 = ppppppcVar35 + 1;\n                  ppppppcVar39 = (code ******)((int)ppppppcVar39 + 1);\n                  if (ppppppcVar32 == ppppppcVar39) {\n                    if (ppppppcVar32 == ppppppcVar39) goto LAB_00056704;\n                    break;\n                  }\n                } while ((code ******)*ppppppcVar35 == ppppppcVar39);\n              }\n            }\n          }\n          pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23abc) + 0x73a4);\n          pppppppcVar30 = (code *******)FUN_00045fb4(pppppppcVar29[0xd],pppppppcVar38,pppppppcVar3);\n          pppppppcVar31 = pppppppcVar29;\n          if (pppppppcVar30 == (code *******)0x0) {\n            pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23b40) + -0x5be4);\n            pppppppcVar30 = (code *******)FUN_00045fb4(pppppppcVar29[0xd],pppppppcVar38);\n            if (pppppppcVar30 == (code *******)0x0) {\n              FUN_00046050(pppppppcVar29[0xd],*(int *)(puVar41 + 0x23abc) + 0x61b4);\n              pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23b40) + -0x4614);\n              pppppppcVar30 = (code *******)FUN_00046050(pppppppcVar29[0xd],pppppppcVar38);\n              if (pppppppcVar30 == (code *******)0x0) {\n                uVar7 = 0;\n                iVar18 = *(int *)(puVar41 + 0x23b40);\n                pppppppcVar33 = (code *******)0x0;\nLAB_00056744:\n                if ((code *******)pppppppcVar29[2] != pppppppcVar33) {\nLAB_00056750:\n                  if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                    pppppppcVar38 = pppppppcVar29;\n                    pppppppcVar31 = pppppppcVar33;\n                    pppppppcVar30 =\n                         (code *******)\n                         (*(code *)(iVar18 + -0x561c))\n                                   (&ppppppcStack_204,pppppppcVar29,pppppppcVar33,1);\n                    if (pppppppcVar30 != (code *******)0x0) goto LAB_00056168;\n                    if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                      (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                      uVar7 = 1;\n                    }\n                  }\n                  pppppppcVar33 = (code *******)((int)pppppppcVar33 + 1);\n                  goto LAB_00056744;\n                }\n                if (uVar7 != 0) {\n                  uVar7 = 0;\n                  pppppppcVar33 = (code *******)0x0;\n                  goto LAB_00056750;\n                }\n                if (((((uint)pppppppcVar3[7] & 0x8000000) == 0) &&\n                    (pppppppcVar3[6] != (code ******)0x0)) &&\n                   ((char)*(code *)(pppppppcVar29 + 0x16) < '\0')) {\n                  ppppppcVar32 = pppppppcVar29[2];\n                }\n                else {\n                  if (pppppppcVar29[0x13] == (code ******)0x0) goto LAB_000568f0;\n                  ppppppcVar32 = pppppppcVar29[2];\n                }\n                ppppppcVar35 = (code ******)\n                               (**(code **)(puVar41 + 0x23cf0))((int)ppppppcVar32 * 0xc);\n                pppppppcVar29[7] = ppppppcVar35;\n                if (ppppppcVar35 == (code ******)0x0) {\n                  pppppppcVar30 = (code *******)0xc;\n                  goto LAB_00056168;\n                }\n                if (ppppppcVar32 != (code ******)0x0) {\n                  iVar18 = 0;\n                  ppppppcVar32 = (code ******)0x0;\n                  do {\n                    puVar21 = (undefined1 *)((int)pppppppcVar29[7] + iVar18);\n                    *puVar21 = 0;\n                    puVar21[1] = 0;\n                    puVar21[2] = 0;\n                    puVar21[3] = 0;\n                    puVar21[4] = 0;\n                    puVar21[5] = 0;\n                    puVar21[6] = 0;\n                    puVar21[7] = 0;\n                    puVar21[8] = 0;\n                    puVar21[9] = 0;\n                    puVar21[10] = 0;\n                    puVar21[0xb] = 0;\n                    ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                    iVar18 = iVar18 + 0xc;\n                  } while (ppppppcVar32 < pppppppcVar29[2]);\n                  iVar18 = *(int *)(puVar41 + 0x23abc);\n                  if (pppppppcVar29[2] != (code ******)0x0) {\n                    iVar43 = 0;\n                    pppppppcStack_218 = (code *******)0x0;\n                    do {\n                      piVar5 = *(int **)((int)pppppppcVar29[6] + iVar43 + 8);\n                      if (0 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4)) {\n                        iVar37 = 0;\n                        do {\n                          pppppppcVar38 = pppppppcStack_218;\n                          iVar22 = (*(code *)(iVar18 + 0x6e30))\n                                             (pppppppcVar29[7] + *piVar5 * 3,pppppppcStack_218);\n                          pppppppcVar30 = (code *******)0xc;\n                          if (iVar22 == 0) goto LAB_00056168;\n                          iVar37 = iVar37 + 1;\n                          piVar5 = piVar5 + 1;\n                        } while (iVar37 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4));\n                      }\n                      pppppppcStack_218 = (code *******)((int)pppppppcStack_218 + 1);\n                      iVar43 = iVar43 + 0xc;\n                    } while (pppppppcStack_218 < pppppppcVar29[2]);\n                  }\n                }\nLAB_000568f0:\n                pppppppcStack_20c = (code *******)0x0;\n                if (((((uint)pppppppcVar34[0x16] & 0x20000000) != 0) && (uVar16 == 0)) &&\n                   (pppppppcVar3[5] == (code ******)0x0)) {\n                  if (pppppppcVar34[2] != (code ******)0x0) {\n                    pppppppcVar31 = (code *******)(*(int *)(puVar41 + 0x23754) + 0x6e4c);\n                    if (*(byte *)(*pppppppcVar34 + 1) < 0xd) {\n                    /* WARNING: Could not recover jumptable at 0x00056a60. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      pppppppcVar29 =\n                           (code *******)\n                           (*(code *)(puVar41 +\n                                     (int)(pppppppcVar31[*(byte *)(*pppppppcVar34 + 1)] + 0xadc7)))\n                                     ();\n                      return pppppppcVar29;\n                    }\n                    (**(code **)(puVar41 + 0x23bc4))(0);\n                    if (uVar7 != 0) {\n                      pppppppcVar31 = (code *******)&DAT_00000007;\n                      ppppppcVar32 = (code ******)0x0;\n                      do {\n                        ppppppcVar35 = *pppppppcVar34 + (int)ppppppcVar32 * 2;\n                        if (*(char *)(ppppppcVar35 + 1) == '\x01') {\n                          if (*(char *)ppppppcVar35 < '\0') {\n                            ppppppcVar35[1] = (code *****)((uint)ppppppcVar35[1] & 0xfffffbff);\n                          }\n                        }\n                        else if (*(char *)(ppppppcVar35 + 1) == '\x05') {\n                          *(char *)(ppppppcVar35 + 1) = '\a';\n                        }\n                        ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                      } while (ppppppcVar32 < pppppppcVar34[2]);\n                    }\n                  }\n                  pppppppcVar34[0x17] = (code ******)0x1;\n                  if (0 < (int)pppppppcVar34[0x13]) {\n                    uVar7 = 1;\n                  }\n                  *(byte *)(pppppppcVar34 + 0x16) =\n                       (byte)*(code *)(pppppppcVar34 + 0x16) & 0x9f | (byte)((uVar7 & 1) << 6);\n                }\n                ppppppcVar32 = (code ******)pppppppcVar34[0xd][3][7];\n                pppppppcVar34[0x12] = ppppppcVar32;\n                pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppppcVar32 * 3);\n                pppppppcVar33 = (code *******)FUN_000483e8(&ppppppcStack_204,pppppppcVar38);\n                pppppppcVar29 = pppppppcVar33;\n                pppppppcStack_208 = pppppppcVar33;\n                if (pppppppcVar33 == (code *******)0x0) {\n                  if ((0 < (int)pppppppcVar34[0x13]) && (0 < iStack_200)) {\n                    iVar18 = *(int *)(puVar41 + 0x23abc);\n                    iVar43 = *(int *)(puVar41 + 0x23abc);\n                    pppppppcVar29 = (code *******)0x0;\n                    do {\n                      pppppppcVar31 =\n                           (code *******)(*pppppppcVar34 + piStack_1fc[(int)pppppppcVar29] * 2);\n                      if (*(code *)(pppppppcVar31 + 1) == (code)0x4) {\n                        iVar37 = 0;\n                        piVar5 = piStack_1fc;\n                        if (iStack_200 < 1) {\nLAB_00056b8c:\n                          if (iStack_200 != iVar37) {\n                            ppppcVar40 = *pppppppcVar34[5][piStack_1fc[(int)pppppppcVar29] * 3 + 2];\n                            iVar37 = (*(code *)(iVar18 + 0x5ea8))(&ppppppcStack_204,ppppcVar40);\n                            if (iVar37 == 0) {\n                              pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppcVar40 * 3)\n                              ;\n                              pppppppcVar29 =\n                                   (code *******)\n                                   (*(code *)(iVar43 + 0x7f1c))(&ppppppcStack_204,pppppppcVar38);\n                              if (pppppppcVar29 != (code *******)0x0) goto LAB_00056cb8;\n                            }\n                          }\n                        }\n                        else {\n                          do {\n                            ppppppcVar32 = *pppppppcVar34 + *piVar5 * 2;\n                            if ((*(char *)(ppppppcVar32 + 1) == '\t') &&\n                               ((code ******)*ppppppcVar32 == *pppppppcVar31)) goto LAB_00056b8c;\n                            iVar37 = iVar37 + 1;\n                            piVar5 = piVar5 + 1;\n                          } while (iStack_200 != iVar37);\n                        }\n                      }\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1);\n                    } while ((int)pppppppcVar29 < iStack_200);\n                  }\n                  pppppppcVar31 = &ppppppcStack_204;\n                  pppppppcVar38 = pppppppcVar34;\n                  ppppppcVar32 = (code ******)\n                                 FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,0);\n                  pppppppcVar34[9] = ppppppcVar32;\n                  pppppppcVar29 = pppppppcStack_208;\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    if (((uint)ppppppcVar32[0xd] & 0x1000000) == 0) {\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar34[10] = ppppppcVar32;\n                    }\n                    else {\n                      pppppppcVar31 = &ppppppcStack_204;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,1);\n                      pppppppcVar34[10] = ppppppcVar32;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,2);\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar38 = pppppppcVar34;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,6);\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar29 = pppppppcStack_208;\n                      if (((pppppppcVar34[10] == (code ******)0x0) ||\n                          (pppppppcVar34[0xb] == (code ******)0x0)) ||\n                         (ppppppcVar32 == (code ******)0x0)) goto LAB_00056cb8;\n                    }\n                    (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                    pppppppcVar29 = pppppppcVar33;\n                  }\n                }\nLAB_00056cb8:\n                pppppppcStack_20c = pppppppcVar29;\n                FUN_0004b234(pppppppcVar3);\n                FUN_0004b2bc(&pppppppcStack_1f8);\n                pppppppcVar29 = pppppppcStack_20c;\n                if (pppppppcStack_20c != (code *******)0x0) {\n                  if (*(int *)(puVar41 + 0x23c78) != 0) {\n                    (**(code **)(puVar41 + 0x23df0))(pppppppcVar34 + 0x22);\n                  }\n                  FUN_0004b338(pppppppcVar34);\n                  *pppppppcVar3 = (code ******)0x0;\n                  pppppppcVar3[1] = (code ******)0x0;\n                  pppppppcVar29 = pppppppcStack_20c;\n                }\n                goto LAB_00056cfc;\n              }\n            }\n          }\n        }" if (parenthesized_expression "(ppppppcVar20 == (code ******)0x0)" ( (binary_expression "ppppppcVar20 == (code ******)0x0" identifier == (cast_expression "(code ******)0x0" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (compound_statement "{\n          pppppppcVar30 = (code *******)0xc;\n        }" { (expression_statement "pppppppcVar30 = (code *******)0xc;" (assignment_expression "pppppppcVar30 = (code *******)0xc" identifier = (cast_expression "(code *******)0xc" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) }) (else_clause "else {\n          ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23cf0))((int)pppppppcVar3[6] << 2);\n          pppppppcVar29[0x21] = ppppppcVar32;\n          if (ppppppcVar32 != (code ******)0x0) {\n            ppppppcVar32 = (code ******)0x0;\n            if (pppppppcVar3[6] != (code ******)0x0) {\n              do {\n                pppppppcVar29[0x21][(int)ppppppcVar32] = (code *****)ppppppcVar32;\n                ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n              } while (ppppppcVar32 < pppppppcVar3[6]);\n            }\n            FUN_00046050(pppppppcVar29[0xd],*(int *)(puVar41 + 0x23abc) + 0x60e8,pppppppcVar29);\n            ppppppcVar32 = pppppppcVar3[6];\n            if (ppppppcVar32 == (code ******)0x0) {\nLAB_00056704:\n              (**(code **)(puVar41 + 0x23dc0))(pppppppcVar29[0x21]);\n              pppppppcVar29[0x21] = (code ******)0x0;\n            }\n            else {\n              ppppppcVar35 = pppppppcVar29[0x21];\n              if (*ppppppcVar35 == (code *****)0x0) {\n                ppppppcVar39 = (code ******)0x0;\n                do {\n                  ppppppcVar35 = ppppppcVar35 + 1;\n                  ppppppcVar39 = (code ******)((int)ppppppcVar39 + 1);\n                  if (ppppppcVar32 == ppppppcVar39) {\n                    if (ppppppcVar32 == ppppppcVar39) goto LAB_00056704;\n                    break;\n                  }\n                } while ((code ******)*ppppppcVar35 == ppppppcVar39);\n              }\n            }\n          }\n          pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23abc) + 0x73a4);\n          pppppppcVar30 = (code *******)FUN_00045fb4(pppppppcVar29[0xd],pppppppcVar38,pppppppcVar3);\n          pppppppcVar31 = pppppppcVar29;\n          if (pppppppcVar30 == (code *******)0x0) {\n            pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23b40) + -0x5be4);\n            pppppppcVar30 = (code *******)FUN_00045fb4(pppppppcVar29[0xd],pppppppcVar38);\n            if (pppppppcVar30 == (code *******)0x0) {\n              FUN_00046050(pppppppcVar29[0xd],*(int *)(puVar41 + 0x23abc) + 0x61b4);\n              pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23b40) + -0x4614);\n              pppppppcVar30 = (code *******)FUN_00046050(pppppppcVar29[0xd],pppppppcVar38);\n              if (pppppppcVar30 == (code *******)0x0) {\n                uVar7 = 0;\n                iVar18 = *(int *)(puVar41 + 0x23b40);\n                pppppppcVar33 = (code *******)0x0;\nLAB_00056744:\n                if ((code *******)pppppppcVar29[2] != pppppppcVar33) {\nLAB_00056750:\n                  if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                    pppppppcVar38 = pppppppcVar29;\n                    pppppppcVar31 = pppppppcVar33;\n                    pppppppcVar30 =\n                         (code *******)\n                         (*(code *)(iVar18 + -0x561c))\n                                   (&ppppppcStack_204,pppppppcVar29,pppppppcVar33,1);\n                    if (pppppppcVar30 != (code *******)0x0) goto LAB_00056168;\n                    if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                      (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                      uVar7 = 1;\n                    }\n                  }\n                  pppppppcVar33 = (code *******)((int)pppppppcVar33 + 1);\n                  goto LAB_00056744;\n                }\n                if (uVar7 != 0) {\n                  uVar7 = 0;\n                  pppppppcVar33 = (code *******)0x0;\n                  goto LAB_00056750;\n                }\n                if (((((uint)pppppppcVar3[7] & 0x8000000) == 0) &&\n                    (pppppppcVar3[6] != (code ******)0x0)) &&\n                   ((char)*(code *)(pppppppcVar29 + 0x16) < '\0')) {\n                  ppppppcVar32 = pppppppcVar29[2];\n                }\n                else {\n                  if (pppppppcVar29[0x13] == (code ******)0x0) goto LAB_000568f0;\n                  ppppppcVar32 = pppppppcVar29[2];\n                }\n                ppppppcVar35 = (code ******)\n                               (**(code **)(puVar41 + 0x23cf0))((int)ppppppcVar32 * 0xc);\n                pppppppcVar29[7] = ppppppcVar35;\n                if (ppppppcVar35 == (code ******)0x0) {\n                  pppppppcVar30 = (code *******)0xc;\n                  goto LAB_00056168;\n                }\n                if (ppppppcVar32 != (code ******)0x0) {\n                  iVar18 = 0;\n                  ppppppcVar32 = (code ******)0x0;\n                  do {\n                    puVar21 = (undefined1 *)((int)pppppppcVar29[7] + iVar18);\n                    *puVar21 = 0;\n                    puVar21[1] = 0;\n                    puVar21[2] = 0;\n                    puVar21[3] = 0;\n                    puVar21[4] = 0;\n                    puVar21[5] = 0;\n                    puVar21[6] = 0;\n                    puVar21[7] = 0;\n                    puVar21[8] = 0;\n                    puVar21[9] = 0;\n                    puVar21[10] = 0;\n                    puVar21[0xb] = 0;\n                    ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                    iVar18 = iVar18 + 0xc;\n                  } while (ppppppcVar32 < pppppppcVar29[2]);\n                  iVar18 = *(int *)(puVar41 + 0x23abc);\n                  if (pppppppcVar29[2] != (code ******)0x0) {\n                    iVar43 = 0;\n                    pppppppcStack_218 = (code *******)0x0;\n                    do {\n                      piVar5 = *(int **)((int)pppppppcVar29[6] + iVar43 + 8);\n                      if (0 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4)) {\n                        iVar37 = 0;\n                        do {\n                          pppppppcVar38 = pppppppcStack_218;\n                          iVar22 = (*(code *)(iVar18 + 0x6e30))\n                                             (pppppppcVar29[7] + *piVar5 * 3,pppppppcStack_218);\n                          pppppppcVar30 = (code *******)0xc;\n                          if (iVar22 == 0) goto LAB_00056168;\n                          iVar37 = iVar37 + 1;\n                          piVar5 = piVar5 + 1;\n                        } while (iVar37 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4));\n                      }\n                      pppppppcStack_218 = (code *******)((int)pppppppcStack_218 + 1);\n                      iVar43 = iVar43 + 0xc;\n                    } while (pppppppcStack_218 < pppppppcVar29[2]);\n                  }\n                }\nLAB_000568f0:\n                pppppppcStack_20c = (code *******)0x0;\n                if (((((uint)pppppppcVar34[0x16] & 0x20000000) != 0) && (uVar16 == 0)) &&\n                   (pppppppcVar3[5] == (code ******)0x0)) {\n                  if (pppppppcVar34[2] != (code ******)0x0) {\n                    pppppppcVar31 = (code *******)(*(int *)(puVar41 + 0x23754) + 0x6e4c);\n                    if (*(byte *)(*pppppppcVar34 + 1) < 0xd) {\n                    /* WARNING: Could not recover jumptable at 0x00056a60. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      pppppppcVar29 =\n                           (code *******)\n                           (*(code *)(puVar41 +\n                                     (int)(pppppppcVar31[*(byte *)(*pppppppcVar34 + 1)] + 0xadc7)))\n                                     ();\n                      return pppppppcVar29;\n                    }\n                    (**(code **)(puVar41 + 0x23bc4))(0);\n                    if (uVar7 != 0) {\n                      pppppppcVar31 = (code *******)&DAT_00000007;\n                      ppppppcVar32 = (code ******)0x0;\n                      do {\n                        ppppppcVar35 = *pppppppcVar34 + (int)ppppppcVar32 * 2;\n                        if (*(char *)(ppppppcVar35 + 1) == '\x01') {\n                          if (*(char *)ppppppcVar35 < '\0') {\n                            ppppppcVar35[1] = (code *****)((uint)ppppppcVar35[1] & 0xfffffbff);\n                          }\n                        }\n                        else if (*(char *)(ppppppcVar35 + 1) == '\x05') {\n                          *(char *)(ppppppcVar35 + 1) = '\a';\n                        }\n                        ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                      } while (ppppppcVar32 < pppppppcVar34[2]);\n                    }\n                  }\n                  pppppppcVar34[0x17] = (code ******)0x1;\n                  if (0 < (int)pppppppcVar34[0x13]) {\n                    uVar7 = 1;\n                  }\n                  *(byte *)(pppppppcVar34 + 0x16) =\n                       (byte)*(code *)(pppppppcVar34 + 0x16) & 0x9f | (byte)((uVar7 & 1) << 6);\n                }\n                ppppppcVar32 = (code ******)pppppppcVar34[0xd][3][7];\n                pppppppcVar34[0x12] = ppppppcVar32;\n                pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppppcVar32 * 3);\n                pppppppcVar33 = (code *******)FUN_000483e8(&ppppppcStack_204,pppppppcVar38);\n                pppppppcVar29 = pppppppcVar33;\n                pppppppcStack_208 = pppppppcVar33;\n                if (pppppppcVar33 == (code *******)0x0) {\n                  if ((0 < (int)pppppppcVar34[0x13]) && (0 < iStack_200)) {\n                    iVar18 = *(int *)(puVar41 + 0x23abc);\n                    iVar43 = *(int *)(puVar41 + 0x23abc);\n                    pppppppcVar29 = (code *******)0x0;\n                    do {\n                      pppppppcVar31 =\n                           (code *******)(*pppppppcVar34 + piStack_1fc[(int)pppppppcVar29] * 2);\n                      if (*(code *)(pppppppcVar31 + 1) == (code)0x4) {\n                        iVar37 = 0;\n                        piVar5 = piStack_1fc;\n                        if (iStack_200 < 1) {\nLAB_00056b8c:\n                          if (iStack_200 != iVar37) {\n                            ppppcVar40 = *pppppppcVar34[5][piStack_1fc[(int)pppppppcVar29] * 3 + 2];\n                            iVar37 = (*(code *)(iVar18 + 0x5ea8))(&ppppppcStack_204,ppppcVar40);\n                            if (iVar37 == 0) {\n                              pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppcVar40 * 3)\n                              ;\n                              pppppppcVar29 =\n                                   (code *******)\n                                   (*(code *)(iVar43 + 0x7f1c))(&ppppppcStack_204,pppppppcVar38);\n                              if (pppppppcVar29 != (code *******)0x0) goto LAB_00056cb8;\n                            }\n                          }\n                        }\n                        else {\n                          do {\n                            ppppppcVar32 = *pppppppcVar34 + *piVar5 * 2;\n                            if ((*(char *)(ppppppcVar32 + 1) == '\t') &&\n                               ((code ******)*ppppppcVar32 == *pppppppcVar31)) goto LAB_00056b8c;\n                            iVar37 = iVar37 + 1;\n                            piVar5 = piVar5 + 1;\n                          } while (iStack_200 != iVar37);\n                        }\n                      }\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1);\n                    } while ((int)pppppppcVar29 < iStack_200);\n                  }\n                  pppppppcVar31 = &ppppppcStack_204;\n                  pppppppcVar38 = pppppppcVar34;\n                  ppppppcVar32 = (code ******)\n                                 FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,0);\n                  pppppppcVar34[9] = ppppppcVar32;\n                  pppppppcVar29 = pppppppcStack_208;\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    if (((uint)ppppppcVar32[0xd] & 0x1000000) == 0) {\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar34[10] = ppppppcVar32;\n                    }\n                    else {\n                      pppppppcVar31 = &ppppppcStack_204;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,1);\n                      pppppppcVar34[10] = ppppppcVar32;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,2);\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar38 = pppppppcVar34;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,6);\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar29 = pppppppcStack_208;\n                      if (((pppppppcVar34[10] == (code ******)0x0) ||\n                          (pppppppcVar34[0xb] == (code ******)0x0)) ||\n                         (ppppppcVar32 == (code ******)0x0)) goto LAB_00056cb8;\n                    }\n                    (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                    pppppppcVar29 = pppppppcVar33;\n                  }\n                }\nLAB_00056cb8:\n                pppppppcStack_20c = pppppppcVar29;\n                FUN_0004b234(pppppppcVar3);\n                FUN_0004b2bc(&pppppppcStack_1f8);\n                pppppppcVar29 = pppppppcStack_20c;\n                if (pppppppcStack_20c != (code *******)0x0) {\n                  if (*(int *)(puVar41 + 0x23c78) != 0) {\n                    (**(code **)(puVar41 + 0x23df0))(pppppppcVar34 + 0x22);\n                  }\n                  FUN_0004b338(pppppppcVar34);\n                  *pppppppcVar3 = (code ******)0x0;\n                  pppppppcVar3[1] = (code ******)0x0;\n                  pppppppcVar29 = pppppppcStack_20c;\n                }\n                goto LAB_00056cfc;\n              }\n            }\n          }\n        }" else (compound_statement "{\n          ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23cf0))((int)pppppppcVar3[6] << 2);\n          pppppppcVar29[0x21] = ppppppcVar32;\n          if (ppppppcVar32 != (code ******)0x0) {\n            ppppppcVar32 = (code ******)0x0;\n            if (pppppppcVar3[6] != (code ******)0x0) {\n              do {\n                pppppppcVar29[0x21][(int)ppppppcVar32] = (code *****)ppppppcVar32;\n                ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n              } while (ppppppcVar32 < pppppppcVar3[6]);\n            }\n            FUN_00046050(pppppppcVar29[0xd],*(int *)(puVar41 + 0x23abc) + 0x60e8,pppppppcVar29);\n            ppppppcVar32 = pppppppcVar3[6];\n            if (ppppppcVar32 == (code ******)0x0) {\nLAB_00056704:\n              (**(code **)(puVar41 + 0x23dc0))(pppppppcVar29[0x21]);\n              pppppppcVar29[0x21] = (code ******)0x0;\n            }\n            else {\n              ppppppcVar35 = pppppppcVar29[0x21];\n              if (*ppppppcVar35 == (code *****)0x0) {\n                ppppppcVar39 = (code ******)0x0;\n                do {\n                  ppppppcVar35 = ppppppcVar35 + 1;\n                  ppppppcVar39 = (code ******)((int)ppppppcVar39 + 1);\n                  if (ppppppcVar32 == ppppppcVar39) {\n                    if (ppppppcVar32 == ppppppcVar39) goto LAB_00056704;\n                    break;\n                  }\n                } while ((code ******)*ppppppcVar35 == ppppppcVar39);\n              }\n            }\n          }\n          pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23abc) + 0x73a4);\n          pppppppcVar30 = (code *******)FUN_00045fb4(pppppppcVar29[0xd],pppppppcVar38,pppppppcVar3);\n          pppppppcVar31 = pppppppcVar29;\n          if (pppppppcVar30 == (code *******)0x0) {\n            pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23b40) + -0x5be4);\n            pppppppcVar30 = (code *******)FUN_00045fb4(pppppppcVar29[0xd],pppppppcVar38);\n            if (pppppppcVar30 == (code *******)0x0) {\n              FUN_00046050(pppppppcVar29[0xd],*(int *)(puVar41 + 0x23abc) + 0x61b4);\n              pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23b40) + -0x4614);\n              pppppppcVar30 = (code *******)FUN_00046050(pppppppcVar29[0xd],pppppppcVar38);\n              if (pppppppcVar30 == (code *******)0x0) {\n                uVar7 = 0;\n                iVar18 = *(int *)(puVar41 + 0x23b40);\n                pppppppcVar33 = (code *******)0x0;\nLAB_00056744:\n                if ((code *******)pppppppcVar29[2] != pppppppcVar33) {\nLAB_00056750:\n                  if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                    pppppppcVar38 = pppppppcVar29;\n                    pppppppcVar31 = pppppppcVar33;\n                    pppppppcVar30 =\n                         (code *******)\n                         (*(code *)(iVar18 + -0x561c))\n                                   (&ppppppcStack_204,pppppppcVar29,pppppppcVar33,1);\n                    if (pppppppcVar30 != (code *******)0x0) goto LAB_00056168;\n                    if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                      (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                      uVar7 = 1;\n                    }\n                  }\n                  pppppppcVar33 = (code *******)((int)pppppppcVar33 + 1);\n                  goto LAB_00056744;\n                }\n                if (uVar7 != 0) {\n                  uVar7 = 0;\n                  pppppppcVar33 = (code *******)0x0;\n                  goto LAB_00056750;\n                }\n                if (((((uint)pppppppcVar3[7] & 0x8000000) == 0) &&\n                    (pppppppcVar3[6] != (code ******)0x0)) &&\n                   ((char)*(code *)(pppppppcVar29 + 0x16) < '\0')) {\n                  ppppppcVar32 = pppppppcVar29[2];\n                }\n                else {\n                  if (pppppppcVar29[0x13] == (code ******)0x0) goto LAB_000568f0;\n                  ppppppcVar32 = pppppppcVar29[2];\n                }\n                ppppppcVar35 = (code ******)\n                               (**(code **)(puVar41 + 0x23cf0))((int)ppppppcVar32 * 0xc);\n                pppppppcVar29[7] = ppppppcVar35;\n                if (ppppppcVar35 == (code ******)0x0) {\n                  pppppppcVar30 = (code *******)0xc;\n                  goto LAB_00056168;\n                }\n                if (ppppppcVar32 != (code ******)0x0) {\n                  iVar18 = 0;\n                  ppppppcVar32 = (code ******)0x0;\n                  do {\n                    puVar21 = (undefined1 *)((int)pppppppcVar29[7] + iVar18);\n                    *puVar21 = 0;\n                    puVar21[1] = 0;\n                    puVar21[2] = 0;\n                    puVar21[3] = 0;\n                    puVar21[4] = 0;\n                    puVar21[5] = 0;\n                    puVar21[6] = 0;\n                    puVar21[7] = 0;\n                    puVar21[8] = 0;\n                    puVar21[9] = 0;\n                    puVar21[10] = 0;\n                    puVar21[0xb] = 0;\n                    ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                    iVar18 = iVar18 + 0xc;\n                  } while (ppppppcVar32 < pppppppcVar29[2]);\n                  iVar18 = *(int *)(puVar41 + 0x23abc);\n                  if (pppppppcVar29[2] != (code ******)0x0) {\n                    iVar43 = 0;\n                    pppppppcStack_218 = (code *******)0x0;\n                    do {\n                      piVar5 = *(int **)((int)pppppppcVar29[6] + iVar43 + 8);\n                      if (0 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4)) {\n                        iVar37 = 0;\n                        do {\n                          pppppppcVar38 = pppppppcStack_218;\n                          iVar22 = (*(code *)(iVar18 + 0x6e30))\n                                             (pppppppcVar29[7] + *piVar5 * 3,pppppppcStack_218);\n                          pppppppcVar30 = (code *******)0xc;\n                          if (iVar22 == 0) goto LAB_00056168;\n                          iVar37 = iVar37 + 1;\n                          piVar5 = piVar5 + 1;\n                        } while (iVar37 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4));\n                      }\n                      pppppppcStack_218 = (code *******)((int)pppppppcStack_218 + 1);\n                      iVar43 = iVar43 + 0xc;\n                    } while (pppppppcStack_218 < pppppppcVar29[2]);\n                  }\n                }\nLAB_000568f0:\n                pppppppcStack_20c = (code *******)0x0;\n                if (((((uint)pppppppcVar34[0x16] & 0x20000000) != 0) && (uVar16 == 0)) &&\n                   (pppppppcVar3[5] == (code ******)0x0)) {\n                  if (pppppppcVar34[2] != (code ******)0x0) {\n                    pppppppcVar31 = (code *******)(*(int *)(puVar41 + 0x23754) + 0x6e4c);\n                    if (*(byte *)(*pppppppcVar34 + 1) < 0xd) {\n                    /* WARNING: Could not recover jumptable at 0x00056a60. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      pppppppcVar29 =\n                           (code *******)\n                           (*(code *)(puVar41 +\n                                     (int)(pppppppcVar31[*(byte *)(*pppppppcVar34 + 1)] + 0xadc7)))\n                                     ();\n                      return pppppppcVar29;\n                    }\n                    (**(code **)(puVar41 + 0x23bc4))(0);\n                    if (uVar7 != 0) {\n                      pppppppcVar31 = (code *******)&DAT_00000007;\n                      ppppppcVar32 = (code ******)0x0;\n                      do {\n                        ppppppcVar35 = *pppppppcVar34 + (int)ppppppcVar32 * 2;\n                        if (*(char *)(ppppppcVar35 + 1) == '\x01') {\n                          if (*(char *)ppppppcVar35 < '\0') {\n                            ppppppcVar35[1] = (code *****)((uint)ppppppcVar35[1] & 0xfffffbff);\n                          }\n                        }\n                        else if (*(char *)(ppppppcVar35 + 1) == '\x05') {\n                          *(char *)(ppppppcVar35 + 1) = '\a';\n                        }\n                        ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                      } while (ppppppcVar32 < pppppppcVar34[2]);\n                    }\n                  }\n                  pppppppcVar34[0x17] = (code ******)0x1;\n                  if (0 < (int)pppppppcVar34[0x13]) {\n                    uVar7 = 1;\n                  }\n                  *(byte *)(pppppppcVar34 + 0x16) =\n                       (byte)*(code *)(pppppppcVar34 + 0x16) & 0x9f | (byte)((uVar7 & 1) << 6);\n                }\n                ppppppcVar32 = (code ******)pppppppcVar34[0xd][3][7];\n                pppppppcVar34[0x12] = ppppppcVar32;\n                pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppppcVar32 * 3);\n                pppppppcVar33 = (code *******)FUN_000483e8(&ppppppcStack_204,pppppppcVar38);\n                pppppppcVar29 = pppppppcVar33;\n                pppppppcStack_208 = pppppppcVar33;\n                if (pppppppcVar33 == (code *******)0x0) {\n                  if ((0 < (int)pppppppcVar34[0x13]) && (0 < iStack_200)) {\n                    iVar18 = *(int *)(puVar41 + 0x23abc);\n                    iVar43 = *(int *)(puVar41 + 0x23abc);\n                    pppppppcVar29 = (code *******)0x0;\n                    do {\n                      pppppppcVar31 =\n                           (code *******)(*pppppppcVar34 + piStack_1fc[(int)pppppppcVar29] * 2);\n                      if (*(code *)(pppppppcVar31 + 1) == (code)0x4) {\n                        iVar37 = 0;\n                        piVar5 = piStack_1fc;\n                        if (iStack_200 < 1) {\nLAB_00056b8c:\n                          if (iStack_200 != iVar37) {\n                            ppppcVar40 = *pppppppcVar34[5][piStack_1fc[(int)pppppppcVar29] * 3 + 2];\n                            iVar37 = (*(code *)(iVar18 + 0x5ea8))(&ppppppcStack_204,ppppcVar40);\n                            if (iVar37 == 0) {\n                              pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppcVar40 * 3)\n                              ;\n                              pppppppcVar29 =\n                                   (code *******)\n                                   (*(code *)(iVar43 + 0x7f1c))(&ppppppcStack_204,pppppppcVar38);\n                              if (pppppppcVar29 != (code *******)0x0) goto LAB_00056cb8;\n                            }\n                          }\n                        }\n                        else {\n                          do {\n                            ppppppcVar32 = *pppppppcVar34 + *piVar5 * 2;\n                            if ((*(char *)(ppppppcVar32 + 1) == '\t') &&\n                               ((code ******)*ppppppcVar32 == *pppppppcVar31)) goto LAB_00056b8c;\n                            iVar37 = iVar37 + 1;\n                            piVar5 = piVar5 + 1;\n                          } while (iStack_200 != iVar37);\n                        }\n                      }\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1);\n                    } while ((int)pppppppcVar29 < iStack_200);\n                  }\n                  pppppppcVar31 = &ppppppcStack_204;\n                  pppppppcVar38 = pppppppcVar34;\n                  ppppppcVar32 = (code ******)\n                                 FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,0);\n                  pppppppcVar34[9] = ppppppcVar32;\n                  pppppppcVar29 = pppppppcStack_208;\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    if (((uint)ppppppcVar32[0xd] & 0x1000000) == 0) {\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar34[10] = ppppppcVar32;\n                    }\n                    else {\n                      pppppppcVar31 = &ppppppcStack_204;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,1);\n                      pppppppcVar34[10] = ppppppcVar32;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,2);\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar38 = pppppppcVar34;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,6);\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar29 = pppppppcStack_208;\n                      if (((pppppppcVar34[10] == (code ******)0x0) ||\n                          (pppppppcVar34[0xb] == (code ******)0x0)) ||\n                         (ppppppcVar32 == (code ******)0x0)) goto LAB_00056cb8;\n                    }\n                    (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                    pppppppcVar29 = pppppppcVar33;\n                  }\n                }\nLAB_00056cb8:\n                pppppppcStack_20c = pppppppcVar29;\n                FUN_0004b234(pppppppcVar3);\n                FUN_0004b2bc(&pppppppcStack_1f8);\n                pppppppcVar29 = pppppppcStack_20c;\n                if (pppppppcStack_20c != (code *******)0x0) {\n                  if (*(int *)(puVar41 + 0x23c78) != 0) {\n                    (**(code **)(puVar41 + 0x23df0))(pppppppcVar34 + 0x22);\n                  }\n                  FUN_0004b338(pppppppcVar34);\n                  *pppppppcVar3 = (code ******)0x0;\n                  pppppppcVar3[1] = (code ******)0x0;\n                  pppppppcVar29 = pppppppcStack_20c;\n                }\n                goto LAB_00056cfc;\n              }\n            }\n          }\n        }" { (expression_statement "ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23cf0))((int)pppppppcVar3[6] << 2);" (assignment_expression "ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23cf0))((int)pppppppcVar3[6] << 2)" identifier = (cast_expression "(code ******)(**(code **)(puVar41 + 0x23cf0))((int)pppppppcVar3[6] << 2)" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (call_expression "(**(code **)(puVar41 + 0x23cf0))((int)pppppppcVar3[6] << 2)" (parenthesized_expression "(**(code **)(puVar41 + 0x23cf0))" ( (pointer_expression "**(code **)(puVar41 + 0x23cf0)" * (pointer_expression "*(code **)(puVar41 + 0x23cf0)" * (cast_expression "(code **)(puVar41 + 0x23cf0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar41 + 0x23cf0)" ( (binary_expression "puVar41 + 0x23cf0" identifier + number_literal) ))))) )) (argument_list "((int)pppppppcVar3[6] << 2)" ( (binary_expression "(int)pppppppcVar3[6] << 2" (cast_expression "(int)pppppppcVar3[6]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "pppppppcVar3[6]" identifier [ number_literal ])) << number_literal) ))))) ;) (expression_statement "pppppppcVar29[0x21] = ppppppcVar32;" (assignment_expression "pppppppcVar29[0x21] = ppppppcVar32" (subscript_expression "pppppppcVar29[0x21]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (ppppppcVar32 != (code ******)0x0) {\n            ppppppcVar32 = (code ******)0x0;\n            if (pppppppcVar3[6] != (code ******)0x0) {\n              do {\n                pppppppcVar29[0x21][(int)ppppppcVar32] = (code *****)ppppppcVar32;\n                ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n              } while (ppppppcVar32 < pppppppcVar3[6]);\n            }\n            FUN_00046050(pppppppcVar29[0xd],*(int *)(puVar41 + 0x23abc) + 0x60e8,pppppppcVar29);\n            ppppppcVar32 = pppppppcVar3[6];\n            if (ppppppcVar32 == (code ******)0x0) {\nLAB_00056704:\n              (**(code **)(puVar41 + 0x23dc0))(pppppppcVar29[0x21]);\n              pppppppcVar29[0x21] = (code ******)0x0;\n            }\n            else {\n              ppppppcVar35 = pppppppcVar29[0x21];\n              if (*ppppppcVar35 == (code *****)0x0) {\n                ppppppcVar39 = (code ******)0x0;\n                do {\n                  ppppppcVar35 = ppppppcVar35 + 1;\n                  ppppppcVar39 = (code ******)((int)ppppppcVar39 + 1);\n                  if (ppppppcVar32 == ppppppcVar39) {\n                    if (ppppppcVar32 == ppppppcVar39) goto LAB_00056704;\n                    break;\n                  }\n                } while ((code ******)*ppppppcVar35 == ppppppcVar39);\n              }\n            }\n          }" if (parenthesized_expression "(ppppppcVar32 != (code ******)0x0)" ( (binary_expression "ppppppcVar32 != (code ******)0x0" identifier != (cast_expression "(code ******)0x0" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (compound_statement "{\n            ppppppcVar32 = (code ******)0x0;\n            if (pppppppcVar3[6] != (code ******)0x0) {\n              do {\n                pppppppcVar29[0x21][(int)ppppppcVar32] = (code *****)ppppppcVar32;\n                ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n              } while (ppppppcVar32 < pppppppcVar3[6]);\n            }\n            FUN_00046050(pppppppcVar29[0xd],*(int *)(puVar41 + 0x23abc) + 0x60e8,pppppppcVar29);\n            ppppppcVar32 = pppppppcVar3[6];\n            if (ppppppcVar32 == (code ******)0x0) {\nLAB_00056704:\n              (**(code **)(puVar41 + 0x23dc0))(pppppppcVar29[0x21]);\n              pppppppcVar29[0x21] = (code ******)0x0;\n            }\n            else {\n              ppppppcVar35 = pppppppcVar29[0x21];\n              if (*ppppppcVar35 == (code *****)0x0) {\n                ppppppcVar39 = (code ******)0x0;\n                do {\n                  ppppppcVar35 = ppppppcVar35 + 1;\n                  ppppppcVar39 = (code ******)((int)ppppppcVar39 + 1);\n                  if (ppppppcVar32 == ppppppcVar39) {\n                    if (ppppppcVar32 == ppppppcVar39) goto LAB_00056704;\n                    break;\n                  }\n                } while ((code ******)*ppppppcVar35 == ppppppcVar39);\n              }\n            }\n          }" { (expression_statement "ppppppcVar32 = (code ******)0x0;" (assignment_expression "ppppppcVar32 = (code ******)0x0" identifier = (cast_expression "(code ******)0x0" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) (if_statement "if (pppppppcVar3[6] != (code ******)0x0) {\n              do {\n                pppppppcVar29[0x21][(int)ppppppcVar32] = (code *****)ppppppcVar32;\n                ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n              } while (ppppppcVar32 < pppppppcVar3[6]);\n            }" if (parenthesized_expression "(pppppppcVar3[6] != (code ******)0x0)" ( (binary_expression "pppppppcVar3[6] != (code ******)0x0" (subscript_expression "pppppppcVar3[6]" identifier [ number_literal ]) != (cast_expression "(code ******)0x0" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (compound_statement "{\n              do {\n                pppppppcVar29[0x21][(int)ppppppcVar32] = (code *****)ppppppcVar32;\n                ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n              } while (ppppppcVar32 < pppppppcVar3[6]);\n            }" { (do_statement "do {\n                pppppppcVar29[0x21][(int)ppppppcVar32] = (code *****)ppppppcVar32;\n                ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n              } while (ppppppcVar32 < pppppppcVar3[6]);" do (compound_statement "{\n                pppppppcVar29[0x21][(int)ppppppcVar32] = (code *****)ppppppcVar32;\n                ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n              }" { (expression_statement "pppppppcVar29[0x21][(int)ppppppcVar32] = (code *****)ppppppcVar32;" (assignment_expression "pppppppcVar29[0x21][(int)ppppppcVar32] = (code *****)ppppppcVar32" (subscript_expression "pppppppcVar29[0x21][(int)ppppppcVar32]" (subscript_expression "pppppppcVar29[0x21]" identifier [ number_literal ]) [ (cast_expression "(int)ppppppcVar32" ( (type_descriptor "int" primitive_type) ) identifier) ]) = (cast_expression "(code *****)ppppppcVar32" ( (type_descriptor "code *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier)) ;) (expression_statement "ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);" (assignment_expression "ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1)" identifier = (cast_expression "(code ******)((int)ppppppcVar32 + 1)" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "((int)ppppppcVar32 + 1)" ( (binary_expression "(int)ppppppcVar32 + 1" (cast_expression "(int)ppppppcVar32" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) }) while (parenthesized_expression "(ppppppcVar32 < pppppppcVar3[6])" ( (binary_expression "ppppppcVar32 < pppppppcVar3[6]" identifier < (subscript_expression "pppppppcVar3[6]" identifier [ number_literal ])) )) ;) })) (expression_statement "FUN_00046050(pppppppcVar29[0xd],*(int *)(puVar41 + 0x23abc) + 0x60e8,pppppppcVar29);" (call_expression "FUN_00046050(pppppppcVar29[0xd],*(int *)(puVar41 + 0x23abc) + 0x60e8,pppppppcVar29)" identifier (argument_list "(pppppppcVar29[0xd],*(int *)(puVar41 + 0x23abc) + 0x60e8,pppppppcVar29)" ( (subscript_expression "pppppppcVar29[0xd]" identifier [ number_literal ]) , (binary_expression "*(int *)(puVar41 + 0x23abc) + 0x60e8" (pointer_expression "*(int *)(puVar41 + 0x23abc)" * (cast_expression "(int *)(puVar41 + 0x23abc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar41 + 0x23abc)" ( (binary_expression "puVar41 + 0x23abc" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (expression_statement "ppppppcVar32 = pppppppcVar3[6];" (assignment_expression "ppppppcVar32 = pppppppcVar3[6]" identifier = (subscript_expression "pppppppcVar3[6]" identifier [ number_literal ])) ;) (if_statement "if (ppppppcVar32 == (code ******)0x0) {\nLAB_00056704:\n              (**(code **)(puVar41 + 0x23dc0))(pppppppcVar29[0x21]);\n              pppppppcVar29[0x21] = (code ******)0x0;\n            }\n            else {\n              ppppppcVar35 = pppppppcVar29[0x21];\n              if (*ppppppcVar35 == (code *****)0x0) {\n                ppppppcVar39 = (code ******)0x0;\n                do {\n                  ppppppcVar35 = ppppppcVar35 + 1;\n                  ppppppcVar39 = (code ******)((int)ppppppcVar39 + 1);\n                  if (ppppppcVar32 == ppppppcVar39) {\n                    if (ppppppcVar32 == ppppppcVar39) goto LAB_00056704;\n                    break;\n                  }\n                } while ((code ******)*ppppppcVar35 == ppppppcVar39);\n              }\n            }" if (parenthesized_expression "(ppppppcVar32 == (code ******)0x0)" ( (binary_expression "ppppppcVar32 == (code ******)0x0" identifier == (cast_expression "(code ******)0x0" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (compound_statement "{\nLAB_00056704:\n              (**(code **)(puVar41 + 0x23dc0))(pppppppcVar29[0x21]);\n              pppppppcVar29[0x21] = (code ******)0x0;\n            }" { (labeled_statement "LAB_00056704:\n              (**(code **)(puVar41 + 0x23dc0))(pppppppcVar29[0x21]);" statement_identifier : (expression_statement "(**(code **)(puVar41 + 0x23dc0))(pppppppcVar29[0x21]);" (call_expression "(**(code **)(puVar41 + 0x23dc0))(pppppppcVar29[0x21])" (parenthesized_expression "(**(code **)(puVar41 + 0x23dc0))" ( (pointer_expression "**(code **)(puVar41 + 0x23dc0)" * (pointer_expression "*(code **)(puVar41 + 0x23dc0)" * (cast_expression "(code **)(puVar41 + 0x23dc0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar41 + 0x23dc0)" ( (binary_expression "puVar41 + 0x23dc0" identifier + number_literal) ))))) )) (argument_list "(pppppppcVar29[0x21])" ( (subscript_expression "pppppppcVar29[0x21]" identifier [ number_literal ]) ))) ;)) (expression_statement "pppppppcVar29[0x21] = (code ******)0x0;" (assignment_expression "pppppppcVar29[0x21] = (code ******)0x0" (subscript_expression "pppppppcVar29[0x21]" identifier [ number_literal ]) = (cast_expression "(code ******)0x0" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) }) (else_clause "else {\n              ppppppcVar35 = pppppppcVar29[0x21];\n              if (*ppppppcVar35 == (code *****)0x0) {\n                ppppppcVar39 = (code ******)0x0;\n                do {\n                  ppppppcVar35 = ppppppcVar35 + 1;\n                  ppppppcVar39 = (code ******)((int)ppppppcVar39 + 1);\n                  if (ppppppcVar32 == ppppppcVar39) {\n                    if (ppppppcVar32 == ppppppcVar39) goto LAB_00056704;\n                    break;\n                  }\n                } while ((code ******)*ppppppcVar35 == ppppppcVar39);\n              }\n            }" else (compound_statement "{\n              ppppppcVar35 = pppppppcVar29[0x21];\n              if (*ppppppcVar35 == (code *****)0x0) {\n                ppppppcVar39 = (code ******)0x0;\n                do {\n                  ppppppcVar35 = ppppppcVar35 + 1;\n                  ppppppcVar39 = (code ******)((int)ppppppcVar39 + 1);\n                  if (ppppppcVar32 == ppppppcVar39) {\n                    if (ppppppcVar32 == ppppppcVar39) goto LAB_00056704;\n                    break;\n                  }\n                } while ((code ******)*ppppppcVar35 == ppppppcVar39);\n              }\n            }" { (expression_statement "ppppppcVar35 = pppppppcVar29[0x21];" (assignment_expression "ppppppcVar35 = pppppppcVar29[0x21]" identifier = (subscript_expression "pppppppcVar29[0x21]" identifier [ number_literal ])) ;) (if_statement "if (*ppppppcVar35 == (code *****)0x0) {\n                ppppppcVar39 = (code ******)0x0;\n                do {\n                  ppppppcVar35 = ppppppcVar35 + 1;\n                  ppppppcVar39 = (code ******)((int)ppppppcVar39 + 1);\n                  if (ppppppcVar32 == ppppppcVar39) {\n                    if (ppppppcVar32 == ppppppcVar39) goto LAB_00056704;\n                    break;\n                  }\n                } while ((code ******)*ppppppcVar35 == ppppppcVar39);\n              }" if (parenthesized_expression "(*ppppppcVar35 == (code *****)0x0)" ( (binary_expression "*ppppppcVar35 == (code *****)0x0" (pointer_expression "*ppppppcVar35" * identifier) == (cast_expression "(code *****)0x0" ( (type_descriptor "code *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) )) (compound_statement "{\n                ppppppcVar39 = (code ******)0x0;\n                do {\n                  ppppppcVar35 = ppppppcVar35 + 1;\n                  ppppppcVar39 = (code ******)((int)ppppppcVar39 + 1);\n                  if (ppppppcVar32 == ppppppcVar39) {\n                    if (ppppppcVar32 == ppppppcVar39) goto LAB_00056704;\n                    break;\n                  }\n                } while ((code ******)*ppppppcVar35 == ppppppcVar39);\n              }" { (expression_statement "ppppppcVar39 = (code ******)0x0;" (assignment_expression "ppppppcVar39 = (code ******)0x0" identifier = (cast_expression "(code ******)0x0" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) (do_statement "do {\n                  ppppppcVar35 = ppppppcVar35 + 1;\n                  ppppppcVar39 = (code ******)((int)ppppppcVar39 + 1);\n                  if (ppppppcVar32 == ppppppcVar39) {\n                    if (ppppppcVar32 == ppppppcVar39) goto LAB_00056704;\n                    break;\n                  }\n                } while ((code ******)*ppppppcVar35 == ppppppcVar39);" do (compound_statement "{\n                  ppppppcVar35 = ppppppcVar35 + 1;\n                  ppppppcVar39 = (code ******)((int)ppppppcVar39 + 1);\n                  if (ppppppcVar32 == ppppppcVar39) {\n                    if (ppppppcVar32 == ppppppcVar39) goto LAB_00056704;\n                    break;\n                  }\n                }" { (expression_statement "ppppppcVar35 = ppppppcVar35 + 1;" (assignment_expression "ppppppcVar35 = ppppppcVar35 + 1" identifier = (binary_expression "ppppppcVar35 + 1" identifier + number_literal)) ;) (expression_statement "ppppppcVar39 = (code ******)((int)ppppppcVar39 + 1);" (assignment_expression "ppppppcVar39 = (code ******)((int)ppppppcVar39 + 1)" identifier = (cast_expression "(code ******)((int)ppppppcVar39 + 1)" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "((int)ppppppcVar39 + 1)" ( (binary_expression "(int)ppppppcVar39 + 1" (cast_expression "(int)ppppppcVar39" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if (ppppppcVar32 == ppppppcVar39) {\n                    if (ppppppcVar32 == ppppppcVar39) goto LAB_00056704;\n                    break;\n                  }" if (parenthesized_expression "(ppppppcVar32 == ppppppcVar39)" ( (binary_expression "ppppppcVar32 == ppppppcVar39" identifier == identifier) )) (compound_statement "{\n                    if (ppppppcVar32 == ppppppcVar39) goto LAB_00056704;\n                    break;\n                  }" { (if_statement "if (ppppppcVar32 == ppppppcVar39) goto LAB_00056704;" if (parenthesized_expression "(ppppppcVar32 == ppppppcVar39)" ( (binary_expression "ppppppcVar32 == ppppppcVar39" identifier == identifier) )) (goto_statement "goto LAB_00056704;" goto statement_identifier ;)) (break_statement "break;" break ;) })) }) while (parenthesized_expression "((code ******)*ppppppcVar35 == ppppppcVar39)" ( (binary_expression "(code ******)*ppppppcVar35 == ppppppcVar39" (cast_expression "(code ******)*ppppppcVar35" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (pointer_expression "*ppppppcVar35" * identifier)) == identifier) )) ;) })) }))) })) (expression_statement "pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23abc) + 0x73a4);" (assignment_expression "pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23abc) + 0x73a4)" identifier = (cast_expression "(code *******)(*(int *)(puVar41 + 0x23abc) + 0x73a4)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(*(int *)(puVar41 + 0x23abc) + 0x73a4)" ( (binary_expression "*(int *)(puVar41 + 0x23abc) + 0x73a4" (pointer_expression "*(int *)(puVar41 + 0x23abc)" * (cast_expression "(int *)(puVar41 + 0x23abc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar41 + 0x23abc)" ( (binary_expression "puVar41 + 0x23abc" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "pppppppcVar30 = (code *******)FUN_00045fb4(pppppppcVar29[0xd],pppppppcVar38,pppppppcVar3);" (assignment_expression "pppppppcVar30 = (code *******)FUN_00045fb4(pppppppcVar29[0xd],pppppppcVar38,pppppppcVar3)" identifier = (cast_expression "(code *******)FUN_00045fb4(pppppppcVar29[0xd],pppppppcVar38,pppppppcVar3)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "FUN_00045fb4(pppppppcVar29[0xd],pppppppcVar38,pppppppcVar3)" identifier (argument_list "(pppppppcVar29[0xd],pppppppcVar38,pppppppcVar3)" ( (subscript_expression "pppppppcVar29[0xd]" identifier [ number_literal ]) , identifier , identifier ))))) ;) (expression_statement "pppppppcVar31 = pppppppcVar29;" (assignment_expression "pppppppcVar31 = pppppppcVar29" identifier = identifier) ;) (if_statement "if (pppppppcVar30 == (code *******)0x0) {\n            pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23b40) + -0x5be4);\n            pppppppcVar30 = (code *******)FUN_00045fb4(pppppppcVar29[0xd],pppppppcVar38);\n            if (pppppppcVar30 == (code *******)0x0) {\n              FUN_00046050(pppppppcVar29[0xd],*(int *)(puVar41 + 0x23abc) + 0x61b4);\n              pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23b40) + -0x4614);\n              pppppppcVar30 = (code *******)FUN_00046050(pppppppcVar29[0xd],pppppppcVar38);\n              if (pppppppcVar30 == (code *******)0x0) {\n                uVar7 = 0;\n                iVar18 = *(int *)(puVar41 + 0x23b40);\n                pppppppcVar33 = (code *******)0x0;\nLAB_00056744:\n                if ((code *******)pppppppcVar29[2] != pppppppcVar33) {\nLAB_00056750:\n                  if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                    pppppppcVar38 = pppppppcVar29;\n                    pppppppcVar31 = pppppppcVar33;\n                    pppppppcVar30 =\n                         (code *******)\n                         (*(code *)(iVar18 + -0x561c))\n                                   (&ppppppcStack_204,pppppppcVar29,pppppppcVar33,1);\n                    if (pppppppcVar30 != (code *******)0x0) goto LAB_00056168;\n                    if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                      (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                      uVar7 = 1;\n                    }\n                  }\n                  pppppppcVar33 = (code *******)((int)pppppppcVar33 + 1);\n                  goto LAB_00056744;\n                }\n                if (uVar7 != 0) {\n                  uVar7 = 0;\n                  pppppppcVar33 = (code *******)0x0;\n                  goto LAB_00056750;\n                }\n                if (((((uint)pppppppcVar3[7] & 0x8000000) == 0) &&\n                    (pppppppcVar3[6] != (code ******)0x0)) &&\n                   ((char)*(code *)(pppppppcVar29 + 0x16) < '\0')) {\n                  ppppppcVar32 = pppppppcVar29[2];\n                }\n                else {\n                  if (pppppppcVar29[0x13] == (code ******)0x0) goto LAB_000568f0;\n                  ppppppcVar32 = pppppppcVar29[2];\n                }\n                ppppppcVar35 = (code ******)\n                               (**(code **)(puVar41 + 0x23cf0))((int)ppppppcVar32 * 0xc);\n                pppppppcVar29[7] = ppppppcVar35;\n                if (ppppppcVar35 == (code ******)0x0) {\n                  pppppppcVar30 = (code *******)0xc;\n                  goto LAB_00056168;\n                }\n                if (ppppppcVar32 != (code ******)0x0) {\n                  iVar18 = 0;\n                  ppppppcVar32 = (code ******)0x0;\n                  do {\n                    puVar21 = (undefined1 *)((int)pppppppcVar29[7] + iVar18);\n                    *puVar21 = 0;\n                    puVar21[1] = 0;\n                    puVar21[2] = 0;\n                    puVar21[3] = 0;\n                    puVar21[4] = 0;\n                    puVar21[5] = 0;\n                    puVar21[6] = 0;\n                    puVar21[7] = 0;\n                    puVar21[8] = 0;\n                    puVar21[9] = 0;\n                    puVar21[10] = 0;\n                    puVar21[0xb] = 0;\n                    ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                    iVar18 = iVar18 + 0xc;\n                  } while (ppppppcVar32 < pppppppcVar29[2]);\n                  iVar18 = *(int *)(puVar41 + 0x23abc);\n                  if (pppppppcVar29[2] != (code ******)0x0) {\n                    iVar43 = 0;\n                    pppppppcStack_218 = (code *******)0x0;\n                    do {\n                      piVar5 = *(int **)((int)pppppppcVar29[6] + iVar43 + 8);\n                      if (0 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4)) {\n                        iVar37 = 0;\n                        do {\n                          pppppppcVar38 = pppppppcStack_218;\n                          iVar22 = (*(code *)(iVar18 + 0x6e30))\n                                             (pppppppcVar29[7] + *piVar5 * 3,pppppppcStack_218);\n                          pppppppcVar30 = (code *******)0xc;\n                          if (iVar22 == 0) goto LAB_00056168;\n                          iVar37 = iVar37 + 1;\n                          piVar5 = piVar5 + 1;\n                        } while (iVar37 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4));\n                      }\n                      pppppppcStack_218 = (code *******)((int)pppppppcStack_218 + 1);\n                      iVar43 = iVar43 + 0xc;\n                    } while (pppppppcStack_218 < pppppppcVar29[2]);\n                  }\n                }\nLAB_000568f0:\n                pppppppcStack_20c = (code *******)0x0;\n                if (((((uint)pppppppcVar34[0x16] & 0x20000000) != 0) && (uVar16 == 0)) &&\n                   (pppppppcVar3[5] == (code ******)0x0)) {\n                  if (pppppppcVar34[2] != (code ******)0x0) {\n                    pppppppcVar31 = (code *******)(*(int *)(puVar41 + 0x23754) + 0x6e4c);\n                    if (*(byte *)(*pppppppcVar34 + 1) < 0xd) {\n                    /* WARNING: Could not recover jumptable at 0x00056a60. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      pppppppcVar29 =\n                           (code *******)\n                           (*(code *)(puVar41 +\n                                     (int)(pppppppcVar31[*(byte *)(*pppppppcVar34 + 1)] + 0xadc7)))\n                                     ();\n                      return pppppppcVar29;\n                    }\n                    (**(code **)(puVar41 + 0x23bc4))(0);\n                    if (uVar7 != 0) {\n                      pppppppcVar31 = (code *******)&DAT_00000007;\n                      ppppppcVar32 = (code ******)0x0;\n                      do {\n                        ppppppcVar35 = *pppppppcVar34 + (int)ppppppcVar32 * 2;\n                        if (*(char *)(ppppppcVar35 + 1) == '\x01') {\n                          if (*(char *)ppppppcVar35 < '\0') {\n                            ppppppcVar35[1] = (code *****)((uint)ppppppcVar35[1] & 0xfffffbff);\n                          }\n                        }\n                        else if (*(char *)(ppppppcVar35 + 1) == '\x05') {\n                          *(char *)(ppppppcVar35 + 1) = '\a';\n                        }\n                        ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                      } while (ppppppcVar32 < pppppppcVar34[2]);\n                    }\n                  }\n                  pppppppcVar34[0x17] = (code ******)0x1;\n                  if (0 < (int)pppppppcVar34[0x13]) {\n                    uVar7 = 1;\n                  }\n                  *(byte *)(pppppppcVar34 + 0x16) =\n                       (byte)*(code *)(pppppppcVar34 + 0x16) & 0x9f | (byte)((uVar7 & 1) << 6);\n                }\n                ppppppcVar32 = (code ******)pppppppcVar34[0xd][3][7];\n                pppppppcVar34[0x12] = ppppppcVar32;\n                pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppppcVar32 * 3);\n                pppppppcVar33 = (code *******)FUN_000483e8(&ppppppcStack_204,pppppppcVar38);\n                pppppppcVar29 = pppppppcVar33;\n                pppppppcStack_208 = pppppppcVar33;\n                if (pppppppcVar33 == (code *******)0x0) {\n                  if ((0 < (int)pppppppcVar34[0x13]) && (0 < iStack_200)) {\n                    iVar18 = *(int *)(puVar41 + 0x23abc);\n                    iVar43 = *(int *)(puVar41 + 0x23abc);\n                    pppppppcVar29 = (code *******)0x0;\n                    do {\n                      pppppppcVar31 =\n                           (code *******)(*pppppppcVar34 + piStack_1fc[(int)pppppppcVar29] * 2);\n                      if (*(code *)(pppppppcVar31 + 1) == (code)0x4) {\n                        iVar37 = 0;\n                        piVar5 = piStack_1fc;\n                        if (iStack_200 < 1) {\nLAB_00056b8c:\n                          if (iStack_200 != iVar37) {\n                            ppppcVar40 = *pppppppcVar34[5][piStack_1fc[(int)pppppppcVar29] * 3 + 2];\n                            iVar37 = (*(code *)(iVar18 + 0x5ea8))(&ppppppcStack_204,ppppcVar40);\n                            if (iVar37 == 0) {\n                              pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppcVar40 * 3)\n                              ;\n                              pppppppcVar29 =\n                                   (code *******)\n                                   (*(code *)(iVar43 + 0x7f1c))(&ppppppcStack_204,pppppppcVar38);\n                              if (pppppppcVar29 != (code *******)0x0) goto LAB_00056cb8;\n                            }\n                          }\n                        }\n                        else {\n                          do {\n                            ppppppcVar32 = *pppppppcVar34 + *piVar5 * 2;\n                            if ((*(char *)(ppppppcVar32 + 1) == '\t') &&\n                               ((code ******)*ppppppcVar32 == *pppppppcVar31)) goto LAB_00056b8c;\n                            iVar37 = iVar37 + 1;\n                            piVar5 = piVar5 + 1;\n                          } while (iStack_200 != iVar37);\n                        }\n                      }\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1);\n                    } while ((int)pppppppcVar29 < iStack_200);\n                  }\n                  pppppppcVar31 = &ppppppcStack_204;\n                  pppppppcVar38 = pppppppcVar34;\n                  ppppppcVar32 = (code ******)\n                                 FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,0);\n                  pppppppcVar34[9] = ppppppcVar32;\n                  pppppppcVar29 = pppppppcStack_208;\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    if (((uint)ppppppcVar32[0xd] & 0x1000000) == 0) {\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar34[10] = ppppppcVar32;\n                    }\n                    else {\n                      pppppppcVar31 = &ppppppcStack_204;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,1);\n                      pppppppcVar34[10] = ppppppcVar32;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,2);\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar38 = pppppppcVar34;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,6);\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar29 = pppppppcStack_208;\n                      if (((pppppppcVar34[10] == (code ******)0x0) ||\n                          (pppppppcVar34[0xb] == (code ******)0x0)) ||\n                         (ppppppcVar32 == (code ******)0x0)) goto LAB_00056cb8;\n                    }\n                    (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                    pppppppcVar29 = pppppppcVar33;\n                  }\n                }\nLAB_00056cb8:\n                pppppppcStack_20c = pppppppcVar29;\n                FUN_0004b234(pppppppcVar3);\n                FUN_0004b2bc(&pppppppcStack_1f8);\n                pppppppcVar29 = pppppppcStack_20c;\n                if (pppppppcStack_20c != (code *******)0x0) {\n                  if (*(int *)(puVar41 + 0x23c78) != 0) {\n                    (**(code **)(puVar41 + 0x23df0))(pppppppcVar34 + 0x22);\n                  }\n                  FUN_0004b338(pppppppcVar34);\n                  *pppppppcVar3 = (code ******)0x0;\n                  pppppppcVar3[1] = (code ******)0x0;\n                  pppppppcVar29 = pppppppcStack_20c;\n                }\n                goto LAB_00056cfc;\n              }\n            }\n          }" if (parenthesized_expression "(pppppppcVar30 == (code *******)0x0)" ( (binary_expression "pppppppcVar30 == (code *******)0x0" identifier == (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\n            pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23b40) + -0x5be4);\n            pppppppcVar30 = (code *******)FUN_00045fb4(pppppppcVar29[0xd],pppppppcVar38);\n            if (pppppppcVar30 == (code *******)0x0) {\n              FUN_00046050(pppppppcVar29[0xd],*(int *)(puVar41 + 0x23abc) + 0x61b4);\n              pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23b40) + -0x4614);\n              pppppppcVar30 = (code *******)FUN_00046050(pppppppcVar29[0xd],pppppppcVar38);\n              if (pppppppcVar30 == (code *******)0x0) {\n                uVar7 = 0;\n                iVar18 = *(int *)(puVar41 + 0x23b40);\n                pppppppcVar33 = (code *******)0x0;\nLAB_00056744:\n                if ((code *******)pppppppcVar29[2] != pppppppcVar33) {\nLAB_00056750:\n                  if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                    pppppppcVar38 = pppppppcVar29;\n                    pppppppcVar31 = pppppppcVar33;\n                    pppppppcVar30 =\n                         (code *******)\n                         (*(code *)(iVar18 + -0x561c))\n                                   (&ppppppcStack_204,pppppppcVar29,pppppppcVar33,1);\n                    if (pppppppcVar30 != (code *******)0x0) goto LAB_00056168;\n                    if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                      (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                      uVar7 = 1;\n                    }\n                  }\n                  pppppppcVar33 = (code *******)((int)pppppppcVar33 + 1);\n                  goto LAB_00056744;\n                }\n                if (uVar7 != 0) {\n                  uVar7 = 0;\n                  pppppppcVar33 = (code *******)0x0;\n                  goto LAB_00056750;\n                }\n                if (((((uint)pppppppcVar3[7] & 0x8000000) == 0) &&\n                    (pppppppcVar3[6] != (code ******)0x0)) &&\n                   ((char)*(code *)(pppppppcVar29 + 0x16) < '\0')) {\n                  ppppppcVar32 = pppppppcVar29[2];\n                }\n                else {\n                  if (pppppppcVar29[0x13] == (code ******)0x0) goto LAB_000568f0;\n                  ppppppcVar32 = pppppppcVar29[2];\n                }\n                ppppppcVar35 = (code ******)\n                               (**(code **)(puVar41 + 0x23cf0))((int)ppppppcVar32 * 0xc);\n                pppppppcVar29[7] = ppppppcVar35;\n                if (ppppppcVar35 == (code ******)0x0) {\n                  pppppppcVar30 = (code *******)0xc;\n                  goto LAB_00056168;\n                }\n                if (ppppppcVar32 != (code ******)0x0) {\n                  iVar18 = 0;\n                  ppppppcVar32 = (code ******)0x0;\n                  do {\n                    puVar21 = (undefined1 *)((int)pppppppcVar29[7] + iVar18);\n                    *puVar21 = 0;\n                    puVar21[1] = 0;\n                    puVar21[2] = 0;\n                    puVar21[3] = 0;\n                    puVar21[4] = 0;\n                    puVar21[5] = 0;\n                    puVar21[6] = 0;\n                    puVar21[7] = 0;\n                    puVar21[8] = 0;\n                    puVar21[9] = 0;\n                    puVar21[10] = 0;\n                    puVar21[0xb] = 0;\n                    ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                    iVar18 = iVar18 + 0xc;\n                  } while (ppppppcVar32 < pppppppcVar29[2]);\n                  iVar18 = *(int *)(puVar41 + 0x23abc);\n                  if (pppppppcVar29[2] != (code ******)0x0) {\n                    iVar43 = 0;\n                    pppppppcStack_218 = (code *******)0x0;\n                    do {\n                      piVar5 = *(int **)((int)pppppppcVar29[6] + iVar43 + 8);\n                      if (0 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4)) {\n                        iVar37 = 0;\n                        do {\n                          pppppppcVar38 = pppppppcStack_218;\n                          iVar22 = (*(code *)(iVar18 + 0x6e30))\n                                             (pppppppcVar29[7] + *piVar5 * 3,pppppppcStack_218);\n                          pppppppcVar30 = (code *******)0xc;\n                          if (iVar22 == 0) goto LAB_00056168;\n                          iVar37 = iVar37 + 1;\n                          piVar5 = piVar5 + 1;\n                        } while (iVar37 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4));\n                      }\n                      pppppppcStack_218 = (code *******)((int)pppppppcStack_218 + 1);\n                      iVar43 = iVar43 + 0xc;\n                    } while (pppppppcStack_218 < pppppppcVar29[2]);\n                  }\n                }\nLAB_000568f0:\n                pppppppcStack_20c = (code *******)0x0;\n                if (((((uint)pppppppcVar34[0x16] & 0x20000000) != 0) && (uVar16 == 0)) &&\n                   (pppppppcVar3[5] == (code ******)0x0)) {\n                  if (pppppppcVar34[2] != (code ******)0x0) {\n                    pppppppcVar31 = (code *******)(*(int *)(puVar41 + 0x23754) + 0x6e4c);\n                    if (*(byte *)(*pppppppcVar34 + 1) < 0xd) {\n                    /* WARNING: Could not recover jumptable at 0x00056a60. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      pppppppcVar29 =\n                           (code *******)\n                           (*(code *)(puVar41 +\n                                     (int)(pppppppcVar31[*(byte *)(*pppppppcVar34 + 1)] + 0xadc7)))\n                                     ();\n                      return pppppppcVar29;\n                    }\n                    (**(code **)(puVar41 + 0x23bc4))(0);\n                    if (uVar7 != 0) {\n                      pppppppcVar31 = (code *******)&DAT_00000007;\n                      ppppppcVar32 = (code ******)0x0;\n                      do {\n                        ppppppcVar35 = *pppppppcVar34 + (int)ppppppcVar32 * 2;\n                        if (*(char *)(ppppppcVar35 + 1) == '\x01') {\n                          if (*(char *)ppppppcVar35 < '\0') {\n                            ppppppcVar35[1] = (code *****)((uint)ppppppcVar35[1] & 0xfffffbff);\n                          }\n                        }\n                        else if (*(char *)(ppppppcVar35 + 1) == '\x05') {\n                          *(char *)(ppppppcVar35 + 1) = '\a';\n                        }\n                        ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                      } while (ppppppcVar32 < pppppppcVar34[2]);\n                    }\n                  }\n                  pppppppcVar34[0x17] = (code ******)0x1;\n                  if (0 < (int)pppppppcVar34[0x13]) {\n                    uVar7 = 1;\n                  }\n                  *(byte *)(pppppppcVar34 + 0x16) =\n                       (byte)*(code *)(pppppppcVar34 + 0x16) & 0x9f | (byte)((uVar7 & 1) << 6);\n                }\n                ppppppcVar32 = (code ******)pppppppcVar34[0xd][3][7];\n                pppppppcVar34[0x12] = ppppppcVar32;\n                pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppppcVar32 * 3);\n                pppppppcVar33 = (code *******)FUN_000483e8(&ppppppcStack_204,pppppppcVar38);\n                pppppppcVar29 = pppppppcVar33;\n                pppppppcStack_208 = pppppppcVar33;\n                if (pppppppcVar33 == (code *******)0x0) {\n                  if ((0 < (int)pppppppcVar34[0x13]) && (0 < iStack_200)) {\n                    iVar18 = *(int *)(puVar41 + 0x23abc);\n                    iVar43 = *(int *)(puVar41 + 0x23abc);\n                    pppppppcVar29 = (code *******)0x0;\n                    do {\n                      pppppppcVar31 =\n                           (code *******)(*pppppppcVar34 + piStack_1fc[(int)pppppppcVar29] * 2);\n                      if (*(code *)(pppppppcVar31 + 1) == (code)0x4) {\n                        iVar37 = 0;\n                        piVar5 = piStack_1fc;\n                        if (iStack_200 < 1) {\nLAB_00056b8c:\n                          if (iStack_200 != iVar37) {\n                            ppppcVar40 = *pppppppcVar34[5][piStack_1fc[(int)pppppppcVar29] * 3 + 2];\n                            iVar37 = (*(code *)(iVar18 + 0x5ea8))(&ppppppcStack_204,ppppcVar40);\n                            if (iVar37 == 0) {\n                              pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppcVar40 * 3)\n                              ;\n                              pppppppcVar29 =\n                                   (code *******)\n                                   (*(code *)(iVar43 + 0x7f1c))(&ppppppcStack_204,pppppppcVar38);\n                              if (pppppppcVar29 != (code *******)0x0) goto LAB_00056cb8;\n                            }\n                          }\n                        }\n                        else {\n                          do {\n                            ppppppcVar32 = *pppppppcVar34 + *piVar5 * 2;\n                            if ((*(char *)(ppppppcVar32 + 1) == '\t') &&\n                               ((code ******)*ppppppcVar32 == *pppppppcVar31)) goto LAB_00056b8c;\n                            iVar37 = iVar37 + 1;\n                            piVar5 = piVar5 + 1;\n                          } while (iStack_200 != iVar37);\n                        }\n                      }\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1);\n                    } while ((int)pppppppcVar29 < iStack_200);\n                  }\n                  pppppppcVar31 = &ppppppcStack_204;\n                  pppppppcVar38 = pppppppcVar34;\n                  ppppppcVar32 = (code ******)\n                                 FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,0);\n                  pppppppcVar34[9] = ppppppcVar32;\n                  pppppppcVar29 = pppppppcStack_208;\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    if (((uint)ppppppcVar32[0xd] & 0x1000000) == 0) {\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar34[10] = ppppppcVar32;\n                    }\n                    else {\n                      pppppppcVar31 = &ppppppcStack_204;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,1);\n                      pppppppcVar34[10] = ppppppcVar32;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,2);\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar38 = pppppppcVar34;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,6);\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar29 = pppppppcStack_208;\n                      if (((pppppppcVar34[10] == (code ******)0x0) ||\n                          (pppppppcVar34[0xb] == (code ******)0x0)) ||\n                         (ppppppcVar32 == (code ******)0x0)) goto LAB_00056cb8;\n                    }\n                    (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                    pppppppcVar29 = pppppppcVar33;\n                  }\n                }\nLAB_00056cb8:\n                pppppppcStack_20c = pppppppcVar29;\n                FUN_0004b234(pppppppcVar3);\n                FUN_0004b2bc(&pppppppcStack_1f8);\n                pppppppcVar29 = pppppppcStack_20c;\n                if (pppppppcStack_20c != (code *******)0x0) {\n                  if (*(int *)(puVar41 + 0x23c78) != 0) {\n                    (**(code **)(puVar41 + 0x23df0))(pppppppcVar34 + 0x22);\n                  }\n                  FUN_0004b338(pppppppcVar34);\n                  *pppppppcVar3 = (code ******)0x0;\n                  pppppppcVar3[1] = (code ******)0x0;\n                  pppppppcVar29 = pppppppcStack_20c;\n                }\n                goto LAB_00056cfc;\n              }\n            }\n          }" { (expression_statement "pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23b40) + -0x5be4);" (assignment_expression "pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23b40) + -0x5be4)" identifier = (cast_expression "(code *******)(*(int *)(puVar41 + 0x23b40) + -0x5be4)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(*(int *)(puVar41 + 0x23b40) + -0x5be4)" ( (binary_expression "*(int *)(puVar41 + 0x23b40) + -0x5be4" (pointer_expression "*(int *)(puVar41 + 0x23b40)" * (cast_expression "(int *)(puVar41 + 0x23b40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar41 + 0x23b40)" ( (binary_expression "puVar41 + 0x23b40" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "pppppppcVar30 = (code *******)FUN_00045fb4(pppppppcVar29[0xd],pppppppcVar38);" (assignment_expression "pppppppcVar30 = (code *******)FUN_00045fb4(pppppppcVar29[0xd],pppppppcVar38)" identifier = (cast_expression "(code *******)FUN_00045fb4(pppppppcVar29[0xd],pppppppcVar38)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "FUN_00045fb4(pppppppcVar29[0xd],pppppppcVar38)" identifier (argument_list "(pppppppcVar29[0xd],pppppppcVar38)" ( (subscript_expression "pppppppcVar29[0xd]" identifier [ number_literal ]) , identifier ))))) ;) (if_statement "if (pppppppcVar30 == (code *******)0x0) {\n              FUN_00046050(pppppppcVar29[0xd],*(int *)(puVar41 + 0x23abc) + 0x61b4);\n              pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23b40) + -0x4614);\n              pppppppcVar30 = (code *******)FUN_00046050(pppppppcVar29[0xd],pppppppcVar38);\n              if (pppppppcVar30 == (code *******)0x0) {\n                uVar7 = 0;\n                iVar18 = *(int *)(puVar41 + 0x23b40);\n                pppppppcVar33 = (code *******)0x0;\nLAB_00056744:\n                if ((code *******)pppppppcVar29[2] != pppppppcVar33) {\nLAB_00056750:\n                  if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                    pppppppcVar38 = pppppppcVar29;\n                    pppppppcVar31 = pppppppcVar33;\n                    pppppppcVar30 =\n                         (code *******)\n                         (*(code *)(iVar18 + -0x561c))\n                                   (&ppppppcStack_204,pppppppcVar29,pppppppcVar33,1);\n                    if (pppppppcVar30 != (code *******)0x0) goto LAB_00056168;\n                    if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                      (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                      uVar7 = 1;\n                    }\n                  }\n                  pppppppcVar33 = (code *******)((int)pppppppcVar33 + 1);\n                  goto LAB_00056744;\n                }\n                if (uVar7 != 0) {\n                  uVar7 = 0;\n                  pppppppcVar33 = (code *******)0x0;\n                  goto LAB_00056750;\n                }\n                if (((((uint)pppppppcVar3[7] & 0x8000000) == 0) &&\n                    (pppppppcVar3[6] != (code ******)0x0)) &&\n                   ((char)*(code *)(pppppppcVar29 + 0x16) < '\0')) {\n                  ppppppcVar32 = pppppppcVar29[2];\n                }\n                else {\n                  if (pppppppcVar29[0x13] == (code ******)0x0) goto LAB_000568f0;\n                  ppppppcVar32 = pppppppcVar29[2];\n                }\n                ppppppcVar35 = (code ******)\n                               (**(code **)(puVar41 + 0x23cf0))((int)ppppppcVar32 * 0xc);\n                pppppppcVar29[7] = ppppppcVar35;\n                if (ppppppcVar35 == (code ******)0x0) {\n                  pppppppcVar30 = (code *******)0xc;\n                  goto LAB_00056168;\n                }\n                if (ppppppcVar32 != (code ******)0x0) {\n                  iVar18 = 0;\n                  ppppppcVar32 = (code ******)0x0;\n                  do {\n                    puVar21 = (undefined1 *)((int)pppppppcVar29[7] + iVar18);\n                    *puVar21 = 0;\n                    puVar21[1] = 0;\n                    puVar21[2] = 0;\n                    puVar21[3] = 0;\n                    puVar21[4] = 0;\n                    puVar21[5] = 0;\n                    puVar21[6] = 0;\n                    puVar21[7] = 0;\n                    puVar21[8] = 0;\n                    puVar21[9] = 0;\n                    puVar21[10] = 0;\n                    puVar21[0xb] = 0;\n                    ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                    iVar18 = iVar18 + 0xc;\n                  } while (ppppppcVar32 < pppppppcVar29[2]);\n                  iVar18 = *(int *)(puVar41 + 0x23abc);\n                  if (pppppppcVar29[2] != (code ******)0x0) {\n                    iVar43 = 0;\n                    pppppppcStack_218 = (code *******)0x0;\n                    do {\n                      piVar5 = *(int **)((int)pppppppcVar29[6] + iVar43 + 8);\n                      if (0 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4)) {\n                        iVar37 = 0;\n                        do {\n                          pppppppcVar38 = pppppppcStack_218;\n                          iVar22 = (*(code *)(iVar18 + 0x6e30))\n                                             (pppppppcVar29[7] + *piVar5 * 3,pppppppcStack_218);\n                          pppppppcVar30 = (code *******)0xc;\n                          if (iVar22 == 0) goto LAB_00056168;\n                          iVar37 = iVar37 + 1;\n                          piVar5 = piVar5 + 1;\n                        } while (iVar37 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4));\n                      }\n                      pppppppcStack_218 = (code *******)((int)pppppppcStack_218 + 1);\n                      iVar43 = iVar43 + 0xc;\n                    } while (pppppppcStack_218 < pppppppcVar29[2]);\n                  }\n                }\nLAB_000568f0:\n                pppppppcStack_20c = (code *******)0x0;\n                if (((((uint)pppppppcVar34[0x16] & 0x20000000) != 0) && (uVar16 == 0)) &&\n                   (pppppppcVar3[5] == (code ******)0x0)) {\n                  if (pppppppcVar34[2] != (code ******)0x0) {\n                    pppppppcVar31 = (code *******)(*(int *)(puVar41 + 0x23754) + 0x6e4c);\n                    if (*(byte *)(*pppppppcVar34 + 1) < 0xd) {\n                    /* WARNING: Could not recover jumptable at 0x00056a60. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      pppppppcVar29 =\n                           (code *******)\n                           (*(code *)(puVar41 +\n                                     (int)(pppppppcVar31[*(byte *)(*pppppppcVar34 + 1)] + 0xadc7)))\n                                     ();\n                      return pppppppcVar29;\n                    }\n                    (**(code **)(puVar41 + 0x23bc4))(0);\n                    if (uVar7 != 0) {\n                      pppppppcVar31 = (code *******)&DAT_00000007;\n                      ppppppcVar32 = (code ******)0x0;\n                      do {\n                        ppppppcVar35 = *pppppppcVar34 + (int)ppppppcVar32 * 2;\n                        if (*(char *)(ppppppcVar35 + 1) == '\x01') {\n                          if (*(char *)ppppppcVar35 < '\0') {\n                            ppppppcVar35[1] = (code *****)((uint)ppppppcVar35[1] & 0xfffffbff);\n                          }\n                        }\n                        else if (*(char *)(ppppppcVar35 + 1) == '\x05') {\n                          *(char *)(ppppppcVar35 + 1) = '\a';\n                        }\n                        ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                      } while (ppppppcVar32 < pppppppcVar34[2]);\n                    }\n                  }\n                  pppppppcVar34[0x17] = (code ******)0x1;\n                  if (0 < (int)pppppppcVar34[0x13]) {\n                    uVar7 = 1;\n                  }\n                  *(byte *)(pppppppcVar34 + 0x16) =\n                       (byte)*(code *)(pppppppcVar34 + 0x16) & 0x9f | (byte)((uVar7 & 1) << 6);\n                }\n                ppppppcVar32 = (code ******)pppppppcVar34[0xd][3][7];\n                pppppppcVar34[0x12] = ppppppcVar32;\n                pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppppcVar32 * 3);\n                pppppppcVar33 = (code *******)FUN_000483e8(&ppppppcStack_204,pppppppcVar38);\n                pppppppcVar29 = pppppppcVar33;\n                pppppppcStack_208 = pppppppcVar33;\n                if (pppppppcVar33 == (code *******)0x0) {\n                  if ((0 < (int)pppppppcVar34[0x13]) && (0 < iStack_200)) {\n                    iVar18 = *(int *)(puVar41 + 0x23abc);\n                    iVar43 = *(int *)(puVar41 + 0x23abc);\n                    pppppppcVar29 = (code *******)0x0;\n                    do {\n                      pppppppcVar31 =\n                           (code *******)(*pppppppcVar34 + piStack_1fc[(int)pppppppcVar29] * 2);\n                      if (*(code *)(pppppppcVar31 + 1) == (code)0x4) {\n                        iVar37 = 0;\n                        piVar5 = piStack_1fc;\n                        if (iStack_200 < 1) {\nLAB_00056b8c:\n                          if (iStack_200 != iVar37) {\n                            ppppcVar40 = *pppppppcVar34[5][piStack_1fc[(int)pppppppcVar29] * 3 + 2];\n                            iVar37 = (*(code *)(iVar18 + 0x5ea8))(&ppppppcStack_204,ppppcVar40);\n                            if (iVar37 == 0) {\n                              pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppcVar40 * 3)\n                              ;\n                              pppppppcVar29 =\n                                   (code *******)\n                                   (*(code *)(iVar43 + 0x7f1c))(&ppppppcStack_204,pppppppcVar38);\n                              if (pppppppcVar29 != (code *******)0x0) goto LAB_00056cb8;\n                            }\n                          }\n                        }\n                        else {\n                          do {\n                            ppppppcVar32 = *pppppppcVar34 + *piVar5 * 2;\n                            if ((*(char *)(ppppppcVar32 + 1) == '\t') &&\n                               ((code ******)*ppppppcVar32 == *pppppppcVar31)) goto LAB_00056b8c;\n                            iVar37 = iVar37 + 1;\n                            piVar5 = piVar5 + 1;\n                          } while (iStack_200 != iVar37);\n                        }\n                      }\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1);\n                    } while ((int)pppppppcVar29 < iStack_200);\n                  }\n                  pppppppcVar31 = &ppppppcStack_204;\n                  pppppppcVar38 = pppppppcVar34;\n                  ppppppcVar32 = (code ******)\n                                 FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,0);\n                  pppppppcVar34[9] = ppppppcVar32;\n                  pppppppcVar29 = pppppppcStack_208;\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    if (((uint)ppppppcVar32[0xd] & 0x1000000) == 0) {\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar34[10] = ppppppcVar32;\n                    }\n                    else {\n                      pppppppcVar31 = &ppppppcStack_204;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,1);\n                      pppppppcVar34[10] = ppppppcVar32;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,2);\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar38 = pppppppcVar34;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,6);\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar29 = pppppppcStack_208;\n                      if (((pppppppcVar34[10] == (code ******)0x0) ||\n                          (pppppppcVar34[0xb] == (code ******)0x0)) ||\n                         (ppppppcVar32 == (code ******)0x0)) goto LAB_00056cb8;\n                    }\n                    (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                    pppppppcVar29 = pppppppcVar33;\n                  }\n                }\nLAB_00056cb8:\n                pppppppcStack_20c = pppppppcVar29;\n                FUN_0004b234(pppppppcVar3);\n                FUN_0004b2bc(&pppppppcStack_1f8);\n                pppppppcVar29 = pppppppcStack_20c;\n                if (pppppppcStack_20c != (code *******)0x0) {\n                  if (*(int *)(puVar41 + 0x23c78) != 0) {\n                    (**(code **)(puVar41 + 0x23df0))(pppppppcVar34 + 0x22);\n                  }\n                  FUN_0004b338(pppppppcVar34);\n                  *pppppppcVar3 = (code ******)0x0;\n                  pppppppcVar3[1] = (code ******)0x0;\n                  pppppppcVar29 = pppppppcStack_20c;\n                }\n                goto LAB_00056cfc;\n              }\n            }" if (parenthesized_expression "(pppppppcVar30 == (code *******)0x0)" ( (binary_expression "pppppppcVar30 == (code *******)0x0" identifier == (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\n              FUN_00046050(pppppppcVar29[0xd],*(int *)(puVar41 + 0x23abc) + 0x61b4);\n              pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23b40) + -0x4614);\n              pppppppcVar30 = (code *******)FUN_00046050(pppppppcVar29[0xd],pppppppcVar38);\n              if (pppppppcVar30 == (code *******)0x0) {\n                uVar7 = 0;\n                iVar18 = *(int *)(puVar41 + 0x23b40);\n                pppppppcVar33 = (code *******)0x0;\nLAB_00056744:\n                if ((code *******)pppppppcVar29[2] != pppppppcVar33) {\nLAB_00056750:\n                  if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                    pppppppcVar38 = pppppppcVar29;\n                    pppppppcVar31 = pppppppcVar33;\n                    pppppppcVar30 =\n                         (code *******)\n                         (*(code *)(iVar18 + -0x561c))\n                                   (&ppppppcStack_204,pppppppcVar29,pppppppcVar33,1);\n                    if (pppppppcVar30 != (code *******)0x0) goto LAB_00056168;\n                    if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                      (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                      uVar7 = 1;\n                    }\n                  }\n                  pppppppcVar33 = (code *******)((int)pppppppcVar33 + 1);\n                  goto LAB_00056744;\n                }\n                if (uVar7 != 0) {\n                  uVar7 = 0;\n                  pppppppcVar33 = (code *******)0x0;\n                  goto LAB_00056750;\n                }\n                if (((((uint)pppppppcVar3[7] & 0x8000000) == 0) &&\n                    (pppppppcVar3[6] != (code ******)0x0)) &&\n                   ((char)*(code *)(pppppppcVar29 + 0x16) < '\0')) {\n                  ppppppcVar32 = pppppppcVar29[2];\n                }\n                else {\n                  if (pppppppcVar29[0x13] == (code ******)0x0) goto LAB_000568f0;\n                  ppppppcVar32 = pppppppcVar29[2];\n                }\n                ppppppcVar35 = (code ******)\n                               (**(code **)(puVar41 + 0x23cf0))((int)ppppppcVar32 * 0xc);\n                pppppppcVar29[7] = ppppppcVar35;\n                if (ppppppcVar35 == (code ******)0x0) {\n                  pppppppcVar30 = (code *******)0xc;\n                  goto LAB_00056168;\n                }\n                if (ppppppcVar32 != (code ******)0x0) {\n                  iVar18 = 0;\n                  ppppppcVar32 = (code ******)0x0;\n                  do {\n                    puVar21 = (undefined1 *)((int)pppppppcVar29[7] + iVar18);\n                    *puVar21 = 0;\n                    puVar21[1] = 0;\n                    puVar21[2] = 0;\n                    puVar21[3] = 0;\n                    puVar21[4] = 0;\n                    puVar21[5] = 0;\n                    puVar21[6] = 0;\n                    puVar21[7] = 0;\n                    puVar21[8] = 0;\n                    puVar21[9] = 0;\n                    puVar21[10] = 0;\n                    puVar21[0xb] = 0;\n                    ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                    iVar18 = iVar18 + 0xc;\n                  } while (ppppppcVar32 < pppppppcVar29[2]);\n                  iVar18 = *(int *)(puVar41 + 0x23abc);\n                  if (pppppppcVar29[2] != (code ******)0x0) {\n                    iVar43 = 0;\n                    pppppppcStack_218 = (code *******)0x0;\n                    do {\n                      piVar5 = *(int **)((int)pppppppcVar29[6] + iVar43 + 8);\n                      if (0 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4)) {\n                        iVar37 = 0;\n                        do {\n                          pppppppcVar38 = pppppppcStack_218;\n                          iVar22 = (*(code *)(iVar18 + 0x6e30))\n                                             (pppppppcVar29[7] + *piVar5 * 3,pppppppcStack_218);\n                          pppppppcVar30 = (code *******)0xc;\n                          if (iVar22 == 0) goto LAB_00056168;\n                          iVar37 = iVar37 + 1;\n                          piVar5 = piVar5 + 1;\n                        } while (iVar37 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4));\n                      }\n                      pppppppcStack_218 = (code *******)((int)pppppppcStack_218 + 1);\n                      iVar43 = iVar43 + 0xc;\n                    } while (pppppppcStack_218 < pppppppcVar29[2]);\n                  }\n                }\nLAB_000568f0:\n                pppppppcStack_20c = (code *******)0x0;\n                if (((((uint)pppppppcVar34[0x16] & 0x20000000) != 0) && (uVar16 == 0)) &&\n                   (pppppppcVar3[5] == (code ******)0x0)) {\n                  if (pppppppcVar34[2] != (code ******)0x0) {\n                    pppppppcVar31 = (code *******)(*(int *)(puVar41 + 0x23754) + 0x6e4c);\n                    if (*(byte *)(*pppppppcVar34 + 1) < 0xd) {\n                    /* WARNING: Could not recover jumptable at 0x00056a60. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      pppppppcVar29 =\n                           (code *******)\n                           (*(code *)(puVar41 +\n                                     (int)(pppppppcVar31[*(byte *)(*pppppppcVar34 + 1)] + 0xadc7)))\n                                     ();\n                      return pppppppcVar29;\n                    }\n                    (**(code **)(puVar41 + 0x23bc4))(0);\n                    if (uVar7 != 0) {\n                      pppppppcVar31 = (code *******)&DAT_00000007;\n                      ppppppcVar32 = (code ******)0x0;\n                      do {\n                        ppppppcVar35 = *pppppppcVar34 + (int)ppppppcVar32 * 2;\n                        if (*(char *)(ppppppcVar35 + 1) == '\x01') {\n                          if (*(char *)ppppppcVar35 < '\0') {\n                            ppppppcVar35[1] = (code *****)((uint)ppppppcVar35[1] & 0xfffffbff);\n                          }\n                        }\n                        else if (*(char *)(ppppppcVar35 + 1) == '\x05') {\n                          *(char *)(ppppppcVar35 + 1) = '\a';\n                        }\n                        ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                      } while (ppppppcVar32 < pppppppcVar34[2]);\n                    }\n                  }\n                  pppppppcVar34[0x17] = (code ******)0x1;\n                  if (0 < (int)pppppppcVar34[0x13]) {\n                    uVar7 = 1;\n                  }\n                  *(byte *)(pppppppcVar34 + 0x16) =\n                       (byte)*(code *)(pppppppcVar34 + 0x16) & 0x9f | (byte)((uVar7 & 1) << 6);\n                }\n                ppppppcVar32 = (code ******)pppppppcVar34[0xd][3][7];\n                pppppppcVar34[0x12] = ppppppcVar32;\n                pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppppcVar32 * 3);\n                pppppppcVar33 = (code *******)FUN_000483e8(&ppppppcStack_204,pppppppcVar38);\n                pppppppcVar29 = pppppppcVar33;\n                pppppppcStack_208 = pppppppcVar33;\n                if (pppppppcVar33 == (code *******)0x0) {\n                  if ((0 < (int)pppppppcVar34[0x13]) && (0 < iStack_200)) {\n                    iVar18 = *(int *)(puVar41 + 0x23abc);\n                    iVar43 = *(int *)(puVar41 + 0x23abc);\n                    pppppppcVar29 = (code *******)0x0;\n                    do {\n                      pppppppcVar31 =\n                           (code *******)(*pppppppcVar34 + piStack_1fc[(int)pppppppcVar29] * 2);\n                      if (*(code *)(pppppppcVar31 + 1) == (code)0x4) {\n                        iVar37 = 0;\n                        piVar5 = piStack_1fc;\n                        if (iStack_200 < 1) {\nLAB_00056b8c:\n                          if (iStack_200 != iVar37) {\n                            ppppcVar40 = *pppppppcVar34[5][piStack_1fc[(int)pppppppcVar29] * 3 + 2];\n                            iVar37 = (*(code *)(iVar18 + 0x5ea8))(&ppppppcStack_204,ppppcVar40);\n                            if (iVar37 == 0) {\n                              pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppcVar40 * 3)\n                              ;\n                              pppppppcVar29 =\n                                   (code *******)\n                                   (*(code *)(iVar43 + 0x7f1c))(&ppppppcStack_204,pppppppcVar38);\n                              if (pppppppcVar29 != (code *******)0x0) goto LAB_00056cb8;\n                            }\n                          }\n                        }\n                        else {\n                          do {\n                            ppppppcVar32 = *pppppppcVar34 + *piVar5 * 2;\n                            if ((*(char *)(ppppppcVar32 + 1) == '\t') &&\n                               ((code ******)*ppppppcVar32 == *pppppppcVar31)) goto LAB_00056b8c;\n                            iVar37 = iVar37 + 1;\n                            piVar5 = piVar5 + 1;\n                          } while (iStack_200 != iVar37);\n                        }\n                      }\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1);\n                    } while ((int)pppppppcVar29 < iStack_200);\n                  }\n                  pppppppcVar31 = &ppppppcStack_204;\n                  pppppppcVar38 = pppppppcVar34;\n                  ppppppcVar32 = (code ******)\n                                 FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,0);\n                  pppppppcVar34[9] = ppppppcVar32;\n                  pppppppcVar29 = pppppppcStack_208;\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    if (((uint)ppppppcVar32[0xd] & 0x1000000) == 0) {\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar34[10] = ppppppcVar32;\n                    }\n                    else {\n                      pppppppcVar31 = &ppppppcStack_204;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,1);\n                      pppppppcVar34[10] = ppppppcVar32;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,2);\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar38 = pppppppcVar34;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,6);\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar29 = pppppppcStack_208;\n                      if (((pppppppcVar34[10] == (code ******)0x0) ||\n                          (pppppppcVar34[0xb] == (code ******)0x0)) ||\n                         (ppppppcVar32 == (code ******)0x0)) goto LAB_00056cb8;\n                    }\n                    (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                    pppppppcVar29 = pppppppcVar33;\n                  }\n                }\nLAB_00056cb8:\n                pppppppcStack_20c = pppppppcVar29;\n                FUN_0004b234(pppppppcVar3);\n                FUN_0004b2bc(&pppppppcStack_1f8);\n                pppppppcVar29 = pppppppcStack_20c;\n                if (pppppppcStack_20c != (code *******)0x0) {\n                  if (*(int *)(puVar41 + 0x23c78) != 0) {\n                    (**(code **)(puVar41 + 0x23df0))(pppppppcVar34 + 0x22);\n                  }\n                  FUN_0004b338(pppppppcVar34);\n                  *pppppppcVar3 = (code ******)0x0;\n                  pppppppcVar3[1] = (code ******)0x0;\n                  pppppppcVar29 = pppppppcStack_20c;\n                }\n                goto LAB_00056cfc;\n              }\n            }" { (expression_statement "FUN_00046050(pppppppcVar29[0xd],*(int *)(puVar41 + 0x23abc) + 0x61b4);" (call_expression "FUN_00046050(pppppppcVar29[0xd],*(int *)(puVar41 + 0x23abc) + 0x61b4)" identifier (argument_list "(pppppppcVar29[0xd],*(int *)(puVar41 + 0x23abc) + 0x61b4)" ( (subscript_expression "pppppppcVar29[0xd]" identifier [ number_literal ]) , (binary_expression "*(int *)(puVar41 + 0x23abc) + 0x61b4" (pointer_expression "*(int *)(puVar41 + 0x23abc)" * (cast_expression "(int *)(puVar41 + 0x23abc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar41 + 0x23abc)" ( (binary_expression "puVar41 + 0x23abc" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23b40) + -0x4614);" (assignment_expression "pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23b40) + -0x4614)" identifier = (cast_expression "(code *******)(*(int *)(puVar41 + 0x23b40) + -0x4614)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(*(int *)(puVar41 + 0x23b40) + -0x4614)" ( (binary_expression "*(int *)(puVar41 + 0x23b40) + -0x4614" (pointer_expression "*(int *)(puVar41 + 0x23b40)" * (cast_expression "(int *)(puVar41 + 0x23b40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar41 + 0x23b40)" ( (binary_expression "puVar41 + 0x23b40" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "pppppppcVar30 = (code *******)FUN_00046050(pppppppcVar29[0xd],pppppppcVar38);" (assignment_expression "pppppppcVar30 = (code *******)FUN_00046050(pppppppcVar29[0xd],pppppppcVar38)" identifier = (cast_expression "(code *******)FUN_00046050(pppppppcVar29[0xd],pppppppcVar38)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "FUN_00046050(pppppppcVar29[0xd],pppppppcVar38)" identifier (argument_list "(pppppppcVar29[0xd],pppppppcVar38)" ( (subscript_expression "pppppppcVar29[0xd]" identifier [ number_literal ]) , identifier ))))) ;) (if_statement "if (pppppppcVar30 == (code *******)0x0) {\n                uVar7 = 0;\n                iVar18 = *(int *)(puVar41 + 0x23b40);\n                pppppppcVar33 = (code *******)0x0;\nLAB_00056744:\n                if ((code *******)pppppppcVar29[2] != pppppppcVar33) {\nLAB_00056750:\n                  if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                    pppppppcVar38 = pppppppcVar29;\n                    pppppppcVar31 = pppppppcVar33;\n                    pppppppcVar30 =\n                         (code *******)\n                         (*(code *)(iVar18 + -0x561c))\n                                   (&ppppppcStack_204,pppppppcVar29,pppppppcVar33,1);\n                    if (pppppppcVar30 != (code *******)0x0) goto LAB_00056168;\n                    if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                      (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                      uVar7 = 1;\n                    }\n                  }\n                  pppppppcVar33 = (code *******)((int)pppppppcVar33 + 1);\n                  goto LAB_00056744;\n                }\n                if (uVar7 != 0) {\n                  uVar7 = 0;\n                  pppppppcVar33 = (code *******)0x0;\n                  goto LAB_00056750;\n                }\n                if (((((uint)pppppppcVar3[7] & 0x8000000) == 0) &&\n                    (pppppppcVar3[6] != (code ******)0x0)) &&\n                   ((char)*(code *)(pppppppcVar29 + 0x16) < '\0')) {\n                  ppppppcVar32 = pppppppcVar29[2];\n                }\n                else {\n                  if (pppppppcVar29[0x13] == (code ******)0x0) goto LAB_000568f0;\n                  ppppppcVar32 = pppppppcVar29[2];\n                }\n                ppppppcVar35 = (code ******)\n                               (**(code **)(puVar41 + 0x23cf0))((int)ppppppcVar32 * 0xc);\n                pppppppcVar29[7] = ppppppcVar35;\n                if (ppppppcVar35 == (code ******)0x0) {\n                  pppppppcVar30 = (code *******)0xc;\n                  goto LAB_00056168;\n                }\n                if (ppppppcVar32 != (code ******)0x0) {\n                  iVar18 = 0;\n                  ppppppcVar32 = (code ******)0x0;\n                  do {\n                    puVar21 = (undefined1 *)((int)pppppppcVar29[7] + iVar18);\n                    *puVar21 = 0;\n                    puVar21[1] = 0;\n                    puVar21[2] = 0;\n                    puVar21[3] = 0;\n                    puVar21[4] = 0;\n                    puVar21[5] = 0;\n                    puVar21[6] = 0;\n                    puVar21[7] = 0;\n                    puVar21[8] = 0;\n                    puVar21[9] = 0;\n                    puVar21[10] = 0;\n                    puVar21[0xb] = 0;\n                    ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                    iVar18 = iVar18 + 0xc;\n                  } while (ppppppcVar32 < pppppppcVar29[2]);\n                  iVar18 = *(int *)(puVar41 + 0x23abc);\n                  if (pppppppcVar29[2] != (code ******)0x0) {\n                    iVar43 = 0;\n                    pppppppcStack_218 = (code *******)0x0;\n                    do {\n                      piVar5 = *(int **)((int)pppppppcVar29[6] + iVar43 + 8);\n                      if (0 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4)) {\n                        iVar37 = 0;\n                        do {\n                          pppppppcVar38 = pppppppcStack_218;\n                          iVar22 = (*(code *)(iVar18 + 0x6e30))\n                                             (pppppppcVar29[7] + *piVar5 * 3,pppppppcStack_218);\n                          pppppppcVar30 = (code *******)0xc;\n                          if (iVar22 == 0) goto LAB_00056168;\n                          iVar37 = iVar37 + 1;\n                          piVar5 = piVar5 + 1;\n                        } while (iVar37 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4));\n                      }\n                      pppppppcStack_218 = (code *******)((int)pppppppcStack_218 + 1);\n                      iVar43 = iVar43 + 0xc;\n                    } while (pppppppcStack_218 < pppppppcVar29[2]);\n                  }\n                }\nLAB_000568f0:\n                pppppppcStack_20c = (code *******)0x0;\n                if (((((uint)pppppppcVar34[0x16] & 0x20000000) != 0) && (uVar16 == 0)) &&\n                   (pppppppcVar3[5] == (code ******)0x0)) {\n                  if (pppppppcVar34[2] != (code ******)0x0) {\n                    pppppppcVar31 = (code *******)(*(int *)(puVar41 + 0x23754) + 0x6e4c);\n                    if (*(byte *)(*pppppppcVar34 + 1) < 0xd) {\n                    /* WARNING: Could not recover jumptable at 0x00056a60. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      pppppppcVar29 =\n                           (code *******)\n                           (*(code *)(puVar41 +\n                                     (int)(pppppppcVar31[*(byte *)(*pppppppcVar34 + 1)] + 0xadc7)))\n                                     ();\n                      return pppppppcVar29;\n                    }\n                    (**(code **)(puVar41 + 0x23bc4))(0);\n                    if (uVar7 != 0) {\n                      pppppppcVar31 = (code *******)&DAT_00000007;\n                      ppppppcVar32 = (code ******)0x0;\n                      do {\n                        ppppppcVar35 = *pppppppcVar34 + (int)ppppppcVar32 * 2;\n                        if (*(char *)(ppppppcVar35 + 1) == '\x01') {\n                          if (*(char *)ppppppcVar35 < '\0') {\n                            ppppppcVar35[1] = (code *****)((uint)ppppppcVar35[1] & 0xfffffbff);\n                          }\n                        }\n                        else if (*(char *)(ppppppcVar35 + 1) == '\x05') {\n                          *(char *)(ppppppcVar35 + 1) = '\a';\n                        }\n                        ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                      } while (ppppppcVar32 < pppppppcVar34[2]);\n                    }\n                  }\n                  pppppppcVar34[0x17] = (code ******)0x1;\n                  if (0 < (int)pppppppcVar34[0x13]) {\n                    uVar7 = 1;\n                  }\n                  *(byte *)(pppppppcVar34 + 0x16) =\n                       (byte)*(code *)(pppppppcVar34 + 0x16) & 0x9f | (byte)((uVar7 & 1) << 6);\n                }\n                ppppppcVar32 = (code ******)pppppppcVar34[0xd][3][7];\n                pppppppcVar34[0x12] = ppppppcVar32;\n                pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppppcVar32 * 3);\n                pppppppcVar33 = (code *******)FUN_000483e8(&ppppppcStack_204,pppppppcVar38);\n                pppppppcVar29 = pppppppcVar33;\n                pppppppcStack_208 = pppppppcVar33;\n                if (pppppppcVar33 == (code *******)0x0) {\n                  if ((0 < (int)pppppppcVar34[0x13]) && (0 < iStack_200)) {\n                    iVar18 = *(int *)(puVar41 + 0x23abc);\n                    iVar43 = *(int *)(puVar41 + 0x23abc);\n                    pppppppcVar29 = (code *******)0x0;\n                    do {\n                      pppppppcVar31 =\n                           (code *******)(*pppppppcVar34 + piStack_1fc[(int)pppppppcVar29] * 2);\n                      if (*(code *)(pppppppcVar31 + 1) == (code)0x4) {\n                        iVar37 = 0;\n                        piVar5 = piStack_1fc;\n                        if (iStack_200 < 1) {\nLAB_00056b8c:\n                          if (iStack_200 != iVar37) {\n                            ppppcVar40 = *pppppppcVar34[5][piStack_1fc[(int)pppppppcVar29] * 3 + 2];\n                            iVar37 = (*(code *)(iVar18 + 0x5ea8))(&ppppppcStack_204,ppppcVar40);\n                            if (iVar37 == 0) {\n                              pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppcVar40 * 3)\n                              ;\n                              pppppppcVar29 =\n                                   (code *******)\n                                   (*(code *)(iVar43 + 0x7f1c))(&ppppppcStack_204,pppppppcVar38);\n                              if (pppppppcVar29 != (code *******)0x0) goto LAB_00056cb8;\n                            }\n                          }\n                        }\n                        else {\n                          do {\n                            ppppppcVar32 = *pppppppcVar34 + *piVar5 * 2;\n                            if ((*(char *)(ppppppcVar32 + 1) == '\t') &&\n                               ((code ******)*ppppppcVar32 == *pppppppcVar31)) goto LAB_00056b8c;\n                            iVar37 = iVar37 + 1;\n                            piVar5 = piVar5 + 1;\n                          } while (iStack_200 != iVar37);\n                        }\n                      }\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1);\n                    } while ((int)pppppppcVar29 < iStack_200);\n                  }\n                  pppppppcVar31 = &ppppppcStack_204;\n                  pppppppcVar38 = pppppppcVar34;\n                  ppppppcVar32 = (code ******)\n                                 FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,0);\n                  pppppppcVar34[9] = ppppppcVar32;\n                  pppppppcVar29 = pppppppcStack_208;\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    if (((uint)ppppppcVar32[0xd] & 0x1000000) == 0) {\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar34[10] = ppppppcVar32;\n                    }\n                    else {\n                      pppppppcVar31 = &ppppppcStack_204;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,1);\n                      pppppppcVar34[10] = ppppppcVar32;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,2);\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar38 = pppppppcVar34;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,6);\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar29 = pppppppcStack_208;\n                      if (((pppppppcVar34[10] == (code ******)0x0) ||\n                          (pppppppcVar34[0xb] == (code ******)0x0)) ||\n                         (ppppppcVar32 == (code ******)0x0)) goto LAB_00056cb8;\n                    }\n                    (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                    pppppppcVar29 = pppppppcVar33;\n                  }\n                }\nLAB_00056cb8:\n                pppppppcStack_20c = pppppppcVar29;\n                FUN_0004b234(pppppppcVar3);\n                FUN_0004b2bc(&pppppppcStack_1f8);\n                pppppppcVar29 = pppppppcStack_20c;\n                if (pppppppcStack_20c != (code *******)0x0) {\n                  if (*(int *)(puVar41 + 0x23c78) != 0) {\n                    (**(code **)(puVar41 + 0x23df0))(pppppppcVar34 + 0x22);\n                  }\n                  FUN_0004b338(pppppppcVar34);\n                  *pppppppcVar3 = (code ******)0x0;\n                  pppppppcVar3[1] = (code ******)0x0;\n                  pppppppcVar29 = pppppppcStack_20c;\n                }\n                goto LAB_00056cfc;\n              }" if (parenthesized_expression "(pppppppcVar30 == (code *******)0x0)" ( (binary_expression "pppppppcVar30 == (code *******)0x0" identifier == (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\n                uVar7 = 0;\n                iVar18 = *(int *)(puVar41 + 0x23b40);\n                pppppppcVar33 = (code *******)0x0;\nLAB_00056744:\n                if ((code *******)pppppppcVar29[2] != pppppppcVar33) {\nLAB_00056750:\n                  if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                    pppppppcVar38 = pppppppcVar29;\n                    pppppppcVar31 = pppppppcVar33;\n                    pppppppcVar30 =\n                         (code *******)\n                         (*(code *)(iVar18 + -0x561c))\n                                   (&ppppppcStack_204,pppppppcVar29,pppppppcVar33,1);\n                    if (pppppppcVar30 != (code *******)0x0) goto LAB_00056168;\n                    if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                      (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                      uVar7 = 1;\n                    }\n                  }\n                  pppppppcVar33 = (code *******)((int)pppppppcVar33 + 1);\n                  goto LAB_00056744;\n                }\n                if (uVar7 != 0) {\n                  uVar7 = 0;\n                  pppppppcVar33 = (code *******)0x0;\n                  goto LAB_00056750;\n                }\n                if (((((uint)pppppppcVar3[7] & 0x8000000) == 0) &&\n                    (pppppppcVar3[6] != (code ******)0x0)) &&\n                   ((char)*(code *)(pppppppcVar29 + 0x16) < '\0')) {\n                  ppppppcVar32 = pppppppcVar29[2];\n                }\n                else {\n                  if (pppppppcVar29[0x13] == (code ******)0x0) goto LAB_000568f0;\n                  ppppppcVar32 = pppppppcVar29[2];\n                }\n                ppppppcVar35 = (code ******)\n                               (**(code **)(puVar41 + 0x23cf0))((int)ppppppcVar32 * 0xc);\n                pppppppcVar29[7] = ppppppcVar35;\n                if (ppppppcVar35 == (code ******)0x0) {\n                  pppppppcVar30 = (code *******)0xc;\n                  goto LAB_00056168;\n                }\n                if (ppppppcVar32 != (code ******)0x0) {\n                  iVar18 = 0;\n                  ppppppcVar32 = (code ******)0x0;\n                  do {\n                    puVar21 = (undefined1 *)((int)pppppppcVar29[7] + iVar18);\n                    *puVar21 = 0;\n                    puVar21[1] = 0;\n                    puVar21[2] = 0;\n                    puVar21[3] = 0;\n                    puVar21[4] = 0;\n                    puVar21[5] = 0;\n                    puVar21[6] = 0;\n                    puVar21[7] = 0;\n                    puVar21[8] = 0;\n                    puVar21[9] = 0;\n                    puVar21[10] = 0;\n                    puVar21[0xb] = 0;\n                    ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                    iVar18 = iVar18 + 0xc;\n                  } while (ppppppcVar32 < pppppppcVar29[2]);\n                  iVar18 = *(int *)(puVar41 + 0x23abc);\n                  if (pppppppcVar29[2] != (code ******)0x0) {\n                    iVar43 = 0;\n                    pppppppcStack_218 = (code *******)0x0;\n                    do {\n                      piVar5 = *(int **)((int)pppppppcVar29[6] + iVar43 + 8);\n                      if (0 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4)) {\n                        iVar37 = 0;\n                        do {\n                          pppppppcVar38 = pppppppcStack_218;\n                          iVar22 = (*(code *)(iVar18 + 0x6e30))\n                                             (pppppppcVar29[7] + *piVar5 * 3,pppppppcStack_218);\n                          pppppppcVar30 = (code *******)0xc;\n                          if (iVar22 == 0) goto LAB_00056168;\n                          iVar37 = iVar37 + 1;\n                          piVar5 = piVar5 + 1;\n                        } while (iVar37 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4));\n                      }\n                      pppppppcStack_218 = (code *******)((int)pppppppcStack_218 + 1);\n                      iVar43 = iVar43 + 0xc;\n                    } while (pppppppcStack_218 < pppppppcVar29[2]);\n                  }\n                }\nLAB_000568f0:\n                pppppppcStack_20c = (code *******)0x0;\n                if (((((uint)pppppppcVar34[0x16] & 0x20000000) != 0) && (uVar16 == 0)) &&\n                   (pppppppcVar3[5] == (code ******)0x0)) {\n                  if (pppppppcVar34[2] != (code ******)0x0) {\n                    pppppppcVar31 = (code *******)(*(int *)(puVar41 + 0x23754) + 0x6e4c);\n                    if (*(byte *)(*pppppppcVar34 + 1) < 0xd) {\n                    /* WARNING: Could not recover jumptable at 0x00056a60. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      pppppppcVar29 =\n                           (code *******)\n                           (*(code *)(puVar41 +\n                                     (int)(pppppppcVar31[*(byte *)(*pppppppcVar34 + 1)] + 0xadc7)))\n                                     ();\n                      return pppppppcVar29;\n                    }\n                    (**(code **)(puVar41 + 0x23bc4))(0);\n                    if (uVar7 != 0) {\n                      pppppppcVar31 = (code *******)&DAT_00000007;\n                      ppppppcVar32 = (code ******)0x0;\n                      do {\n                        ppppppcVar35 = *pppppppcVar34 + (int)ppppppcVar32 * 2;\n                        if (*(char *)(ppppppcVar35 + 1) == '\x01') {\n                          if (*(char *)ppppppcVar35 < '\0') {\n                            ppppppcVar35[1] = (code *****)((uint)ppppppcVar35[1] & 0xfffffbff);\n                          }\n                        }\n                        else if (*(char *)(ppppppcVar35 + 1) == '\x05') {\n                          *(char *)(ppppppcVar35 + 1) = '\a';\n                        }\n                        ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                      } while (ppppppcVar32 < pppppppcVar34[2]);\n                    }\n                  }\n                  pppppppcVar34[0x17] = (code ******)0x1;\n                  if (0 < (int)pppppppcVar34[0x13]) {\n                    uVar7 = 1;\n                  }\n                  *(byte *)(pppppppcVar34 + 0x16) =\n                       (byte)*(code *)(pppppppcVar34 + 0x16) & 0x9f | (byte)((uVar7 & 1) << 6);\n                }\n                ppppppcVar32 = (code ******)pppppppcVar34[0xd][3][7];\n                pppppppcVar34[0x12] = ppppppcVar32;\n                pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppppcVar32 * 3);\n                pppppppcVar33 = (code *******)FUN_000483e8(&ppppppcStack_204,pppppppcVar38);\n                pppppppcVar29 = pppppppcVar33;\n                pppppppcStack_208 = pppppppcVar33;\n                if (pppppppcVar33 == (code *******)0x0) {\n                  if ((0 < (int)pppppppcVar34[0x13]) && (0 < iStack_200)) {\n                    iVar18 = *(int *)(puVar41 + 0x23abc);\n                    iVar43 = *(int *)(puVar41 + 0x23abc);\n                    pppppppcVar29 = (code *******)0x0;\n                    do {\n                      pppppppcVar31 =\n                           (code *******)(*pppppppcVar34 + piStack_1fc[(int)pppppppcVar29] * 2);\n                      if (*(code *)(pppppppcVar31 + 1) == (code)0x4) {\n                        iVar37 = 0;\n                        piVar5 = piStack_1fc;\n                        if (iStack_200 < 1) {\nLAB_00056b8c:\n                          if (iStack_200 != iVar37) {\n                            ppppcVar40 = *pppppppcVar34[5][piStack_1fc[(int)pppppppcVar29] * 3 + 2];\n                            iVar37 = (*(code *)(iVar18 + 0x5ea8))(&ppppppcStack_204,ppppcVar40);\n                            if (iVar37 == 0) {\n                              pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppcVar40 * 3)\n                              ;\n                              pppppppcVar29 =\n                                   (code *******)\n                                   (*(code *)(iVar43 + 0x7f1c))(&ppppppcStack_204,pppppppcVar38);\n                              if (pppppppcVar29 != (code *******)0x0) goto LAB_00056cb8;\n                            }\n                          }\n                        }\n                        else {\n                          do {\n                            ppppppcVar32 = *pppppppcVar34 + *piVar5 * 2;\n                            if ((*(char *)(ppppppcVar32 + 1) == '\t') &&\n                               ((code ******)*ppppppcVar32 == *pppppppcVar31)) goto LAB_00056b8c;\n                            iVar37 = iVar37 + 1;\n                            piVar5 = piVar5 + 1;\n                          } while (iStack_200 != iVar37);\n                        }\n                      }\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1);\n                    } while ((int)pppppppcVar29 < iStack_200);\n                  }\n                  pppppppcVar31 = &ppppppcStack_204;\n                  pppppppcVar38 = pppppppcVar34;\n                  ppppppcVar32 = (code ******)\n                                 FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,0);\n                  pppppppcVar34[9] = ppppppcVar32;\n                  pppppppcVar29 = pppppppcStack_208;\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    if (((uint)ppppppcVar32[0xd] & 0x1000000) == 0) {\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar34[10] = ppppppcVar32;\n                    }\n                    else {\n                      pppppppcVar31 = &ppppppcStack_204;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,1);\n                      pppppppcVar34[10] = ppppppcVar32;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,2);\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar38 = pppppppcVar34;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,6);\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar29 = pppppppcStack_208;\n                      if (((pppppppcVar34[10] == (code ******)0x0) ||\n                          (pppppppcVar34[0xb] == (code ******)0x0)) ||\n                         (ppppppcVar32 == (code ******)0x0)) goto LAB_00056cb8;\n                    }\n                    (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                    pppppppcVar29 = pppppppcVar33;\n                  }\n                }\nLAB_00056cb8:\n                pppppppcStack_20c = pppppppcVar29;\n                FUN_0004b234(pppppppcVar3);\n                FUN_0004b2bc(&pppppppcStack_1f8);\n                pppppppcVar29 = pppppppcStack_20c;\n                if (pppppppcStack_20c != (code *******)0x0) {\n                  if (*(int *)(puVar41 + 0x23c78) != 0) {\n                    (**(code **)(puVar41 + 0x23df0))(pppppppcVar34 + 0x22);\n                  }\n                  FUN_0004b338(pppppppcVar34);\n                  *pppppppcVar3 = (code ******)0x0;\n                  pppppppcVar3[1] = (code ******)0x0;\n                  pppppppcVar29 = pppppppcStack_20c;\n                }\n                goto LAB_00056cfc;\n              }" { (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" identifier = number_literal) ;) (expression_statement "iVar18 = *(int *)(puVar41 + 0x23b40);" (assignment_expression "iVar18 = *(int *)(puVar41 + 0x23b40)" identifier = (pointer_expression "*(int *)(puVar41 + 0x23b40)" * (cast_expression "(int *)(puVar41 + 0x23b40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar41 + 0x23b40)" ( (binary_expression "puVar41 + 0x23b40" identifier + number_literal) ))))) ;) (expression_statement "pppppppcVar33 = (code *******)0x0;" (assignment_expression "pppppppcVar33 = (code *******)0x0" identifier = (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (labeled_statement "LAB_00056744:\n                if ((code *******)pppppppcVar29[2] != pppppppcVar33) {\nLAB_00056750:\n                  if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                    pppppppcVar38 = pppppppcVar29;\n                    pppppppcVar31 = pppppppcVar33;\n                    pppppppcVar30 =\n                         (code *******)\n                         (*(code *)(iVar18 + -0x561c))\n                                   (&ppppppcStack_204,pppppppcVar29,pppppppcVar33,1);\n                    if (pppppppcVar30 != (code *******)0x0) goto LAB_00056168;\n                    if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                      (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                      uVar7 = 1;\n                    }\n                  }\n                  pppppppcVar33 = (code *******)((int)pppppppcVar33 + 1);\n                  goto LAB_00056744;\n                }" statement_identifier : (if_statement "if ((code *******)pppppppcVar29[2] != pppppppcVar33) {\nLAB_00056750:\n                  if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                    pppppppcVar38 = pppppppcVar29;\n                    pppppppcVar31 = pppppppcVar33;\n                    pppppppcVar30 =\n                         (code *******)\n                         (*(code *)(iVar18 + -0x561c))\n                                   (&ppppppcStack_204,pppppppcVar29,pppppppcVar33,1);\n                    if (pppppppcVar30 != (code *******)0x0) goto LAB_00056168;\n                    if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                      (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                      uVar7 = 1;\n                    }\n                  }\n                  pppppppcVar33 = (code *******)((int)pppppppcVar33 + 1);\n                  goto LAB_00056744;\n                }" if (parenthesized_expression "((code *******)pppppppcVar29[2] != pppppppcVar33)" ( (binary_expression "(code *******)pppppppcVar29[2] != pppppppcVar33" (cast_expression "(code *******)pppppppcVar29[2]" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (subscript_expression "pppppppcVar29[2]" identifier [ number_literal ])) != identifier) )) (compound_statement "{\nLAB_00056750:\n                  if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                    pppppppcVar38 = pppppppcVar29;\n                    pppppppcVar31 = pppppppcVar33;\n                    pppppppcVar30 =\n                         (code *******)\n                         (*(code *)(iVar18 + -0x561c))\n                                   (&ppppppcStack_204,pppppppcVar29,pppppppcVar33,1);\n                    if (pppppppcVar30 != (code *******)0x0) goto LAB_00056168;\n                    if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                      (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                      uVar7 = 1;\n                    }\n                  }\n                  pppppppcVar33 = (code *******)((int)pppppppcVar33 + 1);\n                  goto LAB_00056744;\n                }" { (labeled_statement "LAB_00056750:\n                  if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                    pppppppcVar38 = pppppppcVar29;\n                    pppppppcVar31 = pppppppcVar33;\n                    pppppppcVar30 =\n                         (code *******)\n                         (*(code *)(iVar18 + -0x561c))\n                                   (&ppppppcStack_204,pppppppcVar29,pppppppcVar33,1);\n                    if (pppppppcVar30 != (code *******)0x0) goto LAB_00056168;\n                    if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                      (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                      uVar7 = 1;\n                    }\n                  }" statement_identifier : (if_statement "if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                    pppppppcVar38 = pppppppcVar29;\n                    pppppppcVar31 = pppppppcVar33;\n                    pppppppcVar30 =\n                         (code *******)\n                         (*(code *)(iVar18 + -0x561c))\n                                   (&ppppppcStack_204,pppppppcVar29,pppppppcVar33,1);\n                    if (pppppppcVar30 != (code *******)0x0) goto LAB_00056168;\n                    if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                      (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                      uVar7 = 1;\n                    }\n                  }" if (parenthesized_expression "(pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0)" ( (binary_expression "pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0" (subscript_expression "pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1]" (subscript_expression "pppppppcVar29[6]" identifier [ number_literal ]) [ (binary_expression "(int)pppppppcVar33 * 3 + 1" (binary_expression "(int)pppppppcVar33 * 3" (cast_expression "(int)pppppppcVar33" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal) ]) == (cast_expression "(code *****)0x0" ( (type_descriptor "code *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) )) (compound_statement "{\n                    pppppppcVar38 = pppppppcVar29;\n                    pppppppcVar31 = pppppppcVar33;\n                    pppppppcVar30 =\n                         (code *******)\n                         (*(code *)(iVar18 + -0x561c))\n                                   (&ppppppcStack_204,pppppppcVar29,pppppppcVar33,1);\n                    if (pppppppcVar30 != (code *******)0x0) goto LAB_00056168;\n                    if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                      (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                      uVar7 = 1;\n                    }\n                  }" { (expression_statement "pppppppcVar38 = pppppppcVar29;" (assignment_expression "pppppppcVar38 = pppppppcVar29" identifier = identifier) ;) (expression_statement "pppppppcVar31 = pppppppcVar33;" (assignment_expression "pppppppcVar31 = pppppppcVar33" identifier = identifier) ;) (expression_statement "pppppppcVar30 =\n                         (code *******)\n                         (*(code *)(iVar18 + -0x561c))\n                                   (&ppppppcStack_204,pppppppcVar29,pppppppcVar33,1);" (assignment_expression "pppppppcVar30 =\n                         (code *******)\n                         (*(code *)(iVar18 + -0x561c))\n                                   (&ppppppcStack_204,pppppppcVar29,pppppppcVar33,1)" identifier = (cast_expression "(code *******)\n                         (*(code *)(iVar18 + -0x561c))\n                                   (&ppppppcStack_204,pppppppcVar29,pppppppcVar33,1)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "(*(code *)(iVar18 + -0x561c))\n                                   (&ppppppcStack_204,pppppppcVar29,pppppppcVar33,1)" (parenthesized_expression "(*(code *)(iVar18 + -0x561c))" ( (pointer_expression "*(code *)(iVar18 + -0x561c)" * (cast_expression "(code *)(iVar18 + -0x561c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + -0x561c)" ( (binary_expression "iVar18 + -0x561c" identifier + number_literal) )))) )) (argument_list "(&ppppppcStack_204,pppppppcVar29,pppppppcVar33,1)" ( (pointer_expression "&ppppppcStack_204" & identifier) , identifier , identifier , number_literal ))))) ;) (if_statement "if (pppppppcVar30 != (code *******)0x0) goto LAB_00056168;" if (parenthesized_expression "(pppppppcVar30 != (code *******)0x0)" ( (binary_expression "pppppppcVar30 != (code *******)0x0" identifier != (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (goto_statement "goto LAB_00056168;" goto statement_identifier ;)) (if_statement "if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                      (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                      uVar7 = 1;\n                    }" if (parenthesized_expression "(pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0)" ( (binary_expression "pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0" (subscript_expression "pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1]" (subscript_expression "pppppppcVar29[6]" identifier [ number_literal ]) [ (binary_expression "(int)pppppppcVar33 * 3 + 1" (binary_expression "(int)pppppppcVar33 * 3" (cast_expression "(int)pppppppcVar33" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal) ]) == (cast_expression "(code *****)0x0" ( (type_descriptor "code *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) )) (compound_statement "{\n                      (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                      uVar7 = 1;\n                    }" { (expression_statement "(**(code **)(puVar41 + 0x23dc0))(piStack_1fc);" (call_expression "(**(code **)(puVar41 + 0x23dc0))(piStack_1fc)" (parenthesized_expression "(**(code **)(puVar41 + 0x23dc0))" ( (pointer_expression "**(code **)(puVar41 + 0x23dc0)" * (pointer_expression "*(code **)(puVar41 + 0x23dc0)" * (cast_expression "(code **)(puVar41 + 0x23dc0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar41 + 0x23dc0)" ( (binary_expression "puVar41 + 0x23dc0" identifier + number_literal) ))))) )) (argument_list "(piStack_1fc)" ( identifier ))) ;) (expression_statement "uVar7 = 1;" (assignment_expression "uVar7 = 1" identifier = number_literal) ;) })) }))) (expression_statement "pppppppcVar33 = (code *******)((int)pppppppcVar33 + 1);" (assignment_expression "pppppppcVar33 = (code *******)((int)pppppppcVar33 + 1)" identifier = (cast_expression "(code *******)((int)pppppppcVar33 + 1)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)pppppppcVar33 + 1)" ( (binary_expression "(int)pppppppcVar33 + 1" (cast_expression "(int)pppppppcVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (goto_statement "goto LAB_00056744;" goto statement_identifier ;) }))) (if_statement "if (uVar7 != 0) {\n                  uVar7 = 0;\n                  pppppppcVar33 = (code *******)0x0;\n                  goto LAB_00056750;\n                }" if (parenthesized_expression "(uVar7 != 0)" ( (binary_expression "uVar7 != 0" identifier != number_literal) )) (compound_statement "{\n                  uVar7 = 0;\n                  pppppppcVar33 = (code *******)0x0;\n                  goto LAB_00056750;\n                }" { (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" identifier = number_literal) ;) (expression_statement "pppppppcVar33 = (code *******)0x0;" (assignment_expression "pppppppcVar33 = (code *******)0x0" identifier = (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (goto_statement "goto LAB_00056750;" goto statement_identifier ;) })) (if_statement "if (((((uint)pppppppcVar3[7] & 0x8000000) == 0) &&\n                    (pppppppcVar3[6] != (code ******)0x0)) &&\n                   ((char)*(code *)(pppppppcVar29 + 0x16) < '\0')) {\n                  ppppppcVar32 = pppppppcVar29[2];\n                }\n                else {\n                  if (pppppppcVar29[0x13] == (code ******)0x0) goto LAB_000568f0;\n                  ppppppcVar32 = pppppppcVar29[2];\n                }" if (parenthesized_expression "(((((uint)pppppppcVar3[7] & 0x8000000) == 0) &&\n                    (pppppppcVar3[6] != (code ******)0x0)) &&\n                   ((char)*(code *)(pppppppcVar29 + 0x16) < '\0'))" ( (binary_expression "((((uint)pppppppcVar3[7] & 0x8000000) == 0) &&\n                    (pppppppcVar3[6] != (code ******)0x0)) &&\n                   ((char)*(code *)(pppppppcVar29 + 0x16) < '\0')" (parenthesized_expression "((((uint)pppppppcVar3[7] & 0x8000000) == 0) &&\n                    (pppppppcVar3[6] != (code ******)0x0))" ( (binary_expression "(((uint)pppppppcVar3[7] & 0x8000000) == 0) &&\n                    (pppppppcVar3[6] != (code ******)0x0)" (parenthesized_expression "(((uint)pppppppcVar3[7] & 0x8000000) == 0)" ( (binary_expression "((uint)pppppppcVar3[7] & 0x8000000) == 0" (parenthesized_expression "((uint)pppppppcVar3[7] & 0x8000000)" ( (binary_expression "(uint)pppppppcVar3[7] & 0x8000000" (cast_expression "(uint)pppppppcVar3[7]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pppppppcVar3[7]" identifier [ number_literal ])) & number_literal) )) == number_literal) )) && (parenthesized_expression "(pppppppcVar3[6] != (code ******)0x0)" ( (binary_expression "pppppppcVar3[6] != (code ******)0x0" (subscript_expression "pppppppcVar3[6]" identifier [ number_literal ]) != (cast_expression "(code ******)0x0" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ))) )) && (parenthesized_expression "((char)*(code *)(pppppppcVar29 + 0x16) < '\0')" ( (binary_expression "(char)*(code *)(pppppppcVar29 + 0x16) < '\0'" (cast_expression "(char)*(code *)(pppppppcVar29 + 0x16)" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(code *)(pppppppcVar29 + 0x16)" * (cast_expression "(code *)(pppppppcVar29 + 0x16)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pppppppcVar29 + 0x16)" ( (binary_expression "pppppppcVar29 + 0x16" identifier + number_literal) ))))) < (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n                  ppppppcVar32 = pppppppcVar29[2];\n                }" { (expression_statement "ppppppcVar32 = pppppppcVar29[2];" (assignment_expression "ppppppcVar32 = pppppppcVar29[2]" identifier = (subscript_expression "pppppppcVar29[2]" identifier [ number_literal ])) ;) }) (else_clause "else {\n                  if (pppppppcVar29[0x13] == (code ******)0x0) goto LAB_000568f0;\n                  ppppppcVar32 = pppppppcVar29[2];\n                }" else (compound_statement "{\n                  if (pppppppcVar29[0x13] == (code ******)0x0) goto LAB_000568f0;\n                  ppppppcVar32 = pppppppcVar29[2];\n                }" { (if_statement "if (pppppppcVar29[0x13] == (code ******)0x0) goto LAB_000568f0;" if (parenthesized_expression "(pppppppcVar29[0x13] == (code ******)0x0)" ( (binary_expression "pppppppcVar29[0x13] == (code ******)0x0" (subscript_expression "pppppppcVar29[0x13]" identifier [ number_literal ]) == (cast_expression "(code ******)0x0" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (goto_statement "goto LAB_000568f0;" goto statement_identifier ;)) (expression_statement "ppppppcVar32 = pppppppcVar29[2];" (assignment_expression "ppppppcVar32 = pppppppcVar29[2]" identifier = (subscript_expression "pppppppcVar29[2]" identifier [ number_literal ])) ;) }))) (expression_statement "ppppppcVar35 = (code ******)\n                               (**(code **)(puVar41 + 0x23cf0))((int)ppppppcVar32 * 0xc);" (assignment_expression "ppppppcVar35 = (code ******)\n                               (**(code **)(puVar41 + 0x23cf0))((int)ppppppcVar32 * 0xc)" identifier = (cast_expression "(code ******)\n                               (**(code **)(puVar41 + 0x23cf0))((int)ppppppcVar32 * 0xc)" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (call_expression "(**(code **)(puVar41 + 0x23cf0))((int)ppppppcVar32 * 0xc)" (parenthesized_expression "(**(code **)(puVar41 + 0x23cf0))" ( (pointer_expression "**(code **)(puVar41 + 0x23cf0)" * (pointer_expression "*(code **)(puVar41 + 0x23cf0)" * (cast_expression "(code **)(puVar41 + 0x23cf0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar41 + 0x23cf0)" ( (binary_expression "puVar41 + 0x23cf0" identifier + number_literal) ))))) )) (argument_list "((int)ppppppcVar32 * 0xc)" ( (binary_expression "(int)ppppppcVar32 * 0xc" (cast_expression "(int)ppppppcVar32" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) ))))) ;) (expression_statement "pppppppcVar29[7] = ppppppcVar35;" (assignment_expression "pppppppcVar29[7] = ppppppcVar35" (subscript_expression "pppppppcVar29[7]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (ppppppcVar35 == (code ******)0x0) {\n                  pppppppcVar30 = (code *******)0xc;\n                  goto LAB_00056168;\n                }" if (parenthesized_expression "(ppppppcVar35 == (code ******)0x0)" ( (binary_expression "ppppppcVar35 == (code ******)0x0" identifier == (cast_expression "(code ******)0x0" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (compound_statement "{\n                  pppppppcVar30 = (code *******)0xc;\n                  goto LAB_00056168;\n                }" { (expression_statement "pppppppcVar30 = (code *******)0xc;" (assignment_expression "pppppppcVar30 = (code *******)0xc" identifier = (cast_expression "(code *******)0xc" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (goto_statement "goto LAB_00056168;" goto statement_identifier ;) })) (if_statement "if (ppppppcVar32 != (code ******)0x0) {\n                  iVar18 = 0;\n                  ppppppcVar32 = (code ******)0x0;\n                  do {\n                    puVar21 = (undefined1 *)((int)pppppppcVar29[7] + iVar18);\n                    *puVar21 = 0;\n                    puVar21[1] = 0;\n                    puVar21[2] = 0;\n                    puVar21[3] = 0;\n                    puVar21[4] = 0;\n                    puVar21[5] = 0;\n                    puVar21[6] = 0;\n                    puVar21[7] = 0;\n                    puVar21[8] = 0;\n                    puVar21[9] = 0;\n                    puVar21[10] = 0;\n                    puVar21[0xb] = 0;\n                    ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                    iVar18 = iVar18 + 0xc;\n                  } while (ppppppcVar32 < pppppppcVar29[2]);\n                  iVar18 = *(int *)(puVar41 + 0x23abc);\n                  if (pppppppcVar29[2] != (code ******)0x0) {\n                    iVar43 = 0;\n                    pppppppcStack_218 = (code *******)0x0;\n                    do {\n                      piVar5 = *(int **)((int)pppppppcVar29[6] + iVar43 + 8);\n                      if (0 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4)) {\n                        iVar37 = 0;\n                        do {\n                          pppppppcVar38 = pppppppcStack_218;\n                          iVar22 = (*(code *)(iVar18 + 0x6e30))\n                                             (pppppppcVar29[7] + *piVar5 * 3,pppppppcStack_218);\n                          pppppppcVar30 = (code *******)0xc;\n                          if (iVar22 == 0) goto LAB_00056168;\n                          iVar37 = iVar37 + 1;\n                          piVar5 = piVar5 + 1;\n                        } while (iVar37 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4));\n                      }\n                      pppppppcStack_218 = (code *******)((int)pppppppcStack_218 + 1);\n                      iVar43 = iVar43 + 0xc;\n                    } while (pppppppcStack_218 < pppppppcVar29[2]);\n                  }\n                }" if (parenthesized_expression "(ppppppcVar32 != (code ******)0x0)" ( (binary_expression "ppppppcVar32 != (code ******)0x0" identifier != (cast_expression "(code ******)0x0" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (compound_statement "{\n                  iVar18 = 0;\n                  ppppppcVar32 = (code ******)0x0;\n                  do {\n                    puVar21 = (undefined1 *)((int)pppppppcVar29[7] + iVar18);\n                    *puVar21 = 0;\n                    puVar21[1] = 0;\n                    puVar21[2] = 0;\n                    puVar21[3] = 0;\n                    puVar21[4] = 0;\n                    puVar21[5] = 0;\n                    puVar21[6] = 0;\n                    puVar21[7] = 0;\n                    puVar21[8] = 0;\n                    puVar21[9] = 0;\n                    puVar21[10] = 0;\n                    puVar21[0xb] = 0;\n                    ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                    iVar18 = iVar18 + 0xc;\n                  } while (ppppppcVar32 < pppppppcVar29[2]);\n                  iVar18 = *(int *)(puVar41 + 0x23abc);\n                  if (pppppppcVar29[2] != (code ******)0x0) {\n                    iVar43 = 0;\n                    pppppppcStack_218 = (code *******)0x0;\n                    do {\n                      piVar5 = *(int **)((int)pppppppcVar29[6] + iVar43 + 8);\n                      if (0 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4)) {\n                        iVar37 = 0;\n                        do {\n                          pppppppcVar38 = pppppppcStack_218;\n                          iVar22 = (*(code *)(iVar18 + 0x6e30))\n                                             (pppppppcVar29[7] + *piVar5 * 3,pppppppcStack_218);\n                          pppppppcVar30 = (code *******)0xc;\n                          if (iVar22 == 0) goto LAB_00056168;\n                          iVar37 = iVar37 + 1;\n                          piVar5 = piVar5 + 1;\n                        } while (iVar37 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4));\n                      }\n                      pppppppcStack_218 = (code *******)((int)pppppppcStack_218 + 1);\n                      iVar43 = iVar43 + 0xc;\n                    } while (pppppppcStack_218 < pppppppcVar29[2]);\n                  }\n                }" { (expression_statement "iVar18 = 0;" (assignment_expression "iVar18 = 0" identifier = number_literal) ;) (expression_statement "ppppppcVar32 = (code ******)0x0;" (assignment_expression "ppppppcVar32 = (code ******)0x0" identifier = (cast_expression "(code ******)0x0" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) (do_statement "do {\n                    puVar21 = (undefined1 *)((int)pppppppcVar29[7] + iVar18);\n                    *puVar21 = 0;\n                    puVar21[1] = 0;\n                    puVar21[2] = 0;\n                    puVar21[3] = 0;\n                    puVar21[4] = 0;\n                    puVar21[5] = 0;\n                    puVar21[6] = 0;\n                    puVar21[7] = 0;\n                    puVar21[8] = 0;\n                    puVar21[9] = 0;\n                    puVar21[10] = 0;\n                    puVar21[0xb] = 0;\n                    ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                    iVar18 = iVar18 + 0xc;\n                  } while (ppppppcVar32 < pppppppcVar29[2]);" do (compound_statement "{\n                    puVar21 = (undefined1 *)((int)pppppppcVar29[7] + iVar18);\n                    *puVar21 = 0;\n                    puVar21[1] = 0;\n                    puVar21[2] = 0;\n                    puVar21[3] = 0;\n                    puVar21[4] = 0;\n                    puVar21[5] = 0;\n                    puVar21[6] = 0;\n                    puVar21[7] = 0;\n                    puVar21[8] = 0;\n                    puVar21[9] = 0;\n                    puVar21[10] = 0;\n                    puVar21[0xb] = 0;\n                    ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                    iVar18 = iVar18 + 0xc;\n                  }" { (expression_statement "puVar21 = (undefined1 *)((int)pppppppcVar29[7] + iVar18);" (assignment_expression "puVar21 = (undefined1 *)((int)pppppppcVar29[7] + iVar18)" identifier = (cast_expression "(undefined1 *)((int)pppppppcVar29[7] + iVar18)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppppppcVar29[7] + iVar18)" ( (binary_expression "(int)pppppppcVar29[7] + iVar18" (cast_expression "(int)pppppppcVar29[7]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "pppppppcVar29[7]" identifier [ number_literal ])) + identifier) )))) ;) (expression_statement "*puVar21 = 0;" (assignment_expression "*puVar21 = 0" (pointer_expression "*puVar21" * identifier) = number_literal) ;) (expression_statement "puVar21[1] = 0;" (assignment_expression "puVar21[1] = 0" (subscript_expression "puVar21[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar21[2] = 0;" (assignment_expression "puVar21[2] = 0" (subscript_expression "puVar21[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar21[3] = 0;" (assignment_expression "puVar21[3] = 0" (subscript_expression "puVar21[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar21[4] = 0;" (assignment_expression "puVar21[4] = 0" (subscript_expression "puVar21[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar21[5] = 0;" (assignment_expression "puVar21[5] = 0" (subscript_expression "puVar21[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar21[6] = 0;" (assignment_expression "puVar21[6] = 0" (subscript_expression "puVar21[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar21[7] = 0;" (assignment_expression "puVar21[7] = 0" (subscript_expression "puVar21[7]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar21[8] = 0;" (assignment_expression "puVar21[8] = 0" (subscript_expression "puVar21[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar21[9] = 0;" (assignment_expression "puVar21[9] = 0" (subscript_expression "puVar21[9]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar21[10] = 0;" (assignment_expression "puVar21[10] = 0" (subscript_expression "puVar21[10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar21[0xb] = 0;" (assignment_expression "puVar21[0xb] = 0" (subscript_expression "puVar21[0xb]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);" (assignment_expression "ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1)" identifier = (cast_expression "(code ******)((int)ppppppcVar32 + 1)" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "((int)ppppppcVar32 + 1)" ( (binary_expression "(int)ppppppcVar32 + 1" (cast_expression "(int)ppppppcVar32" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "iVar18 = iVar18 + 0xc;" (assignment_expression "iVar18 = iVar18 + 0xc" identifier = (binary_expression "iVar18 + 0xc" identifier + number_literal)) ;) }) while (parenthesized_expression "(ppppppcVar32 < pppppppcVar29[2])" ( (binary_expression "ppppppcVar32 < pppppppcVar29[2]" identifier < (subscript_expression "pppppppcVar29[2]" identifier [ number_literal ])) )) ;) (expression_statement "iVar18 = *(int *)(puVar41 + 0x23abc);" (assignment_expression "iVar18 = *(int *)(puVar41 + 0x23abc)" identifier = (pointer_expression "*(int *)(puVar41 + 0x23abc)" * (cast_expression "(int *)(puVar41 + 0x23abc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar41 + 0x23abc)" ( (binary_expression "puVar41 + 0x23abc" identifier + number_literal) ))))) ;) (if_statement "if (pppppppcVar29[2] != (code ******)0x0) {\n                    iVar43 = 0;\n                    pppppppcStack_218 = (code *******)0x0;\n                    do {\n                      piVar5 = *(int **)((int)pppppppcVar29[6] + iVar43 + 8);\n                      if (0 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4)) {\n                        iVar37 = 0;\n                        do {\n                          pppppppcVar38 = pppppppcStack_218;\n                          iVar22 = (*(code *)(iVar18 + 0x6e30))\n                                             (pppppppcVar29[7] + *piVar5 * 3,pppppppcStack_218);\n                          pppppppcVar30 = (code *******)0xc;\n                          if (iVar22 == 0) goto LAB_00056168;\n                          iVar37 = iVar37 + 1;\n                          piVar5 = piVar5 + 1;\n                        } while (iVar37 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4));\n                      }\n                      pppppppcStack_218 = (code *******)((int)pppppppcStack_218 + 1);\n                      iVar43 = iVar43 + 0xc;\n                    } while (pppppppcStack_218 < pppppppcVar29[2]);\n                  }" if (parenthesized_expression "(pppppppcVar29[2] != (code ******)0x0)" ( (binary_expression "pppppppcVar29[2] != (code ******)0x0" (subscript_expression "pppppppcVar29[2]" identifier [ number_literal ]) != (cast_expression "(code ******)0x0" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (compound_statement "{\n                    iVar43 = 0;\n                    pppppppcStack_218 = (code *******)0x0;\n                    do {\n                      piVar5 = *(int **)((int)pppppppcVar29[6] + iVar43 + 8);\n                      if (0 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4)) {\n                        iVar37 = 0;\n                        do {\n                          pppppppcVar38 = pppppppcStack_218;\n                          iVar22 = (*(code *)(iVar18 + 0x6e30))\n                                             (pppppppcVar29[7] + *piVar5 * 3,pppppppcStack_218);\n                          pppppppcVar30 = (code *******)0xc;\n                          if (iVar22 == 0) goto LAB_00056168;\n                          iVar37 = iVar37 + 1;\n                          piVar5 = piVar5 + 1;\n                        } while (iVar37 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4));\n                      }\n                      pppppppcStack_218 = (code *******)((int)pppppppcStack_218 + 1);\n                      iVar43 = iVar43 + 0xc;\n                    } while (pppppppcStack_218 < pppppppcVar29[2]);\n                  }" { (expression_statement "iVar43 = 0;" (assignment_expression "iVar43 = 0" identifier = number_literal) ;) (expression_statement "pppppppcStack_218 = (code *******)0x0;" (assignment_expression "pppppppcStack_218 = (code *******)0x0" identifier = (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (do_statement "do {\n                      piVar5 = *(int **)((int)pppppppcVar29[6] + iVar43 + 8);\n                      if (0 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4)) {\n                        iVar37 = 0;\n                        do {\n                          pppppppcVar38 = pppppppcStack_218;\n                          iVar22 = (*(code *)(iVar18 + 0x6e30))\n                                             (pppppppcVar29[7] + *piVar5 * 3,pppppppcStack_218);\n                          pppppppcVar30 = (code *******)0xc;\n                          if (iVar22 == 0) goto LAB_00056168;\n                          iVar37 = iVar37 + 1;\n                          piVar5 = piVar5 + 1;\n                        } while (iVar37 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4));\n                      }\n                      pppppppcStack_218 = (code *******)((int)pppppppcStack_218 + 1);\n                      iVar43 = iVar43 + 0xc;\n                    } while (pppppppcStack_218 < pppppppcVar29[2]);" do (compound_statement "{\n                      piVar5 = *(int **)((int)pppppppcVar29[6] + iVar43 + 8);\n                      if (0 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4)) {\n                        iVar37 = 0;\n                        do {\n                          pppppppcVar38 = pppppppcStack_218;\n                          iVar22 = (*(code *)(iVar18 + 0x6e30))\n                                             (pppppppcVar29[7] + *piVar5 * 3,pppppppcStack_218);\n                          pppppppcVar30 = (code *******)0xc;\n                          if (iVar22 == 0) goto LAB_00056168;\n                          iVar37 = iVar37 + 1;\n                          piVar5 = piVar5 + 1;\n                        } while (iVar37 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4));\n                      }\n                      pppppppcStack_218 = (code *******)((int)pppppppcStack_218 + 1);\n                      iVar43 = iVar43 + 0xc;\n                    }" { (expression_statement "piVar5 = *(int **)((int)pppppppcVar29[6] + iVar43 + 8);" (assignment_expression "piVar5 = *(int **)((int)pppppppcVar29[6] + iVar43 + 8)" identifier = (pointer_expression "*(int **)((int)pppppppcVar29[6] + iVar43 + 8)" * (cast_expression "(int **)((int)pppppppcVar29[6] + iVar43 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppppppcVar29[6] + iVar43 + 8)" ( (binary_expression "(int)pppppppcVar29[6] + iVar43 + 8" (binary_expression "(int)pppppppcVar29[6] + iVar43" (cast_expression "(int)pppppppcVar29[6]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "pppppppcVar29[6]" identifier [ number_literal ])) + identifier) + number_literal) ))))) ;) (if_statement "if (0 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4)) {\n                        iVar37 = 0;\n                        do {\n                          pppppppcVar38 = pppppppcStack_218;\n                          iVar22 = (*(code *)(iVar18 + 0x6e30))\n                                             (pppppppcVar29[7] + *piVar5 * 3,pppppppcStack_218);\n                          pppppppcVar30 = (code *******)0xc;\n                          if (iVar22 == 0) goto LAB_00056168;\n                          iVar37 = iVar37 + 1;\n                          piVar5 = piVar5 + 1;\n                        } while (iVar37 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4));\n                      }" if (parenthesized_expression "(0 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4))" ( (binary_expression "0 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4)" number_literal < (pointer_expression "*(int *)((int)pppppppcVar29[6] + iVar43 + 4)" * (cast_expression "(int *)((int)pppppppcVar29[6] + iVar43 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppppppcVar29[6] + iVar43 + 4)" ( (binary_expression "(int)pppppppcVar29[6] + iVar43 + 4" (binary_expression "(int)pppppppcVar29[6] + iVar43" (cast_expression "(int)pppppppcVar29[6]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "pppppppcVar29[6]" identifier [ number_literal ])) + identifier) + number_literal) ))))) )) (compound_statement "{\n                        iVar37 = 0;\n                        do {\n                          pppppppcVar38 = pppppppcStack_218;\n                          iVar22 = (*(code *)(iVar18 + 0x6e30))\n                                             (pppppppcVar29[7] + *piVar5 * 3,pppppppcStack_218);\n                          pppppppcVar30 = (code *******)0xc;\n                          if (iVar22 == 0) goto LAB_00056168;\n                          iVar37 = iVar37 + 1;\n                          piVar5 = piVar5 + 1;\n                        } while (iVar37 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4));\n                      }" { (expression_statement "iVar37 = 0;" (assignment_expression "iVar37 = 0" identifier = number_literal) ;) (do_statement "do {\n                          pppppppcVar38 = pppppppcStack_218;\n                          iVar22 = (*(code *)(iVar18 + 0x6e30))\n                                             (pppppppcVar29[7] + *piVar5 * 3,pppppppcStack_218);\n                          pppppppcVar30 = (code *******)0xc;\n                          if (iVar22 == 0) goto LAB_00056168;\n                          iVar37 = iVar37 + 1;\n                          piVar5 = piVar5 + 1;\n                        } while (iVar37 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4));" do (compound_statement "{\n                          pppppppcVar38 = pppppppcStack_218;\n                          iVar22 = (*(code *)(iVar18 + 0x6e30))\n                                             (pppppppcVar29[7] + *piVar5 * 3,pppppppcStack_218);\n                          pppppppcVar30 = (code *******)0xc;\n                          if (iVar22 == 0) goto LAB_00056168;\n                          iVar37 = iVar37 + 1;\n                          piVar5 = piVar5 + 1;\n                        }" { (expression_statement "pppppppcVar38 = pppppppcStack_218;" (assignment_expression "pppppppcVar38 = pppppppcStack_218" identifier = identifier) ;) (expression_statement "iVar22 = (*(code *)(iVar18 + 0x6e30))\n                                             (pppppppcVar29[7] + *piVar5 * 3,pppppppcStack_218);" (assignment_expression "iVar22 = (*(code *)(iVar18 + 0x6e30))\n                                             (pppppppcVar29[7] + *piVar5 * 3,pppppppcStack_218)" identifier = (call_expression "(*(code *)(iVar18 + 0x6e30))\n                                             (pppppppcVar29[7] + *piVar5 * 3,pppppppcStack_218)" (parenthesized_expression "(*(code *)(iVar18 + 0x6e30))" ( (pointer_expression "*(code *)(iVar18 + 0x6e30)" * (cast_expression "(code *)(iVar18 + 0x6e30)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x6e30)" ( (binary_expression "iVar18 + 0x6e30" identifier + number_literal) )))) )) (argument_list "(pppppppcVar29[7] + *piVar5 * 3,pppppppcStack_218)" ( (binary_expression "pppppppcVar29[7] + *piVar5 * 3" (subscript_expression "pppppppcVar29[7]" identifier [ number_literal ]) + (binary_expression "*piVar5 * 3" (pointer_expression "*piVar5" * identifier) * number_literal)) , identifier )))) ;) (expression_statement "pppppppcVar30 = (code *******)0xc;" (assignment_expression "pppppppcVar30 = (code *******)0xc" identifier = (cast_expression "(code *******)0xc" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (if_statement "if (iVar22 == 0) goto LAB_00056168;" if (parenthesized_expression "(iVar22 == 0)" ( (binary_expression "iVar22 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00056168;" goto statement_identifier ;)) (expression_statement "iVar37 = iVar37 + 1;" (assignment_expression "iVar37 = iVar37 + 1" identifier = (binary_expression "iVar37 + 1" identifier + number_literal)) ;) (expression_statement "piVar5 = piVar5 + 1;" (assignment_expression "piVar5 = piVar5 + 1" identifier = (binary_expression "piVar5 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar37 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4))" ( (binary_expression "iVar37 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4)" identifier < (pointer_expression "*(int *)((int)pppppppcVar29[6] + iVar43 + 4)" * (cast_expression "(int *)((int)pppppppcVar29[6] + iVar43 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppppppcVar29[6] + iVar43 + 4)" ( (binary_expression "(int)pppppppcVar29[6] + iVar43 + 4" (binary_expression "(int)pppppppcVar29[6] + iVar43" (cast_expression "(int)pppppppcVar29[6]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "pppppppcVar29[6]" identifier [ number_literal ])) + identifier) + number_literal) ))))) )) ;) })) (expression_statement "pppppppcStack_218 = (code *******)((int)pppppppcStack_218 + 1);" (assignment_expression "pppppppcStack_218 = (code *******)((int)pppppppcStack_218 + 1)" identifier = (cast_expression "(code *******)((int)pppppppcStack_218 + 1)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)pppppppcStack_218 + 1)" ( (binary_expression "(int)pppppppcStack_218 + 1" (cast_expression "(int)pppppppcStack_218" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "iVar43 = iVar43 + 0xc;" (assignment_expression "iVar43 = iVar43 + 0xc" identifier = (binary_expression "iVar43 + 0xc" identifier + number_literal)) ;) }) while (parenthesized_expression "(pppppppcStack_218 < pppppppcVar29[2])" ( (binary_expression "pppppppcStack_218 < pppppppcVar29[2]" identifier < (subscript_expression "pppppppcVar29[2]" identifier [ number_literal ])) )) ;) })) })) (labeled_statement "LAB_000568f0:\n                pppppppcStack_20c = (code *******)0x0;" statement_identifier : (expression_statement "pppppppcStack_20c = (code *******)0x0;" (assignment_expression "pppppppcStack_20c = (code *******)0x0" identifier = (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;)) (if_statement "if (((((uint)pppppppcVar34[0x16] & 0x20000000) != 0) && (uVar16 == 0)) &&\n                   (pppppppcVar3[5] == (code ******)0x0)) {\n                  if (pppppppcVar34[2] != (code ******)0x0) {\n                    pppppppcVar31 = (code *******)(*(int *)(puVar41 + 0x23754) + 0x6e4c);\n                    if (*(byte *)(*pppppppcVar34 + 1) < 0xd) {\n                    /* WARNING: Could not recover jumptable at 0x00056a60. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      pppppppcVar29 =\n                           (code *******)\n                           (*(code *)(puVar41 +\n                                     (int)(pppppppcVar31[*(byte *)(*pppppppcVar34 + 1)] + 0xadc7)))\n                                     ();\n                      return pppppppcVar29;\n                    }\n                    (**(code **)(puVar41 + 0x23bc4))(0);\n                    if (uVar7 != 0) {\n                      pppppppcVar31 = (code *******)&DAT_00000007;\n                      ppppppcVar32 = (code ******)0x0;\n                      do {\n                        ppppppcVar35 = *pppppppcVar34 + (int)ppppppcVar32 * 2;\n                        if (*(char *)(ppppppcVar35 + 1) == '\x01') {\n                          if (*(char *)ppppppcVar35 < '\0') {\n                            ppppppcVar35[1] = (code *****)((uint)ppppppcVar35[1] & 0xfffffbff);\n                          }\n                        }\n                        else if (*(char *)(ppppppcVar35 + 1) == '\x05') {\n                          *(char *)(ppppppcVar35 + 1) = '\a';\n                        }\n                        ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                      } while (ppppppcVar32 < pppppppcVar34[2]);\n                    }\n                  }\n                  pppppppcVar34[0x17] = (code ******)0x1;\n                  if (0 < (int)pppppppcVar34[0x13]) {\n                    uVar7 = 1;\n                  }\n                  *(byte *)(pppppppcVar34 + 0x16) =\n                       (byte)*(code *)(pppppppcVar34 + 0x16) & 0x9f | (byte)((uVar7 & 1) << 6);\n                }" if (parenthesized_expression "(((((uint)pppppppcVar34[0x16] & 0x20000000) != 0) && (uVar16 == 0)) &&\n                   (pppppppcVar3[5] == (code ******)0x0))" ( (binary_expression "((((uint)pppppppcVar34[0x16] & 0x20000000) != 0) && (uVar16 == 0)) &&\n                   (pppppppcVar3[5] == (code ******)0x0)" (parenthesized_expression "((((uint)pppppppcVar34[0x16] & 0x20000000) != 0) && (uVar16 == 0))" ( (binary_expression "(((uint)pppppppcVar34[0x16] & 0x20000000) != 0) && (uVar16 == 0)" (parenthesized_expression "(((uint)pppppppcVar34[0x16] & 0x20000000) != 0)" ( (binary_expression "((uint)pppppppcVar34[0x16] & 0x20000000) != 0" (parenthesized_expression "((uint)pppppppcVar34[0x16] & 0x20000000)" ( (binary_expression "(uint)pppppppcVar34[0x16] & 0x20000000" (cast_expression "(uint)pppppppcVar34[0x16]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pppppppcVar34[0x16]" identifier [ number_literal ])) & number_literal) )) != number_literal) )) && (parenthesized_expression "(uVar16 == 0)" ( (binary_expression "uVar16 == 0" identifier == number_literal) ))) )) && (parenthesized_expression "(pppppppcVar3[5] == (code ******)0x0)" ( (binary_expression "pppppppcVar3[5] == (code ******)0x0" (subscript_expression "pppppppcVar3[5]" identifier [ number_literal ]) == (cast_expression "(code ******)0x0" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ))) )) (compound_statement "{\n                  if (pppppppcVar34[2] != (code ******)0x0) {\n                    pppppppcVar31 = (code *******)(*(int *)(puVar41 + 0x23754) + 0x6e4c);\n                    if (*(byte *)(*pppppppcVar34 + 1) < 0xd) {\n                    /* WARNING: Could not recover jumptable at 0x00056a60. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      pppppppcVar29 =\n                           (code *******)\n                           (*(code *)(puVar41 +\n                                     (int)(pppppppcVar31[*(byte *)(*pppppppcVar34 + 1)] + 0xadc7)))\n                                     ();\n                      return pppppppcVar29;\n                    }\n                    (**(code **)(puVar41 + 0x23bc4))(0);\n                    if (uVar7 != 0) {\n                      pppppppcVar31 = (code *******)&DAT_00000007;\n                      ppppppcVar32 = (code ******)0x0;\n                      do {\n                        ppppppcVar35 = *pppppppcVar34 + (int)ppppppcVar32 * 2;\n                        if (*(char *)(ppppppcVar35 + 1) == '\x01') {\n                          if (*(char *)ppppppcVar35 < '\0') {\n                            ppppppcVar35[1] = (code *****)((uint)ppppppcVar35[1] & 0xfffffbff);\n                          }\n                        }\n                        else if (*(char *)(ppppppcVar35 + 1) == '\x05') {\n                          *(char *)(ppppppcVar35 + 1) = '\a';\n                        }\n                        ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                      } while (ppppppcVar32 < pppppppcVar34[2]);\n                    }\n                  }\n                  pppppppcVar34[0x17] = (code ******)0x1;\n                  if (0 < (int)pppppppcVar34[0x13]) {\n                    uVar7 = 1;\n                  }\n                  *(byte *)(pppppppcVar34 + 0x16) =\n                       (byte)*(code *)(pppppppcVar34 + 0x16) & 0x9f | (byte)((uVar7 & 1) << 6);\n                }" { (if_statement "if (pppppppcVar34[2] != (code ******)0x0) {\n                    pppppppcVar31 = (code *******)(*(int *)(puVar41 + 0x23754) + 0x6e4c);\n                    if (*(byte *)(*pppppppcVar34 + 1) < 0xd) {\n                    /* WARNING: Could not recover jumptable at 0x00056a60. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      pppppppcVar29 =\n                           (code *******)\n                           (*(code *)(puVar41 +\n                                     (int)(pppppppcVar31[*(byte *)(*pppppppcVar34 + 1)] + 0xadc7)))\n                                     ();\n                      return pppppppcVar29;\n                    }\n                    (**(code **)(puVar41 + 0x23bc4))(0);\n                    if (uVar7 != 0) {\n                      pppppppcVar31 = (code *******)&DAT_00000007;\n                      ppppppcVar32 = (code ******)0x0;\n                      do {\n                        ppppppcVar35 = *pppppppcVar34 + (int)ppppppcVar32 * 2;\n                        if (*(char *)(ppppppcVar35 + 1) == '\x01') {\n                          if (*(char *)ppppppcVar35 < '\0') {\n                            ppppppcVar35[1] = (code *****)((uint)ppppppcVar35[1] & 0xfffffbff);\n                          }\n                        }\n                        else if (*(char *)(ppppppcVar35 + 1) == '\x05') {\n                          *(char *)(ppppppcVar35 + 1) = '\a';\n                        }\n                        ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                      } while (ppppppcVar32 < pppppppcVar34[2]);\n                    }\n                  }" if (parenthesized_expression "(pppppppcVar34[2] != (code ******)0x0)" ( (binary_expression "pppppppcVar34[2] != (code ******)0x0" (subscript_expression "pppppppcVar34[2]" identifier [ number_literal ]) != (cast_expression "(code ******)0x0" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (compound_statement "{\n                    pppppppcVar31 = (code *******)(*(int *)(puVar41 + 0x23754) + 0x6e4c);\n                    if (*(byte *)(*pppppppcVar34 + 1) < 0xd) {\n                    /* WARNING: Could not recover jumptable at 0x00056a60. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      pppppppcVar29 =\n                           (code *******)\n                           (*(code *)(puVar41 +\n                                     (int)(pppppppcVar31[*(byte *)(*pppppppcVar34 + 1)] + 0xadc7)))\n                                     ();\n                      return pppppppcVar29;\n                    }\n                    (**(code **)(puVar41 + 0x23bc4))(0);\n                    if (uVar7 != 0) {\n                      pppppppcVar31 = (code *******)&DAT_00000007;\n                      ppppppcVar32 = (code ******)0x0;\n                      do {\n                        ppppppcVar35 = *pppppppcVar34 + (int)ppppppcVar32 * 2;\n                        if (*(char *)(ppppppcVar35 + 1) == '\x01') {\n                          if (*(char *)ppppppcVar35 < '\0') {\n                            ppppppcVar35[1] = (code *****)((uint)ppppppcVar35[1] & 0xfffffbff);\n                          }\n                        }\n                        else if (*(char *)(ppppppcVar35 + 1) == '\x05') {\n                          *(char *)(ppppppcVar35 + 1) = '\a';\n                        }\n                        ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                      } while (ppppppcVar32 < pppppppcVar34[2]);\n                    }\n                  }" { (expression_statement "pppppppcVar31 = (code *******)(*(int *)(puVar41 + 0x23754) + 0x6e4c);" (assignment_expression "pppppppcVar31 = (code *******)(*(int *)(puVar41 + 0x23754) + 0x6e4c)" identifier = (cast_expression "(code *******)(*(int *)(puVar41 + 0x23754) + 0x6e4c)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(*(int *)(puVar41 + 0x23754) + 0x6e4c)" ( (binary_expression "*(int *)(puVar41 + 0x23754) + 0x6e4c" (pointer_expression "*(int *)(puVar41 + 0x23754)" * (cast_expression "(int *)(puVar41 + 0x23754)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar41 + 0x23754)" ( (binary_expression "puVar41 + 0x23754" identifier + number_literal) )))) + number_literal) )))) ;) (if_statement "if (*(byte *)(*pppppppcVar34 + 1) < 0xd) {\n                    /* WARNING: Could not recover jumptable at 0x00056a60. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      pppppppcVar29 =\n                           (code *******)\n                           (*(code *)(puVar41 +\n                                     (int)(pppppppcVar31[*(byte *)(*pppppppcVar34 + 1)] + 0xadc7)))\n                                     ();\n                      return pppppppcVar29;\n                    }" if (parenthesized_expression "(*(byte *)(*pppppppcVar34 + 1) < 0xd)" ( (binary_expression "*(byte *)(*pppppppcVar34 + 1) < 0xd" (pointer_expression "*(byte *)(*pppppppcVar34 + 1)" * (cast_expression "(byte *)(*pppppppcVar34 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*pppppppcVar34 + 1)" ( (binary_expression "*pppppppcVar34 + 1" (pointer_expression "*pppppppcVar34" * identifier) + number_literal) )))) < number_literal) )) (compound_statement "{\n                    /* WARNING: Could not recover jumptable at 0x00056a60. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      pppppppcVar29 =\n                           (code *******)\n                           (*(code *)(puVar41 +\n                                     (int)(pppppppcVar31[*(byte *)(*pppppppcVar34 + 1)] + 0xadc7)))\n                                     ();\n                      return pppppppcVar29;\n                    }" { comment comment (expression_statement "pppppppcVar29 =\n                           (code *******)\n                           (*(code *)(puVar41 +\n                                     (int)(pppppppcVar31[*(byte *)(*pppppppcVar34 + 1)] + 0xadc7)))\n                                     ();" (assignment_expression "pppppppcVar29 =\n                           (code *******)\n                           (*(code *)(puVar41 +\n                                     (int)(pppppppcVar31[*(byte *)(*pppppppcVar34 + 1)] + 0xadc7)))\n                                     ()" identifier = (cast_expression "(code *******)\n                           (*(code *)(puVar41 +\n                                     (int)(pppppppcVar31[*(byte *)(*pppppppcVar34 + 1)] + 0xadc7)))\n                                     ()" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "(*(code *)(puVar41 +\n                                     (int)(pppppppcVar31[*(byte *)(*pppppppcVar34 + 1)] + 0xadc7)))\n                                     ()" (parenthesized_expression "(*(code *)(puVar41 +\n                                     (int)(pppppppcVar31[*(byte *)(*pppppppcVar34 + 1)] + 0xadc7)))" ( (pointer_expression "*(code *)(puVar41 +\n                                     (int)(pppppppcVar31[*(byte *)(*pppppppcVar34 + 1)] + 0xadc7))" * (cast_expression "(code *)(puVar41 +\n                                     (int)(pppppppcVar31[*(byte *)(*pppppppcVar34 + 1)] + 0xadc7))" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar41 +\n                                     (int)(pppppppcVar31[*(byte *)(*pppppppcVar34 + 1)] + 0xadc7))" ( (binary_expression "puVar41 +\n                                     (int)(pppppppcVar31[*(byte *)(*pppppppcVar34 + 1)] + 0xadc7)" identifier + (cast_expression "(int)(pppppppcVar31[*(byte *)(*pppppppcVar34 + 1)] + 0xadc7)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pppppppcVar31[*(byte *)(*pppppppcVar34 + 1)] + 0xadc7)" ( (binary_expression "pppppppcVar31[*(byte *)(*pppppppcVar34 + 1)] + 0xadc7" (subscript_expression "pppppppcVar31[*(byte *)(*pppppppcVar34 + 1)]" identifier [ (pointer_expression "*(byte *)(*pppppppcVar34 + 1)" * (cast_expression "(byte *)(*pppppppcVar34 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*pppppppcVar34 + 1)" ( (binary_expression "*pppppppcVar34 + 1" (pointer_expression "*pppppppcVar34" * identifier) + number_literal) )))) ]) + number_literal) )))) )))) )) (argument_list "()" ( ))))) ;) (return_statement "return pppppppcVar29;" return identifier ;) })) (expression_statement "(**(code **)(puVar41 + 0x23bc4))(0);" (call_expression "(**(code **)(puVar41 + 0x23bc4))(0)" (parenthesized_expression "(**(code **)(puVar41 + 0x23bc4))" ( (pointer_expression "**(code **)(puVar41 + 0x23bc4)" * (pointer_expression "*(code **)(puVar41 + 0x23bc4)" * (cast_expression "(code **)(puVar41 + 0x23bc4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar41 + 0x23bc4)" ( (binary_expression "puVar41 + 0x23bc4" identifier + number_literal) ))))) )) (argument_list "(0)" ( number_literal ))) ;) (if_statement "if (uVar7 != 0) {\n                      pppppppcVar31 = (code *******)&DAT_00000007;\n                      ppppppcVar32 = (code ******)0x0;\n                      do {\n                        ppppppcVar35 = *pppppppcVar34 + (int)ppppppcVar32 * 2;\n                        if (*(char *)(ppppppcVar35 + 1) == '\x01') {\n                          if (*(char *)ppppppcVar35 < '\0') {\n                            ppppppcVar35[1] = (code *****)((uint)ppppppcVar35[1] & 0xfffffbff);\n                          }\n                        }\n                        else if (*(char *)(ppppppcVar35 + 1) == '\x05') {\n                          *(char *)(ppppppcVar35 + 1) = '\a';\n                        }\n                        ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                      } while (ppppppcVar32 < pppppppcVar34[2]);\n                    }" if (parenthesized_expression "(uVar7 != 0)" ( (binary_expression "uVar7 != 0" identifier != number_literal) )) (compound_statement "{\n                      pppppppcVar31 = (code *******)&DAT_00000007;\n                      ppppppcVar32 = (code ******)0x0;\n                      do {\n                        ppppppcVar35 = *pppppppcVar34 + (int)ppppppcVar32 * 2;\n                        if (*(char *)(ppppppcVar35 + 1) == '\x01') {\n                          if (*(char *)ppppppcVar35 < '\0') {\n                            ppppppcVar35[1] = (code *****)((uint)ppppppcVar35[1] & 0xfffffbff);\n                          }\n                        }\n                        else if (*(char *)(ppppppcVar35 + 1) == '\x05') {\n                          *(char *)(ppppppcVar35 + 1) = '\a';\n                        }\n                        ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                      } while (ppppppcVar32 < pppppppcVar34[2]);\n                    }" { (expression_statement "pppppppcVar31 = (code *******)&DAT_00000007;" (assignment_expression "pppppppcVar31 = (code *******)&DAT_00000007" identifier = (cast_expression "(code *******)&DAT_00000007" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "&DAT_00000007" & identifier))) ;) (expression_statement "ppppppcVar32 = (code ******)0x0;" (assignment_expression "ppppppcVar32 = (code ******)0x0" identifier = (cast_expression "(code ******)0x0" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) (do_statement "do {\n                        ppppppcVar35 = *pppppppcVar34 + (int)ppppppcVar32 * 2;\n                        if (*(char *)(ppppppcVar35 + 1) == '\x01') {\n                          if (*(char *)ppppppcVar35 < '\0') {\n                            ppppppcVar35[1] = (code *****)((uint)ppppppcVar35[1] & 0xfffffbff);\n                          }\n                        }\n                        else if (*(char *)(ppppppcVar35 + 1) == '\x05') {\n                          *(char *)(ppppppcVar35 + 1) = '\a';\n                        }\n                        ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                      } while (ppppppcVar32 < pppppppcVar34[2]);" do (compound_statement "{\n                        ppppppcVar35 = *pppppppcVar34 + (int)ppppppcVar32 * 2;\n                        if (*(char *)(ppppppcVar35 + 1) == '\x01') {\n                          if (*(char *)ppppppcVar35 < '\0') {\n                            ppppppcVar35[1] = (code *****)((uint)ppppppcVar35[1] & 0xfffffbff);\n                          }\n                        }\n                        else if (*(char *)(ppppppcVar35 + 1) == '\x05') {\n                          *(char *)(ppppppcVar35 + 1) = '\a';\n                        }\n                        ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                      }" { (expression_statement "ppppppcVar35 = *pppppppcVar34 + (int)ppppppcVar32 * 2;" (assignment_expression "ppppppcVar35 = *pppppppcVar34 + (int)ppppppcVar32 * 2" identifier = (binary_expression "*pppppppcVar34 + (int)ppppppcVar32 * 2" (pointer_expression "*pppppppcVar34" * identifier) + (binary_expression "(int)ppppppcVar32 * 2" (cast_expression "(int)ppppppcVar32" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal))) ;) (if_statement "if (*(char *)(ppppppcVar35 + 1) == '\x01') {\n                          if (*(char *)ppppppcVar35 < '\0') {\n                            ppppppcVar35[1] = (code *****)((uint)ppppppcVar35[1] & 0xfffffbff);\n                          }\n                        }\n                        else if (*(char *)(ppppppcVar35 + 1) == '\x05') {\n                          *(char *)(ppppppcVar35 + 1) = '\a';\n                        }" if (parenthesized_expression "(*(char *)(ppppppcVar35 + 1) == '\x01')" ( (binary_expression "*(char *)(ppppppcVar35 + 1) == '\x01'" (pointer_expression "*(char *)(ppppppcVar35 + 1)" * (cast_expression "(char *)(ppppppcVar35 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppppppcVar35 + 1)" ( (binary_expression "ppppppcVar35 + 1" identifier + number_literal) )))) == (char_literal "'\x01'" ' escape_sequence ')) )) (compound_statement "{\n                          if (*(char *)ppppppcVar35 < '\0') {\n                            ppppppcVar35[1] = (code *****)((uint)ppppppcVar35[1] & 0xfffffbff);\n                          }\n                        }" { (if_statement "if (*(char *)ppppppcVar35 < '\0') {\n                            ppppppcVar35[1] = (code *****)((uint)ppppppcVar35[1] & 0xfffffbff);\n                          }" if (parenthesized_expression "(*(char *)ppppppcVar35 < '\0')" ( (binary_expression "*(char *)ppppppcVar35 < '\0'" (pointer_expression "*(char *)ppppppcVar35" * (cast_expression "(char *)ppppppcVar35" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                            ppppppcVar35[1] = (code *****)((uint)ppppppcVar35[1] & 0xfffffbff);\n                          }" { (expression_statement "ppppppcVar35[1] = (code *****)((uint)ppppppcVar35[1] & 0xfffffbff);" (assignment_expression "ppppppcVar35[1] = (code *****)((uint)ppppppcVar35[1] & 0xfffffbff)" (subscript_expression "ppppppcVar35[1]" identifier [ number_literal ]) = (cast_expression "(code *****)((uint)ppppppcVar35[1] & 0xfffffbff)" ( (type_descriptor "code *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "((uint)ppppppcVar35[1] & 0xfffffbff)" ( (binary_expression "(uint)ppppppcVar35[1] & 0xfffffbff" (cast_expression "(uint)ppppppcVar35[1]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "ppppppcVar35[1]" identifier [ number_literal ])) & number_literal) )))) ;) })) }) (else_clause "else if (*(char *)(ppppppcVar35 + 1) == '\x05') {\n                          *(char *)(ppppppcVar35 + 1) = '\a';\n                        }" else (if_statement "if (*(char *)(ppppppcVar35 + 1) == '\x05') {\n                          *(char *)(ppppppcVar35 + 1) = '\a';\n                        }" if (parenthesized_expression "(*(char *)(ppppppcVar35 + 1) == '\x05')" ( (binary_expression "*(char *)(ppppppcVar35 + 1) == '\x05'" (pointer_expression "*(char *)(ppppppcVar35 + 1)" * (cast_expression "(char *)(ppppppcVar35 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppppppcVar35 + 1)" ( (binary_expression "ppppppcVar35 + 1" identifier + number_literal) )))) == (char_literal "'\x05'" ' escape_sequence ')) )) (compound_statement "{\n                          *(char *)(ppppppcVar35 + 1) = '\a';\n                        }" { (expression_statement "*(char *)(ppppppcVar35 + 1) = '\a';" (assignment_expression "*(char *)(ppppppcVar35 + 1) = '\a'" (pointer_expression "*(char *)(ppppppcVar35 + 1)" * (cast_expression "(char *)(ppppppcVar35 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppppppcVar35 + 1)" ( (binary_expression "ppppppcVar35 + 1" identifier + number_literal) )))) = (char_literal "'\a'" ' escape_sequence ')) ;) })))) (expression_statement "ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);" (assignment_expression "ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1)" identifier = (cast_expression "(code ******)((int)ppppppcVar32 + 1)" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "((int)ppppppcVar32 + 1)" ( (binary_expression "(int)ppppppcVar32 + 1" (cast_expression "(int)ppppppcVar32" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) }) while (parenthesized_expression "(ppppppcVar32 < pppppppcVar34[2])" ( (binary_expression "ppppppcVar32 < pppppppcVar34[2]" identifier < (subscript_expression "pppppppcVar34[2]" identifier [ number_literal ])) )) ;) })) })) (expression_statement "pppppppcVar34[0x17] = (code ******)0x1;" (assignment_expression "pppppppcVar34[0x17] = (code ******)0x1" (subscript_expression "pppppppcVar34[0x17]" identifier [ number_literal ]) = (cast_expression "(code ******)0x1" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) (if_statement "if (0 < (int)pppppppcVar34[0x13]) {\n                    uVar7 = 1;\n                  }" if (parenthesized_expression "(0 < (int)pppppppcVar34[0x13])" ( (binary_expression "0 < (int)pppppppcVar34[0x13]" number_literal < (cast_expression "(int)pppppppcVar34[0x13]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "pppppppcVar34[0x13]" identifier [ number_literal ]))) )) (compound_statement "{\n                    uVar7 = 1;\n                  }" { (expression_statement "uVar7 = 1;" (assignment_expression "uVar7 = 1" identifier = number_literal) ;) })) (expression_statement "*(byte *)(pppppppcVar34 + 0x16) =\n                       (byte)*(code *)(pppppppcVar34 + 0x16) & 0x9f | (byte)((uVar7 & 1) << 6);" (assignment_expression "*(byte *)(pppppppcVar34 + 0x16) =\n                       (byte)*(code *)(pppppppcVar34 + 0x16) & 0x9f | (byte)((uVar7 & 1) << 6)" (pointer_expression "*(byte *)(pppppppcVar34 + 0x16)" * (cast_expression "(byte *)(pppppppcVar34 + 0x16)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pppppppcVar34 + 0x16)" ( (binary_expression "pppppppcVar34 + 0x16" identifier + number_literal) )))) = (binary_expression "(byte)*(code *)(pppppppcVar34 + 0x16) & 0x9f | (byte)((uVar7 & 1) << 6)" (binary_expression "(byte)*(code *)(pppppppcVar34 + 0x16) & 0x9f" (binary_expression "(byte)*(code *)(pppppppcVar34 + 0x16)" (parenthesized_expression "(byte)" ( identifier )) * (cast_expression "(code *)(pppppppcVar34 + 0x16)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pppppppcVar34 + 0x16)" ( (binary_expression "pppppppcVar34 + 0x16" identifier + number_literal) )))) & number_literal) | (call_expression "(byte)((uVar7 & 1) << 6)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uVar7 & 1) << 6)" ( (binary_expression "(uVar7 & 1) << 6" (parenthesized_expression "(uVar7 & 1)" ( (binary_expression "uVar7 & 1" identifier & number_literal) )) << number_literal) ))))) ;) })) (expression_statement "ppppppcVar32 = (code ******)pppppppcVar34[0xd][3][7];" (assignment_expression "ppppppcVar32 = (code ******)pppppppcVar34[0xd][3][7]" identifier = (cast_expression "(code ******)pppppppcVar34[0xd][3][7]" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (subscript_expression "pppppppcVar34[0xd][3][7]" (subscript_expression "pppppppcVar34[0xd][3]" (subscript_expression "pppppppcVar34[0xd]" identifier [ number_literal ]) [ number_literal ]) [ number_literal ]))) ;) (expression_statement "pppppppcVar34[0x12] = ppppppcVar32;" (assignment_expression "pppppppcVar34[0x12] = ppppppcVar32" (subscript_expression "pppppppcVar34[0x12]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppppcVar32 * 3);" (assignment_expression "pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppppcVar32 * 3)" identifier = (cast_expression "(code *******)(pppppppcVar34[6] + (int)ppppppcVar32 * 3)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(pppppppcVar34[6] + (int)ppppppcVar32 * 3)" ( (binary_expression "pppppppcVar34[6] + (int)ppppppcVar32 * 3" (subscript_expression "pppppppcVar34[6]" identifier [ number_literal ]) + (binary_expression "(int)ppppppcVar32 * 3" (cast_expression "(int)ppppppcVar32" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) )))) ;) (expression_statement "pppppppcVar33 = (code *******)FUN_000483e8(&ppppppcStack_204,pppppppcVar38);" (assignment_expression "pppppppcVar33 = (code *******)FUN_000483e8(&ppppppcStack_204,pppppppcVar38)" identifier = (cast_expression "(code *******)FUN_000483e8(&ppppppcStack_204,pppppppcVar38)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "FUN_000483e8(&ppppppcStack_204,pppppppcVar38)" identifier (argument_list "(&ppppppcStack_204,pppppppcVar38)" ( (pointer_expression "&ppppppcStack_204" & identifier) , identifier ))))) ;) (expression_statement "pppppppcVar29 = pppppppcVar33;" (assignment_expression "pppppppcVar29 = pppppppcVar33" identifier = identifier) ;) (expression_statement "pppppppcStack_208 = pppppppcVar33;" (assignment_expression "pppppppcStack_208 = pppppppcVar33" identifier = identifier) ;) (if_statement "if (pppppppcVar33 == (code *******)0x0) {\n                  if ((0 < (int)pppppppcVar34[0x13]) && (0 < iStack_200)) {\n                    iVar18 = *(int *)(puVar41 + 0x23abc);\n                    iVar43 = *(int *)(puVar41 + 0x23abc);\n                    pppppppcVar29 = (code *******)0x0;\n                    do {\n                      pppppppcVar31 =\n                           (code *******)(*pppppppcVar34 + piStack_1fc[(int)pppppppcVar29] * 2);\n                      if (*(code *)(pppppppcVar31 + 1) == (code)0x4) {\n                        iVar37 = 0;\n                        piVar5 = piStack_1fc;\n                        if (iStack_200 < 1) {\nLAB_00056b8c:\n                          if (iStack_200 != iVar37) {\n                            ppppcVar40 = *pppppppcVar34[5][piStack_1fc[(int)pppppppcVar29] * 3 + 2];\n                            iVar37 = (*(code *)(iVar18 + 0x5ea8))(&ppppppcStack_204,ppppcVar40);\n                            if (iVar37 == 0) {\n                              pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppcVar40 * 3)\n                              ;\n                              pppppppcVar29 =\n                                   (code *******)\n                                   (*(code *)(iVar43 + 0x7f1c))(&ppppppcStack_204,pppppppcVar38);\n                              if (pppppppcVar29 != (code *******)0x0) goto LAB_00056cb8;\n                            }\n                          }\n                        }\n                        else {\n                          do {\n                            ppppppcVar32 = *pppppppcVar34 + *piVar5 * 2;\n                            if ((*(char *)(ppppppcVar32 + 1) == '\t') &&\n                               ((code ******)*ppppppcVar32 == *pppppppcVar31)) goto LAB_00056b8c;\n                            iVar37 = iVar37 + 1;\n                            piVar5 = piVar5 + 1;\n                          } while (iStack_200 != iVar37);\n                        }\n                      }\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1);\n                    } while ((int)pppppppcVar29 < iStack_200);\n                  }\n                  pppppppcVar31 = &ppppppcStack_204;\n                  pppppppcVar38 = pppppppcVar34;\n                  ppppppcVar32 = (code ******)\n                                 FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,0);\n                  pppppppcVar34[9] = ppppppcVar32;\n                  pppppppcVar29 = pppppppcStack_208;\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    if (((uint)ppppppcVar32[0xd] & 0x1000000) == 0) {\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar34[10] = ppppppcVar32;\n                    }\n                    else {\n                      pppppppcVar31 = &ppppppcStack_204;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,1);\n                      pppppppcVar34[10] = ppppppcVar32;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,2);\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar38 = pppppppcVar34;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,6);\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar29 = pppppppcStack_208;\n                      if (((pppppppcVar34[10] == (code ******)0x0) ||\n                          (pppppppcVar34[0xb] == (code ******)0x0)) ||\n                         (ppppppcVar32 == (code ******)0x0)) goto LAB_00056cb8;\n                    }\n                    (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                    pppppppcVar29 = pppppppcVar33;\n                  }\n                }" if (parenthesized_expression "(pppppppcVar33 == (code *******)0x0)" ( (binary_expression "pppppppcVar33 == (code *******)0x0" identifier == (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\n                  if ((0 < (int)pppppppcVar34[0x13]) && (0 < iStack_200)) {\n                    iVar18 = *(int *)(puVar41 + 0x23abc);\n                    iVar43 = *(int *)(puVar41 + 0x23abc);\n                    pppppppcVar29 = (code *******)0x0;\n                    do {\n                      pppppppcVar31 =\n                           (code *******)(*pppppppcVar34 + piStack_1fc[(int)pppppppcVar29] * 2);\n                      if (*(code *)(pppppppcVar31 + 1) == (code)0x4) {\n                        iVar37 = 0;\n                        piVar5 = piStack_1fc;\n                        if (iStack_200 < 1) {\nLAB_00056b8c:\n                          if (iStack_200 != iVar37) {\n                            ppppcVar40 = *pppppppcVar34[5][piStack_1fc[(int)pppppppcVar29] * 3 + 2];\n                            iVar37 = (*(code *)(iVar18 + 0x5ea8))(&ppppppcStack_204,ppppcVar40);\n                            if (iVar37 == 0) {\n                              pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppcVar40 * 3)\n                              ;\n                              pppppppcVar29 =\n                                   (code *******)\n                                   (*(code *)(iVar43 + 0x7f1c))(&ppppppcStack_204,pppppppcVar38);\n                              if (pppppppcVar29 != (code *******)0x0) goto LAB_00056cb8;\n                            }\n                          }\n                        }\n                        else {\n                          do {\n                            ppppppcVar32 = *pppppppcVar34 + *piVar5 * 2;\n                            if ((*(char *)(ppppppcVar32 + 1) == '\t') &&\n                               ((code ******)*ppppppcVar32 == *pppppppcVar31)) goto LAB_00056b8c;\n                            iVar37 = iVar37 + 1;\n                            piVar5 = piVar5 + 1;\n                          } while (iStack_200 != iVar37);\n                        }\n                      }\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1);\n                    } while ((int)pppppppcVar29 < iStack_200);\n                  }\n                  pppppppcVar31 = &ppppppcStack_204;\n                  pppppppcVar38 = pppppppcVar34;\n                  ppppppcVar32 = (code ******)\n                                 FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,0);\n                  pppppppcVar34[9] = ppppppcVar32;\n                  pppppppcVar29 = pppppppcStack_208;\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    if (((uint)ppppppcVar32[0xd] & 0x1000000) == 0) {\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar34[10] = ppppppcVar32;\n                    }\n                    else {\n                      pppppppcVar31 = &ppppppcStack_204;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,1);\n                      pppppppcVar34[10] = ppppppcVar32;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,2);\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar38 = pppppppcVar34;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,6);\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar29 = pppppppcStack_208;\n                      if (((pppppppcVar34[10] == (code ******)0x0) ||\n                          (pppppppcVar34[0xb] == (code ******)0x0)) ||\n                         (ppppppcVar32 == (code ******)0x0)) goto LAB_00056cb8;\n                    }\n                    (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                    pppppppcVar29 = pppppppcVar33;\n                  }\n                }" { (if_statement "if ((0 < (int)pppppppcVar34[0x13]) && (0 < iStack_200)) {\n                    iVar18 = *(int *)(puVar41 + 0x23abc);\n                    iVar43 = *(int *)(puVar41 + 0x23abc);\n                    pppppppcVar29 = (code *******)0x0;\n                    do {\n                      pppppppcVar31 =\n                           (code *******)(*pppppppcVar34 + piStack_1fc[(int)pppppppcVar29] * 2);\n                      if (*(code *)(pppppppcVar31 + 1) == (code)0x4) {\n                        iVar37 = 0;\n                        piVar5 = piStack_1fc;\n                        if (iStack_200 < 1) {\nLAB_00056b8c:\n                          if (iStack_200 != iVar37) {\n                            ppppcVar40 = *pppppppcVar34[5][piStack_1fc[(int)pppppppcVar29] * 3 + 2];\n                            iVar37 = (*(code *)(iVar18 + 0x5ea8))(&ppppppcStack_204,ppppcVar40);\n                            if (iVar37 == 0) {\n                              pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppcVar40 * 3)\n                              ;\n                              pppppppcVar29 =\n                                   (code *******)\n                                   (*(code *)(iVar43 + 0x7f1c))(&ppppppcStack_204,pppppppcVar38);\n                              if (pppppppcVar29 != (code *******)0x0) goto LAB_00056cb8;\n                            }\n                          }\n                        }\n                        else {\n                          do {\n                            ppppppcVar32 = *pppppppcVar34 + *piVar5 * 2;\n                            if ((*(char *)(ppppppcVar32 + 1) == '\t') &&\n                               ((code ******)*ppppppcVar32 == *pppppppcVar31)) goto LAB_00056b8c;\n                            iVar37 = iVar37 + 1;\n                            piVar5 = piVar5 + 1;\n                          } while (iStack_200 != iVar37);\n                        }\n                      }\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1);\n                    } while ((int)pppppppcVar29 < iStack_200);\n                  }" if (parenthesized_expression "((0 < (int)pppppppcVar34[0x13]) && (0 < iStack_200))" ( (binary_expression "(0 < (int)pppppppcVar34[0x13]) && (0 < iStack_200)" (parenthesized_expression "(0 < (int)pppppppcVar34[0x13])" ( (binary_expression "0 < (int)pppppppcVar34[0x13]" number_literal < (cast_expression "(int)pppppppcVar34[0x13]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "pppppppcVar34[0x13]" identifier [ number_literal ]))) )) && (parenthesized_expression "(0 < iStack_200)" ( (binary_expression "0 < iStack_200" number_literal < identifier) ))) )) (compound_statement "{\n                    iVar18 = *(int *)(puVar41 + 0x23abc);\n                    iVar43 = *(int *)(puVar41 + 0x23abc);\n                    pppppppcVar29 = (code *******)0x0;\n                    do {\n                      pppppppcVar31 =\n                           (code *******)(*pppppppcVar34 + piStack_1fc[(int)pppppppcVar29] * 2);\n                      if (*(code *)(pppppppcVar31 + 1) == (code)0x4) {\n                        iVar37 = 0;\n                        piVar5 = piStack_1fc;\n                        if (iStack_200 < 1) {\nLAB_00056b8c:\n                          if (iStack_200 != iVar37) {\n                            ppppcVar40 = *pppppppcVar34[5][piStack_1fc[(int)pppppppcVar29] * 3 + 2];\n                            iVar37 = (*(code *)(iVar18 + 0x5ea8))(&ppppppcStack_204,ppppcVar40);\n                            if (iVar37 == 0) {\n                              pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppcVar40 * 3)\n                              ;\n                              pppppppcVar29 =\n                                   (code *******)\n                                   (*(code *)(iVar43 + 0x7f1c))(&ppppppcStack_204,pppppppcVar38);\n                              if (pppppppcVar29 != (code *******)0x0) goto LAB_00056cb8;\n                            }\n                          }\n                        }\n                        else {\n                          do {\n                            ppppppcVar32 = *pppppppcVar34 + *piVar5 * 2;\n                            if ((*(char *)(ppppppcVar32 + 1) == '\t') &&\n                               ((code ******)*ppppppcVar32 == *pppppppcVar31)) goto LAB_00056b8c;\n                            iVar37 = iVar37 + 1;\n                            piVar5 = piVar5 + 1;\n                          } while (iStack_200 != iVar37);\n                        }\n                      }\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1);\n                    } while ((int)pppppppcVar29 < iStack_200);\n                  }" { (expression_statement "iVar18 = *(int *)(puVar41 + 0x23abc);" (assignment_expression "iVar18 = *(int *)(puVar41 + 0x23abc)" identifier = (pointer_expression "*(int *)(puVar41 + 0x23abc)" * (cast_expression "(int *)(puVar41 + 0x23abc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar41 + 0x23abc)" ( (binary_expression "puVar41 + 0x23abc" identifier + number_literal) ))))) ;) (expression_statement "iVar43 = *(int *)(puVar41 + 0x23abc);" (assignment_expression "iVar43 = *(int *)(puVar41 + 0x23abc)" identifier = (pointer_expression "*(int *)(puVar41 + 0x23abc)" * (cast_expression "(int *)(puVar41 + 0x23abc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar41 + 0x23abc)" ( (binary_expression "puVar41 + 0x23abc" identifier + number_literal) ))))) ;) (expression_statement "pppppppcVar29 = (code *******)0x0;" (assignment_expression "pppppppcVar29 = (code *******)0x0" identifier = (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (do_statement "do {\n                      pppppppcVar31 =\n                           (code *******)(*pppppppcVar34 + piStack_1fc[(int)pppppppcVar29] * 2);\n                      if (*(code *)(pppppppcVar31 + 1) == (code)0x4) {\n                        iVar37 = 0;\n                        piVar5 = piStack_1fc;\n                        if (iStack_200 < 1) {\nLAB_00056b8c:\n                          if (iStack_200 != iVar37) {\n                            ppppcVar40 = *pppppppcVar34[5][piStack_1fc[(int)pppppppcVar29] * 3 + 2];\n                            iVar37 = (*(code *)(iVar18 + 0x5ea8))(&ppppppcStack_204,ppppcVar40);\n                            if (iVar37 == 0) {\n                              pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppcVar40 * 3)\n                              ;\n                              pppppppcVar29 =\n                                   (code *******)\n                                   (*(code *)(iVar43 + 0x7f1c))(&ppppppcStack_204,pppppppcVar38);\n                              if (pppppppcVar29 != (code *******)0x0) goto LAB_00056cb8;\n                            }\n                          }\n                        }\n                        else {\n                          do {\n                            ppppppcVar32 = *pppppppcVar34 + *piVar5 * 2;\n                            if ((*(char *)(ppppppcVar32 + 1) == '\t') &&\n                               ((code ******)*ppppppcVar32 == *pppppppcVar31)) goto LAB_00056b8c;\n                            iVar37 = iVar37 + 1;\n                            piVar5 = piVar5 + 1;\n                          } while (iStack_200 != iVar37);\n                        }\n                      }\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1);\n                    } while ((int)pppppppcVar29 < iStack_200);" do (compound_statement "{\n                      pppppppcVar31 =\n                           (code *******)(*pppppppcVar34 + piStack_1fc[(int)pppppppcVar29] * 2);\n                      if (*(code *)(pppppppcVar31 + 1) == (code)0x4) {\n                        iVar37 = 0;\n                        piVar5 = piStack_1fc;\n                        if (iStack_200 < 1) {\nLAB_00056b8c:\n                          if (iStack_200 != iVar37) {\n                            ppppcVar40 = *pppppppcVar34[5][piStack_1fc[(int)pppppppcVar29] * 3 + 2];\n                            iVar37 = (*(code *)(iVar18 + 0x5ea8))(&ppppppcStack_204,ppppcVar40);\n                            if (iVar37 == 0) {\n                              pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppcVar40 * 3)\n                              ;\n                              pppppppcVar29 =\n                                   (code *******)\n                                   (*(code *)(iVar43 + 0x7f1c))(&ppppppcStack_204,pppppppcVar38);\n                              if (pppppppcVar29 != (code *******)0x0) goto LAB_00056cb8;\n                            }\n                          }\n                        }\n                        else {\n                          do {\n                            ppppppcVar32 = *pppppppcVar34 + *piVar5 * 2;\n                            if ((*(char *)(ppppppcVar32 + 1) == '\t') &&\n                               ((code ******)*ppppppcVar32 == *pppppppcVar31)) goto LAB_00056b8c;\n                            iVar37 = iVar37 + 1;\n                            piVar5 = piVar5 + 1;\n                          } while (iStack_200 != iVar37);\n                        }\n                      }\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1);\n                    }" { (expression_statement "pppppppcVar31 =\n                           (code *******)(*pppppppcVar34 + piStack_1fc[(int)pppppppcVar29] * 2);" (assignment_expression "pppppppcVar31 =\n                           (code *******)(*pppppppcVar34 + piStack_1fc[(int)pppppppcVar29] * 2)" identifier = (cast_expression "(code *******)(*pppppppcVar34 + piStack_1fc[(int)pppppppcVar29] * 2)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(*pppppppcVar34 + piStack_1fc[(int)pppppppcVar29] * 2)" ( (binary_expression "*pppppppcVar34 + piStack_1fc[(int)pppppppcVar29] * 2" (pointer_expression "*pppppppcVar34" * identifier) + (binary_expression "piStack_1fc[(int)pppppppcVar29] * 2" (subscript_expression "piStack_1fc[(int)pppppppcVar29]" identifier [ (cast_expression "(int)pppppppcVar29" ( (type_descriptor "int" primitive_type) ) identifier) ]) * number_literal)) )))) ;) (if_statement "if (*(code *)(pppppppcVar31 + 1) == (code)0x4) {\n                        iVar37 = 0;\n                        piVar5 = piStack_1fc;\n                        if (iStack_200 < 1) {\nLAB_00056b8c:\n                          if (iStack_200 != iVar37) {\n                            ppppcVar40 = *pppppppcVar34[5][piStack_1fc[(int)pppppppcVar29] * 3 + 2];\n                            iVar37 = (*(code *)(iVar18 + 0x5ea8))(&ppppppcStack_204,ppppcVar40);\n                            if (iVar37 == 0) {\n                              pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppcVar40 * 3)\n                              ;\n                              pppppppcVar29 =\n                                   (code *******)\n                                   (*(code *)(iVar43 + 0x7f1c))(&ppppppcStack_204,pppppppcVar38);\n                              if (pppppppcVar29 != (code *******)0x0) goto LAB_00056cb8;\n                            }\n                          }\n                        }\n                        else {\n                          do {\n                            ppppppcVar32 = *pppppppcVar34 + *piVar5 * 2;\n                            if ((*(char *)(ppppppcVar32 + 1) == '\t') &&\n                               ((code ******)*ppppppcVar32 == *pppppppcVar31)) goto LAB_00056b8c;\n                            iVar37 = iVar37 + 1;\n                            piVar5 = piVar5 + 1;\n                          } while (iStack_200 != iVar37);\n                        }\n                      }" if (parenthesized_expression "(*(code *)(pppppppcVar31 + 1) == (code)0x4)" ( (binary_expression "*(code *)(pppppppcVar31 + 1) == (code)0x4" (pointer_expression "*(code *)(pppppppcVar31 + 1)" * (cast_expression "(code *)(pppppppcVar31 + 1)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pppppppcVar31 + 1)" ( (binary_expression "pppppppcVar31 + 1" identifier + number_literal) )))) == (cast_expression "(code)0x4" ( (type_descriptor "code" type_identifier) ) number_literal)) )) (compound_statement "{\n                        iVar37 = 0;\n                        piVar5 = piStack_1fc;\n                        if (iStack_200 < 1) {\nLAB_00056b8c:\n                          if (iStack_200 != iVar37) {\n                            ppppcVar40 = *pppppppcVar34[5][piStack_1fc[(int)pppppppcVar29] * 3 + 2];\n                            iVar37 = (*(code *)(iVar18 + 0x5ea8))(&ppppppcStack_204,ppppcVar40);\n                            if (iVar37 == 0) {\n                              pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppcVar40 * 3)\n                              ;\n                              pppppppcVar29 =\n                                   (code *******)\n                                   (*(code *)(iVar43 + 0x7f1c))(&ppppppcStack_204,pppppppcVar38);\n                              if (pppppppcVar29 != (code *******)0x0) goto LAB_00056cb8;\n                            }\n                          }\n                        }\n                        else {\n                          do {\n                            ppppppcVar32 = *pppppppcVar34 + *piVar5 * 2;\n                            if ((*(char *)(ppppppcVar32 + 1) == '\t') &&\n                               ((code ******)*ppppppcVar32 == *pppppppcVar31)) goto LAB_00056b8c;\n                            iVar37 = iVar37 + 1;\n                            piVar5 = piVar5 + 1;\n                          } while (iStack_200 != iVar37);\n                        }\n                      }" { (expression_statement "iVar37 = 0;" (assignment_expression "iVar37 = 0" identifier = number_literal) ;) (expression_statement "piVar5 = piStack_1fc;" (assignment_expression "piVar5 = piStack_1fc" identifier = identifier) ;) (if_statement "if (iStack_200 < 1) {\nLAB_00056b8c:\n                          if (iStack_200 != iVar37) {\n                            ppppcVar40 = *pppppppcVar34[5][piStack_1fc[(int)pppppppcVar29] * 3 + 2];\n                            iVar37 = (*(code *)(iVar18 + 0x5ea8))(&ppppppcStack_204,ppppcVar40);\n                            if (iVar37 == 0) {\n                              pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppcVar40 * 3)\n                              ;\n                              pppppppcVar29 =\n                                   (code *******)\n                                   (*(code *)(iVar43 + 0x7f1c))(&ppppppcStack_204,pppppppcVar38);\n                              if (pppppppcVar29 != (code *******)0x0) goto LAB_00056cb8;\n                            }\n                          }\n                        }\n                        else {\n                          do {\n                            ppppppcVar32 = *pppppppcVar34 + *piVar5 * 2;\n                            if ((*(char *)(ppppppcVar32 + 1) == '\t') &&\n                               ((code ******)*ppppppcVar32 == *pppppppcVar31)) goto LAB_00056b8c;\n                            iVar37 = iVar37 + 1;\n                            piVar5 = piVar5 + 1;\n                          } while (iStack_200 != iVar37);\n                        }" if (parenthesized_expression "(iStack_200 < 1)" ( (binary_expression "iStack_200 < 1" identifier < number_literal) )) (compound_statement "{\nLAB_00056b8c:\n                          if (iStack_200 != iVar37) {\n                            ppppcVar40 = *pppppppcVar34[5][piStack_1fc[(int)pppppppcVar29] * 3 + 2];\n                            iVar37 = (*(code *)(iVar18 + 0x5ea8))(&ppppppcStack_204,ppppcVar40);\n                            if (iVar37 == 0) {\n                              pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppcVar40 * 3)\n                              ;\n                              pppppppcVar29 =\n                                   (code *******)\n                                   (*(code *)(iVar43 + 0x7f1c))(&ppppppcStack_204,pppppppcVar38);\n                              if (pppppppcVar29 != (code *******)0x0) goto LAB_00056cb8;\n                            }\n                          }\n                        }" { (labeled_statement "LAB_00056b8c:\n                          if (iStack_200 != iVar37) {\n                            ppppcVar40 = *pppppppcVar34[5][piStack_1fc[(int)pppppppcVar29] * 3 + 2];\n                            iVar37 = (*(code *)(iVar18 + 0x5ea8))(&ppppppcStack_204,ppppcVar40);\n                            if (iVar37 == 0) {\n                              pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppcVar40 * 3)\n                              ;\n                              pppppppcVar29 =\n                                   (code *******)\n                                   (*(code *)(iVar43 + 0x7f1c))(&ppppppcStack_204,pppppppcVar38);\n                              if (pppppppcVar29 != (code *******)0x0) goto LAB_00056cb8;\n                            }\n                          }" statement_identifier : (if_statement "if (iStack_200 != iVar37) {\n                            ppppcVar40 = *pppppppcVar34[5][piStack_1fc[(int)pppppppcVar29] * 3 + 2];\n                            iVar37 = (*(code *)(iVar18 + 0x5ea8))(&ppppppcStack_204,ppppcVar40);\n                            if (iVar37 == 0) {\n                              pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppcVar40 * 3)\n                              ;\n                              pppppppcVar29 =\n                                   (code *******)\n                                   (*(code *)(iVar43 + 0x7f1c))(&ppppppcStack_204,pppppppcVar38);\n                              if (pppppppcVar29 != (code *******)0x0) goto LAB_00056cb8;\n                            }\n                          }" if (parenthesized_expression "(iStack_200 != iVar37)" ( (binary_expression "iStack_200 != iVar37" identifier != identifier) )) (compound_statement "{\n                            ppppcVar40 = *pppppppcVar34[5][piStack_1fc[(int)pppppppcVar29] * 3 + 2];\n                            iVar37 = (*(code *)(iVar18 + 0x5ea8))(&ppppppcStack_204,ppppcVar40);\n                            if (iVar37 == 0) {\n                              pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppcVar40 * 3)\n                              ;\n                              pppppppcVar29 =\n                                   (code *******)\n                                   (*(code *)(iVar43 + 0x7f1c))(&ppppppcStack_204,pppppppcVar38);\n                              if (pppppppcVar29 != (code *******)0x0) goto LAB_00056cb8;\n                            }\n                          }" { (expression_statement "ppppcVar40 = *pppppppcVar34[5][piStack_1fc[(int)pppppppcVar29] * 3 + 2];" (assignment_expression "ppppcVar40 = *pppppppcVar34[5][piStack_1fc[(int)pppppppcVar29] * 3 + 2]" identifier = (pointer_expression "*pppppppcVar34[5][piStack_1fc[(int)pppppppcVar29] * 3 + 2]" * (subscript_expression "pppppppcVar34[5][piStack_1fc[(int)pppppppcVar29] * 3 + 2]" (subscript_expression "pppppppcVar34[5]" identifier [ number_literal ]) [ (binary_expression "piStack_1fc[(int)pppppppcVar29] * 3 + 2" (binary_expression "piStack_1fc[(int)pppppppcVar29] * 3" (subscript_expression "piStack_1fc[(int)pppppppcVar29]" identifier [ (cast_expression "(int)pppppppcVar29" ( (type_descriptor "int" primitive_type) ) identifier) ]) * number_literal) + number_literal) ]))) ;) (expression_statement "iVar37 = (*(code *)(iVar18 + 0x5ea8))(&ppppppcStack_204,ppppcVar40);" (assignment_expression "iVar37 = (*(code *)(iVar18 + 0x5ea8))(&ppppppcStack_204,ppppcVar40)" identifier = (call_expression "(*(code *)(iVar18 + 0x5ea8))(&ppppppcStack_204,ppppcVar40)" (parenthesized_expression "(*(code *)(iVar18 + 0x5ea8))" ( (pointer_expression "*(code *)(iVar18 + 0x5ea8)" * (cast_expression "(code *)(iVar18 + 0x5ea8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x5ea8)" ( (binary_expression "iVar18 + 0x5ea8" identifier + number_literal) )))) )) (argument_list "(&ppppppcStack_204,ppppcVar40)" ( (pointer_expression "&ppppppcStack_204" & identifier) , identifier )))) ;) (if_statement "if (iVar37 == 0) {\n                              pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppcVar40 * 3)\n                              ;\n                              pppppppcVar29 =\n                                   (code *******)\n                                   (*(code *)(iVar43 + 0x7f1c))(&ppppppcStack_204,pppppppcVar38);\n                              if (pppppppcVar29 != (code *******)0x0) goto LAB_00056cb8;\n                            }" if (parenthesized_expression "(iVar37 == 0)" ( (binary_expression "iVar37 == 0" identifier == number_literal) )) (compound_statement "{\n                              pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppcVar40 * 3)\n                              ;\n                              pppppppcVar29 =\n                                   (code *******)\n                                   (*(code *)(iVar43 + 0x7f1c))(&ppppppcStack_204,pppppppcVar38);\n                              if (pppppppcVar29 != (code *******)0x0) goto LAB_00056cb8;\n                            }" { (expression_statement "pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppcVar40 * 3)\n                              ;" (assignment_expression "pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppcVar40 * 3)" identifier = (cast_expression "(code *******)(pppppppcVar34[6] + (int)ppppcVar40 * 3)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(pppppppcVar34[6] + (int)ppppcVar40 * 3)" ( (binary_expression "pppppppcVar34[6] + (int)ppppcVar40 * 3" (subscript_expression "pppppppcVar34[6]" identifier [ number_literal ]) + (binary_expression "(int)ppppcVar40 * 3" (cast_expression "(int)ppppcVar40" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) )))) ;) (expression_statement "pppppppcVar29 =\n                                   (code *******)\n                                   (*(code *)(iVar43 + 0x7f1c))(&ppppppcStack_204,pppppppcVar38);" (assignment_expression "pppppppcVar29 =\n                                   (code *******)\n                                   (*(code *)(iVar43 + 0x7f1c))(&ppppppcStack_204,pppppppcVar38)" identifier = (cast_expression "(code *******)\n                                   (*(code *)(iVar43 + 0x7f1c))(&ppppppcStack_204,pppppppcVar38)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "(*(code *)(iVar43 + 0x7f1c))(&ppppppcStack_204,pppppppcVar38)" (parenthesized_expression "(*(code *)(iVar43 + 0x7f1c))" ( (pointer_expression "*(code *)(iVar43 + 0x7f1c)" * (cast_expression "(code *)(iVar43 + 0x7f1c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar43 + 0x7f1c)" ( (binary_expression "iVar43 + 0x7f1c" identifier + number_literal) )))) )) (argument_list "(&ppppppcStack_204,pppppppcVar38)" ( (pointer_expression "&ppppppcStack_204" & identifier) , identifier ))))) ;) (if_statement "if (pppppppcVar29 != (code *******)0x0) goto LAB_00056cb8;" if (parenthesized_expression "(pppppppcVar29 != (code *******)0x0)" ( (binary_expression "pppppppcVar29 != (code *******)0x0" identifier != (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (goto_statement "goto LAB_00056cb8;" goto statement_identifier ;)) })) }))) }) (else_clause "else {\n                          do {\n                            ppppppcVar32 = *pppppppcVar34 + *piVar5 * 2;\n                            if ((*(char *)(ppppppcVar32 + 1) == '\t') &&\n                               ((code ******)*ppppppcVar32 == *pppppppcVar31)) goto LAB_00056b8c;\n                            iVar37 = iVar37 + 1;\n                            piVar5 = piVar5 + 1;\n                          } while (iStack_200 != iVar37);\n                        }" else (compound_statement "{\n                          do {\n                            ppppppcVar32 = *pppppppcVar34 + *piVar5 * 2;\n                            if ((*(char *)(ppppppcVar32 + 1) == '\t') &&\n                               ((code ******)*ppppppcVar32 == *pppppppcVar31)) goto LAB_00056b8c;\n                            iVar37 = iVar37 + 1;\n                            piVar5 = piVar5 + 1;\n                          } while (iStack_200 != iVar37);\n                        }" { (do_statement "do {\n                            ppppppcVar32 = *pppppppcVar34 + *piVar5 * 2;\n                            if ((*(char *)(ppppppcVar32 + 1) == '\t') &&\n                               ((code ******)*ppppppcVar32 == *pppppppcVar31)) goto LAB_00056b8c;\n                            iVar37 = iVar37 + 1;\n                            piVar5 = piVar5 + 1;\n                          } while (iStack_200 != iVar37);" do (compound_statement "{\n                            ppppppcVar32 = *pppppppcVar34 + *piVar5 * 2;\n                            if ((*(char *)(ppppppcVar32 + 1) == '\t') &&\n                               ((code ******)*ppppppcVar32 == *pppppppcVar31)) goto LAB_00056b8c;\n                            iVar37 = iVar37 + 1;\n                            piVar5 = piVar5 + 1;\n                          }" { (expression_statement "ppppppcVar32 = *pppppppcVar34 + *piVar5 * 2;" (assignment_expression "ppppppcVar32 = *pppppppcVar34 + *piVar5 * 2" identifier = (binary_expression "*pppppppcVar34 + *piVar5 * 2" (pointer_expression "*pppppppcVar34" * identifier) + (binary_expression "*piVar5 * 2" (pointer_expression "*piVar5" * identifier) * number_literal))) ;) (if_statement "if ((*(char *)(ppppppcVar32 + 1) == '\t') &&\n                               ((code ******)*ppppppcVar32 == *pppppppcVar31)) goto LAB_00056b8c;" if (parenthesized_expression "((*(char *)(ppppppcVar32 + 1) == '\t') &&\n                               ((code ******)*ppppppcVar32 == *pppppppcVar31))" ( (binary_expression "(*(char *)(ppppppcVar32 + 1) == '\t') &&\n                               ((code ******)*ppppppcVar32 == *pppppppcVar31)" (parenthesized_expression "(*(char *)(ppppppcVar32 + 1) == '\t')" ( (binary_expression "*(char *)(ppppppcVar32 + 1) == '\t'" (pointer_expression "*(char *)(ppppppcVar32 + 1)" * (cast_expression "(char *)(ppppppcVar32 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppppppcVar32 + 1)" ( (binary_expression "ppppppcVar32 + 1" identifier + number_literal) )))) == (char_literal "'\t'" ' escape_sequence ')) )) && (parenthesized_expression "((code ******)*ppppppcVar32 == *pppppppcVar31)" ( (binary_expression "(code ******)*ppppppcVar32 == *pppppppcVar31" (cast_expression "(code ******)*ppppppcVar32" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (pointer_expression "*ppppppcVar32" * identifier)) == (pointer_expression "*pppppppcVar31" * identifier)) ))) )) (goto_statement "goto LAB_00056b8c;" goto statement_identifier ;)) (expression_statement "iVar37 = iVar37 + 1;" (assignment_expression "iVar37 = iVar37 + 1" identifier = (binary_expression "iVar37 + 1" identifier + number_literal)) ;) (expression_statement "piVar5 = piVar5 + 1;" (assignment_expression "piVar5 = piVar5 + 1" identifier = (binary_expression "piVar5 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iStack_200 != iVar37)" ( (binary_expression "iStack_200 != iVar37" identifier != identifier) )) ;) }))) })) (expression_statement "pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1);" (assignment_expression "pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1)" identifier = (cast_expression "(code *******)((int)pppppppcVar29 + 1)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)pppppppcVar29 + 1)" ( (binary_expression "(int)pppppppcVar29 + 1" (cast_expression "(int)pppppppcVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) }) while (parenthesized_expression "((int)pppppppcVar29 < iStack_200)" ( (binary_expression "(int)pppppppcVar29 < iStack_200" (cast_expression "(int)pppppppcVar29" ( (type_descriptor "int" primitive_type) ) identifier) < identifier) )) ;) })) (expression_statement "pppppppcVar31 = &ppppppcStack_204;" (assignment_expression "pppppppcVar31 = &ppppppcStack_204" identifier = (pointer_expression "&ppppppcStack_204" & identifier)) ;) (expression_statement "pppppppcVar38 = pppppppcVar34;" (assignment_expression "pppppppcVar38 = pppppppcVar34" identifier = identifier) ;) (expression_statement "ppppppcVar32 = (code ******)\n                                 FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,0);" (assignment_expression "ppppppcVar32 = (code ******)\n                                 FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,0)" identifier = (cast_expression "(code ******)\n                                 FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,0)" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (call_expression "FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,0)" identifier (argument_list "(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,0)" ( (pointer_expression "&pppppppcStack_208" & identifier) , identifier , identifier , number_literal ))))) ;) (expression_statement "pppppppcVar34[9] = ppppppcVar32;" (assignment_expression "pppppppcVar34[9] = ppppppcVar32" (subscript_expression "pppppppcVar34[9]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pppppppcVar29 = pppppppcStack_208;" (assignment_expression "pppppppcVar29 = pppppppcStack_208" identifier = identifier) ;) (if_statement "if (ppppppcVar32 != (code ******)0x0) {\n                    if (((uint)ppppppcVar32[0xd] & 0x1000000) == 0) {\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar34[10] = ppppppcVar32;\n                    }\n                    else {\n                      pppppppcVar31 = &ppppppcStack_204;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,1);\n                      pppppppcVar34[10] = ppppppcVar32;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,2);\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar38 = pppppppcVar34;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,6);\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar29 = pppppppcStack_208;\n                      if (((pppppppcVar34[10] == (code ******)0x0) ||\n                          (pppppppcVar34[0xb] == (code ******)0x0)) ||\n                         (ppppppcVar32 == (code ******)0x0)) goto LAB_00056cb8;\n                    }\n                    (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                    pppppppcVar29 = pppppppcVar33;\n                  }" if (parenthesized_expression "(ppppppcVar32 != (code ******)0x0)" ( (binary_expression "ppppppcVar32 != (code ******)0x0" identifier != (cast_expression "(code ******)0x0" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (compound_statement "{\n                    if (((uint)ppppppcVar32[0xd] & 0x1000000) == 0) {\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar34[10] = ppppppcVar32;\n                    }\n                    else {\n                      pppppppcVar31 = &ppppppcStack_204;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,1);\n                      pppppppcVar34[10] = ppppppcVar32;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,2);\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar38 = pppppppcVar34;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,6);\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar29 = pppppppcStack_208;\n                      if (((pppppppcVar34[10] == (code ******)0x0) ||\n                          (pppppppcVar34[0xb] == (code ******)0x0)) ||\n                         (ppppppcVar32 == (code ******)0x0)) goto LAB_00056cb8;\n                    }\n                    (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                    pppppppcVar29 = pppppppcVar33;\n                  }" { (if_statement "if (((uint)ppppppcVar32[0xd] & 0x1000000) == 0) {\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar34[10] = ppppppcVar32;\n                    }\n                    else {\n                      pppppppcVar31 = &ppppppcStack_204;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,1);\n                      pppppppcVar34[10] = ppppppcVar32;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,2);\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar38 = pppppppcVar34;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,6);\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar29 = pppppppcStack_208;\n                      if (((pppppppcVar34[10] == (code ******)0x0) ||\n                          (pppppppcVar34[0xb] == (code ******)0x0)) ||\n                         (ppppppcVar32 == (code ******)0x0)) goto LAB_00056cb8;\n                    }" if (parenthesized_expression "(((uint)ppppppcVar32[0xd] & 0x1000000) == 0)" ( (binary_expression "((uint)ppppppcVar32[0xd] & 0x1000000) == 0" (parenthesized_expression "((uint)ppppppcVar32[0xd] & 0x1000000)" ( (binary_expression "(uint)ppppppcVar32[0xd] & 0x1000000" (cast_expression "(uint)ppppppcVar32[0xd]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "ppppppcVar32[0xd]" identifier [ number_literal ])) & number_literal) )) == number_literal) )) (compound_statement "{\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar34[10] = ppppppcVar32;\n                    }" { (expression_statement "pppppppcVar34[0xc] = ppppppcVar32;" (assignment_expression "pppppppcVar34[0xc] = ppppppcVar32" (subscript_expression "pppppppcVar34[0xc]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pppppppcVar34[0xb] = ppppppcVar32;" (assignment_expression "pppppppcVar34[0xb] = ppppppcVar32" (subscript_expression "pppppppcVar34[0xb]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pppppppcVar34[10] = ppppppcVar32;" (assignment_expression "pppppppcVar34[10] = ppppppcVar32" (subscript_expression "pppppppcVar34[10]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n                      pppppppcVar31 = &ppppppcStack_204;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,1);\n                      pppppppcVar34[10] = ppppppcVar32;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,2);\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar38 = pppppppcVar34;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,6);\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar29 = pppppppcStack_208;\n                      if (((pppppppcVar34[10] == (code ******)0x0) ||\n                          (pppppppcVar34[0xb] == (code ******)0x0)) ||\n                         (ppppppcVar32 == (code ******)0x0)) goto LAB_00056cb8;\n                    }" else (compound_statement "{\n                      pppppppcVar31 = &ppppppcStack_204;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,1);\n                      pppppppcVar34[10] = ppppppcVar32;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,2);\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar38 = pppppppcVar34;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,6);\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar29 = pppppppcStack_208;\n                      if (((pppppppcVar34[10] == (code ******)0x0) ||\n                          (pppppppcVar34[0xb] == (code ******)0x0)) ||\n                         (ppppppcVar32 == (code ******)0x0)) goto LAB_00056cb8;\n                    }" { (expression_statement "pppppppcVar31 = &ppppppcStack_204;" (assignment_expression "pppppppcVar31 = &ppppppcStack_204" identifier = (pointer_expression "&ppppppcStack_204" & identifier)) ;) (expression_statement "ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,1);" (assignment_expression "ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,1)" identifier = (cast_expression "(code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,1)" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (call_expression "FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,1)" identifier (argument_list "(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,1)" ( (pointer_expression "&pppppppcStack_208" & identifier) , identifier , identifier , number_literal ))))) ;) (expression_statement "pppppppcVar34[10] = ppppppcVar32;" (assignment_expression "pppppppcVar34[10] = ppppppcVar32" (subscript_expression "pppppppcVar34[10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,2);" (assignment_expression "ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,2)" identifier = (cast_expression "(code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,2)" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (call_expression "FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,2)" identifier (argument_list "(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,2)" ( (pointer_expression "&pppppppcStack_208" & identifier) , identifier , identifier , number_literal ))))) ;) (expression_statement "pppppppcVar34[0xb] = ppppppcVar32;" (assignment_expression "pppppppcVar34[0xb] = ppppppcVar32" (subscript_expression "pppppppcVar34[0xb]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pppppppcVar38 = pppppppcVar34;" (assignment_expression "pppppppcVar38 = pppppppcVar34" identifier = identifier) ;) (expression_statement "ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,6);" (assignment_expression "ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,6)" identifier = (cast_expression "(code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,6)" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (call_expression "FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,6)" identifier (argument_list "(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,6)" ( (pointer_expression "&pppppppcStack_208" & identifier) , identifier , identifier , number_literal ))))) ;) (expression_statement "pppppppcVar34[0xc] = ppppppcVar32;" (assignment_expression "pppppppcVar34[0xc] = ppppppcVar32" (subscript_expression "pppppppcVar34[0xc]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pppppppcVar29 = pppppppcStack_208;" (assignment_expression "pppppppcVar29 = pppppppcStack_208" identifier = identifier) ;) (if_statement "if (((pppppppcVar34[10] == (code ******)0x0) ||\n                          (pppppppcVar34[0xb] == (code ******)0x0)) ||\n                         (ppppppcVar32 == (code ******)0x0)) goto LAB_00056cb8;" if (parenthesized_expression "(((pppppppcVar34[10] == (code ******)0x0) ||\n                          (pppppppcVar34[0xb] == (code ******)0x0)) ||\n                         (ppppppcVar32 == (code ******)0x0))" ( (binary_expression "((pppppppcVar34[10] == (code ******)0x0) ||\n                          (pppppppcVar34[0xb] == (code ******)0x0)) ||\n                         (ppppppcVar32 == (code ******)0x0)" (parenthesized_expression "((pppppppcVar34[10] == (code ******)0x0) ||\n                          (pppppppcVar34[0xb] == (code ******)0x0))" ( (binary_expression "(pppppppcVar34[10] == (code ******)0x0) ||\n                          (pppppppcVar34[0xb] == (code ******)0x0)" (parenthesized_expression "(pppppppcVar34[10] == (code ******)0x0)" ( (binary_expression "pppppppcVar34[10] == (code ******)0x0" (subscript_expression "pppppppcVar34[10]" identifier [ number_literal ]) == (cast_expression "(code ******)0x0" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) || (parenthesized_expression "(pppppppcVar34[0xb] == (code ******)0x0)" ( (binary_expression "pppppppcVar34[0xb] == (code ******)0x0" (subscript_expression "pppppppcVar34[0xb]" identifier [ number_literal ]) == (cast_expression "(code ******)0x0" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ))) )) || (parenthesized_expression "(ppppppcVar32 == (code ******)0x0)" ( (binary_expression "ppppppcVar32 == (code ******)0x0" identifier == (cast_expression "(code ******)0x0" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ))) )) (goto_statement "goto LAB_00056cb8;" goto statement_identifier ;)) }))) (expression_statement "(**(code **)(puVar41 + 0x23dc0))(piStack_1fc);" (call_expression "(**(code **)(puVar41 + 0x23dc0))(piStack_1fc)" (parenthesized_expression "(**(code **)(puVar41 + 0x23dc0))" ( (pointer_expression "**(code **)(puVar41 + 0x23dc0)" * (pointer_expression "*(code **)(puVar41 + 0x23dc0)" * (cast_expression "(code **)(puVar41 + 0x23dc0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar41 + 0x23dc0)" ( (binary_expression "puVar41 + 0x23dc0" identifier + number_literal) ))))) )) (argument_list "(piStack_1fc)" ( identifier ))) ;) (expression_statement "pppppppcVar29 = pppppppcVar33;" (assignment_expression "pppppppcVar29 = pppppppcVar33" identifier = identifier) ;) })) })) (labeled_statement "LAB_00056cb8:\n                pppppppcStack_20c = pppppppcVar29;" statement_identifier : (expression_statement "pppppppcStack_20c = pppppppcVar29;" (assignment_expression "pppppppcStack_20c = pppppppcVar29" identifier = identifier) ;)) (expression_statement "FUN_0004b234(pppppppcVar3);" (call_expression "FUN_0004b234(pppppppcVar3)" identifier (argument_list "(pppppppcVar3)" ( identifier ))) ;) (expression_statement "FUN_0004b2bc(&pppppppcStack_1f8);" (call_expression "FUN_0004b2bc(&pppppppcStack_1f8)" identifier (argument_list "(&pppppppcStack_1f8)" ( (pointer_expression "&pppppppcStack_1f8" & identifier) ))) ;) (expression_statement "pppppppcVar29 = pppppppcStack_20c;" (assignment_expression "pppppppcVar29 = pppppppcStack_20c" identifier = identifier) ;) (if_statement "if (pppppppcStack_20c != (code *******)0x0) {\n                  if (*(int *)(puVar41 + 0x23c78) != 0) {\n                    (**(code **)(puVar41 + 0x23df0))(pppppppcVar34 + 0x22);\n                  }\n                  FUN_0004b338(pppppppcVar34);\n                  *pppppppcVar3 = (code ******)0x0;\n                  pppppppcVar3[1] = (code ******)0x0;\n                  pppppppcVar29 = pppppppcStack_20c;\n                }" if (parenthesized_expression "(pppppppcStack_20c != (code *******)0x0)" ( (binary_expression "pppppppcStack_20c != (code *******)0x0" identifier != (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\n                  if (*(int *)(puVar41 + 0x23c78) != 0) {\n                    (**(code **)(puVar41 + 0x23df0))(pppppppcVar34 + 0x22);\n                  }\n                  FUN_0004b338(pppppppcVar34);\n                  *pppppppcVar3 = (code ******)0x0;\n                  pppppppcVar3[1] = (code ******)0x0;\n                  pppppppcVar29 = pppppppcStack_20c;\n                }" { (if_statement "if (*(int *)(puVar41 + 0x23c78) != 0) {\n                    (**(code **)(puVar41 + 0x23df0))(pppppppcVar34 + 0x22);\n                  }" if (parenthesized_expression "(*(int *)(puVar41 + 0x23c78) != 0)" ( (binary_expression "*(int *)(puVar41 + 0x23c78) != 0" (pointer_expression "*(int *)(puVar41 + 0x23c78)" * (cast_expression "(int *)(puVar41 + 0x23c78)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar41 + 0x23c78)" ( (binary_expression "puVar41 + 0x23c78" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                    (**(code **)(puVar41 + 0x23df0))(pppppppcVar34 + 0x22);\n                  }" { (expression_statement "(**(code **)(puVar41 + 0x23df0))(pppppppcVar34 + 0x22);" (call_expression "(**(code **)(puVar41 + 0x23df0))(pppppppcVar34 + 0x22)" (parenthesized_expression "(**(code **)(puVar41 + 0x23df0))" ( (pointer_expression "**(code **)(puVar41 + 0x23df0)" * (pointer_expression "*(code **)(puVar41 + 0x23df0)" * (cast_expression "(code **)(puVar41 + 0x23df0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar41 + 0x23df0)" ( (binary_expression "puVar41 + 0x23df0" identifier + number_literal) ))))) )) (argument_list "(pppppppcVar34 + 0x22)" ( (binary_expression "pppppppcVar34 + 0x22" identifier + number_literal) ))) ;) })) (expression_statement "FUN_0004b338(pppppppcVar34);" (call_expression "FUN_0004b338(pppppppcVar34)" identifier (argument_list "(pppppppcVar34)" ( identifier ))) ;) (expression_statement "*pppppppcVar3 = (code ******)0x0;" (assignment_expression "*pppppppcVar3 = (code ******)0x0" (pointer_expression "*pppppppcVar3" * identifier) = (cast_expression "(code ******)0x0" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) (expression_statement "pppppppcVar3[1] = (code ******)0x0;" (assignment_expression "pppppppcVar3[1] = (code ******)0x0" (subscript_expression "pppppppcVar3[1]" identifier [ number_literal ]) = (cast_expression "(code ******)0x0" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) (expression_statement "pppppppcVar29 = pppppppcStack_20c;" (assignment_expression "pppppppcVar29 = pppppppcStack_20c" identifier = identifier) ;) })) (goto_statement "goto LAB_00056cfc;" goto statement_identifier ;) })) })) })) }))))))))) }) (else_clause "else {\n        pppppppcVar31 = (code *******)0x0;\n        if (pppppppcVar29 != (code *******)0x0) {\n          pppppppcVar33 = (code *******)FUN_000470f0(ppppppcVar32,0,0,2);\n          goto LAB_000564b0;\n        }\nLAB_000566f4:\n        pppppppcVar34[0xd] = (code ******)0x0;\n        pppppppcVar30 = pppppppcStack_20c;\n      }" else (compound_statement "{\n        pppppppcVar31 = (code *******)0x0;\n        if (pppppppcVar29 != (code *******)0x0) {\n          pppppppcVar33 = (code *******)FUN_000470f0(ppppppcVar32,0,0,2);\n          goto LAB_000564b0;\n        }\nLAB_000566f4:\n        pppppppcVar34[0xd] = (code ******)0x0;\n        pppppppcVar30 = pppppppcStack_20c;\n      }" { (expression_statement "pppppppcVar31 = (code *******)0x0;" (assignment_expression "pppppppcVar31 = (code *******)0x0" identifier = (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (if_statement "if (pppppppcVar29 != (code *******)0x0) {\n          pppppppcVar33 = (code *******)FUN_000470f0(ppppppcVar32,0,0,2);\n          goto LAB_000564b0;\n        }" if (parenthesized_expression "(pppppppcVar29 != (code *******)0x0)" ( (binary_expression "pppppppcVar29 != (code *******)0x0" identifier != (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\n          pppppppcVar33 = (code *******)FUN_000470f0(ppppppcVar32,0,0,2);\n          goto LAB_000564b0;\n        }" { (expression_statement "pppppppcVar33 = (code *******)FUN_000470f0(ppppppcVar32,0,0,2);" (assignment_expression "pppppppcVar33 = (code *******)FUN_000470f0(ppppppcVar32,0,0,2)" identifier = (cast_expression "(code *******)FUN_000470f0(ppppppcVar32,0,0,2)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "FUN_000470f0(ppppppcVar32,0,0,2)" identifier (argument_list "(ppppppcVar32,0,0,2)" ( identifier , number_literal , number_literal , number_literal ))))) ;) (goto_statement "goto LAB_000564b0;" goto statement_identifier ;) })) (labeled_statement "LAB_000566f4:\n        pppppppcVar34[0xd] = (code ******)0x0;" statement_identifier : (expression_statement "pppppppcVar34[0xd] = (code ******)0x0;" (assignment_expression "pppppppcVar34[0xd] = (code ******)0x0" (subscript_expression "pppppppcVar34[0xd]" identifier [ number_literal ]) = (cast_expression "(code ******)0x0" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;)) (expression_statement "pppppppcVar30 = pppppppcStack_20c;" (assignment_expression "pppppppcVar30 = pppppppcStack_20c" identifier = identifier) ;) }))) (labeled_statement "LAB_00056168:\n      pppppppcStack_20c = pppppppcVar30;" statement_identifier : (expression_statement "pppppppcStack_20c = pppppppcVar30;" (assignment_expression "pppppppcStack_20c = pppppppcVar30" identifier = identifier) ;)) (expression_statement "FUN_0004b234(pppppppcVar3);" (call_expression "FUN_0004b234(pppppppcVar3)" identifier (argument_list "(pppppppcVar3)" ( identifier ))) ;) (expression_statement "FUN_0004b2bc(&pppppppcStack_1f8);" (call_expression "FUN_0004b2bc(&pppppppcStack_1f8)" identifier (argument_list "(&pppppppcStack_1f8)" ( (pointer_expression "&pppppppcStack_1f8" & identifier) ))) ;) (if_statement "if (*(int *)(puVar41 + 0x23c78) != 0) {\n        (**(code **)(puVar41 + 0x23df0))(pppppppcVar34 + 0x22);\n      }" if (parenthesized_expression "(*(int *)(puVar41 + 0x23c78) != 0)" ( (binary_expression "*(int *)(puVar41 + 0x23c78) != 0" (pointer_expression "*(int *)(puVar41 + 0x23c78)" * (cast_expression "(int *)(puVar41 + 0x23c78)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar41 + 0x23c78)" ( (binary_expression "puVar41 + 0x23c78" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n        (**(code **)(puVar41 + 0x23df0))(pppppppcVar34 + 0x22);\n      }" { (expression_statement "(**(code **)(puVar41 + 0x23df0))(pppppppcVar34 + 0x22);" (call_expression "(**(code **)(puVar41 + 0x23df0))(pppppppcVar34 + 0x22)" (parenthesized_expression "(**(code **)(puVar41 + 0x23df0))" ( (pointer_expression "**(code **)(puVar41 + 0x23df0)" * (pointer_expression "*(code **)(puVar41 + 0x23df0)" * (cast_expression "(code **)(puVar41 + 0x23df0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar41 + 0x23df0)" ( (binary_expression "puVar41 + 0x23df0" identifier + number_literal) ))))) )) (argument_list "(pppppppcVar34 + 0x22)" ( (binary_expression "pppppppcVar34 + 0x22" identifier + number_literal) ))) ;) })) (expression_statement "FUN_0004b338(pppppppcVar34);" (call_expression "FUN_0004b338(pppppppcVar34)" identifier (argument_list "(pppppppcVar34)" ( identifier ))) ;) (expression_statement "*pppppppcVar3 = (code ******)0x0;" (assignment_expression "*pppppppcVar3 = (code ******)0x0" (pointer_expression "*pppppppcVar3" * identifier) = (cast_expression "(code ******)0x0" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) (expression_statement "pppppppcVar3[1] = (code ******)0x0;" (assignment_expression "pppppppcVar3[1] = (code ******)0x0" (subscript_expression "pppppppcVar3[1]" identifier [ number_literal ]) = (cast_expression "(code ******)0x0" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) (expression_statement "pppppppcVar29 = pppppppcStack_20c;" (assignment_expression "pppppppcVar29 = pppppppcStack_20c" identifier = identifier) ;) (goto_statement "goto LAB_00056cfc;" goto statement_identifier ;) })) (expression_statement "pppppppcVar38 = (code *******)0x0;" (assignment_expression "pppppppcVar38 = (code *******)0x0" identifier = (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "iVar18 = (**(code **)(puVar41 + 0x23d98))(pppppppcVar34 + 0x22,0);" (assignment_expression "iVar18 = (**(code **)(puVar41 + 0x23d98))(pppppppcVar34 + 0x22,0)" identifier = (call_expression "(**(code **)(puVar41 + 0x23d98))(pppppppcVar34 + 0x22,0)" (parenthesized_expression "(**(code **)(puVar41 + 0x23d98))" ( (pointer_expression "**(code **)(puVar41 + 0x23d98)" * (pointer_expression "*(code **)(puVar41 + 0x23d98)" * (cast_expression "(code **)(puVar41 + 0x23d98)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar41 + 0x23d98)" ( (binary_expression "puVar41 + 0x23d98" identifier + number_literal) ))))) )) (argument_list "(pppppppcVar34 + 0x22,0)" ( (binary_expression "pppppppcVar34 + 0x22" identifier + number_literal) , number_literal )))) ;) (if_statement "if (iVar18 != 0) goto LAB_00056e5c;" if (parenthesized_expression "(iVar18 != 0)" ( (binary_expression "iVar18 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00056e5c;" goto statement_identifier ;)) (if_statement "if (pppppppcStack_20c == (code *******)0x0) goto LAB_00056054;" if (parenthesized_expression "(pppppppcStack_20c == (code *******)0x0)" ( (binary_expression "pppppppcStack_20c == (code *******)0x0" identifier == (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (goto_statement "goto LAB_00056054;" goto statement_identifier ;)) }) (else_clause "else {\nLAB_00056e5c:\n    pppppppcStack_20c = (code *******)0xc;\n  }" else (compound_statement "{\nLAB_00056e5c:\n    pppppppcStack_20c = (code *******)0xc;\n  }" { (labeled_statement "LAB_00056e5c:\n    pppppppcStack_20c = (code *******)0xc;" statement_identifier : (expression_statement "pppppppcStack_20c = (code *******)0xc;" (assignment_expression "pppppppcStack_20c = (code *******)0xc" identifier = (cast_expression "(code *******)0xc" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;)) }))) (expression_statement "FUN_0004b338(pppppppcVar34);" (call_expression "FUN_0004b338(pppppppcVar34)" identifier (argument_list "(pppppppcVar34)" ( identifier ))) ;) (expression_statement "*pppppppcVar3 = (code ******)0x0;" (assignment_expression "*pppppppcVar3 = (code ******)0x0" (pointer_expression "*pppppppcVar3" * identifier) = (cast_expression "(code ******)0x0" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) (expression_statement "pppppppcVar3[1] = (code ******)0x0;" (assignment_expression "pppppppcVar3[1] = (code ******)0x0" (subscript_expression "pppppppcVar3[1]" identifier [ number_literal ]) = (cast_expression "(code ******)0x0" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) (expression_statement "pppppppcVar29 = pppppppcStack_20c;" (assignment_expression "pppppppcVar29 = pppppppcStack_20c" identifier = identifier) ;) (labeled_statement "LAB_00056cfc:\n  if (iStack_1a4 == **(int **)(puVar41 + 0x23dac)) {\n    return pppppppcVar29;\n  }" statement_identifier : (if_statement "if (iStack_1a4 == **(int **)(puVar41 + 0x23dac)) {\n    return pppppppcVar29;\n  }" if (parenthesized_expression "(iStack_1a4 == **(int **)(puVar41 + 0x23dac))" ( (binary_expression "iStack_1a4 == **(int **)(puVar41 + 0x23dac)" identifier == (pointer_expression "**(int **)(puVar41 + 0x23dac)" * (pointer_expression "*(int **)(puVar41 + 0x23dac)" * (cast_expression "(int **)(puVar41 + 0x23dac)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar41 + 0x23dac)" ( (binary_expression "puVar41 + 0x23dac" identifier + number_literal) )))))) )) (compound_statement "{\n    return pppppppcVar29;\n  }" { (return_statement "return pppppppcVar29;" return identifier ;) }))) (expression_statement "pcVar4 = *(code **)(puVar41 + 0x23d6c);" (assignment_expression "pcVar4 = *(code **)(puVar41 + 0x23d6c)" identifier = (pointer_expression "*(code **)(puVar41 + 0x23d6c)" * (cast_expression "(code **)(puVar41 + 0x23d6c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar41 + 0x23d6c)" ( (binary_expression "puVar41 + 0x23d6c" identifier + number_literal) ))))) ;) (expression_statement "iVar18 = iStack_1a4;" (assignment_expression "iVar18 = iStack_1a4" identifier = identifier) ;) (expression_statement "(*pcVar4)();" (call_expression "(*pcVar4)()" (parenthesized_expression "(*pcVar4)" ( (pointer_expression "*pcVar4" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "*(byte *)(pppppppcVar31 + 7) =\n       (byte)*(code *)(pppppppcVar31 + 7) & 0xf6 |\n       (byte)(((uint)(**(int **)(pcVar4 + 0x22b18) << 6) >> 0x1f) << 3) | 1;" (assignment_expression "*(byte *)(pppppppcVar31 + 7) =\n       (byte)*(code *)(pppppppcVar31 + 7) & 0xf6 |\n       (byte)(((uint)(**(int **)(pcVar4 + 0x22b18) << 6) >> 0x1f) << 3) | 1" (pointer_expression "*(byte *)(pppppppcVar31 + 7)" * (cast_expression "(byte *)(pppppppcVar31 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pppppppcVar31 + 7)" ( (binary_expression "pppppppcVar31 + 7" identifier + number_literal) )))) = (binary_expression "(byte)*(code *)(pppppppcVar31 + 7) & 0xf6 |\n       (byte)(((uint)(**(int **)(pcVar4 + 0x22b18) << 6) >> 0x1f) << 3) | 1" (binary_expression "(byte)*(code *)(pppppppcVar31 + 7) & 0xf6 |\n       (byte)(((uint)(**(int **)(pcVar4 + 0x22b18) << 6) >> 0x1f) << 3)" (binary_expression "(byte)*(code *)(pppppppcVar31 + 7) & 0xf6" (binary_expression "(byte)*(code *)(pppppppcVar31 + 7)" (parenthesized_expression "(byte)" ( identifier )) * (cast_expression "(code *)(pppppppcVar31 + 7)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pppppppcVar31 + 7)" ( (binary_expression "pppppppcVar31 + 7" identifier + number_literal) )))) & number_literal) | (call_expression "(byte)(((uint)(**(int **)(pcVar4 + 0x22b18) << 6) >> 0x1f) << 3)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(((uint)(**(int **)(pcVar4 + 0x22b18) << 6) >> 0x1f) << 3)" ( (binary_expression "((uint)(**(int **)(pcVar4 + 0x22b18) << 6) >> 0x1f) << 3" (parenthesized_expression "((uint)(**(int **)(pcVar4 + 0x22b18) << 6) >> 0x1f)" ( (binary_expression "(uint)(**(int **)(pcVar4 + 0x22b18) << 6) >> 0x1f" (call_expression "(uint)(**(int **)(pcVar4 + 0x22b18) << 6)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(**(int **)(pcVar4 + 0x22b18) << 6)" ( (binary_expression "**(int **)(pcVar4 + 0x22b18) << 6" (pointer_expression "**(int **)(pcVar4 + 0x22b18)" * (pointer_expression "*(int **)(pcVar4 + 0x22b18)" * (cast_expression "(int **)(pcVar4 + 0x22b18)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0x22b18)" ( (binary_expression "pcVar4 + 0x22b18" identifier + number_literal) ))))) << number_literal) ))) >> number_literal) )) << number_literal) )))) | number_literal)) ;) (expression_statement "iVar18 = FUN_00055e64(pppppppcVar31,iVar18,pppppppcVar38);" (assignment_expression "iVar18 = FUN_00055e64(pppppppcVar31,iVar18,pppppppcVar38)" identifier = (call_expression "FUN_00055e64(pppppppcVar31,iVar18,pppppppcVar38)" identifier (argument_list "(pppppppcVar31,iVar18,pppppppcVar38)" ( identifier , identifier , identifier )))) ;) (if_statement "if (iVar18 == 0) {\n    pppppppcVar29 = (code *******)0x0;\n  }\n  else {\n    pppppppcVar29 =\n         (code *******)\n         (**(code **)(pcVar4 + 0x22d48))\n                   (0,*(int *)(pcVar4 + 0x22728) + 0x6f48 +\n                      *(int *)(iVar18 * 4 + *(int *)(pcVar4 + 0x22728) + 0x6f04),5);\n  }" if (parenthesized_expression "(iVar18 == 0)" ( (binary_expression "iVar18 == 0" identifier == number_literal) )) (compound_statement "{\n    pppppppcVar29 = (code *******)0x0;\n  }" { (expression_statement "pppppppcVar29 = (code *******)0x0;" (assignment_expression "pppppppcVar29 = (code *******)0x0" identifier = (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) }) (else_clause "else {\n    pppppppcVar29 =\n         (code *******)\n         (**(code **)(pcVar4 + 0x22d48))\n                   (0,*(int *)(pcVar4 + 0x22728) + 0x6f48 +\n                      *(int *)(iVar18 * 4 + *(int *)(pcVar4 + 0x22728) + 0x6f04),5);\n  }" else (compound_statement "{\n    pppppppcVar29 =\n         (code *******)\n         (**(code **)(pcVar4 + 0x22d48))\n                   (0,*(int *)(pcVar4 + 0x22728) + 0x6f48 +\n                      *(int *)(iVar18 * 4 + *(int *)(pcVar4 + 0x22728) + 0x6f04),5);\n  }" { (expression_statement "pppppppcVar29 =\n         (code *******)\n         (**(code **)(pcVar4 + 0x22d48))\n                   (0,*(int *)(pcVar4 + 0x22728) + 0x6f48 +\n                      *(int *)(iVar18 * 4 + *(int *)(pcVar4 + 0x22728) + 0x6f04),5);" (assignment_expression "pppppppcVar29 =\n         (code *******)\n         (**(code **)(pcVar4 + 0x22d48))\n                   (0,*(int *)(pcVar4 + 0x22728) + 0x6f48 +\n                      *(int *)(iVar18 * 4 + *(int *)(pcVar4 + 0x22728) + 0x6f04),5)" identifier = (cast_expression "(code *******)\n         (**(code **)(pcVar4 + 0x22d48))\n                   (0,*(int *)(pcVar4 + 0x22728) + 0x6f48 +\n                      *(int *)(iVar18 * 4 + *(int *)(pcVar4 + 0x22728) + 0x6f04),5)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "(**(code **)(pcVar4 + 0x22d48))\n                   (0,*(int *)(pcVar4 + 0x22728) + 0x6f48 +\n                      *(int *)(iVar18 * 4 + *(int *)(pcVar4 + 0x22728) + 0x6f04),5)" (parenthesized_expression "(**(code **)(pcVar4 + 0x22d48))" ( (pointer_expression "**(code **)(pcVar4 + 0x22d48)" * (pointer_expression "*(code **)(pcVar4 + 0x22d48)" * (cast_expression "(code **)(pcVar4 + 0x22d48)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0x22d48)" ( (binary_expression "pcVar4 + 0x22d48" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(pcVar4 + 0x22728) + 0x6f48 +\n                      *(int *)(iVar18 * 4 + *(int *)(pcVar4 + 0x22728) + 0x6f04),5)" ( number_literal , (binary_expression "*(int *)(pcVar4 + 0x22728) + 0x6f48 +\n                      *(int *)(iVar18 * 4 + *(int *)(pcVar4 + 0x22728) + 0x6f04)" (binary_expression "*(int *)(pcVar4 + 0x22728) + 0x6f48" (pointer_expression "*(int *)(pcVar4 + 0x22728)" * (cast_expression "(int *)(pcVar4 + 0x22728)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar4 + 0x22728)" ( (binary_expression "pcVar4 + 0x22728" identifier + number_literal) )))) + number_literal) + (pointer_expression "*(int *)(iVar18 * 4 + *(int *)(pcVar4 + 0x22728) + 0x6f04)" * (cast_expression "(int *)(iVar18 * 4 + *(int *)(pcVar4 + 0x22728) + 0x6f04)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 * 4 + *(int *)(pcVar4 + 0x22728) + 0x6f04)" ( (binary_expression "iVar18 * 4 + *(int *)(pcVar4 + 0x22728) + 0x6f04" (binary_expression "iVar18 * 4 + *(int *)(pcVar4 + 0x22728)" (binary_expression "iVar18 * 4" identifier * number_literal) + (pointer_expression "*(int *)(pcVar4 + 0x22728)" * (cast_expression "(int *)(pcVar4 + 0x22728)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar4 + 0x22728)" ( (binary_expression "pcVar4 + 0x22728" identifier + number_literal) ))))) + number_literal) ))))) , number_literal ))))) ;) }))) (return_statement "return pppppppcVar29;" return identifier ;) (labeled_statement "code_r0x00055b38:\n  if ((int)pppppppcVar26 < (int)local_dc) goto LAB_000557a8;" statement_identifier : (if_statement "if ((int)pppppppcVar26 < (int)local_dc) goto LAB_000557a8;" if (parenthesized_expression "((int)pppppppcVar26 < (int)local_dc)" ( (binary_expression "(int)pppppppcVar26 < (int)local_dc" (cast_expression "(int)pppppppcVar26" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)local_dc" ( (type_descriptor "int" primitive_type) ) identifier)) )) (goto_statement "goto LAB_000557a8;" goto statement_identifier ;))) (goto_statement "goto LAB_00055b44;" goto statement_identifier ;) (labeled_statement "LAB_000557a8:\n  local_150 = (code *******)0x1;" statement_identifier : (expression_statement "local_150 = (code *******)0x1;" (assignment_expression "local_150 = (code *******)0x1" identifier = (cast_expression "(code *******)0x1" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;)) (goto_statement "goto LAB_000557e4;" goto statement_identifier ;) (labeled_statement "LAB_00055914:\n  local_150 = (code *******)0xc;" statement_identifier : (expression_statement "local_150 = (code *******)0xc;" (assignment_expression "local_150 = (code *******)0xc" identifier = (cast_expression "(code *******)0xc" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;)) (expression_statement "param_4 = pppppppcVar14;" (assignment_expression "param_4 = pppppppcVar14" identifier = identifier) ;) (goto_statement "goto LAB_000557e4;" goto statement_identifier ;) })))
(translation_unit "reg_errcode_t\nre_search_internal(regex_t *preg,char *string,Idx length,Idx start,Idx last_start,Idx stop,\n                  size_t nmatch,regmatch_t *pmatch,int eflags)\n\n{\n  byte bVar1;\n  anon_union_4_5_a39f51ca_for_opr *paVar2;\n  re_dfa_t *prVar3;\n  anon_union_4_5_a39f51ca_for_opr preg_00;\n  anon_union_4_5_a39f51ca_for_opr aVar4;\n  code *pcVar5;\n  int *piVar6;\n  anon_union_4_5_a39f51ca_for_opr aVar7;\n  uint uVar8;\n  code *pcVar9;\n  code *pcVar10;\n  code *pcVar11;\n  code *pcVar12;\n  code *pcVar13;\n  re_dfastate_t **pprVar14;\n  anon_union_4_5_a39f51ca_for_opr aVar15;\n  anon_union_4_5_a39f51ca_for_opr aVar16;\n  Idx IVar17;\n  anon_union_4_5_a39f51ca_for_opr *paVar18;\n  bool bVar36;\n  regmatch_t *prVar19;\n  re_context_type rVar20;\n  reg_errcode_t rVar21;\n  char cVar37;\n  bitset_word_t bVar22;\n  re_state_table_entry *prVar23;\n  byte *pbVar24;\n  re_bitset_ptr_t pbVar25;\n  uint uVar26;\n  wctype_t *pwVar27;\n  re_node_set *prVar28;\n  re_sub_match_top_t **pprVar29;\n  re_sub_match_top_t *prVar30;\n  re_sub_match_top_t *prVar31;\n  undefined1 *puVar32;\n  int iVar33;\n  reg_errcode_t rVar34;\n  re_dfastate_t *prVar35;\n  int *piVar38;\n  anon_union_4_5_a39f51ca_for_opr aVar39;\n  anon_union_4_5_a39f51ca_for_opr aVar40;\n  anon_union_4_5_a39f51ca_for_opr aVar41;\n  re_context_type *prVar42;\n  anon_union_4_5_a39f51ca_for_opr *paVar43;\n  wchar_t *pwVar44;\n  char *pattern;\n  anon_union_4_5_a39f51ca_for_opr aVar45;\n  anon_union_4_5_a39f51ca_for_opr aVar46;\n  regoff_t rVar47;\n  reg_errcode_t rVar48;\n  anon_union_4_5_a39f51ca_for_opr aVar49;\n  uchar *puVar50;\n  re_dfa_t *prVar51;\n  re_dfa_t *prVar52;\n  reg_syntax_t syntax;\n  re_token_t *prVar53;\n  anon_union_4_5_a39f51ca_for_opr *paVar54;\n  int iVar55;\n  anon_union_4_5_a39f51ca_for_opr aVar56;\n  wint_t *pwVar57;\n  re_dfa_t *unaff_s4;\n  int iVar58;\n  anon_union_4_5_a39f51ca_for_opr unaff_s5;\n  re_dfa_t *prVar59;\n  uint uVar60;\n  anon_union_4_5_a39f51ca_for_opr unaff_s7;\n  int iVar61;\n  undefined *puVar62;\n  anon_union_4_5_a39f51ca_for_opr unaff_s8;\n  undefined8 uVar63;\n  anon_union_4_5_a39f51ca_for_opr aStack_218;\n  reg_errcode_t rStack_20c;\n  reg_errcode_t rStack_208;\n  re_node_set rStack_204;\n  anon_union_4_5_a39f51ca_for_opr aStack_1f8;\n  anon_union_4_5_a39f51ca_for_opr aaStack_1f4 [6];\n  int iStack_1dc;\n  int iStack_1d8;\n  int iStack_1d4;\n  anon_union_4_5_a39f51ca_for_opr aStack_1cc;\n  anon_union_4_5_a39f51ca_for_opr aStack_1c8;\n  anon_union_4_5_a39f51ca_for_opr aStack_1c4;\n  anon_union_4_5_a39f51ca_for_opr aStack_1c0;\n  uint uStack_1b8;\n  undefined1 uStack_1b0;\n  byte bStack_1af;\n  byte bStack_1ae;\n  char cStack_1ad;\n  int iStack_1a8;\n  char *pcStack_1a4;\n  anon_union_4_5_a39f51ca_for_opr aStack_1a0;\n  anon_union_4_5_a39f51ca_for_opr *paStack_19c;\n  anon_union_4_5_a39f51ca_for_opr aStack_198;\n  anon_union_4_5_a39f51ca_for_opr aStack_194;\n  re_dfa_t *prStack_190;\n  anon_union_4_5_a39f51ca_for_opr aStack_18c;\n  re_dfa_t *prStack_188;\n  anon_union_4_5_a39f51ca_for_opr aStack_184;\n  anon_union_4_5_a39f51ca_for_opr aStack_180;\n  code *pcStack_17c;\n  anon_union_4_5_a39f51ca_for_opr local_150;\n  anon_union_4_5_a39f51ca_for_opr local_148;\n  int *local_144;\n  anon_union_4_5_a39f51ca_for_opr local_138;\n  int local_118;\n  Idx match_first;\n  reg_errcode_t err;\n  reg_errcode_t err_1;\n  re_node_set dest_nodes;\n  anon_union_4_5_a39f51ca_for_opr local_c4;\n  re_match_context_t mctx;\n  \n  preg_00 = *(anon_union_4_5_a39f51ca_for_opr *)PTR___stack_chk_guard_00079c10;\n  prVar59 = preg->buffer;\n  aVar45.sbcset = (re_bitset_ptr_t)0x0;\n  prVar51 = (re_dfa_t *)start;\n  (*(code *)PTR_memset_00079b00)(&mctx,0,0x88);\n  local_148 = (anon_union_4_5_a39f51ca_for_opr)preg->fastmap;\n  if ((re_dfa_t *)local_148.sbcset != (re_dfa_t *)0x0) {\n    if ((preg->field_0x1c & 0x10) == 0) {\n      local_148.sbcset = (re_bitset_ptr_t)0x0;\n    }\n    else if (start == last_start) {\n      local_148.sbcset = (re_bitset_ptr_t)0x0;\n    }\n    else if ((char)preg->field_0x1c < '\0') {\n      local_148.sbcset = (re_bitset_ptr_t)0x0;\n    }\n  }\n  if (preg->re_nsub < nmatch) {\n    local_118 = (nmatch - 1) - preg->re_nsub;\n  }\n  else {\n    local_118 = 0;\n  }\n  aStack_1a0.idx = start;\n  paStack_19c = (anon_union_4_5_a39f51ca_for_opr *)preg;\n  local_c4 = unaff_s8;\n  mctx.dfa = prVar59;\n  if (preg->used == 0) {\n    local_150.idx = 1;\n  }\n  else if (prVar59->init_state == (re_dfastate_t *)0x0) {\n    local_150.idx = 1;\n  }\n  else if (prVar59->init_state_word == (re_dfastate_t *)0x0) {\n    local_150.idx = 1;\n  }\n  else if (prVar59->init_state_nl == (re_dfastate_t *)0x0) {\n    local_150.idx = 1;\n  }\n  else {\n    aVar45 = (anon_union_4_5_a39f51ca_for_opr)prVar59->init_state_begbuf;\n    if ((re_dfa_t *)aVar45.sbcset == (re_dfa_t *)0x0) {\n      local_150.idx = 1;\n    }\n    else {\n      aVar4.idx = last_start;\n      if (((((prVar59->init_state->nodes).nelem == 0) &&\n           ((prVar59->init_state_word->nodes).nelem == 0)) &&\n          (((prVar59->init_state_nl->nodes).nelem == 0 || ((preg->field_0x1c & 1) == 0)))) &&\n         ((aVar4.idx = start, start != 0 &&\n          (start = last_start, aVar4.idx = last_start, last_start != 0)))) {\n        local_150.idx = 1;\n        aStack_1a0.idx = last_start;\n      }\n      else {\n        last_start = aVar4.idx;\n        aVar4.sbcset = (re_bitset_ptr_t)(nmatch - local_118);\n        if ((re_dfa_t *)aVar4.sbcset == (re_dfa_t *)0x0) {\n          paVar54 = (anon_union_4_5_a39f51ca_for_opr *)(uint)(prVar59->nbackref != 0);\n        }\n        else {\n          paVar54 = (anon_union_4_5_a39f51ca_for_opr *)0x1;\n        }\n        puVar50 = preg->translate;\n        mctx.input.icase = (uchar)((preg->syntax << 9) >> 0x1f);\n        mctx.input.mb_cur_max = prVar59->mb_cur_max;\n        aVar46.sbcset = (re_bitset_ptr_t)(prVar59->nodes_len + 1);\n        if (aVar46.idx < mctx.input.mb_cur_max) {\n          aVar46 = (anon_union_4_5_a39f51ca_for_opr)mctx.input.mb_cur_max;\n        }\n        aVar49.idx._0_3_ = 0;\n        aVar49.idx._3_1_ = ((re_bitset_ptr_t)(length + 1)).idx < aVar46.idx;\n        prVar51 = (re_dfa_t *)0x1;\n        mctx.input.mbs_allocated = mctx.input.icase;\n        if (puVar50 != (uchar *)0x0) {\n          mctx.input.mbs_allocated = 1;\n        }\n        mctx.input.is_utf8 = (uchar)((uint)(*(int *)&prVar59->field_0x58 << 2) >> 0x1f);\n        mctx.input.map_notascii = (uchar)((uint)(*(int *)&prVar59->field_0x58 << 3) >> 0x1f);\n        aVar45.sbcset = ((re_bitset_ptr_t)(length + 1)).sbcset;\n        if ((re_dfa_t *)aVar49.sbcset == (re_dfa_t *)0x0) {\n          aVar45 = aVar46;\n        }\n        mctx.input.raw_mbs = (uchar *)string;\n        mctx.input.raw_len = length;\n        mctx.input.len = length;\n        mctx.input.raw_stop = length;\n        mctx.input.stop = length;\n        mctx.input.trans = puVar50;\n        local_150.idx = re_string_realloc_buffers(&mctx.input,aVar45.idx);\n        aVar46.idx = start;\n        paVar18 = paVar54;\n        stop = stop;\n        if ((re_dfa_t *)local_150.sbcset != (re_dfa_t *)0x0) goto LAB_000557e4;\n        mctx.input.word_char = prVar59->word_char;\n        mctx.input.word_ops_used = (uchar)((uint)(*(int *)&prVar59->field_0x58 << 4) >> 0x1f);\n        paVar2 = (anon_union_4_5_a39f51ca_for_opr *)0x0;\n        mctx.input.valid_len = (Idx)paVar2;\n        if ((mctx.input.mbs_allocated == '\0') &&\n           (mctx.input.mbs = (uchar *)string, prVar59->mb_cur_max < 2)) {\n          mctx.input.valid_len = length;\n        }\n        mctx.input.stop = stop;\n        mctx.input.raw_stop = stop;\n        mctx.input.newline_anchor = (uchar)((uint)(*(int *)&preg->field_0x1c << 7) >> 0x1f);\n        iVar55 = prVar59->nbackref;\n        aVar56.idx = iVar55 * 2;\n        mctx.eflags = eflags;\n        mctx.match_last = -1;\n        mctx.input.valid_raw_len = mctx.input.valid_len;\n        if ((int)aVar56 < 1) {\nLAB_000559f0:\n          mctx.max_mb_elem_len = 1;\n          mctx.abkref_ents = aVar56.idx;\n          mctx.asub_tops = aVar56.idx;\n          if ((aVar4.sbcset < (re_dfa_t *)0x2) && ((prVar59->field_0x58 & 0x40) == 0)) {\n            mctx.state_log = (re_dfastate_t **)0x0;\nLAB_00055a40:\n            mctx.input.tip_context = 6;\n            if ((eflags & 1U) != 0) {\n              mctx.input.tip_context = 4;\n            }\n            aVar39.idx = 1;\n            aVar40.idx = start;\n            if (last_start < start) {\n              aVar39.idx = -1;\n              aVar40.idx = last_start;\n            }\n            aVar41.idx = last_start;\n            if (last_start <= start) {\n              aVar41.idx = start;\n            }\n            iVar55 = prVar59->mb_cur_max;\n            rVar20 = 8;\n            if ((re_dfa_t *)local_148.sbcset != (re_dfa_t *)0x0) {\n              if (iVar55 == 1) {\n                paVar43 = (anon_union_4_5_a39f51ca_for_opr *)0x4;\n              }\n              else {\n                paVar43 = paVar2;\n                if ((-1 < (int)(preg->syntax << 9)) && (puVar50 == (uchar *)0x0)) {\n                  paVar43 = (anon_union_4_5_a39f51ca_for_opr *)0x4;\n                }\n              }\n              aVar45.sbcset = (re_bitset_ptr_t)0x0;\n              if (start <= last_start) {\n                aVar45.idx = 2;\n              }\n              rVar20 = (uint)(puVar50 != (uchar *)0x0) | (uint)paVar43 | aVar45.ctx_type;\n            }\n            match_first = start;\n            if (start < aVar40.idx) {\n              local_150.idx = 1;\n              stop = aVar56.idx;\n            }\n            else {\n              aVar46.idx._0_3_ = 0;\n              aVar46.idx._3_1_ = last_start < start;\n              if (aVar41.idx < start) {\n                local_150.idx = 1;\n                stop = aVar56.idx;\n              }\n              else {\n                piVar38 = &match_first;\n                if ((re_dfa_t *)aVar46.sbcset != (re_dfa_t *)0x0) {\n                  piVar38 = (int *)0x0;\n                }\n                pcVar5 = (code *)(PTR_DAT_000799a4 + -0x2b7c);\n                piVar6 = (int *)(PTR_s_nt0_000795b8 + (rVar20 - 4) * 4 + 0x6e38);\nLAB_00055b44:\n                if (rVar20 - 4 < 5) {\n                    /* WARNING: Could not emulate address calculation at 0x00054920 */\n                    /* WARNING: Treating indirect jump as call */\n                  rVar21 = (*(code *)(&_gp + *piVar6))();\n                  return rVar21;\n                }\n                last_start = (Idx)&mctx;\n                prVar52 = prVar51;\n                while( true ) {\n                  aVar46.idx = match_first;\n                  uVar8 = match_first - mctx.input.raw_mbs_idx;\n                  aVar49 = (anon_union_4_5_a39f51ca_for_opr)eflags;\n                  paVar18 = paVar2;\n                  stop = local_148.idx;\n                  unaff_s4 = (re_dfa_t *)length;\n                  unaff_s5 = aVar39;\n                  unaff_s7 = aVar41;\n                  if ((uint)mctx.input.valid_raw_len <= uVar8) {\n                    aVar45.idx = match_first;\n                    local_150.sbcset = (re_bitset_ptr_t)(*pcVar5)(last_start);\n                    prVar51 = prVar52;\n                    if ((re_dfa_t *)local_150.sbcset != (re_dfa_t *)0x0) goto LAB_000557e4;\n                    uVar8 = (int)aVar46.sbcset - mctx.input.raw_mbs_idx;\n                  }\n                  if (aVar46.idx < length) {\n                    uVar8 = (uint)mctx.input.mbs[uVar8];\n                  }\n                  else {\n                    uVar8 = 0;\n                  }\n                  aVar56.sbcset = aVar46.sbcset + aVar39.sbcset;\n                  aVar46.sbcset = aVar56.sbcset;\n                  if (*(char *)((int)local_148.sbcset + uVar8) != '\0') break;\n                  prVar51 = prVar52;\n                  match_first = aVar56.idx;\n                  if (aVar56.idx < aVar40.idx) {\n                    local_150.idx = 1;\n                    goto LAB_000557e4;\n                  }\n                  aVar46.idx._0_3_ = 0;\n                  aVar46.idx._3_1_ = aVar41.idx < aVar56.idx;\n                  if ((re_dfa_t *)aVar46.sbcset != (re_dfa_t *)0x0) {\n                    local_150.idx = 1;\n                    goto LAB_000557e4;\n                  }\n                }\n                while( true ) {\n                  aVar45.idx = match_first;\n                  aVar49 = (anon_union_4_5_a39f51ca_for_opr)eflags;\n                  aVar7.sbcset = (re_bitset_ptr_t)(*pcVar5)(&mctx);\n                  aVar15 = (anon_union_4_5_a39f51ca_for_opr)mctx.dfa;\n                  aVar56.idx = mctx.input.cur_idx;\n                  prVar51 = prVar52;\n                  local_150.sbcset = aVar7.sbcset;\n                  if ((re_dfa_t *)aVar7.sbcset != (re_dfa_t *)0x0) goto LAB_000557e4;\n                  if (((iVar55 != 1) && (mctx.input.valid_len != 0)) &&\n                     (*mctx.input.wcs == 0xffffffff)) goto LAB_00055b1c;\n                  mctx.max_mb_elem_len = 0;\n                  mctx.nbkref_ents = 0;\n                  mctx.state_log_top = 0;\n                  local_138.idx = mctx.input.cur_idx;\n                  err = _REG_NOERROR;\n                  unaff_s7 = (anon_union_4_5_a39f51ca_for_opr)(mctx.dfa)->init_state;\n                  aVar49 = (anon_union_4_5_a39f51ca_for_opr)mctx.eflags;\n                  aVar46 = aVar15;\n                  if ((*(byte *)(unaff_s7.idx + 0x34) & 1) == 0) break;\n                  aVar45.sbcset = (re_bitset_ptr_t)(mctx.input.cur_idx + -1);\n                  prVar51 = (re_dfa_t *)re_string_context_at(&mctx.input,aVar45.idx,mctx.eflags);\n                  if (((uint)prVar51 & 1) == 0) {\n                    if (prVar51 == (re_dfa_t *)0x0) break;\n                    if (((uint)prVar51 & 6) == 6) {\n                      unaff_s7 = (anon_union_4_5_a39f51ca_for_opr)\n                                 ((re_dfa_t *)aVar15.idx)->init_state_begbuf;\n                      goto LAB_00054d1c;\n                    }\n                    if (((uint)prVar51 & 2) != 0) {\n                      unaff_s7 = (anon_union_4_5_a39f51ca_for_opr)\n                                 ((re_dfa_t *)aVar15.idx)->init_state_nl;\n                      goto LAB_00054d1c;\n                    }\n                    prVar52 = prVar51;\n                    if (((uint)prVar51 & 4) == 0) break;\n                    aVar49 = (anon_union_4_5_a39f51ca_for_opr)\n                             ((anon_union_4_5_a39f51ca_for_opr *)(unaff_s7.idx + 0x28))->mbcset;\n                    aVar45 = aVar15;\n                    unaff_s7.sbcset =\n                         &re_acquire_state_context\n                                    (&err,aVar15.sbcset,(re_node_set *)aVar49.mbcset,(uint)prVar51)\n                          ->hash;\n                    prVar52 = prVar51;\n                    if ((re_dfa_t *)unaff_s7.sbcset != (re_dfa_t *)0x0) break;\n                    if (err == _REG_ESPACE) goto LAB_00055914;\n                  }\n                  else {\n                    unaff_s7 = (anon_union_4_5_a39f51ca_for_opr)\n                               ((re_dfa_t *)aVar15.idx)->init_state_word;\nLAB_00054d1c:\n                    prVar52 = (re_dfa_t *)PTR_s_nt0_000795b8;\n                    if ((re_dfa_t *)unaff_s7.sbcset != (re_dfa_t *)0x0) break;\n                  }\n                  prVar52 = (re_dfa_t *)(PTR_s_nt0_000795b8 + 0x6eb0);\n                  aVar45.sbcset = (re_bitset_ptr_t)(PTR_s_nt0_000795b8 + 0x712c);\n                  match_first = (*(code *)PTR___assert_fail_000799f8)\n                                          (PTR_s_nt0_000795b8 + 0x71a0,aVar45.sbcset,0x435);\n                  if ((re_bitset_ptr_t)match_first == aVar41.sbcset) {\n                    if (match_first < length) {\n                      uVar8 = (uint)(byte)string[match_first];\n                    }\n                    else {\n                      uVar8 = 0;\n                    }\n                    if (puVar50 != (uchar *)0x0) {\n                      uVar8 = (uint)puVar50[uVar8];\n                    }\n                    if (*(char *)((int)local_148.sbcset + uVar8) == '\0') {\n                      local_150.idx = 1;\n                      aVar49 = (anon_union_4_5_a39f51ca_for_opr)eflags;\n                      prVar51 = prVar52;\n                      goto LAB_000557e4;\n                    }\n                  }\n                }\n                prVar51 = prVar52;\n                bVar36 = piVar38 != (int *)0x0;\n                if ((mctx.state_log == (re_dfastate_t **)0x0) ||\n                   (((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + aVar56.idx))->mbcset =\n                         (re_charset_t *)unaff_s7, ((re_dfa_t *)aVar15.idx)->nbackref == 0)) {\nLAB_00054d50:\n                  if ((int)*(bin_tree_t **)(unaff_s7.idx + 0x34) << 4 < 0) {\n                    if (((*(byte *)(unaff_s7.idx + 0x34) & 1) == 0) ||\n                       (aVar45 = unaff_s7, aVar49 = aVar56,\n                       IVar17 = check_halt_state_context(&mctx,unaff_s7.idx,aVar56.idx), IVar17 != 0\n                       )) {\n                      local_c4 = aVar56;\n                      if (paVar54 == (anon_union_4_5_a39f51ca_for_opr *)0x0) goto LAB_00055dbc;\n                      prVar52 = (re_dfa_t *)0x1;\n                    }\n                    else {\n                      aVar56.idx = -1;\n                      prVar52 = (re_dfa_t *)0x0;\n                    }\n                  }\n                  else {\n                    aVar56.idx = -1;\n                    prVar52 = (re_dfa_t *)0x0;\n                  }\n                  pcVar9 = (code *)(PTR_DAT_000799a4 + -0x7144);\n                  pcVar10 = (code *)(PTR_DAT_000799a4 + -0x1980);\n                  pcVar11 = (code *)(PTR_DAT_000799a4 + -0x2f9c);\n                  local_c4 = aVar56;\n                  local_144 = piVar38;\n                  while( true ) {\n                    uVar63 = CONCAT44(mctx.input.valid_len,mctx.input.len);\n                    unaff_s5.sbcset = (re_bitset_ptr_t)(mctx.input.cur_idx + 1);\n                    aVar45.idx = mctx.input.cur_idx;\n                    if (mctx.input.stop <= mctx.input.cur_idx) break;\n                    if ((mctx.input.bufs_len <= unaff_s5.idx) &&\n                       (mctx.input.bufs_len < mctx.input.len)) goto LAB_00054e94;\n                    if (mctx.input.valid_len <= unaff_s5.idx) {\n                      while ((int)((ulonglong)uVar63 >> 0x20) < (int)uVar63) {\nLAB_00054e94:\n                        aVar45.sbcset =\n                             (re_bitset_ptr_t)\n                             ((int)&((re_string_t *)&(aVar45.mbcset)->mbchars)->raw_mbs + 2);\n                        err = (*pcVar9)(&mctx);\n                        if (err == _REG_NOERROR) break;\n                        aVar15 = aVar46;\n                        if (err == _REG_ESPACE) goto LAB_00055914;\n                        prVar51 = (re_dfa_t *)(PTR_s_nt0_000795b8 + 0x6eb0);\n                        aVar49.idx = 0x46c;\n                        aVar45.sbcset = (re_bitset_ptr_t)(PTR_s_nt0_000795b8 + 0x712c);\n                        uVar63 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0);\n                        prVar52 = prVar59;\n                      }\n                    }\n                    prVar3 = mctx.dfa;\n                    if ((int)*(bin_tree_t **)(unaff_s7.idx + 0x34) << 5 < 0) {\n                      paVar18 = (anon_union_4_5_a39f51ca_for_opr *)prVar3;\n                      if (0 < (int)(unaff_s7.mbcset)->range_ends) {\n                        pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6fdc);\n                        pcVar13 = (code *)(PTR_DAT_000799a4 + -0x6ef0);\n                        stop = 0;\n                        do {\n                          last_start = ((anon_union_4_5_a39f51ca_for_opr *)\n                                       ((unaff_s7.mbcset)->char_classes + stop))->idx;\n                          prVar53 = prVar3->nodes;\n                          uVar8 = *(uint *)&prVar53[last_start].field_0x4;\n                          if ((uVar8 & 0x800) != 0) {\n                            if ((uVar8 & 0xffc000) != 0) {\n                              aVar45.idx = mctx.input.cur_idx;\n                              uVar60 = (*pcVar13)(&mctx,mctx.input.cur_idx,mctx.eflags);\n                              uVar8 = (uint)(*(int *)&prVar53[last_start].field_0x4 << 8) >> 0x16;\n                              if ((uVar8 & 4) == 0) {\n                                uVar26 = uVar60 & 1;\n                                if ((uVar8 & 8) != 0) goto joined_r0x00054f40;\n                              }\n                              else {\n                                uVar26 = uVar8 & 8;\n                                if ((uVar60 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                                if (uVar26 != 0) goto LAB_000550a4;\n                              }\n                              if ((((uVar8 & 0x20) != 0) && ((uVar60 & 2) == 0)) ||\n                                 (((uVar8 & 0x80) != 0 &&\n                                  (prVar51 = (re_dfa_t *)mctx.input.cur_idx, (uVar60 & 8) == 0))))\n                              goto LAB_000550a4;\n                            }\n                            aVar49.sbcset = (re_bitset_ptr_t)&mctx;\n                            aVar45.idx = last_start;\n                            prVar51 = (re_dfa_t *)mctx.input.cur_idx;\n                            iVar61 = (*pcVar11)(prVar3);\n                            if (iVar61 != 0) {\n                              aVar46.sbcset = (re_bitset_ptr_t)(iVar61 + mctx.input.cur_idx);\n                              if (iVar61 <= mctx.max_mb_elem_len) {\n                                iVar61 = mctx.max_mb_elem_len;\n                              }\n                              aVar45.sbcset = aVar46.sbcset;\n                              mctx.max_mb_elem_len = iVar61;\n                              err_1 = (*pcVar12)(&mctx);\n                              rVar21 = err_1;\n                              if (err_1 != _REG_NOERROR) goto LAB_00055e44;\n                              aVar49.sbcset =\n                                   (re_bitset_ptr_t)(prVar3->eclosures + prVar3->nexts[last_start]);\n                              unaff_s4 = (re_dfa_t *)(aVar46.idx * 4);\n                              last_start = (Idx)(mctx.state_log + aVar46.idx);\n                              if (*(bitset_word_t *)last_start == 0) {\n                                dest_nodes.alloc = *aVar49.sbcset;\n                                dest_nodes.nelem =\n                                     ((re_node_set *)&(aVar49.mbcset)->range_starts)->alloc;\n                                dest_nodes.elems = (aVar49.mbcset)->range_ends;\n                                prVar51 = (re_dfa_t *)\n                                          (*pcVar13)(&mctx,(undefined1 *)(aVar46.idx + -1),\n                                                     mctx.eflags);\n                                aVar49.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                                aVar45 = (anon_union_4_5_a39f51ca_for_opr)prVar3;\n                                prVar35 = re_acquire_state_context\n                                                    (&err_1,prVar3,(re_node_set *)aVar49.mbcset,\n                                                     (uint)prVar51);\n                                ((re_string_t *)&((re_charset_t *)last_start)->mbchars)->raw_mbs =\n                                     (uchar *)prVar35;\n                              }\n                              else {\n                                aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                                         ((anon_union_4_5_a39f51ca_for_opr *)\n                                         (*(bitset_word_t *)last_start + 0x28))->mbcset;\n                                err_1 = re_node_set_init_union\n                                                  (&dest_nodes,(re_node_set *)aVar45.mbcset,\n                                                   (re_node_set *)aVar49.mbcset);\n                                rVar21 = err_1;\n                                if (err_1 != _REG_NOERROR) goto LAB_00055e44;\n                                prVar51 = (re_dfa_t *)\n                                          (*pcVar13)(&mctx,(undefined1 *)(aVar46.idx + -1),\n                                                     mctx.eflags);\n                                pprVar14 = mctx.state_log + aVar46.idx;\n                                aVar49.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                                aVar45 = (anon_union_4_5_a39f51ca_for_opr)prVar3;\n                                prVar35 = re_acquire_state_context\n                                                    (&err_1,prVar3,(re_node_set *)aVar49.mbcset,\n                                                     (uint)prVar51);\n                                *pprVar14 = prVar35;\n                                (*(code *)PTR_free_00079c24)(dest_nodes.elems);\n                              }\n                              unaff_s4 = (re_dfa_t *)(mctx.state_log + aVar46.idx);\n                              if ((unaff_s4->nodes == (re_token_t *)0x0) &&\n                                 (rVar21 = err_1, err_1 != _REG_NOERROR)) goto LAB_00055e44;\n                            }\n                          }\nLAB_000550a4:\n                          stop = (int)&((re_string_t *)&((re_charset_t *)stop)->mbchars)->raw_mbs +\n                                 1;\n                        } while (stop < (int)(unaff_s7.mbcset)->range_ends);\n                      }\n                      err = _REG_NOERROR;\n                    }\n                    uVar8 = (uint)mctx.input.mbs[mctx.input.cur_idx];\n                    mctx.input.cur_idx = mctx.input.cur_idx + 1;\n                    do {\n                      if (*(re_dfastate_t **)(unaff_s7.idx + 0x2c) != (re_dfastate_t *)0x0) {\n                        aVar49 = (anon_union_4_5_a39f51ca_for_opr)\n                                 ((anon_union_4_5_a39f51ca_for_opr *)\n                                 (&(*(re_dfastate_t **)(unaff_s7.idx + 0x2c))->hash + uVar8))->\n                                 mbcset;\nLAB_000553a0:\n                        aVar15 = aVar49;\n                        if (mctx.state_log != (re_dfastate_t **)0x0) goto LAB_000553ac;\n                        goto LAB_000553cc;\n                      }\n                      paVar18 = *(anon_union_4_5_a39f51ca_for_opr **)(unaff_s7.idx + 0x30);\n                      if (paVar18 != (anon_union_4_5_a39f51ca_for_opr *)0x0) {\n                        aVar45.sbcset = (re_bitset_ptr_t)(mctx.input.cur_idx + -1);\n                        uVar60 = re_string_context_at(&mctx.input,aVar45.idx,mctx.eflags);\n                        if ((uVar60 & 1) == 0) {\n                          aVar49 = (anon_union_4_5_a39f51ca_for_opr)paVar18[uVar8].mbcset;\n                        }\n                        else {\n                          paVar18 = paVar18 + uVar8 + 0x100;\n                          aVar49 = (anon_union_4_5_a39f51ca_for_opr)paVar18->mbcset;\n                        }\n                        goto LAB_000553a0;\n                      }\n                      aVar45 = unaff_s7;\n                      aVar49 = (anon_union_4_5_a39f51ca_for_opr)mctx.eflags;\n                      iVar61 = (*pcVar10)(mctx.dfa);\n                    } while (iVar61 != 0);\n                    err = _REG_ESPACE;\n                    rVar21 = err;\nLAB_00055e44:\n                    err = rVar21;\n                    aVar46.sbcset = (re_bitset_ptr_t)0x0;\n                    if (mctx.state_log == (re_dfastate_t **)0x0) {\n                      aVar15.sbcset = aVar46.sbcset;\n                      if (err != _REG_NOERROR) goto LAB_00055914;\n                      break;\n                    }\n                    aVar49.sbcset = (re_bitset_ptr_t)0x0;\nLAB_000553ac:\n                    aVar45.sbcset = (re_bitset_ptr_t)&mctx;\n                    aVar15.sbcset =\n                         &merge_state_with_log\n                                    (&err,(re_match_context_t *)aVar45.mbcset,aVar49.sbcset)->hash;\nLAB_000553cc:\n                    aVar46 = aVar15;\n                    if ((re_dfa_t *)aVar15.sbcset == (re_dfa_t *)0x0) {\n                      if (err != _REG_NOERROR) goto LAB_00055914;\n                      if ((mctx.state_log == (re_dfastate_t **)0x0) ||\n                         ((prVar52 != (re_dfa_t *)0x0 &&\n                          (paVar54 == (anon_union_4_5_a39f51ca_for_opr *)0x0)))) break;\n                      stop = (Idx)&mctx;\n                      last_start = (Idx)&err;\n                      paVar18 = (anon_union_4_5_a39f51ca_for_opr *)(PTR_DAT_000799a4 + 0x3684);\n                      do {\n                        pprVar14 = mctx.state_log + mctx.input.cur_idx;\n                        IVar17 = mctx.input.cur_idx;\n                        do {\n                          IVar17 = IVar17 + 1;\n                          aVar45.idx = mctx.state_log_top;\n                          aVar46 = aVar15;\n                          if (mctx.state_log_top < IVar17) goto LAB_00055da8;\n                          mctx.input.cur_idx = mctx.input.cur_idx + 1;\n                          pprVar14 = pprVar14 + 1;\n                        } while (*pprVar14 == (re_dfastate_t *)0x0);\n                        aVar49.sbcset = (re_bitset_ptr_t)0x0;\n                        aVar45.sbcset = (re_bitset_ptr_t)stop;\n                        aVar46.sbcset = (re_bitset_ptr_t)(*(code *)paVar18)(last_start);\n                        if (err != _REG_NOERROR) {\n                          if ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0) goto LAB_00055da8;\n                          break;\n                        }\n                        aVar45.idx = mctx.state_log_top;\n                      } while ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0);\n                    }\n                    aVar16.ctx_type = unaff_s7.ctx_type ^ aVar46.ctx_type;\n                    aVar56 = unaff_s7;\n                    aVar15 = local_138;\n                    if ((bVar36) &&\n                       (aVar56.ctx_type = aVar16.ctx_type, aVar15.sbcset = unaff_s5.sbcset,\n                       (re_dfa_t *)aVar16.sbcset != (re_dfa_t *)0x0)) {\n                      bVar36 = false;\n                      aVar15 = local_138;\n                    }\n                    local_138 = aVar15;\n                    unaff_s7 = aVar46;\n                    if (((*(byte *)(aVar46.idx + 0x34) & 8) != 0) &&\n                       (((*(byte *)(aVar46.idx + 0x34) & 1) == 0 ||\n                        (aVar45 = aVar46, aVar49.idx = mctx.input.cur_idx,\n                        IVar17 = check_halt_state_context(&mctx,aVar46.idx,mctx.input.cur_idx),\n                        IVar17 != 0)))) {\n                      unaff_s7 = aVar56;\n                      local_c4.idx = mctx.input.cur_idx;\n                      if (paVar54 == (anon_union_4_5_a39f51ca_for_opr *)0x0) goto LAB_00055dbc;\n                      prVar52 = (re_dfa_t *)0x1;\n                      local_144 = (int *)0x0;\n                      unaff_s7 = aVar46;\n                    }\n                  }\nLAB_00055da8:\n                  if (local_144 != (int *)0x0) {\n                    *local_144 = *local_144 + (int)local_138.sbcset;\n                  }\n                }\n                else {\n                  aVar46.sbcset = (re_bitset_ptr_t)&(unaff_s7.mbcset)->range_starts;\n                  aVar49.sbcset = (re_bitset_ptr_t)0x0;\n                  aVar45 = aVar46;\n                  err = check_subexp_matching_top(&mctx,(re_node_set *)aVar46.mbcset,0);\n                  local_c4.idx = err;\n                  if ((re_dfa_t *)err == (re_dfa_t *)0x0) {\n                    if ((*(byte *)(unaff_s7.idx + 0x34) & 2) == 0) {\n                      aVar45 = aVar46;\n                      bVar36 = false;\n                    }\n                    else {\n                      aVar45 = aVar46;\n                      err = transit_state_bkref(&mctx,(re_node_set *)aVar46.mbcset);\n                      local_c4.idx = err;\n                      if ((re_dfa_t *)err != (re_dfa_t *)0x0) goto LAB_00055dbc;\n                      bVar36 = false;\n                    }\n                    goto LAB_00054d50;\n                  }\n                }\nLAB_00055dbc:\n                if ((re_dfa_t *)local_c4.sbcset == (re_dfa_t *)0xffffffff) {\nLAB_00055b04:\n                  match_ctx_clean(&mctx);\nLAB_00055b1c:\n                  match_first = aVar39.idx + match_first;\n                  if (aVar40.idx <= match_first) goto code_r0x00055b38;\n                  local_150.idx = 1;\n                  goto LAB_000557e4;\n                }\n                if ((re_dfa_t *)local_c4.sbcset == (re_dfa_t *)&SUB_fffffffe) {\n                  local_150.idx = 0xc;\n                  goto LAB_000557e4;\n                }\n                mctx.match_last = local_c4.idx;\n                if ((preg->field_0x1c & 8) == 0) {\n                  if (aVar4.sbcset < (re_dfa_t *)0x2) {\n                    if (prVar59->nbackref == 0) goto LAB_00055c08;\n                    aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                             ((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + local_c4.idx))->\n                             mbcset;\n                    aVar49 = local_c4;\n                    mctx.last_node =\n                         check_halt_state_context(&mctx,(re_dfastate_t *)aVar45.mbcset,local_c4.idx)\n                    ;\n                  }\n                  else {\n                    aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                             ((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + local_c4.idx))->\n                             mbcset;\n                    aVar49 = local_c4;\n                    mctx.last_node =\n                         check_halt_state_context(&mctx,(re_dfastate_t *)aVar45.mbcset,local_c4.idx)\n                    ;\n                  }\n                  if (aVar4.sbcset < (re_dfa_t *)0x2) {\nLAB_00055c6c:\n                    prVar52 = prVar51;\n                    unaff_s4 = mctx.dfa;\n                    if (prVar59->nbackref == 0) goto LAB_00055548;\n                  }\n                  else {\n                    cVar37 = prVar59->field_0x58;\nLAB_00055c20:\n                    prVar52 = prVar51;\n                    if (-1 < cVar37) goto LAB_00055c6c;\n                  }\n                  paVar18 = (anon_union_4_5_a39f51ca_for_opr *)mctx.last_node;\n                  prVar3 = mctx.dfa;\n                  unaff_s4 = prVar3;\n                  if ((uint)local_c4 < (re_dfa_t *)0x3fffffff) {\n                    aVar46.idx = (int)((int)&((re_string_t *)&(local_c4.mbcset)->mbchars)->raw_mbs +\n                                      1) * 4;\n                    unaff_s5.sbcset = (re_bitset_ptr_t)(*(code *)PTR_malloc_00079b54)(aVar46.sbcset)\n                    ;\n                    if ((re_dfa_t *)unaff_s5.sbcset == (re_dfa_t *)0x0) {\nLAB_00055b9c:\n                      (*(code *)PTR_free_00079c24)(unaff_s5.sbcset);\n                      local_150.idx = 0xc;\n                      prVar51 = prVar52;\n                    }\n                    else {\n                      aVar45.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                      if (prVar3->nbackref == 0) {\n                        dest_nodes.nelem = 0;\n                        dest_nodes.elems = &paVar18->idx;\n                        dest_nodes.alloc = (Idx)unaff_s5.sbcset;\n                        last_start = sift_states_backward(&mctx,(re_sift_context_t *)aVar45.mbcset);\n                        (*(code *)PTR_free_00079c24)(0);\n                        if ((re_dfa_t *)last_start == (re_dfa_t *)0x0) {\n                          aVar46.mbcset = (re_charset_t *)*unaff_s5.sbcset;\n                          if ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0) {\nLAB_00055b70:\n                            (*(code *)PTR_free_00079c24)(unaff_s5.sbcset);\n                            (*(code *)PTR_free_00079c24)(aVar46.sbcset);\n                            prVar51 = prVar52;\n                            goto LAB_00055b04;\n                          }\nLAB_00055528:\n                          (*(code *)PTR_free_00079c24)(mctx.state_log);\n                          prVar51 = prVar52;\n                          unaff_s4 = prVar3;\n                          mctx.match_last = local_c4.idx;\n                          mctx.last_node = (Idx)paVar18;\n                          mctx.state_log = (re_dfastate_t **)unaff_s5.sbcset;\n                          goto LAB_00055548;\n                        }\nLAB_00055acc:\n                        aVar46.sbcset = (re_bitset_ptr_t)0x0;\n                        prVar51 = prVar52;\n                        unaff_s4 = prVar3;\n                      }\n                      else {\n                        aVar46.sbcset =\n                             (re_bitset_ptr_t)(*(code *)PTR_malloc_00079b54)(aVar46.sbcset);\n                        if ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0) goto LAB_00055b9c;\n                        unaff_s7.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                        pcVar9 = (code *)(PTR_DAT_000799a4 + 0x421c);\n                        pcVar10 = (code *)(PTR_DAT_000799a4 + -0x6bc0);\n                        prVar51 = prVar52;\n                        while( true ) {\n                          prVar52 = (re_dfa_t *)(local_c4.idx + 1);\n                          stop = (int)prVar52 * 4;\n                          aVar49.idx = stop;\n                          (*(code *)PTR_memset_00079b00)(aVar46.sbcset,0);\n                          aVar45.sbcset = unaff_s7.sbcset;\n                          dest_nodes.alloc = (Idx)unaff_s5.sbcset;\n                          dest_nodes.nelem = (Idx)aVar46.sbcset;\n                          dest_nodes.elems = (Idx *)paVar18;\n                          last_start = (*pcVar9)(&mctx);\n                          (*(code *)PTR_free_00079c24)(0);\n                          unaff_s4 = prVar52;\n                          if ((re_dfa_t *)last_start != (re_dfa_t *)0x0) break;\n                          if ((*unaff_s5.sbcset != 0) || (stop = stop + -4, *aVar46.sbcset != 0)) {\n                            aVar45.sbcset = unaff_s5.sbcset;\n                            aVar49.sbcset = aVar46.sbcset;\n                            last_start = merge_state_array(prVar3,(re_dfastate_t **)unaff_s5.sbcset,\n                                                           (re_dfastate_t **)aVar46.sbcset,\n                                                           (Idx)prVar52);\n                            (*(code *)PTR_free_00079c24)(aVar46.sbcset);\n                            if ((re_dfa_t *)last_start != (re_dfa_t *)0x0) goto LAB_00055acc;\n                            goto LAB_00055528;\n                          }\n                          stop = (Idx)(mctx.state_log + (int)&prVar52[-1].lock.__align + 0x17);\n                          do {\n                            while( true ) {\n                              local_c4.sbcset = (re_bitset_ptr_t)(local_c4.idx + -1);\n                              if (local_c4.idx < 0) goto LAB_00055b70;\n                              aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                                       ((anon_union_4_5_a39f51ca_for_opr *)(stop + -4))->idx;\n                              if ((re_dfa_t *)aVar45.sbcset != (re_dfa_t *)0x0) break;\n                              stop = stop + -4;\n                            }\n                            stop = stop + -4;\n                          } while ((*(byte *)(aVar45.idx + 0x34) & 8) == 0);\n                          paVar18 = (anon_union_4_5_a39f51ca_for_opr *)\n                                    (*pcVar10)(&mctx,aVar45.sbcset,local_c4.sbcset);\n                          prVar51 = prVar52;\n                        }\n                      }\n                      (*(code *)PTR_free_00079c24)(unaff_s5.sbcset);\n                      (*(code *)PTR_free_00079c24)(aVar46.sbcset);\n                      local_150.idx = last_start;\n                      if ((re_dfa_t *)last_start == (re_dfa_t *)0x1) goto LAB_00055b04;\n                    }\n                  }\n                  else {\n                    local_150.idx = 0xc;\n                    prVar51 = prVar52;\n                  }\n                  goto LAB_000557e4;\n                }\n                if (prVar59->nbackref != 0) {\n                  aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                           ((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + local_c4.idx))->\n                           mbcset;\n                  aVar49 = local_c4;\n                  mctx.last_node =\n                       check_halt_state_context(&mctx,(re_dfastate_t *)aVar45.mbcset,local_c4.idx);\n                  goto LAB_00055c6c;\n                }\nLAB_00055c08:\n                if (((preg->field_0x1c & 8) == 0) && ((re_dfa_t *)0x1 < aVar4.sbcset)) {\n                  cVar37 = prVar59->field_0x58;\n                  goto LAB_00055c20;\n                }\nLAB_00055548:\n                if ((re_dfa_t *)aVar4.sbcset == (re_dfa_t *)0x0) goto LAB_000557e4;\n                if (aVar4.sbcset < (re_dfa_t *)0x2) {\n                  pmatch->rm_so = 0;\n                  pmatch->rm_eo = mctx.match_last;\n                  goto LAB_000555ac;\n                }\n                prVar19 = pmatch + 1;\n                do {\n                  prVar19->rm_eo = -1;\n                  prVar19->rm_so = -1;\n                  prVar19 = prVar19 + 1;\n                } while (prVar19 != pmatch + aVar4.idx);\n                pmatch->rm_so = 0;\n                pmatch->rm_eo = mctx.match_last;\n                if ((preg->field_0x1c & 8) != 0) {\nLAB_000555ac:\n                  prVar19 = pmatch;\n                  do {\n                    aVar45.sbcset = (re_bitset_ptr_t)prVar19->rm_so;\n                    if ((re_dfa_t *)aVar45.sbcset != (re_dfa_t *)0xffffffff) {\n                      if (mctx.input.offsets_needed != '\0') {\n                        rVar47 = mctx.input.valid_raw_len;\n                        if (aVar45.sbcset != (re_bitset_ptr_t)mctx.input.valid_len) {\n                          rVar47 = mctx.input.offsets[aVar45.idx];\n                        }\n                        prVar19->rm_so = rVar47;\n                        rVar47 = mctx.input.valid_raw_len;\n                        if (mctx.input.valid_len != prVar19->rm_eo) {\n                          rVar47 = mctx.input.offsets[prVar19->rm_eo];\n                        }\n                        prVar19->rm_eo = rVar47;\n                      }\n                      prVar19->rm_so = prVar19->rm_so + match_first;\n                      aVar45.sbcset = (re_bitset_ptr_t)(prVar19->rm_eo + match_first);\n                      prVar19->rm_eo = (regoff_t)aVar45;\n                    }\n                    prVar19 = prVar19 + 1;\n                  } while (prVar19 != pmatch + aVar4.idx);\n                  if (0 < local_118) {\n                    prVar19 = pmatch + aVar4.idx;\n                    do {\n                      prVar19->rm_so = -1;\n                      prVar19->rm_eo = -1;\n                      prVar19 = prVar19 + 1;\n                    } while (prVar19 != pmatch + nmatch);\n                  }\n                  aVar49.idx = match_first;\n                  prVar51 = (re_dfa_t *)pmatch;\n                  local_150.sbcset = aVar7.sbcset;\n                  if (prVar59->subexp_map != (Idx *)0x0) {\n                    aVar49.sbcset = (re_bitset_ptr_t)(aVar4.idx + -1);\n                    prVar52 = (re_dfa_t *)0x0;\n                    prVar19 = pmatch;\n                    while( true ) {\n                      aVar45.idx = (int)prVar52 * 4;\n                      if ((re_dfa_t *)aVar49.sbcset == prVar52) break;\n                      if ((re_dfa_t *)prVar59->subexp_map[(int)prVar52] != prVar52) {\n                        prVar19[1].rm_so =\n                             pmatch[(int)((int)&((re_string_t *)\n                                                &((re_dfa_t *)prVar59->subexp_map[(int)prVar52])->\n                                                 nodes)->raw_mbs + 1)].rm_so;\n                        prVar19[1].rm_eo = pmatch[prVar59->subexp_map[(int)prVar52] + 1].rm_eo;\n                      }\n                      prVar52 = (re_dfa_t *)((int)&((re_string_t *)&prVar52->nodes)->raw_mbs + 1);\n                      prVar19 = prVar19 + 1;\n                    }\n                  }\n                  goto LAB_000557e4;\n                }\n                if ((char)prVar59->field_0x58 < '\0') {\n                  bVar36 = 0 < prVar59->nbackref;\n                }\n                else {\n                  bVar36 = false;\n                }\n                aVar45.sbcset = (re_bitset_ptr_t)&mctx;\n                aVar49.sbcset = aVar4.sbcset;\n                prVar51 = (re_dfa_t *)pmatch;\n                local_150.idx =\n                     set_regs(preg,(re_match_context_t *)aVar45.mbcset,aVar4.ctx_type,pmatch,bVar36)\n                ;\n                if ((re_dfa_t *)local_150.sbcset == (re_dfa_t *)0x0) goto LAB_000555ac;\n              }\n            }\n          }\n          else if ((uint)mctx.input.bufs_len < 0x3fffffff) {\n            mctx.state_log =\n                 (re_dfastate_t **)(*(code *)PTR_malloc_00079b54)((mctx.input.bufs_len + 1) * 4);\n            if (mctx.state_log != (re_dfastate_t **)0x0) goto LAB_00055a40;\n            local_150.idx = 0xc;\n            stop = aVar56.idx;\n          }\n          else {\n            local_150.idx = 0xc;\n            stop = aVar56.idx;\n          }\n        }\n        else {\n          unaff_s5.idx = iVar55 * 8;\n          if (aVar56.sbcset < (re_dfa_t *)0xccccccd) {\n            unaff_s4 = (re_dfa_t *)(*(code *)PTR_malloc_00079b54)(iVar55 * 0x28);\n            mctx.bkref_ents = (re_backref_cache_entry *)unaff_s4;\n            mctx.sub_tops = (re_sub_match_top_t **)(*(code *)PTR_malloc_00079b54)(unaff_s5.sbcset);\n            if ((unaff_s4 != (re_dfa_t *)0x0) && (mctx.sub_tops != (re_sub_match_top_t **)0x0))\n            goto LAB_000559f0;\n          }\n          local_150.idx = 0xc;\n          stop = aVar56.idx;\n        }\nLAB_000557e4:\n        (*(code *)PTR_free_00079c24)(mctx.state_log);\n        preg = (regex_t *)aVar49;\n        if (prVar59->nbackref != 0) {\n          match_ctx_clean(&mctx);\n          (*(code *)PTR_free_00079c24)(mctx.sub_tops);\n          (*(code *)PTR_free_00079c24)(mctx.bkref_ents);\n          preg = (regex_t *)aVar49;\n        }\n        re_string_destruct(&mctx.input);\n        aStack_1a0 = aVar46;\n        paStack_19c = paVar18;\n      }\n    }\n  }\n  if ((re_dfa_t *)preg_00.sbcset == *(re_dfa_t **)PTR___stack_chk_guard_00079c10) {\n    return (reg_errcode_t)local_150.sbcset;\n  }\n  pcVar5 = re_compile_internal;\n  puVar62 = PTR___stack_chk_fail_00079bd0;\n  (*(code *)PTR___stack_chk_fail_00079bd0)();\n  pcStack_1a4 = (char *)**(undefined4 **)(puVar62 + 0x23dac);\n  rStack_20c = _REG_NOERROR;\n  bVar1 = *(byte *)&((re_node_set *)&(preg_00.mbcset)->nequiv_classes)->alloc;\n  (preg_00.mbcset)->char_classes = (wctype_t *)prVar51;\n  (preg_00.mbcset)->range_ends = (wchar_t *)0x0;\n  (preg_00.mbcset)->ncoll_syms = 0;\n  *(byte *)&((re_node_set *)&(preg_00.mbcset)->nequiv_classes)->alloc = bVar1 & 9;\n  aVar4.mbcset = (re_charset_t *)((re_string_t *)&(preg_00.mbcset)->mbchars)->raw_mbs;\n  aStack_198.idx = last_start;\n  aStack_194.idx = stop;\n  prStack_190 = unaff_s4;\n  aStack_18c = unaff_s5;\n  prStack_188 = prVar59;\n  aStack_184 = unaff_s7;\n  aStack_180 = local_c4;\n  pcStack_17c = pcVar5;\n  if ((uint)((re_node_set *)&(preg_00.mbcset)->range_starts)->alloc < 0xa0) {\n    aVar46.idx = 0xa0;\n    aVar49 = (anon_union_4_5_a39f51ca_for_opr)preg;\n    aVar4.sbcset = (re_bitset_ptr_t)(**(code **)(puVar62 + 0x23cf8))(aVar4.sbcset);\n    if ((re_dfa_t *)aVar4.sbcset == (re_dfa_t *)0x0) {\n      rVar21 = _REG_ESPACE;\n      goto LAB_00056cfc;\n    }\n    ((re_node_set *)&(preg_00.mbcset)->range_starts)->alloc = 0xa0;\n    ((re_string_t *)&(preg_00.mbcset)->mbchars)->raw_mbs = (uchar *)aVar4;\n  }\n  (preg_00.mbcset)->range_ends = (wchar_t *)0xa0;\n  aVar49.idx = 0xa0;\n  aVar46.sbcset = (re_bitset_ptr_t)0x0;\n  (**(code **)(puVar62 + 0x23c9c))(aVar4.sbcset);\n  *(int *)(aVar4.idx + 0x40) = 0x1f;\n  pwVar44 = (wchar_t *)((int)&((re_string_t *)&((re_charset_t *)preg)->mbchars)->raw_mbs + 1);\n  if (preg < (re_dfa_t *)0xaaaaaaa) {\n    (aVar4.mbcset)->range_starts = pwVar44;\n    bVar22 = (**(code **)(puVar62 + 0x23cf0))((int)pwVar44 * 8);\n    *aVar4.sbcset = bVar22;\n    if ((re_dfa_t *)preg == (re_dfa_t *)0x0) {\n      aVar56.idx = 1;\n    }\n    else {\n      aVar56.idx = 1;\n      do {\n        aVar56.ctx_type = aVar56.ctx_type << 1;\n      } while (aVar56.sbcset <= preg);\n    }\n    aVar46 = aVar56;\n    prVar23 = (re_state_table_entry *)(**(code **)(puVar62 + 0x23b8c))(0xc);\n    (aVar4.mbcset)->nranges = (Idx)prVar23;\n    *(undefined1 **)(aVar4.idx + 0x44) = (undefined1 *)(aVar56.idx + -1);\n    iVar55 = (**(code **)(puVar62 + 0x23d2c))();\n    *(int *)(aVar4.idx + 0x5c) = iVar55;\n    pbVar24 = (byte *)(**(code **)(puVar62 + 0x23c2c))(0xe);\n    if ((((*pbVar24 & 0xdf) == 0x55) && ((pbVar24[1] & 0xdf) == 0x54)) &&\n       (aVar46.idx = 4, (pbVar24[2] & 0xdf) == 0x46)) {\n      iVar55 = 3;\n      if (pbVar24[3] == 0x2d) {\n        iVar55 = 4;\n      }\n      aVar46.sbcset = (re_bitset_ptr_t)(*(int *)(puVar62 + 0x23754) + 0x71b4);\n      iVar55 = (**(code **)(puVar62 + 0x23dfc))(pbVar24 + iVar55);\n      if (iVar55 == 0) {\n        *(byte *)(aVar4.idx + 0x58) = *(byte *)(aVar4.idx + 0x58) & 0xdf | 0x20;\n      }\n    }\n    *(byte *)(aVar4.idx + 0x58) = *(byte *)(aVar4.idx + 0x58) & 0xef;\n    if (1 < *(int *)(aVar4.idx + 0x5c)) {\n      if ((*(byte *)(aVar4.idx + 0x58) & 0x20) == 0) {\n        aVar46.idx = 1;\n        pbVar25 = (re_bitset_ptr_t)(**(code **)(puVar62 + 0x23b8c))(0x20);\n        *(re_bitset_ptr_t *)(aVar4.idx + 0x3c) = pbVar25;\n        if (pbVar25 == (re_bitset_ptr_t)0x0) goto LAB_00056e5c;\n        iVar55 = 0;\n        do {\n          uVar8 = iVar55 << 3;\n          uVar60 = 0;\n          do {\n            uVar26 = (**(code **)(puVar62 + 0x23c88))(uVar8);\n            if (uVar26 != 0xffffffff) {\n              prVar42 = (re_context_type *)((int)*(re_bitset_ptr_t *)(aVar4.idx + 0x3c) + iVar55);\n              aVar46.ctx_type = *prVar42;\n              *prVar42 = aVar46.ctx_type | 1 << (uVar60 & 0x1f);\n            }\n            if (((uVar8 & 0xffffff80) == 0) && (uVar26 != uVar8)) {\n              *(byte *)(aVar4.idx + 0x58) = *(byte *)(aVar4.idx + 0x58) & 0xef | 0x10;\n            }\n            uVar60 = uVar60 + 1;\n            uVar8 = uVar8 + 1;\n          } while (uVar60 != 0x20);\n          iVar55 = iVar55 + 4;\n        } while (iVar55 != 0x20);\n      }\n      else {\n        *(re_bitset_ptr_t *)(aVar4.idx + 0x3c) =\n             (re_bitset_ptr_t)(*(int *)(puVar62 + 0x23754) + 0x6ee4);\n      }\n    }\n    if ((*aVar4.sbcset == 0) ||\n       ((re_state_table_entry *)(aVar4.mbcset)->nranges == (re_state_table_entry *)0x0))\n    goto LAB_00056e5c;\n    rStack_20c = _REG_NOERROR;\n    if (*(int *)(puVar62 + 0x23c78) == 0) {\nLAB_00056054:\n      uVar60 = ((anon_union_4_2_91654ee9_for___value *)&(preg_00.mbcset)->nmbchars)->__wch;\n      uVar8 = (uint)prVar51 & 0x400000;\n      bVar36 = uVar8 != 0;\n      aVar49.idx = 0x4c;\n      aVar46.sbcset = (re_bitset_ptr_t)0x0;\n      (**(code **)(puVar62 + 0x23c9c))(aaStack_1f4);\n      cStack_1ad = uVar60 != 0 || bVar36;\n      iStack_1a8 = *(int *)(aVar4.idx + 0x5c);\n      bStack_1af = (byte)((uint)(*(int *)(aVar4.idx + 0x58) << 2) >> 0x1f);\n      bStack_1ae = (byte)((uint)(*(int *)(aVar4.idx + 0x58) << 3) >> 0x1f);\n      aStack_1f8 = aVar45;\n      aStack_1cc = (anon_union_4_5_a39f51ca_for_opr)preg;\n      aStack_1c8 = (anon_union_4_5_a39f51ca_for_opr)preg;\n      aStack_1c4 = (anon_union_4_5_a39f51ca_for_opr)preg;\n      aStack_1c0 = (anon_union_4_5_a39f51ca_for_opr)preg;\n      uStack_1b8 = uVar60;\n      uStack_1b0 = bVar36;\n      if (0 < (int)preg) {\n        aVar46.sbcset = (re_bitset_ptr_t)((int)preg + 1);\n        rVar21 = re_string_realloc_buffers((re_string_t *)&aStack_1f8,aVar46.idx);\n        if (rVar21 == _REG_NOERROR) goto LAB_000560cc;\n        goto LAB_00056168;\n      }\nLAB_000560cc:\n      if (cStack_1ad != '\0') {\n        aVar45 = aaStack_1f4[0];\n      }\n      aaStack_1f4[0] = aVar45;\n      if (uVar8 == 0) {\n        if (*(int *)(aVar4.idx + 0x5c) < 2) {\n          if (uVar60 != 0) {\n            re_string_translate_buffer((re_string_t *)&aStack_1f8);\n          }\n        }\n        else {\n          build_wcs_buffer((re_string_t *)&aStack_1f8);\n        }\n      }\n      else {\n        if (1 < *(int *)(aVar4.idx + 0x5c)) {\n          iVar55 = *(int *)(puVar62 + 0x23abc);\n          do {\n            rVar21 = build_wcs_upper_buffer((re_string_t *)&aStack_1f8);\n            if (rVar21 != _REG_NOERROR) break;\n            if (((int)preg <= iStack_1d8) ||\n               (aVar46.ctx_type = iStack_1d4 << 1,\n               iStack_1dc + *(int *)(aVar4.idx + 0x5c) < iStack_1d4)) goto LAB_000563d0;\n            rVar21 = (*(code *)(iVar55 + 0x6d2c))(&aStack_1f8);\n          } while (rVar21 == _REG_NOERROR);\n          goto LAB_00056168;\n        }\n        build_upper_buffer((re_string_t *)&aStack_1f8);\n      }\nLAB_000563d0:\n      rStack_20c = _REG_NOERROR;\n      (preg_00.mbcset)->ncoll_syms = 0;\n      prVar59 = (re_dfa_t *)((re_string_t *)&(preg_00.mbcset)->mbchars)->raw_mbs;\n      prVar59->syntax = (reg_syntax_t)prVar51;\n      fetch_token((re_token_t *)&rStack_204,(re_string_t *)&aStack_1f8,(uint)prVar51 | 0x800000);\n      aVar46 = preg_00;\n      aVar45.sbcset =\n           (re_bitset_ptr_t)\n           parse_reg_exp((re_string_t *)&aStack_1f8,preg_00.sbcset,(re_token_t *)&rStack_204,\n                         (reg_syntax_t)prVar51,0,&rStack_20c);\n      if (rStack_20c == _REG_NOERROR) {\n        aVar49.sbcset = (re_bitset_ptr_t)0x0;\n        aVar46.sbcset = (re_bitset_ptr_t)0x0;\n        aVar56.mbcset =\n             (re_charset_t *)create_tree(prVar59,(bin_tree_t *)0x0,(bin_tree_t *)0x0,END_OF_RE);\n        aVar39.mbcset = aVar56.mbcset;\n        if ((re_dfa_t *)aVar45.sbcset != (re_dfa_t *)0x0) {\nLAB_000564b0:\n          aVar49 = aVar56;\n          aVar39.sbcset =\n               (re_bitset_ptr_t)\n               create_tree(prVar59,(bin_tree_t *)aVar45.mbcset,aVar56.sbcset,CONCAT);\n          aVar46 = aVar45;\n        }\n        if (((re_dfa_t *)aVar56.sbcset == (re_dfa_t *)0x0) ||\n           (pcVar5 = *(code **)(puVar62 + 0x23cf0), (re_dfa_t *)aVar39.sbcset == (re_dfa_t *)0x0)) {\n          rStack_20c = _REG_ESPACE;\n          goto LAB_000566f4;\n        }\n        ((anon_union_4_5_a39f51ca_for_opr *)(aVar4.idx + 0x34))->mbcset = (re_charset_t *)aVar39;\n        aVar45.mbcset = (re_charset_t *)*preg_00.sbcset;\n        iVar61 = ((re_node_set *)&(aVar45.mbcset)->range_starts)->alloc;\n        iVar55 = iVar61 << 2;\n        pwVar27 = (wctype_t *)(*pcVar5)(iVar55);\n        (aVar45.mbcset)->char_classes = pwVar27;\n        iVar55 = (**(code **)(puVar62 + 0x23cf0))(iVar55);\n        ((re_node_set *)(aVar45.idx + 0x10))->alloc = iVar55;\n        iVar61 = iVar61 * 0xc;\n        uVar60 = (**(code **)(puVar62 + 0x23cf0))(iVar61);\n        ((anon_union_4_2_91654ee9_for___value *)&(aVar45.mbcset)->nmbchars)->__wch = uVar60;\n        prVar28 = (re_node_set *)(**(code **)(puVar62 + 0x23cf0))(iVar61);\n        (aVar45.mbcset)->ncoll_syms = (Idx)prVar28;\n        if (pwVar27 == (wctype_t *)0x0) {\n          rVar21 = _REG_ESPACE;\n        }\n        else if (iVar55 == 0) {\n          rVar21 = _REG_ESPACE;\n        }\n        else if (uVar60 == 0) {\n          rVar21 = _REG_ESPACE;\n        }\n        else if (prVar28 == (re_node_set *)0x0) {\n          rVar21 = _REG_ESPACE;\n        }\n        else {\n          pprVar29 = (re_sub_match_top_t **)\n                     (**(code **)(puVar62 + 0x23cf0))((int)(preg_00.mbcset)->ncoll_syms << 2);\n          *(re_sub_match_top_t ***)(aVar45.idx + 0x84) = pprVar29;\n          if (pprVar29 != (re_sub_match_top_t **)0x0) {\n            prVar30 = (re_sub_match_top_t *)0x0;\n            if ((re_node_set *)(preg_00.mbcset)->ncoll_syms != (re_node_set *)0x0) {\n              do {\n                (*(re_sub_match_top_t ***)(aVar45.idx + 0x84))[(int)prVar30] = prVar30;\n                prVar30 = (re_sub_match_top_t *)((int)&prVar30->str_idx + 1);\n              } while (prVar30 < (re_sub_match_top_t *)(preg_00.mbcset)->ncoll_syms);\n            }\n            preorder(*(bin_tree_t **)(aVar45.idx + 0x34),\n                     (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)\n                     (*(int *)(puVar62 + 0x23abc) + 0x60e8),aVar45.sbcset);\n            prVar30 = (re_sub_match_top_t *)(preg_00.mbcset)->ncoll_syms;\n            if (prVar30 == (re_sub_match_top_t *)0x0) {\nLAB_00056704:\n              (**(code **)(puVar62 + 0x23dc0))(*(re_sub_match_top_t ***)(aVar45.idx + 0x84));\n              *(re_sub_match_top_t ***)(aVar45.idx + 0x84) = (re_sub_match_top_t **)0x0;\n            }\n            else {\n              pprVar29 = *(re_sub_match_top_t ***)(aVar45.idx + 0x84);\n              if (*pprVar29 == (re_sub_match_top_t *)0x0) {\n                prVar31 = (re_sub_match_top_t *)0x0;\n                do {\n                  pprVar29 = pprVar29 + 1;\n                  prVar31 = (re_sub_match_top_t *)((int)&prVar31->str_idx + 1);\n                  if (prVar30 == prVar31) {\n                    if (prVar30 == prVar31) goto LAB_00056704;\n                    break;\n                  }\n                } while (*pprVar29 == prVar31);\n              }\n            }\n          }\n          aVar46.sbcset = (re_bitset_ptr_t)(*(int *)(puVar62 + 0x23abc) + 0x73a4);\n          rVar21 = postorder(*(bin_tree_t **)(aVar45.idx + 0x34),\n                             (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar46.sbcset,\n                             preg_00.sbcset);\n          aVar49.mbcset = aVar45.mbcset;\n          if (rVar21 == _REG_NOERROR) {\n            aVar46.sbcset = (re_bitset_ptr_t)(*(int *)(puVar62 + 0x23b40) + -0x5be4);\n            rVar21 = postorder(*(bin_tree_t **)(aVar45.idx + 0x34),\n                               (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar46.sbcset,\n                               aVar45.sbcset);\n            if (rVar21 == _REG_NOERROR) {\n              preorder(*(bin_tree_t **)(aVar45.idx + 0x34),\n                       (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)\n                       (*(int *)(puVar62 + 0x23abc) + 0x61b4),aVar45.sbcset);\n              aVar46.sbcset = (re_bitset_ptr_t)(*(int *)(puVar62 + 0x23b40) + -0x4614);\n              rVar21 = preorder(*(bin_tree_t **)(aVar45.idx + 0x34),\n                                (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar46.sbcset,\n                                aVar45.sbcset);\n              if (rVar21 == _REG_NOERROR) {\n                uVar60 = 0;\n                iVar55 = *(int *)(puVar62 + 0x23b40);\n                aVar56.sbcset = (re_bitset_ptr_t)0x0;\nLAB_00056744:\n                if ((re_dfa_t *)(aVar45.mbcset)->range_ends != (re_dfa_t *)aVar56.sbcset) {\nLAB_00056750:\n                  if (((re_node_set *)(aVar45.mbcset)->ncoll_syms)[aVar56.idx].nelem == 0) {\n                    aVar46.mbcset = aVar45.mbcset;\n                    aVar49 = aVar56;\n                    rVar21 = (*(code *)(iVar55 + -0x561c))\n                                       (&rStack_204,aVar45.sbcset,aVar56.sbcset,1);\n                    if (rVar21 != _REG_NOERROR) goto LAB_00056168;\n                    if (((re_node_set *)(aVar45.mbcset)->ncoll_syms)[aVar56.idx].nelem == 0) {\n                      (**(code **)(puVar62 + 0x23dc0))(rStack_204.elems);\n                      uVar60 = 1;\n                    }\n                  }\n                  aVar56.sbcset =\n                       (re_bitset_ptr_t)\n                       ((int)&((re_string_t *)&(aVar56.mbcset)->mbchars)->raw_mbs + 1);\n                  goto LAB_00056744;\n                }\n                if (uVar60 != 0) {\n                  uVar60 = 0;\n                  aVar56.sbcset = (re_bitset_ptr_t)0x0;\n                  goto LAB_00056750;\n                }\n                if ((((((re_node_set *)&(preg_00.mbcset)->nequiv_classes)->alloc & 0x8000000) == 0)\n                    && ((re_node_set *)(preg_00.mbcset)->ncoll_syms != (re_node_set *)0x0)) &&\n                   (*(char *)(aVar45.idx + 0x58) < '\0')) {\n                  pwVar57 = (wint_t *)(aVar45.mbcset)->range_ends;\n                }\n                else {\n                  if (*(Idx *)(aVar45.idx + 0x4c) == 0) goto LAB_000568f0;\n                  pwVar57 = (wint_t *)(aVar45.mbcset)->range_ends;\n                }\n                iVar55 = (**(code **)(puVar62 + 0x23cf0))((int)pwVar57 * 0xc);\n                ((re_node_set *)&(aVar45.mbcset)->nequiv_classes)->alloc = iVar55;\n                if (iVar55 == 0) {\n                  rVar21 = _REG_ESPACE;\n                  goto LAB_00056168;\n                }\n                if (pwVar57 != (wint_t *)0x0) {\n                  iVar55 = 0;\n                  uVar26 = 0;\n                  do {\n                    puVar32 = (undefined1 *)\n                              (((re_node_set *)&(aVar45.mbcset)->nequiv_classes)->alloc + iVar55);\n                    *puVar32 = 0;\n                    puVar32[1] = 0;\n                    puVar32[2] = 0;\n                    puVar32[3] = 0;\n                    puVar32[4] = 0;\n                    puVar32[5] = 0;\n                    puVar32[6] = 0;\n                    puVar32[7] = 0;\n                    puVar32[8] = 0;\n                    puVar32[9] = 0;\n                    puVar32[10] = 0;\n                    puVar32[0xb] = 0;\n                    uVar26 = uVar26 + 1;\n                    iVar55 = iVar55 + 0xc;\n                  } while (uVar26 < (aVar45.mbcset)->range_ends);\n                  iVar55 = *(int *)(puVar62 + 0x23abc);\n                  if ((wint_t *)(aVar45.mbcset)->range_ends != (wint_t *)0x0) {\n                    iVar61 = 0;\n                    aStack_218.sbcset = (re_bitset_ptr_t)0x0;\n                    do {\n                      piVar38 = *(int **)((int)&((re_node_set *)(aVar45.mbcset)->ncoll_syms)->elems\n                                         + iVar61);\n                      if (0 < *(int *)((int)&((re_node_set *)(aVar45.mbcset)->ncoll_syms)->nelem +\n                                      iVar61)) {\n                        iVar58 = 0;\n                        do {\n                          aVar46 = aStack_218;\n                          iVar33 = (*(code *)(iVar55 + 0x6e30))\n                                             (((re_node_set *)&(aVar45.mbcset)->nequiv_classes)->\n                                              alloc + *piVar38 * 0xc);\n                          rVar21 = _REG_ESPACE;\n                          if (iVar33 == 0) goto LAB_00056168;\n                          iVar58 = iVar58 + 1;\n                          piVar38 = piVar38 + 1;\n                        } while (iVar58 < *(int *)((int)&((re_node_set *)(aVar45.mbcset)->ncoll_syms\n                                                         )->nelem + iVar61));\n                      }\n                      aStack_218.sbcset =\n                           (re_bitset_ptr_t)\n                           ((int)&((re_string_t *)&(aStack_218.mbcset)->mbchars)->raw_mbs + 1);\n                      iVar61 = iVar61 + 0xc;\n                    } while (aStack_218.sbcset < (re_dfa_t *)(aVar45.mbcset)->range_ends);\n                  }\n                }\nLAB_000568f0:\n                rStack_20c = _REG_NOERROR;\n                if ((((*(byte *)(aVar4.idx + 0x58) & 0x20) != 0) && (uVar8 == 0)) &&\n                   (((anon_union_4_2_91654ee9_for___value *)&(preg_00.mbcset)->nmbchars)->__wch == 0\n                   )) {\n                  if ((aVar4.mbcset)->range_ends != (wchar_t *)0x0) {\n                    aVar49.sbcset = (re_bitset_ptr_t)(*(int *)(puVar62 + 0x23754) + 0x6e4c);\n                    if (*(byte *)(*aVar4.sbcset + 4) < 0xd) {\n                    /* WARNING: Could not recover jumptable at 0x00056a60. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      rVar21 = (*(code *)(puVar62 +\n                                         aVar49.sbcset[*(byte *)(*aVar4.sbcset + 4)] + 0x2b71c))();\n                      return rVar21;\n                    }\n                    (**(code **)(puVar62 + 0x23bc4))(0);\n                    if (uVar60 != 0) {\n                      aVar49.idx = (Idx)&DAT_00000007;\n                      uVar8 = 0;\n                      do {\n                        prVar53 = (re_token_t *)(aVar4.mbcset)->mbchars + uVar8;\n                        if (prVar53->field_0x4 == '\x01') {\n                          if ((char)(prVar53->opr).c < '\0') {\n                            *(uint *)&prVar53->field_0x4 = *(uint *)&prVar53->field_0x4 & 0xfffffbff\n                            ;\n                          }\n                        }\n                        else if (prVar53->field_0x4 == '\x05') {\n                          prVar53->field_0x4 = 7;\n                        }\n                        uVar8 = uVar8 + 1;\n                      } while (uVar8 < (aVar4.mbcset)->range_ends);\n                    }\n                  }\n                  *(int *)(aVar4.idx + 0x5c) = 1;\n                  if (0 < *(Idx *)(aVar4.idx + 0x4c)) {\n                    uVar60 = 1;\n                  }\n                  *(byte *)(aVar4.idx + 0x58) =\n                       *(byte *)(aVar4.idx + 0x58) & 0x9f | (byte)((uVar60 & 1) << 6);\n                }\n                iVar55 = (*(bin_tree_t **)(aVar4.idx + 0x34))->first->node_idx;\n                *(int *)(aVar4.idx + 0x48) = iVar55;\n                aVar46.sbcset =\n                     (re_bitset_ptr_t)((re_node_set *)(aVar4.mbcset)->ncoll_syms + iVar55);\n                rVar34 = re_node_set_init_copy(&rStack_204,(re_node_set *)aVar46.mbcset);\n                rVar21 = rVar34;\n                rStack_208 = rVar34;\n                if (rVar34 == _REG_NOERROR) {\n                  if ((0 < *(Idx *)(aVar4.idx + 0x4c)) && (_REG_NOERROR < rStack_204.nelem)) {\n                    iVar55 = *(int *)(puVar62 + 0x23abc);\n                    iVar61 = *(int *)(puVar62 + 0x23abc);\n                    rVar21 = _REG_NOERROR;\n                    do {\n                      aVar49.sbcset =\n                           (re_bitset_ptr_t)\n                           ((re_token_t *)(aVar4.mbcset)->mbchars + rStack_204.elems[rVar21]);\n                      if (*(char *)&((re_node_set *)&(aVar49.mbcset)->range_starts)->alloc == '\x04'\n                         ) {\n                        rVar48 = _REG_NOERROR;\n                        piVar38 = rStack_204.elems;\n                        if (rStack_204.nelem < _REG_NOMATCH) {\nLAB_00056b8c:\n                          if (rStack_204.nelem != rVar48) {\n                            iVar33 = *((re_node_set *)(aVar4.mbcset)->nmbchars)\n                                      [rStack_204.elems[rVar21]].elems;\n                            iVar58 = (*(code *)(iVar55 + 0x5ea8))(&rStack_204,iVar33);\n                            if (iVar58 == 0) {\n                              aVar46.sbcset =\n                                   (re_bitset_ptr_t)\n                                   ((re_node_set *)(aVar4.mbcset)->ncoll_syms + iVar33);\n                              rVar21 = (*(code *)(iVar61 + 0x7f1c))(&rStack_204);\n                              if (rVar21 != _REG_NOERROR) goto LAB_00056cb8;\n                            }\n                          }\n                        }\n                        else {\n                          do {\n                            prVar53 = (re_token_t *)(aVar4.mbcset)->mbchars + *piVar38;\n                            if ((prVar53->field_0x4 == '\t') &&\n                               ((prVar53->opr).sbcset == (re_bitset_ptr_t)*aVar49.sbcset))\n                            goto LAB_00056b8c;\n                            rVar48 = rVar48 + _REG_NOMATCH;\n                            piVar38 = piVar38 + 1;\n                          } while (rStack_204.nelem != rVar48);\n                        }\n                      }\n                      rVar21 = rVar21 + _REG_NOMATCH;\n                    } while (rVar21 < rStack_204.nelem);\n                  }\n                  aVar49.sbcset = (re_bitset_ptr_t)&rStack_204;\n                  aVar46 = aVar4;\n                  prVar35 = re_acquire_state_context\n                                      (&rStack_208,(re_dfa_t *)aVar4.mbcset,\n                                       (re_node_set *)aVar49.mbcset,0);\n                  (aVar4.mbcset)->nchar_classes = (Idx)prVar35;\n                  rVar21 = rStack_208;\n                  if (prVar35 != (re_dfastate_t *)0x0) {\n                    if ((prVar35->field_0x34 & 1) == 0) {\n                      *(re_dfastate_t **)(aVar4.idx + 0x30) = prVar35;\n                      *(re_dfastate_t **)(aVar4.idx + 0x2c) = prVar35;\n                      *(re_dfastate_t **)(aVar4.idx + 0x28) = prVar35;\n                    }\n                    else {\n                      aVar49.sbcset = (re_bitset_ptr_t)&rStack_204;\n                      prVar35 = re_acquire_state_context\n                                          (&rStack_208,(re_dfa_t *)aVar4.mbcset,\n                                           (re_node_set *)aVar49.mbcset,1);\n                      *(re_dfastate_t **)(aVar4.idx + 0x28) = prVar35;\n                      prVar35 = re_acquire_state_context\n                                          (&rStack_208,(re_dfa_t *)aVar4.mbcset,\n                                           (re_node_set *)aVar49.mbcset,2);\n                      *(re_dfastate_t **)(aVar4.idx + 0x2c) = prVar35;\n                      aVar46 = aVar4;\n                      prVar35 = re_acquire_state_context\n                                          (&rStack_208,(re_dfa_t *)aVar4.mbcset,\n                                           (re_node_set *)aVar49.mbcset,6);\n                      *(re_dfastate_t **)(aVar4.idx + 0x30) = prVar35;\n                      rVar21 = rStack_208;\n                      if (((*(re_dfastate_t **)(aVar4.idx + 0x28) == (re_dfastate_t *)0x0) ||\n                          (*(re_dfastate_t **)(aVar4.idx + 0x2c) == (re_dfastate_t *)0x0)) ||\n                         (prVar35 == (re_dfastate_t *)0x0)) goto LAB_00056cb8;\n                    }\n                    (**(code **)(puVar62 + 0x23dc0))(rStack_204.elems);\n                    rVar21 = rVar34;\n                  }\n                }\nLAB_00056cb8:\n                rStack_20c = rVar21;\n                free_workarea_compile((regex_t *)preg_00.mbcset);\n                re_string_destruct((re_string_t *)&aStack_1f8);\n                rVar21 = rStack_20c;\n                if (rStack_20c != _REG_NOERROR) {\n                  if (*(int *)(puVar62 + 0x23c78) != 0) {\n                    (**(code **)(puVar62 + 0x23df0))((pthread_mutex_t *)(aVar4.idx + 0x88));\n                  }\n                  free_dfa_content((re_dfa_t *)aVar4.mbcset);\n                  *preg_00.sbcset = 0;\n                  ((re_node_set *)&(preg_00.mbcset)->range_starts)->alloc = 0;\n                  rVar21 = rStack_20c;\n                }\n                goto LAB_00056cfc;\n              }\n            }\n          }\n        }\n      }\n      else {\n        aVar49.sbcset = (re_bitset_ptr_t)0x0;\n        if ((re_dfa_t *)aVar45.sbcset != (re_dfa_t *)0x0) {\n          aVar56.mbcset =\n               (re_charset_t *)create_tree(prVar59,(bin_tree_t *)0x0,(bin_tree_t *)0x0,END_OF_RE);\n          goto LAB_000564b0;\n        }\nLAB_000566f4:\n        *(bin_tree_t **)(aVar4.idx + 0x34) = (bin_tree_t *)0x0;\n        rVar21 = rStack_20c;\n      }\nLAB_00056168:\n      rStack_20c = rVar21;\n      free_workarea_compile((regex_t *)preg_00.mbcset);\n      re_string_destruct((re_string_t *)&aStack_1f8);\n      if (*(int *)(puVar62 + 0x23c78) != 0) {\n        (**(code **)(puVar62 + 0x23df0))((pthread_mutex_t *)(aVar4.idx + 0x88));\n      }\n      free_dfa_content((re_dfa_t *)aVar4.mbcset);\n      *preg_00.sbcset = 0;\n      ((re_node_set *)&(preg_00.mbcset)->range_starts)->alloc = 0;\n      rVar21 = rStack_20c;\n      goto LAB_00056cfc;\n    }\n    aVar46.sbcset = (re_bitset_ptr_t)0x0;\n    iVar55 = (**(code **)(puVar62 + 0x23d98))((pthread_mutex_t *)(aVar4.idx + 0x88));\n    if (iVar55 != 0) goto LAB_00056e5c;\n    if (rStack_20c == _REG_NOERROR) goto LAB_00056054;\n  }\n  else {\nLAB_00056e5c:\n    rStack_20c = _REG_ESPACE;\n  }\n  free_dfa_content((re_dfa_t *)aVar4.mbcset);\n  *preg_00.sbcset = 0;\n  ((re_node_set *)&(preg_00.mbcset)->range_starts)->alloc = 0;\n  rVar21 = rStack_20c;\nLAB_00056cfc:\n  if (pcStack_1a4 == (char *)**(int **)(puVar62 + 0x23dac)) {\n    return rVar21;\n  }\n  pcVar5 = *(code **)(puVar62 + 0x23d6c);\n  pattern = pcStack_1a4;\n  (*pcVar5)();\n  syntax = **(reg_syntax_t **)(pcVar5 + 0x22b18);\n  *(byte *)&((re_node_set *)&(aVar49.mbcset)->nequiv_classes)->alloc =\n       *(byte *)&((re_node_set *)&(aVar49.mbcset)->nequiv_classes)->alloc & 0xf6 |\n       (byte)(((syntax << 6) >> 0x1f) << 3) | 1;\n  rVar21 = re_compile_internal((regex_t *)aVar49.mbcset,pattern,aVar46.ctx_type,syntax);\n  if (rVar21 == _REG_NOERROR) {\n    rVar21 = _REG_NOERROR;\n  }\n  else {\n    rVar21 = (**(code **)(pcVar5 + 0x22d48))\n                       (0,*(int *)(pcVar5 + 0x22728) + 0x6f48 +\n                          *(int *)(rVar21 * 4 + *(int *)(pcVar5 + 0x22728) + 0x6f04),5);\n  }\n  return rVar21;\ncode_r0x00055b38:\n  if (aVar41.idx < match_first) goto LAB_000557a8;\n  goto LAB_00055b44;\nLAB_000557a8:\n  local_150.idx = 1;\n  goto LAB_000557e4;\nLAB_00055914:\n  local_150.idx = 0xc;\n  aVar46 = aVar15;\n  goto LAB_000557e4;\n}\n\n" (function_definition "reg_errcode_t\nre_search_internal(regex_t *preg,char *string,Idx length,Idx start,Idx last_start,Idx stop,\n                  size_t nmatch,regmatch_t *pmatch,int eflags)\n\n{\n  byte bVar1;\n  anon_union_4_5_a39f51ca_for_opr *paVar2;\n  re_dfa_t *prVar3;\n  anon_union_4_5_a39f51ca_for_opr preg_00;\n  anon_union_4_5_a39f51ca_for_opr aVar4;\n  code *pcVar5;\n  int *piVar6;\n  anon_union_4_5_a39f51ca_for_opr aVar7;\n  uint uVar8;\n  code *pcVar9;\n  code *pcVar10;\n  code *pcVar11;\n  code *pcVar12;\n  code *pcVar13;\n  re_dfastate_t **pprVar14;\n  anon_union_4_5_a39f51ca_for_opr aVar15;\n  anon_union_4_5_a39f51ca_for_opr aVar16;\n  Idx IVar17;\n  anon_union_4_5_a39f51ca_for_opr *paVar18;\n  bool bVar36;\n  regmatch_t *prVar19;\n  re_context_type rVar20;\n  reg_errcode_t rVar21;\n  char cVar37;\n  bitset_word_t bVar22;\n  re_state_table_entry *prVar23;\n  byte *pbVar24;\n  re_bitset_ptr_t pbVar25;\n  uint uVar26;\n  wctype_t *pwVar27;\n  re_node_set *prVar28;\n  re_sub_match_top_t **pprVar29;\n  re_sub_match_top_t *prVar30;\n  re_sub_match_top_t *prVar31;\n  undefined1 *puVar32;\n  int iVar33;\n  reg_errcode_t rVar34;\n  re_dfastate_t *prVar35;\n  int *piVar38;\n  anon_union_4_5_a39f51ca_for_opr aVar39;\n  anon_union_4_5_a39f51ca_for_opr aVar40;\n  anon_union_4_5_a39f51ca_for_opr aVar41;\n  re_context_type *prVar42;\n  anon_union_4_5_a39f51ca_for_opr *paVar43;\n  wchar_t *pwVar44;\n  char *pattern;\n  anon_union_4_5_a39f51ca_for_opr aVar45;\n  anon_union_4_5_a39f51ca_for_opr aVar46;\n  regoff_t rVar47;\n  reg_errcode_t rVar48;\n  anon_union_4_5_a39f51ca_for_opr aVar49;\n  uchar *puVar50;\n  re_dfa_t *prVar51;\n  re_dfa_t *prVar52;\n  reg_syntax_t syntax;\n  re_token_t *prVar53;\n  anon_union_4_5_a39f51ca_for_opr *paVar54;\n  int iVar55;\n  anon_union_4_5_a39f51ca_for_opr aVar56;\n  wint_t *pwVar57;\n  re_dfa_t *unaff_s4;\n  int iVar58;\n  anon_union_4_5_a39f51ca_for_opr unaff_s5;\n  re_dfa_t *prVar59;\n  uint uVar60;\n  anon_union_4_5_a39f51ca_for_opr unaff_s7;\n  int iVar61;\n  undefined *puVar62;\n  anon_union_4_5_a39f51ca_for_opr unaff_s8;\n  undefined8 uVar63;\n  anon_union_4_5_a39f51ca_for_opr aStack_218;\n  reg_errcode_t rStack_20c;\n  reg_errcode_t rStack_208;\n  re_node_set rStack_204;\n  anon_union_4_5_a39f51ca_for_opr aStack_1f8;\n  anon_union_4_5_a39f51ca_for_opr aaStack_1f4 [6];\n  int iStack_1dc;\n  int iStack_1d8;\n  int iStack_1d4;\n  anon_union_4_5_a39f51ca_for_opr aStack_1cc;\n  anon_union_4_5_a39f51ca_for_opr aStack_1c8;\n  anon_union_4_5_a39f51ca_for_opr aStack_1c4;\n  anon_union_4_5_a39f51ca_for_opr aStack_1c0;\n  uint uStack_1b8;\n  undefined1 uStack_1b0;\n  byte bStack_1af;\n  byte bStack_1ae;\n  char cStack_1ad;\n  int iStack_1a8;\n  char *pcStack_1a4;\n  anon_union_4_5_a39f51ca_for_opr aStack_1a0;\n  anon_union_4_5_a39f51ca_for_opr *paStack_19c;\n  anon_union_4_5_a39f51ca_for_opr aStack_198;\n  anon_union_4_5_a39f51ca_for_opr aStack_194;\n  re_dfa_t *prStack_190;\n  anon_union_4_5_a39f51ca_for_opr aStack_18c;\n  re_dfa_t *prStack_188;\n  anon_union_4_5_a39f51ca_for_opr aStack_184;\n  anon_union_4_5_a39f51ca_for_opr aStack_180;\n  code *pcStack_17c;\n  anon_union_4_5_a39f51ca_for_opr local_150;\n  anon_union_4_5_a39f51ca_for_opr local_148;\n  int *local_144;\n  anon_union_4_5_a39f51ca_for_opr local_138;\n  int local_118;\n  Idx match_first;\n  reg_errcode_t err;\n  reg_errcode_t err_1;\n  re_node_set dest_nodes;\n  anon_union_4_5_a39f51ca_for_opr local_c4;\n  re_match_context_t mctx;\n  \n  preg_00 = *(anon_union_4_5_a39f51ca_for_opr *)PTR___stack_chk_guard_00079c10;\n  prVar59 = preg->buffer;\n  aVar45.sbcset = (re_bitset_ptr_t)0x0;\n  prVar51 = (re_dfa_t *)start;\n  (*(code *)PTR_memset_00079b00)(&mctx,0,0x88);\n  local_148 = (anon_union_4_5_a39f51ca_for_opr)preg->fastmap;\n  if ((re_dfa_t *)local_148.sbcset != (re_dfa_t *)0x0) {\n    if ((preg->field_0x1c & 0x10) == 0) {\n      local_148.sbcset = (re_bitset_ptr_t)0x0;\n    }\n    else if (start == last_start) {\n      local_148.sbcset = (re_bitset_ptr_t)0x0;\n    }\n    else if ((char)preg->field_0x1c < '\0') {\n      local_148.sbcset = (re_bitset_ptr_t)0x0;\n    }\n  }\n  if (preg->re_nsub < nmatch) {\n    local_118 = (nmatch - 1) - preg->re_nsub;\n  }\n  else {\n    local_118 = 0;\n  }\n  aStack_1a0.idx = start;\n  paStack_19c = (anon_union_4_5_a39f51ca_for_opr *)preg;\n  local_c4 = unaff_s8;\n  mctx.dfa = prVar59;\n  if (preg->used == 0) {\n    local_150.idx = 1;\n  }\n  else if (prVar59->init_state == (re_dfastate_t *)0x0) {\n    local_150.idx = 1;\n  }\n  else if (prVar59->init_state_word == (re_dfastate_t *)0x0) {\n    local_150.idx = 1;\n  }\n  else if (prVar59->init_state_nl == (re_dfastate_t *)0x0) {\n    local_150.idx = 1;\n  }\n  else {\n    aVar45 = (anon_union_4_5_a39f51ca_for_opr)prVar59->init_state_begbuf;\n    if ((re_dfa_t *)aVar45.sbcset == (re_dfa_t *)0x0) {\n      local_150.idx = 1;\n    }\n    else {\n      aVar4.idx = last_start;\n      if (((((prVar59->init_state->nodes).nelem == 0) &&\n           ((prVar59->init_state_word->nodes).nelem == 0)) &&\n          (((prVar59->init_state_nl->nodes).nelem == 0 || ((preg->field_0x1c & 1) == 0)))) &&\n         ((aVar4.idx = start, start != 0 &&\n          (start = last_start, aVar4.idx = last_start, last_start != 0)))) {\n        local_150.idx = 1;\n        aStack_1a0.idx = last_start;\n      }\n      else {\n        last_start = aVar4.idx;\n        aVar4.sbcset = (re_bitset_ptr_t)(nmatch - local_118);\n        if ((re_dfa_t *)aVar4.sbcset == (re_dfa_t *)0x0) {\n          paVar54 = (anon_union_4_5_a39f51ca_for_opr *)(uint)(prVar59->nbackref != 0);\n        }\n        else {\n          paVar54 = (anon_union_4_5_a39f51ca_for_opr *)0x1;\n        }\n        puVar50 = preg->translate;\n        mctx.input.icase = (uchar)((preg->syntax << 9) >> 0x1f);\n        mctx.input.mb_cur_max = prVar59->mb_cur_max;\n        aVar46.sbcset = (re_bitset_ptr_t)(prVar59->nodes_len + 1);\n        if (aVar46.idx < mctx.input.mb_cur_max) {\n          aVar46 = (anon_union_4_5_a39f51ca_for_opr)mctx.input.mb_cur_max;\n        }\n        aVar49.idx._0_3_ = 0;\n        aVar49.idx._3_1_ = ((re_bitset_ptr_t)(length + 1)).idx < aVar46.idx;\n        prVar51 = (re_dfa_t *)0x1;\n        mctx.input.mbs_allocated = mctx.input.icase;\n        if (puVar50 != (uchar *)0x0) {\n          mctx.input.mbs_allocated = 1;\n        }\n        mctx.input.is_utf8 = (uchar)((uint)(*(int *)&prVar59->field_0x58 << 2) >> 0x1f);\n        mctx.input.map_notascii = (uchar)((uint)(*(int *)&prVar59->field_0x58 << 3) >> 0x1f);\n        aVar45.sbcset = ((re_bitset_ptr_t)(length + 1)).sbcset;\n        if ((re_dfa_t *)aVar49.sbcset == (re_dfa_t *)0x0) {\n          aVar45 = aVar46;\n        }\n        mctx.input.raw_mbs = (uchar *)string;\n        mctx.input.raw_len = length;\n        mctx.input.len = length;\n        mctx.input.raw_stop = length;\n        mctx.input.stop = length;\n        mctx.input.trans = puVar50;\n        local_150.idx = re_string_realloc_buffers(&mctx.input,aVar45.idx);\n        aVar46.idx = start;\n        paVar18 = paVar54;\n        stop = stop;\n        if ((re_dfa_t *)local_150.sbcset != (re_dfa_t *)0x0) goto LAB_000557e4;\n        mctx.input.word_char = prVar59->word_char;\n        mctx.input.word_ops_used = (uchar)((uint)(*(int *)&prVar59->field_0x58 << 4) >> 0x1f);\n        paVar2 = (anon_union_4_5_a39f51ca_for_opr *)0x0;\n        mctx.input.valid_len = (Idx)paVar2;\n        if ((mctx.input.mbs_allocated == '\0') &&\n           (mctx.input.mbs = (uchar *)string, prVar59->mb_cur_max < 2)) {\n          mctx.input.valid_len = length;\n        }\n        mctx.input.stop = stop;\n        mctx.input.raw_stop = stop;\n        mctx.input.newline_anchor = (uchar)((uint)(*(int *)&preg->field_0x1c << 7) >> 0x1f);\n        iVar55 = prVar59->nbackref;\n        aVar56.idx = iVar55 * 2;\n        mctx.eflags = eflags;\n        mctx.match_last = -1;\n        mctx.input.valid_raw_len = mctx.input.valid_len;\n        if ((int)aVar56 < 1) {\nLAB_000559f0:\n          mctx.max_mb_elem_len = 1;\n          mctx.abkref_ents = aVar56.idx;\n          mctx.asub_tops = aVar56.idx;\n          if ((aVar4.sbcset < (re_dfa_t *)0x2) && ((prVar59->field_0x58 & 0x40) == 0)) {\n            mctx.state_log = (re_dfastate_t **)0x0;\nLAB_00055a40:\n            mctx.input.tip_context = 6;\n            if ((eflags & 1U) != 0) {\n              mctx.input.tip_context = 4;\n            }\n            aVar39.idx = 1;\n            aVar40.idx = start;\n            if (last_start < start) {\n              aVar39.idx = -1;\n              aVar40.idx = last_start;\n            }\n            aVar41.idx = last_start;\n            if (last_start <= start) {\n              aVar41.idx = start;\n            }\n            iVar55 = prVar59->mb_cur_max;\n            rVar20 = 8;\n            if ((re_dfa_t *)local_148.sbcset != (re_dfa_t *)0x0) {\n              if (iVar55 == 1) {\n                paVar43 = (anon_union_4_5_a39f51ca_for_opr *)0x4;\n              }\n              else {\n                paVar43 = paVar2;\n                if ((-1 < (int)(preg->syntax << 9)) && (puVar50 == (uchar *)0x0)) {\n                  paVar43 = (anon_union_4_5_a39f51ca_for_opr *)0x4;\n                }\n              }\n              aVar45.sbcset = (re_bitset_ptr_t)0x0;\n              if (start <= last_start) {\n                aVar45.idx = 2;\n              }\n              rVar20 = (uint)(puVar50 != (uchar *)0x0) | (uint)paVar43 | aVar45.ctx_type;\n            }\n            match_first = start;\n            if (start < aVar40.idx) {\n              local_150.idx = 1;\n              stop = aVar56.idx;\n            }\n            else {\n              aVar46.idx._0_3_ = 0;\n              aVar46.idx._3_1_ = last_start < start;\n              if (aVar41.idx < start) {\n                local_150.idx = 1;\n                stop = aVar56.idx;\n              }\n              else {\n                piVar38 = &match_first;\n                if ((re_dfa_t *)aVar46.sbcset != (re_dfa_t *)0x0) {\n                  piVar38 = (int *)0x0;\n                }\n                pcVar5 = (code *)(PTR_DAT_000799a4 + -0x2b7c);\n                piVar6 = (int *)(PTR_s_nt0_000795b8 + (rVar20 - 4) * 4 + 0x6e38);\nLAB_00055b44:\n                if (rVar20 - 4 < 5) {\n                    /* WARNING: Could not emulate address calculation at 0x00054920 */\n                    /* WARNING: Treating indirect jump as call */\n                  rVar21 = (*(code *)(&_gp + *piVar6))();\n                  return rVar21;\n                }\n                last_start = (Idx)&mctx;\n                prVar52 = prVar51;\n                while( true ) {\n                  aVar46.idx = match_first;\n                  uVar8 = match_first - mctx.input.raw_mbs_idx;\n                  aVar49 = (anon_union_4_5_a39f51ca_for_opr)eflags;\n                  paVar18 = paVar2;\n                  stop = local_148.idx;\n                  unaff_s4 = (re_dfa_t *)length;\n                  unaff_s5 = aVar39;\n                  unaff_s7 = aVar41;\n                  if ((uint)mctx.input.valid_raw_len <= uVar8) {\n                    aVar45.idx = match_first;\n                    local_150.sbcset = (re_bitset_ptr_t)(*pcVar5)(last_start);\n                    prVar51 = prVar52;\n                    if ((re_dfa_t *)local_150.sbcset != (re_dfa_t *)0x0) goto LAB_000557e4;\n                    uVar8 = (int)aVar46.sbcset - mctx.input.raw_mbs_idx;\n                  }\n                  if (aVar46.idx < length) {\n                    uVar8 = (uint)mctx.input.mbs[uVar8];\n                  }\n                  else {\n                    uVar8 = 0;\n                  }\n                  aVar56.sbcset = aVar46.sbcset + aVar39.sbcset;\n                  aVar46.sbcset = aVar56.sbcset;\n                  if (*(char *)((int)local_148.sbcset + uVar8) != '\0') break;\n                  prVar51 = prVar52;\n                  match_first = aVar56.idx;\n                  if (aVar56.idx < aVar40.idx) {\n                    local_150.idx = 1;\n                    goto LAB_000557e4;\n                  }\n                  aVar46.idx._0_3_ = 0;\n                  aVar46.idx._3_1_ = aVar41.idx < aVar56.idx;\n                  if ((re_dfa_t *)aVar46.sbcset != (re_dfa_t *)0x0) {\n                    local_150.idx = 1;\n                    goto LAB_000557e4;\n                  }\n                }\n                while( true ) {\n                  aVar45.idx = match_first;\n                  aVar49 = (anon_union_4_5_a39f51ca_for_opr)eflags;\n                  aVar7.sbcset = (re_bitset_ptr_t)(*pcVar5)(&mctx);\n                  aVar15 = (anon_union_4_5_a39f51ca_for_opr)mctx.dfa;\n                  aVar56.idx = mctx.input.cur_idx;\n                  prVar51 = prVar52;\n                  local_150.sbcset = aVar7.sbcset;\n                  if ((re_dfa_t *)aVar7.sbcset != (re_dfa_t *)0x0) goto LAB_000557e4;\n                  if (((iVar55 != 1) && (mctx.input.valid_len != 0)) &&\n                     (*mctx.input.wcs == 0xffffffff)) goto LAB_00055b1c;\n                  mctx.max_mb_elem_len = 0;\n                  mctx.nbkref_ents = 0;\n                  mctx.state_log_top = 0;\n                  local_138.idx = mctx.input.cur_idx;\n                  err = _REG_NOERROR;\n                  unaff_s7 = (anon_union_4_5_a39f51ca_for_opr)(mctx.dfa)->init_state;\n                  aVar49 = (anon_union_4_5_a39f51ca_for_opr)mctx.eflags;\n                  aVar46 = aVar15;\n                  if ((*(byte *)(unaff_s7.idx + 0x34) & 1) == 0) break;\n                  aVar45.sbcset = (re_bitset_ptr_t)(mctx.input.cur_idx + -1);\n                  prVar51 = (re_dfa_t *)re_string_context_at(&mctx.input,aVar45.idx,mctx.eflags);\n                  if (((uint)prVar51 & 1) == 0) {\n                    if (prVar51 == (re_dfa_t *)0x0) break;\n                    if (((uint)prVar51 & 6) == 6) {\n                      unaff_s7 = (anon_union_4_5_a39f51ca_for_opr)\n                                 ((re_dfa_t *)aVar15.idx)->init_state_begbuf;\n                      goto LAB_00054d1c;\n                    }\n                    if (((uint)prVar51 & 2) != 0) {\n                      unaff_s7 = (anon_union_4_5_a39f51ca_for_opr)\n                                 ((re_dfa_t *)aVar15.idx)->init_state_nl;\n                      goto LAB_00054d1c;\n                    }\n                    prVar52 = prVar51;\n                    if (((uint)prVar51 & 4) == 0) break;\n                    aVar49 = (anon_union_4_5_a39f51ca_for_opr)\n                             ((anon_union_4_5_a39f51ca_for_opr *)(unaff_s7.idx + 0x28))->mbcset;\n                    aVar45 = aVar15;\n                    unaff_s7.sbcset =\n                         &re_acquire_state_context\n                                    (&err,aVar15.sbcset,(re_node_set *)aVar49.mbcset,(uint)prVar51)\n                          ->hash;\n                    prVar52 = prVar51;\n                    if ((re_dfa_t *)unaff_s7.sbcset != (re_dfa_t *)0x0) break;\n                    if (err == _REG_ESPACE) goto LAB_00055914;\n                  }\n                  else {\n                    unaff_s7 = (anon_union_4_5_a39f51ca_for_opr)\n                               ((re_dfa_t *)aVar15.idx)->init_state_word;\nLAB_00054d1c:\n                    prVar52 = (re_dfa_t *)PTR_s_nt0_000795b8;\n                    if ((re_dfa_t *)unaff_s7.sbcset != (re_dfa_t *)0x0) break;\n                  }\n                  prVar52 = (re_dfa_t *)(PTR_s_nt0_000795b8 + 0x6eb0);\n                  aVar45.sbcset = (re_bitset_ptr_t)(PTR_s_nt0_000795b8 + 0x712c);\n                  match_first = (*(code *)PTR___assert_fail_000799f8)\n                                          (PTR_s_nt0_000795b8 + 0x71a0,aVar45.sbcset,0x435);\n                  if ((re_bitset_ptr_t)match_first == aVar41.sbcset) {\n                    if (match_first < length) {\n                      uVar8 = (uint)(byte)string[match_first];\n                    }\n                    else {\n                      uVar8 = 0;\n                    }\n                    if (puVar50 != (uchar *)0x0) {\n                      uVar8 = (uint)puVar50[uVar8];\n                    }\n                    if (*(char *)((int)local_148.sbcset + uVar8) == '\0') {\n                      local_150.idx = 1;\n                      aVar49 = (anon_union_4_5_a39f51ca_for_opr)eflags;\n                      prVar51 = prVar52;\n                      goto LAB_000557e4;\n                    }\n                  }\n                }\n                prVar51 = prVar52;\n                bVar36 = piVar38 != (int *)0x0;\n                if ((mctx.state_log == (re_dfastate_t **)0x0) ||\n                   (((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + aVar56.idx))->mbcset =\n                         (re_charset_t *)unaff_s7, ((re_dfa_t *)aVar15.idx)->nbackref == 0)) {\nLAB_00054d50:\n                  if ((int)*(bin_tree_t **)(unaff_s7.idx + 0x34) << 4 < 0) {\n                    if (((*(byte *)(unaff_s7.idx + 0x34) & 1) == 0) ||\n                       (aVar45 = unaff_s7, aVar49 = aVar56,\n                       IVar17 = check_halt_state_context(&mctx,unaff_s7.idx,aVar56.idx), IVar17 != 0\n                       )) {\n                      local_c4 = aVar56;\n                      if (paVar54 == (anon_union_4_5_a39f51ca_for_opr *)0x0) goto LAB_00055dbc;\n                      prVar52 = (re_dfa_t *)0x1;\n                    }\n                    else {\n                      aVar56.idx = -1;\n                      prVar52 = (re_dfa_t *)0x0;\n                    }\n                  }\n                  else {\n                    aVar56.idx = -1;\n                    prVar52 = (re_dfa_t *)0x0;\n                  }\n                  pcVar9 = (code *)(PTR_DAT_000799a4 + -0x7144);\n                  pcVar10 = (code *)(PTR_DAT_000799a4 + -0x1980);\n                  pcVar11 = (code *)(PTR_DAT_000799a4 + -0x2f9c);\n                  local_c4 = aVar56;\n                  local_144 = piVar38;\n                  while( true ) {\n                    uVar63 = CONCAT44(mctx.input.valid_len,mctx.input.len);\n                    unaff_s5.sbcset = (re_bitset_ptr_t)(mctx.input.cur_idx + 1);\n                    aVar45.idx = mctx.input.cur_idx;\n                    if (mctx.input.stop <= mctx.input.cur_idx) break;\n                    if ((mctx.input.bufs_len <= unaff_s5.idx) &&\n                       (mctx.input.bufs_len < mctx.input.len)) goto LAB_00054e94;\n                    if (mctx.input.valid_len <= unaff_s5.idx) {\n                      while ((int)((ulonglong)uVar63 >> 0x20) < (int)uVar63) {\nLAB_00054e94:\n                        aVar45.sbcset =\n                             (re_bitset_ptr_t)\n                             ((int)&((re_string_t *)&(aVar45.mbcset)->mbchars)->raw_mbs + 2);\n                        err = (*pcVar9)(&mctx);\n                        if (err == _REG_NOERROR) break;\n                        aVar15 = aVar46;\n                        if (err == _REG_ESPACE) goto LAB_00055914;\n                        prVar51 = (re_dfa_t *)(PTR_s_nt0_000795b8 + 0x6eb0);\n                        aVar49.idx = 0x46c;\n                        aVar45.sbcset = (re_bitset_ptr_t)(PTR_s_nt0_000795b8 + 0x712c);\n                        uVar63 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0);\n                        prVar52 = prVar59;\n                      }\n                    }\n                    prVar3 = mctx.dfa;\n                    if ((int)*(bin_tree_t **)(unaff_s7.idx + 0x34) << 5 < 0) {\n                      paVar18 = (anon_union_4_5_a39f51ca_for_opr *)prVar3;\n                      if (0 < (int)(unaff_s7.mbcset)->range_ends) {\n                        pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6fdc);\n                        pcVar13 = (code *)(PTR_DAT_000799a4 + -0x6ef0);\n                        stop = 0;\n                        do {\n                          last_start = ((anon_union_4_5_a39f51ca_for_opr *)\n                                       ((unaff_s7.mbcset)->char_classes + stop))->idx;\n                          prVar53 = prVar3->nodes;\n                          uVar8 = *(uint *)&prVar53[last_start].field_0x4;\n                          if ((uVar8 & 0x800) != 0) {\n                            if ((uVar8 & 0xffc000) != 0) {\n                              aVar45.idx = mctx.input.cur_idx;\n                              uVar60 = (*pcVar13)(&mctx,mctx.input.cur_idx,mctx.eflags);\n                              uVar8 = (uint)(*(int *)&prVar53[last_start].field_0x4 << 8) >> 0x16;\n                              if ((uVar8 & 4) == 0) {\n                                uVar26 = uVar60 & 1;\n                                if ((uVar8 & 8) != 0) goto joined_r0x00054f40;\n                              }\n                              else {\n                                uVar26 = uVar8 & 8;\n                                if ((uVar60 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                                if (uVar26 != 0) goto LAB_000550a4;\n                              }\n                              if ((((uVar8 & 0x20) != 0) && ((uVar60 & 2) == 0)) ||\n                                 (((uVar8 & 0x80) != 0 &&\n                                  (prVar51 = (re_dfa_t *)mctx.input.cur_idx, (uVar60 & 8) == 0))))\n                              goto LAB_000550a4;\n                            }\n                            aVar49.sbcset = (re_bitset_ptr_t)&mctx;\n                            aVar45.idx = last_start;\n                            prVar51 = (re_dfa_t *)mctx.input.cur_idx;\n                            iVar61 = (*pcVar11)(prVar3);\n                            if (iVar61 != 0) {\n                              aVar46.sbcset = (re_bitset_ptr_t)(iVar61 + mctx.input.cur_idx);\n                              if (iVar61 <= mctx.max_mb_elem_len) {\n                                iVar61 = mctx.max_mb_elem_len;\n                              }\n                              aVar45.sbcset = aVar46.sbcset;\n                              mctx.max_mb_elem_len = iVar61;\n                              err_1 = (*pcVar12)(&mctx);\n                              rVar21 = err_1;\n                              if (err_1 != _REG_NOERROR) goto LAB_00055e44;\n                              aVar49.sbcset =\n                                   (re_bitset_ptr_t)(prVar3->eclosures + prVar3->nexts[last_start]);\n                              unaff_s4 = (re_dfa_t *)(aVar46.idx * 4);\n                              last_start = (Idx)(mctx.state_log + aVar46.idx);\n                              if (*(bitset_word_t *)last_start == 0) {\n                                dest_nodes.alloc = *aVar49.sbcset;\n                                dest_nodes.nelem =\n                                     ((re_node_set *)&(aVar49.mbcset)->range_starts)->alloc;\n                                dest_nodes.elems = (aVar49.mbcset)->range_ends;\n                                prVar51 = (re_dfa_t *)\n                                          (*pcVar13)(&mctx,(undefined1 *)(aVar46.idx + -1),\n                                                     mctx.eflags);\n                                aVar49.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                                aVar45 = (anon_union_4_5_a39f51ca_for_opr)prVar3;\n                                prVar35 = re_acquire_state_context\n                                                    (&err_1,prVar3,(re_node_set *)aVar49.mbcset,\n                                                     (uint)prVar51);\n                                ((re_string_t *)&((re_charset_t *)last_start)->mbchars)->raw_mbs =\n                                     (uchar *)prVar35;\n                              }\n                              else {\n                                aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                                         ((anon_union_4_5_a39f51ca_for_opr *)\n                                         (*(bitset_word_t *)last_start + 0x28))->mbcset;\n                                err_1 = re_node_set_init_union\n                                                  (&dest_nodes,(re_node_set *)aVar45.mbcset,\n                                                   (re_node_set *)aVar49.mbcset);\n                                rVar21 = err_1;\n                                if (err_1 != _REG_NOERROR) goto LAB_00055e44;\n                                prVar51 = (re_dfa_t *)\n                                          (*pcVar13)(&mctx,(undefined1 *)(aVar46.idx + -1),\n                                                     mctx.eflags);\n                                pprVar14 = mctx.state_log + aVar46.idx;\n                                aVar49.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                                aVar45 = (anon_union_4_5_a39f51ca_for_opr)prVar3;\n                                prVar35 = re_acquire_state_context\n                                                    (&err_1,prVar3,(re_node_set *)aVar49.mbcset,\n                                                     (uint)prVar51);\n                                *pprVar14 = prVar35;\n                                (*(code *)PTR_free_00079c24)(dest_nodes.elems);\n                              }\n                              unaff_s4 = (re_dfa_t *)(mctx.state_log + aVar46.idx);\n                              if ((unaff_s4->nodes == (re_token_t *)0x0) &&\n                                 (rVar21 = err_1, err_1 != _REG_NOERROR)) goto LAB_00055e44;\n                            }\n                          }\nLAB_000550a4:\n                          stop = (int)&((re_string_t *)&((re_charset_t *)stop)->mbchars)->raw_mbs +\n                                 1;\n                        } while (stop < (int)(unaff_s7.mbcset)->range_ends);\n                      }\n                      err = _REG_NOERROR;\n                    }\n                    uVar8 = (uint)mctx.input.mbs[mctx.input.cur_idx];\n                    mctx.input.cur_idx = mctx.input.cur_idx + 1;\n                    do {\n                      if (*(re_dfastate_t **)(unaff_s7.idx + 0x2c) != (re_dfastate_t *)0x0) {\n                        aVar49 = (anon_union_4_5_a39f51ca_for_opr)\n                                 ((anon_union_4_5_a39f51ca_for_opr *)\n                                 (&(*(re_dfastate_t **)(unaff_s7.idx + 0x2c))->hash + uVar8))->\n                                 mbcset;\nLAB_000553a0:\n                        aVar15 = aVar49;\n                        if (mctx.state_log != (re_dfastate_t **)0x0) goto LAB_000553ac;\n                        goto LAB_000553cc;\n                      }\n                      paVar18 = *(anon_union_4_5_a39f51ca_for_opr **)(unaff_s7.idx + 0x30);\n                      if (paVar18 != (anon_union_4_5_a39f51ca_for_opr *)0x0) {\n                        aVar45.sbcset = (re_bitset_ptr_t)(mctx.input.cur_idx + -1);\n                        uVar60 = re_string_context_at(&mctx.input,aVar45.idx,mctx.eflags);\n                        if ((uVar60 & 1) == 0) {\n                          aVar49 = (anon_union_4_5_a39f51ca_for_opr)paVar18[uVar8].mbcset;\n                        }\n                        else {\n                          paVar18 = paVar18 + uVar8 + 0x100;\n                          aVar49 = (anon_union_4_5_a39f51ca_for_opr)paVar18->mbcset;\n                        }\n                        goto LAB_000553a0;\n                      }\n                      aVar45 = unaff_s7;\n                      aVar49 = (anon_union_4_5_a39f51ca_for_opr)mctx.eflags;\n                      iVar61 = (*pcVar10)(mctx.dfa);\n                    } while (iVar61 != 0);\n                    err = _REG_ESPACE;\n                    rVar21 = err;\nLAB_00055e44:\n                    err = rVar21;\n                    aVar46.sbcset = (re_bitset_ptr_t)0x0;\n                    if (mctx.state_log == (re_dfastate_t **)0x0) {\n                      aVar15.sbcset = aVar46.sbcset;\n                      if (err != _REG_NOERROR) goto LAB_00055914;\n                      break;\n                    }\n                    aVar49.sbcset = (re_bitset_ptr_t)0x0;\nLAB_000553ac:\n                    aVar45.sbcset = (re_bitset_ptr_t)&mctx;\n                    aVar15.sbcset =\n                         &merge_state_with_log\n                                    (&err,(re_match_context_t *)aVar45.mbcset,aVar49.sbcset)->hash;\nLAB_000553cc:\n                    aVar46 = aVar15;\n                    if ((re_dfa_t *)aVar15.sbcset == (re_dfa_t *)0x0) {\n                      if (err != _REG_NOERROR) goto LAB_00055914;\n                      if ((mctx.state_log == (re_dfastate_t **)0x0) ||\n                         ((prVar52 != (re_dfa_t *)0x0 &&\n                          (paVar54 == (anon_union_4_5_a39f51ca_for_opr *)0x0)))) break;\n                      stop = (Idx)&mctx;\n                      last_start = (Idx)&err;\n                      paVar18 = (anon_union_4_5_a39f51ca_for_opr *)(PTR_DAT_000799a4 + 0x3684);\n                      do {\n                        pprVar14 = mctx.state_log + mctx.input.cur_idx;\n                        IVar17 = mctx.input.cur_idx;\n                        do {\n                          IVar17 = IVar17 + 1;\n                          aVar45.idx = mctx.state_log_top;\n                          aVar46 = aVar15;\n                          if (mctx.state_log_top < IVar17) goto LAB_00055da8;\n                          mctx.input.cur_idx = mctx.input.cur_idx + 1;\n                          pprVar14 = pprVar14 + 1;\n                        } while (*pprVar14 == (re_dfastate_t *)0x0);\n                        aVar49.sbcset = (re_bitset_ptr_t)0x0;\n                        aVar45.sbcset = (re_bitset_ptr_t)stop;\n                        aVar46.sbcset = (re_bitset_ptr_t)(*(code *)paVar18)(last_start);\n                        if (err != _REG_NOERROR) {\n                          if ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0) goto LAB_00055da8;\n                          break;\n                        }\n                        aVar45.idx = mctx.state_log_top;\n                      } while ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0);\n                    }\n                    aVar16.ctx_type = unaff_s7.ctx_type ^ aVar46.ctx_type;\n                    aVar56 = unaff_s7;\n                    aVar15 = local_138;\n                    if ((bVar36) &&\n                       (aVar56.ctx_type = aVar16.ctx_type, aVar15.sbcset = unaff_s5.sbcset,\n                       (re_dfa_t *)aVar16.sbcset != (re_dfa_t *)0x0)) {\n                      bVar36 = false;\n                      aVar15 = local_138;\n                    }\n                    local_138 = aVar15;\n                    unaff_s7 = aVar46;\n                    if (((*(byte *)(aVar46.idx + 0x34) & 8) != 0) &&\n                       (((*(byte *)(aVar46.idx + 0x34) & 1) == 0 ||\n                        (aVar45 = aVar46, aVar49.idx = mctx.input.cur_idx,\n                        IVar17 = check_halt_state_context(&mctx,aVar46.idx,mctx.input.cur_idx),\n                        IVar17 != 0)))) {\n                      unaff_s7 = aVar56;\n                      local_c4.idx = mctx.input.cur_idx;\n                      if (paVar54 == (anon_union_4_5_a39f51ca_for_opr *)0x0) goto LAB_00055dbc;\n                      prVar52 = (re_dfa_t *)0x1;\n                      local_144 = (int *)0x0;\n                      unaff_s7 = aVar46;\n                    }\n                  }\nLAB_00055da8:\n                  if (local_144 != (int *)0x0) {\n                    *local_144 = *local_144 + (int)local_138.sbcset;\n                  }\n                }\n                else {\n                  aVar46.sbcset = (re_bitset_ptr_t)&(unaff_s7.mbcset)->range_starts;\n                  aVar49.sbcset = (re_bitset_ptr_t)0x0;\n                  aVar45 = aVar46;\n                  err = check_subexp_matching_top(&mctx,(re_node_set *)aVar46.mbcset,0);\n                  local_c4.idx = err;\n                  if ((re_dfa_t *)err == (re_dfa_t *)0x0) {\n                    if ((*(byte *)(unaff_s7.idx + 0x34) & 2) == 0) {\n                      aVar45 = aVar46;\n                      bVar36 = false;\n                    }\n                    else {\n                      aVar45 = aVar46;\n                      err = transit_state_bkref(&mctx,(re_node_set *)aVar46.mbcset);\n                      local_c4.idx = err;\n                      if ((re_dfa_t *)err != (re_dfa_t *)0x0) goto LAB_00055dbc;\n                      bVar36 = false;\n                    }\n                    goto LAB_00054d50;\n                  }\n                }\nLAB_00055dbc:\n                if ((re_dfa_t *)local_c4.sbcset == (re_dfa_t *)0xffffffff) {\nLAB_00055b04:\n                  match_ctx_clean(&mctx);\nLAB_00055b1c:\n                  match_first = aVar39.idx + match_first;\n                  if (aVar40.idx <= match_first) goto code_r0x00055b38;\n                  local_150.idx = 1;\n                  goto LAB_000557e4;\n                }\n                if ((re_dfa_t *)local_c4.sbcset == (re_dfa_t *)&SUB_fffffffe) {\n                  local_150.idx = 0xc;\n                  goto LAB_000557e4;\n                }\n                mctx.match_last = local_c4.idx;\n                if ((preg->field_0x1c & 8) == 0) {\n                  if (aVar4.sbcset < (re_dfa_t *)0x2) {\n                    if (prVar59->nbackref == 0) goto LAB_00055c08;\n                    aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                             ((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + local_c4.idx))->\n                             mbcset;\n                    aVar49 = local_c4;\n                    mctx.last_node =\n                         check_halt_state_context(&mctx,(re_dfastate_t *)aVar45.mbcset,local_c4.idx)\n                    ;\n                  }\n                  else {\n                    aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                             ((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + local_c4.idx))->\n                             mbcset;\n                    aVar49 = local_c4;\n                    mctx.last_node =\n                         check_halt_state_context(&mctx,(re_dfastate_t *)aVar45.mbcset,local_c4.idx)\n                    ;\n                  }\n                  if (aVar4.sbcset < (re_dfa_t *)0x2) {\nLAB_00055c6c:\n                    prVar52 = prVar51;\n                    unaff_s4 = mctx.dfa;\n                    if (prVar59->nbackref == 0) goto LAB_00055548;\n                  }\n                  else {\n                    cVar37 = prVar59->field_0x58;\nLAB_00055c20:\n                    prVar52 = prVar51;\n                    if (-1 < cVar37) goto LAB_00055c6c;\n                  }\n                  paVar18 = (anon_union_4_5_a39f51ca_for_opr *)mctx.last_node;\n                  prVar3 = mctx.dfa;\n                  unaff_s4 = prVar3;\n                  if ((uint)local_c4 < (re_dfa_t *)0x3fffffff) {\n                    aVar46.idx = (int)((int)&((re_string_t *)&(local_c4.mbcset)->mbchars)->raw_mbs +\n                                      1) * 4;\n                    unaff_s5.sbcset = (re_bitset_ptr_t)(*(code *)PTR_malloc_00079b54)(aVar46.sbcset)\n                    ;\n                    if ((re_dfa_t *)unaff_s5.sbcset == (re_dfa_t *)0x0) {\nLAB_00055b9c:\n                      (*(code *)PTR_free_00079c24)(unaff_s5.sbcset);\n                      local_150.idx = 0xc;\n                      prVar51 = prVar52;\n                    }\n                    else {\n                      aVar45.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                      if (prVar3->nbackref == 0) {\n                        dest_nodes.nelem = 0;\n                        dest_nodes.elems = &paVar18->idx;\n                        dest_nodes.alloc = (Idx)unaff_s5.sbcset;\n                        last_start = sift_states_backward(&mctx,(re_sift_context_t *)aVar45.mbcset);\n                        (*(code *)PTR_free_00079c24)(0);\n                        if ((re_dfa_t *)last_start == (re_dfa_t *)0x0) {\n                          aVar46.mbcset = (re_charset_t *)*unaff_s5.sbcset;\n                          if ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0) {\nLAB_00055b70:\n                            (*(code *)PTR_free_00079c24)(unaff_s5.sbcset);\n                            (*(code *)PTR_free_00079c24)(aVar46.sbcset);\n                            prVar51 = prVar52;\n                            goto LAB_00055b04;\n                          }\nLAB_00055528:\n                          (*(code *)PTR_free_00079c24)(mctx.state_log);\n                          prVar51 = prVar52;\n                          unaff_s4 = prVar3;\n                          mctx.match_last = local_c4.idx;\n                          mctx.last_node = (Idx)paVar18;\n                          mctx.state_log = (re_dfastate_t **)unaff_s5.sbcset;\n                          goto LAB_00055548;\n                        }\nLAB_00055acc:\n                        aVar46.sbcset = (re_bitset_ptr_t)0x0;\n                        prVar51 = prVar52;\n                        unaff_s4 = prVar3;\n                      }\n                      else {\n                        aVar46.sbcset =\n                             (re_bitset_ptr_t)(*(code *)PTR_malloc_00079b54)(aVar46.sbcset);\n                        if ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0) goto LAB_00055b9c;\n                        unaff_s7.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                        pcVar9 = (code *)(PTR_DAT_000799a4 + 0x421c);\n                        pcVar10 = (code *)(PTR_DAT_000799a4 + -0x6bc0);\n                        prVar51 = prVar52;\n                        while( true ) {\n                          prVar52 = (re_dfa_t *)(local_c4.idx + 1);\n                          stop = (int)prVar52 * 4;\n                          aVar49.idx = stop;\n                          (*(code *)PTR_memset_00079b00)(aVar46.sbcset,0);\n                          aVar45.sbcset = unaff_s7.sbcset;\n                          dest_nodes.alloc = (Idx)unaff_s5.sbcset;\n                          dest_nodes.nelem = (Idx)aVar46.sbcset;\n                          dest_nodes.elems = (Idx *)paVar18;\n                          last_start = (*pcVar9)(&mctx);\n                          (*(code *)PTR_free_00079c24)(0);\n                          unaff_s4 = prVar52;\n                          if ((re_dfa_t *)last_start != (re_dfa_t *)0x0) break;\n                          if ((*unaff_s5.sbcset != 0) || (stop = stop + -4, *aVar46.sbcset != 0)) {\n                            aVar45.sbcset = unaff_s5.sbcset;\n                            aVar49.sbcset = aVar46.sbcset;\n                            last_start = merge_state_array(prVar3,(re_dfastate_t **)unaff_s5.sbcset,\n                                                           (re_dfastate_t **)aVar46.sbcset,\n                                                           (Idx)prVar52);\n                            (*(code *)PTR_free_00079c24)(aVar46.sbcset);\n                            if ((re_dfa_t *)last_start != (re_dfa_t *)0x0) goto LAB_00055acc;\n                            goto LAB_00055528;\n                          }\n                          stop = (Idx)(mctx.state_log + (int)&prVar52[-1].lock.__align + 0x17);\n                          do {\n                            while( true ) {\n                              local_c4.sbcset = (re_bitset_ptr_t)(local_c4.idx + -1);\n                              if (local_c4.idx < 0) goto LAB_00055b70;\n                              aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                                       ((anon_union_4_5_a39f51ca_for_opr *)(stop + -4))->idx;\n                              if ((re_dfa_t *)aVar45.sbcset != (re_dfa_t *)0x0) break;\n                              stop = stop + -4;\n                            }\n                            stop = stop + -4;\n                          } while ((*(byte *)(aVar45.idx + 0x34) & 8) == 0);\n                          paVar18 = (anon_union_4_5_a39f51ca_for_opr *)\n                                    (*pcVar10)(&mctx,aVar45.sbcset,local_c4.sbcset);\n                          prVar51 = prVar52;\n                        }\n                      }\n                      (*(code *)PTR_free_00079c24)(unaff_s5.sbcset);\n                      (*(code *)PTR_free_00079c24)(aVar46.sbcset);\n                      local_150.idx = last_start;\n                      if ((re_dfa_t *)last_start == (re_dfa_t *)0x1) goto LAB_00055b04;\n                    }\n                  }\n                  else {\n                    local_150.idx = 0xc;\n                    prVar51 = prVar52;\n                  }\n                  goto LAB_000557e4;\n                }\n                if (prVar59->nbackref != 0) {\n                  aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                           ((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + local_c4.idx))->\n                           mbcset;\n                  aVar49 = local_c4;\n                  mctx.last_node =\n                       check_halt_state_context(&mctx,(re_dfastate_t *)aVar45.mbcset,local_c4.idx);\n                  goto LAB_00055c6c;\n                }\nLAB_00055c08:\n                if (((preg->field_0x1c & 8) == 0) && ((re_dfa_t *)0x1 < aVar4.sbcset)) {\n                  cVar37 = prVar59->field_0x58;\n                  goto LAB_00055c20;\n                }\nLAB_00055548:\n                if ((re_dfa_t *)aVar4.sbcset == (re_dfa_t *)0x0) goto LAB_000557e4;\n                if (aVar4.sbcset < (re_dfa_t *)0x2) {\n                  pmatch->rm_so = 0;\n                  pmatch->rm_eo = mctx.match_last;\n                  goto LAB_000555ac;\n                }\n                prVar19 = pmatch + 1;\n                do {\n                  prVar19->rm_eo = -1;\n                  prVar19->rm_so = -1;\n                  prVar19 = prVar19 + 1;\n                } while (prVar19 != pmatch + aVar4.idx);\n                pmatch->rm_so = 0;\n                pmatch->rm_eo = mctx.match_last;\n                if ((preg->field_0x1c & 8) != 0) {\nLAB_000555ac:\n                  prVar19 = pmatch;\n                  do {\n                    aVar45.sbcset = (re_bitset_ptr_t)prVar19->rm_so;\n                    if ((re_dfa_t *)aVar45.sbcset != (re_dfa_t *)0xffffffff) {\n                      if (mctx.input.offsets_needed != '\0') {\n                        rVar47 = mctx.input.valid_raw_len;\n                        if (aVar45.sbcset != (re_bitset_ptr_t)mctx.input.valid_len) {\n                          rVar47 = mctx.input.offsets[aVar45.idx];\n                        }\n                        prVar19->rm_so = rVar47;\n                        rVar47 = mctx.input.valid_raw_len;\n                        if (mctx.input.valid_len != prVar19->rm_eo) {\n                          rVar47 = mctx.input.offsets[prVar19->rm_eo];\n                        }\n                        prVar19->rm_eo = rVar47;\n                      }\n                      prVar19->rm_so = prVar19->rm_so + match_first;\n                      aVar45.sbcset = (re_bitset_ptr_t)(prVar19->rm_eo + match_first);\n                      prVar19->rm_eo = (regoff_t)aVar45;\n                    }\n                    prVar19 = prVar19 + 1;\n                  } while (prVar19 != pmatch + aVar4.idx);\n                  if (0 < local_118) {\n                    prVar19 = pmatch + aVar4.idx;\n                    do {\n                      prVar19->rm_so = -1;\n                      prVar19->rm_eo = -1;\n                      prVar19 = prVar19 + 1;\n                    } while (prVar19 != pmatch + nmatch);\n                  }\n                  aVar49.idx = match_first;\n                  prVar51 = (re_dfa_t *)pmatch;\n                  local_150.sbcset = aVar7.sbcset;\n                  if (prVar59->subexp_map != (Idx *)0x0) {\n                    aVar49.sbcset = (re_bitset_ptr_t)(aVar4.idx + -1);\n                    prVar52 = (re_dfa_t *)0x0;\n                    prVar19 = pmatch;\n                    while( true ) {\n                      aVar45.idx = (int)prVar52 * 4;\n                      if ((re_dfa_t *)aVar49.sbcset == prVar52) break;\n                      if ((re_dfa_t *)prVar59->subexp_map[(int)prVar52] != prVar52) {\n                        prVar19[1].rm_so =\n                             pmatch[(int)((int)&((re_string_t *)\n                                                &((re_dfa_t *)prVar59->subexp_map[(int)prVar52])->\n                                                 nodes)->raw_mbs + 1)].rm_so;\n                        prVar19[1].rm_eo = pmatch[prVar59->subexp_map[(int)prVar52] + 1].rm_eo;\n                      }\n                      prVar52 = (re_dfa_t *)((int)&((re_string_t *)&prVar52->nodes)->raw_mbs + 1);\n                      prVar19 = prVar19 + 1;\n                    }\n                  }\n                  goto LAB_000557e4;\n                }\n                if ((char)prVar59->field_0x58 < '\0') {\n                  bVar36 = 0 < prVar59->nbackref;\n                }\n                else {\n                  bVar36 = false;\n                }\n                aVar45.sbcset = (re_bitset_ptr_t)&mctx;\n                aVar49.sbcset = aVar4.sbcset;\n                prVar51 = (re_dfa_t *)pmatch;\n                local_150.idx =\n                     set_regs(preg,(re_match_context_t *)aVar45.mbcset,aVar4.ctx_type,pmatch,bVar36)\n                ;\n                if ((re_dfa_t *)local_150.sbcset == (re_dfa_t *)0x0) goto LAB_000555ac;\n              }\n            }\n          }\n          else if ((uint)mctx.input.bufs_len < 0x3fffffff) {\n            mctx.state_log =\n                 (re_dfastate_t **)(*(code *)PTR_malloc_00079b54)((mctx.input.bufs_len + 1) * 4);\n            if (mctx.state_log != (re_dfastate_t **)0x0) goto LAB_00055a40;\n            local_150.idx = 0xc;\n            stop = aVar56.idx;\n          }\n          else {\n            local_150.idx = 0xc;\n            stop = aVar56.idx;\n          }\n        }\n        else {\n          unaff_s5.idx = iVar55 * 8;\n          if (aVar56.sbcset < (re_dfa_t *)0xccccccd) {\n            unaff_s4 = (re_dfa_t *)(*(code *)PTR_malloc_00079b54)(iVar55 * 0x28);\n            mctx.bkref_ents = (re_backref_cache_entry *)unaff_s4;\n            mctx.sub_tops = (re_sub_match_top_t **)(*(code *)PTR_malloc_00079b54)(unaff_s5.sbcset);\n            if ((unaff_s4 != (re_dfa_t *)0x0) && (mctx.sub_tops != (re_sub_match_top_t **)0x0))\n            goto LAB_000559f0;\n          }\n          local_150.idx = 0xc;\n          stop = aVar56.idx;\n        }\nLAB_000557e4:\n        (*(code *)PTR_free_00079c24)(mctx.state_log);\n        preg = (regex_t *)aVar49;\n        if (prVar59->nbackref != 0) {\n          match_ctx_clean(&mctx);\n          (*(code *)PTR_free_00079c24)(mctx.sub_tops);\n          (*(code *)PTR_free_00079c24)(mctx.bkref_ents);\n          preg = (regex_t *)aVar49;\n        }\n        re_string_destruct(&mctx.input);\n        aStack_1a0 = aVar46;\n        paStack_19c = paVar18;\n      }\n    }\n  }\n  if ((re_dfa_t *)preg_00.sbcset == *(re_dfa_t **)PTR___stack_chk_guard_00079c10) {\n    return (reg_errcode_t)local_150.sbcset;\n  }\n  pcVar5 = re_compile_internal;\n  puVar62 = PTR___stack_chk_fail_00079bd0;\n  (*(code *)PTR___stack_chk_fail_00079bd0)();\n  pcStack_1a4 = (char *)**(undefined4 **)(puVar62 + 0x23dac);\n  rStack_20c = _REG_NOERROR;\n  bVar1 = *(byte *)&((re_node_set *)&(preg_00.mbcset)->nequiv_classes)->alloc;\n  (preg_00.mbcset)->char_classes = (wctype_t *)prVar51;\n  (preg_00.mbcset)->range_ends = (wchar_t *)0x0;\n  (preg_00.mbcset)->ncoll_syms = 0;\n  *(byte *)&((re_node_set *)&(preg_00.mbcset)->nequiv_classes)->alloc = bVar1 & 9;\n  aVar4.mbcset = (re_charset_t *)((re_string_t *)&(preg_00.mbcset)->mbchars)->raw_mbs;\n  aStack_198.idx = last_start;\n  aStack_194.idx = stop;\n  prStack_190 = unaff_s4;\n  aStack_18c = unaff_s5;\n  prStack_188 = prVar59;\n  aStack_184 = unaff_s7;\n  aStack_180 = local_c4;\n  pcStack_17c = pcVar5;\n  if ((uint)((re_node_set *)&(preg_00.mbcset)->range_starts)->alloc < 0xa0) {\n    aVar46.idx = 0xa0;\n    aVar49 = (anon_union_4_5_a39f51ca_for_opr)preg;\n    aVar4.sbcset = (re_bitset_ptr_t)(**(code **)(puVar62 + 0x23cf8))(aVar4.sbcset);\n    if ((re_dfa_t *)aVar4.sbcset == (re_dfa_t *)0x0) {\n      rVar21 = _REG_ESPACE;\n      goto LAB_00056cfc;\n    }\n    ((re_node_set *)&(preg_00.mbcset)->range_starts)->alloc = 0xa0;\n    ((re_string_t *)&(preg_00.mbcset)->mbchars)->raw_mbs = (uchar *)aVar4;\n  }\n  (preg_00.mbcset)->range_ends = (wchar_t *)0xa0;\n  aVar49.idx = 0xa0;\n  aVar46.sbcset = (re_bitset_ptr_t)0x0;\n  (**(code **)(puVar62 + 0x23c9c))(aVar4.sbcset);\n  *(int *)(aVar4.idx + 0x40) = 0x1f;\n  pwVar44 = (wchar_t *)((int)&((re_string_t *)&((re_charset_t *)preg)->mbchars)->raw_mbs + 1);\n  if (preg < (re_dfa_t *)0xaaaaaaa) {\n    (aVar4.mbcset)->range_starts = pwVar44;\n    bVar22 = (**(code **)(puVar62 + 0x23cf0))((int)pwVar44 * 8);\n    *aVar4.sbcset = bVar22;\n    if ((re_dfa_t *)preg == (re_dfa_t *)0x0) {\n      aVar56.idx = 1;\n    }\n    else {\n      aVar56.idx = 1;\n      do {\n        aVar56.ctx_type = aVar56.ctx_type << 1;\n      } while (aVar56.sbcset <= preg);\n    }\n    aVar46 = aVar56;\n    prVar23 = (re_state_table_entry *)(**(code **)(puVar62 + 0x23b8c))(0xc);\n    (aVar4.mbcset)->nranges = (Idx)prVar23;\n    *(undefined1 **)(aVar4.idx + 0x44) = (undefined1 *)(aVar56.idx + -1);\n    iVar55 = (**(code **)(puVar62 + 0x23d2c))();\n    *(int *)(aVar4.idx + 0x5c) = iVar55;\n    pbVar24 = (byte *)(**(code **)(puVar62 + 0x23c2c))(0xe);\n    if ((((*pbVar24 & 0xdf) == 0x55) && ((pbVar24[1] & 0xdf) == 0x54)) &&\n       (aVar46.idx = 4, (pbVar24[2] & 0xdf) == 0x46)) {\n      iVar55 = 3;\n      if (pbVar24[3] == 0x2d) {\n        iVar55 = 4;\n      }\n      aVar46.sbcset = (re_bitset_ptr_t)(*(int *)(puVar62 + 0x23754) + 0x71b4);\n      iVar55 = (**(code **)(puVar62 + 0x23dfc))(pbVar24 + iVar55);\n      if (iVar55 == 0) {\n        *(byte *)(aVar4.idx + 0x58) = *(byte *)(aVar4.idx + 0x58) & 0xdf | 0x20;\n      }\n    }\n    *(byte *)(aVar4.idx + 0x58) = *(byte *)(aVar4.idx + 0x58) & 0xef;\n    if (1 < *(int *)(aVar4.idx + 0x5c)) {\n      if ((*(byte *)(aVar4.idx + 0x58) & 0x20) == 0) {\n        aVar46.idx = 1;\n        pbVar25 = (re_bitset_ptr_t)(**(code **)(puVar62 + 0x23b8c))(0x20);\n        *(re_bitset_ptr_t *)(aVar4.idx + 0x3c) = pbVar25;\n        if (pbVar25 == (re_bitset_ptr_t)0x0) goto LAB_00056e5c;\n        iVar55 = 0;\n        do {\n          uVar8 = iVar55 << 3;\n          uVar60 = 0;\n          do {\n            uVar26 = (**(code **)(puVar62 + 0x23c88))(uVar8);\n            if (uVar26 != 0xffffffff) {\n              prVar42 = (re_context_type *)((int)*(re_bitset_ptr_t *)(aVar4.idx + 0x3c) + iVar55);\n              aVar46.ctx_type = *prVar42;\n              *prVar42 = aVar46.ctx_type | 1 << (uVar60 & 0x1f);\n            }\n            if (((uVar8 & 0xffffff80) == 0) && (uVar26 != uVar8)) {\n              *(byte *)(aVar4.idx + 0x58) = *(byte *)(aVar4.idx + 0x58) & 0xef | 0x10;\n            }\n            uVar60 = uVar60 + 1;\n            uVar8 = uVar8 + 1;\n          } while (uVar60 != 0x20);\n          iVar55 = iVar55 + 4;\n        } while (iVar55 != 0x20);\n      }\n      else {\n        *(re_bitset_ptr_t *)(aVar4.idx + 0x3c) =\n             (re_bitset_ptr_t)(*(int *)(puVar62 + 0x23754) + 0x6ee4);\n      }\n    }\n    if ((*aVar4.sbcset == 0) ||\n       ((re_state_table_entry *)(aVar4.mbcset)->nranges == (re_state_table_entry *)0x0))\n    goto LAB_00056e5c;\n    rStack_20c = _REG_NOERROR;\n    if (*(int *)(puVar62 + 0x23c78) == 0) {\nLAB_00056054:\n      uVar60 = ((anon_union_4_2_91654ee9_for___value *)&(preg_00.mbcset)->nmbchars)->__wch;\n      uVar8 = (uint)prVar51 & 0x400000;\n      bVar36 = uVar8 != 0;\n      aVar49.idx = 0x4c;\n      aVar46.sbcset = (re_bitset_ptr_t)0x0;\n      (**(code **)(puVar62 + 0x23c9c))(aaStack_1f4);\n      cStack_1ad = uVar60 != 0 || bVar36;\n      iStack_1a8 = *(int *)(aVar4.idx + 0x5c);\n      bStack_1af = (byte)((uint)(*(int *)(aVar4.idx + 0x58) << 2) >> 0x1f);\n      bStack_1ae = (byte)((uint)(*(int *)(aVar4.idx + 0x58) << 3) >> 0x1f);\n      aStack_1f8 = aVar45;\n      aStack_1cc = (anon_union_4_5_a39f51ca_for_opr)preg;\n      aStack_1c8 = (anon_union_4_5_a39f51ca_for_opr)preg;\n      aStack_1c4 = (anon_union_4_5_a39f51ca_for_opr)preg;\n      aStack_1c0 = (anon_union_4_5_a39f51ca_for_opr)preg;\n      uStack_1b8 = uVar60;\n      uStack_1b0 = bVar36;\n      if (0 < (int)preg) {\n        aVar46.sbcset = (re_bitset_ptr_t)((int)preg + 1);\n        rVar21 = re_string_realloc_buffers((re_string_t *)&aStack_1f8,aVar46.idx);\n        if (rVar21 == _REG_NOERROR) goto LAB_000560cc;\n        goto LAB_00056168;\n      }\nLAB_000560cc:\n      if (cStack_1ad != '\0') {\n        aVar45 = aaStack_1f4[0];\n      }\n      aaStack_1f4[0] = aVar45;\n      if (uVar8 == 0) {\n        if (*(int *)(aVar4.idx + 0x5c) < 2) {\n          if (uVar60 != 0) {\n            re_string_translate_buffer((re_string_t *)&aStack_1f8);\n          }\n        }\n        else {\n          build_wcs_buffer((re_string_t *)&aStack_1f8);\n        }\n      }\n      else {\n        if (1 < *(int *)(aVar4.idx + 0x5c)) {\n          iVar55 = *(int *)(puVar62 + 0x23abc);\n          do {\n            rVar21 = build_wcs_upper_buffer((re_string_t *)&aStack_1f8);\n            if (rVar21 != _REG_NOERROR) break;\n            if (((int)preg <= iStack_1d8) ||\n               (aVar46.ctx_type = iStack_1d4 << 1,\n               iStack_1dc + *(int *)(aVar4.idx + 0x5c) < iStack_1d4)) goto LAB_000563d0;\n            rVar21 = (*(code *)(iVar55 + 0x6d2c))(&aStack_1f8);\n          } while (rVar21 == _REG_NOERROR);\n          goto LAB_00056168;\n        }\n        build_upper_buffer((re_string_t *)&aStack_1f8);\n      }\nLAB_000563d0:\n      rStack_20c = _REG_NOERROR;\n      (preg_00.mbcset)->ncoll_syms = 0;\n      prVar59 = (re_dfa_t *)((re_string_t *)&(preg_00.mbcset)->mbchars)->raw_mbs;\n      prVar59->syntax = (reg_syntax_t)prVar51;\n      fetch_token((re_token_t *)&rStack_204,(re_string_t *)&aStack_1f8,(uint)prVar51 | 0x800000);\n      aVar46 = preg_00;\n      aVar45.sbcset =\n           (re_bitset_ptr_t)\n           parse_reg_exp((re_string_t *)&aStack_1f8,preg_00.sbcset,(re_token_t *)&rStack_204,\n                         (reg_syntax_t)prVar51,0,&rStack_20c);\n      if (rStack_20c == _REG_NOERROR) {\n        aVar49.sbcset = (re_bitset_ptr_t)0x0;\n        aVar46.sbcset = (re_bitset_ptr_t)0x0;\n        aVar56.mbcset =\n             (re_charset_t *)create_tree(prVar59,(bin_tree_t *)0x0,(bin_tree_t *)0x0,END_OF_RE);\n        aVar39.mbcset = aVar56.mbcset;\n        if ((re_dfa_t *)aVar45.sbcset != (re_dfa_t *)0x0) {\nLAB_000564b0:\n          aVar49 = aVar56;\n          aVar39.sbcset =\n               (re_bitset_ptr_t)\n               create_tree(prVar59,(bin_tree_t *)aVar45.mbcset,aVar56.sbcset,CONCAT);\n          aVar46 = aVar45;\n        }\n        if (((re_dfa_t *)aVar56.sbcset == (re_dfa_t *)0x0) ||\n           (pcVar5 = *(code **)(puVar62 + 0x23cf0), (re_dfa_t *)aVar39.sbcset == (re_dfa_t *)0x0)) {\n          rStack_20c = _REG_ESPACE;\n          goto LAB_000566f4;\n        }\n        ((anon_union_4_5_a39f51ca_for_opr *)(aVar4.idx + 0x34))->mbcset = (re_charset_t *)aVar39;\n        aVar45.mbcset = (re_charset_t *)*preg_00.sbcset;\n        iVar61 = ((re_node_set *)&(aVar45.mbcset)->range_starts)->alloc;\n        iVar55 = iVar61 << 2;\n        pwVar27 = (wctype_t *)(*pcVar5)(iVar55);\n        (aVar45.mbcset)->char_classes = pwVar27;\n        iVar55 = (**(code **)(puVar62 + 0x23cf0))(iVar55);\n        ((re_node_set *)(aVar45.idx + 0x10))->alloc = iVar55;\n        iVar61 = iVar61 * 0xc;\n        uVar60 = (**(code **)(puVar62 + 0x23cf0))(iVar61);\n        ((anon_union_4_2_91654ee9_for___value *)&(aVar45.mbcset)->nmbchars)->__wch = uVar60;\n        prVar28 = (re_node_set *)(**(code **)(puVar62 + 0x23cf0))(iVar61);\n        (aVar45.mbcset)->ncoll_syms = (Idx)prVar28;\n        if (pwVar27 == (wctype_t *)0x0) {\n          rVar21 = _REG_ESPACE;\n        }\n        else if (iVar55 == 0) {\n          rVar21 = _REG_ESPACE;\n        }\n        else if (uVar60 == 0) {\n          rVar21 = _REG_ESPACE;\n        }\n        else if (prVar28 == (re_node_set *)0x0) {\n          rVar21 = _REG_ESPACE;\n        }\n        else {\n          pprVar29 = (re_sub_match_top_t **)\n                     (**(code **)(puVar62 + 0x23cf0))((int)(preg_00.mbcset)->ncoll_syms << 2);\n          *(re_sub_match_top_t ***)(aVar45.idx + 0x84) = pprVar29;\n          if (pprVar29 != (re_sub_match_top_t **)0x0) {\n            prVar30 = (re_sub_match_top_t *)0x0;\n            if ((re_node_set *)(preg_00.mbcset)->ncoll_syms != (re_node_set *)0x0) {\n              do {\n                (*(re_sub_match_top_t ***)(aVar45.idx + 0x84))[(int)prVar30] = prVar30;\n                prVar30 = (re_sub_match_top_t *)((int)&prVar30->str_idx + 1);\n              } while (prVar30 < (re_sub_match_top_t *)(preg_00.mbcset)->ncoll_syms);\n            }\n            preorder(*(bin_tree_t **)(aVar45.idx + 0x34),\n                     (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)\n                     (*(int *)(puVar62 + 0x23abc) + 0x60e8),aVar45.sbcset);\n            prVar30 = (re_sub_match_top_t *)(preg_00.mbcset)->ncoll_syms;\n            if (prVar30 == (re_sub_match_top_t *)0x0) {\nLAB_00056704:\n              (**(code **)(puVar62 + 0x23dc0))(*(re_sub_match_top_t ***)(aVar45.idx + 0x84));\n              *(re_sub_match_top_t ***)(aVar45.idx + 0x84) = (re_sub_match_top_t **)0x0;\n            }\n            else {\n              pprVar29 = *(re_sub_match_top_t ***)(aVar45.idx + 0x84);\n              if (*pprVar29 == (re_sub_match_top_t *)0x0) {\n                prVar31 = (re_sub_match_top_t *)0x0;\n                do {\n                  pprVar29 = pprVar29 + 1;\n                  prVar31 = (re_sub_match_top_t *)((int)&prVar31->str_idx + 1);\n                  if (prVar30 == prVar31) {\n                    if (prVar30 == prVar31) goto LAB_00056704;\n                    break;\n                  }\n                } while (*pprVar29 == prVar31);\n              }\n            }\n          }\n          aVar46.sbcset = (re_bitset_ptr_t)(*(int *)(puVar62 + 0x23abc) + 0x73a4);\n          rVar21 = postorder(*(bin_tree_t **)(aVar45.idx + 0x34),\n                             (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar46.sbcset,\n                             preg_00.sbcset);\n          aVar49.mbcset = aVar45.mbcset;\n          if (rVar21 == _REG_NOERROR) {\n            aVar46.sbcset = (re_bitset_ptr_t)(*(int *)(puVar62 + 0x23b40) + -0x5be4);\n            rVar21 = postorder(*(bin_tree_t **)(aVar45.idx + 0x34),\n                               (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar46.sbcset,\n                               aVar45.sbcset);\n            if (rVar21 == _REG_NOERROR) {\n              preorder(*(bin_tree_t **)(aVar45.idx + 0x34),\n                       (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)\n                       (*(int *)(puVar62 + 0x23abc) + 0x61b4),aVar45.sbcset);\n              aVar46.sbcset = (re_bitset_ptr_t)(*(int *)(puVar62 + 0x23b40) + -0x4614);\n              rVar21 = preorder(*(bin_tree_t **)(aVar45.idx + 0x34),\n                                (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar46.sbcset,\n                                aVar45.sbcset);\n              if (rVar21 == _REG_NOERROR) {\n                uVar60 = 0;\n                iVar55 = *(int *)(puVar62 + 0x23b40);\n                aVar56.sbcset = (re_bitset_ptr_t)0x0;\nLAB_00056744:\n                if ((re_dfa_t *)(aVar45.mbcset)->range_ends != (re_dfa_t *)aVar56.sbcset) {\nLAB_00056750:\n                  if (((re_node_set *)(aVar45.mbcset)->ncoll_syms)[aVar56.idx].nelem == 0) {\n                    aVar46.mbcset = aVar45.mbcset;\n                    aVar49 = aVar56;\n                    rVar21 = (*(code *)(iVar55 + -0x561c))\n                                       (&rStack_204,aVar45.sbcset,aVar56.sbcset,1);\n                    if (rVar21 != _REG_NOERROR) goto LAB_00056168;\n                    if (((re_node_set *)(aVar45.mbcset)->ncoll_syms)[aVar56.idx].nelem == 0) {\n                      (**(code **)(puVar62 + 0x23dc0))(rStack_204.elems);\n                      uVar60 = 1;\n                    }\n                  }\n                  aVar56.sbcset =\n                       (re_bitset_ptr_t)\n                       ((int)&((re_string_t *)&(aVar56.mbcset)->mbchars)->raw_mbs + 1);\n                  goto LAB_00056744;\n                }\n                if (uVar60 != 0) {\n                  uVar60 = 0;\n                  aVar56.sbcset = (re_bitset_ptr_t)0x0;\n                  goto LAB_00056750;\n                }\n                if ((((((re_node_set *)&(preg_00.mbcset)->nequiv_classes)->alloc & 0x8000000) == 0)\n                    && ((re_node_set *)(preg_00.mbcset)->ncoll_syms != (re_node_set *)0x0)) &&\n                   (*(char *)(aVar45.idx + 0x58) < '\0')) {\n                  pwVar57 = (wint_t *)(aVar45.mbcset)->range_ends;\n                }\n                else {\n                  if (*(Idx *)(aVar45.idx + 0x4c) == 0) goto LAB_000568f0;\n                  pwVar57 = (wint_t *)(aVar45.mbcset)->range_ends;\n                }\n                iVar55 = (**(code **)(puVar62 + 0x23cf0))((int)pwVar57 * 0xc);\n                ((re_node_set *)&(aVar45.mbcset)->nequiv_classes)->alloc = iVar55;\n                if (iVar55 == 0) {\n                  rVar21 = _REG_ESPACE;\n                  goto LAB_00056168;\n                }\n                if (pwVar57 != (wint_t *)0x0) {\n                  iVar55 = 0;\n                  uVar26 = 0;\n                  do {\n                    puVar32 = (undefined1 *)\n                              (((re_node_set *)&(aVar45.mbcset)->nequiv_classes)->alloc + iVar55);\n                    *puVar32 = 0;\n                    puVar32[1] = 0;\n                    puVar32[2] = 0;\n                    puVar32[3] = 0;\n                    puVar32[4] = 0;\n                    puVar32[5] = 0;\n                    puVar32[6] = 0;\n                    puVar32[7] = 0;\n                    puVar32[8] = 0;\n                    puVar32[9] = 0;\n                    puVar32[10] = 0;\n                    puVar32[0xb] = 0;\n                    uVar26 = uVar26 + 1;\n                    iVar55 = iVar55 + 0xc;\n                  } while (uVar26 < (aVar45.mbcset)->range_ends);\n                  iVar55 = *(int *)(puVar62 + 0x23abc);\n                  if ((wint_t *)(aVar45.mbcset)->range_ends != (wint_t *)0x0) {\n                    iVar61 = 0;\n                    aStack_218.sbcset = (re_bitset_ptr_t)0x0;\n                    do {\n                      piVar38 = *(int **)((int)&((re_node_set *)(aVar45.mbcset)->ncoll_syms)->elems\n                                         + iVar61);\n                      if (0 < *(int *)((int)&((re_node_set *)(aVar45.mbcset)->ncoll_syms)->nelem +\n                                      iVar61)) {\n                        iVar58 = 0;\n                        do {\n                          aVar46 = aStack_218;\n                          iVar33 = (*(code *)(iVar55 + 0x6e30))\n                                             (((re_node_set *)&(aVar45.mbcset)->nequiv_classes)->\n                                              alloc + *piVar38 * 0xc);\n                          rVar21 = _REG_ESPACE;\n                          if (iVar33 == 0) goto LAB_00056168;\n                          iVar58 = iVar58 + 1;\n                          piVar38 = piVar38 + 1;\n                        } while (iVar58 < *(int *)((int)&((re_node_set *)(aVar45.mbcset)->ncoll_syms\n                                                         )->nelem + iVar61));\n                      }\n                      aStack_218.sbcset =\n                           (re_bitset_ptr_t)\n                           ((int)&((re_string_t *)&(aStack_218.mbcset)->mbchars)->raw_mbs + 1);\n                      iVar61 = iVar61 + 0xc;\n                    } while (aStack_218.sbcset < (re_dfa_t *)(aVar45.mbcset)->range_ends);\n                  }\n                }\nLAB_000568f0:\n                rStack_20c = _REG_NOERROR;\n                if ((((*(byte *)(aVar4.idx + 0x58) & 0x20) != 0) && (uVar8 == 0)) &&\n                   (((anon_union_4_2_91654ee9_for___value *)&(preg_00.mbcset)->nmbchars)->__wch == 0\n                   )) {\n                  if ((aVar4.mbcset)->range_ends != (wchar_t *)0x0) {\n                    aVar49.sbcset = (re_bitset_ptr_t)(*(int *)(puVar62 + 0x23754) + 0x6e4c);\n                    if (*(byte *)(*aVar4.sbcset + 4) < 0xd) {\n                    /* WARNING: Could not recover jumptable at 0x00056a60. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      rVar21 = (*(code *)(puVar62 +\n                                         aVar49.sbcset[*(byte *)(*aVar4.sbcset + 4)] + 0x2b71c))();\n                      return rVar21;\n                    }\n                    (**(code **)(puVar62 + 0x23bc4))(0);\n                    if (uVar60 != 0) {\n                      aVar49.idx = (Idx)&DAT_00000007;\n                      uVar8 = 0;\n                      do {\n                        prVar53 = (re_token_t *)(aVar4.mbcset)->mbchars + uVar8;\n                        if (prVar53->field_0x4 == '\x01') {\n                          if ((char)(prVar53->opr).c < '\0') {\n                            *(uint *)&prVar53->field_0x4 = *(uint *)&prVar53->field_0x4 & 0xfffffbff\n                            ;\n                          }\n                        }\n                        else if (prVar53->field_0x4 == '\x05') {\n                          prVar53->field_0x4 = 7;\n                        }\n                        uVar8 = uVar8 + 1;\n                      } while (uVar8 < (aVar4.mbcset)->range_ends);\n                    }\n                  }\n                  *(int *)(aVar4.idx + 0x5c) = 1;\n                  if (0 < *(Idx *)(aVar4.idx + 0x4c)) {\n                    uVar60 = 1;\n                  }\n                  *(byte *)(aVar4.idx + 0x58) =\n                       *(byte *)(aVar4.idx + 0x58) & 0x9f | (byte)((uVar60 & 1) << 6);\n                }\n                iVar55 = (*(bin_tree_t **)(aVar4.idx + 0x34))->first->node_idx;\n                *(int *)(aVar4.idx + 0x48) = iVar55;\n                aVar46.sbcset =\n                     (re_bitset_ptr_t)((re_node_set *)(aVar4.mbcset)->ncoll_syms + iVar55);\n                rVar34 = re_node_set_init_copy(&rStack_204,(re_node_set *)aVar46.mbcset);\n                rVar21 = rVar34;\n                rStack_208 = rVar34;\n                if (rVar34 == _REG_NOERROR) {\n                  if ((0 < *(Idx *)(aVar4.idx + 0x4c)) && (_REG_NOERROR < rStack_204.nelem)) {\n                    iVar55 = *(int *)(puVar62 + 0x23abc);\n                    iVar61 = *(int *)(puVar62 + 0x23abc);\n                    rVar21 = _REG_NOERROR;\n                    do {\n                      aVar49.sbcset =\n                           (re_bitset_ptr_t)\n                           ((re_token_t *)(aVar4.mbcset)->mbchars + rStack_204.elems[rVar21]);\n                      if (*(char *)&((re_node_set *)&(aVar49.mbcset)->range_starts)->alloc == '\x04'\n                         ) {\n                        rVar48 = _REG_NOERROR;\n                        piVar38 = rStack_204.elems;\n                        if (rStack_204.nelem < _REG_NOMATCH) {\nLAB_00056b8c:\n                          if (rStack_204.nelem != rVar48) {\n                            iVar33 = *((re_node_set *)(aVar4.mbcset)->nmbchars)\n                                      [rStack_204.elems[rVar21]].elems;\n                            iVar58 = (*(code *)(iVar55 + 0x5ea8))(&rStack_204,iVar33);\n                            if (iVar58 == 0) {\n                              aVar46.sbcset =\n                                   (re_bitset_ptr_t)\n                                   ((re_node_set *)(aVar4.mbcset)->ncoll_syms + iVar33);\n                              rVar21 = (*(code *)(iVar61 + 0x7f1c))(&rStack_204);\n                              if (rVar21 != _REG_NOERROR) goto LAB_00056cb8;\n                            }\n                          }\n                        }\n                        else {\n                          do {\n                            prVar53 = (re_token_t *)(aVar4.mbcset)->mbchars + *piVar38;\n                            if ((prVar53->field_0x4 == '\t') &&\n                               ((prVar53->opr).sbcset == (re_bitset_ptr_t)*aVar49.sbcset))\n                            goto LAB_00056b8c;\n                            rVar48 = rVar48 + _REG_NOMATCH;\n                            piVar38 = piVar38 + 1;\n                          } while (rStack_204.nelem != rVar48);\n                        }\n                      }\n                      rVar21 = rVar21 + _REG_NOMATCH;\n                    } while (rVar21 < rStack_204.nelem);\n                  }\n                  aVar49.sbcset = (re_bitset_ptr_t)&rStack_204;\n                  aVar46 = aVar4;\n                  prVar35 = re_acquire_state_context\n                                      (&rStack_208,(re_dfa_t *)aVar4.mbcset,\n                                       (re_node_set *)aVar49.mbcset,0);\n                  (aVar4.mbcset)->nchar_classes = (Idx)prVar35;\n                  rVar21 = rStack_208;\n                  if (prVar35 != (re_dfastate_t *)0x0) {\n                    if ((prVar35->field_0x34 & 1) == 0) {\n                      *(re_dfastate_t **)(aVar4.idx + 0x30) = prVar35;\n                      *(re_dfastate_t **)(aVar4.idx + 0x2c) = prVar35;\n                      *(re_dfastate_t **)(aVar4.idx + 0x28) = prVar35;\n                    }\n                    else {\n                      aVar49.sbcset = (re_bitset_ptr_t)&rStack_204;\n                      prVar35 = re_acquire_state_context\n                                          (&rStack_208,(re_dfa_t *)aVar4.mbcset,\n                                           (re_node_set *)aVar49.mbcset,1);\n                      *(re_dfastate_t **)(aVar4.idx + 0x28) = prVar35;\n                      prVar35 = re_acquire_state_context\n                                          (&rStack_208,(re_dfa_t *)aVar4.mbcset,\n                                           (re_node_set *)aVar49.mbcset,2);\n                      *(re_dfastate_t **)(aVar4.idx + 0x2c) = prVar35;\n                      aVar46 = aVar4;\n                      prVar35 = re_acquire_state_context\n                                          (&rStack_208,(re_dfa_t *)aVar4.mbcset,\n                                           (re_node_set *)aVar49.mbcset,6);\n                      *(re_dfastate_t **)(aVar4.idx + 0x30) = prVar35;\n                      rVar21 = rStack_208;\n                      if (((*(re_dfastate_t **)(aVar4.idx + 0x28) == (re_dfastate_t *)0x0) ||\n                          (*(re_dfastate_t **)(aVar4.idx + 0x2c) == (re_dfastate_t *)0x0)) ||\n                         (prVar35 == (re_dfastate_t *)0x0)) goto LAB_00056cb8;\n                    }\n                    (**(code **)(puVar62 + 0x23dc0))(rStack_204.elems);\n                    rVar21 = rVar34;\n                  }\n                }\nLAB_00056cb8:\n                rStack_20c = rVar21;\n                free_workarea_compile((regex_t *)preg_00.mbcset);\n                re_string_destruct((re_string_t *)&aStack_1f8);\n                rVar21 = rStack_20c;\n                if (rStack_20c != _REG_NOERROR) {\n                  if (*(int *)(puVar62 + 0x23c78) != 0) {\n                    (**(code **)(puVar62 + 0x23df0))((pthread_mutex_t *)(aVar4.idx + 0x88));\n                  }\n                  free_dfa_content((re_dfa_t *)aVar4.mbcset);\n                  *preg_00.sbcset = 0;\n                  ((re_node_set *)&(preg_00.mbcset)->range_starts)->alloc = 0;\n                  rVar21 = rStack_20c;\n                }\n                goto LAB_00056cfc;\n              }\n            }\n          }\n        }\n      }\n      else {\n        aVar49.sbcset = (re_bitset_ptr_t)0x0;\n        if ((re_dfa_t *)aVar45.sbcset != (re_dfa_t *)0x0) {\n          aVar56.mbcset =\n               (re_charset_t *)create_tree(prVar59,(bin_tree_t *)0x0,(bin_tree_t *)0x0,END_OF_RE);\n          goto LAB_000564b0;\n        }\nLAB_000566f4:\n        *(bin_tree_t **)(aVar4.idx + 0x34) = (bin_tree_t *)0x0;\n        rVar21 = rStack_20c;\n      }\nLAB_00056168:\n      rStack_20c = rVar21;\n      free_workarea_compile((regex_t *)preg_00.mbcset);\n      re_string_destruct((re_string_t *)&aStack_1f8);\n      if (*(int *)(puVar62 + 0x23c78) != 0) {\n        (**(code **)(puVar62 + 0x23df0))((pthread_mutex_t *)(aVar4.idx + 0x88));\n      }\n      free_dfa_content((re_dfa_t *)aVar4.mbcset);\n      *preg_00.sbcset = 0;\n      ((re_node_set *)&(preg_00.mbcset)->range_starts)->alloc = 0;\n      rVar21 = rStack_20c;\n      goto LAB_00056cfc;\n    }\n    aVar46.sbcset = (re_bitset_ptr_t)0x0;\n    iVar55 = (**(code **)(puVar62 + 0x23d98))((pthread_mutex_t *)(aVar4.idx + 0x88));\n    if (iVar55 != 0) goto LAB_00056e5c;\n    if (rStack_20c == _REG_NOERROR) goto LAB_00056054;\n  }\n  else {\nLAB_00056e5c:\n    rStack_20c = _REG_ESPACE;\n  }\n  free_dfa_content((re_dfa_t *)aVar4.mbcset);\n  *preg_00.sbcset = 0;\n  ((re_node_set *)&(preg_00.mbcset)->range_starts)->alloc = 0;\n  rVar21 = rStack_20c;\nLAB_00056cfc:\n  if (pcStack_1a4 == (char *)**(int **)(puVar62 + 0x23dac)) {\n    return rVar21;\n  }\n  pcVar5 = *(code **)(puVar62 + 0x23d6c);\n  pattern = pcStack_1a4;\n  (*pcVar5)();\n  syntax = **(reg_syntax_t **)(pcVar5 + 0x22b18);\n  *(byte *)&((re_node_set *)&(aVar49.mbcset)->nequiv_classes)->alloc =\n       *(byte *)&((re_node_set *)&(aVar49.mbcset)->nequiv_classes)->alloc & 0xf6 |\n       (byte)(((syntax << 6) >> 0x1f) << 3) | 1;\n  rVar21 = re_compile_internal((regex_t *)aVar49.mbcset,pattern,aVar46.ctx_type,syntax);\n  if (rVar21 == _REG_NOERROR) {\n    rVar21 = _REG_NOERROR;\n  }\n  else {\n    rVar21 = (**(code **)(pcVar5 + 0x22d48))\n                       (0,*(int *)(pcVar5 + 0x22728) + 0x6f48 +\n                          *(int *)(rVar21 * 4 + *(int *)(pcVar5 + 0x22728) + 0x6f04),5);\n  }\n  return rVar21;\ncode_r0x00055b38:\n  if (aVar41.idx < match_first) goto LAB_000557a8;\n  goto LAB_00055b44;\nLAB_000557a8:\n  local_150.idx = 1;\n  goto LAB_000557e4;\nLAB_00055914:\n  local_150.idx = 0xc;\n  aVar46 = aVar15;\n  goto LAB_000557e4;\n}" type_identifier (function_declarator "re_search_internal(regex_t *preg,char *string,Idx length,Idx start,Idx last_start,Idx stop,\n                  size_t nmatch,regmatch_t *pmatch,int eflags)" identifier (parameter_list "(regex_t *preg,char *string,Idx length,Idx start,Idx last_start,Idx stop,\n                  size_t nmatch,regmatch_t *pmatch,int eflags)" ( (parameter_declaration "regex_t *preg" type_identifier (pointer_declarator "*preg" * identifier)) , (parameter_declaration "char *string" primitive_type (pointer_declarator "*string" * identifier)) , (parameter_declaration "Idx length" type_identifier identifier) , (parameter_declaration "Idx start" type_identifier identifier) , (parameter_declaration "Idx last_start" type_identifier identifier) , (parameter_declaration "Idx stop" type_identifier identifier) , (parameter_declaration "size_t nmatch" primitive_type identifier) , (parameter_declaration "regmatch_t *pmatch" type_identifier (pointer_declarator "*pmatch" * identifier)) , (parameter_declaration "int eflags" primitive_type identifier) ))) (compound_statement "{\n  byte bVar1;\n  anon_union_4_5_a39f51ca_for_opr *paVar2;\n  re_dfa_t *prVar3;\n  anon_union_4_5_a39f51ca_for_opr preg_00;\n  anon_union_4_5_a39f51ca_for_opr aVar4;\n  code *pcVar5;\n  int *piVar6;\n  anon_union_4_5_a39f51ca_for_opr aVar7;\n  uint uVar8;\n  code *pcVar9;\n  code *pcVar10;\n  code *pcVar11;\n  code *pcVar12;\n  code *pcVar13;\n  re_dfastate_t **pprVar14;\n  anon_union_4_5_a39f51ca_for_opr aVar15;\n  anon_union_4_5_a39f51ca_for_opr aVar16;\n  Idx IVar17;\n  anon_union_4_5_a39f51ca_for_opr *paVar18;\n  bool bVar36;\n  regmatch_t *prVar19;\n  re_context_type rVar20;\n  reg_errcode_t rVar21;\n  char cVar37;\n  bitset_word_t bVar22;\n  re_state_table_entry *prVar23;\n  byte *pbVar24;\n  re_bitset_ptr_t pbVar25;\n  uint uVar26;\n  wctype_t *pwVar27;\n  re_node_set *prVar28;\n  re_sub_match_top_t **pprVar29;\n  re_sub_match_top_t *prVar30;\n  re_sub_match_top_t *prVar31;\n  undefined1 *puVar32;\n  int iVar33;\n  reg_errcode_t rVar34;\n  re_dfastate_t *prVar35;\n  int *piVar38;\n  anon_union_4_5_a39f51ca_for_opr aVar39;\n  anon_union_4_5_a39f51ca_for_opr aVar40;\n  anon_union_4_5_a39f51ca_for_opr aVar41;\n  re_context_type *prVar42;\n  anon_union_4_5_a39f51ca_for_opr *paVar43;\n  wchar_t *pwVar44;\n  char *pattern;\n  anon_union_4_5_a39f51ca_for_opr aVar45;\n  anon_union_4_5_a39f51ca_for_opr aVar46;\n  regoff_t rVar47;\n  reg_errcode_t rVar48;\n  anon_union_4_5_a39f51ca_for_opr aVar49;\n  uchar *puVar50;\n  re_dfa_t *prVar51;\n  re_dfa_t *prVar52;\n  reg_syntax_t syntax;\n  re_token_t *prVar53;\n  anon_union_4_5_a39f51ca_for_opr *paVar54;\n  int iVar55;\n  anon_union_4_5_a39f51ca_for_opr aVar56;\n  wint_t *pwVar57;\n  re_dfa_t *unaff_s4;\n  int iVar58;\n  anon_union_4_5_a39f51ca_for_opr unaff_s5;\n  re_dfa_t *prVar59;\n  uint uVar60;\n  anon_union_4_5_a39f51ca_for_opr unaff_s7;\n  int iVar61;\n  undefined *puVar62;\n  anon_union_4_5_a39f51ca_for_opr unaff_s8;\n  undefined8 uVar63;\n  anon_union_4_5_a39f51ca_for_opr aStack_218;\n  reg_errcode_t rStack_20c;\n  reg_errcode_t rStack_208;\n  re_node_set rStack_204;\n  anon_union_4_5_a39f51ca_for_opr aStack_1f8;\n  anon_union_4_5_a39f51ca_for_opr aaStack_1f4 [6];\n  int iStack_1dc;\n  int iStack_1d8;\n  int iStack_1d4;\n  anon_union_4_5_a39f51ca_for_opr aStack_1cc;\n  anon_union_4_5_a39f51ca_for_opr aStack_1c8;\n  anon_union_4_5_a39f51ca_for_opr aStack_1c4;\n  anon_union_4_5_a39f51ca_for_opr aStack_1c0;\n  uint uStack_1b8;\n  undefined1 uStack_1b0;\n  byte bStack_1af;\n  byte bStack_1ae;\n  char cStack_1ad;\n  int iStack_1a8;\n  char *pcStack_1a4;\n  anon_union_4_5_a39f51ca_for_opr aStack_1a0;\n  anon_union_4_5_a39f51ca_for_opr *paStack_19c;\n  anon_union_4_5_a39f51ca_for_opr aStack_198;\n  anon_union_4_5_a39f51ca_for_opr aStack_194;\n  re_dfa_t *prStack_190;\n  anon_union_4_5_a39f51ca_for_opr aStack_18c;\n  re_dfa_t *prStack_188;\n  anon_union_4_5_a39f51ca_for_opr aStack_184;\n  anon_union_4_5_a39f51ca_for_opr aStack_180;\n  code *pcStack_17c;\n  anon_union_4_5_a39f51ca_for_opr local_150;\n  anon_union_4_5_a39f51ca_for_opr local_148;\n  int *local_144;\n  anon_union_4_5_a39f51ca_for_opr local_138;\n  int local_118;\n  Idx match_first;\n  reg_errcode_t err;\n  reg_errcode_t err_1;\n  re_node_set dest_nodes;\n  anon_union_4_5_a39f51ca_for_opr local_c4;\n  re_match_context_t mctx;\n  \n  preg_00 = *(anon_union_4_5_a39f51ca_for_opr *)PTR___stack_chk_guard_00079c10;\n  prVar59 = preg->buffer;\n  aVar45.sbcset = (re_bitset_ptr_t)0x0;\n  prVar51 = (re_dfa_t *)start;\n  (*(code *)PTR_memset_00079b00)(&mctx,0,0x88);\n  local_148 = (anon_union_4_5_a39f51ca_for_opr)preg->fastmap;\n  if ((re_dfa_t *)local_148.sbcset != (re_dfa_t *)0x0) {\n    if ((preg->field_0x1c & 0x10) == 0) {\n      local_148.sbcset = (re_bitset_ptr_t)0x0;\n    }\n    else if (start == last_start) {\n      local_148.sbcset = (re_bitset_ptr_t)0x0;\n    }\n    else if ((char)preg->field_0x1c < '\0') {\n      local_148.sbcset = (re_bitset_ptr_t)0x0;\n    }\n  }\n  if (preg->re_nsub < nmatch) {\n    local_118 = (nmatch - 1) - preg->re_nsub;\n  }\n  else {\n    local_118 = 0;\n  }\n  aStack_1a0.idx = start;\n  paStack_19c = (anon_union_4_5_a39f51ca_for_opr *)preg;\n  local_c4 = unaff_s8;\n  mctx.dfa = prVar59;\n  if (preg->used == 0) {\n    local_150.idx = 1;\n  }\n  else if (prVar59->init_state == (re_dfastate_t *)0x0) {\n    local_150.idx = 1;\n  }\n  else if (prVar59->init_state_word == (re_dfastate_t *)0x0) {\n    local_150.idx = 1;\n  }\n  else if (prVar59->init_state_nl == (re_dfastate_t *)0x0) {\n    local_150.idx = 1;\n  }\n  else {\n    aVar45 = (anon_union_4_5_a39f51ca_for_opr)prVar59->init_state_begbuf;\n    if ((re_dfa_t *)aVar45.sbcset == (re_dfa_t *)0x0) {\n      local_150.idx = 1;\n    }\n    else {\n      aVar4.idx = last_start;\n      if (((((prVar59->init_state->nodes).nelem == 0) &&\n           ((prVar59->init_state_word->nodes).nelem == 0)) &&\n          (((prVar59->init_state_nl->nodes).nelem == 0 || ((preg->field_0x1c & 1) == 0)))) &&\n         ((aVar4.idx = start, start != 0 &&\n          (start = last_start, aVar4.idx = last_start, last_start != 0)))) {\n        local_150.idx = 1;\n        aStack_1a0.idx = last_start;\n      }\n      else {\n        last_start = aVar4.idx;\n        aVar4.sbcset = (re_bitset_ptr_t)(nmatch - local_118);\n        if ((re_dfa_t *)aVar4.sbcset == (re_dfa_t *)0x0) {\n          paVar54 = (anon_union_4_5_a39f51ca_for_opr *)(uint)(prVar59->nbackref != 0);\n        }\n        else {\n          paVar54 = (anon_union_4_5_a39f51ca_for_opr *)0x1;\n        }\n        puVar50 = preg->translate;\n        mctx.input.icase = (uchar)((preg->syntax << 9) >> 0x1f);\n        mctx.input.mb_cur_max = prVar59->mb_cur_max;\n        aVar46.sbcset = (re_bitset_ptr_t)(prVar59->nodes_len + 1);\n        if (aVar46.idx < mctx.input.mb_cur_max) {\n          aVar46 = (anon_union_4_5_a39f51ca_for_opr)mctx.input.mb_cur_max;\n        }\n        aVar49.idx._0_3_ = 0;\n        aVar49.idx._3_1_ = ((re_bitset_ptr_t)(length + 1)).idx < aVar46.idx;\n        prVar51 = (re_dfa_t *)0x1;\n        mctx.input.mbs_allocated = mctx.input.icase;\n        if (puVar50 != (uchar *)0x0) {\n          mctx.input.mbs_allocated = 1;\n        }\n        mctx.input.is_utf8 = (uchar)((uint)(*(int *)&prVar59->field_0x58 << 2) >> 0x1f);\n        mctx.input.map_notascii = (uchar)((uint)(*(int *)&prVar59->field_0x58 << 3) >> 0x1f);\n        aVar45.sbcset = ((re_bitset_ptr_t)(length + 1)).sbcset;\n        if ((re_dfa_t *)aVar49.sbcset == (re_dfa_t *)0x0) {\n          aVar45 = aVar46;\n        }\n        mctx.input.raw_mbs = (uchar *)string;\n        mctx.input.raw_len = length;\n        mctx.input.len = length;\n        mctx.input.raw_stop = length;\n        mctx.input.stop = length;\n        mctx.input.trans = puVar50;\n        local_150.idx = re_string_realloc_buffers(&mctx.input,aVar45.idx);\n        aVar46.idx = start;\n        paVar18 = paVar54;\n        stop = stop;\n        if ((re_dfa_t *)local_150.sbcset != (re_dfa_t *)0x0) goto LAB_000557e4;\n        mctx.input.word_char = prVar59->word_char;\n        mctx.input.word_ops_used = (uchar)((uint)(*(int *)&prVar59->field_0x58 << 4) >> 0x1f);\n        paVar2 = (anon_union_4_5_a39f51ca_for_opr *)0x0;\n        mctx.input.valid_len = (Idx)paVar2;\n        if ((mctx.input.mbs_allocated == '\0') &&\n           (mctx.input.mbs = (uchar *)string, prVar59->mb_cur_max < 2)) {\n          mctx.input.valid_len = length;\n        }\n        mctx.input.stop = stop;\n        mctx.input.raw_stop = stop;\n        mctx.input.newline_anchor = (uchar)((uint)(*(int *)&preg->field_0x1c << 7) >> 0x1f);\n        iVar55 = prVar59->nbackref;\n        aVar56.idx = iVar55 * 2;\n        mctx.eflags = eflags;\n        mctx.match_last = -1;\n        mctx.input.valid_raw_len = mctx.input.valid_len;\n        if ((int)aVar56 < 1) {\nLAB_000559f0:\n          mctx.max_mb_elem_len = 1;\n          mctx.abkref_ents = aVar56.idx;\n          mctx.asub_tops = aVar56.idx;\n          if ((aVar4.sbcset < (re_dfa_t *)0x2) && ((prVar59->field_0x58 & 0x40) == 0)) {\n            mctx.state_log = (re_dfastate_t **)0x0;\nLAB_00055a40:\n            mctx.input.tip_context = 6;\n            if ((eflags & 1U) != 0) {\n              mctx.input.tip_context = 4;\n            }\n            aVar39.idx = 1;\n            aVar40.idx = start;\n            if (last_start < start) {\n              aVar39.idx = -1;\n              aVar40.idx = last_start;\n            }\n            aVar41.idx = last_start;\n            if (last_start <= start) {\n              aVar41.idx = start;\n            }\n            iVar55 = prVar59->mb_cur_max;\n            rVar20 = 8;\n            if ((re_dfa_t *)local_148.sbcset != (re_dfa_t *)0x0) {\n              if (iVar55 == 1) {\n                paVar43 = (anon_union_4_5_a39f51ca_for_opr *)0x4;\n              }\n              else {\n                paVar43 = paVar2;\n                if ((-1 < (int)(preg->syntax << 9)) && (puVar50 == (uchar *)0x0)) {\n                  paVar43 = (anon_union_4_5_a39f51ca_for_opr *)0x4;\n                }\n              }\n              aVar45.sbcset = (re_bitset_ptr_t)0x0;\n              if (start <= last_start) {\n                aVar45.idx = 2;\n              }\n              rVar20 = (uint)(puVar50 != (uchar *)0x0) | (uint)paVar43 | aVar45.ctx_type;\n            }\n            match_first = start;\n            if (start < aVar40.idx) {\n              local_150.idx = 1;\n              stop = aVar56.idx;\n            }\n            else {\n              aVar46.idx._0_3_ = 0;\n              aVar46.idx._3_1_ = last_start < start;\n              if (aVar41.idx < start) {\n                local_150.idx = 1;\n                stop = aVar56.idx;\n              }\n              else {\n                piVar38 = &match_first;\n                if ((re_dfa_t *)aVar46.sbcset != (re_dfa_t *)0x0) {\n                  piVar38 = (int *)0x0;\n                }\n                pcVar5 = (code *)(PTR_DAT_000799a4 + -0x2b7c);\n                piVar6 = (int *)(PTR_s_nt0_000795b8 + (rVar20 - 4) * 4 + 0x6e38);\nLAB_00055b44:\n                if (rVar20 - 4 < 5) {\n                    /* WARNING: Could not emulate address calculation at 0x00054920 */\n                    /* WARNING: Treating indirect jump as call */\n                  rVar21 = (*(code *)(&_gp + *piVar6))();\n                  return rVar21;\n                }\n                last_start = (Idx)&mctx;\n                prVar52 = prVar51;\n                while( true ) {\n                  aVar46.idx = match_first;\n                  uVar8 = match_first - mctx.input.raw_mbs_idx;\n                  aVar49 = (anon_union_4_5_a39f51ca_for_opr)eflags;\n                  paVar18 = paVar2;\n                  stop = local_148.idx;\n                  unaff_s4 = (re_dfa_t *)length;\n                  unaff_s5 = aVar39;\n                  unaff_s7 = aVar41;\n                  if ((uint)mctx.input.valid_raw_len <= uVar8) {\n                    aVar45.idx = match_first;\n                    local_150.sbcset = (re_bitset_ptr_t)(*pcVar5)(last_start);\n                    prVar51 = prVar52;\n                    if ((re_dfa_t *)local_150.sbcset != (re_dfa_t *)0x0) goto LAB_000557e4;\n                    uVar8 = (int)aVar46.sbcset - mctx.input.raw_mbs_idx;\n                  }\n                  if (aVar46.idx < length) {\n                    uVar8 = (uint)mctx.input.mbs[uVar8];\n                  }\n                  else {\n                    uVar8 = 0;\n                  }\n                  aVar56.sbcset = aVar46.sbcset + aVar39.sbcset;\n                  aVar46.sbcset = aVar56.sbcset;\n                  if (*(char *)((int)local_148.sbcset + uVar8) != '\0') break;\n                  prVar51 = prVar52;\n                  match_first = aVar56.idx;\n                  if (aVar56.idx < aVar40.idx) {\n                    local_150.idx = 1;\n                    goto LAB_000557e4;\n                  }\n                  aVar46.idx._0_3_ = 0;\n                  aVar46.idx._3_1_ = aVar41.idx < aVar56.idx;\n                  if ((re_dfa_t *)aVar46.sbcset != (re_dfa_t *)0x0) {\n                    local_150.idx = 1;\n                    goto LAB_000557e4;\n                  }\n                }\n                while( true ) {\n                  aVar45.idx = match_first;\n                  aVar49 = (anon_union_4_5_a39f51ca_for_opr)eflags;\n                  aVar7.sbcset = (re_bitset_ptr_t)(*pcVar5)(&mctx);\n                  aVar15 = (anon_union_4_5_a39f51ca_for_opr)mctx.dfa;\n                  aVar56.idx = mctx.input.cur_idx;\n                  prVar51 = prVar52;\n                  local_150.sbcset = aVar7.sbcset;\n                  if ((re_dfa_t *)aVar7.sbcset != (re_dfa_t *)0x0) goto LAB_000557e4;\n                  if (((iVar55 != 1) && (mctx.input.valid_len != 0)) &&\n                     (*mctx.input.wcs == 0xffffffff)) goto LAB_00055b1c;\n                  mctx.max_mb_elem_len = 0;\n                  mctx.nbkref_ents = 0;\n                  mctx.state_log_top = 0;\n                  local_138.idx = mctx.input.cur_idx;\n                  err = _REG_NOERROR;\n                  unaff_s7 = (anon_union_4_5_a39f51ca_for_opr)(mctx.dfa)->init_state;\n                  aVar49 = (anon_union_4_5_a39f51ca_for_opr)mctx.eflags;\n                  aVar46 = aVar15;\n                  if ((*(byte *)(unaff_s7.idx + 0x34) & 1) == 0) break;\n                  aVar45.sbcset = (re_bitset_ptr_t)(mctx.input.cur_idx + -1);\n                  prVar51 = (re_dfa_t *)re_string_context_at(&mctx.input,aVar45.idx,mctx.eflags);\n                  if (((uint)prVar51 & 1) == 0) {\n                    if (prVar51 == (re_dfa_t *)0x0) break;\n                    if (((uint)prVar51 & 6) == 6) {\n                      unaff_s7 = (anon_union_4_5_a39f51ca_for_opr)\n                                 ((re_dfa_t *)aVar15.idx)->init_state_begbuf;\n                      goto LAB_00054d1c;\n                    }\n                    if (((uint)prVar51 & 2) != 0) {\n                      unaff_s7 = (anon_union_4_5_a39f51ca_for_opr)\n                                 ((re_dfa_t *)aVar15.idx)->init_state_nl;\n                      goto LAB_00054d1c;\n                    }\n                    prVar52 = prVar51;\n                    if (((uint)prVar51 & 4) == 0) break;\n                    aVar49 = (anon_union_4_5_a39f51ca_for_opr)\n                             ((anon_union_4_5_a39f51ca_for_opr *)(unaff_s7.idx + 0x28))->mbcset;\n                    aVar45 = aVar15;\n                    unaff_s7.sbcset =\n                         &re_acquire_state_context\n                                    (&err,aVar15.sbcset,(re_node_set *)aVar49.mbcset,(uint)prVar51)\n                          ->hash;\n                    prVar52 = prVar51;\n                    if ((re_dfa_t *)unaff_s7.sbcset != (re_dfa_t *)0x0) break;\n                    if (err == _REG_ESPACE) goto LAB_00055914;\n                  }\n                  else {\n                    unaff_s7 = (anon_union_4_5_a39f51ca_for_opr)\n                               ((re_dfa_t *)aVar15.idx)->init_state_word;\nLAB_00054d1c:\n                    prVar52 = (re_dfa_t *)PTR_s_nt0_000795b8;\n                    if ((re_dfa_t *)unaff_s7.sbcset != (re_dfa_t *)0x0) break;\n                  }\n                  prVar52 = (re_dfa_t *)(PTR_s_nt0_000795b8 + 0x6eb0);\n                  aVar45.sbcset = (re_bitset_ptr_t)(PTR_s_nt0_000795b8 + 0x712c);\n                  match_first = (*(code *)PTR___assert_fail_000799f8)\n                                          (PTR_s_nt0_000795b8 + 0x71a0,aVar45.sbcset,0x435);\n                  if ((re_bitset_ptr_t)match_first == aVar41.sbcset) {\n                    if (match_first < length) {\n                      uVar8 = (uint)(byte)string[match_first];\n                    }\n                    else {\n                      uVar8 = 0;\n                    }\n                    if (puVar50 != (uchar *)0x0) {\n                      uVar8 = (uint)puVar50[uVar8];\n                    }\n                    if (*(char *)((int)local_148.sbcset + uVar8) == '\0') {\n                      local_150.idx = 1;\n                      aVar49 = (anon_union_4_5_a39f51ca_for_opr)eflags;\n                      prVar51 = prVar52;\n                      goto LAB_000557e4;\n                    }\n                  }\n                }\n                prVar51 = prVar52;\n                bVar36 = piVar38 != (int *)0x0;\n                if ((mctx.state_log == (re_dfastate_t **)0x0) ||\n                   (((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + aVar56.idx))->mbcset =\n                         (re_charset_t *)unaff_s7, ((re_dfa_t *)aVar15.idx)->nbackref == 0)) {\nLAB_00054d50:\n                  if ((int)*(bin_tree_t **)(unaff_s7.idx + 0x34) << 4 < 0) {\n                    if (((*(byte *)(unaff_s7.idx + 0x34) & 1) == 0) ||\n                       (aVar45 = unaff_s7, aVar49 = aVar56,\n                       IVar17 = check_halt_state_context(&mctx,unaff_s7.idx,aVar56.idx), IVar17 != 0\n                       )) {\n                      local_c4 = aVar56;\n                      if (paVar54 == (anon_union_4_5_a39f51ca_for_opr *)0x0) goto LAB_00055dbc;\n                      prVar52 = (re_dfa_t *)0x1;\n                    }\n                    else {\n                      aVar56.idx = -1;\n                      prVar52 = (re_dfa_t *)0x0;\n                    }\n                  }\n                  else {\n                    aVar56.idx = -1;\n                    prVar52 = (re_dfa_t *)0x0;\n                  }\n                  pcVar9 = (code *)(PTR_DAT_000799a4 + -0x7144);\n                  pcVar10 = (code *)(PTR_DAT_000799a4 + -0x1980);\n                  pcVar11 = (code *)(PTR_DAT_000799a4 + -0x2f9c);\n                  local_c4 = aVar56;\n                  local_144 = piVar38;\n                  while( true ) {\n                    uVar63 = CONCAT44(mctx.input.valid_len,mctx.input.len);\n                    unaff_s5.sbcset = (re_bitset_ptr_t)(mctx.input.cur_idx + 1);\n                    aVar45.idx = mctx.input.cur_idx;\n                    if (mctx.input.stop <= mctx.input.cur_idx) break;\n                    if ((mctx.input.bufs_len <= unaff_s5.idx) &&\n                       (mctx.input.bufs_len < mctx.input.len)) goto LAB_00054e94;\n                    if (mctx.input.valid_len <= unaff_s5.idx) {\n                      while ((int)((ulonglong)uVar63 >> 0x20) < (int)uVar63) {\nLAB_00054e94:\n                        aVar45.sbcset =\n                             (re_bitset_ptr_t)\n                             ((int)&((re_string_t *)&(aVar45.mbcset)->mbchars)->raw_mbs + 2);\n                        err = (*pcVar9)(&mctx);\n                        if (err == _REG_NOERROR) break;\n                        aVar15 = aVar46;\n                        if (err == _REG_ESPACE) goto LAB_00055914;\n                        prVar51 = (re_dfa_t *)(PTR_s_nt0_000795b8 + 0x6eb0);\n                        aVar49.idx = 0x46c;\n                        aVar45.sbcset = (re_bitset_ptr_t)(PTR_s_nt0_000795b8 + 0x712c);\n                        uVar63 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0);\n                        prVar52 = prVar59;\n                      }\n                    }\n                    prVar3 = mctx.dfa;\n                    if ((int)*(bin_tree_t **)(unaff_s7.idx + 0x34) << 5 < 0) {\n                      paVar18 = (anon_union_4_5_a39f51ca_for_opr *)prVar3;\n                      if (0 < (int)(unaff_s7.mbcset)->range_ends) {\n                        pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6fdc);\n                        pcVar13 = (code *)(PTR_DAT_000799a4 + -0x6ef0);\n                        stop = 0;\n                        do {\n                          last_start = ((anon_union_4_5_a39f51ca_for_opr *)\n                                       ((unaff_s7.mbcset)->char_classes + stop))->idx;\n                          prVar53 = prVar3->nodes;\n                          uVar8 = *(uint *)&prVar53[last_start].field_0x4;\n                          if ((uVar8 & 0x800) != 0) {\n                            if ((uVar8 & 0xffc000) != 0) {\n                              aVar45.idx = mctx.input.cur_idx;\n                              uVar60 = (*pcVar13)(&mctx,mctx.input.cur_idx,mctx.eflags);\n                              uVar8 = (uint)(*(int *)&prVar53[last_start].field_0x4 << 8) >> 0x16;\n                              if ((uVar8 & 4) == 0) {\n                                uVar26 = uVar60 & 1;\n                                if ((uVar8 & 8) != 0) goto joined_r0x00054f40;\n                              }\n                              else {\n                                uVar26 = uVar8 & 8;\n                                if ((uVar60 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                                if (uVar26 != 0) goto LAB_000550a4;\n                              }\n                              if ((((uVar8 & 0x20) != 0) && ((uVar60 & 2) == 0)) ||\n                                 (((uVar8 & 0x80) != 0 &&\n                                  (prVar51 = (re_dfa_t *)mctx.input.cur_idx, (uVar60 & 8) == 0))))\n                              goto LAB_000550a4;\n                            }\n                            aVar49.sbcset = (re_bitset_ptr_t)&mctx;\n                            aVar45.idx = last_start;\n                            prVar51 = (re_dfa_t *)mctx.input.cur_idx;\n                            iVar61 = (*pcVar11)(prVar3);\n                            if (iVar61 != 0) {\n                              aVar46.sbcset = (re_bitset_ptr_t)(iVar61 + mctx.input.cur_idx);\n                              if (iVar61 <= mctx.max_mb_elem_len) {\n                                iVar61 = mctx.max_mb_elem_len;\n                              }\n                              aVar45.sbcset = aVar46.sbcset;\n                              mctx.max_mb_elem_len = iVar61;\n                              err_1 = (*pcVar12)(&mctx);\n                              rVar21 = err_1;\n                              if (err_1 != _REG_NOERROR) goto LAB_00055e44;\n                              aVar49.sbcset =\n                                   (re_bitset_ptr_t)(prVar3->eclosures + prVar3->nexts[last_start]);\n                              unaff_s4 = (re_dfa_t *)(aVar46.idx * 4);\n                              last_start = (Idx)(mctx.state_log + aVar46.idx);\n                              if (*(bitset_word_t *)last_start == 0) {\n                                dest_nodes.alloc = *aVar49.sbcset;\n                                dest_nodes.nelem =\n                                     ((re_node_set *)&(aVar49.mbcset)->range_starts)->alloc;\n                                dest_nodes.elems = (aVar49.mbcset)->range_ends;\n                                prVar51 = (re_dfa_t *)\n                                          (*pcVar13)(&mctx,(undefined1 *)(aVar46.idx + -1),\n                                                     mctx.eflags);\n                                aVar49.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                                aVar45 = (anon_union_4_5_a39f51ca_for_opr)prVar3;\n                                prVar35 = re_acquire_state_context\n                                                    (&err_1,prVar3,(re_node_set *)aVar49.mbcset,\n                                                     (uint)prVar51);\n                                ((re_string_t *)&((re_charset_t *)last_start)->mbchars)->raw_mbs =\n                                     (uchar *)prVar35;\n                              }\n                              else {\n                                aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                                         ((anon_union_4_5_a39f51ca_for_opr *)\n                                         (*(bitset_word_t *)last_start + 0x28))->mbcset;\n                                err_1 = re_node_set_init_union\n                                                  (&dest_nodes,(re_node_set *)aVar45.mbcset,\n                                                   (re_node_set *)aVar49.mbcset);\n                                rVar21 = err_1;\n                                if (err_1 != _REG_NOERROR) goto LAB_00055e44;\n                                prVar51 = (re_dfa_t *)\n                                          (*pcVar13)(&mctx,(undefined1 *)(aVar46.idx + -1),\n                                                     mctx.eflags);\n                                pprVar14 = mctx.state_log + aVar46.idx;\n                                aVar49.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                                aVar45 = (anon_union_4_5_a39f51ca_for_opr)prVar3;\n                                prVar35 = re_acquire_state_context\n                                                    (&err_1,prVar3,(re_node_set *)aVar49.mbcset,\n                                                     (uint)prVar51);\n                                *pprVar14 = prVar35;\n                                (*(code *)PTR_free_00079c24)(dest_nodes.elems);\n                              }\n                              unaff_s4 = (re_dfa_t *)(mctx.state_log + aVar46.idx);\n                              if ((unaff_s4->nodes == (re_token_t *)0x0) &&\n                                 (rVar21 = err_1, err_1 != _REG_NOERROR)) goto LAB_00055e44;\n                            }\n                          }\nLAB_000550a4:\n                          stop = (int)&((re_string_t *)&((re_charset_t *)stop)->mbchars)->raw_mbs +\n                                 1;\n                        } while (stop < (int)(unaff_s7.mbcset)->range_ends);\n                      }\n                      err = _REG_NOERROR;\n                    }\n                    uVar8 = (uint)mctx.input.mbs[mctx.input.cur_idx];\n                    mctx.input.cur_idx = mctx.input.cur_idx + 1;\n                    do {\n                      if (*(re_dfastate_t **)(unaff_s7.idx + 0x2c) != (re_dfastate_t *)0x0) {\n                        aVar49 = (anon_union_4_5_a39f51ca_for_opr)\n                                 ((anon_union_4_5_a39f51ca_for_opr *)\n                                 (&(*(re_dfastate_t **)(unaff_s7.idx + 0x2c))->hash + uVar8))->\n                                 mbcset;\nLAB_000553a0:\n                        aVar15 = aVar49;\n                        if (mctx.state_log != (re_dfastate_t **)0x0) goto LAB_000553ac;\n                        goto LAB_000553cc;\n                      }\n                      paVar18 = *(anon_union_4_5_a39f51ca_for_opr **)(unaff_s7.idx + 0x30);\n                      if (paVar18 != (anon_union_4_5_a39f51ca_for_opr *)0x0) {\n                        aVar45.sbcset = (re_bitset_ptr_t)(mctx.input.cur_idx + -1);\n                        uVar60 = re_string_context_at(&mctx.input,aVar45.idx,mctx.eflags);\n                        if ((uVar60 & 1) == 0) {\n                          aVar49 = (anon_union_4_5_a39f51ca_for_opr)paVar18[uVar8].mbcset;\n                        }\n                        else {\n                          paVar18 = paVar18 + uVar8 + 0x100;\n                          aVar49 = (anon_union_4_5_a39f51ca_for_opr)paVar18->mbcset;\n                        }\n                        goto LAB_000553a0;\n                      }\n                      aVar45 = unaff_s7;\n                      aVar49 = (anon_union_4_5_a39f51ca_for_opr)mctx.eflags;\n                      iVar61 = (*pcVar10)(mctx.dfa);\n                    } while (iVar61 != 0);\n                    err = _REG_ESPACE;\n                    rVar21 = err;\nLAB_00055e44:\n                    err = rVar21;\n                    aVar46.sbcset = (re_bitset_ptr_t)0x0;\n                    if (mctx.state_log == (re_dfastate_t **)0x0) {\n                      aVar15.sbcset = aVar46.sbcset;\n                      if (err != _REG_NOERROR) goto LAB_00055914;\n                      break;\n                    }\n                    aVar49.sbcset = (re_bitset_ptr_t)0x0;\nLAB_000553ac:\n                    aVar45.sbcset = (re_bitset_ptr_t)&mctx;\n                    aVar15.sbcset =\n                         &merge_state_with_log\n                                    (&err,(re_match_context_t *)aVar45.mbcset,aVar49.sbcset)->hash;\nLAB_000553cc:\n                    aVar46 = aVar15;\n                    if ((re_dfa_t *)aVar15.sbcset == (re_dfa_t *)0x0) {\n                      if (err != _REG_NOERROR) goto LAB_00055914;\n                      if ((mctx.state_log == (re_dfastate_t **)0x0) ||\n                         ((prVar52 != (re_dfa_t *)0x0 &&\n                          (paVar54 == (anon_union_4_5_a39f51ca_for_opr *)0x0)))) break;\n                      stop = (Idx)&mctx;\n                      last_start = (Idx)&err;\n                      paVar18 = (anon_union_4_5_a39f51ca_for_opr *)(PTR_DAT_000799a4 + 0x3684);\n                      do {\n                        pprVar14 = mctx.state_log + mctx.input.cur_idx;\n                        IVar17 = mctx.input.cur_idx;\n                        do {\n                          IVar17 = IVar17 + 1;\n                          aVar45.idx = mctx.state_log_top;\n                          aVar46 = aVar15;\n                          if (mctx.state_log_top < IVar17) goto LAB_00055da8;\n                          mctx.input.cur_idx = mctx.input.cur_idx + 1;\n                          pprVar14 = pprVar14 + 1;\n                        } while (*pprVar14 == (re_dfastate_t *)0x0);\n                        aVar49.sbcset = (re_bitset_ptr_t)0x0;\n                        aVar45.sbcset = (re_bitset_ptr_t)stop;\n                        aVar46.sbcset = (re_bitset_ptr_t)(*(code *)paVar18)(last_start);\n                        if (err != _REG_NOERROR) {\n                          if ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0) goto LAB_00055da8;\n                          break;\n                        }\n                        aVar45.idx = mctx.state_log_top;\n                      } while ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0);\n                    }\n                    aVar16.ctx_type = unaff_s7.ctx_type ^ aVar46.ctx_type;\n                    aVar56 = unaff_s7;\n                    aVar15 = local_138;\n                    if ((bVar36) &&\n                       (aVar56.ctx_type = aVar16.ctx_type, aVar15.sbcset = unaff_s5.sbcset,\n                       (re_dfa_t *)aVar16.sbcset != (re_dfa_t *)0x0)) {\n                      bVar36 = false;\n                      aVar15 = local_138;\n                    }\n                    local_138 = aVar15;\n                    unaff_s7 = aVar46;\n                    if (((*(byte *)(aVar46.idx + 0x34) & 8) != 0) &&\n                       (((*(byte *)(aVar46.idx + 0x34) & 1) == 0 ||\n                        (aVar45 = aVar46, aVar49.idx = mctx.input.cur_idx,\n                        IVar17 = check_halt_state_context(&mctx,aVar46.idx,mctx.input.cur_idx),\n                        IVar17 != 0)))) {\n                      unaff_s7 = aVar56;\n                      local_c4.idx = mctx.input.cur_idx;\n                      if (paVar54 == (anon_union_4_5_a39f51ca_for_opr *)0x0) goto LAB_00055dbc;\n                      prVar52 = (re_dfa_t *)0x1;\n                      local_144 = (int *)0x0;\n                      unaff_s7 = aVar46;\n                    }\n                  }\nLAB_00055da8:\n                  if (local_144 != (int *)0x0) {\n                    *local_144 = *local_144 + (int)local_138.sbcset;\n                  }\n                }\n                else {\n                  aVar46.sbcset = (re_bitset_ptr_t)&(unaff_s7.mbcset)->range_starts;\n                  aVar49.sbcset = (re_bitset_ptr_t)0x0;\n                  aVar45 = aVar46;\n                  err = check_subexp_matching_top(&mctx,(re_node_set *)aVar46.mbcset,0);\n                  local_c4.idx = err;\n                  if ((re_dfa_t *)err == (re_dfa_t *)0x0) {\n                    if ((*(byte *)(unaff_s7.idx + 0x34) & 2) == 0) {\n                      aVar45 = aVar46;\n                      bVar36 = false;\n                    }\n                    else {\n                      aVar45 = aVar46;\n                      err = transit_state_bkref(&mctx,(re_node_set *)aVar46.mbcset);\n                      local_c4.idx = err;\n                      if ((re_dfa_t *)err != (re_dfa_t *)0x0) goto LAB_00055dbc;\n                      bVar36 = false;\n                    }\n                    goto LAB_00054d50;\n                  }\n                }\nLAB_00055dbc:\n                if ((re_dfa_t *)local_c4.sbcset == (re_dfa_t *)0xffffffff) {\nLAB_00055b04:\n                  match_ctx_clean(&mctx);\nLAB_00055b1c:\n                  match_first = aVar39.idx + match_first;\n                  if (aVar40.idx <= match_first) goto code_r0x00055b38;\n                  local_150.idx = 1;\n                  goto LAB_000557e4;\n                }\n                if ((re_dfa_t *)local_c4.sbcset == (re_dfa_t *)&SUB_fffffffe) {\n                  local_150.idx = 0xc;\n                  goto LAB_000557e4;\n                }\n                mctx.match_last = local_c4.idx;\n                if ((preg->field_0x1c & 8) == 0) {\n                  if (aVar4.sbcset < (re_dfa_t *)0x2) {\n                    if (prVar59->nbackref == 0) goto LAB_00055c08;\n                    aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                             ((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + local_c4.idx))->\n                             mbcset;\n                    aVar49 = local_c4;\n                    mctx.last_node =\n                         check_halt_state_context(&mctx,(re_dfastate_t *)aVar45.mbcset,local_c4.idx)\n                    ;\n                  }\n                  else {\n                    aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                             ((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + local_c4.idx))->\n                             mbcset;\n                    aVar49 = local_c4;\n                    mctx.last_node =\n                         check_halt_state_context(&mctx,(re_dfastate_t *)aVar45.mbcset,local_c4.idx)\n                    ;\n                  }\n                  if (aVar4.sbcset < (re_dfa_t *)0x2) {\nLAB_00055c6c:\n                    prVar52 = prVar51;\n                    unaff_s4 = mctx.dfa;\n                    if (prVar59->nbackref == 0) goto LAB_00055548;\n                  }\n                  else {\n                    cVar37 = prVar59->field_0x58;\nLAB_00055c20:\n                    prVar52 = prVar51;\n                    if (-1 < cVar37) goto LAB_00055c6c;\n                  }\n                  paVar18 = (anon_union_4_5_a39f51ca_for_opr *)mctx.last_node;\n                  prVar3 = mctx.dfa;\n                  unaff_s4 = prVar3;\n                  if ((uint)local_c4 < (re_dfa_t *)0x3fffffff) {\n                    aVar46.idx = (int)((int)&((re_string_t *)&(local_c4.mbcset)->mbchars)->raw_mbs +\n                                      1) * 4;\n                    unaff_s5.sbcset = (re_bitset_ptr_t)(*(code *)PTR_malloc_00079b54)(aVar46.sbcset)\n                    ;\n                    if ((re_dfa_t *)unaff_s5.sbcset == (re_dfa_t *)0x0) {\nLAB_00055b9c:\n                      (*(code *)PTR_free_00079c24)(unaff_s5.sbcset);\n                      local_150.idx = 0xc;\n                      prVar51 = prVar52;\n                    }\n                    else {\n                      aVar45.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                      if (prVar3->nbackref == 0) {\n                        dest_nodes.nelem = 0;\n                        dest_nodes.elems = &paVar18->idx;\n                        dest_nodes.alloc = (Idx)unaff_s5.sbcset;\n                        last_start = sift_states_backward(&mctx,(re_sift_context_t *)aVar45.mbcset);\n                        (*(code *)PTR_free_00079c24)(0);\n                        if ((re_dfa_t *)last_start == (re_dfa_t *)0x0) {\n                          aVar46.mbcset = (re_charset_t *)*unaff_s5.sbcset;\n                          if ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0) {\nLAB_00055b70:\n                            (*(code *)PTR_free_00079c24)(unaff_s5.sbcset);\n                            (*(code *)PTR_free_00079c24)(aVar46.sbcset);\n                            prVar51 = prVar52;\n                            goto LAB_00055b04;\n                          }\nLAB_00055528:\n                          (*(code *)PTR_free_00079c24)(mctx.state_log);\n                          prVar51 = prVar52;\n                          unaff_s4 = prVar3;\n                          mctx.match_last = local_c4.idx;\n                          mctx.last_node = (Idx)paVar18;\n                          mctx.state_log = (re_dfastate_t **)unaff_s5.sbcset;\n                          goto LAB_00055548;\n                        }\nLAB_00055acc:\n                        aVar46.sbcset = (re_bitset_ptr_t)0x0;\n                        prVar51 = prVar52;\n                        unaff_s4 = prVar3;\n                      }\n                      else {\n                        aVar46.sbcset =\n                             (re_bitset_ptr_t)(*(code *)PTR_malloc_00079b54)(aVar46.sbcset);\n                        if ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0) goto LAB_00055b9c;\n                        unaff_s7.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                        pcVar9 = (code *)(PTR_DAT_000799a4 + 0x421c);\n                        pcVar10 = (code *)(PTR_DAT_000799a4 + -0x6bc0);\n                        prVar51 = prVar52;\n                        while( true ) {\n                          prVar52 = (re_dfa_t *)(local_c4.idx + 1);\n                          stop = (int)prVar52 * 4;\n                          aVar49.idx = stop;\n                          (*(code *)PTR_memset_00079b00)(aVar46.sbcset,0);\n                          aVar45.sbcset = unaff_s7.sbcset;\n                          dest_nodes.alloc = (Idx)unaff_s5.sbcset;\n                          dest_nodes.nelem = (Idx)aVar46.sbcset;\n                          dest_nodes.elems = (Idx *)paVar18;\n                          last_start = (*pcVar9)(&mctx);\n                          (*(code *)PTR_free_00079c24)(0);\n                          unaff_s4 = prVar52;\n                          if ((re_dfa_t *)last_start != (re_dfa_t *)0x0) break;\n                          if ((*unaff_s5.sbcset != 0) || (stop = stop + -4, *aVar46.sbcset != 0)) {\n                            aVar45.sbcset = unaff_s5.sbcset;\n                            aVar49.sbcset = aVar46.sbcset;\n                            last_start = merge_state_array(prVar3,(re_dfastate_t **)unaff_s5.sbcset,\n                                                           (re_dfastate_t **)aVar46.sbcset,\n                                                           (Idx)prVar52);\n                            (*(code *)PTR_free_00079c24)(aVar46.sbcset);\n                            if ((re_dfa_t *)last_start != (re_dfa_t *)0x0) goto LAB_00055acc;\n                            goto LAB_00055528;\n                          }\n                          stop = (Idx)(mctx.state_log + (int)&prVar52[-1].lock.__align + 0x17);\n                          do {\n                            while( true ) {\n                              local_c4.sbcset = (re_bitset_ptr_t)(local_c4.idx + -1);\n                              if (local_c4.idx < 0) goto LAB_00055b70;\n                              aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                                       ((anon_union_4_5_a39f51ca_for_opr *)(stop + -4))->idx;\n                              if ((re_dfa_t *)aVar45.sbcset != (re_dfa_t *)0x0) break;\n                              stop = stop + -4;\n                            }\n                            stop = stop + -4;\n                          } while ((*(byte *)(aVar45.idx + 0x34) & 8) == 0);\n                          paVar18 = (anon_union_4_5_a39f51ca_for_opr *)\n                                    (*pcVar10)(&mctx,aVar45.sbcset,local_c4.sbcset);\n                          prVar51 = prVar52;\n                        }\n                      }\n                      (*(code *)PTR_free_00079c24)(unaff_s5.sbcset);\n                      (*(code *)PTR_free_00079c24)(aVar46.sbcset);\n                      local_150.idx = last_start;\n                      if ((re_dfa_t *)last_start == (re_dfa_t *)0x1) goto LAB_00055b04;\n                    }\n                  }\n                  else {\n                    local_150.idx = 0xc;\n                    prVar51 = prVar52;\n                  }\n                  goto LAB_000557e4;\n                }\n                if (prVar59->nbackref != 0) {\n                  aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                           ((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + local_c4.idx))->\n                           mbcset;\n                  aVar49 = local_c4;\n                  mctx.last_node =\n                       check_halt_state_context(&mctx,(re_dfastate_t *)aVar45.mbcset,local_c4.idx);\n                  goto LAB_00055c6c;\n                }\nLAB_00055c08:\n                if (((preg->field_0x1c & 8) == 0) && ((re_dfa_t *)0x1 < aVar4.sbcset)) {\n                  cVar37 = prVar59->field_0x58;\n                  goto LAB_00055c20;\n                }\nLAB_00055548:\n                if ((re_dfa_t *)aVar4.sbcset == (re_dfa_t *)0x0) goto LAB_000557e4;\n                if (aVar4.sbcset < (re_dfa_t *)0x2) {\n                  pmatch->rm_so = 0;\n                  pmatch->rm_eo = mctx.match_last;\n                  goto LAB_000555ac;\n                }\n                prVar19 = pmatch + 1;\n                do {\n                  prVar19->rm_eo = -1;\n                  prVar19->rm_so = -1;\n                  prVar19 = prVar19 + 1;\n                } while (prVar19 != pmatch + aVar4.idx);\n                pmatch->rm_so = 0;\n                pmatch->rm_eo = mctx.match_last;\n                if ((preg->field_0x1c & 8) != 0) {\nLAB_000555ac:\n                  prVar19 = pmatch;\n                  do {\n                    aVar45.sbcset = (re_bitset_ptr_t)prVar19->rm_so;\n                    if ((re_dfa_t *)aVar45.sbcset != (re_dfa_t *)0xffffffff) {\n                      if (mctx.input.offsets_needed != '\0') {\n                        rVar47 = mctx.input.valid_raw_len;\n                        if (aVar45.sbcset != (re_bitset_ptr_t)mctx.input.valid_len) {\n                          rVar47 = mctx.input.offsets[aVar45.idx];\n                        }\n                        prVar19->rm_so = rVar47;\n                        rVar47 = mctx.input.valid_raw_len;\n                        if (mctx.input.valid_len != prVar19->rm_eo) {\n                          rVar47 = mctx.input.offsets[prVar19->rm_eo];\n                        }\n                        prVar19->rm_eo = rVar47;\n                      }\n                      prVar19->rm_so = prVar19->rm_so + match_first;\n                      aVar45.sbcset = (re_bitset_ptr_t)(prVar19->rm_eo + match_first);\n                      prVar19->rm_eo = (regoff_t)aVar45;\n                    }\n                    prVar19 = prVar19 + 1;\n                  } while (prVar19 != pmatch + aVar4.idx);\n                  if (0 < local_118) {\n                    prVar19 = pmatch + aVar4.idx;\n                    do {\n                      prVar19->rm_so = -1;\n                      prVar19->rm_eo = -1;\n                      prVar19 = prVar19 + 1;\n                    } while (prVar19 != pmatch + nmatch);\n                  }\n                  aVar49.idx = match_first;\n                  prVar51 = (re_dfa_t *)pmatch;\n                  local_150.sbcset = aVar7.sbcset;\n                  if (prVar59->subexp_map != (Idx *)0x0) {\n                    aVar49.sbcset = (re_bitset_ptr_t)(aVar4.idx + -1);\n                    prVar52 = (re_dfa_t *)0x0;\n                    prVar19 = pmatch;\n                    while( true ) {\n                      aVar45.idx = (int)prVar52 * 4;\n                      if ((re_dfa_t *)aVar49.sbcset == prVar52) break;\n                      if ((re_dfa_t *)prVar59->subexp_map[(int)prVar52] != prVar52) {\n                        prVar19[1].rm_so =\n                             pmatch[(int)((int)&((re_string_t *)\n                                                &((re_dfa_t *)prVar59->subexp_map[(int)prVar52])->\n                                                 nodes)->raw_mbs + 1)].rm_so;\n                        prVar19[1].rm_eo = pmatch[prVar59->subexp_map[(int)prVar52] + 1].rm_eo;\n                      }\n                      prVar52 = (re_dfa_t *)((int)&((re_string_t *)&prVar52->nodes)->raw_mbs + 1);\n                      prVar19 = prVar19 + 1;\n                    }\n                  }\n                  goto LAB_000557e4;\n                }\n                if ((char)prVar59->field_0x58 < '\0') {\n                  bVar36 = 0 < prVar59->nbackref;\n                }\n                else {\n                  bVar36 = false;\n                }\n                aVar45.sbcset = (re_bitset_ptr_t)&mctx;\n                aVar49.sbcset = aVar4.sbcset;\n                prVar51 = (re_dfa_t *)pmatch;\n                local_150.idx =\n                     set_regs(preg,(re_match_context_t *)aVar45.mbcset,aVar4.ctx_type,pmatch,bVar36)\n                ;\n                if ((re_dfa_t *)local_150.sbcset == (re_dfa_t *)0x0) goto LAB_000555ac;\n              }\n            }\n          }\n          else if ((uint)mctx.input.bufs_len < 0x3fffffff) {\n            mctx.state_log =\n                 (re_dfastate_t **)(*(code *)PTR_malloc_00079b54)((mctx.input.bufs_len + 1) * 4);\n            if (mctx.state_log != (re_dfastate_t **)0x0) goto LAB_00055a40;\n            local_150.idx = 0xc;\n            stop = aVar56.idx;\n          }\n          else {\n            local_150.idx = 0xc;\n            stop = aVar56.idx;\n          }\n        }\n        else {\n          unaff_s5.idx = iVar55 * 8;\n          if (aVar56.sbcset < (re_dfa_t *)0xccccccd) {\n            unaff_s4 = (re_dfa_t *)(*(code *)PTR_malloc_00079b54)(iVar55 * 0x28);\n            mctx.bkref_ents = (re_backref_cache_entry *)unaff_s4;\n            mctx.sub_tops = (re_sub_match_top_t **)(*(code *)PTR_malloc_00079b54)(unaff_s5.sbcset);\n            if ((unaff_s4 != (re_dfa_t *)0x0) && (mctx.sub_tops != (re_sub_match_top_t **)0x0))\n            goto LAB_000559f0;\n          }\n          local_150.idx = 0xc;\n          stop = aVar56.idx;\n        }\nLAB_000557e4:\n        (*(code *)PTR_free_00079c24)(mctx.state_log);\n        preg = (regex_t *)aVar49;\n        if (prVar59->nbackref != 0) {\n          match_ctx_clean(&mctx);\n          (*(code *)PTR_free_00079c24)(mctx.sub_tops);\n          (*(code *)PTR_free_00079c24)(mctx.bkref_ents);\n          preg = (regex_t *)aVar49;\n        }\n        re_string_destruct(&mctx.input);\n        aStack_1a0 = aVar46;\n        paStack_19c = paVar18;\n      }\n    }\n  }\n  if ((re_dfa_t *)preg_00.sbcset == *(re_dfa_t **)PTR___stack_chk_guard_00079c10) {\n    return (reg_errcode_t)local_150.sbcset;\n  }\n  pcVar5 = re_compile_internal;\n  puVar62 = PTR___stack_chk_fail_00079bd0;\n  (*(code *)PTR___stack_chk_fail_00079bd0)();\n  pcStack_1a4 = (char *)**(undefined4 **)(puVar62 + 0x23dac);\n  rStack_20c = _REG_NOERROR;\n  bVar1 = *(byte *)&((re_node_set *)&(preg_00.mbcset)->nequiv_classes)->alloc;\n  (preg_00.mbcset)->char_classes = (wctype_t *)prVar51;\n  (preg_00.mbcset)->range_ends = (wchar_t *)0x0;\n  (preg_00.mbcset)->ncoll_syms = 0;\n  *(byte *)&((re_node_set *)&(preg_00.mbcset)->nequiv_classes)->alloc = bVar1 & 9;\n  aVar4.mbcset = (re_charset_t *)((re_string_t *)&(preg_00.mbcset)->mbchars)->raw_mbs;\n  aStack_198.idx = last_start;\n  aStack_194.idx = stop;\n  prStack_190 = unaff_s4;\n  aStack_18c = unaff_s5;\n  prStack_188 = prVar59;\n  aStack_184 = unaff_s7;\n  aStack_180 = local_c4;\n  pcStack_17c = pcVar5;\n  if ((uint)((re_node_set *)&(preg_00.mbcset)->range_starts)->alloc < 0xa0) {\n    aVar46.idx = 0xa0;\n    aVar49 = (anon_union_4_5_a39f51ca_for_opr)preg;\n    aVar4.sbcset = (re_bitset_ptr_t)(**(code **)(puVar62 + 0x23cf8))(aVar4.sbcset);\n    if ((re_dfa_t *)aVar4.sbcset == (re_dfa_t *)0x0) {\n      rVar21 = _REG_ESPACE;\n      goto LAB_00056cfc;\n    }\n    ((re_node_set *)&(preg_00.mbcset)->range_starts)->alloc = 0xa0;\n    ((re_string_t *)&(preg_00.mbcset)->mbchars)->raw_mbs = (uchar *)aVar4;\n  }\n  (preg_00.mbcset)->range_ends = (wchar_t *)0xa0;\n  aVar49.idx = 0xa0;\n  aVar46.sbcset = (re_bitset_ptr_t)0x0;\n  (**(code **)(puVar62 + 0x23c9c))(aVar4.sbcset);\n  *(int *)(aVar4.idx + 0x40) = 0x1f;\n  pwVar44 = (wchar_t *)((int)&((re_string_t *)&((re_charset_t *)preg)->mbchars)->raw_mbs + 1);\n  if (preg < (re_dfa_t *)0xaaaaaaa) {\n    (aVar4.mbcset)->range_starts = pwVar44;\n    bVar22 = (**(code **)(puVar62 + 0x23cf0))((int)pwVar44 * 8);\n    *aVar4.sbcset = bVar22;\n    if ((re_dfa_t *)preg == (re_dfa_t *)0x0) {\n      aVar56.idx = 1;\n    }\n    else {\n      aVar56.idx = 1;\n      do {\n        aVar56.ctx_type = aVar56.ctx_type << 1;\n      } while (aVar56.sbcset <= preg);\n    }\n    aVar46 = aVar56;\n    prVar23 = (re_state_table_entry *)(**(code **)(puVar62 + 0x23b8c))(0xc);\n    (aVar4.mbcset)->nranges = (Idx)prVar23;\n    *(undefined1 **)(aVar4.idx + 0x44) = (undefined1 *)(aVar56.idx + -1);\n    iVar55 = (**(code **)(puVar62 + 0x23d2c))();\n    *(int *)(aVar4.idx + 0x5c) = iVar55;\n    pbVar24 = (byte *)(**(code **)(puVar62 + 0x23c2c))(0xe);\n    if ((((*pbVar24 & 0xdf) == 0x55) && ((pbVar24[1] & 0xdf) == 0x54)) &&\n       (aVar46.idx = 4, (pbVar24[2] & 0xdf) == 0x46)) {\n      iVar55 = 3;\n      if (pbVar24[3] == 0x2d) {\n        iVar55 = 4;\n      }\n      aVar46.sbcset = (re_bitset_ptr_t)(*(int *)(puVar62 + 0x23754) + 0x71b4);\n      iVar55 = (**(code **)(puVar62 + 0x23dfc))(pbVar24 + iVar55);\n      if (iVar55 == 0) {\n        *(byte *)(aVar4.idx + 0x58) = *(byte *)(aVar4.idx + 0x58) & 0xdf | 0x20;\n      }\n    }\n    *(byte *)(aVar4.idx + 0x58) = *(byte *)(aVar4.idx + 0x58) & 0xef;\n    if (1 < *(int *)(aVar4.idx + 0x5c)) {\n      if ((*(byte *)(aVar4.idx + 0x58) & 0x20) == 0) {\n        aVar46.idx = 1;\n        pbVar25 = (re_bitset_ptr_t)(**(code **)(puVar62 + 0x23b8c))(0x20);\n        *(re_bitset_ptr_t *)(aVar4.idx + 0x3c) = pbVar25;\n        if (pbVar25 == (re_bitset_ptr_t)0x0) goto LAB_00056e5c;\n        iVar55 = 0;\n        do {\n          uVar8 = iVar55 << 3;\n          uVar60 = 0;\n          do {\n            uVar26 = (**(code **)(puVar62 + 0x23c88))(uVar8);\n            if (uVar26 != 0xffffffff) {\n              prVar42 = (re_context_type *)((int)*(re_bitset_ptr_t *)(aVar4.idx + 0x3c) + iVar55);\n              aVar46.ctx_type = *prVar42;\n              *prVar42 = aVar46.ctx_type | 1 << (uVar60 & 0x1f);\n            }\n            if (((uVar8 & 0xffffff80) == 0) && (uVar26 != uVar8)) {\n              *(byte *)(aVar4.idx + 0x58) = *(byte *)(aVar4.idx + 0x58) & 0xef | 0x10;\n            }\n            uVar60 = uVar60 + 1;\n            uVar8 = uVar8 + 1;\n          } while (uVar60 != 0x20);\n          iVar55 = iVar55 + 4;\n        } while (iVar55 != 0x20);\n      }\n      else {\n        *(re_bitset_ptr_t *)(aVar4.idx + 0x3c) =\n             (re_bitset_ptr_t)(*(int *)(puVar62 + 0x23754) + 0x6ee4);\n      }\n    }\n    if ((*aVar4.sbcset == 0) ||\n       ((re_state_table_entry *)(aVar4.mbcset)->nranges == (re_state_table_entry *)0x0))\n    goto LAB_00056e5c;\n    rStack_20c = _REG_NOERROR;\n    if (*(int *)(puVar62 + 0x23c78) == 0) {\nLAB_00056054:\n      uVar60 = ((anon_union_4_2_91654ee9_for___value *)&(preg_00.mbcset)->nmbchars)->__wch;\n      uVar8 = (uint)prVar51 & 0x400000;\n      bVar36 = uVar8 != 0;\n      aVar49.idx = 0x4c;\n      aVar46.sbcset = (re_bitset_ptr_t)0x0;\n      (**(code **)(puVar62 + 0x23c9c))(aaStack_1f4);\n      cStack_1ad = uVar60 != 0 || bVar36;\n      iStack_1a8 = *(int *)(aVar4.idx + 0x5c);\n      bStack_1af = (byte)((uint)(*(int *)(aVar4.idx + 0x58) << 2) >> 0x1f);\n      bStack_1ae = (byte)((uint)(*(int *)(aVar4.idx + 0x58) << 3) >> 0x1f);\n      aStack_1f8 = aVar45;\n      aStack_1cc = (anon_union_4_5_a39f51ca_for_opr)preg;\n      aStack_1c8 = (anon_union_4_5_a39f51ca_for_opr)preg;\n      aStack_1c4 = (anon_union_4_5_a39f51ca_for_opr)preg;\n      aStack_1c0 = (anon_union_4_5_a39f51ca_for_opr)preg;\n      uStack_1b8 = uVar60;\n      uStack_1b0 = bVar36;\n      if (0 < (int)preg) {\n        aVar46.sbcset = (re_bitset_ptr_t)((int)preg + 1);\n        rVar21 = re_string_realloc_buffers((re_string_t *)&aStack_1f8,aVar46.idx);\n        if (rVar21 == _REG_NOERROR) goto LAB_000560cc;\n        goto LAB_00056168;\n      }\nLAB_000560cc:\n      if (cStack_1ad != '\0') {\n        aVar45 = aaStack_1f4[0];\n      }\n      aaStack_1f4[0] = aVar45;\n      if (uVar8 == 0) {\n        if (*(int *)(aVar4.idx + 0x5c) < 2) {\n          if (uVar60 != 0) {\n            re_string_translate_buffer((re_string_t *)&aStack_1f8);\n          }\n        }\n        else {\n          build_wcs_buffer((re_string_t *)&aStack_1f8);\n        }\n      }\n      else {\n        if (1 < *(int *)(aVar4.idx + 0x5c)) {\n          iVar55 = *(int *)(puVar62 + 0x23abc);\n          do {\n            rVar21 = build_wcs_upper_buffer((re_string_t *)&aStack_1f8);\n            if (rVar21 != _REG_NOERROR) break;\n            if (((int)preg <= iStack_1d8) ||\n               (aVar46.ctx_type = iStack_1d4 << 1,\n               iStack_1dc + *(int *)(aVar4.idx + 0x5c) < iStack_1d4)) goto LAB_000563d0;\n            rVar21 = (*(code *)(iVar55 + 0x6d2c))(&aStack_1f8);\n          } while (rVar21 == _REG_NOERROR);\n          goto LAB_00056168;\n        }\n        build_upper_buffer((re_string_t *)&aStack_1f8);\n      }\nLAB_000563d0:\n      rStack_20c = _REG_NOERROR;\n      (preg_00.mbcset)->ncoll_syms = 0;\n      prVar59 = (re_dfa_t *)((re_string_t *)&(preg_00.mbcset)->mbchars)->raw_mbs;\n      prVar59->syntax = (reg_syntax_t)prVar51;\n      fetch_token((re_token_t *)&rStack_204,(re_string_t *)&aStack_1f8,(uint)prVar51 | 0x800000);\n      aVar46 = preg_00;\n      aVar45.sbcset =\n           (re_bitset_ptr_t)\n           parse_reg_exp((re_string_t *)&aStack_1f8,preg_00.sbcset,(re_token_t *)&rStack_204,\n                         (reg_syntax_t)prVar51,0,&rStack_20c);\n      if (rStack_20c == _REG_NOERROR) {\n        aVar49.sbcset = (re_bitset_ptr_t)0x0;\n        aVar46.sbcset = (re_bitset_ptr_t)0x0;\n        aVar56.mbcset =\n             (re_charset_t *)create_tree(prVar59,(bin_tree_t *)0x0,(bin_tree_t *)0x0,END_OF_RE);\n        aVar39.mbcset = aVar56.mbcset;\n        if ((re_dfa_t *)aVar45.sbcset != (re_dfa_t *)0x0) {\nLAB_000564b0:\n          aVar49 = aVar56;\n          aVar39.sbcset =\n               (re_bitset_ptr_t)\n               create_tree(prVar59,(bin_tree_t *)aVar45.mbcset,aVar56.sbcset,CONCAT);\n          aVar46 = aVar45;\n        }\n        if (((re_dfa_t *)aVar56.sbcset == (re_dfa_t *)0x0) ||\n           (pcVar5 = *(code **)(puVar62 + 0x23cf0), (re_dfa_t *)aVar39.sbcset == (re_dfa_t *)0x0)) {\n          rStack_20c = _REG_ESPACE;\n          goto LAB_000566f4;\n        }\n        ((anon_union_4_5_a39f51ca_for_opr *)(aVar4.idx + 0x34))->mbcset = (re_charset_t *)aVar39;\n        aVar45.mbcset = (re_charset_t *)*preg_00.sbcset;\n        iVar61 = ((re_node_set *)&(aVar45.mbcset)->range_starts)->alloc;\n        iVar55 = iVar61 << 2;\n        pwVar27 = (wctype_t *)(*pcVar5)(iVar55);\n        (aVar45.mbcset)->char_classes = pwVar27;\n        iVar55 = (**(code **)(puVar62 + 0x23cf0))(iVar55);\n        ((re_node_set *)(aVar45.idx + 0x10))->alloc = iVar55;\n        iVar61 = iVar61 * 0xc;\n        uVar60 = (**(code **)(puVar62 + 0x23cf0))(iVar61);\n        ((anon_union_4_2_91654ee9_for___value *)&(aVar45.mbcset)->nmbchars)->__wch = uVar60;\n        prVar28 = (re_node_set *)(**(code **)(puVar62 + 0x23cf0))(iVar61);\n        (aVar45.mbcset)->ncoll_syms = (Idx)prVar28;\n        if (pwVar27 == (wctype_t *)0x0) {\n          rVar21 = _REG_ESPACE;\n        }\n        else if (iVar55 == 0) {\n          rVar21 = _REG_ESPACE;\n        }\n        else if (uVar60 == 0) {\n          rVar21 = _REG_ESPACE;\n        }\n        else if (prVar28 == (re_node_set *)0x0) {\n          rVar21 = _REG_ESPACE;\n        }\n        else {\n          pprVar29 = (re_sub_match_top_t **)\n                     (**(code **)(puVar62 + 0x23cf0))((int)(preg_00.mbcset)->ncoll_syms << 2);\n          *(re_sub_match_top_t ***)(aVar45.idx + 0x84) = pprVar29;\n          if (pprVar29 != (re_sub_match_top_t **)0x0) {\n            prVar30 = (re_sub_match_top_t *)0x0;\n            if ((re_node_set *)(preg_00.mbcset)->ncoll_syms != (re_node_set *)0x0) {\n              do {\n                (*(re_sub_match_top_t ***)(aVar45.idx + 0x84))[(int)prVar30] = prVar30;\n                prVar30 = (re_sub_match_top_t *)((int)&prVar30->str_idx + 1);\n              } while (prVar30 < (re_sub_match_top_t *)(preg_00.mbcset)->ncoll_syms);\n            }\n            preorder(*(bin_tree_t **)(aVar45.idx + 0x34),\n                     (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)\n                     (*(int *)(puVar62 + 0x23abc) + 0x60e8),aVar45.sbcset);\n            prVar30 = (re_sub_match_top_t *)(preg_00.mbcset)->ncoll_syms;\n            if (prVar30 == (re_sub_match_top_t *)0x0) {\nLAB_00056704:\n              (**(code **)(puVar62 + 0x23dc0))(*(re_sub_match_top_t ***)(aVar45.idx + 0x84));\n              *(re_sub_match_top_t ***)(aVar45.idx + 0x84) = (re_sub_match_top_t **)0x0;\n            }\n            else {\n              pprVar29 = *(re_sub_match_top_t ***)(aVar45.idx + 0x84);\n              if (*pprVar29 == (re_sub_match_top_t *)0x0) {\n                prVar31 = (re_sub_match_top_t *)0x0;\n                do {\n                  pprVar29 = pprVar29 + 1;\n                  prVar31 = (re_sub_match_top_t *)((int)&prVar31->str_idx + 1);\n                  if (prVar30 == prVar31) {\n                    if (prVar30 == prVar31) goto LAB_00056704;\n                    break;\n                  }\n                } while (*pprVar29 == prVar31);\n              }\n            }\n          }\n          aVar46.sbcset = (re_bitset_ptr_t)(*(int *)(puVar62 + 0x23abc) + 0x73a4);\n          rVar21 = postorder(*(bin_tree_t **)(aVar45.idx + 0x34),\n                             (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar46.sbcset,\n                             preg_00.sbcset);\n          aVar49.mbcset = aVar45.mbcset;\n          if (rVar21 == _REG_NOERROR) {\n            aVar46.sbcset = (re_bitset_ptr_t)(*(int *)(puVar62 + 0x23b40) + -0x5be4);\n            rVar21 = postorder(*(bin_tree_t **)(aVar45.idx + 0x34),\n                               (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar46.sbcset,\n                               aVar45.sbcset);\n            if (rVar21 == _REG_NOERROR) {\n              preorder(*(bin_tree_t **)(aVar45.idx + 0x34),\n                       (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)\n                       (*(int *)(puVar62 + 0x23abc) + 0x61b4),aVar45.sbcset);\n              aVar46.sbcset = (re_bitset_ptr_t)(*(int *)(puVar62 + 0x23b40) + -0x4614);\n              rVar21 = preorder(*(bin_tree_t **)(aVar45.idx + 0x34),\n                                (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar46.sbcset,\n                                aVar45.sbcset);\n              if (rVar21 == _REG_NOERROR) {\n                uVar60 = 0;\n                iVar55 = *(int *)(puVar62 + 0x23b40);\n                aVar56.sbcset = (re_bitset_ptr_t)0x0;\nLAB_00056744:\n                if ((re_dfa_t *)(aVar45.mbcset)->range_ends != (re_dfa_t *)aVar56.sbcset) {\nLAB_00056750:\n                  if (((re_node_set *)(aVar45.mbcset)->ncoll_syms)[aVar56.idx].nelem == 0) {\n                    aVar46.mbcset = aVar45.mbcset;\n                    aVar49 = aVar56;\n                    rVar21 = (*(code *)(iVar55 + -0x561c))\n                                       (&rStack_204,aVar45.sbcset,aVar56.sbcset,1);\n                    if (rVar21 != _REG_NOERROR) goto LAB_00056168;\n                    if (((re_node_set *)(aVar45.mbcset)->ncoll_syms)[aVar56.idx].nelem == 0) {\n                      (**(code **)(puVar62 + 0x23dc0))(rStack_204.elems);\n                      uVar60 = 1;\n                    }\n                  }\n                  aVar56.sbcset =\n                       (re_bitset_ptr_t)\n                       ((int)&((re_string_t *)&(aVar56.mbcset)->mbchars)->raw_mbs + 1);\n                  goto LAB_00056744;\n                }\n                if (uVar60 != 0) {\n                  uVar60 = 0;\n                  aVar56.sbcset = (re_bitset_ptr_t)0x0;\n                  goto LAB_00056750;\n                }\n                if ((((((re_node_set *)&(preg_00.mbcset)->nequiv_classes)->alloc & 0x8000000) == 0)\n                    && ((re_node_set *)(preg_00.mbcset)->ncoll_syms != (re_node_set *)0x0)) &&\n                   (*(char *)(aVar45.idx + 0x58) < '\0')) {\n                  pwVar57 = (wint_t *)(aVar45.mbcset)->range_ends;\n                }\n                else {\n                  if (*(Idx *)(aVar45.idx + 0x4c) == 0) goto LAB_000568f0;\n                  pwVar57 = (wint_t *)(aVar45.mbcset)->range_ends;\n                }\n                iVar55 = (**(code **)(puVar62 + 0x23cf0))((int)pwVar57 * 0xc);\n                ((re_node_set *)&(aVar45.mbcset)->nequiv_classes)->alloc = iVar55;\n                if (iVar55 == 0) {\n                  rVar21 = _REG_ESPACE;\n                  goto LAB_00056168;\n                }\n                if (pwVar57 != (wint_t *)0x0) {\n                  iVar55 = 0;\n                  uVar26 = 0;\n                  do {\n                    puVar32 = (undefined1 *)\n                              (((re_node_set *)&(aVar45.mbcset)->nequiv_classes)->alloc + iVar55);\n                    *puVar32 = 0;\n                    puVar32[1] = 0;\n                    puVar32[2] = 0;\n                    puVar32[3] = 0;\n                    puVar32[4] = 0;\n                    puVar32[5] = 0;\n                    puVar32[6] = 0;\n                    puVar32[7] = 0;\n                    puVar32[8] = 0;\n                    puVar32[9] = 0;\n                    puVar32[10] = 0;\n                    puVar32[0xb] = 0;\n                    uVar26 = uVar26 + 1;\n                    iVar55 = iVar55 + 0xc;\n                  } while (uVar26 < (aVar45.mbcset)->range_ends);\n                  iVar55 = *(int *)(puVar62 + 0x23abc);\n                  if ((wint_t *)(aVar45.mbcset)->range_ends != (wint_t *)0x0) {\n                    iVar61 = 0;\n                    aStack_218.sbcset = (re_bitset_ptr_t)0x0;\n                    do {\n                      piVar38 = *(int **)((int)&((re_node_set *)(aVar45.mbcset)->ncoll_syms)->elems\n                                         + iVar61);\n                      if (0 < *(int *)((int)&((re_node_set *)(aVar45.mbcset)->ncoll_syms)->nelem +\n                                      iVar61)) {\n                        iVar58 = 0;\n                        do {\n                          aVar46 = aStack_218;\n                          iVar33 = (*(code *)(iVar55 + 0x6e30))\n                                             (((re_node_set *)&(aVar45.mbcset)->nequiv_classes)->\n                                              alloc + *piVar38 * 0xc);\n                          rVar21 = _REG_ESPACE;\n                          if (iVar33 == 0) goto LAB_00056168;\n                          iVar58 = iVar58 + 1;\n                          piVar38 = piVar38 + 1;\n                        } while (iVar58 < *(int *)((int)&((re_node_set *)(aVar45.mbcset)->ncoll_syms\n                                                         )->nelem + iVar61));\n                      }\n                      aStack_218.sbcset =\n                           (re_bitset_ptr_t)\n                           ((int)&((re_string_t *)&(aStack_218.mbcset)->mbchars)->raw_mbs + 1);\n                      iVar61 = iVar61 + 0xc;\n                    } while (aStack_218.sbcset < (re_dfa_t *)(aVar45.mbcset)->range_ends);\n                  }\n                }\nLAB_000568f0:\n                rStack_20c = _REG_NOERROR;\n                if ((((*(byte *)(aVar4.idx + 0x58) & 0x20) != 0) && (uVar8 == 0)) &&\n                   (((anon_union_4_2_91654ee9_for___value *)&(preg_00.mbcset)->nmbchars)->__wch == 0\n                   )) {\n                  if ((aVar4.mbcset)->range_ends != (wchar_t *)0x0) {\n                    aVar49.sbcset = (re_bitset_ptr_t)(*(int *)(puVar62 + 0x23754) + 0x6e4c);\n                    if (*(byte *)(*aVar4.sbcset + 4) < 0xd) {\n                    /* WARNING: Could not recover jumptable at 0x00056a60. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      rVar21 = (*(code *)(puVar62 +\n                                         aVar49.sbcset[*(byte *)(*aVar4.sbcset + 4)] + 0x2b71c))();\n                      return rVar21;\n                    }\n                    (**(code **)(puVar62 + 0x23bc4))(0);\n                    if (uVar60 != 0) {\n                      aVar49.idx = (Idx)&DAT_00000007;\n                      uVar8 = 0;\n                      do {\n                        prVar53 = (re_token_t *)(aVar4.mbcset)->mbchars + uVar8;\n                        if (prVar53->field_0x4 == '\x01') {\n                          if ((char)(prVar53->opr).c < '\0') {\n                            *(uint *)&prVar53->field_0x4 = *(uint *)&prVar53->field_0x4 & 0xfffffbff\n                            ;\n                          }\n                        }\n                        else if (prVar53->field_0x4 == '\x05') {\n                          prVar53->field_0x4 = 7;\n                        }\n                        uVar8 = uVar8 + 1;\n                      } while (uVar8 < (aVar4.mbcset)->range_ends);\n                    }\n                  }\n                  *(int *)(aVar4.idx + 0x5c) = 1;\n                  if (0 < *(Idx *)(aVar4.idx + 0x4c)) {\n                    uVar60 = 1;\n                  }\n                  *(byte *)(aVar4.idx + 0x58) =\n                       *(byte *)(aVar4.idx + 0x58) & 0x9f | (byte)((uVar60 & 1) << 6);\n                }\n                iVar55 = (*(bin_tree_t **)(aVar4.idx + 0x34))->first->node_idx;\n                *(int *)(aVar4.idx + 0x48) = iVar55;\n                aVar46.sbcset =\n                     (re_bitset_ptr_t)((re_node_set *)(aVar4.mbcset)->ncoll_syms + iVar55);\n                rVar34 = re_node_set_init_copy(&rStack_204,(re_node_set *)aVar46.mbcset);\n                rVar21 = rVar34;\n                rStack_208 = rVar34;\n                if (rVar34 == _REG_NOERROR) {\n                  if ((0 < *(Idx *)(aVar4.idx + 0x4c)) && (_REG_NOERROR < rStack_204.nelem)) {\n                    iVar55 = *(int *)(puVar62 + 0x23abc);\n                    iVar61 = *(int *)(puVar62 + 0x23abc);\n                    rVar21 = _REG_NOERROR;\n                    do {\n                      aVar49.sbcset =\n                           (re_bitset_ptr_t)\n                           ((re_token_t *)(aVar4.mbcset)->mbchars + rStack_204.elems[rVar21]);\n                      if (*(char *)&((re_node_set *)&(aVar49.mbcset)->range_starts)->alloc == '\x04'\n                         ) {\n                        rVar48 = _REG_NOERROR;\n                        piVar38 = rStack_204.elems;\n                        if (rStack_204.nelem < _REG_NOMATCH) {\nLAB_00056b8c:\n                          if (rStack_204.nelem != rVar48) {\n                            iVar33 = *((re_node_set *)(aVar4.mbcset)->nmbchars)\n                                      [rStack_204.elems[rVar21]].elems;\n                            iVar58 = (*(code *)(iVar55 + 0x5ea8))(&rStack_204,iVar33);\n                            if (iVar58 == 0) {\n                              aVar46.sbcset =\n                                   (re_bitset_ptr_t)\n                                   ((re_node_set *)(aVar4.mbcset)->ncoll_syms + iVar33);\n                              rVar21 = (*(code *)(iVar61 + 0x7f1c))(&rStack_204);\n                              if (rVar21 != _REG_NOERROR) goto LAB_00056cb8;\n                            }\n                          }\n                        }\n                        else {\n                          do {\n                            prVar53 = (re_token_t *)(aVar4.mbcset)->mbchars + *piVar38;\n                            if ((prVar53->field_0x4 == '\t') &&\n                               ((prVar53->opr).sbcset == (re_bitset_ptr_t)*aVar49.sbcset))\n                            goto LAB_00056b8c;\n                            rVar48 = rVar48 + _REG_NOMATCH;\n                            piVar38 = piVar38 + 1;\n                          } while (rStack_204.nelem != rVar48);\n                        }\n                      }\n                      rVar21 = rVar21 + _REG_NOMATCH;\n                    } while (rVar21 < rStack_204.nelem);\n                  }\n                  aVar49.sbcset = (re_bitset_ptr_t)&rStack_204;\n                  aVar46 = aVar4;\n                  prVar35 = re_acquire_state_context\n                                      (&rStack_208,(re_dfa_t *)aVar4.mbcset,\n                                       (re_node_set *)aVar49.mbcset,0);\n                  (aVar4.mbcset)->nchar_classes = (Idx)prVar35;\n                  rVar21 = rStack_208;\n                  if (prVar35 != (re_dfastate_t *)0x0) {\n                    if ((prVar35->field_0x34 & 1) == 0) {\n                      *(re_dfastate_t **)(aVar4.idx + 0x30) = prVar35;\n                      *(re_dfastate_t **)(aVar4.idx + 0x2c) = prVar35;\n                      *(re_dfastate_t **)(aVar4.idx + 0x28) = prVar35;\n                    }\n                    else {\n                      aVar49.sbcset = (re_bitset_ptr_t)&rStack_204;\n                      prVar35 = re_acquire_state_context\n                                          (&rStack_208,(re_dfa_t *)aVar4.mbcset,\n                                           (re_node_set *)aVar49.mbcset,1);\n                      *(re_dfastate_t **)(aVar4.idx + 0x28) = prVar35;\n                      prVar35 = re_acquire_state_context\n                                          (&rStack_208,(re_dfa_t *)aVar4.mbcset,\n                                           (re_node_set *)aVar49.mbcset,2);\n                      *(re_dfastate_t **)(aVar4.idx + 0x2c) = prVar35;\n                      aVar46 = aVar4;\n                      prVar35 = re_acquire_state_context\n                                          (&rStack_208,(re_dfa_t *)aVar4.mbcset,\n                                           (re_node_set *)aVar49.mbcset,6);\n                      *(re_dfastate_t **)(aVar4.idx + 0x30) = prVar35;\n                      rVar21 = rStack_208;\n                      if (((*(re_dfastate_t **)(aVar4.idx + 0x28) == (re_dfastate_t *)0x0) ||\n                          (*(re_dfastate_t **)(aVar4.idx + 0x2c) == (re_dfastate_t *)0x0)) ||\n                         (prVar35 == (re_dfastate_t *)0x0)) goto LAB_00056cb8;\n                    }\n                    (**(code **)(puVar62 + 0x23dc0))(rStack_204.elems);\n                    rVar21 = rVar34;\n                  }\n                }\nLAB_00056cb8:\n                rStack_20c = rVar21;\n                free_workarea_compile((regex_t *)preg_00.mbcset);\n                re_string_destruct((re_string_t *)&aStack_1f8);\n                rVar21 = rStack_20c;\n                if (rStack_20c != _REG_NOERROR) {\n                  if (*(int *)(puVar62 + 0x23c78) != 0) {\n                    (**(code **)(puVar62 + 0x23df0))((pthread_mutex_t *)(aVar4.idx + 0x88));\n                  }\n                  free_dfa_content((re_dfa_t *)aVar4.mbcset);\n                  *preg_00.sbcset = 0;\n                  ((re_node_set *)&(preg_00.mbcset)->range_starts)->alloc = 0;\n                  rVar21 = rStack_20c;\n                }\n                goto LAB_00056cfc;\n              }\n            }\n          }\n        }\n      }\n      else {\n        aVar49.sbcset = (re_bitset_ptr_t)0x0;\n        if ((re_dfa_t *)aVar45.sbcset != (re_dfa_t *)0x0) {\n          aVar56.mbcset =\n               (re_charset_t *)create_tree(prVar59,(bin_tree_t *)0x0,(bin_tree_t *)0x0,END_OF_RE);\n          goto LAB_000564b0;\n        }\nLAB_000566f4:\n        *(bin_tree_t **)(aVar4.idx + 0x34) = (bin_tree_t *)0x0;\n        rVar21 = rStack_20c;\n      }\nLAB_00056168:\n      rStack_20c = rVar21;\n      free_workarea_compile((regex_t *)preg_00.mbcset);\n      re_string_destruct((re_string_t *)&aStack_1f8);\n      if (*(int *)(puVar62 + 0x23c78) != 0) {\n        (**(code **)(puVar62 + 0x23df0))((pthread_mutex_t *)(aVar4.idx + 0x88));\n      }\n      free_dfa_content((re_dfa_t *)aVar4.mbcset);\n      *preg_00.sbcset = 0;\n      ((re_node_set *)&(preg_00.mbcset)->range_starts)->alloc = 0;\n      rVar21 = rStack_20c;\n      goto LAB_00056cfc;\n    }\n    aVar46.sbcset = (re_bitset_ptr_t)0x0;\n    iVar55 = (**(code **)(puVar62 + 0x23d98))((pthread_mutex_t *)(aVar4.idx + 0x88));\n    if (iVar55 != 0) goto LAB_00056e5c;\n    if (rStack_20c == _REG_NOERROR) goto LAB_00056054;\n  }\n  else {\nLAB_00056e5c:\n    rStack_20c = _REG_ESPACE;\n  }\n  free_dfa_content((re_dfa_t *)aVar4.mbcset);\n  *preg_00.sbcset = 0;\n  ((re_node_set *)&(preg_00.mbcset)->range_starts)->alloc = 0;\n  rVar21 = rStack_20c;\nLAB_00056cfc:\n  if (pcStack_1a4 == (char *)**(int **)(puVar62 + 0x23dac)) {\n    return rVar21;\n  }\n  pcVar5 = *(code **)(puVar62 + 0x23d6c);\n  pattern = pcStack_1a4;\n  (*pcVar5)();\n  syntax = **(reg_syntax_t **)(pcVar5 + 0x22b18);\n  *(byte *)&((re_node_set *)&(aVar49.mbcset)->nequiv_classes)->alloc =\n       *(byte *)&((re_node_set *)&(aVar49.mbcset)->nequiv_classes)->alloc & 0xf6 |\n       (byte)(((syntax << 6) >> 0x1f) << 3) | 1;\n  rVar21 = re_compile_internal((regex_t *)aVar49.mbcset,pattern,aVar46.ctx_type,syntax);\n  if (rVar21 == _REG_NOERROR) {\n    rVar21 = _REG_NOERROR;\n  }\n  else {\n    rVar21 = (**(code **)(pcVar5 + 0x22d48))\n                       (0,*(int *)(pcVar5 + 0x22728) + 0x6f48 +\n                          *(int *)(rVar21 * 4 + *(int *)(pcVar5 + 0x22728) + 0x6f04),5);\n  }\n  return rVar21;\ncode_r0x00055b38:\n  if (aVar41.idx < match_first) goto LAB_000557a8;\n  goto LAB_00055b44;\nLAB_000557a8:\n  local_150.idx = 1;\n  goto LAB_000557e4;\nLAB_00055914:\n  local_150.idx = 0xc;\n  aVar46 = aVar15;\n  goto LAB_000557e4;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "anon_union_4_5_a39f51ca_for_opr *paVar2;" type_identifier (pointer_declarator "*paVar2" * identifier) ;) (declaration "re_dfa_t *prVar3;" type_identifier (pointer_declarator "*prVar3" * identifier) ;) (declaration "anon_union_4_5_a39f51ca_for_opr preg_00;" type_identifier identifier ;) (declaration "anon_union_4_5_a39f51ca_for_opr aVar4;" type_identifier identifier ;) (declaration "code *pcVar5;" type_identifier (pointer_declarator "*pcVar5" * identifier) ;) (declaration "int *piVar6;" primitive_type (pointer_declarator "*piVar6" * identifier) ;) (declaration "anon_union_4_5_a39f51ca_for_opr aVar7;" type_identifier identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "code *pcVar9;" type_identifier (pointer_declarator "*pcVar9" * identifier) ;) (declaration "code *pcVar10;" type_identifier (pointer_declarator "*pcVar10" * identifier) ;) (declaration "code *pcVar11;" type_identifier (pointer_declarator "*pcVar11" * identifier) ;) (declaration "code *pcVar12;" type_identifier (pointer_declarator "*pcVar12" * identifier) ;) (declaration "code *pcVar13;" type_identifier (pointer_declarator "*pcVar13" * identifier) ;) (declaration "re_dfastate_t **pprVar14;" type_identifier (pointer_declarator "**pprVar14" * (pointer_declarator "*pprVar14" * identifier)) ;) (declaration "anon_union_4_5_a39f51ca_for_opr aVar15;" type_identifier identifier ;) (declaration "anon_union_4_5_a39f51ca_for_opr aVar16;" type_identifier identifier ;) (declaration "Idx IVar17;" type_identifier identifier ;) (declaration "anon_union_4_5_a39f51ca_for_opr *paVar18;" type_identifier (pointer_declarator "*paVar18" * identifier) ;) (declaration "bool bVar36;" primitive_type identifier ;) (declaration "regmatch_t *prVar19;" type_identifier (pointer_declarator "*prVar19" * identifier) ;) (declaration "re_context_type rVar20;" type_identifier identifier ;) (declaration "reg_errcode_t rVar21;" type_identifier identifier ;) (declaration "char cVar37;" primitive_type identifier ;) (declaration "bitset_word_t bVar22;" type_identifier identifier ;) (declaration "re_state_table_entry *prVar23;" type_identifier (pointer_declarator "*prVar23" * identifier) ;) (declaration "byte *pbVar24;" type_identifier (pointer_declarator "*pbVar24" * identifier) ;) (declaration "re_bitset_ptr_t pbVar25;" type_identifier identifier ;) (declaration "uint uVar26;" type_identifier identifier ;) (declaration "wctype_t *pwVar27;" type_identifier (pointer_declarator "*pwVar27" * identifier) ;) (declaration "re_node_set *prVar28;" type_identifier (pointer_declarator "*prVar28" * identifier) ;) (declaration "re_sub_match_top_t **pprVar29;" type_identifier (pointer_declarator "**pprVar29" * (pointer_declarator "*pprVar29" * identifier)) ;) (declaration "re_sub_match_top_t *prVar30;" type_identifier (pointer_declarator "*prVar30" * identifier) ;) (declaration "re_sub_match_top_t *prVar31;" type_identifier (pointer_declarator "*prVar31" * identifier) ;) (declaration "undefined1 *puVar32;" type_identifier (pointer_declarator "*puVar32" * identifier) ;) (declaration "int iVar33;" primitive_type identifier ;) (declaration "reg_errcode_t rVar34;" type_identifier identifier ;) (declaration "re_dfastate_t *prVar35;" type_identifier (pointer_declarator "*prVar35" * identifier) ;) (declaration "int *piVar38;" primitive_type (pointer_declarator "*piVar38" * identifier) ;) (declaration "anon_union_4_5_a39f51ca_for_opr aVar39;" type_identifier identifier ;) (declaration "anon_union_4_5_a39f51ca_for_opr aVar40;" type_identifier identifier ;) (declaration "anon_union_4_5_a39f51ca_for_opr aVar41;" type_identifier identifier ;) (declaration "re_context_type *prVar42;" type_identifier (pointer_declarator "*prVar42" * identifier) ;) (declaration "anon_union_4_5_a39f51ca_for_opr *paVar43;" type_identifier (pointer_declarator "*paVar43" * identifier) ;) (declaration "wchar_t *pwVar44;" type_identifier (pointer_declarator "*pwVar44" * identifier) ;) (declaration "char *pattern;" primitive_type (pointer_declarator "*pattern" * identifier) ;) (declaration "anon_union_4_5_a39f51ca_for_opr aVar45;" type_identifier identifier ;) (declaration "anon_union_4_5_a39f51ca_for_opr aVar46;" type_identifier identifier ;) (declaration "regoff_t rVar47;" type_identifier identifier ;) (declaration "reg_errcode_t rVar48;" type_identifier identifier ;) (declaration "anon_union_4_5_a39f51ca_for_opr aVar49;" type_identifier identifier ;) (declaration "uchar *puVar50;" type_identifier (pointer_declarator "*puVar50" * identifier) ;) (declaration "re_dfa_t *prVar51;" type_identifier (pointer_declarator "*prVar51" * identifier) ;) (declaration "re_dfa_t *prVar52;" type_identifier (pointer_declarator "*prVar52" * identifier) ;) (declaration "reg_syntax_t syntax;" type_identifier identifier ;) (declaration "re_token_t *prVar53;" type_identifier (pointer_declarator "*prVar53" * identifier) ;) (declaration "anon_union_4_5_a39f51ca_for_opr *paVar54;" type_identifier (pointer_declarator "*paVar54" * identifier) ;) (declaration "int iVar55;" primitive_type identifier ;) (declaration "anon_union_4_5_a39f51ca_for_opr aVar56;" type_identifier identifier ;) (declaration "wint_t *pwVar57;" type_identifier (pointer_declarator "*pwVar57" * identifier) ;) (declaration "re_dfa_t *unaff_s4;" type_identifier (pointer_declarator "*unaff_s4" * identifier) ;) (declaration "int iVar58;" primitive_type identifier ;) (declaration "anon_union_4_5_a39f51ca_for_opr unaff_s5;" type_identifier identifier ;) (declaration "re_dfa_t *prVar59;" type_identifier (pointer_declarator "*prVar59" * identifier) ;) (declaration "uint uVar60;" type_identifier identifier ;) (declaration "anon_union_4_5_a39f51ca_for_opr unaff_s7;" type_identifier identifier ;) (declaration "int iVar61;" primitive_type identifier ;) (declaration "undefined *puVar62;" type_identifier (pointer_declarator "*puVar62" * identifier) ;) (declaration "anon_union_4_5_a39f51ca_for_opr unaff_s8;" type_identifier identifier ;) (declaration "undefined8 uVar63;" type_identifier identifier ;) (declaration "anon_union_4_5_a39f51ca_for_opr aStack_218;" type_identifier identifier ;) (declaration "reg_errcode_t rStack_20c;" type_identifier identifier ;) (declaration "reg_errcode_t rStack_208;" type_identifier identifier ;) (declaration "re_node_set rStack_204;" type_identifier identifier ;) (declaration "anon_union_4_5_a39f51ca_for_opr aStack_1f8;" type_identifier identifier ;) (declaration "anon_union_4_5_a39f51ca_for_opr aaStack_1f4 [6];" type_identifier (array_declarator "aaStack_1f4 [6]" identifier [ number_literal ]) ;) (declaration "int iStack_1dc;" primitive_type identifier ;) (declaration "int iStack_1d8;" primitive_type identifier ;) (declaration "int iStack_1d4;" primitive_type identifier ;) (declaration "anon_union_4_5_a39f51ca_for_opr aStack_1cc;" type_identifier identifier ;) (declaration "anon_union_4_5_a39f51ca_for_opr aStack_1c8;" type_identifier identifier ;) (declaration "anon_union_4_5_a39f51ca_for_opr aStack_1c4;" type_identifier identifier ;) (declaration "anon_union_4_5_a39f51ca_for_opr aStack_1c0;" type_identifier identifier ;) (declaration "uint uStack_1b8;" type_identifier identifier ;) (declaration "undefined1 uStack_1b0;" type_identifier identifier ;) (declaration "byte bStack_1af;" type_identifier identifier ;) (declaration "byte bStack_1ae;" type_identifier identifier ;) (declaration "char cStack_1ad;" primitive_type identifier ;) (declaration "int iStack_1a8;" primitive_type identifier ;) (declaration "char *pcStack_1a4;" primitive_type (pointer_declarator "*pcStack_1a4" * identifier) ;) (declaration "anon_union_4_5_a39f51ca_for_opr aStack_1a0;" type_identifier identifier ;) (declaration "anon_union_4_5_a39f51ca_for_opr *paStack_19c;" type_identifier (pointer_declarator "*paStack_19c" * identifier) ;) (declaration "anon_union_4_5_a39f51ca_for_opr aStack_198;" type_identifier identifier ;) (declaration "anon_union_4_5_a39f51ca_for_opr aStack_194;" type_identifier identifier ;) (declaration "re_dfa_t *prStack_190;" type_identifier (pointer_declarator "*prStack_190" * identifier) ;) (declaration "anon_union_4_5_a39f51ca_for_opr aStack_18c;" type_identifier identifier ;) (declaration "re_dfa_t *prStack_188;" type_identifier (pointer_declarator "*prStack_188" * identifier) ;) (declaration "anon_union_4_5_a39f51ca_for_opr aStack_184;" type_identifier identifier ;) (declaration "anon_union_4_5_a39f51ca_for_opr aStack_180;" type_identifier identifier ;) (declaration "code *pcStack_17c;" type_identifier (pointer_declarator "*pcStack_17c" * identifier) ;) (declaration "anon_union_4_5_a39f51ca_for_opr local_150;" type_identifier identifier ;) (declaration "anon_union_4_5_a39f51ca_for_opr local_148;" type_identifier identifier ;) (declaration "int *local_144;" primitive_type (pointer_declarator "*local_144" * identifier) ;) (declaration "anon_union_4_5_a39f51ca_for_opr local_138;" type_identifier identifier ;) (declaration "int local_118;" primitive_type identifier ;) (declaration "Idx match_first;" type_identifier identifier ;) (declaration "reg_errcode_t err;" type_identifier identifier ;) (declaration "reg_errcode_t err_1;" type_identifier identifier ;) (declaration "re_node_set dest_nodes;" type_identifier identifier ;) (declaration "anon_union_4_5_a39f51ca_for_opr local_c4;" type_identifier identifier ;) (declaration "re_match_context_t mctx;" type_identifier identifier ;) (expression_statement "preg_00 = *(anon_union_4_5_a39f51ca_for_opr *)PTR___stack_chk_guard_00079c10;" (assignment_expression "preg_00 = *(anon_union_4_5_a39f51ca_for_opr *)PTR___stack_chk_guard_00079c10" identifier = (pointer_expression "*(anon_union_4_5_a39f51ca_for_opr *)PTR___stack_chk_guard_00079c10" * (cast_expression "(anon_union_4_5_a39f51ca_for_opr *)PTR___stack_chk_guard_00079c10" ( (type_descriptor "anon_union_4_5_a39f51ca_for_opr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "prVar59 = preg->buffer;" (assignment_expression "prVar59 = preg->buffer" identifier = (field_expression "preg->buffer" identifier -> field_identifier)) ;) (expression_statement "aVar45.sbcset = (re_bitset_ptr_t)0x0;" (assignment_expression "aVar45.sbcset = (re_bitset_ptr_t)0x0" (field_expression "aVar45.sbcset" identifier . field_identifier) = (cast_expression "(re_bitset_ptr_t)0x0" ( (type_descriptor "re_bitset_ptr_t" type_identifier) ) number_literal)) ;) (expression_statement "prVar51 = (re_dfa_t *)start;" (assignment_expression "prVar51 = (re_dfa_t *)start" identifier = (cast_expression "(re_dfa_t *)start" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "(*(code *)PTR_memset_00079b00)(&mctx,0,0x88);" (call_expression "(*(code *)PTR_memset_00079b00)(&mctx,0,0x88)" (parenthesized_expression "(*(code *)PTR_memset_00079b00)" ( (pointer_expression "*(code *)PTR_memset_00079b00" * (cast_expression "(code *)PTR_memset_00079b00" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&mctx,0,0x88)" ( (pointer_expression "&mctx" & identifier) , number_literal , number_literal ))) ;) (expression_statement "local_148 = (anon_union_4_5_a39f51ca_for_opr)preg->fastmap;" (assignment_expression "local_148 = (anon_union_4_5_a39f51ca_for_opr)preg->fastmap" identifier = (cast_expression "(anon_union_4_5_a39f51ca_for_opr)preg->fastmap" ( (type_descriptor "anon_union_4_5_a39f51ca_for_opr" type_identifier) ) (field_expression "preg->fastmap" identifier -> field_identifier))) ;) (if_statement "if ((re_dfa_t *)local_148.sbcset != (re_dfa_t *)0x0) {\n    if ((preg->field_0x1c & 0x10) == 0) {\n      local_148.sbcset = (re_bitset_ptr_t)0x0;\n    }\n    else if (start == last_start) {\n      local_148.sbcset = (re_bitset_ptr_t)0x0;\n    }\n    else if ((char)preg->field_0x1c < '\0') {\n      local_148.sbcset = (re_bitset_ptr_t)0x0;\n    }\n  }" if (parenthesized_expression "((re_dfa_t *)local_148.sbcset != (re_dfa_t *)0x0)" ( (binary_expression "(re_dfa_t *)local_148.sbcset != (re_dfa_t *)0x0" (cast_expression "(re_dfa_t *)local_148.sbcset" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "local_148.sbcset" identifier . field_identifier)) != (cast_expression "(re_dfa_t *)0x0" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    if ((preg->field_0x1c & 0x10) == 0) {\n      local_148.sbcset = (re_bitset_ptr_t)0x0;\n    }\n    else if (start == last_start) {\n      local_148.sbcset = (re_bitset_ptr_t)0x0;\n    }\n    else if ((char)preg->field_0x1c < '\0') {\n      local_148.sbcset = (re_bitset_ptr_t)0x0;\n    }\n  }" { (if_statement "if ((preg->field_0x1c & 0x10) == 0) {\n      local_148.sbcset = (re_bitset_ptr_t)0x0;\n    }\n    else if (start == last_start) {\n      local_148.sbcset = (re_bitset_ptr_t)0x0;\n    }\n    else if ((char)preg->field_0x1c < '\0') {\n      local_148.sbcset = (re_bitset_ptr_t)0x0;\n    }" if (parenthesized_expression "((preg->field_0x1c & 0x10) == 0)" ( (binary_expression "(preg->field_0x1c & 0x10) == 0" (parenthesized_expression "(preg->field_0x1c & 0x10)" ( (binary_expression "preg->field_0x1c & 0x10" (field_expression "preg->field_0x1c" identifier -> field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n      local_148.sbcset = (re_bitset_ptr_t)0x0;\n    }" { (expression_statement "local_148.sbcset = (re_bitset_ptr_t)0x0;" (assignment_expression "local_148.sbcset = (re_bitset_ptr_t)0x0" (field_expression "local_148.sbcset" identifier . field_identifier) = (cast_expression "(re_bitset_ptr_t)0x0" ( (type_descriptor "re_bitset_ptr_t" type_identifier) ) number_literal)) ;) }) (else_clause "else if (start == last_start) {\n      local_148.sbcset = (re_bitset_ptr_t)0x0;\n    }\n    else if ((char)preg->field_0x1c < '\0') {\n      local_148.sbcset = (re_bitset_ptr_t)0x0;\n    }" else (if_statement "if (start == last_start) {\n      local_148.sbcset = (re_bitset_ptr_t)0x0;\n    }\n    else if ((char)preg->field_0x1c < '\0') {\n      local_148.sbcset = (re_bitset_ptr_t)0x0;\n    }" if (parenthesized_expression "(start == last_start)" ( (binary_expression "start == last_start" identifier == identifier) )) (compound_statement "{\n      local_148.sbcset = (re_bitset_ptr_t)0x0;\n    }" { (expression_statement "local_148.sbcset = (re_bitset_ptr_t)0x0;" (assignment_expression "local_148.sbcset = (re_bitset_ptr_t)0x0" (field_expression "local_148.sbcset" identifier . field_identifier) = (cast_expression "(re_bitset_ptr_t)0x0" ( (type_descriptor "re_bitset_ptr_t" type_identifier) ) number_literal)) ;) }) (else_clause "else if ((char)preg->field_0x1c < '\0') {\n      local_148.sbcset = (re_bitset_ptr_t)0x0;\n    }" else (if_statement "if ((char)preg->field_0x1c < '\0') {\n      local_148.sbcset = (re_bitset_ptr_t)0x0;\n    }" if (parenthesized_expression "((char)preg->field_0x1c < '\0')" ( (binary_expression "(char)preg->field_0x1c < '\0'" (cast_expression "(char)preg->field_0x1c" ( (type_descriptor "char" primitive_type) ) (field_expression "preg->field_0x1c" identifier -> field_identifier)) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      local_148.sbcset = (re_bitset_ptr_t)0x0;\n    }" { (expression_statement "local_148.sbcset = (re_bitset_ptr_t)0x0;" (assignment_expression "local_148.sbcset = (re_bitset_ptr_t)0x0" (field_expression "local_148.sbcset" identifier . field_identifier) = (cast_expression "(re_bitset_ptr_t)0x0" ( (type_descriptor "re_bitset_ptr_t" type_identifier) ) number_literal)) ;) })))))) })) (if_statement "if (preg->re_nsub < nmatch) {\n    local_118 = (nmatch - 1) - preg->re_nsub;\n  }\n  else {\n    local_118 = 0;\n  }" if (parenthesized_expression "(preg->re_nsub < nmatch)" ( (binary_expression "preg->re_nsub < nmatch" (field_expression "preg->re_nsub" identifier -> field_identifier) < identifier) )) (compound_statement "{\n    local_118 = (nmatch - 1) - preg->re_nsub;\n  }" { (expression_statement "local_118 = (nmatch - 1) - preg->re_nsub;" (assignment_expression "local_118 = (nmatch - 1) - preg->re_nsub" identifier = (binary_expression "(nmatch - 1) - preg->re_nsub" (parenthesized_expression "(nmatch - 1)" ( (binary_expression "nmatch - 1" identifier - number_literal) )) - (field_expression "preg->re_nsub" identifier -> field_identifier))) ;) }) (else_clause "else {\n    local_118 = 0;\n  }" else (compound_statement "{\n    local_118 = 0;\n  }" { (expression_statement "local_118 = 0;" (assignment_expression "local_118 = 0" identifier = number_literal) ;) }))) (expression_statement "aStack_1a0.idx = start;" (assignment_expression "aStack_1a0.idx = start" (field_expression "aStack_1a0.idx" identifier . field_identifier) = identifier) ;) (expression_statement "paStack_19c = (anon_union_4_5_a39f51ca_for_opr *)preg;" (assignment_expression "paStack_19c = (anon_union_4_5_a39f51ca_for_opr *)preg" identifier = (cast_expression "(anon_union_4_5_a39f51ca_for_opr *)preg" ( (type_descriptor "anon_union_4_5_a39f51ca_for_opr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "local_c4 = unaff_s8;" (assignment_expression "local_c4 = unaff_s8" identifier = identifier) ;) (expression_statement "mctx.dfa = prVar59;" (assignment_expression "mctx.dfa = prVar59" (field_expression "mctx.dfa" identifier . field_identifier) = identifier) ;) (if_statement "if (preg->used == 0) {\n    local_150.idx = 1;\n  }\n  else if (prVar59->init_state == (re_dfastate_t *)0x0) {\n    local_150.idx = 1;\n  }\n  else if (prVar59->init_state_word == (re_dfastate_t *)0x0) {\n    local_150.idx = 1;\n  }\n  else if (prVar59->init_state_nl == (re_dfastate_t *)0x0) {\n    local_150.idx = 1;\n  }\n  else {\n    aVar45 = (anon_union_4_5_a39f51ca_for_opr)prVar59->init_state_begbuf;\n    if ((re_dfa_t *)aVar45.sbcset == (re_dfa_t *)0x0) {\n      local_150.idx = 1;\n    }\n    else {\n      aVar4.idx = last_start;\n      if (((((prVar59->init_state->nodes).nelem == 0) &&\n           ((prVar59->init_state_word->nodes).nelem == 0)) &&\n          (((prVar59->init_state_nl->nodes).nelem == 0 || ((preg->field_0x1c & 1) == 0)))) &&\n         ((aVar4.idx = start, start != 0 &&\n          (start = last_start, aVar4.idx = last_start, last_start != 0)))) {\n        local_150.idx = 1;\n        aStack_1a0.idx = last_start;\n      }\n      else {\n        last_start = aVar4.idx;\n        aVar4.sbcset = (re_bitset_ptr_t)(nmatch - local_118);\n        if ((re_dfa_t *)aVar4.sbcset == (re_dfa_t *)0x0) {\n          paVar54 = (anon_union_4_5_a39f51ca_for_opr *)(uint)(prVar59->nbackref != 0);\n        }\n        else {\n          paVar54 = (anon_union_4_5_a39f51ca_for_opr *)0x1;\n        }\n        puVar50 = preg->translate;\n        mctx.input.icase = (uchar)((preg->syntax << 9) >> 0x1f);\n        mctx.input.mb_cur_max = prVar59->mb_cur_max;\n        aVar46.sbcset = (re_bitset_ptr_t)(prVar59->nodes_len + 1);\n        if (aVar46.idx < mctx.input.mb_cur_max) {\n          aVar46 = (anon_union_4_5_a39f51ca_for_opr)mctx.input.mb_cur_max;\n        }\n        aVar49.idx._0_3_ = 0;\n        aVar49.idx._3_1_ = ((re_bitset_ptr_t)(length + 1)).idx < aVar46.idx;\n        prVar51 = (re_dfa_t *)0x1;\n        mctx.input.mbs_allocated = mctx.input.icase;\n        if (puVar50 != (uchar *)0x0) {\n          mctx.input.mbs_allocated = 1;\n        }\n        mctx.input.is_utf8 = (uchar)((uint)(*(int *)&prVar59->field_0x58 << 2) >> 0x1f);\n        mctx.input.map_notascii = (uchar)((uint)(*(int *)&prVar59->field_0x58 << 3) >> 0x1f);\n        aVar45.sbcset = ((re_bitset_ptr_t)(length + 1)).sbcset;\n        if ((re_dfa_t *)aVar49.sbcset == (re_dfa_t *)0x0) {\n          aVar45 = aVar46;\n        }\n        mctx.input.raw_mbs = (uchar *)string;\n        mctx.input.raw_len = length;\n        mctx.input.len = length;\n        mctx.input.raw_stop = length;\n        mctx.input.stop = length;\n        mctx.input.trans = puVar50;\n        local_150.idx = re_string_realloc_buffers(&mctx.input,aVar45.idx);\n        aVar46.idx = start;\n        paVar18 = paVar54;\n        stop = stop;\n        if ((re_dfa_t *)local_150.sbcset != (re_dfa_t *)0x0) goto LAB_000557e4;\n        mctx.input.word_char = prVar59->word_char;\n        mctx.input.word_ops_used = (uchar)((uint)(*(int *)&prVar59->field_0x58 << 4) >> 0x1f);\n        paVar2 = (anon_union_4_5_a39f51ca_for_opr *)0x0;\n        mctx.input.valid_len = (Idx)paVar2;\n        if ((mctx.input.mbs_allocated == '\0') &&\n           (mctx.input.mbs = (uchar *)string, prVar59->mb_cur_max < 2)) {\n          mctx.input.valid_len = length;\n        }\n        mctx.input.stop = stop;\n        mctx.input.raw_stop = stop;\n        mctx.input.newline_anchor = (uchar)((uint)(*(int *)&preg->field_0x1c << 7) >> 0x1f);\n        iVar55 = prVar59->nbackref;\n        aVar56.idx = iVar55 * 2;\n        mctx.eflags = eflags;\n        mctx.match_last = -1;\n        mctx.input.valid_raw_len = mctx.input.valid_len;\n        if ((int)aVar56 < 1) {\nLAB_000559f0:\n          mctx.max_mb_elem_len = 1;\n          mctx.abkref_ents = aVar56.idx;\n          mctx.asub_tops = aVar56.idx;\n          if ((aVar4.sbcset < (re_dfa_t *)0x2) && ((prVar59->field_0x58 & 0x40) == 0)) {\n            mctx.state_log = (re_dfastate_t **)0x0;\nLAB_00055a40:\n            mctx.input.tip_context = 6;\n            if ((eflags & 1U) != 0) {\n              mctx.input.tip_context = 4;\n            }\n            aVar39.idx = 1;\n            aVar40.idx = start;\n            if (last_start < start) {\n              aVar39.idx = -1;\n              aVar40.idx = last_start;\n            }\n            aVar41.idx = last_start;\n            if (last_start <= start) {\n              aVar41.idx = start;\n            }\n            iVar55 = prVar59->mb_cur_max;\n            rVar20 = 8;\n            if ((re_dfa_t *)local_148.sbcset != (re_dfa_t *)0x0) {\n              if (iVar55 == 1) {\n                paVar43 = (anon_union_4_5_a39f51ca_for_opr *)0x4;\n              }\n              else {\n                paVar43 = paVar2;\n                if ((-1 < (int)(preg->syntax << 9)) && (puVar50 == (uchar *)0x0)) {\n                  paVar43 = (anon_union_4_5_a39f51ca_for_opr *)0x4;\n                }\n              }\n              aVar45.sbcset = (re_bitset_ptr_t)0x0;\n              if (start <= last_start) {\n                aVar45.idx = 2;\n              }\n              rVar20 = (uint)(puVar50 != (uchar *)0x0) | (uint)paVar43 | aVar45.ctx_type;\n            }\n            match_first = start;\n            if (start < aVar40.idx) {\n              local_150.idx = 1;\n              stop = aVar56.idx;\n            }\n            else {\n              aVar46.idx._0_3_ = 0;\n              aVar46.idx._3_1_ = last_start < start;\n              if (aVar41.idx < start) {\n                local_150.idx = 1;\n                stop = aVar56.idx;\n              }\n              else {\n                piVar38 = &match_first;\n                if ((re_dfa_t *)aVar46.sbcset != (re_dfa_t *)0x0) {\n                  piVar38 = (int *)0x0;\n                }\n                pcVar5 = (code *)(PTR_DAT_000799a4 + -0x2b7c);\n                piVar6 = (int *)(PTR_s_nt0_000795b8 + (rVar20 - 4) * 4 + 0x6e38);\nLAB_00055b44:\n                if (rVar20 - 4 < 5) {\n                    /* WARNING: Could not emulate address calculation at 0x00054920 */\n                    /* WARNING: Treating indirect jump as call */\n                  rVar21 = (*(code *)(&_gp + *piVar6))();\n                  return rVar21;\n                }\n                last_start = (Idx)&mctx;\n                prVar52 = prVar51;\n                while( true ) {\n                  aVar46.idx = match_first;\n                  uVar8 = match_first - mctx.input.raw_mbs_idx;\n                  aVar49 = (anon_union_4_5_a39f51ca_for_opr)eflags;\n                  paVar18 = paVar2;\n                  stop = local_148.idx;\n                  unaff_s4 = (re_dfa_t *)length;\n                  unaff_s5 = aVar39;\n                  unaff_s7 = aVar41;\n                  if ((uint)mctx.input.valid_raw_len <= uVar8) {\n                    aVar45.idx = match_first;\n                    local_150.sbcset = (re_bitset_ptr_t)(*pcVar5)(last_start);\n                    prVar51 = prVar52;\n                    if ((re_dfa_t *)local_150.sbcset != (re_dfa_t *)0x0) goto LAB_000557e4;\n                    uVar8 = (int)aVar46.sbcset - mctx.input.raw_mbs_idx;\n                  }\n                  if (aVar46.idx < length) {\n                    uVar8 = (uint)mctx.input.mbs[uVar8];\n                  }\n                  else {\n                    uVar8 = 0;\n                  }\n                  aVar56.sbcset = aVar46.sbcset + aVar39.sbcset;\n                  aVar46.sbcset = aVar56.sbcset;\n                  if (*(char *)((int)local_148.sbcset + uVar8) != '\0') break;\n                  prVar51 = prVar52;\n                  match_first = aVar56.idx;\n                  if (aVar56.idx < aVar40.idx) {\n                    local_150.idx = 1;\n                    goto LAB_000557e4;\n                  }\n                  aVar46.idx._0_3_ = 0;\n                  aVar46.idx._3_1_ = aVar41.idx < aVar56.idx;\n                  if ((re_dfa_t *)aVar46.sbcset != (re_dfa_t *)0x0) {\n                    local_150.idx = 1;\n                    goto LAB_000557e4;\n                  }\n                }\n                while( true ) {\n                  aVar45.idx = match_first;\n                  aVar49 = (anon_union_4_5_a39f51ca_for_opr)eflags;\n                  aVar7.sbcset = (re_bitset_ptr_t)(*pcVar5)(&mctx);\n                  aVar15 = (anon_union_4_5_a39f51ca_for_opr)mctx.dfa;\n                  aVar56.idx = mctx.input.cur_idx;\n                  prVar51 = prVar52;\n                  local_150.sbcset = aVar7.sbcset;\n                  if ((re_dfa_t *)aVar7.sbcset != (re_dfa_t *)0x0) goto LAB_000557e4;\n                  if (((iVar55 != 1) && (mctx.input.valid_len != 0)) &&\n                     (*mctx.input.wcs == 0xffffffff)) goto LAB_00055b1c;\n                  mctx.max_mb_elem_len = 0;\n                  mctx.nbkref_ents = 0;\n                  mctx.state_log_top = 0;\n                  local_138.idx = mctx.input.cur_idx;\n                  err = _REG_NOERROR;\n                  unaff_s7 = (anon_union_4_5_a39f51ca_for_opr)(mctx.dfa)->init_state;\n                  aVar49 = (anon_union_4_5_a39f51ca_for_opr)mctx.eflags;\n                  aVar46 = aVar15;\n                  if ((*(byte *)(unaff_s7.idx + 0x34) & 1) == 0) break;\n                  aVar45.sbcset = (re_bitset_ptr_t)(mctx.input.cur_idx + -1);\n                  prVar51 = (re_dfa_t *)re_string_context_at(&mctx.input,aVar45.idx,mctx.eflags);\n                  if (((uint)prVar51 & 1) == 0) {\n                    if (prVar51 == (re_dfa_t *)0x0) break;\n                    if (((uint)prVar51 & 6) == 6) {\n                      unaff_s7 = (anon_union_4_5_a39f51ca_for_opr)\n                                 ((re_dfa_t *)aVar15.idx)->init_state_begbuf;\n                      goto LAB_00054d1c;\n                    }\n                    if (((uint)prVar51 & 2) != 0) {\n                      unaff_s7 = (anon_union_4_5_a39f51ca_for_opr)\n                                 ((re_dfa_t *)aVar15.idx)->init_state_nl;\n                      goto LAB_00054d1c;\n                    }\n                    prVar52 = prVar51;\n                    if (((uint)prVar51 & 4) == 0) break;\n                    aVar49 = (anon_union_4_5_a39f51ca_for_opr)\n                             ((anon_union_4_5_a39f51ca_for_opr *)(unaff_s7.idx + 0x28))->mbcset;\n                    aVar45 = aVar15;\n                    unaff_s7.sbcset =\n                         &re_acquire_state_context\n                                    (&err,aVar15.sbcset,(re_node_set *)aVar49.mbcset,(uint)prVar51)\n                          ->hash;\n                    prVar52 = prVar51;\n                    if ((re_dfa_t *)unaff_s7.sbcset != (re_dfa_t *)0x0) break;\n                    if (err == _REG_ESPACE) goto LAB_00055914;\n                  }\n                  else {\n                    unaff_s7 = (anon_union_4_5_a39f51ca_for_opr)\n                               ((re_dfa_t *)aVar15.idx)->init_state_word;\nLAB_00054d1c:\n                    prVar52 = (re_dfa_t *)PTR_s_nt0_000795b8;\n                    if ((re_dfa_t *)unaff_s7.sbcset != (re_dfa_t *)0x0) break;\n                  }\n                  prVar52 = (re_dfa_t *)(PTR_s_nt0_000795b8 + 0x6eb0);\n                  aVar45.sbcset = (re_bitset_ptr_t)(PTR_s_nt0_000795b8 + 0x712c);\n                  match_first = (*(code *)PTR___assert_fail_000799f8)\n                                          (PTR_s_nt0_000795b8 + 0x71a0,aVar45.sbcset,0x435);\n                  if ((re_bitset_ptr_t)match_first == aVar41.sbcset) {\n                    if (match_first < length) {\n                      uVar8 = (uint)(byte)string[match_first];\n                    }\n                    else {\n                      uVar8 = 0;\n                    }\n                    if (puVar50 != (uchar *)0x0) {\n                      uVar8 = (uint)puVar50[uVar8];\n                    }\n                    if (*(char *)((int)local_148.sbcset + uVar8) == '\0') {\n                      local_150.idx = 1;\n                      aVar49 = (anon_union_4_5_a39f51ca_for_opr)eflags;\n                      prVar51 = prVar52;\n                      goto LAB_000557e4;\n                    }\n                  }\n                }\n                prVar51 = prVar52;\n                bVar36 = piVar38 != (int *)0x0;\n                if ((mctx.state_log == (re_dfastate_t **)0x0) ||\n                   (((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + aVar56.idx))->mbcset =\n                         (re_charset_t *)unaff_s7, ((re_dfa_t *)aVar15.idx)->nbackref == 0)) {\nLAB_00054d50:\n                  if ((int)*(bin_tree_t **)(unaff_s7.idx + 0x34) << 4 < 0) {\n                    if (((*(byte *)(unaff_s7.idx + 0x34) & 1) == 0) ||\n                       (aVar45 = unaff_s7, aVar49 = aVar56,\n                       IVar17 = check_halt_state_context(&mctx,unaff_s7.idx,aVar56.idx), IVar17 != 0\n                       )) {\n                      local_c4 = aVar56;\n                      if (paVar54 == (anon_union_4_5_a39f51ca_for_opr *)0x0) goto LAB_00055dbc;\n                      prVar52 = (re_dfa_t *)0x1;\n                    }\n                    else {\n                      aVar56.idx = -1;\n                      prVar52 = (re_dfa_t *)0x0;\n                    }\n                  }\n                  else {\n                    aVar56.idx = -1;\n                    prVar52 = (re_dfa_t *)0x0;\n                  }\n                  pcVar9 = (code *)(PTR_DAT_000799a4 + -0x7144);\n                  pcVar10 = (code *)(PTR_DAT_000799a4 + -0x1980);\n                  pcVar11 = (code *)(PTR_DAT_000799a4 + -0x2f9c);\n                  local_c4 = aVar56;\n                  local_144 = piVar38;\n                  while( true ) {\n                    uVar63 = CONCAT44(mctx.input.valid_len,mctx.input.len);\n                    unaff_s5.sbcset = (re_bitset_ptr_t)(mctx.input.cur_idx + 1);\n                    aVar45.idx = mctx.input.cur_idx;\n                    if (mctx.input.stop <= mctx.input.cur_idx) break;\n                    if ((mctx.input.bufs_len <= unaff_s5.idx) &&\n                       (mctx.input.bufs_len < mctx.input.len)) goto LAB_00054e94;\n                    if (mctx.input.valid_len <= unaff_s5.idx) {\n                      while ((int)((ulonglong)uVar63 >> 0x20) < (int)uVar63) {\nLAB_00054e94:\n                        aVar45.sbcset =\n                             (re_bitset_ptr_t)\n                             ((int)&((re_string_t *)&(aVar45.mbcset)->mbchars)->raw_mbs + 2);\n                        err = (*pcVar9)(&mctx);\n                        if (err == _REG_NOERROR) break;\n                        aVar15 = aVar46;\n                        if (err == _REG_ESPACE) goto LAB_00055914;\n                        prVar51 = (re_dfa_t *)(PTR_s_nt0_000795b8 + 0x6eb0);\n                        aVar49.idx = 0x46c;\n                        aVar45.sbcset = (re_bitset_ptr_t)(PTR_s_nt0_000795b8 + 0x712c);\n                        uVar63 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0);\n                        prVar52 = prVar59;\n                      }\n                    }\n                    prVar3 = mctx.dfa;\n                    if ((int)*(bin_tree_t **)(unaff_s7.idx + 0x34) << 5 < 0) {\n                      paVar18 = (anon_union_4_5_a39f51ca_for_opr *)prVar3;\n                      if (0 < (int)(unaff_s7.mbcset)->range_ends) {\n                        pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6fdc);\n                        pcVar13 = (code *)(PTR_DAT_000799a4 + -0x6ef0);\n                        stop = 0;\n                        do {\n                          last_start = ((anon_union_4_5_a39f51ca_for_opr *)\n                                       ((unaff_s7.mbcset)->char_classes + stop))->idx;\n                          prVar53 = prVar3->nodes;\n                          uVar8 = *(uint *)&prVar53[last_start].field_0x4;\n                          if ((uVar8 & 0x800) != 0) {\n                            if ((uVar8 & 0xffc000) != 0) {\n                              aVar45.idx = mctx.input.cur_idx;\n                              uVar60 = (*pcVar13)(&mctx,mctx.input.cur_idx,mctx.eflags);\n                              uVar8 = (uint)(*(int *)&prVar53[last_start].field_0x4 << 8) >> 0x16;\n                              if ((uVar8 & 4) == 0) {\n                                uVar26 = uVar60 & 1;\n                                if ((uVar8 & 8) != 0) goto joined_r0x00054f40;\n                              }\n                              else {\n                                uVar26 = uVar8 & 8;\n                                if ((uVar60 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                                if (uVar26 != 0) goto LAB_000550a4;\n                              }\n                              if ((((uVar8 & 0x20) != 0) && ((uVar60 & 2) == 0)) ||\n                                 (((uVar8 & 0x80) != 0 &&\n                                  (prVar51 = (re_dfa_t *)mctx.input.cur_idx, (uVar60 & 8) == 0))))\n                              goto LAB_000550a4;\n                            }\n                            aVar49.sbcset = (re_bitset_ptr_t)&mctx;\n                            aVar45.idx = last_start;\n                            prVar51 = (re_dfa_t *)mctx.input.cur_idx;\n                            iVar61 = (*pcVar11)(prVar3);\n                            if (iVar61 != 0) {\n                              aVar46.sbcset = (re_bitset_ptr_t)(iVar61 + mctx.input.cur_idx);\n                              if (iVar61 <= mctx.max_mb_elem_len) {\n                                iVar61 = mctx.max_mb_elem_len;\n                              }\n                              aVar45.sbcset = aVar46.sbcset;\n                              mctx.max_mb_elem_len = iVar61;\n                              err_1 = (*pcVar12)(&mctx);\n                              rVar21 = err_1;\n                              if (err_1 != _REG_NOERROR) goto LAB_00055e44;\n                              aVar49.sbcset =\n                                   (re_bitset_ptr_t)(prVar3->eclosures + prVar3->nexts[last_start]);\n                              unaff_s4 = (re_dfa_t *)(aVar46.idx * 4);\n                              last_start = (Idx)(mctx.state_log + aVar46.idx);\n                              if (*(bitset_word_t *)last_start == 0) {\n                                dest_nodes.alloc = *aVar49.sbcset;\n                                dest_nodes.nelem =\n                                     ((re_node_set *)&(aVar49.mbcset)->range_starts)->alloc;\n                                dest_nodes.elems = (aVar49.mbcset)->range_ends;\n                                prVar51 = (re_dfa_t *)\n                                          (*pcVar13)(&mctx,(undefined1 *)(aVar46.idx + -1),\n                                                     mctx.eflags);\n                                aVar49.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                                aVar45 = (anon_union_4_5_a39f51ca_for_opr)prVar3;\n                                prVar35 = re_acquire_state_context\n                                                    (&err_1,prVar3,(re_node_set *)aVar49.mbcset,\n                                                     (uint)prVar51);\n                                ((re_string_t *)&((re_charset_t *)last_start)->mbchars)->raw_mbs =\n                                     (uchar *)prVar35;\n                              }\n                              else {\n                                aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                                         ((anon_union_4_5_a39f51ca_for_opr *)\n                                         (*(bitset_word_t *)last_start + 0x28))->mbcset;\n                                err_1 = re_node_set_init_union\n                                                  (&dest_nodes,(re_node_set *)aVar45.mbcset,\n                                                   (re_node_set *)aVar49.mbcset);\n                                rVar21 = err_1;\n                                if (err_1 != _REG_NOERROR) goto LAB_00055e44;\n                                prVar51 = (re_dfa_t *)\n                                          (*pcVar13)(&mctx,(undefined1 *)(aVar46.idx + -1),\n                                                     mctx.eflags);\n                                pprVar14 = mctx.state_log + aVar46.idx;\n                                aVar49.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                                aVar45 = (anon_union_4_5_a39f51ca_for_opr)prVar3;\n                                prVar35 = re_acquire_state_context\n                                                    (&err_1,prVar3,(re_node_set *)aVar49.mbcset,\n                                                     (uint)prVar51);\n                                *pprVar14 = prVar35;\n                                (*(code *)PTR_free_00079c24)(dest_nodes.elems);\n                              }\n                              unaff_s4 = (re_dfa_t *)(mctx.state_log + aVar46.idx);\n                              if ((unaff_s4->nodes == (re_token_t *)0x0) &&\n                                 (rVar21 = err_1, err_1 != _REG_NOERROR)) goto LAB_00055e44;\n                            }\n                          }\nLAB_000550a4:\n                          stop = (int)&((re_string_t *)&((re_charset_t *)stop)->mbchars)->raw_mbs +\n                                 1;\n                        } while (stop < (int)(unaff_s7.mbcset)->range_ends);\n                      }\n                      err = _REG_NOERROR;\n                    }\n                    uVar8 = (uint)mctx.input.mbs[mctx.input.cur_idx];\n                    mctx.input.cur_idx = mctx.input.cur_idx + 1;\n                    do {\n                      if (*(re_dfastate_t **)(unaff_s7.idx + 0x2c) != (re_dfastate_t *)0x0) {\n                        aVar49 = (anon_union_4_5_a39f51ca_for_opr)\n                                 ((anon_union_4_5_a39f51ca_for_opr *)\n                                 (&(*(re_dfastate_t **)(unaff_s7.idx + 0x2c))->hash + uVar8))->\n                                 mbcset;\nLAB_000553a0:\n                        aVar15 = aVar49;\n                        if (mctx.state_log != (re_dfastate_t **)0x0) goto LAB_000553ac;\n                        goto LAB_000553cc;\n                      }\n                      paVar18 = *(anon_union_4_5_a39f51ca_for_opr **)(unaff_s7.idx + 0x30);\n                      if (paVar18 != (anon_union_4_5_a39f51ca_for_opr *)0x0) {\n                        aVar45.sbcset = (re_bitset_ptr_t)(mctx.input.cur_idx + -1);\n                        uVar60 = re_string_context_at(&mctx.input,aVar45.idx,mctx.eflags);\n                        if ((uVar60 & 1) == 0) {\n                          aVar49 = (anon_union_4_5_a39f51ca_for_opr)paVar18[uVar8].mbcset;\n                        }\n                        else {\n                          paVar18 = paVar18 + uVar8 + 0x100;\n                          aVar49 = (anon_union_4_5_a39f51ca_for_opr)paVar18->mbcset;\n                        }\n                        goto LAB_000553a0;\n                      }\n                      aVar45 = unaff_s7;\n                      aVar49 = (anon_union_4_5_a39f51ca_for_opr)mctx.eflags;\n                      iVar61 = (*pcVar10)(mctx.dfa);\n                    } while (iVar61 != 0);\n                    err = _REG_ESPACE;\n                    rVar21 = err;\nLAB_00055e44:\n                    err = rVar21;\n                    aVar46.sbcset = (re_bitset_ptr_t)0x0;\n                    if (mctx.state_log == (re_dfastate_t **)0x0) {\n                      aVar15.sbcset = aVar46.sbcset;\n                      if (err != _REG_NOERROR) goto LAB_00055914;\n                      break;\n                    }\n                    aVar49.sbcset = (re_bitset_ptr_t)0x0;\nLAB_000553ac:\n                    aVar45.sbcset = (re_bitset_ptr_t)&mctx;\n                    aVar15.sbcset =\n                         &merge_state_with_log\n                                    (&err,(re_match_context_t *)aVar45.mbcset,aVar49.sbcset)->hash;\nLAB_000553cc:\n                    aVar46 = aVar15;\n                    if ((re_dfa_t *)aVar15.sbcset == (re_dfa_t *)0x0) {\n                      if (err != _REG_NOERROR) goto LAB_00055914;\n                      if ((mctx.state_log == (re_dfastate_t **)0x0) ||\n                         ((prVar52 != (re_dfa_t *)0x0 &&\n                          (paVar54 == (anon_union_4_5_a39f51ca_for_opr *)0x0)))) break;\n                      stop = (Idx)&mctx;\n                      last_start = (Idx)&err;\n                      paVar18 = (anon_union_4_5_a39f51ca_for_opr *)(PTR_DAT_000799a4 + 0x3684);\n                      do {\n                        pprVar14 = mctx.state_log + mctx.input.cur_idx;\n                        IVar17 = mctx.input.cur_idx;\n                        do {\n                          IVar17 = IVar17 + 1;\n                          aVar45.idx = mctx.state_log_top;\n                          aVar46 = aVar15;\n                          if (mctx.state_log_top < IVar17) goto LAB_00055da8;\n                          mctx.input.cur_idx = mctx.input.cur_idx + 1;\n                          pprVar14 = pprVar14 + 1;\n                        } while (*pprVar14 == (re_dfastate_t *)0x0);\n                        aVar49.sbcset = (re_bitset_ptr_t)0x0;\n                        aVar45.sbcset = (re_bitset_ptr_t)stop;\n                        aVar46.sbcset = (re_bitset_ptr_t)(*(code *)paVar18)(last_start);\n                        if (err != _REG_NOERROR) {\n                          if ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0) goto LAB_00055da8;\n                          break;\n                        }\n                        aVar45.idx = mctx.state_log_top;\n                      } while ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0);\n                    }\n                    aVar16.ctx_type = unaff_s7.ctx_type ^ aVar46.ctx_type;\n                    aVar56 = unaff_s7;\n                    aVar15 = local_138;\n                    if ((bVar36) &&\n                       (aVar56.ctx_type = aVar16.ctx_type, aVar15.sbcset = unaff_s5.sbcset,\n                       (re_dfa_t *)aVar16.sbcset != (re_dfa_t *)0x0)) {\n                      bVar36 = false;\n                      aVar15 = local_138;\n                    }\n                    local_138 = aVar15;\n                    unaff_s7 = aVar46;\n                    if (((*(byte *)(aVar46.idx + 0x34) & 8) != 0) &&\n                       (((*(byte *)(aVar46.idx + 0x34) & 1) == 0 ||\n                        (aVar45 = aVar46, aVar49.idx = mctx.input.cur_idx,\n                        IVar17 = check_halt_state_context(&mctx,aVar46.idx,mctx.input.cur_idx),\n                        IVar17 != 0)))) {\n                      unaff_s7 = aVar56;\n                      local_c4.idx = mctx.input.cur_idx;\n                      if (paVar54 == (anon_union_4_5_a39f51ca_for_opr *)0x0) goto LAB_00055dbc;\n                      prVar52 = (re_dfa_t *)0x1;\n                      local_144 = (int *)0x0;\n                      unaff_s7 = aVar46;\n                    }\n                  }\nLAB_00055da8:\n                  if (local_144 != (int *)0x0) {\n                    *local_144 = *local_144 + (int)local_138.sbcset;\n                  }\n                }\n                else {\n                  aVar46.sbcset = (re_bitset_ptr_t)&(unaff_s7.mbcset)->range_starts;\n                  aVar49.sbcset = (re_bitset_ptr_t)0x0;\n                  aVar45 = aVar46;\n                  err = check_subexp_matching_top(&mctx,(re_node_set *)aVar46.mbcset,0);\n                  local_c4.idx = err;\n                  if ((re_dfa_t *)err == (re_dfa_t *)0x0) {\n                    if ((*(byte *)(unaff_s7.idx + 0x34) & 2) == 0) {\n                      aVar45 = aVar46;\n                      bVar36 = false;\n                    }\n                    else {\n                      aVar45 = aVar46;\n                      err = transit_state_bkref(&mctx,(re_node_set *)aVar46.mbcset);\n                      local_c4.idx = err;\n                      if ((re_dfa_t *)err != (re_dfa_t *)0x0) goto LAB_00055dbc;\n                      bVar36 = false;\n                    }\n                    goto LAB_00054d50;\n                  }\n                }\nLAB_00055dbc:\n                if ((re_dfa_t *)local_c4.sbcset == (re_dfa_t *)0xffffffff) {\nLAB_00055b04:\n                  match_ctx_clean(&mctx);\nLAB_00055b1c:\n                  match_first = aVar39.idx + match_first;\n                  if (aVar40.idx <= match_first) goto code_r0x00055b38;\n                  local_150.idx = 1;\n                  goto LAB_000557e4;\n                }\n                if ((re_dfa_t *)local_c4.sbcset == (re_dfa_t *)&SUB_fffffffe) {\n                  local_150.idx = 0xc;\n                  goto LAB_000557e4;\n                }\n                mctx.match_last = local_c4.idx;\n                if ((preg->field_0x1c & 8) == 0) {\n                  if (aVar4.sbcset < (re_dfa_t *)0x2) {\n                    if (prVar59->nbackref == 0) goto LAB_00055c08;\n                    aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                             ((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + local_c4.idx))->\n                             mbcset;\n                    aVar49 = local_c4;\n                    mctx.last_node =\n                         check_halt_state_context(&mctx,(re_dfastate_t *)aVar45.mbcset,local_c4.idx)\n                    ;\n                  }\n                  else {\n                    aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                             ((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + local_c4.idx))->\n                             mbcset;\n                    aVar49 = local_c4;\n                    mctx.last_node =\n                         check_halt_state_context(&mctx,(re_dfastate_t *)aVar45.mbcset,local_c4.idx)\n                    ;\n                  }\n                  if (aVar4.sbcset < (re_dfa_t *)0x2) {\nLAB_00055c6c:\n                    prVar52 = prVar51;\n                    unaff_s4 = mctx.dfa;\n                    if (prVar59->nbackref == 0) goto LAB_00055548;\n                  }\n                  else {\n                    cVar37 = prVar59->field_0x58;\nLAB_00055c20:\n                    prVar52 = prVar51;\n                    if (-1 < cVar37) goto LAB_00055c6c;\n                  }\n                  paVar18 = (anon_union_4_5_a39f51ca_for_opr *)mctx.last_node;\n                  prVar3 = mctx.dfa;\n                  unaff_s4 = prVar3;\n                  if ((uint)local_c4 < (re_dfa_t *)0x3fffffff) {\n                    aVar46.idx = (int)((int)&((re_string_t *)&(local_c4.mbcset)->mbchars)->raw_mbs +\n                                      1) * 4;\n                    unaff_s5.sbcset = (re_bitset_ptr_t)(*(code *)PTR_malloc_00079b54)(aVar46.sbcset)\n                    ;\n                    if ((re_dfa_t *)unaff_s5.sbcset == (re_dfa_t *)0x0) {\nLAB_00055b9c:\n                      (*(code *)PTR_free_00079c24)(unaff_s5.sbcset);\n                      local_150.idx = 0xc;\n                      prVar51 = prVar52;\n                    }\n                    else {\n                      aVar45.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                      if (prVar3->nbackref == 0) {\n                        dest_nodes.nelem = 0;\n                        dest_nodes.elems = &paVar18->idx;\n                        dest_nodes.alloc = (Idx)unaff_s5.sbcset;\n                        last_start = sift_states_backward(&mctx,(re_sift_context_t *)aVar45.mbcset);\n                        (*(code *)PTR_free_00079c24)(0);\n                        if ((re_dfa_t *)last_start == (re_dfa_t *)0x0) {\n                          aVar46.mbcset = (re_charset_t *)*unaff_s5.sbcset;\n                          if ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0) {\nLAB_00055b70:\n                            (*(code *)PTR_free_00079c24)(unaff_s5.sbcset);\n                            (*(code *)PTR_free_00079c24)(aVar46.sbcset);\n                            prVar51 = prVar52;\n                            goto LAB_00055b04;\n                          }\nLAB_00055528:\n                          (*(code *)PTR_free_00079c24)(mctx.state_log);\n                          prVar51 = prVar52;\n                          unaff_s4 = prVar3;\n                          mctx.match_last = local_c4.idx;\n                          mctx.last_node = (Idx)paVar18;\n                          mctx.state_log = (re_dfastate_t **)unaff_s5.sbcset;\n                          goto LAB_00055548;\n                        }\nLAB_00055acc:\n                        aVar46.sbcset = (re_bitset_ptr_t)0x0;\n                        prVar51 = prVar52;\n                        unaff_s4 = prVar3;\n                      }\n                      else {\n                        aVar46.sbcset =\n                             (re_bitset_ptr_t)(*(code *)PTR_malloc_00079b54)(aVar46.sbcset);\n                        if ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0) goto LAB_00055b9c;\n                        unaff_s7.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                        pcVar9 = (code *)(PTR_DAT_000799a4 + 0x421c);\n                        pcVar10 = (code *)(PTR_DAT_000799a4 + -0x6bc0);\n                        prVar51 = prVar52;\n                        while( true ) {\n                          prVar52 = (re_dfa_t *)(local_c4.idx + 1);\n                          stop = (int)prVar52 * 4;\n                          aVar49.idx = stop;\n                          (*(code *)PTR_memset_00079b00)(aVar46.sbcset,0);\n                          aVar45.sbcset = unaff_s7.sbcset;\n                          dest_nodes.alloc = (Idx)unaff_s5.sbcset;\n                          dest_nodes.nelem = (Idx)aVar46.sbcset;\n                          dest_nodes.elems = (Idx *)paVar18;\n                          last_start = (*pcVar9)(&mctx);\n                          (*(code *)PTR_free_00079c24)(0);\n                          unaff_s4 = prVar52;\n                          if ((re_dfa_t *)last_start != (re_dfa_t *)0x0) break;\n                          if ((*unaff_s5.sbcset != 0) || (stop = stop + -4, *aVar46.sbcset != 0)) {\n                            aVar45.sbcset = unaff_s5.sbcset;\n                            aVar49.sbcset = aVar46.sbcset;\n                            last_start = merge_state_array(prVar3,(re_dfastate_t **)unaff_s5.sbcset,\n                                                           (re_dfastate_t **)aVar46.sbcset,\n                                                           (Idx)prVar52);\n                            (*(code *)PTR_free_00079c24)(aVar46.sbcset);\n                            if ((re_dfa_t *)last_start != (re_dfa_t *)0x0) goto LAB_00055acc;\n                            goto LAB_00055528;\n                          }\n                          stop = (Idx)(mctx.state_log + (int)&prVar52[-1].lock.__align + 0x17);\n                          do {\n                            while( true ) {\n                              local_c4.sbcset = (re_bitset_ptr_t)(local_c4.idx + -1);\n                              if (local_c4.idx < 0) goto LAB_00055b70;\n                              aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                                       ((anon_union_4_5_a39f51ca_for_opr *)(stop + -4))->idx;\n                              if ((re_dfa_t *)aVar45.sbcset != (re_dfa_t *)0x0) break;\n                              stop = stop + -4;\n                            }\n                            stop = stop + -4;\n                          } while ((*(byte *)(aVar45.idx + 0x34) & 8) == 0);\n                          paVar18 = (anon_union_4_5_a39f51ca_for_opr *)\n                                    (*pcVar10)(&mctx,aVar45.sbcset,local_c4.sbcset);\n                          prVar51 = prVar52;\n                        }\n                      }\n                      (*(code *)PTR_free_00079c24)(unaff_s5.sbcset);\n                      (*(code *)PTR_free_00079c24)(aVar46.sbcset);\n                      local_150.idx = last_start;\n                      if ((re_dfa_t *)last_start == (re_dfa_t *)0x1) goto LAB_00055b04;\n                    }\n                  }\n                  else {\n                    local_150.idx = 0xc;\n                    prVar51 = prVar52;\n                  }\n                  goto LAB_000557e4;\n                }\n                if (prVar59->nbackref != 0) {\n                  aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                           ((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + local_c4.idx))->\n                           mbcset;\n                  aVar49 = local_c4;\n                  mctx.last_node =\n                       check_halt_state_context(&mctx,(re_dfastate_t *)aVar45.mbcset,local_c4.idx);\n                  goto LAB_00055c6c;\n                }\nLAB_00055c08:\n                if (((preg->field_0x1c & 8) == 0) && ((re_dfa_t *)0x1 < aVar4.sbcset)) {\n                  cVar37 = prVar59->field_0x58;\n                  goto LAB_00055c20;\n                }\nLAB_00055548:\n                if ((re_dfa_t *)aVar4.sbcset == (re_dfa_t *)0x0) goto LAB_000557e4;\n                if (aVar4.sbcset < (re_dfa_t *)0x2) {\n                  pmatch->rm_so = 0;\n                  pmatch->rm_eo = mctx.match_last;\n                  goto LAB_000555ac;\n                }\n                prVar19 = pmatch + 1;\n                do {\n                  prVar19->rm_eo = -1;\n                  prVar19->rm_so = -1;\n                  prVar19 = prVar19 + 1;\n                } while (prVar19 != pmatch + aVar4.idx);\n                pmatch->rm_so = 0;\n                pmatch->rm_eo = mctx.match_last;\n                if ((preg->field_0x1c & 8) != 0) {\nLAB_000555ac:\n                  prVar19 = pmatch;\n                  do {\n                    aVar45.sbcset = (re_bitset_ptr_t)prVar19->rm_so;\n                    if ((re_dfa_t *)aVar45.sbcset != (re_dfa_t *)0xffffffff) {\n                      if (mctx.input.offsets_needed != '\0') {\n                        rVar47 = mctx.input.valid_raw_len;\n                        if (aVar45.sbcset != (re_bitset_ptr_t)mctx.input.valid_len) {\n                          rVar47 = mctx.input.offsets[aVar45.idx];\n                        }\n                        prVar19->rm_so = rVar47;\n                        rVar47 = mctx.input.valid_raw_len;\n                        if (mctx.input.valid_len != prVar19->rm_eo) {\n                          rVar47 = mctx.input.offsets[prVar19->rm_eo];\n                        }\n                        prVar19->rm_eo = rVar47;\n                      }\n                      prVar19->rm_so = prVar19->rm_so + match_first;\n                      aVar45.sbcset = (re_bitset_ptr_t)(prVar19->rm_eo + match_first);\n                      prVar19->rm_eo = (regoff_t)aVar45;\n                    }\n                    prVar19 = prVar19 + 1;\n                  } while (prVar19 != pmatch + aVar4.idx);\n                  if (0 < local_118) {\n                    prVar19 = pmatch + aVar4.idx;\n                    do {\n                      prVar19->rm_so = -1;\n                      prVar19->rm_eo = -1;\n                      prVar19 = prVar19 + 1;\n                    } while (prVar19 != pmatch + nmatch);\n                  }\n                  aVar49.idx = match_first;\n                  prVar51 = (re_dfa_t *)pmatch;\n                  local_150.sbcset = aVar7.sbcset;\n                  if (prVar59->subexp_map != (Idx *)0x0) {\n                    aVar49.sbcset = (re_bitset_ptr_t)(aVar4.idx + -1);\n                    prVar52 = (re_dfa_t *)0x0;\n                    prVar19 = pmatch;\n                    while( true ) {\n                      aVar45.idx = (int)prVar52 * 4;\n                      if ((re_dfa_t *)aVar49.sbcset == prVar52) break;\n                      if ((re_dfa_t *)prVar59->subexp_map[(int)prVar52] != prVar52) {\n                        prVar19[1].rm_so =\n                             pmatch[(int)((int)&((re_string_t *)\n                                                &((re_dfa_t *)prVar59->subexp_map[(int)prVar52])->\n                                                 nodes)->raw_mbs + 1)].rm_so;\n                        prVar19[1].rm_eo = pmatch[prVar59->subexp_map[(int)prVar52] + 1].rm_eo;\n                      }\n                      prVar52 = (re_dfa_t *)((int)&((re_string_t *)&prVar52->nodes)->raw_mbs + 1);\n                      prVar19 = prVar19 + 1;\n                    }\n                  }\n                  goto LAB_000557e4;\n                }\n                if ((char)prVar59->field_0x58 < '\0') {\n                  bVar36 = 0 < prVar59->nbackref;\n                }\n                else {\n                  bVar36 = false;\n                }\n                aVar45.sbcset = (re_bitset_ptr_t)&mctx;\n                aVar49.sbcset = aVar4.sbcset;\n                prVar51 = (re_dfa_t *)pmatch;\n                local_150.idx =\n                     set_regs(preg,(re_match_context_t *)aVar45.mbcset,aVar4.ctx_type,pmatch,bVar36)\n                ;\n                if ((re_dfa_t *)local_150.sbcset == (re_dfa_t *)0x0) goto LAB_000555ac;\n              }\n            }\n          }\n          else if ((uint)mctx.input.bufs_len < 0x3fffffff) {\n            mctx.state_log =\n                 (re_dfastate_t **)(*(code *)PTR_malloc_00079b54)((mctx.input.bufs_len + 1) * 4);\n            if (mctx.state_log != (re_dfastate_t **)0x0) goto LAB_00055a40;\n            local_150.idx = 0xc;\n            stop = aVar56.idx;\n          }\n          else {\n            local_150.idx = 0xc;\n            stop = aVar56.idx;\n          }\n        }\n        else {\n          unaff_s5.idx = iVar55 * 8;\n          if (aVar56.sbcset < (re_dfa_t *)0xccccccd) {\n            unaff_s4 = (re_dfa_t *)(*(code *)PTR_malloc_00079b54)(iVar55 * 0x28);\n            mctx.bkref_ents = (re_backref_cache_entry *)unaff_s4;\n            mctx.sub_tops = (re_sub_match_top_t **)(*(code *)PTR_malloc_00079b54)(unaff_s5.sbcset);\n            if ((unaff_s4 != (re_dfa_t *)0x0) && (mctx.sub_tops != (re_sub_match_top_t **)0x0))\n            goto LAB_000559f0;\n          }\n          local_150.idx = 0xc;\n          stop = aVar56.idx;\n        }\nLAB_000557e4:\n        (*(code *)PTR_free_00079c24)(mctx.state_log);\n        preg = (regex_t *)aVar49;\n        if (prVar59->nbackref != 0) {\n          match_ctx_clean(&mctx);\n          (*(code *)PTR_free_00079c24)(mctx.sub_tops);\n          (*(code *)PTR_free_00079c24)(mctx.bkref_ents);\n          preg = (regex_t *)aVar49;\n        }\n        re_string_destruct(&mctx.input);\n        aStack_1a0 = aVar46;\n        paStack_19c = paVar18;\n      }\n    }\n  }" if (parenthesized_expression "(preg->used == 0)" ( (binary_expression "preg->used == 0" (field_expression "preg->used" identifier -> field_identifier) == number_literal) )) (compound_statement "{\n    local_150.idx = 1;\n  }" { (expression_statement "local_150.idx = 1;" (assignment_expression "local_150.idx = 1" (field_expression "local_150.idx" identifier . field_identifier) = number_literal) ;) }) (else_clause "else if (prVar59->init_state == (re_dfastate_t *)0x0) {\n    local_150.idx = 1;\n  }\n  else if (prVar59->init_state_word == (re_dfastate_t *)0x0) {\n    local_150.idx = 1;\n  }\n  else if (prVar59->init_state_nl == (re_dfastate_t *)0x0) {\n    local_150.idx = 1;\n  }\n  else {\n    aVar45 = (anon_union_4_5_a39f51ca_for_opr)prVar59->init_state_begbuf;\n    if ((re_dfa_t *)aVar45.sbcset == (re_dfa_t *)0x0) {\n      local_150.idx = 1;\n    }\n    else {\n      aVar4.idx = last_start;\n      if (((((prVar59->init_state->nodes).nelem == 0) &&\n           ((prVar59->init_state_word->nodes).nelem == 0)) &&\n          (((prVar59->init_state_nl->nodes).nelem == 0 || ((preg->field_0x1c & 1) == 0)))) &&\n         ((aVar4.idx = start, start != 0 &&\n          (start = last_start, aVar4.idx = last_start, last_start != 0)))) {\n        local_150.idx = 1;\n        aStack_1a0.idx = last_start;\n      }\n      else {\n        last_start = aVar4.idx;\n        aVar4.sbcset = (re_bitset_ptr_t)(nmatch - local_118);\n        if ((re_dfa_t *)aVar4.sbcset == (re_dfa_t *)0x0) {\n          paVar54 = (anon_union_4_5_a39f51ca_for_opr *)(uint)(prVar59->nbackref != 0);\n        }\n        else {\n          paVar54 = (anon_union_4_5_a39f51ca_for_opr *)0x1;\n        }\n        puVar50 = preg->translate;\n        mctx.input.icase = (uchar)((preg->syntax << 9) >> 0x1f);\n        mctx.input.mb_cur_max = prVar59->mb_cur_max;\n        aVar46.sbcset = (re_bitset_ptr_t)(prVar59->nodes_len + 1);\n        if (aVar46.idx < mctx.input.mb_cur_max) {\n          aVar46 = (anon_union_4_5_a39f51ca_for_opr)mctx.input.mb_cur_max;\n        }\n        aVar49.idx._0_3_ = 0;\n        aVar49.idx._3_1_ = ((re_bitset_ptr_t)(length + 1)).idx < aVar46.idx;\n        prVar51 = (re_dfa_t *)0x1;\n        mctx.input.mbs_allocated = mctx.input.icase;\n        if (puVar50 != (uchar *)0x0) {\n          mctx.input.mbs_allocated = 1;\n        }\n        mctx.input.is_utf8 = (uchar)((uint)(*(int *)&prVar59->field_0x58 << 2) >> 0x1f);\n        mctx.input.map_notascii = (uchar)((uint)(*(int *)&prVar59->field_0x58 << 3) >> 0x1f);\n        aVar45.sbcset = ((re_bitset_ptr_t)(length + 1)).sbcset;\n        if ((re_dfa_t *)aVar49.sbcset == (re_dfa_t *)0x0) {\n          aVar45 = aVar46;\n        }\n        mctx.input.raw_mbs = (uchar *)string;\n        mctx.input.raw_len = length;\n        mctx.input.len = length;\n        mctx.input.raw_stop = length;\n        mctx.input.stop = length;\n        mctx.input.trans = puVar50;\n        local_150.idx = re_string_realloc_buffers(&mctx.input,aVar45.idx);\n        aVar46.idx = start;\n        paVar18 = paVar54;\n        stop = stop;\n        if ((re_dfa_t *)local_150.sbcset != (re_dfa_t *)0x0) goto LAB_000557e4;\n        mctx.input.word_char = prVar59->word_char;\n        mctx.input.word_ops_used = (uchar)((uint)(*(int *)&prVar59->field_0x58 << 4) >> 0x1f);\n        paVar2 = (anon_union_4_5_a39f51ca_for_opr *)0x0;\n        mctx.input.valid_len = (Idx)paVar2;\n        if ((mctx.input.mbs_allocated == '\0') &&\n           (mctx.input.mbs = (uchar *)string, prVar59->mb_cur_max < 2)) {\n          mctx.input.valid_len = length;\n        }\n        mctx.input.stop = stop;\n        mctx.input.raw_stop = stop;\n        mctx.input.newline_anchor = (uchar)((uint)(*(int *)&preg->field_0x1c << 7) >> 0x1f);\n        iVar55 = prVar59->nbackref;\n        aVar56.idx = iVar55 * 2;\n        mctx.eflags = eflags;\n        mctx.match_last = -1;\n        mctx.input.valid_raw_len = mctx.input.valid_len;\n        if ((int)aVar56 < 1) {\nLAB_000559f0:\n          mctx.max_mb_elem_len = 1;\n          mctx.abkref_ents = aVar56.idx;\n          mctx.asub_tops = aVar56.idx;\n          if ((aVar4.sbcset < (re_dfa_t *)0x2) && ((prVar59->field_0x58 & 0x40) == 0)) {\n            mctx.state_log = (re_dfastate_t **)0x0;\nLAB_00055a40:\n            mctx.input.tip_context = 6;\n            if ((eflags & 1U) != 0) {\n              mctx.input.tip_context = 4;\n            }\n            aVar39.idx = 1;\n            aVar40.idx = start;\n            if (last_start < start) {\n              aVar39.idx = -1;\n              aVar40.idx = last_start;\n            }\n            aVar41.idx = last_start;\n            if (last_start <= start) {\n              aVar41.idx = start;\n            }\n            iVar55 = prVar59->mb_cur_max;\n            rVar20 = 8;\n            if ((re_dfa_t *)local_148.sbcset != (re_dfa_t *)0x0) {\n              if (iVar55 == 1) {\n                paVar43 = (anon_union_4_5_a39f51ca_for_opr *)0x4;\n              }\n              else {\n                paVar43 = paVar2;\n                if ((-1 < (int)(preg->syntax << 9)) && (puVar50 == (uchar *)0x0)) {\n                  paVar43 = (anon_union_4_5_a39f51ca_for_opr *)0x4;\n                }\n              }\n              aVar45.sbcset = (re_bitset_ptr_t)0x0;\n              if (start <= last_start) {\n                aVar45.idx = 2;\n              }\n              rVar20 = (uint)(puVar50 != (uchar *)0x0) | (uint)paVar43 | aVar45.ctx_type;\n            }\n            match_first = start;\n            if (start < aVar40.idx) {\n              local_150.idx = 1;\n              stop = aVar56.idx;\n            }\n            else {\n              aVar46.idx._0_3_ = 0;\n              aVar46.idx._3_1_ = last_start < start;\n              if (aVar41.idx < start) {\n                local_150.idx = 1;\n                stop = aVar56.idx;\n              }\n              else {\n                piVar38 = &match_first;\n                if ((re_dfa_t *)aVar46.sbcset != (re_dfa_t *)0x0) {\n                  piVar38 = (int *)0x0;\n                }\n                pcVar5 = (code *)(PTR_DAT_000799a4 + -0x2b7c);\n                piVar6 = (int *)(PTR_s_nt0_000795b8 + (rVar20 - 4) * 4 + 0x6e38);\nLAB_00055b44:\n                if (rVar20 - 4 < 5) {\n                    /* WARNING: Could not emulate address calculation at 0x00054920 */\n                    /* WARNING: Treating indirect jump as call */\n                  rVar21 = (*(code *)(&_gp + *piVar6))();\n                  return rVar21;\n                }\n                last_start = (Idx)&mctx;\n                prVar52 = prVar51;\n                while( true ) {\n                  aVar46.idx = match_first;\n                  uVar8 = match_first - mctx.input.raw_mbs_idx;\n                  aVar49 = (anon_union_4_5_a39f51ca_for_opr)eflags;\n                  paVar18 = paVar2;\n                  stop = local_148.idx;\n                  unaff_s4 = (re_dfa_t *)length;\n                  unaff_s5 = aVar39;\n                  unaff_s7 = aVar41;\n                  if ((uint)mctx.input.valid_raw_len <= uVar8) {\n                    aVar45.idx = match_first;\n                    local_150.sbcset = (re_bitset_ptr_t)(*pcVar5)(last_start);\n                    prVar51 = prVar52;\n                    if ((re_dfa_t *)local_150.sbcset != (re_dfa_t *)0x0) goto LAB_000557e4;\n                    uVar8 = (int)aVar46.sbcset - mctx.input.raw_mbs_idx;\n                  }\n                  if (aVar46.idx < length) {\n                    uVar8 = (uint)mctx.input.mbs[uVar8];\n                  }\n                  else {\n                    uVar8 = 0;\n                  }\n                  aVar56.sbcset = aVar46.sbcset + aVar39.sbcset;\n                  aVar46.sbcset = aVar56.sbcset;\n                  if (*(char *)((int)local_148.sbcset + uVar8) != '\0') break;\n                  prVar51 = prVar52;\n                  match_first = aVar56.idx;\n                  if (aVar56.idx < aVar40.idx) {\n                    local_150.idx = 1;\n                    goto LAB_000557e4;\n                  }\n                  aVar46.idx._0_3_ = 0;\n                  aVar46.idx._3_1_ = aVar41.idx < aVar56.idx;\n                  if ((re_dfa_t *)aVar46.sbcset != (re_dfa_t *)0x0) {\n                    local_150.idx = 1;\n                    goto LAB_000557e4;\n                  }\n                }\n                while( true ) {\n                  aVar45.idx = match_first;\n                  aVar49 = (anon_union_4_5_a39f51ca_for_opr)eflags;\n                  aVar7.sbcset = (re_bitset_ptr_t)(*pcVar5)(&mctx);\n                  aVar15 = (anon_union_4_5_a39f51ca_for_opr)mctx.dfa;\n                  aVar56.idx = mctx.input.cur_idx;\n                  prVar51 = prVar52;\n                  local_150.sbcset = aVar7.sbcset;\n                  if ((re_dfa_t *)aVar7.sbcset != (re_dfa_t *)0x0) goto LAB_000557e4;\n                  if (((iVar55 != 1) && (mctx.input.valid_len != 0)) &&\n                     (*mctx.input.wcs == 0xffffffff)) goto LAB_00055b1c;\n                  mctx.max_mb_elem_len = 0;\n                  mctx.nbkref_ents = 0;\n                  mctx.state_log_top = 0;\n                  local_138.idx = mctx.input.cur_idx;\n                  err = _REG_NOERROR;\n                  unaff_s7 = (anon_union_4_5_a39f51ca_for_opr)(mctx.dfa)->init_state;\n                  aVar49 = (anon_union_4_5_a39f51ca_for_opr)mctx.eflags;\n                  aVar46 = aVar15;\n                  if ((*(byte *)(unaff_s7.idx + 0x34) & 1) == 0) break;\n                  aVar45.sbcset = (re_bitset_ptr_t)(mctx.input.cur_idx + -1);\n                  prVar51 = (re_dfa_t *)re_string_context_at(&mctx.input,aVar45.idx,mctx.eflags);\n                  if (((uint)prVar51 & 1) == 0) {\n                    if (prVar51 == (re_dfa_t *)0x0) break;\n                    if (((uint)prVar51 & 6) == 6) {\n                      unaff_s7 = (anon_union_4_5_a39f51ca_for_opr)\n                                 ((re_dfa_t *)aVar15.idx)->init_state_begbuf;\n                      goto LAB_00054d1c;\n                    }\n                    if (((uint)prVar51 & 2) != 0) {\n                      unaff_s7 = (anon_union_4_5_a39f51ca_for_opr)\n                                 ((re_dfa_t *)aVar15.idx)->init_state_nl;\n                      goto LAB_00054d1c;\n                    }\n                    prVar52 = prVar51;\n                    if (((uint)prVar51 & 4) == 0) break;\n                    aVar49 = (anon_union_4_5_a39f51ca_for_opr)\n                             ((anon_union_4_5_a39f51ca_for_opr *)(unaff_s7.idx + 0x28))->mbcset;\n                    aVar45 = aVar15;\n                    unaff_s7.sbcset =\n                         &re_acquire_state_context\n                                    (&err,aVar15.sbcset,(re_node_set *)aVar49.mbcset,(uint)prVar51)\n                          ->hash;\n                    prVar52 = prVar51;\n                    if ((re_dfa_t *)unaff_s7.sbcset != (re_dfa_t *)0x0) break;\n                    if (err == _REG_ESPACE) goto LAB_00055914;\n                  }\n                  else {\n                    unaff_s7 = (anon_union_4_5_a39f51ca_for_opr)\n                               ((re_dfa_t *)aVar15.idx)->init_state_word;\nLAB_00054d1c:\n                    prVar52 = (re_dfa_t *)PTR_s_nt0_000795b8;\n                    if ((re_dfa_t *)unaff_s7.sbcset != (re_dfa_t *)0x0) break;\n                  }\n                  prVar52 = (re_dfa_t *)(PTR_s_nt0_000795b8 + 0x6eb0);\n                  aVar45.sbcset = (re_bitset_ptr_t)(PTR_s_nt0_000795b8 + 0x712c);\n                  match_first = (*(code *)PTR___assert_fail_000799f8)\n                                          (PTR_s_nt0_000795b8 + 0x71a0,aVar45.sbcset,0x435);\n                  if ((re_bitset_ptr_t)match_first == aVar41.sbcset) {\n                    if (match_first < length) {\n                      uVar8 = (uint)(byte)string[match_first];\n                    }\n                    else {\n                      uVar8 = 0;\n                    }\n                    if (puVar50 != (uchar *)0x0) {\n                      uVar8 = (uint)puVar50[uVar8];\n                    }\n                    if (*(char *)((int)local_148.sbcset + uVar8) == '\0') {\n                      local_150.idx = 1;\n                      aVar49 = (anon_union_4_5_a39f51ca_for_opr)eflags;\n                      prVar51 = prVar52;\n                      goto LAB_000557e4;\n                    }\n                  }\n                }\n                prVar51 = prVar52;\n                bVar36 = piVar38 != (int *)0x0;\n                if ((mctx.state_log == (re_dfastate_t **)0x0) ||\n                   (((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + aVar56.idx))->mbcset =\n                         (re_charset_t *)unaff_s7, ((re_dfa_t *)aVar15.idx)->nbackref == 0)) {\nLAB_00054d50:\n                  if ((int)*(bin_tree_t **)(unaff_s7.idx + 0x34) << 4 < 0) {\n                    if (((*(byte *)(unaff_s7.idx + 0x34) & 1) == 0) ||\n                       (aVar45 = unaff_s7, aVar49 = aVar56,\n                       IVar17 = check_halt_state_context(&mctx,unaff_s7.idx,aVar56.idx), IVar17 != 0\n                       )) {\n                      local_c4 = aVar56;\n                      if (paVar54 == (anon_union_4_5_a39f51ca_for_opr *)0x0) goto LAB_00055dbc;\n                      prVar52 = (re_dfa_t *)0x1;\n                    }\n                    else {\n                      aVar56.idx = -1;\n                      prVar52 = (re_dfa_t *)0x0;\n                    }\n                  }\n                  else {\n                    aVar56.idx = -1;\n                    prVar52 = (re_dfa_t *)0x0;\n                  }\n                  pcVar9 = (code *)(PTR_DAT_000799a4 + -0x7144);\n                  pcVar10 = (code *)(PTR_DAT_000799a4 + -0x1980);\n                  pcVar11 = (code *)(PTR_DAT_000799a4 + -0x2f9c);\n                  local_c4 = aVar56;\n                  local_144 = piVar38;\n                  while( true ) {\n                    uVar63 = CONCAT44(mctx.input.valid_len,mctx.input.len);\n                    unaff_s5.sbcset = (re_bitset_ptr_t)(mctx.input.cur_idx + 1);\n                    aVar45.idx = mctx.input.cur_idx;\n                    if (mctx.input.stop <= mctx.input.cur_idx) break;\n                    if ((mctx.input.bufs_len <= unaff_s5.idx) &&\n                       (mctx.input.bufs_len < mctx.input.len)) goto LAB_00054e94;\n                    if (mctx.input.valid_len <= unaff_s5.idx) {\n                      while ((int)((ulonglong)uVar63 >> 0x20) < (int)uVar63) {\nLAB_00054e94:\n                        aVar45.sbcset =\n                             (re_bitset_ptr_t)\n                             ((int)&((re_string_t *)&(aVar45.mbcset)->mbchars)->raw_mbs + 2);\n                        err = (*pcVar9)(&mctx);\n                        if (err == _REG_NOERROR) break;\n                        aVar15 = aVar46;\n                        if (err == _REG_ESPACE) goto LAB_00055914;\n                        prVar51 = (re_dfa_t *)(PTR_s_nt0_000795b8 + 0x6eb0);\n                        aVar49.idx = 0x46c;\n                        aVar45.sbcset = (re_bitset_ptr_t)(PTR_s_nt0_000795b8 + 0x712c);\n                        uVar63 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0);\n                        prVar52 = prVar59;\n                      }\n                    }\n                    prVar3 = mctx.dfa;\n                    if ((int)*(bin_tree_t **)(unaff_s7.idx + 0x34) << 5 < 0) {\n                      paVar18 = (anon_union_4_5_a39f51ca_for_opr *)prVar3;\n                      if (0 < (int)(unaff_s7.mbcset)->range_ends) {\n                        pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6fdc);\n                        pcVar13 = (code *)(PTR_DAT_000799a4 + -0x6ef0);\n                        stop = 0;\n                        do {\n                          last_start = ((anon_union_4_5_a39f51ca_for_opr *)\n                                       ((unaff_s7.mbcset)->char_classes + stop))->idx;\n                          prVar53 = prVar3->nodes;\n                          uVar8 = *(uint *)&prVar53[last_start].field_0x4;\n                          if ((uVar8 & 0x800) != 0) {\n                            if ((uVar8 & 0xffc000) != 0) {\n                              aVar45.idx = mctx.input.cur_idx;\n                              uVar60 = (*pcVar13)(&mctx,mctx.input.cur_idx,mctx.eflags);\n                              uVar8 = (uint)(*(int *)&prVar53[last_start].field_0x4 << 8) >> 0x16;\n                              if ((uVar8 & 4) == 0) {\n                                uVar26 = uVar60 & 1;\n                                if ((uVar8 & 8) != 0) goto joined_r0x00054f40;\n                              }\n                              else {\n                                uVar26 = uVar8 & 8;\n                                if ((uVar60 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                                if (uVar26 != 0) goto LAB_000550a4;\n                              }\n                              if ((((uVar8 & 0x20) != 0) && ((uVar60 & 2) == 0)) ||\n                                 (((uVar8 & 0x80) != 0 &&\n                                  (prVar51 = (re_dfa_t *)mctx.input.cur_idx, (uVar60 & 8) == 0))))\n                              goto LAB_000550a4;\n                            }\n                            aVar49.sbcset = (re_bitset_ptr_t)&mctx;\n                            aVar45.idx = last_start;\n                            prVar51 = (re_dfa_t *)mctx.input.cur_idx;\n                            iVar61 = (*pcVar11)(prVar3);\n                            if (iVar61 != 0) {\n                              aVar46.sbcset = (re_bitset_ptr_t)(iVar61 + mctx.input.cur_idx);\n                              if (iVar61 <= mctx.max_mb_elem_len) {\n                                iVar61 = mctx.max_mb_elem_len;\n                              }\n                              aVar45.sbcset = aVar46.sbcset;\n                              mctx.max_mb_elem_len = iVar61;\n                              err_1 = (*pcVar12)(&mctx);\n                              rVar21 = err_1;\n                              if (err_1 != _REG_NOERROR) goto LAB_00055e44;\n                              aVar49.sbcset =\n                                   (re_bitset_ptr_t)(prVar3->eclosures + prVar3->nexts[last_start]);\n                              unaff_s4 = (re_dfa_t *)(aVar46.idx * 4);\n                              last_start = (Idx)(mctx.state_log + aVar46.idx);\n                              if (*(bitset_word_t *)last_start == 0) {\n                                dest_nodes.alloc = *aVar49.sbcset;\n                                dest_nodes.nelem =\n                                     ((re_node_set *)&(aVar49.mbcset)->range_starts)->alloc;\n                                dest_nodes.elems = (aVar49.mbcset)->range_ends;\n                                prVar51 = (re_dfa_t *)\n                                          (*pcVar13)(&mctx,(undefined1 *)(aVar46.idx + -1),\n                                                     mctx.eflags);\n                                aVar49.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                                aVar45 = (anon_union_4_5_a39f51ca_for_opr)prVar3;\n                                prVar35 = re_acquire_state_context\n                                                    (&err_1,prVar3,(re_node_set *)aVar49.mbcset,\n                                                     (uint)prVar51);\n                                ((re_string_t *)&((re_charset_t *)last_start)->mbchars)->raw_mbs =\n                                     (uchar *)prVar35;\n                              }\n                              else {\n                                aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                                         ((anon_union_4_5_a39f51ca_for_opr *)\n                                         (*(bitset_word_t *)last_start + 0x28))->mbcset;\n                                err_1 = re_node_set_init_union\n                                                  (&dest_nodes,(re_node_set *)aVar45.mbcset,\n                                                   (re_node_set *)aVar49.mbcset);\n                                rVar21 = err_1;\n                                if (err_1 != _REG_NOERROR) goto LAB_00055e44;\n                                prVar51 = (re_dfa_t *)\n                                          (*pcVar13)(&mctx,(undefined1 *)(aVar46.idx + -1),\n                                                     mctx.eflags);\n                                pprVar14 = mctx.state_log + aVar46.idx;\n                                aVar49.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                                aVar45 = (anon_union_4_5_a39f51ca_for_opr)prVar3;\n                                prVar35 = re_acquire_state_context\n                                                    (&err_1,prVar3,(re_node_set *)aVar49.mbcset,\n                                                     (uint)prVar51);\n                                *pprVar14 = prVar35;\n                                (*(code *)PTR_free_00079c24)(dest_nodes.elems);\n                              }\n                              unaff_s4 = (re_dfa_t *)(mctx.state_log + aVar46.idx);\n                              if ((unaff_s4->nodes == (re_token_t *)0x0) &&\n                                 (rVar21 = err_1, err_1 != _REG_NOERROR)) goto LAB_00055e44;\n                            }\n                          }\nLAB_000550a4:\n                          stop = (int)&((re_string_t *)&((re_charset_t *)stop)->mbchars)->raw_mbs +\n                                 1;\n                        } while (stop < (int)(unaff_s7.mbcset)->range_ends);\n                      }\n                      err = _REG_NOERROR;\n                    }\n                    uVar8 = (uint)mctx.input.mbs[mctx.input.cur_idx];\n                    mctx.input.cur_idx = mctx.input.cur_idx + 1;\n                    do {\n                      if (*(re_dfastate_t **)(unaff_s7.idx + 0x2c) != (re_dfastate_t *)0x0) {\n                        aVar49 = (anon_union_4_5_a39f51ca_for_opr)\n                                 ((anon_union_4_5_a39f51ca_for_opr *)\n                                 (&(*(re_dfastate_t **)(unaff_s7.idx + 0x2c))->hash + uVar8))->\n                                 mbcset;\nLAB_000553a0:\n                        aVar15 = aVar49;\n                        if (mctx.state_log != (re_dfastate_t **)0x0) goto LAB_000553ac;\n                        goto LAB_000553cc;\n                      }\n                      paVar18 = *(anon_union_4_5_a39f51ca_for_opr **)(unaff_s7.idx + 0x30);\n                      if (paVar18 != (anon_union_4_5_a39f51ca_for_opr *)0x0) {\n                        aVar45.sbcset = (re_bitset_ptr_t)(mctx.input.cur_idx + -1);\n                        uVar60 = re_string_context_at(&mctx.input,aVar45.idx,mctx.eflags);\n                        if ((uVar60 & 1) == 0) {\n                          aVar49 = (anon_union_4_5_a39f51ca_for_opr)paVar18[uVar8].mbcset;\n                        }\n                        else {\n                          paVar18 = paVar18 + uVar8 + 0x100;\n                          aVar49 = (anon_union_4_5_a39f51ca_for_opr)paVar18->mbcset;\n                        }\n                        goto LAB_000553a0;\n                      }\n                      aVar45 = unaff_s7;\n                      aVar49 = (anon_union_4_5_a39f51ca_for_opr)mctx.eflags;\n                      iVar61 = (*pcVar10)(mctx.dfa);\n                    } while (iVar61 != 0);\n                    err = _REG_ESPACE;\n                    rVar21 = err;\nLAB_00055e44:\n                    err = rVar21;\n                    aVar46.sbcset = (re_bitset_ptr_t)0x0;\n                    if (mctx.state_log == (re_dfastate_t **)0x0) {\n                      aVar15.sbcset = aVar46.sbcset;\n                      if (err != _REG_NOERROR) goto LAB_00055914;\n                      break;\n                    }\n                    aVar49.sbcset = (re_bitset_ptr_t)0x0;\nLAB_000553ac:\n                    aVar45.sbcset = (re_bitset_ptr_t)&mctx;\n                    aVar15.sbcset =\n                         &merge_state_with_log\n                                    (&err,(re_match_context_t *)aVar45.mbcset,aVar49.sbcset)->hash;\nLAB_000553cc:\n                    aVar46 = aVar15;\n                    if ((re_dfa_t *)aVar15.sbcset == (re_dfa_t *)0x0) {\n                      if (err != _REG_NOERROR) goto LAB_00055914;\n                      if ((mctx.state_log == (re_dfastate_t **)0x0) ||\n                         ((prVar52 != (re_dfa_t *)0x0 &&\n                          (paVar54 == (anon_union_4_5_a39f51ca_for_opr *)0x0)))) break;\n                      stop = (Idx)&mctx;\n                      last_start = (Idx)&err;\n                      paVar18 = (anon_union_4_5_a39f51ca_for_opr *)(PTR_DAT_000799a4 + 0x3684);\n                      do {\n                        pprVar14 = mctx.state_log + mctx.input.cur_idx;\n                        IVar17 = mctx.input.cur_idx;\n                        do {\n                          IVar17 = IVar17 + 1;\n                          aVar45.idx = mctx.state_log_top;\n                          aVar46 = aVar15;\n                          if (mctx.state_log_top < IVar17) goto LAB_00055da8;\n                          mctx.input.cur_idx = mctx.input.cur_idx + 1;\n                          pprVar14 = pprVar14 + 1;\n                        } while (*pprVar14 == (re_dfastate_t *)0x0);\n                        aVar49.sbcset = (re_bitset_ptr_t)0x0;\n                        aVar45.sbcset = (re_bitset_ptr_t)stop;\n                        aVar46.sbcset = (re_bitset_ptr_t)(*(code *)paVar18)(last_start);\n                        if (err != _REG_NOERROR) {\n                          if ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0) goto LAB_00055da8;\n                          break;\n                        }\n                        aVar45.idx = mctx.state_log_top;\n                      } while ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0);\n                    }\n                    aVar16.ctx_type = unaff_s7.ctx_type ^ aVar46.ctx_type;\n                    aVar56 = unaff_s7;\n                    aVar15 = local_138;\n                    if ((bVar36) &&\n                       (aVar56.ctx_type = aVar16.ctx_type, aVar15.sbcset = unaff_s5.sbcset,\n                       (re_dfa_t *)aVar16.sbcset != (re_dfa_t *)0x0)) {\n                      bVar36 = false;\n                      aVar15 = local_138;\n                    }\n                    local_138 = aVar15;\n                    unaff_s7 = aVar46;\n                    if (((*(byte *)(aVar46.idx + 0x34) & 8) != 0) &&\n                       (((*(byte *)(aVar46.idx + 0x34) & 1) == 0 ||\n                        (aVar45 = aVar46, aVar49.idx = mctx.input.cur_idx,\n                        IVar17 = check_halt_state_context(&mctx,aVar46.idx,mctx.input.cur_idx),\n                        IVar17 != 0)))) {\n                      unaff_s7 = aVar56;\n                      local_c4.idx = mctx.input.cur_idx;\n                      if (paVar54 == (anon_union_4_5_a39f51ca_for_opr *)0x0) goto LAB_00055dbc;\n                      prVar52 = (re_dfa_t *)0x1;\n                      local_144 = (int *)0x0;\n                      unaff_s7 = aVar46;\n                    }\n                  }\nLAB_00055da8:\n                  if (local_144 != (int *)0x0) {\n                    *local_144 = *local_144 + (int)local_138.sbcset;\n                  }\n                }\n                else {\n                  aVar46.sbcset = (re_bitset_ptr_t)&(unaff_s7.mbcset)->range_starts;\n                  aVar49.sbcset = (re_bitset_ptr_t)0x0;\n                  aVar45 = aVar46;\n                  err = check_subexp_matching_top(&mctx,(re_node_set *)aVar46.mbcset,0);\n                  local_c4.idx = err;\n                  if ((re_dfa_t *)err == (re_dfa_t *)0x0) {\n                    if ((*(byte *)(unaff_s7.idx + 0x34) & 2) == 0) {\n                      aVar45 = aVar46;\n                      bVar36 = false;\n                    }\n                    else {\n                      aVar45 = aVar46;\n                      err = transit_state_bkref(&mctx,(re_node_set *)aVar46.mbcset);\n                      local_c4.idx = err;\n                      if ((re_dfa_t *)err != (re_dfa_t *)0x0) goto LAB_00055dbc;\n                      bVar36 = false;\n                    }\n                    goto LAB_00054d50;\n                  }\n                }\nLAB_00055dbc:\n                if ((re_dfa_t *)local_c4.sbcset == (re_dfa_t *)0xffffffff) {\nLAB_00055b04:\n                  match_ctx_clean(&mctx);\nLAB_00055b1c:\n                  match_first = aVar39.idx + match_first;\n                  if (aVar40.idx <= match_first) goto code_r0x00055b38;\n                  local_150.idx = 1;\n                  goto LAB_000557e4;\n                }\n                if ((re_dfa_t *)local_c4.sbcset == (re_dfa_t *)&SUB_fffffffe) {\n                  local_150.idx = 0xc;\n                  goto LAB_000557e4;\n                }\n                mctx.match_last = local_c4.idx;\n                if ((preg->field_0x1c & 8) == 0) {\n                  if (aVar4.sbcset < (re_dfa_t *)0x2) {\n                    if (prVar59->nbackref == 0) goto LAB_00055c08;\n                    aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                             ((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + local_c4.idx))->\n                             mbcset;\n                    aVar49 = local_c4;\n                    mctx.last_node =\n                         check_halt_state_context(&mctx,(re_dfastate_t *)aVar45.mbcset,local_c4.idx)\n                    ;\n                  }\n                  else {\n                    aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                             ((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + local_c4.idx))->\n                             mbcset;\n                    aVar49 = local_c4;\n                    mctx.last_node =\n                         check_halt_state_context(&mctx,(re_dfastate_t *)aVar45.mbcset,local_c4.idx)\n                    ;\n                  }\n                  if (aVar4.sbcset < (re_dfa_t *)0x2) {\nLAB_00055c6c:\n                    prVar52 = prVar51;\n                    unaff_s4 = mctx.dfa;\n                    if (prVar59->nbackref == 0) goto LAB_00055548;\n                  }\n                  else {\n                    cVar37 = prVar59->field_0x58;\nLAB_00055c20:\n                    prVar52 = prVar51;\n                    if (-1 < cVar37) goto LAB_00055c6c;\n                  }\n                  paVar18 = (anon_union_4_5_a39f51ca_for_opr *)mctx.last_node;\n                  prVar3 = mctx.dfa;\n                  unaff_s4 = prVar3;\n                  if ((uint)local_c4 < (re_dfa_t *)0x3fffffff) {\n                    aVar46.idx = (int)((int)&((re_string_t *)&(local_c4.mbcset)->mbchars)->raw_mbs +\n                                      1) * 4;\n                    unaff_s5.sbcset = (re_bitset_ptr_t)(*(code *)PTR_malloc_00079b54)(aVar46.sbcset)\n                    ;\n                    if ((re_dfa_t *)unaff_s5.sbcset == (re_dfa_t *)0x0) {\nLAB_00055b9c:\n                      (*(code *)PTR_free_00079c24)(unaff_s5.sbcset);\n                      local_150.idx = 0xc;\n                      prVar51 = prVar52;\n                    }\n                    else {\n                      aVar45.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                      if (prVar3->nbackref == 0) {\n                        dest_nodes.nelem = 0;\n                        dest_nodes.elems = &paVar18->idx;\n                        dest_nodes.alloc = (Idx)unaff_s5.sbcset;\n                        last_start = sift_states_backward(&mctx,(re_sift_context_t *)aVar45.mbcset);\n                        (*(code *)PTR_free_00079c24)(0);\n                        if ((re_dfa_t *)last_start == (re_dfa_t *)0x0) {\n                          aVar46.mbcset = (re_charset_t *)*unaff_s5.sbcset;\n                          if ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0) {\nLAB_00055b70:\n                            (*(code *)PTR_free_00079c24)(unaff_s5.sbcset);\n                            (*(code *)PTR_free_00079c24)(aVar46.sbcset);\n                            prVar51 = prVar52;\n                            goto LAB_00055b04;\n                          }\nLAB_00055528:\n                          (*(code *)PTR_free_00079c24)(mctx.state_log);\n                          prVar51 = prVar52;\n                          unaff_s4 = prVar3;\n                          mctx.match_last = local_c4.idx;\n                          mctx.last_node = (Idx)paVar18;\n                          mctx.state_log = (re_dfastate_t **)unaff_s5.sbcset;\n                          goto LAB_00055548;\n                        }\nLAB_00055acc:\n                        aVar46.sbcset = (re_bitset_ptr_t)0x0;\n                        prVar51 = prVar52;\n                        unaff_s4 = prVar3;\n                      }\n                      else {\n                        aVar46.sbcset =\n                             (re_bitset_ptr_t)(*(code *)PTR_malloc_00079b54)(aVar46.sbcset);\n                        if ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0) goto LAB_00055b9c;\n                        unaff_s7.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                        pcVar9 = (code *)(PTR_DAT_000799a4 + 0x421c);\n                        pcVar10 = (code *)(PTR_DAT_000799a4 + -0x6bc0);\n                        prVar51 = prVar52;\n                        while( true ) {\n                          prVar52 = (re_dfa_t *)(local_c4.idx + 1);\n                          stop = (int)prVar52 * 4;\n                          aVar49.idx = stop;\n                          (*(code *)PTR_memset_00079b00)(aVar46.sbcset,0);\n                          aVar45.sbcset = unaff_s7.sbcset;\n                          dest_nodes.alloc = (Idx)unaff_s5.sbcset;\n                          dest_nodes.nelem = (Idx)aVar46.sbcset;\n                          dest_nodes.elems = (Idx *)paVar18;\n                          last_start = (*pcVar9)(&mctx);\n                          (*(code *)PTR_free_00079c24)(0);\n                          unaff_s4 = prVar52;\n                          if ((re_dfa_t *)last_start != (re_dfa_t *)0x0) break;\n                          if ((*unaff_s5.sbcset != 0) || (stop = stop + -4, *aVar46.sbcset != 0)) {\n                            aVar45.sbcset = unaff_s5.sbcset;\n                            aVar49.sbcset = aVar46.sbcset;\n                            last_start = merge_state_array(prVar3,(re_dfastate_t **)unaff_s5.sbcset,\n                                                           (re_dfastate_t **)aVar46.sbcset,\n                                                           (Idx)prVar52);\n                            (*(code *)PTR_free_00079c24)(aVar46.sbcset);\n                            if ((re_dfa_t *)last_start != (re_dfa_t *)0x0) goto LAB_00055acc;\n                            goto LAB_00055528;\n                          }\n                          stop = (Idx)(mctx.state_log + (int)&prVar52[-1].lock.__align + 0x17);\n                          do {\n                            while( true ) {\n                              local_c4.sbcset = (re_bitset_ptr_t)(local_c4.idx + -1);\n                              if (local_c4.idx < 0) goto LAB_00055b70;\n                              aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                                       ((anon_union_4_5_a39f51ca_for_opr *)(stop + -4))->idx;\n                              if ((re_dfa_t *)aVar45.sbcset != (re_dfa_t *)0x0) break;\n                              stop = stop + -4;\n                            }\n                            stop = stop + -4;\n                          } while ((*(byte *)(aVar45.idx + 0x34) & 8) == 0);\n                          paVar18 = (anon_union_4_5_a39f51ca_for_opr *)\n                                    (*pcVar10)(&mctx,aVar45.sbcset,local_c4.sbcset);\n                          prVar51 = prVar52;\n                        }\n                      }\n                      (*(code *)PTR_free_00079c24)(unaff_s5.sbcset);\n                      (*(code *)PTR_free_00079c24)(aVar46.sbcset);\n                      local_150.idx = last_start;\n                      if ((re_dfa_t *)last_start == (re_dfa_t *)0x1) goto LAB_00055b04;\n                    }\n                  }\n                  else {\n                    local_150.idx = 0xc;\n                    prVar51 = prVar52;\n                  }\n                  goto LAB_000557e4;\n                }\n                if (prVar59->nbackref != 0) {\n                  aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                           ((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + local_c4.idx))->\n                           mbcset;\n                  aVar49 = local_c4;\n                  mctx.last_node =\n                       check_halt_state_context(&mctx,(re_dfastate_t *)aVar45.mbcset,local_c4.idx);\n                  goto LAB_00055c6c;\n                }\nLAB_00055c08:\n                if (((preg->field_0x1c & 8) == 0) && ((re_dfa_t *)0x1 < aVar4.sbcset)) {\n                  cVar37 = prVar59->field_0x58;\n                  goto LAB_00055c20;\n                }\nLAB_00055548:\n                if ((re_dfa_t *)aVar4.sbcset == (re_dfa_t *)0x0) goto LAB_000557e4;\n                if (aVar4.sbcset < (re_dfa_t *)0x2) {\n                  pmatch->rm_so = 0;\n                  pmatch->rm_eo = mctx.match_last;\n                  goto LAB_000555ac;\n                }\n                prVar19 = pmatch + 1;\n                do {\n                  prVar19->rm_eo = -1;\n                  prVar19->rm_so = -1;\n                  prVar19 = prVar19 + 1;\n                } while (prVar19 != pmatch + aVar4.idx);\n                pmatch->rm_so = 0;\n                pmatch->rm_eo = mctx.match_last;\n                if ((preg->field_0x1c & 8) != 0) {\nLAB_000555ac:\n                  prVar19 = pmatch;\n                  do {\n                    aVar45.sbcset = (re_bitset_ptr_t)prVar19->rm_so;\n                    if ((re_dfa_t *)aVar45.sbcset != (re_dfa_t *)0xffffffff) {\n                      if (mctx.input.offsets_needed != '\0') {\n                        rVar47 = mctx.input.valid_raw_len;\n                        if (aVar45.sbcset != (re_bitset_ptr_t)mctx.input.valid_len) {\n                          rVar47 = mctx.input.offsets[aVar45.idx];\n                        }\n                        prVar19->rm_so = rVar47;\n                        rVar47 = mctx.input.valid_raw_len;\n                        if (mctx.input.valid_len != prVar19->rm_eo) {\n                          rVar47 = mctx.input.offsets[prVar19->rm_eo];\n                        }\n                        prVar19->rm_eo = rVar47;\n                      }\n                      prVar19->rm_so = prVar19->rm_so + match_first;\n                      aVar45.sbcset = (re_bitset_ptr_t)(prVar19->rm_eo + match_first);\n                      prVar19->rm_eo = (regoff_t)aVar45;\n                    }\n                    prVar19 = prVar19 + 1;\n                  } while (prVar19 != pmatch + aVar4.idx);\n                  if (0 < local_118) {\n                    prVar19 = pmatch + aVar4.idx;\n                    do {\n                      prVar19->rm_so = -1;\n                      prVar19->rm_eo = -1;\n                      prVar19 = prVar19 + 1;\n                    } while (prVar19 != pmatch + nmatch);\n                  }\n                  aVar49.idx = match_first;\n                  prVar51 = (re_dfa_t *)pmatch;\n                  local_150.sbcset = aVar7.sbcset;\n                  if (prVar59->subexp_map != (Idx *)0x0) {\n                    aVar49.sbcset = (re_bitset_ptr_t)(aVar4.idx + -1);\n                    prVar52 = (re_dfa_t *)0x0;\n                    prVar19 = pmatch;\n                    while( true ) {\n                      aVar45.idx = (int)prVar52 * 4;\n                      if ((re_dfa_t *)aVar49.sbcset == prVar52) break;\n                      if ((re_dfa_t *)prVar59->subexp_map[(int)prVar52] != prVar52) {\n                        prVar19[1].rm_so =\n                             pmatch[(int)((int)&((re_string_t *)\n                                                &((re_dfa_t *)prVar59->subexp_map[(int)prVar52])->\n                                                 nodes)->raw_mbs + 1)].rm_so;\n                        prVar19[1].rm_eo = pmatch[prVar59->subexp_map[(int)prVar52] + 1].rm_eo;\n                      }\n                      prVar52 = (re_dfa_t *)((int)&((re_string_t *)&prVar52->nodes)->raw_mbs + 1);\n                      prVar19 = prVar19 + 1;\n                    }\n                  }\n                  goto LAB_000557e4;\n                }\n                if ((char)prVar59->field_0x58 < '\0') {\n                  bVar36 = 0 < prVar59->nbackref;\n                }\n                else {\n                  bVar36 = false;\n                }\n                aVar45.sbcset = (re_bitset_ptr_t)&mctx;\n                aVar49.sbcset = aVar4.sbcset;\n                prVar51 = (re_dfa_t *)pmatch;\n                local_150.idx =\n                     set_regs(preg,(re_match_context_t *)aVar45.mbcset,aVar4.ctx_type,pmatch,bVar36)\n                ;\n                if ((re_dfa_t *)local_150.sbcset == (re_dfa_t *)0x0) goto LAB_000555ac;\n              }\n            }\n          }\n          else if ((uint)mctx.input.bufs_len < 0x3fffffff) {\n            mctx.state_log =\n                 (re_dfastate_t **)(*(code *)PTR_malloc_00079b54)((mctx.input.bufs_len + 1) * 4);\n            if (mctx.state_log != (re_dfastate_t **)0x0) goto LAB_00055a40;\n            local_150.idx = 0xc;\n            stop = aVar56.idx;\n          }\n          else {\n            local_150.idx = 0xc;\n            stop = aVar56.idx;\n          }\n        }\n        else {\n          unaff_s5.idx = iVar55 * 8;\n          if (aVar56.sbcset < (re_dfa_t *)0xccccccd) {\n            unaff_s4 = (re_dfa_t *)(*(code *)PTR_malloc_00079b54)(iVar55 * 0x28);\n            mctx.bkref_ents = (re_backref_cache_entry *)unaff_s4;\n            mctx.sub_tops = (re_sub_match_top_t **)(*(code *)PTR_malloc_00079b54)(unaff_s5.sbcset);\n            if ((unaff_s4 != (re_dfa_t *)0x0) && (mctx.sub_tops != (re_sub_match_top_t **)0x0))\n            goto LAB_000559f0;\n          }\n          local_150.idx = 0xc;\n          stop = aVar56.idx;\n        }\nLAB_000557e4:\n        (*(code *)PTR_free_00079c24)(mctx.state_log);\n        preg = (regex_t *)aVar49;\n        if (prVar59->nbackref != 0) {\n          match_ctx_clean(&mctx);\n          (*(code *)PTR_free_00079c24)(mctx.sub_tops);\n          (*(code *)PTR_free_00079c24)(mctx.bkref_ents);\n          preg = (regex_t *)aVar49;\n        }\n        re_string_destruct(&mctx.input);\n        aStack_1a0 = aVar46;\n        paStack_19c = paVar18;\n      }\n    }\n  }" else (if_statement "if (prVar59->init_state == (re_dfastate_t *)0x0) {\n    local_150.idx = 1;\n  }\n  else if (prVar59->init_state_word == (re_dfastate_t *)0x0) {\n    local_150.idx = 1;\n  }\n  else if (prVar59->init_state_nl == (re_dfastate_t *)0x0) {\n    local_150.idx = 1;\n  }\n  else {\n    aVar45 = (anon_union_4_5_a39f51ca_for_opr)prVar59->init_state_begbuf;\n    if ((re_dfa_t *)aVar45.sbcset == (re_dfa_t *)0x0) {\n      local_150.idx = 1;\n    }\n    else {\n      aVar4.idx = last_start;\n      if (((((prVar59->init_state->nodes).nelem == 0) &&\n           ((prVar59->init_state_word->nodes).nelem == 0)) &&\n          (((prVar59->init_state_nl->nodes).nelem == 0 || ((preg->field_0x1c & 1) == 0)))) &&\n         ((aVar4.idx = start, start != 0 &&\n          (start = last_start, aVar4.idx = last_start, last_start != 0)))) {\n        local_150.idx = 1;\n        aStack_1a0.idx = last_start;\n      }\n      else {\n        last_start = aVar4.idx;\n        aVar4.sbcset = (re_bitset_ptr_t)(nmatch - local_118);\n        if ((re_dfa_t *)aVar4.sbcset == (re_dfa_t *)0x0) {\n          paVar54 = (anon_union_4_5_a39f51ca_for_opr *)(uint)(prVar59->nbackref != 0);\n        }\n        else {\n          paVar54 = (anon_union_4_5_a39f51ca_for_opr *)0x1;\n        }\n        puVar50 = preg->translate;\n        mctx.input.icase = (uchar)((preg->syntax << 9) >> 0x1f);\n        mctx.input.mb_cur_max = prVar59->mb_cur_max;\n        aVar46.sbcset = (re_bitset_ptr_t)(prVar59->nodes_len + 1);\n        if (aVar46.idx < mctx.input.mb_cur_max) {\n          aVar46 = (anon_union_4_5_a39f51ca_for_opr)mctx.input.mb_cur_max;\n        }\n        aVar49.idx._0_3_ = 0;\n        aVar49.idx._3_1_ = ((re_bitset_ptr_t)(length + 1)).idx < aVar46.idx;\n        prVar51 = (re_dfa_t *)0x1;\n        mctx.input.mbs_allocated = mctx.input.icase;\n        if (puVar50 != (uchar *)0x0) {\n          mctx.input.mbs_allocated = 1;\n        }\n        mctx.input.is_utf8 = (uchar)((uint)(*(int *)&prVar59->field_0x58 << 2) >> 0x1f);\n        mctx.input.map_notascii = (uchar)((uint)(*(int *)&prVar59->field_0x58 << 3) >> 0x1f);\n        aVar45.sbcset = ((re_bitset_ptr_t)(length + 1)).sbcset;\n        if ((re_dfa_t *)aVar49.sbcset == (re_dfa_t *)0x0) {\n          aVar45 = aVar46;\n        }\n        mctx.input.raw_mbs = (uchar *)string;\n        mctx.input.raw_len = length;\n        mctx.input.len = length;\n        mctx.input.raw_stop = length;\n        mctx.input.stop = length;\n        mctx.input.trans = puVar50;\n        local_150.idx = re_string_realloc_buffers(&mctx.input,aVar45.idx);\n        aVar46.idx = start;\n        paVar18 = paVar54;\n        stop = stop;\n        if ((re_dfa_t *)local_150.sbcset != (re_dfa_t *)0x0) goto LAB_000557e4;\n        mctx.input.word_char = prVar59->word_char;\n        mctx.input.word_ops_used = (uchar)((uint)(*(int *)&prVar59->field_0x58 << 4) >> 0x1f);\n        paVar2 = (anon_union_4_5_a39f51ca_for_opr *)0x0;\n        mctx.input.valid_len = (Idx)paVar2;\n        if ((mctx.input.mbs_allocated == '\0') &&\n           (mctx.input.mbs = (uchar *)string, prVar59->mb_cur_max < 2)) {\n          mctx.input.valid_len = length;\n        }\n        mctx.input.stop = stop;\n        mctx.input.raw_stop = stop;\n        mctx.input.newline_anchor = (uchar)((uint)(*(int *)&preg->field_0x1c << 7) >> 0x1f);\n        iVar55 = prVar59->nbackref;\n        aVar56.idx = iVar55 * 2;\n        mctx.eflags = eflags;\n        mctx.match_last = -1;\n        mctx.input.valid_raw_len = mctx.input.valid_len;\n        if ((int)aVar56 < 1) {\nLAB_000559f0:\n          mctx.max_mb_elem_len = 1;\n          mctx.abkref_ents = aVar56.idx;\n          mctx.asub_tops = aVar56.idx;\n          if ((aVar4.sbcset < (re_dfa_t *)0x2) && ((prVar59->field_0x58 & 0x40) == 0)) {\n            mctx.state_log = (re_dfastate_t **)0x0;\nLAB_00055a40:\n            mctx.input.tip_context = 6;\n            if ((eflags & 1U) != 0) {\n              mctx.input.tip_context = 4;\n            }\n            aVar39.idx = 1;\n            aVar40.idx = start;\n            if (last_start < start) {\n              aVar39.idx = -1;\n              aVar40.idx = last_start;\n            }\n            aVar41.idx = last_start;\n            if (last_start <= start) {\n              aVar41.idx = start;\n            }\n            iVar55 = prVar59->mb_cur_max;\n            rVar20 = 8;\n            if ((re_dfa_t *)local_148.sbcset != (re_dfa_t *)0x0) {\n              if (iVar55 == 1) {\n                paVar43 = (anon_union_4_5_a39f51ca_for_opr *)0x4;\n              }\n              else {\n                paVar43 = paVar2;\n                if ((-1 < (int)(preg->syntax << 9)) && (puVar50 == (uchar *)0x0)) {\n                  paVar43 = (anon_union_4_5_a39f51ca_for_opr *)0x4;\n                }\n              }\n              aVar45.sbcset = (re_bitset_ptr_t)0x0;\n              if (start <= last_start) {\n                aVar45.idx = 2;\n              }\n              rVar20 = (uint)(puVar50 != (uchar *)0x0) | (uint)paVar43 | aVar45.ctx_type;\n            }\n            match_first = start;\n            if (start < aVar40.idx) {\n              local_150.idx = 1;\n              stop = aVar56.idx;\n            }\n            else {\n              aVar46.idx._0_3_ = 0;\n              aVar46.idx._3_1_ = last_start < start;\n              if (aVar41.idx < start) {\n                local_150.idx = 1;\n                stop = aVar56.idx;\n              }\n              else {\n                piVar38 = &match_first;\n                if ((re_dfa_t *)aVar46.sbcset != (re_dfa_t *)0x0) {\n                  piVar38 = (int *)0x0;\n                }\n                pcVar5 = (code *)(PTR_DAT_000799a4 + -0x2b7c);\n                piVar6 = (int *)(PTR_s_nt0_000795b8 + (rVar20 - 4) * 4 + 0x6e38);\nLAB_00055b44:\n                if (rVar20 - 4 < 5) {\n                    /* WARNING: Could not emulate address calculation at 0x00054920 */\n                    /* WARNING: Treating indirect jump as call */\n                  rVar21 = (*(code *)(&_gp + *piVar6))();\n                  return rVar21;\n                }\n                last_start = (Idx)&mctx;\n                prVar52 = prVar51;\n                while( true ) {\n                  aVar46.idx = match_first;\n                  uVar8 = match_first - mctx.input.raw_mbs_idx;\n                  aVar49 = (anon_union_4_5_a39f51ca_for_opr)eflags;\n                  paVar18 = paVar2;\n                  stop = local_148.idx;\n                  unaff_s4 = (re_dfa_t *)length;\n                  unaff_s5 = aVar39;\n                  unaff_s7 = aVar41;\n                  if ((uint)mctx.input.valid_raw_len <= uVar8) {\n                    aVar45.idx = match_first;\n                    local_150.sbcset = (re_bitset_ptr_t)(*pcVar5)(last_start);\n                    prVar51 = prVar52;\n                    if ((re_dfa_t *)local_150.sbcset != (re_dfa_t *)0x0) goto LAB_000557e4;\n                    uVar8 = (int)aVar46.sbcset - mctx.input.raw_mbs_idx;\n                  }\n                  if (aVar46.idx < length) {\n                    uVar8 = (uint)mctx.input.mbs[uVar8];\n                  }\n                  else {\n                    uVar8 = 0;\n                  }\n                  aVar56.sbcset = aVar46.sbcset + aVar39.sbcset;\n                  aVar46.sbcset = aVar56.sbcset;\n                  if (*(char *)((int)local_148.sbcset + uVar8) != '\0') break;\n                  prVar51 = prVar52;\n                  match_first = aVar56.idx;\n                  if (aVar56.idx < aVar40.idx) {\n                    local_150.idx = 1;\n                    goto LAB_000557e4;\n                  }\n                  aVar46.idx._0_3_ = 0;\n                  aVar46.idx._3_1_ = aVar41.idx < aVar56.idx;\n                  if ((re_dfa_t *)aVar46.sbcset != (re_dfa_t *)0x0) {\n                    local_150.idx = 1;\n                    goto LAB_000557e4;\n                  }\n                }\n                while( true ) {\n                  aVar45.idx = match_first;\n                  aVar49 = (anon_union_4_5_a39f51ca_for_opr)eflags;\n                  aVar7.sbcset = (re_bitset_ptr_t)(*pcVar5)(&mctx);\n                  aVar15 = (anon_union_4_5_a39f51ca_for_opr)mctx.dfa;\n                  aVar56.idx = mctx.input.cur_idx;\n                  prVar51 = prVar52;\n                  local_150.sbcset = aVar7.sbcset;\n                  if ((re_dfa_t *)aVar7.sbcset != (re_dfa_t *)0x0) goto LAB_000557e4;\n                  if (((iVar55 != 1) && (mctx.input.valid_len != 0)) &&\n                     (*mctx.input.wcs == 0xffffffff)) goto LAB_00055b1c;\n                  mctx.max_mb_elem_len = 0;\n                  mctx.nbkref_ents = 0;\n                  mctx.state_log_top = 0;\n                  local_138.idx = mctx.input.cur_idx;\n                  err = _REG_NOERROR;\n                  unaff_s7 = (anon_union_4_5_a39f51ca_for_opr)(mctx.dfa)->init_state;\n                  aVar49 = (anon_union_4_5_a39f51ca_for_opr)mctx.eflags;\n                  aVar46 = aVar15;\n                  if ((*(byte *)(unaff_s7.idx + 0x34) & 1) == 0) break;\n                  aVar45.sbcset = (re_bitset_ptr_t)(mctx.input.cur_idx + -1);\n                  prVar51 = (re_dfa_t *)re_string_context_at(&mctx.input,aVar45.idx,mctx.eflags);\n                  if (((uint)prVar51 & 1) == 0) {\n                    if (prVar51 == (re_dfa_t *)0x0) break;\n                    if (((uint)prVar51 & 6) == 6) {\n                      unaff_s7 = (anon_union_4_5_a39f51ca_for_opr)\n                                 ((re_dfa_t *)aVar15.idx)->init_state_begbuf;\n                      goto LAB_00054d1c;\n                    }\n                    if (((uint)prVar51 & 2) != 0) {\n                      unaff_s7 = (anon_union_4_5_a39f51ca_for_opr)\n                                 ((re_dfa_t *)aVar15.idx)->init_state_nl;\n                      goto LAB_00054d1c;\n                    }\n                    prVar52 = prVar51;\n                    if (((uint)prVar51 & 4) == 0) break;\n                    aVar49 = (anon_union_4_5_a39f51ca_for_opr)\n                             ((anon_union_4_5_a39f51ca_for_opr *)(unaff_s7.idx + 0x28))->mbcset;\n                    aVar45 = aVar15;\n                    unaff_s7.sbcset =\n                         &re_acquire_state_context\n                                    (&err,aVar15.sbcset,(re_node_set *)aVar49.mbcset,(uint)prVar51)\n                          ->hash;\n                    prVar52 = prVar51;\n                    if ((re_dfa_t *)unaff_s7.sbcset != (re_dfa_t *)0x0) break;\n                    if (err == _REG_ESPACE) goto LAB_00055914;\n                  }\n                  else {\n                    unaff_s7 = (anon_union_4_5_a39f51ca_for_opr)\n                               ((re_dfa_t *)aVar15.idx)->init_state_word;\nLAB_00054d1c:\n                    prVar52 = (re_dfa_t *)PTR_s_nt0_000795b8;\n                    if ((re_dfa_t *)unaff_s7.sbcset != (re_dfa_t *)0x0) break;\n                  }\n                  prVar52 = (re_dfa_t *)(PTR_s_nt0_000795b8 + 0x6eb0);\n                  aVar45.sbcset = (re_bitset_ptr_t)(PTR_s_nt0_000795b8 + 0x712c);\n                  match_first = (*(code *)PTR___assert_fail_000799f8)\n                                          (PTR_s_nt0_000795b8 + 0x71a0,aVar45.sbcset,0x435);\n                  if ((re_bitset_ptr_t)match_first == aVar41.sbcset) {\n                    if (match_first < length) {\n                      uVar8 = (uint)(byte)string[match_first];\n                    }\n                    else {\n                      uVar8 = 0;\n                    }\n                    if (puVar50 != (uchar *)0x0) {\n                      uVar8 = (uint)puVar50[uVar8];\n                    }\n                    if (*(char *)((int)local_148.sbcset + uVar8) == '\0') {\n                      local_150.idx = 1;\n                      aVar49 = (anon_union_4_5_a39f51ca_for_opr)eflags;\n                      prVar51 = prVar52;\n                      goto LAB_000557e4;\n                    }\n                  }\n                }\n                prVar51 = prVar52;\n                bVar36 = piVar38 != (int *)0x0;\n                if ((mctx.state_log == (re_dfastate_t **)0x0) ||\n                   (((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + aVar56.idx))->mbcset =\n                         (re_charset_t *)unaff_s7, ((re_dfa_t *)aVar15.idx)->nbackref == 0)) {\nLAB_00054d50:\n                  if ((int)*(bin_tree_t **)(unaff_s7.idx + 0x34) << 4 < 0) {\n                    if (((*(byte *)(unaff_s7.idx + 0x34) & 1) == 0) ||\n                       (aVar45 = unaff_s7, aVar49 = aVar56,\n                       IVar17 = check_halt_state_context(&mctx,unaff_s7.idx,aVar56.idx), IVar17 != 0\n                       )) {\n                      local_c4 = aVar56;\n                      if (paVar54 == (anon_union_4_5_a39f51ca_for_opr *)0x0) goto LAB_00055dbc;\n                      prVar52 = (re_dfa_t *)0x1;\n                    }\n                    else {\n                      aVar56.idx = -1;\n                      prVar52 = (re_dfa_t *)0x0;\n                    }\n                  }\n                  else {\n                    aVar56.idx = -1;\n                    prVar52 = (re_dfa_t *)0x0;\n                  }\n                  pcVar9 = (code *)(PTR_DAT_000799a4 + -0x7144);\n                  pcVar10 = (code *)(PTR_DAT_000799a4 + -0x1980);\n                  pcVar11 = (code *)(PTR_DAT_000799a4 + -0x2f9c);\n                  local_c4 = aVar56;\n                  local_144 = piVar38;\n                  while( true ) {\n                    uVar63 = CONCAT44(mctx.input.valid_len,mctx.input.len);\n                    unaff_s5.sbcset = (re_bitset_ptr_t)(mctx.input.cur_idx + 1);\n                    aVar45.idx = mctx.input.cur_idx;\n                    if (mctx.input.stop <= mctx.input.cur_idx) break;\n                    if ((mctx.input.bufs_len <= unaff_s5.idx) &&\n                       (mctx.input.bufs_len < mctx.input.len)) goto LAB_00054e94;\n                    if (mctx.input.valid_len <= unaff_s5.idx) {\n                      while ((int)((ulonglong)uVar63 >> 0x20) < (int)uVar63) {\nLAB_00054e94:\n                        aVar45.sbcset =\n                             (re_bitset_ptr_t)\n                             ((int)&((re_string_t *)&(aVar45.mbcset)->mbchars)->raw_mbs + 2);\n                        err = (*pcVar9)(&mctx);\n                        if (err == _REG_NOERROR) break;\n                        aVar15 = aVar46;\n                        if (err == _REG_ESPACE) goto LAB_00055914;\n                        prVar51 = (re_dfa_t *)(PTR_s_nt0_000795b8 + 0x6eb0);\n                        aVar49.idx = 0x46c;\n                        aVar45.sbcset = (re_bitset_ptr_t)(PTR_s_nt0_000795b8 + 0x712c);\n                        uVar63 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0);\n                        prVar52 = prVar59;\n                      }\n                    }\n                    prVar3 = mctx.dfa;\n                    if ((int)*(bin_tree_t **)(unaff_s7.idx + 0x34) << 5 < 0) {\n                      paVar18 = (anon_union_4_5_a39f51ca_for_opr *)prVar3;\n                      if (0 < (int)(unaff_s7.mbcset)->range_ends) {\n                        pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6fdc);\n                        pcVar13 = (code *)(PTR_DAT_000799a4 + -0x6ef0);\n                        stop = 0;\n                        do {\n                          last_start = ((anon_union_4_5_a39f51ca_for_opr *)\n                                       ((unaff_s7.mbcset)->char_classes + stop))->idx;\n                          prVar53 = prVar3->nodes;\n                          uVar8 = *(uint *)&prVar53[last_start].field_0x4;\n                          if ((uVar8 & 0x800) != 0) {\n                            if ((uVar8 & 0xffc000) != 0) {\n                              aVar45.idx = mctx.input.cur_idx;\n                              uVar60 = (*pcVar13)(&mctx,mctx.input.cur_idx,mctx.eflags);\n                              uVar8 = (uint)(*(int *)&prVar53[last_start].field_0x4 << 8) >> 0x16;\n                              if ((uVar8 & 4) == 0) {\n                                uVar26 = uVar60 & 1;\n                                if ((uVar8 & 8) != 0) goto joined_r0x00054f40;\n                              }\n                              else {\n                                uVar26 = uVar8 & 8;\n                                if ((uVar60 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                                if (uVar26 != 0) goto LAB_000550a4;\n                              }\n                              if ((((uVar8 & 0x20) != 0) && ((uVar60 & 2) == 0)) ||\n                                 (((uVar8 & 0x80) != 0 &&\n                                  (prVar51 = (re_dfa_t *)mctx.input.cur_idx, (uVar60 & 8) == 0))))\n                              goto LAB_000550a4;\n                            }\n                            aVar49.sbcset = (re_bitset_ptr_t)&mctx;\n                            aVar45.idx = last_start;\n                            prVar51 = (re_dfa_t *)mctx.input.cur_idx;\n                            iVar61 = (*pcVar11)(prVar3);\n                            if (iVar61 != 0) {\n                              aVar46.sbcset = (re_bitset_ptr_t)(iVar61 + mctx.input.cur_idx);\n                              if (iVar61 <= mctx.max_mb_elem_len) {\n                                iVar61 = mctx.max_mb_elem_len;\n                              }\n                              aVar45.sbcset = aVar46.sbcset;\n                              mctx.max_mb_elem_len = iVar61;\n                              err_1 = (*pcVar12)(&mctx);\n                              rVar21 = err_1;\n                              if (err_1 != _REG_NOERROR) goto LAB_00055e44;\n                              aVar49.sbcset =\n                                   (re_bitset_ptr_t)(prVar3->eclosures + prVar3->nexts[last_start]);\n                              unaff_s4 = (re_dfa_t *)(aVar46.idx * 4);\n                              last_start = (Idx)(mctx.state_log + aVar46.idx);\n                              if (*(bitset_word_t *)last_start == 0) {\n                                dest_nodes.alloc = *aVar49.sbcset;\n                                dest_nodes.nelem =\n                                     ((re_node_set *)&(aVar49.mbcset)->range_starts)->alloc;\n                                dest_nodes.elems = (aVar49.mbcset)->range_ends;\n                                prVar51 = (re_dfa_t *)\n                                          (*pcVar13)(&mctx,(undefined1 *)(aVar46.idx + -1),\n                                                     mctx.eflags);\n                                aVar49.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                                aVar45 = (anon_union_4_5_a39f51ca_for_opr)prVar3;\n                                prVar35 = re_acquire_state_context\n                                                    (&err_1,prVar3,(re_node_set *)aVar49.mbcset,\n                                                     (uint)prVar51);\n                                ((re_string_t *)&((re_charset_t *)last_start)->mbchars)->raw_mbs =\n                                     (uchar *)prVar35;\n                              }\n                              else {\n                                aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                                         ((anon_union_4_5_a39f51ca_for_opr *)\n                                         (*(bitset_word_t *)last_start + 0x28))->mbcset;\n                                err_1 = re_node_set_init_union\n                                                  (&dest_nodes,(re_node_set *)aVar45.mbcset,\n                                                   (re_node_set *)aVar49.mbcset);\n                                rVar21 = err_1;\n                                if (err_1 != _REG_NOERROR) goto LAB_00055e44;\n                                prVar51 = (re_dfa_t *)\n                                          (*pcVar13)(&mctx,(undefined1 *)(aVar46.idx + -1),\n                                                     mctx.eflags);\n                                pprVar14 = mctx.state_log + aVar46.idx;\n                                aVar49.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                                aVar45 = (anon_union_4_5_a39f51ca_for_opr)prVar3;\n                                prVar35 = re_acquire_state_context\n                                                    (&err_1,prVar3,(re_node_set *)aVar49.mbcset,\n                                                     (uint)prVar51);\n                                *pprVar14 = prVar35;\n                                (*(code *)PTR_free_00079c24)(dest_nodes.elems);\n                              }\n                              unaff_s4 = (re_dfa_t *)(mctx.state_log + aVar46.idx);\n                              if ((unaff_s4->nodes == (re_token_t *)0x0) &&\n                                 (rVar21 = err_1, err_1 != _REG_NOERROR)) goto LAB_00055e44;\n                            }\n                          }\nLAB_000550a4:\n                          stop = (int)&((re_string_t *)&((re_charset_t *)stop)->mbchars)->raw_mbs +\n                                 1;\n                        } while (stop < (int)(unaff_s7.mbcset)->range_ends);\n                      }\n                      err = _REG_NOERROR;\n                    }\n                    uVar8 = (uint)mctx.input.mbs[mctx.input.cur_idx];\n                    mctx.input.cur_idx = mctx.input.cur_idx + 1;\n                    do {\n                      if (*(re_dfastate_t **)(unaff_s7.idx + 0x2c) != (re_dfastate_t *)0x0) {\n                        aVar49 = (anon_union_4_5_a39f51ca_for_opr)\n                                 ((anon_union_4_5_a39f51ca_for_opr *)\n                                 (&(*(re_dfastate_t **)(unaff_s7.idx + 0x2c))->hash + uVar8))->\n                                 mbcset;\nLAB_000553a0:\n                        aVar15 = aVar49;\n                        if (mctx.state_log != (re_dfastate_t **)0x0) goto LAB_000553ac;\n                        goto LAB_000553cc;\n                      }\n                      paVar18 = *(anon_union_4_5_a39f51ca_for_opr **)(unaff_s7.idx + 0x30);\n                      if (paVar18 != (anon_union_4_5_a39f51ca_for_opr *)0x0) {\n                        aVar45.sbcset = (re_bitset_ptr_t)(mctx.input.cur_idx + -1);\n                        uVar60 = re_string_context_at(&mctx.input,aVar45.idx,mctx.eflags);\n                        if ((uVar60 & 1) == 0) {\n                          aVar49 = (anon_union_4_5_a39f51ca_for_opr)paVar18[uVar8].mbcset;\n                        }\n                        else {\n                          paVar18 = paVar18 + uVar8 + 0x100;\n                          aVar49 = (anon_union_4_5_a39f51ca_for_opr)paVar18->mbcset;\n                        }\n                        goto LAB_000553a0;\n                      }\n                      aVar45 = unaff_s7;\n                      aVar49 = (anon_union_4_5_a39f51ca_for_opr)mctx.eflags;\n                      iVar61 = (*pcVar10)(mctx.dfa);\n                    } while (iVar61 != 0);\n                    err = _REG_ESPACE;\n                    rVar21 = err;\nLAB_00055e44:\n                    err = rVar21;\n                    aVar46.sbcset = (re_bitset_ptr_t)0x0;\n                    if (mctx.state_log == (re_dfastate_t **)0x0) {\n                      aVar15.sbcset = aVar46.sbcset;\n                      if (err != _REG_NOERROR) goto LAB_00055914;\n                      break;\n                    }\n                    aVar49.sbcset = (re_bitset_ptr_t)0x0;\nLAB_000553ac:\n                    aVar45.sbcset = (re_bitset_ptr_t)&mctx;\n                    aVar15.sbcset =\n                         &merge_state_with_log\n                                    (&err,(re_match_context_t *)aVar45.mbcset,aVar49.sbcset)->hash;\nLAB_000553cc:\n                    aVar46 = aVar15;\n                    if ((re_dfa_t *)aVar15.sbcset == (re_dfa_t *)0x0) {\n                      if (err != _REG_NOERROR) goto LAB_00055914;\n                      if ((mctx.state_log == (re_dfastate_t **)0x0) ||\n                         ((prVar52 != (re_dfa_t *)0x0 &&\n                          (paVar54 == (anon_union_4_5_a39f51ca_for_opr *)0x0)))) break;\n                      stop = (Idx)&mctx;\n                      last_start = (Idx)&err;\n                      paVar18 = (anon_union_4_5_a39f51ca_for_opr *)(PTR_DAT_000799a4 + 0x3684);\n                      do {\n                        pprVar14 = mctx.state_log + mctx.input.cur_idx;\n                        IVar17 = mctx.input.cur_idx;\n                        do {\n                          IVar17 = IVar17 + 1;\n                          aVar45.idx = mctx.state_log_top;\n                          aVar46 = aVar15;\n                          if (mctx.state_log_top < IVar17) goto LAB_00055da8;\n                          mctx.input.cur_idx = mctx.input.cur_idx + 1;\n                          pprVar14 = pprVar14 + 1;\n                        } while (*pprVar14 == (re_dfastate_t *)0x0);\n                        aVar49.sbcset = (re_bitset_ptr_t)0x0;\n                        aVar45.sbcset = (re_bitset_ptr_t)stop;\n                        aVar46.sbcset = (re_bitset_ptr_t)(*(code *)paVar18)(last_start);\n                        if (err != _REG_NOERROR) {\n                          if ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0) goto LAB_00055da8;\n                          break;\n                        }\n                        aVar45.idx = mctx.state_log_top;\n                      } while ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0);\n                    }\n                    aVar16.ctx_type = unaff_s7.ctx_type ^ aVar46.ctx_type;\n                    aVar56 = unaff_s7;\n                    aVar15 = local_138;\n                    if ((bVar36) &&\n                       (aVar56.ctx_type = aVar16.ctx_type, aVar15.sbcset = unaff_s5.sbcset,\n                       (re_dfa_t *)aVar16.sbcset != (re_dfa_t *)0x0)) {\n                      bVar36 = false;\n                      aVar15 = local_138;\n                    }\n                    local_138 = aVar15;\n                    unaff_s7 = aVar46;\n                    if (((*(byte *)(aVar46.idx + 0x34) & 8) != 0) &&\n                       (((*(byte *)(aVar46.idx + 0x34) & 1) == 0 ||\n                        (aVar45 = aVar46, aVar49.idx = mctx.input.cur_idx,\n                        IVar17 = check_halt_state_context(&mctx,aVar46.idx,mctx.input.cur_idx),\n                        IVar17 != 0)))) {\n                      unaff_s7 = aVar56;\n                      local_c4.idx = mctx.input.cur_idx;\n                      if (paVar54 == (anon_union_4_5_a39f51ca_for_opr *)0x0) goto LAB_00055dbc;\n                      prVar52 = (re_dfa_t *)0x1;\n                      local_144 = (int *)0x0;\n                      unaff_s7 = aVar46;\n                    }\n                  }\nLAB_00055da8:\n                  if (local_144 != (int *)0x0) {\n                    *local_144 = *local_144 + (int)local_138.sbcset;\n                  }\n                }\n                else {\n                  aVar46.sbcset = (re_bitset_ptr_t)&(unaff_s7.mbcset)->range_starts;\n                  aVar49.sbcset = (re_bitset_ptr_t)0x0;\n                  aVar45 = aVar46;\n                  err = check_subexp_matching_top(&mctx,(re_node_set *)aVar46.mbcset,0);\n                  local_c4.idx = err;\n                  if ((re_dfa_t *)err == (re_dfa_t *)0x0) {\n                    if ((*(byte *)(unaff_s7.idx + 0x34) & 2) == 0) {\n                      aVar45 = aVar46;\n                      bVar36 = false;\n                    }\n                    else {\n                      aVar45 = aVar46;\n                      err = transit_state_bkref(&mctx,(re_node_set *)aVar46.mbcset);\n                      local_c4.idx = err;\n                      if ((re_dfa_t *)err != (re_dfa_t *)0x0) goto LAB_00055dbc;\n                      bVar36 = false;\n                    }\n                    goto LAB_00054d50;\n                  }\n                }\nLAB_00055dbc:\n                if ((re_dfa_t *)local_c4.sbcset == (re_dfa_t *)0xffffffff) {\nLAB_00055b04:\n                  match_ctx_clean(&mctx);\nLAB_00055b1c:\n                  match_first = aVar39.idx + match_first;\n                  if (aVar40.idx <= match_first) goto code_r0x00055b38;\n                  local_150.idx = 1;\n                  goto LAB_000557e4;\n                }\n                if ((re_dfa_t *)local_c4.sbcset == (re_dfa_t *)&SUB_fffffffe) {\n                  local_150.idx = 0xc;\n                  goto LAB_000557e4;\n                }\n                mctx.match_last = local_c4.idx;\n                if ((preg->field_0x1c & 8) == 0) {\n                  if (aVar4.sbcset < (re_dfa_t *)0x2) {\n                    if (prVar59->nbackref == 0) goto LAB_00055c08;\n                    aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                             ((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + local_c4.idx))->\n                             mbcset;\n                    aVar49 = local_c4;\n                    mctx.last_node =\n                         check_halt_state_context(&mctx,(re_dfastate_t *)aVar45.mbcset,local_c4.idx)\n                    ;\n                  }\n                  else {\n                    aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                             ((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + local_c4.idx))->\n                             mbcset;\n                    aVar49 = local_c4;\n                    mctx.last_node =\n                         check_halt_state_context(&mctx,(re_dfastate_t *)aVar45.mbcset,local_c4.idx)\n                    ;\n                  }\n                  if (aVar4.sbcset < (re_dfa_t *)0x2) {\nLAB_00055c6c:\n                    prVar52 = prVar51;\n                    unaff_s4 = mctx.dfa;\n                    if (prVar59->nbackref == 0) goto LAB_00055548;\n                  }\n                  else {\n                    cVar37 = prVar59->field_0x58;\nLAB_00055c20:\n                    prVar52 = prVar51;\n                    if (-1 < cVar37) goto LAB_00055c6c;\n                  }\n                  paVar18 = (anon_union_4_5_a39f51ca_for_opr *)mctx.last_node;\n                  prVar3 = mctx.dfa;\n                  unaff_s4 = prVar3;\n                  if ((uint)local_c4 < (re_dfa_t *)0x3fffffff) {\n                    aVar46.idx = (int)((int)&((re_string_t *)&(local_c4.mbcset)->mbchars)->raw_mbs +\n                                      1) * 4;\n                    unaff_s5.sbcset = (re_bitset_ptr_t)(*(code *)PTR_malloc_00079b54)(aVar46.sbcset)\n                    ;\n                    if ((re_dfa_t *)unaff_s5.sbcset == (re_dfa_t *)0x0) {\nLAB_00055b9c:\n                      (*(code *)PTR_free_00079c24)(unaff_s5.sbcset);\n                      local_150.idx = 0xc;\n                      prVar51 = prVar52;\n                    }\n                    else {\n                      aVar45.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                      if (prVar3->nbackref == 0) {\n                        dest_nodes.nelem = 0;\n                        dest_nodes.elems = &paVar18->idx;\n                        dest_nodes.alloc = (Idx)unaff_s5.sbcset;\n                        last_start = sift_states_backward(&mctx,(re_sift_context_t *)aVar45.mbcset);\n                        (*(code *)PTR_free_00079c24)(0);\n                        if ((re_dfa_t *)last_start == (re_dfa_t *)0x0) {\n                          aVar46.mbcset = (re_charset_t *)*unaff_s5.sbcset;\n                          if ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0) {\nLAB_00055b70:\n                            (*(code *)PTR_free_00079c24)(unaff_s5.sbcset);\n                            (*(code *)PTR_free_00079c24)(aVar46.sbcset);\n                            prVar51 = prVar52;\n                            goto LAB_00055b04;\n                          }\nLAB_00055528:\n                          (*(code *)PTR_free_00079c24)(mctx.state_log);\n                          prVar51 = prVar52;\n                          unaff_s4 = prVar3;\n                          mctx.match_last = local_c4.idx;\n                          mctx.last_node = (Idx)paVar18;\n                          mctx.state_log = (re_dfastate_t **)unaff_s5.sbcset;\n                          goto LAB_00055548;\n                        }\nLAB_00055acc:\n                        aVar46.sbcset = (re_bitset_ptr_t)0x0;\n                        prVar51 = prVar52;\n                        unaff_s4 = prVar3;\n                      }\n                      else {\n                        aVar46.sbcset =\n                             (re_bitset_ptr_t)(*(code *)PTR_malloc_00079b54)(aVar46.sbcset);\n                        if ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0) goto LAB_00055b9c;\n                        unaff_s7.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                        pcVar9 = (code *)(PTR_DAT_000799a4 + 0x421c);\n                        pcVar10 = (code *)(PTR_DAT_000799a4 + -0x6bc0);\n                        prVar51 = prVar52;\n                        while( true ) {\n                          prVar52 = (re_dfa_t *)(local_c4.idx + 1);\n                          stop = (int)prVar52 * 4;\n                          aVar49.idx = stop;\n                          (*(code *)PTR_memset_00079b00)(aVar46.sbcset,0);\n                          aVar45.sbcset = unaff_s7.sbcset;\n                          dest_nodes.alloc = (Idx)unaff_s5.sbcset;\n                          dest_nodes.nelem = (Idx)aVar46.sbcset;\n                          dest_nodes.elems = (Idx *)paVar18;\n                          last_start = (*pcVar9)(&mctx);\n                          (*(code *)PTR_free_00079c24)(0);\n                          unaff_s4 = prVar52;\n                          if ((re_dfa_t *)last_start != (re_dfa_t *)0x0) break;\n                          if ((*unaff_s5.sbcset != 0) || (stop = stop + -4, *aVar46.sbcset != 0)) {\n                            aVar45.sbcset = unaff_s5.sbcset;\n                            aVar49.sbcset = aVar46.sbcset;\n                            last_start = merge_state_array(prVar3,(re_dfastate_t **)unaff_s5.sbcset,\n                                                           (re_dfastate_t **)aVar46.sbcset,\n                                                           (Idx)prVar52);\n                            (*(code *)PTR_free_00079c24)(aVar46.sbcset);\n                            if ((re_dfa_t *)last_start != (re_dfa_t *)0x0) goto LAB_00055acc;\n                            goto LAB_00055528;\n                          }\n                          stop = (Idx)(mctx.state_log + (int)&prVar52[-1].lock.__align + 0x17);\n                          do {\n                            while( true ) {\n                              local_c4.sbcset = (re_bitset_ptr_t)(local_c4.idx + -1);\n                              if (local_c4.idx < 0) goto LAB_00055b70;\n                              aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                                       ((anon_union_4_5_a39f51ca_for_opr *)(stop + -4))->idx;\n                              if ((re_dfa_t *)aVar45.sbcset != (re_dfa_t *)0x0) break;\n                              stop = stop + -4;\n                            }\n                            stop = stop + -4;\n                          } while ((*(byte *)(aVar45.idx + 0x34) & 8) == 0);\n                          paVar18 = (anon_union_4_5_a39f51ca_for_opr *)\n                                    (*pcVar10)(&mctx,aVar45.sbcset,local_c4.sbcset);\n                          prVar51 = prVar52;\n                        }\n                      }\n                      (*(code *)PTR_free_00079c24)(unaff_s5.sbcset);\n                      (*(code *)PTR_free_00079c24)(aVar46.sbcset);\n                      local_150.idx = last_start;\n                      if ((re_dfa_t *)last_start == (re_dfa_t *)0x1) goto LAB_00055b04;\n                    }\n                  }\n                  else {\n                    local_150.idx = 0xc;\n                    prVar51 = prVar52;\n                  }\n                  goto LAB_000557e4;\n                }\n                if (prVar59->nbackref != 0) {\n                  aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                           ((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + local_c4.idx))->\n                           mbcset;\n                  aVar49 = local_c4;\n                  mctx.last_node =\n                       check_halt_state_context(&mctx,(re_dfastate_t *)aVar45.mbcset,local_c4.idx);\n                  goto LAB_00055c6c;\n                }\nLAB_00055c08:\n                if (((preg->field_0x1c & 8) == 0) && ((re_dfa_t *)0x1 < aVar4.sbcset)) {\n                  cVar37 = prVar59->field_0x58;\n                  goto LAB_00055c20;\n                }\nLAB_00055548:\n                if ((re_dfa_t *)aVar4.sbcset == (re_dfa_t *)0x0) goto LAB_000557e4;\n                if (aVar4.sbcset < (re_dfa_t *)0x2) {\n                  pmatch->rm_so = 0;\n                  pmatch->rm_eo = mctx.match_last;\n                  goto LAB_000555ac;\n                }\n                prVar19 = pmatch + 1;\n                do {\n                  prVar19->rm_eo = -1;\n                  prVar19->rm_so = -1;\n                  prVar19 = prVar19 + 1;\n                } while (prVar19 != pmatch + aVar4.idx);\n                pmatch->rm_so = 0;\n                pmatch->rm_eo = mctx.match_last;\n                if ((preg->field_0x1c & 8) != 0) {\nLAB_000555ac:\n                  prVar19 = pmatch;\n                  do {\n                    aVar45.sbcset = (re_bitset_ptr_t)prVar19->rm_so;\n                    if ((re_dfa_t *)aVar45.sbcset != (re_dfa_t *)0xffffffff) {\n                      if (mctx.input.offsets_needed != '\0') {\n                        rVar47 = mctx.input.valid_raw_len;\n                        if (aVar45.sbcset != (re_bitset_ptr_t)mctx.input.valid_len) {\n                          rVar47 = mctx.input.offsets[aVar45.idx];\n                        }\n                        prVar19->rm_so = rVar47;\n                        rVar47 = mctx.input.valid_raw_len;\n                        if (mctx.input.valid_len != prVar19->rm_eo) {\n                          rVar47 = mctx.input.offsets[prVar19->rm_eo];\n                        }\n                        prVar19->rm_eo = rVar47;\n                      }\n                      prVar19->rm_so = prVar19->rm_so + match_first;\n                      aVar45.sbcset = (re_bitset_ptr_t)(prVar19->rm_eo + match_first);\n                      prVar19->rm_eo = (regoff_t)aVar45;\n                    }\n                    prVar19 = prVar19 + 1;\n                  } while (prVar19 != pmatch + aVar4.idx);\n                  if (0 < local_118) {\n                    prVar19 = pmatch + aVar4.idx;\n                    do {\n                      prVar19->rm_so = -1;\n                      prVar19->rm_eo = -1;\n                      prVar19 = prVar19 + 1;\n                    } while (prVar19 != pmatch + nmatch);\n                  }\n                  aVar49.idx = match_first;\n                  prVar51 = (re_dfa_t *)pmatch;\n                  local_150.sbcset = aVar7.sbcset;\n                  if (prVar59->subexp_map != (Idx *)0x0) {\n                    aVar49.sbcset = (re_bitset_ptr_t)(aVar4.idx + -1);\n                    prVar52 = (re_dfa_t *)0x0;\n                    prVar19 = pmatch;\n                    while( true ) {\n                      aVar45.idx = (int)prVar52 * 4;\n                      if ((re_dfa_t *)aVar49.sbcset == prVar52) break;\n                      if ((re_dfa_t *)prVar59->subexp_map[(int)prVar52] != prVar52) {\n                        prVar19[1].rm_so =\n                             pmatch[(int)((int)&((re_string_t *)\n                                                &((re_dfa_t *)prVar59->subexp_map[(int)prVar52])->\n                                                 nodes)->raw_mbs + 1)].rm_so;\n                        prVar19[1].rm_eo = pmatch[prVar59->subexp_map[(int)prVar52] + 1].rm_eo;\n                      }\n                      prVar52 = (re_dfa_t *)((int)&((re_string_t *)&prVar52->nodes)->raw_mbs + 1);\n                      prVar19 = prVar19 + 1;\n                    }\n                  }\n                  goto LAB_000557e4;\n                }\n                if ((char)prVar59->field_0x58 < '\0') {\n                  bVar36 = 0 < prVar59->nbackref;\n                }\n                else {\n                  bVar36 = false;\n                }\n                aVar45.sbcset = (re_bitset_ptr_t)&mctx;\n                aVar49.sbcset = aVar4.sbcset;\n                prVar51 = (re_dfa_t *)pmatch;\n                local_150.idx =\n                     set_regs(preg,(re_match_context_t *)aVar45.mbcset,aVar4.ctx_type,pmatch,bVar36)\n                ;\n                if ((re_dfa_t *)local_150.sbcset == (re_dfa_t *)0x0) goto LAB_000555ac;\n              }\n            }\n          }\n          else if ((uint)mctx.input.bufs_len < 0x3fffffff) {\n            mctx.state_log =\n                 (re_dfastate_t **)(*(code *)PTR_malloc_00079b54)((mctx.input.bufs_len + 1) * 4);\n            if (mctx.state_log != (re_dfastate_t **)0x0) goto LAB_00055a40;\n            local_150.idx = 0xc;\n            stop = aVar56.idx;\n          }\n          else {\n            local_150.idx = 0xc;\n            stop = aVar56.idx;\n          }\n        }\n        else {\n          unaff_s5.idx = iVar55 * 8;\n          if (aVar56.sbcset < (re_dfa_t *)0xccccccd) {\n            unaff_s4 = (re_dfa_t *)(*(code *)PTR_malloc_00079b54)(iVar55 * 0x28);\n            mctx.bkref_ents = (re_backref_cache_entry *)unaff_s4;\n            mctx.sub_tops = (re_sub_match_top_t **)(*(code *)PTR_malloc_00079b54)(unaff_s5.sbcset);\n            if ((unaff_s4 != (re_dfa_t *)0x0) && (mctx.sub_tops != (re_sub_match_top_t **)0x0))\n            goto LAB_000559f0;\n          }\n          local_150.idx = 0xc;\n          stop = aVar56.idx;\n        }\nLAB_000557e4:\n        (*(code *)PTR_free_00079c24)(mctx.state_log);\n        preg = (regex_t *)aVar49;\n        if (prVar59->nbackref != 0) {\n          match_ctx_clean(&mctx);\n          (*(code *)PTR_free_00079c24)(mctx.sub_tops);\n          (*(code *)PTR_free_00079c24)(mctx.bkref_ents);\n          preg = (regex_t *)aVar49;\n        }\n        re_string_destruct(&mctx.input);\n        aStack_1a0 = aVar46;\n        paStack_19c = paVar18;\n      }\n    }\n  }" if (parenthesized_expression "(prVar59->init_state == (re_dfastate_t *)0x0)" ( (binary_expression "prVar59->init_state == (re_dfastate_t *)0x0" (field_expression "prVar59->init_state" identifier -> field_identifier) == (cast_expression "(re_dfastate_t *)0x0" ( (type_descriptor "re_dfastate_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    local_150.idx = 1;\n  }" { (expression_statement "local_150.idx = 1;" (assignment_expression "local_150.idx = 1" (field_expression "local_150.idx" identifier . field_identifier) = number_literal) ;) }) (else_clause "else if (prVar59->init_state_word == (re_dfastate_t *)0x0) {\n    local_150.idx = 1;\n  }\n  else if (prVar59->init_state_nl == (re_dfastate_t *)0x0) {\n    local_150.idx = 1;\n  }\n  else {\n    aVar45 = (anon_union_4_5_a39f51ca_for_opr)prVar59->init_state_begbuf;\n    if ((re_dfa_t *)aVar45.sbcset == (re_dfa_t *)0x0) {\n      local_150.idx = 1;\n    }\n    else {\n      aVar4.idx = last_start;\n      if (((((prVar59->init_state->nodes).nelem == 0) &&\n           ((prVar59->init_state_word->nodes).nelem == 0)) &&\n          (((prVar59->init_state_nl->nodes).nelem == 0 || ((preg->field_0x1c & 1) == 0)))) &&\n         ((aVar4.idx = start, start != 0 &&\n          (start = last_start, aVar4.idx = last_start, last_start != 0)))) {\n        local_150.idx = 1;\n        aStack_1a0.idx = last_start;\n      }\n      else {\n        last_start = aVar4.idx;\n        aVar4.sbcset = (re_bitset_ptr_t)(nmatch - local_118);\n        if ((re_dfa_t *)aVar4.sbcset == (re_dfa_t *)0x0) {\n          paVar54 = (anon_union_4_5_a39f51ca_for_opr *)(uint)(prVar59->nbackref != 0);\n        }\n        else {\n          paVar54 = (anon_union_4_5_a39f51ca_for_opr *)0x1;\n        }\n        puVar50 = preg->translate;\n        mctx.input.icase = (uchar)((preg->syntax << 9) >> 0x1f);\n        mctx.input.mb_cur_max = prVar59->mb_cur_max;\n        aVar46.sbcset = (re_bitset_ptr_t)(prVar59->nodes_len + 1);\n        if (aVar46.idx < mctx.input.mb_cur_max) {\n          aVar46 = (anon_union_4_5_a39f51ca_for_opr)mctx.input.mb_cur_max;\n        }\n        aVar49.idx._0_3_ = 0;\n        aVar49.idx._3_1_ = ((re_bitset_ptr_t)(length + 1)).idx < aVar46.idx;\n        prVar51 = (re_dfa_t *)0x1;\n        mctx.input.mbs_allocated = mctx.input.icase;\n        if (puVar50 != (uchar *)0x0) {\n          mctx.input.mbs_allocated = 1;\n        }\n        mctx.input.is_utf8 = (uchar)((uint)(*(int *)&prVar59->field_0x58 << 2) >> 0x1f);\n        mctx.input.map_notascii = (uchar)((uint)(*(int *)&prVar59->field_0x58 << 3) >> 0x1f);\n        aVar45.sbcset = ((re_bitset_ptr_t)(length + 1)).sbcset;\n        if ((re_dfa_t *)aVar49.sbcset == (re_dfa_t *)0x0) {\n          aVar45 = aVar46;\n        }\n        mctx.input.raw_mbs = (uchar *)string;\n        mctx.input.raw_len = length;\n        mctx.input.len = length;\n        mctx.input.raw_stop = length;\n        mctx.input.stop = length;\n        mctx.input.trans = puVar50;\n        local_150.idx = re_string_realloc_buffers(&mctx.input,aVar45.idx);\n        aVar46.idx = start;\n        paVar18 = paVar54;\n        stop = stop;\n        if ((re_dfa_t *)local_150.sbcset != (re_dfa_t *)0x0) goto LAB_000557e4;\n        mctx.input.word_char = prVar59->word_char;\n        mctx.input.word_ops_used = (uchar)((uint)(*(int *)&prVar59->field_0x58 << 4) >> 0x1f);\n        paVar2 = (anon_union_4_5_a39f51ca_for_opr *)0x0;\n        mctx.input.valid_len = (Idx)paVar2;\n        if ((mctx.input.mbs_allocated == '\0') &&\n           (mctx.input.mbs = (uchar *)string, prVar59->mb_cur_max < 2)) {\n          mctx.input.valid_len = length;\n        }\n        mctx.input.stop = stop;\n        mctx.input.raw_stop = stop;\n        mctx.input.newline_anchor = (uchar)((uint)(*(int *)&preg->field_0x1c << 7) >> 0x1f);\n        iVar55 = prVar59->nbackref;\n        aVar56.idx = iVar55 * 2;\n        mctx.eflags = eflags;\n        mctx.match_last = -1;\n        mctx.input.valid_raw_len = mctx.input.valid_len;\n        if ((int)aVar56 < 1) {\nLAB_000559f0:\n          mctx.max_mb_elem_len = 1;\n          mctx.abkref_ents = aVar56.idx;\n          mctx.asub_tops = aVar56.idx;\n          if ((aVar4.sbcset < (re_dfa_t *)0x2) && ((prVar59->field_0x58 & 0x40) == 0)) {\n            mctx.state_log = (re_dfastate_t **)0x0;\nLAB_00055a40:\n            mctx.input.tip_context = 6;\n            if ((eflags & 1U) != 0) {\n              mctx.input.tip_context = 4;\n            }\n            aVar39.idx = 1;\n            aVar40.idx = start;\n            if (last_start < start) {\n              aVar39.idx = -1;\n              aVar40.idx = last_start;\n            }\n            aVar41.idx = last_start;\n            if (last_start <= start) {\n              aVar41.idx = start;\n            }\n            iVar55 = prVar59->mb_cur_max;\n            rVar20 = 8;\n            if ((re_dfa_t *)local_148.sbcset != (re_dfa_t *)0x0) {\n              if (iVar55 == 1) {\n                paVar43 = (anon_union_4_5_a39f51ca_for_opr *)0x4;\n              }\n              else {\n                paVar43 = paVar2;\n                if ((-1 < (int)(preg->syntax << 9)) && (puVar50 == (uchar *)0x0)) {\n                  paVar43 = (anon_union_4_5_a39f51ca_for_opr *)0x4;\n                }\n              }\n              aVar45.sbcset = (re_bitset_ptr_t)0x0;\n              if (start <= last_start) {\n                aVar45.idx = 2;\n              }\n              rVar20 = (uint)(puVar50 != (uchar *)0x0) | (uint)paVar43 | aVar45.ctx_type;\n            }\n            match_first = start;\n            if (start < aVar40.idx) {\n              local_150.idx = 1;\n              stop = aVar56.idx;\n            }\n            else {\n              aVar46.idx._0_3_ = 0;\n              aVar46.idx._3_1_ = last_start < start;\n              if (aVar41.idx < start) {\n                local_150.idx = 1;\n                stop = aVar56.idx;\n              }\n              else {\n                piVar38 = &match_first;\n                if ((re_dfa_t *)aVar46.sbcset != (re_dfa_t *)0x0) {\n                  piVar38 = (int *)0x0;\n                }\n                pcVar5 = (code *)(PTR_DAT_000799a4 + -0x2b7c);\n                piVar6 = (int *)(PTR_s_nt0_000795b8 + (rVar20 - 4) * 4 + 0x6e38);\nLAB_00055b44:\n                if (rVar20 - 4 < 5) {\n                    /* WARNING: Could not emulate address calculation at 0x00054920 */\n                    /* WARNING: Treating indirect jump as call */\n                  rVar21 = (*(code *)(&_gp + *piVar6))();\n                  return rVar21;\n                }\n                last_start = (Idx)&mctx;\n                prVar52 = prVar51;\n                while( true ) {\n                  aVar46.idx = match_first;\n                  uVar8 = match_first - mctx.input.raw_mbs_idx;\n                  aVar49 = (anon_union_4_5_a39f51ca_for_opr)eflags;\n                  paVar18 = paVar2;\n                  stop = local_148.idx;\n                  unaff_s4 = (re_dfa_t *)length;\n                  unaff_s5 = aVar39;\n                  unaff_s7 = aVar41;\n                  if ((uint)mctx.input.valid_raw_len <= uVar8) {\n                    aVar45.idx = match_first;\n                    local_150.sbcset = (re_bitset_ptr_t)(*pcVar5)(last_start);\n                    prVar51 = prVar52;\n                    if ((re_dfa_t *)local_150.sbcset != (re_dfa_t *)0x0) goto LAB_000557e4;\n                    uVar8 = (int)aVar46.sbcset - mctx.input.raw_mbs_idx;\n                  }\n                  if (aVar46.idx < length) {\n                    uVar8 = (uint)mctx.input.mbs[uVar8];\n                  }\n                  else {\n                    uVar8 = 0;\n                  }\n                  aVar56.sbcset = aVar46.sbcset + aVar39.sbcset;\n                  aVar46.sbcset = aVar56.sbcset;\n                  if (*(char *)((int)local_148.sbcset + uVar8) != '\0') break;\n                  prVar51 = prVar52;\n                  match_first = aVar56.idx;\n                  if (aVar56.idx < aVar40.idx) {\n                    local_150.idx = 1;\n                    goto LAB_000557e4;\n                  }\n                  aVar46.idx._0_3_ = 0;\n                  aVar46.idx._3_1_ = aVar41.idx < aVar56.idx;\n                  if ((re_dfa_t *)aVar46.sbcset != (re_dfa_t *)0x0) {\n                    local_150.idx = 1;\n                    goto LAB_000557e4;\n                  }\n                }\n                while( true ) {\n                  aVar45.idx = match_first;\n                  aVar49 = (anon_union_4_5_a39f51ca_for_opr)eflags;\n                  aVar7.sbcset = (re_bitset_ptr_t)(*pcVar5)(&mctx);\n                  aVar15 = (anon_union_4_5_a39f51ca_for_opr)mctx.dfa;\n                  aVar56.idx = mctx.input.cur_idx;\n                  prVar51 = prVar52;\n                  local_150.sbcset = aVar7.sbcset;\n                  if ((re_dfa_t *)aVar7.sbcset != (re_dfa_t *)0x0) goto LAB_000557e4;\n                  if (((iVar55 != 1) && (mctx.input.valid_len != 0)) &&\n                     (*mctx.input.wcs == 0xffffffff)) goto LAB_00055b1c;\n                  mctx.max_mb_elem_len = 0;\n                  mctx.nbkref_ents = 0;\n                  mctx.state_log_top = 0;\n                  local_138.idx = mctx.input.cur_idx;\n                  err = _REG_NOERROR;\n                  unaff_s7 = (anon_union_4_5_a39f51ca_for_opr)(mctx.dfa)->init_state;\n                  aVar49 = (anon_union_4_5_a39f51ca_for_opr)mctx.eflags;\n                  aVar46 = aVar15;\n                  if ((*(byte *)(unaff_s7.idx + 0x34) & 1) == 0) break;\n                  aVar45.sbcset = (re_bitset_ptr_t)(mctx.input.cur_idx + -1);\n                  prVar51 = (re_dfa_t *)re_string_context_at(&mctx.input,aVar45.idx,mctx.eflags);\n                  if (((uint)prVar51 & 1) == 0) {\n                    if (prVar51 == (re_dfa_t *)0x0) break;\n                    if (((uint)prVar51 & 6) == 6) {\n                      unaff_s7 = (anon_union_4_5_a39f51ca_for_opr)\n                                 ((re_dfa_t *)aVar15.idx)->init_state_begbuf;\n                      goto LAB_00054d1c;\n                    }\n                    if (((uint)prVar51 & 2) != 0) {\n                      unaff_s7 = (anon_union_4_5_a39f51ca_for_opr)\n                                 ((re_dfa_t *)aVar15.idx)->init_state_nl;\n                      goto LAB_00054d1c;\n                    }\n                    prVar52 = prVar51;\n                    if (((uint)prVar51 & 4) == 0) break;\n                    aVar49 = (anon_union_4_5_a39f51ca_for_opr)\n                             ((anon_union_4_5_a39f51ca_for_opr *)(unaff_s7.idx + 0x28))->mbcset;\n                    aVar45 = aVar15;\n                    unaff_s7.sbcset =\n                         &re_acquire_state_context\n                                    (&err,aVar15.sbcset,(re_node_set *)aVar49.mbcset,(uint)prVar51)\n                          ->hash;\n                    prVar52 = prVar51;\n                    if ((re_dfa_t *)unaff_s7.sbcset != (re_dfa_t *)0x0) break;\n                    if (err == _REG_ESPACE) goto LAB_00055914;\n                  }\n                  else {\n                    unaff_s7 = (anon_union_4_5_a39f51ca_for_opr)\n                               ((re_dfa_t *)aVar15.idx)->init_state_word;\nLAB_00054d1c:\n                    prVar52 = (re_dfa_t *)PTR_s_nt0_000795b8;\n                    if ((re_dfa_t *)unaff_s7.sbcset != (re_dfa_t *)0x0) break;\n                  }\n                  prVar52 = (re_dfa_t *)(PTR_s_nt0_000795b8 + 0x6eb0);\n                  aVar45.sbcset = (re_bitset_ptr_t)(PTR_s_nt0_000795b8 + 0x712c);\n                  match_first = (*(code *)PTR___assert_fail_000799f8)\n                                          (PTR_s_nt0_000795b8 + 0x71a0,aVar45.sbcset,0x435);\n                  if ((re_bitset_ptr_t)match_first == aVar41.sbcset) {\n                    if (match_first < length) {\n                      uVar8 = (uint)(byte)string[match_first];\n                    }\n                    else {\n                      uVar8 = 0;\n                    }\n                    if (puVar50 != (uchar *)0x0) {\n                      uVar8 = (uint)puVar50[uVar8];\n                    }\n                    if (*(char *)((int)local_148.sbcset + uVar8) == '\0') {\n                      local_150.idx = 1;\n                      aVar49 = (anon_union_4_5_a39f51ca_for_opr)eflags;\n                      prVar51 = prVar52;\n                      goto LAB_000557e4;\n                    }\n                  }\n                }\n                prVar51 = prVar52;\n                bVar36 = piVar38 != (int *)0x0;\n                if ((mctx.state_log == (re_dfastate_t **)0x0) ||\n                   (((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + aVar56.idx))->mbcset =\n                         (re_charset_t *)unaff_s7, ((re_dfa_t *)aVar15.idx)->nbackref == 0)) {\nLAB_00054d50:\n                  if ((int)*(bin_tree_t **)(unaff_s7.idx + 0x34) << 4 < 0) {\n                    if (((*(byte *)(unaff_s7.idx + 0x34) & 1) == 0) ||\n                       (aVar45 = unaff_s7, aVar49 = aVar56,\n                       IVar17 = check_halt_state_context(&mctx,unaff_s7.idx,aVar56.idx), IVar17 != 0\n                       )) {\n                      local_c4 = aVar56;\n                      if (paVar54 == (anon_union_4_5_a39f51ca_for_opr *)0x0) goto LAB_00055dbc;\n                      prVar52 = (re_dfa_t *)0x1;\n                    }\n                    else {\n                      aVar56.idx = -1;\n                      prVar52 = (re_dfa_t *)0x0;\n                    }\n                  }\n                  else {\n                    aVar56.idx = -1;\n                    prVar52 = (re_dfa_t *)0x0;\n                  }\n                  pcVar9 = (code *)(PTR_DAT_000799a4 + -0x7144);\n                  pcVar10 = (code *)(PTR_DAT_000799a4 + -0x1980);\n                  pcVar11 = (code *)(PTR_DAT_000799a4 + -0x2f9c);\n                  local_c4 = aVar56;\n                  local_144 = piVar38;\n                  while( true ) {\n                    uVar63 = CONCAT44(mctx.input.valid_len,mctx.input.len);\n                    unaff_s5.sbcset = (re_bitset_ptr_t)(mctx.input.cur_idx + 1);\n                    aVar45.idx = mctx.input.cur_idx;\n                    if (mctx.input.stop <= mctx.input.cur_idx) break;\n                    if ((mctx.input.bufs_len <= unaff_s5.idx) &&\n                       (mctx.input.bufs_len < mctx.input.len)) goto LAB_00054e94;\n                    if (mctx.input.valid_len <= unaff_s5.idx) {\n                      while ((int)((ulonglong)uVar63 >> 0x20) < (int)uVar63) {\nLAB_00054e94:\n                        aVar45.sbcset =\n                             (re_bitset_ptr_t)\n                             ((int)&((re_string_t *)&(aVar45.mbcset)->mbchars)->raw_mbs + 2);\n                        err = (*pcVar9)(&mctx);\n                        if (err == _REG_NOERROR) break;\n                        aVar15 = aVar46;\n                        if (err == _REG_ESPACE) goto LAB_00055914;\n                        prVar51 = (re_dfa_t *)(PTR_s_nt0_000795b8 + 0x6eb0);\n                        aVar49.idx = 0x46c;\n                        aVar45.sbcset = (re_bitset_ptr_t)(PTR_s_nt0_000795b8 + 0x712c);\n                        uVar63 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0);\n                        prVar52 = prVar59;\n                      }\n                    }\n                    prVar3 = mctx.dfa;\n                    if ((int)*(bin_tree_t **)(unaff_s7.idx + 0x34) << 5 < 0) {\n                      paVar18 = (anon_union_4_5_a39f51ca_for_opr *)prVar3;\n                      if (0 < (int)(unaff_s7.mbcset)->range_ends) {\n                        pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6fdc);\n                        pcVar13 = (code *)(PTR_DAT_000799a4 + -0x6ef0);\n                        stop = 0;\n                        do {\n                          last_start = ((anon_union_4_5_a39f51ca_for_opr *)\n                                       ((unaff_s7.mbcset)->char_classes + stop))->idx;\n                          prVar53 = prVar3->nodes;\n                          uVar8 = *(uint *)&prVar53[last_start].field_0x4;\n                          if ((uVar8 & 0x800) != 0) {\n                            if ((uVar8 & 0xffc000) != 0) {\n                              aVar45.idx = mctx.input.cur_idx;\n                              uVar60 = (*pcVar13)(&mctx,mctx.input.cur_idx,mctx.eflags);\n                              uVar8 = (uint)(*(int *)&prVar53[last_start].field_0x4 << 8) >> 0x16;\n                              if ((uVar8 & 4) == 0) {\n                                uVar26 = uVar60 & 1;\n                                if ((uVar8 & 8) != 0) goto joined_r0x00054f40;\n                              }\n                              else {\n                                uVar26 = uVar8 & 8;\n                                if ((uVar60 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                                if (uVar26 != 0) goto LAB_000550a4;\n                              }\n                              if ((((uVar8 & 0x20) != 0) && ((uVar60 & 2) == 0)) ||\n                                 (((uVar8 & 0x80) != 0 &&\n                                  (prVar51 = (re_dfa_t *)mctx.input.cur_idx, (uVar60 & 8) == 0))))\n                              goto LAB_000550a4;\n                            }\n                            aVar49.sbcset = (re_bitset_ptr_t)&mctx;\n                            aVar45.idx = last_start;\n                            prVar51 = (re_dfa_t *)mctx.input.cur_idx;\n                            iVar61 = (*pcVar11)(prVar3);\n                            if (iVar61 != 0) {\n                              aVar46.sbcset = (re_bitset_ptr_t)(iVar61 + mctx.input.cur_idx);\n                              if (iVar61 <= mctx.max_mb_elem_len) {\n                                iVar61 = mctx.max_mb_elem_len;\n                              }\n                              aVar45.sbcset = aVar46.sbcset;\n                              mctx.max_mb_elem_len = iVar61;\n                              err_1 = (*pcVar12)(&mctx);\n                              rVar21 = err_1;\n                              if (err_1 != _REG_NOERROR) goto LAB_00055e44;\n                              aVar49.sbcset =\n                                   (re_bitset_ptr_t)(prVar3->eclosures + prVar3->nexts[last_start]);\n                              unaff_s4 = (re_dfa_t *)(aVar46.idx * 4);\n                              last_start = (Idx)(mctx.state_log + aVar46.idx);\n                              if (*(bitset_word_t *)last_start == 0) {\n                                dest_nodes.alloc = *aVar49.sbcset;\n                                dest_nodes.nelem =\n                                     ((re_node_set *)&(aVar49.mbcset)->range_starts)->alloc;\n                                dest_nodes.elems = (aVar49.mbcset)->range_ends;\n                                prVar51 = (re_dfa_t *)\n                                          (*pcVar13)(&mctx,(undefined1 *)(aVar46.idx + -1),\n                                                     mctx.eflags);\n                                aVar49.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                                aVar45 = (anon_union_4_5_a39f51ca_for_opr)prVar3;\n                                prVar35 = re_acquire_state_context\n                                                    (&err_1,prVar3,(re_node_set *)aVar49.mbcset,\n                                                     (uint)prVar51);\n                                ((re_string_t *)&((re_charset_t *)last_start)->mbchars)->raw_mbs =\n                                     (uchar *)prVar35;\n                              }\n                              else {\n                                aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                                         ((anon_union_4_5_a39f51ca_for_opr *)\n                                         (*(bitset_word_t *)last_start + 0x28))->mbcset;\n                                err_1 = re_node_set_init_union\n                                                  (&dest_nodes,(re_node_set *)aVar45.mbcset,\n                                                   (re_node_set *)aVar49.mbcset);\n                                rVar21 = err_1;\n                                if (err_1 != _REG_NOERROR) goto LAB_00055e44;\n                                prVar51 = (re_dfa_t *)\n                                          (*pcVar13)(&mctx,(undefined1 *)(aVar46.idx + -1),\n                                                     mctx.eflags);\n                                pprVar14 = mctx.state_log + aVar46.idx;\n                                aVar49.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                                aVar45 = (anon_union_4_5_a39f51ca_for_opr)prVar3;\n                                prVar35 = re_acquire_state_context\n                                                    (&err_1,prVar3,(re_node_set *)aVar49.mbcset,\n                                                     (uint)prVar51);\n                                *pprVar14 = prVar35;\n                                (*(code *)PTR_free_00079c24)(dest_nodes.elems);\n                              }\n                              unaff_s4 = (re_dfa_t *)(mctx.state_log + aVar46.idx);\n                              if ((unaff_s4->nodes == (re_token_t *)0x0) &&\n                                 (rVar21 = err_1, err_1 != _REG_NOERROR)) goto LAB_00055e44;\n                            }\n                          }\nLAB_000550a4:\n                          stop = (int)&((re_string_t *)&((re_charset_t *)stop)->mbchars)->raw_mbs +\n                                 1;\n                        } while (stop < (int)(unaff_s7.mbcset)->range_ends);\n                      }\n                      err = _REG_NOERROR;\n                    }\n                    uVar8 = (uint)mctx.input.mbs[mctx.input.cur_idx];\n                    mctx.input.cur_idx = mctx.input.cur_idx + 1;\n                    do {\n                      if (*(re_dfastate_t **)(unaff_s7.idx + 0x2c) != (re_dfastate_t *)0x0) {\n                        aVar49 = (anon_union_4_5_a39f51ca_for_opr)\n                                 ((anon_union_4_5_a39f51ca_for_opr *)\n                                 (&(*(re_dfastate_t **)(unaff_s7.idx + 0x2c))->hash + uVar8))->\n                                 mbcset;\nLAB_000553a0:\n                        aVar15 = aVar49;\n                        if (mctx.state_log != (re_dfastate_t **)0x0) goto LAB_000553ac;\n                        goto LAB_000553cc;\n                      }\n                      paVar18 = *(anon_union_4_5_a39f51ca_for_opr **)(unaff_s7.idx + 0x30);\n                      if (paVar18 != (anon_union_4_5_a39f51ca_for_opr *)0x0) {\n                        aVar45.sbcset = (re_bitset_ptr_t)(mctx.input.cur_idx + -1);\n                        uVar60 = re_string_context_at(&mctx.input,aVar45.idx,mctx.eflags);\n                        if ((uVar60 & 1) == 0) {\n                          aVar49 = (anon_union_4_5_a39f51ca_for_opr)paVar18[uVar8].mbcset;\n                        }\n                        else {\n                          paVar18 = paVar18 + uVar8 + 0x100;\n                          aVar49 = (anon_union_4_5_a39f51ca_for_opr)paVar18->mbcset;\n                        }\n                        goto LAB_000553a0;\n                      }\n                      aVar45 = unaff_s7;\n                      aVar49 = (anon_union_4_5_a39f51ca_for_opr)mctx.eflags;\n                      iVar61 = (*pcVar10)(mctx.dfa);\n                    } while (iVar61 != 0);\n                    err = _REG_ESPACE;\n                    rVar21 = err;\nLAB_00055e44:\n                    err = rVar21;\n                    aVar46.sbcset = (re_bitset_ptr_t)0x0;\n                    if (mctx.state_log == (re_dfastate_t **)0x0) {\n                      aVar15.sbcset = aVar46.sbcset;\n                      if (err != _REG_NOERROR) goto LAB_00055914;\n                      break;\n                    }\n                    aVar49.sbcset = (re_bitset_ptr_t)0x0;\nLAB_000553ac:\n                    aVar45.sbcset = (re_bitset_ptr_t)&mctx;\n                    aVar15.sbcset =\n                         &merge_state_with_log\n                                    (&err,(re_match_context_t *)aVar45.mbcset,aVar49.sbcset)->hash;\nLAB_000553cc:\n                    aVar46 = aVar15;\n                    if ((re_dfa_t *)aVar15.sbcset == (re_dfa_t *)0x0) {\n                      if (err != _REG_NOERROR) goto LAB_00055914;\n                      if ((mctx.state_log == (re_dfastate_t **)0x0) ||\n                         ((prVar52 != (re_dfa_t *)0x0 &&\n                          (paVar54 == (anon_union_4_5_a39f51ca_for_opr *)0x0)))) break;\n                      stop = (Idx)&mctx;\n                      last_start = (Idx)&err;\n                      paVar18 = (anon_union_4_5_a39f51ca_for_opr *)(PTR_DAT_000799a4 + 0x3684);\n                      do {\n                        pprVar14 = mctx.state_log + mctx.input.cur_idx;\n                        IVar17 = mctx.input.cur_idx;\n                        do {\n                          IVar17 = IVar17 + 1;\n                          aVar45.idx = mctx.state_log_top;\n                          aVar46 = aVar15;\n                          if (mctx.state_log_top < IVar17) goto LAB_00055da8;\n                          mctx.input.cur_idx = mctx.input.cur_idx + 1;\n                          pprVar14 = pprVar14 + 1;\n                        } while (*pprVar14 == (re_dfastate_t *)0x0);\n                        aVar49.sbcset = (re_bitset_ptr_t)0x0;\n                        aVar45.sbcset = (re_bitset_ptr_t)stop;\n                        aVar46.sbcset = (re_bitset_ptr_t)(*(code *)paVar18)(last_start);\n                        if (err != _REG_NOERROR) {\n                          if ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0) goto LAB_00055da8;\n                          break;\n                        }\n                        aVar45.idx = mctx.state_log_top;\n                      } while ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0);\n                    }\n                    aVar16.ctx_type = unaff_s7.ctx_type ^ aVar46.ctx_type;\n                    aVar56 = unaff_s7;\n                    aVar15 = local_138;\n                    if ((bVar36) &&\n                       (aVar56.ctx_type = aVar16.ctx_type, aVar15.sbcset = unaff_s5.sbcset,\n                       (re_dfa_t *)aVar16.sbcset != (re_dfa_t *)0x0)) {\n                      bVar36 = false;\n                      aVar15 = local_138;\n                    }\n                    local_138 = aVar15;\n                    unaff_s7 = aVar46;\n                    if (((*(byte *)(aVar46.idx + 0x34) & 8) != 0) &&\n                       (((*(byte *)(aVar46.idx + 0x34) & 1) == 0 ||\n                        (aVar45 = aVar46, aVar49.idx = mctx.input.cur_idx,\n                        IVar17 = check_halt_state_context(&mctx,aVar46.idx,mctx.input.cur_idx),\n                        IVar17 != 0)))) {\n                      unaff_s7 = aVar56;\n                      local_c4.idx = mctx.input.cur_idx;\n                      if (paVar54 == (anon_union_4_5_a39f51ca_for_opr *)0x0) goto LAB_00055dbc;\n                      prVar52 = (re_dfa_t *)0x1;\n                      local_144 = (int *)0x0;\n                      unaff_s7 = aVar46;\n                    }\n                  }\nLAB_00055da8:\n                  if (local_144 != (int *)0x0) {\n                    *local_144 = *local_144 + (int)local_138.sbcset;\n                  }\n                }\n                else {\n                  aVar46.sbcset = (re_bitset_ptr_t)&(unaff_s7.mbcset)->range_starts;\n                  aVar49.sbcset = (re_bitset_ptr_t)0x0;\n                  aVar45 = aVar46;\n                  err = check_subexp_matching_top(&mctx,(re_node_set *)aVar46.mbcset,0);\n                  local_c4.idx = err;\n                  if ((re_dfa_t *)err == (re_dfa_t *)0x0) {\n                    if ((*(byte *)(unaff_s7.idx + 0x34) & 2) == 0) {\n                      aVar45 = aVar46;\n                      bVar36 = false;\n                    }\n                    else {\n                      aVar45 = aVar46;\n                      err = transit_state_bkref(&mctx,(re_node_set *)aVar46.mbcset);\n                      local_c4.idx = err;\n                      if ((re_dfa_t *)err != (re_dfa_t *)0x0) goto LAB_00055dbc;\n                      bVar36 = false;\n                    }\n                    goto LAB_00054d50;\n                  }\n                }\nLAB_00055dbc:\n                if ((re_dfa_t *)local_c4.sbcset == (re_dfa_t *)0xffffffff) {\nLAB_00055b04:\n                  match_ctx_clean(&mctx);\nLAB_00055b1c:\n                  match_first = aVar39.idx + match_first;\n                  if (aVar40.idx <= match_first) goto code_r0x00055b38;\n                  local_150.idx = 1;\n                  goto LAB_000557e4;\n                }\n                if ((re_dfa_t *)local_c4.sbcset == (re_dfa_t *)&SUB_fffffffe) {\n                  local_150.idx = 0xc;\n                  goto LAB_000557e4;\n                }\n                mctx.match_last = local_c4.idx;\n                if ((preg->field_0x1c & 8) == 0) {\n                  if (aVar4.sbcset < (re_dfa_t *)0x2) {\n                    if (prVar59->nbackref == 0) goto LAB_00055c08;\n                    aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                             ((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + local_c4.idx))->\n                             mbcset;\n                    aVar49 = local_c4;\n                    mctx.last_node =\n                         check_halt_state_context(&mctx,(re_dfastate_t *)aVar45.mbcset,local_c4.idx)\n                    ;\n                  }\n                  else {\n                    aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                             ((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + local_c4.idx))->\n                             mbcset;\n                    aVar49 = local_c4;\n                    mctx.last_node =\n                         check_halt_state_context(&mctx,(re_dfastate_t *)aVar45.mbcset,local_c4.idx)\n                    ;\n                  }\n                  if (aVar4.sbcset < (re_dfa_t *)0x2) {\nLAB_00055c6c:\n                    prVar52 = prVar51;\n                    unaff_s4 = mctx.dfa;\n                    if (prVar59->nbackref == 0) goto LAB_00055548;\n                  }\n                  else {\n                    cVar37 = prVar59->field_0x58;\nLAB_00055c20:\n                    prVar52 = prVar51;\n                    if (-1 < cVar37) goto LAB_00055c6c;\n                  }\n                  paVar18 = (anon_union_4_5_a39f51ca_for_opr *)mctx.last_node;\n                  prVar3 = mctx.dfa;\n                  unaff_s4 = prVar3;\n                  if ((uint)local_c4 < (re_dfa_t *)0x3fffffff) {\n                    aVar46.idx = (int)((int)&((re_string_t *)&(local_c4.mbcset)->mbchars)->raw_mbs +\n                                      1) * 4;\n                    unaff_s5.sbcset = (re_bitset_ptr_t)(*(code *)PTR_malloc_00079b54)(aVar46.sbcset)\n                    ;\n                    if ((re_dfa_t *)unaff_s5.sbcset == (re_dfa_t *)0x0) {\nLAB_00055b9c:\n                      (*(code *)PTR_free_00079c24)(unaff_s5.sbcset);\n                      local_150.idx = 0xc;\n                      prVar51 = prVar52;\n                    }\n                    else {\n                      aVar45.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                      if (prVar3->nbackref == 0) {\n                        dest_nodes.nelem = 0;\n                        dest_nodes.elems = &paVar18->idx;\n                        dest_nodes.alloc = (Idx)unaff_s5.sbcset;\n                        last_start = sift_states_backward(&mctx,(re_sift_context_t *)aVar45.mbcset);\n                        (*(code *)PTR_free_00079c24)(0);\n                        if ((re_dfa_t *)last_start == (re_dfa_t *)0x0) {\n                          aVar46.mbcset = (re_charset_t *)*unaff_s5.sbcset;\n                          if ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0) {\nLAB_00055b70:\n                            (*(code *)PTR_free_00079c24)(unaff_s5.sbcset);\n                            (*(code *)PTR_free_00079c24)(aVar46.sbcset);\n                            prVar51 = prVar52;\n                            goto LAB_00055b04;\n                          }\nLAB_00055528:\n                          (*(code *)PTR_free_00079c24)(mctx.state_log);\n                          prVar51 = prVar52;\n                          unaff_s4 = prVar3;\n                          mctx.match_last = local_c4.idx;\n                          mctx.last_node = (Idx)paVar18;\n                          mctx.state_log = (re_dfastate_t **)unaff_s5.sbcset;\n                          goto LAB_00055548;\n                        }\nLAB_00055acc:\n                        aVar46.sbcset = (re_bitset_ptr_t)0x0;\n                        prVar51 = prVar52;\n                        unaff_s4 = prVar3;\n                      }\n                      else {\n                        aVar46.sbcset =\n                             (re_bitset_ptr_t)(*(code *)PTR_malloc_00079b54)(aVar46.sbcset);\n                        if ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0) goto LAB_00055b9c;\n                        unaff_s7.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                        pcVar9 = (code *)(PTR_DAT_000799a4 + 0x421c);\n                        pcVar10 = (code *)(PTR_DAT_000799a4 + -0x6bc0);\n                        prVar51 = prVar52;\n                        while( true ) {\n                          prVar52 = (re_dfa_t *)(local_c4.idx + 1);\n                          stop = (int)prVar52 * 4;\n                          aVar49.idx = stop;\n                          (*(code *)PTR_memset_00079b00)(aVar46.sbcset,0);\n                          aVar45.sbcset = unaff_s7.sbcset;\n                          dest_nodes.alloc = (Idx)unaff_s5.sbcset;\n                          dest_nodes.nelem = (Idx)aVar46.sbcset;\n                          dest_nodes.elems = (Idx *)paVar18;\n                          last_start = (*pcVar9)(&mctx);\n                          (*(code *)PTR_free_00079c24)(0);\n                          unaff_s4 = prVar52;\n                          if ((re_dfa_t *)last_start != (re_dfa_t *)0x0) break;\n                          if ((*unaff_s5.sbcset != 0) || (stop = stop + -4, *aVar46.sbcset != 0)) {\n                            aVar45.sbcset = unaff_s5.sbcset;\n                            aVar49.sbcset = aVar46.sbcset;\n                            last_start = merge_state_array(prVar3,(re_dfastate_t **)unaff_s5.sbcset,\n                                                           (re_dfastate_t **)aVar46.sbcset,\n                                                           (Idx)prVar52);\n                            (*(code *)PTR_free_00079c24)(aVar46.sbcset);\n                            if ((re_dfa_t *)last_start != (re_dfa_t *)0x0) goto LAB_00055acc;\n                            goto LAB_00055528;\n                          }\n                          stop = (Idx)(mctx.state_log + (int)&prVar52[-1].lock.__align + 0x17);\n                          do {\n                            while( true ) {\n                              local_c4.sbcset = (re_bitset_ptr_t)(local_c4.idx + -1);\n                              if (local_c4.idx < 0) goto LAB_00055b70;\n                              aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                                       ((anon_union_4_5_a39f51ca_for_opr *)(stop + -4))->idx;\n                              if ((re_dfa_t *)aVar45.sbcset != (re_dfa_t *)0x0) break;\n                              stop = stop + -4;\n                            }\n                            stop = stop + -4;\n                          } while ((*(byte *)(aVar45.idx + 0x34) & 8) == 0);\n                          paVar18 = (anon_union_4_5_a39f51ca_for_opr *)\n                                    (*pcVar10)(&mctx,aVar45.sbcset,local_c4.sbcset);\n                          prVar51 = prVar52;\n                        }\n                      }\n                      (*(code *)PTR_free_00079c24)(unaff_s5.sbcset);\n                      (*(code *)PTR_free_00079c24)(aVar46.sbcset);\n                      local_150.idx = last_start;\n                      if ((re_dfa_t *)last_start == (re_dfa_t *)0x1) goto LAB_00055b04;\n                    }\n                  }\n                  else {\n                    local_150.idx = 0xc;\n                    prVar51 = prVar52;\n                  }\n                  goto LAB_000557e4;\n                }\n                if (prVar59->nbackref != 0) {\n                  aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                           ((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + local_c4.idx))->\n                           mbcset;\n                  aVar49 = local_c4;\n                  mctx.last_node =\n                       check_halt_state_context(&mctx,(re_dfastate_t *)aVar45.mbcset,local_c4.idx);\n                  goto LAB_00055c6c;\n                }\nLAB_00055c08:\n                if (((preg->field_0x1c & 8) == 0) && ((re_dfa_t *)0x1 < aVar4.sbcset)) {\n                  cVar37 = prVar59->field_0x58;\n                  goto LAB_00055c20;\n                }\nLAB_00055548:\n                if ((re_dfa_t *)aVar4.sbcset == (re_dfa_t *)0x0) goto LAB_000557e4;\n                if (aVar4.sbcset < (re_dfa_t *)0x2) {\n                  pmatch->rm_so = 0;\n                  pmatch->rm_eo = mctx.match_last;\n                  goto LAB_000555ac;\n                }\n                prVar19 = pmatch + 1;\n                do {\n                  prVar19->rm_eo = -1;\n                  prVar19->rm_so = -1;\n                  prVar19 = prVar19 + 1;\n                } while (prVar19 != pmatch + aVar4.idx);\n                pmatch->rm_so = 0;\n                pmatch->rm_eo = mctx.match_last;\n                if ((preg->field_0x1c & 8) != 0) {\nLAB_000555ac:\n                  prVar19 = pmatch;\n                  do {\n                    aVar45.sbcset = (re_bitset_ptr_t)prVar19->rm_so;\n                    if ((re_dfa_t *)aVar45.sbcset != (re_dfa_t *)0xffffffff) {\n                      if (mctx.input.offsets_needed != '\0') {\n                        rVar47 = mctx.input.valid_raw_len;\n                        if (aVar45.sbcset != (re_bitset_ptr_t)mctx.input.valid_len) {\n                          rVar47 = mctx.input.offsets[aVar45.idx];\n                        }\n                        prVar19->rm_so = rVar47;\n                        rVar47 = mctx.input.valid_raw_len;\n                        if (mctx.input.valid_len != prVar19->rm_eo) {\n                          rVar47 = mctx.input.offsets[prVar19->rm_eo];\n                        }\n                        prVar19->rm_eo = rVar47;\n                      }\n                      prVar19->rm_so = prVar19->rm_so + match_first;\n                      aVar45.sbcset = (re_bitset_ptr_t)(prVar19->rm_eo + match_first);\n                      prVar19->rm_eo = (regoff_t)aVar45;\n                    }\n                    prVar19 = prVar19 + 1;\n                  } while (prVar19 != pmatch + aVar4.idx);\n                  if (0 < local_118) {\n                    prVar19 = pmatch + aVar4.idx;\n                    do {\n                      prVar19->rm_so = -1;\n                      prVar19->rm_eo = -1;\n                      prVar19 = prVar19 + 1;\n                    } while (prVar19 != pmatch + nmatch);\n                  }\n                  aVar49.idx = match_first;\n                  prVar51 = (re_dfa_t *)pmatch;\n                  local_150.sbcset = aVar7.sbcset;\n                  if (prVar59->subexp_map != (Idx *)0x0) {\n                    aVar49.sbcset = (re_bitset_ptr_t)(aVar4.idx + -1);\n                    prVar52 = (re_dfa_t *)0x0;\n                    prVar19 = pmatch;\n                    while( true ) {\n                      aVar45.idx = (int)prVar52 * 4;\n                      if ((re_dfa_t *)aVar49.sbcset == prVar52) break;\n                      if ((re_dfa_t *)prVar59->subexp_map[(int)prVar52] != prVar52) {\n                        prVar19[1].rm_so =\n                             pmatch[(int)((int)&((re_string_t *)\n                                                &((re_dfa_t *)prVar59->subexp_map[(int)prVar52])->\n                                                 nodes)->raw_mbs + 1)].rm_so;\n                        prVar19[1].rm_eo = pmatch[prVar59->subexp_map[(int)prVar52] + 1].rm_eo;\n                      }\n                      prVar52 = (re_dfa_t *)((int)&((re_string_t *)&prVar52->nodes)->raw_mbs + 1);\n                      prVar19 = prVar19 + 1;\n                    }\n                  }\n                  goto LAB_000557e4;\n                }\n                if ((char)prVar59->field_0x58 < '\0') {\n                  bVar36 = 0 < prVar59->nbackref;\n                }\n                else {\n                  bVar36 = false;\n                }\n                aVar45.sbcset = (re_bitset_ptr_t)&mctx;\n                aVar49.sbcset = aVar4.sbcset;\n                prVar51 = (re_dfa_t *)pmatch;\n                local_150.idx =\n                     set_regs(preg,(re_match_context_t *)aVar45.mbcset,aVar4.ctx_type,pmatch,bVar36)\n                ;\n                if ((re_dfa_t *)local_150.sbcset == (re_dfa_t *)0x0) goto LAB_000555ac;\n              }\n            }\n          }\n          else if ((uint)mctx.input.bufs_len < 0x3fffffff) {\n            mctx.state_log =\n                 (re_dfastate_t **)(*(code *)PTR_malloc_00079b54)((mctx.input.bufs_len + 1) * 4);\n            if (mctx.state_log != (re_dfastate_t **)0x0) goto LAB_00055a40;\n            local_150.idx = 0xc;\n            stop = aVar56.idx;\n          }\n          else {\n            local_150.idx = 0xc;\n            stop = aVar56.idx;\n          }\n        }\n        else {\n          unaff_s5.idx = iVar55 * 8;\n          if (aVar56.sbcset < (re_dfa_t *)0xccccccd) {\n            unaff_s4 = (re_dfa_t *)(*(code *)PTR_malloc_00079b54)(iVar55 * 0x28);\n            mctx.bkref_ents = (re_backref_cache_entry *)unaff_s4;\n            mctx.sub_tops = (re_sub_match_top_t **)(*(code *)PTR_malloc_00079b54)(unaff_s5.sbcset);\n            if ((unaff_s4 != (re_dfa_t *)0x0) && (mctx.sub_tops != (re_sub_match_top_t **)0x0))\n            goto LAB_000559f0;\n          }\n          local_150.idx = 0xc;\n          stop = aVar56.idx;\n        }\nLAB_000557e4:\n        (*(code *)PTR_free_00079c24)(mctx.state_log);\n        preg = (regex_t *)aVar49;\n        if (prVar59->nbackref != 0) {\n          match_ctx_clean(&mctx);\n          (*(code *)PTR_free_00079c24)(mctx.sub_tops);\n          (*(code *)PTR_free_00079c24)(mctx.bkref_ents);\n          preg = (regex_t *)aVar49;\n        }\n        re_string_destruct(&mctx.input);\n        aStack_1a0 = aVar46;\n        paStack_19c = paVar18;\n      }\n    }\n  }" else (if_statement "if (prVar59->init_state_word == (re_dfastate_t *)0x0) {\n    local_150.idx = 1;\n  }\n  else if (prVar59->init_state_nl == (re_dfastate_t *)0x0) {\n    local_150.idx = 1;\n  }\n  else {\n    aVar45 = (anon_union_4_5_a39f51ca_for_opr)prVar59->init_state_begbuf;\n    if ((re_dfa_t *)aVar45.sbcset == (re_dfa_t *)0x0) {\n      local_150.idx = 1;\n    }\n    else {\n      aVar4.idx = last_start;\n      if (((((prVar59->init_state->nodes).nelem == 0) &&\n           ((prVar59->init_state_word->nodes).nelem == 0)) &&\n          (((prVar59->init_state_nl->nodes).nelem == 0 || ((preg->field_0x1c & 1) == 0)))) &&\n         ((aVar4.idx = start, start != 0 &&\n          (start = last_start, aVar4.idx = last_start, last_start != 0)))) {\n        local_150.idx = 1;\n        aStack_1a0.idx = last_start;\n      }\n      else {\n        last_start = aVar4.idx;\n        aVar4.sbcset = (re_bitset_ptr_t)(nmatch - local_118);\n        if ((re_dfa_t *)aVar4.sbcset == (re_dfa_t *)0x0) {\n          paVar54 = (anon_union_4_5_a39f51ca_for_opr *)(uint)(prVar59->nbackref != 0);\n        }\n        else {\n          paVar54 = (anon_union_4_5_a39f51ca_for_opr *)0x1;\n        }\n        puVar50 = preg->translate;\n        mctx.input.icase = (uchar)((preg->syntax << 9) >> 0x1f);\n        mctx.input.mb_cur_max = prVar59->mb_cur_max;\n        aVar46.sbcset = (re_bitset_ptr_t)(prVar59->nodes_len + 1);\n        if (aVar46.idx < mctx.input.mb_cur_max) {\n          aVar46 = (anon_union_4_5_a39f51ca_for_opr)mctx.input.mb_cur_max;\n        }\n        aVar49.idx._0_3_ = 0;\n        aVar49.idx._3_1_ = ((re_bitset_ptr_t)(length + 1)).idx < aVar46.idx;\n        prVar51 = (re_dfa_t *)0x1;\n        mctx.input.mbs_allocated = mctx.input.icase;\n        if (puVar50 != (uchar *)0x0) {\n          mctx.input.mbs_allocated = 1;\n        }\n        mctx.input.is_utf8 = (uchar)((uint)(*(int *)&prVar59->field_0x58 << 2) >> 0x1f);\n        mctx.input.map_notascii = (uchar)((uint)(*(int *)&prVar59->field_0x58 << 3) >> 0x1f);\n        aVar45.sbcset = ((re_bitset_ptr_t)(length + 1)).sbcset;\n        if ((re_dfa_t *)aVar49.sbcset == (re_dfa_t *)0x0) {\n          aVar45 = aVar46;\n        }\n        mctx.input.raw_mbs = (uchar *)string;\n        mctx.input.raw_len = length;\n        mctx.input.len = length;\n        mctx.input.raw_stop = length;\n        mctx.input.stop = length;\n        mctx.input.trans = puVar50;\n        local_150.idx = re_string_realloc_buffers(&mctx.input,aVar45.idx);\n        aVar46.idx = start;\n        paVar18 = paVar54;\n        stop = stop;\n        if ((re_dfa_t *)local_150.sbcset != (re_dfa_t *)0x0) goto LAB_000557e4;\n        mctx.input.word_char = prVar59->word_char;\n        mctx.input.word_ops_used = (uchar)((uint)(*(int *)&prVar59->field_0x58 << 4) >> 0x1f);\n        paVar2 = (anon_union_4_5_a39f51ca_for_opr *)0x0;\n        mctx.input.valid_len = (Idx)paVar2;\n        if ((mctx.input.mbs_allocated == '\0') &&\n           (mctx.input.mbs = (uchar *)string, prVar59->mb_cur_max < 2)) {\n          mctx.input.valid_len = length;\n        }\n        mctx.input.stop = stop;\n        mctx.input.raw_stop = stop;\n        mctx.input.newline_anchor = (uchar)((uint)(*(int *)&preg->field_0x1c << 7) >> 0x1f);\n        iVar55 = prVar59->nbackref;\n        aVar56.idx = iVar55 * 2;\n        mctx.eflags = eflags;\n        mctx.match_last = -1;\n        mctx.input.valid_raw_len = mctx.input.valid_len;\n        if ((int)aVar56 < 1) {\nLAB_000559f0:\n          mctx.max_mb_elem_len = 1;\n          mctx.abkref_ents = aVar56.idx;\n          mctx.asub_tops = aVar56.idx;\n          if ((aVar4.sbcset < (re_dfa_t *)0x2) && ((prVar59->field_0x58 & 0x40) == 0)) {\n            mctx.state_log = (re_dfastate_t **)0x0;\nLAB_00055a40:\n            mctx.input.tip_context = 6;\n            if ((eflags & 1U) != 0) {\n              mctx.input.tip_context = 4;\n            }\n            aVar39.idx = 1;\n            aVar40.idx = start;\n            if (last_start < start) {\n              aVar39.idx = -1;\n              aVar40.idx = last_start;\n            }\n            aVar41.idx = last_start;\n            if (last_start <= start) {\n              aVar41.idx = start;\n            }\n            iVar55 = prVar59->mb_cur_max;\n            rVar20 = 8;\n            if ((re_dfa_t *)local_148.sbcset != (re_dfa_t *)0x0) {\n              if (iVar55 == 1) {\n                paVar43 = (anon_union_4_5_a39f51ca_for_opr *)0x4;\n              }\n              else {\n                paVar43 = paVar2;\n                if ((-1 < (int)(preg->syntax << 9)) && (puVar50 == (uchar *)0x0)) {\n                  paVar43 = (anon_union_4_5_a39f51ca_for_opr *)0x4;\n                }\n              }\n              aVar45.sbcset = (re_bitset_ptr_t)0x0;\n              if (start <= last_start) {\n                aVar45.idx = 2;\n              }\n              rVar20 = (uint)(puVar50 != (uchar *)0x0) | (uint)paVar43 | aVar45.ctx_type;\n            }\n            match_first = start;\n            if (start < aVar40.idx) {\n              local_150.idx = 1;\n              stop = aVar56.idx;\n            }\n            else {\n              aVar46.idx._0_3_ = 0;\n              aVar46.idx._3_1_ = last_start < start;\n              if (aVar41.idx < start) {\n                local_150.idx = 1;\n                stop = aVar56.idx;\n              }\n              else {\n                piVar38 = &match_first;\n                if ((re_dfa_t *)aVar46.sbcset != (re_dfa_t *)0x0) {\n                  piVar38 = (int *)0x0;\n                }\n                pcVar5 = (code *)(PTR_DAT_000799a4 + -0x2b7c);\n                piVar6 = (int *)(PTR_s_nt0_000795b8 + (rVar20 - 4) * 4 + 0x6e38);\nLAB_00055b44:\n                if (rVar20 - 4 < 5) {\n                    /* WARNING: Could not emulate address calculation at 0x00054920 */\n                    /* WARNING: Treating indirect jump as call */\n                  rVar21 = (*(code *)(&_gp + *piVar6))();\n                  return rVar21;\n                }\n                last_start = (Idx)&mctx;\n                prVar52 = prVar51;\n                while( true ) {\n                  aVar46.idx = match_first;\n                  uVar8 = match_first - mctx.input.raw_mbs_idx;\n                  aVar49 = (anon_union_4_5_a39f51ca_for_opr)eflags;\n                  paVar18 = paVar2;\n                  stop = local_148.idx;\n                  unaff_s4 = (re_dfa_t *)length;\n                  unaff_s5 = aVar39;\n                  unaff_s7 = aVar41;\n                  if ((uint)mctx.input.valid_raw_len <= uVar8) {\n                    aVar45.idx = match_first;\n                    local_150.sbcset = (re_bitset_ptr_t)(*pcVar5)(last_start);\n                    prVar51 = prVar52;\n                    if ((re_dfa_t *)local_150.sbcset != (re_dfa_t *)0x0) goto LAB_000557e4;\n                    uVar8 = (int)aVar46.sbcset - mctx.input.raw_mbs_idx;\n                  }\n                  if (aVar46.idx < length) {\n                    uVar8 = (uint)mctx.input.mbs[uVar8];\n                  }\n                  else {\n                    uVar8 = 0;\n                  }\n                  aVar56.sbcset = aVar46.sbcset + aVar39.sbcset;\n                  aVar46.sbcset = aVar56.sbcset;\n                  if (*(char *)((int)local_148.sbcset + uVar8) != '\0') break;\n                  prVar51 = prVar52;\n                  match_first = aVar56.idx;\n                  if (aVar56.idx < aVar40.idx) {\n                    local_150.idx = 1;\n                    goto LAB_000557e4;\n                  }\n                  aVar46.idx._0_3_ = 0;\n                  aVar46.idx._3_1_ = aVar41.idx < aVar56.idx;\n                  if ((re_dfa_t *)aVar46.sbcset != (re_dfa_t *)0x0) {\n                    local_150.idx = 1;\n                    goto LAB_000557e4;\n                  }\n                }\n                while( true ) {\n                  aVar45.idx = match_first;\n                  aVar49 = (anon_union_4_5_a39f51ca_for_opr)eflags;\n                  aVar7.sbcset = (re_bitset_ptr_t)(*pcVar5)(&mctx);\n                  aVar15 = (anon_union_4_5_a39f51ca_for_opr)mctx.dfa;\n                  aVar56.idx = mctx.input.cur_idx;\n                  prVar51 = prVar52;\n                  local_150.sbcset = aVar7.sbcset;\n                  if ((re_dfa_t *)aVar7.sbcset != (re_dfa_t *)0x0) goto LAB_000557e4;\n                  if (((iVar55 != 1) && (mctx.input.valid_len != 0)) &&\n                     (*mctx.input.wcs == 0xffffffff)) goto LAB_00055b1c;\n                  mctx.max_mb_elem_len = 0;\n                  mctx.nbkref_ents = 0;\n                  mctx.state_log_top = 0;\n                  local_138.idx = mctx.input.cur_idx;\n                  err = _REG_NOERROR;\n                  unaff_s7 = (anon_union_4_5_a39f51ca_for_opr)(mctx.dfa)->init_state;\n                  aVar49 = (anon_union_4_5_a39f51ca_for_opr)mctx.eflags;\n                  aVar46 = aVar15;\n                  if ((*(byte *)(unaff_s7.idx + 0x34) & 1) == 0) break;\n                  aVar45.sbcset = (re_bitset_ptr_t)(mctx.input.cur_idx + -1);\n                  prVar51 = (re_dfa_t *)re_string_context_at(&mctx.input,aVar45.idx,mctx.eflags);\n                  if (((uint)prVar51 & 1) == 0) {\n                    if (prVar51 == (re_dfa_t *)0x0) break;\n                    if (((uint)prVar51 & 6) == 6) {\n                      unaff_s7 = (anon_union_4_5_a39f51ca_for_opr)\n                                 ((re_dfa_t *)aVar15.idx)->init_state_begbuf;\n                      goto LAB_00054d1c;\n                    }\n                    if (((uint)prVar51 & 2) != 0) {\n                      unaff_s7 = (anon_union_4_5_a39f51ca_for_opr)\n                                 ((re_dfa_t *)aVar15.idx)->init_state_nl;\n                      goto LAB_00054d1c;\n                    }\n                    prVar52 = prVar51;\n                    if (((uint)prVar51 & 4) == 0) break;\n                    aVar49 = (anon_union_4_5_a39f51ca_for_opr)\n                             ((anon_union_4_5_a39f51ca_for_opr *)(unaff_s7.idx + 0x28))->mbcset;\n                    aVar45 = aVar15;\n                    unaff_s7.sbcset =\n                         &re_acquire_state_context\n                                    (&err,aVar15.sbcset,(re_node_set *)aVar49.mbcset,(uint)prVar51)\n                          ->hash;\n                    prVar52 = prVar51;\n                    if ((re_dfa_t *)unaff_s7.sbcset != (re_dfa_t *)0x0) break;\n                    if (err == _REG_ESPACE) goto LAB_00055914;\n                  }\n                  else {\n                    unaff_s7 = (anon_union_4_5_a39f51ca_for_opr)\n                               ((re_dfa_t *)aVar15.idx)->init_state_word;\nLAB_00054d1c:\n                    prVar52 = (re_dfa_t *)PTR_s_nt0_000795b8;\n                    if ((re_dfa_t *)unaff_s7.sbcset != (re_dfa_t *)0x0) break;\n                  }\n                  prVar52 = (re_dfa_t *)(PTR_s_nt0_000795b8 + 0x6eb0);\n                  aVar45.sbcset = (re_bitset_ptr_t)(PTR_s_nt0_000795b8 + 0x712c);\n                  match_first = (*(code *)PTR___assert_fail_000799f8)\n                                          (PTR_s_nt0_000795b8 + 0x71a0,aVar45.sbcset,0x435);\n                  if ((re_bitset_ptr_t)match_first == aVar41.sbcset) {\n                    if (match_first < length) {\n                      uVar8 = (uint)(byte)string[match_first];\n                    }\n                    else {\n                      uVar8 = 0;\n                    }\n                    if (puVar50 != (uchar *)0x0) {\n                      uVar8 = (uint)puVar50[uVar8];\n                    }\n                    if (*(char *)((int)local_148.sbcset + uVar8) == '\0') {\n                      local_150.idx = 1;\n                      aVar49 = (anon_union_4_5_a39f51ca_for_opr)eflags;\n                      prVar51 = prVar52;\n                      goto LAB_000557e4;\n                    }\n                  }\n                }\n                prVar51 = prVar52;\n                bVar36 = piVar38 != (int *)0x0;\n                if ((mctx.state_log == (re_dfastate_t **)0x0) ||\n                   (((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + aVar56.idx))->mbcset =\n                         (re_charset_t *)unaff_s7, ((re_dfa_t *)aVar15.idx)->nbackref == 0)) {\nLAB_00054d50:\n                  if ((int)*(bin_tree_t **)(unaff_s7.idx + 0x34) << 4 < 0) {\n                    if (((*(byte *)(unaff_s7.idx + 0x34) & 1) == 0) ||\n                       (aVar45 = unaff_s7, aVar49 = aVar56,\n                       IVar17 = check_halt_state_context(&mctx,unaff_s7.idx,aVar56.idx), IVar17 != 0\n                       )) {\n                      local_c4 = aVar56;\n                      if (paVar54 == (anon_union_4_5_a39f51ca_for_opr *)0x0) goto LAB_00055dbc;\n                      prVar52 = (re_dfa_t *)0x1;\n                    }\n                    else {\n                      aVar56.idx = -1;\n                      prVar52 = (re_dfa_t *)0x0;\n                    }\n                  }\n                  else {\n                    aVar56.idx = -1;\n                    prVar52 = (re_dfa_t *)0x0;\n                  }\n                  pcVar9 = (code *)(PTR_DAT_000799a4 + -0x7144);\n                  pcVar10 = (code *)(PTR_DAT_000799a4 + -0x1980);\n                  pcVar11 = (code *)(PTR_DAT_000799a4 + -0x2f9c);\n                  local_c4 = aVar56;\n                  local_144 = piVar38;\n                  while( true ) {\n                    uVar63 = CONCAT44(mctx.input.valid_len,mctx.input.len);\n                    unaff_s5.sbcset = (re_bitset_ptr_t)(mctx.input.cur_idx + 1);\n                    aVar45.idx = mctx.input.cur_idx;\n                    if (mctx.input.stop <= mctx.input.cur_idx) break;\n                    if ((mctx.input.bufs_len <= unaff_s5.idx) &&\n                       (mctx.input.bufs_len < mctx.input.len)) goto LAB_00054e94;\n                    if (mctx.input.valid_len <= unaff_s5.idx) {\n                      while ((int)((ulonglong)uVar63 >> 0x20) < (int)uVar63) {\nLAB_00054e94:\n                        aVar45.sbcset =\n                             (re_bitset_ptr_t)\n                             ((int)&((re_string_t *)&(aVar45.mbcset)->mbchars)->raw_mbs + 2);\n                        err = (*pcVar9)(&mctx);\n                        if (err == _REG_NOERROR) break;\n                        aVar15 = aVar46;\n                        if (err == _REG_ESPACE) goto LAB_00055914;\n                        prVar51 = (re_dfa_t *)(PTR_s_nt0_000795b8 + 0x6eb0);\n                        aVar49.idx = 0x46c;\n                        aVar45.sbcset = (re_bitset_ptr_t)(PTR_s_nt0_000795b8 + 0x712c);\n                        uVar63 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0);\n                        prVar52 = prVar59;\n                      }\n                    }\n                    prVar3 = mctx.dfa;\n                    if ((int)*(bin_tree_t **)(unaff_s7.idx + 0x34) << 5 < 0) {\n                      paVar18 = (anon_union_4_5_a39f51ca_for_opr *)prVar3;\n                      if (0 < (int)(unaff_s7.mbcset)->range_ends) {\n                        pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6fdc);\n                        pcVar13 = (code *)(PTR_DAT_000799a4 + -0x6ef0);\n                        stop = 0;\n                        do {\n                          last_start = ((anon_union_4_5_a39f51ca_for_opr *)\n                                       ((unaff_s7.mbcset)->char_classes + stop))->idx;\n                          prVar53 = prVar3->nodes;\n                          uVar8 = *(uint *)&prVar53[last_start].field_0x4;\n                          if ((uVar8 & 0x800) != 0) {\n                            if ((uVar8 & 0xffc000) != 0) {\n                              aVar45.idx = mctx.input.cur_idx;\n                              uVar60 = (*pcVar13)(&mctx,mctx.input.cur_idx,mctx.eflags);\n                              uVar8 = (uint)(*(int *)&prVar53[last_start].field_0x4 << 8) >> 0x16;\n                              if ((uVar8 & 4) == 0) {\n                                uVar26 = uVar60 & 1;\n                                if ((uVar8 & 8) != 0) goto joined_r0x00054f40;\n                              }\n                              else {\n                                uVar26 = uVar8 & 8;\n                                if ((uVar60 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                                if (uVar26 != 0) goto LAB_000550a4;\n                              }\n                              if ((((uVar8 & 0x20) != 0) && ((uVar60 & 2) == 0)) ||\n                                 (((uVar8 & 0x80) != 0 &&\n                                  (prVar51 = (re_dfa_t *)mctx.input.cur_idx, (uVar60 & 8) == 0))))\n                              goto LAB_000550a4;\n                            }\n                            aVar49.sbcset = (re_bitset_ptr_t)&mctx;\n                            aVar45.idx = last_start;\n                            prVar51 = (re_dfa_t *)mctx.input.cur_idx;\n                            iVar61 = (*pcVar11)(prVar3);\n                            if (iVar61 != 0) {\n                              aVar46.sbcset = (re_bitset_ptr_t)(iVar61 + mctx.input.cur_idx);\n                              if (iVar61 <= mctx.max_mb_elem_len) {\n                                iVar61 = mctx.max_mb_elem_len;\n                              }\n                              aVar45.sbcset = aVar46.sbcset;\n                              mctx.max_mb_elem_len = iVar61;\n                              err_1 = (*pcVar12)(&mctx);\n                              rVar21 = err_1;\n                              if (err_1 != _REG_NOERROR) goto LAB_00055e44;\n                              aVar49.sbcset =\n                                   (re_bitset_ptr_t)(prVar3->eclosures + prVar3->nexts[last_start]);\n                              unaff_s4 = (re_dfa_t *)(aVar46.idx * 4);\n                              last_start = (Idx)(mctx.state_log + aVar46.idx);\n                              if (*(bitset_word_t *)last_start == 0) {\n                                dest_nodes.alloc = *aVar49.sbcset;\n                                dest_nodes.nelem =\n                                     ((re_node_set *)&(aVar49.mbcset)->range_starts)->alloc;\n                                dest_nodes.elems = (aVar49.mbcset)->range_ends;\n                                prVar51 = (re_dfa_t *)\n                                          (*pcVar13)(&mctx,(undefined1 *)(aVar46.idx + -1),\n                                                     mctx.eflags);\n                                aVar49.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                                aVar45 = (anon_union_4_5_a39f51ca_for_opr)prVar3;\n                                prVar35 = re_acquire_state_context\n                                                    (&err_1,prVar3,(re_node_set *)aVar49.mbcset,\n                                                     (uint)prVar51);\n                                ((re_string_t *)&((re_charset_t *)last_start)->mbchars)->raw_mbs =\n                                     (uchar *)prVar35;\n                              }\n                              else {\n                                aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                                         ((anon_union_4_5_a39f51ca_for_opr *)\n                                         (*(bitset_word_t *)last_start + 0x28))->mbcset;\n                                err_1 = re_node_set_init_union\n                                                  (&dest_nodes,(re_node_set *)aVar45.mbcset,\n                                                   (re_node_set *)aVar49.mbcset);\n                                rVar21 = err_1;\n                                if (err_1 != _REG_NOERROR) goto LAB_00055e44;\n                                prVar51 = (re_dfa_t *)\n                                          (*pcVar13)(&mctx,(undefined1 *)(aVar46.idx + -1),\n                                                     mctx.eflags);\n                                pprVar14 = mctx.state_log + aVar46.idx;\n                                aVar49.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                                aVar45 = (anon_union_4_5_a39f51ca_for_opr)prVar3;\n                                prVar35 = re_acquire_state_context\n                                                    (&err_1,prVar3,(re_node_set *)aVar49.mbcset,\n                                                     (uint)prVar51);\n                                *pprVar14 = prVar35;\n                                (*(code *)PTR_free_00079c24)(dest_nodes.elems);\n                              }\n                              unaff_s4 = (re_dfa_t *)(mctx.state_log + aVar46.idx);\n                              if ((unaff_s4->nodes == (re_token_t *)0x0) &&\n                                 (rVar21 = err_1, err_1 != _REG_NOERROR)) goto LAB_00055e44;\n                            }\n                          }\nLAB_000550a4:\n                          stop = (int)&((re_string_t *)&((re_charset_t *)stop)->mbchars)->raw_mbs +\n                                 1;\n                        } while (stop < (int)(unaff_s7.mbcset)->range_ends);\n                      }\n                      err = _REG_NOERROR;\n                    }\n                    uVar8 = (uint)mctx.input.mbs[mctx.input.cur_idx];\n                    mctx.input.cur_idx = mctx.input.cur_idx + 1;\n                    do {\n                      if (*(re_dfastate_t **)(unaff_s7.idx + 0x2c) != (re_dfastate_t *)0x0) {\n                        aVar49 = (anon_union_4_5_a39f51ca_for_opr)\n                                 ((anon_union_4_5_a39f51ca_for_opr *)\n                                 (&(*(re_dfastate_t **)(unaff_s7.idx + 0x2c))->hash + uVar8))->\n                                 mbcset;\nLAB_000553a0:\n                        aVar15 = aVar49;\n                        if (mctx.state_log != (re_dfastate_t **)0x0) goto LAB_000553ac;\n                        goto LAB_000553cc;\n                      }\n                      paVar18 = *(anon_union_4_5_a39f51ca_for_opr **)(unaff_s7.idx + 0x30);\n                      if (paVar18 != (anon_union_4_5_a39f51ca_for_opr *)0x0) {\n                        aVar45.sbcset = (re_bitset_ptr_t)(mctx.input.cur_idx + -1);\n                        uVar60 = re_string_context_at(&mctx.input,aVar45.idx,mctx.eflags);\n                        if ((uVar60 & 1) == 0) {\n                          aVar49 = (anon_union_4_5_a39f51ca_for_opr)paVar18[uVar8].mbcset;\n                        }\n                        else {\n                          paVar18 = paVar18 + uVar8 + 0x100;\n                          aVar49 = (anon_union_4_5_a39f51ca_for_opr)paVar18->mbcset;\n                        }\n                        goto LAB_000553a0;\n                      }\n                      aVar45 = unaff_s7;\n                      aVar49 = (anon_union_4_5_a39f51ca_for_opr)mctx.eflags;\n                      iVar61 = (*pcVar10)(mctx.dfa);\n                    } while (iVar61 != 0);\n                    err = _REG_ESPACE;\n                    rVar21 = err;\nLAB_00055e44:\n                    err = rVar21;\n                    aVar46.sbcset = (re_bitset_ptr_t)0x0;\n                    if (mctx.state_log == (re_dfastate_t **)0x0) {\n                      aVar15.sbcset = aVar46.sbcset;\n                      if (err != _REG_NOERROR) goto LAB_00055914;\n                      break;\n                    }\n                    aVar49.sbcset = (re_bitset_ptr_t)0x0;\nLAB_000553ac:\n                    aVar45.sbcset = (re_bitset_ptr_t)&mctx;\n                    aVar15.sbcset =\n                         &merge_state_with_log\n                                    (&err,(re_match_context_t *)aVar45.mbcset,aVar49.sbcset)->hash;\nLAB_000553cc:\n                    aVar46 = aVar15;\n                    if ((re_dfa_t *)aVar15.sbcset == (re_dfa_t *)0x0) {\n                      if (err != _REG_NOERROR) goto LAB_00055914;\n                      if ((mctx.state_log == (re_dfastate_t **)0x0) ||\n                         ((prVar52 != (re_dfa_t *)0x0 &&\n                          (paVar54 == (anon_union_4_5_a39f51ca_for_opr *)0x0)))) break;\n                      stop = (Idx)&mctx;\n                      last_start = (Idx)&err;\n                      paVar18 = (anon_union_4_5_a39f51ca_for_opr *)(PTR_DAT_000799a4 + 0x3684);\n                      do {\n                        pprVar14 = mctx.state_log + mctx.input.cur_idx;\n                        IVar17 = mctx.input.cur_idx;\n                        do {\n                          IVar17 = IVar17 + 1;\n                          aVar45.idx = mctx.state_log_top;\n                          aVar46 = aVar15;\n                          if (mctx.state_log_top < IVar17) goto LAB_00055da8;\n                          mctx.input.cur_idx = mctx.input.cur_idx + 1;\n                          pprVar14 = pprVar14 + 1;\n                        } while (*pprVar14 == (re_dfastate_t *)0x0);\n                        aVar49.sbcset = (re_bitset_ptr_t)0x0;\n                        aVar45.sbcset = (re_bitset_ptr_t)stop;\n                        aVar46.sbcset = (re_bitset_ptr_t)(*(code *)paVar18)(last_start);\n                        if (err != _REG_NOERROR) {\n                          if ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0) goto LAB_00055da8;\n                          break;\n                        }\n                        aVar45.idx = mctx.state_log_top;\n                      } while ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0);\n                    }\n                    aVar16.ctx_type = unaff_s7.ctx_type ^ aVar46.ctx_type;\n                    aVar56 = unaff_s7;\n                    aVar15 = local_138;\n                    if ((bVar36) &&\n                       (aVar56.ctx_type = aVar16.ctx_type, aVar15.sbcset = unaff_s5.sbcset,\n                       (re_dfa_t *)aVar16.sbcset != (re_dfa_t *)0x0)) {\n                      bVar36 = false;\n                      aVar15 = local_138;\n                    }\n                    local_138 = aVar15;\n                    unaff_s7 = aVar46;\n                    if (((*(byte *)(aVar46.idx + 0x34) & 8) != 0) &&\n                       (((*(byte *)(aVar46.idx + 0x34) & 1) == 0 ||\n                        (aVar45 = aVar46, aVar49.idx = mctx.input.cur_idx,\n                        IVar17 = check_halt_state_context(&mctx,aVar46.idx,mctx.input.cur_idx),\n                        IVar17 != 0)))) {\n                      unaff_s7 = aVar56;\n                      local_c4.idx = mctx.input.cur_idx;\n                      if (paVar54 == (anon_union_4_5_a39f51ca_for_opr *)0x0) goto LAB_00055dbc;\n                      prVar52 = (re_dfa_t *)0x1;\n                      local_144 = (int *)0x0;\n                      unaff_s7 = aVar46;\n                    }\n                  }\nLAB_00055da8:\n                  if (local_144 != (int *)0x0) {\n                    *local_144 = *local_144 + (int)local_138.sbcset;\n                  }\n                }\n                else {\n                  aVar46.sbcset = (re_bitset_ptr_t)&(unaff_s7.mbcset)->range_starts;\n                  aVar49.sbcset = (re_bitset_ptr_t)0x0;\n                  aVar45 = aVar46;\n                  err = check_subexp_matching_top(&mctx,(re_node_set *)aVar46.mbcset,0);\n                  local_c4.idx = err;\n                  if ((re_dfa_t *)err == (re_dfa_t *)0x0) {\n                    if ((*(byte *)(unaff_s7.idx + 0x34) & 2) == 0) {\n                      aVar45 = aVar46;\n                      bVar36 = false;\n                    }\n                    else {\n                      aVar45 = aVar46;\n                      err = transit_state_bkref(&mctx,(re_node_set *)aVar46.mbcset);\n                      local_c4.idx = err;\n                      if ((re_dfa_t *)err != (re_dfa_t *)0x0) goto LAB_00055dbc;\n                      bVar36 = false;\n                    }\n                    goto LAB_00054d50;\n                  }\n                }\nLAB_00055dbc:\n                if ((re_dfa_t *)local_c4.sbcset == (re_dfa_t *)0xffffffff) {\nLAB_00055b04:\n                  match_ctx_clean(&mctx);\nLAB_00055b1c:\n                  match_first = aVar39.idx + match_first;\n                  if (aVar40.idx <= match_first) goto code_r0x00055b38;\n                  local_150.idx = 1;\n                  goto LAB_000557e4;\n                }\n                if ((re_dfa_t *)local_c4.sbcset == (re_dfa_t *)&SUB_fffffffe) {\n                  local_150.idx = 0xc;\n                  goto LAB_000557e4;\n                }\n                mctx.match_last = local_c4.idx;\n                if ((preg->field_0x1c & 8) == 0) {\n                  if (aVar4.sbcset < (re_dfa_t *)0x2) {\n                    if (prVar59->nbackref == 0) goto LAB_00055c08;\n                    aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                             ((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + local_c4.idx))->\n                             mbcset;\n                    aVar49 = local_c4;\n                    mctx.last_node =\n                         check_halt_state_context(&mctx,(re_dfastate_t *)aVar45.mbcset,local_c4.idx)\n                    ;\n                  }\n                  else {\n                    aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                             ((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + local_c4.idx))->\n                             mbcset;\n                    aVar49 = local_c4;\n                    mctx.last_node =\n                         check_halt_state_context(&mctx,(re_dfastate_t *)aVar45.mbcset,local_c4.idx)\n                    ;\n                  }\n                  if (aVar4.sbcset < (re_dfa_t *)0x2) {\nLAB_00055c6c:\n                    prVar52 = prVar51;\n                    unaff_s4 = mctx.dfa;\n                    if (prVar59->nbackref == 0) goto LAB_00055548;\n                  }\n                  else {\n                    cVar37 = prVar59->field_0x58;\nLAB_00055c20:\n                    prVar52 = prVar51;\n                    if (-1 < cVar37) goto LAB_00055c6c;\n                  }\n                  paVar18 = (anon_union_4_5_a39f51ca_for_opr *)mctx.last_node;\n                  prVar3 = mctx.dfa;\n                  unaff_s4 = prVar3;\n                  if ((uint)local_c4 < (re_dfa_t *)0x3fffffff) {\n                    aVar46.idx = (int)((int)&((re_string_t *)&(local_c4.mbcset)->mbchars)->raw_mbs +\n                                      1) * 4;\n                    unaff_s5.sbcset = (re_bitset_ptr_t)(*(code *)PTR_malloc_00079b54)(aVar46.sbcset)\n                    ;\n                    if ((re_dfa_t *)unaff_s5.sbcset == (re_dfa_t *)0x0) {\nLAB_00055b9c:\n                      (*(code *)PTR_free_00079c24)(unaff_s5.sbcset);\n                      local_150.idx = 0xc;\n                      prVar51 = prVar52;\n                    }\n                    else {\n                      aVar45.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                      if (prVar3->nbackref == 0) {\n                        dest_nodes.nelem = 0;\n                        dest_nodes.elems = &paVar18->idx;\n                        dest_nodes.alloc = (Idx)unaff_s5.sbcset;\n                        last_start = sift_states_backward(&mctx,(re_sift_context_t *)aVar45.mbcset);\n                        (*(code *)PTR_free_00079c24)(0);\n                        if ((re_dfa_t *)last_start == (re_dfa_t *)0x0) {\n                          aVar46.mbcset = (re_charset_t *)*unaff_s5.sbcset;\n                          if ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0) {\nLAB_00055b70:\n                            (*(code *)PTR_free_00079c24)(unaff_s5.sbcset);\n                            (*(code *)PTR_free_00079c24)(aVar46.sbcset);\n                            prVar51 = prVar52;\n                            goto LAB_00055b04;\n                          }\nLAB_00055528:\n                          (*(code *)PTR_free_00079c24)(mctx.state_log);\n                          prVar51 = prVar52;\n                          unaff_s4 = prVar3;\n                          mctx.match_last = local_c4.idx;\n                          mctx.last_node = (Idx)paVar18;\n                          mctx.state_log = (re_dfastate_t **)unaff_s5.sbcset;\n                          goto LAB_00055548;\n                        }\nLAB_00055acc:\n                        aVar46.sbcset = (re_bitset_ptr_t)0x0;\n                        prVar51 = prVar52;\n                        unaff_s4 = prVar3;\n                      }\n                      else {\n                        aVar46.sbcset =\n                             (re_bitset_ptr_t)(*(code *)PTR_malloc_00079b54)(aVar46.sbcset);\n                        if ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0) goto LAB_00055b9c;\n                        unaff_s7.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                        pcVar9 = (code *)(PTR_DAT_000799a4 + 0x421c);\n                        pcVar10 = (code *)(PTR_DAT_000799a4 + -0x6bc0);\n                        prVar51 = prVar52;\n                        while( true ) {\n                          prVar52 = (re_dfa_t *)(local_c4.idx + 1);\n                          stop = (int)prVar52 * 4;\n                          aVar49.idx = stop;\n                          (*(code *)PTR_memset_00079b00)(aVar46.sbcset,0);\n                          aVar45.sbcset = unaff_s7.sbcset;\n                          dest_nodes.alloc = (Idx)unaff_s5.sbcset;\n                          dest_nodes.nelem = (Idx)aVar46.sbcset;\n                          dest_nodes.elems = (Idx *)paVar18;\n                          last_start = (*pcVar9)(&mctx);\n                          (*(code *)PTR_free_00079c24)(0);\n                          unaff_s4 = prVar52;\n                          if ((re_dfa_t *)last_start != (re_dfa_t *)0x0) break;\n                          if ((*unaff_s5.sbcset != 0) || (stop = stop + -4, *aVar46.sbcset != 0)) {\n                            aVar45.sbcset = unaff_s5.sbcset;\n                            aVar49.sbcset = aVar46.sbcset;\n                            last_start = merge_state_array(prVar3,(re_dfastate_t **)unaff_s5.sbcset,\n                                                           (re_dfastate_t **)aVar46.sbcset,\n                                                           (Idx)prVar52);\n                            (*(code *)PTR_free_00079c24)(aVar46.sbcset);\n                            if ((re_dfa_t *)last_start != (re_dfa_t *)0x0) goto LAB_00055acc;\n                            goto LAB_00055528;\n                          }\n                          stop = (Idx)(mctx.state_log + (int)&prVar52[-1].lock.__align + 0x17);\n                          do {\n                            while( true ) {\n                              local_c4.sbcset = (re_bitset_ptr_t)(local_c4.idx + -1);\n                              if (local_c4.idx < 0) goto LAB_00055b70;\n                              aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                                       ((anon_union_4_5_a39f51ca_for_opr *)(stop + -4))->idx;\n                              if ((re_dfa_t *)aVar45.sbcset != (re_dfa_t *)0x0) break;\n                              stop = stop + -4;\n                            }\n                            stop = stop + -4;\n                          } while ((*(byte *)(aVar45.idx + 0x34) & 8) == 0);\n                          paVar18 = (anon_union_4_5_a39f51ca_for_opr *)\n                                    (*pcVar10)(&mctx,aVar45.sbcset,local_c4.sbcset);\n                          prVar51 = prVar52;\n                        }\n                      }\n                      (*(code *)PTR_free_00079c24)(unaff_s5.sbcset);\n                      (*(code *)PTR_free_00079c24)(aVar46.sbcset);\n                      local_150.idx = last_start;\n                      if ((re_dfa_t *)last_start == (re_dfa_t *)0x1) goto LAB_00055b04;\n                    }\n                  }\n                  else {\n                    local_150.idx = 0xc;\n                    prVar51 = prVar52;\n                  }\n                  goto LAB_000557e4;\n                }\n                if (prVar59->nbackref != 0) {\n                  aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                           ((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + local_c4.idx))->\n                           mbcset;\n                  aVar49 = local_c4;\n                  mctx.last_node =\n                       check_halt_state_context(&mctx,(re_dfastate_t *)aVar45.mbcset,local_c4.idx);\n                  goto LAB_00055c6c;\n                }\nLAB_00055c08:\n                if (((preg->field_0x1c & 8) == 0) && ((re_dfa_t *)0x1 < aVar4.sbcset)) {\n                  cVar37 = prVar59->field_0x58;\n                  goto LAB_00055c20;\n                }\nLAB_00055548:\n                if ((re_dfa_t *)aVar4.sbcset == (re_dfa_t *)0x0) goto LAB_000557e4;\n                if (aVar4.sbcset < (re_dfa_t *)0x2) {\n                  pmatch->rm_so = 0;\n                  pmatch->rm_eo = mctx.match_last;\n                  goto LAB_000555ac;\n                }\n                prVar19 = pmatch + 1;\n                do {\n                  prVar19->rm_eo = -1;\n                  prVar19->rm_so = -1;\n                  prVar19 = prVar19 + 1;\n                } while (prVar19 != pmatch + aVar4.idx);\n                pmatch->rm_so = 0;\n                pmatch->rm_eo = mctx.match_last;\n                if ((preg->field_0x1c & 8) != 0) {\nLAB_000555ac:\n                  prVar19 = pmatch;\n                  do {\n                    aVar45.sbcset = (re_bitset_ptr_t)prVar19->rm_so;\n                    if ((re_dfa_t *)aVar45.sbcset != (re_dfa_t *)0xffffffff) {\n                      if (mctx.input.offsets_needed != '\0') {\n                        rVar47 = mctx.input.valid_raw_len;\n                        if (aVar45.sbcset != (re_bitset_ptr_t)mctx.input.valid_len) {\n                          rVar47 = mctx.input.offsets[aVar45.idx];\n                        }\n                        prVar19->rm_so = rVar47;\n                        rVar47 = mctx.input.valid_raw_len;\n                        if (mctx.input.valid_len != prVar19->rm_eo) {\n                          rVar47 = mctx.input.offsets[prVar19->rm_eo];\n                        }\n                        prVar19->rm_eo = rVar47;\n                      }\n                      prVar19->rm_so = prVar19->rm_so + match_first;\n                      aVar45.sbcset = (re_bitset_ptr_t)(prVar19->rm_eo + match_first);\n                      prVar19->rm_eo = (regoff_t)aVar45;\n                    }\n                    prVar19 = prVar19 + 1;\n                  } while (prVar19 != pmatch + aVar4.idx);\n                  if (0 < local_118) {\n                    prVar19 = pmatch + aVar4.idx;\n                    do {\n                      prVar19->rm_so = -1;\n                      prVar19->rm_eo = -1;\n                      prVar19 = prVar19 + 1;\n                    } while (prVar19 != pmatch + nmatch);\n                  }\n                  aVar49.idx = match_first;\n                  prVar51 = (re_dfa_t *)pmatch;\n                  local_150.sbcset = aVar7.sbcset;\n                  if (prVar59->subexp_map != (Idx *)0x0) {\n                    aVar49.sbcset = (re_bitset_ptr_t)(aVar4.idx + -1);\n                    prVar52 = (re_dfa_t *)0x0;\n                    prVar19 = pmatch;\n                    while( true ) {\n                      aVar45.idx = (int)prVar52 * 4;\n                      if ((re_dfa_t *)aVar49.sbcset == prVar52) break;\n                      if ((re_dfa_t *)prVar59->subexp_map[(int)prVar52] != prVar52) {\n                        prVar19[1].rm_so =\n                             pmatch[(int)((int)&((re_string_t *)\n                                                &((re_dfa_t *)prVar59->subexp_map[(int)prVar52])->\n                                                 nodes)->raw_mbs + 1)].rm_so;\n                        prVar19[1].rm_eo = pmatch[prVar59->subexp_map[(int)prVar52] + 1].rm_eo;\n                      }\n                      prVar52 = (re_dfa_t *)((int)&((re_string_t *)&prVar52->nodes)->raw_mbs + 1);\n                      prVar19 = prVar19 + 1;\n                    }\n                  }\n                  goto LAB_000557e4;\n                }\n                if ((char)prVar59->field_0x58 < '\0') {\n                  bVar36 = 0 < prVar59->nbackref;\n                }\n                else {\n                  bVar36 = false;\n                }\n                aVar45.sbcset = (re_bitset_ptr_t)&mctx;\n                aVar49.sbcset = aVar4.sbcset;\n                prVar51 = (re_dfa_t *)pmatch;\n                local_150.idx =\n                     set_regs(preg,(re_match_context_t *)aVar45.mbcset,aVar4.ctx_type,pmatch,bVar36)\n                ;\n                if ((re_dfa_t *)local_150.sbcset == (re_dfa_t *)0x0) goto LAB_000555ac;\n              }\n            }\n          }\n          else if ((uint)mctx.input.bufs_len < 0x3fffffff) {\n            mctx.state_log =\n                 (re_dfastate_t **)(*(code *)PTR_malloc_00079b54)((mctx.input.bufs_len + 1) * 4);\n            if (mctx.state_log != (re_dfastate_t **)0x0) goto LAB_00055a40;\n            local_150.idx = 0xc;\n            stop = aVar56.idx;\n          }\n          else {\n            local_150.idx = 0xc;\n            stop = aVar56.idx;\n          }\n        }\n        else {\n          unaff_s5.idx = iVar55 * 8;\n          if (aVar56.sbcset < (re_dfa_t *)0xccccccd) {\n            unaff_s4 = (re_dfa_t *)(*(code *)PTR_malloc_00079b54)(iVar55 * 0x28);\n            mctx.bkref_ents = (re_backref_cache_entry *)unaff_s4;\n            mctx.sub_tops = (re_sub_match_top_t **)(*(code *)PTR_malloc_00079b54)(unaff_s5.sbcset);\n            if ((unaff_s4 != (re_dfa_t *)0x0) && (mctx.sub_tops != (re_sub_match_top_t **)0x0))\n            goto LAB_000559f0;\n          }\n          local_150.idx = 0xc;\n          stop = aVar56.idx;\n        }\nLAB_000557e4:\n        (*(code *)PTR_free_00079c24)(mctx.state_log);\n        preg = (regex_t *)aVar49;\n        if (prVar59->nbackref != 0) {\n          match_ctx_clean(&mctx);\n          (*(code *)PTR_free_00079c24)(mctx.sub_tops);\n          (*(code *)PTR_free_00079c24)(mctx.bkref_ents);\n          preg = (regex_t *)aVar49;\n        }\n        re_string_destruct(&mctx.input);\n        aStack_1a0 = aVar46;\n        paStack_19c = paVar18;\n      }\n    }\n  }" if (parenthesized_expression "(prVar59->init_state_word == (re_dfastate_t *)0x0)" ( (binary_expression "prVar59->init_state_word == (re_dfastate_t *)0x0" (field_expression "prVar59->init_state_word" identifier -> field_identifier) == (cast_expression "(re_dfastate_t *)0x0" ( (type_descriptor "re_dfastate_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    local_150.idx = 1;\n  }" { (expression_statement "local_150.idx = 1;" (assignment_expression "local_150.idx = 1" (field_expression "local_150.idx" identifier . field_identifier) = number_literal) ;) }) (else_clause "else if (prVar59->init_state_nl == (re_dfastate_t *)0x0) {\n    local_150.idx = 1;\n  }\n  else {\n    aVar45 = (anon_union_4_5_a39f51ca_for_opr)prVar59->init_state_begbuf;\n    if ((re_dfa_t *)aVar45.sbcset == (re_dfa_t *)0x0) {\n      local_150.idx = 1;\n    }\n    else {\n      aVar4.idx = last_start;\n      if (((((prVar59->init_state->nodes).nelem == 0) &&\n           ((prVar59->init_state_word->nodes).nelem == 0)) &&\n          (((prVar59->init_state_nl->nodes).nelem == 0 || ((preg->field_0x1c & 1) == 0)))) &&\n         ((aVar4.idx = start, start != 0 &&\n          (start = last_start, aVar4.idx = last_start, last_start != 0)))) {\n        local_150.idx = 1;\n        aStack_1a0.idx = last_start;\n      }\n      else {\n        last_start = aVar4.idx;\n        aVar4.sbcset = (re_bitset_ptr_t)(nmatch - local_118);\n        if ((re_dfa_t *)aVar4.sbcset == (re_dfa_t *)0x0) {\n          paVar54 = (anon_union_4_5_a39f51ca_for_opr *)(uint)(prVar59->nbackref != 0);\n        }\n        else {\n          paVar54 = (anon_union_4_5_a39f51ca_for_opr *)0x1;\n        }\n        puVar50 = preg->translate;\n        mctx.input.icase = (uchar)((preg->syntax << 9) >> 0x1f);\n        mctx.input.mb_cur_max = prVar59->mb_cur_max;\n        aVar46.sbcset = (re_bitset_ptr_t)(prVar59->nodes_len + 1);\n        if (aVar46.idx < mctx.input.mb_cur_max) {\n          aVar46 = (anon_union_4_5_a39f51ca_for_opr)mctx.input.mb_cur_max;\n        }\n        aVar49.idx._0_3_ = 0;\n        aVar49.idx._3_1_ = ((re_bitset_ptr_t)(length + 1)).idx < aVar46.idx;\n        prVar51 = (re_dfa_t *)0x1;\n        mctx.input.mbs_allocated = mctx.input.icase;\n        if (puVar50 != (uchar *)0x0) {\n          mctx.input.mbs_allocated = 1;\n        }\n        mctx.input.is_utf8 = (uchar)((uint)(*(int *)&prVar59->field_0x58 << 2) >> 0x1f);\n        mctx.input.map_notascii = (uchar)((uint)(*(int *)&prVar59->field_0x58 << 3) >> 0x1f);\n        aVar45.sbcset = ((re_bitset_ptr_t)(length + 1)).sbcset;\n        if ((re_dfa_t *)aVar49.sbcset == (re_dfa_t *)0x0) {\n          aVar45 = aVar46;\n        }\n        mctx.input.raw_mbs = (uchar *)string;\n        mctx.input.raw_len = length;\n        mctx.input.len = length;\n        mctx.input.raw_stop = length;\n        mctx.input.stop = length;\n        mctx.input.trans = puVar50;\n        local_150.idx = re_string_realloc_buffers(&mctx.input,aVar45.idx);\n        aVar46.idx = start;\n        paVar18 = paVar54;\n        stop = stop;\n        if ((re_dfa_t *)local_150.sbcset != (re_dfa_t *)0x0) goto LAB_000557e4;\n        mctx.input.word_char = prVar59->word_char;\n        mctx.input.word_ops_used = (uchar)((uint)(*(int *)&prVar59->field_0x58 << 4) >> 0x1f);\n        paVar2 = (anon_union_4_5_a39f51ca_for_opr *)0x0;\n        mctx.input.valid_len = (Idx)paVar2;\n        if ((mctx.input.mbs_allocated == '\0') &&\n           (mctx.input.mbs = (uchar *)string, prVar59->mb_cur_max < 2)) {\n          mctx.input.valid_len = length;\n        }\n        mctx.input.stop = stop;\n        mctx.input.raw_stop = stop;\n        mctx.input.newline_anchor = (uchar)((uint)(*(int *)&preg->field_0x1c << 7) >> 0x1f);\n        iVar55 = prVar59->nbackref;\n        aVar56.idx = iVar55 * 2;\n        mctx.eflags = eflags;\n        mctx.match_last = -1;\n        mctx.input.valid_raw_len = mctx.input.valid_len;\n        if ((int)aVar56 < 1) {\nLAB_000559f0:\n          mctx.max_mb_elem_len = 1;\n          mctx.abkref_ents = aVar56.idx;\n          mctx.asub_tops = aVar56.idx;\n          if ((aVar4.sbcset < (re_dfa_t *)0x2) && ((prVar59->field_0x58 & 0x40) == 0)) {\n            mctx.state_log = (re_dfastate_t **)0x0;\nLAB_00055a40:\n            mctx.input.tip_context = 6;\n            if ((eflags & 1U) != 0) {\n              mctx.input.tip_context = 4;\n            }\n            aVar39.idx = 1;\n            aVar40.idx = start;\n            if (last_start < start) {\n              aVar39.idx = -1;\n              aVar40.idx = last_start;\n            }\n            aVar41.idx = last_start;\n            if (last_start <= start) {\n              aVar41.idx = start;\n            }\n            iVar55 = prVar59->mb_cur_max;\n            rVar20 = 8;\n            if ((re_dfa_t *)local_148.sbcset != (re_dfa_t *)0x0) {\n              if (iVar55 == 1) {\n                paVar43 = (anon_union_4_5_a39f51ca_for_opr *)0x4;\n              }\n              else {\n                paVar43 = paVar2;\n                if ((-1 < (int)(preg->syntax << 9)) && (puVar50 == (uchar *)0x0)) {\n                  paVar43 = (anon_union_4_5_a39f51ca_for_opr *)0x4;\n                }\n              }\n              aVar45.sbcset = (re_bitset_ptr_t)0x0;\n              if (start <= last_start) {\n                aVar45.idx = 2;\n              }\n              rVar20 = (uint)(puVar50 != (uchar *)0x0) | (uint)paVar43 | aVar45.ctx_type;\n            }\n            match_first = start;\n            if (start < aVar40.idx) {\n              local_150.idx = 1;\n              stop = aVar56.idx;\n            }\n            else {\n              aVar46.idx._0_3_ = 0;\n              aVar46.idx._3_1_ = last_start < start;\n              if (aVar41.idx < start) {\n                local_150.idx = 1;\n                stop = aVar56.idx;\n              }\n              else {\n                piVar38 = &match_first;\n                if ((re_dfa_t *)aVar46.sbcset != (re_dfa_t *)0x0) {\n                  piVar38 = (int *)0x0;\n                }\n                pcVar5 = (code *)(PTR_DAT_000799a4 + -0x2b7c);\n                piVar6 = (int *)(PTR_s_nt0_000795b8 + (rVar20 - 4) * 4 + 0x6e38);\nLAB_00055b44:\n                if (rVar20 - 4 < 5) {\n                    /* WARNING: Could not emulate address calculation at 0x00054920 */\n                    /* WARNING: Treating indirect jump as call */\n                  rVar21 = (*(code *)(&_gp + *piVar6))();\n                  return rVar21;\n                }\n                last_start = (Idx)&mctx;\n                prVar52 = prVar51;\n                while( true ) {\n                  aVar46.idx = match_first;\n                  uVar8 = match_first - mctx.input.raw_mbs_idx;\n                  aVar49 = (anon_union_4_5_a39f51ca_for_opr)eflags;\n                  paVar18 = paVar2;\n                  stop = local_148.idx;\n                  unaff_s4 = (re_dfa_t *)length;\n                  unaff_s5 = aVar39;\n                  unaff_s7 = aVar41;\n                  if ((uint)mctx.input.valid_raw_len <= uVar8) {\n                    aVar45.idx = match_first;\n                    local_150.sbcset = (re_bitset_ptr_t)(*pcVar5)(last_start);\n                    prVar51 = prVar52;\n                    if ((re_dfa_t *)local_150.sbcset != (re_dfa_t *)0x0) goto LAB_000557e4;\n                    uVar8 = (int)aVar46.sbcset - mctx.input.raw_mbs_idx;\n                  }\n                  if (aVar46.idx < length) {\n                    uVar8 = (uint)mctx.input.mbs[uVar8];\n                  }\n                  else {\n                    uVar8 = 0;\n                  }\n                  aVar56.sbcset = aVar46.sbcset + aVar39.sbcset;\n                  aVar46.sbcset = aVar56.sbcset;\n                  if (*(char *)((int)local_148.sbcset + uVar8) != '\0') break;\n                  prVar51 = prVar52;\n                  match_first = aVar56.idx;\n                  if (aVar56.idx < aVar40.idx) {\n                    local_150.idx = 1;\n                    goto LAB_000557e4;\n                  }\n                  aVar46.idx._0_3_ = 0;\n                  aVar46.idx._3_1_ = aVar41.idx < aVar56.idx;\n                  if ((re_dfa_t *)aVar46.sbcset != (re_dfa_t *)0x0) {\n                    local_150.idx = 1;\n                    goto LAB_000557e4;\n                  }\n                }\n                while( true ) {\n                  aVar45.idx = match_first;\n                  aVar49 = (anon_union_4_5_a39f51ca_for_opr)eflags;\n                  aVar7.sbcset = (re_bitset_ptr_t)(*pcVar5)(&mctx);\n                  aVar15 = (anon_union_4_5_a39f51ca_for_opr)mctx.dfa;\n                  aVar56.idx = mctx.input.cur_idx;\n                  prVar51 = prVar52;\n                  local_150.sbcset = aVar7.sbcset;\n                  if ((re_dfa_t *)aVar7.sbcset != (re_dfa_t *)0x0) goto LAB_000557e4;\n                  if (((iVar55 != 1) && (mctx.input.valid_len != 0)) &&\n                     (*mctx.input.wcs == 0xffffffff)) goto LAB_00055b1c;\n                  mctx.max_mb_elem_len = 0;\n                  mctx.nbkref_ents = 0;\n                  mctx.state_log_top = 0;\n                  local_138.idx = mctx.input.cur_idx;\n                  err = _REG_NOERROR;\n                  unaff_s7 = (anon_union_4_5_a39f51ca_for_opr)(mctx.dfa)->init_state;\n                  aVar49 = (anon_union_4_5_a39f51ca_for_opr)mctx.eflags;\n                  aVar46 = aVar15;\n                  if ((*(byte *)(unaff_s7.idx + 0x34) & 1) == 0) break;\n                  aVar45.sbcset = (re_bitset_ptr_t)(mctx.input.cur_idx + -1);\n                  prVar51 = (re_dfa_t *)re_string_context_at(&mctx.input,aVar45.idx,mctx.eflags);\n                  if (((uint)prVar51 & 1) == 0) {\n                    if (prVar51 == (re_dfa_t *)0x0) break;\n                    if (((uint)prVar51 & 6) == 6) {\n                      unaff_s7 = (anon_union_4_5_a39f51ca_for_opr)\n                                 ((re_dfa_t *)aVar15.idx)->init_state_begbuf;\n                      goto LAB_00054d1c;\n                    }\n                    if (((uint)prVar51 & 2) != 0) {\n                      unaff_s7 = (anon_union_4_5_a39f51ca_for_opr)\n                                 ((re_dfa_t *)aVar15.idx)->init_state_nl;\n                      goto LAB_00054d1c;\n                    }\n                    prVar52 = prVar51;\n                    if (((uint)prVar51 & 4) == 0) break;\n                    aVar49 = (anon_union_4_5_a39f51ca_for_opr)\n                             ((anon_union_4_5_a39f51ca_for_opr *)(unaff_s7.idx + 0x28))->mbcset;\n                    aVar45 = aVar15;\n                    unaff_s7.sbcset =\n                         &re_acquire_state_context\n                                    (&err,aVar15.sbcset,(re_node_set *)aVar49.mbcset,(uint)prVar51)\n                          ->hash;\n                    prVar52 = prVar51;\n                    if ((re_dfa_t *)unaff_s7.sbcset != (re_dfa_t *)0x0) break;\n                    if (err == _REG_ESPACE) goto LAB_00055914;\n                  }\n                  else {\n                    unaff_s7 = (anon_union_4_5_a39f51ca_for_opr)\n                               ((re_dfa_t *)aVar15.idx)->init_state_word;\nLAB_00054d1c:\n                    prVar52 = (re_dfa_t *)PTR_s_nt0_000795b8;\n                    if ((re_dfa_t *)unaff_s7.sbcset != (re_dfa_t *)0x0) break;\n                  }\n                  prVar52 = (re_dfa_t *)(PTR_s_nt0_000795b8 + 0x6eb0);\n                  aVar45.sbcset = (re_bitset_ptr_t)(PTR_s_nt0_000795b8 + 0x712c);\n                  match_first = (*(code *)PTR___assert_fail_000799f8)\n                                          (PTR_s_nt0_000795b8 + 0x71a0,aVar45.sbcset,0x435);\n                  if ((re_bitset_ptr_t)match_first == aVar41.sbcset) {\n                    if (match_first < length) {\n                      uVar8 = (uint)(byte)string[match_first];\n                    }\n                    else {\n                      uVar8 = 0;\n                    }\n                    if (puVar50 != (uchar *)0x0) {\n                      uVar8 = (uint)puVar50[uVar8];\n                    }\n                    if (*(char *)((int)local_148.sbcset + uVar8) == '\0') {\n                      local_150.idx = 1;\n                      aVar49 = (anon_union_4_5_a39f51ca_for_opr)eflags;\n                      prVar51 = prVar52;\n                      goto LAB_000557e4;\n                    }\n                  }\n                }\n                prVar51 = prVar52;\n                bVar36 = piVar38 != (int *)0x0;\n                if ((mctx.state_log == (re_dfastate_t **)0x0) ||\n                   (((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + aVar56.idx))->mbcset =\n                         (re_charset_t *)unaff_s7, ((re_dfa_t *)aVar15.idx)->nbackref == 0)) {\nLAB_00054d50:\n                  if ((int)*(bin_tree_t **)(unaff_s7.idx + 0x34) << 4 < 0) {\n                    if (((*(byte *)(unaff_s7.idx + 0x34) & 1) == 0) ||\n                       (aVar45 = unaff_s7, aVar49 = aVar56,\n                       IVar17 = check_halt_state_context(&mctx,unaff_s7.idx,aVar56.idx), IVar17 != 0\n                       )) {\n                      local_c4 = aVar56;\n                      if (paVar54 == (anon_union_4_5_a39f51ca_for_opr *)0x0) goto LAB_00055dbc;\n                      prVar52 = (re_dfa_t *)0x1;\n                    }\n                    else {\n                      aVar56.idx = -1;\n                      prVar52 = (re_dfa_t *)0x0;\n                    }\n                  }\n                  else {\n                    aVar56.idx = -1;\n                    prVar52 = (re_dfa_t *)0x0;\n                  }\n                  pcVar9 = (code *)(PTR_DAT_000799a4 + -0x7144);\n                  pcVar10 = (code *)(PTR_DAT_000799a4 + -0x1980);\n                  pcVar11 = (code *)(PTR_DAT_000799a4 + -0x2f9c);\n                  local_c4 = aVar56;\n                  local_144 = piVar38;\n                  while( true ) {\n                    uVar63 = CONCAT44(mctx.input.valid_len,mctx.input.len);\n                    unaff_s5.sbcset = (re_bitset_ptr_t)(mctx.input.cur_idx + 1);\n                    aVar45.idx = mctx.input.cur_idx;\n                    if (mctx.input.stop <= mctx.input.cur_idx) break;\n                    if ((mctx.input.bufs_len <= unaff_s5.idx) &&\n                       (mctx.input.bufs_len < mctx.input.len)) goto LAB_00054e94;\n                    if (mctx.input.valid_len <= unaff_s5.idx) {\n                      while ((int)((ulonglong)uVar63 >> 0x20) < (int)uVar63) {\nLAB_00054e94:\n                        aVar45.sbcset =\n                             (re_bitset_ptr_t)\n                             ((int)&((re_string_t *)&(aVar45.mbcset)->mbchars)->raw_mbs + 2);\n                        err = (*pcVar9)(&mctx);\n                        if (err == _REG_NOERROR) break;\n                        aVar15 = aVar46;\n                        if (err == _REG_ESPACE) goto LAB_00055914;\n                        prVar51 = (re_dfa_t *)(PTR_s_nt0_000795b8 + 0x6eb0);\n                        aVar49.idx = 0x46c;\n                        aVar45.sbcset = (re_bitset_ptr_t)(PTR_s_nt0_000795b8 + 0x712c);\n                        uVar63 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0);\n                        prVar52 = prVar59;\n                      }\n                    }\n                    prVar3 = mctx.dfa;\n                    if ((int)*(bin_tree_t **)(unaff_s7.idx + 0x34) << 5 < 0) {\n                      paVar18 = (anon_union_4_5_a39f51ca_for_opr *)prVar3;\n                      if (0 < (int)(unaff_s7.mbcset)->range_ends) {\n                        pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6fdc);\n                        pcVar13 = (code *)(PTR_DAT_000799a4 + -0x6ef0);\n                        stop = 0;\n                        do {\n                          last_start = ((anon_union_4_5_a39f51ca_for_opr *)\n                                       ((unaff_s7.mbcset)->char_classes + stop))->idx;\n                          prVar53 = prVar3->nodes;\n                          uVar8 = *(uint *)&prVar53[last_start].field_0x4;\n                          if ((uVar8 & 0x800) != 0) {\n                            if ((uVar8 & 0xffc000) != 0) {\n                              aVar45.idx = mctx.input.cur_idx;\n                              uVar60 = (*pcVar13)(&mctx,mctx.input.cur_idx,mctx.eflags);\n                              uVar8 = (uint)(*(int *)&prVar53[last_start].field_0x4 << 8) >> 0x16;\n                              if ((uVar8 & 4) == 0) {\n                                uVar26 = uVar60 & 1;\n                                if ((uVar8 & 8) != 0) goto joined_r0x00054f40;\n                              }\n                              else {\n                                uVar26 = uVar8 & 8;\n                                if ((uVar60 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                                if (uVar26 != 0) goto LAB_000550a4;\n                              }\n                              if ((((uVar8 & 0x20) != 0) && ((uVar60 & 2) == 0)) ||\n                                 (((uVar8 & 0x80) != 0 &&\n                                  (prVar51 = (re_dfa_t *)mctx.input.cur_idx, (uVar60 & 8) == 0))))\n                              goto LAB_000550a4;\n                            }\n                            aVar49.sbcset = (re_bitset_ptr_t)&mctx;\n                            aVar45.idx = last_start;\n                            prVar51 = (re_dfa_t *)mctx.input.cur_idx;\n                            iVar61 = (*pcVar11)(prVar3);\n                            if (iVar61 != 0) {\n                              aVar46.sbcset = (re_bitset_ptr_t)(iVar61 + mctx.input.cur_idx);\n                              if (iVar61 <= mctx.max_mb_elem_len) {\n                                iVar61 = mctx.max_mb_elem_len;\n                              }\n                              aVar45.sbcset = aVar46.sbcset;\n                              mctx.max_mb_elem_len = iVar61;\n                              err_1 = (*pcVar12)(&mctx);\n                              rVar21 = err_1;\n                              if (err_1 != _REG_NOERROR) goto LAB_00055e44;\n                              aVar49.sbcset =\n                                   (re_bitset_ptr_t)(prVar3->eclosures + prVar3->nexts[last_start]);\n                              unaff_s4 = (re_dfa_t *)(aVar46.idx * 4);\n                              last_start = (Idx)(mctx.state_log + aVar46.idx);\n                              if (*(bitset_word_t *)last_start == 0) {\n                                dest_nodes.alloc = *aVar49.sbcset;\n                                dest_nodes.nelem =\n                                     ((re_node_set *)&(aVar49.mbcset)->range_starts)->alloc;\n                                dest_nodes.elems = (aVar49.mbcset)->range_ends;\n                                prVar51 = (re_dfa_t *)\n                                          (*pcVar13)(&mctx,(undefined1 *)(aVar46.idx + -1),\n                                                     mctx.eflags);\n                                aVar49.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                                aVar45 = (anon_union_4_5_a39f51ca_for_opr)prVar3;\n                                prVar35 = re_acquire_state_context\n                                                    (&err_1,prVar3,(re_node_set *)aVar49.mbcset,\n                                                     (uint)prVar51);\n                                ((re_string_t *)&((re_charset_t *)last_start)->mbchars)->raw_mbs =\n                                     (uchar *)prVar35;\n                              }\n                              else {\n                                aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                                         ((anon_union_4_5_a39f51ca_for_opr *)\n                                         (*(bitset_word_t *)last_start + 0x28))->mbcset;\n                                err_1 = re_node_set_init_union\n                                                  (&dest_nodes,(re_node_set *)aVar45.mbcset,\n                                                   (re_node_set *)aVar49.mbcset);\n                                rVar21 = err_1;\n                                if (err_1 != _REG_NOERROR) goto LAB_00055e44;\n                                prVar51 = (re_dfa_t *)\n                                          (*pcVar13)(&mctx,(undefined1 *)(aVar46.idx + -1),\n                                                     mctx.eflags);\n                                pprVar14 = mctx.state_log + aVar46.idx;\n                                aVar49.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                                aVar45 = (anon_union_4_5_a39f51ca_for_opr)prVar3;\n                                prVar35 = re_acquire_state_context\n                                                    (&err_1,prVar3,(re_node_set *)aVar49.mbcset,\n                                                     (uint)prVar51);\n                                *pprVar14 = prVar35;\n                                (*(code *)PTR_free_00079c24)(dest_nodes.elems);\n                              }\n                              unaff_s4 = (re_dfa_t *)(mctx.state_log + aVar46.idx);\n                              if ((unaff_s4->nodes == (re_token_t *)0x0) &&\n                                 (rVar21 = err_1, err_1 != _REG_NOERROR)) goto LAB_00055e44;\n                            }\n                          }\nLAB_000550a4:\n                          stop = (int)&((re_string_t *)&((re_charset_t *)stop)->mbchars)->raw_mbs +\n                                 1;\n                        } while (stop < (int)(unaff_s7.mbcset)->range_ends);\n                      }\n                      err = _REG_NOERROR;\n                    }\n                    uVar8 = (uint)mctx.input.mbs[mctx.input.cur_idx];\n                    mctx.input.cur_idx = mctx.input.cur_idx + 1;\n                    do {\n                      if (*(re_dfastate_t **)(unaff_s7.idx + 0x2c) != (re_dfastate_t *)0x0) {\n                        aVar49 = (anon_union_4_5_a39f51ca_for_opr)\n                                 ((anon_union_4_5_a39f51ca_for_opr *)\n                                 (&(*(re_dfastate_t **)(unaff_s7.idx + 0x2c))->hash + uVar8))->\n                                 mbcset;\nLAB_000553a0:\n                        aVar15 = aVar49;\n                        if (mctx.state_log != (re_dfastate_t **)0x0) goto LAB_000553ac;\n                        goto LAB_000553cc;\n                      }\n                      paVar18 = *(anon_union_4_5_a39f51ca_for_opr **)(unaff_s7.idx + 0x30);\n                      if (paVar18 != (anon_union_4_5_a39f51ca_for_opr *)0x0) {\n                        aVar45.sbcset = (re_bitset_ptr_t)(mctx.input.cur_idx + -1);\n                        uVar60 = re_string_context_at(&mctx.input,aVar45.idx,mctx.eflags);\n                        if ((uVar60 & 1) == 0) {\n                          aVar49 = (anon_union_4_5_a39f51ca_for_opr)paVar18[uVar8].mbcset;\n                        }\n                        else {\n                          paVar18 = paVar18 + uVar8 + 0x100;\n                          aVar49 = (anon_union_4_5_a39f51ca_for_opr)paVar18->mbcset;\n                        }\n                        goto LAB_000553a0;\n                      }\n                      aVar45 = unaff_s7;\n                      aVar49 = (anon_union_4_5_a39f51ca_for_opr)mctx.eflags;\n                      iVar61 = (*pcVar10)(mctx.dfa);\n                    } while (iVar61 != 0);\n                    err = _REG_ESPACE;\n                    rVar21 = err;\nLAB_00055e44:\n                    err = rVar21;\n                    aVar46.sbcset = (re_bitset_ptr_t)0x0;\n                    if (mctx.state_log == (re_dfastate_t **)0x0) {\n                      aVar15.sbcset = aVar46.sbcset;\n                      if (err != _REG_NOERROR) goto LAB_00055914;\n                      break;\n                    }\n                    aVar49.sbcset = (re_bitset_ptr_t)0x0;\nLAB_000553ac:\n                    aVar45.sbcset = (re_bitset_ptr_t)&mctx;\n                    aVar15.sbcset =\n                         &merge_state_with_log\n                                    (&err,(re_match_context_t *)aVar45.mbcset,aVar49.sbcset)->hash;\nLAB_000553cc:\n                    aVar46 = aVar15;\n                    if ((re_dfa_t *)aVar15.sbcset == (re_dfa_t *)0x0) {\n                      if (err != _REG_NOERROR) goto LAB_00055914;\n                      if ((mctx.state_log == (re_dfastate_t **)0x0) ||\n                         ((prVar52 != (re_dfa_t *)0x0 &&\n                          (paVar54 == (anon_union_4_5_a39f51ca_for_opr *)0x0)))) break;\n                      stop = (Idx)&mctx;\n                      last_start = (Idx)&err;\n                      paVar18 = (anon_union_4_5_a39f51ca_for_opr *)(PTR_DAT_000799a4 + 0x3684);\n                      do {\n                        pprVar14 = mctx.state_log + mctx.input.cur_idx;\n                        IVar17 = mctx.input.cur_idx;\n                        do {\n                          IVar17 = IVar17 + 1;\n                          aVar45.idx = mctx.state_log_top;\n                          aVar46 = aVar15;\n                          if (mctx.state_log_top < IVar17) goto LAB_00055da8;\n                          mctx.input.cur_idx = mctx.input.cur_idx + 1;\n                          pprVar14 = pprVar14 + 1;\n                        } while (*pprVar14 == (re_dfastate_t *)0x0);\n                        aVar49.sbcset = (re_bitset_ptr_t)0x0;\n                        aVar45.sbcset = (re_bitset_ptr_t)stop;\n                        aVar46.sbcset = (re_bitset_ptr_t)(*(code *)paVar18)(last_start);\n                        if (err != _REG_NOERROR) {\n                          if ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0) goto LAB_00055da8;\n                          break;\n                        }\n                        aVar45.idx = mctx.state_log_top;\n                      } while ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0);\n                    }\n                    aVar16.ctx_type = unaff_s7.ctx_type ^ aVar46.ctx_type;\n                    aVar56 = unaff_s7;\n                    aVar15 = local_138;\n                    if ((bVar36) &&\n                       (aVar56.ctx_type = aVar16.ctx_type, aVar15.sbcset = unaff_s5.sbcset,\n                       (re_dfa_t *)aVar16.sbcset != (re_dfa_t *)0x0)) {\n                      bVar36 = false;\n                      aVar15 = local_138;\n                    }\n                    local_138 = aVar15;\n                    unaff_s7 = aVar46;\n                    if (((*(byte *)(aVar46.idx + 0x34) & 8) != 0) &&\n                       (((*(byte *)(aVar46.idx + 0x34) & 1) == 0 ||\n                        (aVar45 = aVar46, aVar49.idx = mctx.input.cur_idx,\n                        IVar17 = check_halt_state_context(&mctx,aVar46.idx,mctx.input.cur_idx),\n                        IVar17 != 0)))) {\n                      unaff_s7 = aVar56;\n                      local_c4.idx = mctx.input.cur_idx;\n                      if (paVar54 == (anon_union_4_5_a39f51ca_for_opr *)0x0) goto LAB_00055dbc;\n                      prVar52 = (re_dfa_t *)0x1;\n                      local_144 = (int *)0x0;\n                      unaff_s7 = aVar46;\n                    }\n                  }\nLAB_00055da8:\n                  if (local_144 != (int *)0x0) {\n                    *local_144 = *local_144 + (int)local_138.sbcset;\n                  }\n                }\n                else {\n                  aVar46.sbcset = (re_bitset_ptr_t)&(unaff_s7.mbcset)->range_starts;\n                  aVar49.sbcset = (re_bitset_ptr_t)0x0;\n                  aVar45 = aVar46;\n                  err = check_subexp_matching_top(&mctx,(re_node_set *)aVar46.mbcset,0);\n                  local_c4.idx = err;\n                  if ((re_dfa_t *)err == (re_dfa_t *)0x0) {\n                    if ((*(byte *)(unaff_s7.idx + 0x34) & 2) == 0) {\n                      aVar45 = aVar46;\n                      bVar36 = false;\n                    }\n                    else {\n                      aVar45 = aVar46;\n                      err = transit_state_bkref(&mctx,(re_node_set *)aVar46.mbcset);\n                      local_c4.idx = err;\n                      if ((re_dfa_t *)err != (re_dfa_t *)0x0) goto LAB_00055dbc;\n                      bVar36 = false;\n                    }\n                    goto LAB_00054d50;\n                  }\n                }\nLAB_00055dbc:\n                if ((re_dfa_t *)local_c4.sbcset == (re_dfa_t *)0xffffffff) {\nLAB_00055b04:\n                  match_ctx_clean(&mctx);\nLAB_00055b1c:\n                  match_first = aVar39.idx + match_first;\n                  if (aVar40.idx <= match_first) goto code_r0x00055b38;\n                  local_150.idx = 1;\n                  goto LAB_000557e4;\n                }\n                if ((re_dfa_t *)local_c4.sbcset == (re_dfa_t *)&SUB_fffffffe) {\n                  local_150.idx = 0xc;\n                  goto LAB_000557e4;\n                }\n                mctx.match_last = local_c4.idx;\n                if ((preg->field_0x1c & 8) == 0) {\n                  if (aVar4.sbcset < (re_dfa_t *)0x2) {\n                    if (prVar59->nbackref == 0) goto LAB_00055c08;\n                    aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                             ((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + local_c4.idx))->\n                             mbcset;\n                    aVar49 = local_c4;\n                    mctx.last_node =\n                         check_halt_state_context(&mctx,(re_dfastate_t *)aVar45.mbcset,local_c4.idx)\n                    ;\n                  }\n                  else {\n                    aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                             ((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + local_c4.idx))->\n                             mbcset;\n                    aVar49 = local_c4;\n                    mctx.last_node =\n                         check_halt_state_context(&mctx,(re_dfastate_t *)aVar45.mbcset,local_c4.idx)\n                    ;\n                  }\n                  if (aVar4.sbcset < (re_dfa_t *)0x2) {\nLAB_00055c6c:\n                    prVar52 = prVar51;\n                    unaff_s4 = mctx.dfa;\n                    if (prVar59->nbackref == 0) goto LAB_00055548;\n                  }\n                  else {\n                    cVar37 = prVar59->field_0x58;\nLAB_00055c20:\n                    prVar52 = prVar51;\n                    if (-1 < cVar37) goto LAB_00055c6c;\n                  }\n                  paVar18 = (anon_union_4_5_a39f51ca_for_opr *)mctx.last_node;\n                  prVar3 = mctx.dfa;\n                  unaff_s4 = prVar3;\n                  if ((uint)local_c4 < (re_dfa_t *)0x3fffffff) {\n                    aVar46.idx = (int)((int)&((re_string_t *)&(local_c4.mbcset)->mbchars)->raw_mbs +\n                                      1) * 4;\n                    unaff_s5.sbcset = (re_bitset_ptr_t)(*(code *)PTR_malloc_00079b54)(aVar46.sbcset)\n                    ;\n                    if ((re_dfa_t *)unaff_s5.sbcset == (re_dfa_t *)0x0) {\nLAB_00055b9c:\n                      (*(code *)PTR_free_00079c24)(unaff_s5.sbcset);\n                      local_150.idx = 0xc;\n                      prVar51 = prVar52;\n                    }\n                    else {\n                      aVar45.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                      if (prVar3->nbackref == 0) {\n                        dest_nodes.nelem = 0;\n                        dest_nodes.elems = &paVar18->idx;\n                        dest_nodes.alloc = (Idx)unaff_s5.sbcset;\n                        last_start = sift_states_backward(&mctx,(re_sift_context_t *)aVar45.mbcset);\n                        (*(code *)PTR_free_00079c24)(0);\n                        if ((re_dfa_t *)last_start == (re_dfa_t *)0x0) {\n                          aVar46.mbcset = (re_charset_t *)*unaff_s5.sbcset;\n                          if ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0) {\nLAB_00055b70:\n                            (*(code *)PTR_free_00079c24)(unaff_s5.sbcset);\n                            (*(code *)PTR_free_00079c24)(aVar46.sbcset);\n                            prVar51 = prVar52;\n                            goto LAB_00055b04;\n                          }\nLAB_00055528:\n                          (*(code *)PTR_free_00079c24)(mctx.state_log);\n                          prVar51 = prVar52;\n                          unaff_s4 = prVar3;\n                          mctx.match_last = local_c4.idx;\n                          mctx.last_node = (Idx)paVar18;\n                          mctx.state_log = (re_dfastate_t **)unaff_s5.sbcset;\n                          goto LAB_00055548;\n                        }\nLAB_00055acc:\n                        aVar46.sbcset = (re_bitset_ptr_t)0x0;\n                        prVar51 = prVar52;\n                        unaff_s4 = prVar3;\n                      }\n                      else {\n                        aVar46.sbcset =\n                             (re_bitset_ptr_t)(*(code *)PTR_malloc_00079b54)(aVar46.sbcset);\n                        if ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0) goto LAB_00055b9c;\n                        unaff_s7.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                        pcVar9 = (code *)(PTR_DAT_000799a4 + 0x421c);\n                        pcVar10 = (code *)(PTR_DAT_000799a4 + -0x6bc0);\n                        prVar51 = prVar52;\n                        while( true ) {\n                          prVar52 = (re_dfa_t *)(local_c4.idx + 1);\n                          stop = (int)prVar52 * 4;\n                          aVar49.idx = stop;\n                          (*(code *)PTR_memset_00079b00)(aVar46.sbcset,0);\n                          aVar45.sbcset = unaff_s7.sbcset;\n                          dest_nodes.alloc = (Idx)unaff_s5.sbcset;\n                          dest_nodes.nelem = (Idx)aVar46.sbcset;\n                          dest_nodes.elems = (Idx *)paVar18;\n                          last_start = (*pcVar9)(&mctx);\n                          (*(code *)PTR_free_00079c24)(0);\n                          unaff_s4 = prVar52;\n                          if ((re_dfa_t *)last_start != (re_dfa_t *)0x0) break;\n                          if ((*unaff_s5.sbcset != 0) || (stop = stop + -4, *aVar46.sbcset != 0)) {\n                            aVar45.sbcset = unaff_s5.sbcset;\n                            aVar49.sbcset = aVar46.sbcset;\n                            last_start = merge_state_array(prVar3,(re_dfastate_t **)unaff_s5.sbcset,\n                                                           (re_dfastate_t **)aVar46.sbcset,\n                                                           (Idx)prVar52);\n                            (*(code *)PTR_free_00079c24)(aVar46.sbcset);\n                            if ((re_dfa_t *)last_start != (re_dfa_t *)0x0) goto LAB_00055acc;\n                            goto LAB_00055528;\n                          }\n                          stop = (Idx)(mctx.state_log + (int)&prVar52[-1].lock.__align + 0x17);\n                          do {\n                            while( true ) {\n                              local_c4.sbcset = (re_bitset_ptr_t)(local_c4.idx + -1);\n                              if (local_c4.idx < 0) goto LAB_00055b70;\n                              aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                                       ((anon_union_4_5_a39f51ca_for_opr *)(stop + -4))->idx;\n                              if ((re_dfa_t *)aVar45.sbcset != (re_dfa_t *)0x0) break;\n                              stop = stop + -4;\n                            }\n                            stop = stop + -4;\n                          } while ((*(byte *)(aVar45.idx + 0x34) & 8) == 0);\n                          paVar18 = (anon_union_4_5_a39f51ca_for_opr *)\n                                    (*pcVar10)(&mctx,aVar45.sbcset,local_c4.sbcset);\n                          prVar51 = prVar52;\n                        }\n                      }\n                      (*(code *)PTR_free_00079c24)(unaff_s5.sbcset);\n                      (*(code *)PTR_free_00079c24)(aVar46.sbcset);\n                      local_150.idx = last_start;\n                      if ((re_dfa_t *)last_start == (re_dfa_t *)0x1) goto LAB_00055b04;\n                    }\n                  }\n                  else {\n                    local_150.idx = 0xc;\n                    prVar51 = prVar52;\n                  }\n                  goto LAB_000557e4;\n                }\n                if (prVar59->nbackref != 0) {\n                  aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                           ((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + local_c4.idx))->\n                           mbcset;\n                  aVar49 = local_c4;\n                  mctx.last_node =\n                       check_halt_state_context(&mctx,(re_dfastate_t *)aVar45.mbcset,local_c4.idx);\n                  goto LAB_00055c6c;\n                }\nLAB_00055c08:\n                if (((preg->field_0x1c & 8) == 0) && ((re_dfa_t *)0x1 < aVar4.sbcset)) {\n                  cVar37 = prVar59->field_0x58;\n                  goto LAB_00055c20;\n                }\nLAB_00055548:\n                if ((re_dfa_t *)aVar4.sbcset == (re_dfa_t *)0x0) goto LAB_000557e4;\n                if (aVar4.sbcset < (re_dfa_t *)0x2) {\n                  pmatch->rm_so = 0;\n                  pmatch->rm_eo = mctx.match_last;\n                  goto LAB_000555ac;\n                }\n                prVar19 = pmatch + 1;\n                do {\n                  prVar19->rm_eo = -1;\n                  prVar19->rm_so = -1;\n                  prVar19 = prVar19 + 1;\n                } while (prVar19 != pmatch + aVar4.idx);\n                pmatch->rm_so = 0;\n                pmatch->rm_eo = mctx.match_last;\n                if ((preg->field_0x1c & 8) != 0) {\nLAB_000555ac:\n                  prVar19 = pmatch;\n                  do {\n                    aVar45.sbcset = (re_bitset_ptr_t)prVar19->rm_so;\n                    if ((re_dfa_t *)aVar45.sbcset != (re_dfa_t *)0xffffffff) {\n                      if (mctx.input.offsets_needed != '\0') {\n                        rVar47 = mctx.input.valid_raw_len;\n                        if (aVar45.sbcset != (re_bitset_ptr_t)mctx.input.valid_len) {\n                          rVar47 = mctx.input.offsets[aVar45.idx];\n                        }\n                        prVar19->rm_so = rVar47;\n                        rVar47 = mctx.input.valid_raw_len;\n                        if (mctx.input.valid_len != prVar19->rm_eo) {\n                          rVar47 = mctx.input.offsets[prVar19->rm_eo];\n                        }\n                        prVar19->rm_eo = rVar47;\n                      }\n                      prVar19->rm_so = prVar19->rm_so + match_first;\n                      aVar45.sbcset = (re_bitset_ptr_t)(prVar19->rm_eo + match_first);\n                      prVar19->rm_eo = (regoff_t)aVar45;\n                    }\n                    prVar19 = prVar19 + 1;\n                  } while (prVar19 != pmatch + aVar4.idx);\n                  if (0 < local_118) {\n                    prVar19 = pmatch + aVar4.idx;\n                    do {\n                      prVar19->rm_so = -1;\n                      prVar19->rm_eo = -1;\n                      prVar19 = prVar19 + 1;\n                    } while (prVar19 != pmatch + nmatch);\n                  }\n                  aVar49.idx = match_first;\n                  prVar51 = (re_dfa_t *)pmatch;\n                  local_150.sbcset = aVar7.sbcset;\n                  if (prVar59->subexp_map != (Idx *)0x0) {\n                    aVar49.sbcset = (re_bitset_ptr_t)(aVar4.idx + -1);\n                    prVar52 = (re_dfa_t *)0x0;\n                    prVar19 = pmatch;\n                    while( true ) {\n                      aVar45.idx = (int)prVar52 * 4;\n                      if ((re_dfa_t *)aVar49.sbcset == prVar52) break;\n                      if ((re_dfa_t *)prVar59->subexp_map[(int)prVar52] != prVar52) {\n                        prVar19[1].rm_so =\n                             pmatch[(int)((int)&((re_string_t *)\n                                                &((re_dfa_t *)prVar59->subexp_map[(int)prVar52])->\n                                                 nodes)->raw_mbs + 1)].rm_so;\n                        prVar19[1].rm_eo = pmatch[prVar59->subexp_map[(int)prVar52] + 1].rm_eo;\n                      }\n                      prVar52 = (re_dfa_t *)((int)&((re_string_t *)&prVar52->nodes)->raw_mbs + 1);\n                      prVar19 = prVar19 + 1;\n                    }\n                  }\n                  goto LAB_000557e4;\n                }\n                if ((char)prVar59->field_0x58 < '\0') {\n                  bVar36 = 0 < prVar59->nbackref;\n                }\n                else {\n                  bVar36 = false;\n                }\n                aVar45.sbcset = (re_bitset_ptr_t)&mctx;\n                aVar49.sbcset = aVar4.sbcset;\n                prVar51 = (re_dfa_t *)pmatch;\n                local_150.idx =\n                     set_regs(preg,(re_match_context_t *)aVar45.mbcset,aVar4.ctx_type,pmatch,bVar36)\n                ;\n                if ((re_dfa_t *)local_150.sbcset == (re_dfa_t *)0x0) goto LAB_000555ac;\n              }\n            }\n          }\n          else if ((uint)mctx.input.bufs_len < 0x3fffffff) {\n            mctx.state_log =\n                 (re_dfastate_t **)(*(code *)PTR_malloc_00079b54)((mctx.input.bufs_len + 1) * 4);\n            if (mctx.state_log != (re_dfastate_t **)0x0) goto LAB_00055a40;\n            local_150.idx = 0xc;\n            stop = aVar56.idx;\n          }\n          else {\n            local_150.idx = 0xc;\n            stop = aVar56.idx;\n          }\n        }\n        else {\n          unaff_s5.idx = iVar55 * 8;\n          if (aVar56.sbcset < (re_dfa_t *)0xccccccd) {\n            unaff_s4 = (re_dfa_t *)(*(code *)PTR_malloc_00079b54)(iVar55 * 0x28);\n            mctx.bkref_ents = (re_backref_cache_entry *)unaff_s4;\n            mctx.sub_tops = (re_sub_match_top_t **)(*(code *)PTR_malloc_00079b54)(unaff_s5.sbcset);\n            if ((unaff_s4 != (re_dfa_t *)0x0) && (mctx.sub_tops != (re_sub_match_top_t **)0x0))\n            goto LAB_000559f0;\n          }\n          local_150.idx = 0xc;\n          stop = aVar56.idx;\n        }\nLAB_000557e4:\n        (*(code *)PTR_free_00079c24)(mctx.state_log);\n        preg = (regex_t *)aVar49;\n        if (prVar59->nbackref != 0) {\n          match_ctx_clean(&mctx);\n          (*(code *)PTR_free_00079c24)(mctx.sub_tops);\n          (*(code *)PTR_free_00079c24)(mctx.bkref_ents);\n          preg = (regex_t *)aVar49;\n        }\n        re_string_destruct(&mctx.input);\n        aStack_1a0 = aVar46;\n        paStack_19c = paVar18;\n      }\n    }\n  }" else (if_statement "if (prVar59->init_state_nl == (re_dfastate_t *)0x0) {\n    local_150.idx = 1;\n  }\n  else {\n    aVar45 = (anon_union_4_5_a39f51ca_for_opr)prVar59->init_state_begbuf;\n    if ((re_dfa_t *)aVar45.sbcset == (re_dfa_t *)0x0) {\n      local_150.idx = 1;\n    }\n    else {\n      aVar4.idx = last_start;\n      if (((((prVar59->init_state->nodes).nelem == 0) &&\n           ((prVar59->init_state_word->nodes).nelem == 0)) &&\n          (((prVar59->init_state_nl->nodes).nelem == 0 || ((preg->field_0x1c & 1) == 0)))) &&\n         ((aVar4.idx = start, start != 0 &&\n          (start = last_start, aVar4.idx = last_start, last_start != 0)))) {\n        local_150.idx = 1;\n        aStack_1a0.idx = last_start;\n      }\n      else {\n        last_start = aVar4.idx;\n        aVar4.sbcset = (re_bitset_ptr_t)(nmatch - local_118);\n        if ((re_dfa_t *)aVar4.sbcset == (re_dfa_t *)0x0) {\n          paVar54 = (anon_union_4_5_a39f51ca_for_opr *)(uint)(prVar59->nbackref != 0);\n        }\n        else {\n          paVar54 = (anon_union_4_5_a39f51ca_for_opr *)0x1;\n        }\n        puVar50 = preg->translate;\n        mctx.input.icase = (uchar)((preg->syntax << 9) >> 0x1f);\n        mctx.input.mb_cur_max = prVar59->mb_cur_max;\n        aVar46.sbcset = (re_bitset_ptr_t)(prVar59->nodes_len + 1);\n        if (aVar46.idx < mctx.input.mb_cur_max) {\n          aVar46 = (anon_union_4_5_a39f51ca_for_opr)mctx.input.mb_cur_max;\n        }\n        aVar49.idx._0_3_ = 0;\n        aVar49.idx._3_1_ = ((re_bitset_ptr_t)(length + 1)).idx < aVar46.idx;\n        prVar51 = (re_dfa_t *)0x1;\n        mctx.input.mbs_allocated = mctx.input.icase;\n        if (puVar50 != (uchar *)0x0) {\n          mctx.input.mbs_allocated = 1;\n        }\n        mctx.input.is_utf8 = (uchar)((uint)(*(int *)&prVar59->field_0x58 << 2) >> 0x1f);\n        mctx.input.map_notascii = (uchar)((uint)(*(int *)&prVar59->field_0x58 << 3) >> 0x1f);\n        aVar45.sbcset = ((re_bitset_ptr_t)(length + 1)).sbcset;\n        if ((re_dfa_t *)aVar49.sbcset == (re_dfa_t *)0x0) {\n          aVar45 = aVar46;\n        }\n        mctx.input.raw_mbs = (uchar *)string;\n        mctx.input.raw_len = length;\n        mctx.input.len = length;\n        mctx.input.raw_stop = length;\n        mctx.input.stop = length;\n        mctx.input.trans = puVar50;\n        local_150.idx = re_string_realloc_buffers(&mctx.input,aVar45.idx);\n        aVar46.idx = start;\n        paVar18 = paVar54;\n        stop = stop;\n        if ((re_dfa_t *)local_150.sbcset != (re_dfa_t *)0x0) goto LAB_000557e4;\n        mctx.input.word_char = prVar59->word_char;\n        mctx.input.word_ops_used = (uchar)((uint)(*(int *)&prVar59->field_0x58 << 4) >> 0x1f);\n        paVar2 = (anon_union_4_5_a39f51ca_for_opr *)0x0;\n        mctx.input.valid_len = (Idx)paVar2;\n        if ((mctx.input.mbs_allocated == '\0') &&\n           (mctx.input.mbs = (uchar *)string, prVar59->mb_cur_max < 2)) {\n          mctx.input.valid_len = length;\n        }\n        mctx.input.stop = stop;\n        mctx.input.raw_stop = stop;\n        mctx.input.newline_anchor = (uchar)((uint)(*(int *)&preg->field_0x1c << 7) >> 0x1f);\n        iVar55 = prVar59->nbackref;\n        aVar56.idx = iVar55 * 2;\n        mctx.eflags = eflags;\n        mctx.match_last = -1;\n        mctx.input.valid_raw_len = mctx.input.valid_len;\n        if ((int)aVar56 < 1) {\nLAB_000559f0:\n          mctx.max_mb_elem_len = 1;\n          mctx.abkref_ents = aVar56.idx;\n          mctx.asub_tops = aVar56.idx;\n          if ((aVar4.sbcset < (re_dfa_t *)0x2) && ((prVar59->field_0x58 & 0x40) == 0)) {\n            mctx.state_log = (re_dfastate_t **)0x0;\nLAB_00055a40:\n            mctx.input.tip_context = 6;\n            if ((eflags & 1U) != 0) {\n              mctx.input.tip_context = 4;\n            }\n            aVar39.idx = 1;\n            aVar40.idx = start;\n            if (last_start < start) {\n              aVar39.idx = -1;\n              aVar40.idx = last_start;\n            }\n            aVar41.idx = last_start;\n            if (last_start <= start) {\n              aVar41.idx = start;\n            }\n            iVar55 = prVar59->mb_cur_max;\n            rVar20 = 8;\n            if ((re_dfa_t *)local_148.sbcset != (re_dfa_t *)0x0) {\n              if (iVar55 == 1) {\n                paVar43 = (anon_union_4_5_a39f51ca_for_opr *)0x4;\n              }\n              else {\n                paVar43 = paVar2;\n                if ((-1 < (int)(preg->syntax << 9)) && (puVar50 == (uchar *)0x0)) {\n                  paVar43 = (anon_union_4_5_a39f51ca_for_opr *)0x4;\n                }\n              }\n              aVar45.sbcset = (re_bitset_ptr_t)0x0;\n              if (start <= last_start) {\n                aVar45.idx = 2;\n              }\n              rVar20 = (uint)(puVar50 != (uchar *)0x0) | (uint)paVar43 | aVar45.ctx_type;\n            }\n            match_first = start;\n            if (start < aVar40.idx) {\n              local_150.idx = 1;\n              stop = aVar56.idx;\n            }\n            else {\n              aVar46.idx._0_3_ = 0;\n              aVar46.idx._3_1_ = last_start < start;\n              if (aVar41.idx < start) {\n                local_150.idx = 1;\n                stop = aVar56.idx;\n              }\n              else {\n                piVar38 = &match_first;\n                if ((re_dfa_t *)aVar46.sbcset != (re_dfa_t *)0x0) {\n                  piVar38 = (int *)0x0;\n                }\n                pcVar5 = (code *)(PTR_DAT_000799a4 + -0x2b7c);\n                piVar6 = (int *)(PTR_s_nt0_000795b8 + (rVar20 - 4) * 4 + 0x6e38);\nLAB_00055b44:\n                if (rVar20 - 4 < 5) {\n                    /* WARNING: Could not emulate address calculation at 0x00054920 */\n                    /* WARNING: Treating indirect jump as call */\n                  rVar21 = (*(code *)(&_gp + *piVar6))();\n                  return rVar21;\n                }\n                last_start = (Idx)&mctx;\n                prVar52 = prVar51;\n                while( true ) {\n                  aVar46.idx = match_first;\n                  uVar8 = match_first - mctx.input.raw_mbs_idx;\n                  aVar49 = (anon_union_4_5_a39f51ca_for_opr)eflags;\n                  paVar18 = paVar2;\n                  stop = local_148.idx;\n                  unaff_s4 = (re_dfa_t *)length;\n                  unaff_s5 = aVar39;\n                  unaff_s7 = aVar41;\n                  if ((uint)mctx.input.valid_raw_len <= uVar8) {\n                    aVar45.idx = match_first;\n                    local_150.sbcset = (re_bitset_ptr_t)(*pcVar5)(last_start);\n                    prVar51 = prVar52;\n                    if ((re_dfa_t *)local_150.sbcset != (re_dfa_t *)0x0) goto LAB_000557e4;\n                    uVar8 = (int)aVar46.sbcset - mctx.input.raw_mbs_idx;\n                  }\n                  if (aVar46.idx < length) {\n                    uVar8 = (uint)mctx.input.mbs[uVar8];\n                  }\n                  else {\n                    uVar8 = 0;\n                  }\n                  aVar56.sbcset = aVar46.sbcset + aVar39.sbcset;\n                  aVar46.sbcset = aVar56.sbcset;\n                  if (*(char *)((int)local_148.sbcset + uVar8) != '\0') break;\n                  prVar51 = prVar52;\n                  match_first = aVar56.idx;\n                  if (aVar56.idx < aVar40.idx) {\n                    local_150.idx = 1;\n                    goto LAB_000557e4;\n                  }\n                  aVar46.idx._0_3_ = 0;\n                  aVar46.idx._3_1_ = aVar41.idx < aVar56.idx;\n                  if ((re_dfa_t *)aVar46.sbcset != (re_dfa_t *)0x0) {\n                    local_150.idx = 1;\n                    goto LAB_000557e4;\n                  }\n                }\n                while( true ) {\n                  aVar45.idx = match_first;\n                  aVar49 = (anon_union_4_5_a39f51ca_for_opr)eflags;\n                  aVar7.sbcset = (re_bitset_ptr_t)(*pcVar5)(&mctx);\n                  aVar15 = (anon_union_4_5_a39f51ca_for_opr)mctx.dfa;\n                  aVar56.idx = mctx.input.cur_idx;\n                  prVar51 = prVar52;\n                  local_150.sbcset = aVar7.sbcset;\n                  if ((re_dfa_t *)aVar7.sbcset != (re_dfa_t *)0x0) goto LAB_000557e4;\n                  if (((iVar55 != 1) && (mctx.input.valid_len != 0)) &&\n                     (*mctx.input.wcs == 0xffffffff)) goto LAB_00055b1c;\n                  mctx.max_mb_elem_len = 0;\n                  mctx.nbkref_ents = 0;\n                  mctx.state_log_top = 0;\n                  local_138.idx = mctx.input.cur_idx;\n                  err = _REG_NOERROR;\n                  unaff_s7 = (anon_union_4_5_a39f51ca_for_opr)(mctx.dfa)->init_state;\n                  aVar49 = (anon_union_4_5_a39f51ca_for_opr)mctx.eflags;\n                  aVar46 = aVar15;\n                  if ((*(byte *)(unaff_s7.idx + 0x34) & 1) == 0) break;\n                  aVar45.sbcset = (re_bitset_ptr_t)(mctx.input.cur_idx + -1);\n                  prVar51 = (re_dfa_t *)re_string_context_at(&mctx.input,aVar45.idx,mctx.eflags);\n                  if (((uint)prVar51 & 1) == 0) {\n                    if (prVar51 == (re_dfa_t *)0x0) break;\n                    if (((uint)prVar51 & 6) == 6) {\n                      unaff_s7 = (anon_union_4_5_a39f51ca_for_opr)\n                                 ((re_dfa_t *)aVar15.idx)->init_state_begbuf;\n                      goto LAB_00054d1c;\n                    }\n                    if (((uint)prVar51 & 2) != 0) {\n                      unaff_s7 = (anon_union_4_5_a39f51ca_for_opr)\n                                 ((re_dfa_t *)aVar15.idx)->init_state_nl;\n                      goto LAB_00054d1c;\n                    }\n                    prVar52 = prVar51;\n                    if (((uint)prVar51 & 4) == 0) break;\n                    aVar49 = (anon_union_4_5_a39f51ca_for_opr)\n                             ((anon_union_4_5_a39f51ca_for_opr *)(unaff_s7.idx + 0x28))->mbcset;\n                    aVar45 = aVar15;\n                    unaff_s7.sbcset =\n                         &re_acquire_state_context\n                                    (&err,aVar15.sbcset,(re_node_set *)aVar49.mbcset,(uint)prVar51)\n                          ->hash;\n                    prVar52 = prVar51;\n                    if ((re_dfa_t *)unaff_s7.sbcset != (re_dfa_t *)0x0) break;\n                    if (err == _REG_ESPACE) goto LAB_00055914;\n                  }\n                  else {\n                    unaff_s7 = (anon_union_4_5_a39f51ca_for_opr)\n                               ((re_dfa_t *)aVar15.idx)->init_state_word;\nLAB_00054d1c:\n                    prVar52 = (re_dfa_t *)PTR_s_nt0_000795b8;\n                    if ((re_dfa_t *)unaff_s7.sbcset != (re_dfa_t *)0x0) break;\n                  }\n                  prVar52 = (re_dfa_t *)(PTR_s_nt0_000795b8 + 0x6eb0);\n                  aVar45.sbcset = (re_bitset_ptr_t)(PTR_s_nt0_000795b8 + 0x712c);\n                  match_first = (*(code *)PTR___assert_fail_000799f8)\n                                          (PTR_s_nt0_000795b8 + 0x71a0,aVar45.sbcset,0x435);\n                  if ((re_bitset_ptr_t)match_first == aVar41.sbcset) {\n                    if (match_first < length) {\n                      uVar8 = (uint)(byte)string[match_first];\n                    }\n                    else {\n                      uVar8 = 0;\n                    }\n                    if (puVar50 != (uchar *)0x0) {\n                      uVar8 = (uint)puVar50[uVar8];\n                    }\n                    if (*(char *)((int)local_148.sbcset + uVar8) == '\0') {\n                      local_150.idx = 1;\n                      aVar49 = (anon_union_4_5_a39f51ca_for_opr)eflags;\n                      prVar51 = prVar52;\n                      goto LAB_000557e4;\n                    }\n                  }\n                }\n                prVar51 = prVar52;\n                bVar36 = piVar38 != (int *)0x0;\n                if ((mctx.state_log == (re_dfastate_t **)0x0) ||\n                   (((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + aVar56.idx))->mbcset =\n                         (re_charset_t *)unaff_s7, ((re_dfa_t *)aVar15.idx)->nbackref == 0)) {\nLAB_00054d50:\n                  if ((int)*(bin_tree_t **)(unaff_s7.idx + 0x34) << 4 < 0) {\n                    if (((*(byte *)(unaff_s7.idx + 0x34) & 1) == 0) ||\n                       (aVar45 = unaff_s7, aVar49 = aVar56,\n                       IVar17 = check_halt_state_context(&mctx,unaff_s7.idx,aVar56.idx), IVar17 != 0\n                       )) {\n                      local_c4 = aVar56;\n                      if (paVar54 == (anon_union_4_5_a39f51ca_for_opr *)0x0) goto LAB_00055dbc;\n                      prVar52 = (re_dfa_t *)0x1;\n                    }\n                    else {\n                      aVar56.idx = -1;\n                      prVar52 = (re_dfa_t *)0x0;\n                    }\n                  }\n                  else {\n                    aVar56.idx = -1;\n                    prVar52 = (re_dfa_t *)0x0;\n                  }\n                  pcVar9 = (code *)(PTR_DAT_000799a4 + -0x7144);\n                  pcVar10 = (code *)(PTR_DAT_000799a4 + -0x1980);\n                  pcVar11 = (code *)(PTR_DAT_000799a4 + -0x2f9c);\n                  local_c4 = aVar56;\n                  local_144 = piVar38;\n                  while( true ) {\n                    uVar63 = CONCAT44(mctx.input.valid_len,mctx.input.len);\n                    unaff_s5.sbcset = (re_bitset_ptr_t)(mctx.input.cur_idx + 1);\n                    aVar45.idx = mctx.input.cur_idx;\n                    if (mctx.input.stop <= mctx.input.cur_idx) break;\n                    if ((mctx.input.bufs_len <= unaff_s5.idx) &&\n                       (mctx.input.bufs_len < mctx.input.len)) goto LAB_00054e94;\n                    if (mctx.input.valid_len <= unaff_s5.idx) {\n                      while ((int)((ulonglong)uVar63 >> 0x20) < (int)uVar63) {\nLAB_00054e94:\n                        aVar45.sbcset =\n                             (re_bitset_ptr_t)\n                             ((int)&((re_string_t *)&(aVar45.mbcset)->mbchars)->raw_mbs + 2);\n                        err = (*pcVar9)(&mctx);\n                        if (err == _REG_NOERROR) break;\n                        aVar15 = aVar46;\n                        if (err == _REG_ESPACE) goto LAB_00055914;\n                        prVar51 = (re_dfa_t *)(PTR_s_nt0_000795b8 + 0x6eb0);\n                        aVar49.idx = 0x46c;\n                        aVar45.sbcset = (re_bitset_ptr_t)(PTR_s_nt0_000795b8 + 0x712c);\n                        uVar63 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0);\n                        prVar52 = prVar59;\n                      }\n                    }\n                    prVar3 = mctx.dfa;\n                    if ((int)*(bin_tree_t **)(unaff_s7.idx + 0x34) << 5 < 0) {\n                      paVar18 = (anon_union_4_5_a39f51ca_for_opr *)prVar3;\n                      if (0 < (int)(unaff_s7.mbcset)->range_ends) {\n                        pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6fdc);\n                        pcVar13 = (code *)(PTR_DAT_000799a4 + -0x6ef0);\n                        stop = 0;\n                        do {\n                          last_start = ((anon_union_4_5_a39f51ca_for_opr *)\n                                       ((unaff_s7.mbcset)->char_classes + stop))->idx;\n                          prVar53 = prVar3->nodes;\n                          uVar8 = *(uint *)&prVar53[last_start].field_0x4;\n                          if ((uVar8 & 0x800) != 0) {\n                            if ((uVar8 & 0xffc000) != 0) {\n                              aVar45.idx = mctx.input.cur_idx;\n                              uVar60 = (*pcVar13)(&mctx,mctx.input.cur_idx,mctx.eflags);\n                              uVar8 = (uint)(*(int *)&prVar53[last_start].field_0x4 << 8) >> 0x16;\n                              if ((uVar8 & 4) == 0) {\n                                uVar26 = uVar60 & 1;\n                                if ((uVar8 & 8) != 0) goto joined_r0x00054f40;\n                              }\n                              else {\n                                uVar26 = uVar8 & 8;\n                                if ((uVar60 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                                if (uVar26 != 0) goto LAB_000550a4;\n                              }\n                              if ((((uVar8 & 0x20) != 0) && ((uVar60 & 2) == 0)) ||\n                                 (((uVar8 & 0x80) != 0 &&\n                                  (prVar51 = (re_dfa_t *)mctx.input.cur_idx, (uVar60 & 8) == 0))))\n                              goto LAB_000550a4;\n                            }\n                            aVar49.sbcset = (re_bitset_ptr_t)&mctx;\n                            aVar45.idx = last_start;\n                            prVar51 = (re_dfa_t *)mctx.input.cur_idx;\n                            iVar61 = (*pcVar11)(prVar3);\n                            if (iVar61 != 0) {\n                              aVar46.sbcset = (re_bitset_ptr_t)(iVar61 + mctx.input.cur_idx);\n                              if (iVar61 <= mctx.max_mb_elem_len) {\n                                iVar61 = mctx.max_mb_elem_len;\n                              }\n                              aVar45.sbcset = aVar46.sbcset;\n                              mctx.max_mb_elem_len = iVar61;\n                              err_1 = (*pcVar12)(&mctx);\n                              rVar21 = err_1;\n                              if (err_1 != _REG_NOERROR) goto LAB_00055e44;\n                              aVar49.sbcset =\n                                   (re_bitset_ptr_t)(prVar3->eclosures + prVar3->nexts[last_start]);\n                              unaff_s4 = (re_dfa_t *)(aVar46.idx * 4);\n                              last_start = (Idx)(mctx.state_log + aVar46.idx);\n                              if (*(bitset_word_t *)last_start == 0) {\n                                dest_nodes.alloc = *aVar49.sbcset;\n                                dest_nodes.nelem =\n                                     ((re_node_set *)&(aVar49.mbcset)->range_starts)->alloc;\n                                dest_nodes.elems = (aVar49.mbcset)->range_ends;\n                                prVar51 = (re_dfa_t *)\n                                          (*pcVar13)(&mctx,(undefined1 *)(aVar46.idx + -1),\n                                                     mctx.eflags);\n                                aVar49.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                                aVar45 = (anon_union_4_5_a39f51ca_for_opr)prVar3;\n                                prVar35 = re_acquire_state_context\n                                                    (&err_1,prVar3,(re_node_set *)aVar49.mbcset,\n                                                     (uint)prVar51);\n                                ((re_string_t *)&((re_charset_t *)last_start)->mbchars)->raw_mbs =\n                                     (uchar *)prVar35;\n                              }\n                              else {\n                                aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                                         ((anon_union_4_5_a39f51ca_for_opr *)\n                                         (*(bitset_word_t *)last_start + 0x28))->mbcset;\n                                err_1 = re_node_set_init_union\n                                                  (&dest_nodes,(re_node_set *)aVar45.mbcset,\n                                                   (re_node_set *)aVar49.mbcset);\n                                rVar21 = err_1;\n                                if (err_1 != _REG_NOERROR) goto LAB_00055e44;\n                                prVar51 = (re_dfa_t *)\n                                          (*pcVar13)(&mctx,(undefined1 *)(aVar46.idx + -1),\n                                                     mctx.eflags);\n                                pprVar14 = mctx.state_log + aVar46.idx;\n                                aVar49.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                                aVar45 = (anon_union_4_5_a39f51ca_for_opr)prVar3;\n                                prVar35 = re_acquire_state_context\n                                                    (&err_1,prVar3,(re_node_set *)aVar49.mbcset,\n                                                     (uint)prVar51);\n                                *pprVar14 = prVar35;\n                                (*(code *)PTR_free_00079c24)(dest_nodes.elems);\n                              }\n                              unaff_s4 = (re_dfa_t *)(mctx.state_log + aVar46.idx);\n                              if ((unaff_s4->nodes == (re_token_t *)0x0) &&\n                                 (rVar21 = err_1, err_1 != _REG_NOERROR)) goto LAB_00055e44;\n                            }\n                          }\nLAB_000550a4:\n                          stop = (int)&((re_string_t *)&((re_charset_t *)stop)->mbchars)->raw_mbs +\n                                 1;\n                        } while (stop < (int)(unaff_s7.mbcset)->range_ends);\n                      }\n                      err = _REG_NOERROR;\n                    }\n                    uVar8 = (uint)mctx.input.mbs[mctx.input.cur_idx];\n                    mctx.input.cur_idx = mctx.input.cur_idx + 1;\n                    do {\n                      if (*(re_dfastate_t **)(unaff_s7.idx + 0x2c) != (re_dfastate_t *)0x0) {\n                        aVar49 = (anon_union_4_5_a39f51ca_for_opr)\n                                 ((anon_union_4_5_a39f51ca_for_opr *)\n                                 (&(*(re_dfastate_t **)(unaff_s7.idx + 0x2c))->hash + uVar8))->\n                                 mbcset;\nLAB_000553a0:\n                        aVar15 = aVar49;\n                        if (mctx.state_log != (re_dfastate_t **)0x0) goto LAB_000553ac;\n                        goto LAB_000553cc;\n                      }\n                      paVar18 = *(anon_union_4_5_a39f51ca_for_opr **)(unaff_s7.idx + 0x30);\n                      if (paVar18 != (anon_union_4_5_a39f51ca_for_opr *)0x0) {\n                        aVar45.sbcset = (re_bitset_ptr_t)(mctx.input.cur_idx + -1);\n                        uVar60 = re_string_context_at(&mctx.input,aVar45.idx,mctx.eflags);\n                        if ((uVar60 & 1) == 0) {\n                          aVar49 = (anon_union_4_5_a39f51ca_for_opr)paVar18[uVar8].mbcset;\n                        }\n                        else {\n                          paVar18 = paVar18 + uVar8 + 0x100;\n                          aVar49 = (anon_union_4_5_a39f51ca_for_opr)paVar18->mbcset;\n                        }\n                        goto LAB_000553a0;\n                      }\n                      aVar45 = unaff_s7;\n                      aVar49 = (anon_union_4_5_a39f51ca_for_opr)mctx.eflags;\n                      iVar61 = (*pcVar10)(mctx.dfa);\n                    } while (iVar61 != 0);\n                    err = _REG_ESPACE;\n                    rVar21 = err;\nLAB_00055e44:\n                    err = rVar21;\n                    aVar46.sbcset = (re_bitset_ptr_t)0x0;\n                    if (mctx.state_log == (re_dfastate_t **)0x0) {\n                      aVar15.sbcset = aVar46.sbcset;\n                      if (err != _REG_NOERROR) goto LAB_00055914;\n                      break;\n                    }\n                    aVar49.sbcset = (re_bitset_ptr_t)0x0;\nLAB_000553ac:\n                    aVar45.sbcset = (re_bitset_ptr_t)&mctx;\n                    aVar15.sbcset =\n                         &merge_state_with_log\n                                    (&err,(re_match_context_t *)aVar45.mbcset,aVar49.sbcset)->hash;\nLAB_000553cc:\n                    aVar46 = aVar15;\n                    if ((re_dfa_t *)aVar15.sbcset == (re_dfa_t *)0x0) {\n                      if (err != _REG_NOERROR) goto LAB_00055914;\n                      if ((mctx.state_log == (re_dfastate_t **)0x0) ||\n                         ((prVar52 != (re_dfa_t *)0x0 &&\n                          (paVar54 == (anon_union_4_5_a39f51ca_for_opr *)0x0)))) break;\n                      stop = (Idx)&mctx;\n                      last_start = (Idx)&err;\n                      paVar18 = (anon_union_4_5_a39f51ca_for_opr *)(PTR_DAT_000799a4 + 0x3684);\n                      do {\n                        pprVar14 = mctx.state_log + mctx.input.cur_idx;\n                        IVar17 = mctx.input.cur_idx;\n                        do {\n                          IVar17 = IVar17 + 1;\n                          aVar45.idx = mctx.state_log_top;\n                          aVar46 = aVar15;\n                          if (mctx.state_log_top < IVar17) goto LAB_00055da8;\n                          mctx.input.cur_idx = mctx.input.cur_idx + 1;\n                          pprVar14 = pprVar14 + 1;\n                        } while (*pprVar14 == (re_dfastate_t *)0x0);\n                        aVar49.sbcset = (re_bitset_ptr_t)0x0;\n                        aVar45.sbcset = (re_bitset_ptr_t)stop;\n                        aVar46.sbcset = (re_bitset_ptr_t)(*(code *)paVar18)(last_start);\n                        if (err != _REG_NOERROR) {\n                          if ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0) goto LAB_00055da8;\n                          break;\n                        }\n                        aVar45.idx = mctx.state_log_top;\n                      } while ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0);\n                    }\n                    aVar16.ctx_type = unaff_s7.ctx_type ^ aVar46.ctx_type;\n                    aVar56 = unaff_s7;\n                    aVar15 = local_138;\n                    if ((bVar36) &&\n                       (aVar56.ctx_type = aVar16.ctx_type, aVar15.sbcset = unaff_s5.sbcset,\n                       (re_dfa_t *)aVar16.sbcset != (re_dfa_t *)0x0)) {\n                      bVar36 = false;\n                      aVar15 = local_138;\n                    }\n                    local_138 = aVar15;\n                    unaff_s7 = aVar46;\n                    if (((*(byte *)(aVar46.idx + 0x34) & 8) != 0) &&\n                       (((*(byte *)(aVar46.idx + 0x34) & 1) == 0 ||\n                        (aVar45 = aVar46, aVar49.idx = mctx.input.cur_idx,\n                        IVar17 = check_halt_state_context(&mctx,aVar46.idx,mctx.input.cur_idx),\n                        IVar17 != 0)))) {\n                      unaff_s7 = aVar56;\n                      local_c4.idx = mctx.input.cur_idx;\n                      if (paVar54 == (anon_union_4_5_a39f51ca_for_opr *)0x0) goto LAB_00055dbc;\n                      prVar52 = (re_dfa_t *)0x1;\n                      local_144 = (int *)0x0;\n                      unaff_s7 = aVar46;\n                    }\n                  }\nLAB_00055da8:\n                  if (local_144 != (int *)0x0) {\n                    *local_144 = *local_144 + (int)local_138.sbcset;\n                  }\n                }\n                else {\n                  aVar46.sbcset = (re_bitset_ptr_t)&(unaff_s7.mbcset)->range_starts;\n                  aVar49.sbcset = (re_bitset_ptr_t)0x0;\n                  aVar45 = aVar46;\n                  err = check_subexp_matching_top(&mctx,(re_node_set *)aVar46.mbcset,0);\n                  local_c4.idx = err;\n                  if ((re_dfa_t *)err == (re_dfa_t *)0x0) {\n                    if ((*(byte *)(unaff_s7.idx + 0x34) & 2) == 0) {\n                      aVar45 = aVar46;\n                      bVar36 = false;\n                    }\n                    else {\n                      aVar45 = aVar46;\n                      err = transit_state_bkref(&mctx,(re_node_set *)aVar46.mbcset);\n                      local_c4.idx = err;\n                      if ((re_dfa_t *)err != (re_dfa_t *)0x0) goto LAB_00055dbc;\n                      bVar36 = false;\n                    }\n                    goto LAB_00054d50;\n                  }\n                }\nLAB_00055dbc:\n                if ((re_dfa_t *)local_c4.sbcset == (re_dfa_t *)0xffffffff) {\nLAB_00055b04:\n                  match_ctx_clean(&mctx);\nLAB_00055b1c:\n                  match_first = aVar39.idx + match_first;\n                  if (aVar40.idx <= match_first) goto code_r0x00055b38;\n                  local_150.idx = 1;\n                  goto LAB_000557e4;\n                }\n                if ((re_dfa_t *)local_c4.sbcset == (re_dfa_t *)&SUB_fffffffe) {\n                  local_150.idx = 0xc;\n                  goto LAB_000557e4;\n                }\n                mctx.match_last = local_c4.idx;\n                if ((preg->field_0x1c & 8) == 0) {\n                  if (aVar4.sbcset < (re_dfa_t *)0x2) {\n                    if (prVar59->nbackref == 0) goto LAB_00055c08;\n                    aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                             ((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + local_c4.idx))->\n                             mbcset;\n                    aVar49 = local_c4;\n                    mctx.last_node =\n                         check_halt_state_context(&mctx,(re_dfastate_t *)aVar45.mbcset,local_c4.idx)\n                    ;\n                  }\n                  else {\n                    aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                             ((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + local_c4.idx))->\n                             mbcset;\n                    aVar49 = local_c4;\n                    mctx.last_node =\n                         check_halt_state_context(&mctx,(re_dfastate_t *)aVar45.mbcset,local_c4.idx)\n                    ;\n                  }\n                  if (aVar4.sbcset < (re_dfa_t *)0x2) {\nLAB_00055c6c:\n                    prVar52 = prVar51;\n                    unaff_s4 = mctx.dfa;\n                    if (prVar59->nbackref == 0) goto LAB_00055548;\n                  }\n                  else {\n                    cVar37 = prVar59->field_0x58;\nLAB_00055c20:\n                    prVar52 = prVar51;\n                    if (-1 < cVar37) goto LAB_00055c6c;\n                  }\n                  paVar18 = (anon_union_4_5_a39f51ca_for_opr *)mctx.last_node;\n                  prVar3 = mctx.dfa;\n                  unaff_s4 = prVar3;\n                  if ((uint)local_c4 < (re_dfa_t *)0x3fffffff) {\n                    aVar46.idx = (int)((int)&((re_string_t *)&(local_c4.mbcset)->mbchars)->raw_mbs +\n                                      1) * 4;\n                    unaff_s5.sbcset = (re_bitset_ptr_t)(*(code *)PTR_malloc_00079b54)(aVar46.sbcset)\n                    ;\n                    if ((re_dfa_t *)unaff_s5.sbcset == (re_dfa_t *)0x0) {\nLAB_00055b9c:\n                      (*(code *)PTR_free_00079c24)(unaff_s5.sbcset);\n                      local_150.idx = 0xc;\n                      prVar51 = prVar52;\n                    }\n                    else {\n                      aVar45.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                      if (prVar3->nbackref == 0) {\n                        dest_nodes.nelem = 0;\n                        dest_nodes.elems = &paVar18->idx;\n                        dest_nodes.alloc = (Idx)unaff_s5.sbcset;\n                        last_start = sift_states_backward(&mctx,(re_sift_context_t *)aVar45.mbcset);\n                        (*(code *)PTR_free_00079c24)(0);\n                        if ((re_dfa_t *)last_start == (re_dfa_t *)0x0) {\n                          aVar46.mbcset = (re_charset_t *)*unaff_s5.sbcset;\n                          if ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0) {\nLAB_00055b70:\n                            (*(code *)PTR_free_00079c24)(unaff_s5.sbcset);\n                            (*(code *)PTR_free_00079c24)(aVar46.sbcset);\n                            prVar51 = prVar52;\n                            goto LAB_00055b04;\n                          }\nLAB_00055528:\n                          (*(code *)PTR_free_00079c24)(mctx.state_log);\n                          prVar51 = prVar52;\n                          unaff_s4 = prVar3;\n                          mctx.match_last = local_c4.idx;\n                          mctx.last_node = (Idx)paVar18;\n                          mctx.state_log = (re_dfastate_t **)unaff_s5.sbcset;\n                          goto LAB_00055548;\n                        }\nLAB_00055acc:\n                        aVar46.sbcset = (re_bitset_ptr_t)0x0;\n                        prVar51 = prVar52;\n                        unaff_s4 = prVar3;\n                      }\n                      else {\n                        aVar46.sbcset =\n                             (re_bitset_ptr_t)(*(code *)PTR_malloc_00079b54)(aVar46.sbcset);\n                        if ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0) goto LAB_00055b9c;\n                        unaff_s7.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                        pcVar9 = (code *)(PTR_DAT_000799a4 + 0x421c);\n                        pcVar10 = (code *)(PTR_DAT_000799a4 + -0x6bc0);\n                        prVar51 = prVar52;\n                        while( true ) {\n                          prVar52 = (re_dfa_t *)(local_c4.idx + 1);\n                          stop = (int)prVar52 * 4;\n                          aVar49.idx = stop;\n                          (*(code *)PTR_memset_00079b00)(aVar46.sbcset,0);\n                          aVar45.sbcset = unaff_s7.sbcset;\n                          dest_nodes.alloc = (Idx)unaff_s5.sbcset;\n                          dest_nodes.nelem = (Idx)aVar46.sbcset;\n                          dest_nodes.elems = (Idx *)paVar18;\n                          last_start = (*pcVar9)(&mctx);\n                          (*(code *)PTR_free_00079c24)(0);\n                          unaff_s4 = prVar52;\n                          if ((re_dfa_t *)last_start != (re_dfa_t *)0x0) break;\n                          if ((*unaff_s5.sbcset != 0) || (stop = stop + -4, *aVar46.sbcset != 0)) {\n                            aVar45.sbcset = unaff_s5.sbcset;\n                            aVar49.sbcset = aVar46.sbcset;\n                            last_start = merge_state_array(prVar3,(re_dfastate_t **)unaff_s5.sbcset,\n                                                           (re_dfastate_t **)aVar46.sbcset,\n                                                           (Idx)prVar52);\n                            (*(code *)PTR_free_00079c24)(aVar46.sbcset);\n                            if ((re_dfa_t *)last_start != (re_dfa_t *)0x0) goto LAB_00055acc;\n                            goto LAB_00055528;\n                          }\n                          stop = (Idx)(mctx.state_log + (int)&prVar52[-1].lock.__align + 0x17);\n                          do {\n                            while( true ) {\n                              local_c4.sbcset = (re_bitset_ptr_t)(local_c4.idx + -1);\n                              if (local_c4.idx < 0) goto LAB_00055b70;\n                              aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                                       ((anon_union_4_5_a39f51ca_for_opr *)(stop + -4))->idx;\n                              if ((re_dfa_t *)aVar45.sbcset != (re_dfa_t *)0x0) break;\n                              stop = stop + -4;\n                            }\n                            stop = stop + -4;\n                          } while ((*(byte *)(aVar45.idx + 0x34) & 8) == 0);\n                          paVar18 = (anon_union_4_5_a39f51ca_for_opr *)\n                                    (*pcVar10)(&mctx,aVar45.sbcset,local_c4.sbcset);\n                          prVar51 = prVar52;\n                        }\n                      }\n                      (*(code *)PTR_free_00079c24)(unaff_s5.sbcset);\n                      (*(code *)PTR_free_00079c24)(aVar46.sbcset);\n                      local_150.idx = last_start;\n                      if ((re_dfa_t *)last_start == (re_dfa_t *)0x1) goto LAB_00055b04;\n                    }\n                  }\n                  else {\n                    local_150.idx = 0xc;\n                    prVar51 = prVar52;\n                  }\n                  goto LAB_000557e4;\n                }\n                if (prVar59->nbackref != 0) {\n                  aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                           ((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + local_c4.idx))->\n                           mbcset;\n                  aVar49 = local_c4;\n                  mctx.last_node =\n                       check_halt_state_context(&mctx,(re_dfastate_t *)aVar45.mbcset,local_c4.idx);\n                  goto LAB_00055c6c;\n                }\nLAB_00055c08:\n                if (((preg->field_0x1c & 8) == 0) && ((re_dfa_t *)0x1 < aVar4.sbcset)) {\n                  cVar37 = prVar59->field_0x58;\n                  goto LAB_00055c20;\n                }\nLAB_00055548:\n                if ((re_dfa_t *)aVar4.sbcset == (re_dfa_t *)0x0) goto LAB_000557e4;\n                if (aVar4.sbcset < (re_dfa_t *)0x2) {\n                  pmatch->rm_so = 0;\n                  pmatch->rm_eo = mctx.match_last;\n                  goto LAB_000555ac;\n                }\n                prVar19 = pmatch + 1;\n                do {\n                  prVar19->rm_eo = -1;\n                  prVar19->rm_so = -1;\n                  prVar19 = prVar19 + 1;\n                } while (prVar19 != pmatch + aVar4.idx);\n                pmatch->rm_so = 0;\n                pmatch->rm_eo = mctx.match_last;\n                if ((preg->field_0x1c & 8) != 0) {\nLAB_000555ac:\n                  prVar19 = pmatch;\n                  do {\n                    aVar45.sbcset = (re_bitset_ptr_t)prVar19->rm_so;\n                    if ((re_dfa_t *)aVar45.sbcset != (re_dfa_t *)0xffffffff) {\n                      if (mctx.input.offsets_needed != '\0') {\n                        rVar47 = mctx.input.valid_raw_len;\n                        if (aVar45.sbcset != (re_bitset_ptr_t)mctx.input.valid_len) {\n                          rVar47 = mctx.input.offsets[aVar45.idx];\n                        }\n                        prVar19->rm_so = rVar47;\n                        rVar47 = mctx.input.valid_raw_len;\n                        if (mctx.input.valid_len != prVar19->rm_eo) {\n                          rVar47 = mctx.input.offsets[prVar19->rm_eo];\n                        }\n                        prVar19->rm_eo = rVar47;\n                      }\n                      prVar19->rm_so = prVar19->rm_so + match_first;\n                      aVar45.sbcset = (re_bitset_ptr_t)(prVar19->rm_eo + match_first);\n                      prVar19->rm_eo = (regoff_t)aVar45;\n                    }\n                    prVar19 = prVar19 + 1;\n                  } while (prVar19 != pmatch + aVar4.idx);\n                  if (0 < local_118) {\n                    prVar19 = pmatch + aVar4.idx;\n                    do {\n                      prVar19->rm_so = -1;\n                      prVar19->rm_eo = -1;\n                      prVar19 = prVar19 + 1;\n                    } while (prVar19 != pmatch + nmatch);\n                  }\n                  aVar49.idx = match_first;\n                  prVar51 = (re_dfa_t *)pmatch;\n                  local_150.sbcset = aVar7.sbcset;\n                  if (prVar59->subexp_map != (Idx *)0x0) {\n                    aVar49.sbcset = (re_bitset_ptr_t)(aVar4.idx + -1);\n                    prVar52 = (re_dfa_t *)0x0;\n                    prVar19 = pmatch;\n                    while( true ) {\n                      aVar45.idx = (int)prVar52 * 4;\n                      if ((re_dfa_t *)aVar49.sbcset == prVar52) break;\n                      if ((re_dfa_t *)prVar59->subexp_map[(int)prVar52] != prVar52) {\n                        prVar19[1].rm_so =\n                             pmatch[(int)((int)&((re_string_t *)\n                                                &((re_dfa_t *)prVar59->subexp_map[(int)prVar52])->\n                                                 nodes)->raw_mbs + 1)].rm_so;\n                        prVar19[1].rm_eo = pmatch[prVar59->subexp_map[(int)prVar52] + 1].rm_eo;\n                      }\n                      prVar52 = (re_dfa_t *)((int)&((re_string_t *)&prVar52->nodes)->raw_mbs + 1);\n                      prVar19 = prVar19 + 1;\n                    }\n                  }\n                  goto LAB_000557e4;\n                }\n                if ((char)prVar59->field_0x58 < '\0') {\n                  bVar36 = 0 < prVar59->nbackref;\n                }\n                else {\n                  bVar36 = false;\n                }\n                aVar45.sbcset = (re_bitset_ptr_t)&mctx;\n                aVar49.sbcset = aVar4.sbcset;\n                prVar51 = (re_dfa_t *)pmatch;\n                local_150.idx =\n                     set_regs(preg,(re_match_context_t *)aVar45.mbcset,aVar4.ctx_type,pmatch,bVar36)\n                ;\n                if ((re_dfa_t *)local_150.sbcset == (re_dfa_t *)0x0) goto LAB_000555ac;\n              }\n            }\n          }\n          else if ((uint)mctx.input.bufs_len < 0x3fffffff) {\n            mctx.state_log =\n                 (re_dfastate_t **)(*(code *)PTR_malloc_00079b54)((mctx.input.bufs_len + 1) * 4);\n            if (mctx.state_log != (re_dfastate_t **)0x0) goto LAB_00055a40;\n            local_150.idx = 0xc;\n            stop = aVar56.idx;\n          }\n          else {\n            local_150.idx = 0xc;\n            stop = aVar56.idx;\n          }\n        }\n        else {\n          unaff_s5.idx = iVar55 * 8;\n          if (aVar56.sbcset < (re_dfa_t *)0xccccccd) {\n            unaff_s4 = (re_dfa_t *)(*(code *)PTR_malloc_00079b54)(iVar55 * 0x28);\n            mctx.bkref_ents = (re_backref_cache_entry *)unaff_s4;\n            mctx.sub_tops = (re_sub_match_top_t **)(*(code *)PTR_malloc_00079b54)(unaff_s5.sbcset);\n            if ((unaff_s4 != (re_dfa_t *)0x0) && (mctx.sub_tops != (re_sub_match_top_t **)0x0))\n            goto LAB_000559f0;\n          }\n          local_150.idx = 0xc;\n          stop = aVar56.idx;\n        }\nLAB_000557e4:\n        (*(code *)PTR_free_00079c24)(mctx.state_log);\n        preg = (regex_t *)aVar49;\n        if (prVar59->nbackref != 0) {\n          match_ctx_clean(&mctx);\n          (*(code *)PTR_free_00079c24)(mctx.sub_tops);\n          (*(code *)PTR_free_00079c24)(mctx.bkref_ents);\n          preg = (regex_t *)aVar49;\n        }\n        re_string_destruct(&mctx.input);\n        aStack_1a0 = aVar46;\n        paStack_19c = paVar18;\n      }\n    }\n  }" if (parenthesized_expression "(prVar59->init_state_nl == (re_dfastate_t *)0x0)" ( (binary_expression "prVar59->init_state_nl == (re_dfastate_t *)0x0" (field_expression "prVar59->init_state_nl" identifier -> field_identifier) == (cast_expression "(re_dfastate_t *)0x0" ( (type_descriptor "re_dfastate_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    local_150.idx = 1;\n  }" { (expression_statement "local_150.idx = 1;" (assignment_expression "local_150.idx = 1" (field_expression "local_150.idx" identifier . field_identifier) = number_literal) ;) }) (else_clause "else {\n    aVar45 = (anon_union_4_5_a39f51ca_for_opr)prVar59->init_state_begbuf;\n    if ((re_dfa_t *)aVar45.sbcset == (re_dfa_t *)0x0) {\n      local_150.idx = 1;\n    }\n    else {\n      aVar4.idx = last_start;\n      if (((((prVar59->init_state->nodes).nelem == 0) &&\n           ((prVar59->init_state_word->nodes).nelem == 0)) &&\n          (((prVar59->init_state_nl->nodes).nelem == 0 || ((preg->field_0x1c & 1) == 0)))) &&\n         ((aVar4.idx = start, start != 0 &&\n          (start = last_start, aVar4.idx = last_start, last_start != 0)))) {\n        local_150.idx = 1;\n        aStack_1a0.idx = last_start;\n      }\n      else {\n        last_start = aVar4.idx;\n        aVar4.sbcset = (re_bitset_ptr_t)(nmatch - local_118);\n        if ((re_dfa_t *)aVar4.sbcset == (re_dfa_t *)0x0) {\n          paVar54 = (anon_union_4_5_a39f51ca_for_opr *)(uint)(prVar59->nbackref != 0);\n        }\n        else {\n          paVar54 = (anon_union_4_5_a39f51ca_for_opr *)0x1;\n        }\n        puVar50 = preg->translate;\n        mctx.input.icase = (uchar)((preg->syntax << 9) >> 0x1f);\n        mctx.input.mb_cur_max = prVar59->mb_cur_max;\n        aVar46.sbcset = (re_bitset_ptr_t)(prVar59->nodes_len + 1);\n        if (aVar46.idx < mctx.input.mb_cur_max) {\n          aVar46 = (anon_union_4_5_a39f51ca_for_opr)mctx.input.mb_cur_max;\n        }\n        aVar49.idx._0_3_ = 0;\n        aVar49.idx._3_1_ = ((re_bitset_ptr_t)(length + 1)).idx < aVar46.idx;\n        prVar51 = (re_dfa_t *)0x1;\n        mctx.input.mbs_allocated = mctx.input.icase;\n        if (puVar50 != (uchar *)0x0) {\n          mctx.input.mbs_allocated = 1;\n        }\n        mctx.input.is_utf8 = (uchar)((uint)(*(int *)&prVar59->field_0x58 << 2) >> 0x1f);\n        mctx.input.map_notascii = (uchar)((uint)(*(int *)&prVar59->field_0x58 << 3) >> 0x1f);\n        aVar45.sbcset = ((re_bitset_ptr_t)(length + 1)).sbcset;\n        if ((re_dfa_t *)aVar49.sbcset == (re_dfa_t *)0x0) {\n          aVar45 = aVar46;\n        }\n        mctx.input.raw_mbs = (uchar *)string;\n        mctx.input.raw_len = length;\n        mctx.input.len = length;\n        mctx.input.raw_stop = length;\n        mctx.input.stop = length;\n        mctx.input.trans = puVar50;\n        local_150.idx = re_string_realloc_buffers(&mctx.input,aVar45.idx);\n        aVar46.idx = start;\n        paVar18 = paVar54;\n        stop = stop;\n        if ((re_dfa_t *)local_150.sbcset != (re_dfa_t *)0x0) goto LAB_000557e4;\n        mctx.input.word_char = prVar59->word_char;\n        mctx.input.word_ops_used = (uchar)((uint)(*(int *)&prVar59->field_0x58 << 4) >> 0x1f);\n        paVar2 = (anon_union_4_5_a39f51ca_for_opr *)0x0;\n        mctx.input.valid_len = (Idx)paVar2;\n        if ((mctx.input.mbs_allocated == '\0') &&\n           (mctx.input.mbs = (uchar *)string, prVar59->mb_cur_max < 2)) {\n          mctx.input.valid_len = length;\n        }\n        mctx.input.stop = stop;\n        mctx.input.raw_stop = stop;\n        mctx.input.newline_anchor = (uchar)((uint)(*(int *)&preg->field_0x1c << 7) >> 0x1f);\n        iVar55 = prVar59->nbackref;\n        aVar56.idx = iVar55 * 2;\n        mctx.eflags = eflags;\n        mctx.match_last = -1;\n        mctx.input.valid_raw_len = mctx.input.valid_len;\n        if ((int)aVar56 < 1) {\nLAB_000559f0:\n          mctx.max_mb_elem_len = 1;\n          mctx.abkref_ents = aVar56.idx;\n          mctx.asub_tops = aVar56.idx;\n          if ((aVar4.sbcset < (re_dfa_t *)0x2) && ((prVar59->field_0x58 & 0x40) == 0)) {\n            mctx.state_log = (re_dfastate_t **)0x0;\nLAB_00055a40:\n            mctx.input.tip_context = 6;\n            if ((eflags & 1U) != 0) {\n              mctx.input.tip_context = 4;\n            }\n            aVar39.idx = 1;\n            aVar40.idx = start;\n            if (last_start < start) {\n              aVar39.idx = -1;\n              aVar40.idx = last_start;\n            }\n            aVar41.idx = last_start;\n            if (last_start <= start) {\n              aVar41.idx = start;\n            }\n            iVar55 = prVar59->mb_cur_max;\n            rVar20 = 8;\n            if ((re_dfa_t *)local_148.sbcset != (re_dfa_t *)0x0) {\n              if (iVar55 == 1) {\n                paVar43 = (anon_union_4_5_a39f51ca_for_opr *)0x4;\n              }\n              else {\n                paVar43 = paVar2;\n                if ((-1 < (int)(preg->syntax << 9)) && (puVar50 == (uchar *)0x0)) {\n                  paVar43 = (anon_union_4_5_a39f51ca_for_opr *)0x4;\n                }\n              }\n              aVar45.sbcset = (re_bitset_ptr_t)0x0;\n              if (start <= last_start) {\n                aVar45.idx = 2;\n              }\n              rVar20 = (uint)(puVar50 != (uchar *)0x0) | (uint)paVar43 | aVar45.ctx_type;\n            }\n            match_first = start;\n            if (start < aVar40.idx) {\n              local_150.idx = 1;\n              stop = aVar56.idx;\n            }\n            else {\n              aVar46.idx._0_3_ = 0;\n              aVar46.idx._3_1_ = last_start < start;\n              if (aVar41.idx < start) {\n                local_150.idx = 1;\n                stop = aVar56.idx;\n              }\n              else {\n                piVar38 = &match_first;\n                if ((re_dfa_t *)aVar46.sbcset != (re_dfa_t *)0x0) {\n                  piVar38 = (int *)0x0;\n                }\n                pcVar5 = (code *)(PTR_DAT_000799a4 + -0x2b7c);\n                piVar6 = (int *)(PTR_s_nt0_000795b8 + (rVar20 - 4) * 4 + 0x6e38);\nLAB_00055b44:\n                if (rVar20 - 4 < 5) {\n                    /* WARNING: Could not emulate address calculation at 0x00054920 */\n                    /* WARNING: Treating indirect jump as call */\n                  rVar21 = (*(code *)(&_gp + *piVar6))();\n                  return rVar21;\n                }\n                last_start = (Idx)&mctx;\n                prVar52 = prVar51;\n                while( true ) {\n                  aVar46.idx = match_first;\n                  uVar8 = match_first - mctx.input.raw_mbs_idx;\n                  aVar49 = (anon_union_4_5_a39f51ca_for_opr)eflags;\n                  paVar18 = paVar2;\n                  stop = local_148.idx;\n                  unaff_s4 = (re_dfa_t *)length;\n                  unaff_s5 = aVar39;\n                  unaff_s7 = aVar41;\n                  if ((uint)mctx.input.valid_raw_len <= uVar8) {\n                    aVar45.idx = match_first;\n                    local_150.sbcset = (re_bitset_ptr_t)(*pcVar5)(last_start);\n                    prVar51 = prVar52;\n                    if ((re_dfa_t *)local_150.sbcset != (re_dfa_t *)0x0) goto LAB_000557e4;\n                    uVar8 = (int)aVar46.sbcset - mctx.input.raw_mbs_idx;\n                  }\n                  if (aVar46.idx < length) {\n                    uVar8 = (uint)mctx.input.mbs[uVar8];\n                  }\n                  else {\n                    uVar8 = 0;\n                  }\n                  aVar56.sbcset = aVar46.sbcset + aVar39.sbcset;\n                  aVar46.sbcset = aVar56.sbcset;\n                  if (*(char *)((int)local_148.sbcset + uVar8) != '\0') break;\n                  prVar51 = prVar52;\n                  match_first = aVar56.idx;\n                  if (aVar56.idx < aVar40.idx) {\n                    local_150.idx = 1;\n                    goto LAB_000557e4;\n                  }\n                  aVar46.idx._0_3_ = 0;\n                  aVar46.idx._3_1_ = aVar41.idx < aVar56.idx;\n                  if ((re_dfa_t *)aVar46.sbcset != (re_dfa_t *)0x0) {\n                    local_150.idx = 1;\n                    goto LAB_000557e4;\n                  }\n                }\n                while( true ) {\n                  aVar45.idx = match_first;\n                  aVar49 = (anon_union_4_5_a39f51ca_for_opr)eflags;\n                  aVar7.sbcset = (re_bitset_ptr_t)(*pcVar5)(&mctx);\n                  aVar15 = (anon_union_4_5_a39f51ca_for_opr)mctx.dfa;\n                  aVar56.idx = mctx.input.cur_idx;\n                  prVar51 = prVar52;\n                  local_150.sbcset = aVar7.sbcset;\n                  if ((re_dfa_t *)aVar7.sbcset != (re_dfa_t *)0x0) goto LAB_000557e4;\n                  if (((iVar55 != 1) && (mctx.input.valid_len != 0)) &&\n                     (*mctx.input.wcs == 0xffffffff)) goto LAB_00055b1c;\n                  mctx.max_mb_elem_len = 0;\n                  mctx.nbkref_ents = 0;\n                  mctx.state_log_top = 0;\n                  local_138.idx = mctx.input.cur_idx;\n                  err = _REG_NOERROR;\n                  unaff_s7 = (anon_union_4_5_a39f51ca_for_opr)(mctx.dfa)->init_state;\n                  aVar49 = (anon_union_4_5_a39f51ca_for_opr)mctx.eflags;\n                  aVar46 = aVar15;\n                  if ((*(byte *)(unaff_s7.idx + 0x34) & 1) == 0) break;\n                  aVar45.sbcset = (re_bitset_ptr_t)(mctx.input.cur_idx + -1);\n                  prVar51 = (re_dfa_t *)re_string_context_at(&mctx.input,aVar45.idx,mctx.eflags);\n                  if (((uint)prVar51 & 1) == 0) {\n                    if (prVar51 == (re_dfa_t *)0x0) break;\n                    if (((uint)prVar51 & 6) == 6) {\n                      unaff_s7 = (anon_union_4_5_a39f51ca_for_opr)\n                                 ((re_dfa_t *)aVar15.idx)->init_state_begbuf;\n                      goto LAB_00054d1c;\n                    }\n                    if (((uint)prVar51 & 2) != 0) {\n                      unaff_s7 = (anon_union_4_5_a39f51ca_for_opr)\n                                 ((re_dfa_t *)aVar15.idx)->init_state_nl;\n                      goto LAB_00054d1c;\n                    }\n                    prVar52 = prVar51;\n                    if (((uint)prVar51 & 4) == 0) break;\n                    aVar49 = (anon_union_4_5_a39f51ca_for_opr)\n                             ((anon_union_4_5_a39f51ca_for_opr *)(unaff_s7.idx + 0x28))->mbcset;\n                    aVar45 = aVar15;\n                    unaff_s7.sbcset =\n                         &re_acquire_state_context\n                                    (&err,aVar15.sbcset,(re_node_set *)aVar49.mbcset,(uint)prVar51)\n                          ->hash;\n                    prVar52 = prVar51;\n                    if ((re_dfa_t *)unaff_s7.sbcset != (re_dfa_t *)0x0) break;\n                    if (err == _REG_ESPACE) goto LAB_00055914;\n                  }\n                  else {\n                    unaff_s7 = (anon_union_4_5_a39f51ca_for_opr)\n                               ((re_dfa_t *)aVar15.idx)->init_state_word;\nLAB_00054d1c:\n                    prVar52 = (re_dfa_t *)PTR_s_nt0_000795b8;\n                    if ((re_dfa_t *)unaff_s7.sbcset != (re_dfa_t *)0x0) break;\n                  }\n                  prVar52 = (re_dfa_t *)(PTR_s_nt0_000795b8 + 0x6eb0);\n                  aVar45.sbcset = (re_bitset_ptr_t)(PTR_s_nt0_000795b8 + 0x712c);\n                  match_first = (*(code *)PTR___assert_fail_000799f8)\n                                          (PTR_s_nt0_000795b8 + 0x71a0,aVar45.sbcset,0x435);\n                  if ((re_bitset_ptr_t)match_first == aVar41.sbcset) {\n                    if (match_first < length) {\n                      uVar8 = (uint)(byte)string[match_first];\n                    }\n                    else {\n                      uVar8 = 0;\n                    }\n                    if (puVar50 != (uchar *)0x0) {\n                      uVar8 = (uint)puVar50[uVar8];\n                    }\n                    if (*(char *)((int)local_148.sbcset + uVar8) == '\0') {\n                      local_150.idx = 1;\n                      aVar49 = (anon_union_4_5_a39f51ca_for_opr)eflags;\n                      prVar51 = prVar52;\n                      goto LAB_000557e4;\n                    }\n                  }\n                }\n                prVar51 = prVar52;\n                bVar36 = piVar38 != (int *)0x0;\n                if ((mctx.state_log == (re_dfastate_t **)0x0) ||\n                   (((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + aVar56.idx))->mbcset =\n                         (re_charset_t *)unaff_s7, ((re_dfa_t *)aVar15.idx)->nbackref == 0)) {\nLAB_00054d50:\n                  if ((int)*(bin_tree_t **)(unaff_s7.idx + 0x34) << 4 < 0) {\n                    if (((*(byte *)(unaff_s7.idx + 0x34) & 1) == 0) ||\n                       (aVar45 = unaff_s7, aVar49 = aVar56,\n                       IVar17 = check_halt_state_context(&mctx,unaff_s7.idx,aVar56.idx), IVar17 != 0\n                       )) {\n                      local_c4 = aVar56;\n                      if (paVar54 == (anon_union_4_5_a39f51ca_for_opr *)0x0) goto LAB_00055dbc;\n                      prVar52 = (re_dfa_t *)0x1;\n                    }\n                    else {\n                      aVar56.idx = -1;\n                      prVar52 = (re_dfa_t *)0x0;\n                    }\n                  }\n                  else {\n                    aVar56.idx = -1;\n                    prVar52 = (re_dfa_t *)0x0;\n                  }\n                  pcVar9 = (code *)(PTR_DAT_000799a4 + -0x7144);\n                  pcVar10 = (code *)(PTR_DAT_000799a4 + -0x1980);\n                  pcVar11 = (code *)(PTR_DAT_000799a4 + -0x2f9c);\n                  local_c4 = aVar56;\n                  local_144 = piVar38;\n                  while( true ) {\n                    uVar63 = CONCAT44(mctx.input.valid_len,mctx.input.len);\n                    unaff_s5.sbcset = (re_bitset_ptr_t)(mctx.input.cur_idx + 1);\n                    aVar45.idx = mctx.input.cur_idx;\n                    if (mctx.input.stop <= mctx.input.cur_idx) break;\n                    if ((mctx.input.bufs_len <= unaff_s5.idx) &&\n                       (mctx.input.bufs_len < mctx.input.len)) goto LAB_00054e94;\n                    if (mctx.input.valid_len <= unaff_s5.idx) {\n                      while ((int)((ulonglong)uVar63 >> 0x20) < (int)uVar63) {\nLAB_00054e94:\n                        aVar45.sbcset =\n                             (re_bitset_ptr_t)\n                             ((int)&((re_string_t *)&(aVar45.mbcset)->mbchars)->raw_mbs + 2);\n                        err = (*pcVar9)(&mctx);\n                        if (err == _REG_NOERROR) break;\n                        aVar15 = aVar46;\n                        if (err == _REG_ESPACE) goto LAB_00055914;\n                        prVar51 = (re_dfa_t *)(PTR_s_nt0_000795b8 + 0x6eb0);\n                        aVar49.idx = 0x46c;\n                        aVar45.sbcset = (re_bitset_ptr_t)(PTR_s_nt0_000795b8 + 0x712c);\n                        uVar63 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0);\n                        prVar52 = prVar59;\n                      }\n                    }\n                    prVar3 = mctx.dfa;\n                    if ((int)*(bin_tree_t **)(unaff_s7.idx + 0x34) << 5 < 0) {\n                      paVar18 = (anon_union_4_5_a39f51ca_for_opr *)prVar3;\n                      if (0 < (int)(unaff_s7.mbcset)->range_ends) {\n                        pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6fdc);\n                        pcVar13 = (code *)(PTR_DAT_000799a4 + -0x6ef0);\n                        stop = 0;\n                        do {\n                          last_start = ((anon_union_4_5_a39f51ca_for_opr *)\n                                       ((unaff_s7.mbcset)->char_classes + stop))->idx;\n                          prVar53 = prVar3->nodes;\n                          uVar8 = *(uint *)&prVar53[last_start].field_0x4;\n                          if ((uVar8 & 0x800) != 0) {\n                            if ((uVar8 & 0xffc000) != 0) {\n                              aVar45.idx = mctx.input.cur_idx;\n                              uVar60 = (*pcVar13)(&mctx,mctx.input.cur_idx,mctx.eflags);\n                              uVar8 = (uint)(*(int *)&prVar53[last_start].field_0x4 << 8) >> 0x16;\n                              if ((uVar8 & 4) == 0) {\n                                uVar26 = uVar60 & 1;\n                                if ((uVar8 & 8) != 0) goto joined_r0x00054f40;\n                              }\n                              else {\n                                uVar26 = uVar8 & 8;\n                                if ((uVar60 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                                if (uVar26 != 0) goto LAB_000550a4;\n                              }\n                              if ((((uVar8 & 0x20) != 0) && ((uVar60 & 2) == 0)) ||\n                                 (((uVar8 & 0x80) != 0 &&\n                                  (prVar51 = (re_dfa_t *)mctx.input.cur_idx, (uVar60 & 8) == 0))))\n                              goto LAB_000550a4;\n                            }\n                            aVar49.sbcset = (re_bitset_ptr_t)&mctx;\n                            aVar45.idx = last_start;\n                            prVar51 = (re_dfa_t *)mctx.input.cur_idx;\n                            iVar61 = (*pcVar11)(prVar3);\n                            if (iVar61 != 0) {\n                              aVar46.sbcset = (re_bitset_ptr_t)(iVar61 + mctx.input.cur_idx);\n                              if (iVar61 <= mctx.max_mb_elem_len) {\n                                iVar61 = mctx.max_mb_elem_len;\n                              }\n                              aVar45.sbcset = aVar46.sbcset;\n                              mctx.max_mb_elem_len = iVar61;\n                              err_1 = (*pcVar12)(&mctx);\n                              rVar21 = err_1;\n                              if (err_1 != _REG_NOERROR) goto LAB_00055e44;\n                              aVar49.sbcset =\n                                   (re_bitset_ptr_t)(prVar3->eclosures + prVar3->nexts[last_start]);\n                              unaff_s4 = (re_dfa_t *)(aVar46.idx * 4);\n                              last_start = (Idx)(mctx.state_log + aVar46.idx);\n                              if (*(bitset_word_t *)last_start == 0) {\n                                dest_nodes.alloc = *aVar49.sbcset;\n                                dest_nodes.nelem =\n                                     ((re_node_set *)&(aVar49.mbcset)->range_starts)->alloc;\n                                dest_nodes.elems = (aVar49.mbcset)->range_ends;\n                                prVar51 = (re_dfa_t *)\n                                          (*pcVar13)(&mctx,(undefined1 *)(aVar46.idx + -1),\n                                                     mctx.eflags);\n                                aVar49.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                                aVar45 = (anon_union_4_5_a39f51ca_for_opr)prVar3;\n                                prVar35 = re_acquire_state_context\n                                                    (&err_1,prVar3,(re_node_set *)aVar49.mbcset,\n                                                     (uint)prVar51);\n                                ((re_string_t *)&((re_charset_t *)last_start)->mbchars)->raw_mbs =\n                                     (uchar *)prVar35;\n                              }\n                              else {\n                                aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                                         ((anon_union_4_5_a39f51ca_for_opr *)\n                                         (*(bitset_word_t *)last_start + 0x28))->mbcset;\n                                err_1 = re_node_set_init_union\n                                                  (&dest_nodes,(re_node_set *)aVar45.mbcset,\n                                                   (re_node_set *)aVar49.mbcset);\n                                rVar21 = err_1;\n                                if (err_1 != _REG_NOERROR) goto LAB_00055e44;\n                                prVar51 = (re_dfa_t *)\n                                          (*pcVar13)(&mctx,(undefined1 *)(aVar46.idx + -1),\n                                                     mctx.eflags);\n                                pprVar14 = mctx.state_log + aVar46.idx;\n                                aVar49.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                                aVar45 = (anon_union_4_5_a39f51ca_for_opr)prVar3;\n                                prVar35 = re_acquire_state_context\n                                                    (&err_1,prVar3,(re_node_set *)aVar49.mbcset,\n                                                     (uint)prVar51);\n                                *pprVar14 = prVar35;\n                                (*(code *)PTR_free_00079c24)(dest_nodes.elems);\n                              }\n                              unaff_s4 = (re_dfa_t *)(mctx.state_log + aVar46.idx);\n                              if ((unaff_s4->nodes == (re_token_t *)0x0) &&\n                                 (rVar21 = err_1, err_1 != _REG_NOERROR)) goto LAB_00055e44;\n                            }\n                          }\nLAB_000550a4:\n                          stop = (int)&((re_string_t *)&((re_charset_t *)stop)->mbchars)->raw_mbs +\n                                 1;\n                        } while (stop < (int)(unaff_s7.mbcset)->range_ends);\n                      }\n                      err = _REG_NOERROR;\n                    }\n                    uVar8 = (uint)mctx.input.mbs[mctx.input.cur_idx];\n                    mctx.input.cur_idx = mctx.input.cur_idx + 1;\n                    do {\n                      if (*(re_dfastate_t **)(unaff_s7.idx + 0x2c) != (re_dfastate_t *)0x0) {\n                        aVar49 = (anon_union_4_5_a39f51ca_for_opr)\n                                 ((anon_union_4_5_a39f51ca_for_opr *)\n                                 (&(*(re_dfastate_t **)(unaff_s7.idx + 0x2c))->hash + uVar8))->\n                                 mbcset;\nLAB_000553a0:\n                        aVar15 = aVar49;\n                        if (mctx.state_log != (re_dfastate_t **)0x0) goto LAB_000553ac;\n                        goto LAB_000553cc;\n                      }\n                      paVar18 = *(anon_union_4_5_a39f51ca_for_opr **)(unaff_s7.idx + 0x30);\n                      if (paVar18 != (anon_union_4_5_a39f51ca_for_opr *)0x0) {\n                        aVar45.sbcset = (re_bitset_ptr_t)(mctx.input.cur_idx + -1);\n                        uVar60 = re_string_context_at(&mctx.input,aVar45.idx,mctx.eflags);\n                        if ((uVar60 & 1) == 0) {\n                          aVar49 = (anon_union_4_5_a39f51ca_for_opr)paVar18[uVar8].mbcset;\n                        }\n                        else {\n                          paVar18 = paVar18 + uVar8 + 0x100;\n                          aVar49 = (anon_union_4_5_a39f51ca_for_opr)paVar18->mbcset;\n                        }\n                        goto LAB_000553a0;\n                      }\n                      aVar45 = unaff_s7;\n                      aVar49 = (anon_union_4_5_a39f51ca_for_opr)mctx.eflags;\n                      iVar61 = (*pcVar10)(mctx.dfa);\n                    } while (iVar61 != 0);\n                    err = _REG_ESPACE;\n                    rVar21 = err;\nLAB_00055e44:\n                    err = rVar21;\n                    aVar46.sbcset = (re_bitset_ptr_t)0x0;\n                    if (mctx.state_log == (re_dfastate_t **)0x0) {\n                      aVar15.sbcset = aVar46.sbcset;\n                      if (err != _REG_NOERROR) goto LAB_00055914;\n                      break;\n                    }\n                    aVar49.sbcset = (re_bitset_ptr_t)0x0;\nLAB_000553ac:\n                    aVar45.sbcset = (re_bitset_ptr_t)&mctx;\n                    aVar15.sbcset =\n                         &merge_state_with_log\n                                    (&err,(re_match_context_t *)aVar45.mbcset,aVar49.sbcset)->hash;\nLAB_000553cc:\n                    aVar46 = aVar15;\n                    if ((re_dfa_t *)aVar15.sbcset == (re_dfa_t *)0x0) {\n                      if (err != _REG_NOERROR) goto LAB_00055914;\n                      if ((mctx.state_log == (re_dfastate_t **)0x0) ||\n                         ((prVar52 != (re_dfa_t *)0x0 &&\n                          (paVar54 == (anon_union_4_5_a39f51ca_for_opr *)0x0)))) break;\n                      stop = (Idx)&mctx;\n                      last_start = (Idx)&err;\n                      paVar18 = (anon_union_4_5_a39f51ca_for_opr *)(PTR_DAT_000799a4 + 0x3684);\n                      do {\n                        pprVar14 = mctx.state_log + mctx.input.cur_idx;\n                        IVar17 = mctx.input.cur_idx;\n                        do {\n                          IVar17 = IVar17 + 1;\n                          aVar45.idx = mctx.state_log_top;\n                          aVar46 = aVar15;\n                          if (mctx.state_log_top < IVar17) goto LAB_00055da8;\n                          mctx.input.cur_idx = mctx.input.cur_idx + 1;\n                          pprVar14 = pprVar14 + 1;\n                        } while (*pprVar14 == (re_dfastate_t *)0x0);\n                        aVar49.sbcset = (re_bitset_ptr_t)0x0;\n                        aVar45.sbcset = (re_bitset_ptr_t)stop;\n                        aVar46.sbcset = (re_bitset_ptr_t)(*(code *)paVar18)(last_start);\n                        if (err != _REG_NOERROR) {\n                          if ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0) goto LAB_00055da8;\n                          break;\n                        }\n                        aVar45.idx = mctx.state_log_top;\n                      } while ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0);\n                    }\n                    aVar16.ctx_type = unaff_s7.ctx_type ^ aVar46.ctx_type;\n                    aVar56 = unaff_s7;\n                    aVar15 = local_138;\n                    if ((bVar36) &&\n                       (aVar56.ctx_type = aVar16.ctx_type, aVar15.sbcset = unaff_s5.sbcset,\n                       (re_dfa_t *)aVar16.sbcset != (re_dfa_t *)0x0)) {\n                      bVar36 = false;\n                      aVar15 = local_138;\n                    }\n                    local_138 = aVar15;\n                    unaff_s7 = aVar46;\n                    if (((*(byte *)(aVar46.idx + 0x34) & 8) != 0) &&\n                       (((*(byte *)(aVar46.idx + 0x34) & 1) == 0 ||\n                        (aVar45 = aVar46, aVar49.idx = mctx.input.cur_idx,\n                        IVar17 = check_halt_state_context(&mctx,aVar46.idx,mctx.input.cur_idx),\n                        IVar17 != 0)))) {\n                      unaff_s7 = aVar56;\n                      local_c4.idx = mctx.input.cur_idx;\n                      if (paVar54 == (anon_union_4_5_a39f51ca_for_opr *)0x0) goto LAB_00055dbc;\n                      prVar52 = (re_dfa_t *)0x1;\n                      local_144 = (int *)0x0;\n                      unaff_s7 = aVar46;\n                    }\n                  }\nLAB_00055da8:\n                  if (local_144 != (int *)0x0) {\n                    *local_144 = *local_144 + (int)local_138.sbcset;\n                  }\n                }\n                else {\n                  aVar46.sbcset = (re_bitset_ptr_t)&(unaff_s7.mbcset)->range_starts;\n                  aVar49.sbcset = (re_bitset_ptr_t)0x0;\n                  aVar45 = aVar46;\n                  err = check_subexp_matching_top(&mctx,(re_node_set *)aVar46.mbcset,0);\n                  local_c4.idx = err;\n                  if ((re_dfa_t *)err == (re_dfa_t *)0x0) {\n                    if ((*(byte *)(unaff_s7.idx + 0x34) & 2) == 0) {\n                      aVar45 = aVar46;\n                      bVar36 = false;\n                    }\n                    else {\n                      aVar45 = aVar46;\n                      err = transit_state_bkref(&mctx,(re_node_set *)aVar46.mbcset);\n                      local_c4.idx = err;\n                      if ((re_dfa_t *)err != (re_dfa_t *)0x0) goto LAB_00055dbc;\n                      bVar36 = false;\n                    }\n                    goto LAB_00054d50;\n                  }\n                }\nLAB_00055dbc:\n                if ((re_dfa_t *)local_c4.sbcset == (re_dfa_t *)0xffffffff) {\nLAB_00055b04:\n                  match_ctx_clean(&mctx);\nLAB_00055b1c:\n                  match_first = aVar39.idx + match_first;\n                  if (aVar40.idx <= match_first) goto code_r0x00055b38;\n                  local_150.idx = 1;\n                  goto LAB_000557e4;\n                }\n                if ((re_dfa_t *)local_c4.sbcset == (re_dfa_t *)&SUB_fffffffe) {\n                  local_150.idx = 0xc;\n                  goto LAB_000557e4;\n                }\n                mctx.match_last = local_c4.idx;\n                if ((preg->field_0x1c & 8) == 0) {\n                  if (aVar4.sbcset < (re_dfa_t *)0x2) {\n                    if (prVar59->nbackref == 0) goto LAB_00055c08;\n                    aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                             ((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + local_c4.idx))->\n                             mbcset;\n                    aVar49 = local_c4;\n                    mctx.last_node =\n                         check_halt_state_context(&mctx,(re_dfastate_t *)aVar45.mbcset,local_c4.idx)\n                    ;\n                  }\n                  else {\n                    aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                             ((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + local_c4.idx))->\n                             mbcset;\n                    aVar49 = local_c4;\n                    mctx.last_node =\n                         check_halt_state_context(&mctx,(re_dfastate_t *)aVar45.mbcset,local_c4.idx)\n                    ;\n                  }\n                  if (aVar4.sbcset < (re_dfa_t *)0x2) {\nLAB_00055c6c:\n                    prVar52 = prVar51;\n                    unaff_s4 = mctx.dfa;\n                    if (prVar59->nbackref == 0) goto LAB_00055548;\n                  }\n                  else {\n                    cVar37 = prVar59->field_0x58;\nLAB_00055c20:\n                    prVar52 = prVar51;\n                    if (-1 < cVar37) goto LAB_00055c6c;\n                  }\n                  paVar18 = (anon_union_4_5_a39f51ca_for_opr *)mctx.last_node;\n                  prVar3 = mctx.dfa;\n                  unaff_s4 = prVar3;\n                  if ((uint)local_c4 < (re_dfa_t *)0x3fffffff) {\n                    aVar46.idx = (int)((int)&((re_string_t *)&(local_c4.mbcset)->mbchars)->raw_mbs +\n                                      1) * 4;\n                    unaff_s5.sbcset = (re_bitset_ptr_t)(*(code *)PTR_malloc_00079b54)(aVar46.sbcset)\n                    ;\n                    if ((re_dfa_t *)unaff_s5.sbcset == (re_dfa_t *)0x0) {\nLAB_00055b9c:\n                      (*(code *)PTR_free_00079c24)(unaff_s5.sbcset);\n                      local_150.idx = 0xc;\n                      prVar51 = prVar52;\n                    }\n                    else {\n                      aVar45.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                      if (prVar3->nbackref == 0) {\n                        dest_nodes.nelem = 0;\n                        dest_nodes.elems = &paVar18->idx;\n                        dest_nodes.alloc = (Idx)unaff_s5.sbcset;\n                        last_start = sift_states_backward(&mctx,(re_sift_context_t *)aVar45.mbcset);\n                        (*(code *)PTR_free_00079c24)(0);\n                        if ((re_dfa_t *)last_start == (re_dfa_t *)0x0) {\n                          aVar46.mbcset = (re_charset_t *)*unaff_s5.sbcset;\n                          if ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0) {\nLAB_00055b70:\n                            (*(code *)PTR_free_00079c24)(unaff_s5.sbcset);\n                            (*(code *)PTR_free_00079c24)(aVar46.sbcset);\n                            prVar51 = prVar52;\n                            goto LAB_00055b04;\n                          }\nLAB_00055528:\n                          (*(code *)PTR_free_00079c24)(mctx.state_log);\n                          prVar51 = prVar52;\n                          unaff_s4 = prVar3;\n                          mctx.match_last = local_c4.idx;\n                          mctx.last_node = (Idx)paVar18;\n                          mctx.state_log = (re_dfastate_t **)unaff_s5.sbcset;\n                          goto LAB_00055548;\n                        }\nLAB_00055acc:\n                        aVar46.sbcset = (re_bitset_ptr_t)0x0;\n                        prVar51 = prVar52;\n                        unaff_s4 = prVar3;\n                      }\n                      else {\n                        aVar46.sbcset =\n                             (re_bitset_ptr_t)(*(code *)PTR_malloc_00079b54)(aVar46.sbcset);\n                        if ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0) goto LAB_00055b9c;\n                        unaff_s7.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                        pcVar9 = (code *)(PTR_DAT_000799a4 + 0x421c);\n                        pcVar10 = (code *)(PTR_DAT_000799a4 + -0x6bc0);\n                        prVar51 = prVar52;\n                        while( true ) {\n                          prVar52 = (re_dfa_t *)(local_c4.idx + 1);\n                          stop = (int)prVar52 * 4;\n                          aVar49.idx = stop;\n                          (*(code *)PTR_memset_00079b00)(aVar46.sbcset,0);\n                          aVar45.sbcset = unaff_s7.sbcset;\n                          dest_nodes.alloc = (Idx)unaff_s5.sbcset;\n                          dest_nodes.nelem = (Idx)aVar46.sbcset;\n                          dest_nodes.elems = (Idx *)paVar18;\n                          last_start = (*pcVar9)(&mctx);\n                          (*(code *)PTR_free_00079c24)(0);\n                          unaff_s4 = prVar52;\n                          if ((re_dfa_t *)last_start != (re_dfa_t *)0x0) break;\n                          if ((*unaff_s5.sbcset != 0) || (stop = stop + -4, *aVar46.sbcset != 0)) {\n                            aVar45.sbcset = unaff_s5.sbcset;\n                            aVar49.sbcset = aVar46.sbcset;\n                            last_start = merge_state_array(prVar3,(re_dfastate_t **)unaff_s5.sbcset,\n                                                           (re_dfastate_t **)aVar46.sbcset,\n                                                           (Idx)prVar52);\n                            (*(code *)PTR_free_00079c24)(aVar46.sbcset);\n                            if ((re_dfa_t *)last_start != (re_dfa_t *)0x0) goto LAB_00055acc;\n                            goto LAB_00055528;\n                          }\n                          stop = (Idx)(mctx.state_log + (int)&prVar52[-1].lock.__align + 0x17);\n                          do {\n                            while( true ) {\n                              local_c4.sbcset = (re_bitset_ptr_t)(local_c4.idx + -1);\n                              if (local_c4.idx < 0) goto LAB_00055b70;\n                              aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                                       ((anon_union_4_5_a39f51ca_for_opr *)(stop + -4))->idx;\n                              if ((re_dfa_t *)aVar45.sbcset != (re_dfa_t *)0x0) break;\n                              stop = stop + -4;\n                            }\n                            stop = stop + -4;\n                          } while ((*(byte *)(aVar45.idx + 0x34) & 8) == 0);\n                          paVar18 = (anon_union_4_5_a39f51ca_for_opr *)\n                                    (*pcVar10)(&mctx,aVar45.sbcset,local_c4.sbcset);\n                          prVar51 = prVar52;\n                        }\n                      }\n                      (*(code *)PTR_free_00079c24)(unaff_s5.sbcset);\n                      (*(code *)PTR_free_00079c24)(aVar46.sbcset);\n                      local_150.idx = last_start;\n                      if ((re_dfa_t *)last_start == (re_dfa_t *)0x1) goto LAB_00055b04;\n                    }\n                  }\n                  else {\n                    local_150.idx = 0xc;\n                    prVar51 = prVar52;\n                  }\n                  goto LAB_000557e4;\n                }\n                if (prVar59->nbackref != 0) {\n                  aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                           ((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + local_c4.idx))->\n                           mbcset;\n                  aVar49 = local_c4;\n                  mctx.last_node =\n                       check_halt_state_context(&mctx,(re_dfastate_t *)aVar45.mbcset,local_c4.idx);\n                  goto LAB_00055c6c;\n                }\nLAB_00055c08:\n                if (((preg->field_0x1c & 8) == 0) && ((re_dfa_t *)0x1 < aVar4.sbcset)) {\n                  cVar37 = prVar59->field_0x58;\n                  goto LAB_00055c20;\n                }\nLAB_00055548:\n                if ((re_dfa_t *)aVar4.sbcset == (re_dfa_t *)0x0) goto LAB_000557e4;\n                if (aVar4.sbcset < (re_dfa_t *)0x2) {\n                  pmatch->rm_so = 0;\n                  pmatch->rm_eo = mctx.match_last;\n                  goto LAB_000555ac;\n                }\n                prVar19 = pmatch + 1;\n                do {\n                  prVar19->rm_eo = -1;\n                  prVar19->rm_so = -1;\n                  prVar19 = prVar19 + 1;\n                } while (prVar19 != pmatch + aVar4.idx);\n                pmatch->rm_so = 0;\n                pmatch->rm_eo = mctx.match_last;\n                if ((preg->field_0x1c & 8) != 0) {\nLAB_000555ac:\n                  prVar19 = pmatch;\n                  do {\n                    aVar45.sbcset = (re_bitset_ptr_t)prVar19->rm_so;\n                    if ((re_dfa_t *)aVar45.sbcset != (re_dfa_t *)0xffffffff) {\n                      if (mctx.input.offsets_needed != '\0') {\n                        rVar47 = mctx.input.valid_raw_len;\n                        if (aVar45.sbcset != (re_bitset_ptr_t)mctx.input.valid_len) {\n                          rVar47 = mctx.input.offsets[aVar45.idx];\n                        }\n                        prVar19->rm_so = rVar47;\n                        rVar47 = mctx.input.valid_raw_len;\n                        if (mctx.input.valid_len != prVar19->rm_eo) {\n                          rVar47 = mctx.input.offsets[prVar19->rm_eo];\n                        }\n                        prVar19->rm_eo = rVar47;\n                      }\n                      prVar19->rm_so = prVar19->rm_so + match_first;\n                      aVar45.sbcset = (re_bitset_ptr_t)(prVar19->rm_eo + match_first);\n                      prVar19->rm_eo = (regoff_t)aVar45;\n                    }\n                    prVar19 = prVar19 + 1;\n                  } while (prVar19 != pmatch + aVar4.idx);\n                  if (0 < local_118) {\n                    prVar19 = pmatch + aVar4.idx;\n                    do {\n                      prVar19->rm_so = -1;\n                      prVar19->rm_eo = -1;\n                      prVar19 = prVar19 + 1;\n                    } while (prVar19 != pmatch + nmatch);\n                  }\n                  aVar49.idx = match_first;\n                  prVar51 = (re_dfa_t *)pmatch;\n                  local_150.sbcset = aVar7.sbcset;\n                  if (prVar59->subexp_map != (Idx *)0x0) {\n                    aVar49.sbcset = (re_bitset_ptr_t)(aVar4.idx + -1);\n                    prVar52 = (re_dfa_t *)0x0;\n                    prVar19 = pmatch;\n                    while( true ) {\n                      aVar45.idx = (int)prVar52 * 4;\n                      if ((re_dfa_t *)aVar49.sbcset == prVar52) break;\n                      if ((re_dfa_t *)prVar59->subexp_map[(int)prVar52] != prVar52) {\n                        prVar19[1].rm_so =\n                             pmatch[(int)((int)&((re_string_t *)\n                                                &((re_dfa_t *)prVar59->subexp_map[(int)prVar52])->\n                                                 nodes)->raw_mbs + 1)].rm_so;\n                        prVar19[1].rm_eo = pmatch[prVar59->subexp_map[(int)prVar52] + 1].rm_eo;\n                      }\n                      prVar52 = (re_dfa_t *)((int)&((re_string_t *)&prVar52->nodes)->raw_mbs + 1);\n                      prVar19 = prVar19 + 1;\n                    }\n                  }\n                  goto LAB_000557e4;\n                }\n                if ((char)prVar59->field_0x58 < '\0') {\n                  bVar36 = 0 < prVar59->nbackref;\n                }\n                else {\n                  bVar36 = false;\n                }\n                aVar45.sbcset = (re_bitset_ptr_t)&mctx;\n                aVar49.sbcset = aVar4.sbcset;\n                prVar51 = (re_dfa_t *)pmatch;\n                local_150.idx =\n                     set_regs(preg,(re_match_context_t *)aVar45.mbcset,aVar4.ctx_type,pmatch,bVar36)\n                ;\n                if ((re_dfa_t *)local_150.sbcset == (re_dfa_t *)0x0) goto LAB_000555ac;\n              }\n            }\n          }\n          else if ((uint)mctx.input.bufs_len < 0x3fffffff) {\n            mctx.state_log =\n                 (re_dfastate_t **)(*(code *)PTR_malloc_00079b54)((mctx.input.bufs_len + 1) * 4);\n            if (mctx.state_log != (re_dfastate_t **)0x0) goto LAB_00055a40;\n            local_150.idx = 0xc;\n            stop = aVar56.idx;\n          }\n          else {\n            local_150.idx = 0xc;\n            stop = aVar56.idx;\n          }\n        }\n        else {\n          unaff_s5.idx = iVar55 * 8;\n          if (aVar56.sbcset < (re_dfa_t *)0xccccccd) {\n            unaff_s4 = (re_dfa_t *)(*(code *)PTR_malloc_00079b54)(iVar55 * 0x28);\n            mctx.bkref_ents = (re_backref_cache_entry *)unaff_s4;\n            mctx.sub_tops = (re_sub_match_top_t **)(*(code *)PTR_malloc_00079b54)(unaff_s5.sbcset);\n            if ((unaff_s4 != (re_dfa_t *)0x0) && (mctx.sub_tops != (re_sub_match_top_t **)0x0))\n            goto LAB_000559f0;\n          }\n          local_150.idx = 0xc;\n          stop = aVar56.idx;\n        }\nLAB_000557e4:\n        (*(code *)PTR_free_00079c24)(mctx.state_log);\n        preg = (regex_t *)aVar49;\n        if (prVar59->nbackref != 0) {\n          match_ctx_clean(&mctx);\n          (*(code *)PTR_free_00079c24)(mctx.sub_tops);\n          (*(code *)PTR_free_00079c24)(mctx.bkref_ents);\n          preg = (regex_t *)aVar49;\n        }\n        re_string_destruct(&mctx.input);\n        aStack_1a0 = aVar46;\n        paStack_19c = paVar18;\n      }\n    }\n  }" else (compound_statement "{\n    aVar45 = (anon_union_4_5_a39f51ca_for_opr)prVar59->init_state_begbuf;\n    if ((re_dfa_t *)aVar45.sbcset == (re_dfa_t *)0x0) {\n      local_150.idx = 1;\n    }\n    else {\n      aVar4.idx = last_start;\n      if (((((prVar59->init_state->nodes).nelem == 0) &&\n           ((prVar59->init_state_word->nodes).nelem == 0)) &&\n          (((prVar59->init_state_nl->nodes).nelem == 0 || ((preg->field_0x1c & 1) == 0)))) &&\n         ((aVar4.idx = start, start != 0 &&\n          (start = last_start, aVar4.idx = last_start, last_start != 0)))) {\n        local_150.idx = 1;\n        aStack_1a0.idx = last_start;\n      }\n      else {\n        last_start = aVar4.idx;\n        aVar4.sbcset = (re_bitset_ptr_t)(nmatch - local_118);\n        if ((re_dfa_t *)aVar4.sbcset == (re_dfa_t *)0x0) {\n          paVar54 = (anon_union_4_5_a39f51ca_for_opr *)(uint)(prVar59->nbackref != 0);\n        }\n        else {\n          paVar54 = (anon_union_4_5_a39f51ca_for_opr *)0x1;\n        }\n        puVar50 = preg->translate;\n        mctx.input.icase = (uchar)((preg->syntax << 9) >> 0x1f);\n        mctx.input.mb_cur_max = prVar59->mb_cur_max;\n        aVar46.sbcset = (re_bitset_ptr_t)(prVar59->nodes_len + 1);\n        if (aVar46.idx < mctx.input.mb_cur_max) {\n          aVar46 = (anon_union_4_5_a39f51ca_for_opr)mctx.input.mb_cur_max;\n        }\n        aVar49.idx._0_3_ = 0;\n        aVar49.idx._3_1_ = ((re_bitset_ptr_t)(length + 1)).idx < aVar46.idx;\n        prVar51 = (re_dfa_t *)0x1;\n        mctx.input.mbs_allocated = mctx.input.icase;\n        if (puVar50 != (uchar *)0x0) {\n          mctx.input.mbs_allocated = 1;\n        }\n        mctx.input.is_utf8 = (uchar)((uint)(*(int *)&prVar59->field_0x58 << 2) >> 0x1f);\n        mctx.input.map_notascii = (uchar)((uint)(*(int *)&prVar59->field_0x58 << 3) >> 0x1f);\n        aVar45.sbcset = ((re_bitset_ptr_t)(length + 1)).sbcset;\n        if ((re_dfa_t *)aVar49.sbcset == (re_dfa_t *)0x0) {\n          aVar45 = aVar46;\n        }\n        mctx.input.raw_mbs = (uchar *)string;\n        mctx.input.raw_len = length;\n        mctx.input.len = length;\n        mctx.input.raw_stop = length;\n        mctx.input.stop = length;\n        mctx.input.trans = puVar50;\n        local_150.idx = re_string_realloc_buffers(&mctx.input,aVar45.idx);\n        aVar46.idx = start;\n        paVar18 = paVar54;\n        stop = stop;\n        if ((re_dfa_t *)local_150.sbcset != (re_dfa_t *)0x0) goto LAB_000557e4;\n        mctx.input.word_char = prVar59->word_char;\n        mctx.input.word_ops_used = (uchar)((uint)(*(int *)&prVar59->field_0x58 << 4) >> 0x1f);\n        paVar2 = (anon_union_4_5_a39f51ca_for_opr *)0x0;\n        mctx.input.valid_len = (Idx)paVar2;\n        if ((mctx.input.mbs_allocated == '\0') &&\n           (mctx.input.mbs = (uchar *)string, prVar59->mb_cur_max < 2)) {\n          mctx.input.valid_len = length;\n        }\n        mctx.input.stop = stop;\n        mctx.input.raw_stop = stop;\n        mctx.input.newline_anchor = (uchar)((uint)(*(int *)&preg->field_0x1c << 7) >> 0x1f);\n        iVar55 = prVar59->nbackref;\n        aVar56.idx = iVar55 * 2;\n        mctx.eflags = eflags;\n        mctx.match_last = -1;\n        mctx.input.valid_raw_len = mctx.input.valid_len;\n        if ((int)aVar56 < 1) {\nLAB_000559f0:\n          mctx.max_mb_elem_len = 1;\n          mctx.abkref_ents = aVar56.idx;\n          mctx.asub_tops = aVar56.idx;\n          if ((aVar4.sbcset < (re_dfa_t *)0x2) && ((prVar59->field_0x58 & 0x40) == 0)) {\n            mctx.state_log = (re_dfastate_t **)0x0;\nLAB_00055a40:\n            mctx.input.tip_context = 6;\n            if ((eflags & 1U) != 0) {\n              mctx.input.tip_context = 4;\n            }\n            aVar39.idx = 1;\n            aVar40.idx = start;\n            if (last_start < start) {\n              aVar39.idx = -1;\n              aVar40.idx = last_start;\n            }\n            aVar41.idx = last_start;\n            if (last_start <= start) {\n              aVar41.idx = start;\n            }\n            iVar55 = prVar59->mb_cur_max;\n            rVar20 = 8;\n            if ((re_dfa_t *)local_148.sbcset != (re_dfa_t *)0x0) {\n              if (iVar55 == 1) {\n                paVar43 = (anon_union_4_5_a39f51ca_for_opr *)0x4;\n              }\n              else {\n                paVar43 = paVar2;\n                if ((-1 < (int)(preg->syntax << 9)) && (puVar50 == (uchar *)0x0)) {\n                  paVar43 = (anon_union_4_5_a39f51ca_for_opr *)0x4;\n                }\n              }\n              aVar45.sbcset = (re_bitset_ptr_t)0x0;\n              if (start <= last_start) {\n                aVar45.idx = 2;\n              }\n              rVar20 = (uint)(puVar50 != (uchar *)0x0) | (uint)paVar43 | aVar45.ctx_type;\n            }\n            match_first = start;\n            if (start < aVar40.idx) {\n              local_150.idx = 1;\n              stop = aVar56.idx;\n            }\n            else {\n              aVar46.idx._0_3_ = 0;\n              aVar46.idx._3_1_ = last_start < start;\n              if (aVar41.idx < start) {\n                local_150.idx = 1;\n                stop = aVar56.idx;\n              }\n              else {\n                piVar38 = &match_first;\n                if ((re_dfa_t *)aVar46.sbcset != (re_dfa_t *)0x0) {\n                  piVar38 = (int *)0x0;\n                }\n                pcVar5 = (code *)(PTR_DAT_000799a4 + -0x2b7c);\n                piVar6 = (int *)(PTR_s_nt0_000795b8 + (rVar20 - 4) * 4 + 0x6e38);\nLAB_00055b44:\n                if (rVar20 - 4 < 5) {\n                    /* WARNING: Could not emulate address calculation at 0x00054920 */\n                    /* WARNING: Treating indirect jump as call */\n                  rVar21 = (*(code *)(&_gp + *piVar6))();\n                  return rVar21;\n                }\n                last_start = (Idx)&mctx;\n                prVar52 = prVar51;\n                while( true ) {\n                  aVar46.idx = match_first;\n                  uVar8 = match_first - mctx.input.raw_mbs_idx;\n                  aVar49 = (anon_union_4_5_a39f51ca_for_opr)eflags;\n                  paVar18 = paVar2;\n                  stop = local_148.idx;\n                  unaff_s4 = (re_dfa_t *)length;\n                  unaff_s5 = aVar39;\n                  unaff_s7 = aVar41;\n                  if ((uint)mctx.input.valid_raw_len <= uVar8) {\n                    aVar45.idx = match_first;\n                    local_150.sbcset = (re_bitset_ptr_t)(*pcVar5)(last_start);\n                    prVar51 = prVar52;\n                    if ((re_dfa_t *)local_150.sbcset != (re_dfa_t *)0x0) goto LAB_000557e4;\n                    uVar8 = (int)aVar46.sbcset - mctx.input.raw_mbs_idx;\n                  }\n                  if (aVar46.idx < length) {\n                    uVar8 = (uint)mctx.input.mbs[uVar8];\n                  }\n                  else {\n                    uVar8 = 0;\n                  }\n                  aVar56.sbcset = aVar46.sbcset + aVar39.sbcset;\n                  aVar46.sbcset = aVar56.sbcset;\n                  if (*(char *)((int)local_148.sbcset + uVar8) != '\0') break;\n                  prVar51 = prVar52;\n                  match_first = aVar56.idx;\n                  if (aVar56.idx < aVar40.idx) {\n                    local_150.idx = 1;\n                    goto LAB_000557e4;\n                  }\n                  aVar46.idx._0_3_ = 0;\n                  aVar46.idx._3_1_ = aVar41.idx < aVar56.idx;\n                  if ((re_dfa_t *)aVar46.sbcset != (re_dfa_t *)0x0) {\n                    local_150.idx = 1;\n                    goto LAB_000557e4;\n                  }\n                }\n                while( true ) {\n                  aVar45.idx = match_first;\n                  aVar49 = (anon_union_4_5_a39f51ca_for_opr)eflags;\n                  aVar7.sbcset = (re_bitset_ptr_t)(*pcVar5)(&mctx);\n                  aVar15 = (anon_union_4_5_a39f51ca_for_opr)mctx.dfa;\n                  aVar56.idx = mctx.input.cur_idx;\n                  prVar51 = prVar52;\n                  local_150.sbcset = aVar7.sbcset;\n                  if ((re_dfa_t *)aVar7.sbcset != (re_dfa_t *)0x0) goto LAB_000557e4;\n                  if (((iVar55 != 1) && (mctx.input.valid_len != 0)) &&\n                     (*mctx.input.wcs == 0xffffffff)) goto LAB_00055b1c;\n                  mctx.max_mb_elem_len = 0;\n                  mctx.nbkref_ents = 0;\n                  mctx.state_log_top = 0;\n                  local_138.idx = mctx.input.cur_idx;\n                  err = _REG_NOERROR;\n                  unaff_s7 = (anon_union_4_5_a39f51ca_for_opr)(mctx.dfa)->init_state;\n                  aVar49 = (anon_union_4_5_a39f51ca_for_opr)mctx.eflags;\n                  aVar46 = aVar15;\n                  if ((*(byte *)(unaff_s7.idx + 0x34) & 1) == 0) break;\n                  aVar45.sbcset = (re_bitset_ptr_t)(mctx.input.cur_idx + -1);\n                  prVar51 = (re_dfa_t *)re_string_context_at(&mctx.input,aVar45.idx,mctx.eflags);\n                  if (((uint)prVar51 & 1) == 0) {\n                    if (prVar51 == (re_dfa_t *)0x0) break;\n                    if (((uint)prVar51 & 6) == 6) {\n                      unaff_s7 = (anon_union_4_5_a39f51ca_for_opr)\n                                 ((re_dfa_t *)aVar15.idx)->init_state_begbuf;\n                      goto LAB_00054d1c;\n                    }\n                    if (((uint)prVar51 & 2) != 0) {\n                      unaff_s7 = (anon_union_4_5_a39f51ca_for_opr)\n                                 ((re_dfa_t *)aVar15.idx)->init_state_nl;\n                      goto LAB_00054d1c;\n                    }\n                    prVar52 = prVar51;\n                    if (((uint)prVar51 & 4) == 0) break;\n                    aVar49 = (anon_union_4_5_a39f51ca_for_opr)\n                             ((anon_union_4_5_a39f51ca_for_opr *)(unaff_s7.idx + 0x28))->mbcset;\n                    aVar45 = aVar15;\n                    unaff_s7.sbcset =\n                         &re_acquire_state_context\n                                    (&err,aVar15.sbcset,(re_node_set *)aVar49.mbcset,(uint)prVar51)\n                          ->hash;\n                    prVar52 = prVar51;\n                    if ((re_dfa_t *)unaff_s7.sbcset != (re_dfa_t *)0x0) break;\n                    if (err == _REG_ESPACE) goto LAB_00055914;\n                  }\n                  else {\n                    unaff_s7 = (anon_union_4_5_a39f51ca_for_opr)\n                               ((re_dfa_t *)aVar15.idx)->init_state_word;\nLAB_00054d1c:\n                    prVar52 = (re_dfa_t *)PTR_s_nt0_000795b8;\n                    if ((re_dfa_t *)unaff_s7.sbcset != (re_dfa_t *)0x0) break;\n                  }\n                  prVar52 = (re_dfa_t *)(PTR_s_nt0_000795b8 + 0x6eb0);\n                  aVar45.sbcset = (re_bitset_ptr_t)(PTR_s_nt0_000795b8 + 0x712c);\n                  match_first = (*(code *)PTR___assert_fail_000799f8)\n                                          (PTR_s_nt0_000795b8 + 0x71a0,aVar45.sbcset,0x435);\n                  if ((re_bitset_ptr_t)match_first == aVar41.sbcset) {\n                    if (match_first < length) {\n                      uVar8 = (uint)(byte)string[match_first];\n                    }\n                    else {\n                      uVar8 = 0;\n                    }\n                    if (puVar50 != (uchar *)0x0) {\n                      uVar8 = (uint)puVar50[uVar8];\n                    }\n                    if (*(char *)((int)local_148.sbcset + uVar8) == '\0') {\n                      local_150.idx = 1;\n                      aVar49 = (anon_union_4_5_a39f51ca_for_opr)eflags;\n                      prVar51 = prVar52;\n                      goto LAB_000557e4;\n                    }\n                  }\n                }\n                prVar51 = prVar52;\n                bVar36 = piVar38 != (int *)0x0;\n                if ((mctx.state_log == (re_dfastate_t **)0x0) ||\n                   (((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + aVar56.idx))->mbcset =\n                         (re_charset_t *)unaff_s7, ((re_dfa_t *)aVar15.idx)->nbackref == 0)) {\nLAB_00054d50:\n                  if ((int)*(bin_tree_t **)(unaff_s7.idx + 0x34) << 4 < 0) {\n                    if (((*(byte *)(unaff_s7.idx + 0x34) & 1) == 0) ||\n                       (aVar45 = unaff_s7, aVar49 = aVar56,\n                       IVar17 = check_halt_state_context(&mctx,unaff_s7.idx,aVar56.idx), IVar17 != 0\n                       )) {\n                      local_c4 = aVar56;\n                      if (paVar54 == (anon_union_4_5_a39f51ca_for_opr *)0x0) goto LAB_00055dbc;\n                      prVar52 = (re_dfa_t *)0x1;\n                    }\n                    else {\n                      aVar56.idx = -1;\n                      prVar52 = (re_dfa_t *)0x0;\n                    }\n                  }\n                  else {\n                    aVar56.idx = -1;\n                    prVar52 = (re_dfa_t *)0x0;\n                  }\n                  pcVar9 = (code *)(PTR_DAT_000799a4 + -0x7144);\n                  pcVar10 = (code *)(PTR_DAT_000799a4 + -0x1980);\n                  pcVar11 = (code *)(PTR_DAT_000799a4 + -0x2f9c);\n                  local_c4 = aVar56;\n                  local_144 = piVar38;\n                  while( true ) {\n                    uVar63 = CONCAT44(mctx.input.valid_len,mctx.input.len);\n                    unaff_s5.sbcset = (re_bitset_ptr_t)(mctx.input.cur_idx + 1);\n                    aVar45.idx = mctx.input.cur_idx;\n                    if (mctx.input.stop <= mctx.input.cur_idx) break;\n                    if ((mctx.input.bufs_len <= unaff_s5.idx) &&\n                       (mctx.input.bufs_len < mctx.input.len)) goto LAB_00054e94;\n                    if (mctx.input.valid_len <= unaff_s5.idx) {\n                      while ((int)((ulonglong)uVar63 >> 0x20) < (int)uVar63) {\nLAB_00054e94:\n                        aVar45.sbcset =\n                             (re_bitset_ptr_t)\n                             ((int)&((re_string_t *)&(aVar45.mbcset)->mbchars)->raw_mbs + 2);\n                        err = (*pcVar9)(&mctx);\n                        if (err == _REG_NOERROR) break;\n                        aVar15 = aVar46;\n                        if (err == _REG_ESPACE) goto LAB_00055914;\n                        prVar51 = (re_dfa_t *)(PTR_s_nt0_000795b8 + 0x6eb0);\n                        aVar49.idx = 0x46c;\n                        aVar45.sbcset = (re_bitset_ptr_t)(PTR_s_nt0_000795b8 + 0x712c);\n                        uVar63 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0);\n                        prVar52 = prVar59;\n                      }\n                    }\n                    prVar3 = mctx.dfa;\n                    if ((int)*(bin_tree_t **)(unaff_s7.idx + 0x34) << 5 < 0) {\n                      paVar18 = (anon_union_4_5_a39f51ca_for_opr *)prVar3;\n                      if (0 < (int)(unaff_s7.mbcset)->range_ends) {\n                        pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6fdc);\n                        pcVar13 = (code *)(PTR_DAT_000799a4 + -0x6ef0);\n                        stop = 0;\n                        do {\n                          last_start = ((anon_union_4_5_a39f51ca_for_opr *)\n                                       ((unaff_s7.mbcset)->char_classes + stop))->idx;\n                          prVar53 = prVar3->nodes;\n                          uVar8 = *(uint *)&prVar53[last_start].field_0x4;\n                          if ((uVar8 & 0x800) != 0) {\n                            if ((uVar8 & 0xffc000) != 0) {\n                              aVar45.idx = mctx.input.cur_idx;\n                              uVar60 = (*pcVar13)(&mctx,mctx.input.cur_idx,mctx.eflags);\n                              uVar8 = (uint)(*(int *)&prVar53[last_start].field_0x4 << 8) >> 0x16;\n                              if ((uVar8 & 4) == 0) {\n                                uVar26 = uVar60 & 1;\n                                if ((uVar8 & 8) != 0) goto joined_r0x00054f40;\n                              }\n                              else {\n                                uVar26 = uVar8 & 8;\n                                if ((uVar60 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                                if (uVar26 != 0) goto LAB_000550a4;\n                              }\n                              if ((((uVar8 & 0x20) != 0) && ((uVar60 & 2) == 0)) ||\n                                 (((uVar8 & 0x80) != 0 &&\n                                  (prVar51 = (re_dfa_t *)mctx.input.cur_idx, (uVar60 & 8) == 0))))\n                              goto LAB_000550a4;\n                            }\n                            aVar49.sbcset = (re_bitset_ptr_t)&mctx;\n                            aVar45.idx = last_start;\n                            prVar51 = (re_dfa_t *)mctx.input.cur_idx;\n                            iVar61 = (*pcVar11)(prVar3);\n                            if (iVar61 != 0) {\n                              aVar46.sbcset = (re_bitset_ptr_t)(iVar61 + mctx.input.cur_idx);\n                              if (iVar61 <= mctx.max_mb_elem_len) {\n                                iVar61 = mctx.max_mb_elem_len;\n                              }\n                              aVar45.sbcset = aVar46.sbcset;\n                              mctx.max_mb_elem_len = iVar61;\n                              err_1 = (*pcVar12)(&mctx);\n                              rVar21 = err_1;\n                              if (err_1 != _REG_NOERROR) goto LAB_00055e44;\n                              aVar49.sbcset =\n                                   (re_bitset_ptr_t)(prVar3->eclosures + prVar3->nexts[last_start]);\n                              unaff_s4 = (re_dfa_t *)(aVar46.idx * 4);\n                              last_start = (Idx)(mctx.state_log + aVar46.idx);\n                              if (*(bitset_word_t *)last_start == 0) {\n                                dest_nodes.alloc = *aVar49.sbcset;\n                                dest_nodes.nelem =\n                                     ((re_node_set *)&(aVar49.mbcset)->range_starts)->alloc;\n                                dest_nodes.elems = (aVar49.mbcset)->range_ends;\n                                prVar51 = (re_dfa_t *)\n                                          (*pcVar13)(&mctx,(undefined1 *)(aVar46.idx + -1),\n                                                     mctx.eflags);\n                                aVar49.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                                aVar45 = (anon_union_4_5_a39f51ca_for_opr)prVar3;\n                                prVar35 = re_acquire_state_context\n                                                    (&err_1,prVar3,(re_node_set *)aVar49.mbcset,\n                                                     (uint)prVar51);\n                                ((re_string_t *)&((re_charset_t *)last_start)->mbchars)->raw_mbs =\n                                     (uchar *)prVar35;\n                              }\n                              else {\n                                aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                                         ((anon_union_4_5_a39f51ca_for_opr *)\n                                         (*(bitset_word_t *)last_start + 0x28))->mbcset;\n                                err_1 = re_node_set_init_union\n                                                  (&dest_nodes,(re_node_set *)aVar45.mbcset,\n                                                   (re_node_set *)aVar49.mbcset);\n                                rVar21 = err_1;\n                                if (err_1 != _REG_NOERROR) goto LAB_00055e44;\n                                prVar51 = (re_dfa_t *)\n                                          (*pcVar13)(&mctx,(undefined1 *)(aVar46.idx + -1),\n                                                     mctx.eflags);\n                                pprVar14 = mctx.state_log + aVar46.idx;\n                                aVar49.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                                aVar45 = (anon_union_4_5_a39f51ca_for_opr)prVar3;\n                                prVar35 = re_acquire_state_context\n                                                    (&err_1,prVar3,(re_node_set *)aVar49.mbcset,\n                                                     (uint)prVar51);\n                                *pprVar14 = prVar35;\n                                (*(code *)PTR_free_00079c24)(dest_nodes.elems);\n                              }\n                              unaff_s4 = (re_dfa_t *)(mctx.state_log + aVar46.idx);\n                              if ((unaff_s4->nodes == (re_token_t *)0x0) &&\n                                 (rVar21 = err_1, err_1 != _REG_NOERROR)) goto LAB_00055e44;\n                            }\n                          }\nLAB_000550a4:\n                          stop = (int)&((re_string_t *)&((re_charset_t *)stop)->mbchars)->raw_mbs +\n                                 1;\n                        } while (stop < (int)(unaff_s7.mbcset)->range_ends);\n                      }\n                      err = _REG_NOERROR;\n                    }\n                    uVar8 = (uint)mctx.input.mbs[mctx.input.cur_idx];\n                    mctx.input.cur_idx = mctx.input.cur_idx + 1;\n                    do {\n                      if (*(re_dfastate_t **)(unaff_s7.idx + 0x2c) != (re_dfastate_t *)0x0) {\n                        aVar49 = (anon_union_4_5_a39f51ca_for_opr)\n                                 ((anon_union_4_5_a39f51ca_for_opr *)\n                                 (&(*(re_dfastate_t **)(unaff_s7.idx + 0x2c))->hash + uVar8))->\n                                 mbcset;\nLAB_000553a0:\n                        aVar15 = aVar49;\n                        if (mctx.state_log != (re_dfastate_t **)0x0) goto LAB_000553ac;\n                        goto LAB_000553cc;\n                      }\n                      paVar18 = *(anon_union_4_5_a39f51ca_for_opr **)(unaff_s7.idx + 0x30);\n                      if (paVar18 != (anon_union_4_5_a39f51ca_for_opr *)0x0) {\n                        aVar45.sbcset = (re_bitset_ptr_t)(mctx.input.cur_idx + -1);\n                        uVar60 = re_string_context_at(&mctx.input,aVar45.idx,mctx.eflags);\n                        if ((uVar60 & 1) == 0) {\n                          aVar49 = (anon_union_4_5_a39f51ca_for_opr)paVar18[uVar8].mbcset;\n                        }\n                        else {\n                          paVar18 = paVar18 + uVar8 + 0x100;\n                          aVar49 = (anon_union_4_5_a39f51ca_for_opr)paVar18->mbcset;\n                        }\n                        goto LAB_000553a0;\n                      }\n                      aVar45 = unaff_s7;\n                      aVar49 = (anon_union_4_5_a39f51ca_for_opr)mctx.eflags;\n                      iVar61 = (*pcVar10)(mctx.dfa);\n                    } while (iVar61 != 0);\n                    err = _REG_ESPACE;\n                    rVar21 = err;\nLAB_00055e44:\n                    err = rVar21;\n                    aVar46.sbcset = (re_bitset_ptr_t)0x0;\n                    if (mctx.state_log == (re_dfastate_t **)0x0) {\n                      aVar15.sbcset = aVar46.sbcset;\n                      if (err != _REG_NOERROR) goto LAB_00055914;\n                      break;\n                    }\n                    aVar49.sbcset = (re_bitset_ptr_t)0x0;\nLAB_000553ac:\n                    aVar45.sbcset = (re_bitset_ptr_t)&mctx;\n                    aVar15.sbcset =\n                         &merge_state_with_log\n                                    (&err,(re_match_context_t *)aVar45.mbcset,aVar49.sbcset)->hash;\nLAB_000553cc:\n                    aVar46 = aVar15;\n                    if ((re_dfa_t *)aVar15.sbcset == (re_dfa_t *)0x0) {\n                      if (err != _REG_NOERROR) goto LAB_00055914;\n                      if ((mctx.state_log == (re_dfastate_t **)0x0) ||\n                         ((prVar52 != (re_dfa_t *)0x0 &&\n                          (paVar54 == (anon_union_4_5_a39f51ca_for_opr *)0x0)))) break;\n                      stop = (Idx)&mctx;\n                      last_start = (Idx)&err;\n                      paVar18 = (anon_union_4_5_a39f51ca_for_opr *)(PTR_DAT_000799a4 + 0x3684);\n                      do {\n                        pprVar14 = mctx.state_log + mctx.input.cur_idx;\n                        IVar17 = mctx.input.cur_idx;\n                        do {\n                          IVar17 = IVar17 + 1;\n                          aVar45.idx = mctx.state_log_top;\n                          aVar46 = aVar15;\n                          if (mctx.state_log_top < IVar17) goto LAB_00055da8;\n                          mctx.input.cur_idx = mctx.input.cur_idx + 1;\n                          pprVar14 = pprVar14 + 1;\n                        } while (*pprVar14 == (re_dfastate_t *)0x0);\n                        aVar49.sbcset = (re_bitset_ptr_t)0x0;\n                        aVar45.sbcset = (re_bitset_ptr_t)stop;\n                        aVar46.sbcset = (re_bitset_ptr_t)(*(code *)paVar18)(last_start);\n                        if (err != _REG_NOERROR) {\n                          if ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0) goto LAB_00055da8;\n                          break;\n                        }\n                        aVar45.idx = mctx.state_log_top;\n                      } while ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0);\n                    }\n                    aVar16.ctx_type = unaff_s7.ctx_type ^ aVar46.ctx_type;\n                    aVar56 = unaff_s7;\n                    aVar15 = local_138;\n                    if ((bVar36) &&\n                       (aVar56.ctx_type = aVar16.ctx_type, aVar15.sbcset = unaff_s5.sbcset,\n                       (re_dfa_t *)aVar16.sbcset != (re_dfa_t *)0x0)) {\n                      bVar36 = false;\n                      aVar15 = local_138;\n                    }\n                    local_138 = aVar15;\n                    unaff_s7 = aVar46;\n                    if (((*(byte *)(aVar46.idx + 0x34) & 8) != 0) &&\n                       (((*(byte *)(aVar46.idx + 0x34) & 1) == 0 ||\n                        (aVar45 = aVar46, aVar49.idx = mctx.input.cur_idx,\n                        IVar17 = check_halt_state_context(&mctx,aVar46.idx,mctx.input.cur_idx),\n                        IVar17 != 0)))) {\n                      unaff_s7 = aVar56;\n                      local_c4.idx = mctx.input.cur_idx;\n                      if (paVar54 == (anon_union_4_5_a39f51ca_for_opr *)0x0) goto LAB_00055dbc;\n                      prVar52 = (re_dfa_t *)0x1;\n                      local_144 = (int *)0x0;\n                      unaff_s7 = aVar46;\n                    }\n                  }\nLAB_00055da8:\n                  if (local_144 != (int *)0x0) {\n                    *local_144 = *local_144 + (int)local_138.sbcset;\n                  }\n                }\n                else {\n                  aVar46.sbcset = (re_bitset_ptr_t)&(unaff_s7.mbcset)->range_starts;\n                  aVar49.sbcset = (re_bitset_ptr_t)0x0;\n                  aVar45 = aVar46;\n                  err = check_subexp_matching_top(&mctx,(re_node_set *)aVar46.mbcset,0);\n                  local_c4.idx = err;\n                  if ((re_dfa_t *)err == (re_dfa_t *)0x0) {\n                    if ((*(byte *)(unaff_s7.idx + 0x34) & 2) == 0) {\n                      aVar45 = aVar46;\n                      bVar36 = false;\n                    }\n                    else {\n                      aVar45 = aVar46;\n                      err = transit_state_bkref(&mctx,(re_node_set *)aVar46.mbcset);\n                      local_c4.idx = err;\n                      if ((re_dfa_t *)err != (re_dfa_t *)0x0) goto LAB_00055dbc;\n                      bVar36 = false;\n                    }\n                    goto LAB_00054d50;\n                  }\n                }\nLAB_00055dbc:\n                if ((re_dfa_t *)local_c4.sbcset == (re_dfa_t *)0xffffffff) {\nLAB_00055b04:\n                  match_ctx_clean(&mctx);\nLAB_00055b1c:\n                  match_first = aVar39.idx + match_first;\n                  if (aVar40.idx <= match_first) goto code_r0x00055b38;\n                  local_150.idx = 1;\n                  goto LAB_000557e4;\n                }\n                if ((re_dfa_t *)local_c4.sbcset == (re_dfa_t *)&SUB_fffffffe) {\n                  local_150.idx = 0xc;\n                  goto LAB_000557e4;\n                }\n                mctx.match_last = local_c4.idx;\n                if ((preg->field_0x1c & 8) == 0) {\n                  if (aVar4.sbcset < (re_dfa_t *)0x2) {\n                    if (prVar59->nbackref == 0) goto LAB_00055c08;\n                    aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                             ((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + local_c4.idx))->\n                             mbcset;\n                    aVar49 = local_c4;\n                    mctx.last_node =\n                         check_halt_state_context(&mctx,(re_dfastate_t *)aVar45.mbcset,local_c4.idx)\n                    ;\n                  }\n                  else {\n                    aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                             ((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + local_c4.idx))->\n                             mbcset;\n                    aVar49 = local_c4;\n                    mctx.last_node =\n                         check_halt_state_context(&mctx,(re_dfastate_t *)aVar45.mbcset,local_c4.idx)\n                    ;\n                  }\n                  if (aVar4.sbcset < (re_dfa_t *)0x2) {\nLAB_00055c6c:\n                    prVar52 = prVar51;\n                    unaff_s4 = mctx.dfa;\n                    if (prVar59->nbackref == 0) goto LAB_00055548;\n                  }\n                  else {\n                    cVar37 = prVar59->field_0x58;\nLAB_00055c20:\n                    prVar52 = prVar51;\n                    if (-1 < cVar37) goto LAB_00055c6c;\n                  }\n                  paVar18 = (anon_union_4_5_a39f51ca_for_opr *)mctx.last_node;\n                  prVar3 = mctx.dfa;\n                  unaff_s4 = prVar3;\n                  if ((uint)local_c4 < (re_dfa_t *)0x3fffffff) {\n                    aVar46.idx = (int)((int)&((re_string_t *)&(local_c4.mbcset)->mbchars)->raw_mbs +\n                                      1) * 4;\n                    unaff_s5.sbcset = (re_bitset_ptr_t)(*(code *)PTR_malloc_00079b54)(aVar46.sbcset)\n                    ;\n                    if ((re_dfa_t *)unaff_s5.sbcset == (re_dfa_t *)0x0) {\nLAB_00055b9c:\n                      (*(code *)PTR_free_00079c24)(unaff_s5.sbcset);\n                      local_150.idx = 0xc;\n                      prVar51 = prVar52;\n                    }\n                    else {\n                      aVar45.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                      if (prVar3->nbackref == 0) {\n                        dest_nodes.nelem = 0;\n                        dest_nodes.elems = &paVar18->idx;\n                        dest_nodes.alloc = (Idx)unaff_s5.sbcset;\n                        last_start = sift_states_backward(&mctx,(re_sift_context_t *)aVar45.mbcset);\n                        (*(code *)PTR_free_00079c24)(0);\n                        if ((re_dfa_t *)last_start == (re_dfa_t *)0x0) {\n                          aVar46.mbcset = (re_charset_t *)*unaff_s5.sbcset;\n                          if ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0) {\nLAB_00055b70:\n                            (*(code *)PTR_free_00079c24)(unaff_s5.sbcset);\n                            (*(code *)PTR_free_00079c24)(aVar46.sbcset);\n                            prVar51 = prVar52;\n                            goto LAB_00055b04;\n                          }\nLAB_00055528:\n                          (*(code *)PTR_free_00079c24)(mctx.state_log);\n                          prVar51 = prVar52;\n                          unaff_s4 = prVar3;\n                          mctx.match_last = local_c4.idx;\n                          mctx.last_node = (Idx)paVar18;\n                          mctx.state_log = (re_dfastate_t **)unaff_s5.sbcset;\n                          goto LAB_00055548;\n                        }\nLAB_00055acc:\n                        aVar46.sbcset = (re_bitset_ptr_t)0x0;\n                        prVar51 = prVar52;\n                        unaff_s4 = prVar3;\n                      }\n                      else {\n                        aVar46.sbcset =\n                             (re_bitset_ptr_t)(*(code *)PTR_malloc_00079b54)(aVar46.sbcset);\n                        if ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0) goto LAB_00055b9c;\n                        unaff_s7.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                        pcVar9 = (code *)(PTR_DAT_000799a4 + 0x421c);\n                        pcVar10 = (code *)(PTR_DAT_000799a4 + -0x6bc0);\n                        prVar51 = prVar52;\n                        while( true ) {\n                          prVar52 = (re_dfa_t *)(local_c4.idx + 1);\n                          stop = (int)prVar52 * 4;\n                          aVar49.idx = stop;\n                          (*(code *)PTR_memset_00079b00)(aVar46.sbcset,0);\n                          aVar45.sbcset = unaff_s7.sbcset;\n                          dest_nodes.alloc = (Idx)unaff_s5.sbcset;\n                          dest_nodes.nelem = (Idx)aVar46.sbcset;\n                          dest_nodes.elems = (Idx *)paVar18;\n                          last_start = (*pcVar9)(&mctx);\n                          (*(code *)PTR_free_00079c24)(0);\n                          unaff_s4 = prVar52;\n                          if ((re_dfa_t *)last_start != (re_dfa_t *)0x0) break;\n                          if ((*unaff_s5.sbcset != 0) || (stop = stop + -4, *aVar46.sbcset != 0)) {\n                            aVar45.sbcset = unaff_s5.sbcset;\n                            aVar49.sbcset = aVar46.sbcset;\n                            last_start = merge_state_array(prVar3,(re_dfastate_t **)unaff_s5.sbcset,\n                                                           (re_dfastate_t **)aVar46.sbcset,\n                                                           (Idx)prVar52);\n                            (*(code *)PTR_free_00079c24)(aVar46.sbcset);\n                            if ((re_dfa_t *)last_start != (re_dfa_t *)0x0) goto LAB_00055acc;\n                            goto LAB_00055528;\n                          }\n                          stop = (Idx)(mctx.state_log + (int)&prVar52[-1].lock.__align + 0x17);\n                          do {\n                            while( true ) {\n                              local_c4.sbcset = (re_bitset_ptr_t)(local_c4.idx + -1);\n                              if (local_c4.idx < 0) goto LAB_00055b70;\n                              aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                                       ((anon_union_4_5_a39f51ca_for_opr *)(stop + -4))->idx;\n                              if ((re_dfa_t *)aVar45.sbcset != (re_dfa_t *)0x0) break;\n                              stop = stop + -4;\n                            }\n                            stop = stop + -4;\n                          } while ((*(byte *)(aVar45.idx + 0x34) & 8) == 0);\n                          paVar18 = (anon_union_4_5_a39f51ca_for_opr *)\n                                    (*pcVar10)(&mctx,aVar45.sbcset,local_c4.sbcset);\n                          prVar51 = prVar52;\n                        }\n                      }\n                      (*(code *)PTR_free_00079c24)(unaff_s5.sbcset);\n                      (*(code *)PTR_free_00079c24)(aVar46.sbcset);\n                      local_150.idx = last_start;\n                      if ((re_dfa_t *)last_start == (re_dfa_t *)0x1) goto LAB_00055b04;\n                    }\n                  }\n                  else {\n                    local_150.idx = 0xc;\n                    prVar51 = prVar52;\n                  }\n                  goto LAB_000557e4;\n                }\n                if (prVar59->nbackref != 0) {\n                  aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                           ((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + local_c4.idx))->\n                           mbcset;\n                  aVar49 = local_c4;\n                  mctx.last_node =\n                       check_halt_state_context(&mctx,(re_dfastate_t *)aVar45.mbcset,local_c4.idx);\n                  goto LAB_00055c6c;\n                }\nLAB_00055c08:\n                if (((preg->field_0x1c & 8) == 0) && ((re_dfa_t *)0x1 < aVar4.sbcset)) {\n                  cVar37 = prVar59->field_0x58;\n                  goto LAB_00055c20;\n                }\nLAB_00055548:\n                if ((re_dfa_t *)aVar4.sbcset == (re_dfa_t *)0x0) goto LAB_000557e4;\n                if (aVar4.sbcset < (re_dfa_t *)0x2) {\n                  pmatch->rm_so = 0;\n                  pmatch->rm_eo = mctx.match_last;\n                  goto LAB_000555ac;\n                }\n                prVar19 = pmatch + 1;\n                do {\n                  prVar19->rm_eo = -1;\n                  prVar19->rm_so = -1;\n                  prVar19 = prVar19 + 1;\n                } while (prVar19 != pmatch + aVar4.idx);\n                pmatch->rm_so = 0;\n                pmatch->rm_eo = mctx.match_last;\n                if ((preg->field_0x1c & 8) != 0) {\nLAB_000555ac:\n                  prVar19 = pmatch;\n                  do {\n                    aVar45.sbcset = (re_bitset_ptr_t)prVar19->rm_so;\n                    if ((re_dfa_t *)aVar45.sbcset != (re_dfa_t *)0xffffffff) {\n                      if (mctx.input.offsets_needed != '\0') {\n                        rVar47 = mctx.input.valid_raw_len;\n                        if (aVar45.sbcset != (re_bitset_ptr_t)mctx.input.valid_len) {\n                          rVar47 = mctx.input.offsets[aVar45.idx];\n                        }\n                        prVar19->rm_so = rVar47;\n                        rVar47 = mctx.input.valid_raw_len;\n                        if (mctx.input.valid_len != prVar19->rm_eo) {\n                          rVar47 = mctx.input.offsets[prVar19->rm_eo];\n                        }\n                        prVar19->rm_eo = rVar47;\n                      }\n                      prVar19->rm_so = prVar19->rm_so + match_first;\n                      aVar45.sbcset = (re_bitset_ptr_t)(prVar19->rm_eo + match_first);\n                      prVar19->rm_eo = (regoff_t)aVar45;\n                    }\n                    prVar19 = prVar19 + 1;\n                  } while (prVar19 != pmatch + aVar4.idx);\n                  if (0 < local_118) {\n                    prVar19 = pmatch + aVar4.idx;\n                    do {\n                      prVar19->rm_so = -1;\n                      prVar19->rm_eo = -1;\n                      prVar19 = prVar19 + 1;\n                    } while (prVar19 != pmatch + nmatch);\n                  }\n                  aVar49.idx = match_first;\n                  prVar51 = (re_dfa_t *)pmatch;\n                  local_150.sbcset = aVar7.sbcset;\n                  if (prVar59->subexp_map != (Idx *)0x0) {\n                    aVar49.sbcset = (re_bitset_ptr_t)(aVar4.idx + -1);\n                    prVar52 = (re_dfa_t *)0x0;\n                    prVar19 = pmatch;\n                    while( true ) {\n                      aVar45.idx = (int)prVar52 * 4;\n                      if ((re_dfa_t *)aVar49.sbcset == prVar52) break;\n                      if ((re_dfa_t *)prVar59->subexp_map[(int)prVar52] != prVar52) {\n                        prVar19[1].rm_so =\n                             pmatch[(int)((int)&((re_string_t *)\n                                                &((re_dfa_t *)prVar59->subexp_map[(int)prVar52])->\n                                                 nodes)->raw_mbs + 1)].rm_so;\n                        prVar19[1].rm_eo = pmatch[prVar59->subexp_map[(int)prVar52] + 1].rm_eo;\n                      }\n                      prVar52 = (re_dfa_t *)((int)&((re_string_t *)&prVar52->nodes)->raw_mbs + 1);\n                      prVar19 = prVar19 + 1;\n                    }\n                  }\n                  goto LAB_000557e4;\n                }\n                if ((char)prVar59->field_0x58 < '\0') {\n                  bVar36 = 0 < prVar59->nbackref;\n                }\n                else {\n                  bVar36 = false;\n                }\n                aVar45.sbcset = (re_bitset_ptr_t)&mctx;\n                aVar49.sbcset = aVar4.sbcset;\n                prVar51 = (re_dfa_t *)pmatch;\n                local_150.idx =\n                     set_regs(preg,(re_match_context_t *)aVar45.mbcset,aVar4.ctx_type,pmatch,bVar36)\n                ;\n                if ((re_dfa_t *)local_150.sbcset == (re_dfa_t *)0x0) goto LAB_000555ac;\n              }\n            }\n          }\n          else if ((uint)mctx.input.bufs_len < 0x3fffffff) {\n            mctx.state_log =\n                 (re_dfastate_t **)(*(code *)PTR_malloc_00079b54)((mctx.input.bufs_len + 1) * 4);\n            if (mctx.state_log != (re_dfastate_t **)0x0) goto LAB_00055a40;\n            local_150.idx = 0xc;\n            stop = aVar56.idx;\n          }\n          else {\n            local_150.idx = 0xc;\n            stop = aVar56.idx;\n          }\n        }\n        else {\n          unaff_s5.idx = iVar55 * 8;\n          if (aVar56.sbcset < (re_dfa_t *)0xccccccd) {\n            unaff_s4 = (re_dfa_t *)(*(code *)PTR_malloc_00079b54)(iVar55 * 0x28);\n            mctx.bkref_ents = (re_backref_cache_entry *)unaff_s4;\n            mctx.sub_tops = (re_sub_match_top_t **)(*(code *)PTR_malloc_00079b54)(unaff_s5.sbcset);\n            if ((unaff_s4 != (re_dfa_t *)0x0) && (mctx.sub_tops != (re_sub_match_top_t **)0x0))\n            goto LAB_000559f0;\n          }\n          local_150.idx = 0xc;\n          stop = aVar56.idx;\n        }\nLAB_000557e4:\n        (*(code *)PTR_free_00079c24)(mctx.state_log);\n        preg = (regex_t *)aVar49;\n        if (prVar59->nbackref != 0) {\n          match_ctx_clean(&mctx);\n          (*(code *)PTR_free_00079c24)(mctx.sub_tops);\n          (*(code *)PTR_free_00079c24)(mctx.bkref_ents);\n          preg = (regex_t *)aVar49;\n        }\n        re_string_destruct(&mctx.input);\n        aStack_1a0 = aVar46;\n        paStack_19c = paVar18;\n      }\n    }\n  }" { (expression_statement "aVar45 = (anon_union_4_5_a39f51ca_for_opr)prVar59->init_state_begbuf;" (assignment_expression "aVar45 = (anon_union_4_5_a39f51ca_for_opr)prVar59->init_state_begbuf" identifier = (cast_expression "(anon_union_4_5_a39f51ca_for_opr)prVar59->init_state_begbuf" ( (type_descriptor "anon_union_4_5_a39f51ca_for_opr" type_identifier) ) (field_expression "prVar59->init_state_begbuf" identifier -> field_identifier))) ;) (if_statement "if ((re_dfa_t *)aVar45.sbcset == (re_dfa_t *)0x0) {\n      local_150.idx = 1;\n    }\n    else {\n      aVar4.idx = last_start;\n      if (((((prVar59->init_state->nodes).nelem == 0) &&\n           ((prVar59->init_state_word->nodes).nelem == 0)) &&\n          (((prVar59->init_state_nl->nodes).nelem == 0 || ((preg->field_0x1c & 1) == 0)))) &&\n         ((aVar4.idx = start, start != 0 &&\n          (start = last_start, aVar4.idx = last_start, last_start != 0)))) {\n        local_150.idx = 1;\n        aStack_1a0.idx = last_start;\n      }\n      else {\n        last_start = aVar4.idx;\n        aVar4.sbcset = (re_bitset_ptr_t)(nmatch - local_118);\n        if ((re_dfa_t *)aVar4.sbcset == (re_dfa_t *)0x0) {\n          paVar54 = (anon_union_4_5_a39f51ca_for_opr *)(uint)(prVar59->nbackref != 0);\n        }\n        else {\n          paVar54 = (anon_union_4_5_a39f51ca_for_opr *)0x1;\n        }\n        puVar50 = preg->translate;\n        mctx.input.icase = (uchar)((preg->syntax << 9) >> 0x1f);\n        mctx.input.mb_cur_max = prVar59->mb_cur_max;\n        aVar46.sbcset = (re_bitset_ptr_t)(prVar59->nodes_len + 1);\n        if (aVar46.idx < mctx.input.mb_cur_max) {\n          aVar46 = (anon_union_4_5_a39f51ca_for_opr)mctx.input.mb_cur_max;\n        }\n        aVar49.idx._0_3_ = 0;\n        aVar49.idx._3_1_ = ((re_bitset_ptr_t)(length + 1)).idx < aVar46.idx;\n        prVar51 = (re_dfa_t *)0x1;\n        mctx.input.mbs_allocated = mctx.input.icase;\n        if (puVar50 != (uchar *)0x0) {\n          mctx.input.mbs_allocated = 1;\n        }\n        mctx.input.is_utf8 = (uchar)((uint)(*(int *)&prVar59->field_0x58 << 2) >> 0x1f);\n        mctx.input.map_notascii = (uchar)((uint)(*(int *)&prVar59->field_0x58 << 3) >> 0x1f);\n        aVar45.sbcset = ((re_bitset_ptr_t)(length + 1)).sbcset;\n        if ((re_dfa_t *)aVar49.sbcset == (re_dfa_t *)0x0) {\n          aVar45 = aVar46;\n        }\n        mctx.input.raw_mbs = (uchar *)string;\n        mctx.input.raw_len = length;\n        mctx.input.len = length;\n        mctx.input.raw_stop = length;\n        mctx.input.stop = length;\n        mctx.input.trans = puVar50;\n        local_150.idx = re_string_realloc_buffers(&mctx.input,aVar45.idx);\n        aVar46.idx = start;\n        paVar18 = paVar54;\n        stop = stop;\n        if ((re_dfa_t *)local_150.sbcset != (re_dfa_t *)0x0) goto LAB_000557e4;\n        mctx.input.word_char = prVar59->word_char;\n        mctx.input.word_ops_used = (uchar)((uint)(*(int *)&prVar59->field_0x58 << 4) >> 0x1f);\n        paVar2 = (anon_union_4_5_a39f51ca_for_opr *)0x0;\n        mctx.input.valid_len = (Idx)paVar2;\n        if ((mctx.input.mbs_allocated == '\0') &&\n           (mctx.input.mbs = (uchar *)string, prVar59->mb_cur_max < 2)) {\n          mctx.input.valid_len = length;\n        }\n        mctx.input.stop = stop;\n        mctx.input.raw_stop = stop;\n        mctx.input.newline_anchor = (uchar)((uint)(*(int *)&preg->field_0x1c << 7) >> 0x1f);\n        iVar55 = prVar59->nbackref;\n        aVar56.idx = iVar55 * 2;\n        mctx.eflags = eflags;\n        mctx.match_last = -1;\n        mctx.input.valid_raw_len = mctx.input.valid_len;\n        if ((int)aVar56 < 1) {\nLAB_000559f0:\n          mctx.max_mb_elem_len = 1;\n          mctx.abkref_ents = aVar56.idx;\n          mctx.asub_tops = aVar56.idx;\n          if ((aVar4.sbcset < (re_dfa_t *)0x2) && ((prVar59->field_0x58 & 0x40) == 0)) {\n            mctx.state_log = (re_dfastate_t **)0x0;\nLAB_00055a40:\n            mctx.input.tip_context = 6;\n            if ((eflags & 1U) != 0) {\n              mctx.input.tip_context = 4;\n            }\n            aVar39.idx = 1;\n            aVar40.idx = start;\n            if (last_start < start) {\n              aVar39.idx = -1;\n              aVar40.idx = last_start;\n            }\n            aVar41.idx = last_start;\n            if (last_start <= start) {\n              aVar41.idx = start;\n            }\n            iVar55 = prVar59->mb_cur_max;\n            rVar20 = 8;\n            if ((re_dfa_t *)local_148.sbcset != (re_dfa_t *)0x0) {\n              if (iVar55 == 1) {\n                paVar43 = (anon_union_4_5_a39f51ca_for_opr *)0x4;\n              }\n              else {\n                paVar43 = paVar2;\n                if ((-1 < (int)(preg->syntax << 9)) && (puVar50 == (uchar *)0x0)) {\n                  paVar43 = (anon_union_4_5_a39f51ca_for_opr *)0x4;\n                }\n              }\n              aVar45.sbcset = (re_bitset_ptr_t)0x0;\n              if (start <= last_start) {\n                aVar45.idx = 2;\n              }\n              rVar20 = (uint)(puVar50 != (uchar *)0x0) | (uint)paVar43 | aVar45.ctx_type;\n            }\n            match_first = start;\n            if (start < aVar40.idx) {\n              local_150.idx = 1;\n              stop = aVar56.idx;\n            }\n            else {\n              aVar46.idx._0_3_ = 0;\n              aVar46.idx._3_1_ = last_start < start;\n              if (aVar41.idx < start) {\n                local_150.idx = 1;\n                stop = aVar56.idx;\n              }\n              else {\n                piVar38 = &match_first;\n                if ((re_dfa_t *)aVar46.sbcset != (re_dfa_t *)0x0) {\n                  piVar38 = (int *)0x0;\n                }\n                pcVar5 = (code *)(PTR_DAT_000799a4 + -0x2b7c);\n                piVar6 = (int *)(PTR_s_nt0_000795b8 + (rVar20 - 4) * 4 + 0x6e38);\nLAB_00055b44:\n                if (rVar20 - 4 < 5) {\n                    /* WARNING: Could not emulate address calculation at 0x00054920 */\n                    /* WARNING: Treating indirect jump as call */\n                  rVar21 = (*(code *)(&_gp + *piVar6))();\n                  return rVar21;\n                }\n                last_start = (Idx)&mctx;\n                prVar52 = prVar51;\n                while( true ) {\n                  aVar46.idx = match_first;\n                  uVar8 = match_first - mctx.input.raw_mbs_idx;\n                  aVar49 = (anon_union_4_5_a39f51ca_for_opr)eflags;\n                  paVar18 = paVar2;\n                  stop = local_148.idx;\n                  unaff_s4 = (re_dfa_t *)length;\n                  unaff_s5 = aVar39;\n                  unaff_s7 = aVar41;\n                  if ((uint)mctx.input.valid_raw_len <= uVar8) {\n                    aVar45.idx = match_first;\n                    local_150.sbcset = (re_bitset_ptr_t)(*pcVar5)(last_start);\n                    prVar51 = prVar52;\n                    if ((re_dfa_t *)local_150.sbcset != (re_dfa_t *)0x0) goto LAB_000557e4;\n                    uVar8 = (int)aVar46.sbcset - mctx.input.raw_mbs_idx;\n                  }\n                  if (aVar46.idx < length) {\n                    uVar8 = (uint)mctx.input.mbs[uVar8];\n                  }\n                  else {\n                    uVar8 = 0;\n                  }\n                  aVar56.sbcset = aVar46.sbcset + aVar39.sbcset;\n                  aVar46.sbcset = aVar56.sbcset;\n                  if (*(char *)((int)local_148.sbcset + uVar8) != '\0') break;\n                  prVar51 = prVar52;\n                  match_first = aVar56.idx;\n                  if (aVar56.idx < aVar40.idx) {\n                    local_150.idx = 1;\n                    goto LAB_000557e4;\n                  }\n                  aVar46.idx._0_3_ = 0;\n                  aVar46.idx._3_1_ = aVar41.idx < aVar56.idx;\n                  if ((re_dfa_t *)aVar46.sbcset != (re_dfa_t *)0x0) {\n                    local_150.idx = 1;\n                    goto LAB_000557e4;\n                  }\n                }\n                while( true ) {\n                  aVar45.idx = match_first;\n                  aVar49 = (anon_union_4_5_a39f51ca_for_opr)eflags;\n                  aVar7.sbcset = (re_bitset_ptr_t)(*pcVar5)(&mctx);\n                  aVar15 = (anon_union_4_5_a39f51ca_for_opr)mctx.dfa;\n                  aVar56.idx = mctx.input.cur_idx;\n                  prVar51 = prVar52;\n                  local_150.sbcset = aVar7.sbcset;\n                  if ((re_dfa_t *)aVar7.sbcset != (re_dfa_t *)0x0) goto LAB_000557e4;\n                  if (((iVar55 != 1) && (mctx.input.valid_len != 0)) &&\n                     (*mctx.input.wcs == 0xffffffff)) goto LAB_00055b1c;\n                  mctx.max_mb_elem_len = 0;\n                  mctx.nbkref_ents = 0;\n                  mctx.state_log_top = 0;\n                  local_138.idx = mctx.input.cur_idx;\n                  err = _REG_NOERROR;\n                  unaff_s7 = (anon_union_4_5_a39f51ca_for_opr)(mctx.dfa)->init_state;\n                  aVar49 = (anon_union_4_5_a39f51ca_for_opr)mctx.eflags;\n                  aVar46 = aVar15;\n                  if ((*(byte *)(unaff_s7.idx + 0x34) & 1) == 0) break;\n                  aVar45.sbcset = (re_bitset_ptr_t)(mctx.input.cur_idx + -1);\n                  prVar51 = (re_dfa_t *)re_string_context_at(&mctx.input,aVar45.idx,mctx.eflags);\n                  if (((uint)prVar51 & 1) == 0) {\n                    if (prVar51 == (re_dfa_t *)0x0) break;\n                    if (((uint)prVar51 & 6) == 6) {\n                      unaff_s7 = (anon_union_4_5_a39f51ca_for_opr)\n                                 ((re_dfa_t *)aVar15.idx)->init_state_begbuf;\n                      goto LAB_00054d1c;\n                    }\n                    if (((uint)prVar51 & 2) != 0) {\n                      unaff_s7 = (anon_union_4_5_a39f51ca_for_opr)\n                                 ((re_dfa_t *)aVar15.idx)->init_state_nl;\n                      goto LAB_00054d1c;\n                    }\n                    prVar52 = prVar51;\n                    if (((uint)prVar51 & 4) == 0) break;\n                    aVar49 = (anon_union_4_5_a39f51ca_for_opr)\n                             ((anon_union_4_5_a39f51ca_for_opr *)(unaff_s7.idx + 0x28))->mbcset;\n                    aVar45 = aVar15;\n                    unaff_s7.sbcset =\n                         &re_acquire_state_context\n                                    (&err,aVar15.sbcset,(re_node_set *)aVar49.mbcset,(uint)prVar51)\n                          ->hash;\n                    prVar52 = prVar51;\n                    if ((re_dfa_t *)unaff_s7.sbcset != (re_dfa_t *)0x0) break;\n                    if (err == _REG_ESPACE) goto LAB_00055914;\n                  }\n                  else {\n                    unaff_s7 = (anon_union_4_5_a39f51ca_for_opr)\n                               ((re_dfa_t *)aVar15.idx)->init_state_word;\nLAB_00054d1c:\n                    prVar52 = (re_dfa_t *)PTR_s_nt0_000795b8;\n                    if ((re_dfa_t *)unaff_s7.sbcset != (re_dfa_t *)0x0) break;\n                  }\n                  prVar52 = (re_dfa_t *)(PTR_s_nt0_000795b8 + 0x6eb0);\n                  aVar45.sbcset = (re_bitset_ptr_t)(PTR_s_nt0_000795b8 + 0x712c);\n                  match_first = (*(code *)PTR___assert_fail_000799f8)\n                                          (PTR_s_nt0_000795b8 + 0x71a0,aVar45.sbcset,0x435);\n                  if ((re_bitset_ptr_t)match_first == aVar41.sbcset) {\n                    if (match_first < length) {\n                      uVar8 = (uint)(byte)string[match_first];\n                    }\n                    else {\n                      uVar8 = 0;\n                    }\n                    if (puVar50 != (uchar *)0x0) {\n                      uVar8 = (uint)puVar50[uVar8];\n                    }\n                    if (*(char *)((int)local_148.sbcset + uVar8) == '\0') {\n                      local_150.idx = 1;\n                      aVar49 = (anon_union_4_5_a39f51ca_for_opr)eflags;\n                      prVar51 = prVar52;\n                      goto LAB_000557e4;\n                    }\n                  }\n                }\n                prVar51 = prVar52;\n                bVar36 = piVar38 != (int *)0x0;\n                if ((mctx.state_log == (re_dfastate_t **)0x0) ||\n                   (((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + aVar56.idx))->mbcset =\n                         (re_charset_t *)unaff_s7, ((re_dfa_t *)aVar15.idx)->nbackref == 0)) {\nLAB_00054d50:\n                  if ((int)*(bin_tree_t **)(unaff_s7.idx + 0x34) << 4 < 0) {\n                    if (((*(byte *)(unaff_s7.idx + 0x34) & 1) == 0) ||\n                       (aVar45 = unaff_s7, aVar49 = aVar56,\n                       IVar17 = check_halt_state_context(&mctx,unaff_s7.idx,aVar56.idx), IVar17 != 0\n                       )) {\n                      local_c4 = aVar56;\n                      if (paVar54 == (anon_union_4_5_a39f51ca_for_opr *)0x0) goto LAB_00055dbc;\n                      prVar52 = (re_dfa_t *)0x1;\n                    }\n                    else {\n                      aVar56.idx = -1;\n                      prVar52 = (re_dfa_t *)0x0;\n                    }\n                  }\n                  else {\n                    aVar56.idx = -1;\n                    prVar52 = (re_dfa_t *)0x0;\n                  }\n                  pcVar9 = (code *)(PTR_DAT_000799a4 + -0x7144);\n                  pcVar10 = (code *)(PTR_DAT_000799a4 + -0x1980);\n                  pcVar11 = (code *)(PTR_DAT_000799a4 + -0x2f9c);\n                  local_c4 = aVar56;\n                  local_144 = piVar38;\n                  while( true ) {\n                    uVar63 = CONCAT44(mctx.input.valid_len,mctx.input.len);\n                    unaff_s5.sbcset = (re_bitset_ptr_t)(mctx.input.cur_idx + 1);\n                    aVar45.idx = mctx.input.cur_idx;\n                    if (mctx.input.stop <= mctx.input.cur_idx) break;\n                    if ((mctx.input.bufs_len <= unaff_s5.idx) &&\n                       (mctx.input.bufs_len < mctx.input.len)) goto LAB_00054e94;\n                    if (mctx.input.valid_len <= unaff_s5.idx) {\n                      while ((int)((ulonglong)uVar63 >> 0x20) < (int)uVar63) {\nLAB_00054e94:\n                        aVar45.sbcset =\n                             (re_bitset_ptr_t)\n                             ((int)&((re_string_t *)&(aVar45.mbcset)->mbchars)->raw_mbs + 2);\n                        err = (*pcVar9)(&mctx);\n                        if (err == _REG_NOERROR) break;\n                        aVar15 = aVar46;\n                        if (err == _REG_ESPACE) goto LAB_00055914;\n                        prVar51 = (re_dfa_t *)(PTR_s_nt0_000795b8 + 0x6eb0);\n                        aVar49.idx = 0x46c;\n                        aVar45.sbcset = (re_bitset_ptr_t)(PTR_s_nt0_000795b8 + 0x712c);\n                        uVar63 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0);\n                        prVar52 = prVar59;\n                      }\n                    }\n                    prVar3 = mctx.dfa;\n                    if ((int)*(bin_tree_t **)(unaff_s7.idx + 0x34) << 5 < 0) {\n                      paVar18 = (anon_union_4_5_a39f51ca_for_opr *)prVar3;\n                      if (0 < (int)(unaff_s7.mbcset)->range_ends) {\n                        pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6fdc);\n                        pcVar13 = (code *)(PTR_DAT_000799a4 + -0x6ef0);\n                        stop = 0;\n                        do {\n                          last_start = ((anon_union_4_5_a39f51ca_for_opr *)\n                                       ((unaff_s7.mbcset)->char_classes + stop))->idx;\n                          prVar53 = prVar3->nodes;\n                          uVar8 = *(uint *)&prVar53[last_start].field_0x4;\n                          if ((uVar8 & 0x800) != 0) {\n                            if ((uVar8 & 0xffc000) != 0) {\n                              aVar45.idx = mctx.input.cur_idx;\n                              uVar60 = (*pcVar13)(&mctx,mctx.input.cur_idx,mctx.eflags);\n                              uVar8 = (uint)(*(int *)&prVar53[last_start].field_0x4 << 8) >> 0x16;\n                              if ((uVar8 & 4) == 0) {\n                                uVar26 = uVar60 & 1;\n                                if ((uVar8 & 8) != 0) goto joined_r0x00054f40;\n                              }\n                              else {\n                                uVar26 = uVar8 & 8;\n                                if ((uVar60 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                                if (uVar26 != 0) goto LAB_000550a4;\n                              }\n                              if ((((uVar8 & 0x20) != 0) && ((uVar60 & 2) == 0)) ||\n                                 (((uVar8 & 0x80) != 0 &&\n                                  (prVar51 = (re_dfa_t *)mctx.input.cur_idx, (uVar60 & 8) == 0))))\n                              goto LAB_000550a4;\n                            }\n                            aVar49.sbcset = (re_bitset_ptr_t)&mctx;\n                            aVar45.idx = last_start;\n                            prVar51 = (re_dfa_t *)mctx.input.cur_idx;\n                            iVar61 = (*pcVar11)(prVar3);\n                            if (iVar61 != 0) {\n                              aVar46.sbcset = (re_bitset_ptr_t)(iVar61 + mctx.input.cur_idx);\n                              if (iVar61 <= mctx.max_mb_elem_len) {\n                                iVar61 = mctx.max_mb_elem_len;\n                              }\n                              aVar45.sbcset = aVar46.sbcset;\n                              mctx.max_mb_elem_len = iVar61;\n                              err_1 = (*pcVar12)(&mctx);\n                              rVar21 = err_1;\n                              if (err_1 != _REG_NOERROR) goto LAB_00055e44;\n                              aVar49.sbcset =\n                                   (re_bitset_ptr_t)(prVar3->eclosures + prVar3->nexts[last_start]);\n                              unaff_s4 = (re_dfa_t *)(aVar46.idx * 4);\n                              last_start = (Idx)(mctx.state_log + aVar46.idx);\n                              if (*(bitset_word_t *)last_start == 0) {\n                                dest_nodes.alloc = *aVar49.sbcset;\n                                dest_nodes.nelem =\n                                     ((re_node_set *)&(aVar49.mbcset)->range_starts)->alloc;\n                                dest_nodes.elems = (aVar49.mbcset)->range_ends;\n                                prVar51 = (re_dfa_t *)\n                                          (*pcVar13)(&mctx,(undefined1 *)(aVar46.idx + -1),\n                                                     mctx.eflags);\n                                aVar49.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                                aVar45 = (anon_union_4_5_a39f51ca_for_opr)prVar3;\n                                prVar35 = re_acquire_state_context\n                                                    (&err_1,prVar3,(re_node_set *)aVar49.mbcset,\n                                                     (uint)prVar51);\n                                ((re_string_t *)&((re_charset_t *)last_start)->mbchars)->raw_mbs =\n                                     (uchar *)prVar35;\n                              }\n                              else {\n                                aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                                         ((anon_union_4_5_a39f51ca_for_opr *)\n                                         (*(bitset_word_t *)last_start + 0x28))->mbcset;\n                                err_1 = re_node_set_init_union\n                                                  (&dest_nodes,(re_node_set *)aVar45.mbcset,\n                                                   (re_node_set *)aVar49.mbcset);\n                                rVar21 = err_1;\n                                if (err_1 != _REG_NOERROR) goto LAB_00055e44;\n                                prVar51 = (re_dfa_t *)\n                                          (*pcVar13)(&mctx,(undefined1 *)(aVar46.idx + -1),\n                                                     mctx.eflags);\n                                pprVar14 = mctx.state_log + aVar46.idx;\n                                aVar49.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                                aVar45 = (anon_union_4_5_a39f51ca_for_opr)prVar3;\n                                prVar35 = re_acquire_state_context\n                                                    (&err_1,prVar3,(re_node_set *)aVar49.mbcset,\n                                                     (uint)prVar51);\n                                *pprVar14 = prVar35;\n                                (*(code *)PTR_free_00079c24)(dest_nodes.elems);\n                              }\n                              unaff_s4 = (re_dfa_t *)(mctx.state_log + aVar46.idx);\n                              if ((unaff_s4->nodes == (re_token_t *)0x0) &&\n                                 (rVar21 = err_1, err_1 != _REG_NOERROR)) goto LAB_00055e44;\n                            }\n                          }\nLAB_000550a4:\n                          stop = (int)&((re_string_t *)&((re_charset_t *)stop)->mbchars)->raw_mbs +\n                                 1;\n                        } while (stop < (int)(unaff_s7.mbcset)->range_ends);\n                      }\n                      err = _REG_NOERROR;\n                    }\n                    uVar8 = (uint)mctx.input.mbs[mctx.input.cur_idx];\n                    mctx.input.cur_idx = mctx.input.cur_idx + 1;\n                    do {\n                      if (*(re_dfastate_t **)(unaff_s7.idx + 0x2c) != (re_dfastate_t *)0x0) {\n                        aVar49 = (anon_union_4_5_a39f51ca_for_opr)\n                                 ((anon_union_4_5_a39f51ca_for_opr *)\n                                 (&(*(re_dfastate_t **)(unaff_s7.idx + 0x2c))->hash + uVar8))->\n                                 mbcset;\nLAB_000553a0:\n                        aVar15 = aVar49;\n                        if (mctx.state_log != (re_dfastate_t **)0x0) goto LAB_000553ac;\n                        goto LAB_000553cc;\n                      }\n                      paVar18 = *(anon_union_4_5_a39f51ca_for_opr **)(unaff_s7.idx + 0x30);\n                      if (paVar18 != (anon_union_4_5_a39f51ca_for_opr *)0x0) {\n                        aVar45.sbcset = (re_bitset_ptr_t)(mctx.input.cur_idx + -1);\n                        uVar60 = re_string_context_at(&mctx.input,aVar45.idx,mctx.eflags);\n                        if ((uVar60 & 1) == 0) {\n                          aVar49 = (anon_union_4_5_a39f51ca_for_opr)paVar18[uVar8].mbcset;\n                        }\n                        else {\n                          paVar18 = paVar18 + uVar8 + 0x100;\n                          aVar49 = (anon_union_4_5_a39f51ca_for_opr)paVar18->mbcset;\n                        }\n                        goto LAB_000553a0;\n                      }\n                      aVar45 = unaff_s7;\n                      aVar49 = (anon_union_4_5_a39f51ca_for_opr)mctx.eflags;\n                      iVar61 = (*pcVar10)(mctx.dfa);\n                    } while (iVar61 != 0);\n                    err = _REG_ESPACE;\n                    rVar21 = err;\nLAB_00055e44:\n                    err = rVar21;\n                    aVar46.sbcset = (re_bitset_ptr_t)0x0;\n                    if (mctx.state_log == (re_dfastate_t **)0x0) {\n                      aVar15.sbcset = aVar46.sbcset;\n                      if (err != _REG_NOERROR) goto LAB_00055914;\n                      break;\n                    }\n                    aVar49.sbcset = (re_bitset_ptr_t)0x0;\nLAB_000553ac:\n                    aVar45.sbcset = (re_bitset_ptr_t)&mctx;\n                    aVar15.sbcset =\n                         &merge_state_with_log\n                                    (&err,(re_match_context_t *)aVar45.mbcset,aVar49.sbcset)->hash;\nLAB_000553cc:\n                    aVar46 = aVar15;\n                    if ((re_dfa_t *)aVar15.sbcset == (re_dfa_t *)0x0) {\n                      if (err != _REG_NOERROR) goto LAB_00055914;\n                      if ((mctx.state_log == (re_dfastate_t **)0x0) ||\n                         ((prVar52 != (re_dfa_t *)0x0 &&\n                          (paVar54 == (anon_union_4_5_a39f51ca_for_opr *)0x0)))) break;\n                      stop = (Idx)&mctx;\n                      last_start = (Idx)&err;\n                      paVar18 = (anon_union_4_5_a39f51ca_for_opr *)(PTR_DAT_000799a4 + 0x3684);\n                      do {\n                        pprVar14 = mctx.state_log + mctx.input.cur_idx;\n                        IVar17 = mctx.input.cur_idx;\n                        do {\n                          IVar17 = IVar17 + 1;\n                          aVar45.idx = mctx.state_log_top;\n                          aVar46 = aVar15;\n                          if (mctx.state_log_top < IVar17) goto LAB_00055da8;\n                          mctx.input.cur_idx = mctx.input.cur_idx + 1;\n                          pprVar14 = pprVar14 + 1;\n                        } while (*pprVar14 == (re_dfastate_t *)0x0);\n                        aVar49.sbcset = (re_bitset_ptr_t)0x0;\n                        aVar45.sbcset = (re_bitset_ptr_t)stop;\n                        aVar46.sbcset = (re_bitset_ptr_t)(*(code *)paVar18)(last_start);\n                        if (err != _REG_NOERROR) {\n                          if ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0) goto LAB_00055da8;\n                          break;\n                        }\n                        aVar45.idx = mctx.state_log_top;\n                      } while ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0);\n                    }\n                    aVar16.ctx_type = unaff_s7.ctx_type ^ aVar46.ctx_type;\n                    aVar56 = unaff_s7;\n                    aVar15 = local_138;\n                    if ((bVar36) &&\n                       (aVar56.ctx_type = aVar16.ctx_type, aVar15.sbcset = unaff_s5.sbcset,\n                       (re_dfa_t *)aVar16.sbcset != (re_dfa_t *)0x0)) {\n                      bVar36 = false;\n                      aVar15 = local_138;\n                    }\n                    local_138 = aVar15;\n                    unaff_s7 = aVar46;\n                    if (((*(byte *)(aVar46.idx + 0x34) & 8) != 0) &&\n                       (((*(byte *)(aVar46.idx + 0x34) & 1) == 0 ||\n                        (aVar45 = aVar46, aVar49.idx = mctx.input.cur_idx,\n                        IVar17 = check_halt_state_context(&mctx,aVar46.idx,mctx.input.cur_idx),\n                        IVar17 != 0)))) {\n                      unaff_s7 = aVar56;\n                      local_c4.idx = mctx.input.cur_idx;\n                      if (paVar54 == (anon_union_4_5_a39f51ca_for_opr *)0x0) goto LAB_00055dbc;\n                      prVar52 = (re_dfa_t *)0x1;\n                      local_144 = (int *)0x0;\n                      unaff_s7 = aVar46;\n                    }\n                  }\nLAB_00055da8:\n                  if (local_144 != (int *)0x0) {\n                    *local_144 = *local_144 + (int)local_138.sbcset;\n                  }\n                }\n                else {\n                  aVar46.sbcset = (re_bitset_ptr_t)&(unaff_s7.mbcset)->range_starts;\n                  aVar49.sbcset = (re_bitset_ptr_t)0x0;\n                  aVar45 = aVar46;\n                  err = check_subexp_matching_top(&mctx,(re_node_set *)aVar46.mbcset,0);\n                  local_c4.idx = err;\n                  if ((re_dfa_t *)err == (re_dfa_t *)0x0) {\n                    if ((*(byte *)(unaff_s7.idx + 0x34) & 2) == 0) {\n                      aVar45 = aVar46;\n                      bVar36 = false;\n                    }\n                    else {\n                      aVar45 = aVar46;\n                      err = transit_state_bkref(&mctx,(re_node_set *)aVar46.mbcset);\n                      local_c4.idx = err;\n                      if ((re_dfa_t *)err != (re_dfa_t *)0x0) goto LAB_00055dbc;\n                      bVar36 = false;\n                    }\n                    goto LAB_00054d50;\n                  }\n                }\nLAB_00055dbc:\n                if ((re_dfa_t *)local_c4.sbcset == (re_dfa_t *)0xffffffff) {\nLAB_00055b04:\n                  match_ctx_clean(&mctx);\nLAB_00055b1c:\n                  match_first = aVar39.idx + match_first;\n                  if (aVar40.idx <= match_first) goto code_r0x00055b38;\n                  local_150.idx = 1;\n                  goto LAB_000557e4;\n                }\n                if ((re_dfa_t *)local_c4.sbcset == (re_dfa_t *)&SUB_fffffffe) {\n                  local_150.idx = 0xc;\n                  goto LAB_000557e4;\n                }\n                mctx.match_last = local_c4.idx;\n                if ((preg->field_0x1c & 8) == 0) {\n                  if (aVar4.sbcset < (re_dfa_t *)0x2) {\n                    if (prVar59->nbackref == 0) goto LAB_00055c08;\n                    aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                             ((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + local_c4.idx))->\n                             mbcset;\n                    aVar49 = local_c4;\n                    mctx.last_node =\n                         check_halt_state_context(&mctx,(re_dfastate_t *)aVar45.mbcset,local_c4.idx)\n                    ;\n                  }\n                  else {\n                    aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                             ((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + local_c4.idx))->\n                             mbcset;\n                    aVar49 = local_c4;\n                    mctx.last_node =\n                         check_halt_state_context(&mctx,(re_dfastate_t *)aVar45.mbcset,local_c4.idx)\n                    ;\n                  }\n                  if (aVar4.sbcset < (re_dfa_t *)0x2) {\nLAB_00055c6c:\n                    prVar52 = prVar51;\n                    unaff_s4 = mctx.dfa;\n                    if (prVar59->nbackref == 0) goto LAB_00055548;\n                  }\n                  else {\n                    cVar37 = prVar59->field_0x58;\nLAB_00055c20:\n                    prVar52 = prVar51;\n                    if (-1 < cVar37) goto LAB_00055c6c;\n                  }\n                  paVar18 = (anon_union_4_5_a39f51ca_for_opr *)mctx.last_node;\n                  prVar3 = mctx.dfa;\n                  unaff_s4 = prVar3;\n                  if ((uint)local_c4 < (re_dfa_t *)0x3fffffff) {\n                    aVar46.idx = (int)((int)&((re_string_t *)&(local_c4.mbcset)->mbchars)->raw_mbs +\n                                      1) * 4;\n                    unaff_s5.sbcset = (re_bitset_ptr_t)(*(code *)PTR_malloc_00079b54)(aVar46.sbcset)\n                    ;\n                    if ((re_dfa_t *)unaff_s5.sbcset == (re_dfa_t *)0x0) {\nLAB_00055b9c:\n                      (*(code *)PTR_free_00079c24)(unaff_s5.sbcset);\n                      local_150.idx = 0xc;\n                      prVar51 = prVar52;\n                    }\n                    else {\n                      aVar45.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                      if (prVar3->nbackref == 0) {\n                        dest_nodes.nelem = 0;\n                        dest_nodes.elems = &paVar18->idx;\n                        dest_nodes.alloc = (Idx)unaff_s5.sbcset;\n                        last_start = sift_states_backward(&mctx,(re_sift_context_t *)aVar45.mbcset);\n                        (*(code *)PTR_free_00079c24)(0);\n                        if ((re_dfa_t *)last_start == (re_dfa_t *)0x0) {\n                          aVar46.mbcset = (re_charset_t *)*unaff_s5.sbcset;\n                          if ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0) {\nLAB_00055b70:\n                            (*(code *)PTR_free_00079c24)(unaff_s5.sbcset);\n                            (*(code *)PTR_free_00079c24)(aVar46.sbcset);\n                            prVar51 = prVar52;\n                            goto LAB_00055b04;\n                          }\nLAB_00055528:\n                          (*(code *)PTR_free_00079c24)(mctx.state_log);\n                          prVar51 = prVar52;\n                          unaff_s4 = prVar3;\n                          mctx.match_last = local_c4.idx;\n                          mctx.last_node = (Idx)paVar18;\n                          mctx.state_log = (re_dfastate_t **)unaff_s5.sbcset;\n                          goto LAB_00055548;\n                        }\nLAB_00055acc:\n                        aVar46.sbcset = (re_bitset_ptr_t)0x0;\n                        prVar51 = prVar52;\n                        unaff_s4 = prVar3;\n                      }\n                      else {\n                        aVar46.sbcset =\n                             (re_bitset_ptr_t)(*(code *)PTR_malloc_00079b54)(aVar46.sbcset);\n                        if ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0) goto LAB_00055b9c;\n                        unaff_s7.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                        pcVar9 = (code *)(PTR_DAT_000799a4 + 0x421c);\n                        pcVar10 = (code *)(PTR_DAT_000799a4 + -0x6bc0);\n                        prVar51 = prVar52;\n                        while( true ) {\n                          prVar52 = (re_dfa_t *)(local_c4.idx + 1);\n                          stop = (int)prVar52 * 4;\n                          aVar49.idx = stop;\n                          (*(code *)PTR_memset_00079b00)(aVar46.sbcset,0);\n                          aVar45.sbcset = unaff_s7.sbcset;\n                          dest_nodes.alloc = (Idx)unaff_s5.sbcset;\n                          dest_nodes.nelem = (Idx)aVar46.sbcset;\n                          dest_nodes.elems = (Idx *)paVar18;\n                          last_start = (*pcVar9)(&mctx);\n                          (*(code *)PTR_free_00079c24)(0);\n                          unaff_s4 = prVar52;\n                          if ((re_dfa_t *)last_start != (re_dfa_t *)0x0) break;\n                          if ((*unaff_s5.sbcset != 0) || (stop = stop + -4, *aVar46.sbcset != 0)) {\n                            aVar45.sbcset = unaff_s5.sbcset;\n                            aVar49.sbcset = aVar46.sbcset;\n                            last_start = merge_state_array(prVar3,(re_dfastate_t **)unaff_s5.sbcset,\n                                                           (re_dfastate_t **)aVar46.sbcset,\n                                                           (Idx)prVar52);\n                            (*(code *)PTR_free_00079c24)(aVar46.sbcset);\n                            if ((re_dfa_t *)last_start != (re_dfa_t *)0x0) goto LAB_00055acc;\n                            goto LAB_00055528;\n                          }\n                          stop = (Idx)(mctx.state_log + (int)&prVar52[-1].lock.__align + 0x17);\n                          do {\n                            while( true ) {\n                              local_c4.sbcset = (re_bitset_ptr_t)(local_c4.idx + -1);\n                              if (local_c4.idx < 0) goto LAB_00055b70;\n                              aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                                       ((anon_union_4_5_a39f51ca_for_opr *)(stop + -4))->idx;\n                              if ((re_dfa_t *)aVar45.sbcset != (re_dfa_t *)0x0) break;\n                              stop = stop + -4;\n                            }\n                            stop = stop + -4;\n                          } while ((*(byte *)(aVar45.idx + 0x34) & 8) == 0);\n                          paVar18 = (anon_union_4_5_a39f51ca_for_opr *)\n                                    (*pcVar10)(&mctx,aVar45.sbcset,local_c4.sbcset);\n                          prVar51 = prVar52;\n                        }\n                      }\n                      (*(code *)PTR_free_00079c24)(unaff_s5.sbcset);\n                      (*(code *)PTR_free_00079c24)(aVar46.sbcset);\n                      local_150.idx = last_start;\n                      if ((re_dfa_t *)last_start == (re_dfa_t *)0x1) goto LAB_00055b04;\n                    }\n                  }\n                  else {\n                    local_150.idx = 0xc;\n                    prVar51 = prVar52;\n                  }\n                  goto LAB_000557e4;\n                }\n                if (prVar59->nbackref != 0) {\n                  aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                           ((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + local_c4.idx))->\n                           mbcset;\n                  aVar49 = local_c4;\n                  mctx.last_node =\n                       check_halt_state_context(&mctx,(re_dfastate_t *)aVar45.mbcset,local_c4.idx);\n                  goto LAB_00055c6c;\n                }\nLAB_00055c08:\n                if (((preg->field_0x1c & 8) == 0) && ((re_dfa_t *)0x1 < aVar4.sbcset)) {\n                  cVar37 = prVar59->field_0x58;\n                  goto LAB_00055c20;\n                }\nLAB_00055548:\n                if ((re_dfa_t *)aVar4.sbcset == (re_dfa_t *)0x0) goto LAB_000557e4;\n                if (aVar4.sbcset < (re_dfa_t *)0x2) {\n                  pmatch->rm_so = 0;\n                  pmatch->rm_eo = mctx.match_last;\n                  goto LAB_000555ac;\n                }\n                prVar19 = pmatch + 1;\n                do {\n                  prVar19->rm_eo = -1;\n                  prVar19->rm_so = -1;\n                  prVar19 = prVar19 + 1;\n                } while (prVar19 != pmatch + aVar4.idx);\n                pmatch->rm_so = 0;\n                pmatch->rm_eo = mctx.match_last;\n                if ((preg->field_0x1c & 8) != 0) {\nLAB_000555ac:\n                  prVar19 = pmatch;\n                  do {\n                    aVar45.sbcset = (re_bitset_ptr_t)prVar19->rm_so;\n                    if ((re_dfa_t *)aVar45.sbcset != (re_dfa_t *)0xffffffff) {\n                      if (mctx.input.offsets_needed != '\0') {\n                        rVar47 = mctx.input.valid_raw_len;\n                        if (aVar45.sbcset != (re_bitset_ptr_t)mctx.input.valid_len) {\n                          rVar47 = mctx.input.offsets[aVar45.idx];\n                        }\n                        prVar19->rm_so = rVar47;\n                        rVar47 = mctx.input.valid_raw_len;\n                        if (mctx.input.valid_len != prVar19->rm_eo) {\n                          rVar47 = mctx.input.offsets[prVar19->rm_eo];\n                        }\n                        prVar19->rm_eo = rVar47;\n                      }\n                      prVar19->rm_so = prVar19->rm_so + match_first;\n                      aVar45.sbcset = (re_bitset_ptr_t)(prVar19->rm_eo + match_first);\n                      prVar19->rm_eo = (regoff_t)aVar45;\n                    }\n                    prVar19 = prVar19 + 1;\n                  } while (prVar19 != pmatch + aVar4.idx);\n                  if (0 < local_118) {\n                    prVar19 = pmatch + aVar4.idx;\n                    do {\n                      prVar19->rm_so = -1;\n                      prVar19->rm_eo = -1;\n                      prVar19 = prVar19 + 1;\n                    } while (prVar19 != pmatch + nmatch);\n                  }\n                  aVar49.idx = match_first;\n                  prVar51 = (re_dfa_t *)pmatch;\n                  local_150.sbcset = aVar7.sbcset;\n                  if (prVar59->subexp_map != (Idx *)0x0) {\n                    aVar49.sbcset = (re_bitset_ptr_t)(aVar4.idx + -1);\n                    prVar52 = (re_dfa_t *)0x0;\n                    prVar19 = pmatch;\n                    while( true ) {\n                      aVar45.idx = (int)prVar52 * 4;\n                      if ((re_dfa_t *)aVar49.sbcset == prVar52) break;\n                      if ((re_dfa_t *)prVar59->subexp_map[(int)prVar52] != prVar52) {\n                        prVar19[1].rm_so =\n                             pmatch[(int)((int)&((re_string_t *)\n                                                &((re_dfa_t *)prVar59->subexp_map[(int)prVar52])->\n                                                 nodes)->raw_mbs + 1)].rm_so;\n                        prVar19[1].rm_eo = pmatch[prVar59->subexp_map[(int)prVar52] + 1].rm_eo;\n                      }\n                      prVar52 = (re_dfa_t *)((int)&((re_string_t *)&prVar52->nodes)->raw_mbs + 1);\n                      prVar19 = prVar19 + 1;\n                    }\n                  }\n                  goto LAB_000557e4;\n                }\n                if ((char)prVar59->field_0x58 < '\0') {\n                  bVar36 = 0 < prVar59->nbackref;\n                }\n                else {\n                  bVar36 = false;\n                }\n                aVar45.sbcset = (re_bitset_ptr_t)&mctx;\n                aVar49.sbcset = aVar4.sbcset;\n                prVar51 = (re_dfa_t *)pmatch;\n                local_150.idx =\n                     set_regs(preg,(re_match_context_t *)aVar45.mbcset,aVar4.ctx_type,pmatch,bVar36)\n                ;\n                if ((re_dfa_t *)local_150.sbcset == (re_dfa_t *)0x0) goto LAB_000555ac;\n              }\n            }\n          }\n          else if ((uint)mctx.input.bufs_len < 0x3fffffff) {\n            mctx.state_log =\n                 (re_dfastate_t **)(*(code *)PTR_malloc_00079b54)((mctx.input.bufs_len + 1) * 4);\n            if (mctx.state_log != (re_dfastate_t **)0x0) goto LAB_00055a40;\n            local_150.idx = 0xc;\n            stop = aVar56.idx;\n          }\n          else {\n            local_150.idx = 0xc;\n            stop = aVar56.idx;\n          }\n        }\n        else {\n          unaff_s5.idx = iVar55 * 8;\n          if (aVar56.sbcset < (re_dfa_t *)0xccccccd) {\n            unaff_s4 = (re_dfa_t *)(*(code *)PTR_malloc_00079b54)(iVar55 * 0x28);\n            mctx.bkref_ents = (re_backref_cache_entry *)unaff_s4;\n            mctx.sub_tops = (re_sub_match_top_t **)(*(code *)PTR_malloc_00079b54)(unaff_s5.sbcset);\n            if ((unaff_s4 != (re_dfa_t *)0x0) && (mctx.sub_tops != (re_sub_match_top_t **)0x0))\n            goto LAB_000559f0;\n          }\n          local_150.idx = 0xc;\n          stop = aVar56.idx;\n        }\nLAB_000557e4:\n        (*(code *)PTR_free_00079c24)(mctx.state_log);\n        preg = (regex_t *)aVar49;\n        if (prVar59->nbackref != 0) {\n          match_ctx_clean(&mctx);\n          (*(code *)PTR_free_00079c24)(mctx.sub_tops);\n          (*(code *)PTR_free_00079c24)(mctx.bkref_ents);\n          preg = (regex_t *)aVar49;\n        }\n        re_string_destruct(&mctx.input);\n        aStack_1a0 = aVar46;\n        paStack_19c = paVar18;\n      }\n    }" if (parenthesized_expression "((re_dfa_t *)aVar45.sbcset == (re_dfa_t *)0x0)" ( (binary_expression "(re_dfa_t *)aVar45.sbcset == (re_dfa_t *)0x0" (cast_expression "(re_dfa_t *)aVar45.sbcset" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "aVar45.sbcset" identifier . field_identifier)) == (cast_expression "(re_dfa_t *)0x0" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      local_150.idx = 1;\n    }" { (expression_statement "local_150.idx = 1;" (assignment_expression "local_150.idx = 1" (field_expression "local_150.idx" identifier . field_identifier) = number_literal) ;) }) (else_clause "else {\n      aVar4.idx = last_start;\n      if (((((prVar59->init_state->nodes).nelem == 0) &&\n           ((prVar59->init_state_word->nodes).nelem == 0)) &&\n          (((prVar59->init_state_nl->nodes).nelem == 0 || ((preg->field_0x1c & 1) == 0)))) &&\n         ((aVar4.idx = start, start != 0 &&\n          (start = last_start, aVar4.idx = last_start, last_start != 0)))) {\n        local_150.idx = 1;\n        aStack_1a0.idx = last_start;\n      }\n      else {\n        last_start = aVar4.idx;\n        aVar4.sbcset = (re_bitset_ptr_t)(nmatch - local_118);\n        if ((re_dfa_t *)aVar4.sbcset == (re_dfa_t *)0x0) {\n          paVar54 = (anon_union_4_5_a39f51ca_for_opr *)(uint)(prVar59->nbackref != 0);\n        }\n        else {\n          paVar54 = (anon_union_4_5_a39f51ca_for_opr *)0x1;\n        }\n        puVar50 = preg->translate;\n        mctx.input.icase = (uchar)((preg->syntax << 9) >> 0x1f);\n        mctx.input.mb_cur_max = prVar59->mb_cur_max;\n        aVar46.sbcset = (re_bitset_ptr_t)(prVar59->nodes_len + 1);\n        if (aVar46.idx < mctx.input.mb_cur_max) {\n          aVar46 = (anon_union_4_5_a39f51ca_for_opr)mctx.input.mb_cur_max;\n        }\n        aVar49.idx._0_3_ = 0;\n        aVar49.idx._3_1_ = ((re_bitset_ptr_t)(length + 1)).idx < aVar46.idx;\n        prVar51 = (re_dfa_t *)0x1;\n        mctx.input.mbs_allocated = mctx.input.icase;\n        if (puVar50 != (uchar *)0x0) {\n          mctx.input.mbs_allocated = 1;\n        }\n        mctx.input.is_utf8 = (uchar)((uint)(*(int *)&prVar59->field_0x58 << 2) >> 0x1f);\n        mctx.input.map_notascii = (uchar)((uint)(*(int *)&prVar59->field_0x58 << 3) >> 0x1f);\n        aVar45.sbcset = ((re_bitset_ptr_t)(length + 1)).sbcset;\n        if ((re_dfa_t *)aVar49.sbcset == (re_dfa_t *)0x0) {\n          aVar45 = aVar46;\n        }\n        mctx.input.raw_mbs = (uchar *)string;\n        mctx.input.raw_len = length;\n        mctx.input.len = length;\n        mctx.input.raw_stop = length;\n        mctx.input.stop = length;\n        mctx.input.trans = puVar50;\n        local_150.idx = re_string_realloc_buffers(&mctx.input,aVar45.idx);\n        aVar46.idx = start;\n        paVar18 = paVar54;\n        stop = stop;\n        if ((re_dfa_t *)local_150.sbcset != (re_dfa_t *)0x0) goto LAB_000557e4;\n        mctx.input.word_char = prVar59->word_char;\n        mctx.input.word_ops_used = (uchar)((uint)(*(int *)&prVar59->field_0x58 << 4) >> 0x1f);\n        paVar2 = (anon_union_4_5_a39f51ca_for_opr *)0x0;\n        mctx.input.valid_len = (Idx)paVar2;\n        if ((mctx.input.mbs_allocated == '\0') &&\n           (mctx.input.mbs = (uchar *)string, prVar59->mb_cur_max < 2)) {\n          mctx.input.valid_len = length;\n        }\n        mctx.input.stop = stop;\n        mctx.input.raw_stop = stop;\n        mctx.input.newline_anchor = (uchar)((uint)(*(int *)&preg->field_0x1c << 7) >> 0x1f);\n        iVar55 = prVar59->nbackref;\n        aVar56.idx = iVar55 * 2;\n        mctx.eflags = eflags;\n        mctx.match_last = -1;\n        mctx.input.valid_raw_len = mctx.input.valid_len;\n        if ((int)aVar56 < 1) {\nLAB_000559f0:\n          mctx.max_mb_elem_len = 1;\n          mctx.abkref_ents = aVar56.idx;\n          mctx.asub_tops = aVar56.idx;\n          if ((aVar4.sbcset < (re_dfa_t *)0x2) && ((prVar59->field_0x58 & 0x40) == 0)) {\n            mctx.state_log = (re_dfastate_t **)0x0;\nLAB_00055a40:\n            mctx.input.tip_context = 6;\n            if ((eflags & 1U) != 0) {\n              mctx.input.tip_context = 4;\n            }\n            aVar39.idx = 1;\n            aVar40.idx = start;\n            if (last_start < start) {\n              aVar39.idx = -1;\n              aVar40.idx = last_start;\n            }\n            aVar41.idx = last_start;\n            if (last_start <= start) {\n              aVar41.idx = start;\n            }\n            iVar55 = prVar59->mb_cur_max;\n            rVar20 = 8;\n            if ((re_dfa_t *)local_148.sbcset != (re_dfa_t *)0x0) {\n              if (iVar55 == 1) {\n                paVar43 = (anon_union_4_5_a39f51ca_for_opr *)0x4;\n              }\n              else {\n                paVar43 = paVar2;\n                if ((-1 < (int)(preg->syntax << 9)) && (puVar50 == (uchar *)0x0)) {\n                  paVar43 = (anon_union_4_5_a39f51ca_for_opr *)0x4;\n                }\n              }\n              aVar45.sbcset = (re_bitset_ptr_t)0x0;\n              if (start <= last_start) {\n                aVar45.idx = 2;\n              }\n              rVar20 = (uint)(puVar50 != (uchar *)0x0) | (uint)paVar43 | aVar45.ctx_type;\n            }\n            match_first = start;\n            if (start < aVar40.idx) {\n              local_150.idx = 1;\n              stop = aVar56.idx;\n            }\n            else {\n              aVar46.idx._0_3_ = 0;\n              aVar46.idx._3_1_ = last_start < start;\n              if (aVar41.idx < start) {\n                local_150.idx = 1;\n                stop = aVar56.idx;\n              }\n              else {\n                piVar38 = &match_first;\n                if ((re_dfa_t *)aVar46.sbcset != (re_dfa_t *)0x0) {\n                  piVar38 = (int *)0x0;\n                }\n                pcVar5 = (code *)(PTR_DAT_000799a4 + -0x2b7c);\n                piVar6 = (int *)(PTR_s_nt0_000795b8 + (rVar20 - 4) * 4 + 0x6e38);\nLAB_00055b44:\n                if (rVar20 - 4 < 5) {\n                    /* WARNING: Could not emulate address calculation at 0x00054920 */\n                    /* WARNING: Treating indirect jump as call */\n                  rVar21 = (*(code *)(&_gp + *piVar6))();\n                  return rVar21;\n                }\n                last_start = (Idx)&mctx;\n                prVar52 = prVar51;\n                while( true ) {\n                  aVar46.idx = match_first;\n                  uVar8 = match_first - mctx.input.raw_mbs_idx;\n                  aVar49 = (anon_union_4_5_a39f51ca_for_opr)eflags;\n                  paVar18 = paVar2;\n                  stop = local_148.idx;\n                  unaff_s4 = (re_dfa_t *)length;\n                  unaff_s5 = aVar39;\n                  unaff_s7 = aVar41;\n                  if ((uint)mctx.input.valid_raw_len <= uVar8) {\n                    aVar45.idx = match_first;\n                    local_150.sbcset = (re_bitset_ptr_t)(*pcVar5)(last_start);\n                    prVar51 = prVar52;\n                    if ((re_dfa_t *)local_150.sbcset != (re_dfa_t *)0x0) goto LAB_000557e4;\n                    uVar8 = (int)aVar46.sbcset - mctx.input.raw_mbs_idx;\n                  }\n                  if (aVar46.idx < length) {\n                    uVar8 = (uint)mctx.input.mbs[uVar8];\n                  }\n                  else {\n                    uVar8 = 0;\n                  }\n                  aVar56.sbcset = aVar46.sbcset + aVar39.sbcset;\n                  aVar46.sbcset = aVar56.sbcset;\n                  if (*(char *)((int)local_148.sbcset + uVar8) != '\0') break;\n                  prVar51 = prVar52;\n                  match_first = aVar56.idx;\n                  if (aVar56.idx < aVar40.idx) {\n                    local_150.idx = 1;\n                    goto LAB_000557e4;\n                  }\n                  aVar46.idx._0_3_ = 0;\n                  aVar46.idx._3_1_ = aVar41.idx < aVar56.idx;\n                  if ((re_dfa_t *)aVar46.sbcset != (re_dfa_t *)0x0) {\n                    local_150.idx = 1;\n                    goto LAB_000557e4;\n                  }\n                }\n                while( true ) {\n                  aVar45.idx = match_first;\n                  aVar49 = (anon_union_4_5_a39f51ca_for_opr)eflags;\n                  aVar7.sbcset = (re_bitset_ptr_t)(*pcVar5)(&mctx);\n                  aVar15 = (anon_union_4_5_a39f51ca_for_opr)mctx.dfa;\n                  aVar56.idx = mctx.input.cur_idx;\n                  prVar51 = prVar52;\n                  local_150.sbcset = aVar7.sbcset;\n                  if ((re_dfa_t *)aVar7.sbcset != (re_dfa_t *)0x0) goto LAB_000557e4;\n                  if (((iVar55 != 1) && (mctx.input.valid_len != 0)) &&\n                     (*mctx.input.wcs == 0xffffffff)) goto LAB_00055b1c;\n                  mctx.max_mb_elem_len = 0;\n                  mctx.nbkref_ents = 0;\n                  mctx.state_log_top = 0;\n                  local_138.idx = mctx.input.cur_idx;\n                  err = _REG_NOERROR;\n                  unaff_s7 = (anon_union_4_5_a39f51ca_for_opr)(mctx.dfa)->init_state;\n                  aVar49 = (anon_union_4_5_a39f51ca_for_opr)mctx.eflags;\n                  aVar46 = aVar15;\n                  if ((*(byte *)(unaff_s7.idx + 0x34) & 1) == 0) break;\n                  aVar45.sbcset = (re_bitset_ptr_t)(mctx.input.cur_idx + -1);\n                  prVar51 = (re_dfa_t *)re_string_context_at(&mctx.input,aVar45.idx,mctx.eflags);\n                  if (((uint)prVar51 & 1) == 0) {\n                    if (prVar51 == (re_dfa_t *)0x0) break;\n                    if (((uint)prVar51 & 6) == 6) {\n                      unaff_s7 = (anon_union_4_5_a39f51ca_for_opr)\n                                 ((re_dfa_t *)aVar15.idx)->init_state_begbuf;\n                      goto LAB_00054d1c;\n                    }\n                    if (((uint)prVar51 & 2) != 0) {\n                      unaff_s7 = (anon_union_4_5_a39f51ca_for_opr)\n                                 ((re_dfa_t *)aVar15.idx)->init_state_nl;\n                      goto LAB_00054d1c;\n                    }\n                    prVar52 = prVar51;\n                    if (((uint)prVar51 & 4) == 0) break;\n                    aVar49 = (anon_union_4_5_a39f51ca_for_opr)\n                             ((anon_union_4_5_a39f51ca_for_opr *)(unaff_s7.idx + 0x28))->mbcset;\n                    aVar45 = aVar15;\n                    unaff_s7.sbcset =\n                         &re_acquire_state_context\n                                    (&err,aVar15.sbcset,(re_node_set *)aVar49.mbcset,(uint)prVar51)\n                          ->hash;\n                    prVar52 = prVar51;\n                    if ((re_dfa_t *)unaff_s7.sbcset != (re_dfa_t *)0x0) break;\n                    if (err == _REG_ESPACE) goto LAB_00055914;\n                  }\n                  else {\n                    unaff_s7 = (anon_union_4_5_a39f51ca_for_opr)\n                               ((re_dfa_t *)aVar15.idx)->init_state_word;\nLAB_00054d1c:\n                    prVar52 = (re_dfa_t *)PTR_s_nt0_000795b8;\n                    if ((re_dfa_t *)unaff_s7.sbcset != (re_dfa_t *)0x0) break;\n                  }\n                  prVar52 = (re_dfa_t *)(PTR_s_nt0_000795b8 + 0x6eb0);\n                  aVar45.sbcset = (re_bitset_ptr_t)(PTR_s_nt0_000795b8 + 0x712c);\n                  match_first = (*(code *)PTR___assert_fail_000799f8)\n                                          (PTR_s_nt0_000795b8 + 0x71a0,aVar45.sbcset,0x435);\n                  if ((re_bitset_ptr_t)match_first == aVar41.sbcset) {\n                    if (match_first < length) {\n                      uVar8 = (uint)(byte)string[match_first];\n                    }\n                    else {\n                      uVar8 = 0;\n                    }\n                    if (puVar50 != (uchar *)0x0) {\n                      uVar8 = (uint)puVar50[uVar8];\n                    }\n                    if (*(char *)((int)local_148.sbcset + uVar8) == '\0') {\n                      local_150.idx = 1;\n                      aVar49 = (anon_union_4_5_a39f51ca_for_opr)eflags;\n                      prVar51 = prVar52;\n                      goto LAB_000557e4;\n                    }\n                  }\n                }\n                prVar51 = prVar52;\n                bVar36 = piVar38 != (int *)0x0;\n                if ((mctx.state_log == (re_dfastate_t **)0x0) ||\n                   (((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + aVar56.idx))->mbcset =\n                         (re_charset_t *)unaff_s7, ((re_dfa_t *)aVar15.idx)->nbackref == 0)) {\nLAB_00054d50:\n                  if ((int)*(bin_tree_t **)(unaff_s7.idx + 0x34) << 4 < 0) {\n                    if (((*(byte *)(unaff_s7.idx + 0x34) & 1) == 0) ||\n                       (aVar45 = unaff_s7, aVar49 = aVar56,\n                       IVar17 = check_halt_state_context(&mctx,unaff_s7.idx,aVar56.idx), IVar17 != 0\n                       )) {\n                      local_c4 = aVar56;\n                      if (paVar54 == (anon_union_4_5_a39f51ca_for_opr *)0x0) goto LAB_00055dbc;\n                      prVar52 = (re_dfa_t *)0x1;\n                    }\n                    else {\n                      aVar56.idx = -1;\n                      prVar52 = (re_dfa_t *)0x0;\n                    }\n                  }\n                  else {\n                    aVar56.idx = -1;\n                    prVar52 = (re_dfa_t *)0x0;\n                  }\n                  pcVar9 = (code *)(PTR_DAT_000799a4 + -0x7144);\n                  pcVar10 = (code *)(PTR_DAT_000799a4 + -0x1980);\n                  pcVar11 = (code *)(PTR_DAT_000799a4 + -0x2f9c);\n                  local_c4 = aVar56;\n                  local_144 = piVar38;\n                  while( true ) {\n                    uVar63 = CONCAT44(mctx.input.valid_len,mctx.input.len);\n                    unaff_s5.sbcset = (re_bitset_ptr_t)(mctx.input.cur_idx + 1);\n                    aVar45.idx = mctx.input.cur_idx;\n                    if (mctx.input.stop <= mctx.input.cur_idx) break;\n                    if ((mctx.input.bufs_len <= unaff_s5.idx) &&\n                       (mctx.input.bufs_len < mctx.input.len)) goto LAB_00054e94;\n                    if (mctx.input.valid_len <= unaff_s5.idx) {\n                      while ((int)((ulonglong)uVar63 >> 0x20) < (int)uVar63) {\nLAB_00054e94:\n                        aVar45.sbcset =\n                             (re_bitset_ptr_t)\n                             ((int)&((re_string_t *)&(aVar45.mbcset)->mbchars)->raw_mbs + 2);\n                        err = (*pcVar9)(&mctx);\n                        if (err == _REG_NOERROR) break;\n                        aVar15 = aVar46;\n                        if (err == _REG_ESPACE) goto LAB_00055914;\n                        prVar51 = (re_dfa_t *)(PTR_s_nt0_000795b8 + 0x6eb0);\n                        aVar49.idx = 0x46c;\n                        aVar45.sbcset = (re_bitset_ptr_t)(PTR_s_nt0_000795b8 + 0x712c);\n                        uVar63 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0);\n                        prVar52 = prVar59;\n                      }\n                    }\n                    prVar3 = mctx.dfa;\n                    if ((int)*(bin_tree_t **)(unaff_s7.idx + 0x34) << 5 < 0) {\n                      paVar18 = (anon_union_4_5_a39f51ca_for_opr *)prVar3;\n                      if (0 < (int)(unaff_s7.mbcset)->range_ends) {\n                        pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6fdc);\n                        pcVar13 = (code *)(PTR_DAT_000799a4 + -0x6ef0);\n                        stop = 0;\n                        do {\n                          last_start = ((anon_union_4_5_a39f51ca_for_opr *)\n                                       ((unaff_s7.mbcset)->char_classes + stop))->idx;\n                          prVar53 = prVar3->nodes;\n                          uVar8 = *(uint *)&prVar53[last_start].field_0x4;\n                          if ((uVar8 & 0x800) != 0) {\n                            if ((uVar8 & 0xffc000) != 0) {\n                              aVar45.idx = mctx.input.cur_idx;\n                              uVar60 = (*pcVar13)(&mctx,mctx.input.cur_idx,mctx.eflags);\n                              uVar8 = (uint)(*(int *)&prVar53[last_start].field_0x4 << 8) >> 0x16;\n                              if ((uVar8 & 4) == 0) {\n                                uVar26 = uVar60 & 1;\n                                if ((uVar8 & 8) != 0) goto joined_r0x00054f40;\n                              }\n                              else {\n                                uVar26 = uVar8 & 8;\n                                if ((uVar60 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                                if (uVar26 != 0) goto LAB_000550a4;\n                              }\n                              if ((((uVar8 & 0x20) != 0) && ((uVar60 & 2) == 0)) ||\n                                 (((uVar8 & 0x80) != 0 &&\n                                  (prVar51 = (re_dfa_t *)mctx.input.cur_idx, (uVar60 & 8) == 0))))\n                              goto LAB_000550a4;\n                            }\n                            aVar49.sbcset = (re_bitset_ptr_t)&mctx;\n                            aVar45.idx = last_start;\n                            prVar51 = (re_dfa_t *)mctx.input.cur_idx;\n                            iVar61 = (*pcVar11)(prVar3);\n                            if (iVar61 != 0) {\n                              aVar46.sbcset = (re_bitset_ptr_t)(iVar61 + mctx.input.cur_idx);\n                              if (iVar61 <= mctx.max_mb_elem_len) {\n                                iVar61 = mctx.max_mb_elem_len;\n                              }\n                              aVar45.sbcset = aVar46.sbcset;\n                              mctx.max_mb_elem_len = iVar61;\n                              err_1 = (*pcVar12)(&mctx);\n                              rVar21 = err_1;\n                              if (err_1 != _REG_NOERROR) goto LAB_00055e44;\n                              aVar49.sbcset =\n                                   (re_bitset_ptr_t)(prVar3->eclosures + prVar3->nexts[last_start]);\n                              unaff_s4 = (re_dfa_t *)(aVar46.idx * 4);\n                              last_start = (Idx)(mctx.state_log + aVar46.idx);\n                              if (*(bitset_word_t *)last_start == 0) {\n                                dest_nodes.alloc = *aVar49.sbcset;\n                                dest_nodes.nelem =\n                                     ((re_node_set *)&(aVar49.mbcset)->range_starts)->alloc;\n                                dest_nodes.elems = (aVar49.mbcset)->range_ends;\n                                prVar51 = (re_dfa_t *)\n                                          (*pcVar13)(&mctx,(undefined1 *)(aVar46.idx + -1),\n                                                     mctx.eflags);\n                                aVar49.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                                aVar45 = (anon_union_4_5_a39f51ca_for_opr)prVar3;\n                                prVar35 = re_acquire_state_context\n                                                    (&err_1,prVar3,(re_node_set *)aVar49.mbcset,\n                                                     (uint)prVar51);\n                                ((re_string_t *)&((re_charset_t *)last_start)->mbchars)->raw_mbs =\n                                     (uchar *)prVar35;\n                              }\n                              else {\n                                aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                                         ((anon_union_4_5_a39f51ca_for_opr *)\n                                         (*(bitset_word_t *)last_start + 0x28))->mbcset;\n                                err_1 = re_node_set_init_union\n                                                  (&dest_nodes,(re_node_set *)aVar45.mbcset,\n                                                   (re_node_set *)aVar49.mbcset);\n                                rVar21 = err_1;\n                                if (err_1 != _REG_NOERROR) goto LAB_00055e44;\n                                prVar51 = (re_dfa_t *)\n                                          (*pcVar13)(&mctx,(undefined1 *)(aVar46.idx + -1),\n                                                     mctx.eflags);\n                                pprVar14 = mctx.state_log + aVar46.idx;\n                                aVar49.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                                aVar45 = (anon_union_4_5_a39f51ca_for_opr)prVar3;\n                                prVar35 = re_acquire_state_context\n                                                    (&err_1,prVar3,(re_node_set *)aVar49.mbcset,\n                                                     (uint)prVar51);\n                                *pprVar14 = prVar35;\n                                (*(code *)PTR_free_00079c24)(dest_nodes.elems);\n                              }\n                              unaff_s4 = (re_dfa_t *)(mctx.state_log + aVar46.idx);\n                              if ((unaff_s4->nodes == (re_token_t *)0x0) &&\n                                 (rVar21 = err_1, err_1 != _REG_NOERROR)) goto LAB_00055e44;\n                            }\n                          }\nLAB_000550a4:\n                          stop = (int)&((re_string_t *)&((re_charset_t *)stop)->mbchars)->raw_mbs +\n                                 1;\n                        } while (stop < (int)(unaff_s7.mbcset)->range_ends);\n                      }\n                      err = _REG_NOERROR;\n                    }\n                    uVar8 = (uint)mctx.input.mbs[mctx.input.cur_idx];\n                    mctx.input.cur_idx = mctx.input.cur_idx + 1;\n                    do {\n                      if (*(re_dfastate_t **)(unaff_s7.idx + 0x2c) != (re_dfastate_t *)0x0) {\n                        aVar49 = (anon_union_4_5_a39f51ca_for_opr)\n                                 ((anon_union_4_5_a39f51ca_for_opr *)\n                                 (&(*(re_dfastate_t **)(unaff_s7.idx + 0x2c))->hash + uVar8))->\n                                 mbcset;\nLAB_000553a0:\n                        aVar15 = aVar49;\n                        if (mctx.state_log != (re_dfastate_t **)0x0) goto LAB_000553ac;\n                        goto LAB_000553cc;\n                      }\n                      paVar18 = *(anon_union_4_5_a39f51ca_for_opr **)(unaff_s7.idx + 0x30);\n                      if (paVar18 != (anon_union_4_5_a39f51ca_for_opr *)0x0) {\n                        aVar45.sbcset = (re_bitset_ptr_t)(mctx.input.cur_idx + -1);\n                        uVar60 = re_string_context_at(&mctx.input,aVar45.idx,mctx.eflags);\n                        if ((uVar60 & 1) == 0) {\n                          aVar49 = (anon_union_4_5_a39f51ca_for_opr)paVar18[uVar8].mbcset;\n                        }\n                        else {\n                          paVar18 = paVar18 + uVar8 + 0x100;\n                          aVar49 = (anon_union_4_5_a39f51ca_for_opr)paVar18->mbcset;\n                        }\n                        goto LAB_000553a0;\n                      }\n                      aVar45 = unaff_s7;\n                      aVar49 = (anon_union_4_5_a39f51ca_for_opr)mctx.eflags;\n                      iVar61 = (*pcVar10)(mctx.dfa);\n                    } while (iVar61 != 0);\n                    err = _REG_ESPACE;\n                    rVar21 = err;\nLAB_00055e44:\n                    err = rVar21;\n                    aVar46.sbcset = (re_bitset_ptr_t)0x0;\n                    if (mctx.state_log == (re_dfastate_t **)0x0) {\n                      aVar15.sbcset = aVar46.sbcset;\n                      if (err != _REG_NOERROR) goto LAB_00055914;\n                      break;\n                    }\n                    aVar49.sbcset = (re_bitset_ptr_t)0x0;\nLAB_000553ac:\n                    aVar45.sbcset = (re_bitset_ptr_t)&mctx;\n                    aVar15.sbcset =\n                         &merge_state_with_log\n                                    (&err,(re_match_context_t *)aVar45.mbcset,aVar49.sbcset)->hash;\nLAB_000553cc:\n                    aVar46 = aVar15;\n                    if ((re_dfa_t *)aVar15.sbcset == (re_dfa_t *)0x0) {\n                      if (err != _REG_NOERROR) goto LAB_00055914;\n                      if ((mctx.state_log == (re_dfastate_t **)0x0) ||\n                         ((prVar52 != (re_dfa_t *)0x0 &&\n                          (paVar54 == (anon_union_4_5_a39f51ca_for_opr *)0x0)))) break;\n                      stop = (Idx)&mctx;\n                      last_start = (Idx)&err;\n                      paVar18 = (anon_union_4_5_a39f51ca_for_opr *)(PTR_DAT_000799a4 + 0x3684);\n                      do {\n                        pprVar14 = mctx.state_log + mctx.input.cur_idx;\n                        IVar17 = mctx.input.cur_idx;\n                        do {\n                          IVar17 = IVar17 + 1;\n                          aVar45.idx = mctx.state_log_top;\n                          aVar46 = aVar15;\n                          if (mctx.state_log_top < IVar17) goto LAB_00055da8;\n                          mctx.input.cur_idx = mctx.input.cur_idx + 1;\n                          pprVar14 = pprVar14 + 1;\n                        } while (*pprVar14 == (re_dfastate_t *)0x0);\n                        aVar49.sbcset = (re_bitset_ptr_t)0x0;\n                        aVar45.sbcset = (re_bitset_ptr_t)stop;\n                        aVar46.sbcset = (re_bitset_ptr_t)(*(code *)paVar18)(last_start);\n                        if (err != _REG_NOERROR) {\n                          if ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0) goto LAB_00055da8;\n                          break;\n                        }\n                        aVar45.idx = mctx.state_log_top;\n                      } while ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0);\n                    }\n                    aVar16.ctx_type = unaff_s7.ctx_type ^ aVar46.ctx_type;\n                    aVar56 = unaff_s7;\n                    aVar15 = local_138;\n                    if ((bVar36) &&\n                       (aVar56.ctx_type = aVar16.ctx_type, aVar15.sbcset = unaff_s5.sbcset,\n                       (re_dfa_t *)aVar16.sbcset != (re_dfa_t *)0x0)) {\n                      bVar36 = false;\n                      aVar15 = local_138;\n                    }\n                    local_138 = aVar15;\n                    unaff_s7 = aVar46;\n                    if (((*(byte *)(aVar46.idx + 0x34) & 8) != 0) &&\n                       (((*(byte *)(aVar46.idx + 0x34) & 1) == 0 ||\n                        (aVar45 = aVar46, aVar49.idx = mctx.input.cur_idx,\n                        IVar17 = check_halt_state_context(&mctx,aVar46.idx,mctx.input.cur_idx),\n                        IVar17 != 0)))) {\n                      unaff_s7 = aVar56;\n                      local_c4.idx = mctx.input.cur_idx;\n                      if (paVar54 == (anon_union_4_5_a39f51ca_for_opr *)0x0) goto LAB_00055dbc;\n                      prVar52 = (re_dfa_t *)0x1;\n                      local_144 = (int *)0x0;\n                      unaff_s7 = aVar46;\n                    }\n                  }\nLAB_00055da8:\n                  if (local_144 != (int *)0x0) {\n                    *local_144 = *local_144 + (int)local_138.sbcset;\n                  }\n                }\n                else {\n                  aVar46.sbcset = (re_bitset_ptr_t)&(unaff_s7.mbcset)->range_starts;\n                  aVar49.sbcset = (re_bitset_ptr_t)0x0;\n                  aVar45 = aVar46;\n                  err = check_subexp_matching_top(&mctx,(re_node_set *)aVar46.mbcset,0);\n                  local_c4.idx = err;\n                  if ((re_dfa_t *)err == (re_dfa_t *)0x0) {\n                    if ((*(byte *)(unaff_s7.idx + 0x34) & 2) == 0) {\n                      aVar45 = aVar46;\n                      bVar36 = false;\n                    }\n                    else {\n                      aVar45 = aVar46;\n                      err = transit_state_bkref(&mctx,(re_node_set *)aVar46.mbcset);\n                      local_c4.idx = err;\n                      if ((re_dfa_t *)err != (re_dfa_t *)0x0) goto LAB_00055dbc;\n                      bVar36 = false;\n                    }\n                    goto LAB_00054d50;\n                  }\n                }\nLAB_00055dbc:\n                if ((re_dfa_t *)local_c4.sbcset == (re_dfa_t *)0xffffffff) {\nLAB_00055b04:\n                  match_ctx_clean(&mctx);\nLAB_00055b1c:\n                  match_first = aVar39.idx + match_first;\n                  if (aVar40.idx <= match_first) goto code_r0x00055b38;\n                  local_150.idx = 1;\n                  goto LAB_000557e4;\n                }\n                if ((re_dfa_t *)local_c4.sbcset == (re_dfa_t *)&SUB_fffffffe) {\n                  local_150.idx = 0xc;\n                  goto LAB_000557e4;\n                }\n                mctx.match_last = local_c4.idx;\n                if ((preg->field_0x1c & 8) == 0) {\n                  if (aVar4.sbcset < (re_dfa_t *)0x2) {\n                    if (prVar59->nbackref == 0) goto LAB_00055c08;\n                    aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                             ((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + local_c4.idx))->\n                             mbcset;\n                    aVar49 = local_c4;\n                    mctx.last_node =\n                         check_halt_state_context(&mctx,(re_dfastate_t *)aVar45.mbcset,local_c4.idx)\n                    ;\n                  }\n                  else {\n                    aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                             ((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + local_c4.idx))->\n                             mbcset;\n                    aVar49 = local_c4;\n                    mctx.last_node =\n                         check_halt_state_context(&mctx,(re_dfastate_t *)aVar45.mbcset,local_c4.idx)\n                    ;\n                  }\n                  if (aVar4.sbcset < (re_dfa_t *)0x2) {\nLAB_00055c6c:\n                    prVar52 = prVar51;\n                    unaff_s4 = mctx.dfa;\n                    if (prVar59->nbackref == 0) goto LAB_00055548;\n                  }\n                  else {\n                    cVar37 = prVar59->field_0x58;\nLAB_00055c20:\n                    prVar52 = prVar51;\n                    if (-1 < cVar37) goto LAB_00055c6c;\n                  }\n                  paVar18 = (anon_union_4_5_a39f51ca_for_opr *)mctx.last_node;\n                  prVar3 = mctx.dfa;\n                  unaff_s4 = prVar3;\n                  if ((uint)local_c4 < (re_dfa_t *)0x3fffffff) {\n                    aVar46.idx = (int)((int)&((re_string_t *)&(local_c4.mbcset)->mbchars)->raw_mbs +\n                                      1) * 4;\n                    unaff_s5.sbcset = (re_bitset_ptr_t)(*(code *)PTR_malloc_00079b54)(aVar46.sbcset)\n                    ;\n                    if ((re_dfa_t *)unaff_s5.sbcset == (re_dfa_t *)0x0) {\nLAB_00055b9c:\n                      (*(code *)PTR_free_00079c24)(unaff_s5.sbcset);\n                      local_150.idx = 0xc;\n                      prVar51 = prVar52;\n                    }\n                    else {\n                      aVar45.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                      if (prVar3->nbackref == 0) {\n                        dest_nodes.nelem = 0;\n                        dest_nodes.elems = &paVar18->idx;\n                        dest_nodes.alloc = (Idx)unaff_s5.sbcset;\n                        last_start = sift_states_backward(&mctx,(re_sift_context_t *)aVar45.mbcset);\n                        (*(code *)PTR_free_00079c24)(0);\n                        if ((re_dfa_t *)last_start == (re_dfa_t *)0x0) {\n                          aVar46.mbcset = (re_charset_t *)*unaff_s5.sbcset;\n                          if ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0) {\nLAB_00055b70:\n                            (*(code *)PTR_free_00079c24)(unaff_s5.sbcset);\n                            (*(code *)PTR_free_00079c24)(aVar46.sbcset);\n                            prVar51 = prVar52;\n                            goto LAB_00055b04;\n                          }\nLAB_00055528:\n                          (*(code *)PTR_free_00079c24)(mctx.state_log);\n                          prVar51 = prVar52;\n                          unaff_s4 = prVar3;\n                          mctx.match_last = local_c4.idx;\n                          mctx.last_node = (Idx)paVar18;\n                          mctx.state_log = (re_dfastate_t **)unaff_s5.sbcset;\n                          goto LAB_00055548;\n                        }\nLAB_00055acc:\n                        aVar46.sbcset = (re_bitset_ptr_t)0x0;\n                        prVar51 = prVar52;\n                        unaff_s4 = prVar3;\n                      }\n                      else {\n                        aVar46.sbcset =\n                             (re_bitset_ptr_t)(*(code *)PTR_malloc_00079b54)(aVar46.sbcset);\n                        if ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0) goto LAB_00055b9c;\n                        unaff_s7.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                        pcVar9 = (code *)(PTR_DAT_000799a4 + 0x421c);\n                        pcVar10 = (code *)(PTR_DAT_000799a4 + -0x6bc0);\n                        prVar51 = prVar52;\n                        while( true ) {\n                          prVar52 = (re_dfa_t *)(local_c4.idx + 1);\n                          stop = (int)prVar52 * 4;\n                          aVar49.idx = stop;\n                          (*(code *)PTR_memset_00079b00)(aVar46.sbcset,0);\n                          aVar45.sbcset = unaff_s7.sbcset;\n                          dest_nodes.alloc = (Idx)unaff_s5.sbcset;\n                          dest_nodes.nelem = (Idx)aVar46.sbcset;\n                          dest_nodes.elems = (Idx *)paVar18;\n                          last_start = (*pcVar9)(&mctx);\n                          (*(code *)PTR_free_00079c24)(0);\n                          unaff_s4 = prVar52;\n                          if ((re_dfa_t *)last_start != (re_dfa_t *)0x0) break;\n                          if ((*unaff_s5.sbcset != 0) || (stop = stop + -4, *aVar46.sbcset != 0)) {\n                            aVar45.sbcset = unaff_s5.sbcset;\n                            aVar49.sbcset = aVar46.sbcset;\n                            last_start = merge_state_array(prVar3,(re_dfastate_t **)unaff_s5.sbcset,\n                                                           (re_dfastate_t **)aVar46.sbcset,\n                                                           (Idx)prVar52);\n                            (*(code *)PTR_free_00079c24)(aVar46.sbcset);\n                            if ((re_dfa_t *)last_start != (re_dfa_t *)0x0) goto LAB_00055acc;\n                            goto LAB_00055528;\n                          }\n                          stop = (Idx)(mctx.state_log + (int)&prVar52[-1].lock.__align + 0x17);\n                          do {\n                            while( true ) {\n                              local_c4.sbcset = (re_bitset_ptr_t)(local_c4.idx + -1);\n                              if (local_c4.idx < 0) goto LAB_00055b70;\n                              aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                                       ((anon_union_4_5_a39f51ca_for_opr *)(stop + -4))->idx;\n                              if ((re_dfa_t *)aVar45.sbcset != (re_dfa_t *)0x0) break;\n                              stop = stop + -4;\n                            }\n                            stop = stop + -4;\n                          } while ((*(byte *)(aVar45.idx + 0x34) & 8) == 0);\n                          paVar18 = (anon_union_4_5_a39f51ca_for_opr *)\n                                    (*pcVar10)(&mctx,aVar45.sbcset,local_c4.sbcset);\n                          prVar51 = prVar52;\n                        }\n                      }\n                      (*(code *)PTR_free_00079c24)(unaff_s5.sbcset);\n                      (*(code *)PTR_free_00079c24)(aVar46.sbcset);\n                      local_150.idx = last_start;\n                      if ((re_dfa_t *)last_start == (re_dfa_t *)0x1) goto LAB_00055b04;\n                    }\n                  }\n                  else {\n                    local_150.idx = 0xc;\n                    prVar51 = prVar52;\n                  }\n                  goto LAB_000557e4;\n                }\n                if (prVar59->nbackref != 0) {\n                  aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                           ((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + local_c4.idx))->\n                           mbcset;\n                  aVar49 = local_c4;\n                  mctx.last_node =\n                       check_halt_state_context(&mctx,(re_dfastate_t *)aVar45.mbcset,local_c4.idx);\n                  goto LAB_00055c6c;\n                }\nLAB_00055c08:\n                if (((preg->field_0x1c & 8) == 0) && ((re_dfa_t *)0x1 < aVar4.sbcset)) {\n                  cVar37 = prVar59->field_0x58;\n                  goto LAB_00055c20;\n                }\nLAB_00055548:\n                if ((re_dfa_t *)aVar4.sbcset == (re_dfa_t *)0x0) goto LAB_000557e4;\n                if (aVar4.sbcset < (re_dfa_t *)0x2) {\n                  pmatch->rm_so = 0;\n                  pmatch->rm_eo = mctx.match_last;\n                  goto LAB_000555ac;\n                }\n                prVar19 = pmatch + 1;\n                do {\n                  prVar19->rm_eo = -1;\n                  prVar19->rm_so = -1;\n                  prVar19 = prVar19 + 1;\n                } while (prVar19 != pmatch + aVar4.idx);\n                pmatch->rm_so = 0;\n                pmatch->rm_eo = mctx.match_last;\n                if ((preg->field_0x1c & 8) != 0) {\nLAB_000555ac:\n                  prVar19 = pmatch;\n                  do {\n                    aVar45.sbcset = (re_bitset_ptr_t)prVar19->rm_so;\n                    if ((re_dfa_t *)aVar45.sbcset != (re_dfa_t *)0xffffffff) {\n                      if (mctx.input.offsets_needed != '\0') {\n                        rVar47 = mctx.input.valid_raw_len;\n                        if (aVar45.sbcset != (re_bitset_ptr_t)mctx.input.valid_len) {\n                          rVar47 = mctx.input.offsets[aVar45.idx];\n                        }\n                        prVar19->rm_so = rVar47;\n                        rVar47 = mctx.input.valid_raw_len;\n                        if (mctx.input.valid_len != prVar19->rm_eo) {\n                          rVar47 = mctx.input.offsets[prVar19->rm_eo];\n                        }\n                        prVar19->rm_eo = rVar47;\n                      }\n                      prVar19->rm_so = prVar19->rm_so + match_first;\n                      aVar45.sbcset = (re_bitset_ptr_t)(prVar19->rm_eo + match_first);\n                      prVar19->rm_eo = (regoff_t)aVar45;\n                    }\n                    prVar19 = prVar19 + 1;\n                  } while (prVar19 != pmatch + aVar4.idx);\n                  if (0 < local_118) {\n                    prVar19 = pmatch + aVar4.idx;\n                    do {\n                      prVar19->rm_so = -1;\n                      prVar19->rm_eo = -1;\n                      prVar19 = prVar19 + 1;\n                    } while (prVar19 != pmatch + nmatch);\n                  }\n                  aVar49.idx = match_first;\n                  prVar51 = (re_dfa_t *)pmatch;\n                  local_150.sbcset = aVar7.sbcset;\n                  if (prVar59->subexp_map != (Idx *)0x0) {\n                    aVar49.sbcset = (re_bitset_ptr_t)(aVar4.idx + -1);\n                    prVar52 = (re_dfa_t *)0x0;\n                    prVar19 = pmatch;\n                    while( true ) {\n                      aVar45.idx = (int)prVar52 * 4;\n                      if ((re_dfa_t *)aVar49.sbcset == prVar52) break;\n                      if ((re_dfa_t *)prVar59->subexp_map[(int)prVar52] != prVar52) {\n                        prVar19[1].rm_so =\n                             pmatch[(int)((int)&((re_string_t *)\n                                                &((re_dfa_t *)prVar59->subexp_map[(int)prVar52])->\n                                                 nodes)->raw_mbs + 1)].rm_so;\n                        prVar19[1].rm_eo = pmatch[prVar59->subexp_map[(int)prVar52] + 1].rm_eo;\n                      }\n                      prVar52 = (re_dfa_t *)((int)&((re_string_t *)&prVar52->nodes)->raw_mbs + 1);\n                      prVar19 = prVar19 + 1;\n                    }\n                  }\n                  goto LAB_000557e4;\n                }\n                if ((char)prVar59->field_0x58 < '\0') {\n                  bVar36 = 0 < prVar59->nbackref;\n                }\n                else {\n                  bVar36 = false;\n                }\n                aVar45.sbcset = (re_bitset_ptr_t)&mctx;\n                aVar49.sbcset = aVar4.sbcset;\n                prVar51 = (re_dfa_t *)pmatch;\n                local_150.idx =\n                     set_regs(preg,(re_match_context_t *)aVar45.mbcset,aVar4.ctx_type,pmatch,bVar36)\n                ;\n                if ((re_dfa_t *)local_150.sbcset == (re_dfa_t *)0x0) goto LAB_000555ac;\n              }\n            }\n          }\n          else if ((uint)mctx.input.bufs_len < 0x3fffffff) {\n            mctx.state_log =\n                 (re_dfastate_t **)(*(code *)PTR_malloc_00079b54)((mctx.input.bufs_len + 1) * 4);\n            if (mctx.state_log != (re_dfastate_t **)0x0) goto LAB_00055a40;\n            local_150.idx = 0xc;\n            stop = aVar56.idx;\n          }\n          else {\n            local_150.idx = 0xc;\n            stop = aVar56.idx;\n          }\n        }\n        else {\n          unaff_s5.idx = iVar55 * 8;\n          if (aVar56.sbcset < (re_dfa_t *)0xccccccd) {\n            unaff_s4 = (re_dfa_t *)(*(code *)PTR_malloc_00079b54)(iVar55 * 0x28);\n            mctx.bkref_ents = (re_backref_cache_entry *)unaff_s4;\n            mctx.sub_tops = (re_sub_match_top_t **)(*(code *)PTR_malloc_00079b54)(unaff_s5.sbcset);\n            if ((unaff_s4 != (re_dfa_t *)0x0) && (mctx.sub_tops != (re_sub_match_top_t **)0x0))\n            goto LAB_000559f0;\n          }\n          local_150.idx = 0xc;\n          stop = aVar56.idx;\n        }\nLAB_000557e4:\n        (*(code *)PTR_free_00079c24)(mctx.state_log);\n        preg = (regex_t *)aVar49;\n        if (prVar59->nbackref != 0) {\n          match_ctx_clean(&mctx);\n          (*(code *)PTR_free_00079c24)(mctx.sub_tops);\n          (*(code *)PTR_free_00079c24)(mctx.bkref_ents);\n          preg = (regex_t *)aVar49;\n        }\n        re_string_destruct(&mctx.input);\n        aStack_1a0 = aVar46;\n        paStack_19c = paVar18;\n      }\n    }" else (compound_statement "{\n      aVar4.idx = last_start;\n      if (((((prVar59->init_state->nodes).nelem == 0) &&\n           ((prVar59->init_state_word->nodes).nelem == 0)) &&\n          (((prVar59->init_state_nl->nodes).nelem == 0 || ((preg->field_0x1c & 1) == 0)))) &&\n         ((aVar4.idx = start, start != 0 &&\n          (start = last_start, aVar4.idx = last_start, last_start != 0)))) {\n        local_150.idx = 1;\n        aStack_1a0.idx = last_start;\n      }\n      else {\n        last_start = aVar4.idx;\n        aVar4.sbcset = (re_bitset_ptr_t)(nmatch - local_118);\n        if ((re_dfa_t *)aVar4.sbcset == (re_dfa_t *)0x0) {\n          paVar54 = (anon_union_4_5_a39f51ca_for_opr *)(uint)(prVar59->nbackref != 0);\n        }\n        else {\n          paVar54 = (anon_union_4_5_a39f51ca_for_opr *)0x1;\n        }\n        puVar50 = preg->translate;\n        mctx.input.icase = (uchar)((preg->syntax << 9) >> 0x1f);\n        mctx.input.mb_cur_max = prVar59->mb_cur_max;\n        aVar46.sbcset = (re_bitset_ptr_t)(prVar59->nodes_len + 1);\n        if (aVar46.idx < mctx.input.mb_cur_max) {\n          aVar46 = (anon_union_4_5_a39f51ca_for_opr)mctx.input.mb_cur_max;\n        }\n        aVar49.idx._0_3_ = 0;\n        aVar49.idx._3_1_ = ((re_bitset_ptr_t)(length + 1)).idx < aVar46.idx;\n        prVar51 = (re_dfa_t *)0x1;\n        mctx.input.mbs_allocated = mctx.input.icase;\n        if (puVar50 != (uchar *)0x0) {\n          mctx.input.mbs_allocated = 1;\n        }\n        mctx.input.is_utf8 = (uchar)((uint)(*(int *)&prVar59->field_0x58 << 2) >> 0x1f);\n        mctx.input.map_notascii = (uchar)((uint)(*(int *)&prVar59->field_0x58 << 3) >> 0x1f);\n        aVar45.sbcset = ((re_bitset_ptr_t)(length + 1)).sbcset;\n        if ((re_dfa_t *)aVar49.sbcset == (re_dfa_t *)0x0) {\n          aVar45 = aVar46;\n        }\n        mctx.input.raw_mbs = (uchar *)string;\n        mctx.input.raw_len = length;\n        mctx.input.len = length;\n        mctx.input.raw_stop = length;\n        mctx.input.stop = length;\n        mctx.input.trans = puVar50;\n        local_150.idx = re_string_realloc_buffers(&mctx.input,aVar45.idx);\n        aVar46.idx = start;\n        paVar18 = paVar54;\n        stop = stop;\n        if ((re_dfa_t *)local_150.sbcset != (re_dfa_t *)0x0) goto LAB_000557e4;\n        mctx.input.word_char = prVar59->word_char;\n        mctx.input.word_ops_used = (uchar)((uint)(*(int *)&prVar59->field_0x58 << 4) >> 0x1f);\n        paVar2 = (anon_union_4_5_a39f51ca_for_opr *)0x0;\n        mctx.input.valid_len = (Idx)paVar2;\n        if ((mctx.input.mbs_allocated == '\0') &&\n           (mctx.input.mbs = (uchar *)string, prVar59->mb_cur_max < 2)) {\n          mctx.input.valid_len = length;\n        }\n        mctx.input.stop = stop;\n        mctx.input.raw_stop = stop;\n        mctx.input.newline_anchor = (uchar)((uint)(*(int *)&preg->field_0x1c << 7) >> 0x1f);\n        iVar55 = prVar59->nbackref;\n        aVar56.idx = iVar55 * 2;\n        mctx.eflags = eflags;\n        mctx.match_last = -1;\n        mctx.input.valid_raw_len = mctx.input.valid_len;\n        if ((int)aVar56 < 1) {\nLAB_000559f0:\n          mctx.max_mb_elem_len = 1;\n          mctx.abkref_ents = aVar56.idx;\n          mctx.asub_tops = aVar56.idx;\n          if ((aVar4.sbcset < (re_dfa_t *)0x2) && ((prVar59->field_0x58 & 0x40) == 0)) {\n            mctx.state_log = (re_dfastate_t **)0x0;\nLAB_00055a40:\n            mctx.input.tip_context = 6;\n            if ((eflags & 1U) != 0) {\n              mctx.input.tip_context = 4;\n            }\n            aVar39.idx = 1;\n            aVar40.idx = start;\n            if (last_start < start) {\n              aVar39.idx = -1;\n              aVar40.idx = last_start;\n            }\n            aVar41.idx = last_start;\n            if (last_start <= start) {\n              aVar41.idx = start;\n            }\n            iVar55 = prVar59->mb_cur_max;\n            rVar20 = 8;\n            if ((re_dfa_t *)local_148.sbcset != (re_dfa_t *)0x0) {\n              if (iVar55 == 1) {\n                paVar43 = (anon_union_4_5_a39f51ca_for_opr *)0x4;\n              }\n              else {\n                paVar43 = paVar2;\n                if ((-1 < (int)(preg->syntax << 9)) && (puVar50 == (uchar *)0x0)) {\n                  paVar43 = (anon_union_4_5_a39f51ca_for_opr *)0x4;\n                }\n              }\n              aVar45.sbcset = (re_bitset_ptr_t)0x0;\n              if (start <= last_start) {\n                aVar45.idx = 2;\n              }\n              rVar20 = (uint)(puVar50 != (uchar *)0x0) | (uint)paVar43 | aVar45.ctx_type;\n            }\n            match_first = start;\n            if (start < aVar40.idx) {\n              local_150.idx = 1;\n              stop = aVar56.idx;\n            }\n            else {\n              aVar46.idx._0_3_ = 0;\n              aVar46.idx._3_1_ = last_start < start;\n              if (aVar41.idx < start) {\n                local_150.idx = 1;\n                stop = aVar56.idx;\n              }\n              else {\n                piVar38 = &match_first;\n                if ((re_dfa_t *)aVar46.sbcset != (re_dfa_t *)0x0) {\n                  piVar38 = (int *)0x0;\n                }\n                pcVar5 = (code *)(PTR_DAT_000799a4 + -0x2b7c);\n                piVar6 = (int *)(PTR_s_nt0_000795b8 + (rVar20 - 4) * 4 + 0x6e38);\nLAB_00055b44:\n                if (rVar20 - 4 < 5) {\n                    /* WARNING: Could not emulate address calculation at 0x00054920 */\n                    /* WARNING: Treating indirect jump as call */\n                  rVar21 = (*(code *)(&_gp + *piVar6))();\n                  return rVar21;\n                }\n                last_start = (Idx)&mctx;\n                prVar52 = prVar51;\n                while( true ) {\n                  aVar46.idx = match_first;\n                  uVar8 = match_first - mctx.input.raw_mbs_idx;\n                  aVar49 = (anon_union_4_5_a39f51ca_for_opr)eflags;\n                  paVar18 = paVar2;\n                  stop = local_148.idx;\n                  unaff_s4 = (re_dfa_t *)length;\n                  unaff_s5 = aVar39;\n                  unaff_s7 = aVar41;\n                  if ((uint)mctx.input.valid_raw_len <= uVar8) {\n                    aVar45.idx = match_first;\n                    local_150.sbcset = (re_bitset_ptr_t)(*pcVar5)(last_start);\n                    prVar51 = prVar52;\n                    if ((re_dfa_t *)local_150.sbcset != (re_dfa_t *)0x0) goto LAB_000557e4;\n                    uVar8 = (int)aVar46.sbcset - mctx.input.raw_mbs_idx;\n                  }\n                  if (aVar46.idx < length) {\n                    uVar8 = (uint)mctx.input.mbs[uVar8];\n                  }\n                  else {\n                    uVar8 = 0;\n                  }\n                  aVar56.sbcset = aVar46.sbcset + aVar39.sbcset;\n                  aVar46.sbcset = aVar56.sbcset;\n                  if (*(char *)((int)local_148.sbcset + uVar8) != '\0') break;\n                  prVar51 = prVar52;\n                  match_first = aVar56.idx;\n                  if (aVar56.idx < aVar40.idx) {\n                    local_150.idx = 1;\n                    goto LAB_000557e4;\n                  }\n                  aVar46.idx._0_3_ = 0;\n                  aVar46.idx._3_1_ = aVar41.idx < aVar56.idx;\n                  if ((re_dfa_t *)aVar46.sbcset != (re_dfa_t *)0x0) {\n                    local_150.idx = 1;\n                    goto LAB_000557e4;\n                  }\n                }\n                while( true ) {\n                  aVar45.idx = match_first;\n                  aVar49 = (anon_union_4_5_a39f51ca_for_opr)eflags;\n                  aVar7.sbcset = (re_bitset_ptr_t)(*pcVar5)(&mctx);\n                  aVar15 = (anon_union_4_5_a39f51ca_for_opr)mctx.dfa;\n                  aVar56.idx = mctx.input.cur_idx;\n                  prVar51 = prVar52;\n                  local_150.sbcset = aVar7.sbcset;\n                  if ((re_dfa_t *)aVar7.sbcset != (re_dfa_t *)0x0) goto LAB_000557e4;\n                  if (((iVar55 != 1) && (mctx.input.valid_len != 0)) &&\n                     (*mctx.input.wcs == 0xffffffff)) goto LAB_00055b1c;\n                  mctx.max_mb_elem_len = 0;\n                  mctx.nbkref_ents = 0;\n                  mctx.state_log_top = 0;\n                  local_138.idx = mctx.input.cur_idx;\n                  err = _REG_NOERROR;\n                  unaff_s7 = (anon_union_4_5_a39f51ca_for_opr)(mctx.dfa)->init_state;\n                  aVar49 = (anon_union_4_5_a39f51ca_for_opr)mctx.eflags;\n                  aVar46 = aVar15;\n                  if ((*(byte *)(unaff_s7.idx + 0x34) & 1) == 0) break;\n                  aVar45.sbcset = (re_bitset_ptr_t)(mctx.input.cur_idx + -1);\n                  prVar51 = (re_dfa_t *)re_string_context_at(&mctx.input,aVar45.idx,mctx.eflags);\n                  if (((uint)prVar51 & 1) == 0) {\n                    if (prVar51 == (re_dfa_t *)0x0) break;\n                    if (((uint)prVar51 & 6) == 6) {\n                      unaff_s7 = (anon_union_4_5_a39f51ca_for_opr)\n                                 ((re_dfa_t *)aVar15.idx)->init_state_begbuf;\n                      goto LAB_00054d1c;\n                    }\n                    if (((uint)prVar51 & 2) != 0) {\n                      unaff_s7 = (anon_union_4_5_a39f51ca_for_opr)\n                                 ((re_dfa_t *)aVar15.idx)->init_state_nl;\n                      goto LAB_00054d1c;\n                    }\n                    prVar52 = prVar51;\n                    if (((uint)prVar51 & 4) == 0) break;\n                    aVar49 = (anon_union_4_5_a39f51ca_for_opr)\n                             ((anon_union_4_5_a39f51ca_for_opr *)(unaff_s7.idx + 0x28))->mbcset;\n                    aVar45 = aVar15;\n                    unaff_s7.sbcset =\n                         &re_acquire_state_context\n                                    (&err,aVar15.sbcset,(re_node_set *)aVar49.mbcset,(uint)prVar51)\n                          ->hash;\n                    prVar52 = prVar51;\n                    if ((re_dfa_t *)unaff_s7.sbcset != (re_dfa_t *)0x0) break;\n                    if (err == _REG_ESPACE) goto LAB_00055914;\n                  }\n                  else {\n                    unaff_s7 = (anon_union_4_5_a39f51ca_for_opr)\n                               ((re_dfa_t *)aVar15.idx)->init_state_word;\nLAB_00054d1c:\n                    prVar52 = (re_dfa_t *)PTR_s_nt0_000795b8;\n                    if ((re_dfa_t *)unaff_s7.sbcset != (re_dfa_t *)0x0) break;\n                  }\n                  prVar52 = (re_dfa_t *)(PTR_s_nt0_000795b8 + 0x6eb0);\n                  aVar45.sbcset = (re_bitset_ptr_t)(PTR_s_nt0_000795b8 + 0x712c);\n                  match_first = (*(code *)PTR___assert_fail_000799f8)\n                                          (PTR_s_nt0_000795b8 + 0x71a0,aVar45.sbcset,0x435);\n                  if ((re_bitset_ptr_t)match_first == aVar41.sbcset) {\n                    if (match_first < length) {\n                      uVar8 = (uint)(byte)string[match_first];\n                    }\n                    else {\n                      uVar8 = 0;\n                    }\n                    if (puVar50 != (uchar *)0x0) {\n                      uVar8 = (uint)puVar50[uVar8];\n                    }\n                    if (*(char *)((int)local_148.sbcset + uVar8) == '\0') {\n                      local_150.idx = 1;\n                      aVar49 = (anon_union_4_5_a39f51ca_for_opr)eflags;\n                      prVar51 = prVar52;\n                      goto LAB_000557e4;\n                    }\n                  }\n                }\n                prVar51 = prVar52;\n                bVar36 = piVar38 != (int *)0x0;\n                if ((mctx.state_log == (re_dfastate_t **)0x0) ||\n                   (((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + aVar56.idx))->mbcset =\n                         (re_charset_t *)unaff_s7, ((re_dfa_t *)aVar15.idx)->nbackref == 0)) {\nLAB_00054d50:\n                  if ((int)*(bin_tree_t **)(unaff_s7.idx + 0x34) << 4 < 0) {\n                    if (((*(byte *)(unaff_s7.idx + 0x34) & 1) == 0) ||\n                       (aVar45 = unaff_s7, aVar49 = aVar56,\n                       IVar17 = check_halt_state_context(&mctx,unaff_s7.idx,aVar56.idx), IVar17 != 0\n                       )) {\n                      local_c4 = aVar56;\n                      if (paVar54 == (anon_union_4_5_a39f51ca_for_opr *)0x0) goto LAB_00055dbc;\n                      prVar52 = (re_dfa_t *)0x1;\n                    }\n                    else {\n                      aVar56.idx = -1;\n                      prVar52 = (re_dfa_t *)0x0;\n                    }\n                  }\n                  else {\n                    aVar56.idx = -1;\n                    prVar52 = (re_dfa_t *)0x0;\n                  }\n                  pcVar9 = (code *)(PTR_DAT_000799a4 + -0x7144);\n                  pcVar10 = (code *)(PTR_DAT_000799a4 + -0x1980);\n                  pcVar11 = (code *)(PTR_DAT_000799a4 + -0x2f9c);\n                  local_c4 = aVar56;\n                  local_144 = piVar38;\n                  while( true ) {\n                    uVar63 = CONCAT44(mctx.input.valid_len,mctx.input.len);\n                    unaff_s5.sbcset = (re_bitset_ptr_t)(mctx.input.cur_idx + 1);\n                    aVar45.idx = mctx.input.cur_idx;\n                    if (mctx.input.stop <= mctx.input.cur_idx) break;\n                    if ((mctx.input.bufs_len <= unaff_s5.idx) &&\n                       (mctx.input.bufs_len < mctx.input.len)) goto LAB_00054e94;\n                    if (mctx.input.valid_len <= unaff_s5.idx) {\n                      while ((int)((ulonglong)uVar63 >> 0x20) < (int)uVar63) {\nLAB_00054e94:\n                        aVar45.sbcset =\n                             (re_bitset_ptr_t)\n                             ((int)&((re_string_t *)&(aVar45.mbcset)->mbchars)->raw_mbs + 2);\n                        err = (*pcVar9)(&mctx);\n                        if (err == _REG_NOERROR) break;\n                        aVar15 = aVar46;\n                        if (err == _REG_ESPACE) goto LAB_00055914;\n                        prVar51 = (re_dfa_t *)(PTR_s_nt0_000795b8 + 0x6eb0);\n                        aVar49.idx = 0x46c;\n                        aVar45.sbcset = (re_bitset_ptr_t)(PTR_s_nt0_000795b8 + 0x712c);\n                        uVar63 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0);\n                        prVar52 = prVar59;\n                      }\n                    }\n                    prVar3 = mctx.dfa;\n                    if ((int)*(bin_tree_t **)(unaff_s7.idx + 0x34) << 5 < 0) {\n                      paVar18 = (anon_union_4_5_a39f51ca_for_opr *)prVar3;\n                      if (0 < (int)(unaff_s7.mbcset)->range_ends) {\n                        pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6fdc);\n                        pcVar13 = (code *)(PTR_DAT_000799a4 + -0x6ef0);\n                        stop = 0;\n                        do {\n                          last_start = ((anon_union_4_5_a39f51ca_for_opr *)\n                                       ((unaff_s7.mbcset)->char_classes + stop))->idx;\n                          prVar53 = prVar3->nodes;\n                          uVar8 = *(uint *)&prVar53[last_start].field_0x4;\n                          if ((uVar8 & 0x800) != 0) {\n                            if ((uVar8 & 0xffc000) != 0) {\n                              aVar45.idx = mctx.input.cur_idx;\n                              uVar60 = (*pcVar13)(&mctx,mctx.input.cur_idx,mctx.eflags);\n                              uVar8 = (uint)(*(int *)&prVar53[last_start].field_0x4 << 8) >> 0x16;\n                              if ((uVar8 & 4) == 0) {\n                                uVar26 = uVar60 & 1;\n                                if ((uVar8 & 8) != 0) goto joined_r0x00054f40;\n                              }\n                              else {\n                                uVar26 = uVar8 & 8;\n                                if ((uVar60 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                                if (uVar26 != 0) goto LAB_000550a4;\n                              }\n                              if ((((uVar8 & 0x20) != 0) && ((uVar60 & 2) == 0)) ||\n                                 (((uVar8 & 0x80) != 0 &&\n                                  (prVar51 = (re_dfa_t *)mctx.input.cur_idx, (uVar60 & 8) == 0))))\n                              goto LAB_000550a4;\n                            }\n                            aVar49.sbcset = (re_bitset_ptr_t)&mctx;\n                            aVar45.idx = last_start;\n                            prVar51 = (re_dfa_t *)mctx.input.cur_idx;\n                            iVar61 = (*pcVar11)(prVar3);\n                            if (iVar61 != 0) {\n                              aVar46.sbcset = (re_bitset_ptr_t)(iVar61 + mctx.input.cur_idx);\n                              if (iVar61 <= mctx.max_mb_elem_len) {\n                                iVar61 = mctx.max_mb_elem_len;\n                              }\n                              aVar45.sbcset = aVar46.sbcset;\n                              mctx.max_mb_elem_len = iVar61;\n                              err_1 = (*pcVar12)(&mctx);\n                              rVar21 = err_1;\n                              if (err_1 != _REG_NOERROR) goto LAB_00055e44;\n                              aVar49.sbcset =\n                                   (re_bitset_ptr_t)(prVar3->eclosures + prVar3->nexts[last_start]);\n                              unaff_s4 = (re_dfa_t *)(aVar46.idx * 4);\n                              last_start = (Idx)(mctx.state_log + aVar46.idx);\n                              if (*(bitset_word_t *)last_start == 0) {\n                                dest_nodes.alloc = *aVar49.sbcset;\n                                dest_nodes.nelem =\n                                     ((re_node_set *)&(aVar49.mbcset)->range_starts)->alloc;\n                                dest_nodes.elems = (aVar49.mbcset)->range_ends;\n                                prVar51 = (re_dfa_t *)\n                                          (*pcVar13)(&mctx,(undefined1 *)(aVar46.idx + -1),\n                                                     mctx.eflags);\n                                aVar49.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                                aVar45 = (anon_union_4_5_a39f51ca_for_opr)prVar3;\n                                prVar35 = re_acquire_state_context\n                                                    (&err_1,prVar3,(re_node_set *)aVar49.mbcset,\n                                                     (uint)prVar51);\n                                ((re_string_t *)&((re_charset_t *)last_start)->mbchars)->raw_mbs =\n                                     (uchar *)prVar35;\n                              }\n                              else {\n                                aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                                         ((anon_union_4_5_a39f51ca_for_opr *)\n                                         (*(bitset_word_t *)last_start + 0x28))->mbcset;\n                                err_1 = re_node_set_init_union\n                                                  (&dest_nodes,(re_node_set *)aVar45.mbcset,\n                                                   (re_node_set *)aVar49.mbcset);\n                                rVar21 = err_1;\n                                if (err_1 != _REG_NOERROR) goto LAB_00055e44;\n                                prVar51 = (re_dfa_t *)\n                                          (*pcVar13)(&mctx,(undefined1 *)(aVar46.idx + -1),\n                                                     mctx.eflags);\n                                pprVar14 = mctx.state_log + aVar46.idx;\n                                aVar49.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                                aVar45 = (anon_union_4_5_a39f51ca_for_opr)prVar3;\n                                prVar35 = re_acquire_state_context\n                                                    (&err_1,prVar3,(re_node_set *)aVar49.mbcset,\n                                                     (uint)prVar51);\n                                *pprVar14 = prVar35;\n                                (*(code *)PTR_free_00079c24)(dest_nodes.elems);\n                              }\n                              unaff_s4 = (re_dfa_t *)(mctx.state_log + aVar46.idx);\n                              if ((unaff_s4->nodes == (re_token_t *)0x0) &&\n                                 (rVar21 = err_1, err_1 != _REG_NOERROR)) goto LAB_00055e44;\n                            }\n                          }\nLAB_000550a4:\n                          stop = (int)&((re_string_t *)&((re_charset_t *)stop)->mbchars)->raw_mbs +\n                                 1;\n                        } while (stop < (int)(unaff_s7.mbcset)->range_ends);\n                      }\n                      err = _REG_NOERROR;\n                    }\n                    uVar8 = (uint)mctx.input.mbs[mctx.input.cur_idx];\n                    mctx.input.cur_idx = mctx.input.cur_idx + 1;\n                    do {\n                      if (*(re_dfastate_t **)(unaff_s7.idx + 0x2c) != (re_dfastate_t *)0x0) {\n                        aVar49 = (anon_union_4_5_a39f51ca_for_opr)\n                                 ((anon_union_4_5_a39f51ca_for_opr *)\n                                 (&(*(re_dfastate_t **)(unaff_s7.idx + 0x2c))->hash + uVar8))->\n                                 mbcset;\nLAB_000553a0:\n                        aVar15 = aVar49;\n                        if (mctx.state_log != (re_dfastate_t **)0x0) goto LAB_000553ac;\n                        goto LAB_000553cc;\n                      }\n                      paVar18 = *(anon_union_4_5_a39f51ca_for_opr **)(unaff_s7.idx + 0x30);\n                      if (paVar18 != (anon_union_4_5_a39f51ca_for_opr *)0x0) {\n                        aVar45.sbcset = (re_bitset_ptr_t)(mctx.input.cur_idx + -1);\n                        uVar60 = re_string_context_at(&mctx.input,aVar45.idx,mctx.eflags);\n                        if ((uVar60 & 1) == 0) {\n                          aVar49 = (anon_union_4_5_a39f51ca_for_opr)paVar18[uVar8].mbcset;\n                        }\n                        else {\n                          paVar18 = paVar18 + uVar8 + 0x100;\n                          aVar49 = (anon_union_4_5_a39f51ca_for_opr)paVar18->mbcset;\n                        }\n                        goto LAB_000553a0;\n                      }\n                      aVar45 = unaff_s7;\n                      aVar49 = (anon_union_4_5_a39f51ca_for_opr)mctx.eflags;\n                      iVar61 = (*pcVar10)(mctx.dfa);\n                    } while (iVar61 != 0);\n                    err = _REG_ESPACE;\n                    rVar21 = err;\nLAB_00055e44:\n                    err = rVar21;\n                    aVar46.sbcset = (re_bitset_ptr_t)0x0;\n                    if (mctx.state_log == (re_dfastate_t **)0x0) {\n                      aVar15.sbcset = aVar46.sbcset;\n                      if (err != _REG_NOERROR) goto LAB_00055914;\n                      break;\n                    }\n                    aVar49.sbcset = (re_bitset_ptr_t)0x0;\nLAB_000553ac:\n                    aVar45.sbcset = (re_bitset_ptr_t)&mctx;\n                    aVar15.sbcset =\n                         &merge_state_with_log\n                                    (&err,(re_match_context_t *)aVar45.mbcset,aVar49.sbcset)->hash;\nLAB_000553cc:\n                    aVar46 = aVar15;\n                    if ((re_dfa_t *)aVar15.sbcset == (re_dfa_t *)0x0) {\n                      if (err != _REG_NOERROR) goto LAB_00055914;\n                      if ((mctx.state_log == (re_dfastate_t **)0x0) ||\n                         ((prVar52 != (re_dfa_t *)0x0 &&\n                          (paVar54 == (anon_union_4_5_a39f51ca_for_opr *)0x0)))) break;\n                      stop = (Idx)&mctx;\n                      last_start = (Idx)&err;\n                      paVar18 = (anon_union_4_5_a39f51ca_for_opr *)(PTR_DAT_000799a4 + 0x3684);\n                      do {\n                        pprVar14 = mctx.state_log + mctx.input.cur_idx;\n                        IVar17 = mctx.input.cur_idx;\n                        do {\n                          IVar17 = IVar17 + 1;\n                          aVar45.idx = mctx.state_log_top;\n                          aVar46 = aVar15;\n                          if (mctx.state_log_top < IVar17) goto LAB_00055da8;\n                          mctx.input.cur_idx = mctx.input.cur_idx + 1;\n                          pprVar14 = pprVar14 + 1;\n                        } while (*pprVar14 == (re_dfastate_t *)0x0);\n                        aVar49.sbcset = (re_bitset_ptr_t)0x0;\n                        aVar45.sbcset = (re_bitset_ptr_t)stop;\n                        aVar46.sbcset = (re_bitset_ptr_t)(*(code *)paVar18)(last_start);\n                        if (err != _REG_NOERROR) {\n                          if ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0) goto LAB_00055da8;\n                          break;\n                        }\n                        aVar45.idx = mctx.state_log_top;\n                      } while ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0);\n                    }\n                    aVar16.ctx_type = unaff_s7.ctx_type ^ aVar46.ctx_type;\n                    aVar56 = unaff_s7;\n                    aVar15 = local_138;\n                    if ((bVar36) &&\n                       (aVar56.ctx_type = aVar16.ctx_type, aVar15.sbcset = unaff_s5.sbcset,\n                       (re_dfa_t *)aVar16.sbcset != (re_dfa_t *)0x0)) {\n                      bVar36 = false;\n                      aVar15 = local_138;\n                    }\n                    local_138 = aVar15;\n                    unaff_s7 = aVar46;\n                    if (((*(byte *)(aVar46.idx + 0x34) & 8) != 0) &&\n                       (((*(byte *)(aVar46.idx + 0x34) & 1) == 0 ||\n                        (aVar45 = aVar46, aVar49.idx = mctx.input.cur_idx,\n                        IVar17 = check_halt_state_context(&mctx,aVar46.idx,mctx.input.cur_idx),\n                        IVar17 != 0)))) {\n                      unaff_s7 = aVar56;\n                      local_c4.idx = mctx.input.cur_idx;\n                      if (paVar54 == (anon_union_4_5_a39f51ca_for_opr *)0x0) goto LAB_00055dbc;\n                      prVar52 = (re_dfa_t *)0x1;\n                      local_144 = (int *)0x0;\n                      unaff_s7 = aVar46;\n                    }\n                  }\nLAB_00055da8:\n                  if (local_144 != (int *)0x0) {\n                    *local_144 = *local_144 + (int)local_138.sbcset;\n                  }\n                }\n                else {\n                  aVar46.sbcset = (re_bitset_ptr_t)&(unaff_s7.mbcset)->range_starts;\n                  aVar49.sbcset = (re_bitset_ptr_t)0x0;\n                  aVar45 = aVar46;\n                  err = check_subexp_matching_top(&mctx,(re_node_set *)aVar46.mbcset,0);\n                  local_c4.idx = err;\n                  if ((re_dfa_t *)err == (re_dfa_t *)0x0) {\n                    if ((*(byte *)(unaff_s7.idx + 0x34) & 2) == 0) {\n                      aVar45 = aVar46;\n                      bVar36 = false;\n                    }\n                    else {\n                      aVar45 = aVar46;\n                      err = transit_state_bkref(&mctx,(re_node_set *)aVar46.mbcset);\n                      local_c4.idx = err;\n                      if ((re_dfa_t *)err != (re_dfa_t *)0x0) goto LAB_00055dbc;\n                      bVar36 = false;\n                    }\n                    goto LAB_00054d50;\n                  }\n                }\nLAB_00055dbc:\n                if ((re_dfa_t *)local_c4.sbcset == (re_dfa_t *)0xffffffff) {\nLAB_00055b04:\n                  match_ctx_clean(&mctx);\nLAB_00055b1c:\n                  match_first = aVar39.idx + match_first;\n                  if (aVar40.idx <= match_first) goto code_r0x00055b38;\n                  local_150.idx = 1;\n                  goto LAB_000557e4;\n                }\n                if ((re_dfa_t *)local_c4.sbcset == (re_dfa_t *)&SUB_fffffffe) {\n                  local_150.idx = 0xc;\n                  goto LAB_000557e4;\n                }\n                mctx.match_last = local_c4.idx;\n                if ((preg->field_0x1c & 8) == 0) {\n                  if (aVar4.sbcset < (re_dfa_t *)0x2) {\n                    if (prVar59->nbackref == 0) goto LAB_00055c08;\n                    aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                             ((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + local_c4.idx))->\n                             mbcset;\n                    aVar49 = local_c4;\n                    mctx.last_node =\n                         check_halt_state_context(&mctx,(re_dfastate_t *)aVar45.mbcset,local_c4.idx)\n                    ;\n                  }\n                  else {\n                    aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                             ((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + local_c4.idx))->\n                             mbcset;\n                    aVar49 = local_c4;\n                    mctx.last_node =\n                         check_halt_state_context(&mctx,(re_dfastate_t *)aVar45.mbcset,local_c4.idx)\n                    ;\n                  }\n                  if (aVar4.sbcset < (re_dfa_t *)0x2) {\nLAB_00055c6c:\n                    prVar52 = prVar51;\n                    unaff_s4 = mctx.dfa;\n                    if (prVar59->nbackref == 0) goto LAB_00055548;\n                  }\n                  else {\n                    cVar37 = prVar59->field_0x58;\nLAB_00055c20:\n                    prVar52 = prVar51;\n                    if (-1 < cVar37) goto LAB_00055c6c;\n                  }\n                  paVar18 = (anon_union_4_5_a39f51ca_for_opr *)mctx.last_node;\n                  prVar3 = mctx.dfa;\n                  unaff_s4 = prVar3;\n                  if ((uint)local_c4 < (re_dfa_t *)0x3fffffff) {\n                    aVar46.idx = (int)((int)&((re_string_t *)&(local_c4.mbcset)->mbchars)->raw_mbs +\n                                      1) * 4;\n                    unaff_s5.sbcset = (re_bitset_ptr_t)(*(code *)PTR_malloc_00079b54)(aVar46.sbcset)\n                    ;\n                    if ((re_dfa_t *)unaff_s5.sbcset == (re_dfa_t *)0x0) {\nLAB_00055b9c:\n                      (*(code *)PTR_free_00079c24)(unaff_s5.sbcset);\n                      local_150.idx = 0xc;\n                      prVar51 = prVar52;\n                    }\n                    else {\n                      aVar45.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                      if (prVar3->nbackref == 0) {\n                        dest_nodes.nelem = 0;\n                        dest_nodes.elems = &paVar18->idx;\n                        dest_nodes.alloc = (Idx)unaff_s5.sbcset;\n                        last_start = sift_states_backward(&mctx,(re_sift_context_t *)aVar45.mbcset);\n                        (*(code *)PTR_free_00079c24)(0);\n                        if ((re_dfa_t *)last_start == (re_dfa_t *)0x0) {\n                          aVar46.mbcset = (re_charset_t *)*unaff_s5.sbcset;\n                          if ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0) {\nLAB_00055b70:\n                            (*(code *)PTR_free_00079c24)(unaff_s5.sbcset);\n                            (*(code *)PTR_free_00079c24)(aVar46.sbcset);\n                            prVar51 = prVar52;\n                            goto LAB_00055b04;\n                          }\nLAB_00055528:\n                          (*(code *)PTR_free_00079c24)(mctx.state_log);\n                          prVar51 = prVar52;\n                          unaff_s4 = prVar3;\n                          mctx.match_last = local_c4.idx;\n                          mctx.last_node = (Idx)paVar18;\n                          mctx.state_log = (re_dfastate_t **)unaff_s5.sbcset;\n                          goto LAB_00055548;\n                        }\nLAB_00055acc:\n                        aVar46.sbcset = (re_bitset_ptr_t)0x0;\n                        prVar51 = prVar52;\n                        unaff_s4 = prVar3;\n                      }\n                      else {\n                        aVar46.sbcset =\n                             (re_bitset_ptr_t)(*(code *)PTR_malloc_00079b54)(aVar46.sbcset);\n                        if ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0) goto LAB_00055b9c;\n                        unaff_s7.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                        pcVar9 = (code *)(PTR_DAT_000799a4 + 0x421c);\n                        pcVar10 = (code *)(PTR_DAT_000799a4 + -0x6bc0);\n                        prVar51 = prVar52;\n                        while( true ) {\n                          prVar52 = (re_dfa_t *)(local_c4.idx + 1);\n                          stop = (int)prVar52 * 4;\n                          aVar49.idx = stop;\n                          (*(code *)PTR_memset_00079b00)(aVar46.sbcset,0);\n                          aVar45.sbcset = unaff_s7.sbcset;\n                          dest_nodes.alloc = (Idx)unaff_s5.sbcset;\n                          dest_nodes.nelem = (Idx)aVar46.sbcset;\n                          dest_nodes.elems = (Idx *)paVar18;\n                          last_start = (*pcVar9)(&mctx);\n                          (*(code *)PTR_free_00079c24)(0);\n                          unaff_s4 = prVar52;\n                          if ((re_dfa_t *)last_start != (re_dfa_t *)0x0) break;\n                          if ((*unaff_s5.sbcset != 0) || (stop = stop + -4, *aVar46.sbcset != 0)) {\n                            aVar45.sbcset = unaff_s5.sbcset;\n                            aVar49.sbcset = aVar46.sbcset;\n                            last_start = merge_state_array(prVar3,(re_dfastate_t **)unaff_s5.sbcset,\n                                                           (re_dfastate_t **)aVar46.sbcset,\n                                                           (Idx)prVar52);\n                            (*(code *)PTR_free_00079c24)(aVar46.sbcset);\n                            if ((re_dfa_t *)last_start != (re_dfa_t *)0x0) goto LAB_00055acc;\n                            goto LAB_00055528;\n                          }\n                          stop = (Idx)(mctx.state_log + (int)&prVar52[-1].lock.__align + 0x17);\n                          do {\n                            while( true ) {\n                              local_c4.sbcset = (re_bitset_ptr_t)(local_c4.idx + -1);\n                              if (local_c4.idx < 0) goto LAB_00055b70;\n                              aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                                       ((anon_union_4_5_a39f51ca_for_opr *)(stop + -4))->idx;\n                              if ((re_dfa_t *)aVar45.sbcset != (re_dfa_t *)0x0) break;\n                              stop = stop + -4;\n                            }\n                            stop = stop + -4;\n                          } while ((*(byte *)(aVar45.idx + 0x34) & 8) == 0);\n                          paVar18 = (anon_union_4_5_a39f51ca_for_opr *)\n                                    (*pcVar10)(&mctx,aVar45.sbcset,local_c4.sbcset);\n                          prVar51 = prVar52;\n                        }\n                      }\n                      (*(code *)PTR_free_00079c24)(unaff_s5.sbcset);\n                      (*(code *)PTR_free_00079c24)(aVar46.sbcset);\n                      local_150.idx = last_start;\n                      if ((re_dfa_t *)last_start == (re_dfa_t *)0x1) goto LAB_00055b04;\n                    }\n                  }\n                  else {\n                    local_150.idx = 0xc;\n                    prVar51 = prVar52;\n                  }\n                  goto LAB_000557e4;\n                }\n                if (prVar59->nbackref != 0) {\n                  aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                           ((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + local_c4.idx))->\n                           mbcset;\n                  aVar49 = local_c4;\n                  mctx.last_node =\n                       check_halt_state_context(&mctx,(re_dfastate_t *)aVar45.mbcset,local_c4.idx);\n                  goto LAB_00055c6c;\n                }\nLAB_00055c08:\n                if (((preg->field_0x1c & 8) == 0) && ((re_dfa_t *)0x1 < aVar4.sbcset)) {\n                  cVar37 = prVar59->field_0x58;\n                  goto LAB_00055c20;\n                }\nLAB_00055548:\n                if ((re_dfa_t *)aVar4.sbcset == (re_dfa_t *)0x0) goto LAB_000557e4;\n                if (aVar4.sbcset < (re_dfa_t *)0x2) {\n                  pmatch->rm_so = 0;\n                  pmatch->rm_eo = mctx.match_last;\n                  goto LAB_000555ac;\n                }\n                prVar19 = pmatch + 1;\n                do {\n                  prVar19->rm_eo = -1;\n                  prVar19->rm_so = -1;\n                  prVar19 = prVar19 + 1;\n                } while (prVar19 != pmatch + aVar4.idx);\n                pmatch->rm_so = 0;\n                pmatch->rm_eo = mctx.match_last;\n                if ((preg->field_0x1c & 8) != 0) {\nLAB_000555ac:\n                  prVar19 = pmatch;\n                  do {\n                    aVar45.sbcset = (re_bitset_ptr_t)prVar19->rm_so;\n                    if ((re_dfa_t *)aVar45.sbcset != (re_dfa_t *)0xffffffff) {\n                      if (mctx.input.offsets_needed != '\0') {\n                        rVar47 = mctx.input.valid_raw_len;\n                        if (aVar45.sbcset != (re_bitset_ptr_t)mctx.input.valid_len) {\n                          rVar47 = mctx.input.offsets[aVar45.idx];\n                        }\n                        prVar19->rm_so = rVar47;\n                        rVar47 = mctx.input.valid_raw_len;\n                        if (mctx.input.valid_len != prVar19->rm_eo) {\n                          rVar47 = mctx.input.offsets[prVar19->rm_eo];\n                        }\n                        prVar19->rm_eo = rVar47;\n                      }\n                      prVar19->rm_so = prVar19->rm_so + match_first;\n                      aVar45.sbcset = (re_bitset_ptr_t)(prVar19->rm_eo + match_first);\n                      prVar19->rm_eo = (regoff_t)aVar45;\n                    }\n                    prVar19 = prVar19 + 1;\n                  } while (prVar19 != pmatch + aVar4.idx);\n                  if (0 < local_118) {\n                    prVar19 = pmatch + aVar4.idx;\n                    do {\n                      prVar19->rm_so = -1;\n                      prVar19->rm_eo = -1;\n                      prVar19 = prVar19 + 1;\n                    } while (prVar19 != pmatch + nmatch);\n                  }\n                  aVar49.idx = match_first;\n                  prVar51 = (re_dfa_t *)pmatch;\n                  local_150.sbcset = aVar7.sbcset;\n                  if (prVar59->subexp_map != (Idx *)0x0) {\n                    aVar49.sbcset = (re_bitset_ptr_t)(aVar4.idx + -1);\n                    prVar52 = (re_dfa_t *)0x0;\n                    prVar19 = pmatch;\n                    while( true ) {\n                      aVar45.idx = (int)prVar52 * 4;\n                      if ((re_dfa_t *)aVar49.sbcset == prVar52) break;\n                      if ((re_dfa_t *)prVar59->subexp_map[(int)prVar52] != prVar52) {\n                        prVar19[1].rm_so =\n                             pmatch[(int)((int)&((re_string_t *)\n                                                &((re_dfa_t *)prVar59->subexp_map[(int)prVar52])->\n                                                 nodes)->raw_mbs + 1)].rm_so;\n                        prVar19[1].rm_eo = pmatch[prVar59->subexp_map[(int)prVar52] + 1].rm_eo;\n                      }\n                      prVar52 = (re_dfa_t *)((int)&((re_string_t *)&prVar52->nodes)->raw_mbs + 1);\n                      prVar19 = prVar19 + 1;\n                    }\n                  }\n                  goto LAB_000557e4;\n                }\n                if ((char)prVar59->field_0x58 < '\0') {\n                  bVar36 = 0 < prVar59->nbackref;\n                }\n                else {\n                  bVar36 = false;\n                }\n                aVar45.sbcset = (re_bitset_ptr_t)&mctx;\n                aVar49.sbcset = aVar4.sbcset;\n                prVar51 = (re_dfa_t *)pmatch;\n                local_150.idx =\n                     set_regs(preg,(re_match_context_t *)aVar45.mbcset,aVar4.ctx_type,pmatch,bVar36)\n                ;\n                if ((re_dfa_t *)local_150.sbcset == (re_dfa_t *)0x0) goto LAB_000555ac;\n              }\n            }\n          }\n          else if ((uint)mctx.input.bufs_len < 0x3fffffff) {\n            mctx.state_log =\n                 (re_dfastate_t **)(*(code *)PTR_malloc_00079b54)((mctx.input.bufs_len + 1) * 4);\n            if (mctx.state_log != (re_dfastate_t **)0x0) goto LAB_00055a40;\n            local_150.idx = 0xc;\n            stop = aVar56.idx;\n          }\n          else {\n            local_150.idx = 0xc;\n            stop = aVar56.idx;\n          }\n        }\n        else {\n          unaff_s5.idx = iVar55 * 8;\n          if (aVar56.sbcset < (re_dfa_t *)0xccccccd) {\n            unaff_s4 = (re_dfa_t *)(*(code *)PTR_malloc_00079b54)(iVar55 * 0x28);\n            mctx.bkref_ents = (re_backref_cache_entry *)unaff_s4;\n            mctx.sub_tops = (re_sub_match_top_t **)(*(code *)PTR_malloc_00079b54)(unaff_s5.sbcset);\n            if ((unaff_s4 != (re_dfa_t *)0x0) && (mctx.sub_tops != (re_sub_match_top_t **)0x0))\n            goto LAB_000559f0;\n          }\n          local_150.idx = 0xc;\n          stop = aVar56.idx;\n        }\nLAB_000557e4:\n        (*(code *)PTR_free_00079c24)(mctx.state_log);\n        preg = (regex_t *)aVar49;\n        if (prVar59->nbackref != 0) {\n          match_ctx_clean(&mctx);\n          (*(code *)PTR_free_00079c24)(mctx.sub_tops);\n          (*(code *)PTR_free_00079c24)(mctx.bkref_ents);\n          preg = (regex_t *)aVar49;\n        }\n        re_string_destruct(&mctx.input);\n        aStack_1a0 = aVar46;\n        paStack_19c = paVar18;\n      }\n    }" { (expression_statement "aVar4.idx = last_start;" (assignment_expression "aVar4.idx = last_start" (field_expression "aVar4.idx" identifier . field_identifier) = identifier) ;) (if_statement "if (((((prVar59->init_state->nodes).nelem == 0) &&\n           ((prVar59->init_state_word->nodes).nelem == 0)) &&\n          (((prVar59->init_state_nl->nodes).nelem == 0 || ((preg->field_0x1c & 1) == 0)))) &&\n         ((aVar4.idx = start, start != 0 &&\n          (start = last_start, aVar4.idx = last_start, last_start != 0)))) {\n        local_150.idx = 1;\n        aStack_1a0.idx = last_start;\n      }\n      else {\n        last_start = aVar4.idx;\n        aVar4.sbcset = (re_bitset_ptr_t)(nmatch - local_118);\n        if ((re_dfa_t *)aVar4.sbcset == (re_dfa_t *)0x0) {\n          paVar54 = (anon_union_4_5_a39f51ca_for_opr *)(uint)(prVar59->nbackref != 0);\n        }\n        else {\n          paVar54 = (anon_union_4_5_a39f51ca_for_opr *)0x1;\n        }\n        puVar50 = preg->translate;\n        mctx.input.icase = (uchar)((preg->syntax << 9) >> 0x1f);\n        mctx.input.mb_cur_max = prVar59->mb_cur_max;\n        aVar46.sbcset = (re_bitset_ptr_t)(prVar59->nodes_len + 1);\n        if (aVar46.idx < mctx.input.mb_cur_max) {\n          aVar46 = (anon_union_4_5_a39f51ca_for_opr)mctx.input.mb_cur_max;\n        }\n        aVar49.idx._0_3_ = 0;\n        aVar49.idx._3_1_ = ((re_bitset_ptr_t)(length + 1)).idx < aVar46.idx;\n        prVar51 = (re_dfa_t *)0x1;\n        mctx.input.mbs_allocated = mctx.input.icase;\n        if (puVar50 != (uchar *)0x0) {\n          mctx.input.mbs_allocated = 1;\n        }\n        mctx.input.is_utf8 = (uchar)((uint)(*(int *)&prVar59->field_0x58 << 2) >> 0x1f);\n        mctx.input.map_notascii = (uchar)((uint)(*(int *)&prVar59->field_0x58 << 3) >> 0x1f);\n        aVar45.sbcset = ((re_bitset_ptr_t)(length + 1)).sbcset;\n        if ((re_dfa_t *)aVar49.sbcset == (re_dfa_t *)0x0) {\n          aVar45 = aVar46;\n        }\n        mctx.input.raw_mbs = (uchar *)string;\n        mctx.input.raw_len = length;\n        mctx.input.len = length;\n        mctx.input.raw_stop = length;\n        mctx.input.stop = length;\n        mctx.input.trans = puVar50;\n        local_150.idx = re_string_realloc_buffers(&mctx.input,aVar45.idx);\n        aVar46.idx = start;\n        paVar18 = paVar54;\n        stop = stop;\n        if ((re_dfa_t *)local_150.sbcset != (re_dfa_t *)0x0) goto LAB_000557e4;\n        mctx.input.word_char = prVar59->word_char;\n        mctx.input.word_ops_used = (uchar)((uint)(*(int *)&prVar59->field_0x58 << 4) >> 0x1f);\n        paVar2 = (anon_union_4_5_a39f51ca_for_opr *)0x0;\n        mctx.input.valid_len = (Idx)paVar2;\n        if ((mctx.input.mbs_allocated == '\0') &&\n           (mctx.input.mbs = (uchar *)string, prVar59->mb_cur_max < 2)) {\n          mctx.input.valid_len = length;\n        }\n        mctx.input.stop = stop;\n        mctx.input.raw_stop = stop;\n        mctx.input.newline_anchor = (uchar)((uint)(*(int *)&preg->field_0x1c << 7) >> 0x1f);\n        iVar55 = prVar59->nbackref;\n        aVar56.idx = iVar55 * 2;\n        mctx.eflags = eflags;\n        mctx.match_last = -1;\n        mctx.input.valid_raw_len = mctx.input.valid_len;\n        if ((int)aVar56 < 1) {\nLAB_000559f0:\n          mctx.max_mb_elem_len = 1;\n          mctx.abkref_ents = aVar56.idx;\n          mctx.asub_tops = aVar56.idx;\n          if ((aVar4.sbcset < (re_dfa_t *)0x2) && ((prVar59->field_0x58 & 0x40) == 0)) {\n            mctx.state_log = (re_dfastate_t **)0x0;\nLAB_00055a40:\n            mctx.input.tip_context = 6;\n            if ((eflags & 1U) != 0) {\n              mctx.input.tip_context = 4;\n            }\n            aVar39.idx = 1;\n            aVar40.idx = start;\n            if (last_start < start) {\n              aVar39.idx = -1;\n              aVar40.idx = last_start;\n            }\n            aVar41.idx = last_start;\n            if (last_start <= start) {\n              aVar41.idx = start;\n            }\n            iVar55 = prVar59->mb_cur_max;\n            rVar20 = 8;\n            if ((re_dfa_t *)local_148.sbcset != (re_dfa_t *)0x0) {\n              if (iVar55 == 1) {\n                paVar43 = (anon_union_4_5_a39f51ca_for_opr *)0x4;\n              }\n              else {\n                paVar43 = paVar2;\n                if ((-1 < (int)(preg->syntax << 9)) && (puVar50 == (uchar *)0x0)) {\n                  paVar43 = (anon_union_4_5_a39f51ca_for_opr *)0x4;\n                }\n              }\n              aVar45.sbcset = (re_bitset_ptr_t)0x0;\n              if (start <= last_start) {\n                aVar45.idx = 2;\n              }\n              rVar20 = (uint)(puVar50 != (uchar *)0x0) | (uint)paVar43 | aVar45.ctx_type;\n            }\n            match_first = start;\n            if (start < aVar40.idx) {\n              local_150.idx = 1;\n              stop = aVar56.idx;\n            }\n            else {\n              aVar46.idx._0_3_ = 0;\n              aVar46.idx._3_1_ = last_start < start;\n              if (aVar41.idx < start) {\n                local_150.idx = 1;\n                stop = aVar56.idx;\n              }\n              else {\n                piVar38 = &match_first;\n                if ((re_dfa_t *)aVar46.sbcset != (re_dfa_t *)0x0) {\n                  piVar38 = (int *)0x0;\n                }\n                pcVar5 = (code *)(PTR_DAT_000799a4 + -0x2b7c);\n                piVar6 = (int *)(PTR_s_nt0_000795b8 + (rVar20 - 4) * 4 + 0x6e38);\nLAB_00055b44:\n                if (rVar20 - 4 < 5) {\n                    /* WARNING: Could not emulate address calculation at 0x00054920 */\n                    /* WARNING: Treating indirect jump as call */\n                  rVar21 = (*(code *)(&_gp + *piVar6))();\n                  return rVar21;\n                }\n                last_start = (Idx)&mctx;\n                prVar52 = prVar51;\n                while( true ) {\n                  aVar46.idx = match_first;\n                  uVar8 = match_first - mctx.input.raw_mbs_idx;\n                  aVar49 = (anon_union_4_5_a39f51ca_for_opr)eflags;\n                  paVar18 = paVar2;\n                  stop = local_148.idx;\n                  unaff_s4 = (re_dfa_t *)length;\n                  unaff_s5 = aVar39;\n                  unaff_s7 = aVar41;\n                  if ((uint)mctx.input.valid_raw_len <= uVar8) {\n                    aVar45.idx = match_first;\n                    local_150.sbcset = (re_bitset_ptr_t)(*pcVar5)(last_start);\n                    prVar51 = prVar52;\n                    if ((re_dfa_t *)local_150.sbcset != (re_dfa_t *)0x0) goto LAB_000557e4;\n                    uVar8 = (int)aVar46.sbcset - mctx.input.raw_mbs_idx;\n                  }\n                  if (aVar46.idx < length) {\n                    uVar8 = (uint)mctx.input.mbs[uVar8];\n                  }\n                  else {\n                    uVar8 = 0;\n                  }\n                  aVar56.sbcset = aVar46.sbcset + aVar39.sbcset;\n                  aVar46.sbcset = aVar56.sbcset;\n                  if (*(char *)((int)local_148.sbcset + uVar8) != '\0') break;\n                  prVar51 = prVar52;\n                  match_first = aVar56.idx;\n                  if (aVar56.idx < aVar40.idx) {\n                    local_150.idx = 1;\n                    goto LAB_000557e4;\n                  }\n                  aVar46.idx._0_3_ = 0;\n                  aVar46.idx._3_1_ = aVar41.idx < aVar56.idx;\n                  if ((re_dfa_t *)aVar46.sbcset != (re_dfa_t *)0x0) {\n                    local_150.idx = 1;\n                    goto LAB_000557e4;\n                  }\n                }\n                while( true ) {\n                  aVar45.idx = match_first;\n                  aVar49 = (anon_union_4_5_a39f51ca_for_opr)eflags;\n                  aVar7.sbcset = (re_bitset_ptr_t)(*pcVar5)(&mctx);\n                  aVar15 = (anon_union_4_5_a39f51ca_for_opr)mctx.dfa;\n                  aVar56.idx = mctx.input.cur_idx;\n                  prVar51 = prVar52;\n                  local_150.sbcset = aVar7.sbcset;\n                  if ((re_dfa_t *)aVar7.sbcset != (re_dfa_t *)0x0) goto LAB_000557e4;\n                  if (((iVar55 != 1) && (mctx.input.valid_len != 0)) &&\n                     (*mctx.input.wcs == 0xffffffff)) goto LAB_00055b1c;\n                  mctx.max_mb_elem_len = 0;\n                  mctx.nbkref_ents = 0;\n                  mctx.state_log_top = 0;\n                  local_138.idx = mctx.input.cur_idx;\n                  err = _REG_NOERROR;\n                  unaff_s7 = (anon_union_4_5_a39f51ca_for_opr)(mctx.dfa)->init_state;\n                  aVar49 = (anon_union_4_5_a39f51ca_for_opr)mctx.eflags;\n                  aVar46 = aVar15;\n                  if ((*(byte *)(unaff_s7.idx + 0x34) & 1) == 0) break;\n                  aVar45.sbcset = (re_bitset_ptr_t)(mctx.input.cur_idx + -1);\n                  prVar51 = (re_dfa_t *)re_string_context_at(&mctx.input,aVar45.idx,mctx.eflags);\n                  if (((uint)prVar51 & 1) == 0) {\n                    if (prVar51 == (re_dfa_t *)0x0) break;\n                    if (((uint)prVar51 & 6) == 6) {\n                      unaff_s7 = (anon_union_4_5_a39f51ca_for_opr)\n                                 ((re_dfa_t *)aVar15.idx)->init_state_begbuf;\n                      goto LAB_00054d1c;\n                    }\n                    if (((uint)prVar51 & 2) != 0) {\n                      unaff_s7 = (anon_union_4_5_a39f51ca_for_opr)\n                                 ((re_dfa_t *)aVar15.idx)->init_state_nl;\n                      goto LAB_00054d1c;\n                    }\n                    prVar52 = prVar51;\n                    if (((uint)prVar51 & 4) == 0) break;\n                    aVar49 = (anon_union_4_5_a39f51ca_for_opr)\n                             ((anon_union_4_5_a39f51ca_for_opr *)(unaff_s7.idx + 0x28))->mbcset;\n                    aVar45 = aVar15;\n                    unaff_s7.sbcset =\n                         &re_acquire_state_context\n                                    (&err,aVar15.sbcset,(re_node_set *)aVar49.mbcset,(uint)prVar51)\n                          ->hash;\n                    prVar52 = prVar51;\n                    if ((re_dfa_t *)unaff_s7.sbcset != (re_dfa_t *)0x0) break;\n                    if (err == _REG_ESPACE) goto LAB_00055914;\n                  }\n                  else {\n                    unaff_s7 = (anon_union_4_5_a39f51ca_for_opr)\n                               ((re_dfa_t *)aVar15.idx)->init_state_word;\nLAB_00054d1c:\n                    prVar52 = (re_dfa_t *)PTR_s_nt0_000795b8;\n                    if ((re_dfa_t *)unaff_s7.sbcset != (re_dfa_t *)0x0) break;\n                  }\n                  prVar52 = (re_dfa_t *)(PTR_s_nt0_000795b8 + 0x6eb0);\n                  aVar45.sbcset = (re_bitset_ptr_t)(PTR_s_nt0_000795b8 + 0x712c);\n                  match_first = (*(code *)PTR___assert_fail_000799f8)\n                                          (PTR_s_nt0_000795b8 + 0x71a0,aVar45.sbcset,0x435);\n                  if ((re_bitset_ptr_t)match_first == aVar41.sbcset) {\n                    if (match_first < length) {\n                      uVar8 = (uint)(byte)string[match_first];\n                    }\n                    else {\n                      uVar8 = 0;\n                    }\n                    if (puVar50 != (uchar *)0x0) {\n                      uVar8 = (uint)puVar50[uVar8];\n                    }\n                    if (*(char *)((int)local_148.sbcset + uVar8) == '\0') {\n                      local_150.idx = 1;\n                      aVar49 = (anon_union_4_5_a39f51ca_for_opr)eflags;\n                      prVar51 = prVar52;\n                      goto LAB_000557e4;\n                    }\n                  }\n                }\n                prVar51 = prVar52;\n                bVar36 = piVar38 != (int *)0x0;\n                if ((mctx.state_log == (re_dfastate_t **)0x0) ||\n                   (((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + aVar56.idx))->mbcset =\n                         (re_charset_t *)unaff_s7, ((re_dfa_t *)aVar15.idx)->nbackref == 0)) {\nLAB_00054d50:\n                  if ((int)*(bin_tree_t **)(unaff_s7.idx + 0x34) << 4 < 0) {\n                    if (((*(byte *)(unaff_s7.idx + 0x34) & 1) == 0) ||\n                       (aVar45 = unaff_s7, aVar49 = aVar56,\n                       IVar17 = check_halt_state_context(&mctx,unaff_s7.idx,aVar56.idx), IVar17 != 0\n                       )) {\n                      local_c4 = aVar56;\n                      if (paVar54 == (anon_union_4_5_a39f51ca_for_opr *)0x0) goto LAB_00055dbc;\n                      prVar52 = (re_dfa_t *)0x1;\n                    }\n                    else {\n                      aVar56.idx = -1;\n                      prVar52 = (re_dfa_t *)0x0;\n                    }\n                  }\n                  else {\n                    aVar56.idx = -1;\n                    prVar52 = (re_dfa_t *)0x0;\n                  }\n                  pcVar9 = (code *)(PTR_DAT_000799a4 + -0x7144);\n                  pcVar10 = (code *)(PTR_DAT_000799a4 + -0x1980);\n                  pcVar11 = (code *)(PTR_DAT_000799a4 + -0x2f9c);\n                  local_c4 = aVar56;\n                  local_144 = piVar38;\n                  while( true ) {\n                    uVar63 = CONCAT44(mctx.input.valid_len,mctx.input.len);\n                    unaff_s5.sbcset = (re_bitset_ptr_t)(mctx.input.cur_idx + 1);\n                    aVar45.idx = mctx.input.cur_idx;\n                    if (mctx.input.stop <= mctx.input.cur_idx) break;\n                    if ((mctx.input.bufs_len <= unaff_s5.idx) &&\n                       (mctx.input.bufs_len < mctx.input.len)) goto LAB_00054e94;\n                    if (mctx.input.valid_len <= unaff_s5.idx) {\n                      while ((int)((ulonglong)uVar63 >> 0x20) < (int)uVar63) {\nLAB_00054e94:\n                        aVar45.sbcset =\n                             (re_bitset_ptr_t)\n                             ((int)&((re_string_t *)&(aVar45.mbcset)->mbchars)->raw_mbs + 2);\n                        err = (*pcVar9)(&mctx);\n                        if (err == _REG_NOERROR) break;\n                        aVar15 = aVar46;\n                        if (err == _REG_ESPACE) goto LAB_00055914;\n                        prVar51 = (re_dfa_t *)(PTR_s_nt0_000795b8 + 0x6eb0);\n                        aVar49.idx = 0x46c;\n                        aVar45.sbcset = (re_bitset_ptr_t)(PTR_s_nt0_000795b8 + 0x712c);\n                        uVar63 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0);\n                        prVar52 = prVar59;\n                      }\n                    }\n                    prVar3 = mctx.dfa;\n                    if ((int)*(bin_tree_t **)(unaff_s7.idx + 0x34) << 5 < 0) {\n                      paVar18 = (anon_union_4_5_a39f51ca_for_opr *)prVar3;\n                      if (0 < (int)(unaff_s7.mbcset)->range_ends) {\n                        pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6fdc);\n                        pcVar13 = (code *)(PTR_DAT_000799a4 + -0x6ef0);\n                        stop = 0;\n                        do {\n                          last_start = ((anon_union_4_5_a39f51ca_for_opr *)\n                                       ((unaff_s7.mbcset)->char_classes + stop))->idx;\n                          prVar53 = prVar3->nodes;\n                          uVar8 = *(uint *)&prVar53[last_start].field_0x4;\n                          if ((uVar8 & 0x800) != 0) {\n                            if ((uVar8 & 0xffc000) != 0) {\n                              aVar45.idx = mctx.input.cur_idx;\n                              uVar60 = (*pcVar13)(&mctx,mctx.input.cur_idx,mctx.eflags);\n                              uVar8 = (uint)(*(int *)&prVar53[last_start].field_0x4 << 8) >> 0x16;\n                              if ((uVar8 & 4) == 0) {\n                                uVar26 = uVar60 & 1;\n                                if ((uVar8 & 8) != 0) goto joined_r0x00054f40;\n                              }\n                              else {\n                                uVar26 = uVar8 & 8;\n                                if ((uVar60 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                                if (uVar26 != 0) goto LAB_000550a4;\n                              }\n                              if ((((uVar8 & 0x20) != 0) && ((uVar60 & 2) == 0)) ||\n                                 (((uVar8 & 0x80) != 0 &&\n                                  (prVar51 = (re_dfa_t *)mctx.input.cur_idx, (uVar60 & 8) == 0))))\n                              goto LAB_000550a4;\n                            }\n                            aVar49.sbcset = (re_bitset_ptr_t)&mctx;\n                            aVar45.idx = last_start;\n                            prVar51 = (re_dfa_t *)mctx.input.cur_idx;\n                            iVar61 = (*pcVar11)(prVar3);\n                            if (iVar61 != 0) {\n                              aVar46.sbcset = (re_bitset_ptr_t)(iVar61 + mctx.input.cur_idx);\n                              if (iVar61 <= mctx.max_mb_elem_len) {\n                                iVar61 = mctx.max_mb_elem_len;\n                              }\n                              aVar45.sbcset = aVar46.sbcset;\n                              mctx.max_mb_elem_len = iVar61;\n                              err_1 = (*pcVar12)(&mctx);\n                              rVar21 = err_1;\n                              if (err_1 != _REG_NOERROR) goto LAB_00055e44;\n                              aVar49.sbcset =\n                                   (re_bitset_ptr_t)(prVar3->eclosures + prVar3->nexts[last_start]);\n                              unaff_s4 = (re_dfa_t *)(aVar46.idx * 4);\n                              last_start = (Idx)(mctx.state_log + aVar46.idx);\n                              if (*(bitset_word_t *)last_start == 0) {\n                                dest_nodes.alloc = *aVar49.sbcset;\n                                dest_nodes.nelem =\n                                     ((re_node_set *)&(aVar49.mbcset)->range_starts)->alloc;\n                                dest_nodes.elems = (aVar49.mbcset)->range_ends;\n                                prVar51 = (re_dfa_t *)\n                                          (*pcVar13)(&mctx,(undefined1 *)(aVar46.idx + -1),\n                                                     mctx.eflags);\n                                aVar49.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                                aVar45 = (anon_union_4_5_a39f51ca_for_opr)prVar3;\n                                prVar35 = re_acquire_state_context\n                                                    (&err_1,prVar3,(re_node_set *)aVar49.mbcset,\n                                                     (uint)prVar51);\n                                ((re_string_t *)&((re_charset_t *)last_start)->mbchars)->raw_mbs =\n                                     (uchar *)prVar35;\n                              }\n                              else {\n                                aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                                         ((anon_union_4_5_a39f51ca_for_opr *)\n                                         (*(bitset_word_t *)last_start + 0x28))->mbcset;\n                                err_1 = re_node_set_init_union\n                                                  (&dest_nodes,(re_node_set *)aVar45.mbcset,\n                                                   (re_node_set *)aVar49.mbcset);\n                                rVar21 = err_1;\n                                if (err_1 != _REG_NOERROR) goto LAB_00055e44;\n                                prVar51 = (re_dfa_t *)\n                                          (*pcVar13)(&mctx,(undefined1 *)(aVar46.idx + -1),\n                                                     mctx.eflags);\n                                pprVar14 = mctx.state_log + aVar46.idx;\n                                aVar49.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                                aVar45 = (anon_union_4_5_a39f51ca_for_opr)prVar3;\n                                prVar35 = re_acquire_state_context\n                                                    (&err_1,prVar3,(re_node_set *)aVar49.mbcset,\n                                                     (uint)prVar51);\n                                *pprVar14 = prVar35;\n                                (*(code *)PTR_free_00079c24)(dest_nodes.elems);\n                              }\n                              unaff_s4 = (re_dfa_t *)(mctx.state_log + aVar46.idx);\n                              if ((unaff_s4->nodes == (re_token_t *)0x0) &&\n                                 (rVar21 = err_1, err_1 != _REG_NOERROR)) goto LAB_00055e44;\n                            }\n                          }\nLAB_000550a4:\n                          stop = (int)&((re_string_t *)&((re_charset_t *)stop)->mbchars)->raw_mbs +\n                                 1;\n                        } while (stop < (int)(unaff_s7.mbcset)->range_ends);\n                      }\n                      err = _REG_NOERROR;\n                    }\n                    uVar8 = (uint)mctx.input.mbs[mctx.input.cur_idx];\n                    mctx.input.cur_idx = mctx.input.cur_idx + 1;\n                    do {\n                      if (*(re_dfastate_t **)(unaff_s7.idx + 0x2c) != (re_dfastate_t *)0x0) {\n                        aVar49 = (anon_union_4_5_a39f51ca_for_opr)\n                                 ((anon_union_4_5_a39f51ca_for_opr *)\n                                 (&(*(re_dfastate_t **)(unaff_s7.idx + 0x2c))->hash + uVar8))->\n                                 mbcset;\nLAB_000553a0:\n                        aVar15 = aVar49;\n                        if (mctx.state_log != (re_dfastate_t **)0x0) goto LAB_000553ac;\n                        goto LAB_000553cc;\n                      }\n                      paVar18 = *(anon_union_4_5_a39f51ca_for_opr **)(unaff_s7.idx + 0x30);\n                      if (paVar18 != (anon_union_4_5_a39f51ca_for_opr *)0x0) {\n                        aVar45.sbcset = (re_bitset_ptr_t)(mctx.input.cur_idx + -1);\n                        uVar60 = re_string_context_at(&mctx.input,aVar45.idx,mctx.eflags);\n                        if ((uVar60 & 1) == 0) {\n                          aVar49 = (anon_union_4_5_a39f51ca_for_opr)paVar18[uVar8].mbcset;\n                        }\n                        else {\n                          paVar18 = paVar18 + uVar8 + 0x100;\n                          aVar49 = (anon_union_4_5_a39f51ca_for_opr)paVar18->mbcset;\n                        }\n                        goto LAB_000553a0;\n                      }\n                      aVar45 = unaff_s7;\n                      aVar49 = (anon_union_4_5_a39f51ca_for_opr)mctx.eflags;\n                      iVar61 = (*pcVar10)(mctx.dfa);\n                    } while (iVar61 != 0);\n                    err = _REG_ESPACE;\n                    rVar21 = err;\nLAB_00055e44:\n                    err = rVar21;\n                    aVar46.sbcset = (re_bitset_ptr_t)0x0;\n                    if (mctx.state_log == (re_dfastate_t **)0x0) {\n                      aVar15.sbcset = aVar46.sbcset;\n                      if (err != _REG_NOERROR) goto LAB_00055914;\n                      break;\n                    }\n                    aVar49.sbcset = (re_bitset_ptr_t)0x0;\nLAB_000553ac:\n                    aVar45.sbcset = (re_bitset_ptr_t)&mctx;\n                    aVar15.sbcset =\n                         &merge_state_with_log\n                                    (&err,(re_match_context_t *)aVar45.mbcset,aVar49.sbcset)->hash;\nLAB_000553cc:\n                    aVar46 = aVar15;\n                    if ((re_dfa_t *)aVar15.sbcset == (re_dfa_t *)0x0) {\n                      if (err != _REG_NOERROR) goto LAB_00055914;\n                      if ((mctx.state_log == (re_dfastate_t **)0x0) ||\n                         ((prVar52 != (re_dfa_t *)0x0 &&\n                          (paVar54 == (anon_union_4_5_a39f51ca_for_opr *)0x0)))) break;\n                      stop = (Idx)&mctx;\n                      last_start = (Idx)&err;\n                      paVar18 = (anon_union_4_5_a39f51ca_for_opr *)(PTR_DAT_000799a4 + 0x3684);\n                      do {\n                        pprVar14 = mctx.state_log + mctx.input.cur_idx;\n                        IVar17 = mctx.input.cur_idx;\n                        do {\n                          IVar17 = IVar17 + 1;\n                          aVar45.idx = mctx.state_log_top;\n                          aVar46 = aVar15;\n                          if (mctx.state_log_top < IVar17) goto LAB_00055da8;\n                          mctx.input.cur_idx = mctx.input.cur_idx + 1;\n                          pprVar14 = pprVar14 + 1;\n                        } while (*pprVar14 == (re_dfastate_t *)0x0);\n                        aVar49.sbcset = (re_bitset_ptr_t)0x0;\n                        aVar45.sbcset = (re_bitset_ptr_t)stop;\n                        aVar46.sbcset = (re_bitset_ptr_t)(*(code *)paVar18)(last_start);\n                        if (err != _REG_NOERROR) {\n                          if ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0) goto LAB_00055da8;\n                          break;\n                        }\n                        aVar45.idx = mctx.state_log_top;\n                      } while ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0);\n                    }\n                    aVar16.ctx_type = unaff_s7.ctx_type ^ aVar46.ctx_type;\n                    aVar56 = unaff_s7;\n                    aVar15 = local_138;\n                    if ((bVar36) &&\n                       (aVar56.ctx_type = aVar16.ctx_type, aVar15.sbcset = unaff_s5.sbcset,\n                       (re_dfa_t *)aVar16.sbcset != (re_dfa_t *)0x0)) {\n                      bVar36 = false;\n                      aVar15 = local_138;\n                    }\n                    local_138 = aVar15;\n                    unaff_s7 = aVar46;\n                    if (((*(byte *)(aVar46.idx + 0x34) & 8) != 0) &&\n                       (((*(byte *)(aVar46.idx + 0x34) & 1) == 0 ||\n                        (aVar45 = aVar46, aVar49.idx = mctx.input.cur_idx,\n                        IVar17 = check_halt_state_context(&mctx,aVar46.idx,mctx.input.cur_idx),\n                        IVar17 != 0)))) {\n                      unaff_s7 = aVar56;\n                      local_c4.idx = mctx.input.cur_idx;\n                      if (paVar54 == (anon_union_4_5_a39f51ca_for_opr *)0x0) goto LAB_00055dbc;\n                      prVar52 = (re_dfa_t *)0x1;\n                      local_144 = (int *)0x0;\n                      unaff_s7 = aVar46;\n                    }\n                  }\nLAB_00055da8:\n                  if (local_144 != (int *)0x0) {\n                    *local_144 = *local_144 + (int)local_138.sbcset;\n                  }\n                }\n                else {\n                  aVar46.sbcset = (re_bitset_ptr_t)&(unaff_s7.mbcset)->range_starts;\n                  aVar49.sbcset = (re_bitset_ptr_t)0x0;\n                  aVar45 = aVar46;\n                  err = check_subexp_matching_top(&mctx,(re_node_set *)aVar46.mbcset,0);\n                  local_c4.idx = err;\n                  if ((re_dfa_t *)err == (re_dfa_t *)0x0) {\n                    if ((*(byte *)(unaff_s7.idx + 0x34) & 2) == 0) {\n                      aVar45 = aVar46;\n                      bVar36 = false;\n                    }\n                    else {\n                      aVar45 = aVar46;\n                      err = transit_state_bkref(&mctx,(re_node_set *)aVar46.mbcset);\n                      local_c4.idx = err;\n                      if ((re_dfa_t *)err != (re_dfa_t *)0x0) goto LAB_00055dbc;\n                      bVar36 = false;\n                    }\n                    goto LAB_00054d50;\n                  }\n                }\nLAB_00055dbc:\n                if ((re_dfa_t *)local_c4.sbcset == (re_dfa_t *)0xffffffff) {\nLAB_00055b04:\n                  match_ctx_clean(&mctx);\nLAB_00055b1c:\n                  match_first = aVar39.idx + match_first;\n                  if (aVar40.idx <= match_first) goto code_r0x00055b38;\n                  local_150.idx = 1;\n                  goto LAB_000557e4;\n                }\n                if ((re_dfa_t *)local_c4.sbcset == (re_dfa_t *)&SUB_fffffffe) {\n                  local_150.idx = 0xc;\n                  goto LAB_000557e4;\n                }\n                mctx.match_last = local_c4.idx;\n                if ((preg->field_0x1c & 8) == 0) {\n                  if (aVar4.sbcset < (re_dfa_t *)0x2) {\n                    if (prVar59->nbackref == 0) goto LAB_00055c08;\n                    aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                             ((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + local_c4.idx))->\n                             mbcset;\n                    aVar49 = local_c4;\n                    mctx.last_node =\n                         check_halt_state_context(&mctx,(re_dfastate_t *)aVar45.mbcset,local_c4.idx)\n                    ;\n                  }\n                  else {\n                    aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                             ((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + local_c4.idx))->\n                             mbcset;\n                    aVar49 = local_c4;\n                    mctx.last_node =\n                         check_halt_state_context(&mctx,(re_dfastate_t *)aVar45.mbcset,local_c4.idx)\n                    ;\n                  }\n                  if (aVar4.sbcset < (re_dfa_t *)0x2) {\nLAB_00055c6c:\n                    prVar52 = prVar51;\n                    unaff_s4 = mctx.dfa;\n                    if (prVar59->nbackref == 0) goto LAB_00055548;\n                  }\n                  else {\n                    cVar37 = prVar59->field_0x58;\nLAB_00055c20:\n                    prVar52 = prVar51;\n                    if (-1 < cVar37) goto LAB_00055c6c;\n                  }\n                  paVar18 = (anon_union_4_5_a39f51ca_for_opr *)mctx.last_node;\n                  prVar3 = mctx.dfa;\n                  unaff_s4 = prVar3;\n                  if ((uint)local_c4 < (re_dfa_t *)0x3fffffff) {\n                    aVar46.idx = (int)((int)&((re_string_t *)&(local_c4.mbcset)->mbchars)->raw_mbs +\n                                      1) * 4;\n                    unaff_s5.sbcset = (re_bitset_ptr_t)(*(code *)PTR_malloc_00079b54)(aVar46.sbcset)\n                    ;\n                    if ((re_dfa_t *)unaff_s5.sbcset == (re_dfa_t *)0x0) {\nLAB_00055b9c:\n                      (*(code *)PTR_free_00079c24)(unaff_s5.sbcset);\n                      local_150.idx = 0xc;\n                      prVar51 = prVar52;\n                    }\n                    else {\n                      aVar45.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                      if (prVar3->nbackref == 0) {\n                        dest_nodes.nelem = 0;\n                        dest_nodes.elems = &paVar18->idx;\n                        dest_nodes.alloc = (Idx)unaff_s5.sbcset;\n                        last_start = sift_states_backward(&mctx,(re_sift_context_t *)aVar45.mbcset);\n                        (*(code *)PTR_free_00079c24)(0);\n                        if ((re_dfa_t *)last_start == (re_dfa_t *)0x0) {\n                          aVar46.mbcset = (re_charset_t *)*unaff_s5.sbcset;\n                          if ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0) {\nLAB_00055b70:\n                            (*(code *)PTR_free_00079c24)(unaff_s5.sbcset);\n                            (*(code *)PTR_free_00079c24)(aVar46.sbcset);\n                            prVar51 = prVar52;\n                            goto LAB_00055b04;\n                          }\nLAB_00055528:\n                          (*(code *)PTR_free_00079c24)(mctx.state_log);\n                          prVar51 = prVar52;\n                          unaff_s4 = prVar3;\n                          mctx.match_last = local_c4.idx;\n                          mctx.last_node = (Idx)paVar18;\n                          mctx.state_log = (re_dfastate_t **)unaff_s5.sbcset;\n                          goto LAB_00055548;\n                        }\nLAB_00055acc:\n                        aVar46.sbcset = (re_bitset_ptr_t)0x0;\n                        prVar51 = prVar52;\n                        unaff_s4 = prVar3;\n                      }\n                      else {\n                        aVar46.sbcset =\n                             (re_bitset_ptr_t)(*(code *)PTR_malloc_00079b54)(aVar46.sbcset);\n                        if ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0) goto LAB_00055b9c;\n                        unaff_s7.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                        pcVar9 = (code *)(PTR_DAT_000799a4 + 0x421c);\n                        pcVar10 = (code *)(PTR_DAT_000799a4 + -0x6bc0);\n                        prVar51 = prVar52;\n                        while( true ) {\n                          prVar52 = (re_dfa_t *)(local_c4.idx + 1);\n                          stop = (int)prVar52 * 4;\n                          aVar49.idx = stop;\n                          (*(code *)PTR_memset_00079b00)(aVar46.sbcset,0);\n                          aVar45.sbcset = unaff_s7.sbcset;\n                          dest_nodes.alloc = (Idx)unaff_s5.sbcset;\n                          dest_nodes.nelem = (Idx)aVar46.sbcset;\n                          dest_nodes.elems = (Idx *)paVar18;\n                          last_start = (*pcVar9)(&mctx);\n                          (*(code *)PTR_free_00079c24)(0);\n                          unaff_s4 = prVar52;\n                          if ((re_dfa_t *)last_start != (re_dfa_t *)0x0) break;\n                          if ((*unaff_s5.sbcset != 0) || (stop = stop + -4, *aVar46.sbcset != 0)) {\n                            aVar45.sbcset = unaff_s5.sbcset;\n                            aVar49.sbcset = aVar46.sbcset;\n                            last_start = merge_state_array(prVar3,(re_dfastate_t **)unaff_s5.sbcset,\n                                                           (re_dfastate_t **)aVar46.sbcset,\n                                                           (Idx)prVar52);\n                            (*(code *)PTR_free_00079c24)(aVar46.sbcset);\n                            if ((re_dfa_t *)last_start != (re_dfa_t *)0x0) goto LAB_00055acc;\n                            goto LAB_00055528;\n                          }\n                          stop = (Idx)(mctx.state_log + (int)&prVar52[-1].lock.__align + 0x17);\n                          do {\n                            while( true ) {\n                              local_c4.sbcset = (re_bitset_ptr_t)(local_c4.idx + -1);\n                              if (local_c4.idx < 0) goto LAB_00055b70;\n                              aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                                       ((anon_union_4_5_a39f51ca_for_opr *)(stop + -4))->idx;\n                              if ((re_dfa_t *)aVar45.sbcset != (re_dfa_t *)0x0) break;\n                              stop = stop + -4;\n                            }\n                            stop = stop + -4;\n                          } while ((*(byte *)(aVar45.idx + 0x34) & 8) == 0);\n                          paVar18 = (anon_union_4_5_a39f51ca_for_opr *)\n                                    (*pcVar10)(&mctx,aVar45.sbcset,local_c4.sbcset);\n                          prVar51 = prVar52;\n                        }\n                      }\n                      (*(code *)PTR_free_00079c24)(unaff_s5.sbcset);\n                      (*(code *)PTR_free_00079c24)(aVar46.sbcset);\n                      local_150.idx = last_start;\n                      if ((re_dfa_t *)last_start == (re_dfa_t *)0x1) goto LAB_00055b04;\n                    }\n                  }\n                  else {\n                    local_150.idx = 0xc;\n                    prVar51 = prVar52;\n                  }\n                  goto LAB_000557e4;\n                }\n                if (prVar59->nbackref != 0) {\n                  aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                           ((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + local_c4.idx))->\n                           mbcset;\n                  aVar49 = local_c4;\n                  mctx.last_node =\n                       check_halt_state_context(&mctx,(re_dfastate_t *)aVar45.mbcset,local_c4.idx);\n                  goto LAB_00055c6c;\n                }\nLAB_00055c08:\n                if (((preg->field_0x1c & 8) == 0) && ((re_dfa_t *)0x1 < aVar4.sbcset)) {\n                  cVar37 = prVar59->field_0x58;\n                  goto LAB_00055c20;\n                }\nLAB_00055548:\n                if ((re_dfa_t *)aVar4.sbcset == (re_dfa_t *)0x0) goto LAB_000557e4;\n                if (aVar4.sbcset < (re_dfa_t *)0x2) {\n                  pmatch->rm_so = 0;\n                  pmatch->rm_eo = mctx.match_last;\n                  goto LAB_000555ac;\n                }\n                prVar19 = pmatch + 1;\n                do {\n                  prVar19->rm_eo = -1;\n                  prVar19->rm_so = -1;\n                  prVar19 = prVar19 + 1;\n                } while (prVar19 != pmatch + aVar4.idx);\n                pmatch->rm_so = 0;\n                pmatch->rm_eo = mctx.match_last;\n                if ((preg->field_0x1c & 8) != 0) {\nLAB_000555ac:\n                  prVar19 = pmatch;\n                  do {\n                    aVar45.sbcset = (re_bitset_ptr_t)prVar19->rm_so;\n                    if ((re_dfa_t *)aVar45.sbcset != (re_dfa_t *)0xffffffff) {\n                      if (mctx.input.offsets_needed != '\0') {\n                        rVar47 = mctx.input.valid_raw_len;\n                        if (aVar45.sbcset != (re_bitset_ptr_t)mctx.input.valid_len) {\n                          rVar47 = mctx.input.offsets[aVar45.idx];\n                        }\n                        prVar19->rm_so = rVar47;\n                        rVar47 = mctx.input.valid_raw_len;\n                        if (mctx.input.valid_len != prVar19->rm_eo) {\n                          rVar47 = mctx.input.offsets[prVar19->rm_eo];\n                        }\n                        prVar19->rm_eo = rVar47;\n                      }\n                      prVar19->rm_so = prVar19->rm_so + match_first;\n                      aVar45.sbcset = (re_bitset_ptr_t)(prVar19->rm_eo + match_first);\n                      prVar19->rm_eo = (regoff_t)aVar45;\n                    }\n                    prVar19 = prVar19 + 1;\n                  } while (prVar19 != pmatch + aVar4.idx);\n                  if (0 < local_118) {\n                    prVar19 = pmatch + aVar4.idx;\n                    do {\n                      prVar19->rm_so = -1;\n                      prVar19->rm_eo = -1;\n                      prVar19 = prVar19 + 1;\n                    } while (prVar19 != pmatch + nmatch);\n                  }\n                  aVar49.idx = match_first;\n                  prVar51 = (re_dfa_t *)pmatch;\n                  local_150.sbcset = aVar7.sbcset;\n                  if (prVar59->subexp_map != (Idx *)0x0) {\n                    aVar49.sbcset = (re_bitset_ptr_t)(aVar4.idx + -1);\n                    prVar52 = (re_dfa_t *)0x0;\n                    prVar19 = pmatch;\n                    while( true ) {\n                      aVar45.idx = (int)prVar52 * 4;\n                      if ((re_dfa_t *)aVar49.sbcset == prVar52) break;\n                      if ((re_dfa_t *)prVar59->subexp_map[(int)prVar52] != prVar52) {\n                        prVar19[1].rm_so =\n                             pmatch[(int)((int)&((re_string_t *)\n                                                &((re_dfa_t *)prVar59->subexp_map[(int)prVar52])->\n                                                 nodes)->raw_mbs + 1)].rm_so;\n                        prVar19[1].rm_eo = pmatch[prVar59->subexp_map[(int)prVar52] + 1].rm_eo;\n                      }\n                      prVar52 = (re_dfa_t *)((int)&((re_string_t *)&prVar52->nodes)->raw_mbs + 1);\n                      prVar19 = prVar19 + 1;\n                    }\n                  }\n                  goto LAB_000557e4;\n                }\n                if ((char)prVar59->field_0x58 < '\0') {\n                  bVar36 = 0 < prVar59->nbackref;\n                }\n                else {\n                  bVar36 = false;\n                }\n                aVar45.sbcset = (re_bitset_ptr_t)&mctx;\n                aVar49.sbcset = aVar4.sbcset;\n                prVar51 = (re_dfa_t *)pmatch;\n                local_150.idx =\n                     set_regs(preg,(re_match_context_t *)aVar45.mbcset,aVar4.ctx_type,pmatch,bVar36)\n                ;\n                if ((re_dfa_t *)local_150.sbcset == (re_dfa_t *)0x0) goto LAB_000555ac;\n              }\n            }\n          }\n          else if ((uint)mctx.input.bufs_len < 0x3fffffff) {\n            mctx.state_log =\n                 (re_dfastate_t **)(*(code *)PTR_malloc_00079b54)((mctx.input.bufs_len + 1) * 4);\n            if (mctx.state_log != (re_dfastate_t **)0x0) goto LAB_00055a40;\n            local_150.idx = 0xc;\n            stop = aVar56.idx;\n          }\n          else {\n            local_150.idx = 0xc;\n            stop = aVar56.idx;\n          }\n        }\n        else {\n          unaff_s5.idx = iVar55 * 8;\n          if (aVar56.sbcset < (re_dfa_t *)0xccccccd) {\n            unaff_s4 = (re_dfa_t *)(*(code *)PTR_malloc_00079b54)(iVar55 * 0x28);\n            mctx.bkref_ents = (re_backref_cache_entry *)unaff_s4;\n            mctx.sub_tops = (re_sub_match_top_t **)(*(code *)PTR_malloc_00079b54)(unaff_s5.sbcset);\n            if ((unaff_s4 != (re_dfa_t *)0x0) && (mctx.sub_tops != (re_sub_match_top_t **)0x0))\n            goto LAB_000559f0;\n          }\n          local_150.idx = 0xc;\n          stop = aVar56.idx;\n        }\nLAB_000557e4:\n        (*(code *)PTR_free_00079c24)(mctx.state_log);\n        preg = (regex_t *)aVar49;\n        if (prVar59->nbackref != 0) {\n          match_ctx_clean(&mctx);\n          (*(code *)PTR_free_00079c24)(mctx.sub_tops);\n          (*(code *)PTR_free_00079c24)(mctx.bkref_ents);\n          preg = (regex_t *)aVar49;\n        }\n        re_string_destruct(&mctx.input);\n        aStack_1a0 = aVar46;\n        paStack_19c = paVar18;\n      }" if (parenthesized_expression "(((((prVar59->init_state->nodes).nelem == 0) &&\n           ((prVar59->init_state_word->nodes).nelem == 0)) &&\n          (((prVar59->init_state_nl->nodes).nelem == 0 || ((preg->field_0x1c & 1) == 0)))) &&\n         ((aVar4.idx = start, start != 0 &&\n          (start = last_start, aVar4.idx = last_start, last_start != 0))))" ( (binary_expression "((((prVar59->init_state->nodes).nelem == 0) &&\n           ((prVar59->init_state_word->nodes).nelem == 0)) &&\n          (((prVar59->init_state_nl->nodes).nelem == 0 || ((preg->field_0x1c & 1) == 0)))) &&\n         ((aVar4.idx = start, start != 0 &&\n          (start = last_start, aVar4.idx = last_start, last_start != 0)))" (parenthesized_expression "((((prVar59->init_state->nodes).nelem == 0) &&\n           ((prVar59->init_state_word->nodes).nelem == 0)) &&\n          (((prVar59->init_state_nl->nodes).nelem == 0 || ((preg->field_0x1c & 1) == 0))))" ( (binary_expression "(((prVar59->init_state->nodes).nelem == 0) &&\n           ((prVar59->init_state_word->nodes).nelem == 0)) &&\n          (((prVar59->init_state_nl->nodes).nelem == 0 || ((preg->field_0x1c & 1) == 0)))" (parenthesized_expression "(((prVar59->init_state->nodes).nelem == 0) &&\n           ((prVar59->init_state_word->nodes).nelem == 0))" ( (binary_expression "((prVar59->init_state->nodes).nelem == 0) &&\n           ((prVar59->init_state_word->nodes).nelem == 0)" (parenthesized_expression "((prVar59->init_state->nodes).nelem == 0)" ( (binary_expression "(prVar59->init_state->nodes).nelem == 0" (field_expression "(prVar59->init_state->nodes).nelem" (parenthesized_expression "(prVar59->init_state->nodes)" ( (field_expression "prVar59->init_state->nodes" (field_expression "prVar59->init_state" identifier -> field_identifier) -> field_identifier) )) . field_identifier) == number_literal) )) && (parenthesized_expression "((prVar59->init_state_word->nodes).nelem == 0)" ( (binary_expression "(prVar59->init_state_word->nodes).nelem == 0" (field_expression "(prVar59->init_state_word->nodes).nelem" (parenthesized_expression "(prVar59->init_state_word->nodes)" ( (field_expression "prVar59->init_state_word->nodes" (field_expression "prVar59->init_state_word" identifier -> field_identifier) -> field_identifier) )) . field_identifier) == number_literal) ))) )) && (parenthesized_expression "(((prVar59->init_state_nl->nodes).nelem == 0 || ((preg->field_0x1c & 1) == 0)))" ( (parenthesized_expression "((prVar59->init_state_nl->nodes).nelem == 0 || ((preg->field_0x1c & 1) == 0))" ( (binary_expression "(prVar59->init_state_nl->nodes).nelem == 0 || ((preg->field_0x1c & 1) == 0)" (binary_expression "(prVar59->init_state_nl->nodes).nelem == 0" (field_expression "(prVar59->init_state_nl->nodes).nelem" (parenthesized_expression "(prVar59->init_state_nl->nodes)" ( (field_expression "prVar59->init_state_nl->nodes" (field_expression "prVar59->init_state_nl" identifier -> field_identifier) -> field_identifier) )) . field_identifier) == number_literal) || (parenthesized_expression "((preg->field_0x1c & 1) == 0)" ( (binary_expression "(preg->field_0x1c & 1) == 0" (parenthesized_expression "(preg->field_0x1c & 1)" ( (binary_expression "preg->field_0x1c & 1" (field_expression "preg->field_0x1c" identifier -> field_identifier) & number_literal) )) == number_literal) ))) )) ))) )) && (parenthesized_expression "((aVar4.idx = start, start != 0 &&\n          (start = last_start, aVar4.idx = last_start, last_start != 0)))" ( (parenthesized_expression "(aVar4.idx = start, start != 0 &&\n          (start = last_start, aVar4.idx = last_start, last_start != 0))" ( (comma_expression "aVar4.idx = start, start != 0 &&\n          (start = last_start, aVar4.idx = last_start, last_start != 0)" (assignment_expression "aVar4.idx = start" (field_expression "aVar4.idx" identifier . field_identifier) = identifier) , (binary_expression "start != 0 &&\n          (start = last_start, aVar4.idx = last_start, last_start != 0)" (binary_expression "start != 0" identifier != number_literal) && (parenthesized_expression "(start = last_start, aVar4.idx = last_start, last_start != 0)" ( (comma_expression "start = last_start, aVar4.idx = last_start, last_start != 0" (assignment_expression "start = last_start" identifier = identifier) , (comma_expression "aVar4.idx = last_start, last_start != 0" (assignment_expression "aVar4.idx = last_start" (field_expression "aVar4.idx" identifier . field_identifier) = identifier) , (binary_expression "last_start != 0" identifier != number_literal))) )))) )) ))) )) (compound_statement "{\n        local_150.idx = 1;\n        aStack_1a0.idx = last_start;\n      }" { (expression_statement "local_150.idx = 1;" (assignment_expression "local_150.idx = 1" (field_expression "local_150.idx" identifier . field_identifier) = number_literal) ;) (expression_statement "aStack_1a0.idx = last_start;" (assignment_expression "aStack_1a0.idx = last_start" (field_expression "aStack_1a0.idx" identifier . field_identifier) = identifier) ;) }) (else_clause "else {\n        last_start = aVar4.idx;\n        aVar4.sbcset = (re_bitset_ptr_t)(nmatch - local_118);\n        if ((re_dfa_t *)aVar4.sbcset == (re_dfa_t *)0x0) {\n          paVar54 = (anon_union_4_5_a39f51ca_for_opr *)(uint)(prVar59->nbackref != 0);\n        }\n        else {\n          paVar54 = (anon_union_4_5_a39f51ca_for_opr *)0x1;\n        }\n        puVar50 = preg->translate;\n        mctx.input.icase = (uchar)((preg->syntax << 9) >> 0x1f);\n        mctx.input.mb_cur_max = prVar59->mb_cur_max;\n        aVar46.sbcset = (re_bitset_ptr_t)(prVar59->nodes_len + 1);\n        if (aVar46.idx < mctx.input.mb_cur_max) {\n          aVar46 = (anon_union_4_5_a39f51ca_for_opr)mctx.input.mb_cur_max;\n        }\n        aVar49.idx._0_3_ = 0;\n        aVar49.idx._3_1_ = ((re_bitset_ptr_t)(length + 1)).idx < aVar46.idx;\n        prVar51 = (re_dfa_t *)0x1;\n        mctx.input.mbs_allocated = mctx.input.icase;\n        if (puVar50 != (uchar *)0x0) {\n          mctx.input.mbs_allocated = 1;\n        }\n        mctx.input.is_utf8 = (uchar)((uint)(*(int *)&prVar59->field_0x58 << 2) >> 0x1f);\n        mctx.input.map_notascii = (uchar)((uint)(*(int *)&prVar59->field_0x58 << 3) >> 0x1f);\n        aVar45.sbcset = ((re_bitset_ptr_t)(length + 1)).sbcset;\n        if ((re_dfa_t *)aVar49.sbcset == (re_dfa_t *)0x0) {\n          aVar45 = aVar46;\n        }\n        mctx.input.raw_mbs = (uchar *)string;\n        mctx.input.raw_len = length;\n        mctx.input.len = length;\n        mctx.input.raw_stop = length;\n        mctx.input.stop = length;\n        mctx.input.trans = puVar50;\n        local_150.idx = re_string_realloc_buffers(&mctx.input,aVar45.idx);\n        aVar46.idx = start;\n        paVar18 = paVar54;\n        stop = stop;\n        if ((re_dfa_t *)local_150.sbcset != (re_dfa_t *)0x0) goto LAB_000557e4;\n        mctx.input.word_char = prVar59->word_char;\n        mctx.input.word_ops_used = (uchar)((uint)(*(int *)&prVar59->field_0x58 << 4) >> 0x1f);\n        paVar2 = (anon_union_4_5_a39f51ca_for_opr *)0x0;\n        mctx.input.valid_len = (Idx)paVar2;\n        if ((mctx.input.mbs_allocated == '\0') &&\n           (mctx.input.mbs = (uchar *)string, prVar59->mb_cur_max < 2)) {\n          mctx.input.valid_len = length;\n        }\n        mctx.input.stop = stop;\n        mctx.input.raw_stop = stop;\n        mctx.input.newline_anchor = (uchar)((uint)(*(int *)&preg->field_0x1c << 7) >> 0x1f);\n        iVar55 = prVar59->nbackref;\n        aVar56.idx = iVar55 * 2;\n        mctx.eflags = eflags;\n        mctx.match_last = -1;\n        mctx.input.valid_raw_len = mctx.input.valid_len;\n        if ((int)aVar56 < 1) {\nLAB_000559f0:\n          mctx.max_mb_elem_len = 1;\n          mctx.abkref_ents = aVar56.idx;\n          mctx.asub_tops = aVar56.idx;\n          if ((aVar4.sbcset < (re_dfa_t *)0x2) && ((prVar59->field_0x58 & 0x40) == 0)) {\n            mctx.state_log = (re_dfastate_t **)0x0;\nLAB_00055a40:\n            mctx.input.tip_context = 6;\n            if ((eflags & 1U) != 0) {\n              mctx.input.tip_context = 4;\n            }\n            aVar39.idx = 1;\n            aVar40.idx = start;\n            if (last_start < start) {\n              aVar39.idx = -1;\n              aVar40.idx = last_start;\n            }\n            aVar41.idx = last_start;\n            if (last_start <= start) {\n              aVar41.idx = start;\n            }\n            iVar55 = prVar59->mb_cur_max;\n            rVar20 = 8;\n            if ((re_dfa_t *)local_148.sbcset != (re_dfa_t *)0x0) {\n              if (iVar55 == 1) {\n                paVar43 = (anon_union_4_5_a39f51ca_for_opr *)0x4;\n              }\n              else {\n                paVar43 = paVar2;\n                if ((-1 < (int)(preg->syntax << 9)) && (puVar50 == (uchar *)0x0)) {\n                  paVar43 = (anon_union_4_5_a39f51ca_for_opr *)0x4;\n                }\n              }\n              aVar45.sbcset = (re_bitset_ptr_t)0x0;\n              if (start <= last_start) {\n                aVar45.idx = 2;\n              }\n              rVar20 = (uint)(puVar50 != (uchar *)0x0) | (uint)paVar43 | aVar45.ctx_type;\n            }\n            match_first = start;\n            if (start < aVar40.idx) {\n              local_150.idx = 1;\n              stop = aVar56.idx;\n            }\n            else {\n              aVar46.idx._0_3_ = 0;\n              aVar46.idx._3_1_ = last_start < start;\n              if (aVar41.idx < start) {\n                local_150.idx = 1;\n                stop = aVar56.idx;\n              }\n              else {\n                piVar38 = &match_first;\n                if ((re_dfa_t *)aVar46.sbcset != (re_dfa_t *)0x0) {\n                  piVar38 = (int *)0x0;\n                }\n                pcVar5 = (code *)(PTR_DAT_000799a4 + -0x2b7c);\n                piVar6 = (int *)(PTR_s_nt0_000795b8 + (rVar20 - 4) * 4 + 0x6e38);\nLAB_00055b44:\n                if (rVar20 - 4 < 5) {\n                    /* WARNING: Could not emulate address calculation at 0x00054920 */\n                    /* WARNING: Treating indirect jump as call */\n                  rVar21 = (*(code *)(&_gp + *piVar6))();\n                  return rVar21;\n                }\n                last_start = (Idx)&mctx;\n                prVar52 = prVar51;\n                while( true ) {\n                  aVar46.idx = match_first;\n                  uVar8 = match_first - mctx.input.raw_mbs_idx;\n                  aVar49 = (anon_union_4_5_a39f51ca_for_opr)eflags;\n                  paVar18 = paVar2;\n                  stop = local_148.idx;\n                  unaff_s4 = (re_dfa_t *)length;\n                  unaff_s5 = aVar39;\n                  unaff_s7 = aVar41;\n                  if ((uint)mctx.input.valid_raw_len <= uVar8) {\n                    aVar45.idx = match_first;\n                    local_150.sbcset = (re_bitset_ptr_t)(*pcVar5)(last_start);\n                    prVar51 = prVar52;\n                    if ((re_dfa_t *)local_150.sbcset != (re_dfa_t *)0x0) goto LAB_000557e4;\n                    uVar8 = (int)aVar46.sbcset - mctx.input.raw_mbs_idx;\n                  }\n                  if (aVar46.idx < length) {\n                    uVar8 = (uint)mctx.input.mbs[uVar8];\n                  }\n                  else {\n                    uVar8 = 0;\n                  }\n                  aVar56.sbcset = aVar46.sbcset + aVar39.sbcset;\n                  aVar46.sbcset = aVar56.sbcset;\n                  if (*(char *)((int)local_148.sbcset + uVar8) != '\0') break;\n                  prVar51 = prVar52;\n                  match_first = aVar56.idx;\n                  if (aVar56.idx < aVar40.idx) {\n                    local_150.idx = 1;\n                    goto LAB_000557e4;\n                  }\n                  aVar46.idx._0_3_ = 0;\n                  aVar46.idx._3_1_ = aVar41.idx < aVar56.idx;\n                  if ((re_dfa_t *)aVar46.sbcset != (re_dfa_t *)0x0) {\n                    local_150.idx = 1;\n                    goto LAB_000557e4;\n                  }\n                }\n                while( true ) {\n                  aVar45.idx = match_first;\n                  aVar49 = (anon_union_4_5_a39f51ca_for_opr)eflags;\n                  aVar7.sbcset = (re_bitset_ptr_t)(*pcVar5)(&mctx);\n                  aVar15 = (anon_union_4_5_a39f51ca_for_opr)mctx.dfa;\n                  aVar56.idx = mctx.input.cur_idx;\n                  prVar51 = prVar52;\n                  local_150.sbcset = aVar7.sbcset;\n                  if ((re_dfa_t *)aVar7.sbcset != (re_dfa_t *)0x0) goto LAB_000557e4;\n                  if (((iVar55 != 1) && (mctx.input.valid_len != 0)) &&\n                     (*mctx.input.wcs == 0xffffffff)) goto LAB_00055b1c;\n                  mctx.max_mb_elem_len = 0;\n                  mctx.nbkref_ents = 0;\n                  mctx.state_log_top = 0;\n                  local_138.idx = mctx.input.cur_idx;\n                  err = _REG_NOERROR;\n                  unaff_s7 = (anon_union_4_5_a39f51ca_for_opr)(mctx.dfa)->init_state;\n                  aVar49 = (anon_union_4_5_a39f51ca_for_opr)mctx.eflags;\n                  aVar46 = aVar15;\n                  if ((*(byte *)(unaff_s7.idx + 0x34) & 1) == 0) break;\n                  aVar45.sbcset = (re_bitset_ptr_t)(mctx.input.cur_idx + -1);\n                  prVar51 = (re_dfa_t *)re_string_context_at(&mctx.input,aVar45.idx,mctx.eflags);\n                  if (((uint)prVar51 & 1) == 0) {\n                    if (prVar51 == (re_dfa_t *)0x0) break;\n                    if (((uint)prVar51 & 6) == 6) {\n                      unaff_s7 = (anon_union_4_5_a39f51ca_for_opr)\n                                 ((re_dfa_t *)aVar15.idx)->init_state_begbuf;\n                      goto LAB_00054d1c;\n                    }\n                    if (((uint)prVar51 & 2) != 0) {\n                      unaff_s7 = (anon_union_4_5_a39f51ca_for_opr)\n                                 ((re_dfa_t *)aVar15.idx)->init_state_nl;\n                      goto LAB_00054d1c;\n                    }\n                    prVar52 = prVar51;\n                    if (((uint)prVar51 & 4) == 0) break;\n                    aVar49 = (anon_union_4_5_a39f51ca_for_opr)\n                             ((anon_union_4_5_a39f51ca_for_opr *)(unaff_s7.idx + 0x28))->mbcset;\n                    aVar45 = aVar15;\n                    unaff_s7.sbcset =\n                         &re_acquire_state_context\n                                    (&err,aVar15.sbcset,(re_node_set *)aVar49.mbcset,(uint)prVar51)\n                          ->hash;\n                    prVar52 = prVar51;\n                    if ((re_dfa_t *)unaff_s7.sbcset != (re_dfa_t *)0x0) break;\n                    if (err == _REG_ESPACE) goto LAB_00055914;\n                  }\n                  else {\n                    unaff_s7 = (anon_union_4_5_a39f51ca_for_opr)\n                               ((re_dfa_t *)aVar15.idx)->init_state_word;\nLAB_00054d1c:\n                    prVar52 = (re_dfa_t *)PTR_s_nt0_000795b8;\n                    if ((re_dfa_t *)unaff_s7.sbcset != (re_dfa_t *)0x0) break;\n                  }\n                  prVar52 = (re_dfa_t *)(PTR_s_nt0_000795b8 + 0x6eb0);\n                  aVar45.sbcset = (re_bitset_ptr_t)(PTR_s_nt0_000795b8 + 0x712c);\n                  match_first = (*(code *)PTR___assert_fail_000799f8)\n                                          (PTR_s_nt0_000795b8 + 0x71a0,aVar45.sbcset,0x435);\n                  if ((re_bitset_ptr_t)match_first == aVar41.sbcset) {\n                    if (match_first < length) {\n                      uVar8 = (uint)(byte)string[match_first];\n                    }\n                    else {\n                      uVar8 = 0;\n                    }\n                    if (puVar50 != (uchar *)0x0) {\n                      uVar8 = (uint)puVar50[uVar8];\n                    }\n                    if (*(char *)((int)local_148.sbcset + uVar8) == '\0') {\n                      local_150.idx = 1;\n                      aVar49 = (anon_union_4_5_a39f51ca_for_opr)eflags;\n                      prVar51 = prVar52;\n                      goto LAB_000557e4;\n                    }\n                  }\n                }\n                prVar51 = prVar52;\n                bVar36 = piVar38 != (int *)0x0;\n                if ((mctx.state_log == (re_dfastate_t **)0x0) ||\n                   (((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + aVar56.idx))->mbcset =\n                         (re_charset_t *)unaff_s7, ((re_dfa_t *)aVar15.idx)->nbackref == 0)) {\nLAB_00054d50:\n                  if ((int)*(bin_tree_t **)(unaff_s7.idx + 0x34) << 4 < 0) {\n                    if (((*(byte *)(unaff_s7.idx + 0x34) & 1) == 0) ||\n                       (aVar45 = unaff_s7, aVar49 = aVar56,\n                       IVar17 = check_halt_state_context(&mctx,unaff_s7.idx,aVar56.idx), IVar17 != 0\n                       )) {\n                      local_c4 = aVar56;\n                      if (paVar54 == (anon_union_4_5_a39f51ca_for_opr *)0x0) goto LAB_00055dbc;\n                      prVar52 = (re_dfa_t *)0x1;\n                    }\n                    else {\n                      aVar56.idx = -1;\n                      prVar52 = (re_dfa_t *)0x0;\n                    }\n                  }\n                  else {\n                    aVar56.idx = -1;\n                    prVar52 = (re_dfa_t *)0x0;\n                  }\n                  pcVar9 = (code *)(PTR_DAT_000799a4 + -0x7144);\n                  pcVar10 = (code *)(PTR_DAT_000799a4 + -0x1980);\n                  pcVar11 = (code *)(PTR_DAT_000799a4 + -0x2f9c);\n                  local_c4 = aVar56;\n                  local_144 = piVar38;\n                  while( true ) {\n                    uVar63 = CONCAT44(mctx.input.valid_len,mctx.input.len);\n                    unaff_s5.sbcset = (re_bitset_ptr_t)(mctx.input.cur_idx + 1);\n                    aVar45.idx = mctx.input.cur_idx;\n                    if (mctx.input.stop <= mctx.input.cur_idx) break;\n                    if ((mctx.input.bufs_len <= unaff_s5.idx) &&\n                       (mctx.input.bufs_len < mctx.input.len)) goto LAB_00054e94;\n                    if (mctx.input.valid_len <= unaff_s5.idx) {\n                      while ((int)((ulonglong)uVar63 >> 0x20) < (int)uVar63) {\nLAB_00054e94:\n                        aVar45.sbcset =\n                             (re_bitset_ptr_t)\n                             ((int)&((re_string_t *)&(aVar45.mbcset)->mbchars)->raw_mbs + 2);\n                        err = (*pcVar9)(&mctx);\n                        if (err == _REG_NOERROR) break;\n                        aVar15 = aVar46;\n                        if (err == _REG_ESPACE) goto LAB_00055914;\n                        prVar51 = (re_dfa_t *)(PTR_s_nt0_000795b8 + 0x6eb0);\n                        aVar49.idx = 0x46c;\n                        aVar45.sbcset = (re_bitset_ptr_t)(PTR_s_nt0_000795b8 + 0x712c);\n                        uVar63 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0);\n                        prVar52 = prVar59;\n                      }\n                    }\n                    prVar3 = mctx.dfa;\n                    if ((int)*(bin_tree_t **)(unaff_s7.idx + 0x34) << 5 < 0) {\n                      paVar18 = (anon_union_4_5_a39f51ca_for_opr *)prVar3;\n                      if (0 < (int)(unaff_s7.mbcset)->range_ends) {\n                        pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6fdc);\n                        pcVar13 = (code *)(PTR_DAT_000799a4 + -0x6ef0);\n                        stop = 0;\n                        do {\n                          last_start = ((anon_union_4_5_a39f51ca_for_opr *)\n                                       ((unaff_s7.mbcset)->char_classes + stop))->idx;\n                          prVar53 = prVar3->nodes;\n                          uVar8 = *(uint *)&prVar53[last_start].field_0x4;\n                          if ((uVar8 & 0x800) != 0) {\n                            if ((uVar8 & 0xffc000) != 0) {\n                              aVar45.idx = mctx.input.cur_idx;\n                              uVar60 = (*pcVar13)(&mctx,mctx.input.cur_idx,mctx.eflags);\n                              uVar8 = (uint)(*(int *)&prVar53[last_start].field_0x4 << 8) >> 0x16;\n                              if ((uVar8 & 4) == 0) {\n                                uVar26 = uVar60 & 1;\n                                if ((uVar8 & 8) != 0) goto joined_r0x00054f40;\n                              }\n                              else {\n                                uVar26 = uVar8 & 8;\n                                if ((uVar60 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                                if (uVar26 != 0) goto LAB_000550a4;\n                              }\n                              if ((((uVar8 & 0x20) != 0) && ((uVar60 & 2) == 0)) ||\n                                 (((uVar8 & 0x80) != 0 &&\n                                  (prVar51 = (re_dfa_t *)mctx.input.cur_idx, (uVar60 & 8) == 0))))\n                              goto LAB_000550a4;\n                            }\n                            aVar49.sbcset = (re_bitset_ptr_t)&mctx;\n                            aVar45.idx = last_start;\n                            prVar51 = (re_dfa_t *)mctx.input.cur_idx;\n                            iVar61 = (*pcVar11)(prVar3);\n                            if (iVar61 != 0) {\n                              aVar46.sbcset = (re_bitset_ptr_t)(iVar61 + mctx.input.cur_idx);\n                              if (iVar61 <= mctx.max_mb_elem_len) {\n                                iVar61 = mctx.max_mb_elem_len;\n                              }\n                              aVar45.sbcset = aVar46.sbcset;\n                              mctx.max_mb_elem_len = iVar61;\n                              err_1 = (*pcVar12)(&mctx);\n                              rVar21 = err_1;\n                              if (err_1 != _REG_NOERROR) goto LAB_00055e44;\n                              aVar49.sbcset =\n                                   (re_bitset_ptr_t)(prVar3->eclosures + prVar3->nexts[last_start]);\n                              unaff_s4 = (re_dfa_t *)(aVar46.idx * 4);\n                              last_start = (Idx)(mctx.state_log + aVar46.idx);\n                              if (*(bitset_word_t *)last_start == 0) {\n                                dest_nodes.alloc = *aVar49.sbcset;\n                                dest_nodes.nelem =\n                                     ((re_node_set *)&(aVar49.mbcset)->range_starts)->alloc;\n                                dest_nodes.elems = (aVar49.mbcset)->range_ends;\n                                prVar51 = (re_dfa_t *)\n                                          (*pcVar13)(&mctx,(undefined1 *)(aVar46.idx + -1),\n                                                     mctx.eflags);\n                                aVar49.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                                aVar45 = (anon_union_4_5_a39f51ca_for_opr)prVar3;\n                                prVar35 = re_acquire_state_context\n                                                    (&err_1,prVar3,(re_node_set *)aVar49.mbcset,\n                                                     (uint)prVar51);\n                                ((re_string_t *)&((re_charset_t *)last_start)->mbchars)->raw_mbs =\n                                     (uchar *)prVar35;\n                              }\n                              else {\n                                aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                                         ((anon_union_4_5_a39f51ca_for_opr *)\n                                         (*(bitset_word_t *)last_start + 0x28))->mbcset;\n                                err_1 = re_node_set_init_union\n                                                  (&dest_nodes,(re_node_set *)aVar45.mbcset,\n                                                   (re_node_set *)aVar49.mbcset);\n                                rVar21 = err_1;\n                                if (err_1 != _REG_NOERROR) goto LAB_00055e44;\n                                prVar51 = (re_dfa_t *)\n                                          (*pcVar13)(&mctx,(undefined1 *)(aVar46.idx + -1),\n                                                     mctx.eflags);\n                                pprVar14 = mctx.state_log + aVar46.idx;\n                                aVar49.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                                aVar45 = (anon_union_4_5_a39f51ca_for_opr)prVar3;\n                                prVar35 = re_acquire_state_context\n                                                    (&err_1,prVar3,(re_node_set *)aVar49.mbcset,\n                                                     (uint)prVar51);\n                                *pprVar14 = prVar35;\n                                (*(code *)PTR_free_00079c24)(dest_nodes.elems);\n                              }\n                              unaff_s4 = (re_dfa_t *)(mctx.state_log + aVar46.idx);\n                              if ((unaff_s4->nodes == (re_token_t *)0x0) &&\n                                 (rVar21 = err_1, err_1 != _REG_NOERROR)) goto LAB_00055e44;\n                            }\n                          }\nLAB_000550a4:\n                          stop = (int)&((re_string_t *)&((re_charset_t *)stop)->mbchars)->raw_mbs +\n                                 1;\n                        } while (stop < (int)(unaff_s7.mbcset)->range_ends);\n                      }\n                      err = _REG_NOERROR;\n                    }\n                    uVar8 = (uint)mctx.input.mbs[mctx.input.cur_idx];\n                    mctx.input.cur_idx = mctx.input.cur_idx + 1;\n                    do {\n                      if (*(re_dfastate_t **)(unaff_s7.idx + 0x2c) != (re_dfastate_t *)0x0) {\n                        aVar49 = (anon_union_4_5_a39f51ca_for_opr)\n                                 ((anon_union_4_5_a39f51ca_for_opr *)\n                                 (&(*(re_dfastate_t **)(unaff_s7.idx + 0x2c))->hash + uVar8))->\n                                 mbcset;\nLAB_000553a0:\n                        aVar15 = aVar49;\n                        if (mctx.state_log != (re_dfastate_t **)0x0) goto LAB_000553ac;\n                        goto LAB_000553cc;\n                      }\n                      paVar18 = *(anon_union_4_5_a39f51ca_for_opr **)(unaff_s7.idx + 0x30);\n                      if (paVar18 != (anon_union_4_5_a39f51ca_for_opr *)0x0) {\n                        aVar45.sbcset = (re_bitset_ptr_t)(mctx.input.cur_idx + -1);\n                        uVar60 = re_string_context_at(&mctx.input,aVar45.idx,mctx.eflags);\n                        if ((uVar60 & 1) == 0) {\n                          aVar49 = (anon_union_4_5_a39f51ca_for_opr)paVar18[uVar8].mbcset;\n                        }\n                        else {\n                          paVar18 = paVar18 + uVar8 + 0x100;\n                          aVar49 = (anon_union_4_5_a39f51ca_for_opr)paVar18->mbcset;\n                        }\n                        goto LAB_000553a0;\n                      }\n                      aVar45 = unaff_s7;\n                      aVar49 = (anon_union_4_5_a39f51ca_for_opr)mctx.eflags;\n                      iVar61 = (*pcVar10)(mctx.dfa);\n                    } while (iVar61 != 0);\n                    err = _REG_ESPACE;\n                    rVar21 = err;\nLAB_00055e44:\n                    err = rVar21;\n                    aVar46.sbcset = (re_bitset_ptr_t)0x0;\n                    if (mctx.state_log == (re_dfastate_t **)0x0) {\n                      aVar15.sbcset = aVar46.sbcset;\n                      if (err != _REG_NOERROR) goto LAB_00055914;\n                      break;\n                    }\n                    aVar49.sbcset = (re_bitset_ptr_t)0x0;\nLAB_000553ac:\n                    aVar45.sbcset = (re_bitset_ptr_t)&mctx;\n                    aVar15.sbcset =\n                         &merge_state_with_log\n                                    (&err,(re_match_context_t *)aVar45.mbcset,aVar49.sbcset)->hash;\nLAB_000553cc:\n                    aVar46 = aVar15;\n                    if ((re_dfa_t *)aVar15.sbcset == (re_dfa_t *)0x0) {\n                      if (err != _REG_NOERROR) goto LAB_00055914;\n                      if ((mctx.state_log == (re_dfastate_t **)0x0) ||\n                         ((prVar52 != (re_dfa_t *)0x0 &&\n                          (paVar54 == (anon_union_4_5_a39f51ca_for_opr *)0x0)))) break;\n                      stop = (Idx)&mctx;\n                      last_start = (Idx)&err;\n                      paVar18 = (anon_union_4_5_a39f51ca_for_opr *)(PTR_DAT_000799a4 + 0x3684);\n                      do {\n                        pprVar14 = mctx.state_log + mctx.input.cur_idx;\n                        IVar17 = mctx.input.cur_idx;\n                        do {\n                          IVar17 = IVar17 + 1;\n                          aVar45.idx = mctx.state_log_top;\n                          aVar46 = aVar15;\n                          if (mctx.state_log_top < IVar17) goto LAB_00055da8;\n                          mctx.input.cur_idx = mctx.input.cur_idx + 1;\n                          pprVar14 = pprVar14 + 1;\n                        } while (*pprVar14 == (re_dfastate_t *)0x0);\n                        aVar49.sbcset = (re_bitset_ptr_t)0x0;\n                        aVar45.sbcset = (re_bitset_ptr_t)stop;\n                        aVar46.sbcset = (re_bitset_ptr_t)(*(code *)paVar18)(last_start);\n                        if (err != _REG_NOERROR) {\n                          if ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0) goto LAB_00055da8;\n                          break;\n                        }\n                        aVar45.idx = mctx.state_log_top;\n                      } while ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0);\n                    }\n                    aVar16.ctx_type = unaff_s7.ctx_type ^ aVar46.ctx_type;\n                    aVar56 = unaff_s7;\n                    aVar15 = local_138;\n                    if ((bVar36) &&\n                       (aVar56.ctx_type = aVar16.ctx_type, aVar15.sbcset = unaff_s5.sbcset,\n                       (re_dfa_t *)aVar16.sbcset != (re_dfa_t *)0x0)) {\n                      bVar36 = false;\n                      aVar15 = local_138;\n                    }\n                    local_138 = aVar15;\n                    unaff_s7 = aVar46;\n                    if (((*(byte *)(aVar46.idx + 0x34) & 8) != 0) &&\n                       (((*(byte *)(aVar46.idx + 0x34) & 1) == 0 ||\n                        (aVar45 = aVar46, aVar49.idx = mctx.input.cur_idx,\n                        IVar17 = check_halt_state_context(&mctx,aVar46.idx,mctx.input.cur_idx),\n                        IVar17 != 0)))) {\n                      unaff_s7 = aVar56;\n                      local_c4.idx = mctx.input.cur_idx;\n                      if (paVar54 == (anon_union_4_5_a39f51ca_for_opr *)0x0) goto LAB_00055dbc;\n                      prVar52 = (re_dfa_t *)0x1;\n                      local_144 = (int *)0x0;\n                      unaff_s7 = aVar46;\n                    }\n                  }\nLAB_00055da8:\n                  if (local_144 != (int *)0x0) {\n                    *local_144 = *local_144 + (int)local_138.sbcset;\n                  }\n                }\n                else {\n                  aVar46.sbcset = (re_bitset_ptr_t)&(unaff_s7.mbcset)->range_starts;\n                  aVar49.sbcset = (re_bitset_ptr_t)0x0;\n                  aVar45 = aVar46;\n                  err = check_subexp_matching_top(&mctx,(re_node_set *)aVar46.mbcset,0);\n                  local_c4.idx = err;\n                  if ((re_dfa_t *)err == (re_dfa_t *)0x0) {\n                    if ((*(byte *)(unaff_s7.idx + 0x34) & 2) == 0) {\n                      aVar45 = aVar46;\n                      bVar36 = false;\n                    }\n                    else {\n                      aVar45 = aVar46;\n                      err = transit_state_bkref(&mctx,(re_node_set *)aVar46.mbcset);\n                      local_c4.idx = err;\n                      if ((re_dfa_t *)err != (re_dfa_t *)0x0) goto LAB_00055dbc;\n                      bVar36 = false;\n                    }\n                    goto LAB_00054d50;\n                  }\n                }\nLAB_00055dbc:\n                if ((re_dfa_t *)local_c4.sbcset == (re_dfa_t *)0xffffffff) {\nLAB_00055b04:\n                  match_ctx_clean(&mctx);\nLAB_00055b1c:\n                  match_first = aVar39.idx + match_first;\n                  if (aVar40.idx <= match_first) goto code_r0x00055b38;\n                  local_150.idx = 1;\n                  goto LAB_000557e4;\n                }\n                if ((re_dfa_t *)local_c4.sbcset == (re_dfa_t *)&SUB_fffffffe) {\n                  local_150.idx = 0xc;\n                  goto LAB_000557e4;\n                }\n                mctx.match_last = local_c4.idx;\n                if ((preg->field_0x1c & 8) == 0) {\n                  if (aVar4.sbcset < (re_dfa_t *)0x2) {\n                    if (prVar59->nbackref == 0) goto LAB_00055c08;\n                    aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                             ((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + local_c4.idx))->\n                             mbcset;\n                    aVar49 = local_c4;\n                    mctx.last_node =\n                         check_halt_state_context(&mctx,(re_dfastate_t *)aVar45.mbcset,local_c4.idx)\n                    ;\n                  }\n                  else {\n                    aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                             ((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + local_c4.idx))->\n                             mbcset;\n                    aVar49 = local_c4;\n                    mctx.last_node =\n                         check_halt_state_context(&mctx,(re_dfastate_t *)aVar45.mbcset,local_c4.idx)\n                    ;\n                  }\n                  if (aVar4.sbcset < (re_dfa_t *)0x2) {\nLAB_00055c6c:\n                    prVar52 = prVar51;\n                    unaff_s4 = mctx.dfa;\n                    if (prVar59->nbackref == 0) goto LAB_00055548;\n                  }\n                  else {\n                    cVar37 = prVar59->field_0x58;\nLAB_00055c20:\n                    prVar52 = prVar51;\n                    if (-1 < cVar37) goto LAB_00055c6c;\n                  }\n                  paVar18 = (anon_union_4_5_a39f51ca_for_opr *)mctx.last_node;\n                  prVar3 = mctx.dfa;\n                  unaff_s4 = prVar3;\n                  if ((uint)local_c4 < (re_dfa_t *)0x3fffffff) {\n                    aVar46.idx = (int)((int)&((re_string_t *)&(local_c4.mbcset)->mbchars)->raw_mbs +\n                                      1) * 4;\n                    unaff_s5.sbcset = (re_bitset_ptr_t)(*(code *)PTR_malloc_00079b54)(aVar46.sbcset)\n                    ;\n                    if ((re_dfa_t *)unaff_s5.sbcset == (re_dfa_t *)0x0) {\nLAB_00055b9c:\n                      (*(code *)PTR_free_00079c24)(unaff_s5.sbcset);\n                      local_150.idx = 0xc;\n                      prVar51 = prVar52;\n                    }\n                    else {\n                      aVar45.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                      if (prVar3->nbackref == 0) {\n                        dest_nodes.nelem = 0;\n                        dest_nodes.elems = &paVar18->idx;\n                        dest_nodes.alloc = (Idx)unaff_s5.sbcset;\n                        last_start = sift_states_backward(&mctx,(re_sift_context_t *)aVar45.mbcset);\n                        (*(code *)PTR_free_00079c24)(0);\n                        if ((re_dfa_t *)last_start == (re_dfa_t *)0x0) {\n                          aVar46.mbcset = (re_charset_t *)*unaff_s5.sbcset;\n                          if ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0) {\nLAB_00055b70:\n                            (*(code *)PTR_free_00079c24)(unaff_s5.sbcset);\n                            (*(code *)PTR_free_00079c24)(aVar46.sbcset);\n                            prVar51 = prVar52;\n                            goto LAB_00055b04;\n                          }\nLAB_00055528:\n                          (*(code *)PTR_free_00079c24)(mctx.state_log);\n                          prVar51 = prVar52;\n                          unaff_s4 = prVar3;\n                          mctx.match_last = local_c4.idx;\n                          mctx.last_node = (Idx)paVar18;\n                          mctx.state_log = (re_dfastate_t **)unaff_s5.sbcset;\n                          goto LAB_00055548;\n                        }\nLAB_00055acc:\n                        aVar46.sbcset = (re_bitset_ptr_t)0x0;\n                        prVar51 = prVar52;\n                        unaff_s4 = prVar3;\n                      }\n                      else {\n                        aVar46.sbcset =\n                             (re_bitset_ptr_t)(*(code *)PTR_malloc_00079b54)(aVar46.sbcset);\n                        if ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0) goto LAB_00055b9c;\n                        unaff_s7.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                        pcVar9 = (code *)(PTR_DAT_000799a4 + 0x421c);\n                        pcVar10 = (code *)(PTR_DAT_000799a4 + -0x6bc0);\n                        prVar51 = prVar52;\n                        while( true ) {\n                          prVar52 = (re_dfa_t *)(local_c4.idx + 1);\n                          stop = (int)prVar52 * 4;\n                          aVar49.idx = stop;\n                          (*(code *)PTR_memset_00079b00)(aVar46.sbcset,0);\n                          aVar45.sbcset = unaff_s7.sbcset;\n                          dest_nodes.alloc = (Idx)unaff_s5.sbcset;\n                          dest_nodes.nelem = (Idx)aVar46.sbcset;\n                          dest_nodes.elems = (Idx *)paVar18;\n                          last_start = (*pcVar9)(&mctx);\n                          (*(code *)PTR_free_00079c24)(0);\n                          unaff_s4 = prVar52;\n                          if ((re_dfa_t *)last_start != (re_dfa_t *)0x0) break;\n                          if ((*unaff_s5.sbcset != 0) || (stop = stop + -4, *aVar46.sbcset != 0)) {\n                            aVar45.sbcset = unaff_s5.sbcset;\n                            aVar49.sbcset = aVar46.sbcset;\n                            last_start = merge_state_array(prVar3,(re_dfastate_t **)unaff_s5.sbcset,\n                                                           (re_dfastate_t **)aVar46.sbcset,\n                                                           (Idx)prVar52);\n                            (*(code *)PTR_free_00079c24)(aVar46.sbcset);\n                            if ((re_dfa_t *)last_start != (re_dfa_t *)0x0) goto LAB_00055acc;\n                            goto LAB_00055528;\n                          }\n                          stop = (Idx)(mctx.state_log + (int)&prVar52[-1].lock.__align + 0x17);\n                          do {\n                            while( true ) {\n                              local_c4.sbcset = (re_bitset_ptr_t)(local_c4.idx + -1);\n                              if (local_c4.idx < 0) goto LAB_00055b70;\n                              aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                                       ((anon_union_4_5_a39f51ca_for_opr *)(stop + -4))->idx;\n                              if ((re_dfa_t *)aVar45.sbcset != (re_dfa_t *)0x0) break;\n                              stop = stop + -4;\n                            }\n                            stop = stop + -4;\n                          } while ((*(byte *)(aVar45.idx + 0x34) & 8) == 0);\n                          paVar18 = (anon_union_4_5_a39f51ca_for_opr *)\n                                    (*pcVar10)(&mctx,aVar45.sbcset,local_c4.sbcset);\n                          prVar51 = prVar52;\n                        }\n                      }\n                      (*(code *)PTR_free_00079c24)(unaff_s5.sbcset);\n                      (*(code *)PTR_free_00079c24)(aVar46.sbcset);\n                      local_150.idx = last_start;\n                      if ((re_dfa_t *)last_start == (re_dfa_t *)0x1) goto LAB_00055b04;\n                    }\n                  }\n                  else {\n                    local_150.idx = 0xc;\n                    prVar51 = prVar52;\n                  }\n                  goto LAB_000557e4;\n                }\n                if (prVar59->nbackref != 0) {\n                  aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                           ((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + local_c4.idx))->\n                           mbcset;\n                  aVar49 = local_c4;\n                  mctx.last_node =\n                       check_halt_state_context(&mctx,(re_dfastate_t *)aVar45.mbcset,local_c4.idx);\n                  goto LAB_00055c6c;\n                }\nLAB_00055c08:\n                if (((preg->field_0x1c & 8) == 0) && ((re_dfa_t *)0x1 < aVar4.sbcset)) {\n                  cVar37 = prVar59->field_0x58;\n                  goto LAB_00055c20;\n                }\nLAB_00055548:\n                if ((re_dfa_t *)aVar4.sbcset == (re_dfa_t *)0x0) goto LAB_000557e4;\n                if (aVar4.sbcset < (re_dfa_t *)0x2) {\n                  pmatch->rm_so = 0;\n                  pmatch->rm_eo = mctx.match_last;\n                  goto LAB_000555ac;\n                }\n                prVar19 = pmatch + 1;\n                do {\n                  prVar19->rm_eo = -1;\n                  prVar19->rm_so = -1;\n                  prVar19 = prVar19 + 1;\n                } while (prVar19 != pmatch + aVar4.idx);\n                pmatch->rm_so = 0;\n                pmatch->rm_eo = mctx.match_last;\n                if ((preg->field_0x1c & 8) != 0) {\nLAB_000555ac:\n                  prVar19 = pmatch;\n                  do {\n                    aVar45.sbcset = (re_bitset_ptr_t)prVar19->rm_so;\n                    if ((re_dfa_t *)aVar45.sbcset != (re_dfa_t *)0xffffffff) {\n                      if (mctx.input.offsets_needed != '\0') {\n                        rVar47 = mctx.input.valid_raw_len;\n                        if (aVar45.sbcset != (re_bitset_ptr_t)mctx.input.valid_len) {\n                          rVar47 = mctx.input.offsets[aVar45.idx];\n                        }\n                        prVar19->rm_so = rVar47;\n                        rVar47 = mctx.input.valid_raw_len;\n                        if (mctx.input.valid_len != prVar19->rm_eo) {\n                          rVar47 = mctx.input.offsets[prVar19->rm_eo];\n                        }\n                        prVar19->rm_eo = rVar47;\n                      }\n                      prVar19->rm_so = prVar19->rm_so + match_first;\n                      aVar45.sbcset = (re_bitset_ptr_t)(prVar19->rm_eo + match_first);\n                      prVar19->rm_eo = (regoff_t)aVar45;\n                    }\n                    prVar19 = prVar19 + 1;\n                  } while (prVar19 != pmatch + aVar4.idx);\n                  if (0 < local_118) {\n                    prVar19 = pmatch + aVar4.idx;\n                    do {\n                      prVar19->rm_so = -1;\n                      prVar19->rm_eo = -1;\n                      prVar19 = prVar19 + 1;\n                    } while (prVar19 != pmatch + nmatch);\n                  }\n                  aVar49.idx = match_first;\n                  prVar51 = (re_dfa_t *)pmatch;\n                  local_150.sbcset = aVar7.sbcset;\n                  if (prVar59->subexp_map != (Idx *)0x0) {\n                    aVar49.sbcset = (re_bitset_ptr_t)(aVar4.idx + -1);\n                    prVar52 = (re_dfa_t *)0x0;\n                    prVar19 = pmatch;\n                    while( true ) {\n                      aVar45.idx = (int)prVar52 * 4;\n                      if ((re_dfa_t *)aVar49.sbcset == prVar52) break;\n                      if ((re_dfa_t *)prVar59->subexp_map[(int)prVar52] != prVar52) {\n                        prVar19[1].rm_so =\n                             pmatch[(int)((int)&((re_string_t *)\n                                                &((re_dfa_t *)prVar59->subexp_map[(int)prVar52])->\n                                                 nodes)->raw_mbs + 1)].rm_so;\n                        prVar19[1].rm_eo = pmatch[prVar59->subexp_map[(int)prVar52] + 1].rm_eo;\n                      }\n                      prVar52 = (re_dfa_t *)((int)&((re_string_t *)&prVar52->nodes)->raw_mbs + 1);\n                      prVar19 = prVar19 + 1;\n                    }\n                  }\n                  goto LAB_000557e4;\n                }\n                if ((char)prVar59->field_0x58 < '\0') {\n                  bVar36 = 0 < prVar59->nbackref;\n                }\n                else {\n                  bVar36 = false;\n                }\n                aVar45.sbcset = (re_bitset_ptr_t)&mctx;\n                aVar49.sbcset = aVar4.sbcset;\n                prVar51 = (re_dfa_t *)pmatch;\n                local_150.idx =\n                     set_regs(preg,(re_match_context_t *)aVar45.mbcset,aVar4.ctx_type,pmatch,bVar36)\n                ;\n                if ((re_dfa_t *)local_150.sbcset == (re_dfa_t *)0x0) goto LAB_000555ac;\n              }\n            }\n          }\n          else if ((uint)mctx.input.bufs_len < 0x3fffffff) {\n            mctx.state_log =\n                 (re_dfastate_t **)(*(code *)PTR_malloc_00079b54)((mctx.input.bufs_len + 1) * 4);\n            if (mctx.state_log != (re_dfastate_t **)0x0) goto LAB_00055a40;\n            local_150.idx = 0xc;\n            stop = aVar56.idx;\n          }\n          else {\n            local_150.idx = 0xc;\n            stop = aVar56.idx;\n          }\n        }\n        else {\n          unaff_s5.idx = iVar55 * 8;\n          if (aVar56.sbcset < (re_dfa_t *)0xccccccd) {\n            unaff_s4 = (re_dfa_t *)(*(code *)PTR_malloc_00079b54)(iVar55 * 0x28);\n            mctx.bkref_ents = (re_backref_cache_entry *)unaff_s4;\n            mctx.sub_tops = (re_sub_match_top_t **)(*(code *)PTR_malloc_00079b54)(unaff_s5.sbcset);\n            if ((unaff_s4 != (re_dfa_t *)0x0) && (mctx.sub_tops != (re_sub_match_top_t **)0x0))\n            goto LAB_000559f0;\n          }\n          local_150.idx = 0xc;\n          stop = aVar56.idx;\n        }\nLAB_000557e4:\n        (*(code *)PTR_free_00079c24)(mctx.state_log);\n        preg = (regex_t *)aVar49;\n        if (prVar59->nbackref != 0) {\n          match_ctx_clean(&mctx);\n          (*(code *)PTR_free_00079c24)(mctx.sub_tops);\n          (*(code *)PTR_free_00079c24)(mctx.bkref_ents);\n          preg = (regex_t *)aVar49;\n        }\n        re_string_destruct(&mctx.input);\n        aStack_1a0 = aVar46;\n        paStack_19c = paVar18;\n      }" else (compound_statement "{\n        last_start = aVar4.idx;\n        aVar4.sbcset = (re_bitset_ptr_t)(nmatch - local_118);\n        if ((re_dfa_t *)aVar4.sbcset == (re_dfa_t *)0x0) {\n          paVar54 = (anon_union_4_5_a39f51ca_for_opr *)(uint)(prVar59->nbackref != 0);\n        }\n        else {\n          paVar54 = (anon_union_4_5_a39f51ca_for_opr *)0x1;\n        }\n        puVar50 = preg->translate;\n        mctx.input.icase = (uchar)((preg->syntax << 9) >> 0x1f);\n        mctx.input.mb_cur_max = prVar59->mb_cur_max;\n        aVar46.sbcset = (re_bitset_ptr_t)(prVar59->nodes_len + 1);\n        if (aVar46.idx < mctx.input.mb_cur_max) {\n          aVar46 = (anon_union_4_5_a39f51ca_for_opr)mctx.input.mb_cur_max;\n        }\n        aVar49.idx._0_3_ = 0;\n        aVar49.idx._3_1_ = ((re_bitset_ptr_t)(length + 1)).idx < aVar46.idx;\n        prVar51 = (re_dfa_t *)0x1;\n        mctx.input.mbs_allocated = mctx.input.icase;\n        if (puVar50 != (uchar *)0x0) {\n          mctx.input.mbs_allocated = 1;\n        }\n        mctx.input.is_utf8 = (uchar)((uint)(*(int *)&prVar59->field_0x58 << 2) >> 0x1f);\n        mctx.input.map_notascii = (uchar)((uint)(*(int *)&prVar59->field_0x58 << 3) >> 0x1f);\n        aVar45.sbcset = ((re_bitset_ptr_t)(length + 1)).sbcset;\n        if ((re_dfa_t *)aVar49.sbcset == (re_dfa_t *)0x0) {\n          aVar45 = aVar46;\n        }\n        mctx.input.raw_mbs = (uchar *)string;\n        mctx.input.raw_len = length;\n        mctx.input.len = length;\n        mctx.input.raw_stop = length;\n        mctx.input.stop = length;\n        mctx.input.trans = puVar50;\n        local_150.idx = re_string_realloc_buffers(&mctx.input,aVar45.idx);\n        aVar46.idx = start;\n        paVar18 = paVar54;\n        stop = stop;\n        if ((re_dfa_t *)local_150.sbcset != (re_dfa_t *)0x0) goto LAB_000557e4;\n        mctx.input.word_char = prVar59->word_char;\n        mctx.input.word_ops_used = (uchar)((uint)(*(int *)&prVar59->field_0x58 << 4) >> 0x1f);\n        paVar2 = (anon_union_4_5_a39f51ca_for_opr *)0x0;\n        mctx.input.valid_len = (Idx)paVar2;\n        if ((mctx.input.mbs_allocated == '\0') &&\n           (mctx.input.mbs = (uchar *)string, prVar59->mb_cur_max < 2)) {\n          mctx.input.valid_len = length;\n        }\n        mctx.input.stop = stop;\n        mctx.input.raw_stop = stop;\n        mctx.input.newline_anchor = (uchar)((uint)(*(int *)&preg->field_0x1c << 7) >> 0x1f);\n        iVar55 = prVar59->nbackref;\n        aVar56.idx = iVar55 * 2;\n        mctx.eflags = eflags;\n        mctx.match_last = -1;\n        mctx.input.valid_raw_len = mctx.input.valid_len;\n        if ((int)aVar56 < 1) {\nLAB_000559f0:\n          mctx.max_mb_elem_len = 1;\n          mctx.abkref_ents = aVar56.idx;\n          mctx.asub_tops = aVar56.idx;\n          if ((aVar4.sbcset < (re_dfa_t *)0x2) && ((prVar59->field_0x58 & 0x40) == 0)) {\n            mctx.state_log = (re_dfastate_t **)0x0;\nLAB_00055a40:\n            mctx.input.tip_context = 6;\n            if ((eflags & 1U) != 0) {\n              mctx.input.tip_context = 4;\n            }\n            aVar39.idx = 1;\n            aVar40.idx = start;\n            if (last_start < start) {\n              aVar39.idx = -1;\n              aVar40.idx = last_start;\n            }\n            aVar41.idx = last_start;\n            if (last_start <= start) {\n              aVar41.idx = start;\n            }\n            iVar55 = prVar59->mb_cur_max;\n            rVar20 = 8;\n            if ((re_dfa_t *)local_148.sbcset != (re_dfa_t *)0x0) {\n              if (iVar55 == 1) {\n                paVar43 = (anon_union_4_5_a39f51ca_for_opr *)0x4;\n              }\n              else {\n                paVar43 = paVar2;\n                if ((-1 < (int)(preg->syntax << 9)) && (puVar50 == (uchar *)0x0)) {\n                  paVar43 = (anon_union_4_5_a39f51ca_for_opr *)0x4;\n                }\n              }\n              aVar45.sbcset = (re_bitset_ptr_t)0x0;\n              if (start <= last_start) {\n                aVar45.idx = 2;\n              }\n              rVar20 = (uint)(puVar50 != (uchar *)0x0) | (uint)paVar43 | aVar45.ctx_type;\n            }\n            match_first = start;\n            if (start < aVar40.idx) {\n              local_150.idx = 1;\n              stop = aVar56.idx;\n            }\n            else {\n              aVar46.idx._0_3_ = 0;\n              aVar46.idx._3_1_ = last_start < start;\n              if (aVar41.idx < start) {\n                local_150.idx = 1;\n                stop = aVar56.idx;\n              }\n              else {\n                piVar38 = &match_first;\n                if ((re_dfa_t *)aVar46.sbcset != (re_dfa_t *)0x0) {\n                  piVar38 = (int *)0x0;\n                }\n                pcVar5 = (code *)(PTR_DAT_000799a4 + -0x2b7c);\n                piVar6 = (int *)(PTR_s_nt0_000795b8 + (rVar20 - 4) * 4 + 0x6e38);\nLAB_00055b44:\n                if (rVar20 - 4 < 5) {\n                    /* WARNING: Could not emulate address calculation at 0x00054920 */\n                    /* WARNING: Treating indirect jump as call */\n                  rVar21 = (*(code *)(&_gp + *piVar6))();\n                  return rVar21;\n                }\n                last_start = (Idx)&mctx;\n                prVar52 = prVar51;\n                while( true ) {\n                  aVar46.idx = match_first;\n                  uVar8 = match_first - mctx.input.raw_mbs_idx;\n                  aVar49 = (anon_union_4_5_a39f51ca_for_opr)eflags;\n                  paVar18 = paVar2;\n                  stop = local_148.idx;\n                  unaff_s4 = (re_dfa_t *)length;\n                  unaff_s5 = aVar39;\n                  unaff_s7 = aVar41;\n                  if ((uint)mctx.input.valid_raw_len <= uVar8) {\n                    aVar45.idx = match_first;\n                    local_150.sbcset = (re_bitset_ptr_t)(*pcVar5)(last_start);\n                    prVar51 = prVar52;\n                    if ((re_dfa_t *)local_150.sbcset != (re_dfa_t *)0x0) goto LAB_000557e4;\n                    uVar8 = (int)aVar46.sbcset - mctx.input.raw_mbs_idx;\n                  }\n                  if (aVar46.idx < length) {\n                    uVar8 = (uint)mctx.input.mbs[uVar8];\n                  }\n                  else {\n                    uVar8 = 0;\n                  }\n                  aVar56.sbcset = aVar46.sbcset + aVar39.sbcset;\n                  aVar46.sbcset = aVar56.sbcset;\n                  if (*(char *)((int)local_148.sbcset + uVar8) != '\0') break;\n                  prVar51 = prVar52;\n                  match_first = aVar56.idx;\n                  if (aVar56.idx < aVar40.idx) {\n                    local_150.idx = 1;\n                    goto LAB_000557e4;\n                  }\n                  aVar46.idx._0_3_ = 0;\n                  aVar46.idx._3_1_ = aVar41.idx < aVar56.idx;\n                  if ((re_dfa_t *)aVar46.sbcset != (re_dfa_t *)0x0) {\n                    local_150.idx = 1;\n                    goto LAB_000557e4;\n                  }\n                }\n                while( true ) {\n                  aVar45.idx = match_first;\n                  aVar49 = (anon_union_4_5_a39f51ca_for_opr)eflags;\n                  aVar7.sbcset = (re_bitset_ptr_t)(*pcVar5)(&mctx);\n                  aVar15 = (anon_union_4_5_a39f51ca_for_opr)mctx.dfa;\n                  aVar56.idx = mctx.input.cur_idx;\n                  prVar51 = prVar52;\n                  local_150.sbcset = aVar7.sbcset;\n                  if ((re_dfa_t *)aVar7.sbcset != (re_dfa_t *)0x0) goto LAB_000557e4;\n                  if (((iVar55 != 1) && (mctx.input.valid_len != 0)) &&\n                     (*mctx.input.wcs == 0xffffffff)) goto LAB_00055b1c;\n                  mctx.max_mb_elem_len = 0;\n                  mctx.nbkref_ents = 0;\n                  mctx.state_log_top = 0;\n                  local_138.idx = mctx.input.cur_idx;\n                  err = _REG_NOERROR;\n                  unaff_s7 = (anon_union_4_5_a39f51ca_for_opr)(mctx.dfa)->init_state;\n                  aVar49 = (anon_union_4_5_a39f51ca_for_opr)mctx.eflags;\n                  aVar46 = aVar15;\n                  if ((*(byte *)(unaff_s7.idx + 0x34) & 1) == 0) break;\n                  aVar45.sbcset = (re_bitset_ptr_t)(mctx.input.cur_idx + -1);\n                  prVar51 = (re_dfa_t *)re_string_context_at(&mctx.input,aVar45.idx,mctx.eflags);\n                  if (((uint)prVar51 & 1) == 0) {\n                    if (prVar51 == (re_dfa_t *)0x0) break;\n                    if (((uint)prVar51 & 6) == 6) {\n                      unaff_s7 = (anon_union_4_5_a39f51ca_for_opr)\n                                 ((re_dfa_t *)aVar15.idx)->init_state_begbuf;\n                      goto LAB_00054d1c;\n                    }\n                    if (((uint)prVar51 & 2) != 0) {\n                      unaff_s7 = (anon_union_4_5_a39f51ca_for_opr)\n                                 ((re_dfa_t *)aVar15.idx)->init_state_nl;\n                      goto LAB_00054d1c;\n                    }\n                    prVar52 = prVar51;\n                    if (((uint)prVar51 & 4) == 0) break;\n                    aVar49 = (anon_union_4_5_a39f51ca_for_opr)\n                             ((anon_union_4_5_a39f51ca_for_opr *)(unaff_s7.idx + 0x28))->mbcset;\n                    aVar45 = aVar15;\n                    unaff_s7.sbcset =\n                         &re_acquire_state_context\n                                    (&err,aVar15.sbcset,(re_node_set *)aVar49.mbcset,(uint)prVar51)\n                          ->hash;\n                    prVar52 = prVar51;\n                    if ((re_dfa_t *)unaff_s7.sbcset != (re_dfa_t *)0x0) break;\n                    if (err == _REG_ESPACE) goto LAB_00055914;\n                  }\n                  else {\n                    unaff_s7 = (anon_union_4_5_a39f51ca_for_opr)\n                               ((re_dfa_t *)aVar15.idx)->init_state_word;\nLAB_00054d1c:\n                    prVar52 = (re_dfa_t *)PTR_s_nt0_000795b8;\n                    if ((re_dfa_t *)unaff_s7.sbcset != (re_dfa_t *)0x0) break;\n                  }\n                  prVar52 = (re_dfa_t *)(PTR_s_nt0_000795b8 + 0x6eb0);\n                  aVar45.sbcset = (re_bitset_ptr_t)(PTR_s_nt0_000795b8 + 0x712c);\n                  match_first = (*(code *)PTR___assert_fail_000799f8)\n                                          (PTR_s_nt0_000795b8 + 0x71a0,aVar45.sbcset,0x435);\n                  if ((re_bitset_ptr_t)match_first == aVar41.sbcset) {\n                    if (match_first < length) {\n                      uVar8 = (uint)(byte)string[match_first];\n                    }\n                    else {\n                      uVar8 = 0;\n                    }\n                    if (puVar50 != (uchar *)0x0) {\n                      uVar8 = (uint)puVar50[uVar8];\n                    }\n                    if (*(char *)((int)local_148.sbcset + uVar8) == '\0') {\n                      local_150.idx = 1;\n                      aVar49 = (anon_union_4_5_a39f51ca_for_opr)eflags;\n                      prVar51 = prVar52;\n                      goto LAB_000557e4;\n                    }\n                  }\n                }\n                prVar51 = prVar52;\n                bVar36 = piVar38 != (int *)0x0;\n                if ((mctx.state_log == (re_dfastate_t **)0x0) ||\n                   (((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + aVar56.idx))->mbcset =\n                         (re_charset_t *)unaff_s7, ((re_dfa_t *)aVar15.idx)->nbackref == 0)) {\nLAB_00054d50:\n                  if ((int)*(bin_tree_t **)(unaff_s7.idx + 0x34) << 4 < 0) {\n                    if (((*(byte *)(unaff_s7.idx + 0x34) & 1) == 0) ||\n                       (aVar45 = unaff_s7, aVar49 = aVar56,\n                       IVar17 = check_halt_state_context(&mctx,unaff_s7.idx,aVar56.idx), IVar17 != 0\n                       )) {\n                      local_c4 = aVar56;\n                      if (paVar54 == (anon_union_4_5_a39f51ca_for_opr *)0x0) goto LAB_00055dbc;\n                      prVar52 = (re_dfa_t *)0x1;\n                    }\n                    else {\n                      aVar56.idx = -1;\n                      prVar52 = (re_dfa_t *)0x0;\n                    }\n                  }\n                  else {\n                    aVar56.idx = -1;\n                    prVar52 = (re_dfa_t *)0x0;\n                  }\n                  pcVar9 = (code *)(PTR_DAT_000799a4 + -0x7144);\n                  pcVar10 = (code *)(PTR_DAT_000799a4 + -0x1980);\n                  pcVar11 = (code *)(PTR_DAT_000799a4 + -0x2f9c);\n                  local_c4 = aVar56;\n                  local_144 = piVar38;\n                  while( true ) {\n                    uVar63 = CONCAT44(mctx.input.valid_len,mctx.input.len);\n                    unaff_s5.sbcset = (re_bitset_ptr_t)(mctx.input.cur_idx + 1);\n                    aVar45.idx = mctx.input.cur_idx;\n                    if (mctx.input.stop <= mctx.input.cur_idx) break;\n                    if ((mctx.input.bufs_len <= unaff_s5.idx) &&\n                       (mctx.input.bufs_len < mctx.input.len)) goto LAB_00054e94;\n                    if (mctx.input.valid_len <= unaff_s5.idx) {\n                      while ((int)((ulonglong)uVar63 >> 0x20) < (int)uVar63) {\nLAB_00054e94:\n                        aVar45.sbcset =\n                             (re_bitset_ptr_t)\n                             ((int)&((re_string_t *)&(aVar45.mbcset)->mbchars)->raw_mbs + 2);\n                        err = (*pcVar9)(&mctx);\n                        if (err == _REG_NOERROR) break;\n                        aVar15 = aVar46;\n                        if (err == _REG_ESPACE) goto LAB_00055914;\n                        prVar51 = (re_dfa_t *)(PTR_s_nt0_000795b8 + 0x6eb0);\n                        aVar49.idx = 0x46c;\n                        aVar45.sbcset = (re_bitset_ptr_t)(PTR_s_nt0_000795b8 + 0x712c);\n                        uVar63 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0);\n                        prVar52 = prVar59;\n                      }\n                    }\n                    prVar3 = mctx.dfa;\n                    if ((int)*(bin_tree_t **)(unaff_s7.idx + 0x34) << 5 < 0) {\n                      paVar18 = (anon_union_4_5_a39f51ca_for_opr *)prVar3;\n                      if (0 < (int)(unaff_s7.mbcset)->range_ends) {\n                        pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6fdc);\n                        pcVar13 = (code *)(PTR_DAT_000799a4 + -0x6ef0);\n                        stop = 0;\n                        do {\n                          last_start = ((anon_union_4_5_a39f51ca_for_opr *)\n                                       ((unaff_s7.mbcset)->char_classes + stop))->idx;\n                          prVar53 = prVar3->nodes;\n                          uVar8 = *(uint *)&prVar53[last_start].field_0x4;\n                          if ((uVar8 & 0x800) != 0) {\n                            if ((uVar8 & 0xffc000) != 0) {\n                              aVar45.idx = mctx.input.cur_idx;\n                              uVar60 = (*pcVar13)(&mctx,mctx.input.cur_idx,mctx.eflags);\n                              uVar8 = (uint)(*(int *)&prVar53[last_start].field_0x4 << 8) >> 0x16;\n                              if ((uVar8 & 4) == 0) {\n                                uVar26 = uVar60 & 1;\n                                if ((uVar8 & 8) != 0) goto joined_r0x00054f40;\n                              }\n                              else {\n                                uVar26 = uVar8 & 8;\n                                if ((uVar60 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                                if (uVar26 != 0) goto LAB_000550a4;\n                              }\n                              if ((((uVar8 & 0x20) != 0) && ((uVar60 & 2) == 0)) ||\n                                 (((uVar8 & 0x80) != 0 &&\n                                  (prVar51 = (re_dfa_t *)mctx.input.cur_idx, (uVar60 & 8) == 0))))\n                              goto LAB_000550a4;\n                            }\n                            aVar49.sbcset = (re_bitset_ptr_t)&mctx;\n                            aVar45.idx = last_start;\n                            prVar51 = (re_dfa_t *)mctx.input.cur_idx;\n                            iVar61 = (*pcVar11)(prVar3);\n                            if (iVar61 != 0) {\n                              aVar46.sbcset = (re_bitset_ptr_t)(iVar61 + mctx.input.cur_idx);\n                              if (iVar61 <= mctx.max_mb_elem_len) {\n                                iVar61 = mctx.max_mb_elem_len;\n                              }\n                              aVar45.sbcset = aVar46.sbcset;\n                              mctx.max_mb_elem_len = iVar61;\n                              err_1 = (*pcVar12)(&mctx);\n                              rVar21 = err_1;\n                              if (err_1 != _REG_NOERROR) goto LAB_00055e44;\n                              aVar49.sbcset =\n                                   (re_bitset_ptr_t)(prVar3->eclosures + prVar3->nexts[last_start]);\n                              unaff_s4 = (re_dfa_t *)(aVar46.idx * 4);\n                              last_start = (Idx)(mctx.state_log + aVar46.idx);\n                              if (*(bitset_word_t *)last_start == 0) {\n                                dest_nodes.alloc = *aVar49.sbcset;\n                                dest_nodes.nelem =\n                                     ((re_node_set *)&(aVar49.mbcset)->range_starts)->alloc;\n                                dest_nodes.elems = (aVar49.mbcset)->range_ends;\n                                prVar51 = (re_dfa_t *)\n                                          (*pcVar13)(&mctx,(undefined1 *)(aVar46.idx + -1),\n                                                     mctx.eflags);\n                                aVar49.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                                aVar45 = (anon_union_4_5_a39f51ca_for_opr)prVar3;\n                                prVar35 = re_acquire_state_context\n                                                    (&err_1,prVar3,(re_node_set *)aVar49.mbcset,\n                                                     (uint)prVar51);\n                                ((re_string_t *)&((re_charset_t *)last_start)->mbchars)->raw_mbs =\n                                     (uchar *)prVar35;\n                              }\n                              else {\n                                aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                                         ((anon_union_4_5_a39f51ca_for_opr *)\n                                         (*(bitset_word_t *)last_start + 0x28))->mbcset;\n                                err_1 = re_node_set_init_union\n                                                  (&dest_nodes,(re_node_set *)aVar45.mbcset,\n                                                   (re_node_set *)aVar49.mbcset);\n                                rVar21 = err_1;\n                                if (err_1 != _REG_NOERROR) goto LAB_00055e44;\n                                prVar51 = (re_dfa_t *)\n                                          (*pcVar13)(&mctx,(undefined1 *)(aVar46.idx + -1),\n                                                     mctx.eflags);\n                                pprVar14 = mctx.state_log + aVar46.idx;\n                                aVar49.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                                aVar45 = (anon_union_4_5_a39f51ca_for_opr)prVar3;\n                                prVar35 = re_acquire_state_context\n                                                    (&err_1,prVar3,(re_node_set *)aVar49.mbcset,\n                                                     (uint)prVar51);\n                                *pprVar14 = prVar35;\n                                (*(code *)PTR_free_00079c24)(dest_nodes.elems);\n                              }\n                              unaff_s4 = (re_dfa_t *)(mctx.state_log + aVar46.idx);\n                              if ((unaff_s4->nodes == (re_token_t *)0x0) &&\n                                 (rVar21 = err_1, err_1 != _REG_NOERROR)) goto LAB_00055e44;\n                            }\n                          }\nLAB_000550a4:\n                          stop = (int)&((re_string_t *)&((re_charset_t *)stop)->mbchars)->raw_mbs +\n                                 1;\n                        } while (stop < (int)(unaff_s7.mbcset)->range_ends);\n                      }\n                      err = _REG_NOERROR;\n                    }\n                    uVar8 = (uint)mctx.input.mbs[mctx.input.cur_idx];\n                    mctx.input.cur_idx = mctx.input.cur_idx + 1;\n                    do {\n                      if (*(re_dfastate_t **)(unaff_s7.idx + 0x2c) != (re_dfastate_t *)0x0) {\n                        aVar49 = (anon_union_4_5_a39f51ca_for_opr)\n                                 ((anon_union_4_5_a39f51ca_for_opr *)\n                                 (&(*(re_dfastate_t **)(unaff_s7.idx + 0x2c))->hash + uVar8))->\n                                 mbcset;\nLAB_000553a0:\n                        aVar15 = aVar49;\n                        if (mctx.state_log != (re_dfastate_t **)0x0) goto LAB_000553ac;\n                        goto LAB_000553cc;\n                      }\n                      paVar18 = *(anon_union_4_5_a39f51ca_for_opr **)(unaff_s7.idx + 0x30);\n                      if (paVar18 != (anon_union_4_5_a39f51ca_for_opr *)0x0) {\n                        aVar45.sbcset = (re_bitset_ptr_t)(mctx.input.cur_idx + -1);\n                        uVar60 = re_string_context_at(&mctx.input,aVar45.idx,mctx.eflags);\n                        if ((uVar60 & 1) == 0) {\n                          aVar49 = (anon_union_4_5_a39f51ca_for_opr)paVar18[uVar8].mbcset;\n                        }\n                        else {\n                          paVar18 = paVar18 + uVar8 + 0x100;\n                          aVar49 = (anon_union_4_5_a39f51ca_for_opr)paVar18->mbcset;\n                        }\n                        goto LAB_000553a0;\n                      }\n                      aVar45 = unaff_s7;\n                      aVar49 = (anon_union_4_5_a39f51ca_for_opr)mctx.eflags;\n                      iVar61 = (*pcVar10)(mctx.dfa);\n                    } while (iVar61 != 0);\n                    err = _REG_ESPACE;\n                    rVar21 = err;\nLAB_00055e44:\n                    err = rVar21;\n                    aVar46.sbcset = (re_bitset_ptr_t)0x0;\n                    if (mctx.state_log == (re_dfastate_t **)0x0) {\n                      aVar15.sbcset = aVar46.sbcset;\n                      if (err != _REG_NOERROR) goto LAB_00055914;\n                      break;\n                    }\n                    aVar49.sbcset = (re_bitset_ptr_t)0x0;\nLAB_000553ac:\n                    aVar45.sbcset = (re_bitset_ptr_t)&mctx;\n                    aVar15.sbcset =\n                         &merge_state_with_log\n                                    (&err,(re_match_context_t *)aVar45.mbcset,aVar49.sbcset)->hash;\nLAB_000553cc:\n                    aVar46 = aVar15;\n                    if ((re_dfa_t *)aVar15.sbcset == (re_dfa_t *)0x0) {\n                      if (err != _REG_NOERROR) goto LAB_00055914;\n                      if ((mctx.state_log == (re_dfastate_t **)0x0) ||\n                         ((prVar52 != (re_dfa_t *)0x0 &&\n                          (paVar54 == (anon_union_4_5_a39f51ca_for_opr *)0x0)))) break;\n                      stop = (Idx)&mctx;\n                      last_start = (Idx)&err;\n                      paVar18 = (anon_union_4_5_a39f51ca_for_opr *)(PTR_DAT_000799a4 + 0x3684);\n                      do {\n                        pprVar14 = mctx.state_log + mctx.input.cur_idx;\n                        IVar17 = mctx.input.cur_idx;\n                        do {\n                          IVar17 = IVar17 + 1;\n                          aVar45.idx = mctx.state_log_top;\n                          aVar46 = aVar15;\n                          if (mctx.state_log_top < IVar17) goto LAB_00055da8;\n                          mctx.input.cur_idx = mctx.input.cur_idx + 1;\n                          pprVar14 = pprVar14 + 1;\n                        } while (*pprVar14 == (re_dfastate_t *)0x0);\n                        aVar49.sbcset = (re_bitset_ptr_t)0x0;\n                        aVar45.sbcset = (re_bitset_ptr_t)stop;\n                        aVar46.sbcset = (re_bitset_ptr_t)(*(code *)paVar18)(last_start);\n                        if (err != _REG_NOERROR) {\n                          if ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0) goto LAB_00055da8;\n                          break;\n                        }\n                        aVar45.idx = mctx.state_log_top;\n                      } while ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0);\n                    }\n                    aVar16.ctx_type = unaff_s7.ctx_type ^ aVar46.ctx_type;\n                    aVar56 = unaff_s7;\n                    aVar15 = local_138;\n                    if ((bVar36) &&\n                       (aVar56.ctx_type = aVar16.ctx_type, aVar15.sbcset = unaff_s5.sbcset,\n                       (re_dfa_t *)aVar16.sbcset != (re_dfa_t *)0x0)) {\n                      bVar36 = false;\n                      aVar15 = local_138;\n                    }\n                    local_138 = aVar15;\n                    unaff_s7 = aVar46;\n                    if (((*(byte *)(aVar46.idx + 0x34) & 8) != 0) &&\n                       (((*(byte *)(aVar46.idx + 0x34) & 1) == 0 ||\n                        (aVar45 = aVar46, aVar49.idx = mctx.input.cur_idx,\n                        IVar17 = check_halt_state_context(&mctx,aVar46.idx,mctx.input.cur_idx),\n                        IVar17 != 0)))) {\n                      unaff_s7 = aVar56;\n                      local_c4.idx = mctx.input.cur_idx;\n                      if (paVar54 == (anon_union_4_5_a39f51ca_for_opr *)0x0) goto LAB_00055dbc;\n                      prVar52 = (re_dfa_t *)0x1;\n                      local_144 = (int *)0x0;\n                      unaff_s7 = aVar46;\n                    }\n                  }\nLAB_00055da8:\n                  if (local_144 != (int *)0x0) {\n                    *local_144 = *local_144 + (int)local_138.sbcset;\n                  }\n                }\n                else {\n                  aVar46.sbcset = (re_bitset_ptr_t)&(unaff_s7.mbcset)->range_starts;\n                  aVar49.sbcset = (re_bitset_ptr_t)0x0;\n                  aVar45 = aVar46;\n                  err = check_subexp_matching_top(&mctx,(re_node_set *)aVar46.mbcset,0);\n                  local_c4.idx = err;\n                  if ((re_dfa_t *)err == (re_dfa_t *)0x0) {\n                    if ((*(byte *)(unaff_s7.idx + 0x34) & 2) == 0) {\n                      aVar45 = aVar46;\n                      bVar36 = false;\n                    }\n                    else {\n                      aVar45 = aVar46;\n                      err = transit_state_bkref(&mctx,(re_node_set *)aVar46.mbcset);\n                      local_c4.idx = err;\n                      if ((re_dfa_t *)err != (re_dfa_t *)0x0) goto LAB_00055dbc;\n                      bVar36 = false;\n                    }\n                    goto LAB_00054d50;\n                  }\n                }\nLAB_00055dbc:\n                if ((re_dfa_t *)local_c4.sbcset == (re_dfa_t *)0xffffffff) {\nLAB_00055b04:\n                  match_ctx_clean(&mctx);\nLAB_00055b1c:\n                  match_first = aVar39.idx + match_first;\n                  if (aVar40.idx <= match_first) goto code_r0x00055b38;\n                  local_150.idx = 1;\n                  goto LAB_000557e4;\n                }\n                if ((re_dfa_t *)local_c4.sbcset == (re_dfa_t *)&SUB_fffffffe) {\n                  local_150.idx = 0xc;\n                  goto LAB_000557e4;\n                }\n                mctx.match_last = local_c4.idx;\n                if ((preg->field_0x1c & 8) == 0) {\n                  if (aVar4.sbcset < (re_dfa_t *)0x2) {\n                    if (prVar59->nbackref == 0) goto LAB_00055c08;\n                    aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                             ((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + local_c4.idx))->\n                             mbcset;\n                    aVar49 = local_c4;\n                    mctx.last_node =\n                         check_halt_state_context(&mctx,(re_dfastate_t *)aVar45.mbcset,local_c4.idx)\n                    ;\n                  }\n                  else {\n                    aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                             ((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + local_c4.idx))->\n                             mbcset;\n                    aVar49 = local_c4;\n                    mctx.last_node =\n                         check_halt_state_context(&mctx,(re_dfastate_t *)aVar45.mbcset,local_c4.idx)\n                    ;\n                  }\n                  if (aVar4.sbcset < (re_dfa_t *)0x2) {\nLAB_00055c6c:\n                    prVar52 = prVar51;\n                    unaff_s4 = mctx.dfa;\n                    if (prVar59->nbackref == 0) goto LAB_00055548;\n                  }\n                  else {\n                    cVar37 = prVar59->field_0x58;\nLAB_00055c20:\n                    prVar52 = prVar51;\n                    if (-1 < cVar37) goto LAB_00055c6c;\n                  }\n                  paVar18 = (anon_union_4_5_a39f51ca_for_opr *)mctx.last_node;\n                  prVar3 = mctx.dfa;\n                  unaff_s4 = prVar3;\n                  if ((uint)local_c4 < (re_dfa_t *)0x3fffffff) {\n                    aVar46.idx = (int)((int)&((re_string_t *)&(local_c4.mbcset)->mbchars)->raw_mbs +\n                                      1) * 4;\n                    unaff_s5.sbcset = (re_bitset_ptr_t)(*(code *)PTR_malloc_00079b54)(aVar46.sbcset)\n                    ;\n                    if ((re_dfa_t *)unaff_s5.sbcset == (re_dfa_t *)0x0) {\nLAB_00055b9c:\n                      (*(code *)PTR_free_00079c24)(unaff_s5.sbcset);\n                      local_150.idx = 0xc;\n                      prVar51 = prVar52;\n                    }\n                    else {\n                      aVar45.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                      if (prVar3->nbackref == 0) {\n                        dest_nodes.nelem = 0;\n                        dest_nodes.elems = &paVar18->idx;\n                        dest_nodes.alloc = (Idx)unaff_s5.sbcset;\n                        last_start = sift_states_backward(&mctx,(re_sift_context_t *)aVar45.mbcset);\n                        (*(code *)PTR_free_00079c24)(0);\n                        if ((re_dfa_t *)last_start == (re_dfa_t *)0x0) {\n                          aVar46.mbcset = (re_charset_t *)*unaff_s5.sbcset;\n                          if ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0) {\nLAB_00055b70:\n                            (*(code *)PTR_free_00079c24)(unaff_s5.sbcset);\n                            (*(code *)PTR_free_00079c24)(aVar46.sbcset);\n                            prVar51 = prVar52;\n                            goto LAB_00055b04;\n                          }\nLAB_00055528:\n                          (*(code *)PTR_free_00079c24)(mctx.state_log);\n                          prVar51 = prVar52;\n                          unaff_s4 = prVar3;\n                          mctx.match_last = local_c4.idx;\n                          mctx.last_node = (Idx)paVar18;\n                          mctx.state_log = (re_dfastate_t **)unaff_s5.sbcset;\n                          goto LAB_00055548;\n                        }\nLAB_00055acc:\n                        aVar46.sbcset = (re_bitset_ptr_t)0x0;\n                        prVar51 = prVar52;\n                        unaff_s4 = prVar3;\n                      }\n                      else {\n                        aVar46.sbcset =\n                             (re_bitset_ptr_t)(*(code *)PTR_malloc_00079b54)(aVar46.sbcset);\n                        if ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0) goto LAB_00055b9c;\n                        unaff_s7.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                        pcVar9 = (code *)(PTR_DAT_000799a4 + 0x421c);\n                        pcVar10 = (code *)(PTR_DAT_000799a4 + -0x6bc0);\n                        prVar51 = prVar52;\n                        while( true ) {\n                          prVar52 = (re_dfa_t *)(local_c4.idx + 1);\n                          stop = (int)prVar52 * 4;\n                          aVar49.idx = stop;\n                          (*(code *)PTR_memset_00079b00)(aVar46.sbcset,0);\n                          aVar45.sbcset = unaff_s7.sbcset;\n                          dest_nodes.alloc = (Idx)unaff_s5.sbcset;\n                          dest_nodes.nelem = (Idx)aVar46.sbcset;\n                          dest_nodes.elems = (Idx *)paVar18;\n                          last_start = (*pcVar9)(&mctx);\n                          (*(code *)PTR_free_00079c24)(0);\n                          unaff_s4 = prVar52;\n                          if ((re_dfa_t *)last_start != (re_dfa_t *)0x0) break;\n                          if ((*unaff_s5.sbcset != 0) || (stop = stop + -4, *aVar46.sbcset != 0)) {\n                            aVar45.sbcset = unaff_s5.sbcset;\n                            aVar49.sbcset = aVar46.sbcset;\n                            last_start = merge_state_array(prVar3,(re_dfastate_t **)unaff_s5.sbcset,\n                                                           (re_dfastate_t **)aVar46.sbcset,\n                                                           (Idx)prVar52);\n                            (*(code *)PTR_free_00079c24)(aVar46.sbcset);\n                            if ((re_dfa_t *)last_start != (re_dfa_t *)0x0) goto LAB_00055acc;\n                            goto LAB_00055528;\n                          }\n                          stop = (Idx)(mctx.state_log + (int)&prVar52[-1].lock.__align + 0x17);\n                          do {\n                            while( true ) {\n                              local_c4.sbcset = (re_bitset_ptr_t)(local_c4.idx + -1);\n                              if (local_c4.idx < 0) goto LAB_00055b70;\n                              aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                                       ((anon_union_4_5_a39f51ca_for_opr *)(stop + -4))->idx;\n                              if ((re_dfa_t *)aVar45.sbcset != (re_dfa_t *)0x0) break;\n                              stop = stop + -4;\n                            }\n                            stop = stop + -4;\n                          } while ((*(byte *)(aVar45.idx + 0x34) & 8) == 0);\n                          paVar18 = (anon_union_4_5_a39f51ca_for_opr *)\n                                    (*pcVar10)(&mctx,aVar45.sbcset,local_c4.sbcset);\n                          prVar51 = prVar52;\n                        }\n                      }\n                      (*(code *)PTR_free_00079c24)(unaff_s5.sbcset);\n                      (*(code *)PTR_free_00079c24)(aVar46.sbcset);\n                      local_150.idx = last_start;\n                      if ((re_dfa_t *)last_start == (re_dfa_t *)0x1) goto LAB_00055b04;\n                    }\n                  }\n                  else {\n                    local_150.idx = 0xc;\n                    prVar51 = prVar52;\n                  }\n                  goto LAB_000557e4;\n                }\n                if (prVar59->nbackref != 0) {\n                  aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                           ((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + local_c4.idx))->\n                           mbcset;\n                  aVar49 = local_c4;\n                  mctx.last_node =\n                       check_halt_state_context(&mctx,(re_dfastate_t *)aVar45.mbcset,local_c4.idx);\n                  goto LAB_00055c6c;\n                }\nLAB_00055c08:\n                if (((preg->field_0x1c & 8) == 0) && ((re_dfa_t *)0x1 < aVar4.sbcset)) {\n                  cVar37 = prVar59->field_0x58;\n                  goto LAB_00055c20;\n                }\nLAB_00055548:\n                if ((re_dfa_t *)aVar4.sbcset == (re_dfa_t *)0x0) goto LAB_000557e4;\n                if (aVar4.sbcset < (re_dfa_t *)0x2) {\n                  pmatch->rm_so = 0;\n                  pmatch->rm_eo = mctx.match_last;\n                  goto LAB_000555ac;\n                }\n                prVar19 = pmatch + 1;\n                do {\n                  prVar19->rm_eo = -1;\n                  prVar19->rm_so = -1;\n                  prVar19 = prVar19 + 1;\n                } while (prVar19 != pmatch + aVar4.idx);\n                pmatch->rm_so = 0;\n                pmatch->rm_eo = mctx.match_last;\n                if ((preg->field_0x1c & 8) != 0) {\nLAB_000555ac:\n                  prVar19 = pmatch;\n                  do {\n                    aVar45.sbcset = (re_bitset_ptr_t)prVar19->rm_so;\n                    if ((re_dfa_t *)aVar45.sbcset != (re_dfa_t *)0xffffffff) {\n                      if (mctx.input.offsets_needed != '\0') {\n                        rVar47 = mctx.input.valid_raw_len;\n                        if (aVar45.sbcset != (re_bitset_ptr_t)mctx.input.valid_len) {\n                          rVar47 = mctx.input.offsets[aVar45.idx];\n                        }\n                        prVar19->rm_so = rVar47;\n                        rVar47 = mctx.input.valid_raw_len;\n                        if (mctx.input.valid_len != prVar19->rm_eo) {\n                          rVar47 = mctx.input.offsets[prVar19->rm_eo];\n                        }\n                        prVar19->rm_eo = rVar47;\n                      }\n                      prVar19->rm_so = prVar19->rm_so + match_first;\n                      aVar45.sbcset = (re_bitset_ptr_t)(prVar19->rm_eo + match_first);\n                      prVar19->rm_eo = (regoff_t)aVar45;\n                    }\n                    prVar19 = prVar19 + 1;\n                  } while (prVar19 != pmatch + aVar4.idx);\n                  if (0 < local_118) {\n                    prVar19 = pmatch + aVar4.idx;\n                    do {\n                      prVar19->rm_so = -1;\n                      prVar19->rm_eo = -1;\n                      prVar19 = prVar19 + 1;\n                    } while (prVar19 != pmatch + nmatch);\n                  }\n                  aVar49.idx = match_first;\n                  prVar51 = (re_dfa_t *)pmatch;\n                  local_150.sbcset = aVar7.sbcset;\n                  if (prVar59->subexp_map != (Idx *)0x0) {\n                    aVar49.sbcset = (re_bitset_ptr_t)(aVar4.idx + -1);\n                    prVar52 = (re_dfa_t *)0x0;\n                    prVar19 = pmatch;\n                    while( true ) {\n                      aVar45.idx = (int)prVar52 * 4;\n                      if ((re_dfa_t *)aVar49.sbcset == prVar52) break;\n                      if ((re_dfa_t *)prVar59->subexp_map[(int)prVar52] != prVar52) {\n                        prVar19[1].rm_so =\n                             pmatch[(int)((int)&((re_string_t *)\n                                                &((re_dfa_t *)prVar59->subexp_map[(int)prVar52])->\n                                                 nodes)->raw_mbs + 1)].rm_so;\n                        prVar19[1].rm_eo = pmatch[prVar59->subexp_map[(int)prVar52] + 1].rm_eo;\n                      }\n                      prVar52 = (re_dfa_t *)((int)&((re_string_t *)&prVar52->nodes)->raw_mbs + 1);\n                      prVar19 = prVar19 + 1;\n                    }\n                  }\n                  goto LAB_000557e4;\n                }\n                if ((char)prVar59->field_0x58 < '\0') {\n                  bVar36 = 0 < prVar59->nbackref;\n                }\n                else {\n                  bVar36 = false;\n                }\n                aVar45.sbcset = (re_bitset_ptr_t)&mctx;\n                aVar49.sbcset = aVar4.sbcset;\n                prVar51 = (re_dfa_t *)pmatch;\n                local_150.idx =\n                     set_regs(preg,(re_match_context_t *)aVar45.mbcset,aVar4.ctx_type,pmatch,bVar36)\n                ;\n                if ((re_dfa_t *)local_150.sbcset == (re_dfa_t *)0x0) goto LAB_000555ac;\n              }\n            }\n          }\n          else if ((uint)mctx.input.bufs_len < 0x3fffffff) {\n            mctx.state_log =\n                 (re_dfastate_t **)(*(code *)PTR_malloc_00079b54)((mctx.input.bufs_len + 1) * 4);\n            if (mctx.state_log != (re_dfastate_t **)0x0) goto LAB_00055a40;\n            local_150.idx = 0xc;\n            stop = aVar56.idx;\n          }\n          else {\n            local_150.idx = 0xc;\n            stop = aVar56.idx;\n          }\n        }\n        else {\n          unaff_s5.idx = iVar55 * 8;\n          if (aVar56.sbcset < (re_dfa_t *)0xccccccd) {\n            unaff_s4 = (re_dfa_t *)(*(code *)PTR_malloc_00079b54)(iVar55 * 0x28);\n            mctx.bkref_ents = (re_backref_cache_entry *)unaff_s4;\n            mctx.sub_tops = (re_sub_match_top_t **)(*(code *)PTR_malloc_00079b54)(unaff_s5.sbcset);\n            if ((unaff_s4 != (re_dfa_t *)0x0) && (mctx.sub_tops != (re_sub_match_top_t **)0x0))\n            goto LAB_000559f0;\n          }\n          local_150.idx = 0xc;\n          stop = aVar56.idx;\n        }\nLAB_000557e4:\n        (*(code *)PTR_free_00079c24)(mctx.state_log);\n        preg = (regex_t *)aVar49;\n        if (prVar59->nbackref != 0) {\n          match_ctx_clean(&mctx);\n          (*(code *)PTR_free_00079c24)(mctx.sub_tops);\n          (*(code *)PTR_free_00079c24)(mctx.bkref_ents);\n          preg = (regex_t *)aVar49;\n        }\n        re_string_destruct(&mctx.input);\n        aStack_1a0 = aVar46;\n        paStack_19c = paVar18;\n      }" { (expression_statement "last_start = aVar4.idx;" (assignment_expression "last_start = aVar4.idx" identifier = (field_expression "aVar4.idx" identifier . field_identifier)) ;) (expression_statement "aVar4.sbcset = (re_bitset_ptr_t)(nmatch - local_118);" (assignment_expression "aVar4.sbcset = (re_bitset_ptr_t)(nmatch - local_118)" (field_expression "aVar4.sbcset" identifier . field_identifier) = (call_expression "(re_bitset_ptr_t)(nmatch - local_118)" (parenthesized_expression "(re_bitset_ptr_t)" ( identifier )) (argument_list "(nmatch - local_118)" ( (binary_expression "nmatch - local_118" identifier - identifier) )))) ;) (if_statement "if ((re_dfa_t *)aVar4.sbcset == (re_dfa_t *)0x0) {\n          paVar54 = (anon_union_4_5_a39f51ca_for_opr *)(uint)(prVar59->nbackref != 0);\n        }\n        else {\n          paVar54 = (anon_union_4_5_a39f51ca_for_opr *)0x1;\n        }" if (parenthesized_expression "((re_dfa_t *)aVar4.sbcset == (re_dfa_t *)0x0)" ( (binary_expression "(re_dfa_t *)aVar4.sbcset == (re_dfa_t *)0x0" (cast_expression "(re_dfa_t *)aVar4.sbcset" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "aVar4.sbcset" identifier . field_identifier)) == (cast_expression "(re_dfa_t *)0x0" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          paVar54 = (anon_union_4_5_a39f51ca_for_opr *)(uint)(prVar59->nbackref != 0);\n        }" { (expression_statement "paVar54 = (anon_union_4_5_a39f51ca_for_opr *)(uint)(prVar59->nbackref != 0);" (assignment_expression "paVar54 = (anon_union_4_5_a39f51ca_for_opr *)(uint)(prVar59->nbackref != 0)" identifier = (cast_expression "(anon_union_4_5_a39f51ca_for_opr *)(uint)(prVar59->nbackref != 0)" ( (type_descriptor "anon_union_4_5_a39f51ca_for_opr *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(prVar59->nbackref != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(prVar59->nbackref != 0)" ( (binary_expression "prVar59->nbackref != 0" (field_expression "prVar59->nbackref" identifier -> field_identifier) != number_literal) ))))) ;) }) (else_clause "else {\n          paVar54 = (anon_union_4_5_a39f51ca_for_opr *)0x1;\n        }" else (compound_statement "{\n          paVar54 = (anon_union_4_5_a39f51ca_for_opr *)0x1;\n        }" { (expression_statement "paVar54 = (anon_union_4_5_a39f51ca_for_opr *)0x1;" (assignment_expression "paVar54 = (anon_union_4_5_a39f51ca_for_opr *)0x1" identifier = (cast_expression "(anon_union_4_5_a39f51ca_for_opr *)0x1" ( (type_descriptor "anon_union_4_5_a39f51ca_for_opr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) (expression_statement "puVar50 = preg->translate;" (assignment_expression "puVar50 = preg->translate" identifier = (field_expression "preg->translate" identifier -> field_identifier)) ;) (expression_statement "mctx.input.icase = (uchar)((preg->syntax << 9) >> 0x1f);" (assignment_expression "mctx.input.icase = (uchar)((preg->syntax << 9) >> 0x1f)" (field_expression "mctx.input.icase" (field_expression "mctx.input" identifier . field_identifier) . field_identifier) = (call_expression "(uchar)((preg->syntax << 9) >> 0x1f)" (parenthesized_expression "(uchar)" ( identifier )) (argument_list "((preg->syntax << 9) >> 0x1f)" ( (binary_expression "(preg->syntax << 9) >> 0x1f" (parenthesized_expression "(preg->syntax << 9)" ( (binary_expression "preg->syntax << 9" (field_expression "preg->syntax" identifier -> field_identifier) << number_literal) )) >> number_literal) )))) ;) (expression_statement "mctx.input.mb_cur_max = prVar59->mb_cur_max;" (assignment_expression "mctx.input.mb_cur_max = prVar59->mb_cur_max" (field_expression "mctx.input.mb_cur_max" (field_expression "mctx.input" identifier . field_identifier) . field_identifier) = (field_expression "prVar59->mb_cur_max" identifier -> field_identifier)) ;) (expression_statement "aVar46.sbcset = (re_bitset_ptr_t)(prVar59->nodes_len + 1);" (assignment_expression "aVar46.sbcset = (re_bitset_ptr_t)(prVar59->nodes_len + 1)" (field_expression "aVar46.sbcset" identifier . field_identifier) = (call_expression "(re_bitset_ptr_t)(prVar59->nodes_len + 1)" (parenthesized_expression "(re_bitset_ptr_t)" ( identifier )) (argument_list "(prVar59->nodes_len + 1)" ( (binary_expression "prVar59->nodes_len + 1" (field_expression "prVar59->nodes_len" identifier -> field_identifier) + number_literal) )))) ;) (if_statement "if (aVar46.idx < mctx.input.mb_cur_max) {\n          aVar46 = (anon_union_4_5_a39f51ca_for_opr)mctx.input.mb_cur_max;\n        }" if (parenthesized_expression "(aVar46.idx < mctx.input.mb_cur_max)" ( (binary_expression "aVar46.idx < mctx.input.mb_cur_max" (field_expression "aVar46.idx" identifier . field_identifier) < (field_expression "mctx.input.mb_cur_max" (field_expression "mctx.input" identifier . field_identifier) . field_identifier)) )) (compound_statement "{\n          aVar46 = (anon_union_4_5_a39f51ca_for_opr)mctx.input.mb_cur_max;\n        }" { (expression_statement "aVar46 = (anon_union_4_5_a39f51ca_for_opr)mctx.input.mb_cur_max;" (assignment_expression "aVar46 = (anon_union_4_5_a39f51ca_for_opr)mctx.input.mb_cur_max" identifier = (cast_expression "(anon_union_4_5_a39f51ca_for_opr)mctx.input.mb_cur_max" ( (type_descriptor "anon_union_4_5_a39f51ca_for_opr" type_identifier) ) (field_expression "mctx.input.mb_cur_max" (field_expression "mctx.input" identifier . field_identifier) . field_identifier))) ;) })) (expression_statement "aVar49.idx._0_3_ = 0;" (assignment_expression "aVar49.idx._0_3_ = 0" (field_expression "aVar49.idx._0_3_" (field_expression "aVar49.idx" identifier . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "aVar49.idx._3_1_ = ((re_bitset_ptr_t)(length + 1)).idx < aVar46.idx;" (assignment_expression "aVar49.idx._3_1_ = ((re_bitset_ptr_t)(length + 1)).idx < aVar46.idx" (field_expression "aVar49.idx._3_1_" (field_expression "aVar49.idx" identifier . field_identifier) . field_identifier) = (binary_expression "((re_bitset_ptr_t)(length + 1)).idx < aVar46.idx" (field_expression "((re_bitset_ptr_t)(length + 1)).idx" (parenthesized_expression "((re_bitset_ptr_t)(length + 1))" ( (call_expression "(re_bitset_ptr_t)(length + 1)" (parenthesized_expression "(re_bitset_ptr_t)" ( identifier )) (argument_list "(length + 1)" ( (binary_expression "length + 1" identifier + number_literal) ))) )) . field_identifier) < (field_expression "aVar46.idx" identifier . field_identifier))) ;) (expression_statement "prVar51 = (re_dfa_t *)0x1;" (assignment_expression "prVar51 = (re_dfa_t *)0x1" identifier = (cast_expression "(re_dfa_t *)0x1" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "mctx.input.mbs_allocated = mctx.input.icase;" (assignment_expression "mctx.input.mbs_allocated = mctx.input.icase" (field_expression "mctx.input.mbs_allocated" (field_expression "mctx.input" identifier . field_identifier) . field_identifier) = (field_expression "mctx.input.icase" (field_expression "mctx.input" identifier . field_identifier) . field_identifier)) ;) (if_statement "if (puVar50 != (uchar *)0x0) {\n          mctx.input.mbs_allocated = 1;\n        }" if (parenthesized_expression "(puVar50 != (uchar *)0x0)" ( (binary_expression "puVar50 != (uchar *)0x0" identifier != (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          mctx.input.mbs_allocated = 1;\n        }" { (expression_statement "mctx.input.mbs_allocated = 1;" (assignment_expression "mctx.input.mbs_allocated = 1" (field_expression "mctx.input.mbs_allocated" (field_expression "mctx.input" identifier . field_identifier) . field_identifier) = number_literal) ;) })) (expression_statement "mctx.input.is_utf8 = (uchar)((uint)(*(int *)&prVar59->field_0x58 << 2) >> 0x1f);" (assignment_expression "mctx.input.is_utf8 = (uchar)((uint)(*(int *)&prVar59->field_0x58 << 2) >> 0x1f)" (field_expression "mctx.input.is_utf8" (field_expression "mctx.input" identifier . field_identifier) . field_identifier) = (call_expression "(uchar)((uint)(*(int *)&prVar59->field_0x58 << 2) >> 0x1f)" (parenthesized_expression "(uchar)" ( identifier )) (argument_list "((uint)(*(int *)&prVar59->field_0x58 << 2) >> 0x1f)" ( (binary_expression "(uint)(*(int *)&prVar59->field_0x58 << 2) >> 0x1f" (call_expression "(uint)(*(int *)&prVar59->field_0x58 << 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)&prVar59->field_0x58 << 2)" ( (binary_expression "*(int *)&prVar59->field_0x58 << 2" (pointer_expression "*(int *)&prVar59->field_0x58" * (cast_expression "(int *)&prVar59->field_0x58" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&prVar59->field_0x58" & (field_expression "prVar59->field_0x58" identifier -> field_identifier)))) << number_literal) ))) >> number_literal) )))) ;) (expression_statement "mctx.input.map_notascii = (uchar)((uint)(*(int *)&prVar59->field_0x58 << 3) >> 0x1f);" (assignment_expression "mctx.input.map_notascii = (uchar)((uint)(*(int *)&prVar59->field_0x58 << 3) >> 0x1f)" (field_expression "mctx.input.map_notascii" (field_expression "mctx.input" identifier . field_identifier) . field_identifier) = (call_expression "(uchar)((uint)(*(int *)&prVar59->field_0x58 << 3) >> 0x1f)" (parenthesized_expression "(uchar)" ( identifier )) (argument_list "((uint)(*(int *)&prVar59->field_0x58 << 3) >> 0x1f)" ( (binary_expression "(uint)(*(int *)&prVar59->field_0x58 << 3) >> 0x1f" (call_expression "(uint)(*(int *)&prVar59->field_0x58 << 3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)&prVar59->field_0x58 << 3)" ( (binary_expression "*(int *)&prVar59->field_0x58 << 3" (pointer_expression "*(int *)&prVar59->field_0x58" * (cast_expression "(int *)&prVar59->field_0x58" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&prVar59->field_0x58" & (field_expression "prVar59->field_0x58" identifier -> field_identifier)))) << number_literal) ))) >> number_literal) )))) ;) (expression_statement "aVar45.sbcset = ((re_bitset_ptr_t)(length + 1)).sbcset;" (assignment_expression "aVar45.sbcset = ((re_bitset_ptr_t)(length + 1)).sbcset" (field_expression "aVar45.sbcset" identifier . field_identifier) = (field_expression "((re_bitset_ptr_t)(length + 1)).sbcset" (parenthesized_expression "((re_bitset_ptr_t)(length + 1))" ( (call_expression "(re_bitset_ptr_t)(length + 1)" (parenthesized_expression "(re_bitset_ptr_t)" ( identifier )) (argument_list "(length + 1)" ( (binary_expression "length + 1" identifier + number_literal) ))) )) . field_identifier)) ;) (if_statement "if ((re_dfa_t *)aVar49.sbcset == (re_dfa_t *)0x0) {\n          aVar45 = aVar46;\n        }" if (parenthesized_expression "((re_dfa_t *)aVar49.sbcset == (re_dfa_t *)0x0)" ( (binary_expression "(re_dfa_t *)aVar49.sbcset == (re_dfa_t *)0x0" (cast_expression "(re_dfa_t *)aVar49.sbcset" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "aVar49.sbcset" identifier . field_identifier)) == (cast_expression "(re_dfa_t *)0x0" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          aVar45 = aVar46;\n        }" { (expression_statement "aVar45 = aVar46;" (assignment_expression "aVar45 = aVar46" identifier = identifier) ;) })) (expression_statement "mctx.input.raw_mbs = (uchar *)string;" (assignment_expression "mctx.input.raw_mbs = (uchar *)string" (field_expression "mctx.input.raw_mbs" (field_expression "mctx.input" identifier . field_identifier) . field_identifier) = (cast_expression "(uchar *)string" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "mctx.input.raw_len = length;" (assignment_expression "mctx.input.raw_len = length" (field_expression "mctx.input.raw_len" (field_expression "mctx.input" identifier . field_identifier) . field_identifier) = identifier) ;) (expression_statement "mctx.input.len = length;" (assignment_expression "mctx.input.len = length" (field_expression "mctx.input.len" (field_expression "mctx.input" identifier . field_identifier) . field_identifier) = identifier) ;) (expression_statement "mctx.input.raw_stop = length;" (assignment_expression "mctx.input.raw_stop = length" (field_expression "mctx.input.raw_stop" (field_expression "mctx.input" identifier . field_identifier) . field_identifier) = identifier) ;) (expression_statement "mctx.input.stop = length;" (assignment_expression "mctx.input.stop = length" (field_expression "mctx.input.stop" (field_expression "mctx.input" identifier . field_identifier) . field_identifier) = identifier) ;) (expression_statement "mctx.input.trans = puVar50;" (assignment_expression "mctx.input.trans = puVar50" (field_expression "mctx.input.trans" (field_expression "mctx.input" identifier . field_identifier) . field_identifier) = identifier) ;) (expression_statement "local_150.idx = re_string_realloc_buffers(&mctx.input,aVar45.idx);" (assignment_expression "local_150.idx = re_string_realloc_buffers(&mctx.input,aVar45.idx)" (field_expression "local_150.idx" identifier . field_identifier) = (call_expression "re_string_realloc_buffers(&mctx.input,aVar45.idx)" identifier (argument_list "(&mctx.input,aVar45.idx)" ( (pointer_expression "&mctx.input" & (field_expression "mctx.input" identifier . field_identifier)) , (field_expression "aVar45.idx" identifier . field_identifier) )))) ;) (expression_statement "aVar46.idx = start;" (assignment_expression "aVar46.idx = start" (field_expression "aVar46.idx" identifier . field_identifier) = identifier) ;) (expression_statement "paVar18 = paVar54;" (assignment_expression "paVar18 = paVar54" identifier = identifier) ;) (expression_statement "stop = stop;" (assignment_expression "stop = stop" identifier = identifier) ;) (if_statement "if ((re_dfa_t *)local_150.sbcset != (re_dfa_t *)0x0) goto LAB_000557e4;" if (parenthesized_expression "((re_dfa_t *)local_150.sbcset != (re_dfa_t *)0x0)" ( (binary_expression "(re_dfa_t *)local_150.sbcset != (re_dfa_t *)0x0" (cast_expression "(re_dfa_t *)local_150.sbcset" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "local_150.sbcset" identifier . field_identifier)) != (cast_expression "(re_dfa_t *)0x0" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000557e4;" goto statement_identifier ;)) (expression_statement "mctx.input.word_char = prVar59->word_char;" (assignment_expression "mctx.input.word_char = prVar59->word_char" (field_expression "mctx.input.word_char" (field_expression "mctx.input" identifier . field_identifier) . field_identifier) = (field_expression "prVar59->word_char" identifier -> field_identifier)) ;) (expression_statement "mctx.input.word_ops_used = (uchar)((uint)(*(int *)&prVar59->field_0x58 << 4) >> 0x1f);" (assignment_expression "mctx.input.word_ops_used = (uchar)((uint)(*(int *)&prVar59->field_0x58 << 4) >> 0x1f)" (field_expression "mctx.input.word_ops_used" (field_expression "mctx.input" identifier . field_identifier) . field_identifier) = (call_expression "(uchar)((uint)(*(int *)&prVar59->field_0x58 << 4) >> 0x1f)" (parenthesized_expression "(uchar)" ( identifier )) (argument_list "((uint)(*(int *)&prVar59->field_0x58 << 4) >> 0x1f)" ( (binary_expression "(uint)(*(int *)&prVar59->field_0x58 << 4) >> 0x1f" (call_expression "(uint)(*(int *)&prVar59->field_0x58 << 4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)&prVar59->field_0x58 << 4)" ( (binary_expression "*(int *)&prVar59->field_0x58 << 4" (pointer_expression "*(int *)&prVar59->field_0x58" * (cast_expression "(int *)&prVar59->field_0x58" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&prVar59->field_0x58" & (field_expression "prVar59->field_0x58" identifier -> field_identifier)))) << number_literal) ))) >> number_literal) )))) ;) (expression_statement "paVar2 = (anon_union_4_5_a39f51ca_for_opr *)0x0;" (assignment_expression "paVar2 = (anon_union_4_5_a39f51ca_for_opr *)0x0" identifier = (cast_expression "(anon_union_4_5_a39f51ca_for_opr *)0x0" ( (type_descriptor "anon_union_4_5_a39f51ca_for_opr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "mctx.input.valid_len = (Idx)paVar2;" (assignment_expression "mctx.input.valid_len = (Idx)paVar2" (field_expression "mctx.input.valid_len" (field_expression "mctx.input" identifier . field_identifier) . field_identifier) = (cast_expression "(Idx)paVar2" ( (type_descriptor "Idx" type_identifier) ) identifier)) ;) (if_statement "if ((mctx.input.mbs_allocated == '\0') &&\n           (mctx.input.mbs = (uchar *)string, prVar59->mb_cur_max < 2)) {\n          mctx.input.valid_len = length;\n        }" if (parenthesized_expression "((mctx.input.mbs_allocated == '\0') &&\n           (mctx.input.mbs = (uchar *)string, prVar59->mb_cur_max < 2))" ( (binary_expression "(mctx.input.mbs_allocated == '\0') &&\n           (mctx.input.mbs = (uchar *)string, prVar59->mb_cur_max < 2)" (parenthesized_expression "(mctx.input.mbs_allocated == '\0')" ( (binary_expression "mctx.input.mbs_allocated == '\0'" (field_expression "mctx.input.mbs_allocated" (field_expression "mctx.input" identifier . field_identifier) . field_identifier) == (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(mctx.input.mbs = (uchar *)string, prVar59->mb_cur_max < 2)" ( (comma_expression "mctx.input.mbs = (uchar *)string, prVar59->mb_cur_max < 2" (assignment_expression "mctx.input.mbs = (uchar *)string" (field_expression "mctx.input.mbs" (field_expression "mctx.input" identifier . field_identifier) . field_identifier) = (cast_expression "(uchar *)string" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , (binary_expression "prVar59->mb_cur_max < 2" (field_expression "prVar59->mb_cur_max" identifier -> field_identifier) < number_literal)) ))) )) (compound_statement "{\n          mctx.input.valid_len = length;\n        }" { (expression_statement "mctx.input.valid_len = length;" (assignment_expression "mctx.input.valid_len = length" (field_expression "mctx.input.valid_len" (field_expression "mctx.input" identifier . field_identifier) . field_identifier) = identifier) ;) })) (expression_statement "mctx.input.stop = stop;" (assignment_expression "mctx.input.stop = stop" (field_expression "mctx.input.stop" (field_expression "mctx.input" identifier . field_identifier) . field_identifier) = identifier) ;) (expression_statement "mctx.input.raw_stop = stop;" (assignment_expression "mctx.input.raw_stop = stop" (field_expression "mctx.input.raw_stop" (field_expression "mctx.input" identifier . field_identifier) . field_identifier) = identifier) ;) (expression_statement "mctx.input.newline_anchor = (uchar)((uint)(*(int *)&preg->field_0x1c << 7) >> 0x1f);" (assignment_expression "mctx.input.newline_anchor = (uchar)((uint)(*(int *)&preg->field_0x1c << 7) >> 0x1f)" (field_expression "mctx.input.newline_anchor" (field_expression "mctx.input" identifier . field_identifier) . field_identifier) = (call_expression "(uchar)((uint)(*(int *)&preg->field_0x1c << 7) >> 0x1f)" (parenthesized_expression "(uchar)" ( identifier )) (argument_list "((uint)(*(int *)&preg->field_0x1c << 7) >> 0x1f)" ( (binary_expression "(uint)(*(int *)&preg->field_0x1c << 7) >> 0x1f" (call_expression "(uint)(*(int *)&preg->field_0x1c << 7)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)&preg->field_0x1c << 7)" ( (binary_expression "*(int *)&preg->field_0x1c << 7" (pointer_expression "*(int *)&preg->field_0x1c" * (cast_expression "(int *)&preg->field_0x1c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&preg->field_0x1c" & (field_expression "preg->field_0x1c" identifier -> field_identifier)))) << number_literal) ))) >> number_literal) )))) ;) (expression_statement "iVar55 = prVar59->nbackref;" (assignment_expression "iVar55 = prVar59->nbackref" identifier = (field_expression "prVar59->nbackref" identifier -> field_identifier)) ;) (expression_statement "aVar56.idx = iVar55 * 2;" (assignment_expression "aVar56.idx = iVar55 * 2" (field_expression "aVar56.idx" identifier . field_identifier) = (binary_expression "iVar55 * 2" identifier * number_literal)) ;) (expression_statement "mctx.eflags = eflags;" (assignment_expression "mctx.eflags = eflags" (field_expression "mctx.eflags" identifier . field_identifier) = identifier) ;) (expression_statement "mctx.match_last = -1;" (assignment_expression "mctx.match_last = -1" (field_expression "mctx.match_last" identifier . field_identifier) = number_literal) ;) (expression_statement "mctx.input.valid_raw_len = mctx.input.valid_len;" (assignment_expression "mctx.input.valid_raw_len = mctx.input.valid_len" (field_expression "mctx.input.valid_raw_len" (field_expression "mctx.input" identifier . field_identifier) . field_identifier) = (field_expression "mctx.input.valid_len" (field_expression "mctx.input" identifier . field_identifier) . field_identifier)) ;) (if_statement "if ((int)aVar56 < 1) {\nLAB_000559f0:\n          mctx.max_mb_elem_len = 1;\n          mctx.abkref_ents = aVar56.idx;\n          mctx.asub_tops = aVar56.idx;\n          if ((aVar4.sbcset < (re_dfa_t *)0x2) && ((prVar59->field_0x58 & 0x40) == 0)) {\n            mctx.state_log = (re_dfastate_t **)0x0;\nLAB_00055a40:\n            mctx.input.tip_context = 6;\n            if ((eflags & 1U) != 0) {\n              mctx.input.tip_context = 4;\n            }\n            aVar39.idx = 1;\n            aVar40.idx = start;\n            if (last_start < start) {\n              aVar39.idx = -1;\n              aVar40.idx = last_start;\n            }\n            aVar41.idx = last_start;\n            if (last_start <= start) {\n              aVar41.idx = start;\n            }\n            iVar55 = prVar59->mb_cur_max;\n            rVar20 = 8;\n            if ((re_dfa_t *)local_148.sbcset != (re_dfa_t *)0x0) {\n              if (iVar55 == 1) {\n                paVar43 = (anon_union_4_5_a39f51ca_for_opr *)0x4;\n              }\n              else {\n                paVar43 = paVar2;\n                if ((-1 < (int)(preg->syntax << 9)) && (puVar50 == (uchar *)0x0)) {\n                  paVar43 = (anon_union_4_5_a39f51ca_for_opr *)0x4;\n                }\n              }\n              aVar45.sbcset = (re_bitset_ptr_t)0x0;\n              if (start <= last_start) {\n                aVar45.idx = 2;\n              }\n              rVar20 = (uint)(puVar50 != (uchar *)0x0) | (uint)paVar43 | aVar45.ctx_type;\n            }\n            match_first = start;\n            if (start < aVar40.idx) {\n              local_150.idx = 1;\n              stop = aVar56.idx;\n            }\n            else {\n              aVar46.idx._0_3_ = 0;\n              aVar46.idx._3_1_ = last_start < start;\n              if (aVar41.idx < start) {\n                local_150.idx = 1;\n                stop = aVar56.idx;\n              }\n              else {\n                piVar38 = &match_first;\n                if ((re_dfa_t *)aVar46.sbcset != (re_dfa_t *)0x0) {\n                  piVar38 = (int *)0x0;\n                }\n                pcVar5 = (code *)(PTR_DAT_000799a4 + -0x2b7c);\n                piVar6 = (int *)(PTR_s_nt0_000795b8 + (rVar20 - 4) * 4 + 0x6e38);\nLAB_00055b44:\n                if (rVar20 - 4 < 5) {\n                    /* WARNING: Could not emulate address calculation at 0x00054920 */\n                    /* WARNING: Treating indirect jump as call */\n                  rVar21 = (*(code *)(&_gp + *piVar6))();\n                  return rVar21;\n                }\n                last_start = (Idx)&mctx;\n                prVar52 = prVar51;\n                while( true ) {\n                  aVar46.idx = match_first;\n                  uVar8 = match_first - mctx.input.raw_mbs_idx;\n                  aVar49 = (anon_union_4_5_a39f51ca_for_opr)eflags;\n                  paVar18 = paVar2;\n                  stop = local_148.idx;\n                  unaff_s4 = (re_dfa_t *)length;\n                  unaff_s5 = aVar39;\n                  unaff_s7 = aVar41;\n                  if ((uint)mctx.input.valid_raw_len <= uVar8) {\n                    aVar45.idx = match_first;\n                    local_150.sbcset = (re_bitset_ptr_t)(*pcVar5)(last_start);\n                    prVar51 = prVar52;\n                    if ((re_dfa_t *)local_150.sbcset != (re_dfa_t *)0x0) goto LAB_000557e4;\n                    uVar8 = (int)aVar46.sbcset - mctx.input.raw_mbs_idx;\n                  }\n                  if (aVar46.idx < length) {\n                    uVar8 = (uint)mctx.input.mbs[uVar8];\n                  }\n                  else {\n                    uVar8 = 0;\n                  }\n                  aVar56.sbcset = aVar46.sbcset + aVar39.sbcset;\n                  aVar46.sbcset = aVar56.sbcset;\n                  if (*(char *)((int)local_148.sbcset + uVar8) != '\0') break;\n                  prVar51 = prVar52;\n                  match_first = aVar56.idx;\n                  if (aVar56.idx < aVar40.idx) {\n                    local_150.idx = 1;\n                    goto LAB_000557e4;\n                  }\n                  aVar46.idx._0_3_ = 0;\n                  aVar46.idx._3_1_ = aVar41.idx < aVar56.idx;\n                  if ((re_dfa_t *)aVar46.sbcset != (re_dfa_t *)0x0) {\n                    local_150.idx = 1;\n                    goto LAB_000557e4;\n                  }\n                }\n                while( true ) {\n                  aVar45.idx = match_first;\n                  aVar49 = (anon_union_4_5_a39f51ca_for_opr)eflags;\n                  aVar7.sbcset = (re_bitset_ptr_t)(*pcVar5)(&mctx);\n                  aVar15 = (anon_union_4_5_a39f51ca_for_opr)mctx.dfa;\n                  aVar56.idx = mctx.input.cur_idx;\n                  prVar51 = prVar52;\n                  local_150.sbcset = aVar7.sbcset;\n                  if ((re_dfa_t *)aVar7.sbcset != (re_dfa_t *)0x0) goto LAB_000557e4;\n                  if (((iVar55 != 1) && (mctx.input.valid_len != 0)) &&\n                     (*mctx.input.wcs == 0xffffffff)) goto LAB_00055b1c;\n                  mctx.max_mb_elem_len = 0;\n                  mctx.nbkref_ents = 0;\n                  mctx.state_log_top = 0;\n                  local_138.idx = mctx.input.cur_idx;\n                  err = _REG_NOERROR;\n                  unaff_s7 = (anon_union_4_5_a39f51ca_for_opr)(mctx.dfa)->init_state;\n                  aVar49 = (anon_union_4_5_a39f51ca_for_opr)mctx.eflags;\n                  aVar46 = aVar15;\n                  if ((*(byte *)(unaff_s7.idx + 0x34) & 1) == 0) break;\n                  aVar45.sbcset = (re_bitset_ptr_t)(mctx.input.cur_idx + -1);\n                  prVar51 = (re_dfa_t *)re_string_context_at(&mctx.input,aVar45.idx,mctx.eflags);\n                  if (((uint)prVar51 & 1) == 0) {\n                    if (prVar51 == (re_dfa_t *)0x0) break;\n                    if (((uint)prVar51 & 6) == 6) {\n                      unaff_s7 = (anon_union_4_5_a39f51ca_for_opr)\n                                 ((re_dfa_t *)aVar15.idx)->init_state_begbuf;\n                      goto LAB_00054d1c;\n                    }\n                    if (((uint)prVar51 & 2) != 0) {\n                      unaff_s7 = (anon_union_4_5_a39f51ca_for_opr)\n                                 ((re_dfa_t *)aVar15.idx)->init_state_nl;\n                      goto LAB_00054d1c;\n                    }\n                    prVar52 = prVar51;\n                    if (((uint)prVar51 & 4) == 0) break;\n                    aVar49 = (anon_union_4_5_a39f51ca_for_opr)\n                             ((anon_union_4_5_a39f51ca_for_opr *)(unaff_s7.idx + 0x28))->mbcset;\n                    aVar45 = aVar15;\n                    unaff_s7.sbcset =\n                         &re_acquire_state_context\n                                    (&err,aVar15.sbcset,(re_node_set *)aVar49.mbcset,(uint)prVar51)\n                          ->hash;\n                    prVar52 = prVar51;\n                    if ((re_dfa_t *)unaff_s7.sbcset != (re_dfa_t *)0x0) break;\n                    if (err == _REG_ESPACE) goto LAB_00055914;\n                  }\n                  else {\n                    unaff_s7 = (anon_union_4_5_a39f51ca_for_opr)\n                               ((re_dfa_t *)aVar15.idx)->init_state_word;\nLAB_00054d1c:\n                    prVar52 = (re_dfa_t *)PTR_s_nt0_000795b8;\n                    if ((re_dfa_t *)unaff_s7.sbcset != (re_dfa_t *)0x0) break;\n                  }\n                  prVar52 = (re_dfa_t *)(PTR_s_nt0_000795b8 + 0x6eb0);\n                  aVar45.sbcset = (re_bitset_ptr_t)(PTR_s_nt0_000795b8 + 0x712c);\n                  match_first = (*(code *)PTR___assert_fail_000799f8)\n                                          (PTR_s_nt0_000795b8 + 0x71a0,aVar45.sbcset,0x435);\n                  if ((re_bitset_ptr_t)match_first == aVar41.sbcset) {\n                    if (match_first < length) {\n                      uVar8 = (uint)(byte)string[match_first];\n                    }\n                    else {\n                      uVar8 = 0;\n                    }\n                    if (puVar50 != (uchar *)0x0) {\n                      uVar8 = (uint)puVar50[uVar8];\n                    }\n                    if (*(char *)((int)local_148.sbcset + uVar8) == '\0') {\n                      local_150.idx = 1;\n                      aVar49 = (anon_union_4_5_a39f51ca_for_opr)eflags;\n                      prVar51 = prVar52;\n                      goto LAB_000557e4;\n                    }\n                  }\n                }\n                prVar51 = prVar52;\n                bVar36 = piVar38 != (int *)0x0;\n                if ((mctx.state_log == (re_dfastate_t **)0x0) ||\n                   (((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + aVar56.idx))->mbcset =\n                         (re_charset_t *)unaff_s7, ((re_dfa_t *)aVar15.idx)->nbackref == 0)) {\nLAB_00054d50:\n                  if ((int)*(bin_tree_t **)(unaff_s7.idx + 0x34) << 4 < 0) {\n                    if (((*(byte *)(unaff_s7.idx + 0x34) & 1) == 0) ||\n                       (aVar45 = unaff_s7, aVar49 = aVar56,\n                       IVar17 = check_halt_state_context(&mctx,unaff_s7.idx,aVar56.idx), IVar17 != 0\n                       )) {\n                      local_c4 = aVar56;\n                      if (paVar54 == (anon_union_4_5_a39f51ca_for_opr *)0x0) goto LAB_00055dbc;\n                      prVar52 = (re_dfa_t *)0x1;\n                    }\n                    else {\n                      aVar56.idx = -1;\n                      prVar52 = (re_dfa_t *)0x0;\n                    }\n                  }\n                  else {\n                    aVar56.idx = -1;\n                    prVar52 = (re_dfa_t *)0x0;\n                  }\n                  pcVar9 = (code *)(PTR_DAT_000799a4 + -0x7144);\n                  pcVar10 = (code *)(PTR_DAT_000799a4 + -0x1980);\n                  pcVar11 = (code *)(PTR_DAT_000799a4 + -0x2f9c);\n                  local_c4 = aVar56;\n                  local_144 = piVar38;\n                  while( true ) {\n                    uVar63 = CONCAT44(mctx.input.valid_len,mctx.input.len);\n                    unaff_s5.sbcset = (re_bitset_ptr_t)(mctx.input.cur_idx + 1);\n                    aVar45.idx = mctx.input.cur_idx;\n                    if (mctx.input.stop <= mctx.input.cur_idx) break;\n                    if ((mctx.input.bufs_len <= unaff_s5.idx) &&\n                       (mctx.input.bufs_len < mctx.input.len)) goto LAB_00054e94;\n                    if (mctx.input.valid_len <= unaff_s5.idx) {\n                      while ((int)((ulonglong)uVar63 >> 0x20) < (int)uVar63) {\nLAB_00054e94:\n                        aVar45.sbcset =\n                             (re_bitset_ptr_t)\n                             ((int)&((re_string_t *)&(aVar45.mbcset)->mbchars)->raw_mbs + 2);\n                        err = (*pcVar9)(&mctx);\n                        if (err == _REG_NOERROR) break;\n                        aVar15 = aVar46;\n                        if (err == _REG_ESPACE) goto LAB_00055914;\n                        prVar51 = (re_dfa_t *)(PTR_s_nt0_000795b8 + 0x6eb0);\n                        aVar49.idx = 0x46c;\n                        aVar45.sbcset = (re_bitset_ptr_t)(PTR_s_nt0_000795b8 + 0x712c);\n                        uVar63 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0);\n                        prVar52 = prVar59;\n                      }\n                    }\n                    prVar3 = mctx.dfa;\n                    if ((int)*(bin_tree_t **)(unaff_s7.idx + 0x34) << 5 < 0) {\n                      paVar18 = (anon_union_4_5_a39f51ca_for_opr *)prVar3;\n                      if (0 < (int)(unaff_s7.mbcset)->range_ends) {\n                        pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6fdc);\n                        pcVar13 = (code *)(PTR_DAT_000799a4 + -0x6ef0);\n                        stop = 0;\n                        do {\n                          last_start = ((anon_union_4_5_a39f51ca_for_opr *)\n                                       ((unaff_s7.mbcset)->char_classes + stop))->idx;\n                          prVar53 = prVar3->nodes;\n                          uVar8 = *(uint *)&prVar53[last_start].field_0x4;\n                          if ((uVar8 & 0x800) != 0) {\n                            if ((uVar8 & 0xffc000) != 0) {\n                              aVar45.idx = mctx.input.cur_idx;\n                              uVar60 = (*pcVar13)(&mctx,mctx.input.cur_idx,mctx.eflags);\n                              uVar8 = (uint)(*(int *)&prVar53[last_start].field_0x4 << 8) >> 0x16;\n                              if ((uVar8 & 4) == 0) {\n                                uVar26 = uVar60 & 1;\n                                if ((uVar8 & 8) != 0) goto joined_r0x00054f40;\n                              }\n                              else {\n                                uVar26 = uVar8 & 8;\n                                if ((uVar60 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                                if (uVar26 != 0) goto LAB_000550a4;\n                              }\n                              if ((((uVar8 & 0x20) != 0) && ((uVar60 & 2) == 0)) ||\n                                 (((uVar8 & 0x80) != 0 &&\n                                  (prVar51 = (re_dfa_t *)mctx.input.cur_idx, (uVar60 & 8) == 0))))\n                              goto LAB_000550a4;\n                            }\n                            aVar49.sbcset = (re_bitset_ptr_t)&mctx;\n                            aVar45.idx = last_start;\n                            prVar51 = (re_dfa_t *)mctx.input.cur_idx;\n                            iVar61 = (*pcVar11)(prVar3);\n                            if (iVar61 != 0) {\n                              aVar46.sbcset = (re_bitset_ptr_t)(iVar61 + mctx.input.cur_idx);\n                              if (iVar61 <= mctx.max_mb_elem_len) {\n                                iVar61 = mctx.max_mb_elem_len;\n                              }\n                              aVar45.sbcset = aVar46.sbcset;\n                              mctx.max_mb_elem_len = iVar61;\n                              err_1 = (*pcVar12)(&mctx);\n                              rVar21 = err_1;\n                              if (err_1 != _REG_NOERROR) goto LAB_00055e44;\n                              aVar49.sbcset =\n                                   (re_bitset_ptr_t)(prVar3->eclosures + prVar3->nexts[last_start]);\n                              unaff_s4 = (re_dfa_t *)(aVar46.idx * 4);\n                              last_start = (Idx)(mctx.state_log + aVar46.idx);\n                              if (*(bitset_word_t *)last_start == 0) {\n                                dest_nodes.alloc = *aVar49.sbcset;\n                                dest_nodes.nelem =\n                                     ((re_node_set *)&(aVar49.mbcset)->range_starts)->alloc;\n                                dest_nodes.elems = (aVar49.mbcset)->range_ends;\n                                prVar51 = (re_dfa_t *)\n                                          (*pcVar13)(&mctx,(undefined1 *)(aVar46.idx + -1),\n                                                     mctx.eflags);\n                                aVar49.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                                aVar45 = (anon_union_4_5_a39f51ca_for_opr)prVar3;\n                                prVar35 = re_acquire_state_context\n                                                    (&err_1,prVar3,(re_node_set *)aVar49.mbcset,\n                                                     (uint)prVar51);\n                                ((re_string_t *)&((re_charset_t *)last_start)->mbchars)->raw_mbs =\n                                     (uchar *)prVar35;\n                              }\n                              else {\n                                aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                                         ((anon_union_4_5_a39f51ca_for_opr *)\n                                         (*(bitset_word_t *)last_start + 0x28))->mbcset;\n                                err_1 = re_node_set_init_union\n                                                  (&dest_nodes,(re_node_set *)aVar45.mbcset,\n                                                   (re_node_set *)aVar49.mbcset);\n                                rVar21 = err_1;\n                                if (err_1 != _REG_NOERROR) goto LAB_00055e44;\n                                prVar51 = (re_dfa_t *)\n                                          (*pcVar13)(&mctx,(undefined1 *)(aVar46.idx + -1),\n                                                     mctx.eflags);\n                                pprVar14 = mctx.state_log + aVar46.idx;\n                                aVar49.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                                aVar45 = (anon_union_4_5_a39f51ca_for_opr)prVar3;\n                                prVar35 = re_acquire_state_context\n                                                    (&err_1,prVar3,(re_node_set *)aVar49.mbcset,\n                                                     (uint)prVar51);\n                                *pprVar14 = prVar35;\n                                (*(code *)PTR_free_00079c24)(dest_nodes.elems);\n                              }\n                              unaff_s4 = (re_dfa_t *)(mctx.state_log + aVar46.idx);\n                              if ((unaff_s4->nodes == (re_token_t *)0x0) &&\n                                 (rVar21 = err_1, err_1 != _REG_NOERROR)) goto LAB_00055e44;\n                            }\n                          }\nLAB_000550a4:\n                          stop = (int)&((re_string_t *)&((re_charset_t *)stop)->mbchars)->raw_mbs +\n                                 1;\n                        } while (stop < (int)(unaff_s7.mbcset)->range_ends);\n                      }\n                      err = _REG_NOERROR;\n                    }\n                    uVar8 = (uint)mctx.input.mbs[mctx.input.cur_idx];\n                    mctx.input.cur_idx = mctx.input.cur_idx + 1;\n                    do {\n                      if (*(re_dfastate_t **)(unaff_s7.idx + 0x2c) != (re_dfastate_t *)0x0) {\n                        aVar49 = (anon_union_4_5_a39f51ca_for_opr)\n                                 ((anon_union_4_5_a39f51ca_for_opr *)\n                                 (&(*(re_dfastate_t **)(unaff_s7.idx + 0x2c))->hash + uVar8))->\n                                 mbcset;\nLAB_000553a0:\n                        aVar15 = aVar49;\n                        if (mctx.state_log != (re_dfastate_t **)0x0) goto LAB_000553ac;\n                        goto LAB_000553cc;\n                      }\n                      paVar18 = *(anon_union_4_5_a39f51ca_for_opr **)(unaff_s7.idx + 0x30);\n                      if (paVar18 != (anon_union_4_5_a39f51ca_for_opr *)0x0) {\n                        aVar45.sbcset = (re_bitset_ptr_t)(mctx.input.cur_idx + -1);\n                        uVar60 = re_string_context_at(&mctx.input,aVar45.idx,mctx.eflags);\n                        if ((uVar60 & 1) == 0) {\n                          aVar49 = (anon_union_4_5_a39f51ca_for_opr)paVar18[uVar8].mbcset;\n                        }\n                        else {\n                          paVar18 = paVar18 + uVar8 + 0x100;\n                          aVar49 = (anon_union_4_5_a39f51ca_for_opr)paVar18->mbcset;\n                        }\n                        goto LAB_000553a0;\n                      }\n                      aVar45 = unaff_s7;\n                      aVar49 = (anon_union_4_5_a39f51ca_for_opr)mctx.eflags;\n                      iVar61 = (*pcVar10)(mctx.dfa);\n                    } while (iVar61 != 0);\n                    err = _REG_ESPACE;\n                    rVar21 = err;\nLAB_00055e44:\n                    err = rVar21;\n                    aVar46.sbcset = (re_bitset_ptr_t)0x0;\n                    if (mctx.state_log == (re_dfastate_t **)0x0) {\n                      aVar15.sbcset = aVar46.sbcset;\n                      if (err != _REG_NOERROR) goto LAB_00055914;\n                      break;\n                    }\n                    aVar49.sbcset = (re_bitset_ptr_t)0x0;\nLAB_000553ac:\n                    aVar45.sbcset = (re_bitset_ptr_t)&mctx;\n                    aVar15.sbcset =\n                         &merge_state_with_log\n                                    (&err,(re_match_context_t *)aVar45.mbcset,aVar49.sbcset)->hash;\nLAB_000553cc:\n                    aVar46 = aVar15;\n                    if ((re_dfa_t *)aVar15.sbcset == (re_dfa_t *)0x0) {\n                      if (err != _REG_NOERROR) goto LAB_00055914;\n                      if ((mctx.state_log == (re_dfastate_t **)0x0) ||\n                         ((prVar52 != (re_dfa_t *)0x0 &&\n                          (paVar54 == (anon_union_4_5_a39f51ca_for_opr *)0x0)))) break;\n                      stop = (Idx)&mctx;\n                      last_start = (Idx)&err;\n                      paVar18 = (anon_union_4_5_a39f51ca_for_opr *)(PTR_DAT_000799a4 + 0x3684);\n                      do {\n                        pprVar14 = mctx.state_log + mctx.input.cur_idx;\n                        IVar17 = mctx.input.cur_idx;\n                        do {\n                          IVar17 = IVar17 + 1;\n                          aVar45.idx = mctx.state_log_top;\n                          aVar46 = aVar15;\n                          if (mctx.state_log_top < IVar17) goto LAB_00055da8;\n                          mctx.input.cur_idx = mctx.input.cur_idx + 1;\n                          pprVar14 = pprVar14 + 1;\n                        } while (*pprVar14 == (re_dfastate_t *)0x0);\n                        aVar49.sbcset = (re_bitset_ptr_t)0x0;\n                        aVar45.sbcset = (re_bitset_ptr_t)stop;\n                        aVar46.sbcset = (re_bitset_ptr_t)(*(code *)paVar18)(last_start);\n                        if (err != _REG_NOERROR) {\n                          if ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0) goto LAB_00055da8;\n                          break;\n                        }\n                        aVar45.idx = mctx.state_log_top;\n                      } while ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0);\n                    }\n                    aVar16.ctx_type = unaff_s7.ctx_type ^ aVar46.ctx_type;\n                    aVar56 = unaff_s7;\n                    aVar15 = local_138;\n                    if ((bVar36) &&\n                       (aVar56.ctx_type = aVar16.ctx_type, aVar15.sbcset = unaff_s5.sbcset,\n                       (re_dfa_t *)aVar16.sbcset != (re_dfa_t *)0x0)) {\n                      bVar36 = false;\n                      aVar15 = local_138;\n                    }\n                    local_138 = aVar15;\n                    unaff_s7 = aVar46;\n                    if (((*(byte *)(aVar46.idx + 0x34) & 8) != 0) &&\n                       (((*(byte *)(aVar46.idx + 0x34) & 1) == 0 ||\n                        (aVar45 = aVar46, aVar49.idx = mctx.input.cur_idx,\n                        IVar17 = check_halt_state_context(&mctx,aVar46.idx,mctx.input.cur_idx),\n                        IVar17 != 0)))) {\n                      unaff_s7 = aVar56;\n                      local_c4.idx = mctx.input.cur_idx;\n                      if (paVar54 == (anon_union_4_5_a39f51ca_for_opr *)0x0) goto LAB_00055dbc;\n                      prVar52 = (re_dfa_t *)0x1;\n                      local_144 = (int *)0x0;\n                      unaff_s7 = aVar46;\n                    }\n                  }\nLAB_00055da8:\n                  if (local_144 != (int *)0x0) {\n                    *local_144 = *local_144 + (int)local_138.sbcset;\n                  }\n                }\n                else {\n                  aVar46.sbcset = (re_bitset_ptr_t)&(unaff_s7.mbcset)->range_starts;\n                  aVar49.sbcset = (re_bitset_ptr_t)0x0;\n                  aVar45 = aVar46;\n                  err = check_subexp_matching_top(&mctx,(re_node_set *)aVar46.mbcset,0);\n                  local_c4.idx = err;\n                  if ((re_dfa_t *)err == (re_dfa_t *)0x0) {\n                    if ((*(byte *)(unaff_s7.idx + 0x34) & 2) == 0) {\n                      aVar45 = aVar46;\n                      bVar36 = false;\n                    }\n                    else {\n                      aVar45 = aVar46;\n                      err = transit_state_bkref(&mctx,(re_node_set *)aVar46.mbcset);\n                      local_c4.idx = err;\n                      if ((re_dfa_t *)err != (re_dfa_t *)0x0) goto LAB_00055dbc;\n                      bVar36 = false;\n                    }\n                    goto LAB_00054d50;\n                  }\n                }\nLAB_00055dbc:\n                if ((re_dfa_t *)local_c4.sbcset == (re_dfa_t *)0xffffffff) {\nLAB_00055b04:\n                  match_ctx_clean(&mctx);\nLAB_00055b1c:\n                  match_first = aVar39.idx + match_first;\n                  if (aVar40.idx <= match_first) goto code_r0x00055b38;\n                  local_150.idx = 1;\n                  goto LAB_000557e4;\n                }\n                if ((re_dfa_t *)local_c4.sbcset == (re_dfa_t *)&SUB_fffffffe) {\n                  local_150.idx = 0xc;\n                  goto LAB_000557e4;\n                }\n                mctx.match_last = local_c4.idx;\n                if ((preg->field_0x1c & 8) == 0) {\n                  if (aVar4.sbcset < (re_dfa_t *)0x2) {\n                    if (prVar59->nbackref == 0) goto LAB_00055c08;\n                    aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                             ((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + local_c4.idx))->\n                             mbcset;\n                    aVar49 = local_c4;\n                    mctx.last_node =\n                         check_halt_state_context(&mctx,(re_dfastate_t *)aVar45.mbcset,local_c4.idx)\n                    ;\n                  }\n                  else {\n                    aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                             ((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + local_c4.idx))->\n                             mbcset;\n                    aVar49 = local_c4;\n                    mctx.last_node =\n                         check_halt_state_context(&mctx,(re_dfastate_t *)aVar45.mbcset,local_c4.idx)\n                    ;\n                  }\n                  if (aVar4.sbcset < (re_dfa_t *)0x2) {\nLAB_00055c6c:\n                    prVar52 = prVar51;\n                    unaff_s4 = mctx.dfa;\n                    if (prVar59->nbackref == 0) goto LAB_00055548;\n                  }\n                  else {\n                    cVar37 = prVar59->field_0x58;\nLAB_00055c20:\n                    prVar52 = prVar51;\n                    if (-1 < cVar37) goto LAB_00055c6c;\n                  }\n                  paVar18 = (anon_union_4_5_a39f51ca_for_opr *)mctx.last_node;\n                  prVar3 = mctx.dfa;\n                  unaff_s4 = prVar3;\n                  if ((uint)local_c4 < (re_dfa_t *)0x3fffffff) {\n                    aVar46.idx = (int)((int)&((re_string_t *)&(local_c4.mbcset)->mbchars)->raw_mbs +\n                                      1) * 4;\n                    unaff_s5.sbcset = (re_bitset_ptr_t)(*(code *)PTR_malloc_00079b54)(aVar46.sbcset)\n                    ;\n                    if ((re_dfa_t *)unaff_s5.sbcset == (re_dfa_t *)0x0) {\nLAB_00055b9c:\n                      (*(code *)PTR_free_00079c24)(unaff_s5.sbcset);\n                      local_150.idx = 0xc;\n                      prVar51 = prVar52;\n                    }\n                    else {\n                      aVar45.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                      if (prVar3->nbackref == 0) {\n                        dest_nodes.nelem = 0;\n                        dest_nodes.elems = &paVar18->idx;\n                        dest_nodes.alloc = (Idx)unaff_s5.sbcset;\n                        last_start = sift_states_backward(&mctx,(re_sift_context_t *)aVar45.mbcset);\n                        (*(code *)PTR_free_00079c24)(0);\n                        if ((re_dfa_t *)last_start == (re_dfa_t *)0x0) {\n                          aVar46.mbcset = (re_charset_t *)*unaff_s5.sbcset;\n                          if ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0) {\nLAB_00055b70:\n                            (*(code *)PTR_free_00079c24)(unaff_s5.sbcset);\n                            (*(code *)PTR_free_00079c24)(aVar46.sbcset);\n                            prVar51 = prVar52;\n                            goto LAB_00055b04;\n                          }\nLAB_00055528:\n                          (*(code *)PTR_free_00079c24)(mctx.state_log);\n                          prVar51 = prVar52;\n                          unaff_s4 = prVar3;\n                          mctx.match_last = local_c4.idx;\n                          mctx.last_node = (Idx)paVar18;\n                          mctx.state_log = (re_dfastate_t **)unaff_s5.sbcset;\n                          goto LAB_00055548;\n                        }\nLAB_00055acc:\n                        aVar46.sbcset = (re_bitset_ptr_t)0x0;\n                        prVar51 = prVar52;\n                        unaff_s4 = prVar3;\n                      }\n                      else {\n                        aVar46.sbcset =\n                             (re_bitset_ptr_t)(*(code *)PTR_malloc_00079b54)(aVar46.sbcset);\n                        if ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0) goto LAB_00055b9c;\n                        unaff_s7.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                        pcVar9 = (code *)(PTR_DAT_000799a4 + 0x421c);\n                        pcVar10 = (code *)(PTR_DAT_000799a4 + -0x6bc0);\n                        prVar51 = prVar52;\n                        while( true ) {\n                          prVar52 = (re_dfa_t *)(local_c4.idx + 1);\n                          stop = (int)prVar52 * 4;\n                          aVar49.idx = stop;\n                          (*(code *)PTR_memset_00079b00)(aVar46.sbcset,0);\n                          aVar45.sbcset = unaff_s7.sbcset;\n                          dest_nodes.alloc = (Idx)unaff_s5.sbcset;\n                          dest_nodes.nelem = (Idx)aVar46.sbcset;\n                          dest_nodes.elems = (Idx *)paVar18;\n                          last_start = (*pcVar9)(&mctx);\n                          (*(code *)PTR_free_00079c24)(0);\n                          unaff_s4 = prVar52;\n                          if ((re_dfa_t *)last_start != (re_dfa_t *)0x0) break;\n                          if ((*unaff_s5.sbcset != 0) || (stop = stop + -4, *aVar46.sbcset != 0)) {\n                            aVar45.sbcset = unaff_s5.sbcset;\n                            aVar49.sbcset = aVar46.sbcset;\n                            last_start = merge_state_array(prVar3,(re_dfastate_t **)unaff_s5.sbcset,\n                                                           (re_dfastate_t **)aVar46.sbcset,\n                                                           (Idx)prVar52);\n                            (*(code *)PTR_free_00079c24)(aVar46.sbcset);\n                            if ((re_dfa_t *)last_start != (re_dfa_t *)0x0) goto LAB_00055acc;\n                            goto LAB_00055528;\n                          }\n                          stop = (Idx)(mctx.state_log + (int)&prVar52[-1].lock.__align + 0x17);\n                          do {\n                            while( true ) {\n                              local_c4.sbcset = (re_bitset_ptr_t)(local_c4.idx + -1);\n                              if (local_c4.idx < 0) goto LAB_00055b70;\n                              aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                                       ((anon_union_4_5_a39f51ca_for_opr *)(stop + -4))->idx;\n                              if ((re_dfa_t *)aVar45.sbcset != (re_dfa_t *)0x0) break;\n                              stop = stop + -4;\n                            }\n                            stop = stop + -4;\n                          } while ((*(byte *)(aVar45.idx + 0x34) & 8) == 0);\n                          paVar18 = (anon_union_4_5_a39f51ca_for_opr *)\n                                    (*pcVar10)(&mctx,aVar45.sbcset,local_c4.sbcset);\n                          prVar51 = prVar52;\n                        }\n                      }\n                      (*(code *)PTR_free_00079c24)(unaff_s5.sbcset);\n                      (*(code *)PTR_free_00079c24)(aVar46.sbcset);\n                      local_150.idx = last_start;\n                      if ((re_dfa_t *)last_start == (re_dfa_t *)0x1) goto LAB_00055b04;\n                    }\n                  }\n                  else {\n                    local_150.idx = 0xc;\n                    prVar51 = prVar52;\n                  }\n                  goto LAB_000557e4;\n                }\n                if (prVar59->nbackref != 0) {\n                  aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                           ((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + local_c4.idx))->\n                           mbcset;\n                  aVar49 = local_c4;\n                  mctx.last_node =\n                       check_halt_state_context(&mctx,(re_dfastate_t *)aVar45.mbcset,local_c4.idx);\n                  goto LAB_00055c6c;\n                }\nLAB_00055c08:\n                if (((preg->field_0x1c & 8) == 0) && ((re_dfa_t *)0x1 < aVar4.sbcset)) {\n                  cVar37 = prVar59->field_0x58;\n                  goto LAB_00055c20;\n                }\nLAB_00055548:\n                if ((re_dfa_t *)aVar4.sbcset == (re_dfa_t *)0x0) goto LAB_000557e4;\n                if (aVar4.sbcset < (re_dfa_t *)0x2) {\n                  pmatch->rm_so = 0;\n                  pmatch->rm_eo = mctx.match_last;\n                  goto LAB_000555ac;\n                }\n                prVar19 = pmatch + 1;\n                do {\n                  prVar19->rm_eo = -1;\n                  prVar19->rm_so = -1;\n                  prVar19 = prVar19 + 1;\n                } while (prVar19 != pmatch + aVar4.idx);\n                pmatch->rm_so = 0;\n                pmatch->rm_eo = mctx.match_last;\n                if ((preg->field_0x1c & 8) != 0) {\nLAB_000555ac:\n                  prVar19 = pmatch;\n                  do {\n                    aVar45.sbcset = (re_bitset_ptr_t)prVar19->rm_so;\n                    if ((re_dfa_t *)aVar45.sbcset != (re_dfa_t *)0xffffffff) {\n                      if (mctx.input.offsets_needed != '\0') {\n                        rVar47 = mctx.input.valid_raw_len;\n                        if (aVar45.sbcset != (re_bitset_ptr_t)mctx.input.valid_len) {\n                          rVar47 = mctx.input.offsets[aVar45.idx];\n                        }\n                        prVar19->rm_so = rVar47;\n                        rVar47 = mctx.input.valid_raw_len;\n                        if (mctx.input.valid_len != prVar19->rm_eo) {\n                          rVar47 = mctx.input.offsets[prVar19->rm_eo];\n                        }\n                        prVar19->rm_eo = rVar47;\n                      }\n                      prVar19->rm_so = prVar19->rm_so + match_first;\n                      aVar45.sbcset = (re_bitset_ptr_t)(prVar19->rm_eo + match_first);\n                      prVar19->rm_eo = (regoff_t)aVar45;\n                    }\n                    prVar19 = prVar19 + 1;\n                  } while (prVar19 != pmatch + aVar4.idx);\n                  if (0 < local_118) {\n                    prVar19 = pmatch + aVar4.idx;\n                    do {\n                      prVar19->rm_so = -1;\n                      prVar19->rm_eo = -1;\n                      prVar19 = prVar19 + 1;\n                    } while (prVar19 != pmatch + nmatch);\n                  }\n                  aVar49.idx = match_first;\n                  prVar51 = (re_dfa_t *)pmatch;\n                  local_150.sbcset = aVar7.sbcset;\n                  if (prVar59->subexp_map != (Idx *)0x0) {\n                    aVar49.sbcset = (re_bitset_ptr_t)(aVar4.idx + -1);\n                    prVar52 = (re_dfa_t *)0x0;\n                    prVar19 = pmatch;\n                    while( true ) {\n                      aVar45.idx = (int)prVar52 * 4;\n                      if ((re_dfa_t *)aVar49.sbcset == prVar52) break;\n                      if ((re_dfa_t *)prVar59->subexp_map[(int)prVar52] != prVar52) {\n                        prVar19[1].rm_so =\n                             pmatch[(int)((int)&((re_string_t *)\n                                                &((re_dfa_t *)prVar59->subexp_map[(int)prVar52])->\n                                                 nodes)->raw_mbs + 1)].rm_so;\n                        prVar19[1].rm_eo = pmatch[prVar59->subexp_map[(int)prVar52] + 1].rm_eo;\n                      }\n                      prVar52 = (re_dfa_t *)((int)&((re_string_t *)&prVar52->nodes)->raw_mbs + 1);\n                      prVar19 = prVar19 + 1;\n                    }\n                  }\n                  goto LAB_000557e4;\n                }\n                if ((char)prVar59->field_0x58 < '\0') {\n                  bVar36 = 0 < prVar59->nbackref;\n                }\n                else {\n                  bVar36 = false;\n                }\n                aVar45.sbcset = (re_bitset_ptr_t)&mctx;\n                aVar49.sbcset = aVar4.sbcset;\n                prVar51 = (re_dfa_t *)pmatch;\n                local_150.idx =\n                     set_regs(preg,(re_match_context_t *)aVar45.mbcset,aVar4.ctx_type,pmatch,bVar36)\n                ;\n                if ((re_dfa_t *)local_150.sbcset == (re_dfa_t *)0x0) goto LAB_000555ac;\n              }\n            }\n          }\n          else if ((uint)mctx.input.bufs_len < 0x3fffffff) {\n            mctx.state_log =\n                 (re_dfastate_t **)(*(code *)PTR_malloc_00079b54)((mctx.input.bufs_len + 1) * 4);\n            if (mctx.state_log != (re_dfastate_t **)0x0) goto LAB_00055a40;\n            local_150.idx = 0xc;\n            stop = aVar56.idx;\n          }\n          else {\n            local_150.idx = 0xc;\n            stop = aVar56.idx;\n          }\n        }\n        else {\n          unaff_s5.idx = iVar55 * 8;\n          if (aVar56.sbcset < (re_dfa_t *)0xccccccd) {\n            unaff_s4 = (re_dfa_t *)(*(code *)PTR_malloc_00079b54)(iVar55 * 0x28);\n            mctx.bkref_ents = (re_backref_cache_entry *)unaff_s4;\n            mctx.sub_tops = (re_sub_match_top_t **)(*(code *)PTR_malloc_00079b54)(unaff_s5.sbcset);\n            if ((unaff_s4 != (re_dfa_t *)0x0) && (mctx.sub_tops != (re_sub_match_top_t **)0x0))\n            goto LAB_000559f0;\n          }\n          local_150.idx = 0xc;\n          stop = aVar56.idx;\n        }" if (parenthesized_expression "((int)aVar56 < 1)" ( (binary_expression "(int)aVar56 < 1" (cast_expression "(int)aVar56" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\nLAB_000559f0:\n          mctx.max_mb_elem_len = 1;\n          mctx.abkref_ents = aVar56.idx;\n          mctx.asub_tops = aVar56.idx;\n          if ((aVar4.sbcset < (re_dfa_t *)0x2) && ((prVar59->field_0x58 & 0x40) == 0)) {\n            mctx.state_log = (re_dfastate_t **)0x0;\nLAB_00055a40:\n            mctx.input.tip_context = 6;\n            if ((eflags & 1U) != 0) {\n              mctx.input.tip_context = 4;\n            }\n            aVar39.idx = 1;\n            aVar40.idx = start;\n            if (last_start < start) {\n              aVar39.idx = -1;\n              aVar40.idx = last_start;\n            }\n            aVar41.idx = last_start;\n            if (last_start <= start) {\n              aVar41.idx = start;\n            }\n            iVar55 = prVar59->mb_cur_max;\n            rVar20 = 8;\n            if ((re_dfa_t *)local_148.sbcset != (re_dfa_t *)0x0) {\n              if (iVar55 == 1) {\n                paVar43 = (anon_union_4_5_a39f51ca_for_opr *)0x4;\n              }\n              else {\n                paVar43 = paVar2;\n                if ((-1 < (int)(preg->syntax << 9)) && (puVar50 == (uchar *)0x0)) {\n                  paVar43 = (anon_union_4_5_a39f51ca_for_opr *)0x4;\n                }\n              }\n              aVar45.sbcset = (re_bitset_ptr_t)0x0;\n              if (start <= last_start) {\n                aVar45.idx = 2;\n              }\n              rVar20 = (uint)(puVar50 != (uchar *)0x0) | (uint)paVar43 | aVar45.ctx_type;\n            }\n            match_first = start;\n            if (start < aVar40.idx) {\n              local_150.idx = 1;\n              stop = aVar56.idx;\n            }\n            else {\n              aVar46.idx._0_3_ = 0;\n              aVar46.idx._3_1_ = last_start < start;\n              if (aVar41.idx < start) {\n                local_150.idx = 1;\n                stop = aVar56.idx;\n              }\n              else {\n                piVar38 = &match_first;\n                if ((re_dfa_t *)aVar46.sbcset != (re_dfa_t *)0x0) {\n                  piVar38 = (int *)0x0;\n                }\n                pcVar5 = (code *)(PTR_DAT_000799a4 + -0x2b7c);\n                piVar6 = (int *)(PTR_s_nt0_000795b8 + (rVar20 - 4) * 4 + 0x6e38);\nLAB_00055b44:\n                if (rVar20 - 4 < 5) {\n                    /* WARNING: Could not emulate address calculation at 0x00054920 */\n                    /* WARNING: Treating indirect jump as call */\n                  rVar21 = (*(code *)(&_gp + *piVar6))();\n                  return rVar21;\n                }\n                last_start = (Idx)&mctx;\n                prVar52 = prVar51;\n                while( true ) {\n                  aVar46.idx = match_first;\n                  uVar8 = match_first - mctx.input.raw_mbs_idx;\n                  aVar49 = (anon_union_4_5_a39f51ca_for_opr)eflags;\n                  paVar18 = paVar2;\n                  stop = local_148.idx;\n                  unaff_s4 = (re_dfa_t *)length;\n                  unaff_s5 = aVar39;\n                  unaff_s7 = aVar41;\n                  if ((uint)mctx.input.valid_raw_len <= uVar8) {\n                    aVar45.idx = match_first;\n                    local_150.sbcset = (re_bitset_ptr_t)(*pcVar5)(last_start);\n                    prVar51 = prVar52;\n                    if ((re_dfa_t *)local_150.sbcset != (re_dfa_t *)0x0) goto LAB_000557e4;\n                    uVar8 = (int)aVar46.sbcset - mctx.input.raw_mbs_idx;\n                  }\n                  if (aVar46.idx < length) {\n                    uVar8 = (uint)mctx.input.mbs[uVar8];\n                  }\n                  else {\n                    uVar8 = 0;\n                  }\n                  aVar56.sbcset = aVar46.sbcset + aVar39.sbcset;\n                  aVar46.sbcset = aVar56.sbcset;\n                  if (*(char *)((int)local_148.sbcset + uVar8) != '\0') break;\n                  prVar51 = prVar52;\n                  match_first = aVar56.idx;\n                  if (aVar56.idx < aVar40.idx) {\n                    local_150.idx = 1;\n                    goto LAB_000557e4;\n                  }\n                  aVar46.idx._0_3_ = 0;\n                  aVar46.idx._3_1_ = aVar41.idx < aVar56.idx;\n                  if ((re_dfa_t *)aVar46.sbcset != (re_dfa_t *)0x0) {\n                    local_150.idx = 1;\n                    goto LAB_000557e4;\n                  }\n                }\n                while( true ) {\n                  aVar45.idx = match_first;\n                  aVar49 = (anon_union_4_5_a39f51ca_for_opr)eflags;\n                  aVar7.sbcset = (re_bitset_ptr_t)(*pcVar5)(&mctx);\n                  aVar15 = (anon_union_4_5_a39f51ca_for_opr)mctx.dfa;\n                  aVar56.idx = mctx.input.cur_idx;\n                  prVar51 = prVar52;\n                  local_150.sbcset = aVar7.sbcset;\n                  if ((re_dfa_t *)aVar7.sbcset != (re_dfa_t *)0x0) goto LAB_000557e4;\n                  if (((iVar55 != 1) && (mctx.input.valid_len != 0)) &&\n                     (*mctx.input.wcs == 0xffffffff)) goto LAB_00055b1c;\n                  mctx.max_mb_elem_len = 0;\n                  mctx.nbkref_ents = 0;\n                  mctx.state_log_top = 0;\n                  local_138.idx = mctx.input.cur_idx;\n                  err = _REG_NOERROR;\n                  unaff_s7 = (anon_union_4_5_a39f51ca_for_opr)(mctx.dfa)->init_state;\n                  aVar49 = (anon_union_4_5_a39f51ca_for_opr)mctx.eflags;\n                  aVar46 = aVar15;\n                  if ((*(byte *)(unaff_s7.idx + 0x34) & 1) == 0) break;\n                  aVar45.sbcset = (re_bitset_ptr_t)(mctx.input.cur_idx + -1);\n                  prVar51 = (re_dfa_t *)re_string_context_at(&mctx.input,aVar45.idx,mctx.eflags);\n                  if (((uint)prVar51 & 1) == 0) {\n                    if (prVar51 == (re_dfa_t *)0x0) break;\n                    if (((uint)prVar51 & 6) == 6) {\n                      unaff_s7 = (anon_union_4_5_a39f51ca_for_opr)\n                                 ((re_dfa_t *)aVar15.idx)->init_state_begbuf;\n                      goto LAB_00054d1c;\n                    }\n                    if (((uint)prVar51 & 2) != 0) {\n                      unaff_s7 = (anon_union_4_5_a39f51ca_for_opr)\n                                 ((re_dfa_t *)aVar15.idx)->init_state_nl;\n                      goto LAB_00054d1c;\n                    }\n                    prVar52 = prVar51;\n                    if (((uint)prVar51 & 4) == 0) break;\n                    aVar49 = (anon_union_4_5_a39f51ca_for_opr)\n                             ((anon_union_4_5_a39f51ca_for_opr *)(unaff_s7.idx + 0x28))->mbcset;\n                    aVar45 = aVar15;\n                    unaff_s7.sbcset =\n                         &re_acquire_state_context\n                                    (&err,aVar15.sbcset,(re_node_set *)aVar49.mbcset,(uint)prVar51)\n                          ->hash;\n                    prVar52 = prVar51;\n                    if ((re_dfa_t *)unaff_s7.sbcset != (re_dfa_t *)0x0) break;\n                    if (err == _REG_ESPACE) goto LAB_00055914;\n                  }\n                  else {\n                    unaff_s7 = (anon_union_4_5_a39f51ca_for_opr)\n                               ((re_dfa_t *)aVar15.idx)->init_state_word;\nLAB_00054d1c:\n                    prVar52 = (re_dfa_t *)PTR_s_nt0_000795b8;\n                    if ((re_dfa_t *)unaff_s7.sbcset != (re_dfa_t *)0x0) break;\n                  }\n                  prVar52 = (re_dfa_t *)(PTR_s_nt0_000795b8 + 0x6eb0);\n                  aVar45.sbcset = (re_bitset_ptr_t)(PTR_s_nt0_000795b8 + 0x712c);\n                  match_first = (*(code *)PTR___assert_fail_000799f8)\n                                          (PTR_s_nt0_000795b8 + 0x71a0,aVar45.sbcset,0x435);\n                  if ((re_bitset_ptr_t)match_first == aVar41.sbcset) {\n                    if (match_first < length) {\n                      uVar8 = (uint)(byte)string[match_first];\n                    }\n                    else {\n                      uVar8 = 0;\n                    }\n                    if (puVar50 != (uchar *)0x0) {\n                      uVar8 = (uint)puVar50[uVar8];\n                    }\n                    if (*(char *)((int)local_148.sbcset + uVar8) == '\0') {\n                      local_150.idx = 1;\n                      aVar49 = (anon_union_4_5_a39f51ca_for_opr)eflags;\n                      prVar51 = prVar52;\n                      goto LAB_000557e4;\n                    }\n                  }\n                }\n                prVar51 = prVar52;\n                bVar36 = piVar38 != (int *)0x0;\n                if ((mctx.state_log == (re_dfastate_t **)0x0) ||\n                   (((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + aVar56.idx))->mbcset =\n                         (re_charset_t *)unaff_s7, ((re_dfa_t *)aVar15.idx)->nbackref == 0)) {\nLAB_00054d50:\n                  if ((int)*(bin_tree_t **)(unaff_s7.idx + 0x34) << 4 < 0) {\n                    if (((*(byte *)(unaff_s7.idx + 0x34) & 1) == 0) ||\n                       (aVar45 = unaff_s7, aVar49 = aVar56,\n                       IVar17 = check_halt_state_context(&mctx,unaff_s7.idx,aVar56.idx), IVar17 != 0\n                       )) {\n                      local_c4 = aVar56;\n                      if (paVar54 == (anon_union_4_5_a39f51ca_for_opr *)0x0) goto LAB_00055dbc;\n                      prVar52 = (re_dfa_t *)0x1;\n                    }\n                    else {\n                      aVar56.idx = -1;\n                      prVar52 = (re_dfa_t *)0x0;\n                    }\n                  }\n                  else {\n                    aVar56.idx = -1;\n                    prVar52 = (re_dfa_t *)0x0;\n                  }\n                  pcVar9 = (code *)(PTR_DAT_000799a4 + -0x7144);\n                  pcVar10 = (code *)(PTR_DAT_000799a4 + -0x1980);\n                  pcVar11 = (code *)(PTR_DAT_000799a4 + -0x2f9c);\n                  local_c4 = aVar56;\n                  local_144 = piVar38;\n                  while( true ) {\n                    uVar63 = CONCAT44(mctx.input.valid_len,mctx.input.len);\n                    unaff_s5.sbcset = (re_bitset_ptr_t)(mctx.input.cur_idx + 1);\n                    aVar45.idx = mctx.input.cur_idx;\n                    if (mctx.input.stop <= mctx.input.cur_idx) break;\n                    if ((mctx.input.bufs_len <= unaff_s5.idx) &&\n                       (mctx.input.bufs_len < mctx.input.len)) goto LAB_00054e94;\n                    if (mctx.input.valid_len <= unaff_s5.idx) {\n                      while ((int)((ulonglong)uVar63 >> 0x20) < (int)uVar63) {\nLAB_00054e94:\n                        aVar45.sbcset =\n                             (re_bitset_ptr_t)\n                             ((int)&((re_string_t *)&(aVar45.mbcset)->mbchars)->raw_mbs + 2);\n                        err = (*pcVar9)(&mctx);\n                        if (err == _REG_NOERROR) break;\n                        aVar15 = aVar46;\n                        if (err == _REG_ESPACE) goto LAB_00055914;\n                        prVar51 = (re_dfa_t *)(PTR_s_nt0_000795b8 + 0x6eb0);\n                        aVar49.idx = 0x46c;\n                        aVar45.sbcset = (re_bitset_ptr_t)(PTR_s_nt0_000795b8 + 0x712c);\n                        uVar63 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0);\n                        prVar52 = prVar59;\n                      }\n                    }\n                    prVar3 = mctx.dfa;\n                    if ((int)*(bin_tree_t **)(unaff_s7.idx + 0x34) << 5 < 0) {\n                      paVar18 = (anon_union_4_5_a39f51ca_for_opr *)prVar3;\n                      if (0 < (int)(unaff_s7.mbcset)->range_ends) {\n                        pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6fdc);\n                        pcVar13 = (code *)(PTR_DAT_000799a4 + -0x6ef0);\n                        stop = 0;\n                        do {\n                          last_start = ((anon_union_4_5_a39f51ca_for_opr *)\n                                       ((unaff_s7.mbcset)->char_classes + stop))->idx;\n                          prVar53 = prVar3->nodes;\n                          uVar8 = *(uint *)&prVar53[last_start].field_0x4;\n                          if ((uVar8 & 0x800) != 0) {\n                            if ((uVar8 & 0xffc000) != 0) {\n                              aVar45.idx = mctx.input.cur_idx;\n                              uVar60 = (*pcVar13)(&mctx,mctx.input.cur_idx,mctx.eflags);\n                              uVar8 = (uint)(*(int *)&prVar53[last_start].field_0x4 << 8) >> 0x16;\n                              if ((uVar8 & 4) == 0) {\n                                uVar26 = uVar60 & 1;\n                                if ((uVar8 & 8) != 0) goto joined_r0x00054f40;\n                              }\n                              else {\n                                uVar26 = uVar8 & 8;\n                                if ((uVar60 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                                if (uVar26 != 0) goto LAB_000550a4;\n                              }\n                              if ((((uVar8 & 0x20) != 0) && ((uVar60 & 2) == 0)) ||\n                                 (((uVar8 & 0x80) != 0 &&\n                                  (prVar51 = (re_dfa_t *)mctx.input.cur_idx, (uVar60 & 8) == 0))))\n                              goto LAB_000550a4;\n                            }\n                            aVar49.sbcset = (re_bitset_ptr_t)&mctx;\n                            aVar45.idx = last_start;\n                            prVar51 = (re_dfa_t *)mctx.input.cur_idx;\n                            iVar61 = (*pcVar11)(prVar3);\n                            if (iVar61 != 0) {\n                              aVar46.sbcset = (re_bitset_ptr_t)(iVar61 + mctx.input.cur_idx);\n                              if (iVar61 <= mctx.max_mb_elem_len) {\n                                iVar61 = mctx.max_mb_elem_len;\n                              }\n                              aVar45.sbcset = aVar46.sbcset;\n                              mctx.max_mb_elem_len = iVar61;\n                              err_1 = (*pcVar12)(&mctx);\n                              rVar21 = err_1;\n                              if (err_1 != _REG_NOERROR) goto LAB_00055e44;\n                              aVar49.sbcset =\n                                   (re_bitset_ptr_t)(prVar3->eclosures + prVar3->nexts[last_start]);\n                              unaff_s4 = (re_dfa_t *)(aVar46.idx * 4);\n                              last_start = (Idx)(mctx.state_log + aVar46.idx);\n                              if (*(bitset_word_t *)last_start == 0) {\n                                dest_nodes.alloc = *aVar49.sbcset;\n                                dest_nodes.nelem =\n                                     ((re_node_set *)&(aVar49.mbcset)->range_starts)->alloc;\n                                dest_nodes.elems = (aVar49.mbcset)->range_ends;\n                                prVar51 = (re_dfa_t *)\n                                          (*pcVar13)(&mctx,(undefined1 *)(aVar46.idx + -1),\n                                                     mctx.eflags);\n                                aVar49.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                                aVar45 = (anon_union_4_5_a39f51ca_for_opr)prVar3;\n                                prVar35 = re_acquire_state_context\n                                                    (&err_1,prVar3,(re_node_set *)aVar49.mbcset,\n                                                     (uint)prVar51);\n                                ((re_string_t *)&((re_charset_t *)last_start)->mbchars)->raw_mbs =\n                                     (uchar *)prVar35;\n                              }\n                              else {\n                                aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                                         ((anon_union_4_5_a39f51ca_for_opr *)\n                                         (*(bitset_word_t *)last_start + 0x28))->mbcset;\n                                err_1 = re_node_set_init_union\n                                                  (&dest_nodes,(re_node_set *)aVar45.mbcset,\n                                                   (re_node_set *)aVar49.mbcset);\n                                rVar21 = err_1;\n                                if (err_1 != _REG_NOERROR) goto LAB_00055e44;\n                                prVar51 = (re_dfa_t *)\n                                          (*pcVar13)(&mctx,(undefined1 *)(aVar46.idx + -1),\n                                                     mctx.eflags);\n                                pprVar14 = mctx.state_log + aVar46.idx;\n                                aVar49.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                                aVar45 = (anon_union_4_5_a39f51ca_for_opr)prVar3;\n                                prVar35 = re_acquire_state_context\n                                                    (&err_1,prVar3,(re_node_set *)aVar49.mbcset,\n                                                     (uint)prVar51);\n                                *pprVar14 = prVar35;\n                                (*(code *)PTR_free_00079c24)(dest_nodes.elems);\n                              }\n                              unaff_s4 = (re_dfa_t *)(mctx.state_log + aVar46.idx);\n                              if ((unaff_s4->nodes == (re_token_t *)0x0) &&\n                                 (rVar21 = err_1, err_1 != _REG_NOERROR)) goto LAB_00055e44;\n                            }\n                          }\nLAB_000550a4:\n                          stop = (int)&((re_string_t *)&((re_charset_t *)stop)->mbchars)->raw_mbs +\n                                 1;\n                        } while (stop < (int)(unaff_s7.mbcset)->range_ends);\n                      }\n                      err = _REG_NOERROR;\n                    }\n                    uVar8 = (uint)mctx.input.mbs[mctx.input.cur_idx];\n                    mctx.input.cur_idx = mctx.input.cur_idx + 1;\n                    do {\n                      if (*(re_dfastate_t **)(unaff_s7.idx + 0x2c) != (re_dfastate_t *)0x0) {\n                        aVar49 = (anon_union_4_5_a39f51ca_for_opr)\n                                 ((anon_union_4_5_a39f51ca_for_opr *)\n                                 (&(*(re_dfastate_t **)(unaff_s7.idx + 0x2c))->hash + uVar8))->\n                                 mbcset;\nLAB_000553a0:\n                        aVar15 = aVar49;\n                        if (mctx.state_log != (re_dfastate_t **)0x0) goto LAB_000553ac;\n                        goto LAB_000553cc;\n                      }\n                      paVar18 = *(anon_union_4_5_a39f51ca_for_opr **)(unaff_s7.idx + 0x30);\n                      if (paVar18 != (anon_union_4_5_a39f51ca_for_opr *)0x0) {\n                        aVar45.sbcset = (re_bitset_ptr_t)(mctx.input.cur_idx + -1);\n                        uVar60 = re_string_context_at(&mctx.input,aVar45.idx,mctx.eflags);\n                        if ((uVar60 & 1) == 0) {\n                          aVar49 = (anon_union_4_5_a39f51ca_for_opr)paVar18[uVar8].mbcset;\n                        }\n                        else {\n                          paVar18 = paVar18 + uVar8 + 0x100;\n                          aVar49 = (anon_union_4_5_a39f51ca_for_opr)paVar18->mbcset;\n                        }\n                        goto LAB_000553a0;\n                      }\n                      aVar45 = unaff_s7;\n                      aVar49 = (anon_union_4_5_a39f51ca_for_opr)mctx.eflags;\n                      iVar61 = (*pcVar10)(mctx.dfa);\n                    } while (iVar61 != 0);\n                    err = _REG_ESPACE;\n                    rVar21 = err;\nLAB_00055e44:\n                    err = rVar21;\n                    aVar46.sbcset = (re_bitset_ptr_t)0x0;\n                    if (mctx.state_log == (re_dfastate_t **)0x0) {\n                      aVar15.sbcset = aVar46.sbcset;\n                      if (err != _REG_NOERROR) goto LAB_00055914;\n                      break;\n                    }\n                    aVar49.sbcset = (re_bitset_ptr_t)0x0;\nLAB_000553ac:\n                    aVar45.sbcset = (re_bitset_ptr_t)&mctx;\n                    aVar15.sbcset =\n                         &merge_state_with_log\n                                    (&err,(re_match_context_t *)aVar45.mbcset,aVar49.sbcset)->hash;\nLAB_000553cc:\n                    aVar46 = aVar15;\n                    if ((re_dfa_t *)aVar15.sbcset == (re_dfa_t *)0x0) {\n                      if (err != _REG_NOERROR) goto LAB_00055914;\n                      if ((mctx.state_log == (re_dfastate_t **)0x0) ||\n                         ((prVar52 != (re_dfa_t *)0x0 &&\n                          (paVar54 == (anon_union_4_5_a39f51ca_for_opr *)0x0)))) break;\n                      stop = (Idx)&mctx;\n                      last_start = (Idx)&err;\n                      paVar18 = (anon_union_4_5_a39f51ca_for_opr *)(PTR_DAT_000799a4 + 0x3684);\n                      do {\n                        pprVar14 = mctx.state_log + mctx.input.cur_idx;\n                        IVar17 = mctx.input.cur_idx;\n                        do {\n                          IVar17 = IVar17 + 1;\n                          aVar45.idx = mctx.state_log_top;\n                          aVar46 = aVar15;\n                          if (mctx.state_log_top < IVar17) goto LAB_00055da8;\n                          mctx.input.cur_idx = mctx.input.cur_idx + 1;\n                          pprVar14 = pprVar14 + 1;\n                        } while (*pprVar14 == (re_dfastate_t *)0x0);\n                        aVar49.sbcset = (re_bitset_ptr_t)0x0;\n                        aVar45.sbcset = (re_bitset_ptr_t)stop;\n                        aVar46.sbcset = (re_bitset_ptr_t)(*(code *)paVar18)(last_start);\n                        if (err != _REG_NOERROR) {\n                          if ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0) goto LAB_00055da8;\n                          break;\n                        }\n                        aVar45.idx = mctx.state_log_top;\n                      } while ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0);\n                    }\n                    aVar16.ctx_type = unaff_s7.ctx_type ^ aVar46.ctx_type;\n                    aVar56 = unaff_s7;\n                    aVar15 = local_138;\n                    if ((bVar36) &&\n                       (aVar56.ctx_type = aVar16.ctx_type, aVar15.sbcset = unaff_s5.sbcset,\n                       (re_dfa_t *)aVar16.sbcset != (re_dfa_t *)0x0)) {\n                      bVar36 = false;\n                      aVar15 = local_138;\n                    }\n                    local_138 = aVar15;\n                    unaff_s7 = aVar46;\n                    if (((*(byte *)(aVar46.idx + 0x34) & 8) != 0) &&\n                       (((*(byte *)(aVar46.idx + 0x34) & 1) == 0 ||\n                        (aVar45 = aVar46, aVar49.idx = mctx.input.cur_idx,\n                        IVar17 = check_halt_state_context(&mctx,aVar46.idx,mctx.input.cur_idx),\n                        IVar17 != 0)))) {\n                      unaff_s7 = aVar56;\n                      local_c4.idx = mctx.input.cur_idx;\n                      if (paVar54 == (anon_union_4_5_a39f51ca_for_opr *)0x0) goto LAB_00055dbc;\n                      prVar52 = (re_dfa_t *)0x1;\n                      local_144 = (int *)0x0;\n                      unaff_s7 = aVar46;\n                    }\n                  }\nLAB_00055da8:\n                  if (local_144 != (int *)0x0) {\n                    *local_144 = *local_144 + (int)local_138.sbcset;\n                  }\n                }\n                else {\n                  aVar46.sbcset = (re_bitset_ptr_t)&(unaff_s7.mbcset)->range_starts;\n                  aVar49.sbcset = (re_bitset_ptr_t)0x0;\n                  aVar45 = aVar46;\n                  err = check_subexp_matching_top(&mctx,(re_node_set *)aVar46.mbcset,0);\n                  local_c4.idx = err;\n                  if ((re_dfa_t *)err == (re_dfa_t *)0x0) {\n                    if ((*(byte *)(unaff_s7.idx + 0x34) & 2) == 0) {\n                      aVar45 = aVar46;\n                      bVar36 = false;\n                    }\n                    else {\n                      aVar45 = aVar46;\n                      err = transit_state_bkref(&mctx,(re_node_set *)aVar46.mbcset);\n                      local_c4.idx = err;\n                      if ((re_dfa_t *)err != (re_dfa_t *)0x0) goto LAB_00055dbc;\n                      bVar36 = false;\n                    }\n                    goto LAB_00054d50;\n                  }\n                }\nLAB_00055dbc:\n                if ((re_dfa_t *)local_c4.sbcset == (re_dfa_t *)0xffffffff) {\nLAB_00055b04:\n                  match_ctx_clean(&mctx);\nLAB_00055b1c:\n                  match_first = aVar39.idx + match_first;\n                  if (aVar40.idx <= match_first) goto code_r0x00055b38;\n                  local_150.idx = 1;\n                  goto LAB_000557e4;\n                }\n                if ((re_dfa_t *)local_c4.sbcset == (re_dfa_t *)&SUB_fffffffe) {\n                  local_150.idx = 0xc;\n                  goto LAB_000557e4;\n                }\n                mctx.match_last = local_c4.idx;\n                if ((preg->field_0x1c & 8) == 0) {\n                  if (aVar4.sbcset < (re_dfa_t *)0x2) {\n                    if (prVar59->nbackref == 0) goto LAB_00055c08;\n                    aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                             ((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + local_c4.idx))->\n                             mbcset;\n                    aVar49 = local_c4;\n                    mctx.last_node =\n                         check_halt_state_context(&mctx,(re_dfastate_t *)aVar45.mbcset,local_c4.idx)\n                    ;\n                  }\n                  else {\n                    aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                             ((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + local_c4.idx))->\n                             mbcset;\n                    aVar49 = local_c4;\n                    mctx.last_node =\n                         check_halt_state_context(&mctx,(re_dfastate_t *)aVar45.mbcset,local_c4.idx)\n                    ;\n                  }\n                  if (aVar4.sbcset < (re_dfa_t *)0x2) {\nLAB_00055c6c:\n                    prVar52 = prVar51;\n                    unaff_s4 = mctx.dfa;\n                    if (prVar59->nbackref == 0) goto LAB_00055548;\n                  }\n                  else {\n                    cVar37 = prVar59->field_0x58;\nLAB_00055c20:\n                    prVar52 = prVar51;\n                    if (-1 < cVar37) goto LAB_00055c6c;\n                  }\n                  paVar18 = (anon_union_4_5_a39f51ca_for_opr *)mctx.last_node;\n                  prVar3 = mctx.dfa;\n                  unaff_s4 = prVar3;\n                  if ((uint)local_c4 < (re_dfa_t *)0x3fffffff) {\n                    aVar46.idx = (int)((int)&((re_string_t *)&(local_c4.mbcset)->mbchars)->raw_mbs +\n                                      1) * 4;\n                    unaff_s5.sbcset = (re_bitset_ptr_t)(*(code *)PTR_malloc_00079b54)(aVar46.sbcset)\n                    ;\n                    if ((re_dfa_t *)unaff_s5.sbcset == (re_dfa_t *)0x0) {\nLAB_00055b9c:\n                      (*(code *)PTR_free_00079c24)(unaff_s5.sbcset);\n                      local_150.idx = 0xc;\n                      prVar51 = prVar52;\n                    }\n                    else {\n                      aVar45.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                      if (prVar3->nbackref == 0) {\n                        dest_nodes.nelem = 0;\n                        dest_nodes.elems = &paVar18->idx;\n                        dest_nodes.alloc = (Idx)unaff_s5.sbcset;\n                        last_start = sift_states_backward(&mctx,(re_sift_context_t *)aVar45.mbcset);\n                        (*(code *)PTR_free_00079c24)(0);\n                        if ((re_dfa_t *)last_start == (re_dfa_t *)0x0) {\n                          aVar46.mbcset = (re_charset_t *)*unaff_s5.sbcset;\n                          if ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0) {\nLAB_00055b70:\n                            (*(code *)PTR_free_00079c24)(unaff_s5.sbcset);\n                            (*(code *)PTR_free_00079c24)(aVar46.sbcset);\n                            prVar51 = prVar52;\n                            goto LAB_00055b04;\n                          }\nLAB_00055528:\n                          (*(code *)PTR_free_00079c24)(mctx.state_log);\n                          prVar51 = prVar52;\n                          unaff_s4 = prVar3;\n                          mctx.match_last = local_c4.idx;\n                          mctx.last_node = (Idx)paVar18;\n                          mctx.state_log = (re_dfastate_t **)unaff_s5.sbcset;\n                          goto LAB_00055548;\n                        }\nLAB_00055acc:\n                        aVar46.sbcset = (re_bitset_ptr_t)0x0;\n                        prVar51 = prVar52;\n                        unaff_s4 = prVar3;\n                      }\n                      else {\n                        aVar46.sbcset =\n                             (re_bitset_ptr_t)(*(code *)PTR_malloc_00079b54)(aVar46.sbcset);\n                        if ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0) goto LAB_00055b9c;\n                        unaff_s7.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                        pcVar9 = (code *)(PTR_DAT_000799a4 + 0x421c);\n                        pcVar10 = (code *)(PTR_DAT_000799a4 + -0x6bc0);\n                        prVar51 = prVar52;\n                        while( true ) {\n                          prVar52 = (re_dfa_t *)(local_c4.idx + 1);\n                          stop = (int)prVar52 * 4;\n                          aVar49.idx = stop;\n                          (*(code *)PTR_memset_00079b00)(aVar46.sbcset,0);\n                          aVar45.sbcset = unaff_s7.sbcset;\n                          dest_nodes.alloc = (Idx)unaff_s5.sbcset;\n                          dest_nodes.nelem = (Idx)aVar46.sbcset;\n                          dest_nodes.elems = (Idx *)paVar18;\n                          last_start = (*pcVar9)(&mctx);\n                          (*(code *)PTR_free_00079c24)(0);\n                          unaff_s4 = prVar52;\n                          if ((re_dfa_t *)last_start != (re_dfa_t *)0x0) break;\n                          if ((*unaff_s5.sbcset != 0) || (stop = stop + -4, *aVar46.sbcset != 0)) {\n                            aVar45.sbcset = unaff_s5.sbcset;\n                            aVar49.sbcset = aVar46.sbcset;\n                            last_start = merge_state_array(prVar3,(re_dfastate_t **)unaff_s5.sbcset,\n                                                           (re_dfastate_t **)aVar46.sbcset,\n                                                           (Idx)prVar52);\n                            (*(code *)PTR_free_00079c24)(aVar46.sbcset);\n                            if ((re_dfa_t *)last_start != (re_dfa_t *)0x0) goto LAB_00055acc;\n                            goto LAB_00055528;\n                          }\n                          stop = (Idx)(mctx.state_log + (int)&prVar52[-1].lock.__align + 0x17);\n                          do {\n                            while( true ) {\n                              local_c4.sbcset = (re_bitset_ptr_t)(local_c4.idx + -1);\n                              if (local_c4.idx < 0) goto LAB_00055b70;\n                              aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                                       ((anon_union_4_5_a39f51ca_for_opr *)(stop + -4))->idx;\n                              if ((re_dfa_t *)aVar45.sbcset != (re_dfa_t *)0x0) break;\n                              stop = stop + -4;\n                            }\n                            stop = stop + -4;\n                          } while ((*(byte *)(aVar45.idx + 0x34) & 8) == 0);\n                          paVar18 = (anon_union_4_5_a39f51ca_for_opr *)\n                                    (*pcVar10)(&mctx,aVar45.sbcset,local_c4.sbcset);\n                          prVar51 = prVar52;\n                        }\n                      }\n                      (*(code *)PTR_free_00079c24)(unaff_s5.sbcset);\n                      (*(code *)PTR_free_00079c24)(aVar46.sbcset);\n                      local_150.idx = last_start;\n                      if ((re_dfa_t *)last_start == (re_dfa_t *)0x1) goto LAB_00055b04;\n                    }\n                  }\n                  else {\n                    local_150.idx = 0xc;\n                    prVar51 = prVar52;\n                  }\n                  goto LAB_000557e4;\n                }\n                if (prVar59->nbackref != 0) {\n                  aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                           ((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + local_c4.idx))->\n                           mbcset;\n                  aVar49 = local_c4;\n                  mctx.last_node =\n                       check_halt_state_context(&mctx,(re_dfastate_t *)aVar45.mbcset,local_c4.idx);\n                  goto LAB_00055c6c;\n                }\nLAB_00055c08:\n                if (((preg->field_0x1c & 8) == 0) && ((re_dfa_t *)0x1 < aVar4.sbcset)) {\n                  cVar37 = prVar59->field_0x58;\n                  goto LAB_00055c20;\n                }\nLAB_00055548:\n                if ((re_dfa_t *)aVar4.sbcset == (re_dfa_t *)0x0) goto LAB_000557e4;\n                if (aVar4.sbcset < (re_dfa_t *)0x2) {\n                  pmatch->rm_so = 0;\n                  pmatch->rm_eo = mctx.match_last;\n                  goto LAB_000555ac;\n                }\n                prVar19 = pmatch + 1;\n                do {\n                  prVar19->rm_eo = -1;\n                  prVar19->rm_so = -1;\n                  prVar19 = prVar19 + 1;\n                } while (prVar19 != pmatch + aVar4.idx);\n                pmatch->rm_so = 0;\n                pmatch->rm_eo = mctx.match_last;\n                if ((preg->field_0x1c & 8) != 0) {\nLAB_000555ac:\n                  prVar19 = pmatch;\n                  do {\n                    aVar45.sbcset = (re_bitset_ptr_t)prVar19->rm_so;\n                    if ((re_dfa_t *)aVar45.sbcset != (re_dfa_t *)0xffffffff) {\n                      if (mctx.input.offsets_needed != '\0') {\n                        rVar47 = mctx.input.valid_raw_len;\n                        if (aVar45.sbcset != (re_bitset_ptr_t)mctx.input.valid_len) {\n                          rVar47 = mctx.input.offsets[aVar45.idx];\n                        }\n                        prVar19->rm_so = rVar47;\n                        rVar47 = mctx.input.valid_raw_len;\n                        if (mctx.input.valid_len != prVar19->rm_eo) {\n                          rVar47 = mctx.input.offsets[prVar19->rm_eo];\n                        }\n                        prVar19->rm_eo = rVar47;\n                      }\n                      prVar19->rm_so = prVar19->rm_so + match_first;\n                      aVar45.sbcset = (re_bitset_ptr_t)(prVar19->rm_eo + match_first);\n                      prVar19->rm_eo = (regoff_t)aVar45;\n                    }\n                    prVar19 = prVar19 + 1;\n                  } while (prVar19 != pmatch + aVar4.idx);\n                  if (0 < local_118) {\n                    prVar19 = pmatch + aVar4.idx;\n                    do {\n                      prVar19->rm_so = -1;\n                      prVar19->rm_eo = -1;\n                      prVar19 = prVar19 + 1;\n                    } while (prVar19 != pmatch + nmatch);\n                  }\n                  aVar49.idx = match_first;\n                  prVar51 = (re_dfa_t *)pmatch;\n                  local_150.sbcset = aVar7.sbcset;\n                  if (prVar59->subexp_map != (Idx *)0x0) {\n                    aVar49.sbcset = (re_bitset_ptr_t)(aVar4.idx + -1);\n                    prVar52 = (re_dfa_t *)0x0;\n                    prVar19 = pmatch;\n                    while( true ) {\n                      aVar45.idx = (int)prVar52 * 4;\n                      if ((re_dfa_t *)aVar49.sbcset == prVar52) break;\n                      if ((re_dfa_t *)prVar59->subexp_map[(int)prVar52] != prVar52) {\n                        prVar19[1].rm_so =\n                             pmatch[(int)((int)&((re_string_t *)\n                                                &((re_dfa_t *)prVar59->subexp_map[(int)prVar52])->\n                                                 nodes)->raw_mbs + 1)].rm_so;\n                        prVar19[1].rm_eo = pmatch[prVar59->subexp_map[(int)prVar52] + 1].rm_eo;\n                      }\n                      prVar52 = (re_dfa_t *)((int)&((re_string_t *)&prVar52->nodes)->raw_mbs + 1);\n                      prVar19 = prVar19 + 1;\n                    }\n                  }\n                  goto LAB_000557e4;\n                }\n                if ((char)prVar59->field_0x58 < '\0') {\n                  bVar36 = 0 < prVar59->nbackref;\n                }\n                else {\n                  bVar36 = false;\n                }\n                aVar45.sbcset = (re_bitset_ptr_t)&mctx;\n                aVar49.sbcset = aVar4.sbcset;\n                prVar51 = (re_dfa_t *)pmatch;\n                local_150.idx =\n                     set_regs(preg,(re_match_context_t *)aVar45.mbcset,aVar4.ctx_type,pmatch,bVar36)\n                ;\n                if ((re_dfa_t *)local_150.sbcset == (re_dfa_t *)0x0) goto LAB_000555ac;\n              }\n            }\n          }\n          else if ((uint)mctx.input.bufs_len < 0x3fffffff) {\n            mctx.state_log =\n                 (re_dfastate_t **)(*(code *)PTR_malloc_00079b54)((mctx.input.bufs_len + 1) * 4);\n            if (mctx.state_log != (re_dfastate_t **)0x0) goto LAB_00055a40;\n            local_150.idx = 0xc;\n            stop = aVar56.idx;\n          }\n          else {\n            local_150.idx = 0xc;\n            stop = aVar56.idx;\n          }\n        }" { (labeled_statement "LAB_000559f0:\n          mctx.max_mb_elem_len = 1;" statement_identifier : (expression_statement "mctx.max_mb_elem_len = 1;" (assignment_expression "mctx.max_mb_elem_len = 1" (field_expression "mctx.max_mb_elem_len" identifier . field_identifier) = number_literal) ;)) (expression_statement "mctx.abkref_ents = aVar56.idx;" (assignment_expression "mctx.abkref_ents = aVar56.idx" (field_expression "mctx.abkref_ents" identifier . field_identifier) = (field_expression "aVar56.idx" identifier . field_identifier)) ;) (expression_statement "mctx.asub_tops = aVar56.idx;" (assignment_expression "mctx.asub_tops = aVar56.idx" (field_expression "mctx.asub_tops" identifier . field_identifier) = (field_expression "aVar56.idx" identifier . field_identifier)) ;) (if_statement "if ((aVar4.sbcset < (re_dfa_t *)0x2) && ((prVar59->field_0x58 & 0x40) == 0)) {\n            mctx.state_log = (re_dfastate_t **)0x0;\nLAB_00055a40:\n            mctx.input.tip_context = 6;\n            if ((eflags & 1U) != 0) {\n              mctx.input.tip_context = 4;\n            }\n            aVar39.idx = 1;\n            aVar40.idx = start;\n            if (last_start < start) {\n              aVar39.idx = -1;\n              aVar40.idx = last_start;\n            }\n            aVar41.idx = last_start;\n            if (last_start <= start) {\n              aVar41.idx = start;\n            }\n            iVar55 = prVar59->mb_cur_max;\n            rVar20 = 8;\n            if ((re_dfa_t *)local_148.sbcset != (re_dfa_t *)0x0) {\n              if (iVar55 == 1) {\n                paVar43 = (anon_union_4_5_a39f51ca_for_opr *)0x4;\n              }\n              else {\n                paVar43 = paVar2;\n                if ((-1 < (int)(preg->syntax << 9)) && (puVar50 == (uchar *)0x0)) {\n                  paVar43 = (anon_union_4_5_a39f51ca_for_opr *)0x4;\n                }\n              }\n              aVar45.sbcset = (re_bitset_ptr_t)0x0;\n              if (start <= last_start) {\n                aVar45.idx = 2;\n              }\n              rVar20 = (uint)(puVar50 != (uchar *)0x0) | (uint)paVar43 | aVar45.ctx_type;\n            }\n            match_first = start;\n            if (start < aVar40.idx) {\n              local_150.idx = 1;\n              stop = aVar56.idx;\n            }\n            else {\n              aVar46.idx._0_3_ = 0;\n              aVar46.idx._3_1_ = last_start < start;\n              if (aVar41.idx < start) {\n                local_150.idx = 1;\n                stop = aVar56.idx;\n              }\n              else {\n                piVar38 = &match_first;\n                if ((re_dfa_t *)aVar46.sbcset != (re_dfa_t *)0x0) {\n                  piVar38 = (int *)0x0;\n                }\n                pcVar5 = (code *)(PTR_DAT_000799a4 + -0x2b7c);\n                piVar6 = (int *)(PTR_s_nt0_000795b8 + (rVar20 - 4) * 4 + 0x6e38);\nLAB_00055b44:\n                if (rVar20 - 4 < 5) {\n                    /* WARNING: Could not emulate address calculation at 0x00054920 */\n                    /* WARNING: Treating indirect jump as call */\n                  rVar21 = (*(code *)(&_gp + *piVar6))();\n                  return rVar21;\n                }\n                last_start = (Idx)&mctx;\n                prVar52 = prVar51;\n                while( true ) {\n                  aVar46.idx = match_first;\n                  uVar8 = match_first - mctx.input.raw_mbs_idx;\n                  aVar49 = (anon_union_4_5_a39f51ca_for_opr)eflags;\n                  paVar18 = paVar2;\n                  stop = local_148.idx;\n                  unaff_s4 = (re_dfa_t *)length;\n                  unaff_s5 = aVar39;\n                  unaff_s7 = aVar41;\n                  if ((uint)mctx.input.valid_raw_len <= uVar8) {\n                    aVar45.idx = match_first;\n                    local_150.sbcset = (re_bitset_ptr_t)(*pcVar5)(last_start);\n                    prVar51 = prVar52;\n                    if ((re_dfa_t *)local_150.sbcset != (re_dfa_t *)0x0) goto LAB_000557e4;\n                    uVar8 = (int)aVar46.sbcset - mctx.input.raw_mbs_idx;\n                  }\n                  if (aVar46.idx < length) {\n                    uVar8 = (uint)mctx.input.mbs[uVar8];\n                  }\n                  else {\n                    uVar8 = 0;\n                  }\n                  aVar56.sbcset = aVar46.sbcset + aVar39.sbcset;\n                  aVar46.sbcset = aVar56.sbcset;\n                  if (*(char *)((int)local_148.sbcset + uVar8) != '\0') break;\n                  prVar51 = prVar52;\n                  match_first = aVar56.idx;\n                  if (aVar56.idx < aVar40.idx) {\n                    local_150.idx = 1;\n                    goto LAB_000557e4;\n                  }\n                  aVar46.idx._0_3_ = 0;\n                  aVar46.idx._3_1_ = aVar41.idx < aVar56.idx;\n                  if ((re_dfa_t *)aVar46.sbcset != (re_dfa_t *)0x0) {\n                    local_150.idx = 1;\n                    goto LAB_000557e4;\n                  }\n                }\n                while( true ) {\n                  aVar45.idx = match_first;\n                  aVar49 = (anon_union_4_5_a39f51ca_for_opr)eflags;\n                  aVar7.sbcset = (re_bitset_ptr_t)(*pcVar5)(&mctx);\n                  aVar15 = (anon_union_4_5_a39f51ca_for_opr)mctx.dfa;\n                  aVar56.idx = mctx.input.cur_idx;\n                  prVar51 = prVar52;\n                  local_150.sbcset = aVar7.sbcset;\n                  if ((re_dfa_t *)aVar7.sbcset != (re_dfa_t *)0x0) goto LAB_000557e4;\n                  if (((iVar55 != 1) && (mctx.input.valid_len != 0)) &&\n                     (*mctx.input.wcs == 0xffffffff)) goto LAB_00055b1c;\n                  mctx.max_mb_elem_len = 0;\n                  mctx.nbkref_ents = 0;\n                  mctx.state_log_top = 0;\n                  local_138.idx = mctx.input.cur_idx;\n                  err = _REG_NOERROR;\n                  unaff_s7 = (anon_union_4_5_a39f51ca_for_opr)(mctx.dfa)->init_state;\n                  aVar49 = (anon_union_4_5_a39f51ca_for_opr)mctx.eflags;\n                  aVar46 = aVar15;\n                  if ((*(byte *)(unaff_s7.idx + 0x34) & 1) == 0) break;\n                  aVar45.sbcset = (re_bitset_ptr_t)(mctx.input.cur_idx + -1);\n                  prVar51 = (re_dfa_t *)re_string_context_at(&mctx.input,aVar45.idx,mctx.eflags);\n                  if (((uint)prVar51 & 1) == 0) {\n                    if (prVar51 == (re_dfa_t *)0x0) break;\n                    if (((uint)prVar51 & 6) == 6) {\n                      unaff_s7 = (anon_union_4_5_a39f51ca_for_opr)\n                                 ((re_dfa_t *)aVar15.idx)->init_state_begbuf;\n                      goto LAB_00054d1c;\n                    }\n                    if (((uint)prVar51 & 2) != 0) {\n                      unaff_s7 = (anon_union_4_5_a39f51ca_for_opr)\n                                 ((re_dfa_t *)aVar15.idx)->init_state_nl;\n                      goto LAB_00054d1c;\n                    }\n                    prVar52 = prVar51;\n                    if (((uint)prVar51 & 4) == 0) break;\n                    aVar49 = (anon_union_4_5_a39f51ca_for_opr)\n                             ((anon_union_4_5_a39f51ca_for_opr *)(unaff_s7.idx + 0x28))->mbcset;\n                    aVar45 = aVar15;\n                    unaff_s7.sbcset =\n                         &re_acquire_state_context\n                                    (&err,aVar15.sbcset,(re_node_set *)aVar49.mbcset,(uint)prVar51)\n                          ->hash;\n                    prVar52 = prVar51;\n                    if ((re_dfa_t *)unaff_s7.sbcset != (re_dfa_t *)0x0) break;\n                    if (err == _REG_ESPACE) goto LAB_00055914;\n                  }\n                  else {\n                    unaff_s7 = (anon_union_4_5_a39f51ca_for_opr)\n                               ((re_dfa_t *)aVar15.idx)->init_state_word;\nLAB_00054d1c:\n                    prVar52 = (re_dfa_t *)PTR_s_nt0_000795b8;\n                    if ((re_dfa_t *)unaff_s7.sbcset != (re_dfa_t *)0x0) break;\n                  }\n                  prVar52 = (re_dfa_t *)(PTR_s_nt0_000795b8 + 0x6eb0);\n                  aVar45.sbcset = (re_bitset_ptr_t)(PTR_s_nt0_000795b8 + 0x712c);\n                  match_first = (*(code *)PTR___assert_fail_000799f8)\n                                          (PTR_s_nt0_000795b8 + 0x71a0,aVar45.sbcset,0x435);\n                  if ((re_bitset_ptr_t)match_first == aVar41.sbcset) {\n                    if (match_first < length) {\n                      uVar8 = (uint)(byte)string[match_first];\n                    }\n                    else {\n                      uVar8 = 0;\n                    }\n                    if (puVar50 != (uchar *)0x0) {\n                      uVar8 = (uint)puVar50[uVar8];\n                    }\n                    if (*(char *)((int)local_148.sbcset + uVar8) == '\0') {\n                      local_150.idx = 1;\n                      aVar49 = (anon_union_4_5_a39f51ca_for_opr)eflags;\n                      prVar51 = prVar52;\n                      goto LAB_000557e4;\n                    }\n                  }\n                }\n                prVar51 = prVar52;\n                bVar36 = piVar38 != (int *)0x0;\n                if ((mctx.state_log == (re_dfastate_t **)0x0) ||\n                   (((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + aVar56.idx))->mbcset =\n                         (re_charset_t *)unaff_s7, ((re_dfa_t *)aVar15.idx)->nbackref == 0)) {\nLAB_00054d50:\n                  if ((int)*(bin_tree_t **)(unaff_s7.idx + 0x34) << 4 < 0) {\n                    if (((*(byte *)(unaff_s7.idx + 0x34) & 1) == 0) ||\n                       (aVar45 = unaff_s7, aVar49 = aVar56,\n                       IVar17 = check_halt_state_context(&mctx,unaff_s7.idx,aVar56.idx), IVar17 != 0\n                       )) {\n                      local_c4 = aVar56;\n                      if (paVar54 == (anon_union_4_5_a39f51ca_for_opr *)0x0) goto LAB_00055dbc;\n                      prVar52 = (re_dfa_t *)0x1;\n                    }\n                    else {\n                      aVar56.idx = -1;\n                      prVar52 = (re_dfa_t *)0x0;\n                    }\n                  }\n                  else {\n                    aVar56.idx = -1;\n                    prVar52 = (re_dfa_t *)0x0;\n                  }\n                  pcVar9 = (code *)(PTR_DAT_000799a4 + -0x7144);\n                  pcVar10 = (code *)(PTR_DAT_000799a4 + -0x1980);\n                  pcVar11 = (code *)(PTR_DAT_000799a4 + -0x2f9c);\n                  local_c4 = aVar56;\n                  local_144 = piVar38;\n                  while( true ) {\n                    uVar63 = CONCAT44(mctx.input.valid_len,mctx.input.len);\n                    unaff_s5.sbcset = (re_bitset_ptr_t)(mctx.input.cur_idx + 1);\n                    aVar45.idx = mctx.input.cur_idx;\n                    if (mctx.input.stop <= mctx.input.cur_idx) break;\n                    if ((mctx.input.bufs_len <= unaff_s5.idx) &&\n                       (mctx.input.bufs_len < mctx.input.len)) goto LAB_00054e94;\n                    if (mctx.input.valid_len <= unaff_s5.idx) {\n                      while ((int)((ulonglong)uVar63 >> 0x20) < (int)uVar63) {\nLAB_00054e94:\n                        aVar45.sbcset =\n                             (re_bitset_ptr_t)\n                             ((int)&((re_string_t *)&(aVar45.mbcset)->mbchars)->raw_mbs + 2);\n                        err = (*pcVar9)(&mctx);\n                        if (err == _REG_NOERROR) break;\n                        aVar15 = aVar46;\n                        if (err == _REG_ESPACE) goto LAB_00055914;\n                        prVar51 = (re_dfa_t *)(PTR_s_nt0_000795b8 + 0x6eb0);\n                        aVar49.idx = 0x46c;\n                        aVar45.sbcset = (re_bitset_ptr_t)(PTR_s_nt0_000795b8 + 0x712c);\n                        uVar63 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0);\n                        prVar52 = prVar59;\n                      }\n                    }\n                    prVar3 = mctx.dfa;\n                    if ((int)*(bin_tree_t **)(unaff_s7.idx + 0x34) << 5 < 0) {\n                      paVar18 = (anon_union_4_5_a39f51ca_for_opr *)prVar3;\n                      if (0 < (int)(unaff_s7.mbcset)->range_ends) {\n                        pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6fdc);\n                        pcVar13 = (code *)(PTR_DAT_000799a4 + -0x6ef0);\n                        stop = 0;\n                        do {\n                          last_start = ((anon_union_4_5_a39f51ca_for_opr *)\n                                       ((unaff_s7.mbcset)->char_classes + stop))->idx;\n                          prVar53 = prVar3->nodes;\n                          uVar8 = *(uint *)&prVar53[last_start].field_0x4;\n                          if ((uVar8 & 0x800) != 0) {\n                            if ((uVar8 & 0xffc000) != 0) {\n                              aVar45.idx = mctx.input.cur_idx;\n                              uVar60 = (*pcVar13)(&mctx,mctx.input.cur_idx,mctx.eflags);\n                              uVar8 = (uint)(*(int *)&prVar53[last_start].field_0x4 << 8) >> 0x16;\n                              if ((uVar8 & 4) == 0) {\n                                uVar26 = uVar60 & 1;\n                                if ((uVar8 & 8) != 0) goto joined_r0x00054f40;\n                              }\n                              else {\n                                uVar26 = uVar8 & 8;\n                                if ((uVar60 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                                if (uVar26 != 0) goto LAB_000550a4;\n                              }\n                              if ((((uVar8 & 0x20) != 0) && ((uVar60 & 2) == 0)) ||\n                                 (((uVar8 & 0x80) != 0 &&\n                                  (prVar51 = (re_dfa_t *)mctx.input.cur_idx, (uVar60 & 8) == 0))))\n                              goto LAB_000550a4;\n                            }\n                            aVar49.sbcset = (re_bitset_ptr_t)&mctx;\n                            aVar45.idx = last_start;\n                            prVar51 = (re_dfa_t *)mctx.input.cur_idx;\n                            iVar61 = (*pcVar11)(prVar3);\n                            if (iVar61 != 0) {\n                              aVar46.sbcset = (re_bitset_ptr_t)(iVar61 + mctx.input.cur_idx);\n                              if (iVar61 <= mctx.max_mb_elem_len) {\n                                iVar61 = mctx.max_mb_elem_len;\n                              }\n                              aVar45.sbcset = aVar46.sbcset;\n                              mctx.max_mb_elem_len = iVar61;\n                              err_1 = (*pcVar12)(&mctx);\n                              rVar21 = err_1;\n                              if (err_1 != _REG_NOERROR) goto LAB_00055e44;\n                              aVar49.sbcset =\n                                   (re_bitset_ptr_t)(prVar3->eclosures + prVar3->nexts[last_start]);\n                              unaff_s4 = (re_dfa_t *)(aVar46.idx * 4);\n                              last_start = (Idx)(mctx.state_log + aVar46.idx);\n                              if (*(bitset_word_t *)last_start == 0) {\n                                dest_nodes.alloc = *aVar49.sbcset;\n                                dest_nodes.nelem =\n                                     ((re_node_set *)&(aVar49.mbcset)->range_starts)->alloc;\n                                dest_nodes.elems = (aVar49.mbcset)->range_ends;\n                                prVar51 = (re_dfa_t *)\n                                          (*pcVar13)(&mctx,(undefined1 *)(aVar46.idx + -1),\n                                                     mctx.eflags);\n                                aVar49.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                                aVar45 = (anon_union_4_5_a39f51ca_for_opr)prVar3;\n                                prVar35 = re_acquire_state_context\n                                                    (&err_1,prVar3,(re_node_set *)aVar49.mbcset,\n                                                     (uint)prVar51);\n                                ((re_string_t *)&((re_charset_t *)last_start)->mbchars)->raw_mbs =\n                                     (uchar *)prVar35;\n                              }\n                              else {\n                                aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                                         ((anon_union_4_5_a39f51ca_for_opr *)\n                                         (*(bitset_word_t *)last_start + 0x28))->mbcset;\n                                err_1 = re_node_set_init_union\n                                                  (&dest_nodes,(re_node_set *)aVar45.mbcset,\n                                                   (re_node_set *)aVar49.mbcset);\n                                rVar21 = err_1;\n                                if (err_1 != _REG_NOERROR) goto LAB_00055e44;\n                                prVar51 = (re_dfa_t *)\n                                          (*pcVar13)(&mctx,(undefined1 *)(aVar46.idx + -1),\n                                                     mctx.eflags);\n                                pprVar14 = mctx.state_log + aVar46.idx;\n                                aVar49.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                                aVar45 = (anon_union_4_5_a39f51ca_for_opr)prVar3;\n                                prVar35 = re_acquire_state_context\n                                                    (&err_1,prVar3,(re_node_set *)aVar49.mbcset,\n                                                     (uint)prVar51);\n                                *pprVar14 = prVar35;\n                                (*(code *)PTR_free_00079c24)(dest_nodes.elems);\n                              }\n                              unaff_s4 = (re_dfa_t *)(mctx.state_log + aVar46.idx);\n                              if ((unaff_s4->nodes == (re_token_t *)0x0) &&\n                                 (rVar21 = err_1, err_1 != _REG_NOERROR)) goto LAB_00055e44;\n                            }\n                          }\nLAB_000550a4:\n                          stop = (int)&((re_string_t *)&((re_charset_t *)stop)->mbchars)->raw_mbs +\n                                 1;\n                        } while (stop < (int)(unaff_s7.mbcset)->range_ends);\n                      }\n                      err = _REG_NOERROR;\n                    }\n                    uVar8 = (uint)mctx.input.mbs[mctx.input.cur_idx];\n                    mctx.input.cur_idx = mctx.input.cur_idx + 1;\n                    do {\n                      if (*(re_dfastate_t **)(unaff_s7.idx + 0x2c) != (re_dfastate_t *)0x0) {\n                        aVar49 = (anon_union_4_5_a39f51ca_for_opr)\n                                 ((anon_union_4_5_a39f51ca_for_opr *)\n                                 (&(*(re_dfastate_t **)(unaff_s7.idx + 0x2c))->hash + uVar8))->\n                                 mbcset;\nLAB_000553a0:\n                        aVar15 = aVar49;\n                        if (mctx.state_log != (re_dfastate_t **)0x0) goto LAB_000553ac;\n                        goto LAB_000553cc;\n                      }\n                      paVar18 = *(anon_union_4_5_a39f51ca_for_opr **)(unaff_s7.idx + 0x30);\n                      if (paVar18 != (anon_union_4_5_a39f51ca_for_opr *)0x0) {\n                        aVar45.sbcset = (re_bitset_ptr_t)(mctx.input.cur_idx + -1);\n                        uVar60 = re_string_context_at(&mctx.input,aVar45.idx,mctx.eflags);\n                        if ((uVar60 & 1) == 0) {\n                          aVar49 = (anon_union_4_5_a39f51ca_for_opr)paVar18[uVar8].mbcset;\n                        }\n                        else {\n                          paVar18 = paVar18 + uVar8 + 0x100;\n                          aVar49 = (anon_union_4_5_a39f51ca_for_opr)paVar18->mbcset;\n                        }\n                        goto LAB_000553a0;\n                      }\n                      aVar45 = unaff_s7;\n                      aVar49 = (anon_union_4_5_a39f51ca_for_opr)mctx.eflags;\n                      iVar61 = (*pcVar10)(mctx.dfa);\n                    } while (iVar61 != 0);\n                    err = _REG_ESPACE;\n                    rVar21 = err;\nLAB_00055e44:\n                    err = rVar21;\n                    aVar46.sbcset = (re_bitset_ptr_t)0x0;\n                    if (mctx.state_log == (re_dfastate_t **)0x0) {\n                      aVar15.sbcset = aVar46.sbcset;\n                      if (err != _REG_NOERROR) goto LAB_00055914;\n                      break;\n                    }\n                    aVar49.sbcset = (re_bitset_ptr_t)0x0;\nLAB_000553ac:\n                    aVar45.sbcset = (re_bitset_ptr_t)&mctx;\n                    aVar15.sbcset =\n                         &merge_state_with_log\n                                    (&err,(re_match_context_t *)aVar45.mbcset,aVar49.sbcset)->hash;\nLAB_000553cc:\n                    aVar46 = aVar15;\n                    if ((re_dfa_t *)aVar15.sbcset == (re_dfa_t *)0x0) {\n                      if (err != _REG_NOERROR) goto LAB_00055914;\n                      if ((mctx.state_log == (re_dfastate_t **)0x0) ||\n                         ((prVar52 != (re_dfa_t *)0x0 &&\n                          (paVar54 == (anon_union_4_5_a39f51ca_for_opr *)0x0)))) break;\n                      stop = (Idx)&mctx;\n                      last_start = (Idx)&err;\n                      paVar18 = (anon_union_4_5_a39f51ca_for_opr *)(PTR_DAT_000799a4 + 0x3684);\n                      do {\n                        pprVar14 = mctx.state_log + mctx.input.cur_idx;\n                        IVar17 = mctx.input.cur_idx;\n                        do {\n                          IVar17 = IVar17 + 1;\n                          aVar45.idx = mctx.state_log_top;\n                          aVar46 = aVar15;\n                          if (mctx.state_log_top < IVar17) goto LAB_00055da8;\n                          mctx.input.cur_idx = mctx.input.cur_idx + 1;\n                          pprVar14 = pprVar14 + 1;\n                        } while (*pprVar14 == (re_dfastate_t *)0x0);\n                        aVar49.sbcset = (re_bitset_ptr_t)0x0;\n                        aVar45.sbcset = (re_bitset_ptr_t)stop;\n                        aVar46.sbcset = (re_bitset_ptr_t)(*(code *)paVar18)(last_start);\n                        if (err != _REG_NOERROR) {\n                          if ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0) goto LAB_00055da8;\n                          break;\n                        }\n                        aVar45.idx = mctx.state_log_top;\n                      } while ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0);\n                    }\n                    aVar16.ctx_type = unaff_s7.ctx_type ^ aVar46.ctx_type;\n                    aVar56 = unaff_s7;\n                    aVar15 = local_138;\n                    if ((bVar36) &&\n                       (aVar56.ctx_type = aVar16.ctx_type, aVar15.sbcset = unaff_s5.sbcset,\n                       (re_dfa_t *)aVar16.sbcset != (re_dfa_t *)0x0)) {\n                      bVar36 = false;\n                      aVar15 = local_138;\n                    }\n                    local_138 = aVar15;\n                    unaff_s7 = aVar46;\n                    if (((*(byte *)(aVar46.idx + 0x34) & 8) != 0) &&\n                       (((*(byte *)(aVar46.idx + 0x34) & 1) == 0 ||\n                        (aVar45 = aVar46, aVar49.idx = mctx.input.cur_idx,\n                        IVar17 = check_halt_state_context(&mctx,aVar46.idx,mctx.input.cur_idx),\n                        IVar17 != 0)))) {\n                      unaff_s7 = aVar56;\n                      local_c4.idx = mctx.input.cur_idx;\n                      if (paVar54 == (anon_union_4_5_a39f51ca_for_opr *)0x0) goto LAB_00055dbc;\n                      prVar52 = (re_dfa_t *)0x1;\n                      local_144 = (int *)0x0;\n                      unaff_s7 = aVar46;\n                    }\n                  }\nLAB_00055da8:\n                  if (local_144 != (int *)0x0) {\n                    *local_144 = *local_144 + (int)local_138.sbcset;\n                  }\n                }\n                else {\n                  aVar46.sbcset = (re_bitset_ptr_t)&(unaff_s7.mbcset)->range_starts;\n                  aVar49.sbcset = (re_bitset_ptr_t)0x0;\n                  aVar45 = aVar46;\n                  err = check_subexp_matching_top(&mctx,(re_node_set *)aVar46.mbcset,0);\n                  local_c4.idx = err;\n                  if ((re_dfa_t *)err == (re_dfa_t *)0x0) {\n                    if ((*(byte *)(unaff_s7.idx + 0x34) & 2) == 0) {\n                      aVar45 = aVar46;\n                      bVar36 = false;\n                    }\n                    else {\n                      aVar45 = aVar46;\n                      err = transit_state_bkref(&mctx,(re_node_set *)aVar46.mbcset);\n                      local_c4.idx = err;\n                      if ((re_dfa_t *)err != (re_dfa_t *)0x0) goto LAB_00055dbc;\n                      bVar36 = false;\n                    }\n                    goto LAB_00054d50;\n                  }\n                }\nLAB_00055dbc:\n                if ((re_dfa_t *)local_c4.sbcset == (re_dfa_t *)0xffffffff) {\nLAB_00055b04:\n                  match_ctx_clean(&mctx);\nLAB_00055b1c:\n                  match_first = aVar39.idx + match_first;\n                  if (aVar40.idx <= match_first) goto code_r0x00055b38;\n                  local_150.idx = 1;\n                  goto LAB_000557e4;\n                }\n                if ((re_dfa_t *)local_c4.sbcset == (re_dfa_t *)&SUB_fffffffe) {\n                  local_150.idx = 0xc;\n                  goto LAB_000557e4;\n                }\n                mctx.match_last = local_c4.idx;\n                if ((preg->field_0x1c & 8) == 0) {\n                  if (aVar4.sbcset < (re_dfa_t *)0x2) {\n                    if (prVar59->nbackref == 0) goto LAB_00055c08;\n                    aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                             ((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + local_c4.idx))->\n                             mbcset;\n                    aVar49 = local_c4;\n                    mctx.last_node =\n                         check_halt_state_context(&mctx,(re_dfastate_t *)aVar45.mbcset,local_c4.idx)\n                    ;\n                  }\n                  else {\n                    aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                             ((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + local_c4.idx))->\n                             mbcset;\n                    aVar49 = local_c4;\n                    mctx.last_node =\n                         check_halt_state_context(&mctx,(re_dfastate_t *)aVar45.mbcset,local_c4.idx)\n                    ;\n                  }\n                  if (aVar4.sbcset < (re_dfa_t *)0x2) {\nLAB_00055c6c:\n                    prVar52 = prVar51;\n                    unaff_s4 = mctx.dfa;\n                    if (prVar59->nbackref == 0) goto LAB_00055548;\n                  }\n                  else {\n                    cVar37 = prVar59->field_0x58;\nLAB_00055c20:\n                    prVar52 = prVar51;\n                    if (-1 < cVar37) goto LAB_00055c6c;\n                  }\n                  paVar18 = (anon_union_4_5_a39f51ca_for_opr *)mctx.last_node;\n                  prVar3 = mctx.dfa;\n                  unaff_s4 = prVar3;\n                  if ((uint)local_c4 < (re_dfa_t *)0x3fffffff) {\n                    aVar46.idx = (int)((int)&((re_string_t *)&(local_c4.mbcset)->mbchars)->raw_mbs +\n                                      1) * 4;\n                    unaff_s5.sbcset = (re_bitset_ptr_t)(*(code *)PTR_malloc_00079b54)(aVar46.sbcset)\n                    ;\n                    if ((re_dfa_t *)unaff_s5.sbcset == (re_dfa_t *)0x0) {\nLAB_00055b9c:\n                      (*(code *)PTR_free_00079c24)(unaff_s5.sbcset);\n                      local_150.idx = 0xc;\n                      prVar51 = prVar52;\n                    }\n                    else {\n                      aVar45.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                      if (prVar3->nbackref == 0) {\n                        dest_nodes.nelem = 0;\n                        dest_nodes.elems = &paVar18->idx;\n                        dest_nodes.alloc = (Idx)unaff_s5.sbcset;\n                        last_start = sift_states_backward(&mctx,(re_sift_context_t *)aVar45.mbcset);\n                        (*(code *)PTR_free_00079c24)(0);\n                        if ((re_dfa_t *)last_start == (re_dfa_t *)0x0) {\n                          aVar46.mbcset = (re_charset_t *)*unaff_s5.sbcset;\n                          if ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0) {\nLAB_00055b70:\n                            (*(code *)PTR_free_00079c24)(unaff_s5.sbcset);\n                            (*(code *)PTR_free_00079c24)(aVar46.sbcset);\n                            prVar51 = prVar52;\n                            goto LAB_00055b04;\n                          }\nLAB_00055528:\n                          (*(code *)PTR_free_00079c24)(mctx.state_log);\n                          prVar51 = prVar52;\n                          unaff_s4 = prVar3;\n                          mctx.match_last = local_c4.idx;\n                          mctx.last_node = (Idx)paVar18;\n                          mctx.state_log = (re_dfastate_t **)unaff_s5.sbcset;\n                          goto LAB_00055548;\n                        }\nLAB_00055acc:\n                        aVar46.sbcset = (re_bitset_ptr_t)0x0;\n                        prVar51 = prVar52;\n                        unaff_s4 = prVar3;\n                      }\n                      else {\n                        aVar46.sbcset =\n                             (re_bitset_ptr_t)(*(code *)PTR_malloc_00079b54)(aVar46.sbcset);\n                        if ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0) goto LAB_00055b9c;\n                        unaff_s7.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                        pcVar9 = (code *)(PTR_DAT_000799a4 + 0x421c);\n                        pcVar10 = (code *)(PTR_DAT_000799a4 + -0x6bc0);\n                        prVar51 = prVar52;\n                        while( true ) {\n                          prVar52 = (re_dfa_t *)(local_c4.idx + 1);\n                          stop = (int)prVar52 * 4;\n                          aVar49.idx = stop;\n                          (*(code *)PTR_memset_00079b00)(aVar46.sbcset,0);\n                          aVar45.sbcset = unaff_s7.sbcset;\n                          dest_nodes.alloc = (Idx)unaff_s5.sbcset;\n                          dest_nodes.nelem = (Idx)aVar46.sbcset;\n                          dest_nodes.elems = (Idx *)paVar18;\n                          last_start = (*pcVar9)(&mctx);\n                          (*(code *)PTR_free_00079c24)(0);\n                          unaff_s4 = prVar52;\n                          if ((re_dfa_t *)last_start != (re_dfa_t *)0x0) break;\n                          if ((*unaff_s5.sbcset != 0) || (stop = stop + -4, *aVar46.sbcset != 0)) {\n                            aVar45.sbcset = unaff_s5.sbcset;\n                            aVar49.sbcset = aVar46.sbcset;\n                            last_start = merge_state_array(prVar3,(re_dfastate_t **)unaff_s5.sbcset,\n                                                           (re_dfastate_t **)aVar46.sbcset,\n                                                           (Idx)prVar52);\n                            (*(code *)PTR_free_00079c24)(aVar46.sbcset);\n                            if ((re_dfa_t *)last_start != (re_dfa_t *)0x0) goto LAB_00055acc;\n                            goto LAB_00055528;\n                          }\n                          stop = (Idx)(mctx.state_log + (int)&prVar52[-1].lock.__align + 0x17);\n                          do {\n                            while( true ) {\n                              local_c4.sbcset = (re_bitset_ptr_t)(local_c4.idx + -1);\n                              if (local_c4.idx < 0) goto LAB_00055b70;\n                              aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                                       ((anon_union_4_5_a39f51ca_for_opr *)(stop + -4))->idx;\n                              if ((re_dfa_t *)aVar45.sbcset != (re_dfa_t *)0x0) break;\n                              stop = stop + -4;\n                            }\n                            stop = stop + -4;\n                          } while ((*(byte *)(aVar45.idx + 0x34) & 8) == 0);\n                          paVar18 = (anon_union_4_5_a39f51ca_for_opr *)\n                                    (*pcVar10)(&mctx,aVar45.sbcset,local_c4.sbcset);\n                          prVar51 = prVar52;\n                        }\n                      }\n                      (*(code *)PTR_free_00079c24)(unaff_s5.sbcset);\n                      (*(code *)PTR_free_00079c24)(aVar46.sbcset);\n                      local_150.idx = last_start;\n                      if ((re_dfa_t *)last_start == (re_dfa_t *)0x1) goto LAB_00055b04;\n                    }\n                  }\n                  else {\n                    local_150.idx = 0xc;\n                    prVar51 = prVar52;\n                  }\n                  goto LAB_000557e4;\n                }\n                if (prVar59->nbackref != 0) {\n                  aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                           ((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + local_c4.idx))->\n                           mbcset;\n                  aVar49 = local_c4;\n                  mctx.last_node =\n                       check_halt_state_context(&mctx,(re_dfastate_t *)aVar45.mbcset,local_c4.idx);\n                  goto LAB_00055c6c;\n                }\nLAB_00055c08:\n                if (((preg->field_0x1c & 8) == 0) && ((re_dfa_t *)0x1 < aVar4.sbcset)) {\n                  cVar37 = prVar59->field_0x58;\n                  goto LAB_00055c20;\n                }\nLAB_00055548:\n                if ((re_dfa_t *)aVar4.sbcset == (re_dfa_t *)0x0) goto LAB_000557e4;\n                if (aVar4.sbcset < (re_dfa_t *)0x2) {\n                  pmatch->rm_so = 0;\n                  pmatch->rm_eo = mctx.match_last;\n                  goto LAB_000555ac;\n                }\n                prVar19 = pmatch + 1;\n                do {\n                  prVar19->rm_eo = -1;\n                  prVar19->rm_so = -1;\n                  prVar19 = prVar19 + 1;\n                } while (prVar19 != pmatch + aVar4.idx);\n                pmatch->rm_so = 0;\n                pmatch->rm_eo = mctx.match_last;\n                if ((preg->field_0x1c & 8) != 0) {\nLAB_000555ac:\n                  prVar19 = pmatch;\n                  do {\n                    aVar45.sbcset = (re_bitset_ptr_t)prVar19->rm_so;\n                    if ((re_dfa_t *)aVar45.sbcset != (re_dfa_t *)0xffffffff) {\n                      if (mctx.input.offsets_needed != '\0') {\n                        rVar47 = mctx.input.valid_raw_len;\n                        if (aVar45.sbcset != (re_bitset_ptr_t)mctx.input.valid_len) {\n                          rVar47 = mctx.input.offsets[aVar45.idx];\n                        }\n                        prVar19->rm_so = rVar47;\n                        rVar47 = mctx.input.valid_raw_len;\n                        if (mctx.input.valid_len != prVar19->rm_eo) {\n                          rVar47 = mctx.input.offsets[prVar19->rm_eo];\n                        }\n                        prVar19->rm_eo = rVar47;\n                      }\n                      prVar19->rm_so = prVar19->rm_so + match_first;\n                      aVar45.sbcset = (re_bitset_ptr_t)(prVar19->rm_eo + match_first);\n                      prVar19->rm_eo = (regoff_t)aVar45;\n                    }\n                    prVar19 = prVar19 + 1;\n                  } while (prVar19 != pmatch + aVar4.idx);\n                  if (0 < local_118) {\n                    prVar19 = pmatch + aVar4.idx;\n                    do {\n                      prVar19->rm_so = -1;\n                      prVar19->rm_eo = -1;\n                      prVar19 = prVar19 + 1;\n                    } while (prVar19 != pmatch + nmatch);\n                  }\n                  aVar49.idx = match_first;\n                  prVar51 = (re_dfa_t *)pmatch;\n                  local_150.sbcset = aVar7.sbcset;\n                  if (prVar59->subexp_map != (Idx *)0x0) {\n                    aVar49.sbcset = (re_bitset_ptr_t)(aVar4.idx + -1);\n                    prVar52 = (re_dfa_t *)0x0;\n                    prVar19 = pmatch;\n                    while( true ) {\n                      aVar45.idx = (int)prVar52 * 4;\n                      if ((re_dfa_t *)aVar49.sbcset == prVar52) break;\n                      if ((re_dfa_t *)prVar59->subexp_map[(int)prVar52] != prVar52) {\n                        prVar19[1].rm_so =\n                             pmatch[(int)((int)&((re_string_t *)\n                                                &((re_dfa_t *)prVar59->subexp_map[(int)prVar52])->\n                                                 nodes)->raw_mbs + 1)].rm_so;\n                        prVar19[1].rm_eo = pmatch[prVar59->subexp_map[(int)prVar52] + 1].rm_eo;\n                      }\n                      prVar52 = (re_dfa_t *)((int)&((re_string_t *)&prVar52->nodes)->raw_mbs + 1);\n                      prVar19 = prVar19 + 1;\n                    }\n                  }\n                  goto LAB_000557e4;\n                }\n                if ((char)prVar59->field_0x58 < '\0') {\n                  bVar36 = 0 < prVar59->nbackref;\n                }\n                else {\n                  bVar36 = false;\n                }\n                aVar45.sbcset = (re_bitset_ptr_t)&mctx;\n                aVar49.sbcset = aVar4.sbcset;\n                prVar51 = (re_dfa_t *)pmatch;\n                local_150.idx =\n                     set_regs(preg,(re_match_context_t *)aVar45.mbcset,aVar4.ctx_type,pmatch,bVar36)\n                ;\n                if ((re_dfa_t *)local_150.sbcset == (re_dfa_t *)0x0) goto LAB_000555ac;\n              }\n            }\n          }\n          else if ((uint)mctx.input.bufs_len < 0x3fffffff) {\n            mctx.state_log =\n                 (re_dfastate_t **)(*(code *)PTR_malloc_00079b54)((mctx.input.bufs_len + 1) * 4);\n            if (mctx.state_log != (re_dfastate_t **)0x0) goto LAB_00055a40;\n            local_150.idx = 0xc;\n            stop = aVar56.idx;\n          }\n          else {\n            local_150.idx = 0xc;\n            stop = aVar56.idx;\n          }" if (parenthesized_expression "((aVar4.sbcset < (re_dfa_t *)0x2) && ((prVar59->field_0x58 & 0x40) == 0))" ( (binary_expression "(aVar4.sbcset < (re_dfa_t *)0x2) && ((prVar59->field_0x58 & 0x40) == 0)" (parenthesized_expression "(aVar4.sbcset < (re_dfa_t *)0x2)" ( (binary_expression "aVar4.sbcset < (re_dfa_t *)0x2" (field_expression "aVar4.sbcset" identifier . field_identifier) < (cast_expression "(re_dfa_t *)0x2" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "((prVar59->field_0x58 & 0x40) == 0)" ( (binary_expression "(prVar59->field_0x58 & 0x40) == 0" (parenthesized_expression "(prVar59->field_0x58 & 0x40)" ( (binary_expression "prVar59->field_0x58 & 0x40" (field_expression "prVar59->field_0x58" identifier -> field_identifier) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n            mctx.state_log = (re_dfastate_t **)0x0;\nLAB_00055a40:\n            mctx.input.tip_context = 6;\n            if ((eflags & 1U) != 0) {\n              mctx.input.tip_context = 4;\n            }\n            aVar39.idx = 1;\n            aVar40.idx = start;\n            if (last_start < start) {\n              aVar39.idx = -1;\n              aVar40.idx = last_start;\n            }\n            aVar41.idx = last_start;\n            if (last_start <= start) {\n              aVar41.idx = start;\n            }\n            iVar55 = prVar59->mb_cur_max;\n            rVar20 = 8;\n            if ((re_dfa_t *)local_148.sbcset != (re_dfa_t *)0x0) {\n              if (iVar55 == 1) {\n                paVar43 = (anon_union_4_5_a39f51ca_for_opr *)0x4;\n              }\n              else {\n                paVar43 = paVar2;\n                if ((-1 < (int)(preg->syntax << 9)) && (puVar50 == (uchar *)0x0)) {\n                  paVar43 = (anon_union_4_5_a39f51ca_for_opr *)0x4;\n                }\n              }\n              aVar45.sbcset = (re_bitset_ptr_t)0x0;\n              if (start <= last_start) {\n                aVar45.idx = 2;\n              }\n              rVar20 = (uint)(puVar50 != (uchar *)0x0) | (uint)paVar43 | aVar45.ctx_type;\n            }\n            match_first = start;\n            if (start < aVar40.idx) {\n              local_150.idx = 1;\n              stop = aVar56.idx;\n            }\n            else {\n              aVar46.idx._0_3_ = 0;\n              aVar46.idx._3_1_ = last_start < start;\n              if (aVar41.idx < start) {\n                local_150.idx = 1;\n                stop = aVar56.idx;\n              }\n              else {\n                piVar38 = &match_first;\n                if ((re_dfa_t *)aVar46.sbcset != (re_dfa_t *)0x0) {\n                  piVar38 = (int *)0x0;\n                }\n                pcVar5 = (code *)(PTR_DAT_000799a4 + -0x2b7c);\n                piVar6 = (int *)(PTR_s_nt0_000795b8 + (rVar20 - 4) * 4 + 0x6e38);\nLAB_00055b44:\n                if (rVar20 - 4 < 5) {\n                    /* WARNING: Could not emulate address calculation at 0x00054920 */\n                    /* WARNING: Treating indirect jump as call */\n                  rVar21 = (*(code *)(&_gp + *piVar6))();\n                  return rVar21;\n                }\n                last_start = (Idx)&mctx;\n                prVar52 = prVar51;\n                while( true ) {\n                  aVar46.idx = match_first;\n                  uVar8 = match_first - mctx.input.raw_mbs_idx;\n                  aVar49 = (anon_union_4_5_a39f51ca_for_opr)eflags;\n                  paVar18 = paVar2;\n                  stop = local_148.idx;\n                  unaff_s4 = (re_dfa_t *)length;\n                  unaff_s5 = aVar39;\n                  unaff_s7 = aVar41;\n                  if ((uint)mctx.input.valid_raw_len <= uVar8) {\n                    aVar45.idx = match_first;\n                    local_150.sbcset = (re_bitset_ptr_t)(*pcVar5)(last_start);\n                    prVar51 = prVar52;\n                    if ((re_dfa_t *)local_150.sbcset != (re_dfa_t *)0x0) goto LAB_000557e4;\n                    uVar8 = (int)aVar46.sbcset - mctx.input.raw_mbs_idx;\n                  }\n                  if (aVar46.idx < length) {\n                    uVar8 = (uint)mctx.input.mbs[uVar8];\n                  }\n                  else {\n                    uVar8 = 0;\n                  }\n                  aVar56.sbcset = aVar46.sbcset + aVar39.sbcset;\n                  aVar46.sbcset = aVar56.sbcset;\n                  if (*(char *)((int)local_148.sbcset + uVar8) != '\0') break;\n                  prVar51 = prVar52;\n                  match_first = aVar56.idx;\n                  if (aVar56.idx < aVar40.idx) {\n                    local_150.idx = 1;\n                    goto LAB_000557e4;\n                  }\n                  aVar46.idx._0_3_ = 0;\n                  aVar46.idx._3_1_ = aVar41.idx < aVar56.idx;\n                  if ((re_dfa_t *)aVar46.sbcset != (re_dfa_t *)0x0) {\n                    local_150.idx = 1;\n                    goto LAB_000557e4;\n                  }\n                }\n                while( true ) {\n                  aVar45.idx = match_first;\n                  aVar49 = (anon_union_4_5_a39f51ca_for_opr)eflags;\n                  aVar7.sbcset = (re_bitset_ptr_t)(*pcVar5)(&mctx);\n                  aVar15 = (anon_union_4_5_a39f51ca_for_opr)mctx.dfa;\n                  aVar56.idx = mctx.input.cur_idx;\n                  prVar51 = prVar52;\n                  local_150.sbcset = aVar7.sbcset;\n                  if ((re_dfa_t *)aVar7.sbcset != (re_dfa_t *)0x0) goto LAB_000557e4;\n                  if (((iVar55 != 1) && (mctx.input.valid_len != 0)) &&\n                     (*mctx.input.wcs == 0xffffffff)) goto LAB_00055b1c;\n                  mctx.max_mb_elem_len = 0;\n                  mctx.nbkref_ents = 0;\n                  mctx.state_log_top = 0;\n                  local_138.idx = mctx.input.cur_idx;\n                  err = _REG_NOERROR;\n                  unaff_s7 = (anon_union_4_5_a39f51ca_for_opr)(mctx.dfa)->init_state;\n                  aVar49 = (anon_union_4_5_a39f51ca_for_opr)mctx.eflags;\n                  aVar46 = aVar15;\n                  if ((*(byte *)(unaff_s7.idx + 0x34) & 1) == 0) break;\n                  aVar45.sbcset = (re_bitset_ptr_t)(mctx.input.cur_idx + -1);\n                  prVar51 = (re_dfa_t *)re_string_context_at(&mctx.input,aVar45.idx,mctx.eflags);\n                  if (((uint)prVar51 & 1) == 0) {\n                    if (prVar51 == (re_dfa_t *)0x0) break;\n                    if (((uint)prVar51 & 6) == 6) {\n                      unaff_s7 = (anon_union_4_5_a39f51ca_for_opr)\n                                 ((re_dfa_t *)aVar15.idx)->init_state_begbuf;\n                      goto LAB_00054d1c;\n                    }\n                    if (((uint)prVar51 & 2) != 0) {\n                      unaff_s7 = (anon_union_4_5_a39f51ca_for_opr)\n                                 ((re_dfa_t *)aVar15.idx)->init_state_nl;\n                      goto LAB_00054d1c;\n                    }\n                    prVar52 = prVar51;\n                    if (((uint)prVar51 & 4) == 0) break;\n                    aVar49 = (anon_union_4_5_a39f51ca_for_opr)\n                             ((anon_union_4_5_a39f51ca_for_opr *)(unaff_s7.idx + 0x28))->mbcset;\n                    aVar45 = aVar15;\n                    unaff_s7.sbcset =\n                         &re_acquire_state_context\n                                    (&err,aVar15.sbcset,(re_node_set *)aVar49.mbcset,(uint)prVar51)\n                          ->hash;\n                    prVar52 = prVar51;\n                    if ((re_dfa_t *)unaff_s7.sbcset != (re_dfa_t *)0x0) break;\n                    if (err == _REG_ESPACE) goto LAB_00055914;\n                  }\n                  else {\n                    unaff_s7 = (anon_union_4_5_a39f51ca_for_opr)\n                               ((re_dfa_t *)aVar15.idx)->init_state_word;\nLAB_00054d1c:\n                    prVar52 = (re_dfa_t *)PTR_s_nt0_000795b8;\n                    if ((re_dfa_t *)unaff_s7.sbcset != (re_dfa_t *)0x0) break;\n                  }\n                  prVar52 = (re_dfa_t *)(PTR_s_nt0_000795b8 + 0x6eb0);\n                  aVar45.sbcset = (re_bitset_ptr_t)(PTR_s_nt0_000795b8 + 0x712c);\n                  match_first = (*(code *)PTR___assert_fail_000799f8)\n                                          (PTR_s_nt0_000795b8 + 0x71a0,aVar45.sbcset,0x435);\n                  if ((re_bitset_ptr_t)match_first == aVar41.sbcset) {\n                    if (match_first < length) {\n                      uVar8 = (uint)(byte)string[match_first];\n                    }\n                    else {\n                      uVar8 = 0;\n                    }\n                    if (puVar50 != (uchar *)0x0) {\n                      uVar8 = (uint)puVar50[uVar8];\n                    }\n                    if (*(char *)((int)local_148.sbcset + uVar8) == '\0') {\n                      local_150.idx = 1;\n                      aVar49 = (anon_union_4_5_a39f51ca_for_opr)eflags;\n                      prVar51 = prVar52;\n                      goto LAB_000557e4;\n                    }\n                  }\n                }\n                prVar51 = prVar52;\n                bVar36 = piVar38 != (int *)0x0;\n                if ((mctx.state_log == (re_dfastate_t **)0x0) ||\n                   (((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + aVar56.idx))->mbcset =\n                         (re_charset_t *)unaff_s7, ((re_dfa_t *)aVar15.idx)->nbackref == 0)) {\nLAB_00054d50:\n                  if ((int)*(bin_tree_t **)(unaff_s7.idx + 0x34) << 4 < 0) {\n                    if (((*(byte *)(unaff_s7.idx + 0x34) & 1) == 0) ||\n                       (aVar45 = unaff_s7, aVar49 = aVar56,\n                       IVar17 = check_halt_state_context(&mctx,unaff_s7.idx,aVar56.idx), IVar17 != 0\n                       )) {\n                      local_c4 = aVar56;\n                      if (paVar54 == (anon_union_4_5_a39f51ca_for_opr *)0x0) goto LAB_00055dbc;\n                      prVar52 = (re_dfa_t *)0x1;\n                    }\n                    else {\n                      aVar56.idx = -1;\n                      prVar52 = (re_dfa_t *)0x0;\n                    }\n                  }\n                  else {\n                    aVar56.idx = -1;\n                    prVar52 = (re_dfa_t *)0x0;\n                  }\n                  pcVar9 = (code *)(PTR_DAT_000799a4 + -0x7144);\n                  pcVar10 = (code *)(PTR_DAT_000799a4 + -0x1980);\n                  pcVar11 = (code *)(PTR_DAT_000799a4 + -0x2f9c);\n                  local_c4 = aVar56;\n                  local_144 = piVar38;\n                  while( true ) {\n                    uVar63 = CONCAT44(mctx.input.valid_len,mctx.input.len);\n                    unaff_s5.sbcset = (re_bitset_ptr_t)(mctx.input.cur_idx + 1);\n                    aVar45.idx = mctx.input.cur_idx;\n                    if (mctx.input.stop <= mctx.input.cur_idx) break;\n                    if ((mctx.input.bufs_len <= unaff_s5.idx) &&\n                       (mctx.input.bufs_len < mctx.input.len)) goto LAB_00054e94;\n                    if (mctx.input.valid_len <= unaff_s5.idx) {\n                      while ((int)((ulonglong)uVar63 >> 0x20) < (int)uVar63) {\nLAB_00054e94:\n                        aVar45.sbcset =\n                             (re_bitset_ptr_t)\n                             ((int)&((re_string_t *)&(aVar45.mbcset)->mbchars)->raw_mbs + 2);\n                        err = (*pcVar9)(&mctx);\n                        if (err == _REG_NOERROR) break;\n                        aVar15 = aVar46;\n                        if (err == _REG_ESPACE) goto LAB_00055914;\n                        prVar51 = (re_dfa_t *)(PTR_s_nt0_000795b8 + 0x6eb0);\n                        aVar49.idx = 0x46c;\n                        aVar45.sbcset = (re_bitset_ptr_t)(PTR_s_nt0_000795b8 + 0x712c);\n                        uVar63 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0);\n                        prVar52 = prVar59;\n                      }\n                    }\n                    prVar3 = mctx.dfa;\n                    if ((int)*(bin_tree_t **)(unaff_s7.idx + 0x34) << 5 < 0) {\n                      paVar18 = (anon_union_4_5_a39f51ca_for_opr *)prVar3;\n                      if (0 < (int)(unaff_s7.mbcset)->range_ends) {\n                        pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6fdc);\n                        pcVar13 = (code *)(PTR_DAT_000799a4 + -0x6ef0);\n                        stop = 0;\n                        do {\n                          last_start = ((anon_union_4_5_a39f51ca_for_opr *)\n                                       ((unaff_s7.mbcset)->char_classes + stop))->idx;\n                          prVar53 = prVar3->nodes;\n                          uVar8 = *(uint *)&prVar53[last_start].field_0x4;\n                          if ((uVar8 & 0x800) != 0) {\n                            if ((uVar8 & 0xffc000) != 0) {\n                              aVar45.idx = mctx.input.cur_idx;\n                              uVar60 = (*pcVar13)(&mctx,mctx.input.cur_idx,mctx.eflags);\n                              uVar8 = (uint)(*(int *)&prVar53[last_start].field_0x4 << 8) >> 0x16;\n                              if ((uVar8 & 4) == 0) {\n                                uVar26 = uVar60 & 1;\n                                if ((uVar8 & 8) != 0) goto joined_r0x00054f40;\n                              }\n                              else {\n                                uVar26 = uVar8 & 8;\n                                if ((uVar60 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                                if (uVar26 != 0) goto LAB_000550a4;\n                              }\n                              if ((((uVar8 & 0x20) != 0) && ((uVar60 & 2) == 0)) ||\n                                 (((uVar8 & 0x80) != 0 &&\n                                  (prVar51 = (re_dfa_t *)mctx.input.cur_idx, (uVar60 & 8) == 0))))\n                              goto LAB_000550a4;\n                            }\n                            aVar49.sbcset = (re_bitset_ptr_t)&mctx;\n                            aVar45.idx = last_start;\n                            prVar51 = (re_dfa_t *)mctx.input.cur_idx;\n                            iVar61 = (*pcVar11)(prVar3);\n                            if (iVar61 != 0) {\n                              aVar46.sbcset = (re_bitset_ptr_t)(iVar61 + mctx.input.cur_idx);\n                              if (iVar61 <= mctx.max_mb_elem_len) {\n                                iVar61 = mctx.max_mb_elem_len;\n                              }\n                              aVar45.sbcset = aVar46.sbcset;\n                              mctx.max_mb_elem_len = iVar61;\n                              err_1 = (*pcVar12)(&mctx);\n                              rVar21 = err_1;\n                              if (err_1 != _REG_NOERROR) goto LAB_00055e44;\n                              aVar49.sbcset =\n                                   (re_bitset_ptr_t)(prVar3->eclosures + prVar3->nexts[last_start]);\n                              unaff_s4 = (re_dfa_t *)(aVar46.idx * 4);\n                              last_start = (Idx)(mctx.state_log + aVar46.idx);\n                              if (*(bitset_word_t *)last_start == 0) {\n                                dest_nodes.alloc = *aVar49.sbcset;\n                                dest_nodes.nelem =\n                                     ((re_node_set *)&(aVar49.mbcset)->range_starts)->alloc;\n                                dest_nodes.elems = (aVar49.mbcset)->range_ends;\n                                prVar51 = (re_dfa_t *)\n                                          (*pcVar13)(&mctx,(undefined1 *)(aVar46.idx + -1),\n                                                     mctx.eflags);\n                                aVar49.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                                aVar45 = (anon_union_4_5_a39f51ca_for_opr)prVar3;\n                                prVar35 = re_acquire_state_context\n                                                    (&err_1,prVar3,(re_node_set *)aVar49.mbcset,\n                                                     (uint)prVar51);\n                                ((re_string_t *)&((re_charset_t *)last_start)->mbchars)->raw_mbs =\n                                     (uchar *)prVar35;\n                              }\n                              else {\n                                aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                                         ((anon_union_4_5_a39f51ca_for_opr *)\n                                         (*(bitset_word_t *)last_start + 0x28))->mbcset;\n                                err_1 = re_node_set_init_union\n                                                  (&dest_nodes,(re_node_set *)aVar45.mbcset,\n                                                   (re_node_set *)aVar49.mbcset);\n                                rVar21 = err_1;\n                                if (err_1 != _REG_NOERROR) goto LAB_00055e44;\n                                prVar51 = (re_dfa_t *)\n                                          (*pcVar13)(&mctx,(undefined1 *)(aVar46.idx + -1),\n                                                     mctx.eflags);\n                                pprVar14 = mctx.state_log + aVar46.idx;\n                                aVar49.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                                aVar45 = (anon_union_4_5_a39f51ca_for_opr)prVar3;\n                                prVar35 = re_acquire_state_context\n                                                    (&err_1,prVar3,(re_node_set *)aVar49.mbcset,\n                                                     (uint)prVar51);\n                                *pprVar14 = prVar35;\n                                (*(code *)PTR_free_00079c24)(dest_nodes.elems);\n                              }\n                              unaff_s4 = (re_dfa_t *)(mctx.state_log + aVar46.idx);\n                              if ((unaff_s4->nodes == (re_token_t *)0x0) &&\n                                 (rVar21 = err_1, err_1 != _REG_NOERROR)) goto LAB_00055e44;\n                            }\n                          }\nLAB_000550a4:\n                          stop = (int)&((re_string_t *)&((re_charset_t *)stop)->mbchars)->raw_mbs +\n                                 1;\n                        } while (stop < (int)(unaff_s7.mbcset)->range_ends);\n                      }\n                      err = _REG_NOERROR;\n                    }\n                    uVar8 = (uint)mctx.input.mbs[mctx.input.cur_idx];\n                    mctx.input.cur_idx = mctx.input.cur_idx + 1;\n                    do {\n                      if (*(re_dfastate_t **)(unaff_s7.idx + 0x2c) != (re_dfastate_t *)0x0) {\n                        aVar49 = (anon_union_4_5_a39f51ca_for_opr)\n                                 ((anon_union_4_5_a39f51ca_for_opr *)\n                                 (&(*(re_dfastate_t **)(unaff_s7.idx + 0x2c))->hash + uVar8))->\n                                 mbcset;\nLAB_000553a0:\n                        aVar15 = aVar49;\n                        if (mctx.state_log != (re_dfastate_t **)0x0) goto LAB_000553ac;\n                        goto LAB_000553cc;\n                      }\n                      paVar18 = *(anon_union_4_5_a39f51ca_for_opr **)(unaff_s7.idx + 0x30);\n                      if (paVar18 != (anon_union_4_5_a39f51ca_for_opr *)0x0) {\n                        aVar45.sbcset = (re_bitset_ptr_t)(mctx.input.cur_idx + -1);\n                        uVar60 = re_string_context_at(&mctx.input,aVar45.idx,mctx.eflags);\n                        if ((uVar60 & 1) == 0) {\n                          aVar49 = (anon_union_4_5_a39f51ca_for_opr)paVar18[uVar8].mbcset;\n                        }\n                        else {\n                          paVar18 = paVar18 + uVar8 + 0x100;\n                          aVar49 = (anon_union_4_5_a39f51ca_for_opr)paVar18->mbcset;\n                        }\n                        goto LAB_000553a0;\n                      }\n                      aVar45 = unaff_s7;\n                      aVar49 = (anon_union_4_5_a39f51ca_for_opr)mctx.eflags;\n                      iVar61 = (*pcVar10)(mctx.dfa);\n                    } while (iVar61 != 0);\n                    err = _REG_ESPACE;\n                    rVar21 = err;\nLAB_00055e44:\n                    err = rVar21;\n                    aVar46.sbcset = (re_bitset_ptr_t)0x0;\n                    if (mctx.state_log == (re_dfastate_t **)0x0) {\n                      aVar15.sbcset = aVar46.sbcset;\n                      if (err != _REG_NOERROR) goto LAB_00055914;\n                      break;\n                    }\n                    aVar49.sbcset = (re_bitset_ptr_t)0x0;\nLAB_000553ac:\n                    aVar45.sbcset = (re_bitset_ptr_t)&mctx;\n                    aVar15.sbcset =\n                         &merge_state_with_log\n                                    (&err,(re_match_context_t *)aVar45.mbcset,aVar49.sbcset)->hash;\nLAB_000553cc:\n                    aVar46 = aVar15;\n                    if ((re_dfa_t *)aVar15.sbcset == (re_dfa_t *)0x0) {\n                      if (err != _REG_NOERROR) goto LAB_00055914;\n                      if ((mctx.state_log == (re_dfastate_t **)0x0) ||\n                         ((prVar52 != (re_dfa_t *)0x0 &&\n                          (paVar54 == (anon_union_4_5_a39f51ca_for_opr *)0x0)))) break;\n                      stop = (Idx)&mctx;\n                      last_start = (Idx)&err;\n                      paVar18 = (anon_union_4_5_a39f51ca_for_opr *)(PTR_DAT_000799a4 + 0x3684);\n                      do {\n                        pprVar14 = mctx.state_log + mctx.input.cur_idx;\n                        IVar17 = mctx.input.cur_idx;\n                        do {\n                          IVar17 = IVar17 + 1;\n                          aVar45.idx = mctx.state_log_top;\n                          aVar46 = aVar15;\n                          if (mctx.state_log_top < IVar17) goto LAB_00055da8;\n                          mctx.input.cur_idx = mctx.input.cur_idx + 1;\n                          pprVar14 = pprVar14 + 1;\n                        } while (*pprVar14 == (re_dfastate_t *)0x0);\n                        aVar49.sbcset = (re_bitset_ptr_t)0x0;\n                        aVar45.sbcset = (re_bitset_ptr_t)stop;\n                        aVar46.sbcset = (re_bitset_ptr_t)(*(code *)paVar18)(last_start);\n                        if (err != _REG_NOERROR) {\n                          if ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0) goto LAB_00055da8;\n                          break;\n                        }\n                        aVar45.idx = mctx.state_log_top;\n                      } while ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0);\n                    }\n                    aVar16.ctx_type = unaff_s7.ctx_type ^ aVar46.ctx_type;\n                    aVar56 = unaff_s7;\n                    aVar15 = local_138;\n                    if ((bVar36) &&\n                       (aVar56.ctx_type = aVar16.ctx_type, aVar15.sbcset = unaff_s5.sbcset,\n                       (re_dfa_t *)aVar16.sbcset != (re_dfa_t *)0x0)) {\n                      bVar36 = false;\n                      aVar15 = local_138;\n                    }\n                    local_138 = aVar15;\n                    unaff_s7 = aVar46;\n                    if (((*(byte *)(aVar46.idx + 0x34) & 8) != 0) &&\n                       (((*(byte *)(aVar46.idx + 0x34) & 1) == 0 ||\n                        (aVar45 = aVar46, aVar49.idx = mctx.input.cur_idx,\n                        IVar17 = check_halt_state_context(&mctx,aVar46.idx,mctx.input.cur_idx),\n                        IVar17 != 0)))) {\n                      unaff_s7 = aVar56;\n                      local_c4.idx = mctx.input.cur_idx;\n                      if (paVar54 == (anon_union_4_5_a39f51ca_for_opr *)0x0) goto LAB_00055dbc;\n                      prVar52 = (re_dfa_t *)0x1;\n                      local_144 = (int *)0x0;\n                      unaff_s7 = aVar46;\n                    }\n                  }\nLAB_00055da8:\n                  if (local_144 != (int *)0x0) {\n                    *local_144 = *local_144 + (int)local_138.sbcset;\n                  }\n                }\n                else {\n                  aVar46.sbcset = (re_bitset_ptr_t)&(unaff_s7.mbcset)->range_starts;\n                  aVar49.sbcset = (re_bitset_ptr_t)0x0;\n                  aVar45 = aVar46;\n                  err = check_subexp_matching_top(&mctx,(re_node_set *)aVar46.mbcset,0);\n                  local_c4.idx = err;\n                  if ((re_dfa_t *)err == (re_dfa_t *)0x0) {\n                    if ((*(byte *)(unaff_s7.idx + 0x34) & 2) == 0) {\n                      aVar45 = aVar46;\n                      bVar36 = false;\n                    }\n                    else {\n                      aVar45 = aVar46;\n                      err = transit_state_bkref(&mctx,(re_node_set *)aVar46.mbcset);\n                      local_c4.idx = err;\n                      if ((re_dfa_t *)err != (re_dfa_t *)0x0) goto LAB_00055dbc;\n                      bVar36 = false;\n                    }\n                    goto LAB_00054d50;\n                  }\n                }\nLAB_00055dbc:\n                if ((re_dfa_t *)local_c4.sbcset == (re_dfa_t *)0xffffffff) {\nLAB_00055b04:\n                  match_ctx_clean(&mctx);\nLAB_00055b1c:\n                  match_first = aVar39.idx + match_first;\n                  if (aVar40.idx <= match_first) goto code_r0x00055b38;\n                  local_150.idx = 1;\n                  goto LAB_000557e4;\n                }\n                if ((re_dfa_t *)local_c4.sbcset == (re_dfa_t *)&SUB_fffffffe) {\n                  local_150.idx = 0xc;\n                  goto LAB_000557e4;\n                }\n                mctx.match_last = local_c4.idx;\n                if ((preg->field_0x1c & 8) == 0) {\n                  if (aVar4.sbcset < (re_dfa_t *)0x2) {\n                    if (prVar59->nbackref == 0) goto LAB_00055c08;\n                    aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                             ((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + local_c4.idx))->\n                             mbcset;\n                    aVar49 = local_c4;\n                    mctx.last_node =\n                         check_halt_state_context(&mctx,(re_dfastate_t *)aVar45.mbcset,local_c4.idx)\n                    ;\n                  }\n                  else {\n                    aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                             ((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + local_c4.idx))->\n                             mbcset;\n                    aVar49 = local_c4;\n                    mctx.last_node =\n                         check_halt_state_context(&mctx,(re_dfastate_t *)aVar45.mbcset,local_c4.idx)\n                    ;\n                  }\n                  if (aVar4.sbcset < (re_dfa_t *)0x2) {\nLAB_00055c6c:\n                    prVar52 = prVar51;\n                    unaff_s4 = mctx.dfa;\n                    if (prVar59->nbackref == 0) goto LAB_00055548;\n                  }\n                  else {\n                    cVar37 = prVar59->field_0x58;\nLAB_00055c20:\n                    prVar52 = prVar51;\n                    if (-1 < cVar37) goto LAB_00055c6c;\n                  }\n                  paVar18 = (anon_union_4_5_a39f51ca_for_opr *)mctx.last_node;\n                  prVar3 = mctx.dfa;\n                  unaff_s4 = prVar3;\n                  if ((uint)local_c4 < (re_dfa_t *)0x3fffffff) {\n                    aVar46.idx = (int)((int)&((re_string_t *)&(local_c4.mbcset)->mbchars)->raw_mbs +\n                                      1) * 4;\n                    unaff_s5.sbcset = (re_bitset_ptr_t)(*(code *)PTR_malloc_00079b54)(aVar46.sbcset)\n                    ;\n                    if ((re_dfa_t *)unaff_s5.sbcset == (re_dfa_t *)0x0) {\nLAB_00055b9c:\n                      (*(code *)PTR_free_00079c24)(unaff_s5.sbcset);\n                      local_150.idx = 0xc;\n                      prVar51 = prVar52;\n                    }\n                    else {\n                      aVar45.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                      if (prVar3->nbackref == 0) {\n                        dest_nodes.nelem = 0;\n                        dest_nodes.elems = &paVar18->idx;\n                        dest_nodes.alloc = (Idx)unaff_s5.sbcset;\n                        last_start = sift_states_backward(&mctx,(re_sift_context_t *)aVar45.mbcset);\n                        (*(code *)PTR_free_00079c24)(0);\n                        if ((re_dfa_t *)last_start == (re_dfa_t *)0x0) {\n                          aVar46.mbcset = (re_charset_t *)*unaff_s5.sbcset;\n                          if ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0) {\nLAB_00055b70:\n                            (*(code *)PTR_free_00079c24)(unaff_s5.sbcset);\n                            (*(code *)PTR_free_00079c24)(aVar46.sbcset);\n                            prVar51 = prVar52;\n                            goto LAB_00055b04;\n                          }\nLAB_00055528:\n                          (*(code *)PTR_free_00079c24)(mctx.state_log);\n                          prVar51 = prVar52;\n                          unaff_s4 = prVar3;\n                          mctx.match_last = local_c4.idx;\n                          mctx.last_node = (Idx)paVar18;\n                          mctx.state_log = (re_dfastate_t **)unaff_s5.sbcset;\n                          goto LAB_00055548;\n                        }\nLAB_00055acc:\n                        aVar46.sbcset = (re_bitset_ptr_t)0x0;\n                        prVar51 = prVar52;\n                        unaff_s4 = prVar3;\n                      }\n                      else {\n                        aVar46.sbcset =\n                             (re_bitset_ptr_t)(*(code *)PTR_malloc_00079b54)(aVar46.sbcset);\n                        if ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0) goto LAB_00055b9c;\n                        unaff_s7.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                        pcVar9 = (code *)(PTR_DAT_000799a4 + 0x421c);\n                        pcVar10 = (code *)(PTR_DAT_000799a4 + -0x6bc0);\n                        prVar51 = prVar52;\n                        while( true ) {\n                          prVar52 = (re_dfa_t *)(local_c4.idx + 1);\n                          stop = (int)prVar52 * 4;\n                          aVar49.idx = stop;\n                          (*(code *)PTR_memset_00079b00)(aVar46.sbcset,0);\n                          aVar45.sbcset = unaff_s7.sbcset;\n                          dest_nodes.alloc = (Idx)unaff_s5.sbcset;\n                          dest_nodes.nelem = (Idx)aVar46.sbcset;\n                          dest_nodes.elems = (Idx *)paVar18;\n                          last_start = (*pcVar9)(&mctx);\n                          (*(code *)PTR_free_00079c24)(0);\n                          unaff_s4 = prVar52;\n                          if ((re_dfa_t *)last_start != (re_dfa_t *)0x0) break;\n                          if ((*unaff_s5.sbcset != 0) || (stop = stop + -4, *aVar46.sbcset != 0)) {\n                            aVar45.sbcset = unaff_s5.sbcset;\n                            aVar49.sbcset = aVar46.sbcset;\n                            last_start = merge_state_array(prVar3,(re_dfastate_t **)unaff_s5.sbcset,\n                                                           (re_dfastate_t **)aVar46.sbcset,\n                                                           (Idx)prVar52);\n                            (*(code *)PTR_free_00079c24)(aVar46.sbcset);\n                            if ((re_dfa_t *)last_start != (re_dfa_t *)0x0) goto LAB_00055acc;\n                            goto LAB_00055528;\n                          }\n                          stop = (Idx)(mctx.state_log + (int)&prVar52[-1].lock.__align + 0x17);\n                          do {\n                            while( true ) {\n                              local_c4.sbcset = (re_bitset_ptr_t)(local_c4.idx + -1);\n                              if (local_c4.idx < 0) goto LAB_00055b70;\n                              aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                                       ((anon_union_4_5_a39f51ca_for_opr *)(stop + -4))->idx;\n                              if ((re_dfa_t *)aVar45.sbcset != (re_dfa_t *)0x0) break;\n                              stop = stop + -4;\n                            }\n                            stop = stop + -4;\n                          } while ((*(byte *)(aVar45.idx + 0x34) & 8) == 0);\n                          paVar18 = (anon_union_4_5_a39f51ca_for_opr *)\n                                    (*pcVar10)(&mctx,aVar45.sbcset,local_c4.sbcset);\n                          prVar51 = prVar52;\n                        }\n                      }\n                      (*(code *)PTR_free_00079c24)(unaff_s5.sbcset);\n                      (*(code *)PTR_free_00079c24)(aVar46.sbcset);\n                      local_150.idx = last_start;\n                      if ((re_dfa_t *)last_start == (re_dfa_t *)0x1) goto LAB_00055b04;\n                    }\n                  }\n                  else {\n                    local_150.idx = 0xc;\n                    prVar51 = prVar52;\n                  }\n                  goto LAB_000557e4;\n                }\n                if (prVar59->nbackref != 0) {\n                  aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                           ((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + local_c4.idx))->\n                           mbcset;\n                  aVar49 = local_c4;\n                  mctx.last_node =\n                       check_halt_state_context(&mctx,(re_dfastate_t *)aVar45.mbcset,local_c4.idx);\n                  goto LAB_00055c6c;\n                }\nLAB_00055c08:\n                if (((preg->field_0x1c & 8) == 0) && ((re_dfa_t *)0x1 < aVar4.sbcset)) {\n                  cVar37 = prVar59->field_0x58;\n                  goto LAB_00055c20;\n                }\nLAB_00055548:\n                if ((re_dfa_t *)aVar4.sbcset == (re_dfa_t *)0x0) goto LAB_000557e4;\n                if (aVar4.sbcset < (re_dfa_t *)0x2) {\n                  pmatch->rm_so = 0;\n                  pmatch->rm_eo = mctx.match_last;\n                  goto LAB_000555ac;\n                }\n                prVar19 = pmatch + 1;\n                do {\n                  prVar19->rm_eo = -1;\n                  prVar19->rm_so = -1;\n                  prVar19 = prVar19 + 1;\n                } while (prVar19 != pmatch + aVar4.idx);\n                pmatch->rm_so = 0;\n                pmatch->rm_eo = mctx.match_last;\n                if ((preg->field_0x1c & 8) != 0) {\nLAB_000555ac:\n                  prVar19 = pmatch;\n                  do {\n                    aVar45.sbcset = (re_bitset_ptr_t)prVar19->rm_so;\n                    if ((re_dfa_t *)aVar45.sbcset != (re_dfa_t *)0xffffffff) {\n                      if (mctx.input.offsets_needed != '\0') {\n                        rVar47 = mctx.input.valid_raw_len;\n                        if (aVar45.sbcset != (re_bitset_ptr_t)mctx.input.valid_len) {\n                          rVar47 = mctx.input.offsets[aVar45.idx];\n                        }\n                        prVar19->rm_so = rVar47;\n                        rVar47 = mctx.input.valid_raw_len;\n                        if (mctx.input.valid_len != prVar19->rm_eo) {\n                          rVar47 = mctx.input.offsets[prVar19->rm_eo];\n                        }\n                        prVar19->rm_eo = rVar47;\n                      }\n                      prVar19->rm_so = prVar19->rm_so + match_first;\n                      aVar45.sbcset = (re_bitset_ptr_t)(prVar19->rm_eo + match_first);\n                      prVar19->rm_eo = (regoff_t)aVar45;\n                    }\n                    prVar19 = prVar19 + 1;\n                  } while (prVar19 != pmatch + aVar4.idx);\n                  if (0 < local_118) {\n                    prVar19 = pmatch + aVar4.idx;\n                    do {\n                      prVar19->rm_so = -1;\n                      prVar19->rm_eo = -1;\n                      prVar19 = prVar19 + 1;\n                    } while (prVar19 != pmatch + nmatch);\n                  }\n                  aVar49.idx = match_first;\n                  prVar51 = (re_dfa_t *)pmatch;\n                  local_150.sbcset = aVar7.sbcset;\n                  if (prVar59->subexp_map != (Idx *)0x0) {\n                    aVar49.sbcset = (re_bitset_ptr_t)(aVar4.idx + -1);\n                    prVar52 = (re_dfa_t *)0x0;\n                    prVar19 = pmatch;\n                    while( true ) {\n                      aVar45.idx = (int)prVar52 * 4;\n                      if ((re_dfa_t *)aVar49.sbcset == prVar52) break;\n                      if ((re_dfa_t *)prVar59->subexp_map[(int)prVar52] != prVar52) {\n                        prVar19[1].rm_so =\n                             pmatch[(int)((int)&((re_string_t *)\n                                                &((re_dfa_t *)prVar59->subexp_map[(int)prVar52])->\n                                                 nodes)->raw_mbs + 1)].rm_so;\n                        prVar19[1].rm_eo = pmatch[prVar59->subexp_map[(int)prVar52] + 1].rm_eo;\n                      }\n                      prVar52 = (re_dfa_t *)((int)&((re_string_t *)&prVar52->nodes)->raw_mbs + 1);\n                      prVar19 = prVar19 + 1;\n                    }\n                  }\n                  goto LAB_000557e4;\n                }\n                if ((char)prVar59->field_0x58 < '\0') {\n                  bVar36 = 0 < prVar59->nbackref;\n                }\n                else {\n                  bVar36 = false;\n                }\n                aVar45.sbcset = (re_bitset_ptr_t)&mctx;\n                aVar49.sbcset = aVar4.sbcset;\n                prVar51 = (re_dfa_t *)pmatch;\n                local_150.idx =\n                     set_regs(preg,(re_match_context_t *)aVar45.mbcset,aVar4.ctx_type,pmatch,bVar36)\n                ;\n                if ((re_dfa_t *)local_150.sbcset == (re_dfa_t *)0x0) goto LAB_000555ac;\n              }\n            }\n          }" { (expression_statement "mctx.state_log = (re_dfastate_t **)0x0;" (assignment_expression "mctx.state_log = (re_dfastate_t **)0x0" (field_expression "mctx.state_log" identifier . field_identifier) = (cast_expression "(re_dfastate_t **)0x0" ( (type_descriptor "re_dfastate_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (labeled_statement "LAB_00055a40:\n            mctx.input.tip_context = 6;" statement_identifier : (expression_statement "mctx.input.tip_context = 6;" (assignment_expression "mctx.input.tip_context = 6" (field_expression "mctx.input.tip_context" (field_expression "mctx.input" identifier . field_identifier) . field_identifier) = number_literal) ;)) (if_statement "if ((eflags & 1U) != 0) {\n              mctx.input.tip_context = 4;\n            }" if (parenthesized_expression "((eflags & 1U) != 0)" ( (binary_expression "(eflags & 1U) != 0" (parenthesized_expression "(eflags & 1U)" ( (binary_expression "eflags & 1U" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n              mctx.input.tip_context = 4;\n            }" { (expression_statement "mctx.input.tip_context = 4;" (assignment_expression "mctx.input.tip_context = 4" (field_expression "mctx.input.tip_context" (field_expression "mctx.input" identifier . field_identifier) . field_identifier) = number_literal) ;) })) (expression_statement "aVar39.idx = 1;" (assignment_expression "aVar39.idx = 1" (field_expression "aVar39.idx" identifier . field_identifier) = number_literal) ;) (expression_statement "aVar40.idx = start;" (assignment_expression "aVar40.idx = start" (field_expression "aVar40.idx" identifier . field_identifier) = identifier) ;) (if_statement "if (last_start < start) {\n              aVar39.idx = -1;\n              aVar40.idx = last_start;\n            }" if (parenthesized_expression "(last_start < start)" ( (binary_expression "last_start < start" identifier < identifier) )) (compound_statement "{\n              aVar39.idx = -1;\n              aVar40.idx = last_start;\n            }" { (expression_statement "aVar39.idx = -1;" (assignment_expression "aVar39.idx = -1" (field_expression "aVar39.idx" identifier . field_identifier) = number_literal) ;) (expression_statement "aVar40.idx = last_start;" (assignment_expression "aVar40.idx = last_start" (field_expression "aVar40.idx" identifier . field_identifier) = identifier) ;) })) (expression_statement "aVar41.idx = last_start;" (assignment_expression "aVar41.idx = last_start" (field_expression "aVar41.idx" identifier . field_identifier) = identifier) ;) (if_statement "if (last_start <= start) {\n              aVar41.idx = start;\n            }" if (parenthesized_expression "(last_start <= start)" ( (binary_expression "last_start <= start" identifier <= identifier) )) (compound_statement "{\n              aVar41.idx = start;\n            }" { (expression_statement "aVar41.idx = start;" (assignment_expression "aVar41.idx = start" (field_expression "aVar41.idx" identifier . field_identifier) = identifier) ;) })) (expression_statement "iVar55 = prVar59->mb_cur_max;" (assignment_expression "iVar55 = prVar59->mb_cur_max" identifier = (field_expression "prVar59->mb_cur_max" identifier -> field_identifier)) ;) (expression_statement "rVar20 = 8;" (assignment_expression "rVar20 = 8" identifier = number_literal) ;) (if_statement "if ((re_dfa_t *)local_148.sbcset != (re_dfa_t *)0x0) {\n              if (iVar55 == 1) {\n                paVar43 = (anon_union_4_5_a39f51ca_for_opr *)0x4;\n              }\n              else {\n                paVar43 = paVar2;\n                if ((-1 < (int)(preg->syntax << 9)) && (puVar50 == (uchar *)0x0)) {\n                  paVar43 = (anon_union_4_5_a39f51ca_for_opr *)0x4;\n                }\n              }\n              aVar45.sbcset = (re_bitset_ptr_t)0x0;\n              if (start <= last_start) {\n                aVar45.idx = 2;\n              }\n              rVar20 = (uint)(puVar50 != (uchar *)0x0) | (uint)paVar43 | aVar45.ctx_type;\n            }" if (parenthesized_expression "((re_dfa_t *)local_148.sbcset != (re_dfa_t *)0x0)" ( (binary_expression "(re_dfa_t *)local_148.sbcset != (re_dfa_t *)0x0" (cast_expression "(re_dfa_t *)local_148.sbcset" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "local_148.sbcset" identifier . field_identifier)) != (cast_expression "(re_dfa_t *)0x0" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              if (iVar55 == 1) {\n                paVar43 = (anon_union_4_5_a39f51ca_for_opr *)0x4;\n              }\n              else {\n                paVar43 = paVar2;\n                if ((-1 < (int)(preg->syntax << 9)) && (puVar50 == (uchar *)0x0)) {\n                  paVar43 = (anon_union_4_5_a39f51ca_for_opr *)0x4;\n                }\n              }\n              aVar45.sbcset = (re_bitset_ptr_t)0x0;\n              if (start <= last_start) {\n                aVar45.idx = 2;\n              }\n              rVar20 = (uint)(puVar50 != (uchar *)0x0) | (uint)paVar43 | aVar45.ctx_type;\n            }" { (if_statement "if (iVar55 == 1) {\n                paVar43 = (anon_union_4_5_a39f51ca_for_opr *)0x4;\n              }\n              else {\n                paVar43 = paVar2;\n                if ((-1 < (int)(preg->syntax << 9)) && (puVar50 == (uchar *)0x0)) {\n                  paVar43 = (anon_union_4_5_a39f51ca_for_opr *)0x4;\n                }\n              }" if (parenthesized_expression "(iVar55 == 1)" ( (binary_expression "iVar55 == 1" identifier == number_literal) )) (compound_statement "{\n                paVar43 = (anon_union_4_5_a39f51ca_for_opr *)0x4;\n              }" { (expression_statement "paVar43 = (anon_union_4_5_a39f51ca_for_opr *)0x4;" (assignment_expression "paVar43 = (anon_union_4_5_a39f51ca_for_opr *)0x4" identifier = (cast_expression "(anon_union_4_5_a39f51ca_for_opr *)0x4" ( (type_descriptor "anon_union_4_5_a39f51ca_for_opr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n                paVar43 = paVar2;\n                if ((-1 < (int)(preg->syntax << 9)) && (puVar50 == (uchar *)0x0)) {\n                  paVar43 = (anon_union_4_5_a39f51ca_for_opr *)0x4;\n                }\n              }" else (compound_statement "{\n                paVar43 = paVar2;\n                if ((-1 < (int)(preg->syntax << 9)) && (puVar50 == (uchar *)0x0)) {\n                  paVar43 = (anon_union_4_5_a39f51ca_for_opr *)0x4;\n                }\n              }" { (expression_statement "paVar43 = paVar2;" (assignment_expression "paVar43 = paVar2" identifier = identifier) ;) (if_statement "if ((-1 < (int)(preg->syntax << 9)) && (puVar50 == (uchar *)0x0)) {\n                  paVar43 = (anon_union_4_5_a39f51ca_for_opr *)0x4;\n                }" if (parenthesized_expression "((-1 < (int)(preg->syntax << 9)) && (puVar50 == (uchar *)0x0))" ( (binary_expression "(-1 < (int)(preg->syntax << 9)) && (puVar50 == (uchar *)0x0)" (parenthesized_expression "(-1 < (int)(preg->syntax << 9))" ( (binary_expression "-1 < (int)(preg->syntax << 9)" number_literal < (cast_expression "(int)(preg->syntax << 9)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(preg->syntax << 9)" ( (binary_expression "preg->syntax << 9" (field_expression "preg->syntax" identifier -> field_identifier) << number_literal) )))) )) && (parenthesized_expression "(puVar50 == (uchar *)0x0)" ( (binary_expression "puVar50 == (uchar *)0x0" identifier == (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n                  paVar43 = (anon_union_4_5_a39f51ca_for_opr *)0x4;\n                }" { (expression_statement "paVar43 = (anon_union_4_5_a39f51ca_for_opr *)0x4;" (assignment_expression "paVar43 = (anon_union_4_5_a39f51ca_for_opr *)0x4" identifier = (cast_expression "(anon_union_4_5_a39f51ca_for_opr *)0x4" ( (type_descriptor "anon_union_4_5_a39f51ca_for_opr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) }))) (expression_statement "aVar45.sbcset = (re_bitset_ptr_t)0x0;" (assignment_expression "aVar45.sbcset = (re_bitset_ptr_t)0x0" (field_expression "aVar45.sbcset" identifier . field_identifier) = (cast_expression "(re_bitset_ptr_t)0x0" ( (type_descriptor "re_bitset_ptr_t" type_identifier) ) number_literal)) ;) (if_statement "if (start <= last_start) {\n                aVar45.idx = 2;\n              }" if (parenthesized_expression "(start <= last_start)" ( (binary_expression "start <= last_start" identifier <= identifier) )) (compound_statement "{\n                aVar45.idx = 2;\n              }" { (expression_statement "aVar45.idx = 2;" (assignment_expression "aVar45.idx = 2" (field_expression "aVar45.idx" identifier . field_identifier) = number_literal) ;) })) (expression_statement "rVar20 = (uint)(puVar50 != (uchar *)0x0) | (uint)paVar43 | aVar45.ctx_type;" (assignment_expression "rVar20 = (uint)(puVar50 != (uchar *)0x0) | (uint)paVar43 | aVar45.ctx_type" identifier = (binary_expression "(uint)(puVar50 != (uchar *)0x0) | (uint)paVar43 | aVar45.ctx_type" (binary_expression "(uint)(puVar50 != (uchar *)0x0) | (uint)paVar43" (call_expression "(uint)(puVar50 != (uchar *)0x0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(puVar50 != (uchar *)0x0)" ( (binary_expression "puVar50 != (uchar *)0x0" identifier != (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) | (cast_expression "(uint)paVar43" ( (type_descriptor "uint" type_identifier) ) identifier)) | (field_expression "aVar45.ctx_type" identifier . field_identifier))) ;) })) (expression_statement "match_first = start;" (assignment_expression "match_first = start" identifier = identifier) ;) (if_statement "if (start < aVar40.idx) {\n              local_150.idx = 1;\n              stop = aVar56.idx;\n            }\n            else {\n              aVar46.idx._0_3_ = 0;\n              aVar46.idx._3_1_ = last_start < start;\n              if (aVar41.idx < start) {\n                local_150.idx = 1;\n                stop = aVar56.idx;\n              }\n              else {\n                piVar38 = &match_first;\n                if ((re_dfa_t *)aVar46.sbcset != (re_dfa_t *)0x0) {\n                  piVar38 = (int *)0x0;\n                }\n                pcVar5 = (code *)(PTR_DAT_000799a4 + -0x2b7c);\n                piVar6 = (int *)(PTR_s_nt0_000795b8 + (rVar20 - 4) * 4 + 0x6e38);\nLAB_00055b44:\n                if (rVar20 - 4 < 5) {\n                    /* WARNING: Could not emulate address calculation at 0x00054920 */\n                    /* WARNING: Treating indirect jump as call */\n                  rVar21 = (*(code *)(&_gp + *piVar6))();\n                  return rVar21;\n                }\n                last_start = (Idx)&mctx;\n                prVar52 = prVar51;\n                while( true ) {\n                  aVar46.idx = match_first;\n                  uVar8 = match_first - mctx.input.raw_mbs_idx;\n                  aVar49 = (anon_union_4_5_a39f51ca_for_opr)eflags;\n                  paVar18 = paVar2;\n                  stop = local_148.idx;\n                  unaff_s4 = (re_dfa_t *)length;\n                  unaff_s5 = aVar39;\n                  unaff_s7 = aVar41;\n                  if ((uint)mctx.input.valid_raw_len <= uVar8) {\n                    aVar45.idx = match_first;\n                    local_150.sbcset = (re_bitset_ptr_t)(*pcVar5)(last_start);\n                    prVar51 = prVar52;\n                    if ((re_dfa_t *)local_150.sbcset != (re_dfa_t *)0x0) goto LAB_000557e4;\n                    uVar8 = (int)aVar46.sbcset - mctx.input.raw_mbs_idx;\n                  }\n                  if (aVar46.idx < length) {\n                    uVar8 = (uint)mctx.input.mbs[uVar8];\n                  }\n                  else {\n                    uVar8 = 0;\n                  }\n                  aVar56.sbcset = aVar46.sbcset + aVar39.sbcset;\n                  aVar46.sbcset = aVar56.sbcset;\n                  if (*(char *)((int)local_148.sbcset + uVar8) != '\0') break;\n                  prVar51 = prVar52;\n                  match_first = aVar56.idx;\n                  if (aVar56.idx < aVar40.idx) {\n                    local_150.idx = 1;\n                    goto LAB_000557e4;\n                  }\n                  aVar46.idx._0_3_ = 0;\n                  aVar46.idx._3_1_ = aVar41.idx < aVar56.idx;\n                  if ((re_dfa_t *)aVar46.sbcset != (re_dfa_t *)0x0) {\n                    local_150.idx = 1;\n                    goto LAB_000557e4;\n                  }\n                }\n                while( true ) {\n                  aVar45.idx = match_first;\n                  aVar49 = (anon_union_4_5_a39f51ca_for_opr)eflags;\n                  aVar7.sbcset = (re_bitset_ptr_t)(*pcVar5)(&mctx);\n                  aVar15 = (anon_union_4_5_a39f51ca_for_opr)mctx.dfa;\n                  aVar56.idx = mctx.input.cur_idx;\n                  prVar51 = prVar52;\n                  local_150.sbcset = aVar7.sbcset;\n                  if ((re_dfa_t *)aVar7.sbcset != (re_dfa_t *)0x0) goto LAB_000557e4;\n                  if (((iVar55 != 1) && (mctx.input.valid_len != 0)) &&\n                     (*mctx.input.wcs == 0xffffffff)) goto LAB_00055b1c;\n                  mctx.max_mb_elem_len = 0;\n                  mctx.nbkref_ents = 0;\n                  mctx.state_log_top = 0;\n                  local_138.idx = mctx.input.cur_idx;\n                  err = _REG_NOERROR;\n                  unaff_s7 = (anon_union_4_5_a39f51ca_for_opr)(mctx.dfa)->init_state;\n                  aVar49 = (anon_union_4_5_a39f51ca_for_opr)mctx.eflags;\n                  aVar46 = aVar15;\n                  if ((*(byte *)(unaff_s7.idx + 0x34) & 1) == 0) break;\n                  aVar45.sbcset = (re_bitset_ptr_t)(mctx.input.cur_idx + -1);\n                  prVar51 = (re_dfa_t *)re_string_context_at(&mctx.input,aVar45.idx,mctx.eflags);\n                  if (((uint)prVar51 & 1) == 0) {\n                    if (prVar51 == (re_dfa_t *)0x0) break;\n                    if (((uint)prVar51 & 6) == 6) {\n                      unaff_s7 = (anon_union_4_5_a39f51ca_for_opr)\n                                 ((re_dfa_t *)aVar15.idx)->init_state_begbuf;\n                      goto LAB_00054d1c;\n                    }\n                    if (((uint)prVar51 & 2) != 0) {\n                      unaff_s7 = (anon_union_4_5_a39f51ca_for_opr)\n                                 ((re_dfa_t *)aVar15.idx)->init_state_nl;\n                      goto LAB_00054d1c;\n                    }\n                    prVar52 = prVar51;\n                    if (((uint)prVar51 & 4) == 0) break;\n                    aVar49 = (anon_union_4_5_a39f51ca_for_opr)\n                             ((anon_union_4_5_a39f51ca_for_opr *)(unaff_s7.idx + 0x28))->mbcset;\n                    aVar45 = aVar15;\n                    unaff_s7.sbcset =\n                         &re_acquire_state_context\n                                    (&err,aVar15.sbcset,(re_node_set *)aVar49.mbcset,(uint)prVar51)\n                          ->hash;\n                    prVar52 = prVar51;\n                    if ((re_dfa_t *)unaff_s7.sbcset != (re_dfa_t *)0x0) break;\n                    if (err == _REG_ESPACE) goto LAB_00055914;\n                  }\n                  else {\n                    unaff_s7 = (anon_union_4_5_a39f51ca_for_opr)\n                               ((re_dfa_t *)aVar15.idx)->init_state_word;\nLAB_00054d1c:\n                    prVar52 = (re_dfa_t *)PTR_s_nt0_000795b8;\n                    if ((re_dfa_t *)unaff_s7.sbcset != (re_dfa_t *)0x0) break;\n                  }\n                  prVar52 = (re_dfa_t *)(PTR_s_nt0_000795b8 + 0x6eb0);\n                  aVar45.sbcset = (re_bitset_ptr_t)(PTR_s_nt0_000795b8 + 0x712c);\n                  match_first = (*(code *)PTR___assert_fail_000799f8)\n                                          (PTR_s_nt0_000795b8 + 0x71a0,aVar45.sbcset,0x435);\n                  if ((re_bitset_ptr_t)match_first == aVar41.sbcset) {\n                    if (match_first < length) {\n                      uVar8 = (uint)(byte)string[match_first];\n                    }\n                    else {\n                      uVar8 = 0;\n                    }\n                    if (puVar50 != (uchar *)0x0) {\n                      uVar8 = (uint)puVar50[uVar8];\n                    }\n                    if (*(char *)((int)local_148.sbcset + uVar8) == '\0') {\n                      local_150.idx = 1;\n                      aVar49 = (anon_union_4_5_a39f51ca_for_opr)eflags;\n                      prVar51 = prVar52;\n                      goto LAB_000557e4;\n                    }\n                  }\n                }\n                prVar51 = prVar52;\n                bVar36 = piVar38 != (int *)0x0;\n                if ((mctx.state_log == (re_dfastate_t **)0x0) ||\n                   (((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + aVar56.idx))->mbcset =\n                         (re_charset_t *)unaff_s7, ((re_dfa_t *)aVar15.idx)->nbackref == 0)) {\nLAB_00054d50:\n                  if ((int)*(bin_tree_t **)(unaff_s7.idx + 0x34) << 4 < 0) {\n                    if (((*(byte *)(unaff_s7.idx + 0x34) & 1) == 0) ||\n                       (aVar45 = unaff_s7, aVar49 = aVar56,\n                       IVar17 = check_halt_state_context(&mctx,unaff_s7.idx,aVar56.idx), IVar17 != 0\n                       )) {\n                      local_c4 = aVar56;\n                      if (paVar54 == (anon_union_4_5_a39f51ca_for_opr *)0x0) goto LAB_00055dbc;\n                      prVar52 = (re_dfa_t *)0x1;\n                    }\n                    else {\n                      aVar56.idx = -1;\n                      prVar52 = (re_dfa_t *)0x0;\n                    }\n                  }\n                  else {\n                    aVar56.idx = -1;\n                    prVar52 = (re_dfa_t *)0x0;\n                  }\n                  pcVar9 = (code *)(PTR_DAT_000799a4 + -0x7144);\n                  pcVar10 = (code *)(PTR_DAT_000799a4 + -0x1980);\n                  pcVar11 = (code *)(PTR_DAT_000799a4 + -0x2f9c);\n                  local_c4 = aVar56;\n                  local_144 = piVar38;\n                  while( true ) {\n                    uVar63 = CONCAT44(mctx.input.valid_len,mctx.input.len);\n                    unaff_s5.sbcset = (re_bitset_ptr_t)(mctx.input.cur_idx + 1);\n                    aVar45.idx = mctx.input.cur_idx;\n                    if (mctx.input.stop <= mctx.input.cur_idx) break;\n                    if ((mctx.input.bufs_len <= unaff_s5.idx) &&\n                       (mctx.input.bufs_len < mctx.input.len)) goto LAB_00054e94;\n                    if (mctx.input.valid_len <= unaff_s5.idx) {\n                      while ((int)((ulonglong)uVar63 >> 0x20) < (int)uVar63) {\nLAB_00054e94:\n                        aVar45.sbcset =\n                             (re_bitset_ptr_t)\n                             ((int)&((re_string_t *)&(aVar45.mbcset)->mbchars)->raw_mbs + 2);\n                        err = (*pcVar9)(&mctx);\n                        if (err == _REG_NOERROR) break;\n                        aVar15 = aVar46;\n                        if (err == _REG_ESPACE) goto LAB_00055914;\n                        prVar51 = (re_dfa_t *)(PTR_s_nt0_000795b8 + 0x6eb0);\n                        aVar49.idx = 0x46c;\n                        aVar45.sbcset = (re_bitset_ptr_t)(PTR_s_nt0_000795b8 + 0x712c);\n                        uVar63 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0);\n                        prVar52 = prVar59;\n                      }\n                    }\n                    prVar3 = mctx.dfa;\n                    if ((int)*(bin_tree_t **)(unaff_s7.idx + 0x34) << 5 < 0) {\n                      paVar18 = (anon_union_4_5_a39f51ca_for_opr *)prVar3;\n                      if (0 < (int)(unaff_s7.mbcset)->range_ends) {\n                        pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6fdc);\n                        pcVar13 = (code *)(PTR_DAT_000799a4 + -0x6ef0);\n                        stop = 0;\n                        do {\n                          last_start = ((anon_union_4_5_a39f51ca_for_opr *)\n                                       ((unaff_s7.mbcset)->char_classes + stop))->idx;\n                          prVar53 = prVar3->nodes;\n                          uVar8 = *(uint *)&prVar53[last_start].field_0x4;\n                          if ((uVar8 & 0x800) != 0) {\n                            if ((uVar8 & 0xffc000) != 0) {\n                              aVar45.idx = mctx.input.cur_idx;\n                              uVar60 = (*pcVar13)(&mctx,mctx.input.cur_idx,mctx.eflags);\n                              uVar8 = (uint)(*(int *)&prVar53[last_start].field_0x4 << 8) >> 0x16;\n                              if ((uVar8 & 4) == 0) {\n                                uVar26 = uVar60 & 1;\n                                if ((uVar8 & 8) != 0) goto joined_r0x00054f40;\n                              }\n                              else {\n                                uVar26 = uVar8 & 8;\n                                if ((uVar60 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                                if (uVar26 != 0) goto LAB_000550a4;\n                              }\n                              if ((((uVar8 & 0x20) != 0) && ((uVar60 & 2) == 0)) ||\n                                 (((uVar8 & 0x80) != 0 &&\n                                  (prVar51 = (re_dfa_t *)mctx.input.cur_idx, (uVar60 & 8) == 0))))\n                              goto LAB_000550a4;\n                            }\n                            aVar49.sbcset = (re_bitset_ptr_t)&mctx;\n                            aVar45.idx = last_start;\n                            prVar51 = (re_dfa_t *)mctx.input.cur_idx;\n                            iVar61 = (*pcVar11)(prVar3);\n                            if (iVar61 != 0) {\n                              aVar46.sbcset = (re_bitset_ptr_t)(iVar61 + mctx.input.cur_idx);\n                              if (iVar61 <= mctx.max_mb_elem_len) {\n                                iVar61 = mctx.max_mb_elem_len;\n                              }\n                              aVar45.sbcset = aVar46.sbcset;\n                              mctx.max_mb_elem_len = iVar61;\n                              err_1 = (*pcVar12)(&mctx);\n                              rVar21 = err_1;\n                              if (err_1 != _REG_NOERROR) goto LAB_00055e44;\n                              aVar49.sbcset =\n                                   (re_bitset_ptr_t)(prVar3->eclosures + prVar3->nexts[last_start]);\n                              unaff_s4 = (re_dfa_t *)(aVar46.idx * 4);\n                              last_start = (Idx)(mctx.state_log + aVar46.idx);\n                              if (*(bitset_word_t *)last_start == 0) {\n                                dest_nodes.alloc = *aVar49.sbcset;\n                                dest_nodes.nelem =\n                                     ((re_node_set *)&(aVar49.mbcset)->range_starts)->alloc;\n                                dest_nodes.elems = (aVar49.mbcset)->range_ends;\n                                prVar51 = (re_dfa_t *)\n                                          (*pcVar13)(&mctx,(undefined1 *)(aVar46.idx + -1),\n                                                     mctx.eflags);\n                                aVar49.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                                aVar45 = (anon_union_4_5_a39f51ca_for_opr)prVar3;\n                                prVar35 = re_acquire_state_context\n                                                    (&err_1,prVar3,(re_node_set *)aVar49.mbcset,\n                                                     (uint)prVar51);\n                                ((re_string_t *)&((re_charset_t *)last_start)->mbchars)->raw_mbs =\n                                     (uchar *)prVar35;\n                              }\n                              else {\n                                aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                                         ((anon_union_4_5_a39f51ca_for_opr *)\n                                         (*(bitset_word_t *)last_start + 0x28))->mbcset;\n                                err_1 = re_node_set_init_union\n                                                  (&dest_nodes,(re_node_set *)aVar45.mbcset,\n                                                   (re_node_set *)aVar49.mbcset);\n                                rVar21 = err_1;\n                                if (err_1 != _REG_NOERROR) goto LAB_00055e44;\n                                prVar51 = (re_dfa_t *)\n                                          (*pcVar13)(&mctx,(undefined1 *)(aVar46.idx + -1),\n                                                     mctx.eflags);\n                                pprVar14 = mctx.state_log + aVar46.idx;\n                                aVar49.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                                aVar45 = (anon_union_4_5_a39f51ca_for_opr)prVar3;\n                                prVar35 = re_acquire_state_context\n                                                    (&err_1,prVar3,(re_node_set *)aVar49.mbcset,\n                                                     (uint)prVar51);\n                                *pprVar14 = prVar35;\n                                (*(code *)PTR_free_00079c24)(dest_nodes.elems);\n                              }\n                              unaff_s4 = (re_dfa_t *)(mctx.state_log + aVar46.idx);\n                              if ((unaff_s4->nodes == (re_token_t *)0x0) &&\n                                 (rVar21 = err_1, err_1 != _REG_NOERROR)) goto LAB_00055e44;\n                            }\n                          }\nLAB_000550a4:\n                          stop = (int)&((re_string_t *)&((re_charset_t *)stop)->mbchars)->raw_mbs +\n                                 1;\n                        } while (stop < (int)(unaff_s7.mbcset)->range_ends);\n                      }\n                      err = _REG_NOERROR;\n                    }\n                    uVar8 = (uint)mctx.input.mbs[mctx.input.cur_idx];\n                    mctx.input.cur_idx = mctx.input.cur_idx + 1;\n                    do {\n                      if (*(re_dfastate_t **)(unaff_s7.idx + 0x2c) != (re_dfastate_t *)0x0) {\n                        aVar49 = (anon_union_4_5_a39f51ca_for_opr)\n                                 ((anon_union_4_5_a39f51ca_for_opr *)\n                                 (&(*(re_dfastate_t **)(unaff_s7.idx + 0x2c))->hash + uVar8))->\n                                 mbcset;\nLAB_000553a0:\n                        aVar15 = aVar49;\n                        if (mctx.state_log != (re_dfastate_t **)0x0) goto LAB_000553ac;\n                        goto LAB_000553cc;\n                      }\n                      paVar18 = *(anon_union_4_5_a39f51ca_for_opr **)(unaff_s7.idx + 0x30);\n                      if (paVar18 != (anon_union_4_5_a39f51ca_for_opr *)0x0) {\n                        aVar45.sbcset = (re_bitset_ptr_t)(mctx.input.cur_idx + -1);\n                        uVar60 = re_string_context_at(&mctx.input,aVar45.idx,mctx.eflags);\n                        if ((uVar60 & 1) == 0) {\n                          aVar49 = (anon_union_4_5_a39f51ca_for_opr)paVar18[uVar8].mbcset;\n                        }\n                        else {\n                          paVar18 = paVar18 + uVar8 + 0x100;\n                          aVar49 = (anon_union_4_5_a39f51ca_for_opr)paVar18->mbcset;\n                        }\n                        goto LAB_000553a0;\n                      }\n                      aVar45 = unaff_s7;\n                      aVar49 = (anon_union_4_5_a39f51ca_for_opr)mctx.eflags;\n                      iVar61 = (*pcVar10)(mctx.dfa);\n                    } while (iVar61 != 0);\n                    err = _REG_ESPACE;\n                    rVar21 = err;\nLAB_00055e44:\n                    err = rVar21;\n                    aVar46.sbcset = (re_bitset_ptr_t)0x0;\n                    if (mctx.state_log == (re_dfastate_t **)0x0) {\n                      aVar15.sbcset = aVar46.sbcset;\n                      if (err != _REG_NOERROR) goto LAB_00055914;\n                      break;\n                    }\n                    aVar49.sbcset = (re_bitset_ptr_t)0x0;\nLAB_000553ac:\n                    aVar45.sbcset = (re_bitset_ptr_t)&mctx;\n                    aVar15.sbcset =\n                         &merge_state_with_log\n                                    (&err,(re_match_context_t *)aVar45.mbcset,aVar49.sbcset)->hash;\nLAB_000553cc:\n                    aVar46 = aVar15;\n                    if ((re_dfa_t *)aVar15.sbcset == (re_dfa_t *)0x0) {\n                      if (err != _REG_NOERROR) goto LAB_00055914;\n                      if ((mctx.state_log == (re_dfastate_t **)0x0) ||\n                         ((prVar52 != (re_dfa_t *)0x0 &&\n                          (paVar54 == (anon_union_4_5_a39f51ca_for_opr *)0x0)))) break;\n                      stop = (Idx)&mctx;\n                      last_start = (Idx)&err;\n                      paVar18 = (anon_union_4_5_a39f51ca_for_opr *)(PTR_DAT_000799a4 + 0x3684);\n                      do {\n                        pprVar14 = mctx.state_log + mctx.input.cur_idx;\n                        IVar17 = mctx.input.cur_idx;\n                        do {\n                          IVar17 = IVar17 + 1;\n                          aVar45.idx = mctx.state_log_top;\n                          aVar46 = aVar15;\n                          if (mctx.state_log_top < IVar17) goto LAB_00055da8;\n                          mctx.input.cur_idx = mctx.input.cur_idx + 1;\n                          pprVar14 = pprVar14 + 1;\n                        } while (*pprVar14 == (re_dfastate_t *)0x0);\n                        aVar49.sbcset = (re_bitset_ptr_t)0x0;\n                        aVar45.sbcset = (re_bitset_ptr_t)stop;\n                        aVar46.sbcset = (re_bitset_ptr_t)(*(code *)paVar18)(last_start);\n                        if (err != _REG_NOERROR) {\n                          if ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0) goto LAB_00055da8;\n                          break;\n                        }\n                        aVar45.idx = mctx.state_log_top;\n                      } while ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0);\n                    }\n                    aVar16.ctx_type = unaff_s7.ctx_type ^ aVar46.ctx_type;\n                    aVar56 = unaff_s7;\n                    aVar15 = local_138;\n                    if ((bVar36) &&\n                       (aVar56.ctx_type = aVar16.ctx_type, aVar15.sbcset = unaff_s5.sbcset,\n                       (re_dfa_t *)aVar16.sbcset != (re_dfa_t *)0x0)) {\n                      bVar36 = false;\n                      aVar15 = local_138;\n                    }\n                    local_138 = aVar15;\n                    unaff_s7 = aVar46;\n                    if (((*(byte *)(aVar46.idx + 0x34) & 8) != 0) &&\n                       (((*(byte *)(aVar46.idx + 0x34) & 1) == 0 ||\n                        (aVar45 = aVar46, aVar49.idx = mctx.input.cur_idx,\n                        IVar17 = check_halt_state_context(&mctx,aVar46.idx,mctx.input.cur_idx),\n                        IVar17 != 0)))) {\n                      unaff_s7 = aVar56;\n                      local_c4.idx = mctx.input.cur_idx;\n                      if (paVar54 == (anon_union_4_5_a39f51ca_for_opr *)0x0) goto LAB_00055dbc;\n                      prVar52 = (re_dfa_t *)0x1;\n                      local_144 = (int *)0x0;\n                      unaff_s7 = aVar46;\n                    }\n                  }\nLAB_00055da8:\n                  if (local_144 != (int *)0x0) {\n                    *local_144 = *local_144 + (int)local_138.sbcset;\n                  }\n                }\n                else {\n                  aVar46.sbcset = (re_bitset_ptr_t)&(unaff_s7.mbcset)->range_starts;\n                  aVar49.sbcset = (re_bitset_ptr_t)0x0;\n                  aVar45 = aVar46;\n                  err = check_subexp_matching_top(&mctx,(re_node_set *)aVar46.mbcset,0);\n                  local_c4.idx = err;\n                  if ((re_dfa_t *)err == (re_dfa_t *)0x0) {\n                    if ((*(byte *)(unaff_s7.idx + 0x34) & 2) == 0) {\n                      aVar45 = aVar46;\n                      bVar36 = false;\n                    }\n                    else {\n                      aVar45 = aVar46;\n                      err = transit_state_bkref(&mctx,(re_node_set *)aVar46.mbcset);\n                      local_c4.idx = err;\n                      if ((re_dfa_t *)err != (re_dfa_t *)0x0) goto LAB_00055dbc;\n                      bVar36 = false;\n                    }\n                    goto LAB_00054d50;\n                  }\n                }\nLAB_00055dbc:\n                if ((re_dfa_t *)local_c4.sbcset == (re_dfa_t *)0xffffffff) {\nLAB_00055b04:\n                  match_ctx_clean(&mctx);\nLAB_00055b1c:\n                  match_first = aVar39.idx + match_first;\n                  if (aVar40.idx <= match_first) goto code_r0x00055b38;\n                  local_150.idx = 1;\n                  goto LAB_000557e4;\n                }\n                if ((re_dfa_t *)local_c4.sbcset == (re_dfa_t *)&SUB_fffffffe) {\n                  local_150.idx = 0xc;\n                  goto LAB_000557e4;\n                }\n                mctx.match_last = local_c4.idx;\n                if ((preg->field_0x1c & 8) == 0) {\n                  if (aVar4.sbcset < (re_dfa_t *)0x2) {\n                    if (prVar59->nbackref == 0) goto LAB_00055c08;\n                    aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                             ((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + local_c4.idx))->\n                             mbcset;\n                    aVar49 = local_c4;\n                    mctx.last_node =\n                         check_halt_state_context(&mctx,(re_dfastate_t *)aVar45.mbcset,local_c4.idx)\n                    ;\n                  }\n                  else {\n                    aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                             ((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + local_c4.idx))->\n                             mbcset;\n                    aVar49 = local_c4;\n                    mctx.last_node =\n                         check_halt_state_context(&mctx,(re_dfastate_t *)aVar45.mbcset,local_c4.idx)\n                    ;\n                  }\n                  if (aVar4.sbcset < (re_dfa_t *)0x2) {\nLAB_00055c6c:\n                    prVar52 = prVar51;\n                    unaff_s4 = mctx.dfa;\n                    if (prVar59->nbackref == 0) goto LAB_00055548;\n                  }\n                  else {\n                    cVar37 = prVar59->field_0x58;\nLAB_00055c20:\n                    prVar52 = prVar51;\n                    if (-1 < cVar37) goto LAB_00055c6c;\n                  }\n                  paVar18 = (anon_union_4_5_a39f51ca_for_opr *)mctx.last_node;\n                  prVar3 = mctx.dfa;\n                  unaff_s4 = prVar3;\n                  if ((uint)local_c4 < (re_dfa_t *)0x3fffffff) {\n                    aVar46.idx = (int)((int)&((re_string_t *)&(local_c4.mbcset)->mbchars)->raw_mbs +\n                                      1) * 4;\n                    unaff_s5.sbcset = (re_bitset_ptr_t)(*(code *)PTR_malloc_00079b54)(aVar46.sbcset)\n                    ;\n                    if ((re_dfa_t *)unaff_s5.sbcset == (re_dfa_t *)0x0) {\nLAB_00055b9c:\n                      (*(code *)PTR_free_00079c24)(unaff_s5.sbcset);\n                      local_150.idx = 0xc;\n                      prVar51 = prVar52;\n                    }\n                    else {\n                      aVar45.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                      if (prVar3->nbackref == 0) {\n                        dest_nodes.nelem = 0;\n                        dest_nodes.elems = &paVar18->idx;\n                        dest_nodes.alloc = (Idx)unaff_s5.sbcset;\n                        last_start = sift_states_backward(&mctx,(re_sift_context_t *)aVar45.mbcset);\n                        (*(code *)PTR_free_00079c24)(0);\n                        if ((re_dfa_t *)last_start == (re_dfa_t *)0x0) {\n                          aVar46.mbcset = (re_charset_t *)*unaff_s5.sbcset;\n                          if ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0) {\nLAB_00055b70:\n                            (*(code *)PTR_free_00079c24)(unaff_s5.sbcset);\n                            (*(code *)PTR_free_00079c24)(aVar46.sbcset);\n                            prVar51 = prVar52;\n                            goto LAB_00055b04;\n                          }\nLAB_00055528:\n                          (*(code *)PTR_free_00079c24)(mctx.state_log);\n                          prVar51 = prVar52;\n                          unaff_s4 = prVar3;\n                          mctx.match_last = local_c4.idx;\n                          mctx.last_node = (Idx)paVar18;\n                          mctx.state_log = (re_dfastate_t **)unaff_s5.sbcset;\n                          goto LAB_00055548;\n                        }\nLAB_00055acc:\n                        aVar46.sbcset = (re_bitset_ptr_t)0x0;\n                        prVar51 = prVar52;\n                        unaff_s4 = prVar3;\n                      }\n                      else {\n                        aVar46.sbcset =\n                             (re_bitset_ptr_t)(*(code *)PTR_malloc_00079b54)(aVar46.sbcset);\n                        if ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0) goto LAB_00055b9c;\n                        unaff_s7.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                        pcVar9 = (code *)(PTR_DAT_000799a4 + 0x421c);\n                        pcVar10 = (code *)(PTR_DAT_000799a4 + -0x6bc0);\n                        prVar51 = prVar52;\n                        while( true ) {\n                          prVar52 = (re_dfa_t *)(local_c4.idx + 1);\n                          stop = (int)prVar52 * 4;\n                          aVar49.idx = stop;\n                          (*(code *)PTR_memset_00079b00)(aVar46.sbcset,0);\n                          aVar45.sbcset = unaff_s7.sbcset;\n                          dest_nodes.alloc = (Idx)unaff_s5.sbcset;\n                          dest_nodes.nelem = (Idx)aVar46.sbcset;\n                          dest_nodes.elems = (Idx *)paVar18;\n                          last_start = (*pcVar9)(&mctx);\n                          (*(code *)PTR_free_00079c24)(0);\n                          unaff_s4 = prVar52;\n                          if ((re_dfa_t *)last_start != (re_dfa_t *)0x0) break;\n                          if ((*unaff_s5.sbcset != 0) || (stop = stop + -4, *aVar46.sbcset != 0)) {\n                            aVar45.sbcset = unaff_s5.sbcset;\n                            aVar49.sbcset = aVar46.sbcset;\n                            last_start = merge_state_array(prVar3,(re_dfastate_t **)unaff_s5.sbcset,\n                                                           (re_dfastate_t **)aVar46.sbcset,\n                                                           (Idx)prVar52);\n                            (*(code *)PTR_free_00079c24)(aVar46.sbcset);\n                            if ((re_dfa_t *)last_start != (re_dfa_t *)0x0) goto LAB_00055acc;\n                            goto LAB_00055528;\n                          }\n                          stop = (Idx)(mctx.state_log + (int)&prVar52[-1].lock.__align + 0x17);\n                          do {\n                            while( true ) {\n                              local_c4.sbcset = (re_bitset_ptr_t)(local_c4.idx + -1);\n                              if (local_c4.idx < 0) goto LAB_00055b70;\n                              aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                                       ((anon_union_4_5_a39f51ca_for_opr *)(stop + -4))->idx;\n                              if ((re_dfa_t *)aVar45.sbcset != (re_dfa_t *)0x0) break;\n                              stop = stop + -4;\n                            }\n                            stop = stop + -4;\n                          } while ((*(byte *)(aVar45.idx + 0x34) & 8) == 0);\n                          paVar18 = (anon_union_4_5_a39f51ca_for_opr *)\n                                    (*pcVar10)(&mctx,aVar45.sbcset,local_c4.sbcset);\n                          prVar51 = prVar52;\n                        }\n                      }\n                      (*(code *)PTR_free_00079c24)(unaff_s5.sbcset);\n                      (*(code *)PTR_free_00079c24)(aVar46.sbcset);\n                      local_150.idx = last_start;\n                      if ((re_dfa_t *)last_start == (re_dfa_t *)0x1) goto LAB_00055b04;\n                    }\n                  }\n                  else {\n                    local_150.idx = 0xc;\n                    prVar51 = prVar52;\n                  }\n                  goto LAB_000557e4;\n                }\n                if (prVar59->nbackref != 0) {\n                  aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                           ((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + local_c4.idx))->\n                           mbcset;\n                  aVar49 = local_c4;\n                  mctx.last_node =\n                       check_halt_state_context(&mctx,(re_dfastate_t *)aVar45.mbcset,local_c4.idx);\n                  goto LAB_00055c6c;\n                }\nLAB_00055c08:\n                if (((preg->field_0x1c & 8) == 0) && ((re_dfa_t *)0x1 < aVar4.sbcset)) {\n                  cVar37 = prVar59->field_0x58;\n                  goto LAB_00055c20;\n                }\nLAB_00055548:\n                if ((re_dfa_t *)aVar4.sbcset == (re_dfa_t *)0x0) goto LAB_000557e4;\n                if (aVar4.sbcset < (re_dfa_t *)0x2) {\n                  pmatch->rm_so = 0;\n                  pmatch->rm_eo = mctx.match_last;\n                  goto LAB_000555ac;\n                }\n                prVar19 = pmatch + 1;\n                do {\n                  prVar19->rm_eo = -1;\n                  prVar19->rm_so = -1;\n                  prVar19 = prVar19 + 1;\n                } while (prVar19 != pmatch + aVar4.idx);\n                pmatch->rm_so = 0;\n                pmatch->rm_eo = mctx.match_last;\n                if ((preg->field_0x1c & 8) != 0) {\nLAB_000555ac:\n                  prVar19 = pmatch;\n                  do {\n                    aVar45.sbcset = (re_bitset_ptr_t)prVar19->rm_so;\n                    if ((re_dfa_t *)aVar45.sbcset != (re_dfa_t *)0xffffffff) {\n                      if (mctx.input.offsets_needed != '\0') {\n                        rVar47 = mctx.input.valid_raw_len;\n                        if (aVar45.sbcset != (re_bitset_ptr_t)mctx.input.valid_len) {\n                          rVar47 = mctx.input.offsets[aVar45.idx];\n                        }\n                        prVar19->rm_so = rVar47;\n                        rVar47 = mctx.input.valid_raw_len;\n                        if (mctx.input.valid_len != prVar19->rm_eo) {\n                          rVar47 = mctx.input.offsets[prVar19->rm_eo];\n                        }\n                        prVar19->rm_eo = rVar47;\n                      }\n                      prVar19->rm_so = prVar19->rm_so + match_first;\n                      aVar45.sbcset = (re_bitset_ptr_t)(prVar19->rm_eo + match_first);\n                      prVar19->rm_eo = (regoff_t)aVar45;\n                    }\n                    prVar19 = prVar19 + 1;\n                  } while (prVar19 != pmatch + aVar4.idx);\n                  if (0 < local_118) {\n                    prVar19 = pmatch + aVar4.idx;\n                    do {\n                      prVar19->rm_so = -1;\n                      prVar19->rm_eo = -1;\n                      prVar19 = prVar19 + 1;\n                    } while (prVar19 != pmatch + nmatch);\n                  }\n                  aVar49.idx = match_first;\n                  prVar51 = (re_dfa_t *)pmatch;\n                  local_150.sbcset = aVar7.sbcset;\n                  if (prVar59->subexp_map != (Idx *)0x0) {\n                    aVar49.sbcset = (re_bitset_ptr_t)(aVar4.idx + -1);\n                    prVar52 = (re_dfa_t *)0x0;\n                    prVar19 = pmatch;\n                    while( true ) {\n                      aVar45.idx = (int)prVar52 * 4;\n                      if ((re_dfa_t *)aVar49.sbcset == prVar52) break;\n                      if ((re_dfa_t *)prVar59->subexp_map[(int)prVar52] != prVar52) {\n                        prVar19[1].rm_so =\n                             pmatch[(int)((int)&((re_string_t *)\n                                                &((re_dfa_t *)prVar59->subexp_map[(int)prVar52])->\n                                                 nodes)->raw_mbs + 1)].rm_so;\n                        prVar19[1].rm_eo = pmatch[prVar59->subexp_map[(int)prVar52] + 1].rm_eo;\n                      }\n                      prVar52 = (re_dfa_t *)((int)&((re_string_t *)&prVar52->nodes)->raw_mbs + 1);\n                      prVar19 = prVar19 + 1;\n                    }\n                  }\n                  goto LAB_000557e4;\n                }\n                if ((char)prVar59->field_0x58 < '\0') {\n                  bVar36 = 0 < prVar59->nbackref;\n                }\n                else {\n                  bVar36 = false;\n                }\n                aVar45.sbcset = (re_bitset_ptr_t)&mctx;\n                aVar49.sbcset = aVar4.sbcset;\n                prVar51 = (re_dfa_t *)pmatch;\n                local_150.idx =\n                     set_regs(preg,(re_match_context_t *)aVar45.mbcset,aVar4.ctx_type,pmatch,bVar36)\n                ;\n                if ((re_dfa_t *)local_150.sbcset == (re_dfa_t *)0x0) goto LAB_000555ac;\n              }\n            }" if (parenthesized_expression "(start < aVar40.idx)" ( (binary_expression "start < aVar40.idx" identifier < (field_expression "aVar40.idx" identifier . field_identifier)) )) (compound_statement "{\n              local_150.idx = 1;\n              stop = aVar56.idx;\n            }" { (expression_statement "local_150.idx = 1;" (assignment_expression "local_150.idx = 1" (field_expression "local_150.idx" identifier . field_identifier) = number_literal) ;) (expression_statement "stop = aVar56.idx;" (assignment_expression "stop = aVar56.idx" identifier = (field_expression "aVar56.idx" identifier . field_identifier)) ;) }) (else_clause "else {\n              aVar46.idx._0_3_ = 0;\n              aVar46.idx._3_1_ = last_start < start;\n              if (aVar41.idx < start) {\n                local_150.idx = 1;\n                stop = aVar56.idx;\n              }\n              else {\n                piVar38 = &match_first;\n                if ((re_dfa_t *)aVar46.sbcset != (re_dfa_t *)0x0) {\n                  piVar38 = (int *)0x0;\n                }\n                pcVar5 = (code *)(PTR_DAT_000799a4 + -0x2b7c);\n                piVar6 = (int *)(PTR_s_nt0_000795b8 + (rVar20 - 4) * 4 + 0x6e38);\nLAB_00055b44:\n                if (rVar20 - 4 < 5) {\n                    /* WARNING: Could not emulate address calculation at 0x00054920 */\n                    /* WARNING: Treating indirect jump as call */\n                  rVar21 = (*(code *)(&_gp + *piVar6))();\n                  return rVar21;\n                }\n                last_start = (Idx)&mctx;\n                prVar52 = prVar51;\n                while( true ) {\n                  aVar46.idx = match_first;\n                  uVar8 = match_first - mctx.input.raw_mbs_idx;\n                  aVar49 = (anon_union_4_5_a39f51ca_for_opr)eflags;\n                  paVar18 = paVar2;\n                  stop = local_148.idx;\n                  unaff_s4 = (re_dfa_t *)length;\n                  unaff_s5 = aVar39;\n                  unaff_s7 = aVar41;\n                  if ((uint)mctx.input.valid_raw_len <= uVar8) {\n                    aVar45.idx = match_first;\n                    local_150.sbcset = (re_bitset_ptr_t)(*pcVar5)(last_start);\n                    prVar51 = prVar52;\n                    if ((re_dfa_t *)local_150.sbcset != (re_dfa_t *)0x0) goto LAB_000557e4;\n                    uVar8 = (int)aVar46.sbcset - mctx.input.raw_mbs_idx;\n                  }\n                  if (aVar46.idx < length) {\n                    uVar8 = (uint)mctx.input.mbs[uVar8];\n                  }\n                  else {\n                    uVar8 = 0;\n                  }\n                  aVar56.sbcset = aVar46.sbcset + aVar39.sbcset;\n                  aVar46.sbcset = aVar56.sbcset;\n                  if (*(char *)((int)local_148.sbcset + uVar8) != '\0') break;\n                  prVar51 = prVar52;\n                  match_first = aVar56.idx;\n                  if (aVar56.idx < aVar40.idx) {\n                    local_150.idx = 1;\n                    goto LAB_000557e4;\n                  }\n                  aVar46.idx._0_3_ = 0;\n                  aVar46.idx._3_1_ = aVar41.idx < aVar56.idx;\n                  if ((re_dfa_t *)aVar46.sbcset != (re_dfa_t *)0x0) {\n                    local_150.idx = 1;\n                    goto LAB_000557e4;\n                  }\n                }\n                while( true ) {\n                  aVar45.idx = match_first;\n                  aVar49 = (anon_union_4_5_a39f51ca_for_opr)eflags;\n                  aVar7.sbcset = (re_bitset_ptr_t)(*pcVar5)(&mctx);\n                  aVar15 = (anon_union_4_5_a39f51ca_for_opr)mctx.dfa;\n                  aVar56.idx = mctx.input.cur_idx;\n                  prVar51 = prVar52;\n                  local_150.sbcset = aVar7.sbcset;\n                  if ((re_dfa_t *)aVar7.sbcset != (re_dfa_t *)0x0) goto LAB_000557e4;\n                  if (((iVar55 != 1) && (mctx.input.valid_len != 0)) &&\n                     (*mctx.input.wcs == 0xffffffff)) goto LAB_00055b1c;\n                  mctx.max_mb_elem_len = 0;\n                  mctx.nbkref_ents = 0;\n                  mctx.state_log_top = 0;\n                  local_138.idx = mctx.input.cur_idx;\n                  err = _REG_NOERROR;\n                  unaff_s7 = (anon_union_4_5_a39f51ca_for_opr)(mctx.dfa)->init_state;\n                  aVar49 = (anon_union_4_5_a39f51ca_for_opr)mctx.eflags;\n                  aVar46 = aVar15;\n                  if ((*(byte *)(unaff_s7.idx + 0x34) & 1) == 0) break;\n                  aVar45.sbcset = (re_bitset_ptr_t)(mctx.input.cur_idx + -1);\n                  prVar51 = (re_dfa_t *)re_string_context_at(&mctx.input,aVar45.idx,mctx.eflags);\n                  if (((uint)prVar51 & 1) == 0) {\n                    if (prVar51 == (re_dfa_t *)0x0) break;\n                    if (((uint)prVar51 & 6) == 6) {\n                      unaff_s7 = (anon_union_4_5_a39f51ca_for_opr)\n                                 ((re_dfa_t *)aVar15.idx)->init_state_begbuf;\n                      goto LAB_00054d1c;\n                    }\n                    if (((uint)prVar51 & 2) != 0) {\n                      unaff_s7 = (anon_union_4_5_a39f51ca_for_opr)\n                                 ((re_dfa_t *)aVar15.idx)->init_state_nl;\n                      goto LAB_00054d1c;\n                    }\n                    prVar52 = prVar51;\n                    if (((uint)prVar51 & 4) == 0) break;\n                    aVar49 = (anon_union_4_5_a39f51ca_for_opr)\n                             ((anon_union_4_5_a39f51ca_for_opr *)(unaff_s7.idx + 0x28))->mbcset;\n                    aVar45 = aVar15;\n                    unaff_s7.sbcset =\n                         &re_acquire_state_context\n                                    (&err,aVar15.sbcset,(re_node_set *)aVar49.mbcset,(uint)prVar51)\n                          ->hash;\n                    prVar52 = prVar51;\n                    if ((re_dfa_t *)unaff_s7.sbcset != (re_dfa_t *)0x0) break;\n                    if (err == _REG_ESPACE) goto LAB_00055914;\n                  }\n                  else {\n                    unaff_s7 = (anon_union_4_5_a39f51ca_for_opr)\n                               ((re_dfa_t *)aVar15.idx)->init_state_word;\nLAB_00054d1c:\n                    prVar52 = (re_dfa_t *)PTR_s_nt0_000795b8;\n                    if ((re_dfa_t *)unaff_s7.sbcset != (re_dfa_t *)0x0) break;\n                  }\n                  prVar52 = (re_dfa_t *)(PTR_s_nt0_000795b8 + 0x6eb0);\n                  aVar45.sbcset = (re_bitset_ptr_t)(PTR_s_nt0_000795b8 + 0x712c);\n                  match_first = (*(code *)PTR___assert_fail_000799f8)\n                                          (PTR_s_nt0_000795b8 + 0x71a0,aVar45.sbcset,0x435);\n                  if ((re_bitset_ptr_t)match_first == aVar41.sbcset) {\n                    if (match_first < length) {\n                      uVar8 = (uint)(byte)string[match_first];\n                    }\n                    else {\n                      uVar8 = 0;\n                    }\n                    if (puVar50 != (uchar *)0x0) {\n                      uVar8 = (uint)puVar50[uVar8];\n                    }\n                    if (*(char *)((int)local_148.sbcset + uVar8) == '\0') {\n                      local_150.idx = 1;\n                      aVar49 = (anon_union_4_5_a39f51ca_for_opr)eflags;\n                      prVar51 = prVar52;\n                      goto LAB_000557e4;\n                    }\n                  }\n                }\n                prVar51 = prVar52;\n                bVar36 = piVar38 != (int *)0x0;\n                if ((mctx.state_log == (re_dfastate_t **)0x0) ||\n                   (((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + aVar56.idx))->mbcset =\n                         (re_charset_t *)unaff_s7, ((re_dfa_t *)aVar15.idx)->nbackref == 0)) {\nLAB_00054d50:\n                  if ((int)*(bin_tree_t **)(unaff_s7.idx + 0x34) << 4 < 0) {\n                    if (((*(byte *)(unaff_s7.idx + 0x34) & 1) == 0) ||\n                       (aVar45 = unaff_s7, aVar49 = aVar56,\n                       IVar17 = check_halt_state_context(&mctx,unaff_s7.idx,aVar56.idx), IVar17 != 0\n                       )) {\n                      local_c4 = aVar56;\n                      if (paVar54 == (anon_union_4_5_a39f51ca_for_opr *)0x0) goto LAB_00055dbc;\n                      prVar52 = (re_dfa_t *)0x1;\n                    }\n                    else {\n                      aVar56.idx = -1;\n                      prVar52 = (re_dfa_t *)0x0;\n                    }\n                  }\n                  else {\n                    aVar56.idx = -1;\n                    prVar52 = (re_dfa_t *)0x0;\n                  }\n                  pcVar9 = (code *)(PTR_DAT_000799a4 + -0x7144);\n                  pcVar10 = (code *)(PTR_DAT_000799a4 + -0x1980);\n                  pcVar11 = (code *)(PTR_DAT_000799a4 + -0x2f9c);\n                  local_c4 = aVar56;\n                  local_144 = piVar38;\n                  while( true ) {\n                    uVar63 = CONCAT44(mctx.input.valid_len,mctx.input.len);\n                    unaff_s5.sbcset = (re_bitset_ptr_t)(mctx.input.cur_idx + 1);\n                    aVar45.idx = mctx.input.cur_idx;\n                    if (mctx.input.stop <= mctx.input.cur_idx) break;\n                    if ((mctx.input.bufs_len <= unaff_s5.idx) &&\n                       (mctx.input.bufs_len < mctx.input.len)) goto LAB_00054e94;\n                    if (mctx.input.valid_len <= unaff_s5.idx) {\n                      while ((int)((ulonglong)uVar63 >> 0x20) < (int)uVar63) {\nLAB_00054e94:\n                        aVar45.sbcset =\n                             (re_bitset_ptr_t)\n                             ((int)&((re_string_t *)&(aVar45.mbcset)->mbchars)->raw_mbs + 2);\n                        err = (*pcVar9)(&mctx);\n                        if (err == _REG_NOERROR) break;\n                        aVar15 = aVar46;\n                        if (err == _REG_ESPACE) goto LAB_00055914;\n                        prVar51 = (re_dfa_t *)(PTR_s_nt0_000795b8 + 0x6eb0);\n                        aVar49.idx = 0x46c;\n                        aVar45.sbcset = (re_bitset_ptr_t)(PTR_s_nt0_000795b8 + 0x712c);\n                        uVar63 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0);\n                        prVar52 = prVar59;\n                      }\n                    }\n                    prVar3 = mctx.dfa;\n                    if ((int)*(bin_tree_t **)(unaff_s7.idx + 0x34) << 5 < 0) {\n                      paVar18 = (anon_union_4_5_a39f51ca_for_opr *)prVar3;\n                      if (0 < (int)(unaff_s7.mbcset)->range_ends) {\n                        pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6fdc);\n                        pcVar13 = (code *)(PTR_DAT_000799a4 + -0x6ef0);\n                        stop = 0;\n                        do {\n                          last_start = ((anon_union_4_5_a39f51ca_for_opr *)\n                                       ((unaff_s7.mbcset)->char_classes + stop))->idx;\n                          prVar53 = prVar3->nodes;\n                          uVar8 = *(uint *)&prVar53[last_start].field_0x4;\n                          if ((uVar8 & 0x800) != 0) {\n                            if ((uVar8 & 0xffc000) != 0) {\n                              aVar45.idx = mctx.input.cur_idx;\n                              uVar60 = (*pcVar13)(&mctx,mctx.input.cur_idx,mctx.eflags);\n                              uVar8 = (uint)(*(int *)&prVar53[last_start].field_0x4 << 8) >> 0x16;\n                              if ((uVar8 & 4) == 0) {\n                                uVar26 = uVar60 & 1;\n                                if ((uVar8 & 8) != 0) goto joined_r0x00054f40;\n                              }\n                              else {\n                                uVar26 = uVar8 & 8;\n                                if ((uVar60 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                                if (uVar26 != 0) goto LAB_000550a4;\n                              }\n                              if ((((uVar8 & 0x20) != 0) && ((uVar60 & 2) == 0)) ||\n                                 (((uVar8 & 0x80) != 0 &&\n                                  (prVar51 = (re_dfa_t *)mctx.input.cur_idx, (uVar60 & 8) == 0))))\n                              goto LAB_000550a4;\n                            }\n                            aVar49.sbcset = (re_bitset_ptr_t)&mctx;\n                            aVar45.idx = last_start;\n                            prVar51 = (re_dfa_t *)mctx.input.cur_idx;\n                            iVar61 = (*pcVar11)(prVar3);\n                            if (iVar61 != 0) {\n                              aVar46.sbcset = (re_bitset_ptr_t)(iVar61 + mctx.input.cur_idx);\n                              if (iVar61 <= mctx.max_mb_elem_len) {\n                                iVar61 = mctx.max_mb_elem_len;\n                              }\n                              aVar45.sbcset = aVar46.sbcset;\n                              mctx.max_mb_elem_len = iVar61;\n                              err_1 = (*pcVar12)(&mctx);\n                              rVar21 = err_1;\n                              if (err_1 != _REG_NOERROR) goto LAB_00055e44;\n                              aVar49.sbcset =\n                                   (re_bitset_ptr_t)(prVar3->eclosures + prVar3->nexts[last_start]);\n                              unaff_s4 = (re_dfa_t *)(aVar46.idx * 4);\n                              last_start = (Idx)(mctx.state_log + aVar46.idx);\n                              if (*(bitset_word_t *)last_start == 0) {\n                                dest_nodes.alloc = *aVar49.sbcset;\n                                dest_nodes.nelem =\n                                     ((re_node_set *)&(aVar49.mbcset)->range_starts)->alloc;\n                                dest_nodes.elems = (aVar49.mbcset)->range_ends;\n                                prVar51 = (re_dfa_t *)\n                                          (*pcVar13)(&mctx,(undefined1 *)(aVar46.idx + -1),\n                                                     mctx.eflags);\n                                aVar49.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                                aVar45 = (anon_union_4_5_a39f51ca_for_opr)prVar3;\n                                prVar35 = re_acquire_state_context\n                                                    (&err_1,prVar3,(re_node_set *)aVar49.mbcset,\n                                                     (uint)prVar51);\n                                ((re_string_t *)&((re_charset_t *)last_start)->mbchars)->raw_mbs =\n                                     (uchar *)prVar35;\n                              }\n                              else {\n                                aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                                         ((anon_union_4_5_a39f51ca_for_opr *)\n                                         (*(bitset_word_t *)last_start + 0x28))->mbcset;\n                                err_1 = re_node_set_init_union\n                                                  (&dest_nodes,(re_node_set *)aVar45.mbcset,\n                                                   (re_node_set *)aVar49.mbcset);\n                                rVar21 = err_1;\n                                if (err_1 != _REG_NOERROR) goto LAB_00055e44;\n                                prVar51 = (re_dfa_t *)\n                                          (*pcVar13)(&mctx,(undefined1 *)(aVar46.idx + -1),\n                                                     mctx.eflags);\n                                pprVar14 = mctx.state_log + aVar46.idx;\n                                aVar49.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                                aVar45 = (anon_union_4_5_a39f51ca_for_opr)prVar3;\n                                prVar35 = re_acquire_state_context\n                                                    (&err_1,prVar3,(re_node_set *)aVar49.mbcset,\n                                                     (uint)prVar51);\n                                *pprVar14 = prVar35;\n                                (*(code *)PTR_free_00079c24)(dest_nodes.elems);\n                              }\n                              unaff_s4 = (re_dfa_t *)(mctx.state_log + aVar46.idx);\n                              if ((unaff_s4->nodes == (re_token_t *)0x0) &&\n                                 (rVar21 = err_1, err_1 != _REG_NOERROR)) goto LAB_00055e44;\n                            }\n                          }\nLAB_000550a4:\n                          stop = (int)&((re_string_t *)&((re_charset_t *)stop)->mbchars)->raw_mbs +\n                                 1;\n                        } while (stop < (int)(unaff_s7.mbcset)->range_ends);\n                      }\n                      err = _REG_NOERROR;\n                    }\n                    uVar8 = (uint)mctx.input.mbs[mctx.input.cur_idx];\n                    mctx.input.cur_idx = mctx.input.cur_idx + 1;\n                    do {\n                      if (*(re_dfastate_t **)(unaff_s7.idx + 0x2c) != (re_dfastate_t *)0x0) {\n                        aVar49 = (anon_union_4_5_a39f51ca_for_opr)\n                                 ((anon_union_4_5_a39f51ca_for_opr *)\n                                 (&(*(re_dfastate_t **)(unaff_s7.idx + 0x2c))->hash + uVar8))->\n                                 mbcset;\nLAB_000553a0:\n                        aVar15 = aVar49;\n                        if (mctx.state_log != (re_dfastate_t **)0x0) goto LAB_000553ac;\n                        goto LAB_000553cc;\n                      }\n                      paVar18 = *(anon_union_4_5_a39f51ca_for_opr **)(unaff_s7.idx + 0x30);\n                      if (paVar18 != (anon_union_4_5_a39f51ca_for_opr *)0x0) {\n                        aVar45.sbcset = (re_bitset_ptr_t)(mctx.input.cur_idx + -1);\n                        uVar60 = re_string_context_at(&mctx.input,aVar45.idx,mctx.eflags);\n                        if ((uVar60 & 1) == 0) {\n                          aVar49 = (anon_union_4_5_a39f51ca_for_opr)paVar18[uVar8].mbcset;\n                        }\n                        else {\n                          paVar18 = paVar18 + uVar8 + 0x100;\n                          aVar49 = (anon_union_4_5_a39f51ca_for_opr)paVar18->mbcset;\n                        }\n                        goto LAB_000553a0;\n                      }\n                      aVar45 = unaff_s7;\n                      aVar49 = (anon_union_4_5_a39f51ca_for_opr)mctx.eflags;\n                      iVar61 = (*pcVar10)(mctx.dfa);\n                    } while (iVar61 != 0);\n                    err = _REG_ESPACE;\n                    rVar21 = err;\nLAB_00055e44:\n                    err = rVar21;\n                    aVar46.sbcset = (re_bitset_ptr_t)0x0;\n                    if (mctx.state_log == (re_dfastate_t **)0x0) {\n                      aVar15.sbcset = aVar46.sbcset;\n                      if (err != _REG_NOERROR) goto LAB_00055914;\n                      break;\n                    }\n                    aVar49.sbcset = (re_bitset_ptr_t)0x0;\nLAB_000553ac:\n                    aVar45.sbcset = (re_bitset_ptr_t)&mctx;\n                    aVar15.sbcset =\n                         &merge_state_with_log\n                                    (&err,(re_match_context_t *)aVar45.mbcset,aVar49.sbcset)->hash;\nLAB_000553cc:\n                    aVar46 = aVar15;\n                    if ((re_dfa_t *)aVar15.sbcset == (re_dfa_t *)0x0) {\n                      if (err != _REG_NOERROR) goto LAB_00055914;\n                      if ((mctx.state_log == (re_dfastate_t **)0x0) ||\n                         ((prVar52 != (re_dfa_t *)0x0 &&\n                          (paVar54 == (anon_union_4_5_a39f51ca_for_opr *)0x0)))) break;\n                      stop = (Idx)&mctx;\n                      last_start = (Idx)&err;\n                      paVar18 = (anon_union_4_5_a39f51ca_for_opr *)(PTR_DAT_000799a4 + 0x3684);\n                      do {\n                        pprVar14 = mctx.state_log + mctx.input.cur_idx;\n                        IVar17 = mctx.input.cur_idx;\n                        do {\n                          IVar17 = IVar17 + 1;\n                          aVar45.idx = mctx.state_log_top;\n                          aVar46 = aVar15;\n                          if (mctx.state_log_top < IVar17) goto LAB_00055da8;\n                          mctx.input.cur_idx = mctx.input.cur_idx + 1;\n                          pprVar14 = pprVar14 + 1;\n                        } while (*pprVar14 == (re_dfastate_t *)0x0);\n                        aVar49.sbcset = (re_bitset_ptr_t)0x0;\n                        aVar45.sbcset = (re_bitset_ptr_t)stop;\n                        aVar46.sbcset = (re_bitset_ptr_t)(*(code *)paVar18)(last_start);\n                        if (err != _REG_NOERROR) {\n                          if ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0) goto LAB_00055da8;\n                          break;\n                        }\n                        aVar45.idx = mctx.state_log_top;\n                      } while ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0);\n                    }\n                    aVar16.ctx_type = unaff_s7.ctx_type ^ aVar46.ctx_type;\n                    aVar56 = unaff_s7;\n                    aVar15 = local_138;\n                    if ((bVar36) &&\n                       (aVar56.ctx_type = aVar16.ctx_type, aVar15.sbcset = unaff_s5.sbcset,\n                       (re_dfa_t *)aVar16.sbcset != (re_dfa_t *)0x0)) {\n                      bVar36 = false;\n                      aVar15 = local_138;\n                    }\n                    local_138 = aVar15;\n                    unaff_s7 = aVar46;\n                    if (((*(byte *)(aVar46.idx + 0x34) & 8) != 0) &&\n                       (((*(byte *)(aVar46.idx + 0x34) & 1) == 0 ||\n                        (aVar45 = aVar46, aVar49.idx = mctx.input.cur_idx,\n                        IVar17 = check_halt_state_context(&mctx,aVar46.idx,mctx.input.cur_idx),\n                        IVar17 != 0)))) {\n                      unaff_s7 = aVar56;\n                      local_c4.idx = mctx.input.cur_idx;\n                      if (paVar54 == (anon_union_4_5_a39f51ca_for_opr *)0x0) goto LAB_00055dbc;\n                      prVar52 = (re_dfa_t *)0x1;\n                      local_144 = (int *)0x0;\n                      unaff_s7 = aVar46;\n                    }\n                  }\nLAB_00055da8:\n                  if (local_144 != (int *)0x0) {\n                    *local_144 = *local_144 + (int)local_138.sbcset;\n                  }\n                }\n                else {\n                  aVar46.sbcset = (re_bitset_ptr_t)&(unaff_s7.mbcset)->range_starts;\n                  aVar49.sbcset = (re_bitset_ptr_t)0x0;\n                  aVar45 = aVar46;\n                  err = check_subexp_matching_top(&mctx,(re_node_set *)aVar46.mbcset,0);\n                  local_c4.idx = err;\n                  if ((re_dfa_t *)err == (re_dfa_t *)0x0) {\n                    if ((*(byte *)(unaff_s7.idx + 0x34) & 2) == 0) {\n                      aVar45 = aVar46;\n                      bVar36 = false;\n                    }\n                    else {\n                      aVar45 = aVar46;\n                      err = transit_state_bkref(&mctx,(re_node_set *)aVar46.mbcset);\n                      local_c4.idx = err;\n                      if ((re_dfa_t *)err != (re_dfa_t *)0x0) goto LAB_00055dbc;\n                      bVar36 = false;\n                    }\n                    goto LAB_00054d50;\n                  }\n                }\nLAB_00055dbc:\n                if ((re_dfa_t *)local_c4.sbcset == (re_dfa_t *)0xffffffff) {\nLAB_00055b04:\n                  match_ctx_clean(&mctx);\nLAB_00055b1c:\n                  match_first = aVar39.idx + match_first;\n                  if (aVar40.idx <= match_first) goto code_r0x00055b38;\n                  local_150.idx = 1;\n                  goto LAB_000557e4;\n                }\n                if ((re_dfa_t *)local_c4.sbcset == (re_dfa_t *)&SUB_fffffffe) {\n                  local_150.idx = 0xc;\n                  goto LAB_000557e4;\n                }\n                mctx.match_last = local_c4.idx;\n                if ((preg->field_0x1c & 8) == 0) {\n                  if (aVar4.sbcset < (re_dfa_t *)0x2) {\n                    if (prVar59->nbackref == 0) goto LAB_00055c08;\n                    aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                             ((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + local_c4.idx))->\n                             mbcset;\n                    aVar49 = local_c4;\n                    mctx.last_node =\n                         check_halt_state_context(&mctx,(re_dfastate_t *)aVar45.mbcset,local_c4.idx)\n                    ;\n                  }\n                  else {\n                    aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                             ((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + local_c4.idx))->\n                             mbcset;\n                    aVar49 = local_c4;\n                    mctx.last_node =\n                         check_halt_state_context(&mctx,(re_dfastate_t *)aVar45.mbcset,local_c4.idx)\n                    ;\n                  }\n                  if (aVar4.sbcset < (re_dfa_t *)0x2) {\nLAB_00055c6c:\n                    prVar52 = prVar51;\n                    unaff_s4 = mctx.dfa;\n                    if (prVar59->nbackref == 0) goto LAB_00055548;\n                  }\n                  else {\n                    cVar37 = prVar59->field_0x58;\nLAB_00055c20:\n                    prVar52 = prVar51;\n                    if (-1 < cVar37) goto LAB_00055c6c;\n                  }\n                  paVar18 = (anon_union_4_5_a39f51ca_for_opr *)mctx.last_node;\n                  prVar3 = mctx.dfa;\n                  unaff_s4 = prVar3;\n                  if ((uint)local_c4 < (re_dfa_t *)0x3fffffff) {\n                    aVar46.idx = (int)((int)&((re_string_t *)&(local_c4.mbcset)->mbchars)->raw_mbs +\n                                      1) * 4;\n                    unaff_s5.sbcset = (re_bitset_ptr_t)(*(code *)PTR_malloc_00079b54)(aVar46.sbcset)\n                    ;\n                    if ((re_dfa_t *)unaff_s5.sbcset == (re_dfa_t *)0x0) {\nLAB_00055b9c:\n                      (*(code *)PTR_free_00079c24)(unaff_s5.sbcset);\n                      local_150.idx = 0xc;\n                      prVar51 = prVar52;\n                    }\n                    else {\n                      aVar45.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                      if (prVar3->nbackref == 0) {\n                        dest_nodes.nelem = 0;\n                        dest_nodes.elems = &paVar18->idx;\n                        dest_nodes.alloc = (Idx)unaff_s5.sbcset;\n                        last_start = sift_states_backward(&mctx,(re_sift_context_t *)aVar45.mbcset);\n                        (*(code *)PTR_free_00079c24)(0);\n                        if ((re_dfa_t *)last_start == (re_dfa_t *)0x0) {\n                          aVar46.mbcset = (re_charset_t *)*unaff_s5.sbcset;\n                          if ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0) {\nLAB_00055b70:\n                            (*(code *)PTR_free_00079c24)(unaff_s5.sbcset);\n                            (*(code *)PTR_free_00079c24)(aVar46.sbcset);\n                            prVar51 = prVar52;\n                            goto LAB_00055b04;\n                          }\nLAB_00055528:\n                          (*(code *)PTR_free_00079c24)(mctx.state_log);\n                          prVar51 = prVar52;\n                          unaff_s4 = prVar3;\n                          mctx.match_last = local_c4.idx;\n                          mctx.last_node = (Idx)paVar18;\n                          mctx.state_log = (re_dfastate_t **)unaff_s5.sbcset;\n                          goto LAB_00055548;\n                        }\nLAB_00055acc:\n                        aVar46.sbcset = (re_bitset_ptr_t)0x0;\n                        prVar51 = prVar52;\n                        unaff_s4 = prVar3;\n                      }\n                      else {\n                        aVar46.sbcset =\n                             (re_bitset_ptr_t)(*(code *)PTR_malloc_00079b54)(aVar46.sbcset);\n                        if ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0) goto LAB_00055b9c;\n                        unaff_s7.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                        pcVar9 = (code *)(PTR_DAT_000799a4 + 0x421c);\n                        pcVar10 = (code *)(PTR_DAT_000799a4 + -0x6bc0);\n                        prVar51 = prVar52;\n                        while( true ) {\n                          prVar52 = (re_dfa_t *)(local_c4.idx + 1);\n                          stop = (int)prVar52 * 4;\n                          aVar49.idx = stop;\n                          (*(code *)PTR_memset_00079b00)(aVar46.sbcset,0);\n                          aVar45.sbcset = unaff_s7.sbcset;\n                          dest_nodes.alloc = (Idx)unaff_s5.sbcset;\n                          dest_nodes.nelem = (Idx)aVar46.sbcset;\n                          dest_nodes.elems = (Idx *)paVar18;\n                          last_start = (*pcVar9)(&mctx);\n                          (*(code *)PTR_free_00079c24)(0);\n                          unaff_s4 = prVar52;\n                          if ((re_dfa_t *)last_start != (re_dfa_t *)0x0) break;\n                          if ((*unaff_s5.sbcset != 0) || (stop = stop + -4, *aVar46.sbcset != 0)) {\n                            aVar45.sbcset = unaff_s5.sbcset;\n                            aVar49.sbcset = aVar46.sbcset;\n                            last_start = merge_state_array(prVar3,(re_dfastate_t **)unaff_s5.sbcset,\n                                                           (re_dfastate_t **)aVar46.sbcset,\n                                                           (Idx)prVar52);\n                            (*(code *)PTR_free_00079c24)(aVar46.sbcset);\n                            if ((re_dfa_t *)last_start != (re_dfa_t *)0x0) goto LAB_00055acc;\n                            goto LAB_00055528;\n                          }\n                          stop = (Idx)(mctx.state_log + (int)&prVar52[-1].lock.__align + 0x17);\n                          do {\n                            while( true ) {\n                              local_c4.sbcset = (re_bitset_ptr_t)(local_c4.idx + -1);\n                              if (local_c4.idx < 0) goto LAB_00055b70;\n                              aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                                       ((anon_union_4_5_a39f51ca_for_opr *)(stop + -4))->idx;\n                              if ((re_dfa_t *)aVar45.sbcset != (re_dfa_t *)0x0) break;\n                              stop = stop + -4;\n                            }\n                            stop = stop + -4;\n                          } while ((*(byte *)(aVar45.idx + 0x34) & 8) == 0);\n                          paVar18 = (anon_union_4_5_a39f51ca_for_opr *)\n                                    (*pcVar10)(&mctx,aVar45.sbcset,local_c4.sbcset);\n                          prVar51 = prVar52;\n                        }\n                      }\n                      (*(code *)PTR_free_00079c24)(unaff_s5.sbcset);\n                      (*(code *)PTR_free_00079c24)(aVar46.sbcset);\n                      local_150.idx = last_start;\n                      if ((re_dfa_t *)last_start == (re_dfa_t *)0x1) goto LAB_00055b04;\n                    }\n                  }\n                  else {\n                    local_150.idx = 0xc;\n                    prVar51 = prVar52;\n                  }\n                  goto LAB_000557e4;\n                }\n                if (prVar59->nbackref != 0) {\n                  aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                           ((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + local_c4.idx))->\n                           mbcset;\n                  aVar49 = local_c4;\n                  mctx.last_node =\n                       check_halt_state_context(&mctx,(re_dfastate_t *)aVar45.mbcset,local_c4.idx);\n                  goto LAB_00055c6c;\n                }\nLAB_00055c08:\n                if (((preg->field_0x1c & 8) == 0) && ((re_dfa_t *)0x1 < aVar4.sbcset)) {\n                  cVar37 = prVar59->field_0x58;\n                  goto LAB_00055c20;\n                }\nLAB_00055548:\n                if ((re_dfa_t *)aVar4.sbcset == (re_dfa_t *)0x0) goto LAB_000557e4;\n                if (aVar4.sbcset < (re_dfa_t *)0x2) {\n                  pmatch->rm_so = 0;\n                  pmatch->rm_eo = mctx.match_last;\n                  goto LAB_000555ac;\n                }\n                prVar19 = pmatch + 1;\n                do {\n                  prVar19->rm_eo = -1;\n                  prVar19->rm_so = -1;\n                  prVar19 = prVar19 + 1;\n                } while (prVar19 != pmatch + aVar4.idx);\n                pmatch->rm_so = 0;\n                pmatch->rm_eo = mctx.match_last;\n                if ((preg->field_0x1c & 8) != 0) {\nLAB_000555ac:\n                  prVar19 = pmatch;\n                  do {\n                    aVar45.sbcset = (re_bitset_ptr_t)prVar19->rm_so;\n                    if ((re_dfa_t *)aVar45.sbcset != (re_dfa_t *)0xffffffff) {\n                      if (mctx.input.offsets_needed != '\0') {\n                        rVar47 = mctx.input.valid_raw_len;\n                        if (aVar45.sbcset != (re_bitset_ptr_t)mctx.input.valid_len) {\n                          rVar47 = mctx.input.offsets[aVar45.idx];\n                        }\n                        prVar19->rm_so = rVar47;\n                        rVar47 = mctx.input.valid_raw_len;\n                        if (mctx.input.valid_len != prVar19->rm_eo) {\n                          rVar47 = mctx.input.offsets[prVar19->rm_eo];\n                        }\n                        prVar19->rm_eo = rVar47;\n                      }\n                      prVar19->rm_so = prVar19->rm_so + match_first;\n                      aVar45.sbcset = (re_bitset_ptr_t)(prVar19->rm_eo + match_first);\n                      prVar19->rm_eo = (regoff_t)aVar45;\n                    }\n                    prVar19 = prVar19 + 1;\n                  } while (prVar19 != pmatch + aVar4.idx);\n                  if (0 < local_118) {\n                    prVar19 = pmatch + aVar4.idx;\n                    do {\n                      prVar19->rm_so = -1;\n                      prVar19->rm_eo = -1;\n                      prVar19 = prVar19 + 1;\n                    } while (prVar19 != pmatch + nmatch);\n                  }\n                  aVar49.idx = match_first;\n                  prVar51 = (re_dfa_t *)pmatch;\n                  local_150.sbcset = aVar7.sbcset;\n                  if (prVar59->subexp_map != (Idx *)0x0) {\n                    aVar49.sbcset = (re_bitset_ptr_t)(aVar4.idx + -1);\n                    prVar52 = (re_dfa_t *)0x0;\n                    prVar19 = pmatch;\n                    while( true ) {\n                      aVar45.idx = (int)prVar52 * 4;\n                      if ((re_dfa_t *)aVar49.sbcset == prVar52) break;\n                      if ((re_dfa_t *)prVar59->subexp_map[(int)prVar52] != prVar52) {\n                        prVar19[1].rm_so =\n                             pmatch[(int)((int)&((re_string_t *)\n                                                &((re_dfa_t *)prVar59->subexp_map[(int)prVar52])->\n                                                 nodes)->raw_mbs + 1)].rm_so;\n                        prVar19[1].rm_eo = pmatch[prVar59->subexp_map[(int)prVar52] + 1].rm_eo;\n                      }\n                      prVar52 = (re_dfa_t *)((int)&((re_string_t *)&prVar52->nodes)->raw_mbs + 1);\n                      prVar19 = prVar19 + 1;\n                    }\n                  }\n                  goto LAB_000557e4;\n                }\n                if ((char)prVar59->field_0x58 < '\0') {\n                  bVar36 = 0 < prVar59->nbackref;\n                }\n                else {\n                  bVar36 = false;\n                }\n                aVar45.sbcset = (re_bitset_ptr_t)&mctx;\n                aVar49.sbcset = aVar4.sbcset;\n                prVar51 = (re_dfa_t *)pmatch;\n                local_150.idx =\n                     set_regs(preg,(re_match_context_t *)aVar45.mbcset,aVar4.ctx_type,pmatch,bVar36)\n                ;\n                if ((re_dfa_t *)local_150.sbcset == (re_dfa_t *)0x0) goto LAB_000555ac;\n              }\n            }" else (compound_statement "{\n              aVar46.idx._0_3_ = 0;\n              aVar46.idx._3_1_ = last_start < start;\n              if (aVar41.idx < start) {\n                local_150.idx = 1;\n                stop = aVar56.idx;\n              }\n              else {\n                piVar38 = &match_first;\n                if ((re_dfa_t *)aVar46.sbcset != (re_dfa_t *)0x0) {\n                  piVar38 = (int *)0x0;\n                }\n                pcVar5 = (code *)(PTR_DAT_000799a4 + -0x2b7c);\n                piVar6 = (int *)(PTR_s_nt0_000795b8 + (rVar20 - 4) * 4 + 0x6e38);\nLAB_00055b44:\n                if (rVar20 - 4 < 5) {\n                    /* WARNING: Could not emulate address calculation at 0x00054920 */\n                    /* WARNING: Treating indirect jump as call */\n                  rVar21 = (*(code *)(&_gp + *piVar6))();\n                  return rVar21;\n                }\n                last_start = (Idx)&mctx;\n                prVar52 = prVar51;\n                while( true ) {\n                  aVar46.idx = match_first;\n                  uVar8 = match_first - mctx.input.raw_mbs_idx;\n                  aVar49 = (anon_union_4_5_a39f51ca_for_opr)eflags;\n                  paVar18 = paVar2;\n                  stop = local_148.idx;\n                  unaff_s4 = (re_dfa_t *)length;\n                  unaff_s5 = aVar39;\n                  unaff_s7 = aVar41;\n                  if ((uint)mctx.input.valid_raw_len <= uVar8) {\n                    aVar45.idx = match_first;\n                    local_150.sbcset = (re_bitset_ptr_t)(*pcVar5)(last_start);\n                    prVar51 = prVar52;\n                    if ((re_dfa_t *)local_150.sbcset != (re_dfa_t *)0x0) goto LAB_000557e4;\n                    uVar8 = (int)aVar46.sbcset - mctx.input.raw_mbs_idx;\n                  }\n                  if (aVar46.idx < length) {\n                    uVar8 = (uint)mctx.input.mbs[uVar8];\n                  }\n                  else {\n                    uVar8 = 0;\n                  }\n                  aVar56.sbcset = aVar46.sbcset + aVar39.sbcset;\n                  aVar46.sbcset = aVar56.sbcset;\n                  if (*(char *)((int)local_148.sbcset + uVar8) != '\0') break;\n                  prVar51 = prVar52;\n                  match_first = aVar56.idx;\n                  if (aVar56.idx < aVar40.idx) {\n                    local_150.idx = 1;\n                    goto LAB_000557e4;\n                  }\n                  aVar46.idx._0_3_ = 0;\n                  aVar46.idx._3_1_ = aVar41.idx < aVar56.idx;\n                  if ((re_dfa_t *)aVar46.sbcset != (re_dfa_t *)0x0) {\n                    local_150.idx = 1;\n                    goto LAB_000557e4;\n                  }\n                }\n                while( true ) {\n                  aVar45.idx = match_first;\n                  aVar49 = (anon_union_4_5_a39f51ca_for_opr)eflags;\n                  aVar7.sbcset = (re_bitset_ptr_t)(*pcVar5)(&mctx);\n                  aVar15 = (anon_union_4_5_a39f51ca_for_opr)mctx.dfa;\n                  aVar56.idx = mctx.input.cur_idx;\n                  prVar51 = prVar52;\n                  local_150.sbcset = aVar7.sbcset;\n                  if ((re_dfa_t *)aVar7.sbcset != (re_dfa_t *)0x0) goto LAB_000557e4;\n                  if (((iVar55 != 1) && (mctx.input.valid_len != 0)) &&\n                     (*mctx.input.wcs == 0xffffffff)) goto LAB_00055b1c;\n                  mctx.max_mb_elem_len = 0;\n                  mctx.nbkref_ents = 0;\n                  mctx.state_log_top = 0;\n                  local_138.idx = mctx.input.cur_idx;\n                  err = _REG_NOERROR;\n                  unaff_s7 = (anon_union_4_5_a39f51ca_for_opr)(mctx.dfa)->init_state;\n                  aVar49 = (anon_union_4_5_a39f51ca_for_opr)mctx.eflags;\n                  aVar46 = aVar15;\n                  if ((*(byte *)(unaff_s7.idx + 0x34) & 1) == 0) break;\n                  aVar45.sbcset = (re_bitset_ptr_t)(mctx.input.cur_idx + -1);\n                  prVar51 = (re_dfa_t *)re_string_context_at(&mctx.input,aVar45.idx,mctx.eflags);\n                  if (((uint)prVar51 & 1) == 0) {\n                    if (prVar51 == (re_dfa_t *)0x0) break;\n                    if (((uint)prVar51 & 6) == 6) {\n                      unaff_s7 = (anon_union_4_5_a39f51ca_for_opr)\n                                 ((re_dfa_t *)aVar15.idx)->init_state_begbuf;\n                      goto LAB_00054d1c;\n                    }\n                    if (((uint)prVar51 & 2) != 0) {\n                      unaff_s7 = (anon_union_4_5_a39f51ca_for_opr)\n                                 ((re_dfa_t *)aVar15.idx)->init_state_nl;\n                      goto LAB_00054d1c;\n                    }\n                    prVar52 = prVar51;\n                    if (((uint)prVar51 & 4) == 0) break;\n                    aVar49 = (anon_union_4_5_a39f51ca_for_opr)\n                             ((anon_union_4_5_a39f51ca_for_opr *)(unaff_s7.idx + 0x28))->mbcset;\n                    aVar45 = aVar15;\n                    unaff_s7.sbcset =\n                         &re_acquire_state_context\n                                    (&err,aVar15.sbcset,(re_node_set *)aVar49.mbcset,(uint)prVar51)\n                          ->hash;\n                    prVar52 = prVar51;\n                    if ((re_dfa_t *)unaff_s7.sbcset != (re_dfa_t *)0x0) break;\n                    if (err == _REG_ESPACE) goto LAB_00055914;\n                  }\n                  else {\n                    unaff_s7 = (anon_union_4_5_a39f51ca_for_opr)\n                               ((re_dfa_t *)aVar15.idx)->init_state_word;\nLAB_00054d1c:\n                    prVar52 = (re_dfa_t *)PTR_s_nt0_000795b8;\n                    if ((re_dfa_t *)unaff_s7.sbcset != (re_dfa_t *)0x0) break;\n                  }\n                  prVar52 = (re_dfa_t *)(PTR_s_nt0_000795b8 + 0x6eb0);\n                  aVar45.sbcset = (re_bitset_ptr_t)(PTR_s_nt0_000795b8 + 0x712c);\n                  match_first = (*(code *)PTR___assert_fail_000799f8)\n                                          (PTR_s_nt0_000795b8 + 0x71a0,aVar45.sbcset,0x435);\n                  if ((re_bitset_ptr_t)match_first == aVar41.sbcset) {\n                    if (match_first < length) {\n                      uVar8 = (uint)(byte)string[match_first];\n                    }\n                    else {\n                      uVar8 = 0;\n                    }\n                    if (puVar50 != (uchar *)0x0) {\n                      uVar8 = (uint)puVar50[uVar8];\n                    }\n                    if (*(char *)((int)local_148.sbcset + uVar8) == '\0') {\n                      local_150.idx = 1;\n                      aVar49 = (anon_union_4_5_a39f51ca_for_opr)eflags;\n                      prVar51 = prVar52;\n                      goto LAB_000557e4;\n                    }\n                  }\n                }\n                prVar51 = prVar52;\n                bVar36 = piVar38 != (int *)0x0;\n                if ((mctx.state_log == (re_dfastate_t **)0x0) ||\n                   (((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + aVar56.idx))->mbcset =\n                         (re_charset_t *)unaff_s7, ((re_dfa_t *)aVar15.idx)->nbackref == 0)) {\nLAB_00054d50:\n                  if ((int)*(bin_tree_t **)(unaff_s7.idx + 0x34) << 4 < 0) {\n                    if (((*(byte *)(unaff_s7.idx + 0x34) & 1) == 0) ||\n                       (aVar45 = unaff_s7, aVar49 = aVar56,\n                       IVar17 = check_halt_state_context(&mctx,unaff_s7.idx,aVar56.idx), IVar17 != 0\n                       )) {\n                      local_c4 = aVar56;\n                      if (paVar54 == (anon_union_4_5_a39f51ca_for_opr *)0x0) goto LAB_00055dbc;\n                      prVar52 = (re_dfa_t *)0x1;\n                    }\n                    else {\n                      aVar56.idx = -1;\n                      prVar52 = (re_dfa_t *)0x0;\n                    }\n                  }\n                  else {\n                    aVar56.idx = -1;\n                    prVar52 = (re_dfa_t *)0x0;\n                  }\n                  pcVar9 = (code *)(PTR_DAT_000799a4 + -0x7144);\n                  pcVar10 = (code *)(PTR_DAT_000799a4 + -0x1980);\n                  pcVar11 = (code *)(PTR_DAT_000799a4 + -0x2f9c);\n                  local_c4 = aVar56;\n                  local_144 = piVar38;\n                  while( true ) {\n                    uVar63 = CONCAT44(mctx.input.valid_len,mctx.input.len);\n                    unaff_s5.sbcset = (re_bitset_ptr_t)(mctx.input.cur_idx + 1);\n                    aVar45.idx = mctx.input.cur_idx;\n                    if (mctx.input.stop <= mctx.input.cur_idx) break;\n                    if ((mctx.input.bufs_len <= unaff_s5.idx) &&\n                       (mctx.input.bufs_len < mctx.input.len)) goto LAB_00054e94;\n                    if (mctx.input.valid_len <= unaff_s5.idx) {\n                      while ((int)((ulonglong)uVar63 >> 0x20) < (int)uVar63) {\nLAB_00054e94:\n                        aVar45.sbcset =\n                             (re_bitset_ptr_t)\n                             ((int)&((re_string_t *)&(aVar45.mbcset)->mbchars)->raw_mbs + 2);\n                        err = (*pcVar9)(&mctx);\n                        if (err == _REG_NOERROR) break;\n                        aVar15 = aVar46;\n                        if (err == _REG_ESPACE) goto LAB_00055914;\n                        prVar51 = (re_dfa_t *)(PTR_s_nt0_000795b8 + 0x6eb0);\n                        aVar49.idx = 0x46c;\n                        aVar45.sbcset = (re_bitset_ptr_t)(PTR_s_nt0_000795b8 + 0x712c);\n                        uVar63 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0);\n                        prVar52 = prVar59;\n                      }\n                    }\n                    prVar3 = mctx.dfa;\n                    if ((int)*(bin_tree_t **)(unaff_s7.idx + 0x34) << 5 < 0) {\n                      paVar18 = (anon_union_4_5_a39f51ca_for_opr *)prVar3;\n                      if (0 < (int)(unaff_s7.mbcset)->range_ends) {\n                        pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6fdc);\n                        pcVar13 = (code *)(PTR_DAT_000799a4 + -0x6ef0);\n                        stop = 0;\n                        do {\n                          last_start = ((anon_union_4_5_a39f51ca_for_opr *)\n                                       ((unaff_s7.mbcset)->char_classes + stop))->idx;\n                          prVar53 = prVar3->nodes;\n                          uVar8 = *(uint *)&prVar53[last_start].field_0x4;\n                          if ((uVar8 & 0x800) != 0) {\n                            if ((uVar8 & 0xffc000) != 0) {\n                              aVar45.idx = mctx.input.cur_idx;\n                              uVar60 = (*pcVar13)(&mctx,mctx.input.cur_idx,mctx.eflags);\n                              uVar8 = (uint)(*(int *)&prVar53[last_start].field_0x4 << 8) >> 0x16;\n                              if ((uVar8 & 4) == 0) {\n                                uVar26 = uVar60 & 1;\n                                if ((uVar8 & 8) != 0) goto joined_r0x00054f40;\n                              }\n                              else {\n                                uVar26 = uVar8 & 8;\n                                if ((uVar60 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                                if (uVar26 != 0) goto LAB_000550a4;\n                              }\n                              if ((((uVar8 & 0x20) != 0) && ((uVar60 & 2) == 0)) ||\n                                 (((uVar8 & 0x80) != 0 &&\n                                  (prVar51 = (re_dfa_t *)mctx.input.cur_idx, (uVar60 & 8) == 0))))\n                              goto LAB_000550a4;\n                            }\n                            aVar49.sbcset = (re_bitset_ptr_t)&mctx;\n                            aVar45.idx = last_start;\n                            prVar51 = (re_dfa_t *)mctx.input.cur_idx;\n                            iVar61 = (*pcVar11)(prVar3);\n                            if (iVar61 != 0) {\n                              aVar46.sbcset = (re_bitset_ptr_t)(iVar61 + mctx.input.cur_idx);\n                              if (iVar61 <= mctx.max_mb_elem_len) {\n                                iVar61 = mctx.max_mb_elem_len;\n                              }\n                              aVar45.sbcset = aVar46.sbcset;\n                              mctx.max_mb_elem_len = iVar61;\n                              err_1 = (*pcVar12)(&mctx);\n                              rVar21 = err_1;\n                              if (err_1 != _REG_NOERROR) goto LAB_00055e44;\n                              aVar49.sbcset =\n                                   (re_bitset_ptr_t)(prVar3->eclosures + prVar3->nexts[last_start]);\n                              unaff_s4 = (re_dfa_t *)(aVar46.idx * 4);\n                              last_start = (Idx)(mctx.state_log + aVar46.idx);\n                              if (*(bitset_word_t *)last_start == 0) {\n                                dest_nodes.alloc = *aVar49.sbcset;\n                                dest_nodes.nelem =\n                                     ((re_node_set *)&(aVar49.mbcset)->range_starts)->alloc;\n                                dest_nodes.elems = (aVar49.mbcset)->range_ends;\n                                prVar51 = (re_dfa_t *)\n                                          (*pcVar13)(&mctx,(undefined1 *)(aVar46.idx + -1),\n                                                     mctx.eflags);\n                                aVar49.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                                aVar45 = (anon_union_4_5_a39f51ca_for_opr)prVar3;\n                                prVar35 = re_acquire_state_context\n                                                    (&err_1,prVar3,(re_node_set *)aVar49.mbcset,\n                                                     (uint)prVar51);\n                                ((re_string_t *)&((re_charset_t *)last_start)->mbchars)->raw_mbs =\n                                     (uchar *)prVar35;\n                              }\n                              else {\n                                aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                                         ((anon_union_4_5_a39f51ca_for_opr *)\n                                         (*(bitset_word_t *)last_start + 0x28))->mbcset;\n                                err_1 = re_node_set_init_union\n                                                  (&dest_nodes,(re_node_set *)aVar45.mbcset,\n                                                   (re_node_set *)aVar49.mbcset);\n                                rVar21 = err_1;\n                                if (err_1 != _REG_NOERROR) goto LAB_00055e44;\n                                prVar51 = (re_dfa_t *)\n                                          (*pcVar13)(&mctx,(undefined1 *)(aVar46.idx + -1),\n                                                     mctx.eflags);\n                                pprVar14 = mctx.state_log + aVar46.idx;\n                                aVar49.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                                aVar45 = (anon_union_4_5_a39f51ca_for_opr)prVar3;\n                                prVar35 = re_acquire_state_context\n                                                    (&err_1,prVar3,(re_node_set *)aVar49.mbcset,\n                                                     (uint)prVar51);\n                                *pprVar14 = prVar35;\n                                (*(code *)PTR_free_00079c24)(dest_nodes.elems);\n                              }\n                              unaff_s4 = (re_dfa_t *)(mctx.state_log + aVar46.idx);\n                              if ((unaff_s4->nodes == (re_token_t *)0x0) &&\n                                 (rVar21 = err_1, err_1 != _REG_NOERROR)) goto LAB_00055e44;\n                            }\n                          }\nLAB_000550a4:\n                          stop = (int)&((re_string_t *)&((re_charset_t *)stop)->mbchars)->raw_mbs +\n                                 1;\n                        } while (stop < (int)(unaff_s7.mbcset)->range_ends);\n                      }\n                      err = _REG_NOERROR;\n                    }\n                    uVar8 = (uint)mctx.input.mbs[mctx.input.cur_idx];\n                    mctx.input.cur_idx = mctx.input.cur_idx + 1;\n                    do {\n                      if (*(re_dfastate_t **)(unaff_s7.idx + 0x2c) != (re_dfastate_t *)0x0) {\n                        aVar49 = (anon_union_4_5_a39f51ca_for_opr)\n                                 ((anon_union_4_5_a39f51ca_for_opr *)\n                                 (&(*(re_dfastate_t **)(unaff_s7.idx + 0x2c))->hash + uVar8))->\n                                 mbcset;\nLAB_000553a0:\n                        aVar15 = aVar49;\n                        if (mctx.state_log != (re_dfastate_t **)0x0) goto LAB_000553ac;\n                        goto LAB_000553cc;\n                      }\n                      paVar18 = *(anon_union_4_5_a39f51ca_for_opr **)(unaff_s7.idx + 0x30);\n                      if (paVar18 != (anon_union_4_5_a39f51ca_for_opr *)0x0) {\n                        aVar45.sbcset = (re_bitset_ptr_t)(mctx.input.cur_idx + -1);\n                        uVar60 = re_string_context_at(&mctx.input,aVar45.idx,mctx.eflags);\n                        if ((uVar60 & 1) == 0) {\n                          aVar49 = (anon_union_4_5_a39f51ca_for_opr)paVar18[uVar8].mbcset;\n                        }\n                        else {\n                          paVar18 = paVar18 + uVar8 + 0x100;\n                          aVar49 = (anon_union_4_5_a39f51ca_for_opr)paVar18->mbcset;\n                        }\n                        goto LAB_000553a0;\n                      }\n                      aVar45 = unaff_s7;\n                      aVar49 = (anon_union_4_5_a39f51ca_for_opr)mctx.eflags;\n                      iVar61 = (*pcVar10)(mctx.dfa);\n                    } while (iVar61 != 0);\n                    err = _REG_ESPACE;\n                    rVar21 = err;\nLAB_00055e44:\n                    err = rVar21;\n                    aVar46.sbcset = (re_bitset_ptr_t)0x0;\n                    if (mctx.state_log == (re_dfastate_t **)0x0) {\n                      aVar15.sbcset = aVar46.sbcset;\n                      if (err != _REG_NOERROR) goto LAB_00055914;\n                      break;\n                    }\n                    aVar49.sbcset = (re_bitset_ptr_t)0x0;\nLAB_000553ac:\n                    aVar45.sbcset = (re_bitset_ptr_t)&mctx;\n                    aVar15.sbcset =\n                         &merge_state_with_log\n                                    (&err,(re_match_context_t *)aVar45.mbcset,aVar49.sbcset)->hash;\nLAB_000553cc:\n                    aVar46 = aVar15;\n                    if ((re_dfa_t *)aVar15.sbcset == (re_dfa_t *)0x0) {\n                      if (err != _REG_NOERROR) goto LAB_00055914;\n                      if ((mctx.state_log == (re_dfastate_t **)0x0) ||\n                         ((prVar52 != (re_dfa_t *)0x0 &&\n                          (paVar54 == (anon_union_4_5_a39f51ca_for_opr *)0x0)))) break;\n                      stop = (Idx)&mctx;\n                      last_start = (Idx)&err;\n                      paVar18 = (anon_union_4_5_a39f51ca_for_opr *)(PTR_DAT_000799a4 + 0x3684);\n                      do {\n                        pprVar14 = mctx.state_log + mctx.input.cur_idx;\n                        IVar17 = mctx.input.cur_idx;\n                        do {\n                          IVar17 = IVar17 + 1;\n                          aVar45.idx = mctx.state_log_top;\n                          aVar46 = aVar15;\n                          if (mctx.state_log_top < IVar17) goto LAB_00055da8;\n                          mctx.input.cur_idx = mctx.input.cur_idx + 1;\n                          pprVar14 = pprVar14 + 1;\n                        } while (*pprVar14 == (re_dfastate_t *)0x0);\n                        aVar49.sbcset = (re_bitset_ptr_t)0x0;\n                        aVar45.sbcset = (re_bitset_ptr_t)stop;\n                        aVar46.sbcset = (re_bitset_ptr_t)(*(code *)paVar18)(last_start);\n                        if (err != _REG_NOERROR) {\n                          if ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0) goto LAB_00055da8;\n                          break;\n                        }\n                        aVar45.idx = mctx.state_log_top;\n                      } while ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0);\n                    }\n                    aVar16.ctx_type = unaff_s7.ctx_type ^ aVar46.ctx_type;\n                    aVar56 = unaff_s7;\n                    aVar15 = local_138;\n                    if ((bVar36) &&\n                       (aVar56.ctx_type = aVar16.ctx_type, aVar15.sbcset = unaff_s5.sbcset,\n                       (re_dfa_t *)aVar16.sbcset != (re_dfa_t *)0x0)) {\n                      bVar36 = false;\n                      aVar15 = local_138;\n                    }\n                    local_138 = aVar15;\n                    unaff_s7 = aVar46;\n                    if (((*(byte *)(aVar46.idx + 0x34) & 8) != 0) &&\n                       (((*(byte *)(aVar46.idx + 0x34) & 1) == 0 ||\n                        (aVar45 = aVar46, aVar49.idx = mctx.input.cur_idx,\n                        IVar17 = check_halt_state_context(&mctx,aVar46.idx,mctx.input.cur_idx),\n                        IVar17 != 0)))) {\n                      unaff_s7 = aVar56;\n                      local_c4.idx = mctx.input.cur_idx;\n                      if (paVar54 == (anon_union_4_5_a39f51ca_for_opr *)0x0) goto LAB_00055dbc;\n                      prVar52 = (re_dfa_t *)0x1;\n                      local_144 = (int *)0x0;\n                      unaff_s7 = aVar46;\n                    }\n                  }\nLAB_00055da8:\n                  if (local_144 != (int *)0x0) {\n                    *local_144 = *local_144 + (int)local_138.sbcset;\n                  }\n                }\n                else {\n                  aVar46.sbcset = (re_bitset_ptr_t)&(unaff_s7.mbcset)->range_starts;\n                  aVar49.sbcset = (re_bitset_ptr_t)0x0;\n                  aVar45 = aVar46;\n                  err = check_subexp_matching_top(&mctx,(re_node_set *)aVar46.mbcset,0);\n                  local_c4.idx = err;\n                  if ((re_dfa_t *)err == (re_dfa_t *)0x0) {\n                    if ((*(byte *)(unaff_s7.idx + 0x34) & 2) == 0) {\n                      aVar45 = aVar46;\n                      bVar36 = false;\n                    }\n                    else {\n                      aVar45 = aVar46;\n                      err = transit_state_bkref(&mctx,(re_node_set *)aVar46.mbcset);\n                      local_c4.idx = err;\n                      if ((re_dfa_t *)err != (re_dfa_t *)0x0) goto LAB_00055dbc;\n                      bVar36 = false;\n                    }\n                    goto LAB_00054d50;\n                  }\n                }\nLAB_00055dbc:\n                if ((re_dfa_t *)local_c4.sbcset == (re_dfa_t *)0xffffffff) {\nLAB_00055b04:\n                  match_ctx_clean(&mctx);\nLAB_00055b1c:\n                  match_first = aVar39.idx + match_first;\n                  if (aVar40.idx <= match_first) goto code_r0x00055b38;\n                  local_150.idx = 1;\n                  goto LAB_000557e4;\n                }\n                if ((re_dfa_t *)local_c4.sbcset == (re_dfa_t *)&SUB_fffffffe) {\n                  local_150.idx = 0xc;\n                  goto LAB_000557e4;\n                }\n                mctx.match_last = local_c4.idx;\n                if ((preg->field_0x1c & 8) == 0) {\n                  if (aVar4.sbcset < (re_dfa_t *)0x2) {\n                    if (prVar59->nbackref == 0) goto LAB_00055c08;\n                    aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                             ((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + local_c4.idx))->\n                             mbcset;\n                    aVar49 = local_c4;\n                    mctx.last_node =\n                         check_halt_state_context(&mctx,(re_dfastate_t *)aVar45.mbcset,local_c4.idx)\n                    ;\n                  }\n                  else {\n                    aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                             ((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + local_c4.idx))->\n                             mbcset;\n                    aVar49 = local_c4;\n                    mctx.last_node =\n                         check_halt_state_context(&mctx,(re_dfastate_t *)aVar45.mbcset,local_c4.idx)\n                    ;\n                  }\n                  if (aVar4.sbcset < (re_dfa_t *)0x2) {\nLAB_00055c6c:\n                    prVar52 = prVar51;\n                    unaff_s4 = mctx.dfa;\n                    if (prVar59->nbackref == 0) goto LAB_00055548;\n                  }\n                  else {\n                    cVar37 = prVar59->field_0x58;\nLAB_00055c20:\n                    prVar52 = prVar51;\n                    if (-1 < cVar37) goto LAB_00055c6c;\n                  }\n                  paVar18 = (anon_union_4_5_a39f51ca_for_opr *)mctx.last_node;\n                  prVar3 = mctx.dfa;\n                  unaff_s4 = prVar3;\n                  if ((uint)local_c4 < (re_dfa_t *)0x3fffffff) {\n                    aVar46.idx = (int)((int)&((re_string_t *)&(local_c4.mbcset)->mbchars)->raw_mbs +\n                                      1) * 4;\n                    unaff_s5.sbcset = (re_bitset_ptr_t)(*(code *)PTR_malloc_00079b54)(aVar46.sbcset)\n                    ;\n                    if ((re_dfa_t *)unaff_s5.sbcset == (re_dfa_t *)0x0) {\nLAB_00055b9c:\n                      (*(code *)PTR_free_00079c24)(unaff_s5.sbcset);\n                      local_150.idx = 0xc;\n                      prVar51 = prVar52;\n                    }\n                    else {\n                      aVar45.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                      if (prVar3->nbackref == 0) {\n                        dest_nodes.nelem = 0;\n                        dest_nodes.elems = &paVar18->idx;\n                        dest_nodes.alloc = (Idx)unaff_s5.sbcset;\n                        last_start = sift_states_backward(&mctx,(re_sift_context_t *)aVar45.mbcset);\n                        (*(code *)PTR_free_00079c24)(0);\n                        if ((re_dfa_t *)last_start == (re_dfa_t *)0x0) {\n                          aVar46.mbcset = (re_charset_t *)*unaff_s5.sbcset;\n                          if ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0) {\nLAB_00055b70:\n                            (*(code *)PTR_free_00079c24)(unaff_s5.sbcset);\n                            (*(code *)PTR_free_00079c24)(aVar46.sbcset);\n                            prVar51 = prVar52;\n                            goto LAB_00055b04;\n                          }\nLAB_00055528:\n                          (*(code *)PTR_free_00079c24)(mctx.state_log);\n                          prVar51 = prVar52;\n                          unaff_s4 = prVar3;\n                          mctx.match_last = local_c4.idx;\n                          mctx.last_node = (Idx)paVar18;\n                          mctx.state_log = (re_dfastate_t **)unaff_s5.sbcset;\n                          goto LAB_00055548;\n                        }\nLAB_00055acc:\n                        aVar46.sbcset = (re_bitset_ptr_t)0x0;\n                        prVar51 = prVar52;\n                        unaff_s4 = prVar3;\n                      }\n                      else {\n                        aVar46.sbcset =\n                             (re_bitset_ptr_t)(*(code *)PTR_malloc_00079b54)(aVar46.sbcset);\n                        if ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0) goto LAB_00055b9c;\n                        unaff_s7.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                        pcVar9 = (code *)(PTR_DAT_000799a4 + 0x421c);\n                        pcVar10 = (code *)(PTR_DAT_000799a4 + -0x6bc0);\n                        prVar51 = prVar52;\n                        while( true ) {\n                          prVar52 = (re_dfa_t *)(local_c4.idx + 1);\n                          stop = (int)prVar52 * 4;\n                          aVar49.idx = stop;\n                          (*(code *)PTR_memset_00079b00)(aVar46.sbcset,0);\n                          aVar45.sbcset = unaff_s7.sbcset;\n                          dest_nodes.alloc = (Idx)unaff_s5.sbcset;\n                          dest_nodes.nelem = (Idx)aVar46.sbcset;\n                          dest_nodes.elems = (Idx *)paVar18;\n                          last_start = (*pcVar9)(&mctx);\n                          (*(code *)PTR_free_00079c24)(0);\n                          unaff_s4 = prVar52;\n                          if ((re_dfa_t *)last_start != (re_dfa_t *)0x0) break;\n                          if ((*unaff_s5.sbcset != 0) || (stop = stop + -4, *aVar46.sbcset != 0)) {\n                            aVar45.sbcset = unaff_s5.sbcset;\n                            aVar49.sbcset = aVar46.sbcset;\n                            last_start = merge_state_array(prVar3,(re_dfastate_t **)unaff_s5.sbcset,\n                                                           (re_dfastate_t **)aVar46.sbcset,\n                                                           (Idx)prVar52);\n                            (*(code *)PTR_free_00079c24)(aVar46.sbcset);\n                            if ((re_dfa_t *)last_start != (re_dfa_t *)0x0) goto LAB_00055acc;\n                            goto LAB_00055528;\n                          }\n                          stop = (Idx)(mctx.state_log + (int)&prVar52[-1].lock.__align + 0x17);\n                          do {\n                            while( true ) {\n                              local_c4.sbcset = (re_bitset_ptr_t)(local_c4.idx + -1);\n                              if (local_c4.idx < 0) goto LAB_00055b70;\n                              aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                                       ((anon_union_4_5_a39f51ca_for_opr *)(stop + -4))->idx;\n                              if ((re_dfa_t *)aVar45.sbcset != (re_dfa_t *)0x0) break;\n                              stop = stop + -4;\n                            }\n                            stop = stop + -4;\n                          } while ((*(byte *)(aVar45.idx + 0x34) & 8) == 0);\n                          paVar18 = (anon_union_4_5_a39f51ca_for_opr *)\n                                    (*pcVar10)(&mctx,aVar45.sbcset,local_c4.sbcset);\n                          prVar51 = prVar52;\n                        }\n                      }\n                      (*(code *)PTR_free_00079c24)(unaff_s5.sbcset);\n                      (*(code *)PTR_free_00079c24)(aVar46.sbcset);\n                      local_150.idx = last_start;\n                      if ((re_dfa_t *)last_start == (re_dfa_t *)0x1) goto LAB_00055b04;\n                    }\n                  }\n                  else {\n                    local_150.idx = 0xc;\n                    prVar51 = prVar52;\n                  }\n                  goto LAB_000557e4;\n                }\n                if (prVar59->nbackref != 0) {\n                  aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                           ((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + local_c4.idx))->\n                           mbcset;\n                  aVar49 = local_c4;\n                  mctx.last_node =\n                       check_halt_state_context(&mctx,(re_dfastate_t *)aVar45.mbcset,local_c4.idx);\n                  goto LAB_00055c6c;\n                }\nLAB_00055c08:\n                if (((preg->field_0x1c & 8) == 0) && ((re_dfa_t *)0x1 < aVar4.sbcset)) {\n                  cVar37 = prVar59->field_0x58;\n                  goto LAB_00055c20;\n                }\nLAB_00055548:\n                if ((re_dfa_t *)aVar4.sbcset == (re_dfa_t *)0x0) goto LAB_000557e4;\n                if (aVar4.sbcset < (re_dfa_t *)0x2) {\n                  pmatch->rm_so = 0;\n                  pmatch->rm_eo = mctx.match_last;\n                  goto LAB_000555ac;\n                }\n                prVar19 = pmatch + 1;\n                do {\n                  prVar19->rm_eo = -1;\n                  prVar19->rm_so = -1;\n                  prVar19 = prVar19 + 1;\n                } while (prVar19 != pmatch + aVar4.idx);\n                pmatch->rm_so = 0;\n                pmatch->rm_eo = mctx.match_last;\n                if ((preg->field_0x1c & 8) != 0) {\nLAB_000555ac:\n                  prVar19 = pmatch;\n                  do {\n                    aVar45.sbcset = (re_bitset_ptr_t)prVar19->rm_so;\n                    if ((re_dfa_t *)aVar45.sbcset != (re_dfa_t *)0xffffffff) {\n                      if (mctx.input.offsets_needed != '\0') {\n                        rVar47 = mctx.input.valid_raw_len;\n                        if (aVar45.sbcset != (re_bitset_ptr_t)mctx.input.valid_len) {\n                          rVar47 = mctx.input.offsets[aVar45.idx];\n                        }\n                        prVar19->rm_so = rVar47;\n                        rVar47 = mctx.input.valid_raw_len;\n                        if (mctx.input.valid_len != prVar19->rm_eo) {\n                          rVar47 = mctx.input.offsets[prVar19->rm_eo];\n                        }\n                        prVar19->rm_eo = rVar47;\n                      }\n                      prVar19->rm_so = prVar19->rm_so + match_first;\n                      aVar45.sbcset = (re_bitset_ptr_t)(prVar19->rm_eo + match_first);\n                      prVar19->rm_eo = (regoff_t)aVar45;\n                    }\n                    prVar19 = prVar19 + 1;\n                  } while (prVar19 != pmatch + aVar4.idx);\n                  if (0 < local_118) {\n                    prVar19 = pmatch + aVar4.idx;\n                    do {\n                      prVar19->rm_so = -1;\n                      prVar19->rm_eo = -1;\n                      prVar19 = prVar19 + 1;\n                    } while (prVar19 != pmatch + nmatch);\n                  }\n                  aVar49.idx = match_first;\n                  prVar51 = (re_dfa_t *)pmatch;\n                  local_150.sbcset = aVar7.sbcset;\n                  if (prVar59->subexp_map != (Idx *)0x0) {\n                    aVar49.sbcset = (re_bitset_ptr_t)(aVar4.idx + -1);\n                    prVar52 = (re_dfa_t *)0x0;\n                    prVar19 = pmatch;\n                    while( true ) {\n                      aVar45.idx = (int)prVar52 * 4;\n                      if ((re_dfa_t *)aVar49.sbcset == prVar52) break;\n                      if ((re_dfa_t *)prVar59->subexp_map[(int)prVar52] != prVar52) {\n                        prVar19[1].rm_so =\n                             pmatch[(int)((int)&((re_string_t *)\n                                                &((re_dfa_t *)prVar59->subexp_map[(int)prVar52])->\n                                                 nodes)->raw_mbs + 1)].rm_so;\n                        prVar19[1].rm_eo = pmatch[prVar59->subexp_map[(int)prVar52] + 1].rm_eo;\n                      }\n                      prVar52 = (re_dfa_t *)((int)&((re_string_t *)&prVar52->nodes)->raw_mbs + 1);\n                      prVar19 = prVar19 + 1;\n                    }\n                  }\n                  goto LAB_000557e4;\n                }\n                if ((char)prVar59->field_0x58 < '\0') {\n                  bVar36 = 0 < prVar59->nbackref;\n                }\n                else {\n                  bVar36 = false;\n                }\n                aVar45.sbcset = (re_bitset_ptr_t)&mctx;\n                aVar49.sbcset = aVar4.sbcset;\n                prVar51 = (re_dfa_t *)pmatch;\n                local_150.idx =\n                     set_regs(preg,(re_match_context_t *)aVar45.mbcset,aVar4.ctx_type,pmatch,bVar36)\n                ;\n                if ((re_dfa_t *)local_150.sbcset == (re_dfa_t *)0x0) goto LAB_000555ac;\n              }\n            }" { (expression_statement "aVar46.idx._0_3_ = 0;" (assignment_expression "aVar46.idx._0_3_ = 0" (field_expression "aVar46.idx._0_3_" (field_expression "aVar46.idx" identifier . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "aVar46.idx._3_1_ = last_start < start;" (assignment_expression "aVar46.idx._3_1_ = last_start < start" (field_expression "aVar46.idx._3_1_" (field_expression "aVar46.idx" identifier . field_identifier) . field_identifier) = (binary_expression "last_start < start" identifier < identifier)) ;) (if_statement "if (aVar41.idx < start) {\n                local_150.idx = 1;\n                stop = aVar56.idx;\n              }\n              else {\n                piVar38 = &match_first;\n                if ((re_dfa_t *)aVar46.sbcset != (re_dfa_t *)0x0) {\n                  piVar38 = (int *)0x0;\n                }\n                pcVar5 = (code *)(PTR_DAT_000799a4 + -0x2b7c);\n                piVar6 = (int *)(PTR_s_nt0_000795b8 + (rVar20 - 4) * 4 + 0x6e38);\nLAB_00055b44:\n                if (rVar20 - 4 < 5) {\n                    /* WARNING: Could not emulate address calculation at 0x00054920 */\n                    /* WARNING: Treating indirect jump as call */\n                  rVar21 = (*(code *)(&_gp + *piVar6))();\n                  return rVar21;\n                }\n                last_start = (Idx)&mctx;\n                prVar52 = prVar51;\n                while( true ) {\n                  aVar46.idx = match_first;\n                  uVar8 = match_first - mctx.input.raw_mbs_idx;\n                  aVar49 = (anon_union_4_5_a39f51ca_for_opr)eflags;\n                  paVar18 = paVar2;\n                  stop = local_148.idx;\n                  unaff_s4 = (re_dfa_t *)length;\n                  unaff_s5 = aVar39;\n                  unaff_s7 = aVar41;\n                  if ((uint)mctx.input.valid_raw_len <= uVar8) {\n                    aVar45.idx = match_first;\n                    local_150.sbcset = (re_bitset_ptr_t)(*pcVar5)(last_start);\n                    prVar51 = prVar52;\n                    if ((re_dfa_t *)local_150.sbcset != (re_dfa_t *)0x0) goto LAB_000557e4;\n                    uVar8 = (int)aVar46.sbcset - mctx.input.raw_mbs_idx;\n                  }\n                  if (aVar46.idx < length) {\n                    uVar8 = (uint)mctx.input.mbs[uVar8];\n                  }\n                  else {\n                    uVar8 = 0;\n                  }\n                  aVar56.sbcset = aVar46.sbcset + aVar39.sbcset;\n                  aVar46.sbcset = aVar56.sbcset;\n                  if (*(char *)((int)local_148.sbcset + uVar8) != '\0') break;\n                  prVar51 = prVar52;\n                  match_first = aVar56.idx;\n                  if (aVar56.idx < aVar40.idx) {\n                    local_150.idx = 1;\n                    goto LAB_000557e4;\n                  }\n                  aVar46.idx._0_3_ = 0;\n                  aVar46.idx._3_1_ = aVar41.idx < aVar56.idx;\n                  if ((re_dfa_t *)aVar46.sbcset != (re_dfa_t *)0x0) {\n                    local_150.idx = 1;\n                    goto LAB_000557e4;\n                  }\n                }\n                while( true ) {\n                  aVar45.idx = match_first;\n                  aVar49 = (anon_union_4_5_a39f51ca_for_opr)eflags;\n                  aVar7.sbcset = (re_bitset_ptr_t)(*pcVar5)(&mctx);\n                  aVar15 = (anon_union_4_5_a39f51ca_for_opr)mctx.dfa;\n                  aVar56.idx = mctx.input.cur_idx;\n                  prVar51 = prVar52;\n                  local_150.sbcset = aVar7.sbcset;\n                  if ((re_dfa_t *)aVar7.sbcset != (re_dfa_t *)0x0) goto LAB_000557e4;\n                  if (((iVar55 != 1) && (mctx.input.valid_len != 0)) &&\n                     (*mctx.input.wcs == 0xffffffff)) goto LAB_00055b1c;\n                  mctx.max_mb_elem_len = 0;\n                  mctx.nbkref_ents = 0;\n                  mctx.state_log_top = 0;\n                  local_138.idx = mctx.input.cur_idx;\n                  err = _REG_NOERROR;\n                  unaff_s7 = (anon_union_4_5_a39f51ca_for_opr)(mctx.dfa)->init_state;\n                  aVar49 = (anon_union_4_5_a39f51ca_for_opr)mctx.eflags;\n                  aVar46 = aVar15;\n                  if ((*(byte *)(unaff_s7.idx + 0x34) & 1) == 0) break;\n                  aVar45.sbcset = (re_bitset_ptr_t)(mctx.input.cur_idx + -1);\n                  prVar51 = (re_dfa_t *)re_string_context_at(&mctx.input,aVar45.idx,mctx.eflags);\n                  if (((uint)prVar51 & 1) == 0) {\n                    if (prVar51 == (re_dfa_t *)0x0) break;\n                    if (((uint)prVar51 & 6) == 6) {\n                      unaff_s7 = (anon_union_4_5_a39f51ca_for_opr)\n                                 ((re_dfa_t *)aVar15.idx)->init_state_begbuf;\n                      goto LAB_00054d1c;\n                    }\n                    if (((uint)prVar51 & 2) != 0) {\n                      unaff_s7 = (anon_union_4_5_a39f51ca_for_opr)\n                                 ((re_dfa_t *)aVar15.idx)->init_state_nl;\n                      goto LAB_00054d1c;\n                    }\n                    prVar52 = prVar51;\n                    if (((uint)prVar51 & 4) == 0) break;\n                    aVar49 = (anon_union_4_5_a39f51ca_for_opr)\n                             ((anon_union_4_5_a39f51ca_for_opr *)(unaff_s7.idx + 0x28))->mbcset;\n                    aVar45 = aVar15;\n                    unaff_s7.sbcset =\n                         &re_acquire_state_context\n                                    (&err,aVar15.sbcset,(re_node_set *)aVar49.mbcset,(uint)prVar51)\n                          ->hash;\n                    prVar52 = prVar51;\n                    if ((re_dfa_t *)unaff_s7.sbcset != (re_dfa_t *)0x0) break;\n                    if (err == _REG_ESPACE) goto LAB_00055914;\n                  }\n                  else {\n                    unaff_s7 = (anon_union_4_5_a39f51ca_for_opr)\n                               ((re_dfa_t *)aVar15.idx)->init_state_word;\nLAB_00054d1c:\n                    prVar52 = (re_dfa_t *)PTR_s_nt0_000795b8;\n                    if ((re_dfa_t *)unaff_s7.sbcset != (re_dfa_t *)0x0) break;\n                  }\n                  prVar52 = (re_dfa_t *)(PTR_s_nt0_000795b8 + 0x6eb0);\n                  aVar45.sbcset = (re_bitset_ptr_t)(PTR_s_nt0_000795b8 + 0x712c);\n                  match_first = (*(code *)PTR___assert_fail_000799f8)\n                                          (PTR_s_nt0_000795b8 + 0x71a0,aVar45.sbcset,0x435);\n                  if ((re_bitset_ptr_t)match_first == aVar41.sbcset) {\n                    if (match_first < length) {\n                      uVar8 = (uint)(byte)string[match_first];\n                    }\n                    else {\n                      uVar8 = 0;\n                    }\n                    if (puVar50 != (uchar *)0x0) {\n                      uVar8 = (uint)puVar50[uVar8];\n                    }\n                    if (*(char *)((int)local_148.sbcset + uVar8) == '\0') {\n                      local_150.idx = 1;\n                      aVar49 = (anon_union_4_5_a39f51ca_for_opr)eflags;\n                      prVar51 = prVar52;\n                      goto LAB_000557e4;\n                    }\n                  }\n                }\n                prVar51 = prVar52;\n                bVar36 = piVar38 != (int *)0x0;\n                if ((mctx.state_log == (re_dfastate_t **)0x0) ||\n                   (((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + aVar56.idx))->mbcset =\n                         (re_charset_t *)unaff_s7, ((re_dfa_t *)aVar15.idx)->nbackref == 0)) {\nLAB_00054d50:\n                  if ((int)*(bin_tree_t **)(unaff_s7.idx + 0x34) << 4 < 0) {\n                    if (((*(byte *)(unaff_s7.idx + 0x34) & 1) == 0) ||\n                       (aVar45 = unaff_s7, aVar49 = aVar56,\n                       IVar17 = check_halt_state_context(&mctx,unaff_s7.idx,aVar56.idx), IVar17 != 0\n                       )) {\n                      local_c4 = aVar56;\n                      if (paVar54 == (anon_union_4_5_a39f51ca_for_opr *)0x0) goto LAB_00055dbc;\n                      prVar52 = (re_dfa_t *)0x1;\n                    }\n                    else {\n                      aVar56.idx = -1;\n                      prVar52 = (re_dfa_t *)0x0;\n                    }\n                  }\n                  else {\n                    aVar56.idx = -1;\n                    prVar52 = (re_dfa_t *)0x0;\n                  }\n                  pcVar9 = (code *)(PTR_DAT_000799a4 + -0x7144);\n                  pcVar10 = (code *)(PTR_DAT_000799a4 + -0x1980);\n                  pcVar11 = (code *)(PTR_DAT_000799a4 + -0x2f9c);\n                  local_c4 = aVar56;\n                  local_144 = piVar38;\n                  while( true ) {\n                    uVar63 = CONCAT44(mctx.input.valid_len,mctx.input.len);\n                    unaff_s5.sbcset = (re_bitset_ptr_t)(mctx.input.cur_idx + 1);\n                    aVar45.idx = mctx.input.cur_idx;\n                    if (mctx.input.stop <= mctx.input.cur_idx) break;\n                    if ((mctx.input.bufs_len <= unaff_s5.idx) &&\n                       (mctx.input.bufs_len < mctx.input.len)) goto LAB_00054e94;\n                    if (mctx.input.valid_len <= unaff_s5.idx) {\n                      while ((int)((ulonglong)uVar63 >> 0x20) < (int)uVar63) {\nLAB_00054e94:\n                        aVar45.sbcset =\n                             (re_bitset_ptr_t)\n                             ((int)&((re_string_t *)&(aVar45.mbcset)->mbchars)->raw_mbs + 2);\n                        err = (*pcVar9)(&mctx);\n                        if (err == _REG_NOERROR) break;\n                        aVar15 = aVar46;\n                        if (err == _REG_ESPACE) goto LAB_00055914;\n                        prVar51 = (re_dfa_t *)(PTR_s_nt0_000795b8 + 0x6eb0);\n                        aVar49.idx = 0x46c;\n                        aVar45.sbcset = (re_bitset_ptr_t)(PTR_s_nt0_000795b8 + 0x712c);\n                        uVar63 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0);\n                        prVar52 = prVar59;\n                      }\n                    }\n                    prVar3 = mctx.dfa;\n                    if ((int)*(bin_tree_t **)(unaff_s7.idx + 0x34) << 5 < 0) {\n                      paVar18 = (anon_union_4_5_a39f51ca_for_opr *)prVar3;\n                      if (0 < (int)(unaff_s7.mbcset)->range_ends) {\n                        pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6fdc);\n                        pcVar13 = (code *)(PTR_DAT_000799a4 + -0x6ef0);\n                        stop = 0;\n                        do {\n                          last_start = ((anon_union_4_5_a39f51ca_for_opr *)\n                                       ((unaff_s7.mbcset)->char_classes + stop))->idx;\n                          prVar53 = prVar3->nodes;\n                          uVar8 = *(uint *)&prVar53[last_start].field_0x4;\n                          if ((uVar8 & 0x800) != 0) {\n                            if ((uVar8 & 0xffc000) != 0) {\n                              aVar45.idx = mctx.input.cur_idx;\n                              uVar60 = (*pcVar13)(&mctx,mctx.input.cur_idx,mctx.eflags);\n                              uVar8 = (uint)(*(int *)&prVar53[last_start].field_0x4 << 8) >> 0x16;\n                              if ((uVar8 & 4) == 0) {\n                                uVar26 = uVar60 & 1;\n                                if ((uVar8 & 8) != 0) goto joined_r0x00054f40;\n                              }\n                              else {\n                                uVar26 = uVar8 & 8;\n                                if ((uVar60 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                                if (uVar26 != 0) goto LAB_000550a4;\n                              }\n                              if ((((uVar8 & 0x20) != 0) && ((uVar60 & 2) == 0)) ||\n                                 (((uVar8 & 0x80) != 0 &&\n                                  (prVar51 = (re_dfa_t *)mctx.input.cur_idx, (uVar60 & 8) == 0))))\n                              goto LAB_000550a4;\n                            }\n                            aVar49.sbcset = (re_bitset_ptr_t)&mctx;\n                            aVar45.idx = last_start;\n                            prVar51 = (re_dfa_t *)mctx.input.cur_idx;\n                            iVar61 = (*pcVar11)(prVar3);\n                            if (iVar61 != 0) {\n                              aVar46.sbcset = (re_bitset_ptr_t)(iVar61 + mctx.input.cur_idx);\n                              if (iVar61 <= mctx.max_mb_elem_len) {\n                                iVar61 = mctx.max_mb_elem_len;\n                              }\n                              aVar45.sbcset = aVar46.sbcset;\n                              mctx.max_mb_elem_len = iVar61;\n                              err_1 = (*pcVar12)(&mctx);\n                              rVar21 = err_1;\n                              if (err_1 != _REG_NOERROR) goto LAB_00055e44;\n                              aVar49.sbcset =\n                                   (re_bitset_ptr_t)(prVar3->eclosures + prVar3->nexts[last_start]);\n                              unaff_s4 = (re_dfa_t *)(aVar46.idx * 4);\n                              last_start = (Idx)(mctx.state_log + aVar46.idx);\n                              if (*(bitset_word_t *)last_start == 0) {\n                                dest_nodes.alloc = *aVar49.sbcset;\n                                dest_nodes.nelem =\n                                     ((re_node_set *)&(aVar49.mbcset)->range_starts)->alloc;\n                                dest_nodes.elems = (aVar49.mbcset)->range_ends;\n                                prVar51 = (re_dfa_t *)\n                                          (*pcVar13)(&mctx,(undefined1 *)(aVar46.idx + -1),\n                                                     mctx.eflags);\n                                aVar49.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                                aVar45 = (anon_union_4_5_a39f51ca_for_opr)prVar3;\n                                prVar35 = re_acquire_state_context\n                                                    (&err_1,prVar3,(re_node_set *)aVar49.mbcset,\n                                                     (uint)prVar51);\n                                ((re_string_t *)&((re_charset_t *)last_start)->mbchars)->raw_mbs =\n                                     (uchar *)prVar35;\n                              }\n                              else {\n                                aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                                         ((anon_union_4_5_a39f51ca_for_opr *)\n                                         (*(bitset_word_t *)last_start + 0x28))->mbcset;\n                                err_1 = re_node_set_init_union\n                                                  (&dest_nodes,(re_node_set *)aVar45.mbcset,\n                                                   (re_node_set *)aVar49.mbcset);\n                                rVar21 = err_1;\n                                if (err_1 != _REG_NOERROR) goto LAB_00055e44;\n                                prVar51 = (re_dfa_t *)\n                                          (*pcVar13)(&mctx,(undefined1 *)(aVar46.idx + -1),\n                                                     mctx.eflags);\n                                pprVar14 = mctx.state_log + aVar46.idx;\n                                aVar49.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                                aVar45 = (anon_union_4_5_a39f51ca_for_opr)prVar3;\n                                prVar35 = re_acquire_state_context\n                                                    (&err_1,prVar3,(re_node_set *)aVar49.mbcset,\n                                                     (uint)prVar51);\n                                *pprVar14 = prVar35;\n                                (*(code *)PTR_free_00079c24)(dest_nodes.elems);\n                              }\n                              unaff_s4 = (re_dfa_t *)(mctx.state_log + aVar46.idx);\n                              if ((unaff_s4->nodes == (re_token_t *)0x0) &&\n                                 (rVar21 = err_1, err_1 != _REG_NOERROR)) goto LAB_00055e44;\n                            }\n                          }\nLAB_000550a4:\n                          stop = (int)&((re_string_t *)&((re_charset_t *)stop)->mbchars)->raw_mbs +\n                                 1;\n                        } while (stop < (int)(unaff_s7.mbcset)->range_ends);\n                      }\n                      err = _REG_NOERROR;\n                    }\n                    uVar8 = (uint)mctx.input.mbs[mctx.input.cur_idx];\n                    mctx.input.cur_idx = mctx.input.cur_idx + 1;\n                    do {\n                      if (*(re_dfastate_t **)(unaff_s7.idx + 0x2c) != (re_dfastate_t *)0x0) {\n                        aVar49 = (anon_union_4_5_a39f51ca_for_opr)\n                                 ((anon_union_4_5_a39f51ca_for_opr *)\n                                 (&(*(re_dfastate_t **)(unaff_s7.idx + 0x2c))->hash + uVar8))->\n                                 mbcset;\nLAB_000553a0:\n                        aVar15 = aVar49;\n                        if (mctx.state_log != (re_dfastate_t **)0x0) goto LAB_000553ac;\n                        goto LAB_000553cc;\n                      }\n                      paVar18 = *(anon_union_4_5_a39f51ca_for_opr **)(unaff_s7.idx + 0x30);\n                      if (paVar18 != (anon_union_4_5_a39f51ca_for_opr *)0x0) {\n                        aVar45.sbcset = (re_bitset_ptr_t)(mctx.input.cur_idx + -1);\n                        uVar60 = re_string_context_at(&mctx.input,aVar45.idx,mctx.eflags);\n                        if ((uVar60 & 1) == 0) {\n                          aVar49 = (anon_union_4_5_a39f51ca_for_opr)paVar18[uVar8].mbcset;\n                        }\n                        else {\n                          paVar18 = paVar18 + uVar8 + 0x100;\n                          aVar49 = (anon_union_4_5_a39f51ca_for_opr)paVar18->mbcset;\n                        }\n                        goto LAB_000553a0;\n                      }\n                      aVar45 = unaff_s7;\n                      aVar49 = (anon_union_4_5_a39f51ca_for_opr)mctx.eflags;\n                      iVar61 = (*pcVar10)(mctx.dfa);\n                    } while (iVar61 != 0);\n                    err = _REG_ESPACE;\n                    rVar21 = err;\nLAB_00055e44:\n                    err = rVar21;\n                    aVar46.sbcset = (re_bitset_ptr_t)0x0;\n                    if (mctx.state_log == (re_dfastate_t **)0x0) {\n                      aVar15.sbcset = aVar46.sbcset;\n                      if (err != _REG_NOERROR) goto LAB_00055914;\n                      break;\n                    }\n                    aVar49.sbcset = (re_bitset_ptr_t)0x0;\nLAB_000553ac:\n                    aVar45.sbcset = (re_bitset_ptr_t)&mctx;\n                    aVar15.sbcset =\n                         &merge_state_with_log\n                                    (&err,(re_match_context_t *)aVar45.mbcset,aVar49.sbcset)->hash;\nLAB_000553cc:\n                    aVar46 = aVar15;\n                    if ((re_dfa_t *)aVar15.sbcset == (re_dfa_t *)0x0) {\n                      if (err != _REG_NOERROR) goto LAB_00055914;\n                      if ((mctx.state_log == (re_dfastate_t **)0x0) ||\n                         ((prVar52 != (re_dfa_t *)0x0 &&\n                          (paVar54 == (anon_union_4_5_a39f51ca_for_opr *)0x0)))) break;\n                      stop = (Idx)&mctx;\n                      last_start = (Idx)&err;\n                      paVar18 = (anon_union_4_5_a39f51ca_for_opr *)(PTR_DAT_000799a4 + 0x3684);\n                      do {\n                        pprVar14 = mctx.state_log + mctx.input.cur_idx;\n                        IVar17 = mctx.input.cur_idx;\n                        do {\n                          IVar17 = IVar17 + 1;\n                          aVar45.idx = mctx.state_log_top;\n                          aVar46 = aVar15;\n                          if (mctx.state_log_top < IVar17) goto LAB_00055da8;\n                          mctx.input.cur_idx = mctx.input.cur_idx + 1;\n                          pprVar14 = pprVar14 + 1;\n                        } while (*pprVar14 == (re_dfastate_t *)0x0);\n                        aVar49.sbcset = (re_bitset_ptr_t)0x0;\n                        aVar45.sbcset = (re_bitset_ptr_t)stop;\n                        aVar46.sbcset = (re_bitset_ptr_t)(*(code *)paVar18)(last_start);\n                        if (err != _REG_NOERROR) {\n                          if ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0) goto LAB_00055da8;\n                          break;\n                        }\n                        aVar45.idx = mctx.state_log_top;\n                      } while ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0);\n                    }\n                    aVar16.ctx_type = unaff_s7.ctx_type ^ aVar46.ctx_type;\n                    aVar56 = unaff_s7;\n                    aVar15 = local_138;\n                    if ((bVar36) &&\n                       (aVar56.ctx_type = aVar16.ctx_type, aVar15.sbcset = unaff_s5.sbcset,\n                       (re_dfa_t *)aVar16.sbcset != (re_dfa_t *)0x0)) {\n                      bVar36 = false;\n                      aVar15 = local_138;\n                    }\n                    local_138 = aVar15;\n                    unaff_s7 = aVar46;\n                    if (((*(byte *)(aVar46.idx + 0x34) & 8) != 0) &&\n                       (((*(byte *)(aVar46.idx + 0x34) & 1) == 0 ||\n                        (aVar45 = aVar46, aVar49.idx = mctx.input.cur_idx,\n                        IVar17 = check_halt_state_context(&mctx,aVar46.idx,mctx.input.cur_idx),\n                        IVar17 != 0)))) {\n                      unaff_s7 = aVar56;\n                      local_c4.idx = mctx.input.cur_idx;\n                      if (paVar54 == (anon_union_4_5_a39f51ca_for_opr *)0x0) goto LAB_00055dbc;\n                      prVar52 = (re_dfa_t *)0x1;\n                      local_144 = (int *)0x0;\n                      unaff_s7 = aVar46;\n                    }\n                  }\nLAB_00055da8:\n                  if (local_144 != (int *)0x0) {\n                    *local_144 = *local_144 + (int)local_138.sbcset;\n                  }\n                }\n                else {\n                  aVar46.sbcset = (re_bitset_ptr_t)&(unaff_s7.mbcset)->range_starts;\n                  aVar49.sbcset = (re_bitset_ptr_t)0x0;\n                  aVar45 = aVar46;\n                  err = check_subexp_matching_top(&mctx,(re_node_set *)aVar46.mbcset,0);\n                  local_c4.idx = err;\n                  if ((re_dfa_t *)err == (re_dfa_t *)0x0) {\n                    if ((*(byte *)(unaff_s7.idx + 0x34) & 2) == 0) {\n                      aVar45 = aVar46;\n                      bVar36 = false;\n                    }\n                    else {\n                      aVar45 = aVar46;\n                      err = transit_state_bkref(&mctx,(re_node_set *)aVar46.mbcset);\n                      local_c4.idx = err;\n                      if ((re_dfa_t *)err != (re_dfa_t *)0x0) goto LAB_00055dbc;\n                      bVar36 = false;\n                    }\n                    goto LAB_00054d50;\n                  }\n                }\nLAB_00055dbc:\n                if ((re_dfa_t *)local_c4.sbcset == (re_dfa_t *)0xffffffff) {\nLAB_00055b04:\n                  match_ctx_clean(&mctx);\nLAB_00055b1c:\n                  match_first = aVar39.idx + match_first;\n                  if (aVar40.idx <= match_first) goto code_r0x00055b38;\n                  local_150.idx = 1;\n                  goto LAB_000557e4;\n                }\n                if ((re_dfa_t *)local_c4.sbcset == (re_dfa_t *)&SUB_fffffffe) {\n                  local_150.idx = 0xc;\n                  goto LAB_000557e4;\n                }\n                mctx.match_last = local_c4.idx;\n                if ((preg->field_0x1c & 8) == 0) {\n                  if (aVar4.sbcset < (re_dfa_t *)0x2) {\n                    if (prVar59->nbackref == 0) goto LAB_00055c08;\n                    aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                             ((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + local_c4.idx))->\n                             mbcset;\n                    aVar49 = local_c4;\n                    mctx.last_node =\n                         check_halt_state_context(&mctx,(re_dfastate_t *)aVar45.mbcset,local_c4.idx)\n                    ;\n                  }\n                  else {\n                    aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                             ((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + local_c4.idx))->\n                             mbcset;\n                    aVar49 = local_c4;\n                    mctx.last_node =\n                         check_halt_state_context(&mctx,(re_dfastate_t *)aVar45.mbcset,local_c4.idx)\n                    ;\n                  }\n                  if (aVar4.sbcset < (re_dfa_t *)0x2) {\nLAB_00055c6c:\n                    prVar52 = prVar51;\n                    unaff_s4 = mctx.dfa;\n                    if (prVar59->nbackref == 0) goto LAB_00055548;\n                  }\n                  else {\n                    cVar37 = prVar59->field_0x58;\nLAB_00055c20:\n                    prVar52 = prVar51;\n                    if (-1 < cVar37) goto LAB_00055c6c;\n                  }\n                  paVar18 = (anon_union_4_5_a39f51ca_for_opr *)mctx.last_node;\n                  prVar3 = mctx.dfa;\n                  unaff_s4 = prVar3;\n                  if ((uint)local_c4 < (re_dfa_t *)0x3fffffff) {\n                    aVar46.idx = (int)((int)&((re_string_t *)&(local_c4.mbcset)->mbchars)->raw_mbs +\n                                      1) * 4;\n                    unaff_s5.sbcset = (re_bitset_ptr_t)(*(code *)PTR_malloc_00079b54)(aVar46.sbcset)\n                    ;\n                    if ((re_dfa_t *)unaff_s5.sbcset == (re_dfa_t *)0x0) {\nLAB_00055b9c:\n                      (*(code *)PTR_free_00079c24)(unaff_s5.sbcset);\n                      local_150.idx = 0xc;\n                      prVar51 = prVar52;\n                    }\n                    else {\n                      aVar45.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                      if (prVar3->nbackref == 0) {\n                        dest_nodes.nelem = 0;\n                        dest_nodes.elems = &paVar18->idx;\n                        dest_nodes.alloc = (Idx)unaff_s5.sbcset;\n                        last_start = sift_states_backward(&mctx,(re_sift_context_t *)aVar45.mbcset);\n                        (*(code *)PTR_free_00079c24)(0);\n                        if ((re_dfa_t *)last_start == (re_dfa_t *)0x0) {\n                          aVar46.mbcset = (re_charset_t *)*unaff_s5.sbcset;\n                          if ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0) {\nLAB_00055b70:\n                            (*(code *)PTR_free_00079c24)(unaff_s5.sbcset);\n                            (*(code *)PTR_free_00079c24)(aVar46.sbcset);\n                            prVar51 = prVar52;\n                            goto LAB_00055b04;\n                          }\nLAB_00055528:\n                          (*(code *)PTR_free_00079c24)(mctx.state_log);\n                          prVar51 = prVar52;\n                          unaff_s4 = prVar3;\n                          mctx.match_last = local_c4.idx;\n                          mctx.last_node = (Idx)paVar18;\n                          mctx.state_log = (re_dfastate_t **)unaff_s5.sbcset;\n                          goto LAB_00055548;\n                        }\nLAB_00055acc:\n                        aVar46.sbcset = (re_bitset_ptr_t)0x0;\n                        prVar51 = prVar52;\n                        unaff_s4 = prVar3;\n                      }\n                      else {\n                        aVar46.sbcset =\n                             (re_bitset_ptr_t)(*(code *)PTR_malloc_00079b54)(aVar46.sbcset);\n                        if ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0) goto LAB_00055b9c;\n                        unaff_s7.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                        pcVar9 = (code *)(PTR_DAT_000799a4 + 0x421c);\n                        pcVar10 = (code *)(PTR_DAT_000799a4 + -0x6bc0);\n                        prVar51 = prVar52;\n                        while( true ) {\n                          prVar52 = (re_dfa_t *)(local_c4.idx + 1);\n                          stop = (int)prVar52 * 4;\n                          aVar49.idx = stop;\n                          (*(code *)PTR_memset_00079b00)(aVar46.sbcset,0);\n                          aVar45.sbcset = unaff_s7.sbcset;\n                          dest_nodes.alloc = (Idx)unaff_s5.sbcset;\n                          dest_nodes.nelem = (Idx)aVar46.sbcset;\n                          dest_nodes.elems = (Idx *)paVar18;\n                          last_start = (*pcVar9)(&mctx);\n                          (*(code *)PTR_free_00079c24)(0);\n                          unaff_s4 = prVar52;\n                          if ((re_dfa_t *)last_start != (re_dfa_t *)0x0) break;\n                          if ((*unaff_s5.sbcset != 0) || (stop = stop + -4, *aVar46.sbcset != 0)) {\n                            aVar45.sbcset = unaff_s5.sbcset;\n                            aVar49.sbcset = aVar46.sbcset;\n                            last_start = merge_state_array(prVar3,(re_dfastate_t **)unaff_s5.sbcset,\n                                                           (re_dfastate_t **)aVar46.sbcset,\n                                                           (Idx)prVar52);\n                            (*(code *)PTR_free_00079c24)(aVar46.sbcset);\n                            if ((re_dfa_t *)last_start != (re_dfa_t *)0x0) goto LAB_00055acc;\n                            goto LAB_00055528;\n                          }\n                          stop = (Idx)(mctx.state_log + (int)&prVar52[-1].lock.__align + 0x17);\n                          do {\n                            while( true ) {\n                              local_c4.sbcset = (re_bitset_ptr_t)(local_c4.idx + -1);\n                              if (local_c4.idx < 0) goto LAB_00055b70;\n                              aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                                       ((anon_union_4_5_a39f51ca_for_opr *)(stop + -4))->idx;\n                              if ((re_dfa_t *)aVar45.sbcset != (re_dfa_t *)0x0) break;\n                              stop = stop + -4;\n                            }\n                            stop = stop + -4;\n                          } while ((*(byte *)(aVar45.idx + 0x34) & 8) == 0);\n                          paVar18 = (anon_union_4_5_a39f51ca_for_opr *)\n                                    (*pcVar10)(&mctx,aVar45.sbcset,local_c4.sbcset);\n                          prVar51 = prVar52;\n                        }\n                      }\n                      (*(code *)PTR_free_00079c24)(unaff_s5.sbcset);\n                      (*(code *)PTR_free_00079c24)(aVar46.sbcset);\n                      local_150.idx = last_start;\n                      if ((re_dfa_t *)last_start == (re_dfa_t *)0x1) goto LAB_00055b04;\n                    }\n                  }\n                  else {\n                    local_150.idx = 0xc;\n                    prVar51 = prVar52;\n                  }\n                  goto LAB_000557e4;\n                }\n                if (prVar59->nbackref != 0) {\n                  aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                           ((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + local_c4.idx))->\n                           mbcset;\n                  aVar49 = local_c4;\n                  mctx.last_node =\n                       check_halt_state_context(&mctx,(re_dfastate_t *)aVar45.mbcset,local_c4.idx);\n                  goto LAB_00055c6c;\n                }\nLAB_00055c08:\n                if (((preg->field_0x1c & 8) == 0) && ((re_dfa_t *)0x1 < aVar4.sbcset)) {\n                  cVar37 = prVar59->field_0x58;\n                  goto LAB_00055c20;\n                }\nLAB_00055548:\n                if ((re_dfa_t *)aVar4.sbcset == (re_dfa_t *)0x0) goto LAB_000557e4;\n                if (aVar4.sbcset < (re_dfa_t *)0x2) {\n                  pmatch->rm_so = 0;\n                  pmatch->rm_eo = mctx.match_last;\n                  goto LAB_000555ac;\n                }\n                prVar19 = pmatch + 1;\n                do {\n                  prVar19->rm_eo = -1;\n                  prVar19->rm_so = -1;\n                  prVar19 = prVar19 + 1;\n                } while (prVar19 != pmatch + aVar4.idx);\n                pmatch->rm_so = 0;\n                pmatch->rm_eo = mctx.match_last;\n                if ((preg->field_0x1c & 8) != 0) {\nLAB_000555ac:\n                  prVar19 = pmatch;\n                  do {\n                    aVar45.sbcset = (re_bitset_ptr_t)prVar19->rm_so;\n                    if ((re_dfa_t *)aVar45.sbcset != (re_dfa_t *)0xffffffff) {\n                      if (mctx.input.offsets_needed != '\0') {\n                        rVar47 = mctx.input.valid_raw_len;\n                        if (aVar45.sbcset != (re_bitset_ptr_t)mctx.input.valid_len) {\n                          rVar47 = mctx.input.offsets[aVar45.idx];\n                        }\n                        prVar19->rm_so = rVar47;\n                        rVar47 = mctx.input.valid_raw_len;\n                        if (mctx.input.valid_len != prVar19->rm_eo) {\n                          rVar47 = mctx.input.offsets[prVar19->rm_eo];\n                        }\n                        prVar19->rm_eo = rVar47;\n                      }\n                      prVar19->rm_so = prVar19->rm_so + match_first;\n                      aVar45.sbcset = (re_bitset_ptr_t)(prVar19->rm_eo + match_first);\n                      prVar19->rm_eo = (regoff_t)aVar45;\n                    }\n                    prVar19 = prVar19 + 1;\n                  } while (prVar19 != pmatch + aVar4.idx);\n                  if (0 < local_118) {\n                    prVar19 = pmatch + aVar4.idx;\n                    do {\n                      prVar19->rm_so = -1;\n                      prVar19->rm_eo = -1;\n                      prVar19 = prVar19 + 1;\n                    } while (prVar19 != pmatch + nmatch);\n                  }\n                  aVar49.idx = match_first;\n                  prVar51 = (re_dfa_t *)pmatch;\n                  local_150.sbcset = aVar7.sbcset;\n                  if (prVar59->subexp_map != (Idx *)0x0) {\n                    aVar49.sbcset = (re_bitset_ptr_t)(aVar4.idx + -1);\n                    prVar52 = (re_dfa_t *)0x0;\n                    prVar19 = pmatch;\n                    while( true ) {\n                      aVar45.idx = (int)prVar52 * 4;\n                      if ((re_dfa_t *)aVar49.sbcset == prVar52) break;\n                      if ((re_dfa_t *)prVar59->subexp_map[(int)prVar52] != prVar52) {\n                        prVar19[1].rm_so =\n                             pmatch[(int)((int)&((re_string_t *)\n                                                &((re_dfa_t *)prVar59->subexp_map[(int)prVar52])->\n                                                 nodes)->raw_mbs + 1)].rm_so;\n                        prVar19[1].rm_eo = pmatch[prVar59->subexp_map[(int)prVar52] + 1].rm_eo;\n                      }\n                      prVar52 = (re_dfa_t *)((int)&((re_string_t *)&prVar52->nodes)->raw_mbs + 1);\n                      prVar19 = prVar19 + 1;\n                    }\n                  }\n                  goto LAB_000557e4;\n                }\n                if ((char)prVar59->field_0x58 < '\0') {\n                  bVar36 = 0 < prVar59->nbackref;\n                }\n                else {\n                  bVar36 = false;\n                }\n                aVar45.sbcset = (re_bitset_ptr_t)&mctx;\n                aVar49.sbcset = aVar4.sbcset;\n                prVar51 = (re_dfa_t *)pmatch;\n                local_150.idx =\n                     set_regs(preg,(re_match_context_t *)aVar45.mbcset,aVar4.ctx_type,pmatch,bVar36)\n                ;\n                if ((re_dfa_t *)local_150.sbcset == (re_dfa_t *)0x0) goto LAB_000555ac;\n              }" if (parenthesized_expression "(aVar41.idx < start)" ( (binary_expression "aVar41.idx < start" (field_expression "aVar41.idx" identifier . field_identifier) < identifier) )) (compound_statement "{\n                local_150.idx = 1;\n                stop = aVar56.idx;\n              }" { (expression_statement "local_150.idx = 1;" (assignment_expression "local_150.idx = 1" (field_expression "local_150.idx" identifier . field_identifier) = number_literal) ;) (expression_statement "stop = aVar56.idx;" (assignment_expression "stop = aVar56.idx" identifier = (field_expression "aVar56.idx" identifier . field_identifier)) ;) }) (else_clause "else {\n                piVar38 = &match_first;\n                if ((re_dfa_t *)aVar46.sbcset != (re_dfa_t *)0x0) {\n                  piVar38 = (int *)0x0;\n                }\n                pcVar5 = (code *)(PTR_DAT_000799a4 + -0x2b7c);\n                piVar6 = (int *)(PTR_s_nt0_000795b8 + (rVar20 - 4) * 4 + 0x6e38);\nLAB_00055b44:\n                if (rVar20 - 4 < 5) {\n                    /* WARNING: Could not emulate address calculation at 0x00054920 */\n                    /* WARNING: Treating indirect jump as call */\n                  rVar21 = (*(code *)(&_gp + *piVar6))();\n                  return rVar21;\n                }\n                last_start = (Idx)&mctx;\n                prVar52 = prVar51;\n                while( true ) {\n                  aVar46.idx = match_first;\n                  uVar8 = match_first - mctx.input.raw_mbs_idx;\n                  aVar49 = (anon_union_4_5_a39f51ca_for_opr)eflags;\n                  paVar18 = paVar2;\n                  stop = local_148.idx;\n                  unaff_s4 = (re_dfa_t *)length;\n                  unaff_s5 = aVar39;\n                  unaff_s7 = aVar41;\n                  if ((uint)mctx.input.valid_raw_len <= uVar8) {\n                    aVar45.idx = match_first;\n                    local_150.sbcset = (re_bitset_ptr_t)(*pcVar5)(last_start);\n                    prVar51 = prVar52;\n                    if ((re_dfa_t *)local_150.sbcset != (re_dfa_t *)0x0) goto LAB_000557e4;\n                    uVar8 = (int)aVar46.sbcset - mctx.input.raw_mbs_idx;\n                  }\n                  if (aVar46.idx < length) {\n                    uVar8 = (uint)mctx.input.mbs[uVar8];\n                  }\n                  else {\n                    uVar8 = 0;\n                  }\n                  aVar56.sbcset = aVar46.sbcset + aVar39.sbcset;\n                  aVar46.sbcset = aVar56.sbcset;\n                  if (*(char *)((int)local_148.sbcset + uVar8) != '\0') break;\n                  prVar51 = prVar52;\n                  match_first = aVar56.idx;\n                  if (aVar56.idx < aVar40.idx) {\n                    local_150.idx = 1;\n                    goto LAB_000557e4;\n                  }\n                  aVar46.idx._0_3_ = 0;\n                  aVar46.idx._3_1_ = aVar41.idx < aVar56.idx;\n                  if ((re_dfa_t *)aVar46.sbcset != (re_dfa_t *)0x0) {\n                    local_150.idx = 1;\n                    goto LAB_000557e4;\n                  }\n                }\n                while( true ) {\n                  aVar45.idx = match_first;\n                  aVar49 = (anon_union_4_5_a39f51ca_for_opr)eflags;\n                  aVar7.sbcset = (re_bitset_ptr_t)(*pcVar5)(&mctx);\n                  aVar15 = (anon_union_4_5_a39f51ca_for_opr)mctx.dfa;\n                  aVar56.idx = mctx.input.cur_idx;\n                  prVar51 = prVar52;\n                  local_150.sbcset = aVar7.sbcset;\n                  if ((re_dfa_t *)aVar7.sbcset != (re_dfa_t *)0x0) goto LAB_000557e4;\n                  if (((iVar55 != 1) && (mctx.input.valid_len != 0)) &&\n                     (*mctx.input.wcs == 0xffffffff)) goto LAB_00055b1c;\n                  mctx.max_mb_elem_len = 0;\n                  mctx.nbkref_ents = 0;\n                  mctx.state_log_top = 0;\n                  local_138.idx = mctx.input.cur_idx;\n                  err = _REG_NOERROR;\n                  unaff_s7 = (anon_union_4_5_a39f51ca_for_opr)(mctx.dfa)->init_state;\n                  aVar49 = (anon_union_4_5_a39f51ca_for_opr)mctx.eflags;\n                  aVar46 = aVar15;\n                  if ((*(byte *)(unaff_s7.idx + 0x34) & 1) == 0) break;\n                  aVar45.sbcset = (re_bitset_ptr_t)(mctx.input.cur_idx + -1);\n                  prVar51 = (re_dfa_t *)re_string_context_at(&mctx.input,aVar45.idx,mctx.eflags);\n                  if (((uint)prVar51 & 1) == 0) {\n                    if (prVar51 == (re_dfa_t *)0x0) break;\n                    if (((uint)prVar51 & 6) == 6) {\n                      unaff_s7 = (anon_union_4_5_a39f51ca_for_opr)\n                                 ((re_dfa_t *)aVar15.idx)->init_state_begbuf;\n                      goto LAB_00054d1c;\n                    }\n                    if (((uint)prVar51 & 2) != 0) {\n                      unaff_s7 = (anon_union_4_5_a39f51ca_for_opr)\n                                 ((re_dfa_t *)aVar15.idx)->init_state_nl;\n                      goto LAB_00054d1c;\n                    }\n                    prVar52 = prVar51;\n                    if (((uint)prVar51 & 4) == 0) break;\n                    aVar49 = (anon_union_4_5_a39f51ca_for_opr)\n                             ((anon_union_4_5_a39f51ca_for_opr *)(unaff_s7.idx + 0x28))->mbcset;\n                    aVar45 = aVar15;\n                    unaff_s7.sbcset =\n                         &re_acquire_state_context\n                                    (&err,aVar15.sbcset,(re_node_set *)aVar49.mbcset,(uint)prVar51)\n                          ->hash;\n                    prVar52 = prVar51;\n                    if ((re_dfa_t *)unaff_s7.sbcset != (re_dfa_t *)0x0) break;\n                    if (err == _REG_ESPACE) goto LAB_00055914;\n                  }\n                  else {\n                    unaff_s7 = (anon_union_4_5_a39f51ca_for_opr)\n                               ((re_dfa_t *)aVar15.idx)->init_state_word;\nLAB_00054d1c:\n                    prVar52 = (re_dfa_t *)PTR_s_nt0_000795b8;\n                    if ((re_dfa_t *)unaff_s7.sbcset != (re_dfa_t *)0x0) break;\n                  }\n                  prVar52 = (re_dfa_t *)(PTR_s_nt0_000795b8 + 0x6eb0);\n                  aVar45.sbcset = (re_bitset_ptr_t)(PTR_s_nt0_000795b8 + 0x712c);\n                  match_first = (*(code *)PTR___assert_fail_000799f8)\n                                          (PTR_s_nt0_000795b8 + 0x71a0,aVar45.sbcset,0x435);\n                  if ((re_bitset_ptr_t)match_first == aVar41.sbcset) {\n                    if (match_first < length) {\n                      uVar8 = (uint)(byte)string[match_first];\n                    }\n                    else {\n                      uVar8 = 0;\n                    }\n                    if (puVar50 != (uchar *)0x0) {\n                      uVar8 = (uint)puVar50[uVar8];\n                    }\n                    if (*(char *)((int)local_148.sbcset + uVar8) == '\0') {\n                      local_150.idx = 1;\n                      aVar49 = (anon_union_4_5_a39f51ca_for_opr)eflags;\n                      prVar51 = prVar52;\n                      goto LAB_000557e4;\n                    }\n                  }\n                }\n                prVar51 = prVar52;\n                bVar36 = piVar38 != (int *)0x0;\n                if ((mctx.state_log == (re_dfastate_t **)0x0) ||\n                   (((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + aVar56.idx))->mbcset =\n                         (re_charset_t *)unaff_s7, ((re_dfa_t *)aVar15.idx)->nbackref == 0)) {\nLAB_00054d50:\n                  if ((int)*(bin_tree_t **)(unaff_s7.idx + 0x34) << 4 < 0) {\n                    if (((*(byte *)(unaff_s7.idx + 0x34) & 1) == 0) ||\n                       (aVar45 = unaff_s7, aVar49 = aVar56,\n                       IVar17 = check_halt_state_context(&mctx,unaff_s7.idx,aVar56.idx), IVar17 != 0\n                       )) {\n                      local_c4 = aVar56;\n                      if (paVar54 == (anon_union_4_5_a39f51ca_for_opr *)0x0) goto LAB_00055dbc;\n                      prVar52 = (re_dfa_t *)0x1;\n                    }\n                    else {\n                      aVar56.idx = -1;\n                      prVar52 = (re_dfa_t *)0x0;\n                    }\n                  }\n                  else {\n                    aVar56.idx = -1;\n                    prVar52 = (re_dfa_t *)0x0;\n                  }\n                  pcVar9 = (code *)(PTR_DAT_000799a4 + -0x7144);\n                  pcVar10 = (code *)(PTR_DAT_000799a4 + -0x1980);\n                  pcVar11 = (code *)(PTR_DAT_000799a4 + -0x2f9c);\n                  local_c4 = aVar56;\n                  local_144 = piVar38;\n                  while( true ) {\n                    uVar63 = CONCAT44(mctx.input.valid_len,mctx.input.len);\n                    unaff_s5.sbcset = (re_bitset_ptr_t)(mctx.input.cur_idx + 1);\n                    aVar45.idx = mctx.input.cur_idx;\n                    if (mctx.input.stop <= mctx.input.cur_idx) break;\n                    if ((mctx.input.bufs_len <= unaff_s5.idx) &&\n                       (mctx.input.bufs_len < mctx.input.len)) goto LAB_00054e94;\n                    if (mctx.input.valid_len <= unaff_s5.idx) {\n                      while ((int)((ulonglong)uVar63 >> 0x20) < (int)uVar63) {\nLAB_00054e94:\n                        aVar45.sbcset =\n                             (re_bitset_ptr_t)\n                             ((int)&((re_string_t *)&(aVar45.mbcset)->mbchars)->raw_mbs + 2);\n                        err = (*pcVar9)(&mctx);\n                        if (err == _REG_NOERROR) break;\n                        aVar15 = aVar46;\n                        if (err == _REG_ESPACE) goto LAB_00055914;\n                        prVar51 = (re_dfa_t *)(PTR_s_nt0_000795b8 + 0x6eb0);\n                        aVar49.idx = 0x46c;\n                        aVar45.sbcset = (re_bitset_ptr_t)(PTR_s_nt0_000795b8 + 0x712c);\n                        uVar63 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0);\n                        prVar52 = prVar59;\n                      }\n                    }\n                    prVar3 = mctx.dfa;\n                    if ((int)*(bin_tree_t **)(unaff_s7.idx + 0x34) << 5 < 0) {\n                      paVar18 = (anon_union_4_5_a39f51ca_for_opr *)prVar3;\n                      if (0 < (int)(unaff_s7.mbcset)->range_ends) {\n                        pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6fdc);\n                        pcVar13 = (code *)(PTR_DAT_000799a4 + -0x6ef0);\n                        stop = 0;\n                        do {\n                          last_start = ((anon_union_4_5_a39f51ca_for_opr *)\n                                       ((unaff_s7.mbcset)->char_classes + stop))->idx;\n                          prVar53 = prVar3->nodes;\n                          uVar8 = *(uint *)&prVar53[last_start].field_0x4;\n                          if ((uVar8 & 0x800) != 0) {\n                            if ((uVar8 & 0xffc000) != 0) {\n                              aVar45.idx = mctx.input.cur_idx;\n                              uVar60 = (*pcVar13)(&mctx,mctx.input.cur_idx,mctx.eflags);\n                              uVar8 = (uint)(*(int *)&prVar53[last_start].field_0x4 << 8) >> 0x16;\n                              if ((uVar8 & 4) == 0) {\n                                uVar26 = uVar60 & 1;\n                                if ((uVar8 & 8) != 0) goto joined_r0x00054f40;\n                              }\n                              else {\n                                uVar26 = uVar8 & 8;\n                                if ((uVar60 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                                if (uVar26 != 0) goto LAB_000550a4;\n                              }\n                              if ((((uVar8 & 0x20) != 0) && ((uVar60 & 2) == 0)) ||\n                                 (((uVar8 & 0x80) != 0 &&\n                                  (prVar51 = (re_dfa_t *)mctx.input.cur_idx, (uVar60 & 8) == 0))))\n                              goto LAB_000550a4;\n                            }\n                            aVar49.sbcset = (re_bitset_ptr_t)&mctx;\n                            aVar45.idx = last_start;\n                            prVar51 = (re_dfa_t *)mctx.input.cur_idx;\n                            iVar61 = (*pcVar11)(prVar3);\n                            if (iVar61 != 0) {\n                              aVar46.sbcset = (re_bitset_ptr_t)(iVar61 + mctx.input.cur_idx);\n                              if (iVar61 <= mctx.max_mb_elem_len) {\n                                iVar61 = mctx.max_mb_elem_len;\n                              }\n                              aVar45.sbcset = aVar46.sbcset;\n                              mctx.max_mb_elem_len = iVar61;\n                              err_1 = (*pcVar12)(&mctx);\n                              rVar21 = err_1;\n                              if (err_1 != _REG_NOERROR) goto LAB_00055e44;\n                              aVar49.sbcset =\n                                   (re_bitset_ptr_t)(prVar3->eclosures + prVar3->nexts[last_start]);\n                              unaff_s4 = (re_dfa_t *)(aVar46.idx * 4);\n                              last_start = (Idx)(mctx.state_log + aVar46.idx);\n                              if (*(bitset_word_t *)last_start == 0) {\n                                dest_nodes.alloc = *aVar49.sbcset;\n                                dest_nodes.nelem =\n                                     ((re_node_set *)&(aVar49.mbcset)->range_starts)->alloc;\n                                dest_nodes.elems = (aVar49.mbcset)->range_ends;\n                                prVar51 = (re_dfa_t *)\n                                          (*pcVar13)(&mctx,(undefined1 *)(aVar46.idx + -1),\n                                                     mctx.eflags);\n                                aVar49.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                                aVar45 = (anon_union_4_5_a39f51ca_for_opr)prVar3;\n                                prVar35 = re_acquire_state_context\n                                                    (&err_1,prVar3,(re_node_set *)aVar49.mbcset,\n                                                     (uint)prVar51);\n                                ((re_string_t *)&((re_charset_t *)last_start)->mbchars)->raw_mbs =\n                                     (uchar *)prVar35;\n                              }\n                              else {\n                                aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                                         ((anon_union_4_5_a39f51ca_for_opr *)\n                                         (*(bitset_word_t *)last_start + 0x28))->mbcset;\n                                err_1 = re_node_set_init_union\n                                                  (&dest_nodes,(re_node_set *)aVar45.mbcset,\n                                                   (re_node_set *)aVar49.mbcset);\n                                rVar21 = err_1;\n                                if (err_1 != _REG_NOERROR) goto LAB_00055e44;\n                                prVar51 = (re_dfa_t *)\n                                          (*pcVar13)(&mctx,(undefined1 *)(aVar46.idx + -1),\n                                                     mctx.eflags);\n                                pprVar14 = mctx.state_log + aVar46.idx;\n                                aVar49.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                                aVar45 = (anon_union_4_5_a39f51ca_for_opr)prVar3;\n                                prVar35 = re_acquire_state_context\n                                                    (&err_1,prVar3,(re_node_set *)aVar49.mbcset,\n                                                     (uint)prVar51);\n                                *pprVar14 = prVar35;\n                                (*(code *)PTR_free_00079c24)(dest_nodes.elems);\n                              }\n                              unaff_s4 = (re_dfa_t *)(mctx.state_log + aVar46.idx);\n                              if ((unaff_s4->nodes == (re_token_t *)0x0) &&\n                                 (rVar21 = err_1, err_1 != _REG_NOERROR)) goto LAB_00055e44;\n                            }\n                          }\nLAB_000550a4:\n                          stop = (int)&((re_string_t *)&((re_charset_t *)stop)->mbchars)->raw_mbs +\n                                 1;\n                        } while (stop < (int)(unaff_s7.mbcset)->range_ends);\n                      }\n                      err = _REG_NOERROR;\n                    }\n                    uVar8 = (uint)mctx.input.mbs[mctx.input.cur_idx];\n                    mctx.input.cur_idx = mctx.input.cur_idx + 1;\n                    do {\n                      if (*(re_dfastate_t **)(unaff_s7.idx + 0x2c) != (re_dfastate_t *)0x0) {\n                        aVar49 = (anon_union_4_5_a39f51ca_for_opr)\n                                 ((anon_union_4_5_a39f51ca_for_opr *)\n                                 (&(*(re_dfastate_t **)(unaff_s7.idx + 0x2c))->hash + uVar8))->\n                                 mbcset;\nLAB_000553a0:\n                        aVar15 = aVar49;\n                        if (mctx.state_log != (re_dfastate_t **)0x0) goto LAB_000553ac;\n                        goto LAB_000553cc;\n                      }\n                      paVar18 = *(anon_union_4_5_a39f51ca_for_opr **)(unaff_s7.idx + 0x30);\n                      if (paVar18 != (anon_union_4_5_a39f51ca_for_opr *)0x0) {\n                        aVar45.sbcset = (re_bitset_ptr_t)(mctx.input.cur_idx + -1);\n                        uVar60 = re_string_context_at(&mctx.input,aVar45.idx,mctx.eflags);\n                        if ((uVar60 & 1) == 0) {\n                          aVar49 = (anon_union_4_5_a39f51ca_for_opr)paVar18[uVar8].mbcset;\n                        }\n                        else {\n                          paVar18 = paVar18 + uVar8 + 0x100;\n                          aVar49 = (anon_union_4_5_a39f51ca_for_opr)paVar18->mbcset;\n                        }\n                        goto LAB_000553a0;\n                      }\n                      aVar45 = unaff_s7;\n                      aVar49 = (anon_union_4_5_a39f51ca_for_opr)mctx.eflags;\n                      iVar61 = (*pcVar10)(mctx.dfa);\n                    } while (iVar61 != 0);\n                    err = _REG_ESPACE;\n                    rVar21 = err;\nLAB_00055e44:\n                    err = rVar21;\n                    aVar46.sbcset = (re_bitset_ptr_t)0x0;\n                    if (mctx.state_log == (re_dfastate_t **)0x0) {\n                      aVar15.sbcset = aVar46.sbcset;\n                      if (err != _REG_NOERROR) goto LAB_00055914;\n                      break;\n                    }\n                    aVar49.sbcset = (re_bitset_ptr_t)0x0;\nLAB_000553ac:\n                    aVar45.sbcset = (re_bitset_ptr_t)&mctx;\n                    aVar15.sbcset =\n                         &merge_state_with_log\n                                    (&err,(re_match_context_t *)aVar45.mbcset,aVar49.sbcset)->hash;\nLAB_000553cc:\n                    aVar46 = aVar15;\n                    if ((re_dfa_t *)aVar15.sbcset == (re_dfa_t *)0x0) {\n                      if (err != _REG_NOERROR) goto LAB_00055914;\n                      if ((mctx.state_log == (re_dfastate_t **)0x0) ||\n                         ((prVar52 != (re_dfa_t *)0x0 &&\n                          (paVar54 == (anon_union_4_5_a39f51ca_for_opr *)0x0)))) break;\n                      stop = (Idx)&mctx;\n                      last_start = (Idx)&err;\n                      paVar18 = (anon_union_4_5_a39f51ca_for_opr *)(PTR_DAT_000799a4 + 0x3684);\n                      do {\n                        pprVar14 = mctx.state_log + mctx.input.cur_idx;\n                        IVar17 = mctx.input.cur_idx;\n                        do {\n                          IVar17 = IVar17 + 1;\n                          aVar45.idx = mctx.state_log_top;\n                          aVar46 = aVar15;\n                          if (mctx.state_log_top < IVar17) goto LAB_00055da8;\n                          mctx.input.cur_idx = mctx.input.cur_idx + 1;\n                          pprVar14 = pprVar14 + 1;\n                        } while (*pprVar14 == (re_dfastate_t *)0x0);\n                        aVar49.sbcset = (re_bitset_ptr_t)0x0;\n                        aVar45.sbcset = (re_bitset_ptr_t)stop;\n                        aVar46.sbcset = (re_bitset_ptr_t)(*(code *)paVar18)(last_start);\n                        if (err != _REG_NOERROR) {\n                          if ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0) goto LAB_00055da8;\n                          break;\n                        }\n                        aVar45.idx = mctx.state_log_top;\n                      } while ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0);\n                    }\n                    aVar16.ctx_type = unaff_s7.ctx_type ^ aVar46.ctx_type;\n                    aVar56 = unaff_s7;\n                    aVar15 = local_138;\n                    if ((bVar36) &&\n                       (aVar56.ctx_type = aVar16.ctx_type, aVar15.sbcset = unaff_s5.sbcset,\n                       (re_dfa_t *)aVar16.sbcset != (re_dfa_t *)0x0)) {\n                      bVar36 = false;\n                      aVar15 = local_138;\n                    }\n                    local_138 = aVar15;\n                    unaff_s7 = aVar46;\n                    if (((*(byte *)(aVar46.idx + 0x34) & 8) != 0) &&\n                       (((*(byte *)(aVar46.idx + 0x34) & 1) == 0 ||\n                        (aVar45 = aVar46, aVar49.idx = mctx.input.cur_idx,\n                        IVar17 = check_halt_state_context(&mctx,aVar46.idx,mctx.input.cur_idx),\n                        IVar17 != 0)))) {\n                      unaff_s7 = aVar56;\n                      local_c4.idx = mctx.input.cur_idx;\n                      if (paVar54 == (anon_union_4_5_a39f51ca_for_opr *)0x0) goto LAB_00055dbc;\n                      prVar52 = (re_dfa_t *)0x1;\n                      local_144 = (int *)0x0;\n                      unaff_s7 = aVar46;\n                    }\n                  }\nLAB_00055da8:\n                  if (local_144 != (int *)0x0) {\n                    *local_144 = *local_144 + (int)local_138.sbcset;\n                  }\n                }\n                else {\n                  aVar46.sbcset = (re_bitset_ptr_t)&(unaff_s7.mbcset)->range_starts;\n                  aVar49.sbcset = (re_bitset_ptr_t)0x0;\n                  aVar45 = aVar46;\n                  err = check_subexp_matching_top(&mctx,(re_node_set *)aVar46.mbcset,0);\n                  local_c4.idx = err;\n                  if ((re_dfa_t *)err == (re_dfa_t *)0x0) {\n                    if ((*(byte *)(unaff_s7.idx + 0x34) & 2) == 0) {\n                      aVar45 = aVar46;\n                      bVar36 = false;\n                    }\n                    else {\n                      aVar45 = aVar46;\n                      err = transit_state_bkref(&mctx,(re_node_set *)aVar46.mbcset);\n                      local_c4.idx = err;\n                      if ((re_dfa_t *)err != (re_dfa_t *)0x0) goto LAB_00055dbc;\n                      bVar36 = false;\n                    }\n                    goto LAB_00054d50;\n                  }\n                }\nLAB_00055dbc:\n                if ((re_dfa_t *)local_c4.sbcset == (re_dfa_t *)0xffffffff) {\nLAB_00055b04:\n                  match_ctx_clean(&mctx);\nLAB_00055b1c:\n                  match_first = aVar39.idx + match_first;\n                  if (aVar40.idx <= match_first) goto code_r0x00055b38;\n                  local_150.idx = 1;\n                  goto LAB_000557e4;\n                }\n                if ((re_dfa_t *)local_c4.sbcset == (re_dfa_t *)&SUB_fffffffe) {\n                  local_150.idx = 0xc;\n                  goto LAB_000557e4;\n                }\n                mctx.match_last = local_c4.idx;\n                if ((preg->field_0x1c & 8) == 0) {\n                  if (aVar4.sbcset < (re_dfa_t *)0x2) {\n                    if (prVar59->nbackref == 0) goto LAB_00055c08;\n                    aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                             ((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + local_c4.idx))->\n                             mbcset;\n                    aVar49 = local_c4;\n                    mctx.last_node =\n                         check_halt_state_context(&mctx,(re_dfastate_t *)aVar45.mbcset,local_c4.idx)\n                    ;\n                  }\n                  else {\n                    aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                             ((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + local_c4.idx))->\n                             mbcset;\n                    aVar49 = local_c4;\n                    mctx.last_node =\n                         check_halt_state_context(&mctx,(re_dfastate_t *)aVar45.mbcset,local_c4.idx)\n                    ;\n                  }\n                  if (aVar4.sbcset < (re_dfa_t *)0x2) {\nLAB_00055c6c:\n                    prVar52 = prVar51;\n                    unaff_s4 = mctx.dfa;\n                    if (prVar59->nbackref == 0) goto LAB_00055548;\n                  }\n                  else {\n                    cVar37 = prVar59->field_0x58;\nLAB_00055c20:\n                    prVar52 = prVar51;\n                    if (-1 < cVar37) goto LAB_00055c6c;\n                  }\n                  paVar18 = (anon_union_4_5_a39f51ca_for_opr *)mctx.last_node;\n                  prVar3 = mctx.dfa;\n                  unaff_s4 = prVar3;\n                  if ((uint)local_c4 < (re_dfa_t *)0x3fffffff) {\n                    aVar46.idx = (int)((int)&((re_string_t *)&(local_c4.mbcset)->mbchars)->raw_mbs +\n                                      1) * 4;\n                    unaff_s5.sbcset = (re_bitset_ptr_t)(*(code *)PTR_malloc_00079b54)(aVar46.sbcset)\n                    ;\n                    if ((re_dfa_t *)unaff_s5.sbcset == (re_dfa_t *)0x0) {\nLAB_00055b9c:\n                      (*(code *)PTR_free_00079c24)(unaff_s5.sbcset);\n                      local_150.idx = 0xc;\n                      prVar51 = prVar52;\n                    }\n                    else {\n                      aVar45.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                      if (prVar3->nbackref == 0) {\n                        dest_nodes.nelem = 0;\n                        dest_nodes.elems = &paVar18->idx;\n                        dest_nodes.alloc = (Idx)unaff_s5.sbcset;\n                        last_start = sift_states_backward(&mctx,(re_sift_context_t *)aVar45.mbcset);\n                        (*(code *)PTR_free_00079c24)(0);\n                        if ((re_dfa_t *)last_start == (re_dfa_t *)0x0) {\n                          aVar46.mbcset = (re_charset_t *)*unaff_s5.sbcset;\n                          if ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0) {\nLAB_00055b70:\n                            (*(code *)PTR_free_00079c24)(unaff_s5.sbcset);\n                            (*(code *)PTR_free_00079c24)(aVar46.sbcset);\n                            prVar51 = prVar52;\n                            goto LAB_00055b04;\n                          }\nLAB_00055528:\n                          (*(code *)PTR_free_00079c24)(mctx.state_log);\n                          prVar51 = prVar52;\n                          unaff_s4 = prVar3;\n                          mctx.match_last = local_c4.idx;\n                          mctx.last_node = (Idx)paVar18;\n                          mctx.state_log = (re_dfastate_t **)unaff_s5.sbcset;\n                          goto LAB_00055548;\n                        }\nLAB_00055acc:\n                        aVar46.sbcset = (re_bitset_ptr_t)0x0;\n                        prVar51 = prVar52;\n                        unaff_s4 = prVar3;\n                      }\n                      else {\n                        aVar46.sbcset =\n                             (re_bitset_ptr_t)(*(code *)PTR_malloc_00079b54)(aVar46.sbcset);\n                        if ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0) goto LAB_00055b9c;\n                        unaff_s7.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                        pcVar9 = (code *)(PTR_DAT_000799a4 + 0x421c);\n                        pcVar10 = (code *)(PTR_DAT_000799a4 + -0x6bc0);\n                        prVar51 = prVar52;\n                        while( true ) {\n                          prVar52 = (re_dfa_t *)(local_c4.idx + 1);\n                          stop = (int)prVar52 * 4;\n                          aVar49.idx = stop;\n                          (*(code *)PTR_memset_00079b00)(aVar46.sbcset,0);\n                          aVar45.sbcset = unaff_s7.sbcset;\n                          dest_nodes.alloc = (Idx)unaff_s5.sbcset;\n                          dest_nodes.nelem = (Idx)aVar46.sbcset;\n                          dest_nodes.elems = (Idx *)paVar18;\n                          last_start = (*pcVar9)(&mctx);\n                          (*(code *)PTR_free_00079c24)(0);\n                          unaff_s4 = prVar52;\n                          if ((re_dfa_t *)last_start != (re_dfa_t *)0x0) break;\n                          if ((*unaff_s5.sbcset != 0) || (stop = stop + -4, *aVar46.sbcset != 0)) {\n                            aVar45.sbcset = unaff_s5.sbcset;\n                            aVar49.sbcset = aVar46.sbcset;\n                            last_start = merge_state_array(prVar3,(re_dfastate_t **)unaff_s5.sbcset,\n                                                           (re_dfastate_t **)aVar46.sbcset,\n                                                           (Idx)prVar52);\n                            (*(code *)PTR_free_00079c24)(aVar46.sbcset);\n                            if ((re_dfa_t *)last_start != (re_dfa_t *)0x0) goto LAB_00055acc;\n                            goto LAB_00055528;\n                          }\n                          stop = (Idx)(mctx.state_log + (int)&prVar52[-1].lock.__align + 0x17);\n                          do {\n                            while( true ) {\n                              local_c4.sbcset = (re_bitset_ptr_t)(local_c4.idx + -1);\n                              if (local_c4.idx < 0) goto LAB_00055b70;\n                              aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                                       ((anon_union_4_5_a39f51ca_for_opr *)(stop + -4))->idx;\n                              if ((re_dfa_t *)aVar45.sbcset != (re_dfa_t *)0x0) break;\n                              stop = stop + -4;\n                            }\n                            stop = stop + -4;\n                          } while ((*(byte *)(aVar45.idx + 0x34) & 8) == 0);\n                          paVar18 = (anon_union_4_5_a39f51ca_for_opr *)\n                                    (*pcVar10)(&mctx,aVar45.sbcset,local_c4.sbcset);\n                          prVar51 = prVar52;\n                        }\n                      }\n                      (*(code *)PTR_free_00079c24)(unaff_s5.sbcset);\n                      (*(code *)PTR_free_00079c24)(aVar46.sbcset);\n                      local_150.idx = last_start;\n                      if ((re_dfa_t *)last_start == (re_dfa_t *)0x1) goto LAB_00055b04;\n                    }\n                  }\n                  else {\n                    local_150.idx = 0xc;\n                    prVar51 = prVar52;\n                  }\n                  goto LAB_000557e4;\n                }\n                if (prVar59->nbackref != 0) {\n                  aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                           ((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + local_c4.idx))->\n                           mbcset;\n                  aVar49 = local_c4;\n                  mctx.last_node =\n                       check_halt_state_context(&mctx,(re_dfastate_t *)aVar45.mbcset,local_c4.idx);\n                  goto LAB_00055c6c;\n                }\nLAB_00055c08:\n                if (((preg->field_0x1c & 8) == 0) && ((re_dfa_t *)0x1 < aVar4.sbcset)) {\n                  cVar37 = prVar59->field_0x58;\n                  goto LAB_00055c20;\n                }\nLAB_00055548:\n                if ((re_dfa_t *)aVar4.sbcset == (re_dfa_t *)0x0) goto LAB_000557e4;\n                if (aVar4.sbcset < (re_dfa_t *)0x2) {\n                  pmatch->rm_so = 0;\n                  pmatch->rm_eo = mctx.match_last;\n                  goto LAB_000555ac;\n                }\n                prVar19 = pmatch + 1;\n                do {\n                  prVar19->rm_eo = -1;\n                  prVar19->rm_so = -1;\n                  prVar19 = prVar19 + 1;\n                } while (prVar19 != pmatch + aVar4.idx);\n                pmatch->rm_so = 0;\n                pmatch->rm_eo = mctx.match_last;\n                if ((preg->field_0x1c & 8) != 0) {\nLAB_000555ac:\n                  prVar19 = pmatch;\n                  do {\n                    aVar45.sbcset = (re_bitset_ptr_t)prVar19->rm_so;\n                    if ((re_dfa_t *)aVar45.sbcset != (re_dfa_t *)0xffffffff) {\n                      if (mctx.input.offsets_needed != '\0') {\n                        rVar47 = mctx.input.valid_raw_len;\n                        if (aVar45.sbcset != (re_bitset_ptr_t)mctx.input.valid_len) {\n                          rVar47 = mctx.input.offsets[aVar45.idx];\n                        }\n                        prVar19->rm_so = rVar47;\n                        rVar47 = mctx.input.valid_raw_len;\n                        if (mctx.input.valid_len != prVar19->rm_eo) {\n                          rVar47 = mctx.input.offsets[prVar19->rm_eo];\n                        }\n                        prVar19->rm_eo = rVar47;\n                      }\n                      prVar19->rm_so = prVar19->rm_so + match_first;\n                      aVar45.sbcset = (re_bitset_ptr_t)(prVar19->rm_eo + match_first);\n                      prVar19->rm_eo = (regoff_t)aVar45;\n                    }\n                    prVar19 = prVar19 + 1;\n                  } while (prVar19 != pmatch + aVar4.idx);\n                  if (0 < local_118) {\n                    prVar19 = pmatch + aVar4.idx;\n                    do {\n                      prVar19->rm_so = -1;\n                      prVar19->rm_eo = -1;\n                      prVar19 = prVar19 + 1;\n                    } while (prVar19 != pmatch + nmatch);\n                  }\n                  aVar49.idx = match_first;\n                  prVar51 = (re_dfa_t *)pmatch;\n                  local_150.sbcset = aVar7.sbcset;\n                  if (prVar59->subexp_map != (Idx *)0x0) {\n                    aVar49.sbcset = (re_bitset_ptr_t)(aVar4.idx + -1);\n                    prVar52 = (re_dfa_t *)0x0;\n                    prVar19 = pmatch;\n                    while( true ) {\n                      aVar45.idx = (int)prVar52 * 4;\n                      if ((re_dfa_t *)aVar49.sbcset == prVar52) break;\n                      if ((re_dfa_t *)prVar59->subexp_map[(int)prVar52] != prVar52) {\n                        prVar19[1].rm_so =\n                             pmatch[(int)((int)&((re_string_t *)\n                                                &((re_dfa_t *)prVar59->subexp_map[(int)prVar52])->\n                                                 nodes)->raw_mbs + 1)].rm_so;\n                        prVar19[1].rm_eo = pmatch[prVar59->subexp_map[(int)prVar52] + 1].rm_eo;\n                      }\n                      prVar52 = (re_dfa_t *)((int)&((re_string_t *)&prVar52->nodes)->raw_mbs + 1);\n                      prVar19 = prVar19 + 1;\n                    }\n                  }\n                  goto LAB_000557e4;\n                }\n                if ((char)prVar59->field_0x58 < '\0') {\n                  bVar36 = 0 < prVar59->nbackref;\n                }\n                else {\n                  bVar36 = false;\n                }\n                aVar45.sbcset = (re_bitset_ptr_t)&mctx;\n                aVar49.sbcset = aVar4.sbcset;\n                prVar51 = (re_dfa_t *)pmatch;\n                local_150.idx =\n                     set_regs(preg,(re_match_context_t *)aVar45.mbcset,aVar4.ctx_type,pmatch,bVar36)\n                ;\n                if ((re_dfa_t *)local_150.sbcset == (re_dfa_t *)0x0) goto LAB_000555ac;\n              }" else (compound_statement "{\n                piVar38 = &match_first;\n                if ((re_dfa_t *)aVar46.sbcset != (re_dfa_t *)0x0) {\n                  piVar38 = (int *)0x0;\n                }\n                pcVar5 = (code *)(PTR_DAT_000799a4 + -0x2b7c);\n                piVar6 = (int *)(PTR_s_nt0_000795b8 + (rVar20 - 4) * 4 + 0x6e38);\nLAB_00055b44:\n                if (rVar20 - 4 < 5) {\n                    /* WARNING: Could not emulate address calculation at 0x00054920 */\n                    /* WARNING: Treating indirect jump as call */\n                  rVar21 = (*(code *)(&_gp + *piVar6))();\n                  return rVar21;\n                }\n                last_start = (Idx)&mctx;\n                prVar52 = prVar51;\n                while( true ) {\n                  aVar46.idx = match_first;\n                  uVar8 = match_first - mctx.input.raw_mbs_idx;\n                  aVar49 = (anon_union_4_5_a39f51ca_for_opr)eflags;\n                  paVar18 = paVar2;\n                  stop = local_148.idx;\n                  unaff_s4 = (re_dfa_t *)length;\n                  unaff_s5 = aVar39;\n                  unaff_s7 = aVar41;\n                  if ((uint)mctx.input.valid_raw_len <= uVar8) {\n                    aVar45.idx = match_first;\n                    local_150.sbcset = (re_bitset_ptr_t)(*pcVar5)(last_start);\n                    prVar51 = prVar52;\n                    if ((re_dfa_t *)local_150.sbcset != (re_dfa_t *)0x0) goto LAB_000557e4;\n                    uVar8 = (int)aVar46.sbcset - mctx.input.raw_mbs_idx;\n                  }\n                  if (aVar46.idx < length) {\n                    uVar8 = (uint)mctx.input.mbs[uVar8];\n                  }\n                  else {\n                    uVar8 = 0;\n                  }\n                  aVar56.sbcset = aVar46.sbcset + aVar39.sbcset;\n                  aVar46.sbcset = aVar56.sbcset;\n                  if (*(char *)((int)local_148.sbcset + uVar8) != '\0') break;\n                  prVar51 = prVar52;\n                  match_first = aVar56.idx;\n                  if (aVar56.idx < aVar40.idx) {\n                    local_150.idx = 1;\n                    goto LAB_000557e4;\n                  }\n                  aVar46.idx._0_3_ = 0;\n                  aVar46.idx._3_1_ = aVar41.idx < aVar56.idx;\n                  if ((re_dfa_t *)aVar46.sbcset != (re_dfa_t *)0x0) {\n                    local_150.idx = 1;\n                    goto LAB_000557e4;\n                  }\n                }\n                while( true ) {\n                  aVar45.idx = match_first;\n                  aVar49 = (anon_union_4_5_a39f51ca_for_opr)eflags;\n                  aVar7.sbcset = (re_bitset_ptr_t)(*pcVar5)(&mctx);\n                  aVar15 = (anon_union_4_5_a39f51ca_for_opr)mctx.dfa;\n                  aVar56.idx = mctx.input.cur_idx;\n                  prVar51 = prVar52;\n                  local_150.sbcset = aVar7.sbcset;\n                  if ((re_dfa_t *)aVar7.sbcset != (re_dfa_t *)0x0) goto LAB_000557e4;\n                  if (((iVar55 != 1) && (mctx.input.valid_len != 0)) &&\n                     (*mctx.input.wcs == 0xffffffff)) goto LAB_00055b1c;\n                  mctx.max_mb_elem_len = 0;\n                  mctx.nbkref_ents = 0;\n                  mctx.state_log_top = 0;\n                  local_138.idx = mctx.input.cur_idx;\n                  err = _REG_NOERROR;\n                  unaff_s7 = (anon_union_4_5_a39f51ca_for_opr)(mctx.dfa)->init_state;\n                  aVar49 = (anon_union_4_5_a39f51ca_for_opr)mctx.eflags;\n                  aVar46 = aVar15;\n                  if ((*(byte *)(unaff_s7.idx + 0x34) & 1) == 0) break;\n                  aVar45.sbcset = (re_bitset_ptr_t)(mctx.input.cur_idx + -1);\n                  prVar51 = (re_dfa_t *)re_string_context_at(&mctx.input,aVar45.idx,mctx.eflags);\n                  if (((uint)prVar51 & 1) == 0) {\n                    if (prVar51 == (re_dfa_t *)0x0) break;\n                    if (((uint)prVar51 & 6) == 6) {\n                      unaff_s7 = (anon_union_4_5_a39f51ca_for_opr)\n                                 ((re_dfa_t *)aVar15.idx)->init_state_begbuf;\n                      goto LAB_00054d1c;\n                    }\n                    if (((uint)prVar51 & 2) != 0) {\n                      unaff_s7 = (anon_union_4_5_a39f51ca_for_opr)\n                                 ((re_dfa_t *)aVar15.idx)->init_state_nl;\n                      goto LAB_00054d1c;\n                    }\n                    prVar52 = prVar51;\n                    if (((uint)prVar51 & 4) == 0) break;\n                    aVar49 = (anon_union_4_5_a39f51ca_for_opr)\n                             ((anon_union_4_5_a39f51ca_for_opr *)(unaff_s7.idx + 0x28))->mbcset;\n                    aVar45 = aVar15;\n                    unaff_s7.sbcset =\n                         &re_acquire_state_context\n                                    (&err,aVar15.sbcset,(re_node_set *)aVar49.mbcset,(uint)prVar51)\n                          ->hash;\n                    prVar52 = prVar51;\n                    if ((re_dfa_t *)unaff_s7.sbcset != (re_dfa_t *)0x0) break;\n                    if (err == _REG_ESPACE) goto LAB_00055914;\n                  }\n                  else {\n                    unaff_s7 = (anon_union_4_5_a39f51ca_for_opr)\n                               ((re_dfa_t *)aVar15.idx)->init_state_word;\nLAB_00054d1c:\n                    prVar52 = (re_dfa_t *)PTR_s_nt0_000795b8;\n                    if ((re_dfa_t *)unaff_s7.sbcset != (re_dfa_t *)0x0) break;\n                  }\n                  prVar52 = (re_dfa_t *)(PTR_s_nt0_000795b8 + 0x6eb0);\n                  aVar45.sbcset = (re_bitset_ptr_t)(PTR_s_nt0_000795b8 + 0x712c);\n                  match_first = (*(code *)PTR___assert_fail_000799f8)\n                                          (PTR_s_nt0_000795b8 + 0x71a0,aVar45.sbcset,0x435);\n                  if ((re_bitset_ptr_t)match_first == aVar41.sbcset) {\n                    if (match_first < length) {\n                      uVar8 = (uint)(byte)string[match_first];\n                    }\n                    else {\n                      uVar8 = 0;\n                    }\n                    if (puVar50 != (uchar *)0x0) {\n                      uVar8 = (uint)puVar50[uVar8];\n                    }\n                    if (*(char *)((int)local_148.sbcset + uVar8) == '\0') {\n                      local_150.idx = 1;\n                      aVar49 = (anon_union_4_5_a39f51ca_for_opr)eflags;\n                      prVar51 = prVar52;\n                      goto LAB_000557e4;\n                    }\n                  }\n                }\n                prVar51 = prVar52;\n                bVar36 = piVar38 != (int *)0x0;\n                if ((mctx.state_log == (re_dfastate_t **)0x0) ||\n                   (((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + aVar56.idx))->mbcset =\n                         (re_charset_t *)unaff_s7, ((re_dfa_t *)aVar15.idx)->nbackref == 0)) {\nLAB_00054d50:\n                  if ((int)*(bin_tree_t **)(unaff_s7.idx + 0x34) << 4 < 0) {\n                    if (((*(byte *)(unaff_s7.idx + 0x34) & 1) == 0) ||\n                       (aVar45 = unaff_s7, aVar49 = aVar56,\n                       IVar17 = check_halt_state_context(&mctx,unaff_s7.idx,aVar56.idx), IVar17 != 0\n                       )) {\n                      local_c4 = aVar56;\n                      if (paVar54 == (anon_union_4_5_a39f51ca_for_opr *)0x0) goto LAB_00055dbc;\n                      prVar52 = (re_dfa_t *)0x1;\n                    }\n                    else {\n                      aVar56.idx = -1;\n                      prVar52 = (re_dfa_t *)0x0;\n                    }\n                  }\n                  else {\n                    aVar56.idx = -1;\n                    prVar52 = (re_dfa_t *)0x0;\n                  }\n                  pcVar9 = (code *)(PTR_DAT_000799a4 + -0x7144);\n                  pcVar10 = (code *)(PTR_DAT_000799a4 + -0x1980);\n                  pcVar11 = (code *)(PTR_DAT_000799a4 + -0x2f9c);\n                  local_c4 = aVar56;\n                  local_144 = piVar38;\n                  while( true ) {\n                    uVar63 = CONCAT44(mctx.input.valid_len,mctx.input.len);\n                    unaff_s5.sbcset = (re_bitset_ptr_t)(mctx.input.cur_idx + 1);\n                    aVar45.idx = mctx.input.cur_idx;\n                    if (mctx.input.stop <= mctx.input.cur_idx) break;\n                    if ((mctx.input.bufs_len <= unaff_s5.idx) &&\n                       (mctx.input.bufs_len < mctx.input.len)) goto LAB_00054e94;\n                    if (mctx.input.valid_len <= unaff_s5.idx) {\n                      while ((int)((ulonglong)uVar63 >> 0x20) < (int)uVar63) {\nLAB_00054e94:\n                        aVar45.sbcset =\n                             (re_bitset_ptr_t)\n                             ((int)&((re_string_t *)&(aVar45.mbcset)->mbchars)->raw_mbs + 2);\n                        err = (*pcVar9)(&mctx);\n                        if (err == _REG_NOERROR) break;\n                        aVar15 = aVar46;\n                        if (err == _REG_ESPACE) goto LAB_00055914;\n                        prVar51 = (re_dfa_t *)(PTR_s_nt0_000795b8 + 0x6eb0);\n                        aVar49.idx = 0x46c;\n                        aVar45.sbcset = (re_bitset_ptr_t)(PTR_s_nt0_000795b8 + 0x712c);\n                        uVar63 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0);\n                        prVar52 = prVar59;\n                      }\n                    }\n                    prVar3 = mctx.dfa;\n                    if ((int)*(bin_tree_t **)(unaff_s7.idx + 0x34) << 5 < 0) {\n                      paVar18 = (anon_union_4_5_a39f51ca_for_opr *)prVar3;\n                      if (0 < (int)(unaff_s7.mbcset)->range_ends) {\n                        pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6fdc);\n                        pcVar13 = (code *)(PTR_DAT_000799a4 + -0x6ef0);\n                        stop = 0;\n                        do {\n                          last_start = ((anon_union_4_5_a39f51ca_for_opr *)\n                                       ((unaff_s7.mbcset)->char_classes + stop))->idx;\n                          prVar53 = prVar3->nodes;\n                          uVar8 = *(uint *)&prVar53[last_start].field_0x4;\n                          if ((uVar8 & 0x800) != 0) {\n                            if ((uVar8 & 0xffc000) != 0) {\n                              aVar45.idx = mctx.input.cur_idx;\n                              uVar60 = (*pcVar13)(&mctx,mctx.input.cur_idx,mctx.eflags);\n                              uVar8 = (uint)(*(int *)&prVar53[last_start].field_0x4 << 8) >> 0x16;\n                              if ((uVar8 & 4) == 0) {\n                                uVar26 = uVar60 & 1;\n                                if ((uVar8 & 8) != 0) goto joined_r0x00054f40;\n                              }\n                              else {\n                                uVar26 = uVar8 & 8;\n                                if ((uVar60 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                                if (uVar26 != 0) goto LAB_000550a4;\n                              }\n                              if ((((uVar8 & 0x20) != 0) && ((uVar60 & 2) == 0)) ||\n                                 (((uVar8 & 0x80) != 0 &&\n                                  (prVar51 = (re_dfa_t *)mctx.input.cur_idx, (uVar60 & 8) == 0))))\n                              goto LAB_000550a4;\n                            }\n                            aVar49.sbcset = (re_bitset_ptr_t)&mctx;\n                            aVar45.idx = last_start;\n                            prVar51 = (re_dfa_t *)mctx.input.cur_idx;\n                            iVar61 = (*pcVar11)(prVar3);\n                            if (iVar61 != 0) {\n                              aVar46.sbcset = (re_bitset_ptr_t)(iVar61 + mctx.input.cur_idx);\n                              if (iVar61 <= mctx.max_mb_elem_len) {\n                                iVar61 = mctx.max_mb_elem_len;\n                              }\n                              aVar45.sbcset = aVar46.sbcset;\n                              mctx.max_mb_elem_len = iVar61;\n                              err_1 = (*pcVar12)(&mctx);\n                              rVar21 = err_1;\n                              if (err_1 != _REG_NOERROR) goto LAB_00055e44;\n                              aVar49.sbcset =\n                                   (re_bitset_ptr_t)(prVar3->eclosures + prVar3->nexts[last_start]);\n                              unaff_s4 = (re_dfa_t *)(aVar46.idx * 4);\n                              last_start = (Idx)(mctx.state_log + aVar46.idx);\n                              if (*(bitset_word_t *)last_start == 0) {\n                                dest_nodes.alloc = *aVar49.sbcset;\n                                dest_nodes.nelem =\n                                     ((re_node_set *)&(aVar49.mbcset)->range_starts)->alloc;\n                                dest_nodes.elems = (aVar49.mbcset)->range_ends;\n                                prVar51 = (re_dfa_t *)\n                                          (*pcVar13)(&mctx,(undefined1 *)(aVar46.idx + -1),\n                                                     mctx.eflags);\n                                aVar49.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                                aVar45 = (anon_union_4_5_a39f51ca_for_opr)prVar3;\n                                prVar35 = re_acquire_state_context\n                                                    (&err_1,prVar3,(re_node_set *)aVar49.mbcset,\n                                                     (uint)prVar51);\n                                ((re_string_t *)&((re_charset_t *)last_start)->mbchars)->raw_mbs =\n                                     (uchar *)prVar35;\n                              }\n                              else {\n                                aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                                         ((anon_union_4_5_a39f51ca_for_opr *)\n                                         (*(bitset_word_t *)last_start + 0x28))->mbcset;\n                                err_1 = re_node_set_init_union\n                                                  (&dest_nodes,(re_node_set *)aVar45.mbcset,\n                                                   (re_node_set *)aVar49.mbcset);\n                                rVar21 = err_1;\n                                if (err_1 != _REG_NOERROR) goto LAB_00055e44;\n                                prVar51 = (re_dfa_t *)\n                                          (*pcVar13)(&mctx,(undefined1 *)(aVar46.idx + -1),\n                                                     mctx.eflags);\n                                pprVar14 = mctx.state_log + aVar46.idx;\n                                aVar49.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                                aVar45 = (anon_union_4_5_a39f51ca_for_opr)prVar3;\n                                prVar35 = re_acquire_state_context\n                                                    (&err_1,prVar3,(re_node_set *)aVar49.mbcset,\n                                                     (uint)prVar51);\n                                *pprVar14 = prVar35;\n                                (*(code *)PTR_free_00079c24)(dest_nodes.elems);\n                              }\n                              unaff_s4 = (re_dfa_t *)(mctx.state_log + aVar46.idx);\n                              if ((unaff_s4->nodes == (re_token_t *)0x0) &&\n                                 (rVar21 = err_1, err_1 != _REG_NOERROR)) goto LAB_00055e44;\n                            }\n                          }\nLAB_000550a4:\n                          stop = (int)&((re_string_t *)&((re_charset_t *)stop)->mbchars)->raw_mbs +\n                                 1;\n                        } while (stop < (int)(unaff_s7.mbcset)->range_ends);\n                      }\n                      err = _REG_NOERROR;\n                    }\n                    uVar8 = (uint)mctx.input.mbs[mctx.input.cur_idx];\n                    mctx.input.cur_idx = mctx.input.cur_idx + 1;\n                    do {\n                      if (*(re_dfastate_t **)(unaff_s7.idx + 0x2c) != (re_dfastate_t *)0x0) {\n                        aVar49 = (anon_union_4_5_a39f51ca_for_opr)\n                                 ((anon_union_4_5_a39f51ca_for_opr *)\n                                 (&(*(re_dfastate_t **)(unaff_s7.idx + 0x2c))->hash + uVar8))->\n                                 mbcset;\nLAB_000553a0:\n                        aVar15 = aVar49;\n                        if (mctx.state_log != (re_dfastate_t **)0x0) goto LAB_000553ac;\n                        goto LAB_000553cc;\n                      }\n                      paVar18 = *(anon_union_4_5_a39f51ca_for_opr **)(unaff_s7.idx + 0x30);\n                      if (paVar18 != (anon_union_4_5_a39f51ca_for_opr *)0x0) {\n                        aVar45.sbcset = (re_bitset_ptr_t)(mctx.input.cur_idx + -1);\n                        uVar60 = re_string_context_at(&mctx.input,aVar45.idx,mctx.eflags);\n                        if ((uVar60 & 1) == 0) {\n                          aVar49 = (anon_union_4_5_a39f51ca_for_opr)paVar18[uVar8].mbcset;\n                        }\n                        else {\n                          paVar18 = paVar18 + uVar8 + 0x100;\n                          aVar49 = (anon_union_4_5_a39f51ca_for_opr)paVar18->mbcset;\n                        }\n                        goto LAB_000553a0;\n                      }\n                      aVar45 = unaff_s7;\n                      aVar49 = (anon_union_4_5_a39f51ca_for_opr)mctx.eflags;\n                      iVar61 = (*pcVar10)(mctx.dfa);\n                    } while (iVar61 != 0);\n                    err = _REG_ESPACE;\n                    rVar21 = err;\nLAB_00055e44:\n                    err = rVar21;\n                    aVar46.sbcset = (re_bitset_ptr_t)0x0;\n                    if (mctx.state_log == (re_dfastate_t **)0x0) {\n                      aVar15.sbcset = aVar46.sbcset;\n                      if (err != _REG_NOERROR) goto LAB_00055914;\n                      break;\n                    }\n                    aVar49.sbcset = (re_bitset_ptr_t)0x0;\nLAB_000553ac:\n                    aVar45.sbcset = (re_bitset_ptr_t)&mctx;\n                    aVar15.sbcset =\n                         &merge_state_with_log\n                                    (&err,(re_match_context_t *)aVar45.mbcset,aVar49.sbcset)->hash;\nLAB_000553cc:\n                    aVar46 = aVar15;\n                    if ((re_dfa_t *)aVar15.sbcset == (re_dfa_t *)0x0) {\n                      if (err != _REG_NOERROR) goto LAB_00055914;\n                      if ((mctx.state_log == (re_dfastate_t **)0x0) ||\n                         ((prVar52 != (re_dfa_t *)0x0 &&\n                          (paVar54 == (anon_union_4_5_a39f51ca_for_opr *)0x0)))) break;\n                      stop = (Idx)&mctx;\n                      last_start = (Idx)&err;\n                      paVar18 = (anon_union_4_5_a39f51ca_for_opr *)(PTR_DAT_000799a4 + 0x3684);\n                      do {\n                        pprVar14 = mctx.state_log + mctx.input.cur_idx;\n                        IVar17 = mctx.input.cur_idx;\n                        do {\n                          IVar17 = IVar17 + 1;\n                          aVar45.idx = mctx.state_log_top;\n                          aVar46 = aVar15;\n                          if (mctx.state_log_top < IVar17) goto LAB_00055da8;\n                          mctx.input.cur_idx = mctx.input.cur_idx + 1;\n                          pprVar14 = pprVar14 + 1;\n                        } while (*pprVar14 == (re_dfastate_t *)0x0);\n                        aVar49.sbcset = (re_bitset_ptr_t)0x0;\n                        aVar45.sbcset = (re_bitset_ptr_t)stop;\n                        aVar46.sbcset = (re_bitset_ptr_t)(*(code *)paVar18)(last_start);\n                        if (err != _REG_NOERROR) {\n                          if ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0) goto LAB_00055da8;\n                          break;\n                        }\n                        aVar45.idx = mctx.state_log_top;\n                      } while ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0);\n                    }\n                    aVar16.ctx_type = unaff_s7.ctx_type ^ aVar46.ctx_type;\n                    aVar56 = unaff_s7;\n                    aVar15 = local_138;\n                    if ((bVar36) &&\n                       (aVar56.ctx_type = aVar16.ctx_type, aVar15.sbcset = unaff_s5.sbcset,\n                       (re_dfa_t *)aVar16.sbcset != (re_dfa_t *)0x0)) {\n                      bVar36 = false;\n                      aVar15 = local_138;\n                    }\n                    local_138 = aVar15;\n                    unaff_s7 = aVar46;\n                    if (((*(byte *)(aVar46.idx + 0x34) & 8) != 0) &&\n                       (((*(byte *)(aVar46.idx + 0x34) & 1) == 0 ||\n                        (aVar45 = aVar46, aVar49.idx = mctx.input.cur_idx,\n                        IVar17 = check_halt_state_context(&mctx,aVar46.idx,mctx.input.cur_idx),\n                        IVar17 != 0)))) {\n                      unaff_s7 = aVar56;\n                      local_c4.idx = mctx.input.cur_idx;\n                      if (paVar54 == (anon_union_4_5_a39f51ca_for_opr *)0x0) goto LAB_00055dbc;\n                      prVar52 = (re_dfa_t *)0x1;\n                      local_144 = (int *)0x0;\n                      unaff_s7 = aVar46;\n                    }\n                  }\nLAB_00055da8:\n                  if (local_144 != (int *)0x0) {\n                    *local_144 = *local_144 + (int)local_138.sbcset;\n                  }\n                }\n                else {\n                  aVar46.sbcset = (re_bitset_ptr_t)&(unaff_s7.mbcset)->range_starts;\n                  aVar49.sbcset = (re_bitset_ptr_t)0x0;\n                  aVar45 = aVar46;\n                  err = check_subexp_matching_top(&mctx,(re_node_set *)aVar46.mbcset,0);\n                  local_c4.idx = err;\n                  if ((re_dfa_t *)err == (re_dfa_t *)0x0) {\n                    if ((*(byte *)(unaff_s7.idx + 0x34) & 2) == 0) {\n                      aVar45 = aVar46;\n                      bVar36 = false;\n                    }\n                    else {\n                      aVar45 = aVar46;\n                      err = transit_state_bkref(&mctx,(re_node_set *)aVar46.mbcset);\n                      local_c4.idx = err;\n                      if ((re_dfa_t *)err != (re_dfa_t *)0x0) goto LAB_00055dbc;\n                      bVar36 = false;\n                    }\n                    goto LAB_00054d50;\n                  }\n                }\nLAB_00055dbc:\n                if ((re_dfa_t *)local_c4.sbcset == (re_dfa_t *)0xffffffff) {\nLAB_00055b04:\n                  match_ctx_clean(&mctx);\nLAB_00055b1c:\n                  match_first = aVar39.idx + match_first;\n                  if (aVar40.idx <= match_first) goto code_r0x00055b38;\n                  local_150.idx = 1;\n                  goto LAB_000557e4;\n                }\n                if ((re_dfa_t *)local_c4.sbcset == (re_dfa_t *)&SUB_fffffffe) {\n                  local_150.idx = 0xc;\n                  goto LAB_000557e4;\n                }\n                mctx.match_last = local_c4.idx;\n                if ((preg->field_0x1c & 8) == 0) {\n                  if (aVar4.sbcset < (re_dfa_t *)0x2) {\n                    if (prVar59->nbackref == 0) goto LAB_00055c08;\n                    aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                             ((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + local_c4.idx))->\n                             mbcset;\n                    aVar49 = local_c4;\n                    mctx.last_node =\n                         check_halt_state_context(&mctx,(re_dfastate_t *)aVar45.mbcset,local_c4.idx)\n                    ;\n                  }\n                  else {\n                    aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                             ((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + local_c4.idx))->\n                             mbcset;\n                    aVar49 = local_c4;\n                    mctx.last_node =\n                         check_halt_state_context(&mctx,(re_dfastate_t *)aVar45.mbcset,local_c4.idx)\n                    ;\n                  }\n                  if (aVar4.sbcset < (re_dfa_t *)0x2) {\nLAB_00055c6c:\n                    prVar52 = prVar51;\n                    unaff_s4 = mctx.dfa;\n                    if (prVar59->nbackref == 0) goto LAB_00055548;\n                  }\n                  else {\n                    cVar37 = prVar59->field_0x58;\nLAB_00055c20:\n                    prVar52 = prVar51;\n                    if (-1 < cVar37) goto LAB_00055c6c;\n                  }\n                  paVar18 = (anon_union_4_5_a39f51ca_for_opr *)mctx.last_node;\n                  prVar3 = mctx.dfa;\n                  unaff_s4 = prVar3;\n                  if ((uint)local_c4 < (re_dfa_t *)0x3fffffff) {\n                    aVar46.idx = (int)((int)&((re_string_t *)&(local_c4.mbcset)->mbchars)->raw_mbs +\n                                      1) * 4;\n                    unaff_s5.sbcset = (re_bitset_ptr_t)(*(code *)PTR_malloc_00079b54)(aVar46.sbcset)\n                    ;\n                    if ((re_dfa_t *)unaff_s5.sbcset == (re_dfa_t *)0x0) {\nLAB_00055b9c:\n                      (*(code *)PTR_free_00079c24)(unaff_s5.sbcset);\n                      local_150.idx = 0xc;\n                      prVar51 = prVar52;\n                    }\n                    else {\n                      aVar45.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                      if (prVar3->nbackref == 0) {\n                        dest_nodes.nelem = 0;\n                        dest_nodes.elems = &paVar18->idx;\n                        dest_nodes.alloc = (Idx)unaff_s5.sbcset;\n                        last_start = sift_states_backward(&mctx,(re_sift_context_t *)aVar45.mbcset);\n                        (*(code *)PTR_free_00079c24)(0);\n                        if ((re_dfa_t *)last_start == (re_dfa_t *)0x0) {\n                          aVar46.mbcset = (re_charset_t *)*unaff_s5.sbcset;\n                          if ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0) {\nLAB_00055b70:\n                            (*(code *)PTR_free_00079c24)(unaff_s5.sbcset);\n                            (*(code *)PTR_free_00079c24)(aVar46.sbcset);\n                            prVar51 = prVar52;\n                            goto LAB_00055b04;\n                          }\nLAB_00055528:\n                          (*(code *)PTR_free_00079c24)(mctx.state_log);\n                          prVar51 = prVar52;\n                          unaff_s4 = prVar3;\n                          mctx.match_last = local_c4.idx;\n                          mctx.last_node = (Idx)paVar18;\n                          mctx.state_log = (re_dfastate_t **)unaff_s5.sbcset;\n                          goto LAB_00055548;\n                        }\nLAB_00055acc:\n                        aVar46.sbcset = (re_bitset_ptr_t)0x0;\n                        prVar51 = prVar52;\n                        unaff_s4 = prVar3;\n                      }\n                      else {\n                        aVar46.sbcset =\n                             (re_bitset_ptr_t)(*(code *)PTR_malloc_00079b54)(aVar46.sbcset);\n                        if ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0) goto LAB_00055b9c;\n                        unaff_s7.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                        pcVar9 = (code *)(PTR_DAT_000799a4 + 0x421c);\n                        pcVar10 = (code *)(PTR_DAT_000799a4 + -0x6bc0);\n                        prVar51 = prVar52;\n                        while( true ) {\n                          prVar52 = (re_dfa_t *)(local_c4.idx + 1);\n                          stop = (int)prVar52 * 4;\n                          aVar49.idx = stop;\n                          (*(code *)PTR_memset_00079b00)(aVar46.sbcset,0);\n                          aVar45.sbcset = unaff_s7.sbcset;\n                          dest_nodes.alloc = (Idx)unaff_s5.sbcset;\n                          dest_nodes.nelem = (Idx)aVar46.sbcset;\n                          dest_nodes.elems = (Idx *)paVar18;\n                          last_start = (*pcVar9)(&mctx);\n                          (*(code *)PTR_free_00079c24)(0);\n                          unaff_s4 = prVar52;\n                          if ((re_dfa_t *)last_start != (re_dfa_t *)0x0) break;\n                          if ((*unaff_s5.sbcset != 0) || (stop = stop + -4, *aVar46.sbcset != 0)) {\n                            aVar45.sbcset = unaff_s5.sbcset;\n                            aVar49.sbcset = aVar46.sbcset;\n                            last_start = merge_state_array(prVar3,(re_dfastate_t **)unaff_s5.sbcset,\n                                                           (re_dfastate_t **)aVar46.sbcset,\n                                                           (Idx)prVar52);\n                            (*(code *)PTR_free_00079c24)(aVar46.sbcset);\n                            if ((re_dfa_t *)last_start != (re_dfa_t *)0x0) goto LAB_00055acc;\n                            goto LAB_00055528;\n                          }\n                          stop = (Idx)(mctx.state_log + (int)&prVar52[-1].lock.__align + 0x17);\n                          do {\n                            while( true ) {\n                              local_c4.sbcset = (re_bitset_ptr_t)(local_c4.idx + -1);\n                              if (local_c4.idx < 0) goto LAB_00055b70;\n                              aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                                       ((anon_union_4_5_a39f51ca_for_opr *)(stop + -4))->idx;\n                              if ((re_dfa_t *)aVar45.sbcset != (re_dfa_t *)0x0) break;\n                              stop = stop + -4;\n                            }\n                            stop = stop + -4;\n                          } while ((*(byte *)(aVar45.idx + 0x34) & 8) == 0);\n                          paVar18 = (anon_union_4_5_a39f51ca_for_opr *)\n                                    (*pcVar10)(&mctx,aVar45.sbcset,local_c4.sbcset);\n                          prVar51 = prVar52;\n                        }\n                      }\n                      (*(code *)PTR_free_00079c24)(unaff_s5.sbcset);\n                      (*(code *)PTR_free_00079c24)(aVar46.sbcset);\n                      local_150.idx = last_start;\n                      if ((re_dfa_t *)last_start == (re_dfa_t *)0x1) goto LAB_00055b04;\n                    }\n                  }\n                  else {\n                    local_150.idx = 0xc;\n                    prVar51 = prVar52;\n                  }\n                  goto LAB_000557e4;\n                }\n                if (prVar59->nbackref != 0) {\n                  aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                           ((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + local_c4.idx))->\n                           mbcset;\n                  aVar49 = local_c4;\n                  mctx.last_node =\n                       check_halt_state_context(&mctx,(re_dfastate_t *)aVar45.mbcset,local_c4.idx);\n                  goto LAB_00055c6c;\n                }\nLAB_00055c08:\n                if (((preg->field_0x1c & 8) == 0) && ((re_dfa_t *)0x1 < aVar4.sbcset)) {\n                  cVar37 = prVar59->field_0x58;\n                  goto LAB_00055c20;\n                }\nLAB_00055548:\n                if ((re_dfa_t *)aVar4.sbcset == (re_dfa_t *)0x0) goto LAB_000557e4;\n                if (aVar4.sbcset < (re_dfa_t *)0x2) {\n                  pmatch->rm_so = 0;\n                  pmatch->rm_eo = mctx.match_last;\n                  goto LAB_000555ac;\n                }\n                prVar19 = pmatch + 1;\n                do {\n                  prVar19->rm_eo = -1;\n                  prVar19->rm_so = -1;\n                  prVar19 = prVar19 + 1;\n                } while (prVar19 != pmatch + aVar4.idx);\n                pmatch->rm_so = 0;\n                pmatch->rm_eo = mctx.match_last;\n                if ((preg->field_0x1c & 8) != 0) {\nLAB_000555ac:\n                  prVar19 = pmatch;\n                  do {\n                    aVar45.sbcset = (re_bitset_ptr_t)prVar19->rm_so;\n                    if ((re_dfa_t *)aVar45.sbcset != (re_dfa_t *)0xffffffff) {\n                      if (mctx.input.offsets_needed != '\0') {\n                        rVar47 = mctx.input.valid_raw_len;\n                        if (aVar45.sbcset != (re_bitset_ptr_t)mctx.input.valid_len) {\n                          rVar47 = mctx.input.offsets[aVar45.idx];\n                        }\n                        prVar19->rm_so = rVar47;\n                        rVar47 = mctx.input.valid_raw_len;\n                        if (mctx.input.valid_len != prVar19->rm_eo) {\n                          rVar47 = mctx.input.offsets[prVar19->rm_eo];\n                        }\n                        prVar19->rm_eo = rVar47;\n                      }\n                      prVar19->rm_so = prVar19->rm_so + match_first;\n                      aVar45.sbcset = (re_bitset_ptr_t)(prVar19->rm_eo + match_first);\n                      prVar19->rm_eo = (regoff_t)aVar45;\n                    }\n                    prVar19 = prVar19 + 1;\n                  } while (prVar19 != pmatch + aVar4.idx);\n                  if (0 < local_118) {\n                    prVar19 = pmatch + aVar4.idx;\n                    do {\n                      prVar19->rm_so = -1;\n                      prVar19->rm_eo = -1;\n                      prVar19 = prVar19 + 1;\n                    } while (prVar19 != pmatch + nmatch);\n                  }\n                  aVar49.idx = match_first;\n                  prVar51 = (re_dfa_t *)pmatch;\n                  local_150.sbcset = aVar7.sbcset;\n                  if (prVar59->subexp_map != (Idx *)0x0) {\n                    aVar49.sbcset = (re_bitset_ptr_t)(aVar4.idx + -1);\n                    prVar52 = (re_dfa_t *)0x0;\n                    prVar19 = pmatch;\n                    while( true ) {\n                      aVar45.idx = (int)prVar52 * 4;\n                      if ((re_dfa_t *)aVar49.sbcset == prVar52) break;\n                      if ((re_dfa_t *)prVar59->subexp_map[(int)prVar52] != prVar52) {\n                        prVar19[1].rm_so =\n                             pmatch[(int)((int)&((re_string_t *)\n                                                &((re_dfa_t *)prVar59->subexp_map[(int)prVar52])->\n                                                 nodes)->raw_mbs + 1)].rm_so;\n                        prVar19[1].rm_eo = pmatch[prVar59->subexp_map[(int)prVar52] + 1].rm_eo;\n                      }\n                      prVar52 = (re_dfa_t *)((int)&((re_string_t *)&prVar52->nodes)->raw_mbs + 1);\n                      prVar19 = prVar19 + 1;\n                    }\n                  }\n                  goto LAB_000557e4;\n                }\n                if ((char)prVar59->field_0x58 < '\0') {\n                  bVar36 = 0 < prVar59->nbackref;\n                }\n                else {\n                  bVar36 = false;\n                }\n                aVar45.sbcset = (re_bitset_ptr_t)&mctx;\n                aVar49.sbcset = aVar4.sbcset;\n                prVar51 = (re_dfa_t *)pmatch;\n                local_150.idx =\n                     set_regs(preg,(re_match_context_t *)aVar45.mbcset,aVar4.ctx_type,pmatch,bVar36)\n                ;\n                if ((re_dfa_t *)local_150.sbcset == (re_dfa_t *)0x0) goto LAB_000555ac;\n              }" { (expression_statement "piVar38 = &match_first;" (assignment_expression "piVar38 = &match_first" identifier = (pointer_expression "&match_first" & identifier)) ;) (if_statement "if ((re_dfa_t *)aVar46.sbcset != (re_dfa_t *)0x0) {\n                  piVar38 = (int *)0x0;\n                }" if (parenthesized_expression "((re_dfa_t *)aVar46.sbcset != (re_dfa_t *)0x0)" ( (binary_expression "(re_dfa_t *)aVar46.sbcset != (re_dfa_t *)0x0" (cast_expression "(re_dfa_t *)aVar46.sbcset" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "aVar46.sbcset" identifier . field_identifier)) != (cast_expression "(re_dfa_t *)0x0" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                  piVar38 = (int *)0x0;\n                }" { (expression_statement "piVar38 = (int *)0x0;" (assignment_expression "piVar38 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (expression_statement "pcVar5 = (code *)(PTR_DAT_000799a4 + -0x2b7c);" (assignment_expression "pcVar5 = (code *)(PTR_DAT_000799a4 + -0x2b7c)" identifier = (cast_expression "(code *)(PTR_DAT_000799a4 + -0x2b7c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000799a4 + -0x2b7c)" ( (binary_expression "PTR_DAT_000799a4 + -0x2b7c" identifier + number_literal) )))) ;) (expression_statement "piVar6 = (int *)(PTR_s_nt0_000795b8 + (rVar20 - 4) * 4 + 0x6e38);" (assignment_expression "piVar6 = (int *)(PTR_s_nt0_000795b8 + (rVar20 - 4) * 4 + 0x6e38)" identifier = (cast_expression "(int *)(PTR_s_nt0_000795b8 + (rVar20 - 4) * 4 + 0x6e38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_nt0_000795b8 + (rVar20 - 4) * 4 + 0x6e38)" ( (binary_expression "PTR_s_nt0_000795b8 + (rVar20 - 4) * 4 + 0x6e38" (binary_expression "PTR_s_nt0_000795b8 + (rVar20 - 4) * 4" identifier + (binary_expression "(rVar20 - 4) * 4" (parenthesized_expression "(rVar20 - 4)" ( (binary_expression "rVar20 - 4" identifier - number_literal) )) * number_literal)) + number_literal) )))) ;) (labeled_statement "LAB_00055b44:\n                if (rVar20 - 4 < 5) {\n                    /* WARNING: Could not emulate address calculation at 0x00054920 */\n                    /* WARNING: Treating indirect jump as call */\n                  rVar21 = (*(code *)(&_gp + *piVar6))();\n                  return rVar21;\n                }" statement_identifier : (if_statement "if (rVar20 - 4 < 5) {\n                    /* WARNING: Could not emulate address calculation at 0x00054920 */\n                    /* WARNING: Treating indirect jump as call */\n                  rVar21 = (*(code *)(&_gp + *piVar6))();\n                  return rVar21;\n                }" if (parenthesized_expression "(rVar20 - 4 < 5)" ( (binary_expression "rVar20 - 4 < 5" (binary_expression "rVar20 - 4" identifier - number_literal) < number_literal) )) (compound_statement "{\n                    /* WARNING: Could not emulate address calculation at 0x00054920 */\n                    /* WARNING: Treating indirect jump as call */\n                  rVar21 = (*(code *)(&_gp + *piVar6))();\n                  return rVar21;\n                }" { comment comment (expression_statement "rVar21 = (*(code *)(&_gp + *piVar6))();" (assignment_expression "rVar21 = (*(code *)(&_gp + *piVar6))()" identifier = (call_expression "(*(code *)(&_gp + *piVar6))()" (parenthesized_expression "(*(code *)(&_gp + *piVar6))" ( (pointer_expression "*(code *)(&_gp + *piVar6)" * (cast_expression "(code *)(&_gp + *piVar6)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&_gp + *piVar6)" ( (binary_expression "&_gp + *piVar6" (pointer_expression "&_gp" & identifier) + (pointer_expression "*piVar6" * identifier)) )))) )) (argument_list "()" ( )))) ;) (return_statement "return rVar21;" return identifier ;) }))) (expression_statement "last_start = (Idx)&mctx;" (assignment_expression "last_start = (Idx)&mctx" identifier = (binary_expression "(Idx)&mctx" (parenthesized_expression "(Idx)" ( identifier )) & identifier)) ;) (expression_statement "prVar52 = prVar51;" (assignment_expression "prVar52 = prVar51" identifier = identifier) ;) (while_statement "while( true ) {\n                  aVar46.idx = match_first;\n                  uVar8 = match_first - mctx.input.raw_mbs_idx;\n                  aVar49 = (anon_union_4_5_a39f51ca_for_opr)eflags;\n                  paVar18 = paVar2;\n                  stop = local_148.idx;\n                  unaff_s4 = (re_dfa_t *)length;\n                  unaff_s5 = aVar39;\n                  unaff_s7 = aVar41;\n                  if ((uint)mctx.input.valid_raw_len <= uVar8) {\n                    aVar45.idx = match_first;\n                    local_150.sbcset = (re_bitset_ptr_t)(*pcVar5)(last_start);\n                    prVar51 = prVar52;\n                    if ((re_dfa_t *)local_150.sbcset != (re_dfa_t *)0x0) goto LAB_000557e4;\n                    uVar8 = (int)aVar46.sbcset - mctx.input.raw_mbs_idx;\n                  }\n                  if (aVar46.idx < length) {\n                    uVar8 = (uint)mctx.input.mbs[uVar8];\n                  }\n                  else {\n                    uVar8 = 0;\n                  }\n                  aVar56.sbcset = aVar46.sbcset + aVar39.sbcset;\n                  aVar46.sbcset = aVar56.sbcset;\n                  if (*(char *)((int)local_148.sbcset + uVar8) != '\0') break;\n                  prVar51 = prVar52;\n                  match_first = aVar56.idx;\n                  if (aVar56.idx < aVar40.idx) {\n                    local_150.idx = 1;\n                    goto LAB_000557e4;\n                  }\n                  aVar46.idx._0_3_ = 0;\n                  aVar46.idx._3_1_ = aVar41.idx < aVar56.idx;\n                  if ((re_dfa_t *)aVar46.sbcset != (re_dfa_t *)0x0) {\n                    local_150.idx = 1;\n                    goto LAB_000557e4;\n                  }\n                }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                  aVar46.idx = match_first;\n                  uVar8 = match_first - mctx.input.raw_mbs_idx;\n                  aVar49 = (anon_union_4_5_a39f51ca_for_opr)eflags;\n                  paVar18 = paVar2;\n                  stop = local_148.idx;\n                  unaff_s4 = (re_dfa_t *)length;\n                  unaff_s5 = aVar39;\n                  unaff_s7 = aVar41;\n                  if ((uint)mctx.input.valid_raw_len <= uVar8) {\n                    aVar45.idx = match_first;\n                    local_150.sbcset = (re_bitset_ptr_t)(*pcVar5)(last_start);\n                    prVar51 = prVar52;\n                    if ((re_dfa_t *)local_150.sbcset != (re_dfa_t *)0x0) goto LAB_000557e4;\n                    uVar8 = (int)aVar46.sbcset - mctx.input.raw_mbs_idx;\n                  }\n                  if (aVar46.idx < length) {\n                    uVar8 = (uint)mctx.input.mbs[uVar8];\n                  }\n                  else {\n                    uVar8 = 0;\n                  }\n                  aVar56.sbcset = aVar46.sbcset + aVar39.sbcset;\n                  aVar46.sbcset = aVar56.sbcset;\n                  if (*(char *)((int)local_148.sbcset + uVar8) != '\0') break;\n                  prVar51 = prVar52;\n                  match_first = aVar56.idx;\n                  if (aVar56.idx < aVar40.idx) {\n                    local_150.idx = 1;\n                    goto LAB_000557e4;\n                  }\n                  aVar46.idx._0_3_ = 0;\n                  aVar46.idx._3_1_ = aVar41.idx < aVar56.idx;\n                  if ((re_dfa_t *)aVar46.sbcset != (re_dfa_t *)0x0) {\n                    local_150.idx = 1;\n                    goto LAB_000557e4;\n                  }\n                }" { (expression_statement "aVar46.idx = match_first;" (assignment_expression "aVar46.idx = match_first" (field_expression "aVar46.idx" identifier . field_identifier) = identifier) ;) (expression_statement "uVar8 = match_first - mctx.input.raw_mbs_idx;" (assignment_expression "uVar8 = match_first - mctx.input.raw_mbs_idx" identifier = (binary_expression "match_first - mctx.input.raw_mbs_idx" identifier - (field_expression "mctx.input.raw_mbs_idx" (field_expression "mctx.input" identifier . field_identifier) . field_identifier))) ;) (expression_statement "aVar49 = (anon_union_4_5_a39f51ca_for_opr)eflags;" (assignment_expression "aVar49 = (anon_union_4_5_a39f51ca_for_opr)eflags" identifier = (cast_expression "(anon_union_4_5_a39f51ca_for_opr)eflags" ( (type_descriptor "anon_union_4_5_a39f51ca_for_opr" type_identifier) ) identifier)) ;) (expression_statement "paVar18 = paVar2;" (assignment_expression "paVar18 = paVar2" identifier = identifier) ;) (expression_statement "stop = local_148.idx;" (assignment_expression "stop = local_148.idx" identifier = (field_expression "local_148.idx" identifier . field_identifier)) ;) (expression_statement "unaff_s4 = (re_dfa_t *)length;" (assignment_expression "unaff_s4 = (re_dfa_t *)length" identifier = (cast_expression "(re_dfa_t *)length" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "unaff_s5 = aVar39;" (assignment_expression "unaff_s5 = aVar39" identifier = identifier) ;) (expression_statement "unaff_s7 = aVar41;" (assignment_expression "unaff_s7 = aVar41" identifier = identifier) ;) (if_statement "if ((uint)mctx.input.valid_raw_len <= uVar8) {\n                    aVar45.idx = match_first;\n                    local_150.sbcset = (re_bitset_ptr_t)(*pcVar5)(last_start);\n                    prVar51 = prVar52;\n                    if ((re_dfa_t *)local_150.sbcset != (re_dfa_t *)0x0) goto LAB_000557e4;\n                    uVar8 = (int)aVar46.sbcset - mctx.input.raw_mbs_idx;\n                  }" if (parenthesized_expression "((uint)mctx.input.valid_raw_len <= uVar8)" ( (binary_expression "(uint)mctx.input.valid_raw_len <= uVar8" (cast_expression "(uint)mctx.input.valid_raw_len" ( (type_descriptor "uint" type_identifier) ) (field_expression "mctx.input.valid_raw_len" (field_expression "mctx.input" identifier . field_identifier) . field_identifier)) <= identifier) )) (compound_statement "{\n                    aVar45.idx = match_first;\n                    local_150.sbcset = (re_bitset_ptr_t)(*pcVar5)(last_start);\n                    prVar51 = prVar52;\n                    if ((re_dfa_t *)local_150.sbcset != (re_dfa_t *)0x0) goto LAB_000557e4;\n                    uVar8 = (int)aVar46.sbcset - mctx.input.raw_mbs_idx;\n                  }" { (expression_statement "aVar45.idx = match_first;" (assignment_expression "aVar45.idx = match_first" (field_expression "aVar45.idx" identifier . field_identifier) = identifier) ;) (expression_statement "local_150.sbcset = (re_bitset_ptr_t)(*pcVar5)(last_start);" (assignment_expression "local_150.sbcset = (re_bitset_ptr_t)(*pcVar5)(last_start)" (field_expression "local_150.sbcset" identifier . field_identifier) = (call_expression "(re_bitset_ptr_t)(*pcVar5)(last_start)" (call_expression "(re_bitset_ptr_t)(*pcVar5)" (parenthesized_expression "(re_bitset_ptr_t)" ( identifier )) (argument_list "(*pcVar5)" ( (pointer_expression "*pcVar5" * identifier) ))) (argument_list "(last_start)" ( identifier )))) ;) (expression_statement "prVar51 = prVar52;" (assignment_expression "prVar51 = prVar52" identifier = identifier) ;) (if_statement "if ((re_dfa_t *)local_150.sbcset != (re_dfa_t *)0x0) goto LAB_000557e4;" if (parenthesized_expression "((re_dfa_t *)local_150.sbcset != (re_dfa_t *)0x0)" ( (binary_expression "(re_dfa_t *)local_150.sbcset != (re_dfa_t *)0x0" (cast_expression "(re_dfa_t *)local_150.sbcset" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "local_150.sbcset" identifier . field_identifier)) != (cast_expression "(re_dfa_t *)0x0" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000557e4;" goto statement_identifier ;)) (expression_statement "uVar8 = (int)aVar46.sbcset - mctx.input.raw_mbs_idx;" (assignment_expression "uVar8 = (int)aVar46.sbcset - mctx.input.raw_mbs_idx" identifier = (binary_expression "(int)aVar46.sbcset - mctx.input.raw_mbs_idx" (cast_expression "(int)aVar46.sbcset" ( (type_descriptor "int" primitive_type) ) (field_expression "aVar46.sbcset" identifier . field_identifier)) - (field_expression "mctx.input.raw_mbs_idx" (field_expression "mctx.input" identifier . field_identifier) . field_identifier))) ;) })) (if_statement "if (aVar46.idx < length) {\n                    uVar8 = (uint)mctx.input.mbs[uVar8];\n                  }\n                  else {\n                    uVar8 = 0;\n                  }" if (parenthesized_expression "(aVar46.idx < length)" ( (binary_expression "aVar46.idx < length" (field_expression "aVar46.idx" identifier . field_identifier) < identifier) )) (compound_statement "{\n                    uVar8 = (uint)mctx.input.mbs[uVar8];\n                  }" { (expression_statement "uVar8 = (uint)mctx.input.mbs[uVar8];" (assignment_expression "uVar8 = (uint)mctx.input.mbs[uVar8]" identifier = (cast_expression "(uint)mctx.input.mbs[uVar8]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "mctx.input.mbs[uVar8]" (field_expression "mctx.input.mbs" (field_expression "mctx.input" identifier . field_identifier) . field_identifier) [ identifier ]))) ;) }) (else_clause "else {\n                    uVar8 = 0;\n                  }" else (compound_statement "{\n                    uVar8 = 0;\n                  }" { (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) }))) (expression_statement "aVar56.sbcset = aVar46.sbcset + aVar39.sbcset;" (assignment_expression "aVar56.sbcset = aVar46.sbcset + aVar39.sbcset" (field_expression "aVar56.sbcset" identifier . field_identifier) = (binary_expression "aVar46.sbcset + aVar39.sbcset" (field_expression "aVar46.sbcset" identifier . field_identifier) + (field_expression "aVar39.sbcset" identifier . field_identifier))) ;) (expression_statement "aVar46.sbcset = aVar56.sbcset;" (assignment_expression "aVar46.sbcset = aVar56.sbcset" (field_expression "aVar46.sbcset" identifier . field_identifier) = (field_expression "aVar56.sbcset" identifier . field_identifier)) ;) (if_statement "if (*(char *)((int)local_148.sbcset + uVar8) != '\0') break;" if (parenthesized_expression "(*(char *)((int)local_148.sbcset + uVar8) != '\0')" ( (binary_expression "*(char *)((int)local_148.sbcset + uVar8) != '\0'" (pointer_expression "*(char *)((int)local_148.sbcset + uVar8)" * (cast_expression "(char *)((int)local_148.sbcset + uVar8)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_148.sbcset + uVar8)" ( (binary_expression "(int)local_148.sbcset + uVar8" (cast_expression "(int)local_148.sbcset" ( (type_descriptor "int" primitive_type) ) (field_expression "local_148.sbcset" identifier . field_identifier)) + identifier) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (break_statement "break;" break ;)) (expression_statement "prVar51 = prVar52;" (assignment_expression "prVar51 = prVar52" identifier = identifier) ;) (expression_statement "match_first = aVar56.idx;" (assignment_expression "match_first = aVar56.idx" identifier = (field_expression "aVar56.idx" identifier . field_identifier)) ;) (if_statement "if (aVar56.idx < aVar40.idx) {\n                    local_150.idx = 1;\n                    goto LAB_000557e4;\n                  }" if (parenthesized_expression "(aVar56.idx < aVar40.idx)" ( (binary_expression "aVar56.idx < aVar40.idx" (field_expression "aVar56.idx" identifier . field_identifier) < (field_expression "aVar40.idx" identifier . field_identifier)) )) (compound_statement "{\n                    local_150.idx = 1;\n                    goto LAB_000557e4;\n                  }" { (expression_statement "local_150.idx = 1;" (assignment_expression "local_150.idx = 1" (field_expression "local_150.idx" identifier . field_identifier) = number_literal) ;) (goto_statement "goto LAB_000557e4;" goto statement_identifier ;) })) (expression_statement "aVar46.idx._0_3_ = 0;" (assignment_expression "aVar46.idx._0_3_ = 0" (field_expression "aVar46.idx._0_3_" (field_expression "aVar46.idx" identifier . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "aVar46.idx._3_1_ = aVar41.idx < aVar56.idx;" (assignment_expression "aVar46.idx._3_1_ = aVar41.idx < aVar56.idx" (field_expression "aVar46.idx._3_1_" (field_expression "aVar46.idx" identifier . field_identifier) . field_identifier) = (binary_expression "aVar41.idx < aVar56.idx" (field_expression "aVar41.idx" identifier . field_identifier) < (field_expression "aVar56.idx" identifier . field_identifier))) ;) (if_statement "if ((re_dfa_t *)aVar46.sbcset != (re_dfa_t *)0x0) {\n                    local_150.idx = 1;\n                    goto LAB_000557e4;\n                  }" if (parenthesized_expression "((re_dfa_t *)aVar46.sbcset != (re_dfa_t *)0x0)" ( (binary_expression "(re_dfa_t *)aVar46.sbcset != (re_dfa_t *)0x0" (cast_expression "(re_dfa_t *)aVar46.sbcset" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "aVar46.sbcset" identifier . field_identifier)) != (cast_expression "(re_dfa_t *)0x0" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    local_150.idx = 1;\n                    goto LAB_000557e4;\n                  }" { (expression_statement "local_150.idx = 1;" (assignment_expression "local_150.idx = 1" (field_expression "local_150.idx" identifier . field_identifier) = number_literal) ;) (goto_statement "goto LAB_000557e4;" goto statement_identifier ;) })) })) (while_statement "while( true ) {\n                  aVar45.idx = match_first;\n                  aVar49 = (anon_union_4_5_a39f51ca_for_opr)eflags;\n                  aVar7.sbcset = (re_bitset_ptr_t)(*pcVar5)(&mctx);\n                  aVar15 = (anon_union_4_5_a39f51ca_for_opr)mctx.dfa;\n                  aVar56.idx = mctx.input.cur_idx;\n                  prVar51 = prVar52;\n                  local_150.sbcset = aVar7.sbcset;\n                  if ((re_dfa_t *)aVar7.sbcset != (re_dfa_t *)0x0) goto LAB_000557e4;\n                  if (((iVar55 != 1) && (mctx.input.valid_len != 0)) &&\n                     (*mctx.input.wcs == 0xffffffff)) goto LAB_00055b1c;\n                  mctx.max_mb_elem_len = 0;\n                  mctx.nbkref_ents = 0;\n                  mctx.state_log_top = 0;\n                  local_138.idx = mctx.input.cur_idx;\n                  err = _REG_NOERROR;\n                  unaff_s7 = (anon_union_4_5_a39f51ca_for_opr)(mctx.dfa)->init_state;\n                  aVar49 = (anon_union_4_5_a39f51ca_for_opr)mctx.eflags;\n                  aVar46 = aVar15;\n                  if ((*(byte *)(unaff_s7.idx + 0x34) & 1) == 0) break;\n                  aVar45.sbcset = (re_bitset_ptr_t)(mctx.input.cur_idx + -1);\n                  prVar51 = (re_dfa_t *)re_string_context_at(&mctx.input,aVar45.idx,mctx.eflags);\n                  if (((uint)prVar51 & 1) == 0) {\n                    if (prVar51 == (re_dfa_t *)0x0) break;\n                    if (((uint)prVar51 & 6) == 6) {\n                      unaff_s7 = (anon_union_4_5_a39f51ca_for_opr)\n                                 ((re_dfa_t *)aVar15.idx)->init_state_begbuf;\n                      goto LAB_00054d1c;\n                    }\n                    if (((uint)prVar51 & 2) != 0) {\n                      unaff_s7 = (anon_union_4_5_a39f51ca_for_opr)\n                                 ((re_dfa_t *)aVar15.idx)->init_state_nl;\n                      goto LAB_00054d1c;\n                    }\n                    prVar52 = prVar51;\n                    if (((uint)prVar51 & 4) == 0) break;\n                    aVar49 = (anon_union_4_5_a39f51ca_for_opr)\n                             ((anon_union_4_5_a39f51ca_for_opr *)(unaff_s7.idx + 0x28))->mbcset;\n                    aVar45 = aVar15;\n                    unaff_s7.sbcset =\n                         &re_acquire_state_context\n                                    (&err,aVar15.sbcset,(re_node_set *)aVar49.mbcset,(uint)prVar51)\n                          ->hash;\n                    prVar52 = prVar51;\n                    if ((re_dfa_t *)unaff_s7.sbcset != (re_dfa_t *)0x0) break;\n                    if (err == _REG_ESPACE) goto LAB_00055914;\n                  }\n                  else {\n                    unaff_s7 = (anon_union_4_5_a39f51ca_for_opr)\n                               ((re_dfa_t *)aVar15.idx)->init_state_word;\nLAB_00054d1c:\n                    prVar52 = (re_dfa_t *)PTR_s_nt0_000795b8;\n                    if ((re_dfa_t *)unaff_s7.sbcset != (re_dfa_t *)0x0) break;\n                  }\n                  prVar52 = (re_dfa_t *)(PTR_s_nt0_000795b8 + 0x6eb0);\n                  aVar45.sbcset = (re_bitset_ptr_t)(PTR_s_nt0_000795b8 + 0x712c);\n                  match_first = (*(code *)PTR___assert_fail_000799f8)\n                                          (PTR_s_nt0_000795b8 + 0x71a0,aVar45.sbcset,0x435);\n                  if ((re_bitset_ptr_t)match_first == aVar41.sbcset) {\n                    if (match_first < length) {\n                      uVar8 = (uint)(byte)string[match_first];\n                    }\n                    else {\n                      uVar8 = 0;\n                    }\n                    if (puVar50 != (uchar *)0x0) {\n                      uVar8 = (uint)puVar50[uVar8];\n                    }\n                    if (*(char *)((int)local_148.sbcset + uVar8) == '\0') {\n                      local_150.idx = 1;\n                      aVar49 = (anon_union_4_5_a39f51ca_for_opr)eflags;\n                      prVar51 = prVar52;\n                      goto LAB_000557e4;\n                    }\n                  }\n                }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                  aVar45.idx = match_first;\n                  aVar49 = (anon_union_4_5_a39f51ca_for_opr)eflags;\n                  aVar7.sbcset = (re_bitset_ptr_t)(*pcVar5)(&mctx);\n                  aVar15 = (anon_union_4_5_a39f51ca_for_opr)mctx.dfa;\n                  aVar56.idx = mctx.input.cur_idx;\n                  prVar51 = prVar52;\n                  local_150.sbcset = aVar7.sbcset;\n                  if ((re_dfa_t *)aVar7.sbcset != (re_dfa_t *)0x0) goto LAB_000557e4;\n                  if (((iVar55 != 1) && (mctx.input.valid_len != 0)) &&\n                     (*mctx.input.wcs == 0xffffffff)) goto LAB_00055b1c;\n                  mctx.max_mb_elem_len = 0;\n                  mctx.nbkref_ents = 0;\n                  mctx.state_log_top = 0;\n                  local_138.idx = mctx.input.cur_idx;\n                  err = _REG_NOERROR;\n                  unaff_s7 = (anon_union_4_5_a39f51ca_for_opr)(mctx.dfa)->init_state;\n                  aVar49 = (anon_union_4_5_a39f51ca_for_opr)mctx.eflags;\n                  aVar46 = aVar15;\n                  if ((*(byte *)(unaff_s7.idx + 0x34) & 1) == 0) break;\n                  aVar45.sbcset = (re_bitset_ptr_t)(mctx.input.cur_idx + -1);\n                  prVar51 = (re_dfa_t *)re_string_context_at(&mctx.input,aVar45.idx,mctx.eflags);\n                  if (((uint)prVar51 & 1) == 0) {\n                    if (prVar51 == (re_dfa_t *)0x0) break;\n                    if (((uint)prVar51 & 6) == 6) {\n                      unaff_s7 = (anon_union_4_5_a39f51ca_for_opr)\n                                 ((re_dfa_t *)aVar15.idx)->init_state_begbuf;\n                      goto LAB_00054d1c;\n                    }\n                    if (((uint)prVar51 & 2) != 0) {\n                      unaff_s7 = (anon_union_4_5_a39f51ca_for_opr)\n                                 ((re_dfa_t *)aVar15.idx)->init_state_nl;\n                      goto LAB_00054d1c;\n                    }\n                    prVar52 = prVar51;\n                    if (((uint)prVar51 & 4) == 0) break;\n                    aVar49 = (anon_union_4_5_a39f51ca_for_opr)\n                             ((anon_union_4_5_a39f51ca_for_opr *)(unaff_s7.idx + 0x28))->mbcset;\n                    aVar45 = aVar15;\n                    unaff_s7.sbcset =\n                         &re_acquire_state_context\n                                    (&err,aVar15.sbcset,(re_node_set *)aVar49.mbcset,(uint)prVar51)\n                          ->hash;\n                    prVar52 = prVar51;\n                    if ((re_dfa_t *)unaff_s7.sbcset != (re_dfa_t *)0x0) break;\n                    if (err == _REG_ESPACE) goto LAB_00055914;\n                  }\n                  else {\n                    unaff_s7 = (anon_union_4_5_a39f51ca_for_opr)\n                               ((re_dfa_t *)aVar15.idx)->init_state_word;\nLAB_00054d1c:\n                    prVar52 = (re_dfa_t *)PTR_s_nt0_000795b8;\n                    if ((re_dfa_t *)unaff_s7.sbcset != (re_dfa_t *)0x0) break;\n                  }\n                  prVar52 = (re_dfa_t *)(PTR_s_nt0_000795b8 + 0x6eb0);\n                  aVar45.sbcset = (re_bitset_ptr_t)(PTR_s_nt0_000795b8 + 0x712c);\n                  match_first = (*(code *)PTR___assert_fail_000799f8)\n                                          (PTR_s_nt0_000795b8 + 0x71a0,aVar45.sbcset,0x435);\n                  if ((re_bitset_ptr_t)match_first == aVar41.sbcset) {\n                    if (match_first < length) {\n                      uVar8 = (uint)(byte)string[match_first];\n                    }\n                    else {\n                      uVar8 = 0;\n                    }\n                    if (puVar50 != (uchar *)0x0) {\n                      uVar8 = (uint)puVar50[uVar8];\n                    }\n                    if (*(char *)((int)local_148.sbcset + uVar8) == '\0') {\n                      local_150.idx = 1;\n                      aVar49 = (anon_union_4_5_a39f51ca_for_opr)eflags;\n                      prVar51 = prVar52;\n                      goto LAB_000557e4;\n                    }\n                  }\n                }" { (expression_statement "aVar45.idx = match_first;" (assignment_expression "aVar45.idx = match_first" (field_expression "aVar45.idx" identifier . field_identifier) = identifier) ;) (expression_statement "aVar49 = (anon_union_4_5_a39f51ca_for_opr)eflags;" (assignment_expression "aVar49 = (anon_union_4_5_a39f51ca_for_opr)eflags" identifier = (cast_expression "(anon_union_4_5_a39f51ca_for_opr)eflags" ( (type_descriptor "anon_union_4_5_a39f51ca_for_opr" type_identifier) ) identifier)) ;) (expression_statement "aVar7.sbcset = (re_bitset_ptr_t)(*pcVar5)(&mctx);" (assignment_expression "aVar7.sbcset = (re_bitset_ptr_t)(*pcVar5)(&mctx)" (field_expression "aVar7.sbcset" identifier . field_identifier) = (call_expression "(re_bitset_ptr_t)(*pcVar5)(&mctx)" (call_expression "(re_bitset_ptr_t)(*pcVar5)" (parenthesized_expression "(re_bitset_ptr_t)" ( identifier )) (argument_list "(*pcVar5)" ( (pointer_expression "*pcVar5" * identifier) ))) (argument_list "(&mctx)" ( (pointer_expression "&mctx" & identifier) )))) ;) (expression_statement "aVar15 = (anon_union_4_5_a39f51ca_for_opr)mctx.dfa;" (assignment_expression "aVar15 = (anon_union_4_5_a39f51ca_for_opr)mctx.dfa" identifier = (cast_expression "(anon_union_4_5_a39f51ca_for_opr)mctx.dfa" ( (type_descriptor "anon_union_4_5_a39f51ca_for_opr" type_identifier) ) (field_expression "mctx.dfa" identifier . field_identifier))) ;) (expression_statement "aVar56.idx = mctx.input.cur_idx;" (assignment_expression "aVar56.idx = mctx.input.cur_idx" (field_expression "aVar56.idx" identifier . field_identifier) = (field_expression "mctx.input.cur_idx" (field_expression "mctx.input" identifier . field_identifier) . field_identifier)) ;) (expression_statement "prVar51 = prVar52;" (assignment_expression "prVar51 = prVar52" identifier = identifier) ;) (expression_statement "local_150.sbcset = aVar7.sbcset;" (assignment_expression "local_150.sbcset = aVar7.sbcset" (field_expression "local_150.sbcset" identifier . field_identifier) = (field_expression "aVar7.sbcset" identifier . field_identifier)) ;) (if_statement "if ((re_dfa_t *)aVar7.sbcset != (re_dfa_t *)0x0) goto LAB_000557e4;" if (parenthesized_expression "((re_dfa_t *)aVar7.sbcset != (re_dfa_t *)0x0)" ( (binary_expression "(re_dfa_t *)aVar7.sbcset != (re_dfa_t *)0x0" (cast_expression "(re_dfa_t *)aVar7.sbcset" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "aVar7.sbcset" identifier . field_identifier)) != (cast_expression "(re_dfa_t *)0x0" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000557e4;" goto statement_identifier ;)) (if_statement "if (((iVar55 != 1) && (mctx.input.valid_len != 0)) &&\n                     (*mctx.input.wcs == 0xffffffff)) goto LAB_00055b1c;" if (parenthesized_expression "(((iVar55 != 1) && (mctx.input.valid_len != 0)) &&\n                     (*mctx.input.wcs == 0xffffffff))" ( (binary_expression "((iVar55 != 1) && (mctx.input.valid_len != 0)) &&\n                     (*mctx.input.wcs == 0xffffffff)" (parenthesized_expression "((iVar55 != 1) && (mctx.input.valid_len != 0))" ( (binary_expression "(iVar55 != 1) && (mctx.input.valid_len != 0)" (parenthesized_expression "(iVar55 != 1)" ( (binary_expression "iVar55 != 1" identifier != number_literal) )) && (parenthesized_expression "(mctx.input.valid_len != 0)" ( (binary_expression "mctx.input.valid_len != 0" (field_expression "mctx.input.valid_len" (field_expression "mctx.input" identifier . field_identifier) . field_identifier) != number_literal) ))) )) && (parenthesized_expression "(*mctx.input.wcs == 0xffffffff)" ( (binary_expression "*mctx.input.wcs == 0xffffffff" (pointer_expression "*mctx.input.wcs" * (field_expression "mctx.input.wcs" (field_expression "mctx.input" identifier . field_identifier) . field_identifier)) == number_literal) ))) )) (goto_statement "goto LAB_00055b1c;" goto statement_identifier ;)) (expression_statement "mctx.max_mb_elem_len = 0;" (assignment_expression "mctx.max_mb_elem_len = 0" (field_expression "mctx.max_mb_elem_len" identifier . field_identifier) = number_literal) ;) (expression_statement "mctx.nbkref_ents = 0;" (assignment_expression "mctx.nbkref_ents = 0" (field_expression "mctx.nbkref_ents" identifier . field_identifier) = number_literal) ;) (expression_statement "mctx.state_log_top = 0;" (assignment_expression "mctx.state_log_top = 0" (field_expression "mctx.state_log_top" identifier . field_identifier) = number_literal) ;) (expression_statement "local_138.idx = mctx.input.cur_idx;" (assignment_expression "local_138.idx = mctx.input.cur_idx" (field_expression "local_138.idx" identifier . field_identifier) = (field_expression "mctx.input.cur_idx" (field_expression "mctx.input" identifier . field_identifier) . field_identifier)) ;) (expression_statement "err = _REG_NOERROR;" (assignment_expression "err = _REG_NOERROR" identifier = identifier) ;) (expression_statement "unaff_s7 = (anon_union_4_5_a39f51ca_for_opr)(mctx.dfa)->init_state;" (assignment_expression "unaff_s7 = (anon_union_4_5_a39f51ca_for_opr)(mctx.dfa)->init_state" identifier = (field_expression "(anon_union_4_5_a39f51ca_for_opr)(mctx.dfa)->init_state" (call_expression "(anon_union_4_5_a39f51ca_for_opr)(mctx.dfa)" (parenthesized_expression "(anon_union_4_5_a39f51ca_for_opr)" ( identifier )) (argument_list "(mctx.dfa)" ( (field_expression "mctx.dfa" identifier . field_identifier) ))) -> field_identifier)) ;) (expression_statement "aVar49 = (anon_union_4_5_a39f51ca_for_opr)mctx.eflags;" (assignment_expression "aVar49 = (anon_union_4_5_a39f51ca_for_opr)mctx.eflags" identifier = (cast_expression "(anon_union_4_5_a39f51ca_for_opr)mctx.eflags" ( (type_descriptor "anon_union_4_5_a39f51ca_for_opr" type_identifier) ) (field_expression "mctx.eflags" identifier . field_identifier))) ;) (expression_statement "aVar46 = aVar15;" (assignment_expression "aVar46 = aVar15" identifier = identifier) ;) (if_statement "if ((*(byte *)(unaff_s7.idx + 0x34) & 1) == 0) break;" if (parenthesized_expression "((*(byte *)(unaff_s7.idx + 0x34) & 1) == 0)" ( (binary_expression "(*(byte *)(unaff_s7.idx + 0x34) & 1) == 0" (parenthesized_expression "(*(byte *)(unaff_s7.idx + 0x34) & 1)" ( (binary_expression "*(byte *)(unaff_s7.idx + 0x34) & 1" (pointer_expression "*(byte *)(unaff_s7.idx + 0x34)" * (cast_expression "(byte *)(unaff_s7.idx + 0x34)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s7.idx + 0x34)" ( (binary_expression "unaff_s7.idx + 0x34" (field_expression "unaff_s7.idx" identifier . field_identifier) + number_literal) )))) & number_literal) )) == number_literal) )) (break_statement "break;" break ;)) (expression_statement "aVar45.sbcset = (re_bitset_ptr_t)(mctx.input.cur_idx + -1);" (assignment_expression "aVar45.sbcset = (re_bitset_ptr_t)(mctx.input.cur_idx + -1)" (field_expression "aVar45.sbcset" identifier . field_identifier) = (call_expression "(re_bitset_ptr_t)(mctx.input.cur_idx + -1)" (parenthesized_expression "(re_bitset_ptr_t)" ( identifier )) (argument_list "(mctx.input.cur_idx + -1)" ( (binary_expression "mctx.input.cur_idx + -1" (field_expression "mctx.input.cur_idx" (field_expression "mctx.input" identifier . field_identifier) . field_identifier) + number_literal) )))) ;) (expression_statement "prVar51 = (re_dfa_t *)re_string_context_at(&mctx.input,aVar45.idx,mctx.eflags);" (assignment_expression "prVar51 = (re_dfa_t *)re_string_context_at(&mctx.input,aVar45.idx,mctx.eflags)" identifier = (cast_expression "(re_dfa_t *)re_string_context_at(&mctx.input,aVar45.idx,mctx.eflags)" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "re_string_context_at(&mctx.input,aVar45.idx,mctx.eflags)" identifier (argument_list "(&mctx.input,aVar45.idx,mctx.eflags)" ( (pointer_expression "&mctx.input" & (field_expression "mctx.input" identifier . field_identifier)) , (field_expression "aVar45.idx" identifier . field_identifier) , (field_expression "mctx.eflags" identifier . field_identifier) ))))) ;) (if_statement "if (((uint)prVar51 & 1) == 0) {\n                    if (prVar51 == (re_dfa_t *)0x0) break;\n                    if (((uint)prVar51 & 6) == 6) {\n                      unaff_s7 = (anon_union_4_5_a39f51ca_for_opr)\n                                 ((re_dfa_t *)aVar15.idx)->init_state_begbuf;\n                      goto LAB_00054d1c;\n                    }\n                    if (((uint)prVar51 & 2) != 0) {\n                      unaff_s7 = (anon_union_4_5_a39f51ca_for_opr)\n                                 ((re_dfa_t *)aVar15.idx)->init_state_nl;\n                      goto LAB_00054d1c;\n                    }\n                    prVar52 = prVar51;\n                    if (((uint)prVar51 & 4) == 0) break;\n                    aVar49 = (anon_union_4_5_a39f51ca_for_opr)\n                             ((anon_union_4_5_a39f51ca_for_opr *)(unaff_s7.idx + 0x28))->mbcset;\n                    aVar45 = aVar15;\n                    unaff_s7.sbcset =\n                         &re_acquire_state_context\n                                    (&err,aVar15.sbcset,(re_node_set *)aVar49.mbcset,(uint)prVar51)\n                          ->hash;\n                    prVar52 = prVar51;\n                    if ((re_dfa_t *)unaff_s7.sbcset != (re_dfa_t *)0x0) break;\n                    if (err == _REG_ESPACE) goto LAB_00055914;\n                  }\n                  else {\n                    unaff_s7 = (anon_union_4_5_a39f51ca_for_opr)\n                               ((re_dfa_t *)aVar15.idx)->init_state_word;\nLAB_00054d1c:\n                    prVar52 = (re_dfa_t *)PTR_s_nt0_000795b8;\n                    if ((re_dfa_t *)unaff_s7.sbcset != (re_dfa_t *)0x0) break;\n                  }" if (parenthesized_expression "(((uint)prVar51 & 1) == 0)" ( (binary_expression "((uint)prVar51 & 1) == 0" (parenthesized_expression "((uint)prVar51 & 1)" ( (binary_expression "(uint)prVar51 & 1" (cast_expression "(uint)prVar51" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n                    if (prVar51 == (re_dfa_t *)0x0) break;\n                    if (((uint)prVar51 & 6) == 6) {\n                      unaff_s7 = (anon_union_4_5_a39f51ca_for_opr)\n                                 ((re_dfa_t *)aVar15.idx)->init_state_begbuf;\n                      goto LAB_00054d1c;\n                    }\n                    if (((uint)prVar51 & 2) != 0) {\n                      unaff_s7 = (anon_union_4_5_a39f51ca_for_opr)\n                                 ((re_dfa_t *)aVar15.idx)->init_state_nl;\n                      goto LAB_00054d1c;\n                    }\n                    prVar52 = prVar51;\n                    if (((uint)prVar51 & 4) == 0) break;\n                    aVar49 = (anon_union_4_5_a39f51ca_for_opr)\n                             ((anon_union_4_5_a39f51ca_for_opr *)(unaff_s7.idx + 0x28))->mbcset;\n                    aVar45 = aVar15;\n                    unaff_s7.sbcset =\n                         &re_acquire_state_context\n                                    (&err,aVar15.sbcset,(re_node_set *)aVar49.mbcset,(uint)prVar51)\n                          ->hash;\n                    prVar52 = prVar51;\n                    if ((re_dfa_t *)unaff_s7.sbcset != (re_dfa_t *)0x0) break;\n                    if (err == _REG_ESPACE) goto LAB_00055914;\n                  }" { (if_statement "if (prVar51 == (re_dfa_t *)0x0) break;" if (parenthesized_expression "(prVar51 == (re_dfa_t *)0x0)" ( (binary_expression "prVar51 == (re_dfa_t *)0x0" identifier == (cast_expression "(re_dfa_t *)0x0" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (if_statement "if (((uint)prVar51 & 6) == 6) {\n                      unaff_s7 = (anon_union_4_5_a39f51ca_for_opr)\n                                 ((re_dfa_t *)aVar15.idx)->init_state_begbuf;\n                      goto LAB_00054d1c;\n                    }" if (parenthesized_expression "(((uint)prVar51 & 6) == 6)" ( (binary_expression "((uint)prVar51 & 6) == 6" (parenthesized_expression "((uint)prVar51 & 6)" ( (binary_expression "(uint)prVar51 & 6" (cast_expression "(uint)prVar51" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n                      unaff_s7 = (anon_union_4_5_a39f51ca_for_opr)\n                                 ((re_dfa_t *)aVar15.idx)->init_state_begbuf;\n                      goto LAB_00054d1c;\n                    }" { (expression_statement "unaff_s7 = (anon_union_4_5_a39f51ca_for_opr)\n                                 ((re_dfa_t *)aVar15.idx)->init_state_begbuf;" (assignment_expression "unaff_s7 = (anon_union_4_5_a39f51ca_for_opr)\n                                 ((re_dfa_t *)aVar15.idx)->init_state_begbuf" identifier = (field_expression "(anon_union_4_5_a39f51ca_for_opr)\n                                 ((re_dfa_t *)aVar15.idx)->init_state_begbuf" (call_expression "(anon_union_4_5_a39f51ca_for_opr)\n                                 ((re_dfa_t *)aVar15.idx)" (parenthesized_expression "(anon_union_4_5_a39f51ca_for_opr)" ( identifier )) (argument_list "((re_dfa_t *)aVar15.idx)" ( (cast_expression "(re_dfa_t *)aVar15.idx" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "aVar15.idx" identifier . field_identifier)) ))) -> field_identifier)) ;) (goto_statement "goto LAB_00054d1c;" goto statement_identifier ;) })) (if_statement "if (((uint)prVar51 & 2) != 0) {\n                      unaff_s7 = (anon_union_4_5_a39f51ca_for_opr)\n                                 ((re_dfa_t *)aVar15.idx)->init_state_nl;\n                      goto LAB_00054d1c;\n                    }" if (parenthesized_expression "(((uint)prVar51 & 2) != 0)" ( (binary_expression "((uint)prVar51 & 2) != 0" (parenthesized_expression "((uint)prVar51 & 2)" ( (binary_expression "(uint)prVar51 & 2" (cast_expression "(uint)prVar51" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n                      unaff_s7 = (anon_union_4_5_a39f51ca_for_opr)\n                                 ((re_dfa_t *)aVar15.idx)->init_state_nl;\n                      goto LAB_00054d1c;\n                    }" { (expression_statement "unaff_s7 = (anon_union_4_5_a39f51ca_for_opr)\n                                 ((re_dfa_t *)aVar15.idx)->init_state_nl;" (assignment_expression "unaff_s7 = (anon_union_4_5_a39f51ca_for_opr)\n                                 ((re_dfa_t *)aVar15.idx)->init_state_nl" identifier = (field_expression "(anon_union_4_5_a39f51ca_for_opr)\n                                 ((re_dfa_t *)aVar15.idx)->init_state_nl" (call_expression "(anon_union_4_5_a39f51ca_for_opr)\n                                 ((re_dfa_t *)aVar15.idx)" (parenthesized_expression "(anon_union_4_5_a39f51ca_for_opr)" ( identifier )) (argument_list "((re_dfa_t *)aVar15.idx)" ( (cast_expression "(re_dfa_t *)aVar15.idx" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "aVar15.idx" identifier . field_identifier)) ))) -> field_identifier)) ;) (goto_statement "goto LAB_00054d1c;" goto statement_identifier ;) })) (expression_statement "prVar52 = prVar51;" (assignment_expression "prVar52 = prVar51" identifier = identifier) ;) (if_statement "if (((uint)prVar51 & 4) == 0) break;" if (parenthesized_expression "(((uint)prVar51 & 4) == 0)" ( (binary_expression "((uint)prVar51 & 4) == 0" (parenthesized_expression "((uint)prVar51 & 4)" ( (binary_expression "(uint)prVar51 & 4" (cast_expression "(uint)prVar51" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) == number_literal) )) (break_statement "break;" break ;)) (expression_statement "aVar49 = (anon_union_4_5_a39f51ca_for_opr)\n                             ((anon_union_4_5_a39f51ca_for_opr *)(unaff_s7.idx + 0x28))->mbcset;" (assignment_expression "aVar49 = (anon_union_4_5_a39f51ca_for_opr)\n                             ((anon_union_4_5_a39f51ca_for_opr *)(unaff_s7.idx + 0x28))->mbcset" identifier = (field_expression "(anon_union_4_5_a39f51ca_for_opr)\n                             ((anon_union_4_5_a39f51ca_for_opr *)(unaff_s7.idx + 0x28))->mbcset" (call_expression "(anon_union_4_5_a39f51ca_for_opr)\n                             ((anon_union_4_5_a39f51ca_for_opr *)(unaff_s7.idx + 0x28))" (parenthesized_expression "(anon_union_4_5_a39f51ca_for_opr)" ( identifier )) (argument_list "((anon_union_4_5_a39f51ca_for_opr *)(unaff_s7.idx + 0x28))" ( (cast_expression "(anon_union_4_5_a39f51ca_for_opr *)(unaff_s7.idx + 0x28)" ( (type_descriptor "anon_union_4_5_a39f51ca_for_opr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s7.idx + 0x28)" ( (binary_expression "unaff_s7.idx + 0x28" (field_expression "unaff_s7.idx" identifier . field_identifier) + number_literal) ))) ))) -> field_identifier)) ;) (expression_statement "aVar45 = aVar15;" (assignment_expression "aVar45 = aVar15" identifier = identifier) ;) (expression_statement "unaff_s7.sbcset =\n                         &re_acquire_state_context\n                                    (&err,aVar15.sbcset,(re_node_set *)aVar49.mbcset,(uint)prVar51)\n                          ->hash;" (assignment_expression "unaff_s7.sbcset =\n                         &re_acquire_state_context\n                                    (&err,aVar15.sbcset,(re_node_set *)aVar49.mbcset,(uint)prVar51)\n                          ->hash" (field_expression "unaff_s7.sbcset" identifier . field_identifier) = (pointer_expression "&re_acquire_state_context\n                                    (&err,aVar15.sbcset,(re_node_set *)aVar49.mbcset,(uint)prVar51)\n                          ->hash" & (field_expression "re_acquire_state_context\n                                    (&err,aVar15.sbcset,(re_node_set *)aVar49.mbcset,(uint)prVar51)\n                          ->hash" (call_expression "re_acquire_state_context\n                                    (&err,aVar15.sbcset,(re_node_set *)aVar49.mbcset,(uint)prVar51)" identifier (argument_list "(&err,aVar15.sbcset,(re_node_set *)aVar49.mbcset,(uint)prVar51)" ( (pointer_expression "&err" & identifier) , (field_expression "aVar15.sbcset" identifier . field_identifier) , (cast_expression "(re_node_set *)aVar49.mbcset" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "aVar49.mbcset" identifier . field_identifier)) , (cast_expression "(uint)prVar51" ( (type_descriptor "uint" type_identifier) ) identifier) ))) -> field_identifier))) ;) (expression_statement "prVar52 = prVar51;" (assignment_expression "prVar52 = prVar51" identifier = identifier) ;) (if_statement "if ((re_dfa_t *)unaff_s7.sbcset != (re_dfa_t *)0x0) break;" if (parenthesized_expression "((re_dfa_t *)unaff_s7.sbcset != (re_dfa_t *)0x0)" ( (binary_expression "(re_dfa_t *)unaff_s7.sbcset != (re_dfa_t *)0x0" (cast_expression "(re_dfa_t *)unaff_s7.sbcset" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "unaff_s7.sbcset" identifier . field_identifier)) != (cast_expression "(re_dfa_t *)0x0" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (if_statement "if (err == _REG_ESPACE) goto LAB_00055914;" if (parenthesized_expression "(err == _REG_ESPACE)" ( (binary_expression "err == _REG_ESPACE" identifier == identifier) )) (goto_statement "goto LAB_00055914;" goto statement_identifier ;)) }) (else_clause "else {\n                    unaff_s7 = (anon_union_4_5_a39f51ca_for_opr)\n                               ((re_dfa_t *)aVar15.idx)->init_state_word;\nLAB_00054d1c:\n                    prVar52 = (re_dfa_t *)PTR_s_nt0_000795b8;\n                    if ((re_dfa_t *)unaff_s7.sbcset != (re_dfa_t *)0x0) break;\n                  }" else (compound_statement "{\n                    unaff_s7 = (anon_union_4_5_a39f51ca_for_opr)\n                               ((re_dfa_t *)aVar15.idx)->init_state_word;\nLAB_00054d1c:\n                    prVar52 = (re_dfa_t *)PTR_s_nt0_000795b8;\n                    if ((re_dfa_t *)unaff_s7.sbcset != (re_dfa_t *)0x0) break;\n                  }" { (expression_statement "unaff_s7 = (anon_union_4_5_a39f51ca_for_opr)\n                               ((re_dfa_t *)aVar15.idx)->init_state_word;" (assignment_expression "unaff_s7 = (anon_union_4_5_a39f51ca_for_opr)\n                               ((re_dfa_t *)aVar15.idx)->init_state_word" identifier = (field_expression "(anon_union_4_5_a39f51ca_for_opr)\n                               ((re_dfa_t *)aVar15.idx)->init_state_word" (call_expression "(anon_union_4_5_a39f51ca_for_opr)\n                               ((re_dfa_t *)aVar15.idx)" (parenthesized_expression "(anon_union_4_5_a39f51ca_for_opr)" ( identifier )) (argument_list "((re_dfa_t *)aVar15.idx)" ( (cast_expression "(re_dfa_t *)aVar15.idx" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "aVar15.idx" identifier . field_identifier)) ))) -> field_identifier)) ;) (labeled_statement "LAB_00054d1c:\n                    prVar52 = (re_dfa_t *)PTR_s_nt0_000795b8;" statement_identifier : (expression_statement "prVar52 = (re_dfa_t *)PTR_s_nt0_000795b8;" (assignment_expression "prVar52 = (re_dfa_t *)PTR_s_nt0_000795b8" identifier = (cast_expression "(re_dfa_t *)PTR_s_nt0_000795b8" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;)) (if_statement "if ((re_dfa_t *)unaff_s7.sbcset != (re_dfa_t *)0x0) break;" if (parenthesized_expression "((re_dfa_t *)unaff_s7.sbcset != (re_dfa_t *)0x0)" ( (binary_expression "(re_dfa_t *)unaff_s7.sbcset != (re_dfa_t *)0x0" (cast_expression "(re_dfa_t *)unaff_s7.sbcset" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "unaff_s7.sbcset" identifier . field_identifier)) != (cast_expression "(re_dfa_t *)0x0" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) }))) (expression_statement "prVar52 = (re_dfa_t *)(PTR_s_nt0_000795b8 + 0x6eb0);" (assignment_expression "prVar52 = (re_dfa_t *)(PTR_s_nt0_000795b8 + 0x6eb0)" identifier = (cast_expression "(re_dfa_t *)(PTR_s_nt0_000795b8 + 0x6eb0)" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_nt0_000795b8 + 0x6eb0)" ( (binary_expression "PTR_s_nt0_000795b8 + 0x6eb0" identifier + number_literal) )))) ;) (expression_statement "aVar45.sbcset = (re_bitset_ptr_t)(PTR_s_nt0_000795b8 + 0x712c);" (assignment_expression "aVar45.sbcset = (re_bitset_ptr_t)(PTR_s_nt0_000795b8 + 0x712c)" (field_expression "aVar45.sbcset" identifier . field_identifier) = (call_expression "(re_bitset_ptr_t)(PTR_s_nt0_000795b8 + 0x712c)" (parenthesized_expression "(re_bitset_ptr_t)" ( identifier )) (argument_list "(PTR_s_nt0_000795b8 + 0x712c)" ( (binary_expression "PTR_s_nt0_000795b8 + 0x712c" identifier + number_literal) )))) ;) (expression_statement "match_first = (*(code *)PTR___assert_fail_000799f8)\n                                          (PTR_s_nt0_000795b8 + 0x71a0,aVar45.sbcset,0x435);" (assignment_expression "match_first = (*(code *)PTR___assert_fail_000799f8)\n                                          (PTR_s_nt0_000795b8 + 0x71a0,aVar45.sbcset,0x435)" identifier = (call_expression "(*(code *)PTR___assert_fail_000799f8)\n                                          (PTR_s_nt0_000795b8 + 0x71a0,aVar45.sbcset,0x435)" (parenthesized_expression "(*(code *)PTR___assert_fail_000799f8)" ( (pointer_expression "*(code *)PTR___assert_fail_000799f8" * (cast_expression "(code *)PTR___assert_fail_000799f8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_nt0_000795b8 + 0x71a0,aVar45.sbcset,0x435)" ( (binary_expression "PTR_s_nt0_000795b8 + 0x71a0" identifier + number_literal) , (field_expression "aVar45.sbcset" identifier . field_identifier) , number_literal )))) ;) (if_statement "if ((re_bitset_ptr_t)match_first == aVar41.sbcset) {\n                    if (match_first < length) {\n                      uVar8 = (uint)(byte)string[match_first];\n                    }\n                    else {\n                      uVar8 = 0;\n                    }\n                    if (puVar50 != (uchar *)0x0) {\n                      uVar8 = (uint)puVar50[uVar8];\n                    }\n                    if (*(char *)((int)local_148.sbcset + uVar8) == '\0') {\n                      local_150.idx = 1;\n                      aVar49 = (anon_union_4_5_a39f51ca_for_opr)eflags;\n                      prVar51 = prVar52;\n                      goto LAB_000557e4;\n                    }\n                  }" if (parenthesized_expression "((re_bitset_ptr_t)match_first == aVar41.sbcset)" ( (binary_expression "(re_bitset_ptr_t)match_first == aVar41.sbcset" (cast_expression "(re_bitset_ptr_t)match_first" ( (type_descriptor "re_bitset_ptr_t" type_identifier) ) identifier) == (field_expression "aVar41.sbcset" identifier . field_identifier)) )) (compound_statement "{\n                    if (match_first < length) {\n                      uVar8 = (uint)(byte)string[match_first];\n                    }\n                    else {\n                      uVar8 = 0;\n                    }\n                    if (puVar50 != (uchar *)0x0) {\n                      uVar8 = (uint)puVar50[uVar8];\n                    }\n                    if (*(char *)((int)local_148.sbcset + uVar8) == '\0') {\n                      local_150.idx = 1;\n                      aVar49 = (anon_union_4_5_a39f51ca_for_opr)eflags;\n                      prVar51 = prVar52;\n                      goto LAB_000557e4;\n                    }\n                  }" { (if_statement "if (match_first < length) {\n                      uVar8 = (uint)(byte)string[match_first];\n                    }\n                    else {\n                      uVar8 = 0;\n                    }" if (parenthesized_expression "(match_first < length)" ( (binary_expression "match_first < length" identifier < identifier) )) (compound_statement "{\n                      uVar8 = (uint)(byte)string[match_first];\n                    }" { (expression_statement "uVar8 = (uint)(byte)string[match_first];" (assignment_expression "uVar8 = (uint)(byte)string[match_first]" identifier = (cast_expression "(uint)(byte)string[match_first]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)string[match_first]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "string[match_first]" identifier [ identifier ])))) ;) }) (else_clause "else {\n                      uVar8 = 0;\n                    }" else (compound_statement "{\n                      uVar8 = 0;\n                    }" { (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) }))) (if_statement "if (puVar50 != (uchar *)0x0) {\n                      uVar8 = (uint)puVar50[uVar8];\n                    }" if (parenthesized_expression "(puVar50 != (uchar *)0x0)" ( (binary_expression "puVar50 != (uchar *)0x0" identifier != (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                      uVar8 = (uint)puVar50[uVar8];\n                    }" { (expression_statement "uVar8 = (uint)puVar50[uVar8];" (assignment_expression "uVar8 = (uint)puVar50[uVar8]" identifier = (cast_expression "(uint)puVar50[uVar8]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "puVar50[uVar8]" identifier [ identifier ]))) ;) })) (if_statement "if (*(char *)((int)local_148.sbcset + uVar8) == '\0') {\n                      local_150.idx = 1;\n                      aVar49 = (anon_union_4_5_a39f51ca_for_opr)eflags;\n                      prVar51 = prVar52;\n                      goto LAB_000557e4;\n                    }" if (parenthesized_expression "(*(char *)((int)local_148.sbcset + uVar8) == '\0')" ( (binary_expression "*(char *)((int)local_148.sbcset + uVar8) == '\0'" (pointer_expression "*(char *)((int)local_148.sbcset + uVar8)" * (cast_expression "(char *)((int)local_148.sbcset + uVar8)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_148.sbcset + uVar8)" ( (binary_expression "(int)local_148.sbcset + uVar8" (cast_expression "(int)local_148.sbcset" ( (type_descriptor "int" primitive_type) ) (field_expression "local_148.sbcset" identifier . field_identifier)) + identifier) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                      local_150.idx = 1;\n                      aVar49 = (anon_union_4_5_a39f51ca_for_opr)eflags;\n                      prVar51 = prVar52;\n                      goto LAB_000557e4;\n                    }" { (expression_statement "local_150.idx = 1;" (assignment_expression "local_150.idx = 1" (field_expression "local_150.idx" identifier . field_identifier) = number_literal) ;) (expression_statement "aVar49 = (anon_union_4_5_a39f51ca_for_opr)eflags;" (assignment_expression "aVar49 = (anon_union_4_5_a39f51ca_for_opr)eflags" identifier = (cast_expression "(anon_union_4_5_a39f51ca_for_opr)eflags" ( (type_descriptor "anon_union_4_5_a39f51ca_for_opr" type_identifier) ) identifier)) ;) (expression_statement "prVar51 = prVar52;" (assignment_expression "prVar51 = prVar52" identifier = identifier) ;) (goto_statement "goto LAB_000557e4;" goto statement_identifier ;) })) })) })) (expression_statement "prVar51 = prVar52;" (assignment_expression "prVar51 = prVar52" identifier = identifier) ;) (expression_statement "bVar36 = piVar38 != (int *)0x0;" (assignment_expression "bVar36 = piVar38 != (int *)0x0" identifier = (binary_expression "piVar38 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (if_statement "if ((mctx.state_log == (re_dfastate_t **)0x0) ||\n                   (((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + aVar56.idx))->mbcset =\n                         (re_charset_t *)unaff_s7, ((re_dfa_t *)aVar15.idx)->nbackref == 0)) {\nLAB_00054d50:\n                  if ((int)*(bin_tree_t **)(unaff_s7.idx + 0x34) << 4 < 0) {\n                    if (((*(byte *)(unaff_s7.idx + 0x34) & 1) == 0) ||\n                       (aVar45 = unaff_s7, aVar49 = aVar56,\n                       IVar17 = check_halt_state_context(&mctx,unaff_s7.idx,aVar56.idx), IVar17 != 0\n                       )) {\n                      local_c4 = aVar56;\n                      if (paVar54 == (anon_union_4_5_a39f51ca_for_opr *)0x0) goto LAB_00055dbc;\n                      prVar52 = (re_dfa_t *)0x1;\n                    }\n                    else {\n                      aVar56.idx = -1;\n                      prVar52 = (re_dfa_t *)0x0;\n                    }\n                  }\n                  else {\n                    aVar56.idx = -1;\n                    prVar52 = (re_dfa_t *)0x0;\n                  }\n                  pcVar9 = (code *)(PTR_DAT_000799a4 + -0x7144);\n                  pcVar10 = (code *)(PTR_DAT_000799a4 + -0x1980);\n                  pcVar11 = (code *)(PTR_DAT_000799a4 + -0x2f9c);\n                  local_c4 = aVar56;\n                  local_144 = piVar38;\n                  while( true ) {\n                    uVar63 = CONCAT44(mctx.input.valid_len,mctx.input.len);\n                    unaff_s5.sbcset = (re_bitset_ptr_t)(mctx.input.cur_idx + 1);\n                    aVar45.idx = mctx.input.cur_idx;\n                    if (mctx.input.stop <= mctx.input.cur_idx) break;\n                    if ((mctx.input.bufs_len <= unaff_s5.idx) &&\n                       (mctx.input.bufs_len < mctx.input.len)) goto LAB_00054e94;\n                    if (mctx.input.valid_len <= unaff_s5.idx) {\n                      while ((int)((ulonglong)uVar63 >> 0x20) < (int)uVar63) {\nLAB_00054e94:\n                        aVar45.sbcset =\n                             (re_bitset_ptr_t)\n                             ((int)&((re_string_t *)&(aVar45.mbcset)->mbchars)->raw_mbs + 2);\n                        err = (*pcVar9)(&mctx);\n                        if (err == _REG_NOERROR) break;\n                        aVar15 = aVar46;\n                        if (err == _REG_ESPACE) goto LAB_00055914;\n                        prVar51 = (re_dfa_t *)(PTR_s_nt0_000795b8 + 0x6eb0);\n                        aVar49.idx = 0x46c;\n                        aVar45.sbcset = (re_bitset_ptr_t)(PTR_s_nt0_000795b8 + 0x712c);\n                        uVar63 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0);\n                        prVar52 = prVar59;\n                      }\n                    }\n                    prVar3 = mctx.dfa;\n                    if ((int)*(bin_tree_t **)(unaff_s7.idx + 0x34) << 5 < 0) {\n                      paVar18 = (anon_union_4_5_a39f51ca_for_opr *)prVar3;\n                      if (0 < (int)(unaff_s7.mbcset)->range_ends) {\n                        pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6fdc);\n                        pcVar13 = (code *)(PTR_DAT_000799a4 + -0x6ef0);\n                        stop = 0;\n                        do {\n                          last_start = ((anon_union_4_5_a39f51ca_for_opr *)\n                                       ((unaff_s7.mbcset)->char_classes + stop))->idx;\n                          prVar53 = prVar3->nodes;\n                          uVar8 = *(uint *)&prVar53[last_start].field_0x4;\n                          if ((uVar8 & 0x800) != 0) {\n                            if ((uVar8 & 0xffc000) != 0) {\n                              aVar45.idx = mctx.input.cur_idx;\n                              uVar60 = (*pcVar13)(&mctx,mctx.input.cur_idx,mctx.eflags);\n                              uVar8 = (uint)(*(int *)&prVar53[last_start].field_0x4 << 8) >> 0x16;\n                              if ((uVar8 & 4) == 0) {\n                                uVar26 = uVar60 & 1;\n                                if ((uVar8 & 8) != 0) goto joined_r0x00054f40;\n                              }\n                              else {\n                                uVar26 = uVar8 & 8;\n                                if ((uVar60 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                                if (uVar26 != 0) goto LAB_000550a4;\n                              }\n                              if ((((uVar8 & 0x20) != 0) && ((uVar60 & 2) == 0)) ||\n                                 (((uVar8 & 0x80) != 0 &&\n                                  (prVar51 = (re_dfa_t *)mctx.input.cur_idx, (uVar60 & 8) == 0))))\n                              goto LAB_000550a4;\n                            }\n                            aVar49.sbcset = (re_bitset_ptr_t)&mctx;\n                            aVar45.idx = last_start;\n                            prVar51 = (re_dfa_t *)mctx.input.cur_idx;\n                            iVar61 = (*pcVar11)(prVar3);\n                            if (iVar61 != 0) {\n                              aVar46.sbcset = (re_bitset_ptr_t)(iVar61 + mctx.input.cur_idx);\n                              if (iVar61 <= mctx.max_mb_elem_len) {\n                                iVar61 = mctx.max_mb_elem_len;\n                              }\n                              aVar45.sbcset = aVar46.sbcset;\n                              mctx.max_mb_elem_len = iVar61;\n                              err_1 = (*pcVar12)(&mctx);\n                              rVar21 = err_1;\n                              if (err_1 != _REG_NOERROR) goto LAB_00055e44;\n                              aVar49.sbcset =\n                                   (re_bitset_ptr_t)(prVar3->eclosures + prVar3->nexts[last_start]);\n                              unaff_s4 = (re_dfa_t *)(aVar46.idx * 4);\n                              last_start = (Idx)(mctx.state_log + aVar46.idx);\n                              if (*(bitset_word_t *)last_start == 0) {\n                                dest_nodes.alloc = *aVar49.sbcset;\n                                dest_nodes.nelem =\n                                     ((re_node_set *)&(aVar49.mbcset)->range_starts)->alloc;\n                                dest_nodes.elems = (aVar49.mbcset)->range_ends;\n                                prVar51 = (re_dfa_t *)\n                                          (*pcVar13)(&mctx,(undefined1 *)(aVar46.idx + -1),\n                                                     mctx.eflags);\n                                aVar49.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                                aVar45 = (anon_union_4_5_a39f51ca_for_opr)prVar3;\n                                prVar35 = re_acquire_state_context\n                                                    (&err_1,prVar3,(re_node_set *)aVar49.mbcset,\n                                                     (uint)prVar51);\n                                ((re_string_t *)&((re_charset_t *)last_start)->mbchars)->raw_mbs =\n                                     (uchar *)prVar35;\n                              }\n                              else {\n                                aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                                         ((anon_union_4_5_a39f51ca_for_opr *)\n                                         (*(bitset_word_t *)last_start + 0x28))->mbcset;\n                                err_1 = re_node_set_init_union\n                                                  (&dest_nodes,(re_node_set *)aVar45.mbcset,\n                                                   (re_node_set *)aVar49.mbcset);\n                                rVar21 = err_1;\n                                if (err_1 != _REG_NOERROR) goto LAB_00055e44;\n                                prVar51 = (re_dfa_t *)\n                                          (*pcVar13)(&mctx,(undefined1 *)(aVar46.idx + -1),\n                                                     mctx.eflags);\n                                pprVar14 = mctx.state_log + aVar46.idx;\n                                aVar49.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                                aVar45 = (anon_union_4_5_a39f51ca_for_opr)prVar3;\n                                prVar35 = re_acquire_state_context\n                                                    (&err_1,prVar3,(re_node_set *)aVar49.mbcset,\n                                                     (uint)prVar51);\n                                *pprVar14 = prVar35;\n                                (*(code *)PTR_free_00079c24)(dest_nodes.elems);\n                              }\n                              unaff_s4 = (re_dfa_t *)(mctx.state_log + aVar46.idx);\n                              if ((unaff_s4->nodes == (re_token_t *)0x0) &&\n                                 (rVar21 = err_1, err_1 != _REG_NOERROR)) goto LAB_00055e44;\n                            }\n                          }\nLAB_000550a4:\n                          stop = (int)&((re_string_t *)&((re_charset_t *)stop)->mbchars)->raw_mbs +\n                                 1;\n                        } while (stop < (int)(unaff_s7.mbcset)->range_ends);\n                      }\n                      err = _REG_NOERROR;\n                    }\n                    uVar8 = (uint)mctx.input.mbs[mctx.input.cur_idx];\n                    mctx.input.cur_idx = mctx.input.cur_idx + 1;\n                    do {\n                      if (*(re_dfastate_t **)(unaff_s7.idx + 0x2c) != (re_dfastate_t *)0x0) {\n                        aVar49 = (anon_union_4_5_a39f51ca_for_opr)\n                                 ((anon_union_4_5_a39f51ca_for_opr *)\n                                 (&(*(re_dfastate_t **)(unaff_s7.idx + 0x2c))->hash + uVar8))->\n                                 mbcset;\nLAB_000553a0:\n                        aVar15 = aVar49;\n                        if (mctx.state_log != (re_dfastate_t **)0x0) goto LAB_000553ac;\n                        goto LAB_000553cc;\n                      }\n                      paVar18 = *(anon_union_4_5_a39f51ca_for_opr **)(unaff_s7.idx + 0x30);\n                      if (paVar18 != (anon_union_4_5_a39f51ca_for_opr *)0x0) {\n                        aVar45.sbcset = (re_bitset_ptr_t)(mctx.input.cur_idx + -1);\n                        uVar60 = re_string_context_at(&mctx.input,aVar45.idx,mctx.eflags);\n                        if ((uVar60 & 1) == 0) {\n                          aVar49 = (anon_union_4_5_a39f51ca_for_opr)paVar18[uVar8].mbcset;\n                        }\n                        else {\n                          paVar18 = paVar18 + uVar8 + 0x100;\n                          aVar49 = (anon_union_4_5_a39f51ca_for_opr)paVar18->mbcset;\n                        }\n                        goto LAB_000553a0;\n                      }\n                      aVar45 = unaff_s7;\n                      aVar49 = (anon_union_4_5_a39f51ca_for_opr)mctx.eflags;\n                      iVar61 = (*pcVar10)(mctx.dfa);\n                    } while (iVar61 != 0);\n                    err = _REG_ESPACE;\n                    rVar21 = err;\nLAB_00055e44:\n                    err = rVar21;\n                    aVar46.sbcset = (re_bitset_ptr_t)0x0;\n                    if (mctx.state_log == (re_dfastate_t **)0x0) {\n                      aVar15.sbcset = aVar46.sbcset;\n                      if (err != _REG_NOERROR) goto LAB_00055914;\n                      break;\n                    }\n                    aVar49.sbcset = (re_bitset_ptr_t)0x0;\nLAB_000553ac:\n                    aVar45.sbcset = (re_bitset_ptr_t)&mctx;\n                    aVar15.sbcset =\n                         &merge_state_with_log\n                                    (&err,(re_match_context_t *)aVar45.mbcset,aVar49.sbcset)->hash;\nLAB_000553cc:\n                    aVar46 = aVar15;\n                    if ((re_dfa_t *)aVar15.sbcset == (re_dfa_t *)0x0) {\n                      if (err != _REG_NOERROR) goto LAB_00055914;\n                      if ((mctx.state_log == (re_dfastate_t **)0x0) ||\n                         ((prVar52 != (re_dfa_t *)0x0 &&\n                          (paVar54 == (anon_union_4_5_a39f51ca_for_opr *)0x0)))) break;\n                      stop = (Idx)&mctx;\n                      last_start = (Idx)&err;\n                      paVar18 = (anon_union_4_5_a39f51ca_for_opr *)(PTR_DAT_000799a4 + 0x3684);\n                      do {\n                        pprVar14 = mctx.state_log + mctx.input.cur_idx;\n                        IVar17 = mctx.input.cur_idx;\n                        do {\n                          IVar17 = IVar17 + 1;\n                          aVar45.idx = mctx.state_log_top;\n                          aVar46 = aVar15;\n                          if (mctx.state_log_top < IVar17) goto LAB_00055da8;\n                          mctx.input.cur_idx = mctx.input.cur_idx + 1;\n                          pprVar14 = pprVar14 + 1;\n                        } while (*pprVar14 == (re_dfastate_t *)0x0);\n                        aVar49.sbcset = (re_bitset_ptr_t)0x0;\n                        aVar45.sbcset = (re_bitset_ptr_t)stop;\n                        aVar46.sbcset = (re_bitset_ptr_t)(*(code *)paVar18)(last_start);\n                        if (err != _REG_NOERROR) {\n                          if ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0) goto LAB_00055da8;\n                          break;\n                        }\n                        aVar45.idx = mctx.state_log_top;\n                      } while ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0);\n                    }\n                    aVar16.ctx_type = unaff_s7.ctx_type ^ aVar46.ctx_type;\n                    aVar56 = unaff_s7;\n                    aVar15 = local_138;\n                    if ((bVar36) &&\n                       (aVar56.ctx_type = aVar16.ctx_type, aVar15.sbcset = unaff_s5.sbcset,\n                       (re_dfa_t *)aVar16.sbcset != (re_dfa_t *)0x0)) {\n                      bVar36 = false;\n                      aVar15 = local_138;\n                    }\n                    local_138 = aVar15;\n                    unaff_s7 = aVar46;\n                    if (((*(byte *)(aVar46.idx + 0x34) & 8) != 0) &&\n                       (((*(byte *)(aVar46.idx + 0x34) & 1) == 0 ||\n                        (aVar45 = aVar46, aVar49.idx = mctx.input.cur_idx,\n                        IVar17 = check_halt_state_context(&mctx,aVar46.idx,mctx.input.cur_idx),\n                        IVar17 != 0)))) {\n                      unaff_s7 = aVar56;\n                      local_c4.idx = mctx.input.cur_idx;\n                      if (paVar54 == (anon_union_4_5_a39f51ca_for_opr *)0x0) goto LAB_00055dbc;\n                      prVar52 = (re_dfa_t *)0x1;\n                      local_144 = (int *)0x0;\n                      unaff_s7 = aVar46;\n                    }\n                  }\nLAB_00055da8:\n                  if (local_144 != (int *)0x0) {\n                    *local_144 = *local_144 + (int)local_138.sbcset;\n                  }\n                }\n                else {\n                  aVar46.sbcset = (re_bitset_ptr_t)&(unaff_s7.mbcset)->range_starts;\n                  aVar49.sbcset = (re_bitset_ptr_t)0x0;\n                  aVar45 = aVar46;\n                  err = check_subexp_matching_top(&mctx,(re_node_set *)aVar46.mbcset,0);\n                  local_c4.idx = err;\n                  if ((re_dfa_t *)err == (re_dfa_t *)0x0) {\n                    if ((*(byte *)(unaff_s7.idx + 0x34) & 2) == 0) {\n                      aVar45 = aVar46;\n                      bVar36 = false;\n                    }\n                    else {\n                      aVar45 = aVar46;\n                      err = transit_state_bkref(&mctx,(re_node_set *)aVar46.mbcset);\n                      local_c4.idx = err;\n                      if ((re_dfa_t *)err != (re_dfa_t *)0x0) goto LAB_00055dbc;\n                      bVar36 = false;\n                    }\n                    goto LAB_00054d50;\n                  }\n                }" if (parenthesized_expression "((mctx.state_log == (re_dfastate_t **)0x0) ||\n                   (((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + aVar56.idx))->mbcset =\n                         (re_charset_t *)unaff_s7, ((re_dfa_t *)aVar15.idx)->nbackref == 0))" ( (binary_expression "(mctx.state_log == (re_dfastate_t **)0x0) ||\n                   (((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + aVar56.idx))->mbcset =\n                         (re_charset_t *)unaff_s7, ((re_dfa_t *)aVar15.idx)->nbackref == 0)" (parenthesized_expression "(mctx.state_log == (re_dfastate_t **)0x0)" ( (binary_expression "mctx.state_log == (re_dfastate_t **)0x0" (field_expression "mctx.state_log" 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 "(((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + aVar56.idx))->mbcset =\n                         (re_charset_t *)unaff_s7, ((re_dfa_t *)aVar15.idx)->nbackref == 0)" ( (comma_expression "((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + aVar56.idx))->mbcset =\n                         (re_charset_t *)unaff_s7, ((re_dfa_t *)aVar15.idx)->nbackref == 0" (assignment_expression "((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + aVar56.idx))->mbcset =\n                         (re_charset_t *)unaff_s7" (field_expression "((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + aVar56.idx))->mbcset" (parenthesized_expression "((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + aVar56.idx))" ( (cast_expression "(anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + aVar56.idx)" ( (type_descriptor "anon_union_4_5_a39f51ca_for_opr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(mctx.state_log + aVar56.idx)" ( (binary_expression "mctx.state_log + aVar56.idx" (field_expression "mctx.state_log" identifier . field_identifier) + (field_expression "aVar56.idx" identifier . field_identifier)) ))) )) -> field_identifier) = (cast_expression "(re_charset_t *)unaff_s7" ( (type_descriptor "re_charset_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , (binary_expression "((re_dfa_t *)aVar15.idx)->nbackref == 0" (field_expression "((re_dfa_t *)aVar15.idx)->nbackref" (parenthesized_expression "((re_dfa_t *)aVar15.idx)" ( (cast_expression "(re_dfa_t *)aVar15.idx" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "aVar15.idx" identifier . field_identifier)) )) -> field_identifier) == number_literal)) ))) )) (compound_statement "{\nLAB_00054d50:\n                  if ((int)*(bin_tree_t **)(unaff_s7.idx + 0x34) << 4 < 0) {\n                    if (((*(byte *)(unaff_s7.idx + 0x34) & 1) == 0) ||\n                       (aVar45 = unaff_s7, aVar49 = aVar56,\n                       IVar17 = check_halt_state_context(&mctx,unaff_s7.idx,aVar56.idx), IVar17 != 0\n                       )) {\n                      local_c4 = aVar56;\n                      if (paVar54 == (anon_union_4_5_a39f51ca_for_opr *)0x0) goto LAB_00055dbc;\n                      prVar52 = (re_dfa_t *)0x1;\n                    }\n                    else {\n                      aVar56.idx = -1;\n                      prVar52 = (re_dfa_t *)0x0;\n                    }\n                  }\n                  else {\n                    aVar56.idx = -1;\n                    prVar52 = (re_dfa_t *)0x0;\n                  }\n                  pcVar9 = (code *)(PTR_DAT_000799a4 + -0x7144);\n                  pcVar10 = (code *)(PTR_DAT_000799a4 + -0x1980);\n                  pcVar11 = (code *)(PTR_DAT_000799a4 + -0x2f9c);\n                  local_c4 = aVar56;\n                  local_144 = piVar38;\n                  while( true ) {\n                    uVar63 = CONCAT44(mctx.input.valid_len,mctx.input.len);\n                    unaff_s5.sbcset = (re_bitset_ptr_t)(mctx.input.cur_idx + 1);\n                    aVar45.idx = mctx.input.cur_idx;\n                    if (mctx.input.stop <= mctx.input.cur_idx) break;\n                    if ((mctx.input.bufs_len <= unaff_s5.idx) &&\n                       (mctx.input.bufs_len < mctx.input.len)) goto LAB_00054e94;\n                    if (mctx.input.valid_len <= unaff_s5.idx) {\n                      while ((int)((ulonglong)uVar63 >> 0x20) < (int)uVar63) {\nLAB_00054e94:\n                        aVar45.sbcset =\n                             (re_bitset_ptr_t)\n                             ((int)&((re_string_t *)&(aVar45.mbcset)->mbchars)->raw_mbs + 2);\n                        err = (*pcVar9)(&mctx);\n                        if (err == _REG_NOERROR) break;\n                        aVar15 = aVar46;\n                        if (err == _REG_ESPACE) goto LAB_00055914;\n                        prVar51 = (re_dfa_t *)(PTR_s_nt0_000795b8 + 0x6eb0);\n                        aVar49.idx = 0x46c;\n                        aVar45.sbcset = (re_bitset_ptr_t)(PTR_s_nt0_000795b8 + 0x712c);\n                        uVar63 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0);\n                        prVar52 = prVar59;\n                      }\n                    }\n                    prVar3 = mctx.dfa;\n                    if ((int)*(bin_tree_t **)(unaff_s7.idx + 0x34) << 5 < 0) {\n                      paVar18 = (anon_union_4_5_a39f51ca_for_opr *)prVar3;\n                      if (0 < (int)(unaff_s7.mbcset)->range_ends) {\n                        pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6fdc);\n                        pcVar13 = (code *)(PTR_DAT_000799a4 + -0x6ef0);\n                        stop = 0;\n                        do {\n                          last_start = ((anon_union_4_5_a39f51ca_for_opr *)\n                                       ((unaff_s7.mbcset)->char_classes + stop))->idx;\n                          prVar53 = prVar3->nodes;\n                          uVar8 = *(uint *)&prVar53[last_start].field_0x4;\n                          if ((uVar8 & 0x800) != 0) {\n                            if ((uVar8 & 0xffc000) != 0) {\n                              aVar45.idx = mctx.input.cur_idx;\n                              uVar60 = (*pcVar13)(&mctx,mctx.input.cur_idx,mctx.eflags);\n                              uVar8 = (uint)(*(int *)&prVar53[last_start].field_0x4 << 8) >> 0x16;\n                              if ((uVar8 & 4) == 0) {\n                                uVar26 = uVar60 & 1;\n                                if ((uVar8 & 8) != 0) goto joined_r0x00054f40;\n                              }\n                              else {\n                                uVar26 = uVar8 & 8;\n                                if ((uVar60 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                                if (uVar26 != 0) goto LAB_000550a4;\n                              }\n                              if ((((uVar8 & 0x20) != 0) && ((uVar60 & 2) == 0)) ||\n                                 (((uVar8 & 0x80) != 0 &&\n                                  (prVar51 = (re_dfa_t *)mctx.input.cur_idx, (uVar60 & 8) == 0))))\n                              goto LAB_000550a4;\n                            }\n                            aVar49.sbcset = (re_bitset_ptr_t)&mctx;\n                            aVar45.idx = last_start;\n                            prVar51 = (re_dfa_t *)mctx.input.cur_idx;\n                            iVar61 = (*pcVar11)(prVar3);\n                            if (iVar61 != 0) {\n                              aVar46.sbcset = (re_bitset_ptr_t)(iVar61 + mctx.input.cur_idx);\n                              if (iVar61 <= mctx.max_mb_elem_len) {\n                                iVar61 = mctx.max_mb_elem_len;\n                              }\n                              aVar45.sbcset = aVar46.sbcset;\n                              mctx.max_mb_elem_len = iVar61;\n                              err_1 = (*pcVar12)(&mctx);\n                              rVar21 = err_1;\n                              if (err_1 != _REG_NOERROR) goto LAB_00055e44;\n                              aVar49.sbcset =\n                                   (re_bitset_ptr_t)(prVar3->eclosures + prVar3->nexts[last_start]);\n                              unaff_s4 = (re_dfa_t *)(aVar46.idx * 4);\n                              last_start = (Idx)(mctx.state_log + aVar46.idx);\n                              if (*(bitset_word_t *)last_start == 0) {\n                                dest_nodes.alloc = *aVar49.sbcset;\n                                dest_nodes.nelem =\n                                     ((re_node_set *)&(aVar49.mbcset)->range_starts)->alloc;\n                                dest_nodes.elems = (aVar49.mbcset)->range_ends;\n                                prVar51 = (re_dfa_t *)\n                                          (*pcVar13)(&mctx,(undefined1 *)(aVar46.idx + -1),\n                                                     mctx.eflags);\n                                aVar49.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                                aVar45 = (anon_union_4_5_a39f51ca_for_opr)prVar3;\n                                prVar35 = re_acquire_state_context\n                                                    (&err_1,prVar3,(re_node_set *)aVar49.mbcset,\n                                                     (uint)prVar51);\n                                ((re_string_t *)&((re_charset_t *)last_start)->mbchars)->raw_mbs =\n                                     (uchar *)prVar35;\n                              }\n                              else {\n                                aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                                         ((anon_union_4_5_a39f51ca_for_opr *)\n                                         (*(bitset_word_t *)last_start + 0x28))->mbcset;\n                                err_1 = re_node_set_init_union\n                                                  (&dest_nodes,(re_node_set *)aVar45.mbcset,\n                                                   (re_node_set *)aVar49.mbcset);\n                                rVar21 = err_1;\n                                if (err_1 != _REG_NOERROR) goto LAB_00055e44;\n                                prVar51 = (re_dfa_t *)\n                                          (*pcVar13)(&mctx,(undefined1 *)(aVar46.idx + -1),\n                                                     mctx.eflags);\n                                pprVar14 = mctx.state_log + aVar46.idx;\n                                aVar49.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                                aVar45 = (anon_union_4_5_a39f51ca_for_opr)prVar3;\n                                prVar35 = re_acquire_state_context\n                                                    (&err_1,prVar3,(re_node_set *)aVar49.mbcset,\n                                                     (uint)prVar51);\n                                *pprVar14 = prVar35;\n                                (*(code *)PTR_free_00079c24)(dest_nodes.elems);\n                              }\n                              unaff_s4 = (re_dfa_t *)(mctx.state_log + aVar46.idx);\n                              if ((unaff_s4->nodes == (re_token_t *)0x0) &&\n                                 (rVar21 = err_1, err_1 != _REG_NOERROR)) goto LAB_00055e44;\n                            }\n                          }\nLAB_000550a4:\n                          stop = (int)&((re_string_t *)&((re_charset_t *)stop)->mbchars)->raw_mbs +\n                                 1;\n                        } while (stop < (int)(unaff_s7.mbcset)->range_ends);\n                      }\n                      err = _REG_NOERROR;\n                    }\n                    uVar8 = (uint)mctx.input.mbs[mctx.input.cur_idx];\n                    mctx.input.cur_idx = mctx.input.cur_idx + 1;\n                    do {\n                      if (*(re_dfastate_t **)(unaff_s7.idx + 0x2c) != (re_dfastate_t *)0x0) {\n                        aVar49 = (anon_union_4_5_a39f51ca_for_opr)\n                                 ((anon_union_4_5_a39f51ca_for_opr *)\n                                 (&(*(re_dfastate_t **)(unaff_s7.idx + 0x2c))->hash + uVar8))->\n                                 mbcset;\nLAB_000553a0:\n                        aVar15 = aVar49;\n                        if (mctx.state_log != (re_dfastate_t **)0x0) goto LAB_000553ac;\n                        goto LAB_000553cc;\n                      }\n                      paVar18 = *(anon_union_4_5_a39f51ca_for_opr **)(unaff_s7.idx + 0x30);\n                      if (paVar18 != (anon_union_4_5_a39f51ca_for_opr *)0x0) {\n                        aVar45.sbcset = (re_bitset_ptr_t)(mctx.input.cur_idx + -1);\n                        uVar60 = re_string_context_at(&mctx.input,aVar45.idx,mctx.eflags);\n                        if ((uVar60 & 1) == 0) {\n                          aVar49 = (anon_union_4_5_a39f51ca_for_opr)paVar18[uVar8].mbcset;\n                        }\n                        else {\n                          paVar18 = paVar18 + uVar8 + 0x100;\n                          aVar49 = (anon_union_4_5_a39f51ca_for_opr)paVar18->mbcset;\n                        }\n                        goto LAB_000553a0;\n                      }\n                      aVar45 = unaff_s7;\n                      aVar49 = (anon_union_4_5_a39f51ca_for_opr)mctx.eflags;\n                      iVar61 = (*pcVar10)(mctx.dfa);\n                    } while (iVar61 != 0);\n                    err = _REG_ESPACE;\n                    rVar21 = err;\nLAB_00055e44:\n                    err = rVar21;\n                    aVar46.sbcset = (re_bitset_ptr_t)0x0;\n                    if (mctx.state_log == (re_dfastate_t **)0x0) {\n                      aVar15.sbcset = aVar46.sbcset;\n                      if (err != _REG_NOERROR) goto LAB_00055914;\n                      break;\n                    }\n                    aVar49.sbcset = (re_bitset_ptr_t)0x0;\nLAB_000553ac:\n                    aVar45.sbcset = (re_bitset_ptr_t)&mctx;\n                    aVar15.sbcset =\n                         &merge_state_with_log\n                                    (&err,(re_match_context_t *)aVar45.mbcset,aVar49.sbcset)->hash;\nLAB_000553cc:\n                    aVar46 = aVar15;\n                    if ((re_dfa_t *)aVar15.sbcset == (re_dfa_t *)0x0) {\n                      if (err != _REG_NOERROR) goto LAB_00055914;\n                      if ((mctx.state_log == (re_dfastate_t **)0x0) ||\n                         ((prVar52 != (re_dfa_t *)0x0 &&\n                          (paVar54 == (anon_union_4_5_a39f51ca_for_opr *)0x0)))) break;\n                      stop = (Idx)&mctx;\n                      last_start = (Idx)&err;\n                      paVar18 = (anon_union_4_5_a39f51ca_for_opr *)(PTR_DAT_000799a4 + 0x3684);\n                      do {\n                        pprVar14 = mctx.state_log + mctx.input.cur_idx;\n                        IVar17 = mctx.input.cur_idx;\n                        do {\n                          IVar17 = IVar17 + 1;\n                          aVar45.idx = mctx.state_log_top;\n                          aVar46 = aVar15;\n                          if (mctx.state_log_top < IVar17) goto LAB_00055da8;\n                          mctx.input.cur_idx = mctx.input.cur_idx + 1;\n                          pprVar14 = pprVar14 + 1;\n                        } while (*pprVar14 == (re_dfastate_t *)0x0);\n                        aVar49.sbcset = (re_bitset_ptr_t)0x0;\n                        aVar45.sbcset = (re_bitset_ptr_t)stop;\n                        aVar46.sbcset = (re_bitset_ptr_t)(*(code *)paVar18)(last_start);\n                        if (err != _REG_NOERROR) {\n                          if ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0) goto LAB_00055da8;\n                          break;\n                        }\n                        aVar45.idx = mctx.state_log_top;\n                      } while ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0);\n                    }\n                    aVar16.ctx_type = unaff_s7.ctx_type ^ aVar46.ctx_type;\n                    aVar56 = unaff_s7;\n                    aVar15 = local_138;\n                    if ((bVar36) &&\n                       (aVar56.ctx_type = aVar16.ctx_type, aVar15.sbcset = unaff_s5.sbcset,\n                       (re_dfa_t *)aVar16.sbcset != (re_dfa_t *)0x0)) {\n                      bVar36 = false;\n                      aVar15 = local_138;\n                    }\n                    local_138 = aVar15;\n                    unaff_s7 = aVar46;\n                    if (((*(byte *)(aVar46.idx + 0x34) & 8) != 0) &&\n                       (((*(byte *)(aVar46.idx + 0x34) & 1) == 0 ||\n                        (aVar45 = aVar46, aVar49.idx = mctx.input.cur_idx,\n                        IVar17 = check_halt_state_context(&mctx,aVar46.idx,mctx.input.cur_idx),\n                        IVar17 != 0)))) {\n                      unaff_s7 = aVar56;\n                      local_c4.idx = mctx.input.cur_idx;\n                      if (paVar54 == (anon_union_4_5_a39f51ca_for_opr *)0x0) goto LAB_00055dbc;\n                      prVar52 = (re_dfa_t *)0x1;\n                      local_144 = (int *)0x0;\n                      unaff_s7 = aVar46;\n                    }\n                  }\nLAB_00055da8:\n                  if (local_144 != (int *)0x0) {\n                    *local_144 = *local_144 + (int)local_138.sbcset;\n                  }\n                }" { (labeled_statement "LAB_00054d50:\n                  if ((int)*(bin_tree_t **)(unaff_s7.idx + 0x34) << 4 < 0) {\n                    if (((*(byte *)(unaff_s7.idx + 0x34) & 1) == 0) ||\n                       (aVar45 = unaff_s7, aVar49 = aVar56,\n                       IVar17 = check_halt_state_context(&mctx,unaff_s7.idx,aVar56.idx), IVar17 != 0\n                       )) {\n                      local_c4 = aVar56;\n                      if (paVar54 == (anon_union_4_5_a39f51ca_for_opr *)0x0) goto LAB_00055dbc;\n                      prVar52 = (re_dfa_t *)0x1;\n                    }\n                    else {\n                      aVar56.idx = -1;\n                      prVar52 = (re_dfa_t *)0x0;\n                    }\n                  }\n                  else {\n                    aVar56.idx = -1;\n                    prVar52 = (re_dfa_t *)0x0;\n                  }" statement_identifier : (if_statement "if ((int)*(bin_tree_t **)(unaff_s7.idx + 0x34) << 4 < 0) {\n                    if (((*(byte *)(unaff_s7.idx + 0x34) & 1) == 0) ||\n                       (aVar45 = unaff_s7, aVar49 = aVar56,\n                       IVar17 = check_halt_state_context(&mctx,unaff_s7.idx,aVar56.idx), IVar17 != 0\n                       )) {\n                      local_c4 = aVar56;\n                      if (paVar54 == (anon_union_4_5_a39f51ca_for_opr *)0x0) goto LAB_00055dbc;\n                      prVar52 = (re_dfa_t *)0x1;\n                    }\n                    else {\n                      aVar56.idx = -1;\n                      prVar52 = (re_dfa_t *)0x0;\n                    }\n                  }\n                  else {\n                    aVar56.idx = -1;\n                    prVar52 = (re_dfa_t *)0x0;\n                  }" if (parenthesized_expression "((int)*(bin_tree_t **)(unaff_s7.idx + 0x34) << 4 < 0)" ( (binary_expression "(int)*(bin_tree_t **)(unaff_s7.idx + 0x34) << 4 < 0" (binary_expression "(int)*(bin_tree_t **)(unaff_s7.idx + 0x34) << 4" (cast_expression "(int)*(bin_tree_t **)(unaff_s7.idx + 0x34)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(bin_tree_t **)(unaff_s7.idx + 0x34)" * (cast_expression "(bin_tree_t **)(unaff_s7.idx + 0x34)" ( (type_descriptor "bin_tree_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_s7.idx + 0x34)" ( (binary_expression "unaff_s7.idx + 0x34" (field_expression "unaff_s7.idx" identifier . field_identifier) + number_literal) ))))) << number_literal) < number_literal) )) (compound_statement "{\n                    if (((*(byte *)(unaff_s7.idx + 0x34) & 1) == 0) ||\n                       (aVar45 = unaff_s7, aVar49 = aVar56,\n                       IVar17 = check_halt_state_context(&mctx,unaff_s7.idx,aVar56.idx), IVar17 != 0\n                       )) {\n                      local_c4 = aVar56;\n                      if (paVar54 == (anon_union_4_5_a39f51ca_for_opr *)0x0) goto LAB_00055dbc;\n                      prVar52 = (re_dfa_t *)0x1;\n                    }\n                    else {\n                      aVar56.idx = -1;\n                      prVar52 = (re_dfa_t *)0x0;\n                    }\n                  }" { (if_statement "if (((*(byte *)(unaff_s7.idx + 0x34) & 1) == 0) ||\n                       (aVar45 = unaff_s7, aVar49 = aVar56,\n                       IVar17 = check_halt_state_context(&mctx,unaff_s7.idx,aVar56.idx), IVar17 != 0\n                       )) {\n                      local_c4 = aVar56;\n                      if (paVar54 == (anon_union_4_5_a39f51ca_for_opr *)0x0) goto LAB_00055dbc;\n                      prVar52 = (re_dfa_t *)0x1;\n                    }\n                    else {\n                      aVar56.idx = -1;\n                      prVar52 = (re_dfa_t *)0x0;\n                    }" if (parenthesized_expression "(((*(byte *)(unaff_s7.idx + 0x34) & 1) == 0) ||\n                       (aVar45 = unaff_s7, aVar49 = aVar56,\n                       IVar17 = check_halt_state_context(&mctx,unaff_s7.idx,aVar56.idx), IVar17 != 0\n                       ))" ( (binary_expression "((*(byte *)(unaff_s7.idx + 0x34) & 1) == 0) ||\n                       (aVar45 = unaff_s7, aVar49 = aVar56,\n                       IVar17 = check_halt_state_context(&mctx,unaff_s7.idx,aVar56.idx), IVar17 != 0\n                       )" (parenthesized_expression "((*(byte *)(unaff_s7.idx + 0x34) & 1) == 0)" ( (binary_expression "(*(byte *)(unaff_s7.idx + 0x34) & 1) == 0" (parenthesized_expression "(*(byte *)(unaff_s7.idx + 0x34) & 1)" ( (binary_expression "*(byte *)(unaff_s7.idx + 0x34) & 1" (pointer_expression "*(byte *)(unaff_s7.idx + 0x34)" * (cast_expression "(byte *)(unaff_s7.idx + 0x34)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s7.idx + 0x34)" ( (binary_expression "unaff_s7.idx + 0x34" (field_expression "unaff_s7.idx" identifier . field_identifier) + number_literal) )))) & number_literal) )) == number_literal) )) || (parenthesized_expression "(aVar45 = unaff_s7, aVar49 = aVar56,\n                       IVar17 = check_halt_state_context(&mctx,unaff_s7.idx,aVar56.idx), IVar17 != 0\n                       )" ( (comma_expression "aVar45 = unaff_s7, aVar49 = aVar56,\n                       IVar17 = check_halt_state_context(&mctx,unaff_s7.idx,aVar56.idx), IVar17 != 0" (assignment_expression "aVar45 = unaff_s7" identifier = identifier) , (comma_expression "aVar49 = aVar56,\n                       IVar17 = check_halt_state_context(&mctx,unaff_s7.idx,aVar56.idx), IVar17 != 0" (assignment_expression "aVar49 = aVar56" identifier = identifier) , (comma_expression "IVar17 = check_halt_state_context(&mctx,unaff_s7.idx,aVar56.idx), IVar17 != 0" (assignment_expression "IVar17 = check_halt_state_context(&mctx,unaff_s7.idx,aVar56.idx)" identifier = (call_expression "check_halt_state_context(&mctx,unaff_s7.idx,aVar56.idx)" identifier (argument_list "(&mctx,unaff_s7.idx,aVar56.idx)" ( (pointer_expression "&mctx" & identifier) , (field_expression "unaff_s7.idx" identifier . field_identifier) , (field_expression "aVar56.idx" identifier . field_identifier) )))) , (binary_expression "IVar17 != 0" identifier != number_literal)))) ))) )) (compound_statement "{\n                      local_c4 = aVar56;\n                      if (paVar54 == (anon_union_4_5_a39f51ca_for_opr *)0x0) goto LAB_00055dbc;\n                      prVar52 = (re_dfa_t *)0x1;\n                    }" { (expression_statement "local_c4 = aVar56;" (assignment_expression "local_c4 = aVar56" identifier = identifier) ;) (if_statement "if (paVar54 == (anon_union_4_5_a39f51ca_for_opr *)0x0) goto LAB_00055dbc;" if (parenthesized_expression "(paVar54 == (anon_union_4_5_a39f51ca_for_opr *)0x0)" ( (binary_expression "paVar54 == (anon_union_4_5_a39f51ca_for_opr *)0x0" identifier == (cast_expression "(anon_union_4_5_a39f51ca_for_opr *)0x0" ( (type_descriptor "anon_union_4_5_a39f51ca_for_opr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00055dbc;" goto statement_identifier ;)) (expression_statement "prVar52 = (re_dfa_t *)0x1;" (assignment_expression "prVar52 = (re_dfa_t *)0x1" identifier = (cast_expression "(re_dfa_t *)0x1" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n                      aVar56.idx = -1;\n                      prVar52 = (re_dfa_t *)0x0;\n                    }" else (compound_statement "{\n                      aVar56.idx = -1;\n                      prVar52 = (re_dfa_t *)0x0;\n                    }" { (expression_statement "aVar56.idx = -1;" (assignment_expression "aVar56.idx = -1" (field_expression "aVar56.idx" identifier . field_identifier) = number_literal) ;) (expression_statement "prVar52 = (re_dfa_t *)0x0;" (assignment_expression "prVar52 = (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                    aVar56.idx = -1;\n                    prVar52 = (re_dfa_t *)0x0;\n                  }" else (compound_statement "{\n                    aVar56.idx = -1;\n                    prVar52 = (re_dfa_t *)0x0;\n                  }" { (expression_statement "aVar56.idx = -1;" (assignment_expression "aVar56.idx = -1" (field_expression "aVar56.idx" identifier . field_identifier) = number_literal) ;) (expression_statement "prVar52 = (re_dfa_t *)0x0;" (assignment_expression "prVar52 = (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 "pcVar9 = (code *)(PTR_DAT_000799a4 + -0x7144);" (assignment_expression "pcVar9 = (code *)(PTR_DAT_000799a4 + -0x7144)" identifier = (cast_expression "(code *)(PTR_DAT_000799a4 + -0x7144)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000799a4 + -0x7144)" ( (binary_expression "PTR_DAT_000799a4 + -0x7144" identifier + number_literal) )))) ;) (expression_statement "pcVar10 = (code *)(PTR_DAT_000799a4 + -0x1980);" (assignment_expression "pcVar10 = (code *)(PTR_DAT_000799a4 + -0x1980)" identifier = (cast_expression "(code *)(PTR_DAT_000799a4 + -0x1980)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000799a4 + -0x1980)" ( (binary_expression "PTR_DAT_000799a4 + -0x1980" identifier + number_literal) )))) ;) (expression_statement "pcVar11 = (code *)(PTR_DAT_000799a4 + -0x2f9c);" (assignment_expression "pcVar11 = (code *)(PTR_DAT_000799a4 + -0x2f9c)" identifier = (cast_expression "(code *)(PTR_DAT_000799a4 + -0x2f9c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000799a4 + -0x2f9c)" ( (binary_expression "PTR_DAT_000799a4 + -0x2f9c" identifier + number_literal) )))) ;) (expression_statement "local_c4 = aVar56;" (assignment_expression "local_c4 = aVar56" identifier = identifier) ;) (expression_statement "local_144 = piVar38;" (assignment_expression "local_144 = piVar38" identifier = identifier) ;) (while_statement "while( true ) {\n                    uVar63 = CONCAT44(mctx.input.valid_len,mctx.input.len);\n                    unaff_s5.sbcset = (re_bitset_ptr_t)(mctx.input.cur_idx + 1);\n                    aVar45.idx = mctx.input.cur_idx;\n                    if (mctx.input.stop <= mctx.input.cur_idx) break;\n                    if ((mctx.input.bufs_len <= unaff_s5.idx) &&\n                       (mctx.input.bufs_len < mctx.input.len)) goto LAB_00054e94;\n                    if (mctx.input.valid_len <= unaff_s5.idx) {\n                      while ((int)((ulonglong)uVar63 >> 0x20) < (int)uVar63) {\nLAB_00054e94:\n                        aVar45.sbcset =\n                             (re_bitset_ptr_t)\n                             ((int)&((re_string_t *)&(aVar45.mbcset)->mbchars)->raw_mbs + 2);\n                        err = (*pcVar9)(&mctx);\n                        if (err == _REG_NOERROR) break;\n                        aVar15 = aVar46;\n                        if (err == _REG_ESPACE) goto LAB_00055914;\n                        prVar51 = (re_dfa_t *)(PTR_s_nt0_000795b8 + 0x6eb0);\n                        aVar49.idx = 0x46c;\n                        aVar45.sbcset = (re_bitset_ptr_t)(PTR_s_nt0_000795b8 + 0x712c);\n                        uVar63 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0);\n                        prVar52 = prVar59;\n                      }\n                    }\n                    prVar3 = mctx.dfa;\n                    if ((int)*(bin_tree_t **)(unaff_s7.idx + 0x34) << 5 < 0) {\n                      paVar18 = (anon_union_4_5_a39f51ca_for_opr *)prVar3;\n                      if (0 < (int)(unaff_s7.mbcset)->range_ends) {\n                        pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6fdc);\n                        pcVar13 = (code *)(PTR_DAT_000799a4 + -0x6ef0);\n                        stop = 0;\n                        do {\n                          last_start = ((anon_union_4_5_a39f51ca_for_opr *)\n                                       ((unaff_s7.mbcset)->char_classes + stop))->idx;\n                          prVar53 = prVar3->nodes;\n                          uVar8 = *(uint *)&prVar53[last_start].field_0x4;\n                          if ((uVar8 & 0x800) != 0) {\n                            if ((uVar8 & 0xffc000) != 0) {\n                              aVar45.idx = mctx.input.cur_idx;\n                              uVar60 = (*pcVar13)(&mctx,mctx.input.cur_idx,mctx.eflags);\n                              uVar8 = (uint)(*(int *)&prVar53[last_start].field_0x4 << 8) >> 0x16;\n                              if ((uVar8 & 4) == 0) {\n                                uVar26 = uVar60 & 1;\n                                if ((uVar8 & 8) != 0) goto joined_r0x00054f40;\n                              }\n                              else {\n                                uVar26 = uVar8 & 8;\n                                if ((uVar60 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                                if (uVar26 != 0) goto LAB_000550a4;\n                              }\n                              if ((((uVar8 & 0x20) != 0) && ((uVar60 & 2) == 0)) ||\n                                 (((uVar8 & 0x80) != 0 &&\n                                  (prVar51 = (re_dfa_t *)mctx.input.cur_idx, (uVar60 & 8) == 0))))\n                              goto LAB_000550a4;\n                            }\n                            aVar49.sbcset = (re_bitset_ptr_t)&mctx;\n                            aVar45.idx = last_start;\n                            prVar51 = (re_dfa_t *)mctx.input.cur_idx;\n                            iVar61 = (*pcVar11)(prVar3);\n                            if (iVar61 != 0) {\n                              aVar46.sbcset = (re_bitset_ptr_t)(iVar61 + mctx.input.cur_idx);\n                              if (iVar61 <= mctx.max_mb_elem_len) {\n                                iVar61 = mctx.max_mb_elem_len;\n                              }\n                              aVar45.sbcset = aVar46.sbcset;\n                              mctx.max_mb_elem_len = iVar61;\n                              err_1 = (*pcVar12)(&mctx);\n                              rVar21 = err_1;\n                              if (err_1 != _REG_NOERROR) goto LAB_00055e44;\n                              aVar49.sbcset =\n                                   (re_bitset_ptr_t)(prVar3->eclosures + prVar3->nexts[last_start]);\n                              unaff_s4 = (re_dfa_t *)(aVar46.idx * 4);\n                              last_start = (Idx)(mctx.state_log + aVar46.idx);\n                              if (*(bitset_word_t *)last_start == 0) {\n                                dest_nodes.alloc = *aVar49.sbcset;\n                                dest_nodes.nelem =\n                                     ((re_node_set *)&(aVar49.mbcset)->range_starts)->alloc;\n                                dest_nodes.elems = (aVar49.mbcset)->range_ends;\n                                prVar51 = (re_dfa_t *)\n                                          (*pcVar13)(&mctx,(undefined1 *)(aVar46.idx + -1),\n                                                     mctx.eflags);\n                                aVar49.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                                aVar45 = (anon_union_4_5_a39f51ca_for_opr)prVar3;\n                                prVar35 = re_acquire_state_context\n                                                    (&err_1,prVar3,(re_node_set *)aVar49.mbcset,\n                                                     (uint)prVar51);\n                                ((re_string_t *)&((re_charset_t *)last_start)->mbchars)->raw_mbs =\n                                     (uchar *)prVar35;\n                              }\n                              else {\n                                aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                                         ((anon_union_4_5_a39f51ca_for_opr *)\n                                         (*(bitset_word_t *)last_start + 0x28))->mbcset;\n                                err_1 = re_node_set_init_union\n                                                  (&dest_nodes,(re_node_set *)aVar45.mbcset,\n                                                   (re_node_set *)aVar49.mbcset);\n                                rVar21 = err_1;\n                                if (err_1 != _REG_NOERROR) goto LAB_00055e44;\n                                prVar51 = (re_dfa_t *)\n                                          (*pcVar13)(&mctx,(undefined1 *)(aVar46.idx + -1),\n                                                     mctx.eflags);\n                                pprVar14 = mctx.state_log + aVar46.idx;\n                                aVar49.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                                aVar45 = (anon_union_4_5_a39f51ca_for_opr)prVar3;\n                                prVar35 = re_acquire_state_context\n                                                    (&err_1,prVar3,(re_node_set *)aVar49.mbcset,\n                                                     (uint)prVar51);\n                                *pprVar14 = prVar35;\n                                (*(code *)PTR_free_00079c24)(dest_nodes.elems);\n                              }\n                              unaff_s4 = (re_dfa_t *)(mctx.state_log + aVar46.idx);\n                              if ((unaff_s4->nodes == (re_token_t *)0x0) &&\n                                 (rVar21 = err_1, err_1 != _REG_NOERROR)) goto LAB_00055e44;\n                            }\n                          }\nLAB_000550a4:\n                          stop = (int)&((re_string_t *)&((re_charset_t *)stop)->mbchars)->raw_mbs +\n                                 1;\n                        } while (stop < (int)(unaff_s7.mbcset)->range_ends);\n                      }\n                      err = _REG_NOERROR;\n                    }\n                    uVar8 = (uint)mctx.input.mbs[mctx.input.cur_idx];\n                    mctx.input.cur_idx = mctx.input.cur_idx + 1;\n                    do {\n                      if (*(re_dfastate_t **)(unaff_s7.idx + 0x2c) != (re_dfastate_t *)0x0) {\n                        aVar49 = (anon_union_4_5_a39f51ca_for_opr)\n                                 ((anon_union_4_5_a39f51ca_for_opr *)\n                                 (&(*(re_dfastate_t **)(unaff_s7.idx + 0x2c))->hash + uVar8))->\n                                 mbcset;\nLAB_000553a0:\n                        aVar15 = aVar49;\n                        if (mctx.state_log != (re_dfastate_t **)0x0) goto LAB_000553ac;\n                        goto LAB_000553cc;\n                      }\n                      paVar18 = *(anon_union_4_5_a39f51ca_for_opr **)(unaff_s7.idx + 0x30);\n                      if (paVar18 != (anon_union_4_5_a39f51ca_for_opr *)0x0) {\n                        aVar45.sbcset = (re_bitset_ptr_t)(mctx.input.cur_idx + -1);\n                        uVar60 = re_string_context_at(&mctx.input,aVar45.idx,mctx.eflags);\n                        if ((uVar60 & 1) == 0) {\n                          aVar49 = (anon_union_4_5_a39f51ca_for_opr)paVar18[uVar8].mbcset;\n                        }\n                        else {\n                          paVar18 = paVar18 + uVar8 + 0x100;\n                          aVar49 = (anon_union_4_5_a39f51ca_for_opr)paVar18->mbcset;\n                        }\n                        goto LAB_000553a0;\n                      }\n                      aVar45 = unaff_s7;\n                      aVar49 = (anon_union_4_5_a39f51ca_for_opr)mctx.eflags;\n                      iVar61 = (*pcVar10)(mctx.dfa);\n                    } while (iVar61 != 0);\n                    err = _REG_ESPACE;\n                    rVar21 = err;\nLAB_00055e44:\n                    err = rVar21;\n                    aVar46.sbcset = (re_bitset_ptr_t)0x0;\n                    if (mctx.state_log == (re_dfastate_t **)0x0) {\n                      aVar15.sbcset = aVar46.sbcset;\n                      if (err != _REG_NOERROR) goto LAB_00055914;\n                      break;\n                    }\n                    aVar49.sbcset = (re_bitset_ptr_t)0x0;\nLAB_000553ac:\n                    aVar45.sbcset = (re_bitset_ptr_t)&mctx;\n                    aVar15.sbcset =\n                         &merge_state_with_log\n                                    (&err,(re_match_context_t *)aVar45.mbcset,aVar49.sbcset)->hash;\nLAB_000553cc:\n                    aVar46 = aVar15;\n                    if ((re_dfa_t *)aVar15.sbcset == (re_dfa_t *)0x0) {\n                      if (err != _REG_NOERROR) goto LAB_00055914;\n                      if ((mctx.state_log == (re_dfastate_t **)0x0) ||\n                         ((prVar52 != (re_dfa_t *)0x0 &&\n                          (paVar54 == (anon_union_4_5_a39f51ca_for_opr *)0x0)))) break;\n                      stop = (Idx)&mctx;\n                      last_start = (Idx)&err;\n                      paVar18 = (anon_union_4_5_a39f51ca_for_opr *)(PTR_DAT_000799a4 + 0x3684);\n                      do {\n                        pprVar14 = mctx.state_log + mctx.input.cur_idx;\n                        IVar17 = mctx.input.cur_idx;\n                        do {\n                          IVar17 = IVar17 + 1;\n                          aVar45.idx = mctx.state_log_top;\n                          aVar46 = aVar15;\n                          if (mctx.state_log_top < IVar17) goto LAB_00055da8;\n                          mctx.input.cur_idx = mctx.input.cur_idx + 1;\n                          pprVar14 = pprVar14 + 1;\n                        } while (*pprVar14 == (re_dfastate_t *)0x0);\n                        aVar49.sbcset = (re_bitset_ptr_t)0x0;\n                        aVar45.sbcset = (re_bitset_ptr_t)stop;\n                        aVar46.sbcset = (re_bitset_ptr_t)(*(code *)paVar18)(last_start);\n                        if (err != _REG_NOERROR) {\n                          if ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0) goto LAB_00055da8;\n                          break;\n                        }\n                        aVar45.idx = mctx.state_log_top;\n                      } while ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0);\n                    }\n                    aVar16.ctx_type = unaff_s7.ctx_type ^ aVar46.ctx_type;\n                    aVar56 = unaff_s7;\n                    aVar15 = local_138;\n                    if ((bVar36) &&\n                       (aVar56.ctx_type = aVar16.ctx_type, aVar15.sbcset = unaff_s5.sbcset,\n                       (re_dfa_t *)aVar16.sbcset != (re_dfa_t *)0x0)) {\n                      bVar36 = false;\n                      aVar15 = local_138;\n                    }\n                    local_138 = aVar15;\n                    unaff_s7 = aVar46;\n                    if (((*(byte *)(aVar46.idx + 0x34) & 8) != 0) &&\n                       (((*(byte *)(aVar46.idx + 0x34) & 1) == 0 ||\n                        (aVar45 = aVar46, aVar49.idx = mctx.input.cur_idx,\n                        IVar17 = check_halt_state_context(&mctx,aVar46.idx,mctx.input.cur_idx),\n                        IVar17 != 0)))) {\n                      unaff_s7 = aVar56;\n                      local_c4.idx = mctx.input.cur_idx;\n                      if (paVar54 == (anon_union_4_5_a39f51ca_for_opr *)0x0) goto LAB_00055dbc;\n                      prVar52 = (re_dfa_t *)0x1;\n                      local_144 = (int *)0x0;\n                      unaff_s7 = aVar46;\n                    }\n                  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                    uVar63 = CONCAT44(mctx.input.valid_len,mctx.input.len);\n                    unaff_s5.sbcset = (re_bitset_ptr_t)(mctx.input.cur_idx + 1);\n                    aVar45.idx = mctx.input.cur_idx;\n                    if (mctx.input.stop <= mctx.input.cur_idx) break;\n                    if ((mctx.input.bufs_len <= unaff_s5.idx) &&\n                       (mctx.input.bufs_len < mctx.input.len)) goto LAB_00054e94;\n                    if (mctx.input.valid_len <= unaff_s5.idx) {\n                      while ((int)((ulonglong)uVar63 >> 0x20) < (int)uVar63) {\nLAB_00054e94:\n                        aVar45.sbcset =\n                             (re_bitset_ptr_t)\n                             ((int)&((re_string_t *)&(aVar45.mbcset)->mbchars)->raw_mbs + 2);\n                        err = (*pcVar9)(&mctx);\n                        if (err == _REG_NOERROR) break;\n                        aVar15 = aVar46;\n                        if (err == _REG_ESPACE) goto LAB_00055914;\n                        prVar51 = (re_dfa_t *)(PTR_s_nt0_000795b8 + 0x6eb0);\n                        aVar49.idx = 0x46c;\n                        aVar45.sbcset = (re_bitset_ptr_t)(PTR_s_nt0_000795b8 + 0x712c);\n                        uVar63 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0);\n                        prVar52 = prVar59;\n                      }\n                    }\n                    prVar3 = mctx.dfa;\n                    if ((int)*(bin_tree_t **)(unaff_s7.idx + 0x34) << 5 < 0) {\n                      paVar18 = (anon_union_4_5_a39f51ca_for_opr *)prVar3;\n                      if (0 < (int)(unaff_s7.mbcset)->range_ends) {\n                        pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6fdc);\n                        pcVar13 = (code *)(PTR_DAT_000799a4 + -0x6ef0);\n                        stop = 0;\n                        do {\n                          last_start = ((anon_union_4_5_a39f51ca_for_opr *)\n                                       ((unaff_s7.mbcset)->char_classes + stop))->idx;\n                          prVar53 = prVar3->nodes;\n                          uVar8 = *(uint *)&prVar53[last_start].field_0x4;\n                          if ((uVar8 & 0x800) != 0) {\n                            if ((uVar8 & 0xffc000) != 0) {\n                              aVar45.idx = mctx.input.cur_idx;\n                              uVar60 = (*pcVar13)(&mctx,mctx.input.cur_idx,mctx.eflags);\n                              uVar8 = (uint)(*(int *)&prVar53[last_start].field_0x4 << 8) >> 0x16;\n                              if ((uVar8 & 4) == 0) {\n                                uVar26 = uVar60 & 1;\n                                if ((uVar8 & 8) != 0) goto joined_r0x00054f40;\n                              }\n                              else {\n                                uVar26 = uVar8 & 8;\n                                if ((uVar60 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                                if (uVar26 != 0) goto LAB_000550a4;\n                              }\n                              if ((((uVar8 & 0x20) != 0) && ((uVar60 & 2) == 0)) ||\n                                 (((uVar8 & 0x80) != 0 &&\n                                  (prVar51 = (re_dfa_t *)mctx.input.cur_idx, (uVar60 & 8) == 0))))\n                              goto LAB_000550a4;\n                            }\n                            aVar49.sbcset = (re_bitset_ptr_t)&mctx;\n                            aVar45.idx = last_start;\n                            prVar51 = (re_dfa_t *)mctx.input.cur_idx;\n                            iVar61 = (*pcVar11)(prVar3);\n                            if (iVar61 != 0) {\n                              aVar46.sbcset = (re_bitset_ptr_t)(iVar61 + mctx.input.cur_idx);\n                              if (iVar61 <= mctx.max_mb_elem_len) {\n                                iVar61 = mctx.max_mb_elem_len;\n                              }\n                              aVar45.sbcset = aVar46.sbcset;\n                              mctx.max_mb_elem_len = iVar61;\n                              err_1 = (*pcVar12)(&mctx);\n                              rVar21 = err_1;\n                              if (err_1 != _REG_NOERROR) goto LAB_00055e44;\n                              aVar49.sbcset =\n                                   (re_bitset_ptr_t)(prVar3->eclosures + prVar3->nexts[last_start]);\n                              unaff_s4 = (re_dfa_t *)(aVar46.idx * 4);\n                              last_start = (Idx)(mctx.state_log + aVar46.idx);\n                              if (*(bitset_word_t *)last_start == 0) {\n                                dest_nodes.alloc = *aVar49.sbcset;\n                                dest_nodes.nelem =\n                                     ((re_node_set *)&(aVar49.mbcset)->range_starts)->alloc;\n                                dest_nodes.elems = (aVar49.mbcset)->range_ends;\n                                prVar51 = (re_dfa_t *)\n                                          (*pcVar13)(&mctx,(undefined1 *)(aVar46.idx + -1),\n                                                     mctx.eflags);\n                                aVar49.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                                aVar45 = (anon_union_4_5_a39f51ca_for_opr)prVar3;\n                                prVar35 = re_acquire_state_context\n                                                    (&err_1,prVar3,(re_node_set *)aVar49.mbcset,\n                                                     (uint)prVar51);\n                                ((re_string_t *)&((re_charset_t *)last_start)->mbchars)->raw_mbs =\n                                     (uchar *)prVar35;\n                              }\n                              else {\n                                aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                                         ((anon_union_4_5_a39f51ca_for_opr *)\n                                         (*(bitset_word_t *)last_start + 0x28))->mbcset;\n                                err_1 = re_node_set_init_union\n                                                  (&dest_nodes,(re_node_set *)aVar45.mbcset,\n                                                   (re_node_set *)aVar49.mbcset);\n                                rVar21 = err_1;\n                                if (err_1 != _REG_NOERROR) goto LAB_00055e44;\n                                prVar51 = (re_dfa_t *)\n                                          (*pcVar13)(&mctx,(undefined1 *)(aVar46.idx + -1),\n                                                     mctx.eflags);\n                                pprVar14 = mctx.state_log + aVar46.idx;\n                                aVar49.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                                aVar45 = (anon_union_4_5_a39f51ca_for_opr)prVar3;\n                                prVar35 = re_acquire_state_context\n                                                    (&err_1,prVar3,(re_node_set *)aVar49.mbcset,\n                                                     (uint)prVar51);\n                                *pprVar14 = prVar35;\n                                (*(code *)PTR_free_00079c24)(dest_nodes.elems);\n                              }\n                              unaff_s4 = (re_dfa_t *)(mctx.state_log + aVar46.idx);\n                              if ((unaff_s4->nodes == (re_token_t *)0x0) &&\n                                 (rVar21 = err_1, err_1 != _REG_NOERROR)) goto LAB_00055e44;\n                            }\n                          }\nLAB_000550a4:\n                          stop = (int)&((re_string_t *)&((re_charset_t *)stop)->mbchars)->raw_mbs +\n                                 1;\n                        } while (stop < (int)(unaff_s7.mbcset)->range_ends);\n                      }\n                      err = _REG_NOERROR;\n                    }\n                    uVar8 = (uint)mctx.input.mbs[mctx.input.cur_idx];\n                    mctx.input.cur_idx = mctx.input.cur_idx + 1;\n                    do {\n                      if (*(re_dfastate_t **)(unaff_s7.idx + 0x2c) != (re_dfastate_t *)0x0) {\n                        aVar49 = (anon_union_4_5_a39f51ca_for_opr)\n                                 ((anon_union_4_5_a39f51ca_for_opr *)\n                                 (&(*(re_dfastate_t **)(unaff_s7.idx + 0x2c))->hash + uVar8))->\n                                 mbcset;\nLAB_000553a0:\n                        aVar15 = aVar49;\n                        if (mctx.state_log != (re_dfastate_t **)0x0) goto LAB_000553ac;\n                        goto LAB_000553cc;\n                      }\n                      paVar18 = *(anon_union_4_5_a39f51ca_for_opr **)(unaff_s7.idx + 0x30);\n                      if (paVar18 != (anon_union_4_5_a39f51ca_for_opr *)0x0) {\n                        aVar45.sbcset = (re_bitset_ptr_t)(mctx.input.cur_idx + -1);\n                        uVar60 = re_string_context_at(&mctx.input,aVar45.idx,mctx.eflags);\n                        if ((uVar60 & 1) == 0) {\n                          aVar49 = (anon_union_4_5_a39f51ca_for_opr)paVar18[uVar8].mbcset;\n                        }\n                        else {\n                          paVar18 = paVar18 + uVar8 + 0x100;\n                          aVar49 = (anon_union_4_5_a39f51ca_for_opr)paVar18->mbcset;\n                        }\n                        goto LAB_000553a0;\n                      }\n                      aVar45 = unaff_s7;\n                      aVar49 = (anon_union_4_5_a39f51ca_for_opr)mctx.eflags;\n                      iVar61 = (*pcVar10)(mctx.dfa);\n                    } while (iVar61 != 0);\n                    err = _REG_ESPACE;\n                    rVar21 = err;\nLAB_00055e44:\n                    err = rVar21;\n                    aVar46.sbcset = (re_bitset_ptr_t)0x0;\n                    if (mctx.state_log == (re_dfastate_t **)0x0) {\n                      aVar15.sbcset = aVar46.sbcset;\n                      if (err != _REG_NOERROR) goto LAB_00055914;\n                      break;\n                    }\n                    aVar49.sbcset = (re_bitset_ptr_t)0x0;\nLAB_000553ac:\n                    aVar45.sbcset = (re_bitset_ptr_t)&mctx;\n                    aVar15.sbcset =\n                         &merge_state_with_log\n                                    (&err,(re_match_context_t *)aVar45.mbcset,aVar49.sbcset)->hash;\nLAB_000553cc:\n                    aVar46 = aVar15;\n                    if ((re_dfa_t *)aVar15.sbcset == (re_dfa_t *)0x0) {\n                      if (err != _REG_NOERROR) goto LAB_00055914;\n                      if ((mctx.state_log == (re_dfastate_t **)0x0) ||\n                         ((prVar52 != (re_dfa_t *)0x0 &&\n                          (paVar54 == (anon_union_4_5_a39f51ca_for_opr *)0x0)))) break;\n                      stop = (Idx)&mctx;\n                      last_start = (Idx)&err;\n                      paVar18 = (anon_union_4_5_a39f51ca_for_opr *)(PTR_DAT_000799a4 + 0x3684);\n                      do {\n                        pprVar14 = mctx.state_log + mctx.input.cur_idx;\n                        IVar17 = mctx.input.cur_idx;\n                        do {\n                          IVar17 = IVar17 + 1;\n                          aVar45.idx = mctx.state_log_top;\n                          aVar46 = aVar15;\n                          if (mctx.state_log_top < IVar17) goto LAB_00055da8;\n                          mctx.input.cur_idx = mctx.input.cur_idx + 1;\n                          pprVar14 = pprVar14 + 1;\n                        } while (*pprVar14 == (re_dfastate_t *)0x0);\n                        aVar49.sbcset = (re_bitset_ptr_t)0x0;\n                        aVar45.sbcset = (re_bitset_ptr_t)stop;\n                        aVar46.sbcset = (re_bitset_ptr_t)(*(code *)paVar18)(last_start);\n                        if (err != _REG_NOERROR) {\n                          if ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0) goto LAB_00055da8;\n                          break;\n                        }\n                        aVar45.idx = mctx.state_log_top;\n                      } while ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0);\n                    }\n                    aVar16.ctx_type = unaff_s7.ctx_type ^ aVar46.ctx_type;\n                    aVar56 = unaff_s7;\n                    aVar15 = local_138;\n                    if ((bVar36) &&\n                       (aVar56.ctx_type = aVar16.ctx_type, aVar15.sbcset = unaff_s5.sbcset,\n                       (re_dfa_t *)aVar16.sbcset != (re_dfa_t *)0x0)) {\n                      bVar36 = false;\n                      aVar15 = local_138;\n                    }\n                    local_138 = aVar15;\n                    unaff_s7 = aVar46;\n                    if (((*(byte *)(aVar46.idx + 0x34) & 8) != 0) &&\n                       (((*(byte *)(aVar46.idx + 0x34) & 1) == 0 ||\n                        (aVar45 = aVar46, aVar49.idx = mctx.input.cur_idx,\n                        IVar17 = check_halt_state_context(&mctx,aVar46.idx,mctx.input.cur_idx),\n                        IVar17 != 0)))) {\n                      unaff_s7 = aVar56;\n                      local_c4.idx = mctx.input.cur_idx;\n                      if (paVar54 == (anon_union_4_5_a39f51ca_for_opr *)0x0) goto LAB_00055dbc;\n                      prVar52 = (re_dfa_t *)0x1;\n                      local_144 = (int *)0x0;\n                      unaff_s7 = aVar46;\n                    }\n                  }" { (expression_statement "uVar63 = CONCAT44(mctx.input.valid_len,mctx.input.len);" (assignment_expression "uVar63 = CONCAT44(mctx.input.valid_len,mctx.input.len)" identifier = (call_expression "CONCAT44(mctx.input.valid_len,mctx.input.len)" identifier (argument_list "(mctx.input.valid_len,mctx.input.len)" ( (field_expression "mctx.input.valid_len" (field_expression "mctx.input" identifier . field_identifier) . field_identifier) , (field_expression "mctx.input.len" (field_expression "mctx.input" identifier . field_identifier) . field_identifier) )))) ;) (expression_statement "unaff_s5.sbcset = (re_bitset_ptr_t)(mctx.input.cur_idx + 1);" (assignment_expression "unaff_s5.sbcset = (re_bitset_ptr_t)(mctx.input.cur_idx + 1)" (field_expression "unaff_s5.sbcset" identifier . field_identifier) = (call_expression "(re_bitset_ptr_t)(mctx.input.cur_idx + 1)" (parenthesized_expression "(re_bitset_ptr_t)" ( identifier )) (argument_list "(mctx.input.cur_idx + 1)" ( (binary_expression "mctx.input.cur_idx + 1" (field_expression "mctx.input.cur_idx" (field_expression "mctx.input" identifier . field_identifier) . field_identifier) + number_literal) )))) ;) (expression_statement "aVar45.idx = mctx.input.cur_idx;" (assignment_expression "aVar45.idx = mctx.input.cur_idx" (field_expression "aVar45.idx" identifier . field_identifier) = (field_expression "mctx.input.cur_idx" (field_expression "mctx.input" identifier . field_identifier) . field_identifier)) ;) (if_statement "if (mctx.input.stop <= mctx.input.cur_idx) break;" if (parenthesized_expression "(mctx.input.stop <= mctx.input.cur_idx)" ( (binary_expression "mctx.input.stop <= mctx.input.cur_idx" (field_expression "mctx.input.stop" (field_expression "mctx.input" identifier . field_identifier) . field_identifier) <= (field_expression "mctx.input.cur_idx" (field_expression "mctx.input" identifier . field_identifier) . field_identifier)) )) (break_statement "break;" break ;)) (if_statement "if ((mctx.input.bufs_len <= unaff_s5.idx) &&\n                       (mctx.input.bufs_len < mctx.input.len)) goto LAB_00054e94;" if (parenthesized_expression "((mctx.input.bufs_len <= unaff_s5.idx) &&\n                       (mctx.input.bufs_len < mctx.input.len))" ( (binary_expression "(mctx.input.bufs_len <= unaff_s5.idx) &&\n                       (mctx.input.bufs_len < mctx.input.len)" (parenthesized_expression "(mctx.input.bufs_len <= unaff_s5.idx)" ( (binary_expression "mctx.input.bufs_len <= unaff_s5.idx" (field_expression "mctx.input.bufs_len" (field_expression "mctx.input" identifier . field_identifier) . field_identifier) <= (field_expression "unaff_s5.idx" identifier . field_identifier)) )) && (parenthesized_expression "(mctx.input.bufs_len < mctx.input.len)" ( (binary_expression "mctx.input.bufs_len < mctx.input.len" (field_expression "mctx.input.bufs_len" (field_expression "mctx.input" identifier . field_identifier) . field_identifier) < (field_expression "mctx.input.len" (field_expression "mctx.input" identifier . field_identifier) . field_identifier)) ))) )) (goto_statement "goto LAB_00054e94;" goto statement_identifier ;)) (if_statement "if (mctx.input.valid_len <= unaff_s5.idx) {\n                      while ((int)((ulonglong)uVar63 >> 0x20) < (int)uVar63) {\nLAB_00054e94:\n                        aVar45.sbcset =\n                             (re_bitset_ptr_t)\n                             ((int)&((re_string_t *)&(aVar45.mbcset)->mbchars)->raw_mbs + 2);\n                        err = (*pcVar9)(&mctx);\n                        if (err == _REG_NOERROR) break;\n                        aVar15 = aVar46;\n                        if (err == _REG_ESPACE) goto LAB_00055914;\n                        prVar51 = (re_dfa_t *)(PTR_s_nt0_000795b8 + 0x6eb0);\n                        aVar49.idx = 0x46c;\n                        aVar45.sbcset = (re_bitset_ptr_t)(PTR_s_nt0_000795b8 + 0x712c);\n                        uVar63 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0);\n                        prVar52 = prVar59;\n                      }\n                    }" if (parenthesized_expression "(mctx.input.valid_len <= unaff_s5.idx)" ( (binary_expression "mctx.input.valid_len <= unaff_s5.idx" (field_expression "mctx.input.valid_len" (field_expression "mctx.input" identifier . field_identifier) . field_identifier) <= (field_expression "unaff_s5.idx" identifier . field_identifier)) )) (compound_statement "{\n                      while ((int)((ulonglong)uVar63 >> 0x20) < (int)uVar63) {\nLAB_00054e94:\n                        aVar45.sbcset =\n                             (re_bitset_ptr_t)\n                             ((int)&((re_string_t *)&(aVar45.mbcset)->mbchars)->raw_mbs + 2);\n                        err = (*pcVar9)(&mctx);\n                        if (err == _REG_NOERROR) break;\n                        aVar15 = aVar46;\n                        if (err == _REG_ESPACE) goto LAB_00055914;\n                        prVar51 = (re_dfa_t *)(PTR_s_nt0_000795b8 + 0x6eb0);\n                        aVar49.idx = 0x46c;\n                        aVar45.sbcset = (re_bitset_ptr_t)(PTR_s_nt0_000795b8 + 0x712c);\n                        uVar63 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0);\n                        prVar52 = prVar59;\n                      }\n                    }" { (while_statement "while ((int)((ulonglong)uVar63 >> 0x20) < (int)uVar63) {\nLAB_00054e94:\n                        aVar45.sbcset =\n                             (re_bitset_ptr_t)\n                             ((int)&((re_string_t *)&(aVar45.mbcset)->mbchars)->raw_mbs + 2);\n                        err = (*pcVar9)(&mctx);\n                        if (err == _REG_NOERROR) break;\n                        aVar15 = aVar46;\n                        if (err == _REG_ESPACE) goto LAB_00055914;\n                        prVar51 = (re_dfa_t *)(PTR_s_nt0_000795b8 + 0x6eb0);\n                        aVar49.idx = 0x46c;\n                        aVar45.sbcset = (re_bitset_ptr_t)(PTR_s_nt0_000795b8 + 0x712c);\n                        uVar63 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0);\n                        prVar52 = prVar59;\n                      }" while (parenthesized_expression "((int)((ulonglong)uVar63 >> 0x20) < (int)uVar63)" ( (binary_expression "(int)((ulonglong)uVar63 >> 0x20) < (int)uVar63" (cast_expression "(int)((ulonglong)uVar63 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar63 >> 0x20)" ( (binary_expression "(ulonglong)uVar63 >> 0x20" (cast_expression "(ulonglong)uVar63" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) < (cast_expression "(int)uVar63" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\nLAB_00054e94:\n                        aVar45.sbcset =\n                             (re_bitset_ptr_t)\n                             ((int)&((re_string_t *)&(aVar45.mbcset)->mbchars)->raw_mbs + 2);\n                        err = (*pcVar9)(&mctx);\n                        if (err == _REG_NOERROR) break;\n                        aVar15 = aVar46;\n                        if (err == _REG_ESPACE) goto LAB_00055914;\n                        prVar51 = (re_dfa_t *)(PTR_s_nt0_000795b8 + 0x6eb0);\n                        aVar49.idx = 0x46c;\n                        aVar45.sbcset = (re_bitset_ptr_t)(PTR_s_nt0_000795b8 + 0x712c);\n                        uVar63 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0);\n                        prVar52 = prVar59;\n                      }" { (labeled_statement "LAB_00054e94:\n                        aVar45.sbcset =\n                             (re_bitset_ptr_t)\n                             ((int)&((re_string_t *)&(aVar45.mbcset)->mbchars)->raw_mbs + 2);" statement_identifier : (expression_statement "aVar45.sbcset =\n                             (re_bitset_ptr_t)\n                             ((int)&((re_string_t *)&(aVar45.mbcset)->mbchars)->raw_mbs + 2);" (assignment_expression "aVar45.sbcset =\n                             (re_bitset_ptr_t)\n                             ((int)&((re_string_t *)&(aVar45.mbcset)->mbchars)->raw_mbs + 2)" (field_expression "aVar45.sbcset" identifier . field_identifier) = (call_expression "(re_bitset_ptr_t)\n                             ((int)&((re_string_t *)&(aVar45.mbcset)->mbchars)->raw_mbs + 2)" (parenthesized_expression "(re_bitset_ptr_t)" ( identifier )) (argument_list "((int)&((re_string_t *)&(aVar45.mbcset)->mbchars)->raw_mbs + 2)" ( (binary_expression "(int)&((re_string_t *)&(aVar45.mbcset)->mbchars)->raw_mbs + 2" (cast_expression "(int)&((re_string_t *)&(aVar45.mbcset)->mbchars)->raw_mbs" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&((re_string_t *)&(aVar45.mbcset)->mbchars)->raw_mbs" & (field_expression "((re_string_t *)&(aVar45.mbcset)->mbchars)->raw_mbs" (parenthesized_expression "((re_string_t *)&(aVar45.mbcset)->mbchars)" ( (cast_expression "(re_string_t *)&(aVar45.mbcset)->mbchars" ( (type_descriptor "re_string_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(aVar45.mbcset)->mbchars" & (field_expression "(aVar45.mbcset)->mbchars" (parenthesized_expression "(aVar45.mbcset)" ( (field_expression "aVar45.mbcset" identifier . field_identifier) )) -> field_identifier))) )) -> field_identifier))) + number_literal) )))) ;)) (expression_statement "err = (*pcVar9)(&mctx);" (assignment_expression "err = (*pcVar9)(&mctx)" identifier = (call_expression "(*pcVar9)(&mctx)" (parenthesized_expression "(*pcVar9)" ( (pointer_expression "*pcVar9" * identifier) )) (argument_list "(&mctx)" ( (pointer_expression "&mctx" & identifier) )))) ;) (if_statement "if (err == _REG_NOERROR) break;" if (parenthesized_expression "(err == _REG_NOERROR)" ( (binary_expression "err == _REG_NOERROR" identifier == identifier) )) (break_statement "break;" break ;)) (expression_statement "aVar15 = aVar46;" (assignment_expression "aVar15 = aVar46" identifier = identifier) ;) (if_statement "if (err == _REG_ESPACE) goto LAB_00055914;" if (parenthesized_expression "(err == _REG_ESPACE)" ( (binary_expression "err == _REG_ESPACE" identifier == identifier) )) (goto_statement "goto LAB_00055914;" goto statement_identifier ;)) (expression_statement "prVar51 = (re_dfa_t *)(PTR_s_nt0_000795b8 + 0x6eb0);" (assignment_expression "prVar51 = (re_dfa_t *)(PTR_s_nt0_000795b8 + 0x6eb0)" identifier = (cast_expression "(re_dfa_t *)(PTR_s_nt0_000795b8 + 0x6eb0)" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_nt0_000795b8 + 0x6eb0)" ( (binary_expression "PTR_s_nt0_000795b8 + 0x6eb0" identifier + number_literal) )))) ;) (expression_statement "aVar49.idx = 0x46c;" (assignment_expression "aVar49.idx = 0x46c" (field_expression "aVar49.idx" identifier . field_identifier) = number_literal) ;) (expression_statement "aVar45.sbcset = (re_bitset_ptr_t)(PTR_s_nt0_000795b8 + 0x712c);" (assignment_expression "aVar45.sbcset = (re_bitset_ptr_t)(PTR_s_nt0_000795b8 + 0x712c)" (field_expression "aVar45.sbcset" identifier . field_identifier) = (call_expression "(re_bitset_ptr_t)(PTR_s_nt0_000795b8 + 0x712c)" (parenthesized_expression "(re_bitset_ptr_t)" ( identifier )) (argument_list "(PTR_s_nt0_000795b8 + 0x712c)" ( (binary_expression "PTR_s_nt0_000795b8 + 0x712c" identifier + number_literal) )))) ;) (expression_statement "uVar63 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0);" (assignment_expression "uVar63 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0)" identifier = (call_expression "(*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0)" (parenthesized_expression "(*(code *)PTR___assert_fail_000799f8)" ( (pointer_expression "*(code *)PTR___assert_fail_000799f8" * (cast_expression "(code *)PTR___assert_fail_000799f8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_nt0_000795b8 + 0x71a0)" ( (binary_expression "PTR_s_nt0_000795b8 + 0x71a0" identifier + number_literal) )))) ;) (expression_statement "prVar52 = prVar59;" (assignment_expression "prVar52 = prVar59" identifier = identifier) ;) })) })) (expression_statement "prVar3 = mctx.dfa;" (assignment_expression "prVar3 = mctx.dfa" identifier = (field_expression "mctx.dfa" identifier . field_identifier)) ;) (if_statement "if ((int)*(bin_tree_t **)(unaff_s7.idx + 0x34) << 5 < 0) {\n                      paVar18 = (anon_union_4_5_a39f51ca_for_opr *)prVar3;\n                      if (0 < (int)(unaff_s7.mbcset)->range_ends) {\n                        pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6fdc);\n                        pcVar13 = (code *)(PTR_DAT_000799a4 + -0x6ef0);\n                        stop = 0;\n                        do {\n                          last_start = ((anon_union_4_5_a39f51ca_for_opr *)\n                                       ((unaff_s7.mbcset)->char_classes + stop))->idx;\n                          prVar53 = prVar3->nodes;\n                          uVar8 = *(uint *)&prVar53[last_start].field_0x4;\n                          if ((uVar8 & 0x800) != 0) {\n                            if ((uVar8 & 0xffc000) != 0) {\n                              aVar45.idx = mctx.input.cur_idx;\n                              uVar60 = (*pcVar13)(&mctx,mctx.input.cur_idx,mctx.eflags);\n                              uVar8 = (uint)(*(int *)&prVar53[last_start].field_0x4 << 8) >> 0x16;\n                              if ((uVar8 & 4) == 0) {\n                                uVar26 = uVar60 & 1;\n                                if ((uVar8 & 8) != 0) goto joined_r0x00054f40;\n                              }\n                              else {\n                                uVar26 = uVar8 & 8;\n                                if ((uVar60 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                                if (uVar26 != 0) goto LAB_000550a4;\n                              }\n                              if ((((uVar8 & 0x20) != 0) && ((uVar60 & 2) == 0)) ||\n                                 (((uVar8 & 0x80) != 0 &&\n                                  (prVar51 = (re_dfa_t *)mctx.input.cur_idx, (uVar60 & 8) == 0))))\n                              goto LAB_000550a4;\n                            }\n                            aVar49.sbcset = (re_bitset_ptr_t)&mctx;\n                            aVar45.idx = last_start;\n                            prVar51 = (re_dfa_t *)mctx.input.cur_idx;\n                            iVar61 = (*pcVar11)(prVar3);\n                            if (iVar61 != 0) {\n                              aVar46.sbcset = (re_bitset_ptr_t)(iVar61 + mctx.input.cur_idx);\n                              if (iVar61 <= mctx.max_mb_elem_len) {\n                                iVar61 = mctx.max_mb_elem_len;\n                              }\n                              aVar45.sbcset = aVar46.sbcset;\n                              mctx.max_mb_elem_len = iVar61;\n                              err_1 = (*pcVar12)(&mctx);\n                              rVar21 = err_1;\n                              if (err_1 != _REG_NOERROR) goto LAB_00055e44;\n                              aVar49.sbcset =\n                                   (re_bitset_ptr_t)(prVar3->eclosures + prVar3->nexts[last_start]);\n                              unaff_s4 = (re_dfa_t *)(aVar46.idx * 4);\n                              last_start = (Idx)(mctx.state_log + aVar46.idx);\n                              if (*(bitset_word_t *)last_start == 0) {\n                                dest_nodes.alloc = *aVar49.sbcset;\n                                dest_nodes.nelem =\n                                     ((re_node_set *)&(aVar49.mbcset)->range_starts)->alloc;\n                                dest_nodes.elems = (aVar49.mbcset)->range_ends;\n                                prVar51 = (re_dfa_t *)\n                                          (*pcVar13)(&mctx,(undefined1 *)(aVar46.idx + -1),\n                                                     mctx.eflags);\n                                aVar49.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                                aVar45 = (anon_union_4_5_a39f51ca_for_opr)prVar3;\n                                prVar35 = re_acquire_state_context\n                                                    (&err_1,prVar3,(re_node_set *)aVar49.mbcset,\n                                                     (uint)prVar51);\n                                ((re_string_t *)&((re_charset_t *)last_start)->mbchars)->raw_mbs =\n                                     (uchar *)prVar35;\n                              }\n                              else {\n                                aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                                         ((anon_union_4_5_a39f51ca_for_opr *)\n                                         (*(bitset_word_t *)last_start + 0x28))->mbcset;\n                                err_1 = re_node_set_init_union\n                                                  (&dest_nodes,(re_node_set *)aVar45.mbcset,\n                                                   (re_node_set *)aVar49.mbcset);\n                                rVar21 = err_1;\n                                if (err_1 != _REG_NOERROR) goto LAB_00055e44;\n                                prVar51 = (re_dfa_t *)\n                                          (*pcVar13)(&mctx,(undefined1 *)(aVar46.idx + -1),\n                                                     mctx.eflags);\n                                pprVar14 = mctx.state_log + aVar46.idx;\n                                aVar49.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                                aVar45 = (anon_union_4_5_a39f51ca_for_opr)prVar3;\n                                prVar35 = re_acquire_state_context\n                                                    (&err_1,prVar3,(re_node_set *)aVar49.mbcset,\n                                                     (uint)prVar51);\n                                *pprVar14 = prVar35;\n                                (*(code *)PTR_free_00079c24)(dest_nodes.elems);\n                              }\n                              unaff_s4 = (re_dfa_t *)(mctx.state_log + aVar46.idx);\n                              if ((unaff_s4->nodes == (re_token_t *)0x0) &&\n                                 (rVar21 = err_1, err_1 != _REG_NOERROR)) goto LAB_00055e44;\n                            }\n                          }\nLAB_000550a4:\n                          stop = (int)&((re_string_t *)&((re_charset_t *)stop)->mbchars)->raw_mbs +\n                                 1;\n                        } while (stop < (int)(unaff_s7.mbcset)->range_ends);\n                      }\n                      err = _REG_NOERROR;\n                    }" if (parenthesized_expression "((int)*(bin_tree_t **)(unaff_s7.idx + 0x34) << 5 < 0)" ( (binary_expression "(int)*(bin_tree_t **)(unaff_s7.idx + 0x34) << 5 < 0" (binary_expression "(int)*(bin_tree_t **)(unaff_s7.idx + 0x34) << 5" (cast_expression "(int)*(bin_tree_t **)(unaff_s7.idx + 0x34)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(bin_tree_t **)(unaff_s7.idx + 0x34)" * (cast_expression "(bin_tree_t **)(unaff_s7.idx + 0x34)" ( (type_descriptor "bin_tree_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_s7.idx + 0x34)" ( (binary_expression "unaff_s7.idx + 0x34" (field_expression "unaff_s7.idx" identifier . field_identifier) + number_literal) ))))) << number_literal) < number_literal) )) (compound_statement "{\n                      paVar18 = (anon_union_4_5_a39f51ca_for_opr *)prVar3;\n                      if (0 < (int)(unaff_s7.mbcset)->range_ends) {\n                        pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6fdc);\n                        pcVar13 = (code *)(PTR_DAT_000799a4 + -0x6ef0);\n                        stop = 0;\n                        do {\n                          last_start = ((anon_union_4_5_a39f51ca_for_opr *)\n                                       ((unaff_s7.mbcset)->char_classes + stop))->idx;\n                          prVar53 = prVar3->nodes;\n                          uVar8 = *(uint *)&prVar53[last_start].field_0x4;\n                          if ((uVar8 & 0x800) != 0) {\n                            if ((uVar8 & 0xffc000) != 0) {\n                              aVar45.idx = mctx.input.cur_idx;\n                              uVar60 = (*pcVar13)(&mctx,mctx.input.cur_idx,mctx.eflags);\n                              uVar8 = (uint)(*(int *)&prVar53[last_start].field_0x4 << 8) >> 0x16;\n                              if ((uVar8 & 4) == 0) {\n                                uVar26 = uVar60 & 1;\n                                if ((uVar8 & 8) != 0) goto joined_r0x00054f40;\n                              }\n                              else {\n                                uVar26 = uVar8 & 8;\n                                if ((uVar60 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                                if (uVar26 != 0) goto LAB_000550a4;\n                              }\n                              if ((((uVar8 & 0x20) != 0) && ((uVar60 & 2) == 0)) ||\n                                 (((uVar8 & 0x80) != 0 &&\n                                  (prVar51 = (re_dfa_t *)mctx.input.cur_idx, (uVar60 & 8) == 0))))\n                              goto LAB_000550a4;\n                            }\n                            aVar49.sbcset = (re_bitset_ptr_t)&mctx;\n                            aVar45.idx = last_start;\n                            prVar51 = (re_dfa_t *)mctx.input.cur_idx;\n                            iVar61 = (*pcVar11)(prVar3);\n                            if (iVar61 != 0) {\n                              aVar46.sbcset = (re_bitset_ptr_t)(iVar61 + mctx.input.cur_idx);\n                              if (iVar61 <= mctx.max_mb_elem_len) {\n                                iVar61 = mctx.max_mb_elem_len;\n                              }\n                              aVar45.sbcset = aVar46.sbcset;\n                              mctx.max_mb_elem_len = iVar61;\n                              err_1 = (*pcVar12)(&mctx);\n                              rVar21 = err_1;\n                              if (err_1 != _REG_NOERROR) goto LAB_00055e44;\n                              aVar49.sbcset =\n                                   (re_bitset_ptr_t)(prVar3->eclosures + prVar3->nexts[last_start]);\n                              unaff_s4 = (re_dfa_t *)(aVar46.idx * 4);\n                              last_start = (Idx)(mctx.state_log + aVar46.idx);\n                              if (*(bitset_word_t *)last_start == 0) {\n                                dest_nodes.alloc = *aVar49.sbcset;\n                                dest_nodes.nelem =\n                                     ((re_node_set *)&(aVar49.mbcset)->range_starts)->alloc;\n                                dest_nodes.elems = (aVar49.mbcset)->range_ends;\n                                prVar51 = (re_dfa_t *)\n                                          (*pcVar13)(&mctx,(undefined1 *)(aVar46.idx + -1),\n                                                     mctx.eflags);\n                                aVar49.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                                aVar45 = (anon_union_4_5_a39f51ca_for_opr)prVar3;\n                                prVar35 = re_acquire_state_context\n                                                    (&err_1,prVar3,(re_node_set *)aVar49.mbcset,\n                                                     (uint)prVar51);\n                                ((re_string_t *)&((re_charset_t *)last_start)->mbchars)->raw_mbs =\n                                     (uchar *)prVar35;\n                              }\n                              else {\n                                aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                                         ((anon_union_4_5_a39f51ca_for_opr *)\n                                         (*(bitset_word_t *)last_start + 0x28))->mbcset;\n                                err_1 = re_node_set_init_union\n                                                  (&dest_nodes,(re_node_set *)aVar45.mbcset,\n                                                   (re_node_set *)aVar49.mbcset);\n                                rVar21 = err_1;\n                                if (err_1 != _REG_NOERROR) goto LAB_00055e44;\n                                prVar51 = (re_dfa_t *)\n                                          (*pcVar13)(&mctx,(undefined1 *)(aVar46.idx + -1),\n                                                     mctx.eflags);\n                                pprVar14 = mctx.state_log + aVar46.idx;\n                                aVar49.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                                aVar45 = (anon_union_4_5_a39f51ca_for_opr)prVar3;\n                                prVar35 = re_acquire_state_context\n                                                    (&err_1,prVar3,(re_node_set *)aVar49.mbcset,\n                                                     (uint)prVar51);\n                                *pprVar14 = prVar35;\n                                (*(code *)PTR_free_00079c24)(dest_nodes.elems);\n                              }\n                              unaff_s4 = (re_dfa_t *)(mctx.state_log + aVar46.idx);\n                              if ((unaff_s4->nodes == (re_token_t *)0x0) &&\n                                 (rVar21 = err_1, err_1 != _REG_NOERROR)) goto LAB_00055e44;\n                            }\n                          }\nLAB_000550a4:\n                          stop = (int)&((re_string_t *)&((re_charset_t *)stop)->mbchars)->raw_mbs +\n                                 1;\n                        } while (stop < (int)(unaff_s7.mbcset)->range_ends);\n                      }\n                      err = _REG_NOERROR;\n                    }" { (expression_statement "paVar18 = (anon_union_4_5_a39f51ca_for_opr *)prVar3;" (assignment_expression "paVar18 = (anon_union_4_5_a39f51ca_for_opr *)prVar3" identifier = (cast_expression "(anon_union_4_5_a39f51ca_for_opr *)prVar3" ( (type_descriptor "anon_union_4_5_a39f51ca_for_opr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (0 < (int)(unaff_s7.mbcset)->range_ends) {\n                        pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6fdc);\n                        pcVar13 = (code *)(PTR_DAT_000799a4 + -0x6ef0);\n                        stop = 0;\n                        do {\n                          last_start = ((anon_union_4_5_a39f51ca_for_opr *)\n                                       ((unaff_s7.mbcset)->char_classes + stop))->idx;\n                          prVar53 = prVar3->nodes;\n                          uVar8 = *(uint *)&prVar53[last_start].field_0x4;\n                          if ((uVar8 & 0x800) != 0) {\n                            if ((uVar8 & 0xffc000) != 0) {\n                              aVar45.idx = mctx.input.cur_idx;\n                              uVar60 = (*pcVar13)(&mctx,mctx.input.cur_idx,mctx.eflags);\n                              uVar8 = (uint)(*(int *)&prVar53[last_start].field_0x4 << 8) >> 0x16;\n                              if ((uVar8 & 4) == 0) {\n                                uVar26 = uVar60 & 1;\n                                if ((uVar8 & 8) != 0) goto joined_r0x00054f40;\n                              }\n                              else {\n                                uVar26 = uVar8 & 8;\n                                if ((uVar60 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                                if (uVar26 != 0) goto LAB_000550a4;\n                              }\n                              if ((((uVar8 & 0x20) != 0) && ((uVar60 & 2) == 0)) ||\n                                 (((uVar8 & 0x80) != 0 &&\n                                  (prVar51 = (re_dfa_t *)mctx.input.cur_idx, (uVar60 & 8) == 0))))\n                              goto LAB_000550a4;\n                            }\n                            aVar49.sbcset = (re_bitset_ptr_t)&mctx;\n                            aVar45.idx = last_start;\n                            prVar51 = (re_dfa_t *)mctx.input.cur_idx;\n                            iVar61 = (*pcVar11)(prVar3);\n                            if (iVar61 != 0) {\n                              aVar46.sbcset = (re_bitset_ptr_t)(iVar61 + mctx.input.cur_idx);\n                              if (iVar61 <= mctx.max_mb_elem_len) {\n                                iVar61 = mctx.max_mb_elem_len;\n                              }\n                              aVar45.sbcset = aVar46.sbcset;\n                              mctx.max_mb_elem_len = iVar61;\n                              err_1 = (*pcVar12)(&mctx);\n                              rVar21 = err_1;\n                              if (err_1 != _REG_NOERROR) goto LAB_00055e44;\n                              aVar49.sbcset =\n                                   (re_bitset_ptr_t)(prVar3->eclosures + prVar3->nexts[last_start]);\n                              unaff_s4 = (re_dfa_t *)(aVar46.idx * 4);\n                              last_start = (Idx)(mctx.state_log + aVar46.idx);\n                              if (*(bitset_word_t *)last_start == 0) {\n                                dest_nodes.alloc = *aVar49.sbcset;\n                                dest_nodes.nelem =\n                                     ((re_node_set *)&(aVar49.mbcset)->range_starts)->alloc;\n                                dest_nodes.elems = (aVar49.mbcset)->range_ends;\n                                prVar51 = (re_dfa_t *)\n                                          (*pcVar13)(&mctx,(undefined1 *)(aVar46.idx + -1),\n                                                     mctx.eflags);\n                                aVar49.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                                aVar45 = (anon_union_4_5_a39f51ca_for_opr)prVar3;\n                                prVar35 = re_acquire_state_context\n                                                    (&err_1,prVar3,(re_node_set *)aVar49.mbcset,\n                                                     (uint)prVar51);\n                                ((re_string_t *)&((re_charset_t *)last_start)->mbchars)->raw_mbs =\n                                     (uchar *)prVar35;\n                              }\n                              else {\n                                aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                                         ((anon_union_4_5_a39f51ca_for_opr *)\n                                         (*(bitset_word_t *)last_start + 0x28))->mbcset;\n                                err_1 = re_node_set_init_union\n                                                  (&dest_nodes,(re_node_set *)aVar45.mbcset,\n                                                   (re_node_set *)aVar49.mbcset);\n                                rVar21 = err_1;\n                                if (err_1 != _REG_NOERROR) goto LAB_00055e44;\n                                prVar51 = (re_dfa_t *)\n                                          (*pcVar13)(&mctx,(undefined1 *)(aVar46.idx + -1),\n                                                     mctx.eflags);\n                                pprVar14 = mctx.state_log + aVar46.idx;\n                                aVar49.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                                aVar45 = (anon_union_4_5_a39f51ca_for_opr)prVar3;\n                                prVar35 = re_acquire_state_context\n                                                    (&err_1,prVar3,(re_node_set *)aVar49.mbcset,\n                                                     (uint)prVar51);\n                                *pprVar14 = prVar35;\n                                (*(code *)PTR_free_00079c24)(dest_nodes.elems);\n                              }\n                              unaff_s4 = (re_dfa_t *)(mctx.state_log + aVar46.idx);\n                              if ((unaff_s4->nodes == (re_token_t *)0x0) &&\n                                 (rVar21 = err_1, err_1 != _REG_NOERROR)) goto LAB_00055e44;\n                            }\n                          }\nLAB_000550a4:\n                          stop = (int)&((re_string_t *)&((re_charset_t *)stop)->mbchars)->raw_mbs +\n                                 1;\n                        } while (stop < (int)(unaff_s7.mbcset)->range_ends);\n                      }" if (parenthesized_expression "(0 < (int)(unaff_s7.mbcset)->range_ends)" ( (binary_expression "0 < (int)(unaff_s7.mbcset)->range_ends" number_literal < (cast_expression "(int)(unaff_s7.mbcset)->range_ends" ( (type_descriptor "int" primitive_type) ) (field_expression "(unaff_s7.mbcset)->range_ends" (parenthesized_expression "(unaff_s7.mbcset)" ( (field_expression "unaff_s7.mbcset" identifier . field_identifier) )) -> field_identifier))) )) (compound_statement "{\n                        pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6fdc);\n                        pcVar13 = (code *)(PTR_DAT_000799a4 + -0x6ef0);\n                        stop = 0;\n                        do {\n                          last_start = ((anon_union_4_5_a39f51ca_for_opr *)\n                                       ((unaff_s7.mbcset)->char_classes + stop))->idx;\n                          prVar53 = prVar3->nodes;\n                          uVar8 = *(uint *)&prVar53[last_start].field_0x4;\n                          if ((uVar8 & 0x800) != 0) {\n                            if ((uVar8 & 0xffc000) != 0) {\n                              aVar45.idx = mctx.input.cur_idx;\n                              uVar60 = (*pcVar13)(&mctx,mctx.input.cur_idx,mctx.eflags);\n                              uVar8 = (uint)(*(int *)&prVar53[last_start].field_0x4 << 8) >> 0x16;\n                              if ((uVar8 & 4) == 0) {\n                                uVar26 = uVar60 & 1;\n                                if ((uVar8 & 8) != 0) goto joined_r0x00054f40;\n                              }\n                              else {\n                                uVar26 = uVar8 & 8;\n                                if ((uVar60 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                                if (uVar26 != 0) goto LAB_000550a4;\n                              }\n                              if ((((uVar8 & 0x20) != 0) && ((uVar60 & 2) == 0)) ||\n                                 (((uVar8 & 0x80) != 0 &&\n                                  (prVar51 = (re_dfa_t *)mctx.input.cur_idx, (uVar60 & 8) == 0))))\n                              goto LAB_000550a4;\n                            }\n                            aVar49.sbcset = (re_bitset_ptr_t)&mctx;\n                            aVar45.idx = last_start;\n                            prVar51 = (re_dfa_t *)mctx.input.cur_idx;\n                            iVar61 = (*pcVar11)(prVar3);\n                            if (iVar61 != 0) {\n                              aVar46.sbcset = (re_bitset_ptr_t)(iVar61 + mctx.input.cur_idx);\n                              if (iVar61 <= mctx.max_mb_elem_len) {\n                                iVar61 = mctx.max_mb_elem_len;\n                              }\n                              aVar45.sbcset = aVar46.sbcset;\n                              mctx.max_mb_elem_len = iVar61;\n                              err_1 = (*pcVar12)(&mctx);\n                              rVar21 = err_1;\n                              if (err_1 != _REG_NOERROR) goto LAB_00055e44;\n                              aVar49.sbcset =\n                                   (re_bitset_ptr_t)(prVar3->eclosures + prVar3->nexts[last_start]);\n                              unaff_s4 = (re_dfa_t *)(aVar46.idx * 4);\n                              last_start = (Idx)(mctx.state_log + aVar46.idx);\n                              if (*(bitset_word_t *)last_start == 0) {\n                                dest_nodes.alloc = *aVar49.sbcset;\n                                dest_nodes.nelem =\n                                     ((re_node_set *)&(aVar49.mbcset)->range_starts)->alloc;\n                                dest_nodes.elems = (aVar49.mbcset)->range_ends;\n                                prVar51 = (re_dfa_t *)\n                                          (*pcVar13)(&mctx,(undefined1 *)(aVar46.idx + -1),\n                                                     mctx.eflags);\n                                aVar49.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                                aVar45 = (anon_union_4_5_a39f51ca_for_opr)prVar3;\n                                prVar35 = re_acquire_state_context\n                                                    (&err_1,prVar3,(re_node_set *)aVar49.mbcset,\n                                                     (uint)prVar51);\n                                ((re_string_t *)&((re_charset_t *)last_start)->mbchars)->raw_mbs =\n                                     (uchar *)prVar35;\n                              }\n                              else {\n                                aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                                         ((anon_union_4_5_a39f51ca_for_opr *)\n                                         (*(bitset_word_t *)last_start + 0x28))->mbcset;\n                                err_1 = re_node_set_init_union\n                                                  (&dest_nodes,(re_node_set *)aVar45.mbcset,\n                                                   (re_node_set *)aVar49.mbcset);\n                                rVar21 = err_1;\n                                if (err_1 != _REG_NOERROR) goto LAB_00055e44;\n                                prVar51 = (re_dfa_t *)\n                                          (*pcVar13)(&mctx,(undefined1 *)(aVar46.idx + -1),\n                                                     mctx.eflags);\n                                pprVar14 = mctx.state_log + aVar46.idx;\n                                aVar49.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                                aVar45 = (anon_union_4_5_a39f51ca_for_opr)prVar3;\n                                prVar35 = re_acquire_state_context\n                                                    (&err_1,prVar3,(re_node_set *)aVar49.mbcset,\n                                                     (uint)prVar51);\n                                *pprVar14 = prVar35;\n                                (*(code *)PTR_free_00079c24)(dest_nodes.elems);\n                              }\n                              unaff_s4 = (re_dfa_t *)(mctx.state_log + aVar46.idx);\n                              if ((unaff_s4->nodes == (re_token_t *)0x0) &&\n                                 (rVar21 = err_1, err_1 != _REG_NOERROR)) goto LAB_00055e44;\n                            }\n                          }\nLAB_000550a4:\n                          stop = (int)&((re_string_t *)&((re_charset_t *)stop)->mbchars)->raw_mbs +\n                                 1;\n                        } while (stop < (int)(unaff_s7.mbcset)->range_ends);\n                      }" { (expression_statement "pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6fdc);" (assignment_expression "pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6fdc)" identifier = (cast_expression "(code *)(PTR_DAT_000799a4 + -0x6fdc)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000799a4 + -0x6fdc)" ( (binary_expression "PTR_DAT_000799a4 + -0x6fdc" identifier + number_literal) )))) ;) (expression_statement "pcVar13 = (code *)(PTR_DAT_000799a4 + -0x6ef0);" (assignment_expression "pcVar13 = (code *)(PTR_DAT_000799a4 + -0x6ef0)" identifier = (cast_expression "(code *)(PTR_DAT_000799a4 + -0x6ef0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000799a4 + -0x6ef0)" ( (binary_expression "PTR_DAT_000799a4 + -0x6ef0" identifier + number_literal) )))) ;) (expression_statement "stop = 0;" (assignment_expression "stop = 0" identifier = number_literal) ;) (do_statement "do {\n                          last_start = ((anon_union_4_5_a39f51ca_for_opr *)\n                                       ((unaff_s7.mbcset)->char_classes + stop))->idx;\n                          prVar53 = prVar3->nodes;\n                          uVar8 = *(uint *)&prVar53[last_start].field_0x4;\n                          if ((uVar8 & 0x800) != 0) {\n                            if ((uVar8 & 0xffc000) != 0) {\n                              aVar45.idx = mctx.input.cur_idx;\n                              uVar60 = (*pcVar13)(&mctx,mctx.input.cur_idx,mctx.eflags);\n                              uVar8 = (uint)(*(int *)&prVar53[last_start].field_0x4 << 8) >> 0x16;\n                              if ((uVar8 & 4) == 0) {\n                                uVar26 = uVar60 & 1;\n                                if ((uVar8 & 8) != 0) goto joined_r0x00054f40;\n                              }\n                              else {\n                                uVar26 = uVar8 & 8;\n                                if ((uVar60 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                                if (uVar26 != 0) goto LAB_000550a4;\n                              }\n                              if ((((uVar8 & 0x20) != 0) && ((uVar60 & 2) == 0)) ||\n                                 (((uVar8 & 0x80) != 0 &&\n                                  (prVar51 = (re_dfa_t *)mctx.input.cur_idx, (uVar60 & 8) == 0))))\n                              goto LAB_000550a4;\n                            }\n                            aVar49.sbcset = (re_bitset_ptr_t)&mctx;\n                            aVar45.idx = last_start;\n                            prVar51 = (re_dfa_t *)mctx.input.cur_idx;\n                            iVar61 = (*pcVar11)(prVar3);\n                            if (iVar61 != 0) {\n                              aVar46.sbcset = (re_bitset_ptr_t)(iVar61 + mctx.input.cur_idx);\n                              if (iVar61 <= mctx.max_mb_elem_len) {\n                                iVar61 = mctx.max_mb_elem_len;\n                              }\n                              aVar45.sbcset = aVar46.sbcset;\n                              mctx.max_mb_elem_len = iVar61;\n                              err_1 = (*pcVar12)(&mctx);\n                              rVar21 = err_1;\n                              if (err_1 != _REG_NOERROR) goto LAB_00055e44;\n                              aVar49.sbcset =\n                                   (re_bitset_ptr_t)(prVar3->eclosures + prVar3->nexts[last_start]);\n                              unaff_s4 = (re_dfa_t *)(aVar46.idx * 4);\n                              last_start = (Idx)(mctx.state_log + aVar46.idx);\n                              if (*(bitset_word_t *)last_start == 0) {\n                                dest_nodes.alloc = *aVar49.sbcset;\n                                dest_nodes.nelem =\n                                     ((re_node_set *)&(aVar49.mbcset)->range_starts)->alloc;\n                                dest_nodes.elems = (aVar49.mbcset)->range_ends;\n                                prVar51 = (re_dfa_t *)\n                                          (*pcVar13)(&mctx,(undefined1 *)(aVar46.idx + -1),\n                                                     mctx.eflags);\n                                aVar49.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                                aVar45 = (anon_union_4_5_a39f51ca_for_opr)prVar3;\n                                prVar35 = re_acquire_state_context\n                                                    (&err_1,prVar3,(re_node_set *)aVar49.mbcset,\n                                                     (uint)prVar51);\n                                ((re_string_t *)&((re_charset_t *)last_start)->mbchars)->raw_mbs =\n                                     (uchar *)prVar35;\n                              }\n                              else {\n                                aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                                         ((anon_union_4_5_a39f51ca_for_opr *)\n                                         (*(bitset_word_t *)last_start + 0x28))->mbcset;\n                                err_1 = re_node_set_init_union\n                                                  (&dest_nodes,(re_node_set *)aVar45.mbcset,\n                                                   (re_node_set *)aVar49.mbcset);\n                                rVar21 = err_1;\n                                if (err_1 != _REG_NOERROR) goto LAB_00055e44;\n                                prVar51 = (re_dfa_t *)\n                                          (*pcVar13)(&mctx,(undefined1 *)(aVar46.idx + -1),\n                                                     mctx.eflags);\n                                pprVar14 = mctx.state_log + aVar46.idx;\n                                aVar49.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                                aVar45 = (anon_union_4_5_a39f51ca_for_opr)prVar3;\n                                prVar35 = re_acquire_state_context\n                                                    (&err_1,prVar3,(re_node_set *)aVar49.mbcset,\n                                                     (uint)prVar51);\n                                *pprVar14 = prVar35;\n                                (*(code *)PTR_free_00079c24)(dest_nodes.elems);\n                              }\n                              unaff_s4 = (re_dfa_t *)(mctx.state_log + aVar46.idx);\n                              if ((unaff_s4->nodes == (re_token_t *)0x0) &&\n                                 (rVar21 = err_1, err_1 != _REG_NOERROR)) goto LAB_00055e44;\n                            }\n                          }\nLAB_000550a4:\n                          stop = (int)&((re_string_t *)&((re_charset_t *)stop)->mbchars)->raw_mbs +\n                                 1;\n                        } while (stop < (int)(unaff_s7.mbcset)->range_ends);" do (compound_statement "{\n                          last_start = ((anon_union_4_5_a39f51ca_for_opr *)\n                                       ((unaff_s7.mbcset)->char_classes + stop))->idx;\n                          prVar53 = prVar3->nodes;\n                          uVar8 = *(uint *)&prVar53[last_start].field_0x4;\n                          if ((uVar8 & 0x800) != 0) {\n                            if ((uVar8 & 0xffc000) != 0) {\n                              aVar45.idx = mctx.input.cur_idx;\n                              uVar60 = (*pcVar13)(&mctx,mctx.input.cur_idx,mctx.eflags);\n                              uVar8 = (uint)(*(int *)&prVar53[last_start].field_0x4 << 8) >> 0x16;\n                              if ((uVar8 & 4) == 0) {\n                                uVar26 = uVar60 & 1;\n                                if ((uVar8 & 8) != 0) goto joined_r0x00054f40;\n                              }\n                              else {\n                                uVar26 = uVar8 & 8;\n                                if ((uVar60 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                                if (uVar26 != 0) goto LAB_000550a4;\n                              }\n                              if ((((uVar8 & 0x20) != 0) && ((uVar60 & 2) == 0)) ||\n                                 (((uVar8 & 0x80) != 0 &&\n                                  (prVar51 = (re_dfa_t *)mctx.input.cur_idx, (uVar60 & 8) == 0))))\n                              goto LAB_000550a4;\n                            }\n                            aVar49.sbcset = (re_bitset_ptr_t)&mctx;\n                            aVar45.idx = last_start;\n                            prVar51 = (re_dfa_t *)mctx.input.cur_idx;\n                            iVar61 = (*pcVar11)(prVar3);\n                            if (iVar61 != 0) {\n                              aVar46.sbcset = (re_bitset_ptr_t)(iVar61 + mctx.input.cur_idx);\n                              if (iVar61 <= mctx.max_mb_elem_len) {\n                                iVar61 = mctx.max_mb_elem_len;\n                              }\n                              aVar45.sbcset = aVar46.sbcset;\n                              mctx.max_mb_elem_len = iVar61;\n                              err_1 = (*pcVar12)(&mctx);\n                              rVar21 = err_1;\n                              if (err_1 != _REG_NOERROR) goto LAB_00055e44;\n                              aVar49.sbcset =\n                                   (re_bitset_ptr_t)(prVar3->eclosures + prVar3->nexts[last_start]);\n                              unaff_s4 = (re_dfa_t *)(aVar46.idx * 4);\n                              last_start = (Idx)(mctx.state_log + aVar46.idx);\n                              if (*(bitset_word_t *)last_start == 0) {\n                                dest_nodes.alloc = *aVar49.sbcset;\n                                dest_nodes.nelem =\n                                     ((re_node_set *)&(aVar49.mbcset)->range_starts)->alloc;\n                                dest_nodes.elems = (aVar49.mbcset)->range_ends;\n                                prVar51 = (re_dfa_t *)\n                                          (*pcVar13)(&mctx,(undefined1 *)(aVar46.idx + -1),\n                                                     mctx.eflags);\n                                aVar49.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                                aVar45 = (anon_union_4_5_a39f51ca_for_opr)prVar3;\n                                prVar35 = re_acquire_state_context\n                                                    (&err_1,prVar3,(re_node_set *)aVar49.mbcset,\n                                                     (uint)prVar51);\n                                ((re_string_t *)&((re_charset_t *)last_start)->mbchars)->raw_mbs =\n                                     (uchar *)prVar35;\n                              }\n                              else {\n                                aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                                         ((anon_union_4_5_a39f51ca_for_opr *)\n                                         (*(bitset_word_t *)last_start + 0x28))->mbcset;\n                                err_1 = re_node_set_init_union\n                                                  (&dest_nodes,(re_node_set *)aVar45.mbcset,\n                                                   (re_node_set *)aVar49.mbcset);\n                                rVar21 = err_1;\n                                if (err_1 != _REG_NOERROR) goto LAB_00055e44;\n                                prVar51 = (re_dfa_t *)\n                                          (*pcVar13)(&mctx,(undefined1 *)(aVar46.idx + -1),\n                                                     mctx.eflags);\n                                pprVar14 = mctx.state_log + aVar46.idx;\n                                aVar49.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                                aVar45 = (anon_union_4_5_a39f51ca_for_opr)prVar3;\n                                prVar35 = re_acquire_state_context\n                                                    (&err_1,prVar3,(re_node_set *)aVar49.mbcset,\n                                                     (uint)prVar51);\n                                *pprVar14 = prVar35;\n                                (*(code *)PTR_free_00079c24)(dest_nodes.elems);\n                              }\n                              unaff_s4 = (re_dfa_t *)(mctx.state_log + aVar46.idx);\n                              if ((unaff_s4->nodes == (re_token_t *)0x0) &&\n                                 (rVar21 = err_1, err_1 != _REG_NOERROR)) goto LAB_00055e44;\n                            }\n                          }\nLAB_000550a4:\n                          stop = (int)&((re_string_t *)&((re_charset_t *)stop)->mbchars)->raw_mbs +\n                                 1;\n                        }" { (expression_statement "last_start = ((anon_union_4_5_a39f51ca_for_opr *)\n                                       ((unaff_s7.mbcset)->char_classes + stop))->idx;" (assignment_expression "last_start = ((anon_union_4_5_a39f51ca_for_opr *)\n                                       ((unaff_s7.mbcset)->char_classes + stop))->idx" identifier = (field_expression "((anon_union_4_5_a39f51ca_for_opr *)\n                                       ((unaff_s7.mbcset)->char_classes + stop))->idx" (parenthesized_expression "((anon_union_4_5_a39f51ca_for_opr *)\n                                       ((unaff_s7.mbcset)->char_classes + stop))" ( (cast_expression "(anon_union_4_5_a39f51ca_for_opr *)\n                                       ((unaff_s7.mbcset)->char_classes + stop)" ( (type_descriptor "anon_union_4_5_a39f51ca_for_opr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((unaff_s7.mbcset)->char_classes + stop)" ( (binary_expression "(unaff_s7.mbcset)->char_classes + stop" (field_expression "(unaff_s7.mbcset)->char_classes" (parenthesized_expression "(unaff_s7.mbcset)" ( (field_expression "unaff_s7.mbcset" identifier . field_identifier) )) -> field_identifier) + identifier) ))) )) -> field_identifier)) ;) (expression_statement "prVar53 = prVar3->nodes;" (assignment_expression "prVar53 = prVar3->nodes" identifier = (field_expression "prVar3->nodes" identifier -> field_identifier)) ;) (expression_statement "uVar8 = *(uint *)&prVar53[last_start].field_0x4;" (assignment_expression "uVar8 = *(uint *)&prVar53[last_start].field_0x4" identifier = (pointer_expression "*(uint *)&prVar53[last_start].field_0x4" * (cast_expression "(uint *)&prVar53[last_start].field_0x4" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&prVar53[last_start].field_0x4" & (field_expression "prVar53[last_start].field_0x4" (subscript_expression "prVar53[last_start]" identifier [ identifier ]) . field_identifier))))) ;) (if_statement "if ((uVar8 & 0x800) != 0) {\n                            if ((uVar8 & 0xffc000) != 0) {\n                              aVar45.idx = mctx.input.cur_idx;\n                              uVar60 = (*pcVar13)(&mctx,mctx.input.cur_idx,mctx.eflags);\n                              uVar8 = (uint)(*(int *)&prVar53[last_start].field_0x4 << 8) >> 0x16;\n                              if ((uVar8 & 4) == 0) {\n                                uVar26 = uVar60 & 1;\n                                if ((uVar8 & 8) != 0) goto joined_r0x00054f40;\n                              }\n                              else {\n                                uVar26 = uVar8 & 8;\n                                if ((uVar60 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                                if (uVar26 != 0) goto LAB_000550a4;\n                              }\n                              if ((((uVar8 & 0x20) != 0) && ((uVar60 & 2) == 0)) ||\n                                 (((uVar8 & 0x80) != 0 &&\n                                  (prVar51 = (re_dfa_t *)mctx.input.cur_idx, (uVar60 & 8) == 0))))\n                              goto LAB_000550a4;\n                            }\n                            aVar49.sbcset = (re_bitset_ptr_t)&mctx;\n                            aVar45.idx = last_start;\n                            prVar51 = (re_dfa_t *)mctx.input.cur_idx;\n                            iVar61 = (*pcVar11)(prVar3);\n                            if (iVar61 != 0) {\n                              aVar46.sbcset = (re_bitset_ptr_t)(iVar61 + mctx.input.cur_idx);\n                              if (iVar61 <= mctx.max_mb_elem_len) {\n                                iVar61 = mctx.max_mb_elem_len;\n                              }\n                              aVar45.sbcset = aVar46.sbcset;\n                              mctx.max_mb_elem_len = iVar61;\n                              err_1 = (*pcVar12)(&mctx);\n                              rVar21 = err_1;\n                              if (err_1 != _REG_NOERROR) goto LAB_00055e44;\n                              aVar49.sbcset =\n                                   (re_bitset_ptr_t)(prVar3->eclosures + prVar3->nexts[last_start]);\n                              unaff_s4 = (re_dfa_t *)(aVar46.idx * 4);\n                              last_start = (Idx)(mctx.state_log + aVar46.idx);\n                              if (*(bitset_word_t *)last_start == 0) {\n                                dest_nodes.alloc = *aVar49.sbcset;\n                                dest_nodes.nelem =\n                                     ((re_node_set *)&(aVar49.mbcset)->range_starts)->alloc;\n                                dest_nodes.elems = (aVar49.mbcset)->range_ends;\n                                prVar51 = (re_dfa_t *)\n                                          (*pcVar13)(&mctx,(undefined1 *)(aVar46.idx + -1),\n                                                     mctx.eflags);\n                                aVar49.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                                aVar45 = (anon_union_4_5_a39f51ca_for_opr)prVar3;\n                                prVar35 = re_acquire_state_context\n                                                    (&err_1,prVar3,(re_node_set *)aVar49.mbcset,\n                                                     (uint)prVar51);\n                                ((re_string_t *)&((re_charset_t *)last_start)->mbchars)->raw_mbs =\n                                     (uchar *)prVar35;\n                              }\n                              else {\n                                aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                                         ((anon_union_4_5_a39f51ca_for_opr *)\n                                         (*(bitset_word_t *)last_start + 0x28))->mbcset;\n                                err_1 = re_node_set_init_union\n                                                  (&dest_nodes,(re_node_set *)aVar45.mbcset,\n                                                   (re_node_set *)aVar49.mbcset);\n                                rVar21 = err_1;\n                                if (err_1 != _REG_NOERROR) goto LAB_00055e44;\n                                prVar51 = (re_dfa_t *)\n                                          (*pcVar13)(&mctx,(undefined1 *)(aVar46.idx + -1),\n                                                     mctx.eflags);\n                                pprVar14 = mctx.state_log + aVar46.idx;\n                                aVar49.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                                aVar45 = (anon_union_4_5_a39f51ca_for_opr)prVar3;\n                                prVar35 = re_acquire_state_context\n                                                    (&err_1,prVar3,(re_node_set *)aVar49.mbcset,\n                                                     (uint)prVar51);\n                                *pprVar14 = prVar35;\n                                (*(code *)PTR_free_00079c24)(dest_nodes.elems);\n                              }\n                              unaff_s4 = (re_dfa_t *)(mctx.state_log + aVar46.idx);\n                              if ((unaff_s4->nodes == (re_token_t *)0x0) &&\n                                 (rVar21 = err_1, err_1 != _REG_NOERROR)) goto LAB_00055e44;\n                            }\n                          }" if (parenthesized_expression "((uVar8 & 0x800) != 0)" ( (binary_expression "(uVar8 & 0x800) != 0" (parenthesized_expression "(uVar8 & 0x800)" ( (binary_expression "uVar8 & 0x800" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                            if ((uVar8 & 0xffc000) != 0) {\n                              aVar45.idx = mctx.input.cur_idx;\n                              uVar60 = (*pcVar13)(&mctx,mctx.input.cur_idx,mctx.eflags);\n                              uVar8 = (uint)(*(int *)&prVar53[last_start].field_0x4 << 8) >> 0x16;\n                              if ((uVar8 & 4) == 0) {\n                                uVar26 = uVar60 & 1;\n                                if ((uVar8 & 8) != 0) goto joined_r0x00054f40;\n                              }\n                              else {\n                                uVar26 = uVar8 & 8;\n                                if ((uVar60 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                                if (uVar26 != 0) goto LAB_000550a4;\n                              }\n                              if ((((uVar8 & 0x20) != 0) && ((uVar60 & 2) == 0)) ||\n                                 (((uVar8 & 0x80) != 0 &&\n                                  (prVar51 = (re_dfa_t *)mctx.input.cur_idx, (uVar60 & 8) == 0))))\n                              goto LAB_000550a4;\n                            }\n                            aVar49.sbcset = (re_bitset_ptr_t)&mctx;\n                            aVar45.idx = last_start;\n                            prVar51 = (re_dfa_t *)mctx.input.cur_idx;\n                            iVar61 = (*pcVar11)(prVar3);\n                            if (iVar61 != 0) {\n                              aVar46.sbcset = (re_bitset_ptr_t)(iVar61 + mctx.input.cur_idx);\n                              if (iVar61 <= mctx.max_mb_elem_len) {\n                                iVar61 = mctx.max_mb_elem_len;\n                              }\n                              aVar45.sbcset = aVar46.sbcset;\n                              mctx.max_mb_elem_len = iVar61;\n                              err_1 = (*pcVar12)(&mctx);\n                              rVar21 = err_1;\n                              if (err_1 != _REG_NOERROR) goto LAB_00055e44;\n                              aVar49.sbcset =\n                                   (re_bitset_ptr_t)(prVar3->eclosures + prVar3->nexts[last_start]);\n                              unaff_s4 = (re_dfa_t *)(aVar46.idx * 4);\n                              last_start = (Idx)(mctx.state_log + aVar46.idx);\n                              if (*(bitset_word_t *)last_start == 0) {\n                                dest_nodes.alloc = *aVar49.sbcset;\n                                dest_nodes.nelem =\n                                     ((re_node_set *)&(aVar49.mbcset)->range_starts)->alloc;\n                                dest_nodes.elems = (aVar49.mbcset)->range_ends;\n                                prVar51 = (re_dfa_t *)\n                                          (*pcVar13)(&mctx,(undefined1 *)(aVar46.idx + -1),\n                                                     mctx.eflags);\n                                aVar49.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                                aVar45 = (anon_union_4_5_a39f51ca_for_opr)prVar3;\n                                prVar35 = re_acquire_state_context\n                                                    (&err_1,prVar3,(re_node_set *)aVar49.mbcset,\n                                                     (uint)prVar51);\n                                ((re_string_t *)&((re_charset_t *)last_start)->mbchars)->raw_mbs =\n                                     (uchar *)prVar35;\n                              }\n                              else {\n                                aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                                         ((anon_union_4_5_a39f51ca_for_opr *)\n                                         (*(bitset_word_t *)last_start + 0x28))->mbcset;\n                                err_1 = re_node_set_init_union\n                                                  (&dest_nodes,(re_node_set *)aVar45.mbcset,\n                                                   (re_node_set *)aVar49.mbcset);\n                                rVar21 = err_1;\n                                if (err_1 != _REG_NOERROR) goto LAB_00055e44;\n                                prVar51 = (re_dfa_t *)\n                                          (*pcVar13)(&mctx,(undefined1 *)(aVar46.idx + -1),\n                                                     mctx.eflags);\n                                pprVar14 = mctx.state_log + aVar46.idx;\n                                aVar49.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                                aVar45 = (anon_union_4_5_a39f51ca_for_opr)prVar3;\n                                prVar35 = re_acquire_state_context\n                                                    (&err_1,prVar3,(re_node_set *)aVar49.mbcset,\n                                                     (uint)prVar51);\n                                *pprVar14 = prVar35;\n                                (*(code *)PTR_free_00079c24)(dest_nodes.elems);\n                              }\n                              unaff_s4 = (re_dfa_t *)(mctx.state_log + aVar46.idx);\n                              if ((unaff_s4->nodes == (re_token_t *)0x0) &&\n                                 (rVar21 = err_1, err_1 != _REG_NOERROR)) goto LAB_00055e44;\n                            }\n                          }" { (if_statement "if ((uVar8 & 0xffc000) != 0) {\n                              aVar45.idx = mctx.input.cur_idx;\n                              uVar60 = (*pcVar13)(&mctx,mctx.input.cur_idx,mctx.eflags);\n                              uVar8 = (uint)(*(int *)&prVar53[last_start].field_0x4 << 8) >> 0x16;\n                              if ((uVar8 & 4) == 0) {\n                                uVar26 = uVar60 & 1;\n                                if ((uVar8 & 8) != 0) goto joined_r0x00054f40;\n                              }\n                              else {\n                                uVar26 = uVar8 & 8;\n                                if ((uVar60 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                                if (uVar26 != 0) goto LAB_000550a4;\n                              }\n                              if ((((uVar8 & 0x20) != 0) && ((uVar60 & 2) == 0)) ||\n                                 (((uVar8 & 0x80) != 0 &&\n                                  (prVar51 = (re_dfa_t *)mctx.input.cur_idx, (uVar60 & 8) == 0))))\n                              goto LAB_000550a4;\n                            }" if (parenthesized_expression "((uVar8 & 0xffc000) != 0)" ( (binary_expression "(uVar8 & 0xffc000) != 0" (parenthesized_expression "(uVar8 & 0xffc000)" ( (binary_expression "uVar8 & 0xffc000" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                              aVar45.idx = mctx.input.cur_idx;\n                              uVar60 = (*pcVar13)(&mctx,mctx.input.cur_idx,mctx.eflags);\n                              uVar8 = (uint)(*(int *)&prVar53[last_start].field_0x4 << 8) >> 0x16;\n                              if ((uVar8 & 4) == 0) {\n                                uVar26 = uVar60 & 1;\n                                if ((uVar8 & 8) != 0) goto joined_r0x00054f40;\n                              }\n                              else {\n                                uVar26 = uVar8 & 8;\n                                if ((uVar60 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                                if (uVar26 != 0) goto LAB_000550a4;\n                              }\n                              if ((((uVar8 & 0x20) != 0) && ((uVar60 & 2) == 0)) ||\n                                 (((uVar8 & 0x80) != 0 &&\n                                  (prVar51 = (re_dfa_t *)mctx.input.cur_idx, (uVar60 & 8) == 0))))\n                              goto LAB_000550a4;\n                            }" { (expression_statement "aVar45.idx = mctx.input.cur_idx;" (assignment_expression "aVar45.idx = mctx.input.cur_idx" (field_expression "aVar45.idx" identifier . field_identifier) = (field_expression "mctx.input.cur_idx" (field_expression "mctx.input" identifier . field_identifier) . field_identifier)) ;) (expression_statement "uVar60 = (*pcVar13)(&mctx,mctx.input.cur_idx,mctx.eflags);" (assignment_expression "uVar60 = (*pcVar13)(&mctx,mctx.input.cur_idx,mctx.eflags)" identifier = (call_expression "(*pcVar13)(&mctx,mctx.input.cur_idx,mctx.eflags)" (parenthesized_expression "(*pcVar13)" ( (pointer_expression "*pcVar13" * identifier) )) (argument_list "(&mctx,mctx.input.cur_idx,mctx.eflags)" ( (pointer_expression "&mctx" & identifier) , (field_expression "mctx.input.cur_idx" (field_expression "mctx.input" identifier . field_identifier) . field_identifier) , (field_expression "mctx.eflags" identifier . field_identifier) )))) ;) (expression_statement "uVar8 = (uint)(*(int *)&prVar53[last_start].field_0x4 << 8) >> 0x16;" (assignment_expression "uVar8 = (uint)(*(int *)&prVar53[last_start].field_0x4 << 8) >> 0x16" identifier = (binary_expression "(uint)(*(int *)&prVar53[last_start].field_0x4 << 8) >> 0x16" (call_expression "(uint)(*(int *)&prVar53[last_start].field_0x4 << 8)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)&prVar53[last_start].field_0x4 << 8)" ( (binary_expression "*(int *)&prVar53[last_start].field_0x4 << 8" (pointer_expression "*(int *)&prVar53[last_start].field_0x4" * (cast_expression "(int *)&prVar53[last_start].field_0x4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&prVar53[last_start].field_0x4" & (field_expression "prVar53[last_start].field_0x4" (subscript_expression "prVar53[last_start]" identifier [ identifier ]) . field_identifier)))) << number_literal) ))) >> number_literal)) ;) (if_statement "if ((uVar8 & 4) == 0) {\n                                uVar26 = uVar60 & 1;\n                                if ((uVar8 & 8) != 0) goto joined_r0x00054f40;\n                              }\n                              else {\n                                uVar26 = uVar8 & 8;\n                                if ((uVar60 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                                if (uVar26 != 0) goto LAB_000550a4;\n                              }" if (parenthesized_expression "((uVar8 & 4) == 0)" ( (binary_expression "(uVar8 & 4) == 0" (parenthesized_expression "(uVar8 & 4)" ( (binary_expression "uVar8 & 4" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n                                uVar26 = uVar60 & 1;\n                                if ((uVar8 & 8) != 0) goto joined_r0x00054f40;\n                              }" { (expression_statement "uVar26 = uVar60 & 1;" (assignment_expression "uVar26 = uVar60 & 1" identifier = (binary_expression "uVar60 & 1" identifier & number_literal)) ;) (if_statement "if ((uVar8 & 8) != 0) goto joined_r0x00054f40;" if (parenthesized_expression "((uVar8 & 8) != 0)" ( (binary_expression "(uVar8 & 8) != 0" (parenthesized_expression "(uVar8 & 8)" ( (binary_expression "uVar8 & 8" identifier & number_literal) )) != number_literal) )) (goto_statement "goto joined_r0x00054f40;" goto statement_identifier ;)) }) (else_clause "else {\n                                uVar26 = uVar8 & 8;\n                                if ((uVar60 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                                if (uVar26 != 0) goto LAB_000550a4;\n                              }" else (compound_statement "{\n                                uVar26 = uVar8 & 8;\n                                if ((uVar60 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                                if (uVar26 != 0) goto LAB_000550a4;\n                              }" { (expression_statement "uVar26 = uVar8 & 8;" (assignment_expression "uVar26 = uVar8 & 8" identifier = (binary_expression "uVar8 & 8" identifier & number_literal)) ;) (if_statement "if ((uVar60 & 1) == 0) goto LAB_000550a4;" if (parenthesized_expression "((uVar60 & 1) == 0)" ( (binary_expression "(uVar60 & 1) == 0" (parenthesized_expression "(uVar60 & 1)" ( (binary_expression "uVar60 & 1" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_000550a4;" goto statement_identifier ;)) (labeled_statement "joined_r0x00054f40:\n                                if (uVar26 != 0) goto LAB_000550a4;" statement_identifier : (if_statement "if (uVar26 != 0) goto LAB_000550a4;" if (parenthesized_expression "(uVar26 != 0)" ( (binary_expression "uVar26 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000550a4;" goto statement_identifier ;))) }))) (if_statement "if ((((uVar8 & 0x20) != 0) && ((uVar60 & 2) == 0)) ||\n                                 (((uVar8 & 0x80) != 0 &&\n                                  (prVar51 = (re_dfa_t *)mctx.input.cur_idx, (uVar60 & 8) == 0))))\n                              goto LAB_000550a4;" if (parenthesized_expression "((((uVar8 & 0x20) != 0) && ((uVar60 & 2) == 0)) ||\n                                 (((uVar8 & 0x80) != 0 &&\n                                  (prVar51 = (re_dfa_t *)mctx.input.cur_idx, (uVar60 & 8) == 0))))" ( (binary_expression "(((uVar8 & 0x20) != 0) && ((uVar60 & 2) == 0)) ||\n                                 (((uVar8 & 0x80) != 0 &&\n                                  (prVar51 = (re_dfa_t *)mctx.input.cur_idx, (uVar60 & 8) == 0)))" (parenthesized_expression "(((uVar8 & 0x20) != 0) && ((uVar60 & 2) == 0))" ( (binary_expression "((uVar8 & 0x20) != 0) && ((uVar60 & 2) == 0)" (parenthesized_expression "((uVar8 & 0x20) != 0)" ( (binary_expression "(uVar8 & 0x20) != 0" (parenthesized_expression "(uVar8 & 0x20)" ( (binary_expression "uVar8 & 0x20" identifier & number_literal) )) != number_literal) )) && (parenthesized_expression "((uVar60 & 2) == 0)" ( (binary_expression "(uVar60 & 2) == 0" (parenthesized_expression "(uVar60 & 2)" ( (binary_expression "uVar60 & 2" identifier & number_literal) )) == number_literal) ))) )) || (parenthesized_expression "(((uVar8 & 0x80) != 0 &&\n                                  (prVar51 = (re_dfa_t *)mctx.input.cur_idx, (uVar60 & 8) == 0)))" ( (parenthesized_expression "((uVar8 & 0x80) != 0 &&\n                                  (prVar51 = (re_dfa_t *)mctx.input.cur_idx, (uVar60 & 8) == 0))" ( (binary_expression "(uVar8 & 0x80) != 0 &&\n                                  (prVar51 = (re_dfa_t *)mctx.input.cur_idx, (uVar60 & 8) == 0)" (binary_expression "(uVar8 & 0x80) != 0" (parenthesized_expression "(uVar8 & 0x80)" ( (binary_expression "uVar8 & 0x80" identifier & number_literal) )) != number_literal) && (parenthesized_expression "(prVar51 = (re_dfa_t *)mctx.input.cur_idx, (uVar60 & 8) == 0)" ( (comma_expression "prVar51 = (re_dfa_t *)mctx.input.cur_idx, (uVar60 & 8) == 0" (assignment_expression "prVar51 = (re_dfa_t *)mctx.input.cur_idx" identifier = (cast_expression "(re_dfa_t *)mctx.input.cur_idx" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "mctx.input.cur_idx" (field_expression "mctx.input" identifier . field_identifier) . field_identifier))) , (binary_expression "(uVar60 & 8) == 0" (parenthesized_expression "(uVar60 & 8)" ( (binary_expression "uVar60 & 8" identifier & number_literal) )) == number_literal)) ))) )) ))) )) (goto_statement "goto LAB_000550a4;" goto statement_identifier ;)) })) (expression_statement "aVar49.sbcset = (re_bitset_ptr_t)&mctx;" (assignment_expression "aVar49.sbcset = (re_bitset_ptr_t)&mctx" (field_expression "aVar49.sbcset" identifier . field_identifier) = (binary_expression "(re_bitset_ptr_t)&mctx" (parenthesized_expression "(re_bitset_ptr_t)" ( identifier )) & identifier)) ;) (expression_statement "aVar45.idx = last_start;" (assignment_expression "aVar45.idx = last_start" (field_expression "aVar45.idx" identifier . field_identifier) = identifier) ;) (expression_statement "prVar51 = (re_dfa_t *)mctx.input.cur_idx;" (assignment_expression "prVar51 = (re_dfa_t *)mctx.input.cur_idx" identifier = (cast_expression "(re_dfa_t *)mctx.input.cur_idx" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "mctx.input.cur_idx" (field_expression "mctx.input" identifier . field_identifier) . field_identifier))) ;) (expression_statement "iVar61 = (*pcVar11)(prVar3);" (assignment_expression "iVar61 = (*pcVar11)(prVar3)" identifier = (call_expression "(*pcVar11)(prVar3)" (parenthesized_expression "(*pcVar11)" ( (pointer_expression "*pcVar11" * identifier) )) (argument_list "(prVar3)" ( identifier )))) ;) (if_statement "if (iVar61 != 0) {\n                              aVar46.sbcset = (re_bitset_ptr_t)(iVar61 + mctx.input.cur_idx);\n                              if (iVar61 <= mctx.max_mb_elem_len) {\n                                iVar61 = mctx.max_mb_elem_len;\n                              }\n                              aVar45.sbcset = aVar46.sbcset;\n                              mctx.max_mb_elem_len = iVar61;\n                              err_1 = (*pcVar12)(&mctx);\n                              rVar21 = err_1;\n                              if (err_1 != _REG_NOERROR) goto LAB_00055e44;\n                              aVar49.sbcset =\n                                   (re_bitset_ptr_t)(prVar3->eclosures + prVar3->nexts[last_start]);\n                              unaff_s4 = (re_dfa_t *)(aVar46.idx * 4);\n                              last_start = (Idx)(mctx.state_log + aVar46.idx);\n                              if (*(bitset_word_t *)last_start == 0) {\n                                dest_nodes.alloc = *aVar49.sbcset;\n                                dest_nodes.nelem =\n                                     ((re_node_set *)&(aVar49.mbcset)->range_starts)->alloc;\n                                dest_nodes.elems = (aVar49.mbcset)->range_ends;\n                                prVar51 = (re_dfa_t *)\n                                          (*pcVar13)(&mctx,(undefined1 *)(aVar46.idx + -1),\n                                                     mctx.eflags);\n                                aVar49.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                                aVar45 = (anon_union_4_5_a39f51ca_for_opr)prVar3;\n                                prVar35 = re_acquire_state_context\n                                                    (&err_1,prVar3,(re_node_set *)aVar49.mbcset,\n                                                     (uint)prVar51);\n                                ((re_string_t *)&((re_charset_t *)last_start)->mbchars)->raw_mbs =\n                                     (uchar *)prVar35;\n                              }\n                              else {\n                                aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                                         ((anon_union_4_5_a39f51ca_for_opr *)\n                                         (*(bitset_word_t *)last_start + 0x28))->mbcset;\n                                err_1 = re_node_set_init_union\n                                                  (&dest_nodes,(re_node_set *)aVar45.mbcset,\n                                                   (re_node_set *)aVar49.mbcset);\n                                rVar21 = err_1;\n                                if (err_1 != _REG_NOERROR) goto LAB_00055e44;\n                                prVar51 = (re_dfa_t *)\n                                          (*pcVar13)(&mctx,(undefined1 *)(aVar46.idx + -1),\n                                                     mctx.eflags);\n                                pprVar14 = mctx.state_log + aVar46.idx;\n                                aVar49.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                                aVar45 = (anon_union_4_5_a39f51ca_for_opr)prVar3;\n                                prVar35 = re_acquire_state_context\n                                                    (&err_1,prVar3,(re_node_set *)aVar49.mbcset,\n                                                     (uint)prVar51);\n                                *pprVar14 = prVar35;\n                                (*(code *)PTR_free_00079c24)(dest_nodes.elems);\n                              }\n                              unaff_s4 = (re_dfa_t *)(mctx.state_log + aVar46.idx);\n                              if ((unaff_s4->nodes == (re_token_t *)0x0) &&\n                                 (rVar21 = err_1, err_1 != _REG_NOERROR)) goto LAB_00055e44;\n                            }" if (parenthesized_expression "(iVar61 != 0)" ( (binary_expression "iVar61 != 0" identifier != number_literal) )) (compound_statement "{\n                              aVar46.sbcset = (re_bitset_ptr_t)(iVar61 + mctx.input.cur_idx);\n                              if (iVar61 <= mctx.max_mb_elem_len) {\n                                iVar61 = mctx.max_mb_elem_len;\n                              }\n                              aVar45.sbcset = aVar46.sbcset;\n                              mctx.max_mb_elem_len = iVar61;\n                              err_1 = (*pcVar12)(&mctx);\n                              rVar21 = err_1;\n                              if (err_1 != _REG_NOERROR) goto LAB_00055e44;\n                              aVar49.sbcset =\n                                   (re_bitset_ptr_t)(prVar3->eclosures + prVar3->nexts[last_start]);\n                              unaff_s4 = (re_dfa_t *)(aVar46.idx * 4);\n                              last_start = (Idx)(mctx.state_log + aVar46.idx);\n                              if (*(bitset_word_t *)last_start == 0) {\n                                dest_nodes.alloc = *aVar49.sbcset;\n                                dest_nodes.nelem =\n                                     ((re_node_set *)&(aVar49.mbcset)->range_starts)->alloc;\n                                dest_nodes.elems = (aVar49.mbcset)->range_ends;\n                                prVar51 = (re_dfa_t *)\n                                          (*pcVar13)(&mctx,(undefined1 *)(aVar46.idx + -1),\n                                                     mctx.eflags);\n                                aVar49.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                                aVar45 = (anon_union_4_5_a39f51ca_for_opr)prVar3;\n                                prVar35 = re_acquire_state_context\n                                                    (&err_1,prVar3,(re_node_set *)aVar49.mbcset,\n                                                     (uint)prVar51);\n                                ((re_string_t *)&((re_charset_t *)last_start)->mbchars)->raw_mbs =\n                                     (uchar *)prVar35;\n                              }\n                              else {\n                                aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                                         ((anon_union_4_5_a39f51ca_for_opr *)\n                                         (*(bitset_word_t *)last_start + 0x28))->mbcset;\n                                err_1 = re_node_set_init_union\n                                                  (&dest_nodes,(re_node_set *)aVar45.mbcset,\n                                                   (re_node_set *)aVar49.mbcset);\n                                rVar21 = err_1;\n                                if (err_1 != _REG_NOERROR) goto LAB_00055e44;\n                                prVar51 = (re_dfa_t *)\n                                          (*pcVar13)(&mctx,(undefined1 *)(aVar46.idx + -1),\n                                                     mctx.eflags);\n                                pprVar14 = mctx.state_log + aVar46.idx;\n                                aVar49.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                                aVar45 = (anon_union_4_5_a39f51ca_for_opr)prVar3;\n                                prVar35 = re_acquire_state_context\n                                                    (&err_1,prVar3,(re_node_set *)aVar49.mbcset,\n                                                     (uint)prVar51);\n                                *pprVar14 = prVar35;\n                                (*(code *)PTR_free_00079c24)(dest_nodes.elems);\n                              }\n                              unaff_s4 = (re_dfa_t *)(mctx.state_log + aVar46.idx);\n                              if ((unaff_s4->nodes == (re_token_t *)0x0) &&\n                                 (rVar21 = err_1, err_1 != _REG_NOERROR)) goto LAB_00055e44;\n                            }" { (expression_statement "aVar46.sbcset = (re_bitset_ptr_t)(iVar61 + mctx.input.cur_idx);" (assignment_expression "aVar46.sbcset = (re_bitset_ptr_t)(iVar61 + mctx.input.cur_idx)" (field_expression "aVar46.sbcset" identifier . field_identifier) = (call_expression "(re_bitset_ptr_t)(iVar61 + mctx.input.cur_idx)" (parenthesized_expression "(re_bitset_ptr_t)" ( identifier )) (argument_list "(iVar61 + mctx.input.cur_idx)" ( (binary_expression "iVar61 + mctx.input.cur_idx" identifier + (field_expression "mctx.input.cur_idx" (field_expression "mctx.input" identifier . field_identifier) . field_identifier)) )))) ;) (if_statement "if (iVar61 <= mctx.max_mb_elem_len) {\n                                iVar61 = mctx.max_mb_elem_len;\n                              }" if (parenthesized_expression "(iVar61 <= mctx.max_mb_elem_len)" ( (binary_expression "iVar61 <= mctx.max_mb_elem_len" identifier <= (field_expression "mctx.max_mb_elem_len" identifier . field_identifier)) )) (compound_statement "{\n                                iVar61 = mctx.max_mb_elem_len;\n                              }" { (expression_statement "iVar61 = mctx.max_mb_elem_len;" (assignment_expression "iVar61 = mctx.max_mb_elem_len" identifier = (field_expression "mctx.max_mb_elem_len" identifier . field_identifier)) ;) })) (expression_statement "aVar45.sbcset = aVar46.sbcset;" (assignment_expression "aVar45.sbcset = aVar46.sbcset" (field_expression "aVar45.sbcset" identifier . field_identifier) = (field_expression "aVar46.sbcset" identifier . field_identifier)) ;) (expression_statement "mctx.max_mb_elem_len = iVar61;" (assignment_expression "mctx.max_mb_elem_len = iVar61" (field_expression "mctx.max_mb_elem_len" identifier . field_identifier) = identifier) ;) (expression_statement "err_1 = (*pcVar12)(&mctx);" (assignment_expression "err_1 = (*pcVar12)(&mctx)" identifier = (call_expression "(*pcVar12)(&mctx)" (parenthesized_expression "(*pcVar12)" ( (pointer_expression "*pcVar12" * identifier) )) (argument_list "(&mctx)" ( (pointer_expression "&mctx" & identifier) )))) ;) (expression_statement "rVar21 = err_1;" (assignment_expression "rVar21 = err_1" identifier = identifier) ;) (if_statement "if (err_1 != _REG_NOERROR) goto LAB_00055e44;" if (parenthesized_expression "(err_1 != _REG_NOERROR)" ( (binary_expression "err_1 != _REG_NOERROR" identifier != identifier) )) (goto_statement "goto LAB_00055e44;" goto statement_identifier ;)) (expression_statement "aVar49.sbcset =\n                                   (re_bitset_ptr_t)(prVar3->eclosures + prVar3->nexts[last_start]);" (assignment_expression "aVar49.sbcset =\n                                   (re_bitset_ptr_t)(prVar3->eclosures + prVar3->nexts[last_start])" (field_expression "aVar49.sbcset" identifier . field_identifier) = (call_expression "(re_bitset_ptr_t)(prVar3->eclosures + prVar3->nexts[last_start])" (parenthesized_expression "(re_bitset_ptr_t)" ( identifier )) (argument_list "(prVar3->eclosures + prVar3->nexts[last_start])" ( (binary_expression "prVar3->eclosures + prVar3->nexts[last_start]" (field_expression "prVar3->eclosures" identifier -> field_identifier) + (subscript_expression "prVar3->nexts[last_start]" (field_expression "prVar3->nexts" identifier -> field_identifier) [ identifier ])) )))) ;) (expression_statement "unaff_s4 = (re_dfa_t *)(aVar46.idx * 4);" (assignment_expression "unaff_s4 = (re_dfa_t *)(aVar46.idx * 4)" identifier = (cast_expression "(re_dfa_t *)(aVar46.idx * 4)" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(aVar46.idx * 4)" ( (binary_expression "aVar46.idx * 4" (field_expression "aVar46.idx" identifier . field_identifier) * number_literal) )))) ;) (expression_statement "last_start = (Idx)(mctx.state_log + aVar46.idx);" (assignment_expression "last_start = (Idx)(mctx.state_log + aVar46.idx)" identifier = (call_expression "(Idx)(mctx.state_log + aVar46.idx)" (parenthesized_expression "(Idx)" ( identifier )) (argument_list "(mctx.state_log + aVar46.idx)" ( (binary_expression "mctx.state_log + aVar46.idx" (field_expression "mctx.state_log" identifier . field_identifier) + (field_expression "aVar46.idx" identifier . field_identifier)) )))) ;) (if_statement "if (*(bitset_word_t *)last_start == 0) {\n                                dest_nodes.alloc = *aVar49.sbcset;\n                                dest_nodes.nelem =\n                                     ((re_node_set *)&(aVar49.mbcset)->range_starts)->alloc;\n                                dest_nodes.elems = (aVar49.mbcset)->range_ends;\n                                prVar51 = (re_dfa_t *)\n                                          (*pcVar13)(&mctx,(undefined1 *)(aVar46.idx + -1),\n                                                     mctx.eflags);\n                                aVar49.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                                aVar45 = (anon_union_4_5_a39f51ca_for_opr)prVar3;\n                                prVar35 = re_acquire_state_context\n                                                    (&err_1,prVar3,(re_node_set *)aVar49.mbcset,\n                                                     (uint)prVar51);\n                                ((re_string_t *)&((re_charset_t *)last_start)->mbchars)->raw_mbs =\n                                     (uchar *)prVar35;\n                              }\n                              else {\n                                aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                                         ((anon_union_4_5_a39f51ca_for_opr *)\n                                         (*(bitset_word_t *)last_start + 0x28))->mbcset;\n                                err_1 = re_node_set_init_union\n                                                  (&dest_nodes,(re_node_set *)aVar45.mbcset,\n                                                   (re_node_set *)aVar49.mbcset);\n                                rVar21 = err_1;\n                                if (err_1 != _REG_NOERROR) goto LAB_00055e44;\n                                prVar51 = (re_dfa_t *)\n                                          (*pcVar13)(&mctx,(undefined1 *)(aVar46.idx + -1),\n                                                     mctx.eflags);\n                                pprVar14 = mctx.state_log + aVar46.idx;\n                                aVar49.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                                aVar45 = (anon_union_4_5_a39f51ca_for_opr)prVar3;\n                                prVar35 = re_acquire_state_context\n                                                    (&err_1,prVar3,(re_node_set *)aVar49.mbcset,\n                                                     (uint)prVar51);\n                                *pprVar14 = prVar35;\n                                (*(code *)PTR_free_00079c24)(dest_nodes.elems);\n                              }" if (parenthesized_expression "(*(bitset_word_t *)last_start == 0)" ( (binary_expression "*(bitset_word_t *)last_start == 0" (pointer_expression "*(bitset_word_t *)last_start" * (cast_expression "(bitset_word_t *)last_start" ( (type_descriptor "bitset_word_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) == number_literal) )) (compound_statement "{\n                                dest_nodes.alloc = *aVar49.sbcset;\n                                dest_nodes.nelem =\n                                     ((re_node_set *)&(aVar49.mbcset)->range_starts)->alloc;\n                                dest_nodes.elems = (aVar49.mbcset)->range_ends;\n                                prVar51 = (re_dfa_t *)\n                                          (*pcVar13)(&mctx,(undefined1 *)(aVar46.idx + -1),\n                                                     mctx.eflags);\n                                aVar49.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                                aVar45 = (anon_union_4_5_a39f51ca_for_opr)prVar3;\n                                prVar35 = re_acquire_state_context\n                                                    (&err_1,prVar3,(re_node_set *)aVar49.mbcset,\n                                                     (uint)prVar51);\n                                ((re_string_t *)&((re_charset_t *)last_start)->mbchars)->raw_mbs =\n                                     (uchar *)prVar35;\n                              }" { (expression_statement "dest_nodes.alloc = *aVar49.sbcset;" (assignment_expression "dest_nodes.alloc = *aVar49.sbcset" (field_expression "dest_nodes.alloc" identifier . field_identifier) = (pointer_expression "*aVar49.sbcset" * (field_expression "aVar49.sbcset" identifier . field_identifier))) ;) (expression_statement "dest_nodes.nelem =\n                                     ((re_node_set *)&(aVar49.mbcset)->range_starts)->alloc;" (assignment_expression "dest_nodes.nelem =\n                                     ((re_node_set *)&(aVar49.mbcset)->range_starts)->alloc" (field_expression "dest_nodes.nelem" identifier . field_identifier) = (field_expression "((re_node_set *)&(aVar49.mbcset)->range_starts)->alloc" (parenthesized_expression "((re_node_set *)&(aVar49.mbcset)->range_starts)" ( (cast_expression "(re_node_set *)&(aVar49.mbcset)->range_starts" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(aVar49.mbcset)->range_starts" & (field_expression "(aVar49.mbcset)->range_starts" (parenthesized_expression "(aVar49.mbcset)" ( (field_expression "aVar49.mbcset" identifier . field_identifier) )) -> field_identifier))) )) -> field_identifier)) ;) (expression_statement "dest_nodes.elems = (aVar49.mbcset)->range_ends;" (assignment_expression "dest_nodes.elems = (aVar49.mbcset)->range_ends" (field_expression "dest_nodes.elems" identifier . field_identifier) = (field_expression "(aVar49.mbcset)->range_ends" (parenthesized_expression "(aVar49.mbcset)" ( (field_expression "aVar49.mbcset" identifier . field_identifier) )) -> field_identifier)) ;) (expression_statement "prVar51 = (re_dfa_t *)\n                                          (*pcVar13)(&mctx,(undefined1 *)(aVar46.idx + -1),\n                                                     mctx.eflags);" (assignment_expression "prVar51 = (re_dfa_t *)\n                                          (*pcVar13)(&mctx,(undefined1 *)(aVar46.idx + -1),\n                                                     mctx.eflags)" identifier = (cast_expression "(re_dfa_t *)\n                                          (*pcVar13)(&mctx,(undefined1 *)(aVar46.idx + -1),\n                                                     mctx.eflags)" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar13)(&mctx,(undefined1 *)(aVar46.idx + -1),\n                                                     mctx.eflags)" (parenthesized_expression "(*pcVar13)" ( (pointer_expression "*pcVar13" * identifier) )) (argument_list "(&mctx,(undefined1 *)(aVar46.idx + -1),\n                                                     mctx.eflags)" ( (pointer_expression "&mctx" & identifier) , (cast_expression "(undefined1 *)(aVar46.idx + -1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(aVar46.idx + -1)" ( (binary_expression "aVar46.idx + -1" (field_expression "aVar46.idx" identifier . field_identifier) + number_literal) ))) , (field_expression "mctx.eflags" identifier . field_identifier) ))))) ;) (expression_statement "aVar49.sbcset = (re_bitset_ptr_t)&dest_nodes;" (assignment_expression "aVar49.sbcset = (re_bitset_ptr_t)&dest_nodes" (field_expression "aVar49.sbcset" identifier . field_identifier) = (binary_expression "(re_bitset_ptr_t)&dest_nodes" (parenthesized_expression "(re_bitset_ptr_t)" ( identifier )) & identifier)) ;) (expression_statement "aVar45 = (anon_union_4_5_a39f51ca_for_opr)prVar3;" (assignment_expression "aVar45 = (anon_union_4_5_a39f51ca_for_opr)prVar3" identifier = (cast_expression "(anon_union_4_5_a39f51ca_for_opr)prVar3" ( (type_descriptor "anon_union_4_5_a39f51ca_for_opr" type_identifier) ) identifier)) ;) (expression_statement "prVar35 = re_acquire_state_context\n                                                    (&err_1,prVar3,(re_node_set *)aVar49.mbcset,\n                                                     (uint)prVar51);" (assignment_expression "prVar35 = re_acquire_state_context\n                                                    (&err_1,prVar3,(re_node_set *)aVar49.mbcset,\n                                                     (uint)prVar51)" identifier = (call_expression "re_acquire_state_context\n                                                    (&err_1,prVar3,(re_node_set *)aVar49.mbcset,\n                                                     (uint)prVar51)" identifier (argument_list "(&err_1,prVar3,(re_node_set *)aVar49.mbcset,\n                                                     (uint)prVar51)" ( (pointer_expression "&err_1" & identifier) , identifier , (cast_expression "(re_node_set *)aVar49.mbcset" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "aVar49.mbcset" identifier . field_identifier)) , (cast_expression "(uint)prVar51" ( (type_descriptor "uint" type_identifier) ) identifier) )))) ;) (expression_statement "((re_string_t *)&((re_charset_t *)last_start)->mbchars)->raw_mbs =\n                                     (uchar *)prVar35;" (assignment_expression "((re_string_t *)&((re_charset_t *)last_start)->mbchars)->raw_mbs =\n                                     (uchar *)prVar35" (field_expression "((re_string_t *)&((re_charset_t *)last_start)->mbchars)->raw_mbs" (parenthesized_expression "((re_string_t *)&((re_charset_t *)last_start)->mbchars)" ( (cast_expression "(re_string_t *)&((re_charset_t *)last_start)->mbchars" ( (type_descriptor "re_string_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&((re_charset_t *)last_start)->mbchars" & (field_expression "((re_charset_t *)last_start)->mbchars" (parenthesized_expression "((re_charset_t *)last_start)" ( (cast_expression "(re_charset_t *)last_start" ( (type_descriptor "re_charset_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier))) )) -> field_identifier) = (cast_expression "(uchar *)prVar35" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) }) (else_clause "else {\n                                aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                                         ((anon_union_4_5_a39f51ca_for_opr *)\n                                         (*(bitset_word_t *)last_start + 0x28))->mbcset;\n                                err_1 = re_node_set_init_union\n                                                  (&dest_nodes,(re_node_set *)aVar45.mbcset,\n                                                   (re_node_set *)aVar49.mbcset);\n                                rVar21 = err_1;\n                                if (err_1 != _REG_NOERROR) goto LAB_00055e44;\n                                prVar51 = (re_dfa_t *)\n                                          (*pcVar13)(&mctx,(undefined1 *)(aVar46.idx + -1),\n                                                     mctx.eflags);\n                                pprVar14 = mctx.state_log + aVar46.idx;\n                                aVar49.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                                aVar45 = (anon_union_4_5_a39f51ca_for_opr)prVar3;\n                                prVar35 = re_acquire_state_context\n                                                    (&err_1,prVar3,(re_node_set *)aVar49.mbcset,\n                                                     (uint)prVar51);\n                                *pprVar14 = prVar35;\n                                (*(code *)PTR_free_00079c24)(dest_nodes.elems);\n                              }" else (compound_statement "{\n                                aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                                         ((anon_union_4_5_a39f51ca_for_opr *)\n                                         (*(bitset_word_t *)last_start + 0x28))->mbcset;\n                                err_1 = re_node_set_init_union\n                                                  (&dest_nodes,(re_node_set *)aVar45.mbcset,\n                                                   (re_node_set *)aVar49.mbcset);\n                                rVar21 = err_1;\n                                if (err_1 != _REG_NOERROR) goto LAB_00055e44;\n                                prVar51 = (re_dfa_t *)\n                                          (*pcVar13)(&mctx,(undefined1 *)(aVar46.idx + -1),\n                                                     mctx.eflags);\n                                pprVar14 = mctx.state_log + aVar46.idx;\n                                aVar49.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                                aVar45 = (anon_union_4_5_a39f51ca_for_opr)prVar3;\n                                prVar35 = re_acquire_state_context\n                                                    (&err_1,prVar3,(re_node_set *)aVar49.mbcset,\n                                                     (uint)prVar51);\n                                *pprVar14 = prVar35;\n                                (*(code *)PTR_free_00079c24)(dest_nodes.elems);\n                              }" { (expression_statement "aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                                         ((anon_union_4_5_a39f51ca_for_opr *)\n                                         (*(bitset_word_t *)last_start + 0x28))->mbcset;" (assignment_expression "aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                                         ((anon_union_4_5_a39f51ca_for_opr *)\n                                         (*(bitset_word_t *)last_start + 0x28))->mbcset" identifier = (field_expression "(anon_union_4_5_a39f51ca_for_opr)\n                                         ((anon_union_4_5_a39f51ca_for_opr *)\n                                         (*(bitset_word_t *)last_start + 0x28))->mbcset" (call_expression "(anon_union_4_5_a39f51ca_for_opr)\n                                         ((anon_union_4_5_a39f51ca_for_opr *)\n                                         (*(bitset_word_t *)last_start + 0x28))" (parenthesized_expression "(anon_union_4_5_a39f51ca_for_opr)" ( identifier )) (argument_list "((anon_union_4_5_a39f51ca_for_opr *)\n                                         (*(bitset_word_t *)last_start + 0x28))" ( (cast_expression "(anon_union_4_5_a39f51ca_for_opr *)\n                                         (*(bitset_word_t *)last_start + 0x28)" ( (type_descriptor "anon_union_4_5_a39f51ca_for_opr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(bitset_word_t *)last_start + 0x28)" ( (binary_expression "*(bitset_word_t *)last_start + 0x28" (pointer_expression "*(bitset_word_t *)last_start" * (cast_expression "(bitset_word_t *)last_start" ( (type_descriptor "bitset_word_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))) ))) -> field_identifier)) ;) (expression_statement "err_1 = re_node_set_init_union\n                                                  (&dest_nodes,(re_node_set *)aVar45.mbcset,\n                                                   (re_node_set *)aVar49.mbcset);" (assignment_expression "err_1 = re_node_set_init_union\n                                                  (&dest_nodes,(re_node_set *)aVar45.mbcset,\n                                                   (re_node_set *)aVar49.mbcset)" identifier = (call_expression "re_node_set_init_union\n                                                  (&dest_nodes,(re_node_set *)aVar45.mbcset,\n                                                   (re_node_set *)aVar49.mbcset)" identifier (argument_list "(&dest_nodes,(re_node_set *)aVar45.mbcset,\n                                                   (re_node_set *)aVar49.mbcset)" ( (pointer_expression "&dest_nodes" & identifier) , (cast_expression "(re_node_set *)aVar45.mbcset" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "aVar45.mbcset" identifier . field_identifier)) , (cast_expression "(re_node_set *)aVar49.mbcset" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "aVar49.mbcset" identifier . field_identifier)) )))) ;) (expression_statement "rVar21 = err_1;" (assignment_expression "rVar21 = err_1" identifier = identifier) ;) (if_statement "if (err_1 != _REG_NOERROR) goto LAB_00055e44;" if (parenthesized_expression "(err_1 != _REG_NOERROR)" ( (binary_expression "err_1 != _REG_NOERROR" identifier != identifier) )) (goto_statement "goto LAB_00055e44;" goto statement_identifier ;)) (expression_statement "prVar51 = (re_dfa_t *)\n                                          (*pcVar13)(&mctx,(undefined1 *)(aVar46.idx + -1),\n                                                     mctx.eflags);" (assignment_expression "prVar51 = (re_dfa_t *)\n                                          (*pcVar13)(&mctx,(undefined1 *)(aVar46.idx + -1),\n                                                     mctx.eflags)" identifier = (cast_expression "(re_dfa_t *)\n                                          (*pcVar13)(&mctx,(undefined1 *)(aVar46.idx + -1),\n                                                     mctx.eflags)" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar13)(&mctx,(undefined1 *)(aVar46.idx + -1),\n                                                     mctx.eflags)" (parenthesized_expression "(*pcVar13)" ( (pointer_expression "*pcVar13" * identifier) )) (argument_list "(&mctx,(undefined1 *)(aVar46.idx + -1),\n                                                     mctx.eflags)" ( (pointer_expression "&mctx" & identifier) , (cast_expression "(undefined1 *)(aVar46.idx + -1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(aVar46.idx + -1)" ( (binary_expression "aVar46.idx + -1" (field_expression "aVar46.idx" identifier . field_identifier) + number_literal) ))) , (field_expression "mctx.eflags" identifier . field_identifier) ))))) ;) (expression_statement "pprVar14 = mctx.state_log + aVar46.idx;" (assignment_expression "pprVar14 = mctx.state_log + aVar46.idx" identifier = (binary_expression "mctx.state_log + aVar46.idx" (field_expression "mctx.state_log" identifier . field_identifier) + (field_expression "aVar46.idx" identifier . field_identifier))) ;) (expression_statement "aVar49.sbcset = (re_bitset_ptr_t)&dest_nodes;" (assignment_expression "aVar49.sbcset = (re_bitset_ptr_t)&dest_nodes" (field_expression "aVar49.sbcset" identifier . field_identifier) = (binary_expression "(re_bitset_ptr_t)&dest_nodes" (parenthesized_expression "(re_bitset_ptr_t)" ( identifier )) & identifier)) ;) (expression_statement "aVar45 = (anon_union_4_5_a39f51ca_for_opr)prVar3;" (assignment_expression "aVar45 = (anon_union_4_5_a39f51ca_for_opr)prVar3" identifier = (cast_expression "(anon_union_4_5_a39f51ca_for_opr)prVar3" ( (type_descriptor "anon_union_4_5_a39f51ca_for_opr" type_identifier) ) identifier)) ;) (expression_statement "prVar35 = re_acquire_state_context\n                                                    (&err_1,prVar3,(re_node_set *)aVar49.mbcset,\n                                                     (uint)prVar51);" (assignment_expression "prVar35 = re_acquire_state_context\n                                                    (&err_1,prVar3,(re_node_set *)aVar49.mbcset,\n                                                     (uint)prVar51)" identifier = (call_expression "re_acquire_state_context\n                                                    (&err_1,prVar3,(re_node_set *)aVar49.mbcset,\n                                                     (uint)prVar51)" identifier (argument_list "(&err_1,prVar3,(re_node_set *)aVar49.mbcset,\n                                                     (uint)prVar51)" ( (pointer_expression "&err_1" & identifier) , identifier , (cast_expression "(re_node_set *)aVar49.mbcset" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "aVar49.mbcset" identifier . field_identifier)) , (cast_expression "(uint)prVar51" ( (type_descriptor "uint" type_identifier) ) identifier) )))) ;) (expression_statement "*pprVar14 = prVar35;" (assignment_expression "*pprVar14 = prVar35" (pointer_expression "*pprVar14" * identifier) = identifier) ;) (expression_statement "(*(code *)PTR_free_00079c24)(dest_nodes.elems);" (call_expression "(*(code *)PTR_free_00079c24)(dest_nodes.elems)" (parenthesized_expression "(*(code *)PTR_free_00079c24)" ( (pointer_expression "*(code *)PTR_free_00079c24" * (cast_expression "(code *)PTR_free_00079c24" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(dest_nodes.elems)" ( (field_expression "dest_nodes.elems" identifier . field_identifier) ))) ;) }))) (expression_statement "unaff_s4 = (re_dfa_t *)(mctx.state_log + aVar46.idx);" (assignment_expression "unaff_s4 = (re_dfa_t *)(mctx.state_log + aVar46.idx)" identifier = (cast_expression "(re_dfa_t *)(mctx.state_log + aVar46.idx)" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(mctx.state_log + aVar46.idx)" ( (binary_expression "mctx.state_log + aVar46.idx" (field_expression "mctx.state_log" identifier . field_identifier) + (field_expression "aVar46.idx" identifier . field_identifier)) )))) ;) (if_statement "if ((unaff_s4->nodes == (re_token_t *)0x0) &&\n                                 (rVar21 = err_1, err_1 != _REG_NOERROR)) goto LAB_00055e44;" if (parenthesized_expression "((unaff_s4->nodes == (re_token_t *)0x0) &&\n                                 (rVar21 = err_1, err_1 != _REG_NOERROR))" ( (binary_expression "(unaff_s4->nodes == (re_token_t *)0x0) &&\n                                 (rVar21 = err_1, err_1 != _REG_NOERROR)" (parenthesized_expression "(unaff_s4->nodes == (re_token_t *)0x0)" ( (binary_expression "unaff_s4->nodes == (re_token_t *)0x0" (field_expression "unaff_s4->nodes" identifier -> field_identifier) == (cast_expression "(re_token_t *)0x0" ( (type_descriptor "re_token_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(rVar21 = err_1, err_1 != _REG_NOERROR)" ( (comma_expression "rVar21 = err_1, err_1 != _REG_NOERROR" (assignment_expression "rVar21 = err_1" identifier = identifier) , (binary_expression "err_1 != _REG_NOERROR" identifier != identifier)) ))) )) (goto_statement "goto LAB_00055e44;" goto statement_identifier ;)) })) })) (labeled_statement "LAB_000550a4:\n                          stop = (int)&((re_string_t *)&((re_charset_t *)stop)->mbchars)->raw_mbs +\n                                 1;" statement_identifier : (expression_statement "stop = (int)&((re_string_t *)&((re_charset_t *)stop)->mbchars)->raw_mbs +\n                                 1;" (assignment_expression "stop = (int)&((re_string_t *)&((re_charset_t *)stop)->mbchars)->raw_mbs +\n                                 1" identifier = (binary_expression "(int)&((re_string_t *)&((re_charset_t *)stop)->mbchars)->raw_mbs +\n                                 1" (cast_expression "(int)&((re_string_t *)&((re_charset_t *)stop)->mbchars)->raw_mbs" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&((re_string_t *)&((re_charset_t *)stop)->mbchars)->raw_mbs" & (field_expression "((re_string_t *)&((re_charset_t *)stop)->mbchars)->raw_mbs" (parenthesized_expression "((re_string_t *)&((re_charset_t *)stop)->mbchars)" ( (cast_expression "(re_string_t *)&((re_charset_t *)stop)->mbchars" ( (type_descriptor "re_string_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&((re_charset_t *)stop)->mbchars" & (field_expression "((re_charset_t *)stop)->mbchars" (parenthesized_expression "((re_charset_t *)stop)" ( (cast_expression "(re_charset_t *)stop" ( (type_descriptor "re_charset_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier))) )) -> field_identifier))) + number_literal)) ;)) }) while (parenthesized_expression "(stop < (int)(unaff_s7.mbcset)->range_ends)" ( (binary_expression "stop < (int)(unaff_s7.mbcset)->range_ends" identifier < (cast_expression "(int)(unaff_s7.mbcset)->range_ends" ( (type_descriptor "int" primitive_type) ) (field_expression "(unaff_s7.mbcset)->range_ends" (parenthesized_expression "(unaff_s7.mbcset)" ( (field_expression "unaff_s7.mbcset" identifier . field_identifier) )) -> field_identifier))) )) ;) })) (expression_statement "err = _REG_NOERROR;" (assignment_expression "err = _REG_NOERROR" identifier = identifier) ;) })) (expression_statement "uVar8 = (uint)mctx.input.mbs[mctx.input.cur_idx];" (assignment_expression "uVar8 = (uint)mctx.input.mbs[mctx.input.cur_idx]" identifier = (cast_expression "(uint)mctx.input.mbs[mctx.input.cur_idx]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "mctx.input.mbs[mctx.input.cur_idx]" (field_expression "mctx.input.mbs" (field_expression "mctx.input" identifier . field_identifier) . field_identifier) [ (field_expression "mctx.input.cur_idx" (field_expression "mctx.input" identifier . field_identifier) . field_identifier) ]))) ;) (expression_statement "mctx.input.cur_idx = mctx.input.cur_idx + 1;" (assignment_expression "mctx.input.cur_idx = mctx.input.cur_idx + 1" (field_expression "mctx.input.cur_idx" (field_expression "mctx.input" identifier . field_identifier) . field_identifier) = (binary_expression "mctx.input.cur_idx + 1" (field_expression "mctx.input.cur_idx" (field_expression "mctx.input" identifier . field_identifier) . field_identifier) + number_literal)) ;) (do_statement "do {\n                      if (*(re_dfastate_t **)(unaff_s7.idx + 0x2c) != (re_dfastate_t *)0x0) {\n                        aVar49 = (anon_union_4_5_a39f51ca_for_opr)\n                                 ((anon_union_4_5_a39f51ca_for_opr *)\n                                 (&(*(re_dfastate_t **)(unaff_s7.idx + 0x2c))->hash + uVar8))->\n                                 mbcset;\nLAB_000553a0:\n                        aVar15 = aVar49;\n                        if (mctx.state_log != (re_dfastate_t **)0x0) goto LAB_000553ac;\n                        goto LAB_000553cc;\n                      }\n                      paVar18 = *(anon_union_4_5_a39f51ca_for_opr **)(unaff_s7.idx + 0x30);\n                      if (paVar18 != (anon_union_4_5_a39f51ca_for_opr *)0x0) {\n                        aVar45.sbcset = (re_bitset_ptr_t)(mctx.input.cur_idx + -1);\n                        uVar60 = re_string_context_at(&mctx.input,aVar45.idx,mctx.eflags);\n                        if ((uVar60 & 1) == 0) {\n                          aVar49 = (anon_union_4_5_a39f51ca_for_opr)paVar18[uVar8].mbcset;\n                        }\n                        else {\n                          paVar18 = paVar18 + uVar8 + 0x100;\n                          aVar49 = (anon_union_4_5_a39f51ca_for_opr)paVar18->mbcset;\n                        }\n                        goto LAB_000553a0;\n                      }\n                      aVar45 = unaff_s7;\n                      aVar49 = (anon_union_4_5_a39f51ca_for_opr)mctx.eflags;\n                      iVar61 = (*pcVar10)(mctx.dfa);\n                    } while (iVar61 != 0);" do (compound_statement "{\n                      if (*(re_dfastate_t **)(unaff_s7.idx + 0x2c) != (re_dfastate_t *)0x0) {\n                        aVar49 = (anon_union_4_5_a39f51ca_for_opr)\n                                 ((anon_union_4_5_a39f51ca_for_opr *)\n                                 (&(*(re_dfastate_t **)(unaff_s7.idx + 0x2c))->hash + uVar8))->\n                                 mbcset;\nLAB_000553a0:\n                        aVar15 = aVar49;\n                        if (mctx.state_log != (re_dfastate_t **)0x0) goto LAB_000553ac;\n                        goto LAB_000553cc;\n                      }\n                      paVar18 = *(anon_union_4_5_a39f51ca_for_opr **)(unaff_s7.idx + 0x30);\n                      if (paVar18 != (anon_union_4_5_a39f51ca_for_opr *)0x0) {\n                        aVar45.sbcset = (re_bitset_ptr_t)(mctx.input.cur_idx + -1);\n                        uVar60 = re_string_context_at(&mctx.input,aVar45.idx,mctx.eflags);\n                        if ((uVar60 & 1) == 0) {\n                          aVar49 = (anon_union_4_5_a39f51ca_for_opr)paVar18[uVar8].mbcset;\n                        }\n                        else {\n                          paVar18 = paVar18 + uVar8 + 0x100;\n                          aVar49 = (anon_union_4_5_a39f51ca_for_opr)paVar18->mbcset;\n                        }\n                        goto LAB_000553a0;\n                      }\n                      aVar45 = unaff_s7;\n                      aVar49 = (anon_union_4_5_a39f51ca_for_opr)mctx.eflags;\n                      iVar61 = (*pcVar10)(mctx.dfa);\n                    }" { (if_statement "if (*(re_dfastate_t **)(unaff_s7.idx + 0x2c) != (re_dfastate_t *)0x0) {\n                        aVar49 = (anon_union_4_5_a39f51ca_for_opr)\n                                 ((anon_union_4_5_a39f51ca_for_opr *)\n                                 (&(*(re_dfastate_t **)(unaff_s7.idx + 0x2c))->hash + uVar8))->\n                                 mbcset;\nLAB_000553a0:\n                        aVar15 = aVar49;\n                        if (mctx.state_log != (re_dfastate_t **)0x0) goto LAB_000553ac;\n                        goto LAB_000553cc;\n                      }" if (parenthesized_expression "(*(re_dfastate_t **)(unaff_s7.idx + 0x2c) != (re_dfastate_t *)0x0)" ( (binary_expression "*(re_dfastate_t **)(unaff_s7.idx + 0x2c) != (re_dfastate_t *)0x0" (pointer_expression "*(re_dfastate_t **)(unaff_s7.idx + 0x2c)" * (cast_expression "(re_dfastate_t **)(unaff_s7.idx + 0x2c)" ( (type_descriptor "re_dfastate_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_s7.idx + 0x2c)" ( (binary_expression "unaff_s7.idx + 0x2c" (field_expression "unaff_s7.idx" identifier . field_identifier) + number_literal) )))) != (cast_expression "(re_dfastate_t *)0x0" ( (type_descriptor "re_dfastate_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                        aVar49 = (anon_union_4_5_a39f51ca_for_opr)\n                                 ((anon_union_4_5_a39f51ca_for_opr *)\n                                 (&(*(re_dfastate_t **)(unaff_s7.idx + 0x2c))->hash + uVar8))->\n                                 mbcset;\nLAB_000553a0:\n                        aVar15 = aVar49;\n                        if (mctx.state_log != (re_dfastate_t **)0x0) goto LAB_000553ac;\n                        goto LAB_000553cc;\n                      }" { (expression_statement "aVar49 = (anon_union_4_5_a39f51ca_for_opr)\n                                 ((anon_union_4_5_a39f51ca_for_opr *)\n                                 (&(*(re_dfastate_t **)(unaff_s7.idx + 0x2c))->hash + uVar8))->\n                                 mbcset;" (assignment_expression "aVar49 = (anon_union_4_5_a39f51ca_for_opr)\n                                 ((anon_union_4_5_a39f51ca_for_opr *)\n                                 (&(*(re_dfastate_t **)(unaff_s7.idx + 0x2c))->hash + uVar8))->\n                                 mbcset" identifier = (field_expression "(anon_union_4_5_a39f51ca_for_opr)\n                                 ((anon_union_4_5_a39f51ca_for_opr *)\n                                 (&(*(re_dfastate_t **)(unaff_s7.idx + 0x2c))->hash + uVar8))->\n                                 mbcset" (call_expression "(anon_union_4_5_a39f51ca_for_opr)\n                                 ((anon_union_4_5_a39f51ca_for_opr *)\n                                 (&(*(re_dfastate_t **)(unaff_s7.idx + 0x2c))->hash + uVar8))" (parenthesized_expression "(anon_union_4_5_a39f51ca_for_opr)" ( identifier )) (argument_list "((anon_union_4_5_a39f51ca_for_opr *)\n                                 (&(*(re_dfastate_t **)(unaff_s7.idx + 0x2c))->hash + uVar8))" ( (cast_expression "(anon_union_4_5_a39f51ca_for_opr *)\n                                 (&(*(re_dfastate_t **)(unaff_s7.idx + 0x2c))->hash + uVar8)" ( (type_descriptor "anon_union_4_5_a39f51ca_for_opr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&(*(re_dfastate_t **)(unaff_s7.idx + 0x2c))->hash + uVar8)" ( (binary_expression "&(*(re_dfastate_t **)(unaff_s7.idx + 0x2c))->hash + uVar8" (pointer_expression "&(*(re_dfastate_t **)(unaff_s7.idx + 0x2c))->hash" & (field_expression "(*(re_dfastate_t **)(unaff_s7.idx + 0x2c))->hash" (parenthesized_expression "(*(re_dfastate_t **)(unaff_s7.idx + 0x2c))" ( (pointer_expression "*(re_dfastate_t **)(unaff_s7.idx + 0x2c)" * (cast_expression "(re_dfastate_t **)(unaff_s7.idx + 0x2c)" ( (type_descriptor "re_dfastate_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_s7.idx + 0x2c)" ( (binary_expression "unaff_s7.idx + 0x2c" (field_expression "unaff_s7.idx" identifier . field_identifier) + number_literal) )))) )) -> field_identifier)) + identifier) ))) ))) -> field_identifier)) ;) (labeled_statement "LAB_000553a0:\n                        aVar15 = aVar49;" statement_identifier : (expression_statement "aVar15 = aVar49;" (assignment_expression "aVar15 = aVar49" identifier = identifier) ;)) (if_statement "if (mctx.state_log != (re_dfastate_t **)0x0) goto LAB_000553ac;" if (parenthesized_expression "(mctx.state_log != (re_dfastate_t **)0x0)" ( (binary_expression "mctx.state_log != (re_dfastate_t **)0x0" (field_expression "mctx.state_log" 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_000553ac;" goto statement_identifier ;)) (goto_statement "goto LAB_000553cc;" goto statement_identifier ;) })) (expression_statement "paVar18 = *(anon_union_4_5_a39f51ca_for_opr **)(unaff_s7.idx + 0x30);" (assignment_expression "paVar18 = *(anon_union_4_5_a39f51ca_for_opr **)(unaff_s7.idx + 0x30)" identifier = (pointer_expression "*(anon_union_4_5_a39f51ca_for_opr **)(unaff_s7.idx + 0x30)" * (cast_expression "(anon_union_4_5_a39f51ca_for_opr **)(unaff_s7.idx + 0x30)" ( (type_descriptor "anon_union_4_5_a39f51ca_for_opr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_s7.idx + 0x30)" ( (binary_expression "unaff_s7.idx + 0x30" (field_expression "unaff_s7.idx" identifier . field_identifier) + number_literal) ))))) ;) (if_statement "if (paVar18 != (anon_union_4_5_a39f51ca_for_opr *)0x0) {\n                        aVar45.sbcset = (re_bitset_ptr_t)(mctx.input.cur_idx + -1);\n                        uVar60 = re_string_context_at(&mctx.input,aVar45.idx,mctx.eflags);\n                        if ((uVar60 & 1) == 0) {\n                          aVar49 = (anon_union_4_5_a39f51ca_for_opr)paVar18[uVar8].mbcset;\n                        }\n                        else {\n                          paVar18 = paVar18 + uVar8 + 0x100;\n                          aVar49 = (anon_union_4_5_a39f51ca_for_opr)paVar18->mbcset;\n                        }\n                        goto LAB_000553a0;\n                      }" if (parenthesized_expression "(paVar18 != (anon_union_4_5_a39f51ca_for_opr *)0x0)" ( (binary_expression "paVar18 != (anon_union_4_5_a39f51ca_for_opr *)0x0" identifier != (cast_expression "(anon_union_4_5_a39f51ca_for_opr *)0x0" ( (type_descriptor "anon_union_4_5_a39f51ca_for_opr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                        aVar45.sbcset = (re_bitset_ptr_t)(mctx.input.cur_idx + -1);\n                        uVar60 = re_string_context_at(&mctx.input,aVar45.idx,mctx.eflags);\n                        if ((uVar60 & 1) == 0) {\n                          aVar49 = (anon_union_4_5_a39f51ca_for_opr)paVar18[uVar8].mbcset;\n                        }\n                        else {\n                          paVar18 = paVar18 + uVar8 + 0x100;\n                          aVar49 = (anon_union_4_5_a39f51ca_for_opr)paVar18->mbcset;\n                        }\n                        goto LAB_000553a0;\n                      }" { (expression_statement "aVar45.sbcset = (re_bitset_ptr_t)(mctx.input.cur_idx + -1);" (assignment_expression "aVar45.sbcset = (re_bitset_ptr_t)(mctx.input.cur_idx + -1)" (field_expression "aVar45.sbcset" identifier . field_identifier) = (call_expression "(re_bitset_ptr_t)(mctx.input.cur_idx + -1)" (parenthesized_expression "(re_bitset_ptr_t)" ( identifier )) (argument_list "(mctx.input.cur_idx + -1)" ( (binary_expression "mctx.input.cur_idx + -1" (field_expression "mctx.input.cur_idx" (field_expression "mctx.input" identifier . field_identifier) . field_identifier) + number_literal) )))) ;) (expression_statement "uVar60 = re_string_context_at(&mctx.input,aVar45.idx,mctx.eflags);" (assignment_expression "uVar60 = re_string_context_at(&mctx.input,aVar45.idx,mctx.eflags)" identifier = (call_expression "re_string_context_at(&mctx.input,aVar45.idx,mctx.eflags)" identifier (argument_list "(&mctx.input,aVar45.idx,mctx.eflags)" ( (pointer_expression "&mctx.input" & (field_expression "mctx.input" identifier . field_identifier)) , (field_expression "aVar45.idx" identifier . field_identifier) , (field_expression "mctx.eflags" identifier . field_identifier) )))) ;) (if_statement "if ((uVar60 & 1) == 0) {\n                          aVar49 = (anon_union_4_5_a39f51ca_for_opr)paVar18[uVar8].mbcset;\n                        }\n                        else {\n                          paVar18 = paVar18 + uVar8 + 0x100;\n                          aVar49 = (anon_union_4_5_a39f51ca_for_opr)paVar18->mbcset;\n                        }" if (parenthesized_expression "((uVar60 & 1) == 0)" ( (binary_expression "(uVar60 & 1) == 0" (parenthesized_expression "(uVar60 & 1)" ( (binary_expression "uVar60 & 1" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n                          aVar49 = (anon_union_4_5_a39f51ca_for_opr)paVar18[uVar8].mbcset;\n                        }" { (expression_statement "aVar49 = (anon_union_4_5_a39f51ca_for_opr)paVar18[uVar8].mbcset;" (assignment_expression "aVar49 = (anon_union_4_5_a39f51ca_for_opr)paVar18[uVar8].mbcset" identifier = (cast_expression "(anon_union_4_5_a39f51ca_for_opr)paVar18[uVar8].mbcset" ( (type_descriptor "anon_union_4_5_a39f51ca_for_opr" type_identifier) ) (field_expression "paVar18[uVar8].mbcset" (subscript_expression "paVar18[uVar8]" identifier [ identifier ]) . field_identifier))) ;) }) (else_clause "else {\n                          paVar18 = paVar18 + uVar8 + 0x100;\n                          aVar49 = (anon_union_4_5_a39f51ca_for_opr)paVar18->mbcset;\n                        }" else (compound_statement "{\n                          paVar18 = paVar18 + uVar8 + 0x100;\n                          aVar49 = (anon_union_4_5_a39f51ca_for_opr)paVar18->mbcset;\n                        }" { (expression_statement "paVar18 = paVar18 + uVar8 + 0x100;" (assignment_expression "paVar18 = paVar18 + uVar8 + 0x100" identifier = (binary_expression "paVar18 + uVar8 + 0x100" (binary_expression "paVar18 + uVar8" identifier + identifier) + number_literal)) ;) (expression_statement "aVar49 = (anon_union_4_5_a39f51ca_for_opr)paVar18->mbcset;" (assignment_expression "aVar49 = (anon_union_4_5_a39f51ca_for_opr)paVar18->mbcset" identifier = (cast_expression "(anon_union_4_5_a39f51ca_for_opr)paVar18->mbcset" ( (type_descriptor "anon_union_4_5_a39f51ca_for_opr" type_identifier) ) (field_expression "paVar18->mbcset" identifier -> field_identifier))) ;) }))) (goto_statement "goto LAB_000553a0;" goto statement_identifier ;) })) (expression_statement "aVar45 = unaff_s7;" (assignment_expression "aVar45 = unaff_s7" identifier = identifier) ;) (expression_statement "aVar49 = (anon_union_4_5_a39f51ca_for_opr)mctx.eflags;" (assignment_expression "aVar49 = (anon_union_4_5_a39f51ca_for_opr)mctx.eflags" identifier = (cast_expression "(anon_union_4_5_a39f51ca_for_opr)mctx.eflags" ( (type_descriptor "anon_union_4_5_a39f51ca_for_opr" type_identifier) ) (field_expression "mctx.eflags" identifier . field_identifier))) ;) (expression_statement "iVar61 = (*pcVar10)(mctx.dfa);" (assignment_expression "iVar61 = (*pcVar10)(mctx.dfa)" identifier = (call_expression "(*pcVar10)(mctx.dfa)" (parenthesized_expression "(*pcVar10)" ( (pointer_expression "*pcVar10" * identifier) )) (argument_list "(mctx.dfa)" ( (field_expression "mctx.dfa" identifier . field_identifier) )))) ;) }) while (parenthesized_expression "(iVar61 != 0)" ( (binary_expression "iVar61 != 0" identifier != number_literal) )) ;) (expression_statement "err = _REG_ESPACE;" (assignment_expression "err = _REG_ESPACE" identifier = identifier) ;) (expression_statement "rVar21 = err;" (assignment_expression "rVar21 = err" identifier = identifier) ;) (labeled_statement "LAB_00055e44:\n                    err = rVar21;" statement_identifier : (expression_statement "err = rVar21;" (assignment_expression "err = rVar21" identifier = identifier) ;)) (expression_statement "aVar46.sbcset = (re_bitset_ptr_t)0x0;" (assignment_expression "aVar46.sbcset = (re_bitset_ptr_t)0x0" (field_expression "aVar46.sbcset" identifier . field_identifier) = (cast_expression "(re_bitset_ptr_t)0x0" ( (type_descriptor "re_bitset_ptr_t" type_identifier) ) number_literal)) ;) (if_statement "if (mctx.state_log == (re_dfastate_t **)0x0) {\n                      aVar15.sbcset = aVar46.sbcset;\n                      if (err != _REG_NOERROR) goto LAB_00055914;\n                      break;\n                    }" if (parenthesized_expression "(mctx.state_log == (re_dfastate_t **)0x0)" ( (binary_expression "mctx.state_log == (re_dfastate_t **)0x0" (field_expression "mctx.state_log" 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                      aVar15.sbcset = aVar46.sbcset;\n                      if (err != _REG_NOERROR) goto LAB_00055914;\n                      break;\n                    }" { (expression_statement "aVar15.sbcset = aVar46.sbcset;" (assignment_expression "aVar15.sbcset = aVar46.sbcset" (field_expression "aVar15.sbcset" identifier . field_identifier) = (field_expression "aVar46.sbcset" identifier . field_identifier)) ;) (if_statement "if (err != _REG_NOERROR) goto LAB_00055914;" if (parenthesized_expression "(err != _REG_NOERROR)" ( (binary_expression "err != _REG_NOERROR" identifier != identifier) )) (goto_statement "goto LAB_00055914;" goto statement_identifier ;)) (break_statement "break;" break ;) })) (expression_statement "aVar49.sbcset = (re_bitset_ptr_t)0x0;" (assignment_expression "aVar49.sbcset = (re_bitset_ptr_t)0x0" (field_expression "aVar49.sbcset" identifier . field_identifier) = (cast_expression "(re_bitset_ptr_t)0x0" ( (type_descriptor "re_bitset_ptr_t" type_identifier) ) number_literal)) ;) (labeled_statement "LAB_000553ac:\n                    aVar45.sbcset = (re_bitset_ptr_t)&mctx;" statement_identifier : (expression_statement "aVar45.sbcset = (re_bitset_ptr_t)&mctx;" (assignment_expression "aVar45.sbcset = (re_bitset_ptr_t)&mctx" (field_expression "aVar45.sbcset" identifier . field_identifier) = (binary_expression "(re_bitset_ptr_t)&mctx" (parenthesized_expression "(re_bitset_ptr_t)" ( identifier )) & identifier)) ;)) (expression_statement "aVar15.sbcset =\n                         &merge_state_with_log\n                                    (&err,(re_match_context_t *)aVar45.mbcset,aVar49.sbcset)->hash;" (assignment_expression "aVar15.sbcset =\n                         &merge_state_with_log\n                                    (&err,(re_match_context_t *)aVar45.mbcset,aVar49.sbcset)->hash" (field_expression "aVar15.sbcset" identifier . field_identifier) = (pointer_expression "&merge_state_with_log\n                                    (&err,(re_match_context_t *)aVar45.mbcset,aVar49.sbcset)->hash" & (field_expression "merge_state_with_log\n                                    (&err,(re_match_context_t *)aVar45.mbcset,aVar49.sbcset)->hash" (call_expression "merge_state_with_log\n                                    (&err,(re_match_context_t *)aVar45.mbcset,aVar49.sbcset)" identifier (argument_list "(&err,(re_match_context_t *)aVar45.mbcset,aVar49.sbcset)" ( (pointer_expression "&err" & identifier) , (cast_expression "(re_match_context_t *)aVar45.mbcset" ( (type_descriptor "re_match_context_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "aVar45.mbcset" identifier . field_identifier)) , (field_expression "aVar49.sbcset" identifier . field_identifier) ))) -> field_identifier))) ;) (labeled_statement "LAB_000553cc:\n                    aVar46 = aVar15;" statement_identifier : (expression_statement "aVar46 = aVar15;" (assignment_expression "aVar46 = aVar15" identifier = identifier) ;)) (if_statement "if ((re_dfa_t *)aVar15.sbcset == (re_dfa_t *)0x0) {\n                      if (err != _REG_NOERROR) goto LAB_00055914;\n                      if ((mctx.state_log == (re_dfastate_t **)0x0) ||\n                         ((prVar52 != (re_dfa_t *)0x0 &&\n                          (paVar54 == (anon_union_4_5_a39f51ca_for_opr *)0x0)))) break;\n                      stop = (Idx)&mctx;\n                      last_start = (Idx)&err;\n                      paVar18 = (anon_union_4_5_a39f51ca_for_opr *)(PTR_DAT_000799a4 + 0x3684);\n                      do {\n                        pprVar14 = mctx.state_log + mctx.input.cur_idx;\n                        IVar17 = mctx.input.cur_idx;\n                        do {\n                          IVar17 = IVar17 + 1;\n                          aVar45.idx = mctx.state_log_top;\n                          aVar46 = aVar15;\n                          if (mctx.state_log_top < IVar17) goto LAB_00055da8;\n                          mctx.input.cur_idx = mctx.input.cur_idx + 1;\n                          pprVar14 = pprVar14 + 1;\n                        } while (*pprVar14 == (re_dfastate_t *)0x0);\n                        aVar49.sbcset = (re_bitset_ptr_t)0x0;\n                        aVar45.sbcset = (re_bitset_ptr_t)stop;\n                        aVar46.sbcset = (re_bitset_ptr_t)(*(code *)paVar18)(last_start);\n                        if (err != _REG_NOERROR) {\n                          if ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0) goto LAB_00055da8;\n                          break;\n                        }\n                        aVar45.idx = mctx.state_log_top;\n                      } while ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0);\n                    }" if (parenthesized_expression "((re_dfa_t *)aVar15.sbcset == (re_dfa_t *)0x0)" ( (binary_expression "(re_dfa_t *)aVar15.sbcset == (re_dfa_t *)0x0" (cast_expression "(re_dfa_t *)aVar15.sbcset" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "aVar15.sbcset" identifier . field_identifier)) == (cast_expression "(re_dfa_t *)0x0" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                      if (err != _REG_NOERROR) goto LAB_00055914;\n                      if ((mctx.state_log == (re_dfastate_t **)0x0) ||\n                         ((prVar52 != (re_dfa_t *)0x0 &&\n                          (paVar54 == (anon_union_4_5_a39f51ca_for_opr *)0x0)))) break;\n                      stop = (Idx)&mctx;\n                      last_start = (Idx)&err;\n                      paVar18 = (anon_union_4_5_a39f51ca_for_opr *)(PTR_DAT_000799a4 + 0x3684);\n                      do {\n                        pprVar14 = mctx.state_log + mctx.input.cur_idx;\n                        IVar17 = mctx.input.cur_idx;\n                        do {\n                          IVar17 = IVar17 + 1;\n                          aVar45.idx = mctx.state_log_top;\n                          aVar46 = aVar15;\n                          if (mctx.state_log_top < IVar17) goto LAB_00055da8;\n                          mctx.input.cur_idx = mctx.input.cur_idx + 1;\n                          pprVar14 = pprVar14 + 1;\n                        } while (*pprVar14 == (re_dfastate_t *)0x0);\n                        aVar49.sbcset = (re_bitset_ptr_t)0x0;\n                        aVar45.sbcset = (re_bitset_ptr_t)stop;\n                        aVar46.sbcset = (re_bitset_ptr_t)(*(code *)paVar18)(last_start);\n                        if (err != _REG_NOERROR) {\n                          if ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0) goto LAB_00055da8;\n                          break;\n                        }\n                        aVar45.idx = mctx.state_log_top;\n                      } while ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0);\n                    }" { (if_statement "if (err != _REG_NOERROR) goto LAB_00055914;" if (parenthesized_expression "(err != _REG_NOERROR)" ( (binary_expression "err != _REG_NOERROR" identifier != identifier) )) (goto_statement "goto LAB_00055914;" goto statement_identifier ;)) (if_statement "if ((mctx.state_log == (re_dfastate_t **)0x0) ||\n                         ((prVar52 != (re_dfa_t *)0x0 &&\n                          (paVar54 == (anon_union_4_5_a39f51ca_for_opr *)0x0)))) break;" if (parenthesized_expression "((mctx.state_log == (re_dfastate_t **)0x0) ||\n                         ((prVar52 != (re_dfa_t *)0x0 &&\n                          (paVar54 == (anon_union_4_5_a39f51ca_for_opr *)0x0))))" ( (binary_expression "(mctx.state_log == (re_dfastate_t **)0x0) ||\n                         ((prVar52 != (re_dfa_t *)0x0 &&\n                          (paVar54 == (anon_union_4_5_a39f51ca_for_opr *)0x0)))" (parenthesized_expression "(mctx.state_log == (re_dfastate_t **)0x0)" ( (binary_expression "mctx.state_log == (re_dfastate_t **)0x0" (field_expression "mctx.state_log" 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 "((prVar52 != (re_dfa_t *)0x0 &&\n                          (paVar54 == (anon_union_4_5_a39f51ca_for_opr *)0x0)))" ( (parenthesized_expression "(prVar52 != (re_dfa_t *)0x0 &&\n                          (paVar54 == (anon_union_4_5_a39f51ca_for_opr *)0x0))" ( (binary_expression "prVar52 != (re_dfa_t *)0x0 &&\n                          (paVar54 == (anon_union_4_5_a39f51ca_for_opr *)0x0)" (binary_expression "prVar52 != (re_dfa_t *)0x0" identifier != (cast_expression "(re_dfa_t *)0x0" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) && (parenthesized_expression "(paVar54 == (anon_union_4_5_a39f51ca_for_opr *)0x0)" ( (binary_expression "paVar54 == (anon_union_4_5_a39f51ca_for_opr *)0x0" identifier == (cast_expression "(anon_union_4_5_a39f51ca_for_opr *)0x0" ( (type_descriptor "anon_union_4_5_a39f51ca_for_opr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) ))) )) (break_statement "break;" break ;)) (expression_statement "stop = (Idx)&mctx;" (assignment_expression "stop = (Idx)&mctx" identifier = (binary_expression "(Idx)&mctx" (parenthesized_expression "(Idx)" ( identifier )) & identifier)) ;) (expression_statement "last_start = (Idx)&err;" (assignment_expression "last_start = (Idx)&err" identifier = (binary_expression "(Idx)&err" (parenthesized_expression "(Idx)" ( identifier )) & identifier)) ;) (expression_statement "paVar18 = (anon_union_4_5_a39f51ca_for_opr *)(PTR_DAT_000799a4 + 0x3684);" (assignment_expression "paVar18 = (anon_union_4_5_a39f51ca_for_opr *)(PTR_DAT_000799a4 + 0x3684)" identifier = (cast_expression "(anon_union_4_5_a39f51ca_for_opr *)(PTR_DAT_000799a4 + 0x3684)" ( (type_descriptor "anon_union_4_5_a39f51ca_for_opr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000799a4 + 0x3684)" ( (binary_expression "PTR_DAT_000799a4 + 0x3684" identifier + number_literal) )))) ;) (do_statement "do {\n                        pprVar14 = mctx.state_log + mctx.input.cur_idx;\n                        IVar17 = mctx.input.cur_idx;\n                        do {\n                          IVar17 = IVar17 + 1;\n                          aVar45.idx = mctx.state_log_top;\n                          aVar46 = aVar15;\n                          if (mctx.state_log_top < IVar17) goto LAB_00055da8;\n                          mctx.input.cur_idx = mctx.input.cur_idx + 1;\n                          pprVar14 = pprVar14 + 1;\n                        } while (*pprVar14 == (re_dfastate_t *)0x0);\n                        aVar49.sbcset = (re_bitset_ptr_t)0x0;\n                        aVar45.sbcset = (re_bitset_ptr_t)stop;\n                        aVar46.sbcset = (re_bitset_ptr_t)(*(code *)paVar18)(last_start);\n                        if (err != _REG_NOERROR) {\n                          if ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0) goto LAB_00055da8;\n                          break;\n                        }\n                        aVar45.idx = mctx.state_log_top;\n                      } while ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0);" do (compound_statement "{\n                        pprVar14 = mctx.state_log + mctx.input.cur_idx;\n                        IVar17 = mctx.input.cur_idx;\n                        do {\n                          IVar17 = IVar17 + 1;\n                          aVar45.idx = mctx.state_log_top;\n                          aVar46 = aVar15;\n                          if (mctx.state_log_top < IVar17) goto LAB_00055da8;\n                          mctx.input.cur_idx = mctx.input.cur_idx + 1;\n                          pprVar14 = pprVar14 + 1;\n                        } while (*pprVar14 == (re_dfastate_t *)0x0);\n                        aVar49.sbcset = (re_bitset_ptr_t)0x0;\n                        aVar45.sbcset = (re_bitset_ptr_t)stop;\n                        aVar46.sbcset = (re_bitset_ptr_t)(*(code *)paVar18)(last_start);\n                        if (err != _REG_NOERROR) {\n                          if ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0) goto LAB_00055da8;\n                          break;\n                        }\n                        aVar45.idx = mctx.state_log_top;\n                      }" { (expression_statement "pprVar14 = mctx.state_log + mctx.input.cur_idx;" (assignment_expression "pprVar14 = mctx.state_log + mctx.input.cur_idx" identifier = (binary_expression "mctx.state_log + mctx.input.cur_idx" (field_expression "mctx.state_log" identifier . field_identifier) + (field_expression "mctx.input.cur_idx" (field_expression "mctx.input" identifier . field_identifier) . field_identifier))) ;) (expression_statement "IVar17 = mctx.input.cur_idx;" (assignment_expression "IVar17 = mctx.input.cur_idx" identifier = (field_expression "mctx.input.cur_idx" (field_expression "mctx.input" identifier . field_identifier) . field_identifier)) ;) (do_statement "do {\n                          IVar17 = IVar17 + 1;\n                          aVar45.idx = mctx.state_log_top;\n                          aVar46 = aVar15;\n                          if (mctx.state_log_top < IVar17) goto LAB_00055da8;\n                          mctx.input.cur_idx = mctx.input.cur_idx + 1;\n                          pprVar14 = pprVar14 + 1;\n                        } while (*pprVar14 == (re_dfastate_t *)0x0);" do (compound_statement "{\n                          IVar17 = IVar17 + 1;\n                          aVar45.idx = mctx.state_log_top;\n                          aVar46 = aVar15;\n                          if (mctx.state_log_top < IVar17) goto LAB_00055da8;\n                          mctx.input.cur_idx = mctx.input.cur_idx + 1;\n                          pprVar14 = pprVar14 + 1;\n                        }" { (expression_statement "IVar17 = IVar17 + 1;" (assignment_expression "IVar17 = IVar17 + 1" identifier = (binary_expression "IVar17 + 1" identifier + number_literal)) ;) (expression_statement "aVar45.idx = mctx.state_log_top;" (assignment_expression "aVar45.idx = mctx.state_log_top" (field_expression "aVar45.idx" identifier . field_identifier) = (field_expression "mctx.state_log_top" identifier . field_identifier)) ;) (expression_statement "aVar46 = aVar15;" (assignment_expression "aVar46 = aVar15" identifier = identifier) ;) (if_statement "if (mctx.state_log_top < IVar17) goto LAB_00055da8;" if (parenthesized_expression "(mctx.state_log_top < IVar17)" ( (binary_expression "mctx.state_log_top < IVar17" (field_expression "mctx.state_log_top" identifier . field_identifier) < identifier) )) (goto_statement "goto LAB_00055da8;" goto statement_identifier ;)) (expression_statement "mctx.input.cur_idx = mctx.input.cur_idx + 1;" (assignment_expression "mctx.input.cur_idx = mctx.input.cur_idx + 1" (field_expression "mctx.input.cur_idx" (field_expression "mctx.input" identifier . field_identifier) . field_identifier) = (binary_expression "mctx.input.cur_idx + 1" (field_expression "mctx.input.cur_idx" (field_expression "mctx.input" identifier . field_identifier) . field_identifier) + number_literal)) ;) (expression_statement "pprVar14 = pprVar14 + 1;" (assignment_expression "pprVar14 = pprVar14 + 1" identifier = (binary_expression "pprVar14 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(*pprVar14 == (re_dfastate_t *)0x0)" ( (binary_expression "*pprVar14 == (re_dfastate_t *)0x0" (pointer_expression "*pprVar14" * identifier) == (cast_expression "(re_dfastate_t *)0x0" ( (type_descriptor "re_dfastate_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "aVar49.sbcset = (re_bitset_ptr_t)0x0;" (assignment_expression "aVar49.sbcset = (re_bitset_ptr_t)0x0" (field_expression "aVar49.sbcset" identifier . field_identifier) = (cast_expression "(re_bitset_ptr_t)0x0" ( (type_descriptor "re_bitset_ptr_t" type_identifier) ) number_literal)) ;) (expression_statement "aVar45.sbcset = (re_bitset_ptr_t)stop;" (assignment_expression "aVar45.sbcset = (re_bitset_ptr_t)stop" (field_expression "aVar45.sbcset" identifier . field_identifier) = (cast_expression "(re_bitset_ptr_t)stop" ( (type_descriptor "re_bitset_ptr_t" type_identifier) ) identifier)) ;) (expression_statement "aVar46.sbcset = (re_bitset_ptr_t)(*(code *)paVar18)(last_start);" (assignment_expression "aVar46.sbcset = (re_bitset_ptr_t)(*(code *)paVar18)(last_start)" (field_expression "aVar46.sbcset" identifier . field_identifier) = (call_expression "(re_bitset_ptr_t)(*(code *)paVar18)(last_start)" (call_expression "(re_bitset_ptr_t)(*(code *)paVar18)" (parenthesized_expression "(re_bitset_ptr_t)" ( identifier )) (argument_list "(*(code *)paVar18)" ( (pointer_expression "*(code *)paVar18" * (cast_expression "(code *)paVar18" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ))) (argument_list "(last_start)" ( identifier )))) ;) (if_statement "if (err != _REG_NOERROR) {\n                          if ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0) goto LAB_00055da8;\n                          break;\n                        }" if (parenthesized_expression "(err != _REG_NOERROR)" ( (binary_expression "err != _REG_NOERROR" identifier != identifier) )) (compound_statement "{\n                          if ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0) goto LAB_00055da8;\n                          break;\n                        }" { (if_statement "if ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0) goto LAB_00055da8;" if (parenthesized_expression "((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0)" ( (binary_expression "(re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0" (cast_expression "(re_dfa_t *)aVar46.sbcset" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "aVar46.sbcset" identifier . field_identifier)) == (cast_expression "(re_dfa_t *)0x0" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00055da8;" goto statement_identifier ;)) (break_statement "break;" break ;) })) (expression_statement "aVar45.idx = mctx.state_log_top;" (assignment_expression "aVar45.idx = mctx.state_log_top" (field_expression "aVar45.idx" identifier . field_identifier) = (field_expression "mctx.state_log_top" identifier . field_identifier)) ;) }) while (parenthesized_expression "((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0)" ( (binary_expression "(re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0" (cast_expression "(re_dfa_t *)aVar46.sbcset" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "aVar46.sbcset" identifier . field_identifier)) == (cast_expression "(re_dfa_t *)0x0" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) (expression_statement "aVar16.ctx_type = unaff_s7.ctx_type ^ aVar46.ctx_type;" (assignment_expression "aVar16.ctx_type = unaff_s7.ctx_type ^ aVar46.ctx_type" (field_expression "aVar16.ctx_type" identifier . field_identifier) = (binary_expression "unaff_s7.ctx_type ^ aVar46.ctx_type" (field_expression "unaff_s7.ctx_type" identifier . field_identifier) ^ (field_expression "aVar46.ctx_type" identifier . field_identifier))) ;) (expression_statement "aVar56 = unaff_s7;" (assignment_expression "aVar56 = unaff_s7" identifier = identifier) ;) (expression_statement "aVar15 = local_138;" (assignment_expression "aVar15 = local_138" identifier = identifier) ;) (if_statement "if ((bVar36) &&\n                       (aVar56.ctx_type = aVar16.ctx_type, aVar15.sbcset = unaff_s5.sbcset,\n                       (re_dfa_t *)aVar16.sbcset != (re_dfa_t *)0x0)) {\n                      bVar36 = false;\n                      aVar15 = local_138;\n                    }" if (parenthesized_expression "((bVar36) &&\n                       (aVar56.ctx_type = aVar16.ctx_type, aVar15.sbcset = unaff_s5.sbcset,\n                       (re_dfa_t *)aVar16.sbcset != (re_dfa_t *)0x0))" ( (binary_expression "(bVar36) &&\n                       (aVar56.ctx_type = aVar16.ctx_type, aVar15.sbcset = unaff_s5.sbcset,\n                       (re_dfa_t *)aVar16.sbcset != (re_dfa_t *)0x0)" (parenthesized_expression "(bVar36)" ( identifier )) && (parenthesized_expression "(aVar56.ctx_type = aVar16.ctx_type, aVar15.sbcset = unaff_s5.sbcset,\n                       (re_dfa_t *)aVar16.sbcset != (re_dfa_t *)0x0)" ( (comma_expression "aVar56.ctx_type = aVar16.ctx_type, aVar15.sbcset = unaff_s5.sbcset,\n                       (re_dfa_t *)aVar16.sbcset != (re_dfa_t *)0x0" (assignment_expression "aVar56.ctx_type = aVar16.ctx_type" (field_expression "aVar56.ctx_type" identifier . field_identifier) = (field_expression "aVar16.ctx_type" identifier . field_identifier)) , (comma_expression "aVar15.sbcset = unaff_s5.sbcset,\n                       (re_dfa_t *)aVar16.sbcset != (re_dfa_t *)0x0" (assignment_expression "aVar15.sbcset = unaff_s5.sbcset" (field_expression "aVar15.sbcset" identifier . field_identifier) = (field_expression "unaff_s5.sbcset" identifier . field_identifier)) , (binary_expression "(re_dfa_t *)aVar16.sbcset != (re_dfa_t *)0x0" (cast_expression "(re_dfa_t *)aVar16.sbcset" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "aVar16.sbcset" identifier . field_identifier)) != (cast_expression "(re_dfa_t *)0x0" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)))) ))) )) (compound_statement "{\n                      bVar36 = false;\n                      aVar15 = local_138;\n                    }" { (expression_statement "bVar36 = false;" (assignment_expression "bVar36 = false" identifier = false) ;) (expression_statement "aVar15 = local_138;" (assignment_expression "aVar15 = local_138" identifier = identifier) ;) })) (expression_statement "local_138 = aVar15;" (assignment_expression "local_138 = aVar15" identifier = identifier) ;) (expression_statement "unaff_s7 = aVar46;" (assignment_expression "unaff_s7 = aVar46" identifier = identifier) ;) (if_statement "if (((*(byte *)(aVar46.idx + 0x34) & 8) != 0) &&\n                       (((*(byte *)(aVar46.idx + 0x34) & 1) == 0 ||\n                        (aVar45 = aVar46, aVar49.idx = mctx.input.cur_idx,\n                        IVar17 = check_halt_state_context(&mctx,aVar46.idx,mctx.input.cur_idx),\n                        IVar17 != 0)))) {\n                      unaff_s7 = aVar56;\n                      local_c4.idx = mctx.input.cur_idx;\n                      if (paVar54 == (anon_union_4_5_a39f51ca_for_opr *)0x0) goto LAB_00055dbc;\n                      prVar52 = (re_dfa_t *)0x1;\n                      local_144 = (int *)0x0;\n                      unaff_s7 = aVar46;\n                    }" if (parenthesized_expression "(((*(byte *)(aVar46.idx + 0x34) & 8) != 0) &&\n                       (((*(byte *)(aVar46.idx + 0x34) & 1) == 0 ||\n                        (aVar45 = aVar46, aVar49.idx = mctx.input.cur_idx,\n                        IVar17 = check_halt_state_context(&mctx,aVar46.idx,mctx.input.cur_idx),\n                        IVar17 != 0))))" ( (binary_expression "((*(byte *)(aVar46.idx + 0x34) & 8) != 0) &&\n                       (((*(byte *)(aVar46.idx + 0x34) & 1) == 0 ||\n                        (aVar45 = aVar46, aVar49.idx = mctx.input.cur_idx,\n                        IVar17 = check_halt_state_context(&mctx,aVar46.idx,mctx.input.cur_idx),\n                        IVar17 != 0)))" (parenthesized_expression "((*(byte *)(aVar46.idx + 0x34) & 8) != 0)" ( (binary_expression "(*(byte *)(aVar46.idx + 0x34) & 8) != 0" (parenthesized_expression "(*(byte *)(aVar46.idx + 0x34) & 8)" ( (binary_expression "*(byte *)(aVar46.idx + 0x34) & 8" (pointer_expression "*(byte *)(aVar46.idx + 0x34)" * (cast_expression "(byte *)(aVar46.idx + 0x34)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(aVar46.idx + 0x34)" ( (binary_expression "aVar46.idx + 0x34" (field_expression "aVar46.idx" identifier . field_identifier) + number_literal) )))) & number_literal) )) != number_literal) )) && (parenthesized_expression "(((*(byte *)(aVar46.idx + 0x34) & 1) == 0 ||\n                        (aVar45 = aVar46, aVar49.idx = mctx.input.cur_idx,\n                        IVar17 = check_halt_state_context(&mctx,aVar46.idx,mctx.input.cur_idx),\n                        IVar17 != 0)))" ( (parenthesized_expression "((*(byte *)(aVar46.idx + 0x34) & 1) == 0 ||\n                        (aVar45 = aVar46, aVar49.idx = mctx.input.cur_idx,\n                        IVar17 = check_halt_state_context(&mctx,aVar46.idx,mctx.input.cur_idx),\n                        IVar17 != 0))" ( (binary_expression "(*(byte *)(aVar46.idx + 0x34) & 1) == 0 ||\n                        (aVar45 = aVar46, aVar49.idx = mctx.input.cur_idx,\n                        IVar17 = check_halt_state_context(&mctx,aVar46.idx,mctx.input.cur_idx),\n                        IVar17 != 0)" (binary_expression "(*(byte *)(aVar46.idx + 0x34) & 1) == 0" (parenthesized_expression "(*(byte *)(aVar46.idx + 0x34) & 1)" ( (binary_expression "*(byte *)(aVar46.idx + 0x34) & 1" (pointer_expression "*(byte *)(aVar46.idx + 0x34)" * (cast_expression "(byte *)(aVar46.idx + 0x34)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(aVar46.idx + 0x34)" ( (binary_expression "aVar46.idx + 0x34" (field_expression "aVar46.idx" identifier . field_identifier) + number_literal) )))) & number_literal) )) == number_literal) || (parenthesized_expression "(aVar45 = aVar46, aVar49.idx = mctx.input.cur_idx,\n                        IVar17 = check_halt_state_context(&mctx,aVar46.idx,mctx.input.cur_idx),\n                        IVar17 != 0)" ( (comma_expression "aVar45 = aVar46, aVar49.idx = mctx.input.cur_idx,\n                        IVar17 = check_halt_state_context(&mctx,aVar46.idx,mctx.input.cur_idx),\n                        IVar17 != 0" (assignment_expression "aVar45 = aVar46" identifier = identifier) , (comma_expression "aVar49.idx = mctx.input.cur_idx,\n                        IVar17 = check_halt_state_context(&mctx,aVar46.idx,mctx.input.cur_idx),\n                        IVar17 != 0" (assignment_expression "aVar49.idx = mctx.input.cur_idx" (field_expression "aVar49.idx" identifier . field_identifier) = (field_expression "mctx.input.cur_idx" (field_expression "mctx.input" identifier . field_identifier) . field_identifier)) , (comma_expression "IVar17 = check_halt_state_context(&mctx,aVar46.idx,mctx.input.cur_idx),\n                        IVar17 != 0" (assignment_expression "IVar17 = check_halt_state_context(&mctx,aVar46.idx,mctx.input.cur_idx)" identifier = (call_expression "check_halt_state_context(&mctx,aVar46.idx,mctx.input.cur_idx)" identifier (argument_list "(&mctx,aVar46.idx,mctx.input.cur_idx)" ( (pointer_expression "&mctx" & identifier) , (field_expression "aVar46.idx" identifier . field_identifier) , (field_expression "mctx.input.cur_idx" (field_expression "mctx.input" identifier . field_identifier) . field_identifier) )))) , (binary_expression "IVar17 != 0" identifier != number_literal)))) ))) )) ))) )) (compound_statement "{\n                      unaff_s7 = aVar56;\n                      local_c4.idx = mctx.input.cur_idx;\n                      if (paVar54 == (anon_union_4_5_a39f51ca_for_opr *)0x0) goto LAB_00055dbc;\n                      prVar52 = (re_dfa_t *)0x1;\n                      local_144 = (int *)0x0;\n                      unaff_s7 = aVar46;\n                    }" { (expression_statement "unaff_s7 = aVar56;" (assignment_expression "unaff_s7 = aVar56" identifier = identifier) ;) (expression_statement "local_c4.idx = mctx.input.cur_idx;" (assignment_expression "local_c4.idx = mctx.input.cur_idx" (field_expression "local_c4.idx" identifier . field_identifier) = (field_expression "mctx.input.cur_idx" (field_expression "mctx.input" identifier . field_identifier) . field_identifier)) ;) (if_statement "if (paVar54 == (anon_union_4_5_a39f51ca_for_opr *)0x0) goto LAB_00055dbc;" if (parenthesized_expression "(paVar54 == (anon_union_4_5_a39f51ca_for_opr *)0x0)" ( (binary_expression "paVar54 == (anon_union_4_5_a39f51ca_for_opr *)0x0" identifier == (cast_expression "(anon_union_4_5_a39f51ca_for_opr *)0x0" ( (type_descriptor "anon_union_4_5_a39f51ca_for_opr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00055dbc;" goto statement_identifier ;)) (expression_statement "prVar52 = (re_dfa_t *)0x1;" (assignment_expression "prVar52 = (re_dfa_t *)0x1" identifier = (cast_expression "(re_dfa_t *)0x1" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_144 = (int *)0x0;" (assignment_expression "local_144 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "unaff_s7 = aVar46;" (assignment_expression "unaff_s7 = aVar46" identifier = identifier) ;) })) })) (labeled_statement "LAB_00055da8:\n                  if (local_144 != (int *)0x0) {\n                    *local_144 = *local_144 + (int)local_138.sbcset;\n                  }" statement_identifier : (if_statement "if (local_144 != (int *)0x0) {\n                    *local_144 = *local_144 + (int)local_138.sbcset;\n                  }" if (parenthesized_expression "(local_144 != (int *)0x0)" ( (binary_expression "local_144 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    *local_144 = *local_144 + (int)local_138.sbcset;\n                  }" { (expression_statement "*local_144 = *local_144 + (int)local_138.sbcset;" (assignment_expression "*local_144 = *local_144 + (int)local_138.sbcset" (pointer_expression "*local_144" * identifier) = (binary_expression "*local_144 + (int)local_138.sbcset" (pointer_expression "*local_144" * identifier) + (cast_expression "(int)local_138.sbcset" ( (type_descriptor "int" primitive_type) ) (field_expression "local_138.sbcset" identifier . field_identifier)))) ;) }))) }) (else_clause "else {\n                  aVar46.sbcset = (re_bitset_ptr_t)&(unaff_s7.mbcset)->range_starts;\n                  aVar49.sbcset = (re_bitset_ptr_t)0x0;\n                  aVar45 = aVar46;\n                  err = check_subexp_matching_top(&mctx,(re_node_set *)aVar46.mbcset,0);\n                  local_c4.idx = err;\n                  if ((re_dfa_t *)err == (re_dfa_t *)0x0) {\n                    if ((*(byte *)(unaff_s7.idx + 0x34) & 2) == 0) {\n                      aVar45 = aVar46;\n                      bVar36 = false;\n                    }\n                    else {\n                      aVar45 = aVar46;\n                      err = transit_state_bkref(&mctx,(re_node_set *)aVar46.mbcset);\n                      local_c4.idx = err;\n                      if ((re_dfa_t *)err != (re_dfa_t *)0x0) goto LAB_00055dbc;\n                      bVar36 = false;\n                    }\n                    goto LAB_00054d50;\n                  }\n                }" else (compound_statement "{\n                  aVar46.sbcset = (re_bitset_ptr_t)&(unaff_s7.mbcset)->range_starts;\n                  aVar49.sbcset = (re_bitset_ptr_t)0x0;\n                  aVar45 = aVar46;\n                  err = check_subexp_matching_top(&mctx,(re_node_set *)aVar46.mbcset,0);\n                  local_c4.idx = err;\n                  if ((re_dfa_t *)err == (re_dfa_t *)0x0) {\n                    if ((*(byte *)(unaff_s7.idx + 0x34) & 2) == 0) {\n                      aVar45 = aVar46;\n                      bVar36 = false;\n                    }\n                    else {\n                      aVar45 = aVar46;\n                      err = transit_state_bkref(&mctx,(re_node_set *)aVar46.mbcset);\n                      local_c4.idx = err;\n                      if ((re_dfa_t *)err != (re_dfa_t *)0x0) goto LAB_00055dbc;\n                      bVar36 = false;\n                    }\n                    goto LAB_00054d50;\n                  }\n                }" { (expression_statement "aVar46.sbcset = (re_bitset_ptr_t)&(unaff_s7.mbcset)->range_starts;" (assignment_expression "aVar46.sbcset = (re_bitset_ptr_t)&(unaff_s7.mbcset)->range_starts" (field_expression "aVar46.sbcset" identifier . field_identifier) = (binary_expression "(re_bitset_ptr_t)&(unaff_s7.mbcset)->range_starts" (parenthesized_expression "(re_bitset_ptr_t)" ( identifier )) & (field_expression "(unaff_s7.mbcset)->range_starts" (parenthesized_expression "(unaff_s7.mbcset)" ( (field_expression "unaff_s7.mbcset" identifier . field_identifier) )) -> field_identifier))) ;) (expression_statement "aVar49.sbcset = (re_bitset_ptr_t)0x0;" (assignment_expression "aVar49.sbcset = (re_bitset_ptr_t)0x0" (field_expression "aVar49.sbcset" identifier . field_identifier) = (cast_expression "(re_bitset_ptr_t)0x0" ( (type_descriptor "re_bitset_ptr_t" type_identifier) ) number_literal)) ;) (expression_statement "aVar45 = aVar46;" (assignment_expression "aVar45 = aVar46" identifier = identifier) ;) (expression_statement "err = check_subexp_matching_top(&mctx,(re_node_set *)aVar46.mbcset,0);" (assignment_expression "err = check_subexp_matching_top(&mctx,(re_node_set *)aVar46.mbcset,0)" identifier = (call_expression "check_subexp_matching_top(&mctx,(re_node_set *)aVar46.mbcset,0)" identifier (argument_list "(&mctx,(re_node_set *)aVar46.mbcset,0)" ( (pointer_expression "&mctx" & identifier) , (cast_expression "(re_node_set *)aVar46.mbcset" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "aVar46.mbcset" identifier . field_identifier)) , number_literal )))) ;) (expression_statement "local_c4.idx = err;" (assignment_expression "local_c4.idx = err" (field_expression "local_c4.idx" identifier . field_identifier) = identifier) ;) (if_statement "if ((re_dfa_t *)err == (re_dfa_t *)0x0) {\n                    if ((*(byte *)(unaff_s7.idx + 0x34) & 2) == 0) {\n                      aVar45 = aVar46;\n                      bVar36 = false;\n                    }\n                    else {\n                      aVar45 = aVar46;\n                      err = transit_state_bkref(&mctx,(re_node_set *)aVar46.mbcset);\n                      local_c4.idx = err;\n                      if ((re_dfa_t *)err != (re_dfa_t *)0x0) goto LAB_00055dbc;\n                      bVar36 = false;\n                    }\n                    goto LAB_00054d50;\n                  }" if (parenthesized_expression "((re_dfa_t *)err == (re_dfa_t *)0x0)" ( (binary_expression "(re_dfa_t *)err == (re_dfa_t *)0x0" (cast_expression "(re_dfa_t *)err" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) == (cast_expression "(re_dfa_t *)0x0" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    if ((*(byte *)(unaff_s7.idx + 0x34) & 2) == 0) {\n                      aVar45 = aVar46;\n                      bVar36 = false;\n                    }\n                    else {\n                      aVar45 = aVar46;\n                      err = transit_state_bkref(&mctx,(re_node_set *)aVar46.mbcset);\n                      local_c4.idx = err;\n                      if ((re_dfa_t *)err != (re_dfa_t *)0x0) goto LAB_00055dbc;\n                      bVar36 = false;\n                    }\n                    goto LAB_00054d50;\n                  }" { (if_statement "if ((*(byte *)(unaff_s7.idx + 0x34) & 2) == 0) {\n                      aVar45 = aVar46;\n                      bVar36 = false;\n                    }\n                    else {\n                      aVar45 = aVar46;\n                      err = transit_state_bkref(&mctx,(re_node_set *)aVar46.mbcset);\n                      local_c4.idx = err;\n                      if ((re_dfa_t *)err != (re_dfa_t *)0x0) goto LAB_00055dbc;\n                      bVar36 = false;\n                    }" if (parenthesized_expression "((*(byte *)(unaff_s7.idx + 0x34) & 2) == 0)" ( (binary_expression "(*(byte *)(unaff_s7.idx + 0x34) & 2) == 0" (parenthesized_expression "(*(byte *)(unaff_s7.idx + 0x34) & 2)" ( (binary_expression "*(byte *)(unaff_s7.idx + 0x34) & 2" (pointer_expression "*(byte *)(unaff_s7.idx + 0x34)" * (cast_expression "(byte *)(unaff_s7.idx + 0x34)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s7.idx + 0x34)" ( (binary_expression "unaff_s7.idx + 0x34" (field_expression "unaff_s7.idx" identifier . field_identifier) + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n                      aVar45 = aVar46;\n                      bVar36 = false;\n                    }" { (expression_statement "aVar45 = aVar46;" (assignment_expression "aVar45 = aVar46" identifier = identifier) ;) (expression_statement "bVar36 = false;" (assignment_expression "bVar36 = false" identifier = false) ;) }) (else_clause "else {\n                      aVar45 = aVar46;\n                      err = transit_state_bkref(&mctx,(re_node_set *)aVar46.mbcset);\n                      local_c4.idx = err;\n                      if ((re_dfa_t *)err != (re_dfa_t *)0x0) goto LAB_00055dbc;\n                      bVar36 = false;\n                    }" else (compound_statement "{\n                      aVar45 = aVar46;\n                      err = transit_state_bkref(&mctx,(re_node_set *)aVar46.mbcset);\n                      local_c4.idx = err;\n                      if ((re_dfa_t *)err != (re_dfa_t *)0x0) goto LAB_00055dbc;\n                      bVar36 = false;\n                    }" { (expression_statement "aVar45 = aVar46;" (assignment_expression "aVar45 = aVar46" identifier = identifier) ;) (expression_statement "err = transit_state_bkref(&mctx,(re_node_set *)aVar46.mbcset);" (assignment_expression "err = transit_state_bkref(&mctx,(re_node_set *)aVar46.mbcset)" identifier = (call_expression "transit_state_bkref(&mctx,(re_node_set *)aVar46.mbcset)" identifier (argument_list "(&mctx,(re_node_set *)aVar46.mbcset)" ( (pointer_expression "&mctx" & identifier) , (cast_expression "(re_node_set *)aVar46.mbcset" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "aVar46.mbcset" identifier . field_identifier)) )))) ;) (expression_statement "local_c4.idx = err;" (assignment_expression "local_c4.idx = err" (field_expression "local_c4.idx" identifier . field_identifier) = identifier) ;) (if_statement "if ((re_dfa_t *)err != (re_dfa_t *)0x0) goto LAB_00055dbc;" if (parenthesized_expression "((re_dfa_t *)err != (re_dfa_t *)0x0)" ( (binary_expression "(re_dfa_t *)err != (re_dfa_t *)0x0" (cast_expression "(re_dfa_t *)err" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) != (cast_expression "(re_dfa_t *)0x0" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00055dbc;" goto statement_identifier ;)) (expression_statement "bVar36 = false;" (assignment_expression "bVar36 = false" identifier = false) ;) }))) (goto_statement "goto LAB_00054d50;" goto statement_identifier ;) })) }))) (labeled_statement "LAB_00055dbc:\n                if ((re_dfa_t *)local_c4.sbcset == (re_dfa_t *)0xffffffff) {\nLAB_00055b04:\n                  match_ctx_clean(&mctx);\nLAB_00055b1c:\n                  match_first = aVar39.idx + match_first;\n                  if (aVar40.idx <= match_first) goto code_r0x00055b38;\n                  local_150.idx = 1;\n                  goto LAB_000557e4;\n                }" statement_identifier : (if_statement "if ((re_dfa_t *)local_c4.sbcset == (re_dfa_t *)0xffffffff) {\nLAB_00055b04:\n                  match_ctx_clean(&mctx);\nLAB_00055b1c:\n                  match_first = aVar39.idx + match_first;\n                  if (aVar40.idx <= match_first) goto code_r0x00055b38;\n                  local_150.idx = 1;\n                  goto LAB_000557e4;\n                }" if (parenthesized_expression "((re_dfa_t *)local_c4.sbcset == (re_dfa_t *)0xffffffff)" ( (binary_expression "(re_dfa_t *)local_c4.sbcset == (re_dfa_t *)0xffffffff" (cast_expression "(re_dfa_t *)local_c4.sbcset" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "local_c4.sbcset" identifier . field_identifier)) == (cast_expression "(re_dfa_t *)0xffffffff" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_00055b04:\n                  match_ctx_clean(&mctx);\nLAB_00055b1c:\n                  match_first = aVar39.idx + match_first;\n                  if (aVar40.idx <= match_first) goto code_r0x00055b38;\n                  local_150.idx = 1;\n                  goto LAB_000557e4;\n                }" { (labeled_statement "LAB_00055b04:\n                  match_ctx_clean(&mctx);" statement_identifier : (expression_statement "match_ctx_clean(&mctx);" (call_expression "match_ctx_clean(&mctx)" identifier (argument_list "(&mctx)" ( (pointer_expression "&mctx" & identifier) ))) ;)) (labeled_statement "LAB_00055b1c:\n                  match_first = aVar39.idx + match_first;" statement_identifier : (expression_statement "match_first = aVar39.idx + match_first;" (assignment_expression "match_first = aVar39.idx + match_first" identifier = (binary_expression "aVar39.idx + match_first" (field_expression "aVar39.idx" identifier . field_identifier) + identifier)) ;)) (if_statement "if (aVar40.idx <= match_first) goto code_r0x00055b38;" if (parenthesized_expression "(aVar40.idx <= match_first)" ( (binary_expression "aVar40.idx <= match_first" (field_expression "aVar40.idx" identifier . field_identifier) <= identifier) )) (goto_statement "goto code_r0x00055b38;" goto statement_identifier ;)) (expression_statement "local_150.idx = 1;" (assignment_expression "local_150.idx = 1" (field_expression "local_150.idx" identifier . field_identifier) = number_literal) ;) (goto_statement "goto LAB_000557e4;" goto statement_identifier ;) }))) (if_statement "if ((re_dfa_t *)local_c4.sbcset == (re_dfa_t *)&SUB_fffffffe) {\n                  local_150.idx = 0xc;\n                  goto LAB_000557e4;\n                }" if (parenthesized_expression "((re_dfa_t *)local_c4.sbcset == (re_dfa_t *)&SUB_fffffffe)" ( (binary_expression "(re_dfa_t *)local_c4.sbcset == (re_dfa_t *)&SUB_fffffffe" (cast_expression "(re_dfa_t *)local_c4.sbcset" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "local_c4.sbcset" identifier . field_identifier)) == (cast_expression "(re_dfa_t *)&SUB_fffffffe" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&SUB_fffffffe" & identifier))) )) (compound_statement "{\n                  local_150.idx = 0xc;\n                  goto LAB_000557e4;\n                }" { (expression_statement "local_150.idx = 0xc;" (assignment_expression "local_150.idx = 0xc" (field_expression "local_150.idx" identifier . field_identifier) = number_literal) ;) (goto_statement "goto LAB_000557e4;" goto statement_identifier ;) })) (expression_statement "mctx.match_last = local_c4.idx;" (assignment_expression "mctx.match_last = local_c4.idx" (field_expression "mctx.match_last" identifier . field_identifier) = (field_expression "local_c4.idx" identifier . field_identifier)) ;) (if_statement "if ((preg->field_0x1c & 8) == 0) {\n                  if (aVar4.sbcset < (re_dfa_t *)0x2) {\n                    if (prVar59->nbackref == 0) goto LAB_00055c08;\n                    aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                             ((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + local_c4.idx))->\n                             mbcset;\n                    aVar49 = local_c4;\n                    mctx.last_node =\n                         check_halt_state_context(&mctx,(re_dfastate_t *)aVar45.mbcset,local_c4.idx)\n                    ;\n                  }\n                  else {\n                    aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                             ((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + local_c4.idx))->\n                             mbcset;\n                    aVar49 = local_c4;\n                    mctx.last_node =\n                         check_halt_state_context(&mctx,(re_dfastate_t *)aVar45.mbcset,local_c4.idx)\n                    ;\n                  }\n                  if (aVar4.sbcset < (re_dfa_t *)0x2) {\nLAB_00055c6c:\n                    prVar52 = prVar51;\n                    unaff_s4 = mctx.dfa;\n                    if (prVar59->nbackref == 0) goto LAB_00055548;\n                  }\n                  else {\n                    cVar37 = prVar59->field_0x58;\nLAB_00055c20:\n                    prVar52 = prVar51;\n                    if (-1 < cVar37) goto LAB_00055c6c;\n                  }\n                  paVar18 = (anon_union_4_5_a39f51ca_for_opr *)mctx.last_node;\n                  prVar3 = mctx.dfa;\n                  unaff_s4 = prVar3;\n                  if ((uint)local_c4 < (re_dfa_t *)0x3fffffff) {\n                    aVar46.idx = (int)((int)&((re_string_t *)&(local_c4.mbcset)->mbchars)->raw_mbs +\n                                      1) * 4;\n                    unaff_s5.sbcset = (re_bitset_ptr_t)(*(code *)PTR_malloc_00079b54)(aVar46.sbcset)\n                    ;\n                    if ((re_dfa_t *)unaff_s5.sbcset == (re_dfa_t *)0x0) {\nLAB_00055b9c:\n                      (*(code *)PTR_free_00079c24)(unaff_s5.sbcset);\n                      local_150.idx = 0xc;\n                      prVar51 = prVar52;\n                    }\n                    else {\n                      aVar45.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                      if (prVar3->nbackref == 0) {\n                        dest_nodes.nelem = 0;\n                        dest_nodes.elems = &paVar18->idx;\n                        dest_nodes.alloc = (Idx)unaff_s5.sbcset;\n                        last_start = sift_states_backward(&mctx,(re_sift_context_t *)aVar45.mbcset);\n                        (*(code *)PTR_free_00079c24)(0);\n                        if ((re_dfa_t *)last_start == (re_dfa_t *)0x0) {\n                          aVar46.mbcset = (re_charset_t *)*unaff_s5.sbcset;\n                          if ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0) {\nLAB_00055b70:\n                            (*(code *)PTR_free_00079c24)(unaff_s5.sbcset);\n                            (*(code *)PTR_free_00079c24)(aVar46.sbcset);\n                            prVar51 = prVar52;\n                            goto LAB_00055b04;\n                          }\nLAB_00055528:\n                          (*(code *)PTR_free_00079c24)(mctx.state_log);\n                          prVar51 = prVar52;\n                          unaff_s4 = prVar3;\n                          mctx.match_last = local_c4.idx;\n                          mctx.last_node = (Idx)paVar18;\n                          mctx.state_log = (re_dfastate_t **)unaff_s5.sbcset;\n                          goto LAB_00055548;\n                        }\nLAB_00055acc:\n                        aVar46.sbcset = (re_bitset_ptr_t)0x0;\n                        prVar51 = prVar52;\n                        unaff_s4 = prVar3;\n                      }\n                      else {\n                        aVar46.sbcset =\n                             (re_bitset_ptr_t)(*(code *)PTR_malloc_00079b54)(aVar46.sbcset);\n                        if ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0) goto LAB_00055b9c;\n                        unaff_s7.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                        pcVar9 = (code *)(PTR_DAT_000799a4 + 0x421c);\n                        pcVar10 = (code *)(PTR_DAT_000799a4 + -0x6bc0);\n                        prVar51 = prVar52;\n                        while( true ) {\n                          prVar52 = (re_dfa_t *)(local_c4.idx + 1);\n                          stop = (int)prVar52 * 4;\n                          aVar49.idx = stop;\n                          (*(code *)PTR_memset_00079b00)(aVar46.sbcset,0);\n                          aVar45.sbcset = unaff_s7.sbcset;\n                          dest_nodes.alloc = (Idx)unaff_s5.sbcset;\n                          dest_nodes.nelem = (Idx)aVar46.sbcset;\n                          dest_nodes.elems = (Idx *)paVar18;\n                          last_start = (*pcVar9)(&mctx);\n                          (*(code *)PTR_free_00079c24)(0);\n                          unaff_s4 = prVar52;\n                          if ((re_dfa_t *)last_start != (re_dfa_t *)0x0) break;\n                          if ((*unaff_s5.sbcset != 0) || (stop = stop + -4, *aVar46.sbcset != 0)) {\n                            aVar45.sbcset = unaff_s5.sbcset;\n                            aVar49.sbcset = aVar46.sbcset;\n                            last_start = merge_state_array(prVar3,(re_dfastate_t **)unaff_s5.sbcset,\n                                                           (re_dfastate_t **)aVar46.sbcset,\n                                                           (Idx)prVar52);\n                            (*(code *)PTR_free_00079c24)(aVar46.sbcset);\n                            if ((re_dfa_t *)last_start != (re_dfa_t *)0x0) goto LAB_00055acc;\n                            goto LAB_00055528;\n                          }\n                          stop = (Idx)(mctx.state_log + (int)&prVar52[-1].lock.__align + 0x17);\n                          do {\n                            while( true ) {\n                              local_c4.sbcset = (re_bitset_ptr_t)(local_c4.idx + -1);\n                              if (local_c4.idx < 0) goto LAB_00055b70;\n                              aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                                       ((anon_union_4_5_a39f51ca_for_opr *)(stop + -4))->idx;\n                              if ((re_dfa_t *)aVar45.sbcset != (re_dfa_t *)0x0) break;\n                              stop = stop + -4;\n                            }\n                            stop = stop + -4;\n                          } while ((*(byte *)(aVar45.idx + 0x34) & 8) == 0);\n                          paVar18 = (anon_union_4_5_a39f51ca_for_opr *)\n                                    (*pcVar10)(&mctx,aVar45.sbcset,local_c4.sbcset);\n                          prVar51 = prVar52;\n                        }\n                      }\n                      (*(code *)PTR_free_00079c24)(unaff_s5.sbcset);\n                      (*(code *)PTR_free_00079c24)(aVar46.sbcset);\n                      local_150.idx = last_start;\n                      if ((re_dfa_t *)last_start == (re_dfa_t *)0x1) goto LAB_00055b04;\n                    }\n                  }\n                  else {\n                    local_150.idx = 0xc;\n                    prVar51 = prVar52;\n                  }\n                  goto LAB_000557e4;\n                }" if (parenthesized_expression "((preg->field_0x1c & 8) == 0)" ( (binary_expression "(preg->field_0x1c & 8) == 0" (parenthesized_expression "(preg->field_0x1c & 8)" ( (binary_expression "preg->field_0x1c & 8" (field_expression "preg->field_0x1c" identifier -> field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n                  if (aVar4.sbcset < (re_dfa_t *)0x2) {\n                    if (prVar59->nbackref == 0) goto LAB_00055c08;\n                    aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                             ((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + local_c4.idx))->\n                             mbcset;\n                    aVar49 = local_c4;\n                    mctx.last_node =\n                         check_halt_state_context(&mctx,(re_dfastate_t *)aVar45.mbcset,local_c4.idx)\n                    ;\n                  }\n                  else {\n                    aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                             ((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + local_c4.idx))->\n                             mbcset;\n                    aVar49 = local_c4;\n                    mctx.last_node =\n                         check_halt_state_context(&mctx,(re_dfastate_t *)aVar45.mbcset,local_c4.idx)\n                    ;\n                  }\n                  if (aVar4.sbcset < (re_dfa_t *)0x2) {\nLAB_00055c6c:\n                    prVar52 = prVar51;\n                    unaff_s4 = mctx.dfa;\n                    if (prVar59->nbackref == 0) goto LAB_00055548;\n                  }\n                  else {\n                    cVar37 = prVar59->field_0x58;\nLAB_00055c20:\n                    prVar52 = prVar51;\n                    if (-1 < cVar37) goto LAB_00055c6c;\n                  }\n                  paVar18 = (anon_union_4_5_a39f51ca_for_opr *)mctx.last_node;\n                  prVar3 = mctx.dfa;\n                  unaff_s4 = prVar3;\n                  if ((uint)local_c4 < (re_dfa_t *)0x3fffffff) {\n                    aVar46.idx = (int)((int)&((re_string_t *)&(local_c4.mbcset)->mbchars)->raw_mbs +\n                                      1) * 4;\n                    unaff_s5.sbcset = (re_bitset_ptr_t)(*(code *)PTR_malloc_00079b54)(aVar46.sbcset)\n                    ;\n                    if ((re_dfa_t *)unaff_s5.sbcset == (re_dfa_t *)0x0) {\nLAB_00055b9c:\n                      (*(code *)PTR_free_00079c24)(unaff_s5.sbcset);\n                      local_150.idx = 0xc;\n                      prVar51 = prVar52;\n                    }\n                    else {\n                      aVar45.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                      if (prVar3->nbackref == 0) {\n                        dest_nodes.nelem = 0;\n                        dest_nodes.elems = &paVar18->idx;\n                        dest_nodes.alloc = (Idx)unaff_s5.sbcset;\n                        last_start = sift_states_backward(&mctx,(re_sift_context_t *)aVar45.mbcset);\n                        (*(code *)PTR_free_00079c24)(0);\n                        if ((re_dfa_t *)last_start == (re_dfa_t *)0x0) {\n                          aVar46.mbcset = (re_charset_t *)*unaff_s5.sbcset;\n                          if ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0) {\nLAB_00055b70:\n                            (*(code *)PTR_free_00079c24)(unaff_s5.sbcset);\n                            (*(code *)PTR_free_00079c24)(aVar46.sbcset);\n                            prVar51 = prVar52;\n                            goto LAB_00055b04;\n                          }\nLAB_00055528:\n                          (*(code *)PTR_free_00079c24)(mctx.state_log);\n                          prVar51 = prVar52;\n                          unaff_s4 = prVar3;\n                          mctx.match_last = local_c4.idx;\n                          mctx.last_node = (Idx)paVar18;\n                          mctx.state_log = (re_dfastate_t **)unaff_s5.sbcset;\n                          goto LAB_00055548;\n                        }\nLAB_00055acc:\n                        aVar46.sbcset = (re_bitset_ptr_t)0x0;\n                        prVar51 = prVar52;\n                        unaff_s4 = prVar3;\n                      }\n                      else {\n                        aVar46.sbcset =\n                             (re_bitset_ptr_t)(*(code *)PTR_malloc_00079b54)(aVar46.sbcset);\n                        if ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0) goto LAB_00055b9c;\n                        unaff_s7.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                        pcVar9 = (code *)(PTR_DAT_000799a4 + 0x421c);\n                        pcVar10 = (code *)(PTR_DAT_000799a4 + -0x6bc0);\n                        prVar51 = prVar52;\n                        while( true ) {\n                          prVar52 = (re_dfa_t *)(local_c4.idx + 1);\n                          stop = (int)prVar52 * 4;\n                          aVar49.idx = stop;\n                          (*(code *)PTR_memset_00079b00)(aVar46.sbcset,0);\n                          aVar45.sbcset = unaff_s7.sbcset;\n                          dest_nodes.alloc = (Idx)unaff_s5.sbcset;\n                          dest_nodes.nelem = (Idx)aVar46.sbcset;\n                          dest_nodes.elems = (Idx *)paVar18;\n                          last_start = (*pcVar9)(&mctx);\n                          (*(code *)PTR_free_00079c24)(0);\n                          unaff_s4 = prVar52;\n                          if ((re_dfa_t *)last_start != (re_dfa_t *)0x0) break;\n                          if ((*unaff_s5.sbcset != 0) || (stop = stop + -4, *aVar46.sbcset != 0)) {\n                            aVar45.sbcset = unaff_s5.sbcset;\n                            aVar49.sbcset = aVar46.sbcset;\n                            last_start = merge_state_array(prVar3,(re_dfastate_t **)unaff_s5.sbcset,\n                                                           (re_dfastate_t **)aVar46.sbcset,\n                                                           (Idx)prVar52);\n                            (*(code *)PTR_free_00079c24)(aVar46.sbcset);\n                            if ((re_dfa_t *)last_start != (re_dfa_t *)0x0) goto LAB_00055acc;\n                            goto LAB_00055528;\n                          }\n                          stop = (Idx)(mctx.state_log + (int)&prVar52[-1].lock.__align + 0x17);\n                          do {\n                            while( true ) {\n                              local_c4.sbcset = (re_bitset_ptr_t)(local_c4.idx + -1);\n                              if (local_c4.idx < 0) goto LAB_00055b70;\n                              aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                                       ((anon_union_4_5_a39f51ca_for_opr *)(stop + -4))->idx;\n                              if ((re_dfa_t *)aVar45.sbcset != (re_dfa_t *)0x0) break;\n                              stop = stop + -4;\n                            }\n                            stop = stop + -4;\n                          } while ((*(byte *)(aVar45.idx + 0x34) & 8) == 0);\n                          paVar18 = (anon_union_4_5_a39f51ca_for_opr *)\n                                    (*pcVar10)(&mctx,aVar45.sbcset,local_c4.sbcset);\n                          prVar51 = prVar52;\n                        }\n                      }\n                      (*(code *)PTR_free_00079c24)(unaff_s5.sbcset);\n                      (*(code *)PTR_free_00079c24)(aVar46.sbcset);\n                      local_150.idx = last_start;\n                      if ((re_dfa_t *)last_start == (re_dfa_t *)0x1) goto LAB_00055b04;\n                    }\n                  }\n                  else {\n                    local_150.idx = 0xc;\n                    prVar51 = prVar52;\n                  }\n                  goto LAB_000557e4;\n                }" { (if_statement "if (aVar4.sbcset < (re_dfa_t *)0x2) {\n                    if (prVar59->nbackref == 0) goto LAB_00055c08;\n                    aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                             ((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + local_c4.idx))->\n                             mbcset;\n                    aVar49 = local_c4;\n                    mctx.last_node =\n                         check_halt_state_context(&mctx,(re_dfastate_t *)aVar45.mbcset,local_c4.idx)\n                    ;\n                  }\n                  else {\n                    aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                             ((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + local_c4.idx))->\n                             mbcset;\n                    aVar49 = local_c4;\n                    mctx.last_node =\n                         check_halt_state_context(&mctx,(re_dfastate_t *)aVar45.mbcset,local_c4.idx)\n                    ;\n                  }" if (parenthesized_expression "(aVar4.sbcset < (re_dfa_t *)0x2)" ( (binary_expression "aVar4.sbcset < (re_dfa_t *)0x2" (field_expression "aVar4.sbcset" identifier . field_identifier) < (cast_expression "(re_dfa_t *)0x2" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    if (prVar59->nbackref == 0) goto LAB_00055c08;\n                    aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                             ((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + local_c4.idx))->\n                             mbcset;\n                    aVar49 = local_c4;\n                    mctx.last_node =\n                         check_halt_state_context(&mctx,(re_dfastate_t *)aVar45.mbcset,local_c4.idx)\n                    ;\n                  }" { (if_statement "if (prVar59->nbackref == 0) goto LAB_00055c08;" if (parenthesized_expression "(prVar59->nbackref == 0)" ( (binary_expression "prVar59->nbackref == 0" (field_expression "prVar59->nbackref" identifier -> field_identifier) == number_literal) )) (goto_statement "goto LAB_00055c08;" goto statement_identifier ;)) (expression_statement "aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                             ((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + local_c4.idx))->\n                             mbcset;" (assignment_expression "aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                             ((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + local_c4.idx))->\n                             mbcset" identifier = (field_expression "(anon_union_4_5_a39f51ca_for_opr)\n                             ((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + local_c4.idx))->\n                             mbcset" (call_expression "(anon_union_4_5_a39f51ca_for_opr)\n                             ((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + local_c4.idx))" (parenthesized_expression "(anon_union_4_5_a39f51ca_for_opr)" ( identifier )) (argument_list "((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + local_c4.idx))" ( (cast_expression "(anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + local_c4.idx)" ( (type_descriptor "anon_union_4_5_a39f51ca_for_opr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(mctx.state_log + local_c4.idx)" ( (binary_expression "mctx.state_log + local_c4.idx" (field_expression "mctx.state_log" identifier . field_identifier) + (field_expression "local_c4.idx" identifier . field_identifier)) ))) ))) -> field_identifier)) ;) (expression_statement "aVar49 = local_c4;" (assignment_expression "aVar49 = local_c4" identifier = identifier) ;) (expression_statement "mctx.last_node =\n                         check_halt_state_context(&mctx,(re_dfastate_t *)aVar45.mbcset,local_c4.idx)\n                    ;" (assignment_expression "mctx.last_node =\n                         check_halt_state_context(&mctx,(re_dfastate_t *)aVar45.mbcset,local_c4.idx)" (field_expression "mctx.last_node" identifier . field_identifier) = (call_expression "check_halt_state_context(&mctx,(re_dfastate_t *)aVar45.mbcset,local_c4.idx)" identifier (argument_list "(&mctx,(re_dfastate_t *)aVar45.mbcset,local_c4.idx)" ( (pointer_expression "&mctx" & identifier) , (cast_expression "(re_dfastate_t *)aVar45.mbcset" ( (type_descriptor "re_dfastate_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "aVar45.mbcset" identifier . field_identifier)) , (field_expression "local_c4.idx" identifier . field_identifier) )))) ;) }) (else_clause "else {\n                    aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                             ((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + local_c4.idx))->\n                             mbcset;\n                    aVar49 = local_c4;\n                    mctx.last_node =\n                         check_halt_state_context(&mctx,(re_dfastate_t *)aVar45.mbcset,local_c4.idx)\n                    ;\n                  }" else (compound_statement "{\n                    aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                             ((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + local_c4.idx))->\n                             mbcset;\n                    aVar49 = local_c4;\n                    mctx.last_node =\n                         check_halt_state_context(&mctx,(re_dfastate_t *)aVar45.mbcset,local_c4.idx)\n                    ;\n                  }" { (expression_statement "aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                             ((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + local_c4.idx))->\n                             mbcset;" (assignment_expression "aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                             ((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + local_c4.idx))->\n                             mbcset" identifier = (field_expression "(anon_union_4_5_a39f51ca_for_opr)\n                             ((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + local_c4.idx))->\n                             mbcset" (call_expression "(anon_union_4_5_a39f51ca_for_opr)\n                             ((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + local_c4.idx))" (parenthesized_expression "(anon_union_4_5_a39f51ca_for_opr)" ( identifier )) (argument_list "((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + local_c4.idx))" ( (cast_expression "(anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + local_c4.idx)" ( (type_descriptor "anon_union_4_5_a39f51ca_for_opr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(mctx.state_log + local_c4.idx)" ( (binary_expression "mctx.state_log + local_c4.idx" (field_expression "mctx.state_log" identifier . field_identifier) + (field_expression "local_c4.idx" identifier . field_identifier)) ))) ))) -> field_identifier)) ;) (expression_statement "aVar49 = local_c4;" (assignment_expression "aVar49 = local_c4" identifier = identifier) ;) (expression_statement "mctx.last_node =\n                         check_halt_state_context(&mctx,(re_dfastate_t *)aVar45.mbcset,local_c4.idx)\n                    ;" (assignment_expression "mctx.last_node =\n                         check_halt_state_context(&mctx,(re_dfastate_t *)aVar45.mbcset,local_c4.idx)" (field_expression "mctx.last_node" identifier . field_identifier) = (call_expression "check_halt_state_context(&mctx,(re_dfastate_t *)aVar45.mbcset,local_c4.idx)" identifier (argument_list "(&mctx,(re_dfastate_t *)aVar45.mbcset,local_c4.idx)" ( (pointer_expression "&mctx" & identifier) , (cast_expression "(re_dfastate_t *)aVar45.mbcset" ( (type_descriptor "re_dfastate_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "aVar45.mbcset" identifier . field_identifier)) , (field_expression "local_c4.idx" identifier . field_identifier) )))) ;) }))) (if_statement "if (aVar4.sbcset < (re_dfa_t *)0x2) {\nLAB_00055c6c:\n                    prVar52 = prVar51;\n                    unaff_s4 = mctx.dfa;\n                    if (prVar59->nbackref == 0) goto LAB_00055548;\n                  }\n                  else {\n                    cVar37 = prVar59->field_0x58;\nLAB_00055c20:\n                    prVar52 = prVar51;\n                    if (-1 < cVar37) goto LAB_00055c6c;\n                  }" if (parenthesized_expression "(aVar4.sbcset < (re_dfa_t *)0x2)" ( (binary_expression "aVar4.sbcset < (re_dfa_t *)0x2" (field_expression "aVar4.sbcset" identifier . field_identifier) < (cast_expression "(re_dfa_t *)0x2" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_00055c6c:\n                    prVar52 = prVar51;\n                    unaff_s4 = mctx.dfa;\n                    if (prVar59->nbackref == 0) goto LAB_00055548;\n                  }" { (labeled_statement "LAB_00055c6c:\n                    prVar52 = prVar51;" statement_identifier : (expression_statement "prVar52 = prVar51;" (assignment_expression "prVar52 = prVar51" identifier = identifier) ;)) (expression_statement "unaff_s4 = mctx.dfa;" (assignment_expression "unaff_s4 = mctx.dfa" identifier = (field_expression "mctx.dfa" identifier . field_identifier)) ;) (if_statement "if (prVar59->nbackref == 0) goto LAB_00055548;" if (parenthesized_expression "(prVar59->nbackref == 0)" ( (binary_expression "prVar59->nbackref == 0" (field_expression "prVar59->nbackref" identifier -> field_identifier) == number_literal) )) (goto_statement "goto LAB_00055548;" goto statement_identifier ;)) }) (else_clause "else {\n                    cVar37 = prVar59->field_0x58;\nLAB_00055c20:\n                    prVar52 = prVar51;\n                    if (-1 < cVar37) goto LAB_00055c6c;\n                  }" else (compound_statement "{\n                    cVar37 = prVar59->field_0x58;\nLAB_00055c20:\n                    prVar52 = prVar51;\n                    if (-1 < cVar37) goto LAB_00055c6c;\n                  }" { (expression_statement "cVar37 = prVar59->field_0x58;" (assignment_expression "cVar37 = prVar59->field_0x58" identifier = (field_expression "prVar59->field_0x58" identifier -> field_identifier)) ;) (labeled_statement "LAB_00055c20:\n                    prVar52 = prVar51;" statement_identifier : (expression_statement "prVar52 = prVar51;" (assignment_expression "prVar52 = prVar51" identifier = identifier) ;)) (if_statement "if (-1 < cVar37) goto LAB_00055c6c;" if (parenthesized_expression "(-1 < cVar37)" ( (binary_expression "-1 < cVar37" number_literal < identifier) )) (goto_statement "goto LAB_00055c6c;" goto statement_identifier ;)) }))) (expression_statement "paVar18 = (anon_union_4_5_a39f51ca_for_opr *)mctx.last_node;" (assignment_expression "paVar18 = (anon_union_4_5_a39f51ca_for_opr *)mctx.last_node" identifier = (cast_expression "(anon_union_4_5_a39f51ca_for_opr *)mctx.last_node" ( (type_descriptor "anon_union_4_5_a39f51ca_for_opr *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "mctx.last_node" identifier . field_identifier))) ;) (expression_statement "prVar3 = mctx.dfa;" (assignment_expression "prVar3 = mctx.dfa" identifier = (field_expression "mctx.dfa" identifier . field_identifier)) ;) (expression_statement "unaff_s4 = prVar3;" (assignment_expression "unaff_s4 = prVar3" identifier = identifier) ;) (if_statement "if ((uint)local_c4 < (re_dfa_t *)0x3fffffff) {\n                    aVar46.idx = (int)((int)&((re_string_t *)&(local_c4.mbcset)->mbchars)->raw_mbs +\n                                      1) * 4;\n                    unaff_s5.sbcset = (re_bitset_ptr_t)(*(code *)PTR_malloc_00079b54)(aVar46.sbcset)\n                    ;\n                    if ((re_dfa_t *)unaff_s5.sbcset == (re_dfa_t *)0x0) {\nLAB_00055b9c:\n                      (*(code *)PTR_free_00079c24)(unaff_s5.sbcset);\n                      local_150.idx = 0xc;\n                      prVar51 = prVar52;\n                    }\n                    else {\n                      aVar45.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                      if (prVar3->nbackref == 0) {\n                        dest_nodes.nelem = 0;\n                        dest_nodes.elems = &paVar18->idx;\n                        dest_nodes.alloc = (Idx)unaff_s5.sbcset;\n                        last_start = sift_states_backward(&mctx,(re_sift_context_t *)aVar45.mbcset);\n                        (*(code *)PTR_free_00079c24)(0);\n                        if ((re_dfa_t *)last_start == (re_dfa_t *)0x0) {\n                          aVar46.mbcset = (re_charset_t *)*unaff_s5.sbcset;\n                          if ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0) {\nLAB_00055b70:\n                            (*(code *)PTR_free_00079c24)(unaff_s5.sbcset);\n                            (*(code *)PTR_free_00079c24)(aVar46.sbcset);\n                            prVar51 = prVar52;\n                            goto LAB_00055b04;\n                          }\nLAB_00055528:\n                          (*(code *)PTR_free_00079c24)(mctx.state_log);\n                          prVar51 = prVar52;\n                          unaff_s4 = prVar3;\n                          mctx.match_last = local_c4.idx;\n                          mctx.last_node = (Idx)paVar18;\n                          mctx.state_log = (re_dfastate_t **)unaff_s5.sbcset;\n                          goto LAB_00055548;\n                        }\nLAB_00055acc:\n                        aVar46.sbcset = (re_bitset_ptr_t)0x0;\n                        prVar51 = prVar52;\n                        unaff_s4 = prVar3;\n                      }\n                      else {\n                        aVar46.sbcset =\n                             (re_bitset_ptr_t)(*(code *)PTR_malloc_00079b54)(aVar46.sbcset);\n                        if ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0) goto LAB_00055b9c;\n                        unaff_s7.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                        pcVar9 = (code *)(PTR_DAT_000799a4 + 0x421c);\n                        pcVar10 = (code *)(PTR_DAT_000799a4 + -0x6bc0);\n                        prVar51 = prVar52;\n                        while( true ) {\n                          prVar52 = (re_dfa_t *)(local_c4.idx + 1);\n                          stop = (int)prVar52 * 4;\n                          aVar49.idx = stop;\n                          (*(code *)PTR_memset_00079b00)(aVar46.sbcset,0);\n                          aVar45.sbcset = unaff_s7.sbcset;\n                          dest_nodes.alloc = (Idx)unaff_s5.sbcset;\n                          dest_nodes.nelem = (Idx)aVar46.sbcset;\n                          dest_nodes.elems = (Idx *)paVar18;\n                          last_start = (*pcVar9)(&mctx);\n                          (*(code *)PTR_free_00079c24)(0);\n                          unaff_s4 = prVar52;\n                          if ((re_dfa_t *)last_start != (re_dfa_t *)0x0) break;\n                          if ((*unaff_s5.sbcset != 0) || (stop = stop + -4, *aVar46.sbcset != 0)) {\n                            aVar45.sbcset = unaff_s5.sbcset;\n                            aVar49.sbcset = aVar46.sbcset;\n                            last_start = merge_state_array(prVar3,(re_dfastate_t **)unaff_s5.sbcset,\n                                                           (re_dfastate_t **)aVar46.sbcset,\n                                                           (Idx)prVar52);\n                            (*(code *)PTR_free_00079c24)(aVar46.sbcset);\n                            if ((re_dfa_t *)last_start != (re_dfa_t *)0x0) goto LAB_00055acc;\n                            goto LAB_00055528;\n                          }\n                          stop = (Idx)(mctx.state_log + (int)&prVar52[-1].lock.__align + 0x17);\n                          do {\n                            while( true ) {\n                              local_c4.sbcset = (re_bitset_ptr_t)(local_c4.idx + -1);\n                              if (local_c4.idx < 0) goto LAB_00055b70;\n                              aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                                       ((anon_union_4_5_a39f51ca_for_opr *)(stop + -4))->idx;\n                              if ((re_dfa_t *)aVar45.sbcset != (re_dfa_t *)0x0) break;\n                              stop = stop + -4;\n                            }\n                            stop = stop + -4;\n                          } while ((*(byte *)(aVar45.idx + 0x34) & 8) == 0);\n                          paVar18 = (anon_union_4_5_a39f51ca_for_opr *)\n                                    (*pcVar10)(&mctx,aVar45.sbcset,local_c4.sbcset);\n                          prVar51 = prVar52;\n                        }\n                      }\n                      (*(code *)PTR_free_00079c24)(unaff_s5.sbcset);\n                      (*(code *)PTR_free_00079c24)(aVar46.sbcset);\n                      local_150.idx = last_start;\n                      if ((re_dfa_t *)last_start == (re_dfa_t *)0x1) goto LAB_00055b04;\n                    }\n                  }\n                  else {\n                    local_150.idx = 0xc;\n                    prVar51 = prVar52;\n                  }" if (parenthesized_expression "((uint)local_c4 < (re_dfa_t *)0x3fffffff)" ( (binary_expression "(uint)local_c4 < (re_dfa_t *)0x3fffffff" (cast_expression "(uint)local_c4" ( (type_descriptor "uint" type_identifier) ) identifier) < (cast_expression "(re_dfa_t *)0x3fffffff" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    aVar46.idx = (int)((int)&((re_string_t *)&(local_c4.mbcset)->mbchars)->raw_mbs +\n                                      1) * 4;\n                    unaff_s5.sbcset = (re_bitset_ptr_t)(*(code *)PTR_malloc_00079b54)(aVar46.sbcset)\n                    ;\n                    if ((re_dfa_t *)unaff_s5.sbcset == (re_dfa_t *)0x0) {\nLAB_00055b9c:\n                      (*(code *)PTR_free_00079c24)(unaff_s5.sbcset);\n                      local_150.idx = 0xc;\n                      prVar51 = prVar52;\n                    }\n                    else {\n                      aVar45.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                      if (prVar3->nbackref == 0) {\n                        dest_nodes.nelem = 0;\n                        dest_nodes.elems = &paVar18->idx;\n                        dest_nodes.alloc = (Idx)unaff_s5.sbcset;\n                        last_start = sift_states_backward(&mctx,(re_sift_context_t *)aVar45.mbcset);\n                        (*(code *)PTR_free_00079c24)(0);\n                        if ((re_dfa_t *)last_start == (re_dfa_t *)0x0) {\n                          aVar46.mbcset = (re_charset_t *)*unaff_s5.sbcset;\n                          if ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0) {\nLAB_00055b70:\n                            (*(code *)PTR_free_00079c24)(unaff_s5.sbcset);\n                            (*(code *)PTR_free_00079c24)(aVar46.sbcset);\n                            prVar51 = prVar52;\n                            goto LAB_00055b04;\n                          }\nLAB_00055528:\n                          (*(code *)PTR_free_00079c24)(mctx.state_log);\n                          prVar51 = prVar52;\n                          unaff_s4 = prVar3;\n                          mctx.match_last = local_c4.idx;\n                          mctx.last_node = (Idx)paVar18;\n                          mctx.state_log = (re_dfastate_t **)unaff_s5.sbcset;\n                          goto LAB_00055548;\n                        }\nLAB_00055acc:\n                        aVar46.sbcset = (re_bitset_ptr_t)0x0;\n                        prVar51 = prVar52;\n                        unaff_s4 = prVar3;\n                      }\n                      else {\n                        aVar46.sbcset =\n                             (re_bitset_ptr_t)(*(code *)PTR_malloc_00079b54)(aVar46.sbcset);\n                        if ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0) goto LAB_00055b9c;\n                        unaff_s7.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                        pcVar9 = (code *)(PTR_DAT_000799a4 + 0x421c);\n                        pcVar10 = (code *)(PTR_DAT_000799a4 + -0x6bc0);\n                        prVar51 = prVar52;\n                        while( true ) {\n                          prVar52 = (re_dfa_t *)(local_c4.idx + 1);\n                          stop = (int)prVar52 * 4;\n                          aVar49.idx = stop;\n                          (*(code *)PTR_memset_00079b00)(aVar46.sbcset,0);\n                          aVar45.sbcset = unaff_s7.sbcset;\n                          dest_nodes.alloc = (Idx)unaff_s5.sbcset;\n                          dest_nodes.nelem = (Idx)aVar46.sbcset;\n                          dest_nodes.elems = (Idx *)paVar18;\n                          last_start = (*pcVar9)(&mctx);\n                          (*(code *)PTR_free_00079c24)(0);\n                          unaff_s4 = prVar52;\n                          if ((re_dfa_t *)last_start != (re_dfa_t *)0x0) break;\n                          if ((*unaff_s5.sbcset != 0) || (stop = stop + -4, *aVar46.sbcset != 0)) {\n                            aVar45.sbcset = unaff_s5.sbcset;\n                            aVar49.sbcset = aVar46.sbcset;\n                            last_start = merge_state_array(prVar3,(re_dfastate_t **)unaff_s5.sbcset,\n                                                           (re_dfastate_t **)aVar46.sbcset,\n                                                           (Idx)prVar52);\n                            (*(code *)PTR_free_00079c24)(aVar46.sbcset);\n                            if ((re_dfa_t *)last_start != (re_dfa_t *)0x0) goto LAB_00055acc;\n                            goto LAB_00055528;\n                          }\n                          stop = (Idx)(mctx.state_log + (int)&prVar52[-1].lock.__align + 0x17);\n                          do {\n                            while( true ) {\n                              local_c4.sbcset = (re_bitset_ptr_t)(local_c4.idx + -1);\n                              if (local_c4.idx < 0) goto LAB_00055b70;\n                              aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                                       ((anon_union_4_5_a39f51ca_for_opr *)(stop + -4))->idx;\n                              if ((re_dfa_t *)aVar45.sbcset != (re_dfa_t *)0x0) break;\n                              stop = stop + -4;\n                            }\n                            stop = stop + -4;\n                          } while ((*(byte *)(aVar45.idx + 0x34) & 8) == 0);\n                          paVar18 = (anon_union_4_5_a39f51ca_for_opr *)\n                                    (*pcVar10)(&mctx,aVar45.sbcset,local_c4.sbcset);\n                          prVar51 = prVar52;\n                        }\n                      }\n                      (*(code *)PTR_free_00079c24)(unaff_s5.sbcset);\n                      (*(code *)PTR_free_00079c24)(aVar46.sbcset);\n                      local_150.idx = last_start;\n                      if ((re_dfa_t *)last_start == (re_dfa_t *)0x1) goto LAB_00055b04;\n                    }\n                  }" { (expression_statement "aVar46.idx = (int)((int)&((re_string_t *)&(local_c4.mbcset)->mbchars)->raw_mbs +\n                                      1) * 4;" (assignment_expression "aVar46.idx = (int)((int)&((re_string_t *)&(local_c4.mbcset)->mbchars)->raw_mbs +\n                                      1) * 4" (field_expression "aVar46.idx" identifier . field_identifier) = (binary_expression "(int)((int)&((re_string_t *)&(local_c4.mbcset)->mbchars)->raw_mbs +\n                                      1) * 4" (cast_expression "(int)((int)&((re_string_t *)&(local_c4.mbcset)->mbchars)->raw_mbs +\n                                      1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)&((re_string_t *)&(local_c4.mbcset)->mbchars)->raw_mbs +\n                                      1)" ( (binary_expression "(int)&((re_string_t *)&(local_c4.mbcset)->mbchars)->raw_mbs +\n                                      1" (cast_expression "(int)&((re_string_t *)&(local_c4.mbcset)->mbchars)->raw_mbs" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&((re_string_t *)&(local_c4.mbcset)->mbchars)->raw_mbs" & (field_expression "((re_string_t *)&(local_c4.mbcset)->mbchars)->raw_mbs" (parenthesized_expression "((re_string_t *)&(local_c4.mbcset)->mbchars)" ( (cast_expression "(re_string_t *)&(local_c4.mbcset)->mbchars" ( (type_descriptor "re_string_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(local_c4.mbcset)->mbchars" & (field_expression "(local_c4.mbcset)->mbchars" (parenthesized_expression "(local_c4.mbcset)" ( (field_expression "local_c4.mbcset" identifier . field_identifier) )) -> field_identifier))) )) -> field_identifier))) + number_literal) ))) * number_literal)) ;) (expression_statement "unaff_s5.sbcset = (re_bitset_ptr_t)(*(code *)PTR_malloc_00079b54)(aVar46.sbcset)\n                    ;" (assignment_expression "unaff_s5.sbcset = (re_bitset_ptr_t)(*(code *)PTR_malloc_00079b54)(aVar46.sbcset)" (field_expression "unaff_s5.sbcset" identifier . field_identifier) = (call_expression "(re_bitset_ptr_t)(*(code *)PTR_malloc_00079b54)(aVar46.sbcset)" (call_expression "(re_bitset_ptr_t)(*(code *)PTR_malloc_00079b54)" (parenthesized_expression "(re_bitset_ptr_t)" ( identifier )) (argument_list "(*(code *)PTR_malloc_00079b54)" ( (pointer_expression "*(code *)PTR_malloc_00079b54" * (cast_expression "(code *)PTR_malloc_00079b54" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ))) (argument_list "(aVar46.sbcset)" ( (field_expression "aVar46.sbcset" identifier . field_identifier) )))) ;) (if_statement "if ((re_dfa_t *)unaff_s5.sbcset == (re_dfa_t *)0x0) {\nLAB_00055b9c:\n                      (*(code *)PTR_free_00079c24)(unaff_s5.sbcset);\n                      local_150.idx = 0xc;\n                      prVar51 = prVar52;\n                    }\n                    else {\n                      aVar45.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                      if (prVar3->nbackref == 0) {\n                        dest_nodes.nelem = 0;\n                        dest_nodes.elems = &paVar18->idx;\n                        dest_nodes.alloc = (Idx)unaff_s5.sbcset;\n                        last_start = sift_states_backward(&mctx,(re_sift_context_t *)aVar45.mbcset);\n                        (*(code *)PTR_free_00079c24)(0);\n                        if ((re_dfa_t *)last_start == (re_dfa_t *)0x0) {\n                          aVar46.mbcset = (re_charset_t *)*unaff_s5.sbcset;\n                          if ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0) {\nLAB_00055b70:\n                            (*(code *)PTR_free_00079c24)(unaff_s5.sbcset);\n                            (*(code *)PTR_free_00079c24)(aVar46.sbcset);\n                            prVar51 = prVar52;\n                            goto LAB_00055b04;\n                          }\nLAB_00055528:\n                          (*(code *)PTR_free_00079c24)(mctx.state_log);\n                          prVar51 = prVar52;\n                          unaff_s4 = prVar3;\n                          mctx.match_last = local_c4.idx;\n                          mctx.last_node = (Idx)paVar18;\n                          mctx.state_log = (re_dfastate_t **)unaff_s5.sbcset;\n                          goto LAB_00055548;\n                        }\nLAB_00055acc:\n                        aVar46.sbcset = (re_bitset_ptr_t)0x0;\n                        prVar51 = prVar52;\n                        unaff_s4 = prVar3;\n                      }\n                      else {\n                        aVar46.sbcset =\n                             (re_bitset_ptr_t)(*(code *)PTR_malloc_00079b54)(aVar46.sbcset);\n                        if ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0) goto LAB_00055b9c;\n                        unaff_s7.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                        pcVar9 = (code *)(PTR_DAT_000799a4 + 0x421c);\n                        pcVar10 = (code *)(PTR_DAT_000799a4 + -0x6bc0);\n                        prVar51 = prVar52;\n                        while( true ) {\n                          prVar52 = (re_dfa_t *)(local_c4.idx + 1);\n                          stop = (int)prVar52 * 4;\n                          aVar49.idx = stop;\n                          (*(code *)PTR_memset_00079b00)(aVar46.sbcset,0);\n                          aVar45.sbcset = unaff_s7.sbcset;\n                          dest_nodes.alloc = (Idx)unaff_s5.sbcset;\n                          dest_nodes.nelem = (Idx)aVar46.sbcset;\n                          dest_nodes.elems = (Idx *)paVar18;\n                          last_start = (*pcVar9)(&mctx);\n                          (*(code *)PTR_free_00079c24)(0);\n                          unaff_s4 = prVar52;\n                          if ((re_dfa_t *)last_start != (re_dfa_t *)0x0) break;\n                          if ((*unaff_s5.sbcset != 0) || (stop = stop + -4, *aVar46.sbcset != 0)) {\n                            aVar45.sbcset = unaff_s5.sbcset;\n                            aVar49.sbcset = aVar46.sbcset;\n                            last_start = merge_state_array(prVar3,(re_dfastate_t **)unaff_s5.sbcset,\n                                                           (re_dfastate_t **)aVar46.sbcset,\n                                                           (Idx)prVar52);\n                            (*(code *)PTR_free_00079c24)(aVar46.sbcset);\n                            if ((re_dfa_t *)last_start != (re_dfa_t *)0x0) goto LAB_00055acc;\n                            goto LAB_00055528;\n                          }\n                          stop = (Idx)(mctx.state_log + (int)&prVar52[-1].lock.__align + 0x17);\n                          do {\n                            while( true ) {\n                              local_c4.sbcset = (re_bitset_ptr_t)(local_c4.idx + -1);\n                              if (local_c4.idx < 0) goto LAB_00055b70;\n                              aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                                       ((anon_union_4_5_a39f51ca_for_opr *)(stop + -4))->idx;\n                              if ((re_dfa_t *)aVar45.sbcset != (re_dfa_t *)0x0) break;\n                              stop = stop + -4;\n                            }\n                            stop = stop + -4;\n                          } while ((*(byte *)(aVar45.idx + 0x34) & 8) == 0);\n                          paVar18 = (anon_union_4_5_a39f51ca_for_opr *)\n                                    (*pcVar10)(&mctx,aVar45.sbcset,local_c4.sbcset);\n                          prVar51 = prVar52;\n                        }\n                      }\n                      (*(code *)PTR_free_00079c24)(unaff_s5.sbcset);\n                      (*(code *)PTR_free_00079c24)(aVar46.sbcset);\n                      local_150.idx = last_start;\n                      if ((re_dfa_t *)last_start == (re_dfa_t *)0x1) goto LAB_00055b04;\n                    }" if (parenthesized_expression "((re_dfa_t *)unaff_s5.sbcset == (re_dfa_t *)0x0)" ( (binary_expression "(re_dfa_t *)unaff_s5.sbcset == (re_dfa_t *)0x0" (cast_expression "(re_dfa_t *)unaff_s5.sbcset" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "unaff_s5.sbcset" identifier . field_identifier)) == (cast_expression "(re_dfa_t *)0x0" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_00055b9c:\n                      (*(code *)PTR_free_00079c24)(unaff_s5.sbcset);\n                      local_150.idx = 0xc;\n                      prVar51 = prVar52;\n                    }" { (labeled_statement "LAB_00055b9c:\n                      (*(code *)PTR_free_00079c24)(unaff_s5.sbcset);" statement_identifier : (expression_statement "(*(code *)PTR_free_00079c24)(unaff_s5.sbcset);" (call_expression "(*(code *)PTR_free_00079c24)(unaff_s5.sbcset)" (parenthesized_expression "(*(code *)PTR_free_00079c24)" ( (pointer_expression "*(code *)PTR_free_00079c24" * (cast_expression "(code *)PTR_free_00079c24" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s5.sbcset)" ( (field_expression "unaff_s5.sbcset" identifier . field_identifier) ))) ;)) (expression_statement "local_150.idx = 0xc;" (assignment_expression "local_150.idx = 0xc" (field_expression "local_150.idx" identifier . field_identifier) = number_literal) ;) (expression_statement "prVar51 = prVar52;" (assignment_expression "prVar51 = prVar52" identifier = identifier) ;) }) (else_clause "else {\n                      aVar45.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                      if (prVar3->nbackref == 0) {\n                        dest_nodes.nelem = 0;\n                        dest_nodes.elems = &paVar18->idx;\n                        dest_nodes.alloc = (Idx)unaff_s5.sbcset;\n                        last_start = sift_states_backward(&mctx,(re_sift_context_t *)aVar45.mbcset);\n                        (*(code *)PTR_free_00079c24)(0);\n                        if ((re_dfa_t *)last_start == (re_dfa_t *)0x0) {\n                          aVar46.mbcset = (re_charset_t *)*unaff_s5.sbcset;\n                          if ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0) {\nLAB_00055b70:\n                            (*(code *)PTR_free_00079c24)(unaff_s5.sbcset);\n                            (*(code *)PTR_free_00079c24)(aVar46.sbcset);\n                            prVar51 = prVar52;\n                            goto LAB_00055b04;\n                          }\nLAB_00055528:\n                          (*(code *)PTR_free_00079c24)(mctx.state_log);\n                          prVar51 = prVar52;\n                          unaff_s4 = prVar3;\n                          mctx.match_last = local_c4.idx;\n                          mctx.last_node = (Idx)paVar18;\n                          mctx.state_log = (re_dfastate_t **)unaff_s5.sbcset;\n                          goto LAB_00055548;\n                        }\nLAB_00055acc:\n                        aVar46.sbcset = (re_bitset_ptr_t)0x0;\n                        prVar51 = prVar52;\n                        unaff_s4 = prVar3;\n                      }\n                      else {\n                        aVar46.sbcset =\n                             (re_bitset_ptr_t)(*(code *)PTR_malloc_00079b54)(aVar46.sbcset);\n                        if ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0) goto LAB_00055b9c;\n                        unaff_s7.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                        pcVar9 = (code *)(PTR_DAT_000799a4 + 0x421c);\n                        pcVar10 = (code *)(PTR_DAT_000799a4 + -0x6bc0);\n                        prVar51 = prVar52;\n                        while( true ) {\n                          prVar52 = (re_dfa_t *)(local_c4.idx + 1);\n                          stop = (int)prVar52 * 4;\n                          aVar49.idx = stop;\n                          (*(code *)PTR_memset_00079b00)(aVar46.sbcset,0);\n                          aVar45.sbcset = unaff_s7.sbcset;\n                          dest_nodes.alloc = (Idx)unaff_s5.sbcset;\n                          dest_nodes.nelem = (Idx)aVar46.sbcset;\n                          dest_nodes.elems = (Idx *)paVar18;\n                          last_start = (*pcVar9)(&mctx);\n                          (*(code *)PTR_free_00079c24)(0);\n                          unaff_s4 = prVar52;\n                          if ((re_dfa_t *)last_start != (re_dfa_t *)0x0) break;\n                          if ((*unaff_s5.sbcset != 0) || (stop = stop + -4, *aVar46.sbcset != 0)) {\n                            aVar45.sbcset = unaff_s5.sbcset;\n                            aVar49.sbcset = aVar46.sbcset;\n                            last_start = merge_state_array(prVar3,(re_dfastate_t **)unaff_s5.sbcset,\n                                                           (re_dfastate_t **)aVar46.sbcset,\n                                                           (Idx)prVar52);\n                            (*(code *)PTR_free_00079c24)(aVar46.sbcset);\n                            if ((re_dfa_t *)last_start != (re_dfa_t *)0x0) goto LAB_00055acc;\n                            goto LAB_00055528;\n                          }\n                          stop = (Idx)(mctx.state_log + (int)&prVar52[-1].lock.__align + 0x17);\n                          do {\n                            while( true ) {\n                              local_c4.sbcset = (re_bitset_ptr_t)(local_c4.idx + -1);\n                              if (local_c4.idx < 0) goto LAB_00055b70;\n                              aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                                       ((anon_union_4_5_a39f51ca_for_opr *)(stop + -4))->idx;\n                              if ((re_dfa_t *)aVar45.sbcset != (re_dfa_t *)0x0) break;\n                              stop = stop + -4;\n                            }\n                            stop = stop + -4;\n                          } while ((*(byte *)(aVar45.idx + 0x34) & 8) == 0);\n                          paVar18 = (anon_union_4_5_a39f51ca_for_opr *)\n                                    (*pcVar10)(&mctx,aVar45.sbcset,local_c4.sbcset);\n                          prVar51 = prVar52;\n                        }\n                      }\n                      (*(code *)PTR_free_00079c24)(unaff_s5.sbcset);\n                      (*(code *)PTR_free_00079c24)(aVar46.sbcset);\n                      local_150.idx = last_start;\n                      if ((re_dfa_t *)last_start == (re_dfa_t *)0x1) goto LAB_00055b04;\n                    }" else (compound_statement "{\n                      aVar45.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                      if (prVar3->nbackref == 0) {\n                        dest_nodes.nelem = 0;\n                        dest_nodes.elems = &paVar18->idx;\n                        dest_nodes.alloc = (Idx)unaff_s5.sbcset;\n                        last_start = sift_states_backward(&mctx,(re_sift_context_t *)aVar45.mbcset);\n                        (*(code *)PTR_free_00079c24)(0);\n                        if ((re_dfa_t *)last_start == (re_dfa_t *)0x0) {\n                          aVar46.mbcset = (re_charset_t *)*unaff_s5.sbcset;\n                          if ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0) {\nLAB_00055b70:\n                            (*(code *)PTR_free_00079c24)(unaff_s5.sbcset);\n                            (*(code *)PTR_free_00079c24)(aVar46.sbcset);\n                            prVar51 = prVar52;\n                            goto LAB_00055b04;\n                          }\nLAB_00055528:\n                          (*(code *)PTR_free_00079c24)(mctx.state_log);\n                          prVar51 = prVar52;\n                          unaff_s4 = prVar3;\n                          mctx.match_last = local_c4.idx;\n                          mctx.last_node = (Idx)paVar18;\n                          mctx.state_log = (re_dfastate_t **)unaff_s5.sbcset;\n                          goto LAB_00055548;\n                        }\nLAB_00055acc:\n                        aVar46.sbcset = (re_bitset_ptr_t)0x0;\n                        prVar51 = prVar52;\n                        unaff_s4 = prVar3;\n                      }\n                      else {\n                        aVar46.sbcset =\n                             (re_bitset_ptr_t)(*(code *)PTR_malloc_00079b54)(aVar46.sbcset);\n                        if ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0) goto LAB_00055b9c;\n                        unaff_s7.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                        pcVar9 = (code *)(PTR_DAT_000799a4 + 0x421c);\n                        pcVar10 = (code *)(PTR_DAT_000799a4 + -0x6bc0);\n                        prVar51 = prVar52;\n                        while( true ) {\n                          prVar52 = (re_dfa_t *)(local_c4.idx + 1);\n                          stop = (int)prVar52 * 4;\n                          aVar49.idx = stop;\n                          (*(code *)PTR_memset_00079b00)(aVar46.sbcset,0);\n                          aVar45.sbcset = unaff_s7.sbcset;\n                          dest_nodes.alloc = (Idx)unaff_s5.sbcset;\n                          dest_nodes.nelem = (Idx)aVar46.sbcset;\n                          dest_nodes.elems = (Idx *)paVar18;\n                          last_start = (*pcVar9)(&mctx);\n                          (*(code *)PTR_free_00079c24)(0);\n                          unaff_s4 = prVar52;\n                          if ((re_dfa_t *)last_start != (re_dfa_t *)0x0) break;\n                          if ((*unaff_s5.sbcset != 0) || (stop = stop + -4, *aVar46.sbcset != 0)) {\n                            aVar45.sbcset = unaff_s5.sbcset;\n                            aVar49.sbcset = aVar46.sbcset;\n                            last_start = merge_state_array(prVar3,(re_dfastate_t **)unaff_s5.sbcset,\n                                                           (re_dfastate_t **)aVar46.sbcset,\n                                                           (Idx)prVar52);\n                            (*(code *)PTR_free_00079c24)(aVar46.sbcset);\n                            if ((re_dfa_t *)last_start != (re_dfa_t *)0x0) goto LAB_00055acc;\n                            goto LAB_00055528;\n                          }\n                          stop = (Idx)(mctx.state_log + (int)&prVar52[-1].lock.__align + 0x17);\n                          do {\n                            while( true ) {\n                              local_c4.sbcset = (re_bitset_ptr_t)(local_c4.idx + -1);\n                              if (local_c4.idx < 0) goto LAB_00055b70;\n                              aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                                       ((anon_union_4_5_a39f51ca_for_opr *)(stop + -4))->idx;\n                              if ((re_dfa_t *)aVar45.sbcset != (re_dfa_t *)0x0) break;\n                              stop = stop + -4;\n                            }\n                            stop = stop + -4;\n                          } while ((*(byte *)(aVar45.idx + 0x34) & 8) == 0);\n                          paVar18 = (anon_union_4_5_a39f51ca_for_opr *)\n                                    (*pcVar10)(&mctx,aVar45.sbcset,local_c4.sbcset);\n                          prVar51 = prVar52;\n                        }\n                      }\n                      (*(code *)PTR_free_00079c24)(unaff_s5.sbcset);\n                      (*(code *)PTR_free_00079c24)(aVar46.sbcset);\n                      local_150.idx = last_start;\n                      if ((re_dfa_t *)last_start == (re_dfa_t *)0x1) goto LAB_00055b04;\n                    }" { (expression_statement "aVar45.sbcset = (re_bitset_ptr_t)&dest_nodes;" (assignment_expression "aVar45.sbcset = (re_bitset_ptr_t)&dest_nodes" (field_expression "aVar45.sbcset" identifier . field_identifier) = (binary_expression "(re_bitset_ptr_t)&dest_nodes" (parenthesized_expression "(re_bitset_ptr_t)" ( identifier )) & identifier)) ;) (if_statement "if (prVar3->nbackref == 0) {\n                        dest_nodes.nelem = 0;\n                        dest_nodes.elems = &paVar18->idx;\n                        dest_nodes.alloc = (Idx)unaff_s5.sbcset;\n                        last_start = sift_states_backward(&mctx,(re_sift_context_t *)aVar45.mbcset);\n                        (*(code *)PTR_free_00079c24)(0);\n                        if ((re_dfa_t *)last_start == (re_dfa_t *)0x0) {\n                          aVar46.mbcset = (re_charset_t *)*unaff_s5.sbcset;\n                          if ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0) {\nLAB_00055b70:\n                            (*(code *)PTR_free_00079c24)(unaff_s5.sbcset);\n                            (*(code *)PTR_free_00079c24)(aVar46.sbcset);\n                            prVar51 = prVar52;\n                            goto LAB_00055b04;\n                          }\nLAB_00055528:\n                          (*(code *)PTR_free_00079c24)(mctx.state_log);\n                          prVar51 = prVar52;\n                          unaff_s4 = prVar3;\n                          mctx.match_last = local_c4.idx;\n                          mctx.last_node = (Idx)paVar18;\n                          mctx.state_log = (re_dfastate_t **)unaff_s5.sbcset;\n                          goto LAB_00055548;\n                        }\nLAB_00055acc:\n                        aVar46.sbcset = (re_bitset_ptr_t)0x0;\n                        prVar51 = prVar52;\n                        unaff_s4 = prVar3;\n                      }\n                      else {\n                        aVar46.sbcset =\n                             (re_bitset_ptr_t)(*(code *)PTR_malloc_00079b54)(aVar46.sbcset);\n                        if ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0) goto LAB_00055b9c;\n                        unaff_s7.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                        pcVar9 = (code *)(PTR_DAT_000799a4 + 0x421c);\n                        pcVar10 = (code *)(PTR_DAT_000799a4 + -0x6bc0);\n                        prVar51 = prVar52;\n                        while( true ) {\n                          prVar52 = (re_dfa_t *)(local_c4.idx + 1);\n                          stop = (int)prVar52 * 4;\n                          aVar49.idx = stop;\n                          (*(code *)PTR_memset_00079b00)(aVar46.sbcset,0);\n                          aVar45.sbcset = unaff_s7.sbcset;\n                          dest_nodes.alloc = (Idx)unaff_s5.sbcset;\n                          dest_nodes.nelem = (Idx)aVar46.sbcset;\n                          dest_nodes.elems = (Idx *)paVar18;\n                          last_start = (*pcVar9)(&mctx);\n                          (*(code *)PTR_free_00079c24)(0);\n                          unaff_s4 = prVar52;\n                          if ((re_dfa_t *)last_start != (re_dfa_t *)0x0) break;\n                          if ((*unaff_s5.sbcset != 0) || (stop = stop + -4, *aVar46.sbcset != 0)) {\n                            aVar45.sbcset = unaff_s5.sbcset;\n                            aVar49.sbcset = aVar46.sbcset;\n                            last_start = merge_state_array(prVar3,(re_dfastate_t **)unaff_s5.sbcset,\n                                                           (re_dfastate_t **)aVar46.sbcset,\n                                                           (Idx)prVar52);\n                            (*(code *)PTR_free_00079c24)(aVar46.sbcset);\n                            if ((re_dfa_t *)last_start != (re_dfa_t *)0x0) goto LAB_00055acc;\n                            goto LAB_00055528;\n                          }\n                          stop = (Idx)(mctx.state_log + (int)&prVar52[-1].lock.__align + 0x17);\n                          do {\n                            while( true ) {\n                              local_c4.sbcset = (re_bitset_ptr_t)(local_c4.idx + -1);\n                              if (local_c4.idx < 0) goto LAB_00055b70;\n                              aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                                       ((anon_union_4_5_a39f51ca_for_opr *)(stop + -4))->idx;\n                              if ((re_dfa_t *)aVar45.sbcset != (re_dfa_t *)0x0) break;\n                              stop = stop + -4;\n                            }\n                            stop = stop + -4;\n                          } while ((*(byte *)(aVar45.idx + 0x34) & 8) == 0);\n                          paVar18 = (anon_union_4_5_a39f51ca_for_opr *)\n                                    (*pcVar10)(&mctx,aVar45.sbcset,local_c4.sbcset);\n                          prVar51 = prVar52;\n                        }\n                      }" if (parenthesized_expression "(prVar3->nbackref == 0)" ( (binary_expression "prVar3->nbackref == 0" (field_expression "prVar3->nbackref" identifier -> field_identifier) == number_literal) )) (compound_statement "{\n                        dest_nodes.nelem = 0;\n                        dest_nodes.elems = &paVar18->idx;\n                        dest_nodes.alloc = (Idx)unaff_s5.sbcset;\n                        last_start = sift_states_backward(&mctx,(re_sift_context_t *)aVar45.mbcset);\n                        (*(code *)PTR_free_00079c24)(0);\n                        if ((re_dfa_t *)last_start == (re_dfa_t *)0x0) {\n                          aVar46.mbcset = (re_charset_t *)*unaff_s5.sbcset;\n                          if ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0) {\nLAB_00055b70:\n                            (*(code *)PTR_free_00079c24)(unaff_s5.sbcset);\n                            (*(code *)PTR_free_00079c24)(aVar46.sbcset);\n                            prVar51 = prVar52;\n                            goto LAB_00055b04;\n                          }\nLAB_00055528:\n                          (*(code *)PTR_free_00079c24)(mctx.state_log);\n                          prVar51 = prVar52;\n                          unaff_s4 = prVar3;\n                          mctx.match_last = local_c4.idx;\n                          mctx.last_node = (Idx)paVar18;\n                          mctx.state_log = (re_dfastate_t **)unaff_s5.sbcset;\n                          goto LAB_00055548;\n                        }\nLAB_00055acc:\n                        aVar46.sbcset = (re_bitset_ptr_t)0x0;\n                        prVar51 = prVar52;\n                        unaff_s4 = prVar3;\n                      }" { (expression_statement "dest_nodes.nelem = 0;" (assignment_expression "dest_nodes.nelem = 0" (field_expression "dest_nodes.nelem" identifier . field_identifier) = number_literal) ;) (expression_statement "dest_nodes.elems = &paVar18->idx;" (assignment_expression "dest_nodes.elems = &paVar18->idx" (field_expression "dest_nodes.elems" identifier . field_identifier) = (pointer_expression "&paVar18->idx" & (field_expression "paVar18->idx" identifier -> field_identifier))) ;) (expression_statement "dest_nodes.alloc = (Idx)unaff_s5.sbcset;" (assignment_expression "dest_nodes.alloc = (Idx)unaff_s5.sbcset" (field_expression "dest_nodes.alloc" identifier . field_identifier) = (cast_expression "(Idx)unaff_s5.sbcset" ( (type_descriptor "Idx" type_identifier) ) (field_expression "unaff_s5.sbcset" identifier . field_identifier))) ;) (expression_statement "last_start = sift_states_backward(&mctx,(re_sift_context_t *)aVar45.mbcset);" (assignment_expression "last_start = sift_states_backward(&mctx,(re_sift_context_t *)aVar45.mbcset)" identifier = (call_expression "sift_states_backward(&mctx,(re_sift_context_t *)aVar45.mbcset)" identifier (argument_list "(&mctx,(re_sift_context_t *)aVar45.mbcset)" ( (pointer_expression "&mctx" & identifier) , (cast_expression "(re_sift_context_t *)aVar45.mbcset" ( (type_descriptor "re_sift_context_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "aVar45.mbcset" identifier . field_identifier)) )))) ;) (expression_statement "(*(code *)PTR_free_00079c24)(0);" (call_expression "(*(code *)PTR_free_00079c24)(0)" (parenthesized_expression "(*(code *)PTR_free_00079c24)" ( (pointer_expression "*(code *)PTR_free_00079c24" * (cast_expression "(code *)PTR_free_00079c24" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0)" ( number_literal ))) ;) (if_statement "if ((re_dfa_t *)last_start == (re_dfa_t *)0x0) {\n                          aVar46.mbcset = (re_charset_t *)*unaff_s5.sbcset;\n                          if ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0) {\nLAB_00055b70:\n                            (*(code *)PTR_free_00079c24)(unaff_s5.sbcset);\n                            (*(code *)PTR_free_00079c24)(aVar46.sbcset);\n                            prVar51 = prVar52;\n                            goto LAB_00055b04;\n                          }\nLAB_00055528:\n                          (*(code *)PTR_free_00079c24)(mctx.state_log);\n                          prVar51 = prVar52;\n                          unaff_s4 = prVar3;\n                          mctx.match_last = local_c4.idx;\n                          mctx.last_node = (Idx)paVar18;\n                          mctx.state_log = (re_dfastate_t **)unaff_s5.sbcset;\n                          goto LAB_00055548;\n                        }" if (parenthesized_expression "((re_dfa_t *)last_start == (re_dfa_t *)0x0)" ( (binary_expression "(re_dfa_t *)last_start == (re_dfa_t *)0x0" (cast_expression "(re_dfa_t *)last_start" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) == (cast_expression "(re_dfa_t *)0x0" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                          aVar46.mbcset = (re_charset_t *)*unaff_s5.sbcset;\n                          if ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0) {\nLAB_00055b70:\n                            (*(code *)PTR_free_00079c24)(unaff_s5.sbcset);\n                            (*(code *)PTR_free_00079c24)(aVar46.sbcset);\n                            prVar51 = prVar52;\n                            goto LAB_00055b04;\n                          }\nLAB_00055528:\n                          (*(code *)PTR_free_00079c24)(mctx.state_log);\n                          prVar51 = prVar52;\n                          unaff_s4 = prVar3;\n                          mctx.match_last = local_c4.idx;\n                          mctx.last_node = (Idx)paVar18;\n                          mctx.state_log = (re_dfastate_t **)unaff_s5.sbcset;\n                          goto LAB_00055548;\n                        }" { (expression_statement "aVar46.mbcset = (re_charset_t *)*unaff_s5.sbcset;" (assignment_expression "aVar46.mbcset = (re_charset_t *)*unaff_s5.sbcset" (field_expression "aVar46.mbcset" identifier . field_identifier) = (cast_expression "(re_charset_t *)*unaff_s5.sbcset" ( (type_descriptor "re_charset_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*unaff_s5.sbcset" * (field_expression "unaff_s5.sbcset" identifier . field_identifier)))) ;) (if_statement "if ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0) {\nLAB_00055b70:\n                            (*(code *)PTR_free_00079c24)(unaff_s5.sbcset);\n                            (*(code *)PTR_free_00079c24)(aVar46.sbcset);\n                            prVar51 = prVar52;\n                            goto LAB_00055b04;\n                          }" if (parenthesized_expression "((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0)" ( (binary_expression "(re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0" (cast_expression "(re_dfa_t *)aVar46.sbcset" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "aVar46.sbcset" identifier . field_identifier)) == (cast_expression "(re_dfa_t *)0x0" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_00055b70:\n                            (*(code *)PTR_free_00079c24)(unaff_s5.sbcset);\n                            (*(code *)PTR_free_00079c24)(aVar46.sbcset);\n                            prVar51 = prVar52;\n                            goto LAB_00055b04;\n                          }" { (labeled_statement "LAB_00055b70:\n                            (*(code *)PTR_free_00079c24)(unaff_s5.sbcset);" statement_identifier : (expression_statement "(*(code *)PTR_free_00079c24)(unaff_s5.sbcset);" (call_expression "(*(code *)PTR_free_00079c24)(unaff_s5.sbcset)" (parenthesized_expression "(*(code *)PTR_free_00079c24)" ( (pointer_expression "*(code *)PTR_free_00079c24" * (cast_expression "(code *)PTR_free_00079c24" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s5.sbcset)" ( (field_expression "unaff_s5.sbcset" identifier . field_identifier) ))) ;)) (expression_statement "(*(code *)PTR_free_00079c24)(aVar46.sbcset);" (call_expression "(*(code *)PTR_free_00079c24)(aVar46.sbcset)" (parenthesized_expression "(*(code *)PTR_free_00079c24)" ( (pointer_expression "*(code *)PTR_free_00079c24" * (cast_expression "(code *)PTR_free_00079c24" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(aVar46.sbcset)" ( (field_expression "aVar46.sbcset" identifier . field_identifier) ))) ;) (expression_statement "prVar51 = prVar52;" (assignment_expression "prVar51 = prVar52" identifier = identifier) ;) (goto_statement "goto LAB_00055b04;" goto statement_identifier ;) })) (labeled_statement "LAB_00055528:\n                          (*(code *)PTR_free_00079c24)(mctx.state_log);" statement_identifier : (expression_statement "(*(code *)PTR_free_00079c24)(mctx.state_log);" (call_expression "(*(code *)PTR_free_00079c24)(mctx.state_log)" (parenthesized_expression "(*(code *)PTR_free_00079c24)" ( (pointer_expression "*(code *)PTR_free_00079c24" * (cast_expression "(code *)PTR_free_00079c24" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(mctx.state_log)" ( (field_expression "mctx.state_log" identifier . field_identifier) ))) ;)) (expression_statement "prVar51 = prVar52;" (assignment_expression "prVar51 = prVar52" identifier = identifier) ;) (expression_statement "unaff_s4 = prVar3;" (assignment_expression "unaff_s4 = prVar3" identifier = identifier) ;) (expression_statement "mctx.match_last = local_c4.idx;" (assignment_expression "mctx.match_last = local_c4.idx" (field_expression "mctx.match_last" identifier . field_identifier) = (field_expression "local_c4.idx" identifier . field_identifier)) ;) (expression_statement "mctx.last_node = (Idx)paVar18;" (assignment_expression "mctx.last_node = (Idx)paVar18" (field_expression "mctx.last_node" identifier . field_identifier) = (cast_expression "(Idx)paVar18" ( (type_descriptor "Idx" type_identifier) ) identifier)) ;) (expression_statement "mctx.state_log = (re_dfastate_t **)unaff_s5.sbcset;" (assignment_expression "mctx.state_log = (re_dfastate_t **)unaff_s5.sbcset" (field_expression "mctx.state_log" identifier . field_identifier) = (cast_expression "(re_dfastate_t **)unaff_s5.sbcset" ( (type_descriptor "re_dfastate_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (field_expression "unaff_s5.sbcset" identifier . field_identifier))) ;) (goto_statement "goto LAB_00055548;" goto statement_identifier ;) })) (labeled_statement "LAB_00055acc:\n                        aVar46.sbcset = (re_bitset_ptr_t)0x0;" statement_identifier : (expression_statement "aVar46.sbcset = (re_bitset_ptr_t)0x0;" (assignment_expression "aVar46.sbcset = (re_bitset_ptr_t)0x0" (field_expression "aVar46.sbcset" identifier . field_identifier) = (cast_expression "(re_bitset_ptr_t)0x0" ( (type_descriptor "re_bitset_ptr_t" type_identifier) ) number_literal)) ;)) (expression_statement "prVar51 = prVar52;" (assignment_expression "prVar51 = prVar52" identifier = identifier) ;) (expression_statement "unaff_s4 = prVar3;" (assignment_expression "unaff_s4 = prVar3" identifier = identifier) ;) }) (else_clause "else {\n                        aVar46.sbcset =\n                             (re_bitset_ptr_t)(*(code *)PTR_malloc_00079b54)(aVar46.sbcset);\n                        if ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0) goto LAB_00055b9c;\n                        unaff_s7.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                        pcVar9 = (code *)(PTR_DAT_000799a4 + 0x421c);\n                        pcVar10 = (code *)(PTR_DAT_000799a4 + -0x6bc0);\n                        prVar51 = prVar52;\n                        while( true ) {\n                          prVar52 = (re_dfa_t *)(local_c4.idx + 1);\n                          stop = (int)prVar52 * 4;\n                          aVar49.idx = stop;\n                          (*(code *)PTR_memset_00079b00)(aVar46.sbcset,0);\n                          aVar45.sbcset = unaff_s7.sbcset;\n                          dest_nodes.alloc = (Idx)unaff_s5.sbcset;\n                          dest_nodes.nelem = (Idx)aVar46.sbcset;\n                          dest_nodes.elems = (Idx *)paVar18;\n                          last_start = (*pcVar9)(&mctx);\n                          (*(code *)PTR_free_00079c24)(0);\n                          unaff_s4 = prVar52;\n                          if ((re_dfa_t *)last_start != (re_dfa_t *)0x0) break;\n                          if ((*unaff_s5.sbcset != 0) || (stop = stop + -4, *aVar46.sbcset != 0)) {\n                            aVar45.sbcset = unaff_s5.sbcset;\n                            aVar49.sbcset = aVar46.sbcset;\n                            last_start = merge_state_array(prVar3,(re_dfastate_t **)unaff_s5.sbcset,\n                                                           (re_dfastate_t **)aVar46.sbcset,\n                                                           (Idx)prVar52);\n                            (*(code *)PTR_free_00079c24)(aVar46.sbcset);\n                            if ((re_dfa_t *)last_start != (re_dfa_t *)0x0) goto LAB_00055acc;\n                            goto LAB_00055528;\n                          }\n                          stop = (Idx)(mctx.state_log + (int)&prVar52[-1].lock.__align + 0x17);\n                          do {\n                            while( true ) {\n                              local_c4.sbcset = (re_bitset_ptr_t)(local_c4.idx + -1);\n                              if (local_c4.idx < 0) goto LAB_00055b70;\n                              aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                                       ((anon_union_4_5_a39f51ca_for_opr *)(stop + -4))->idx;\n                              if ((re_dfa_t *)aVar45.sbcset != (re_dfa_t *)0x0) break;\n                              stop = stop + -4;\n                            }\n                            stop = stop + -4;\n                          } while ((*(byte *)(aVar45.idx + 0x34) & 8) == 0);\n                          paVar18 = (anon_union_4_5_a39f51ca_for_opr *)\n                                    (*pcVar10)(&mctx,aVar45.sbcset,local_c4.sbcset);\n                          prVar51 = prVar52;\n                        }\n                      }" else (compound_statement "{\n                        aVar46.sbcset =\n                             (re_bitset_ptr_t)(*(code *)PTR_malloc_00079b54)(aVar46.sbcset);\n                        if ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0) goto LAB_00055b9c;\n                        unaff_s7.sbcset = (re_bitset_ptr_t)&dest_nodes;\n                        pcVar9 = (code *)(PTR_DAT_000799a4 + 0x421c);\n                        pcVar10 = (code *)(PTR_DAT_000799a4 + -0x6bc0);\n                        prVar51 = prVar52;\n                        while( true ) {\n                          prVar52 = (re_dfa_t *)(local_c4.idx + 1);\n                          stop = (int)prVar52 * 4;\n                          aVar49.idx = stop;\n                          (*(code *)PTR_memset_00079b00)(aVar46.sbcset,0);\n                          aVar45.sbcset = unaff_s7.sbcset;\n                          dest_nodes.alloc = (Idx)unaff_s5.sbcset;\n                          dest_nodes.nelem = (Idx)aVar46.sbcset;\n                          dest_nodes.elems = (Idx *)paVar18;\n                          last_start = (*pcVar9)(&mctx);\n                          (*(code *)PTR_free_00079c24)(0);\n                          unaff_s4 = prVar52;\n                          if ((re_dfa_t *)last_start != (re_dfa_t *)0x0) break;\n                          if ((*unaff_s5.sbcset != 0) || (stop = stop + -4, *aVar46.sbcset != 0)) {\n                            aVar45.sbcset = unaff_s5.sbcset;\n                            aVar49.sbcset = aVar46.sbcset;\n                            last_start = merge_state_array(prVar3,(re_dfastate_t **)unaff_s5.sbcset,\n                                                           (re_dfastate_t **)aVar46.sbcset,\n                                                           (Idx)prVar52);\n                            (*(code *)PTR_free_00079c24)(aVar46.sbcset);\n                            if ((re_dfa_t *)last_start != (re_dfa_t *)0x0) goto LAB_00055acc;\n                            goto LAB_00055528;\n                          }\n                          stop = (Idx)(mctx.state_log + (int)&prVar52[-1].lock.__align + 0x17);\n                          do {\n                            while( true ) {\n                              local_c4.sbcset = (re_bitset_ptr_t)(local_c4.idx + -1);\n                              if (local_c4.idx < 0) goto LAB_00055b70;\n                              aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                                       ((anon_union_4_5_a39f51ca_for_opr *)(stop + -4))->idx;\n                              if ((re_dfa_t *)aVar45.sbcset != (re_dfa_t *)0x0) break;\n                              stop = stop + -4;\n                            }\n                            stop = stop + -4;\n                          } while ((*(byte *)(aVar45.idx + 0x34) & 8) == 0);\n                          paVar18 = (anon_union_4_5_a39f51ca_for_opr *)\n                                    (*pcVar10)(&mctx,aVar45.sbcset,local_c4.sbcset);\n                          prVar51 = prVar52;\n                        }\n                      }" { (expression_statement "aVar46.sbcset =\n                             (re_bitset_ptr_t)(*(code *)PTR_malloc_00079b54)(aVar46.sbcset);" (assignment_expression "aVar46.sbcset =\n                             (re_bitset_ptr_t)(*(code *)PTR_malloc_00079b54)(aVar46.sbcset)" (field_expression "aVar46.sbcset" identifier . field_identifier) = (call_expression "(re_bitset_ptr_t)(*(code *)PTR_malloc_00079b54)(aVar46.sbcset)" (call_expression "(re_bitset_ptr_t)(*(code *)PTR_malloc_00079b54)" (parenthesized_expression "(re_bitset_ptr_t)" ( identifier )) (argument_list "(*(code *)PTR_malloc_00079b54)" ( (pointer_expression "*(code *)PTR_malloc_00079b54" * (cast_expression "(code *)PTR_malloc_00079b54" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ))) (argument_list "(aVar46.sbcset)" ( (field_expression "aVar46.sbcset" identifier . field_identifier) )))) ;) (if_statement "if ((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0) goto LAB_00055b9c;" if (parenthesized_expression "((re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0)" ( (binary_expression "(re_dfa_t *)aVar46.sbcset == (re_dfa_t *)0x0" (cast_expression "(re_dfa_t *)aVar46.sbcset" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "aVar46.sbcset" identifier . field_identifier)) == (cast_expression "(re_dfa_t *)0x0" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00055b9c;" goto statement_identifier ;)) (expression_statement "unaff_s7.sbcset = (re_bitset_ptr_t)&dest_nodes;" (assignment_expression "unaff_s7.sbcset = (re_bitset_ptr_t)&dest_nodes" (field_expression "unaff_s7.sbcset" identifier . field_identifier) = (binary_expression "(re_bitset_ptr_t)&dest_nodes" (parenthesized_expression "(re_bitset_ptr_t)" ( identifier )) & identifier)) ;) (expression_statement "pcVar9 = (code *)(PTR_DAT_000799a4 + 0x421c);" (assignment_expression "pcVar9 = (code *)(PTR_DAT_000799a4 + 0x421c)" identifier = (cast_expression "(code *)(PTR_DAT_000799a4 + 0x421c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000799a4 + 0x421c)" ( (binary_expression "PTR_DAT_000799a4 + 0x421c" identifier + number_literal) )))) ;) (expression_statement "pcVar10 = (code *)(PTR_DAT_000799a4 + -0x6bc0);" (assignment_expression "pcVar10 = (code *)(PTR_DAT_000799a4 + -0x6bc0)" identifier = (cast_expression "(code *)(PTR_DAT_000799a4 + -0x6bc0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000799a4 + -0x6bc0)" ( (binary_expression "PTR_DAT_000799a4 + -0x6bc0" identifier + number_literal) )))) ;) (expression_statement "prVar51 = prVar52;" (assignment_expression "prVar51 = prVar52" identifier = identifier) ;) (while_statement "while( true ) {\n                          prVar52 = (re_dfa_t *)(local_c4.idx + 1);\n                          stop = (int)prVar52 * 4;\n                          aVar49.idx = stop;\n                          (*(code *)PTR_memset_00079b00)(aVar46.sbcset,0);\n                          aVar45.sbcset = unaff_s7.sbcset;\n                          dest_nodes.alloc = (Idx)unaff_s5.sbcset;\n                          dest_nodes.nelem = (Idx)aVar46.sbcset;\n                          dest_nodes.elems = (Idx *)paVar18;\n                          last_start = (*pcVar9)(&mctx);\n                          (*(code *)PTR_free_00079c24)(0);\n                          unaff_s4 = prVar52;\n                          if ((re_dfa_t *)last_start != (re_dfa_t *)0x0) break;\n                          if ((*unaff_s5.sbcset != 0) || (stop = stop + -4, *aVar46.sbcset != 0)) {\n                            aVar45.sbcset = unaff_s5.sbcset;\n                            aVar49.sbcset = aVar46.sbcset;\n                            last_start = merge_state_array(prVar3,(re_dfastate_t **)unaff_s5.sbcset,\n                                                           (re_dfastate_t **)aVar46.sbcset,\n                                                           (Idx)prVar52);\n                            (*(code *)PTR_free_00079c24)(aVar46.sbcset);\n                            if ((re_dfa_t *)last_start != (re_dfa_t *)0x0) goto LAB_00055acc;\n                            goto LAB_00055528;\n                          }\n                          stop = (Idx)(mctx.state_log + (int)&prVar52[-1].lock.__align + 0x17);\n                          do {\n                            while( true ) {\n                              local_c4.sbcset = (re_bitset_ptr_t)(local_c4.idx + -1);\n                              if (local_c4.idx < 0) goto LAB_00055b70;\n                              aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                                       ((anon_union_4_5_a39f51ca_for_opr *)(stop + -4))->idx;\n                              if ((re_dfa_t *)aVar45.sbcset != (re_dfa_t *)0x0) break;\n                              stop = stop + -4;\n                            }\n                            stop = stop + -4;\n                          } while ((*(byte *)(aVar45.idx + 0x34) & 8) == 0);\n                          paVar18 = (anon_union_4_5_a39f51ca_for_opr *)\n                                    (*pcVar10)(&mctx,aVar45.sbcset,local_c4.sbcset);\n                          prVar51 = prVar52;\n                        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                          prVar52 = (re_dfa_t *)(local_c4.idx + 1);\n                          stop = (int)prVar52 * 4;\n                          aVar49.idx = stop;\n                          (*(code *)PTR_memset_00079b00)(aVar46.sbcset,0);\n                          aVar45.sbcset = unaff_s7.sbcset;\n                          dest_nodes.alloc = (Idx)unaff_s5.sbcset;\n                          dest_nodes.nelem = (Idx)aVar46.sbcset;\n                          dest_nodes.elems = (Idx *)paVar18;\n                          last_start = (*pcVar9)(&mctx);\n                          (*(code *)PTR_free_00079c24)(0);\n                          unaff_s4 = prVar52;\n                          if ((re_dfa_t *)last_start != (re_dfa_t *)0x0) break;\n                          if ((*unaff_s5.sbcset != 0) || (stop = stop + -4, *aVar46.sbcset != 0)) {\n                            aVar45.sbcset = unaff_s5.sbcset;\n                            aVar49.sbcset = aVar46.sbcset;\n                            last_start = merge_state_array(prVar3,(re_dfastate_t **)unaff_s5.sbcset,\n                                                           (re_dfastate_t **)aVar46.sbcset,\n                                                           (Idx)prVar52);\n                            (*(code *)PTR_free_00079c24)(aVar46.sbcset);\n                            if ((re_dfa_t *)last_start != (re_dfa_t *)0x0) goto LAB_00055acc;\n                            goto LAB_00055528;\n                          }\n                          stop = (Idx)(mctx.state_log + (int)&prVar52[-1].lock.__align + 0x17);\n                          do {\n                            while( true ) {\n                              local_c4.sbcset = (re_bitset_ptr_t)(local_c4.idx + -1);\n                              if (local_c4.idx < 0) goto LAB_00055b70;\n                              aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                                       ((anon_union_4_5_a39f51ca_for_opr *)(stop + -4))->idx;\n                              if ((re_dfa_t *)aVar45.sbcset != (re_dfa_t *)0x0) break;\n                              stop = stop + -4;\n                            }\n                            stop = stop + -4;\n                          } while ((*(byte *)(aVar45.idx + 0x34) & 8) == 0);\n                          paVar18 = (anon_union_4_5_a39f51ca_for_opr *)\n                                    (*pcVar10)(&mctx,aVar45.sbcset,local_c4.sbcset);\n                          prVar51 = prVar52;\n                        }" { (expression_statement "prVar52 = (re_dfa_t *)(local_c4.idx + 1);" (assignment_expression "prVar52 = (re_dfa_t *)(local_c4.idx + 1)" identifier = (cast_expression "(re_dfa_t *)(local_c4.idx + 1)" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_c4.idx + 1)" ( (binary_expression "local_c4.idx + 1" (field_expression "local_c4.idx" identifier . field_identifier) + number_literal) )))) ;) (expression_statement "stop = (int)prVar52 * 4;" (assignment_expression "stop = (int)prVar52 * 4" identifier = (binary_expression "(int)prVar52 * 4" (cast_expression "(int)prVar52" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ;) (expression_statement "aVar49.idx = stop;" (assignment_expression "aVar49.idx = stop" (field_expression "aVar49.idx" identifier . field_identifier) = identifier) ;) (expression_statement "(*(code *)PTR_memset_00079b00)(aVar46.sbcset,0);" (call_expression "(*(code *)PTR_memset_00079b00)(aVar46.sbcset,0)" (parenthesized_expression "(*(code *)PTR_memset_00079b00)" ( (pointer_expression "*(code *)PTR_memset_00079b00" * (cast_expression "(code *)PTR_memset_00079b00" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(aVar46.sbcset,0)" ( (field_expression "aVar46.sbcset" identifier . field_identifier) , number_literal ))) ;) (expression_statement "aVar45.sbcset = unaff_s7.sbcset;" (assignment_expression "aVar45.sbcset = unaff_s7.sbcset" (field_expression "aVar45.sbcset" identifier . field_identifier) = (field_expression "unaff_s7.sbcset" identifier . field_identifier)) ;) (expression_statement "dest_nodes.alloc = (Idx)unaff_s5.sbcset;" (assignment_expression "dest_nodes.alloc = (Idx)unaff_s5.sbcset" (field_expression "dest_nodes.alloc" identifier . field_identifier) = (cast_expression "(Idx)unaff_s5.sbcset" ( (type_descriptor "Idx" type_identifier) ) (field_expression "unaff_s5.sbcset" identifier . field_identifier))) ;) (expression_statement "dest_nodes.nelem = (Idx)aVar46.sbcset;" (assignment_expression "dest_nodes.nelem = (Idx)aVar46.sbcset" (field_expression "dest_nodes.nelem" identifier . field_identifier) = (cast_expression "(Idx)aVar46.sbcset" ( (type_descriptor "Idx" type_identifier) ) (field_expression "aVar46.sbcset" identifier . field_identifier))) ;) (expression_statement "dest_nodes.elems = (Idx *)paVar18;" (assignment_expression "dest_nodes.elems = (Idx *)paVar18" (field_expression "dest_nodes.elems" identifier . field_identifier) = (cast_expression "(Idx *)paVar18" ( (type_descriptor "Idx *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "last_start = (*pcVar9)(&mctx);" (assignment_expression "last_start = (*pcVar9)(&mctx)" identifier = (call_expression "(*pcVar9)(&mctx)" (parenthesized_expression "(*pcVar9)" ( (pointer_expression "*pcVar9" * identifier) )) (argument_list "(&mctx)" ( (pointer_expression "&mctx" & identifier) )))) ;) (expression_statement "(*(code *)PTR_free_00079c24)(0);" (call_expression "(*(code *)PTR_free_00079c24)(0)" (parenthesized_expression "(*(code *)PTR_free_00079c24)" ( (pointer_expression "*(code *)PTR_free_00079c24" * (cast_expression "(code *)PTR_free_00079c24" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0)" ( number_literal ))) ;) (expression_statement "unaff_s4 = prVar52;" (assignment_expression "unaff_s4 = prVar52" identifier = identifier) ;) (if_statement "if ((re_dfa_t *)last_start != (re_dfa_t *)0x0) break;" if (parenthesized_expression "((re_dfa_t *)last_start != (re_dfa_t *)0x0)" ( (binary_expression "(re_dfa_t *)last_start != (re_dfa_t *)0x0" (cast_expression "(re_dfa_t *)last_start" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) != (cast_expression "(re_dfa_t *)0x0" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (if_statement "if ((*unaff_s5.sbcset != 0) || (stop = stop + -4, *aVar46.sbcset != 0)) {\n                            aVar45.sbcset = unaff_s5.sbcset;\n                            aVar49.sbcset = aVar46.sbcset;\n                            last_start = merge_state_array(prVar3,(re_dfastate_t **)unaff_s5.sbcset,\n                                                           (re_dfastate_t **)aVar46.sbcset,\n                                                           (Idx)prVar52);\n                            (*(code *)PTR_free_00079c24)(aVar46.sbcset);\n                            if ((re_dfa_t *)last_start != (re_dfa_t *)0x0) goto LAB_00055acc;\n                            goto LAB_00055528;\n                          }" if (parenthesized_expression "((*unaff_s5.sbcset != 0) || (stop = stop + -4, *aVar46.sbcset != 0))" ( (binary_expression "(*unaff_s5.sbcset != 0) || (stop = stop + -4, *aVar46.sbcset != 0)" (parenthesized_expression "(*unaff_s5.sbcset != 0)" ( (binary_expression "*unaff_s5.sbcset != 0" (pointer_expression "*unaff_s5.sbcset" * (field_expression "unaff_s5.sbcset" identifier . field_identifier)) != number_literal) )) || (parenthesized_expression "(stop = stop + -4, *aVar46.sbcset != 0)" ( (comma_expression "stop = stop + -4, *aVar46.sbcset != 0" (assignment_expression "stop = stop + -4" identifier = (binary_expression "stop + -4" identifier + number_literal)) , (binary_expression "*aVar46.sbcset != 0" (pointer_expression "*aVar46.sbcset" * (field_expression "aVar46.sbcset" identifier . field_identifier)) != number_literal)) ))) )) (compound_statement "{\n                            aVar45.sbcset = unaff_s5.sbcset;\n                            aVar49.sbcset = aVar46.sbcset;\n                            last_start = merge_state_array(prVar3,(re_dfastate_t **)unaff_s5.sbcset,\n                                                           (re_dfastate_t **)aVar46.sbcset,\n                                                           (Idx)prVar52);\n                            (*(code *)PTR_free_00079c24)(aVar46.sbcset);\n                            if ((re_dfa_t *)last_start != (re_dfa_t *)0x0) goto LAB_00055acc;\n                            goto LAB_00055528;\n                          }" { (expression_statement "aVar45.sbcset = unaff_s5.sbcset;" (assignment_expression "aVar45.sbcset = unaff_s5.sbcset" (field_expression "aVar45.sbcset" identifier . field_identifier) = (field_expression "unaff_s5.sbcset" identifier . field_identifier)) ;) (expression_statement "aVar49.sbcset = aVar46.sbcset;" (assignment_expression "aVar49.sbcset = aVar46.sbcset" (field_expression "aVar49.sbcset" identifier . field_identifier) = (field_expression "aVar46.sbcset" identifier . field_identifier)) ;) (expression_statement "last_start = merge_state_array(prVar3,(re_dfastate_t **)unaff_s5.sbcset,\n                                                           (re_dfastate_t **)aVar46.sbcset,\n                                                           (Idx)prVar52);" (assignment_expression "last_start = merge_state_array(prVar3,(re_dfastate_t **)unaff_s5.sbcset,\n                                                           (re_dfastate_t **)aVar46.sbcset,\n                                                           (Idx)prVar52)" identifier = (call_expression "merge_state_array(prVar3,(re_dfastate_t **)unaff_s5.sbcset,\n                                                           (re_dfastate_t **)aVar46.sbcset,\n                                                           (Idx)prVar52)" identifier (argument_list "(prVar3,(re_dfastate_t **)unaff_s5.sbcset,\n                                                           (re_dfastate_t **)aVar46.sbcset,\n                                                           (Idx)prVar52)" ( identifier , (cast_expression "(re_dfastate_t **)unaff_s5.sbcset" ( (type_descriptor "re_dfastate_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (field_expression "unaff_s5.sbcset" identifier . field_identifier)) , (cast_expression "(re_dfastate_t **)aVar46.sbcset" ( (type_descriptor "re_dfastate_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (field_expression "aVar46.sbcset" identifier . field_identifier)) , (cast_expression "(Idx)prVar52" ( (type_descriptor "Idx" type_identifier) ) identifier) )))) ;) (expression_statement "(*(code *)PTR_free_00079c24)(aVar46.sbcset);" (call_expression "(*(code *)PTR_free_00079c24)(aVar46.sbcset)" (parenthesized_expression "(*(code *)PTR_free_00079c24)" ( (pointer_expression "*(code *)PTR_free_00079c24" * (cast_expression "(code *)PTR_free_00079c24" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(aVar46.sbcset)" ( (field_expression "aVar46.sbcset" identifier . field_identifier) ))) ;) (if_statement "if ((re_dfa_t *)last_start != (re_dfa_t *)0x0) goto LAB_00055acc;" if (parenthesized_expression "((re_dfa_t *)last_start != (re_dfa_t *)0x0)" ( (binary_expression "(re_dfa_t *)last_start != (re_dfa_t *)0x0" (cast_expression "(re_dfa_t *)last_start" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) != (cast_expression "(re_dfa_t *)0x0" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00055acc;" goto statement_identifier ;)) (goto_statement "goto LAB_00055528;" goto statement_identifier ;) })) (expression_statement "stop = (Idx)(mctx.state_log + (int)&prVar52[-1].lock.__align + 0x17);" (assignment_expression "stop = (Idx)(mctx.state_log + (int)&prVar52[-1].lock.__align + 0x17)" identifier = (call_expression "(Idx)(mctx.state_log + (int)&prVar52[-1].lock.__align + 0x17)" (parenthesized_expression "(Idx)" ( identifier )) (argument_list "(mctx.state_log + (int)&prVar52[-1].lock.__align + 0x17)" ( (binary_expression "mctx.state_log + (int)&prVar52[-1].lock.__align + 0x17" (binary_expression "mctx.state_log + (int)&prVar52[-1].lock.__align" (field_expression "mctx.state_log" identifier . field_identifier) + (cast_expression "(int)&prVar52[-1].lock.__align" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&prVar52[-1].lock.__align" & (field_expression "prVar52[-1].lock.__align" (field_expression "prVar52[-1].lock" (subscript_expression "prVar52[-1]" identifier [ number_literal ]) . field_identifier) . field_identifier)))) + number_literal) )))) ;) (do_statement "do {\n                            while( true ) {\n                              local_c4.sbcset = (re_bitset_ptr_t)(local_c4.idx + -1);\n                              if (local_c4.idx < 0) goto LAB_00055b70;\n                              aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                                       ((anon_union_4_5_a39f51ca_for_opr *)(stop + -4))->idx;\n                              if ((re_dfa_t *)aVar45.sbcset != (re_dfa_t *)0x0) break;\n                              stop = stop + -4;\n                            }\n                            stop = stop + -4;\n                          } while ((*(byte *)(aVar45.idx + 0x34) & 8) == 0);" do (compound_statement "{\n                            while( true ) {\n                              local_c4.sbcset = (re_bitset_ptr_t)(local_c4.idx + -1);\n                              if (local_c4.idx < 0) goto LAB_00055b70;\n                              aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                                       ((anon_union_4_5_a39f51ca_for_opr *)(stop + -4))->idx;\n                              if ((re_dfa_t *)aVar45.sbcset != (re_dfa_t *)0x0) break;\n                              stop = stop + -4;\n                            }\n                            stop = stop + -4;\n                          }" { (while_statement "while( true ) {\n                              local_c4.sbcset = (re_bitset_ptr_t)(local_c4.idx + -1);\n                              if (local_c4.idx < 0) goto LAB_00055b70;\n                              aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                                       ((anon_union_4_5_a39f51ca_for_opr *)(stop + -4))->idx;\n                              if ((re_dfa_t *)aVar45.sbcset != (re_dfa_t *)0x0) break;\n                              stop = stop + -4;\n                            }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                              local_c4.sbcset = (re_bitset_ptr_t)(local_c4.idx + -1);\n                              if (local_c4.idx < 0) goto LAB_00055b70;\n                              aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                                       ((anon_union_4_5_a39f51ca_for_opr *)(stop + -4))->idx;\n                              if ((re_dfa_t *)aVar45.sbcset != (re_dfa_t *)0x0) break;\n                              stop = stop + -4;\n                            }" { (expression_statement "local_c4.sbcset = (re_bitset_ptr_t)(local_c4.idx + -1);" (assignment_expression "local_c4.sbcset = (re_bitset_ptr_t)(local_c4.idx + -1)" (field_expression "local_c4.sbcset" identifier . field_identifier) = (call_expression "(re_bitset_ptr_t)(local_c4.idx + -1)" (parenthesized_expression "(re_bitset_ptr_t)" ( identifier )) (argument_list "(local_c4.idx + -1)" ( (binary_expression "local_c4.idx + -1" (field_expression "local_c4.idx" identifier . field_identifier) + number_literal) )))) ;) (if_statement "if (local_c4.idx < 0) goto LAB_00055b70;" if (parenthesized_expression "(local_c4.idx < 0)" ( (binary_expression "local_c4.idx < 0" (field_expression "local_c4.idx" identifier . field_identifier) < number_literal) )) (goto_statement "goto LAB_00055b70;" goto statement_identifier ;)) (expression_statement "aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                                       ((anon_union_4_5_a39f51ca_for_opr *)(stop + -4))->idx;" (assignment_expression "aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                                       ((anon_union_4_5_a39f51ca_for_opr *)(stop + -4))->idx" identifier = (field_expression "(anon_union_4_5_a39f51ca_for_opr)\n                                       ((anon_union_4_5_a39f51ca_for_opr *)(stop + -4))->idx" (call_expression "(anon_union_4_5_a39f51ca_for_opr)\n                                       ((anon_union_4_5_a39f51ca_for_opr *)(stop + -4))" (parenthesized_expression "(anon_union_4_5_a39f51ca_for_opr)" ( identifier )) (argument_list "((anon_union_4_5_a39f51ca_for_opr *)(stop + -4))" ( (cast_expression "(anon_union_4_5_a39f51ca_for_opr *)(stop + -4)" ( (type_descriptor "anon_union_4_5_a39f51ca_for_opr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(stop + -4)" ( (binary_expression "stop + -4" identifier + number_literal) ))) ))) -> field_identifier)) ;) (if_statement "if ((re_dfa_t *)aVar45.sbcset != (re_dfa_t *)0x0) break;" if (parenthesized_expression "((re_dfa_t *)aVar45.sbcset != (re_dfa_t *)0x0)" ( (binary_expression "(re_dfa_t *)aVar45.sbcset != (re_dfa_t *)0x0" (cast_expression "(re_dfa_t *)aVar45.sbcset" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "aVar45.sbcset" identifier . field_identifier)) != (cast_expression "(re_dfa_t *)0x0" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "stop = stop + -4;" (assignment_expression "stop = stop + -4" identifier = (binary_expression "stop + -4" identifier + number_literal)) ;) })) (expression_statement "stop = stop + -4;" (assignment_expression "stop = stop + -4" identifier = (binary_expression "stop + -4" identifier + number_literal)) ;) }) while (parenthesized_expression "((*(byte *)(aVar45.idx + 0x34) & 8) == 0)" ( (binary_expression "(*(byte *)(aVar45.idx + 0x34) & 8) == 0" (parenthesized_expression "(*(byte *)(aVar45.idx + 0x34) & 8)" ( (binary_expression "*(byte *)(aVar45.idx + 0x34) & 8" (pointer_expression "*(byte *)(aVar45.idx + 0x34)" * (cast_expression "(byte *)(aVar45.idx + 0x34)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(aVar45.idx + 0x34)" ( (binary_expression "aVar45.idx + 0x34" (field_expression "aVar45.idx" identifier . field_identifier) + number_literal) )))) & number_literal) )) == number_literal) )) ;) (expression_statement "paVar18 = (anon_union_4_5_a39f51ca_for_opr *)\n                                    (*pcVar10)(&mctx,aVar45.sbcset,local_c4.sbcset);" (assignment_expression "paVar18 = (anon_union_4_5_a39f51ca_for_opr *)\n                                    (*pcVar10)(&mctx,aVar45.sbcset,local_c4.sbcset)" identifier = (cast_expression "(anon_union_4_5_a39f51ca_for_opr *)\n                                    (*pcVar10)(&mctx,aVar45.sbcset,local_c4.sbcset)" ( (type_descriptor "anon_union_4_5_a39f51ca_for_opr *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar10)(&mctx,aVar45.sbcset,local_c4.sbcset)" (parenthesized_expression "(*pcVar10)" ( (pointer_expression "*pcVar10" * identifier) )) (argument_list "(&mctx,aVar45.sbcset,local_c4.sbcset)" ( (pointer_expression "&mctx" & identifier) , (field_expression "aVar45.sbcset" identifier . field_identifier) , (field_expression "local_c4.sbcset" identifier . field_identifier) ))))) ;) (expression_statement "prVar51 = prVar52;" (assignment_expression "prVar51 = prVar52" identifier = identifier) ;) })) }))) (expression_statement "(*(code *)PTR_free_00079c24)(unaff_s5.sbcset);" (call_expression "(*(code *)PTR_free_00079c24)(unaff_s5.sbcset)" (parenthesized_expression "(*(code *)PTR_free_00079c24)" ( (pointer_expression "*(code *)PTR_free_00079c24" * (cast_expression "(code *)PTR_free_00079c24" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s5.sbcset)" ( (field_expression "unaff_s5.sbcset" identifier . field_identifier) ))) ;) (expression_statement "(*(code *)PTR_free_00079c24)(aVar46.sbcset);" (call_expression "(*(code *)PTR_free_00079c24)(aVar46.sbcset)" (parenthesized_expression "(*(code *)PTR_free_00079c24)" ( (pointer_expression "*(code *)PTR_free_00079c24" * (cast_expression "(code *)PTR_free_00079c24" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(aVar46.sbcset)" ( (field_expression "aVar46.sbcset" identifier . field_identifier) ))) ;) (expression_statement "local_150.idx = last_start;" (assignment_expression "local_150.idx = last_start" (field_expression "local_150.idx" identifier . field_identifier) = identifier) ;) (if_statement "if ((re_dfa_t *)last_start == (re_dfa_t *)0x1) goto LAB_00055b04;" if (parenthesized_expression "((re_dfa_t *)last_start == (re_dfa_t *)0x1)" ( (binary_expression "(re_dfa_t *)last_start == (re_dfa_t *)0x1" (cast_expression "(re_dfa_t *)last_start" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) == (cast_expression "(re_dfa_t *)0x1" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00055b04;" goto statement_identifier ;)) }))) }) (else_clause "else {\n                    local_150.idx = 0xc;\n                    prVar51 = prVar52;\n                  }" else (compound_statement "{\n                    local_150.idx = 0xc;\n                    prVar51 = prVar52;\n                  }" { (expression_statement "local_150.idx = 0xc;" (assignment_expression "local_150.idx = 0xc" (field_expression "local_150.idx" identifier . field_identifier) = number_literal) ;) (expression_statement "prVar51 = prVar52;" (assignment_expression "prVar51 = prVar52" identifier = identifier) ;) }))) (goto_statement "goto LAB_000557e4;" goto statement_identifier ;) })) (if_statement "if (prVar59->nbackref != 0) {\n                  aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                           ((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + local_c4.idx))->\n                           mbcset;\n                  aVar49 = local_c4;\n                  mctx.last_node =\n                       check_halt_state_context(&mctx,(re_dfastate_t *)aVar45.mbcset,local_c4.idx);\n                  goto LAB_00055c6c;\n                }" if (parenthesized_expression "(prVar59->nbackref != 0)" ( (binary_expression "prVar59->nbackref != 0" (field_expression "prVar59->nbackref" identifier -> field_identifier) != number_literal) )) (compound_statement "{\n                  aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                           ((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + local_c4.idx))->\n                           mbcset;\n                  aVar49 = local_c4;\n                  mctx.last_node =\n                       check_halt_state_context(&mctx,(re_dfastate_t *)aVar45.mbcset,local_c4.idx);\n                  goto LAB_00055c6c;\n                }" { (expression_statement "aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                           ((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + local_c4.idx))->\n                           mbcset;" (assignment_expression "aVar45 = (anon_union_4_5_a39f51ca_for_opr)\n                           ((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + local_c4.idx))->\n                           mbcset" identifier = (field_expression "(anon_union_4_5_a39f51ca_for_opr)\n                           ((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + local_c4.idx))->\n                           mbcset" (call_expression "(anon_union_4_5_a39f51ca_for_opr)\n                           ((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + local_c4.idx))" (parenthesized_expression "(anon_union_4_5_a39f51ca_for_opr)" ( identifier )) (argument_list "((anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + local_c4.idx))" ( (cast_expression "(anon_union_4_5_a39f51ca_for_opr *)(mctx.state_log + local_c4.idx)" ( (type_descriptor "anon_union_4_5_a39f51ca_for_opr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(mctx.state_log + local_c4.idx)" ( (binary_expression "mctx.state_log + local_c4.idx" (field_expression "mctx.state_log" identifier . field_identifier) + (field_expression "local_c4.idx" identifier . field_identifier)) ))) ))) -> field_identifier)) ;) (expression_statement "aVar49 = local_c4;" (assignment_expression "aVar49 = local_c4" identifier = identifier) ;) (expression_statement "mctx.last_node =\n                       check_halt_state_context(&mctx,(re_dfastate_t *)aVar45.mbcset,local_c4.idx);" (assignment_expression "mctx.last_node =\n                       check_halt_state_context(&mctx,(re_dfastate_t *)aVar45.mbcset,local_c4.idx)" (field_expression "mctx.last_node" identifier . field_identifier) = (call_expression "check_halt_state_context(&mctx,(re_dfastate_t *)aVar45.mbcset,local_c4.idx)" identifier (argument_list "(&mctx,(re_dfastate_t *)aVar45.mbcset,local_c4.idx)" ( (pointer_expression "&mctx" & identifier) , (cast_expression "(re_dfastate_t *)aVar45.mbcset" ( (type_descriptor "re_dfastate_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "aVar45.mbcset" identifier . field_identifier)) , (field_expression "local_c4.idx" identifier . field_identifier) )))) ;) (goto_statement "goto LAB_00055c6c;" goto statement_identifier ;) })) (labeled_statement "LAB_00055c08:\n                if (((preg->field_0x1c & 8) == 0) && ((re_dfa_t *)0x1 < aVar4.sbcset)) {\n                  cVar37 = prVar59->field_0x58;\n                  goto LAB_00055c20;\n                }" statement_identifier : (if_statement "if (((preg->field_0x1c & 8) == 0) && ((re_dfa_t *)0x1 < aVar4.sbcset)) {\n                  cVar37 = prVar59->field_0x58;\n                  goto LAB_00055c20;\n                }" if (parenthesized_expression "(((preg->field_0x1c & 8) == 0) && ((re_dfa_t *)0x1 < aVar4.sbcset))" ( (binary_expression "((preg->field_0x1c & 8) == 0) && ((re_dfa_t *)0x1 < aVar4.sbcset)" (parenthesized_expression "((preg->field_0x1c & 8) == 0)" ( (binary_expression "(preg->field_0x1c & 8) == 0" (parenthesized_expression "(preg->field_0x1c & 8)" ( (binary_expression "preg->field_0x1c & 8" (field_expression "preg->field_0x1c" identifier -> field_identifier) & number_literal) )) == number_literal) )) && (parenthesized_expression "((re_dfa_t *)0x1 < aVar4.sbcset)" ( (binary_expression "(re_dfa_t *)0x1 < aVar4.sbcset" (cast_expression "(re_dfa_t *)0x1" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < (field_expression "aVar4.sbcset" identifier . field_identifier)) ))) )) (compound_statement "{\n                  cVar37 = prVar59->field_0x58;\n                  goto LAB_00055c20;\n                }" { (expression_statement "cVar37 = prVar59->field_0x58;" (assignment_expression "cVar37 = prVar59->field_0x58" identifier = (field_expression "prVar59->field_0x58" identifier -> field_identifier)) ;) (goto_statement "goto LAB_00055c20;" goto statement_identifier ;) }))) (labeled_statement "LAB_00055548:\n                if ((re_dfa_t *)aVar4.sbcset == (re_dfa_t *)0x0) goto LAB_000557e4;" statement_identifier : (if_statement "if ((re_dfa_t *)aVar4.sbcset == (re_dfa_t *)0x0) goto LAB_000557e4;" if (parenthesized_expression "((re_dfa_t *)aVar4.sbcset == (re_dfa_t *)0x0)" ( (binary_expression "(re_dfa_t *)aVar4.sbcset == (re_dfa_t *)0x0" (cast_expression "(re_dfa_t *)aVar4.sbcset" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "aVar4.sbcset" identifier . field_identifier)) == (cast_expression "(re_dfa_t *)0x0" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000557e4;" goto statement_identifier ;))) (if_statement "if (aVar4.sbcset < (re_dfa_t *)0x2) {\n                  pmatch->rm_so = 0;\n                  pmatch->rm_eo = mctx.match_last;\n                  goto LAB_000555ac;\n                }" if (parenthesized_expression "(aVar4.sbcset < (re_dfa_t *)0x2)" ( (binary_expression "aVar4.sbcset < (re_dfa_t *)0x2" (field_expression "aVar4.sbcset" identifier . field_identifier) < (cast_expression "(re_dfa_t *)0x2" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                  pmatch->rm_so = 0;\n                  pmatch->rm_eo = mctx.match_last;\n                  goto LAB_000555ac;\n                }" { (expression_statement "pmatch->rm_so = 0;" (assignment_expression "pmatch->rm_so = 0" (field_expression "pmatch->rm_so" identifier -> field_identifier) = number_literal) ;) (expression_statement "pmatch->rm_eo = mctx.match_last;" (assignment_expression "pmatch->rm_eo = mctx.match_last" (field_expression "pmatch->rm_eo" identifier -> field_identifier) = (field_expression "mctx.match_last" identifier . field_identifier)) ;) (goto_statement "goto LAB_000555ac;" goto statement_identifier ;) })) (expression_statement "prVar19 = pmatch + 1;" (assignment_expression "prVar19 = pmatch + 1" identifier = (binary_expression "pmatch + 1" identifier + number_literal)) ;) (do_statement "do {\n                  prVar19->rm_eo = -1;\n                  prVar19->rm_so = -1;\n                  prVar19 = prVar19 + 1;\n                } while (prVar19 != pmatch + aVar4.idx);" do (compound_statement "{\n                  prVar19->rm_eo = -1;\n                  prVar19->rm_so = -1;\n                  prVar19 = prVar19 + 1;\n                }" { (expression_statement "prVar19->rm_eo = -1;" (assignment_expression "prVar19->rm_eo = -1" (field_expression "prVar19->rm_eo" identifier -> field_identifier) = number_literal) ;) (expression_statement "prVar19->rm_so = -1;" (assignment_expression "prVar19->rm_so = -1" (field_expression "prVar19->rm_so" identifier -> field_identifier) = number_literal) ;) (expression_statement "prVar19 = prVar19 + 1;" (assignment_expression "prVar19 = prVar19 + 1" identifier = (binary_expression "prVar19 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(prVar19 != pmatch + aVar4.idx)" ( (binary_expression "prVar19 != pmatch + aVar4.idx" identifier != (binary_expression "pmatch + aVar4.idx" identifier + (field_expression "aVar4.idx" identifier . field_identifier))) )) ;) (expression_statement "pmatch->rm_so = 0;" (assignment_expression "pmatch->rm_so = 0" (field_expression "pmatch->rm_so" identifier -> field_identifier) = number_literal) ;) (expression_statement "pmatch->rm_eo = mctx.match_last;" (assignment_expression "pmatch->rm_eo = mctx.match_last" (field_expression "pmatch->rm_eo" identifier -> field_identifier) = (field_expression "mctx.match_last" identifier . field_identifier)) ;) (if_statement "if ((preg->field_0x1c & 8) != 0) {\nLAB_000555ac:\n                  prVar19 = pmatch;\n                  do {\n                    aVar45.sbcset = (re_bitset_ptr_t)prVar19->rm_so;\n                    if ((re_dfa_t *)aVar45.sbcset != (re_dfa_t *)0xffffffff) {\n                      if (mctx.input.offsets_needed != '\0') {\n                        rVar47 = mctx.input.valid_raw_len;\n                        if (aVar45.sbcset != (re_bitset_ptr_t)mctx.input.valid_len) {\n                          rVar47 = mctx.input.offsets[aVar45.idx];\n                        }\n                        prVar19->rm_so = rVar47;\n                        rVar47 = mctx.input.valid_raw_len;\n                        if (mctx.input.valid_len != prVar19->rm_eo) {\n                          rVar47 = mctx.input.offsets[prVar19->rm_eo];\n                        }\n                        prVar19->rm_eo = rVar47;\n                      }\n                      prVar19->rm_so = prVar19->rm_so + match_first;\n                      aVar45.sbcset = (re_bitset_ptr_t)(prVar19->rm_eo + match_first);\n                      prVar19->rm_eo = (regoff_t)aVar45;\n                    }\n                    prVar19 = prVar19 + 1;\n                  } while (prVar19 != pmatch + aVar4.idx);\n                  if (0 < local_118) {\n                    prVar19 = pmatch + aVar4.idx;\n                    do {\n                      prVar19->rm_so = -1;\n                      prVar19->rm_eo = -1;\n                      prVar19 = prVar19 + 1;\n                    } while (prVar19 != pmatch + nmatch);\n                  }\n                  aVar49.idx = match_first;\n                  prVar51 = (re_dfa_t *)pmatch;\n                  local_150.sbcset = aVar7.sbcset;\n                  if (prVar59->subexp_map != (Idx *)0x0) {\n                    aVar49.sbcset = (re_bitset_ptr_t)(aVar4.idx + -1);\n                    prVar52 = (re_dfa_t *)0x0;\n                    prVar19 = pmatch;\n                    while( true ) {\n                      aVar45.idx = (int)prVar52 * 4;\n                      if ((re_dfa_t *)aVar49.sbcset == prVar52) break;\n                      if ((re_dfa_t *)prVar59->subexp_map[(int)prVar52] != prVar52) {\n                        prVar19[1].rm_so =\n                             pmatch[(int)((int)&((re_string_t *)\n                                                &((re_dfa_t *)prVar59->subexp_map[(int)prVar52])->\n                                                 nodes)->raw_mbs + 1)].rm_so;\n                        prVar19[1].rm_eo = pmatch[prVar59->subexp_map[(int)prVar52] + 1].rm_eo;\n                      }\n                      prVar52 = (re_dfa_t *)((int)&((re_string_t *)&prVar52->nodes)->raw_mbs + 1);\n                      prVar19 = prVar19 + 1;\n                    }\n                  }\n                  goto LAB_000557e4;\n                }" if (parenthesized_expression "((preg->field_0x1c & 8) != 0)" ( (binary_expression "(preg->field_0x1c & 8) != 0" (parenthesized_expression "(preg->field_0x1c & 8)" ( (binary_expression "preg->field_0x1c & 8" (field_expression "preg->field_0x1c" identifier -> field_identifier) & number_literal) )) != number_literal) )) (compound_statement "{\nLAB_000555ac:\n                  prVar19 = pmatch;\n                  do {\n                    aVar45.sbcset = (re_bitset_ptr_t)prVar19->rm_so;\n                    if ((re_dfa_t *)aVar45.sbcset != (re_dfa_t *)0xffffffff) {\n                      if (mctx.input.offsets_needed != '\0') {\n                        rVar47 = mctx.input.valid_raw_len;\n                        if (aVar45.sbcset != (re_bitset_ptr_t)mctx.input.valid_len) {\n                          rVar47 = mctx.input.offsets[aVar45.idx];\n                        }\n                        prVar19->rm_so = rVar47;\n                        rVar47 = mctx.input.valid_raw_len;\n                        if (mctx.input.valid_len != prVar19->rm_eo) {\n                          rVar47 = mctx.input.offsets[prVar19->rm_eo];\n                        }\n                        prVar19->rm_eo = rVar47;\n                      }\n                      prVar19->rm_so = prVar19->rm_so + match_first;\n                      aVar45.sbcset = (re_bitset_ptr_t)(prVar19->rm_eo + match_first);\n                      prVar19->rm_eo = (regoff_t)aVar45;\n                    }\n                    prVar19 = prVar19 + 1;\n                  } while (prVar19 != pmatch + aVar4.idx);\n                  if (0 < local_118) {\n                    prVar19 = pmatch + aVar4.idx;\n                    do {\n                      prVar19->rm_so = -1;\n                      prVar19->rm_eo = -1;\n                      prVar19 = prVar19 + 1;\n                    } while (prVar19 != pmatch + nmatch);\n                  }\n                  aVar49.idx = match_first;\n                  prVar51 = (re_dfa_t *)pmatch;\n                  local_150.sbcset = aVar7.sbcset;\n                  if (prVar59->subexp_map != (Idx *)0x0) {\n                    aVar49.sbcset = (re_bitset_ptr_t)(aVar4.idx + -1);\n                    prVar52 = (re_dfa_t *)0x0;\n                    prVar19 = pmatch;\n                    while( true ) {\n                      aVar45.idx = (int)prVar52 * 4;\n                      if ((re_dfa_t *)aVar49.sbcset == prVar52) break;\n                      if ((re_dfa_t *)prVar59->subexp_map[(int)prVar52] != prVar52) {\n                        prVar19[1].rm_so =\n                             pmatch[(int)((int)&((re_string_t *)\n                                                &((re_dfa_t *)prVar59->subexp_map[(int)prVar52])->\n                                                 nodes)->raw_mbs + 1)].rm_so;\n                        prVar19[1].rm_eo = pmatch[prVar59->subexp_map[(int)prVar52] + 1].rm_eo;\n                      }\n                      prVar52 = (re_dfa_t *)((int)&((re_string_t *)&prVar52->nodes)->raw_mbs + 1);\n                      prVar19 = prVar19 + 1;\n                    }\n                  }\n                  goto LAB_000557e4;\n                }" { (labeled_statement "LAB_000555ac:\n                  prVar19 = pmatch;" statement_identifier : (expression_statement "prVar19 = pmatch;" (assignment_expression "prVar19 = pmatch" identifier = identifier) ;)) (do_statement "do {\n                    aVar45.sbcset = (re_bitset_ptr_t)prVar19->rm_so;\n                    if ((re_dfa_t *)aVar45.sbcset != (re_dfa_t *)0xffffffff) {\n                      if (mctx.input.offsets_needed != '\0') {\n                        rVar47 = mctx.input.valid_raw_len;\n                        if (aVar45.sbcset != (re_bitset_ptr_t)mctx.input.valid_len) {\n                          rVar47 = mctx.input.offsets[aVar45.idx];\n                        }\n                        prVar19->rm_so = rVar47;\n                        rVar47 = mctx.input.valid_raw_len;\n                        if (mctx.input.valid_len != prVar19->rm_eo) {\n                          rVar47 = mctx.input.offsets[prVar19->rm_eo];\n                        }\n                        prVar19->rm_eo = rVar47;\n                      }\n                      prVar19->rm_so = prVar19->rm_so + match_first;\n                      aVar45.sbcset = (re_bitset_ptr_t)(prVar19->rm_eo + match_first);\n                      prVar19->rm_eo = (regoff_t)aVar45;\n                    }\n                    prVar19 = prVar19 + 1;\n                  } while (prVar19 != pmatch + aVar4.idx);" do (compound_statement "{\n                    aVar45.sbcset = (re_bitset_ptr_t)prVar19->rm_so;\n                    if ((re_dfa_t *)aVar45.sbcset != (re_dfa_t *)0xffffffff) {\n                      if (mctx.input.offsets_needed != '\0') {\n                        rVar47 = mctx.input.valid_raw_len;\n                        if (aVar45.sbcset != (re_bitset_ptr_t)mctx.input.valid_len) {\n                          rVar47 = mctx.input.offsets[aVar45.idx];\n                        }\n                        prVar19->rm_so = rVar47;\n                        rVar47 = mctx.input.valid_raw_len;\n                        if (mctx.input.valid_len != prVar19->rm_eo) {\n                          rVar47 = mctx.input.offsets[prVar19->rm_eo];\n                        }\n                        prVar19->rm_eo = rVar47;\n                      }\n                      prVar19->rm_so = prVar19->rm_so + match_first;\n                      aVar45.sbcset = (re_bitset_ptr_t)(prVar19->rm_eo + match_first);\n                      prVar19->rm_eo = (regoff_t)aVar45;\n                    }\n                    prVar19 = prVar19 + 1;\n                  }" { (expression_statement "aVar45.sbcset = (re_bitset_ptr_t)prVar19->rm_so;" (assignment_expression "aVar45.sbcset = (re_bitset_ptr_t)prVar19->rm_so" (field_expression "aVar45.sbcset" identifier . field_identifier) = (cast_expression "(re_bitset_ptr_t)prVar19->rm_so" ( (type_descriptor "re_bitset_ptr_t" type_identifier) ) (field_expression "prVar19->rm_so" identifier -> field_identifier))) ;) (if_statement "if ((re_dfa_t *)aVar45.sbcset != (re_dfa_t *)0xffffffff) {\n                      if (mctx.input.offsets_needed != '\0') {\n                        rVar47 = mctx.input.valid_raw_len;\n                        if (aVar45.sbcset != (re_bitset_ptr_t)mctx.input.valid_len) {\n                          rVar47 = mctx.input.offsets[aVar45.idx];\n                        }\n                        prVar19->rm_so = rVar47;\n                        rVar47 = mctx.input.valid_raw_len;\n                        if (mctx.input.valid_len != prVar19->rm_eo) {\n                          rVar47 = mctx.input.offsets[prVar19->rm_eo];\n                        }\n                        prVar19->rm_eo = rVar47;\n                      }\n                      prVar19->rm_so = prVar19->rm_so + match_first;\n                      aVar45.sbcset = (re_bitset_ptr_t)(prVar19->rm_eo + match_first);\n                      prVar19->rm_eo = (regoff_t)aVar45;\n                    }" if (parenthesized_expression "((re_dfa_t *)aVar45.sbcset != (re_dfa_t *)0xffffffff)" ( (binary_expression "(re_dfa_t *)aVar45.sbcset != (re_dfa_t *)0xffffffff" (cast_expression "(re_dfa_t *)aVar45.sbcset" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "aVar45.sbcset" identifier . field_identifier)) != (cast_expression "(re_dfa_t *)0xffffffff" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                      if (mctx.input.offsets_needed != '\0') {\n                        rVar47 = mctx.input.valid_raw_len;\n                        if (aVar45.sbcset != (re_bitset_ptr_t)mctx.input.valid_len) {\n                          rVar47 = mctx.input.offsets[aVar45.idx];\n                        }\n                        prVar19->rm_so = rVar47;\n                        rVar47 = mctx.input.valid_raw_len;\n                        if (mctx.input.valid_len != prVar19->rm_eo) {\n                          rVar47 = mctx.input.offsets[prVar19->rm_eo];\n                        }\n                        prVar19->rm_eo = rVar47;\n                      }\n                      prVar19->rm_so = prVar19->rm_so + match_first;\n                      aVar45.sbcset = (re_bitset_ptr_t)(prVar19->rm_eo + match_first);\n                      prVar19->rm_eo = (regoff_t)aVar45;\n                    }" { (if_statement "if (mctx.input.offsets_needed != '\0') {\n                        rVar47 = mctx.input.valid_raw_len;\n                        if (aVar45.sbcset != (re_bitset_ptr_t)mctx.input.valid_len) {\n                          rVar47 = mctx.input.offsets[aVar45.idx];\n                        }\n                        prVar19->rm_so = rVar47;\n                        rVar47 = mctx.input.valid_raw_len;\n                        if (mctx.input.valid_len != prVar19->rm_eo) {\n                          rVar47 = mctx.input.offsets[prVar19->rm_eo];\n                        }\n                        prVar19->rm_eo = rVar47;\n                      }" if (parenthesized_expression "(mctx.input.offsets_needed != '\0')" ( (binary_expression "mctx.input.offsets_needed != '\0'" (field_expression "mctx.input.offsets_needed" (field_expression "mctx.input" identifier . field_identifier) . field_identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                        rVar47 = mctx.input.valid_raw_len;\n                        if (aVar45.sbcset != (re_bitset_ptr_t)mctx.input.valid_len) {\n                          rVar47 = mctx.input.offsets[aVar45.idx];\n                        }\n                        prVar19->rm_so = rVar47;\n                        rVar47 = mctx.input.valid_raw_len;\n                        if (mctx.input.valid_len != prVar19->rm_eo) {\n                          rVar47 = mctx.input.offsets[prVar19->rm_eo];\n                        }\n                        prVar19->rm_eo = rVar47;\n                      }" { (expression_statement "rVar47 = mctx.input.valid_raw_len;" (assignment_expression "rVar47 = mctx.input.valid_raw_len" identifier = (field_expression "mctx.input.valid_raw_len" (field_expression "mctx.input" identifier . field_identifier) . field_identifier)) ;) (if_statement "if (aVar45.sbcset != (re_bitset_ptr_t)mctx.input.valid_len) {\n                          rVar47 = mctx.input.offsets[aVar45.idx];\n                        }" if (parenthesized_expression "(aVar45.sbcset != (re_bitset_ptr_t)mctx.input.valid_len)" ( (binary_expression "aVar45.sbcset != (re_bitset_ptr_t)mctx.input.valid_len" (field_expression "aVar45.sbcset" identifier . field_identifier) != (cast_expression "(re_bitset_ptr_t)mctx.input.valid_len" ( (type_descriptor "re_bitset_ptr_t" type_identifier) ) (field_expression "mctx.input.valid_len" (field_expression "mctx.input" identifier . field_identifier) . field_identifier))) )) (compound_statement "{\n                          rVar47 = mctx.input.offsets[aVar45.idx];\n                        }" { (expression_statement "rVar47 = mctx.input.offsets[aVar45.idx];" (assignment_expression "rVar47 = mctx.input.offsets[aVar45.idx]" identifier = (subscript_expression "mctx.input.offsets[aVar45.idx]" (field_expression "mctx.input.offsets" (field_expression "mctx.input" identifier . field_identifier) . field_identifier) [ (field_expression "aVar45.idx" identifier . field_identifier) ])) ;) })) (expression_statement "prVar19->rm_so = rVar47;" (assignment_expression "prVar19->rm_so = rVar47" (field_expression "prVar19->rm_so" identifier -> field_identifier) = identifier) ;) (expression_statement "rVar47 = mctx.input.valid_raw_len;" (assignment_expression "rVar47 = mctx.input.valid_raw_len" identifier = (field_expression "mctx.input.valid_raw_len" (field_expression "mctx.input" identifier . field_identifier) . field_identifier)) ;) (if_statement "if (mctx.input.valid_len != prVar19->rm_eo) {\n                          rVar47 = mctx.input.offsets[prVar19->rm_eo];\n                        }" if (parenthesized_expression "(mctx.input.valid_len != prVar19->rm_eo)" ( (binary_expression "mctx.input.valid_len != prVar19->rm_eo" (field_expression "mctx.input.valid_len" (field_expression "mctx.input" identifier . field_identifier) . field_identifier) != (field_expression "prVar19->rm_eo" identifier -> field_identifier)) )) (compound_statement "{\n                          rVar47 = mctx.input.offsets[prVar19->rm_eo];\n                        }" { (expression_statement "rVar47 = mctx.input.offsets[prVar19->rm_eo];" (assignment_expression "rVar47 = mctx.input.offsets[prVar19->rm_eo]" identifier = (subscript_expression "mctx.input.offsets[prVar19->rm_eo]" (field_expression "mctx.input.offsets" (field_expression "mctx.input" identifier . field_identifier) . field_identifier) [ (field_expression "prVar19->rm_eo" identifier -> field_identifier) ])) ;) })) (expression_statement "prVar19->rm_eo = rVar47;" (assignment_expression "prVar19->rm_eo = rVar47" (field_expression "prVar19->rm_eo" identifier -> field_identifier) = identifier) ;) })) (expression_statement "prVar19->rm_so = prVar19->rm_so + match_first;" (assignment_expression "prVar19->rm_so = prVar19->rm_so + match_first" (field_expression "prVar19->rm_so" identifier -> field_identifier) = (binary_expression "prVar19->rm_so + match_first" (field_expression "prVar19->rm_so" identifier -> field_identifier) + identifier)) ;) (expression_statement "aVar45.sbcset = (re_bitset_ptr_t)(prVar19->rm_eo + match_first);" (assignment_expression "aVar45.sbcset = (re_bitset_ptr_t)(prVar19->rm_eo + match_first)" (field_expression "aVar45.sbcset" identifier . field_identifier) = (call_expression "(re_bitset_ptr_t)(prVar19->rm_eo + match_first)" (parenthesized_expression "(re_bitset_ptr_t)" ( identifier )) (argument_list "(prVar19->rm_eo + match_first)" ( (binary_expression "prVar19->rm_eo + match_first" (field_expression "prVar19->rm_eo" identifier -> field_identifier) + identifier) )))) ;) (expression_statement "prVar19->rm_eo = (regoff_t)aVar45;" (assignment_expression "prVar19->rm_eo = (regoff_t)aVar45" (field_expression "prVar19->rm_eo" identifier -> field_identifier) = (cast_expression "(regoff_t)aVar45" ( (type_descriptor "regoff_t" type_identifier) ) identifier)) ;) })) (expression_statement "prVar19 = prVar19 + 1;" (assignment_expression "prVar19 = prVar19 + 1" identifier = (binary_expression "prVar19 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(prVar19 != pmatch + aVar4.idx)" ( (binary_expression "prVar19 != pmatch + aVar4.idx" identifier != (binary_expression "pmatch + aVar4.idx" identifier + (field_expression "aVar4.idx" identifier . field_identifier))) )) ;) (if_statement "if (0 < local_118) {\n                    prVar19 = pmatch + aVar4.idx;\n                    do {\n                      prVar19->rm_so = -1;\n                      prVar19->rm_eo = -1;\n                      prVar19 = prVar19 + 1;\n                    } while (prVar19 != pmatch + nmatch);\n                  }" if (parenthesized_expression "(0 < local_118)" ( (binary_expression "0 < local_118" number_literal < identifier) )) (compound_statement "{\n                    prVar19 = pmatch + aVar4.idx;\n                    do {\n                      prVar19->rm_so = -1;\n                      prVar19->rm_eo = -1;\n                      prVar19 = prVar19 + 1;\n                    } while (prVar19 != pmatch + nmatch);\n                  }" { (expression_statement "prVar19 = pmatch + aVar4.idx;" (assignment_expression "prVar19 = pmatch + aVar4.idx" identifier = (binary_expression "pmatch + aVar4.idx" identifier + (field_expression "aVar4.idx" identifier . field_identifier))) ;) (do_statement "do {\n                      prVar19->rm_so = -1;\n                      prVar19->rm_eo = -1;\n                      prVar19 = prVar19 + 1;\n                    } while (prVar19 != pmatch + nmatch);" do (compound_statement "{\n                      prVar19->rm_so = -1;\n                      prVar19->rm_eo = -1;\n                      prVar19 = prVar19 + 1;\n                    }" { (expression_statement "prVar19->rm_so = -1;" (assignment_expression "prVar19->rm_so = -1" (field_expression "prVar19->rm_so" identifier -> field_identifier) = number_literal) ;) (expression_statement "prVar19->rm_eo = -1;" (assignment_expression "prVar19->rm_eo = -1" (field_expression "prVar19->rm_eo" identifier -> field_identifier) = number_literal) ;) (expression_statement "prVar19 = prVar19 + 1;" (assignment_expression "prVar19 = prVar19 + 1" identifier = (binary_expression "prVar19 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(prVar19 != pmatch + nmatch)" ( (binary_expression "prVar19 != pmatch + nmatch" identifier != (binary_expression "pmatch + nmatch" identifier + identifier)) )) ;) })) (expression_statement "aVar49.idx = match_first;" (assignment_expression "aVar49.idx = match_first" (field_expression "aVar49.idx" identifier . field_identifier) = identifier) ;) (expression_statement "prVar51 = (re_dfa_t *)pmatch;" (assignment_expression "prVar51 = (re_dfa_t *)pmatch" identifier = (cast_expression "(re_dfa_t *)pmatch" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "local_150.sbcset = aVar7.sbcset;" (assignment_expression "local_150.sbcset = aVar7.sbcset" (field_expression "local_150.sbcset" identifier . field_identifier) = (field_expression "aVar7.sbcset" identifier . field_identifier)) ;) (if_statement "if (prVar59->subexp_map != (Idx *)0x0) {\n                    aVar49.sbcset = (re_bitset_ptr_t)(aVar4.idx + -1);\n                    prVar52 = (re_dfa_t *)0x0;\n                    prVar19 = pmatch;\n                    while( true ) {\n                      aVar45.idx = (int)prVar52 * 4;\n                      if ((re_dfa_t *)aVar49.sbcset == prVar52) break;\n                      if ((re_dfa_t *)prVar59->subexp_map[(int)prVar52] != prVar52) {\n                        prVar19[1].rm_so =\n                             pmatch[(int)((int)&((re_string_t *)\n                                                &((re_dfa_t *)prVar59->subexp_map[(int)prVar52])->\n                                                 nodes)->raw_mbs + 1)].rm_so;\n                        prVar19[1].rm_eo = pmatch[prVar59->subexp_map[(int)prVar52] + 1].rm_eo;\n                      }\n                      prVar52 = (re_dfa_t *)((int)&((re_string_t *)&prVar52->nodes)->raw_mbs + 1);\n                      prVar19 = prVar19 + 1;\n                    }\n                  }" if (parenthesized_expression "(prVar59->subexp_map != (Idx *)0x0)" ( (binary_expression "prVar59->subexp_map != (Idx *)0x0" (field_expression "prVar59->subexp_map" identifier -> field_identifier) != (cast_expression "(Idx *)0x0" ( (type_descriptor "Idx *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    aVar49.sbcset = (re_bitset_ptr_t)(aVar4.idx + -1);\n                    prVar52 = (re_dfa_t *)0x0;\n                    prVar19 = pmatch;\n                    while( true ) {\n                      aVar45.idx = (int)prVar52 * 4;\n                      if ((re_dfa_t *)aVar49.sbcset == prVar52) break;\n                      if ((re_dfa_t *)prVar59->subexp_map[(int)prVar52] != prVar52) {\n                        prVar19[1].rm_so =\n                             pmatch[(int)((int)&((re_string_t *)\n                                                &((re_dfa_t *)prVar59->subexp_map[(int)prVar52])->\n                                                 nodes)->raw_mbs + 1)].rm_so;\n                        prVar19[1].rm_eo = pmatch[prVar59->subexp_map[(int)prVar52] + 1].rm_eo;\n                      }\n                      prVar52 = (re_dfa_t *)((int)&((re_string_t *)&prVar52->nodes)->raw_mbs + 1);\n                      prVar19 = prVar19 + 1;\n                    }\n                  }" { (expression_statement "aVar49.sbcset = (re_bitset_ptr_t)(aVar4.idx + -1);" (assignment_expression "aVar49.sbcset = (re_bitset_ptr_t)(aVar4.idx + -1)" (field_expression "aVar49.sbcset" identifier . field_identifier) = (call_expression "(re_bitset_ptr_t)(aVar4.idx + -1)" (parenthesized_expression "(re_bitset_ptr_t)" ( identifier )) (argument_list "(aVar4.idx + -1)" ( (binary_expression "aVar4.idx + -1" (field_expression "aVar4.idx" identifier . field_identifier) + number_literal) )))) ;) (expression_statement "prVar52 = (re_dfa_t *)0x0;" (assignment_expression "prVar52 = (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 "prVar19 = pmatch;" (assignment_expression "prVar19 = pmatch" identifier = identifier) ;) (while_statement "while( true ) {\n                      aVar45.idx = (int)prVar52 * 4;\n                      if ((re_dfa_t *)aVar49.sbcset == prVar52) break;\n                      if ((re_dfa_t *)prVar59->subexp_map[(int)prVar52] != prVar52) {\n                        prVar19[1].rm_so =\n                             pmatch[(int)((int)&((re_string_t *)\n                                                &((re_dfa_t *)prVar59->subexp_map[(int)prVar52])->\n                                                 nodes)->raw_mbs + 1)].rm_so;\n                        prVar19[1].rm_eo = pmatch[prVar59->subexp_map[(int)prVar52] + 1].rm_eo;\n                      }\n                      prVar52 = (re_dfa_t *)((int)&((re_string_t *)&prVar52->nodes)->raw_mbs + 1);\n                      prVar19 = prVar19 + 1;\n                    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                      aVar45.idx = (int)prVar52 * 4;\n                      if ((re_dfa_t *)aVar49.sbcset == prVar52) break;\n                      if ((re_dfa_t *)prVar59->subexp_map[(int)prVar52] != prVar52) {\n                        prVar19[1].rm_so =\n                             pmatch[(int)((int)&((re_string_t *)\n                                                &((re_dfa_t *)prVar59->subexp_map[(int)prVar52])->\n                                                 nodes)->raw_mbs + 1)].rm_so;\n                        prVar19[1].rm_eo = pmatch[prVar59->subexp_map[(int)prVar52] + 1].rm_eo;\n                      }\n                      prVar52 = (re_dfa_t *)((int)&((re_string_t *)&prVar52->nodes)->raw_mbs + 1);\n                      prVar19 = prVar19 + 1;\n                    }" { (expression_statement "aVar45.idx = (int)prVar52 * 4;" (assignment_expression "aVar45.idx = (int)prVar52 * 4" (field_expression "aVar45.idx" identifier . field_identifier) = (binary_expression "(int)prVar52 * 4" (cast_expression "(int)prVar52" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ;) (if_statement "if ((re_dfa_t *)aVar49.sbcset == prVar52) break;" if (parenthesized_expression "((re_dfa_t *)aVar49.sbcset == prVar52)" ( (binary_expression "(re_dfa_t *)aVar49.sbcset == prVar52" (cast_expression "(re_dfa_t *)aVar49.sbcset" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "aVar49.sbcset" identifier . field_identifier)) == identifier) )) (break_statement "break;" break ;)) (if_statement "if ((re_dfa_t *)prVar59->subexp_map[(int)prVar52] != prVar52) {\n                        prVar19[1].rm_so =\n                             pmatch[(int)((int)&((re_string_t *)\n                                                &((re_dfa_t *)prVar59->subexp_map[(int)prVar52])->\n                                                 nodes)->raw_mbs + 1)].rm_so;\n                        prVar19[1].rm_eo = pmatch[prVar59->subexp_map[(int)prVar52] + 1].rm_eo;\n                      }" if (parenthesized_expression "((re_dfa_t *)prVar59->subexp_map[(int)prVar52] != prVar52)" ( (binary_expression "(re_dfa_t *)prVar59->subexp_map[(int)prVar52] != prVar52" (cast_expression "(re_dfa_t *)prVar59->subexp_map[(int)prVar52]" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "prVar59->subexp_map[(int)prVar52]" (field_expression "prVar59->subexp_map" identifier -> field_identifier) [ (cast_expression "(int)prVar52" ( (type_descriptor "int" primitive_type) ) identifier) ])) != identifier) )) (compound_statement "{\n                        prVar19[1].rm_so =\n                             pmatch[(int)((int)&((re_string_t *)\n                                                &((re_dfa_t *)prVar59->subexp_map[(int)prVar52])->\n                                                 nodes)->raw_mbs + 1)].rm_so;\n                        prVar19[1].rm_eo = pmatch[prVar59->subexp_map[(int)prVar52] + 1].rm_eo;\n                      }" { (expression_statement "prVar19[1].rm_so =\n                             pmatch[(int)((int)&((re_string_t *)\n                                                &((re_dfa_t *)prVar59->subexp_map[(int)prVar52])->\n                                                 nodes)->raw_mbs + 1)].rm_so;" (assignment_expression "prVar19[1].rm_so =\n                             pmatch[(int)((int)&((re_string_t *)\n                                                &((re_dfa_t *)prVar59->subexp_map[(int)prVar52])->\n                                                 nodes)->raw_mbs + 1)].rm_so" (field_expression "prVar19[1].rm_so" (subscript_expression "prVar19[1]" identifier [ number_literal ]) . field_identifier) = (field_expression "pmatch[(int)((int)&((re_string_t *)\n                                                &((re_dfa_t *)prVar59->subexp_map[(int)prVar52])->\n                                                 nodes)->raw_mbs + 1)].rm_so" (subscript_expression "pmatch[(int)((int)&((re_string_t *)\n                                                &((re_dfa_t *)prVar59->subexp_map[(int)prVar52])->\n                                                 nodes)->raw_mbs + 1)]" identifier [ (cast_expression "(int)((int)&((re_string_t *)\n                                                &((re_dfa_t *)prVar59->subexp_map[(int)prVar52])->\n                                                 nodes)->raw_mbs + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)&((re_string_t *)\n                                                &((re_dfa_t *)prVar59->subexp_map[(int)prVar52])->\n                                                 nodes)->raw_mbs + 1)" ( (binary_expression "(int)&((re_string_t *)\n                                                &((re_dfa_t *)prVar59->subexp_map[(int)prVar52])->\n                                                 nodes)->raw_mbs + 1" (cast_expression "(int)&((re_string_t *)\n                                                &((re_dfa_t *)prVar59->subexp_map[(int)prVar52])->\n                                                 nodes)->raw_mbs" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&((re_string_t *)\n                                                &((re_dfa_t *)prVar59->subexp_map[(int)prVar52])->\n                                                 nodes)->raw_mbs" & (field_expression "((re_string_t *)\n                                                &((re_dfa_t *)prVar59->subexp_map[(int)prVar52])->\n                                                 nodes)->raw_mbs" (parenthesized_expression "((re_string_t *)\n                                                &((re_dfa_t *)prVar59->subexp_map[(int)prVar52])->\n                                                 nodes)" ( (cast_expression "(re_string_t *)\n                                                &((re_dfa_t *)prVar59->subexp_map[(int)prVar52])->\n                                                 nodes" ( (type_descriptor "re_string_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&((re_dfa_t *)prVar59->subexp_map[(int)prVar52])->\n                                                 nodes" & (field_expression "((re_dfa_t *)prVar59->subexp_map[(int)prVar52])->\n                                                 nodes" (parenthesized_expression "((re_dfa_t *)prVar59->subexp_map[(int)prVar52])" ( (cast_expression "(re_dfa_t *)prVar59->subexp_map[(int)prVar52]" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "prVar59->subexp_map[(int)prVar52]" (field_expression "prVar59->subexp_map" identifier -> field_identifier) [ (cast_expression "(int)prVar52" ( (type_descriptor "int" primitive_type) ) identifier) ])) )) -> field_identifier))) )) -> field_identifier))) + number_literal) ))) ]) . field_identifier)) ;) (expression_statement "prVar19[1].rm_eo = pmatch[prVar59->subexp_map[(int)prVar52] + 1].rm_eo;" (assignment_expression "prVar19[1].rm_eo = pmatch[prVar59->subexp_map[(int)prVar52] + 1].rm_eo" (field_expression "prVar19[1].rm_eo" (subscript_expression "prVar19[1]" identifier [ number_literal ]) . field_identifier) = (field_expression "pmatch[prVar59->subexp_map[(int)prVar52] + 1].rm_eo" (subscript_expression "pmatch[prVar59->subexp_map[(int)prVar52] + 1]" identifier [ (binary_expression "prVar59->subexp_map[(int)prVar52] + 1" (subscript_expression "prVar59->subexp_map[(int)prVar52]" (field_expression "prVar59->subexp_map" identifier -> field_identifier) [ (cast_expression "(int)prVar52" ( (type_descriptor "int" primitive_type) ) identifier) ]) + number_literal) ]) . field_identifier)) ;) })) (expression_statement "prVar52 = (re_dfa_t *)((int)&((re_string_t *)&prVar52->nodes)->raw_mbs + 1);" (assignment_expression "prVar52 = (re_dfa_t *)((int)&((re_string_t *)&prVar52->nodes)->raw_mbs + 1)" identifier = (cast_expression "(re_dfa_t *)((int)&((re_string_t *)&prVar52->nodes)->raw_mbs + 1)" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&((re_string_t *)&prVar52->nodes)->raw_mbs + 1)" ( (binary_expression "(int)&((re_string_t *)&prVar52->nodes)->raw_mbs + 1" (cast_expression "(int)&((re_string_t *)&prVar52->nodes)->raw_mbs" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&((re_string_t *)&prVar52->nodes)->raw_mbs" & (field_expression "((re_string_t *)&prVar52->nodes)->raw_mbs" (parenthesized_expression "((re_string_t *)&prVar52->nodes)" ( (cast_expression "(re_string_t *)&prVar52->nodes" ( (type_descriptor "re_string_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&prVar52->nodes" & (field_expression "prVar52->nodes" identifier -> field_identifier))) )) -> field_identifier))) + number_literal) )))) ;) (expression_statement "prVar19 = prVar19 + 1;" (assignment_expression "prVar19 = prVar19 + 1" identifier = (binary_expression "prVar19 + 1" identifier + number_literal)) ;) })) })) (goto_statement "goto LAB_000557e4;" goto statement_identifier ;) })) (if_statement "if ((char)prVar59->field_0x58 < '\0') {\n                  bVar36 = 0 < prVar59->nbackref;\n                }\n                else {\n                  bVar36 = false;\n                }" if (parenthesized_expression "((char)prVar59->field_0x58 < '\0')" ( (binary_expression "(char)prVar59->field_0x58 < '\0'" (cast_expression "(char)prVar59->field_0x58" ( (type_descriptor "char" primitive_type) ) (field_expression "prVar59->field_0x58" identifier -> field_identifier)) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                  bVar36 = 0 < prVar59->nbackref;\n                }" { (expression_statement "bVar36 = 0 < prVar59->nbackref;" (assignment_expression "bVar36 = 0 < prVar59->nbackref" identifier = (binary_expression "0 < prVar59->nbackref" number_literal < (field_expression "prVar59->nbackref" identifier -> field_identifier))) ;) }) (else_clause "else {\n                  bVar36 = false;\n                }" else (compound_statement "{\n                  bVar36 = false;\n                }" { (expression_statement "bVar36 = false;" (assignment_expression "bVar36 = false" identifier = false) ;) }))) (expression_statement "aVar45.sbcset = (re_bitset_ptr_t)&mctx;" (assignment_expression "aVar45.sbcset = (re_bitset_ptr_t)&mctx" (field_expression "aVar45.sbcset" identifier . field_identifier) = (binary_expression "(re_bitset_ptr_t)&mctx" (parenthesized_expression "(re_bitset_ptr_t)" ( identifier )) & identifier)) ;) (expression_statement "aVar49.sbcset = aVar4.sbcset;" (assignment_expression "aVar49.sbcset = aVar4.sbcset" (field_expression "aVar49.sbcset" identifier . field_identifier) = (field_expression "aVar4.sbcset" identifier . field_identifier)) ;) (expression_statement "prVar51 = (re_dfa_t *)pmatch;" (assignment_expression "prVar51 = (re_dfa_t *)pmatch" identifier = (cast_expression "(re_dfa_t *)pmatch" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "local_150.idx =\n                     set_regs(preg,(re_match_context_t *)aVar45.mbcset,aVar4.ctx_type,pmatch,bVar36)\n                ;" (assignment_expression "local_150.idx =\n                     set_regs(preg,(re_match_context_t *)aVar45.mbcset,aVar4.ctx_type,pmatch,bVar36)" (field_expression "local_150.idx" identifier . field_identifier) = (call_expression "set_regs(preg,(re_match_context_t *)aVar45.mbcset,aVar4.ctx_type,pmatch,bVar36)" identifier (argument_list "(preg,(re_match_context_t *)aVar45.mbcset,aVar4.ctx_type,pmatch,bVar36)" ( identifier , (cast_expression "(re_match_context_t *)aVar45.mbcset" ( (type_descriptor "re_match_context_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "aVar45.mbcset" identifier . field_identifier)) , (field_expression "aVar4.ctx_type" identifier . field_identifier) , identifier , identifier )))) ;) (if_statement "if ((re_dfa_t *)local_150.sbcset == (re_dfa_t *)0x0) goto LAB_000555ac;" if (parenthesized_expression "((re_dfa_t *)local_150.sbcset == (re_dfa_t *)0x0)" ( (binary_expression "(re_dfa_t *)local_150.sbcset == (re_dfa_t *)0x0" (cast_expression "(re_dfa_t *)local_150.sbcset" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "local_150.sbcset" identifier . field_identifier)) == (cast_expression "(re_dfa_t *)0x0" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000555ac;" goto statement_identifier ;)) }))) }))) }) (else_clause "else if ((uint)mctx.input.bufs_len < 0x3fffffff) {\n            mctx.state_log =\n                 (re_dfastate_t **)(*(code *)PTR_malloc_00079b54)((mctx.input.bufs_len + 1) * 4);\n            if (mctx.state_log != (re_dfastate_t **)0x0) goto LAB_00055a40;\n            local_150.idx = 0xc;\n            stop = aVar56.idx;\n          }\n          else {\n            local_150.idx = 0xc;\n            stop = aVar56.idx;\n          }" else (if_statement "if ((uint)mctx.input.bufs_len < 0x3fffffff) {\n            mctx.state_log =\n                 (re_dfastate_t **)(*(code *)PTR_malloc_00079b54)((mctx.input.bufs_len + 1) * 4);\n            if (mctx.state_log != (re_dfastate_t **)0x0) goto LAB_00055a40;\n            local_150.idx = 0xc;\n            stop = aVar56.idx;\n          }\n          else {\n            local_150.idx = 0xc;\n            stop = aVar56.idx;\n          }" if (parenthesized_expression "((uint)mctx.input.bufs_len < 0x3fffffff)" ( (binary_expression "(uint)mctx.input.bufs_len < 0x3fffffff" (cast_expression "(uint)mctx.input.bufs_len" ( (type_descriptor "uint" type_identifier) ) (field_expression "mctx.input.bufs_len" (field_expression "mctx.input" identifier . field_identifier) . field_identifier)) < number_literal) )) (compound_statement "{\n            mctx.state_log =\n                 (re_dfastate_t **)(*(code *)PTR_malloc_00079b54)((mctx.input.bufs_len + 1) * 4);\n            if (mctx.state_log != (re_dfastate_t **)0x0) goto LAB_00055a40;\n            local_150.idx = 0xc;\n            stop = aVar56.idx;\n          }" { (expression_statement "mctx.state_log =\n                 (re_dfastate_t **)(*(code *)PTR_malloc_00079b54)((mctx.input.bufs_len + 1) * 4);" (assignment_expression "mctx.state_log =\n                 (re_dfastate_t **)(*(code *)PTR_malloc_00079b54)((mctx.input.bufs_len + 1) * 4)" (field_expression "mctx.state_log" identifier . field_identifier) = (cast_expression "(re_dfastate_t **)(*(code *)PTR_malloc_00079b54)((mctx.input.bufs_len + 1) * 4)" ( (type_descriptor "re_dfastate_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "(*(code *)PTR_malloc_00079b54)((mctx.input.bufs_len + 1) * 4)" (parenthesized_expression "(*(code *)PTR_malloc_00079b54)" ( (pointer_expression "*(code *)PTR_malloc_00079b54" * (cast_expression "(code *)PTR_malloc_00079b54" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "((mctx.input.bufs_len + 1) * 4)" ( (binary_expression "(mctx.input.bufs_len + 1) * 4" (parenthesized_expression "(mctx.input.bufs_len + 1)" ( (binary_expression "mctx.input.bufs_len + 1" (field_expression "mctx.input.bufs_len" (field_expression "mctx.input" identifier . field_identifier) . field_identifier) + number_literal) )) * number_literal) ))))) ;) (if_statement "if (mctx.state_log != (re_dfastate_t **)0x0) goto LAB_00055a40;" if (parenthesized_expression "(mctx.state_log != (re_dfastate_t **)0x0)" ( (binary_expression "mctx.state_log != (re_dfastate_t **)0x0" (field_expression "mctx.state_log" 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_00055a40;" goto statement_identifier ;)) (expression_statement "local_150.idx = 0xc;" (assignment_expression "local_150.idx = 0xc" (field_expression "local_150.idx" identifier . field_identifier) = number_literal) ;) (expression_statement "stop = aVar56.idx;" (assignment_expression "stop = aVar56.idx" identifier = (field_expression "aVar56.idx" identifier . field_identifier)) ;) }) (else_clause "else {\n            local_150.idx = 0xc;\n            stop = aVar56.idx;\n          }" else (compound_statement "{\n            local_150.idx = 0xc;\n            stop = aVar56.idx;\n          }" { (expression_statement "local_150.idx = 0xc;" (assignment_expression "local_150.idx = 0xc" (field_expression "local_150.idx" identifier . field_identifier) = number_literal) ;) (expression_statement "stop = aVar56.idx;" (assignment_expression "stop = aVar56.idx" identifier = (field_expression "aVar56.idx" identifier . field_identifier)) ;) }))))) }) (else_clause "else {\n          unaff_s5.idx = iVar55 * 8;\n          if (aVar56.sbcset < (re_dfa_t *)0xccccccd) {\n            unaff_s4 = (re_dfa_t *)(*(code *)PTR_malloc_00079b54)(iVar55 * 0x28);\n            mctx.bkref_ents = (re_backref_cache_entry *)unaff_s4;\n            mctx.sub_tops = (re_sub_match_top_t **)(*(code *)PTR_malloc_00079b54)(unaff_s5.sbcset);\n            if ((unaff_s4 != (re_dfa_t *)0x0) && (mctx.sub_tops != (re_sub_match_top_t **)0x0))\n            goto LAB_000559f0;\n          }\n          local_150.idx = 0xc;\n          stop = aVar56.idx;\n        }" else (compound_statement "{\n          unaff_s5.idx = iVar55 * 8;\n          if (aVar56.sbcset < (re_dfa_t *)0xccccccd) {\n            unaff_s4 = (re_dfa_t *)(*(code *)PTR_malloc_00079b54)(iVar55 * 0x28);\n            mctx.bkref_ents = (re_backref_cache_entry *)unaff_s4;\n            mctx.sub_tops = (re_sub_match_top_t **)(*(code *)PTR_malloc_00079b54)(unaff_s5.sbcset);\n            if ((unaff_s4 != (re_dfa_t *)0x0) && (mctx.sub_tops != (re_sub_match_top_t **)0x0))\n            goto LAB_000559f0;\n          }\n          local_150.idx = 0xc;\n          stop = aVar56.idx;\n        }" { (expression_statement "unaff_s5.idx = iVar55 * 8;" (assignment_expression "unaff_s5.idx = iVar55 * 8" (field_expression "unaff_s5.idx" identifier . field_identifier) = (binary_expression "iVar55 * 8" identifier * number_literal)) ;) (if_statement "if (aVar56.sbcset < (re_dfa_t *)0xccccccd) {\n            unaff_s4 = (re_dfa_t *)(*(code *)PTR_malloc_00079b54)(iVar55 * 0x28);\n            mctx.bkref_ents = (re_backref_cache_entry *)unaff_s4;\n            mctx.sub_tops = (re_sub_match_top_t **)(*(code *)PTR_malloc_00079b54)(unaff_s5.sbcset);\n            if ((unaff_s4 != (re_dfa_t *)0x0) && (mctx.sub_tops != (re_sub_match_top_t **)0x0))\n            goto LAB_000559f0;\n          }" if (parenthesized_expression "(aVar56.sbcset < (re_dfa_t *)0xccccccd)" ( (binary_expression "aVar56.sbcset < (re_dfa_t *)0xccccccd" (field_expression "aVar56.sbcset" identifier . field_identifier) < (cast_expression "(re_dfa_t *)0xccccccd" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            unaff_s4 = (re_dfa_t *)(*(code *)PTR_malloc_00079b54)(iVar55 * 0x28);\n            mctx.bkref_ents = (re_backref_cache_entry *)unaff_s4;\n            mctx.sub_tops = (re_sub_match_top_t **)(*(code *)PTR_malloc_00079b54)(unaff_s5.sbcset);\n            if ((unaff_s4 != (re_dfa_t *)0x0) && (mctx.sub_tops != (re_sub_match_top_t **)0x0))\n            goto LAB_000559f0;\n          }" { (expression_statement "unaff_s4 = (re_dfa_t *)(*(code *)PTR_malloc_00079b54)(iVar55 * 0x28);" (assignment_expression "unaff_s4 = (re_dfa_t *)(*(code *)PTR_malloc_00079b54)(iVar55 * 0x28)" identifier = (cast_expression "(re_dfa_t *)(*(code *)PTR_malloc_00079b54)(iVar55 * 0x28)" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_malloc_00079b54)(iVar55 * 0x28)" (parenthesized_expression "(*(code *)PTR_malloc_00079b54)" ( (pointer_expression "*(code *)PTR_malloc_00079b54" * (cast_expression "(code *)PTR_malloc_00079b54" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar55 * 0x28)" ( (binary_expression "iVar55 * 0x28" identifier * number_literal) ))))) ;) (expression_statement "mctx.bkref_ents = (re_backref_cache_entry *)unaff_s4;" (assignment_expression "mctx.bkref_ents = (re_backref_cache_entry *)unaff_s4" (field_expression "mctx.bkref_ents" identifier . field_identifier) = (cast_expression "(re_backref_cache_entry *)unaff_s4" ( (type_descriptor "re_backref_cache_entry *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "mctx.sub_tops = (re_sub_match_top_t **)(*(code *)PTR_malloc_00079b54)(unaff_s5.sbcset);" (assignment_expression "mctx.sub_tops = (re_sub_match_top_t **)(*(code *)PTR_malloc_00079b54)(unaff_s5.sbcset)" (field_expression "mctx.sub_tops" identifier . field_identifier) = (cast_expression "(re_sub_match_top_t **)(*(code *)PTR_malloc_00079b54)(unaff_s5.sbcset)" ( (type_descriptor "re_sub_match_top_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "(*(code *)PTR_malloc_00079b54)(unaff_s5.sbcset)" (parenthesized_expression "(*(code *)PTR_malloc_00079b54)" ( (pointer_expression "*(code *)PTR_malloc_00079b54" * (cast_expression "(code *)PTR_malloc_00079b54" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s5.sbcset)" ( (field_expression "unaff_s5.sbcset" identifier . field_identifier) ))))) ;) (if_statement "if ((unaff_s4 != (re_dfa_t *)0x0) && (mctx.sub_tops != (re_sub_match_top_t **)0x0))\n            goto LAB_000559f0;" if (parenthesized_expression "((unaff_s4 != (re_dfa_t *)0x0) && (mctx.sub_tops != (re_sub_match_top_t **)0x0))" ( (binary_expression "(unaff_s4 != (re_dfa_t *)0x0) && (mctx.sub_tops != (re_sub_match_top_t **)0x0)" (parenthesized_expression "(unaff_s4 != (re_dfa_t *)0x0)" ( (binary_expression "unaff_s4 != (re_dfa_t *)0x0" identifier != (cast_expression "(re_dfa_t *)0x0" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(mctx.sub_tops != (re_sub_match_top_t **)0x0)" ( (binary_expression "mctx.sub_tops != (re_sub_match_top_t **)0x0" (field_expression "mctx.sub_tops" identifier . field_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_000559f0;" goto statement_identifier ;)) })) (expression_statement "local_150.idx = 0xc;" (assignment_expression "local_150.idx = 0xc" (field_expression "local_150.idx" identifier . field_identifier) = number_literal) ;) (expression_statement "stop = aVar56.idx;" (assignment_expression "stop = aVar56.idx" identifier = (field_expression "aVar56.idx" identifier . field_identifier)) ;) }))) (labeled_statement "LAB_000557e4:\n        (*(code *)PTR_free_00079c24)(mctx.state_log);" statement_identifier : (expression_statement "(*(code *)PTR_free_00079c24)(mctx.state_log);" (call_expression "(*(code *)PTR_free_00079c24)(mctx.state_log)" (parenthesized_expression "(*(code *)PTR_free_00079c24)" ( (pointer_expression "*(code *)PTR_free_00079c24" * (cast_expression "(code *)PTR_free_00079c24" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(mctx.state_log)" ( (field_expression "mctx.state_log" identifier . field_identifier) ))) ;)) (expression_statement "preg = (regex_t *)aVar49;" (assignment_expression "preg = (regex_t *)aVar49" identifier = (cast_expression "(regex_t *)aVar49" ( (type_descriptor "regex_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (prVar59->nbackref != 0) {\n          match_ctx_clean(&mctx);\n          (*(code *)PTR_free_00079c24)(mctx.sub_tops);\n          (*(code *)PTR_free_00079c24)(mctx.bkref_ents);\n          preg = (regex_t *)aVar49;\n        }" if (parenthesized_expression "(prVar59->nbackref != 0)" ( (binary_expression "prVar59->nbackref != 0" (field_expression "prVar59->nbackref" identifier -> field_identifier) != number_literal) )) (compound_statement "{\n          match_ctx_clean(&mctx);\n          (*(code *)PTR_free_00079c24)(mctx.sub_tops);\n          (*(code *)PTR_free_00079c24)(mctx.bkref_ents);\n          preg = (regex_t *)aVar49;\n        }" { (expression_statement "match_ctx_clean(&mctx);" (call_expression "match_ctx_clean(&mctx)" identifier (argument_list "(&mctx)" ( (pointer_expression "&mctx" & identifier) ))) ;) (expression_statement "(*(code *)PTR_free_00079c24)(mctx.sub_tops);" (call_expression "(*(code *)PTR_free_00079c24)(mctx.sub_tops)" (parenthesized_expression "(*(code *)PTR_free_00079c24)" ( (pointer_expression "*(code *)PTR_free_00079c24" * (cast_expression "(code *)PTR_free_00079c24" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(mctx.sub_tops)" ( (field_expression "mctx.sub_tops" identifier . field_identifier) ))) ;) (expression_statement "(*(code *)PTR_free_00079c24)(mctx.bkref_ents);" (call_expression "(*(code *)PTR_free_00079c24)(mctx.bkref_ents)" (parenthesized_expression "(*(code *)PTR_free_00079c24)" ( (pointer_expression "*(code *)PTR_free_00079c24" * (cast_expression "(code *)PTR_free_00079c24" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(mctx.bkref_ents)" ( (field_expression "mctx.bkref_ents" identifier . field_identifier) ))) ;) (expression_statement "preg = (regex_t *)aVar49;" (assignment_expression "preg = (regex_t *)aVar49" identifier = (cast_expression "(regex_t *)aVar49" ( (type_descriptor "regex_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) })) (expression_statement "re_string_destruct(&mctx.input);" (call_expression "re_string_destruct(&mctx.input)" identifier (argument_list "(&mctx.input)" ( (pointer_expression "&mctx.input" & (field_expression "mctx.input" identifier . field_identifier)) ))) ;) (expression_statement "aStack_1a0 = aVar46;" (assignment_expression "aStack_1a0 = aVar46" identifier = identifier) ;) (expression_statement "paStack_19c = paVar18;" (assignment_expression "paStack_19c = paVar18" identifier = identifier) ;) }))) }))) }))))))))) (if_statement "if ((re_dfa_t *)preg_00.sbcset == *(re_dfa_t **)PTR___stack_chk_guard_00079c10) {\n    return (reg_errcode_t)local_150.sbcset;\n  }" if (parenthesized_expression "((re_dfa_t *)preg_00.sbcset == *(re_dfa_t **)PTR___stack_chk_guard_00079c10)" ( (binary_expression "(re_dfa_t *)preg_00.sbcset == *(re_dfa_t **)PTR___stack_chk_guard_00079c10" (cast_expression "(re_dfa_t *)preg_00.sbcset" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "preg_00.sbcset" identifier . field_identifier)) == (pointer_expression "*(re_dfa_t **)PTR___stack_chk_guard_00079c10" * (cast_expression "(re_dfa_t **)PTR___stack_chk_guard_00079c10" ( (type_descriptor "re_dfa_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (compound_statement "{\n    return (reg_errcode_t)local_150.sbcset;\n  }" { (return_statement "return (reg_errcode_t)local_150.sbcset;" return (cast_expression "(reg_errcode_t)local_150.sbcset" ( (type_descriptor "reg_errcode_t" type_identifier) ) (field_expression "local_150.sbcset" identifier . field_identifier)) ;) })) (expression_statement "pcVar5 = re_compile_internal;" (assignment_expression "pcVar5 = re_compile_internal" identifier = identifier) ;) (expression_statement "puVar62 = PTR___stack_chk_fail_00079bd0;" (assignment_expression "puVar62 = PTR___stack_chk_fail_00079bd0" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_00079bd0)();" (call_expression "(*(code *)PTR___stack_chk_fail_00079bd0)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_00079bd0)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_00079bd0" * (cast_expression "(code *)PTR___stack_chk_fail_00079bd0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "pcStack_1a4 = (char *)**(undefined4 **)(puVar62 + 0x23dac);" (assignment_expression "pcStack_1a4 = (char *)**(undefined4 **)(puVar62 + 0x23dac)" identifier = (cast_expression "(char *)**(undefined4 **)(puVar62 + 0x23dac)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(puVar62 + 0x23dac)" * (pointer_expression "*(undefined4 **)(puVar62 + 0x23dac)" * (cast_expression "(undefined4 **)(puVar62 + 0x23dac)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar62 + 0x23dac)" ( (binary_expression "puVar62 + 0x23dac" identifier + number_literal) ))))))) ;) (expression_statement "rStack_20c = _REG_NOERROR;" (assignment_expression "rStack_20c = _REG_NOERROR" identifier = identifier) ;) (expression_statement "bVar1 = *(byte *)&((re_node_set *)&(preg_00.mbcset)->nequiv_classes)->alloc;" (assignment_expression "bVar1 = *(byte *)&((re_node_set *)&(preg_00.mbcset)->nequiv_classes)->alloc" identifier = (pointer_expression "*(byte *)&((re_node_set *)&(preg_00.mbcset)->nequiv_classes)->alloc" * (cast_expression "(byte *)&((re_node_set *)&(preg_00.mbcset)->nequiv_classes)->alloc" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&((re_node_set *)&(preg_00.mbcset)->nequiv_classes)->alloc" & (field_expression "((re_node_set *)&(preg_00.mbcset)->nequiv_classes)->alloc" (parenthesized_expression "((re_node_set *)&(preg_00.mbcset)->nequiv_classes)" ( (cast_expression "(re_node_set *)&(preg_00.mbcset)->nequiv_classes" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(preg_00.mbcset)->nequiv_classes" & (field_expression "(preg_00.mbcset)->nequiv_classes" (parenthesized_expression "(preg_00.mbcset)" ( (field_expression "preg_00.mbcset" identifier . field_identifier) )) -> field_identifier))) )) -> field_identifier))))) ;) (expression_statement "(preg_00.mbcset)->char_classes = (wctype_t *)prVar51;" (assignment_expression "(preg_00.mbcset)->char_classes = (wctype_t *)prVar51" (field_expression "(preg_00.mbcset)->char_classes" (parenthesized_expression "(preg_00.mbcset)" ( (field_expression "preg_00.mbcset" identifier . field_identifier) )) -> field_identifier) = (cast_expression "(wctype_t *)prVar51" ( (type_descriptor "wctype_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "(preg_00.mbcset)->range_ends = (wchar_t *)0x0;" (assignment_expression "(preg_00.mbcset)->range_ends = (wchar_t *)0x0" (field_expression "(preg_00.mbcset)->range_ends" (parenthesized_expression "(preg_00.mbcset)" ( (field_expression "preg_00.mbcset" identifier . field_identifier) )) -> field_identifier) = (cast_expression "(wchar_t *)0x0" ( (type_descriptor "wchar_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "(preg_00.mbcset)->ncoll_syms = 0;" (assignment_expression "(preg_00.mbcset)->ncoll_syms = 0" (field_expression "(preg_00.mbcset)->ncoll_syms" (parenthesized_expression "(preg_00.mbcset)" ( (field_expression "preg_00.mbcset" identifier . field_identifier) )) -> field_identifier) = number_literal) ;) (expression_statement "*(byte *)&((re_node_set *)&(preg_00.mbcset)->nequiv_classes)->alloc = bVar1 & 9;" (assignment_expression "*(byte *)&((re_node_set *)&(preg_00.mbcset)->nequiv_classes)->alloc = bVar1 & 9" (pointer_expression "*(byte *)&((re_node_set *)&(preg_00.mbcset)->nequiv_classes)->alloc" * (cast_expression "(byte *)&((re_node_set *)&(preg_00.mbcset)->nequiv_classes)->alloc" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&((re_node_set *)&(preg_00.mbcset)->nequiv_classes)->alloc" & (field_expression "((re_node_set *)&(preg_00.mbcset)->nequiv_classes)->alloc" (parenthesized_expression "((re_node_set *)&(preg_00.mbcset)->nequiv_classes)" ( (cast_expression "(re_node_set *)&(preg_00.mbcset)->nequiv_classes" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(preg_00.mbcset)->nequiv_classes" & (field_expression "(preg_00.mbcset)->nequiv_classes" (parenthesized_expression "(preg_00.mbcset)" ( (field_expression "preg_00.mbcset" identifier . field_identifier) )) -> field_identifier))) )) -> field_identifier)))) = (binary_expression "bVar1 & 9" identifier & number_literal)) ;) (expression_statement "aVar4.mbcset = (re_charset_t *)((re_string_t *)&(preg_00.mbcset)->mbchars)->raw_mbs;" (assignment_expression "aVar4.mbcset = (re_charset_t *)((re_string_t *)&(preg_00.mbcset)->mbchars)->raw_mbs" (field_expression "aVar4.mbcset" identifier . field_identifier) = (cast_expression "(re_charset_t *)((re_string_t *)&(preg_00.mbcset)->mbchars)->raw_mbs" ( (type_descriptor "re_charset_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "((re_string_t *)&(preg_00.mbcset)->mbchars)->raw_mbs" (parenthesized_expression "((re_string_t *)&(preg_00.mbcset)->mbchars)" ( (cast_expression "(re_string_t *)&(preg_00.mbcset)->mbchars" ( (type_descriptor "re_string_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(preg_00.mbcset)->mbchars" & (field_expression "(preg_00.mbcset)->mbchars" (parenthesized_expression "(preg_00.mbcset)" ( (field_expression "preg_00.mbcset" identifier . field_identifier) )) -> field_identifier))) )) -> field_identifier))) ;) (expression_statement "aStack_198.idx = last_start;" (assignment_expression "aStack_198.idx = last_start" (field_expression "aStack_198.idx" identifier . field_identifier) = identifier) ;) (expression_statement "aStack_194.idx = stop;" (assignment_expression "aStack_194.idx = stop" (field_expression "aStack_194.idx" identifier . field_identifier) = identifier) ;) (expression_statement "prStack_190 = unaff_s4;" (assignment_expression "prStack_190 = unaff_s4" identifier = identifier) ;) (expression_statement "aStack_18c = unaff_s5;" (assignment_expression "aStack_18c = unaff_s5" identifier = identifier) ;) (expression_statement "prStack_188 = prVar59;" (assignment_expression "prStack_188 = prVar59" identifier = identifier) ;) (expression_statement "aStack_184 = unaff_s7;" (assignment_expression "aStack_184 = unaff_s7" identifier = identifier) ;) (expression_statement "aStack_180 = local_c4;" (assignment_expression "aStack_180 = local_c4" identifier = identifier) ;) (expression_statement "pcStack_17c = pcVar5;" (assignment_expression "pcStack_17c = pcVar5" identifier = identifier) ;) (if_statement "if ((uint)((re_node_set *)&(preg_00.mbcset)->range_starts)->alloc < 0xa0) {\n    aVar46.idx = 0xa0;\n    aVar49 = (anon_union_4_5_a39f51ca_for_opr)preg;\n    aVar4.sbcset = (re_bitset_ptr_t)(**(code **)(puVar62 + 0x23cf8))(aVar4.sbcset);\n    if ((re_dfa_t *)aVar4.sbcset == (re_dfa_t *)0x0) {\n      rVar21 = _REG_ESPACE;\n      goto LAB_00056cfc;\n    }\n    ((re_node_set *)&(preg_00.mbcset)->range_starts)->alloc = 0xa0;\n    ((re_string_t *)&(preg_00.mbcset)->mbchars)->raw_mbs = (uchar *)aVar4;\n  }" if (parenthesized_expression "((uint)((re_node_set *)&(preg_00.mbcset)->range_starts)->alloc < 0xa0)" ( (binary_expression "(uint)((re_node_set *)&(preg_00.mbcset)->range_starts)->alloc < 0xa0" (field_expression "(uint)((re_node_set *)&(preg_00.mbcset)->range_starts)->alloc" (call_expression "(uint)((re_node_set *)&(preg_00.mbcset)->range_starts)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((re_node_set *)&(preg_00.mbcset)->range_starts)" ( (cast_expression "(re_node_set *)&(preg_00.mbcset)->range_starts" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(preg_00.mbcset)->range_starts" & (field_expression "(preg_00.mbcset)->range_starts" (parenthesized_expression "(preg_00.mbcset)" ( (field_expression "preg_00.mbcset" identifier . field_identifier) )) -> field_identifier))) ))) -> field_identifier) < number_literal) )) (compound_statement "{\n    aVar46.idx = 0xa0;\n    aVar49 = (anon_union_4_5_a39f51ca_for_opr)preg;\n    aVar4.sbcset = (re_bitset_ptr_t)(**(code **)(puVar62 + 0x23cf8))(aVar4.sbcset);\n    if ((re_dfa_t *)aVar4.sbcset == (re_dfa_t *)0x0) {\n      rVar21 = _REG_ESPACE;\n      goto LAB_00056cfc;\n    }\n    ((re_node_set *)&(preg_00.mbcset)->range_starts)->alloc = 0xa0;\n    ((re_string_t *)&(preg_00.mbcset)->mbchars)->raw_mbs = (uchar *)aVar4;\n  }" { (expression_statement "aVar46.idx = 0xa0;" (assignment_expression "aVar46.idx = 0xa0" (field_expression "aVar46.idx" identifier . field_identifier) = number_literal) ;) (expression_statement "aVar49 = (anon_union_4_5_a39f51ca_for_opr)preg;" (assignment_expression "aVar49 = (anon_union_4_5_a39f51ca_for_opr)preg" identifier = (cast_expression "(anon_union_4_5_a39f51ca_for_opr)preg" ( (type_descriptor "anon_union_4_5_a39f51ca_for_opr" type_identifier) ) identifier)) ;) (expression_statement "aVar4.sbcset = (re_bitset_ptr_t)(**(code **)(puVar62 + 0x23cf8))(aVar4.sbcset);" (assignment_expression "aVar4.sbcset = (re_bitset_ptr_t)(**(code **)(puVar62 + 0x23cf8))(aVar4.sbcset)" (field_expression "aVar4.sbcset" identifier . field_identifier) = (call_expression "(re_bitset_ptr_t)(**(code **)(puVar62 + 0x23cf8))(aVar4.sbcset)" (call_expression "(re_bitset_ptr_t)(**(code **)(puVar62 + 0x23cf8))" (parenthesized_expression "(re_bitset_ptr_t)" ( identifier )) (argument_list "(**(code **)(puVar62 + 0x23cf8))" ( (pointer_expression "**(code **)(puVar62 + 0x23cf8)" * (pointer_expression "*(code **)(puVar62 + 0x23cf8)" * (cast_expression "(code **)(puVar62 + 0x23cf8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar62 + 0x23cf8)" ( (binary_expression "puVar62 + 0x23cf8" identifier + number_literal) ))))) ))) (argument_list "(aVar4.sbcset)" ( (field_expression "aVar4.sbcset" identifier . field_identifier) )))) ;) (if_statement "if ((re_dfa_t *)aVar4.sbcset == (re_dfa_t *)0x0) {\n      rVar21 = _REG_ESPACE;\n      goto LAB_00056cfc;\n    }" if (parenthesized_expression "((re_dfa_t *)aVar4.sbcset == (re_dfa_t *)0x0)" ( (binary_expression "(re_dfa_t *)aVar4.sbcset == (re_dfa_t *)0x0" (cast_expression "(re_dfa_t *)aVar4.sbcset" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "aVar4.sbcset" identifier . field_identifier)) == (cast_expression "(re_dfa_t *)0x0" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      rVar21 = _REG_ESPACE;\n      goto LAB_00056cfc;\n    }" { (expression_statement "rVar21 = _REG_ESPACE;" (assignment_expression "rVar21 = _REG_ESPACE" identifier = identifier) ;) (goto_statement "goto LAB_00056cfc;" goto statement_identifier ;) })) (expression_statement "((re_node_set *)&(preg_00.mbcset)->range_starts)->alloc = 0xa0;" (assignment_expression "((re_node_set *)&(preg_00.mbcset)->range_starts)->alloc = 0xa0" (field_expression "((re_node_set *)&(preg_00.mbcset)->range_starts)->alloc" (parenthesized_expression "((re_node_set *)&(preg_00.mbcset)->range_starts)" ( (cast_expression "(re_node_set *)&(preg_00.mbcset)->range_starts" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(preg_00.mbcset)->range_starts" & (field_expression "(preg_00.mbcset)->range_starts" (parenthesized_expression "(preg_00.mbcset)" ( (field_expression "preg_00.mbcset" identifier . field_identifier) )) -> field_identifier))) )) -> field_identifier) = number_literal) ;) (expression_statement "((re_string_t *)&(preg_00.mbcset)->mbchars)->raw_mbs = (uchar *)aVar4;" (assignment_expression "((re_string_t *)&(preg_00.mbcset)->mbchars)->raw_mbs = (uchar *)aVar4" (field_expression "((re_string_t *)&(preg_00.mbcset)->mbchars)->raw_mbs" (parenthesized_expression "((re_string_t *)&(preg_00.mbcset)->mbchars)" ( (cast_expression "(re_string_t *)&(preg_00.mbcset)->mbchars" ( (type_descriptor "re_string_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(preg_00.mbcset)->mbchars" & (field_expression "(preg_00.mbcset)->mbchars" (parenthesized_expression "(preg_00.mbcset)" ( (field_expression "preg_00.mbcset" identifier . field_identifier) )) -> field_identifier))) )) -> field_identifier) = (cast_expression "(uchar *)aVar4" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) })) (expression_statement "(preg_00.mbcset)->range_ends = (wchar_t *)0xa0;" (assignment_expression "(preg_00.mbcset)->range_ends = (wchar_t *)0xa0" (field_expression "(preg_00.mbcset)->range_ends" (parenthesized_expression "(preg_00.mbcset)" ( (field_expression "preg_00.mbcset" identifier . field_identifier) )) -> field_identifier) = (cast_expression "(wchar_t *)0xa0" ( (type_descriptor "wchar_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "aVar49.idx = 0xa0;" (assignment_expression "aVar49.idx = 0xa0" (field_expression "aVar49.idx" identifier . field_identifier) = number_literal) ;) (expression_statement "aVar46.sbcset = (re_bitset_ptr_t)0x0;" (assignment_expression "aVar46.sbcset = (re_bitset_ptr_t)0x0" (field_expression "aVar46.sbcset" identifier . field_identifier) = (cast_expression "(re_bitset_ptr_t)0x0" ( (type_descriptor "re_bitset_ptr_t" type_identifier) ) number_literal)) ;) (expression_statement "(**(code **)(puVar62 + 0x23c9c))(aVar4.sbcset);" (call_expression "(**(code **)(puVar62 + 0x23c9c))(aVar4.sbcset)" (parenthesized_expression "(**(code **)(puVar62 + 0x23c9c))" ( (pointer_expression "**(code **)(puVar62 + 0x23c9c)" * (pointer_expression "*(code **)(puVar62 + 0x23c9c)" * (cast_expression "(code **)(puVar62 + 0x23c9c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar62 + 0x23c9c)" ( (binary_expression "puVar62 + 0x23c9c" identifier + number_literal) ))))) )) (argument_list "(aVar4.sbcset)" ( (field_expression "aVar4.sbcset" identifier . field_identifier) ))) ;) (expression_statement "*(int *)(aVar4.idx + 0x40) = 0x1f;" (assignment_expression "*(int *)(aVar4.idx + 0x40) = 0x1f" (pointer_expression "*(int *)(aVar4.idx + 0x40)" * (cast_expression "(int *)(aVar4.idx + 0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(aVar4.idx + 0x40)" ( (binary_expression "aVar4.idx + 0x40" (field_expression "aVar4.idx" identifier . field_identifier) + number_literal) )))) = number_literal) ;) (expression_statement "pwVar44 = (wchar_t *)((int)&((re_string_t *)&((re_charset_t *)preg)->mbchars)->raw_mbs + 1);" (assignment_expression "pwVar44 = (wchar_t *)((int)&((re_string_t *)&((re_charset_t *)preg)->mbchars)->raw_mbs + 1)" identifier = (cast_expression "(wchar_t *)((int)&((re_string_t *)&((re_charset_t *)preg)->mbchars)->raw_mbs + 1)" ( (type_descriptor "wchar_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&((re_string_t *)&((re_charset_t *)preg)->mbchars)->raw_mbs + 1)" ( (binary_expression "(int)&((re_string_t *)&((re_charset_t *)preg)->mbchars)->raw_mbs + 1" (cast_expression "(int)&((re_string_t *)&((re_charset_t *)preg)->mbchars)->raw_mbs" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&((re_string_t *)&((re_charset_t *)preg)->mbchars)->raw_mbs" & (field_expression "((re_string_t *)&((re_charset_t *)preg)->mbchars)->raw_mbs" (parenthesized_expression "((re_string_t *)&((re_charset_t *)preg)->mbchars)" ( (cast_expression "(re_string_t *)&((re_charset_t *)preg)->mbchars" ( (type_descriptor "re_string_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&((re_charset_t *)preg)->mbchars" & (field_expression "((re_charset_t *)preg)->mbchars" (parenthesized_expression "((re_charset_t *)preg)" ( (cast_expression "(re_charset_t *)preg" ( (type_descriptor "re_charset_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier))) )) -> field_identifier))) + number_literal) )))) ;) (if_statement "if (preg < (re_dfa_t *)0xaaaaaaa) {\n    (aVar4.mbcset)->range_starts = pwVar44;\n    bVar22 = (**(code **)(puVar62 + 0x23cf0))((int)pwVar44 * 8);\n    *aVar4.sbcset = bVar22;\n    if ((re_dfa_t *)preg == (re_dfa_t *)0x0) {\n      aVar56.idx = 1;\n    }\n    else {\n      aVar56.idx = 1;\n      do {\n        aVar56.ctx_type = aVar56.ctx_type << 1;\n      } while (aVar56.sbcset <= preg);\n    }\n    aVar46 = aVar56;\n    prVar23 = (re_state_table_entry *)(**(code **)(puVar62 + 0x23b8c))(0xc);\n    (aVar4.mbcset)->nranges = (Idx)prVar23;\n    *(undefined1 **)(aVar4.idx + 0x44) = (undefined1 *)(aVar56.idx + -1);\n    iVar55 = (**(code **)(puVar62 + 0x23d2c))();\n    *(int *)(aVar4.idx + 0x5c) = iVar55;\n    pbVar24 = (byte *)(**(code **)(puVar62 + 0x23c2c))(0xe);\n    if ((((*pbVar24 & 0xdf) == 0x55) && ((pbVar24[1] & 0xdf) == 0x54)) &&\n       (aVar46.idx = 4, (pbVar24[2] & 0xdf) == 0x46)) {\n      iVar55 = 3;\n      if (pbVar24[3] == 0x2d) {\n        iVar55 = 4;\n      }\n      aVar46.sbcset = (re_bitset_ptr_t)(*(int *)(puVar62 + 0x23754) + 0x71b4);\n      iVar55 = (**(code **)(puVar62 + 0x23dfc))(pbVar24 + iVar55);\n      if (iVar55 == 0) {\n        *(byte *)(aVar4.idx + 0x58) = *(byte *)(aVar4.idx + 0x58) & 0xdf | 0x20;\n      }\n    }\n    *(byte *)(aVar4.idx + 0x58) = *(byte *)(aVar4.idx + 0x58) & 0xef;\n    if (1 < *(int *)(aVar4.idx + 0x5c)) {\n      if ((*(byte *)(aVar4.idx + 0x58) & 0x20) == 0) {\n        aVar46.idx = 1;\n        pbVar25 = (re_bitset_ptr_t)(**(code **)(puVar62 + 0x23b8c))(0x20);\n        *(re_bitset_ptr_t *)(aVar4.idx + 0x3c) = pbVar25;\n        if (pbVar25 == (re_bitset_ptr_t)0x0) goto LAB_00056e5c;\n        iVar55 = 0;\n        do {\n          uVar8 = iVar55 << 3;\n          uVar60 = 0;\n          do {\n            uVar26 = (**(code **)(puVar62 + 0x23c88))(uVar8);\n            if (uVar26 != 0xffffffff) {\n              prVar42 = (re_context_type *)((int)*(re_bitset_ptr_t *)(aVar4.idx + 0x3c) + iVar55);\n              aVar46.ctx_type = *prVar42;\n              *prVar42 = aVar46.ctx_type | 1 << (uVar60 & 0x1f);\n            }\n            if (((uVar8 & 0xffffff80) == 0) && (uVar26 != uVar8)) {\n              *(byte *)(aVar4.idx + 0x58) = *(byte *)(aVar4.idx + 0x58) & 0xef | 0x10;\n            }\n            uVar60 = uVar60 + 1;\n            uVar8 = uVar8 + 1;\n          } while (uVar60 != 0x20);\n          iVar55 = iVar55 + 4;\n        } while (iVar55 != 0x20);\n      }\n      else {\n        *(re_bitset_ptr_t *)(aVar4.idx + 0x3c) =\n             (re_bitset_ptr_t)(*(int *)(puVar62 + 0x23754) + 0x6ee4);\n      }\n    }\n    if ((*aVar4.sbcset == 0) ||\n       ((re_state_table_entry *)(aVar4.mbcset)->nranges == (re_state_table_entry *)0x0))\n    goto LAB_00056e5c;\n    rStack_20c = _REG_NOERROR;\n    if (*(int *)(puVar62 + 0x23c78) == 0) {\nLAB_00056054:\n      uVar60 = ((anon_union_4_2_91654ee9_for___value *)&(preg_00.mbcset)->nmbchars)->__wch;\n      uVar8 = (uint)prVar51 & 0x400000;\n      bVar36 = uVar8 != 0;\n      aVar49.idx = 0x4c;\n      aVar46.sbcset = (re_bitset_ptr_t)0x0;\n      (**(code **)(puVar62 + 0x23c9c))(aaStack_1f4);\n      cStack_1ad = uVar60 != 0 || bVar36;\n      iStack_1a8 = *(int *)(aVar4.idx + 0x5c);\n      bStack_1af = (byte)((uint)(*(int *)(aVar4.idx + 0x58) << 2) >> 0x1f);\n      bStack_1ae = (byte)((uint)(*(int *)(aVar4.idx + 0x58) << 3) >> 0x1f);\n      aStack_1f8 = aVar45;\n      aStack_1cc = (anon_union_4_5_a39f51ca_for_opr)preg;\n      aStack_1c8 = (anon_union_4_5_a39f51ca_for_opr)preg;\n      aStack_1c4 = (anon_union_4_5_a39f51ca_for_opr)preg;\n      aStack_1c0 = (anon_union_4_5_a39f51ca_for_opr)preg;\n      uStack_1b8 = uVar60;\n      uStack_1b0 = bVar36;\n      if (0 < (int)preg) {\n        aVar46.sbcset = (re_bitset_ptr_t)((int)preg + 1);\n        rVar21 = re_string_realloc_buffers((re_string_t *)&aStack_1f8,aVar46.idx);\n        if (rVar21 == _REG_NOERROR) goto LAB_000560cc;\n        goto LAB_00056168;\n      }\nLAB_000560cc:\n      if (cStack_1ad != '\0') {\n        aVar45 = aaStack_1f4[0];\n      }\n      aaStack_1f4[0] = aVar45;\n      if (uVar8 == 0) {\n        if (*(int *)(aVar4.idx + 0x5c) < 2) {\n          if (uVar60 != 0) {\n            re_string_translate_buffer((re_string_t *)&aStack_1f8);\n          }\n        }\n        else {\n          build_wcs_buffer((re_string_t *)&aStack_1f8);\n        }\n      }\n      else {\n        if (1 < *(int *)(aVar4.idx + 0x5c)) {\n          iVar55 = *(int *)(puVar62 + 0x23abc);\n          do {\n            rVar21 = build_wcs_upper_buffer((re_string_t *)&aStack_1f8);\n            if (rVar21 != _REG_NOERROR) break;\n            if (((int)preg <= iStack_1d8) ||\n               (aVar46.ctx_type = iStack_1d4 << 1,\n               iStack_1dc + *(int *)(aVar4.idx + 0x5c) < iStack_1d4)) goto LAB_000563d0;\n            rVar21 = (*(code *)(iVar55 + 0x6d2c))(&aStack_1f8);\n          } while (rVar21 == _REG_NOERROR);\n          goto LAB_00056168;\n        }\n        build_upper_buffer((re_string_t *)&aStack_1f8);\n      }\nLAB_000563d0:\n      rStack_20c = _REG_NOERROR;\n      (preg_00.mbcset)->ncoll_syms = 0;\n      prVar59 = (re_dfa_t *)((re_string_t *)&(preg_00.mbcset)->mbchars)->raw_mbs;\n      prVar59->syntax = (reg_syntax_t)prVar51;\n      fetch_token((re_token_t *)&rStack_204,(re_string_t *)&aStack_1f8,(uint)prVar51 | 0x800000);\n      aVar46 = preg_00;\n      aVar45.sbcset =\n           (re_bitset_ptr_t)\n           parse_reg_exp((re_string_t *)&aStack_1f8,preg_00.sbcset,(re_token_t *)&rStack_204,\n                         (reg_syntax_t)prVar51,0,&rStack_20c);\n      if (rStack_20c == _REG_NOERROR) {\n        aVar49.sbcset = (re_bitset_ptr_t)0x0;\n        aVar46.sbcset = (re_bitset_ptr_t)0x0;\n        aVar56.mbcset =\n             (re_charset_t *)create_tree(prVar59,(bin_tree_t *)0x0,(bin_tree_t *)0x0,END_OF_RE);\n        aVar39.mbcset = aVar56.mbcset;\n        if ((re_dfa_t *)aVar45.sbcset != (re_dfa_t *)0x0) {\nLAB_000564b0:\n          aVar49 = aVar56;\n          aVar39.sbcset =\n               (re_bitset_ptr_t)\n               create_tree(prVar59,(bin_tree_t *)aVar45.mbcset,aVar56.sbcset,CONCAT);\n          aVar46 = aVar45;\n        }\n        if (((re_dfa_t *)aVar56.sbcset == (re_dfa_t *)0x0) ||\n           (pcVar5 = *(code **)(puVar62 + 0x23cf0), (re_dfa_t *)aVar39.sbcset == (re_dfa_t *)0x0)) {\n          rStack_20c = _REG_ESPACE;\n          goto LAB_000566f4;\n        }\n        ((anon_union_4_5_a39f51ca_for_opr *)(aVar4.idx + 0x34))->mbcset = (re_charset_t *)aVar39;\n        aVar45.mbcset = (re_charset_t *)*preg_00.sbcset;\n        iVar61 = ((re_node_set *)&(aVar45.mbcset)->range_starts)->alloc;\n        iVar55 = iVar61 << 2;\n        pwVar27 = (wctype_t *)(*pcVar5)(iVar55);\n        (aVar45.mbcset)->char_classes = pwVar27;\n        iVar55 = (**(code **)(puVar62 + 0x23cf0))(iVar55);\n        ((re_node_set *)(aVar45.idx + 0x10))->alloc = iVar55;\n        iVar61 = iVar61 * 0xc;\n        uVar60 = (**(code **)(puVar62 + 0x23cf0))(iVar61);\n        ((anon_union_4_2_91654ee9_for___value *)&(aVar45.mbcset)->nmbchars)->__wch = uVar60;\n        prVar28 = (re_node_set *)(**(code **)(puVar62 + 0x23cf0))(iVar61);\n        (aVar45.mbcset)->ncoll_syms = (Idx)prVar28;\n        if (pwVar27 == (wctype_t *)0x0) {\n          rVar21 = _REG_ESPACE;\n        }\n        else if (iVar55 == 0) {\n          rVar21 = _REG_ESPACE;\n        }\n        else if (uVar60 == 0) {\n          rVar21 = _REG_ESPACE;\n        }\n        else if (prVar28 == (re_node_set *)0x0) {\n          rVar21 = _REG_ESPACE;\n        }\n        else {\n          pprVar29 = (re_sub_match_top_t **)\n                     (**(code **)(puVar62 + 0x23cf0))((int)(preg_00.mbcset)->ncoll_syms << 2);\n          *(re_sub_match_top_t ***)(aVar45.idx + 0x84) = pprVar29;\n          if (pprVar29 != (re_sub_match_top_t **)0x0) {\n            prVar30 = (re_sub_match_top_t *)0x0;\n            if ((re_node_set *)(preg_00.mbcset)->ncoll_syms != (re_node_set *)0x0) {\n              do {\n                (*(re_sub_match_top_t ***)(aVar45.idx + 0x84))[(int)prVar30] = prVar30;\n                prVar30 = (re_sub_match_top_t *)((int)&prVar30->str_idx + 1);\n              } while (prVar30 < (re_sub_match_top_t *)(preg_00.mbcset)->ncoll_syms);\n            }\n            preorder(*(bin_tree_t **)(aVar45.idx + 0x34),\n                     (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)\n                     (*(int *)(puVar62 + 0x23abc) + 0x60e8),aVar45.sbcset);\n            prVar30 = (re_sub_match_top_t *)(preg_00.mbcset)->ncoll_syms;\n            if (prVar30 == (re_sub_match_top_t *)0x0) {\nLAB_00056704:\n              (**(code **)(puVar62 + 0x23dc0))(*(re_sub_match_top_t ***)(aVar45.idx + 0x84));\n              *(re_sub_match_top_t ***)(aVar45.idx + 0x84) = (re_sub_match_top_t **)0x0;\n            }\n            else {\n              pprVar29 = *(re_sub_match_top_t ***)(aVar45.idx + 0x84);\n              if (*pprVar29 == (re_sub_match_top_t *)0x0) {\n                prVar31 = (re_sub_match_top_t *)0x0;\n                do {\n                  pprVar29 = pprVar29 + 1;\n                  prVar31 = (re_sub_match_top_t *)((int)&prVar31->str_idx + 1);\n                  if (prVar30 == prVar31) {\n                    if (prVar30 == prVar31) goto LAB_00056704;\n                    break;\n                  }\n                } while (*pprVar29 == prVar31);\n              }\n            }\n          }\n          aVar46.sbcset = (re_bitset_ptr_t)(*(int *)(puVar62 + 0x23abc) + 0x73a4);\n          rVar21 = postorder(*(bin_tree_t **)(aVar45.idx + 0x34),\n                             (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar46.sbcset,\n                             preg_00.sbcset);\n          aVar49.mbcset = aVar45.mbcset;\n          if (rVar21 == _REG_NOERROR) {\n            aVar46.sbcset = (re_bitset_ptr_t)(*(int *)(puVar62 + 0x23b40) + -0x5be4);\n            rVar21 = postorder(*(bin_tree_t **)(aVar45.idx + 0x34),\n                               (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar46.sbcset,\n                               aVar45.sbcset);\n            if (rVar21 == _REG_NOERROR) {\n              preorder(*(bin_tree_t **)(aVar45.idx + 0x34),\n                       (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)\n                       (*(int *)(puVar62 + 0x23abc) + 0x61b4),aVar45.sbcset);\n              aVar46.sbcset = (re_bitset_ptr_t)(*(int *)(puVar62 + 0x23b40) + -0x4614);\n              rVar21 = preorder(*(bin_tree_t **)(aVar45.idx + 0x34),\n                                (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar46.sbcset,\n                                aVar45.sbcset);\n              if (rVar21 == _REG_NOERROR) {\n                uVar60 = 0;\n                iVar55 = *(int *)(puVar62 + 0x23b40);\n                aVar56.sbcset = (re_bitset_ptr_t)0x0;\nLAB_00056744:\n                if ((re_dfa_t *)(aVar45.mbcset)->range_ends != (re_dfa_t *)aVar56.sbcset) {\nLAB_00056750:\n                  if (((re_node_set *)(aVar45.mbcset)->ncoll_syms)[aVar56.idx].nelem == 0) {\n                    aVar46.mbcset = aVar45.mbcset;\n                    aVar49 = aVar56;\n                    rVar21 = (*(code *)(iVar55 + -0x561c))\n                                       (&rStack_204,aVar45.sbcset,aVar56.sbcset,1);\n                    if (rVar21 != _REG_NOERROR) goto LAB_00056168;\n                    if (((re_node_set *)(aVar45.mbcset)->ncoll_syms)[aVar56.idx].nelem == 0) {\n                      (**(code **)(puVar62 + 0x23dc0))(rStack_204.elems);\n                      uVar60 = 1;\n                    }\n                  }\n                  aVar56.sbcset =\n                       (re_bitset_ptr_t)\n                       ((int)&((re_string_t *)&(aVar56.mbcset)->mbchars)->raw_mbs + 1);\n                  goto LAB_00056744;\n                }\n                if (uVar60 != 0) {\n                  uVar60 = 0;\n                  aVar56.sbcset = (re_bitset_ptr_t)0x0;\n                  goto LAB_00056750;\n                }\n                if ((((((re_node_set *)&(preg_00.mbcset)->nequiv_classes)->alloc & 0x8000000) == 0)\n                    && ((re_node_set *)(preg_00.mbcset)->ncoll_syms != (re_node_set *)0x0)) &&\n                   (*(char *)(aVar45.idx + 0x58) < '\0')) {\n                  pwVar57 = (wint_t *)(aVar45.mbcset)->range_ends;\n                }\n                else {\n                  if (*(Idx *)(aVar45.idx + 0x4c) == 0) goto LAB_000568f0;\n                  pwVar57 = (wint_t *)(aVar45.mbcset)->range_ends;\n                }\n                iVar55 = (**(code **)(puVar62 + 0x23cf0))((int)pwVar57 * 0xc);\n                ((re_node_set *)&(aVar45.mbcset)->nequiv_classes)->alloc = iVar55;\n                if (iVar55 == 0) {\n                  rVar21 = _REG_ESPACE;\n                  goto LAB_00056168;\n                }\n                if (pwVar57 != (wint_t *)0x0) {\n                  iVar55 = 0;\n                  uVar26 = 0;\n                  do {\n                    puVar32 = (undefined1 *)\n                              (((re_node_set *)&(aVar45.mbcset)->nequiv_classes)->alloc + iVar55);\n                    *puVar32 = 0;\n                    puVar32[1] = 0;\n                    puVar32[2] = 0;\n                    puVar32[3] = 0;\n                    puVar32[4] = 0;\n                    puVar32[5] = 0;\n                    puVar32[6] = 0;\n                    puVar32[7] = 0;\n                    puVar32[8] = 0;\n                    puVar32[9] = 0;\n                    puVar32[10] = 0;\n                    puVar32[0xb] = 0;\n                    uVar26 = uVar26 + 1;\n                    iVar55 = iVar55 + 0xc;\n                  } while (uVar26 < (aVar45.mbcset)->range_ends);\n                  iVar55 = *(int *)(puVar62 + 0x23abc);\n                  if ((wint_t *)(aVar45.mbcset)->range_ends != (wint_t *)0x0) {\n                    iVar61 = 0;\n                    aStack_218.sbcset = (re_bitset_ptr_t)0x0;\n                    do {\n                      piVar38 = *(int **)((int)&((re_node_set *)(aVar45.mbcset)->ncoll_syms)->elems\n                                         + iVar61);\n                      if (0 < *(int *)((int)&((re_node_set *)(aVar45.mbcset)->ncoll_syms)->nelem +\n                                      iVar61)) {\n                        iVar58 = 0;\n                        do {\n                          aVar46 = aStack_218;\n                          iVar33 = (*(code *)(iVar55 + 0x6e30))\n                                             (((re_node_set *)&(aVar45.mbcset)->nequiv_classes)->\n                                              alloc + *piVar38 * 0xc);\n                          rVar21 = _REG_ESPACE;\n                          if (iVar33 == 0) goto LAB_00056168;\n                          iVar58 = iVar58 + 1;\n                          piVar38 = piVar38 + 1;\n                        } while (iVar58 < *(int *)((int)&((re_node_set *)(aVar45.mbcset)->ncoll_syms\n                                                         )->nelem + iVar61));\n                      }\n                      aStack_218.sbcset =\n                           (re_bitset_ptr_t)\n                           ((int)&((re_string_t *)&(aStack_218.mbcset)->mbchars)->raw_mbs + 1);\n                      iVar61 = iVar61 + 0xc;\n                    } while (aStack_218.sbcset < (re_dfa_t *)(aVar45.mbcset)->range_ends);\n                  }\n                }\nLAB_000568f0:\n                rStack_20c = _REG_NOERROR;\n                if ((((*(byte *)(aVar4.idx + 0x58) & 0x20) != 0) && (uVar8 == 0)) &&\n                   (((anon_union_4_2_91654ee9_for___value *)&(preg_00.mbcset)->nmbchars)->__wch == 0\n                   )) {\n                  if ((aVar4.mbcset)->range_ends != (wchar_t *)0x0) {\n                    aVar49.sbcset = (re_bitset_ptr_t)(*(int *)(puVar62 + 0x23754) + 0x6e4c);\n                    if (*(byte *)(*aVar4.sbcset + 4) < 0xd) {\n                    /* WARNING: Could not recover jumptable at 0x00056a60. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      rVar21 = (*(code *)(puVar62 +\n                                         aVar49.sbcset[*(byte *)(*aVar4.sbcset + 4)] + 0x2b71c))();\n                      return rVar21;\n                    }\n                    (**(code **)(puVar62 + 0x23bc4))(0);\n                    if (uVar60 != 0) {\n                      aVar49.idx = (Idx)&DAT_00000007;\n                      uVar8 = 0;\n                      do {\n                        prVar53 = (re_token_t *)(aVar4.mbcset)->mbchars + uVar8;\n                        if (prVar53->field_0x4 == '\x01') {\n                          if ((char)(prVar53->opr).c < '\0') {\n                            *(uint *)&prVar53->field_0x4 = *(uint *)&prVar53->field_0x4 & 0xfffffbff\n                            ;\n                          }\n                        }\n                        else if (prVar53->field_0x4 == '\x05') {\n                          prVar53->field_0x4 = 7;\n                        }\n                        uVar8 = uVar8 + 1;\n                      } while (uVar8 < (aVar4.mbcset)->range_ends);\n                    }\n                  }\n                  *(int *)(aVar4.idx + 0x5c) = 1;\n                  if (0 < *(Idx *)(aVar4.idx + 0x4c)) {\n                    uVar60 = 1;\n                  }\n                  *(byte *)(aVar4.idx + 0x58) =\n                       *(byte *)(aVar4.idx + 0x58) & 0x9f | (byte)((uVar60 & 1) << 6);\n                }\n                iVar55 = (*(bin_tree_t **)(aVar4.idx + 0x34))->first->node_idx;\n                *(int *)(aVar4.idx + 0x48) = iVar55;\n                aVar46.sbcset =\n                     (re_bitset_ptr_t)((re_node_set *)(aVar4.mbcset)->ncoll_syms + iVar55);\n                rVar34 = re_node_set_init_copy(&rStack_204,(re_node_set *)aVar46.mbcset);\n                rVar21 = rVar34;\n                rStack_208 = rVar34;\n                if (rVar34 == _REG_NOERROR) {\n                  if ((0 < *(Idx *)(aVar4.idx + 0x4c)) && (_REG_NOERROR < rStack_204.nelem)) {\n                    iVar55 = *(int *)(puVar62 + 0x23abc);\n                    iVar61 = *(int *)(puVar62 + 0x23abc);\n                    rVar21 = _REG_NOERROR;\n                    do {\n                      aVar49.sbcset =\n                           (re_bitset_ptr_t)\n                           ((re_token_t *)(aVar4.mbcset)->mbchars + rStack_204.elems[rVar21]);\n                      if (*(char *)&((re_node_set *)&(aVar49.mbcset)->range_starts)->alloc == '\x04'\n                         ) {\n                        rVar48 = _REG_NOERROR;\n                        piVar38 = rStack_204.elems;\n                        if (rStack_204.nelem < _REG_NOMATCH) {\nLAB_00056b8c:\n                          if (rStack_204.nelem != rVar48) {\n                            iVar33 = *((re_node_set *)(aVar4.mbcset)->nmbchars)\n                                      [rStack_204.elems[rVar21]].elems;\n                            iVar58 = (*(code *)(iVar55 + 0x5ea8))(&rStack_204,iVar33);\n                            if (iVar58 == 0) {\n                              aVar46.sbcset =\n                                   (re_bitset_ptr_t)\n                                   ((re_node_set *)(aVar4.mbcset)->ncoll_syms + iVar33);\n                              rVar21 = (*(code *)(iVar61 + 0x7f1c))(&rStack_204);\n                              if (rVar21 != _REG_NOERROR) goto LAB_00056cb8;\n                            }\n                          }\n                        }\n                        else {\n                          do {\n                            prVar53 = (re_token_t *)(aVar4.mbcset)->mbchars + *piVar38;\n                            if ((prVar53->field_0x4 == '\t') &&\n                               ((prVar53->opr).sbcset == (re_bitset_ptr_t)*aVar49.sbcset))\n                            goto LAB_00056b8c;\n                            rVar48 = rVar48 + _REG_NOMATCH;\n                            piVar38 = piVar38 + 1;\n                          } while (rStack_204.nelem != rVar48);\n                        }\n                      }\n                      rVar21 = rVar21 + _REG_NOMATCH;\n                    } while (rVar21 < rStack_204.nelem);\n                  }\n                  aVar49.sbcset = (re_bitset_ptr_t)&rStack_204;\n                  aVar46 = aVar4;\n                  prVar35 = re_acquire_state_context\n                                      (&rStack_208,(re_dfa_t *)aVar4.mbcset,\n                                       (re_node_set *)aVar49.mbcset,0);\n                  (aVar4.mbcset)->nchar_classes = (Idx)prVar35;\n                  rVar21 = rStack_208;\n                  if (prVar35 != (re_dfastate_t *)0x0) {\n                    if ((prVar35->field_0x34 & 1) == 0) {\n                      *(re_dfastate_t **)(aVar4.idx + 0x30) = prVar35;\n                      *(re_dfastate_t **)(aVar4.idx + 0x2c) = prVar35;\n                      *(re_dfastate_t **)(aVar4.idx + 0x28) = prVar35;\n                    }\n                    else {\n                      aVar49.sbcset = (re_bitset_ptr_t)&rStack_204;\n                      prVar35 = re_acquire_state_context\n                                          (&rStack_208,(re_dfa_t *)aVar4.mbcset,\n                                           (re_node_set *)aVar49.mbcset,1);\n                      *(re_dfastate_t **)(aVar4.idx + 0x28) = prVar35;\n                      prVar35 = re_acquire_state_context\n                                          (&rStack_208,(re_dfa_t *)aVar4.mbcset,\n                                           (re_node_set *)aVar49.mbcset,2);\n                      *(re_dfastate_t **)(aVar4.idx + 0x2c) = prVar35;\n                      aVar46 = aVar4;\n                      prVar35 = re_acquire_state_context\n                                          (&rStack_208,(re_dfa_t *)aVar4.mbcset,\n                                           (re_node_set *)aVar49.mbcset,6);\n                      *(re_dfastate_t **)(aVar4.idx + 0x30) = prVar35;\n                      rVar21 = rStack_208;\n                      if (((*(re_dfastate_t **)(aVar4.idx + 0x28) == (re_dfastate_t *)0x0) ||\n                          (*(re_dfastate_t **)(aVar4.idx + 0x2c) == (re_dfastate_t *)0x0)) ||\n                         (prVar35 == (re_dfastate_t *)0x0)) goto LAB_00056cb8;\n                    }\n                    (**(code **)(puVar62 + 0x23dc0))(rStack_204.elems);\n                    rVar21 = rVar34;\n                  }\n                }\nLAB_00056cb8:\n                rStack_20c = rVar21;\n                free_workarea_compile((regex_t *)preg_00.mbcset);\n                re_string_destruct((re_string_t *)&aStack_1f8);\n                rVar21 = rStack_20c;\n                if (rStack_20c != _REG_NOERROR) {\n                  if (*(int *)(puVar62 + 0x23c78) != 0) {\n                    (**(code **)(puVar62 + 0x23df0))((pthread_mutex_t *)(aVar4.idx + 0x88));\n                  }\n                  free_dfa_content((re_dfa_t *)aVar4.mbcset);\n                  *preg_00.sbcset = 0;\n                  ((re_node_set *)&(preg_00.mbcset)->range_starts)->alloc = 0;\n                  rVar21 = rStack_20c;\n                }\n                goto LAB_00056cfc;\n              }\n            }\n          }\n        }\n      }\n      else {\n        aVar49.sbcset = (re_bitset_ptr_t)0x0;\n        if ((re_dfa_t *)aVar45.sbcset != (re_dfa_t *)0x0) {\n          aVar56.mbcset =\n               (re_charset_t *)create_tree(prVar59,(bin_tree_t *)0x0,(bin_tree_t *)0x0,END_OF_RE);\n          goto LAB_000564b0;\n        }\nLAB_000566f4:\n        *(bin_tree_t **)(aVar4.idx + 0x34) = (bin_tree_t *)0x0;\n        rVar21 = rStack_20c;\n      }\nLAB_00056168:\n      rStack_20c = rVar21;\n      free_workarea_compile((regex_t *)preg_00.mbcset);\n      re_string_destruct((re_string_t *)&aStack_1f8);\n      if (*(int *)(puVar62 + 0x23c78) != 0) {\n        (**(code **)(puVar62 + 0x23df0))((pthread_mutex_t *)(aVar4.idx + 0x88));\n      }\n      free_dfa_content((re_dfa_t *)aVar4.mbcset);\n      *preg_00.sbcset = 0;\n      ((re_node_set *)&(preg_00.mbcset)->range_starts)->alloc = 0;\n      rVar21 = rStack_20c;\n      goto LAB_00056cfc;\n    }\n    aVar46.sbcset = (re_bitset_ptr_t)0x0;\n    iVar55 = (**(code **)(puVar62 + 0x23d98))((pthread_mutex_t *)(aVar4.idx + 0x88));\n    if (iVar55 != 0) goto LAB_00056e5c;\n    if (rStack_20c == _REG_NOERROR) goto LAB_00056054;\n  }\n  else {\nLAB_00056e5c:\n    rStack_20c = _REG_ESPACE;\n  }" if (parenthesized_expression "(preg < (re_dfa_t *)0xaaaaaaa)" ( (binary_expression "preg < (re_dfa_t *)0xaaaaaaa" identifier < (cast_expression "(re_dfa_t *)0xaaaaaaa" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    (aVar4.mbcset)->range_starts = pwVar44;\n    bVar22 = (**(code **)(puVar62 + 0x23cf0))((int)pwVar44 * 8);\n    *aVar4.sbcset = bVar22;\n    if ((re_dfa_t *)preg == (re_dfa_t *)0x0) {\n      aVar56.idx = 1;\n    }\n    else {\n      aVar56.idx = 1;\n      do {\n        aVar56.ctx_type = aVar56.ctx_type << 1;\n      } while (aVar56.sbcset <= preg);\n    }\n    aVar46 = aVar56;\n    prVar23 = (re_state_table_entry *)(**(code **)(puVar62 + 0x23b8c))(0xc);\n    (aVar4.mbcset)->nranges = (Idx)prVar23;\n    *(undefined1 **)(aVar4.idx + 0x44) = (undefined1 *)(aVar56.idx + -1);\n    iVar55 = (**(code **)(puVar62 + 0x23d2c))();\n    *(int *)(aVar4.idx + 0x5c) = iVar55;\n    pbVar24 = (byte *)(**(code **)(puVar62 + 0x23c2c))(0xe);\n    if ((((*pbVar24 & 0xdf) == 0x55) && ((pbVar24[1] & 0xdf) == 0x54)) &&\n       (aVar46.idx = 4, (pbVar24[2] & 0xdf) == 0x46)) {\n      iVar55 = 3;\n      if (pbVar24[3] == 0x2d) {\n        iVar55 = 4;\n      }\n      aVar46.sbcset = (re_bitset_ptr_t)(*(int *)(puVar62 + 0x23754) + 0x71b4);\n      iVar55 = (**(code **)(puVar62 + 0x23dfc))(pbVar24 + iVar55);\n      if (iVar55 == 0) {\n        *(byte *)(aVar4.idx + 0x58) = *(byte *)(aVar4.idx + 0x58) & 0xdf | 0x20;\n      }\n    }\n    *(byte *)(aVar4.idx + 0x58) = *(byte *)(aVar4.idx + 0x58) & 0xef;\n    if (1 < *(int *)(aVar4.idx + 0x5c)) {\n      if ((*(byte *)(aVar4.idx + 0x58) & 0x20) == 0) {\n        aVar46.idx = 1;\n        pbVar25 = (re_bitset_ptr_t)(**(code **)(puVar62 + 0x23b8c))(0x20);\n        *(re_bitset_ptr_t *)(aVar4.idx + 0x3c) = pbVar25;\n        if (pbVar25 == (re_bitset_ptr_t)0x0) goto LAB_00056e5c;\n        iVar55 = 0;\n        do {\n          uVar8 = iVar55 << 3;\n          uVar60 = 0;\n          do {\n            uVar26 = (**(code **)(puVar62 + 0x23c88))(uVar8);\n            if (uVar26 != 0xffffffff) {\n              prVar42 = (re_context_type *)((int)*(re_bitset_ptr_t *)(aVar4.idx + 0x3c) + iVar55);\n              aVar46.ctx_type = *prVar42;\n              *prVar42 = aVar46.ctx_type | 1 << (uVar60 & 0x1f);\n            }\n            if (((uVar8 & 0xffffff80) == 0) && (uVar26 != uVar8)) {\n              *(byte *)(aVar4.idx + 0x58) = *(byte *)(aVar4.idx + 0x58) & 0xef | 0x10;\n            }\n            uVar60 = uVar60 + 1;\n            uVar8 = uVar8 + 1;\n          } while (uVar60 != 0x20);\n          iVar55 = iVar55 + 4;\n        } while (iVar55 != 0x20);\n      }\n      else {\n        *(re_bitset_ptr_t *)(aVar4.idx + 0x3c) =\n             (re_bitset_ptr_t)(*(int *)(puVar62 + 0x23754) + 0x6ee4);\n      }\n    }\n    if ((*aVar4.sbcset == 0) ||\n       ((re_state_table_entry *)(aVar4.mbcset)->nranges == (re_state_table_entry *)0x0))\n    goto LAB_00056e5c;\n    rStack_20c = _REG_NOERROR;\n    if (*(int *)(puVar62 + 0x23c78) == 0) {\nLAB_00056054:\n      uVar60 = ((anon_union_4_2_91654ee9_for___value *)&(preg_00.mbcset)->nmbchars)->__wch;\n      uVar8 = (uint)prVar51 & 0x400000;\n      bVar36 = uVar8 != 0;\n      aVar49.idx = 0x4c;\n      aVar46.sbcset = (re_bitset_ptr_t)0x0;\n      (**(code **)(puVar62 + 0x23c9c))(aaStack_1f4);\n      cStack_1ad = uVar60 != 0 || bVar36;\n      iStack_1a8 = *(int *)(aVar4.idx + 0x5c);\n      bStack_1af = (byte)((uint)(*(int *)(aVar4.idx + 0x58) << 2) >> 0x1f);\n      bStack_1ae = (byte)((uint)(*(int *)(aVar4.idx + 0x58) << 3) >> 0x1f);\n      aStack_1f8 = aVar45;\n      aStack_1cc = (anon_union_4_5_a39f51ca_for_opr)preg;\n      aStack_1c8 = (anon_union_4_5_a39f51ca_for_opr)preg;\n      aStack_1c4 = (anon_union_4_5_a39f51ca_for_opr)preg;\n      aStack_1c0 = (anon_union_4_5_a39f51ca_for_opr)preg;\n      uStack_1b8 = uVar60;\n      uStack_1b0 = bVar36;\n      if (0 < (int)preg) {\n        aVar46.sbcset = (re_bitset_ptr_t)((int)preg + 1);\n        rVar21 = re_string_realloc_buffers((re_string_t *)&aStack_1f8,aVar46.idx);\n        if (rVar21 == _REG_NOERROR) goto LAB_000560cc;\n        goto LAB_00056168;\n      }\nLAB_000560cc:\n      if (cStack_1ad != '\0') {\n        aVar45 = aaStack_1f4[0];\n      }\n      aaStack_1f4[0] = aVar45;\n      if (uVar8 == 0) {\n        if (*(int *)(aVar4.idx + 0x5c) < 2) {\n          if (uVar60 != 0) {\n            re_string_translate_buffer((re_string_t *)&aStack_1f8);\n          }\n        }\n        else {\n          build_wcs_buffer((re_string_t *)&aStack_1f8);\n        }\n      }\n      else {\n        if (1 < *(int *)(aVar4.idx + 0x5c)) {\n          iVar55 = *(int *)(puVar62 + 0x23abc);\n          do {\n            rVar21 = build_wcs_upper_buffer((re_string_t *)&aStack_1f8);\n            if (rVar21 != _REG_NOERROR) break;\n            if (((int)preg <= iStack_1d8) ||\n               (aVar46.ctx_type = iStack_1d4 << 1,\n               iStack_1dc + *(int *)(aVar4.idx + 0x5c) < iStack_1d4)) goto LAB_000563d0;\n            rVar21 = (*(code *)(iVar55 + 0x6d2c))(&aStack_1f8);\n          } while (rVar21 == _REG_NOERROR);\n          goto LAB_00056168;\n        }\n        build_upper_buffer((re_string_t *)&aStack_1f8);\n      }\nLAB_000563d0:\n      rStack_20c = _REG_NOERROR;\n      (preg_00.mbcset)->ncoll_syms = 0;\n      prVar59 = (re_dfa_t *)((re_string_t *)&(preg_00.mbcset)->mbchars)->raw_mbs;\n      prVar59->syntax = (reg_syntax_t)prVar51;\n      fetch_token((re_token_t *)&rStack_204,(re_string_t *)&aStack_1f8,(uint)prVar51 | 0x800000);\n      aVar46 = preg_00;\n      aVar45.sbcset =\n           (re_bitset_ptr_t)\n           parse_reg_exp((re_string_t *)&aStack_1f8,preg_00.sbcset,(re_token_t *)&rStack_204,\n                         (reg_syntax_t)prVar51,0,&rStack_20c);\n      if (rStack_20c == _REG_NOERROR) {\n        aVar49.sbcset = (re_bitset_ptr_t)0x0;\n        aVar46.sbcset = (re_bitset_ptr_t)0x0;\n        aVar56.mbcset =\n             (re_charset_t *)create_tree(prVar59,(bin_tree_t *)0x0,(bin_tree_t *)0x0,END_OF_RE);\n        aVar39.mbcset = aVar56.mbcset;\n        if ((re_dfa_t *)aVar45.sbcset != (re_dfa_t *)0x0) {\nLAB_000564b0:\n          aVar49 = aVar56;\n          aVar39.sbcset =\n               (re_bitset_ptr_t)\n               create_tree(prVar59,(bin_tree_t *)aVar45.mbcset,aVar56.sbcset,CONCAT);\n          aVar46 = aVar45;\n        }\n        if (((re_dfa_t *)aVar56.sbcset == (re_dfa_t *)0x0) ||\n           (pcVar5 = *(code **)(puVar62 + 0x23cf0), (re_dfa_t *)aVar39.sbcset == (re_dfa_t *)0x0)) {\n          rStack_20c = _REG_ESPACE;\n          goto LAB_000566f4;\n        }\n        ((anon_union_4_5_a39f51ca_for_opr *)(aVar4.idx + 0x34))->mbcset = (re_charset_t *)aVar39;\n        aVar45.mbcset = (re_charset_t *)*preg_00.sbcset;\n        iVar61 = ((re_node_set *)&(aVar45.mbcset)->range_starts)->alloc;\n        iVar55 = iVar61 << 2;\n        pwVar27 = (wctype_t *)(*pcVar5)(iVar55);\n        (aVar45.mbcset)->char_classes = pwVar27;\n        iVar55 = (**(code **)(puVar62 + 0x23cf0))(iVar55);\n        ((re_node_set *)(aVar45.idx + 0x10))->alloc = iVar55;\n        iVar61 = iVar61 * 0xc;\n        uVar60 = (**(code **)(puVar62 + 0x23cf0))(iVar61);\n        ((anon_union_4_2_91654ee9_for___value *)&(aVar45.mbcset)->nmbchars)->__wch = uVar60;\n        prVar28 = (re_node_set *)(**(code **)(puVar62 + 0x23cf0))(iVar61);\n        (aVar45.mbcset)->ncoll_syms = (Idx)prVar28;\n        if (pwVar27 == (wctype_t *)0x0) {\n          rVar21 = _REG_ESPACE;\n        }\n        else if (iVar55 == 0) {\n          rVar21 = _REG_ESPACE;\n        }\n        else if (uVar60 == 0) {\n          rVar21 = _REG_ESPACE;\n        }\n        else if (prVar28 == (re_node_set *)0x0) {\n          rVar21 = _REG_ESPACE;\n        }\n        else {\n          pprVar29 = (re_sub_match_top_t **)\n                     (**(code **)(puVar62 + 0x23cf0))((int)(preg_00.mbcset)->ncoll_syms << 2);\n          *(re_sub_match_top_t ***)(aVar45.idx + 0x84) = pprVar29;\n          if (pprVar29 != (re_sub_match_top_t **)0x0) {\n            prVar30 = (re_sub_match_top_t *)0x0;\n            if ((re_node_set *)(preg_00.mbcset)->ncoll_syms != (re_node_set *)0x0) {\n              do {\n                (*(re_sub_match_top_t ***)(aVar45.idx + 0x84))[(int)prVar30] = prVar30;\n                prVar30 = (re_sub_match_top_t *)((int)&prVar30->str_idx + 1);\n              } while (prVar30 < (re_sub_match_top_t *)(preg_00.mbcset)->ncoll_syms);\n            }\n            preorder(*(bin_tree_t **)(aVar45.idx + 0x34),\n                     (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)\n                     (*(int *)(puVar62 + 0x23abc) + 0x60e8),aVar45.sbcset);\n            prVar30 = (re_sub_match_top_t *)(preg_00.mbcset)->ncoll_syms;\n            if (prVar30 == (re_sub_match_top_t *)0x0) {\nLAB_00056704:\n              (**(code **)(puVar62 + 0x23dc0))(*(re_sub_match_top_t ***)(aVar45.idx + 0x84));\n              *(re_sub_match_top_t ***)(aVar45.idx + 0x84) = (re_sub_match_top_t **)0x0;\n            }\n            else {\n              pprVar29 = *(re_sub_match_top_t ***)(aVar45.idx + 0x84);\n              if (*pprVar29 == (re_sub_match_top_t *)0x0) {\n                prVar31 = (re_sub_match_top_t *)0x0;\n                do {\n                  pprVar29 = pprVar29 + 1;\n                  prVar31 = (re_sub_match_top_t *)((int)&prVar31->str_idx + 1);\n                  if (prVar30 == prVar31) {\n                    if (prVar30 == prVar31) goto LAB_00056704;\n                    break;\n                  }\n                } while (*pprVar29 == prVar31);\n              }\n            }\n          }\n          aVar46.sbcset = (re_bitset_ptr_t)(*(int *)(puVar62 + 0x23abc) + 0x73a4);\n          rVar21 = postorder(*(bin_tree_t **)(aVar45.idx + 0x34),\n                             (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar46.sbcset,\n                             preg_00.sbcset);\n          aVar49.mbcset = aVar45.mbcset;\n          if (rVar21 == _REG_NOERROR) {\n            aVar46.sbcset = (re_bitset_ptr_t)(*(int *)(puVar62 + 0x23b40) + -0x5be4);\n            rVar21 = postorder(*(bin_tree_t **)(aVar45.idx + 0x34),\n                               (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar46.sbcset,\n                               aVar45.sbcset);\n            if (rVar21 == _REG_NOERROR) {\n              preorder(*(bin_tree_t **)(aVar45.idx + 0x34),\n                       (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)\n                       (*(int *)(puVar62 + 0x23abc) + 0x61b4),aVar45.sbcset);\n              aVar46.sbcset = (re_bitset_ptr_t)(*(int *)(puVar62 + 0x23b40) + -0x4614);\n              rVar21 = preorder(*(bin_tree_t **)(aVar45.idx + 0x34),\n                                (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar46.sbcset,\n                                aVar45.sbcset);\n              if (rVar21 == _REG_NOERROR) {\n                uVar60 = 0;\n                iVar55 = *(int *)(puVar62 + 0x23b40);\n                aVar56.sbcset = (re_bitset_ptr_t)0x0;\nLAB_00056744:\n                if ((re_dfa_t *)(aVar45.mbcset)->range_ends != (re_dfa_t *)aVar56.sbcset) {\nLAB_00056750:\n                  if (((re_node_set *)(aVar45.mbcset)->ncoll_syms)[aVar56.idx].nelem == 0) {\n                    aVar46.mbcset = aVar45.mbcset;\n                    aVar49 = aVar56;\n                    rVar21 = (*(code *)(iVar55 + -0x561c))\n                                       (&rStack_204,aVar45.sbcset,aVar56.sbcset,1);\n                    if (rVar21 != _REG_NOERROR) goto LAB_00056168;\n                    if (((re_node_set *)(aVar45.mbcset)->ncoll_syms)[aVar56.idx].nelem == 0) {\n                      (**(code **)(puVar62 + 0x23dc0))(rStack_204.elems);\n                      uVar60 = 1;\n                    }\n                  }\n                  aVar56.sbcset =\n                       (re_bitset_ptr_t)\n                       ((int)&((re_string_t *)&(aVar56.mbcset)->mbchars)->raw_mbs + 1);\n                  goto LAB_00056744;\n                }\n                if (uVar60 != 0) {\n                  uVar60 = 0;\n                  aVar56.sbcset = (re_bitset_ptr_t)0x0;\n                  goto LAB_00056750;\n                }\n                if ((((((re_node_set *)&(preg_00.mbcset)->nequiv_classes)->alloc & 0x8000000) == 0)\n                    && ((re_node_set *)(preg_00.mbcset)->ncoll_syms != (re_node_set *)0x0)) &&\n                   (*(char *)(aVar45.idx + 0x58) < '\0')) {\n                  pwVar57 = (wint_t *)(aVar45.mbcset)->range_ends;\n                }\n                else {\n                  if (*(Idx *)(aVar45.idx + 0x4c) == 0) goto LAB_000568f0;\n                  pwVar57 = (wint_t *)(aVar45.mbcset)->range_ends;\n                }\n                iVar55 = (**(code **)(puVar62 + 0x23cf0))((int)pwVar57 * 0xc);\n                ((re_node_set *)&(aVar45.mbcset)->nequiv_classes)->alloc = iVar55;\n                if (iVar55 == 0) {\n                  rVar21 = _REG_ESPACE;\n                  goto LAB_00056168;\n                }\n                if (pwVar57 != (wint_t *)0x0) {\n                  iVar55 = 0;\n                  uVar26 = 0;\n                  do {\n                    puVar32 = (undefined1 *)\n                              (((re_node_set *)&(aVar45.mbcset)->nequiv_classes)->alloc + iVar55);\n                    *puVar32 = 0;\n                    puVar32[1] = 0;\n                    puVar32[2] = 0;\n                    puVar32[3] = 0;\n                    puVar32[4] = 0;\n                    puVar32[5] = 0;\n                    puVar32[6] = 0;\n                    puVar32[7] = 0;\n                    puVar32[8] = 0;\n                    puVar32[9] = 0;\n                    puVar32[10] = 0;\n                    puVar32[0xb] = 0;\n                    uVar26 = uVar26 + 1;\n                    iVar55 = iVar55 + 0xc;\n                  } while (uVar26 < (aVar45.mbcset)->range_ends);\n                  iVar55 = *(int *)(puVar62 + 0x23abc);\n                  if ((wint_t *)(aVar45.mbcset)->range_ends != (wint_t *)0x0) {\n                    iVar61 = 0;\n                    aStack_218.sbcset = (re_bitset_ptr_t)0x0;\n                    do {\n                      piVar38 = *(int **)((int)&((re_node_set *)(aVar45.mbcset)->ncoll_syms)->elems\n                                         + iVar61);\n                      if (0 < *(int *)((int)&((re_node_set *)(aVar45.mbcset)->ncoll_syms)->nelem +\n                                      iVar61)) {\n                        iVar58 = 0;\n                        do {\n                          aVar46 = aStack_218;\n                          iVar33 = (*(code *)(iVar55 + 0x6e30))\n                                             (((re_node_set *)&(aVar45.mbcset)->nequiv_classes)->\n                                              alloc + *piVar38 * 0xc);\n                          rVar21 = _REG_ESPACE;\n                          if (iVar33 == 0) goto LAB_00056168;\n                          iVar58 = iVar58 + 1;\n                          piVar38 = piVar38 + 1;\n                        } while (iVar58 < *(int *)((int)&((re_node_set *)(aVar45.mbcset)->ncoll_syms\n                                                         )->nelem + iVar61));\n                      }\n                      aStack_218.sbcset =\n                           (re_bitset_ptr_t)\n                           ((int)&((re_string_t *)&(aStack_218.mbcset)->mbchars)->raw_mbs + 1);\n                      iVar61 = iVar61 + 0xc;\n                    } while (aStack_218.sbcset < (re_dfa_t *)(aVar45.mbcset)->range_ends);\n                  }\n                }\nLAB_000568f0:\n                rStack_20c = _REG_NOERROR;\n                if ((((*(byte *)(aVar4.idx + 0x58) & 0x20) != 0) && (uVar8 == 0)) &&\n                   (((anon_union_4_2_91654ee9_for___value *)&(preg_00.mbcset)->nmbchars)->__wch == 0\n                   )) {\n                  if ((aVar4.mbcset)->range_ends != (wchar_t *)0x0) {\n                    aVar49.sbcset = (re_bitset_ptr_t)(*(int *)(puVar62 + 0x23754) + 0x6e4c);\n                    if (*(byte *)(*aVar4.sbcset + 4) < 0xd) {\n                    /* WARNING: Could not recover jumptable at 0x00056a60. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      rVar21 = (*(code *)(puVar62 +\n                                         aVar49.sbcset[*(byte *)(*aVar4.sbcset + 4)] + 0x2b71c))();\n                      return rVar21;\n                    }\n                    (**(code **)(puVar62 + 0x23bc4))(0);\n                    if (uVar60 != 0) {\n                      aVar49.idx = (Idx)&DAT_00000007;\n                      uVar8 = 0;\n                      do {\n                        prVar53 = (re_token_t *)(aVar4.mbcset)->mbchars + uVar8;\n                        if (prVar53->field_0x4 == '\x01') {\n                          if ((char)(prVar53->opr).c < '\0') {\n                            *(uint *)&prVar53->field_0x4 = *(uint *)&prVar53->field_0x4 & 0xfffffbff\n                            ;\n                          }\n                        }\n                        else if (prVar53->field_0x4 == '\x05') {\n                          prVar53->field_0x4 = 7;\n                        }\n                        uVar8 = uVar8 + 1;\n                      } while (uVar8 < (aVar4.mbcset)->range_ends);\n                    }\n                  }\n                  *(int *)(aVar4.idx + 0x5c) = 1;\n                  if (0 < *(Idx *)(aVar4.idx + 0x4c)) {\n                    uVar60 = 1;\n                  }\n                  *(byte *)(aVar4.idx + 0x58) =\n                       *(byte *)(aVar4.idx + 0x58) & 0x9f | (byte)((uVar60 & 1) << 6);\n                }\n                iVar55 = (*(bin_tree_t **)(aVar4.idx + 0x34))->first->node_idx;\n                *(int *)(aVar4.idx + 0x48) = iVar55;\n                aVar46.sbcset =\n                     (re_bitset_ptr_t)((re_node_set *)(aVar4.mbcset)->ncoll_syms + iVar55);\n                rVar34 = re_node_set_init_copy(&rStack_204,(re_node_set *)aVar46.mbcset);\n                rVar21 = rVar34;\n                rStack_208 = rVar34;\n                if (rVar34 == _REG_NOERROR) {\n                  if ((0 < *(Idx *)(aVar4.idx + 0x4c)) && (_REG_NOERROR < rStack_204.nelem)) {\n                    iVar55 = *(int *)(puVar62 + 0x23abc);\n                    iVar61 = *(int *)(puVar62 + 0x23abc);\n                    rVar21 = _REG_NOERROR;\n                    do {\n                      aVar49.sbcset =\n                           (re_bitset_ptr_t)\n                           ((re_token_t *)(aVar4.mbcset)->mbchars + rStack_204.elems[rVar21]);\n                      if (*(char *)&((re_node_set *)&(aVar49.mbcset)->range_starts)->alloc == '\x04'\n                         ) {\n                        rVar48 = _REG_NOERROR;\n                        piVar38 = rStack_204.elems;\n                        if (rStack_204.nelem < _REG_NOMATCH) {\nLAB_00056b8c:\n                          if (rStack_204.nelem != rVar48) {\n                            iVar33 = *((re_node_set *)(aVar4.mbcset)->nmbchars)\n                                      [rStack_204.elems[rVar21]].elems;\n                            iVar58 = (*(code *)(iVar55 + 0x5ea8))(&rStack_204,iVar33);\n                            if (iVar58 == 0) {\n                              aVar46.sbcset =\n                                   (re_bitset_ptr_t)\n                                   ((re_node_set *)(aVar4.mbcset)->ncoll_syms + iVar33);\n                              rVar21 = (*(code *)(iVar61 + 0x7f1c))(&rStack_204);\n                              if (rVar21 != _REG_NOERROR) goto LAB_00056cb8;\n                            }\n                          }\n                        }\n                        else {\n                          do {\n                            prVar53 = (re_token_t *)(aVar4.mbcset)->mbchars + *piVar38;\n                            if ((prVar53->field_0x4 == '\t') &&\n                               ((prVar53->opr).sbcset == (re_bitset_ptr_t)*aVar49.sbcset))\n                            goto LAB_00056b8c;\n                            rVar48 = rVar48 + _REG_NOMATCH;\n                            piVar38 = piVar38 + 1;\n                          } while (rStack_204.nelem != rVar48);\n                        }\n                      }\n                      rVar21 = rVar21 + _REG_NOMATCH;\n                    } while (rVar21 < rStack_204.nelem);\n                  }\n                  aVar49.sbcset = (re_bitset_ptr_t)&rStack_204;\n                  aVar46 = aVar4;\n                  prVar35 = re_acquire_state_context\n                                      (&rStack_208,(re_dfa_t *)aVar4.mbcset,\n                                       (re_node_set *)aVar49.mbcset,0);\n                  (aVar4.mbcset)->nchar_classes = (Idx)prVar35;\n                  rVar21 = rStack_208;\n                  if (prVar35 != (re_dfastate_t *)0x0) {\n                    if ((prVar35->field_0x34 & 1) == 0) {\n                      *(re_dfastate_t **)(aVar4.idx + 0x30) = prVar35;\n                      *(re_dfastate_t **)(aVar4.idx + 0x2c) = prVar35;\n                      *(re_dfastate_t **)(aVar4.idx + 0x28) = prVar35;\n                    }\n                    else {\n                      aVar49.sbcset = (re_bitset_ptr_t)&rStack_204;\n                      prVar35 = re_acquire_state_context\n                                          (&rStack_208,(re_dfa_t *)aVar4.mbcset,\n                                           (re_node_set *)aVar49.mbcset,1);\n                      *(re_dfastate_t **)(aVar4.idx + 0x28) = prVar35;\n                      prVar35 = re_acquire_state_context\n                                          (&rStack_208,(re_dfa_t *)aVar4.mbcset,\n                                           (re_node_set *)aVar49.mbcset,2);\n                      *(re_dfastate_t **)(aVar4.idx + 0x2c) = prVar35;\n                      aVar46 = aVar4;\n                      prVar35 = re_acquire_state_context\n                                          (&rStack_208,(re_dfa_t *)aVar4.mbcset,\n                                           (re_node_set *)aVar49.mbcset,6);\n                      *(re_dfastate_t **)(aVar4.idx + 0x30) = prVar35;\n                      rVar21 = rStack_208;\n                      if (((*(re_dfastate_t **)(aVar4.idx + 0x28) == (re_dfastate_t *)0x0) ||\n                          (*(re_dfastate_t **)(aVar4.idx + 0x2c) == (re_dfastate_t *)0x0)) ||\n                         (prVar35 == (re_dfastate_t *)0x0)) goto LAB_00056cb8;\n                    }\n                    (**(code **)(puVar62 + 0x23dc0))(rStack_204.elems);\n                    rVar21 = rVar34;\n                  }\n                }\nLAB_00056cb8:\n                rStack_20c = rVar21;\n                free_workarea_compile((regex_t *)preg_00.mbcset);\n                re_string_destruct((re_string_t *)&aStack_1f8);\n                rVar21 = rStack_20c;\n                if (rStack_20c != _REG_NOERROR) {\n                  if (*(int *)(puVar62 + 0x23c78) != 0) {\n                    (**(code **)(puVar62 + 0x23df0))((pthread_mutex_t *)(aVar4.idx + 0x88));\n                  }\n                  free_dfa_content((re_dfa_t *)aVar4.mbcset);\n                  *preg_00.sbcset = 0;\n                  ((re_node_set *)&(preg_00.mbcset)->range_starts)->alloc = 0;\n                  rVar21 = rStack_20c;\n                }\n                goto LAB_00056cfc;\n              }\n            }\n          }\n        }\n      }\n      else {\n        aVar49.sbcset = (re_bitset_ptr_t)0x0;\n        if ((re_dfa_t *)aVar45.sbcset != (re_dfa_t *)0x0) {\n          aVar56.mbcset =\n               (re_charset_t *)create_tree(prVar59,(bin_tree_t *)0x0,(bin_tree_t *)0x0,END_OF_RE);\n          goto LAB_000564b0;\n        }\nLAB_000566f4:\n        *(bin_tree_t **)(aVar4.idx + 0x34) = (bin_tree_t *)0x0;\n        rVar21 = rStack_20c;\n      }\nLAB_00056168:\n      rStack_20c = rVar21;\n      free_workarea_compile((regex_t *)preg_00.mbcset);\n      re_string_destruct((re_string_t *)&aStack_1f8);\n      if (*(int *)(puVar62 + 0x23c78) != 0) {\n        (**(code **)(puVar62 + 0x23df0))((pthread_mutex_t *)(aVar4.idx + 0x88));\n      }\n      free_dfa_content((re_dfa_t *)aVar4.mbcset);\n      *preg_00.sbcset = 0;\n      ((re_node_set *)&(preg_00.mbcset)->range_starts)->alloc = 0;\n      rVar21 = rStack_20c;\n      goto LAB_00056cfc;\n    }\n    aVar46.sbcset = (re_bitset_ptr_t)0x0;\n    iVar55 = (**(code **)(puVar62 + 0x23d98))((pthread_mutex_t *)(aVar4.idx + 0x88));\n    if (iVar55 != 0) goto LAB_00056e5c;\n    if (rStack_20c == _REG_NOERROR) goto LAB_00056054;\n  }" { (expression_statement "(aVar4.mbcset)->range_starts = pwVar44;" (assignment_expression "(aVar4.mbcset)->range_starts = pwVar44" (field_expression "(aVar4.mbcset)->range_starts" (parenthesized_expression "(aVar4.mbcset)" ( (field_expression "aVar4.mbcset" identifier . field_identifier) )) -> field_identifier) = identifier) ;) (expression_statement "bVar22 = (**(code **)(puVar62 + 0x23cf0))((int)pwVar44 * 8);" (assignment_expression "bVar22 = (**(code **)(puVar62 + 0x23cf0))((int)pwVar44 * 8)" identifier = (call_expression "(**(code **)(puVar62 + 0x23cf0))((int)pwVar44 * 8)" (parenthesized_expression "(**(code **)(puVar62 + 0x23cf0))" ( (pointer_expression "**(code **)(puVar62 + 0x23cf0)" * (pointer_expression "*(code **)(puVar62 + 0x23cf0)" * (cast_expression "(code **)(puVar62 + 0x23cf0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar62 + 0x23cf0)" ( (binary_expression "puVar62 + 0x23cf0" identifier + number_literal) ))))) )) (argument_list "((int)pwVar44 * 8)" ( (binary_expression "(int)pwVar44 * 8" (cast_expression "(int)pwVar44" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) )))) ;) (expression_statement "*aVar4.sbcset = bVar22;" (assignment_expression "*aVar4.sbcset = bVar22" (pointer_expression "*aVar4.sbcset" * (field_expression "aVar4.sbcset" identifier . field_identifier)) = identifier) ;) (if_statement "if ((re_dfa_t *)preg == (re_dfa_t *)0x0) {\n      aVar56.idx = 1;\n    }\n    else {\n      aVar56.idx = 1;\n      do {\n        aVar56.ctx_type = aVar56.ctx_type << 1;\n      } while (aVar56.sbcset <= preg);\n    }" if (parenthesized_expression "((re_dfa_t *)preg == (re_dfa_t *)0x0)" ( (binary_expression "(re_dfa_t *)preg == (re_dfa_t *)0x0" (cast_expression "(re_dfa_t *)preg" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) == (cast_expression "(re_dfa_t *)0x0" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      aVar56.idx = 1;\n    }" { (expression_statement "aVar56.idx = 1;" (assignment_expression "aVar56.idx = 1" (field_expression "aVar56.idx" identifier . field_identifier) = number_literal) ;) }) (else_clause "else {\n      aVar56.idx = 1;\n      do {\n        aVar56.ctx_type = aVar56.ctx_type << 1;\n      } while (aVar56.sbcset <= preg);\n    }" else (compound_statement "{\n      aVar56.idx = 1;\n      do {\n        aVar56.ctx_type = aVar56.ctx_type << 1;\n      } while (aVar56.sbcset <= preg);\n    }" { (expression_statement "aVar56.idx = 1;" (assignment_expression "aVar56.idx = 1" (field_expression "aVar56.idx" identifier . field_identifier) = number_literal) ;) (do_statement "do {\n        aVar56.ctx_type = aVar56.ctx_type << 1;\n      } while (aVar56.sbcset <= preg);" do (compound_statement "{\n        aVar56.ctx_type = aVar56.ctx_type << 1;\n      }" { (expression_statement "aVar56.ctx_type = aVar56.ctx_type << 1;" (assignment_expression "aVar56.ctx_type = aVar56.ctx_type << 1" (field_expression "aVar56.ctx_type" identifier . field_identifier) = (binary_expression "aVar56.ctx_type << 1" (field_expression "aVar56.ctx_type" identifier . field_identifier) << number_literal)) ;) }) while (parenthesized_expression "(aVar56.sbcset <= preg)" ( (binary_expression "aVar56.sbcset <= preg" (field_expression "aVar56.sbcset" identifier . field_identifier) <= identifier) )) ;) }))) (expression_statement "aVar46 = aVar56;" (assignment_expression "aVar46 = aVar56" identifier = identifier) ;) (expression_statement "prVar23 = (re_state_table_entry *)(**(code **)(puVar62 + 0x23b8c))(0xc);" (assignment_expression "prVar23 = (re_state_table_entry *)(**(code **)(puVar62 + 0x23b8c))(0xc)" identifier = (cast_expression "(re_state_table_entry *)(**(code **)(puVar62 + 0x23b8c))(0xc)" ( (type_descriptor "re_state_table_entry *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar62 + 0x23b8c))(0xc)" (parenthesized_expression "(**(code **)(puVar62 + 0x23b8c))" ( (pointer_expression "**(code **)(puVar62 + 0x23b8c)" * (pointer_expression "*(code **)(puVar62 + 0x23b8c)" * (cast_expression "(code **)(puVar62 + 0x23b8c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar62 + 0x23b8c)" ( (binary_expression "puVar62 + 0x23b8c" identifier + number_literal) ))))) )) (argument_list "(0xc)" ( number_literal ))))) ;) (expression_statement "(aVar4.mbcset)->nranges = (Idx)prVar23;" (assignment_expression "(aVar4.mbcset)->nranges = (Idx)prVar23" (field_expression "(aVar4.mbcset)->nranges" (parenthesized_expression "(aVar4.mbcset)" ( (field_expression "aVar4.mbcset" identifier . field_identifier) )) -> field_identifier) = (cast_expression "(Idx)prVar23" ( (type_descriptor "Idx" type_identifier) ) identifier)) ;) (expression_statement "*(undefined1 **)(aVar4.idx + 0x44) = (undefined1 *)(aVar56.idx + -1);" (assignment_expression "*(undefined1 **)(aVar4.idx + 0x44) = (undefined1 *)(aVar56.idx + -1)" (pointer_expression "*(undefined1 **)(aVar4.idx + 0x44)" * (cast_expression "(undefined1 **)(aVar4.idx + 0x44)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(aVar4.idx + 0x44)" ( (binary_expression "aVar4.idx + 0x44" (field_expression "aVar4.idx" identifier . field_identifier) + number_literal) )))) = (cast_expression "(undefined1 *)(aVar56.idx + -1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(aVar56.idx + -1)" ( (binary_expression "aVar56.idx + -1" (field_expression "aVar56.idx" identifier . field_identifier) + number_literal) )))) ;) (expression_statement "iVar55 = (**(code **)(puVar62 + 0x23d2c))();" (assignment_expression "iVar55 = (**(code **)(puVar62 + 0x23d2c))()" identifier = (call_expression "(**(code **)(puVar62 + 0x23d2c))()" (parenthesized_expression "(**(code **)(puVar62 + 0x23d2c))" ( (pointer_expression "**(code **)(puVar62 + 0x23d2c)" * (pointer_expression "*(code **)(puVar62 + 0x23d2c)" * (cast_expression "(code **)(puVar62 + 0x23d2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar62 + 0x23d2c)" ( (binary_expression "puVar62 + 0x23d2c" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "*(int *)(aVar4.idx + 0x5c) = iVar55;" (assignment_expression "*(int *)(aVar4.idx + 0x5c) = iVar55" (pointer_expression "*(int *)(aVar4.idx + 0x5c)" * (cast_expression "(int *)(aVar4.idx + 0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(aVar4.idx + 0x5c)" ( (binary_expression "aVar4.idx + 0x5c" (field_expression "aVar4.idx" identifier . field_identifier) + number_literal) )))) = identifier) ;) (expression_statement "pbVar24 = (byte *)(**(code **)(puVar62 + 0x23c2c))(0xe);" (assignment_expression "pbVar24 = (byte *)(**(code **)(puVar62 + 0x23c2c))(0xe)" identifier = (cast_expression "(byte *)(**(code **)(puVar62 + 0x23c2c))(0xe)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar62 + 0x23c2c))(0xe)" (parenthesized_expression "(**(code **)(puVar62 + 0x23c2c))" ( (pointer_expression "**(code **)(puVar62 + 0x23c2c)" * (pointer_expression "*(code **)(puVar62 + 0x23c2c)" * (cast_expression "(code **)(puVar62 + 0x23c2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar62 + 0x23c2c)" ( (binary_expression "puVar62 + 0x23c2c" identifier + number_literal) ))))) )) (argument_list "(0xe)" ( number_literal ))))) ;) (if_statement "if ((((*pbVar24 & 0xdf) == 0x55) && ((pbVar24[1] & 0xdf) == 0x54)) &&\n       (aVar46.idx = 4, (pbVar24[2] & 0xdf) == 0x46)) {\n      iVar55 = 3;\n      if (pbVar24[3] == 0x2d) {\n        iVar55 = 4;\n      }\n      aVar46.sbcset = (re_bitset_ptr_t)(*(int *)(puVar62 + 0x23754) + 0x71b4);\n      iVar55 = (**(code **)(puVar62 + 0x23dfc))(pbVar24 + iVar55);\n      if (iVar55 == 0) {\n        *(byte *)(aVar4.idx + 0x58) = *(byte *)(aVar4.idx + 0x58) & 0xdf | 0x20;\n      }\n    }" if (parenthesized_expression "((((*pbVar24 & 0xdf) == 0x55) && ((pbVar24[1] & 0xdf) == 0x54)) &&\n       (aVar46.idx = 4, (pbVar24[2] & 0xdf) == 0x46))" ( (binary_expression "(((*pbVar24 & 0xdf) == 0x55) && ((pbVar24[1] & 0xdf) == 0x54)) &&\n       (aVar46.idx = 4, (pbVar24[2] & 0xdf) == 0x46)" (parenthesized_expression "(((*pbVar24 & 0xdf) == 0x55) && ((pbVar24[1] & 0xdf) == 0x54))" ( (binary_expression "((*pbVar24 & 0xdf) == 0x55) && ((pbVar24[1] & 0xdf) == 0x54)" (parenthesized_expression "((*pbVar24 & 0xdf) == 0x55)" ( (binary_expression "(*pbVar24 & 0xdf) == 0x55" (parenthesized_expression "(*pbVar24 & 0xdf)" ( (binary_expression "*pbVar24 & 0xdf" (pointer_expression "*pbVar24" * identifier) & number_literal) )) == number_literal) )) && (parenthesized_expression "((pbVar24[1] & 0xdf) == 0x54)" ( (binary_expression "(pbVar24[1] & 0xdf) == 0x54" (parenthesized_expression "(pbVar24[1] & 0xdf)" ( (binary_expression "pbVar24[1] & 0xdf" (subscript_expression "pbVar24[1]" identifier [ number_literal ]) & number_literal) )) == number_literal) ))) )) && (parenthesized_expression "(aVar46.idx = 4, (pbVar24[2] & 0xdf) == 0x46)" ( (comma_expression "aVar46.idx = 4, (pbVar24[2] & 0xdf) == 0x46" (assignment_expression "aVar46.idx = 4" (field_expression "aVar46.idx" identifier . field_identifier) = number_literal) , (binary_expression "(pbVar24[2] & 0xdf) == 0x46" (parenthesized_expression "(pbVar24[2] & 0xdf)" ( (binary_expression "pbVar24[2] & 0xdf" (subscript_expression "pbVar24[2]" identifier [ number_literal ]) & number_literal) )) == number_literal)) ))) )) (compound_statement "{\n      iVar55 = 3;\n      if (pbVar24[3] == 0x2d) {\n        iVar55 = 4;\n      }\n      aVar46.sbcset = (re_bitset_ptr_t)(*(int *)(puVar62 + 0x23754) + 0x71b4);\n      iVar55 = (**(code **)(puVar62 + 0x23dfc))(pbVar24 + iVar55);\n      if (iVar55 == 0) {\n        *(byte *)(aVar4.idx + 0x58) = *(byte *)(aVar4.idx + 0x58) & 0xdf | 0x20;\n      }\n    }" { (expression_statement "iVar55 = 3;" (assignment_expression "iVar55 = 3" identifier = number_literal) ;) (if_statement "if (pbVar24[3] == 0x2d) {\n        iVar55 = 4;\n      }" if (parenthesized_expression "(pbVar24[3] == 0x2d)" ( (binary_expression "pbVar24[3] == 0x2d" (subscript_expression "pbVar24[3]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n        iVar55 = 4;\n      }" { (expression_statement "iVar55 = 4;" (assignment_expression "iVar55 = 4" identifier = number_literal) ;) })) (expression_statement "aVar46.sbcset = (re_bitset_ptr_t)(*(int *)(puVar62 + 0x23754) + 0x71b4);" (assignment_expression "aVar46.sbcset = (re_bitset_ptr_t)(*(int *)(puVar62 + 0x23754) + 0x71b4)" (field_expression "aVar46.sbcset" identifier . field_identifier) = (call_expression "(re_bitset_ptr_t)(*(int *)(puVar62 + 0x23754) + 0x71b4)" (parenthesized_expression "(re_bitset_ptr_t)" ( identifier )) (argument_list "(*(int *)(puVar62 + 0x23754) + 0x71b4)" ( (binary_expression "*(int *)(puVar62 + 0x23754) + 0x71b4" (pointer_expression "*(int *)(puVar62 + 0x23754)" * (cast_expression "(int *)(puVar62 + 0x23754)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar62 + 0x23754)" ( (binary_expression "puVar62 + 0x23754" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "iVar55 = (**(code **)(puVar62 + 0x23dfc))(pbVar24 + iVar55);" (assignment_expression "iVar55 = (**(code **)(puVar62 + 0x23dfc))(pbVar24 + iVar55)" identifier = (call_expression "(**(code **)(puVar62 + 0x23dfc))(pbVar24 + iVar55)" (parenthesized_expression "(**(code **)(puVar62 + 0x23dfc))" ( (pointer_expression "**(code **)(puVar62 + 0x23dfc)" * (pointer_expression "*(code **)(puVar62 + 0x23dfc)" * (cast_expression "(code **)(puVar62 + 0x23dfc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar62 + 0x23dfc)" ( (binary_expression "puVar62 + 0x23dfc" identifier + number_literal) ))))) )) (argument_list "(pbVar24 + iVar55)" ( (binary_expression "pbVar24 + iVar55" identifier + identifier) )))) ;) (if_statement "if (iVar55 == 0) {\n        *(byte *)(aVar4.idx + 0x58) = *(byte *)(aVar4.idx + 0x58) & 0xdf | 0x20;\n      }" if (parenthesized_expression "(iVar55 == 0)" ( (binary_expression "iVar55 == 0" identifier == number_literal) )) (compound_statement "{\n        *(byte *)(aVar4.idx + 0x58) = *(byte *)(aVar4.idx + 0x58) & 0xdf | 0x20;\n      }" { (expression_statement "*(byte *)(aVar4.idx + 0x58) = *(byte *)(aVar4.idx + 0x58) & 0xdf | 0x20;" (assignment_expression "*(byte *)(aVar4.idx + 0x58) = *(byte *)(aVar4.idx + 0x58) & 0xdf | 0x20" (pointer_expression "*(byte *)(aVar4.idx + 0x58)" * (cast_expression "(byte *)(aVar4.idx + 0x58)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(aVar4.idx + 0x58)" ( (binary_expression "aVar4.idx + 0x58" (field_expression "aVar4.idx" identifier . field_identifier) + number_literal) )))) = (binary_expression "*(byte *)(aVar4.idx + 0x58) & 0xdf | 0x20" (binary_expression "*(byte *)(aVar4.idx + 0x58) & 0xdf" (pointer_expression "*(byte *)(aVar4.idx + 0x58)" * (cast_expression "(byte *)(aVar4.idx + 0x58)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(aVar4.idx + 0x58)" ( (binary_expression "aVar4.idx + 0x58" (field_expression "aVar4.idx" identifier . field_identifier) + number_literal) )))) & number_literal) | number_literal)) ;) })) })) (expression_statement "*(byte *)(aVar4.idx + 0x58) = *(byte *)(aVar4.idx + 0x58) & 0xef;" (assignment_expression "*(byte *)(aVar4.idx + 0x58) = *(byte *)(aVar4.idx + 0x58) & 0xef" (pointer_expression "*(byte *)(aVar4.idx + 0x58)" * (cast_expression "(byte *)(aVar4.idx + 0x58)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(aVar4.idx + 0x58)" ( (binary_expression "aVar4.idx + 0x58" (field_expression "aVar4.idx" identifier . field_identifier) + number_literal) )))) = (binary_expression "*(byte *)(aVar4.idx + 0x58) & 0xef" (pointer_expression "*(byte *)(aVar4.idx + 0x58)" * (cast_expression "(byte *)(aVar4.idx + 0x58)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(aVar4.idx + 0x58)" ( (binary_expression "aVar4.idx + 0x58" (field_expression "aVar4.idx" identifier . field_identifier) + number_literal) )))) & number_literal)) ;) (if_statement "if (1 < *(int *)(aVar4.idx + 0x5c)) {\n      if ((*(byte *)(aVar4.idx + 0x58) & 0x20) == 0) {\n        aVar46.idx = 1;\n        pbVar25 = (re_bitset_ptr_t)(**(code **)(puVar62 + 0x23b8c))(0x20);\n        *(re_bitset_ptr_t *)(aVar4.idx + 0x3c) = pbVar25;\n        if (pbVar25 == (re_bitset_ptr_t)0x0) goto LAB_00056e5c;\n        iVar55 = 0;\n        do {\n          uVar8 = iVar55 << 3;\n          uVar60 = 0;\n          do {\n            uVar26 = (**(code **)(puVar62 + 0x23c88))(uVar8);\n            if (uVar26 != 0xffffffff) {\n              prVar42 = (re_context_type *)((int)*(re_bitset_ptr_t *)(aVar4.idx + 0x3c) + iVar55);\n              aVar46.ctx_type = *prVar42;\n              *prVar42 = aVar46.ctx_type | 1 << (uVar60 & 0x1f);\n            }\n            if (((uVar8 & 0xffffff80) == 0) && (uVar26 != uVar8)) {\n              *(byte *)(aVar4.idx + 0x58) = *(byte *)(aVar4.idx + 0x58) & 0xef | 0x10;\n            }\n            uVar60 = uVar60 + 1;\n            uVar8 = uVar8 + 1;\n          } while (uVar60 != 0x20);\n          iVar55 = iVar55 + 4;\n        } while (iVar55 != 0x20);\n      }\n      else {\n        *(re_bitset_ptr_t *)(aVar4.idx + 0x3c) =\n             (re_bitset_ptr_t)(*(int *)(puVar62 + 0x23754) + 0x6ee4);\n      }\n    }" if (parenthesized_expression "(1 < *(int *)(aVar4.idx + 0x5c))" ( (binary_expression "1 < *(int *)(aVar4.idx + 0x5c)" number_literal < (pointer_expression "*(int *)(aVar4.idx + 0x5c)" * (cast_expression "(int *)(aVar4.idx + 0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(aVar4.idx + 0x5c)" ( (binary_expression "aVar4.idx + 0x5c" (field_expression "aVar4.idx" identifier . field_identifier) + number_literal) ))))) )) (compound_statement "{\n      if ((*(byte *)(aVar4.idx + 0x58) & 0x20) == 0) {\n        aVar46.idx = 1;\n        pbVar25 = (re_bitset_ptr_t)(**(code **)(puVar62 + 0x23b8c))(0x20);\n        *(re_bitset_ptr_t *)(aVar4.idx + 0x3c) = pbVar25;\n        if (pbVar25 == (re_bitset_ptr_t)0x0) goto LAB_00056e5c;\n        iVar55 = 0;\n        do {\n          uVar8 = iVar55 << 3;\n          uVar60 = 0;\n          do {\n            uVar26 = (**(code **)(puVar62 + 0x23c88))(uVar8);\n            if (uVar26 != 0xffffffff) {\n              prVar42 = (re_context_type *)((int)*(re_bitset_ptr_t *)(aVar4.idx + 0x3c) + iVar55);\n              aVar46.ctx_type = *prVar42;\n              *prVar42 = aVar46.ctx_type | 1 << (uVar60 & 0x1f);\n            }\n            if (((uVar8 & 0xffffff80) == 0) && (uVar26 != uVar8)) {\n              *(byte *)(aVar4.idx + 0x58) = *(byte *)(aVar4.idx + 0x58) & 0xef | 0x10;\n            }\n            uVar60 = uVar60 + 1;\n            uVar8 = uVar8 + 1;\n          } while (uVar60 != 0x20);\n          iVar55 = iVar55 + 4;\n        } while (iVar55 != 0x20);\n      }\n      else {\n        *(re_bitset_ptr_t *)(aVar4.idx + 0x3c) =\n             (re_bitset_ptr_t)(*(int *)(puVar62 + 0x23754) + 0x6ee4);\n      }\n    }" { (if_statement "if ((*(byte *)(aVar4.idx + 0x58) & 0x20) == 0) {\n        aVar46.idx = 1;\n        pbVar25 = (re_bitset_ptr_t)(**(code **)(puVar62 + 0x23b8c))(0x20);\n        *(re_bitset_ptr_t *)(aVar4.idx + 0x3c) = pbVar25;\n        if (pbVar25 == (re_bitset_ptr_t)0x0) goto LAB_00056e5c;\n        iVar55 = 0;\n        do {\n          uVar8 = iVar55 << 3;\n          uVar60 = 0;\n          do {\n            uVar26 = (**(code **)(puVar62 + 0x23c88))(uVar8);\n            if (uVar26 != 0xffffffff) {\n              prVar42 = (re_context_type *)((int)*(re_bitset_ptr_t *)(aVar4.idx + 0x3c) + iVar55);\n              aVar46.ctx_type = *prVar42;\n              *prVar42 = aVar46.ctx_type | 1 << (uVar60 & 0x1f);\n            }\n            if (((uVar8 & 0xffffff80) == 0) && (uVar26 != uVar8)) {\n              *(byte *)(aVar4.idx + 0x58) = *(byte *)(aVar4.idx + 0x58) & 0xef | 0x10;\n            }\n            uVar60 = uVar60 + 1;\n            uVar8 = uVar8 + 1;\n          } while (uVar60 != 0x20);\n          iVar55 = iVar55 + 4;\n        } while (iVar55 != 0x20);\n      }\n      else {\n        *(re_bitset_ptr_t *)(aVar4.idx + 0x3c) =\n             (re_bitset_ptr_t)(*(int *)(puVar62 + 0x23754) + 0x6ee4);\n      }" if (parenthesized_expression "((*(byte *)(aVar4.idx + 0x58) & 0x20) == 0)" ( (binary_expression "(*(byte *)(aVar4.idx + 0x58) & 0x20) == 0" (parenthesized_expression "(*(byte *)(aVar4.idx + 0x58) & 0x20)" ( (binary_expression "*(byte *)(aVar4.idx + 0x58) & 0x20" (pointer_expression "*(byte *)(aVar4.idx + 0x58)" * (cast_expression "(byte *)(aVar4.idx + 0x58)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(aVar4.idx + 0x58)" ( (binary_expression "aVar4.idx + 0x58" (field_expression "aVar4.idx" identifier . field_identifier) + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n        aVar46.idx = 1;\n        pbVar25 = (re_bitset_ptr_t)(**(code **)(puVar62 + 0x23b8c))(0x20);\n        *(re_bitset_ptr_t *)(aVar4.idx + 0x3c) = pbVar25;\n        if (pbVar25 == (re_bitset_ptr_t)0x0) goto LAB_00056e5c;\n        iVar55 = 0;\n        do {\n          uVar8 = iVar55 << 3;\n          uVar60 = 0;\n          do {\n            uVar26 = (**(code **)(puVar62 + 0x23c88))(uVar8);\n            if (uVar26 != 0xffffffff) {\n              prVar42 = (re_context_type *)((int)*(re_bitset_ptr_t *)(aVar4.idx + 0x3c) + iVar55);\n              aVar46.ctx_type = *prVar42;\n              *prVar42 = aVar46.ctx_type | 1 << (uVar60 & 0x1f);\n            }\n            if (((uVar8 & 0xffffff80) == 0) && (uVar26 != uVar8)) {\n              *(byte *)(aVar4.idx + 0x58) = *(byte *)(aVar4.idx + 0x58) & 0xef | 0x10;\n            }\n            uVar60 = uVar60 + 1;\n            uVar8 = uVar8 + 1;\n          } while (uVar60 != 0x20);\n          iVar55 = iVar55 + 4;\n        } while (iVar55 != 0x20);\n      }" { (expression_statement "aVar46.idx = 1;" (assignment_expression "aVar46.idx = 1" (field_expression "aVar46.idx" identifier . field_identifier) = number_literal) ;) (expression_statement "pbVar25 = (re_bitset_ptr_t)(**(code **)(puVar62 + 0x23b8c))(0x20);" (assignment_expression "pbVar25 = (re_bitset_ptr_t)(**(code **)(puVar62 + 0x23b8c))(0x20)" identifier = (call_expression "(re_bitset_ptr_t)(**(code **)(puVar62 + 0x23b8c))(0x20)" (call_expression "(re_bitset_ptr_t)(**(code **)(puVar62 + 0x23b8c))" (parenthesized_expression "(re_bitset_ptr_t)" ( identifier )) (argument_list "(**(code **)(puVar62 + 0x23b8c))" ( (pointer_expression "**(code **)(puVar62 + 0x23b8c)" * (pointer_expression "*(code **)(puVar62 + 0x23b8c)" * (cast_expression "(code **)(puVar62 + 0x23b8c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar62 + 0x23b8c)" ( (binary_expression "puVar62 + 0x23b8c" identifier + number_literal) ))))) ))) (argument_list "(0x20)" ( number_literal )))) ;) (expression_statement "*(re_bitset_ptr_t *)(aVar4.idx + 0x3c) = pbVar25;" (assignment_expression "*(re_bitset_ptr_t *)(aVar4.idx + 0x3c) = pbVar25" (pointer_expression "*(re_bitset_ptr_t *)(aVar4.idx + 0x3c)" * (cast_expression "(re_bitset_ptr_t *)(aVar4.idx + 0x3c)" ( (type_descriptor "re_bitset_ptr_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(aVar4.idx + 0x3c)" ( (binary_expression "aVar4.idx + 0x3c" (field_expression "aVar4.idx" identifier . field_identifier) + number_literal) )))) = identifier) ;) (if_statement "if (pbVar25 == (re_bitset_ptr_t)0x0) goto LAB_00056e5c;" if (parenthesized_expression "(pbVar25 == (re_bitset_ptr_t)0x0)" ( (binary_expression "pbVar25 == (re_bitset_ptr_t)0x0" identifier == (cast_expression "(re_bitset_ptr_t)0x0" ( (type_descriptor "re_bitset_ptr_t" type_identifier) ) number_literal)) )) (goto_statement "goto LAB_00056e5c;" goto statement_identifier ;)) (expression_statement "iVar55 = 0;" (assignment_expression "iVar55 = 0" identifier = number_literal) ;) (do_statement "do {\n          uVar8 = iVar55 << 3;\n          uVar60 = 0;\n          do {\n            uVar26 = (**(code **)(puVar62 + 0x23c88))(uVar8);\n            if (uVar26 != 0xffffffff) {\n              prVar42 = (re_context_type *)((int)*(re_bitset_ptr_t *)(aVar4.idx + 0x3c) + iVar55);\n              aVar46.ctx_type = *prVar42;\n              *prVar42 = aVar46.ctx_type | 1 << (uVar60 & 0x1f);\n            }\n            if (((uVar8 & 0xffffff80) == 0) && (uVar26 != uVar8)) {\n              *(byte *)(aVar4.idx + 0x58) = *(byte *)(aVar4.idx + 0x58) & 0xef | 0x10;\n            }\n            uVar60 = uVar60 + 1;\n            uVar8 = uVar8 + 1;\n          } while (uVar60 != 0x20);\n          iVar55 = iVar55 + 4;\n        } while (iVar55 != 0x20);" do (compound_statement "{\n          uVar8 = iVar55 << 3;\n          uVar60 = 0;\n          do {\n            uVar26 = (**(code **)(puVar62 + 0x23c88))(uVar8);\n            if (uVar26 != 0xffffffff) {\n              prVar42 = (re_context_type *)((int)*(re_bitset_ptr_t *)(aVar4.idx + 0x3c) + iVar55);\n              aVar46.ctx_type = *prVar42;\n              *prVar42 = aVar46.ctx_type | 1 << (uVar60 & 0x1f);\n            }\n            if (((uVar8 & 0xffffff80) == 0) && (uVar26 != uVar8)) {\n              *(byte *)(aVar4.idx + 0x58) = *(byte *)(aVar4.idx + 0x58) & 0xef | 0x10;\n            }\n            uVar60 = uVar60 + 1;\n            uVar8 = uVar8 + 1;\n          } while (uVar60 != 0x20);\n          iVar55 = iVar55 + 4;\n        }" { (expression_statement "uVar8 = iVar55 << 3;" (assignment_expression "uVar8 = iVar55 << 3" identifier = (binary_expression "iVar55 << 3" identifier << number_literal)) ;) (expression_statement "uVar60 = 0;" (assignment_expression "uVar60 = 0" identifier = number_literal) ;) (do_statement "do {\n            uVar26 = (**(code **)(puVar62 + 0x23c88))(uVar8);\n            if (uVar26 != 0xffffffff) {\n              prVar42 = (re_context_type *)((int)*(re_bitset_ptr_t *)(aVar4.idx + 0x3c) + iVar55);\n              aVar46.ctx_type = *prVar42;\n              *prVar42 = aVar46.ctx_type | 1 << (uVar60 & 0x1f);\n            }\n            if (((uVar8 & 0xffffff80) == 0) && (uVar26 != uVar8)) {\n              *(byte *)(aVar4.idx + 0x58) = *(byte *)(aVar4.idx + 0x58) & 0xef | 0x10;\n            }\n            uVar60 = uVar60 + 1;\n            uVar8 = uVar8 + 1;\n          } while (uVar60 != 0x20);" do (compound_statement "{\n            uVar26 = (**(code **)(puVar62 + 0x23c88))(uVar8);\n            if (uVar26 != 0xffffffff) {\n              prVar42 = (re_context_type *)((int)*(re_bitset_ptr_t *)(aVar4.idx + 0x3c) + iVar55);\n              aVar46.ctx_type = *prVar42;\n              *prVar42 = aVar46.ctx_type | 1 << (uVar60 & 0x1f);\n            }\n            if (((uVar8 & 0xffffff80) == 0) && (uVar26 != uVar8)) {\n              *(byte *)(aVar4.idx + 0x58) = *(byte *)(aVar4.idx + 0x58) & 0xef | 0x10;\n            }\n            uVar60 = uVar60 + 1;\n            uVar8 = uVar8 + 1;\n          }" { (expression_statement "uVar26 = (**(code **)(puVar62 + 0x23c88))(uVar8);" (assignment_expression "uVar26 = (**(code **)(puVar62 + 0x23c88))(uVar8)" identifier = (call_expression "(**(code **)(puVar62 + 0x23c88))(uVar8)" (parenthesized_expression "(**(code **)(puVar62 + 0x23c88))" ( (pointer_expression "**(code **)(puVar62 + 0x23c88)" * (pointer_expression "*(code **)(puVar62 + 0x23c88)" * (cast_expression "(code **)(puVar62 + 0x23c88)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar62 + 0x23c88)" ( (binary_expression "puVar62 + 0x23c88" identifier + number_literal) ))))) )) (argument_list "(uVar8)" ( identifier )))) ;) (if_statement "if (uVar26 != 0xffffffff) {\n              prVar42 = (re_context_type *)((int)*(re_bitset_ptr_t *)(aVar4.idx + 0x3c) + iVar55);\n              aVar46.ctx_type = *prVar42;\n              *prVar42 = aVar46.ctx_type | 1 << (uVar60 & 0x1f);\n            }" if (parenthesized_expression "(uVar26 != 0xffffffff)" ( (binary_expression "uVar26 != 0xffffffff" identifier != number_literal) )) (compound_statement "{\n              prVar42 = (re_context_type *)((int)*(re_bitset_ptr_t *)(aVar4.idx + 0x3c) + iVar55);\n              aVar46.ctx_type = *prVar42;\n              *prVar42 = aVar46.ctx_type | 1 << (uVar60 & 0x1f);\n            }" { (expression_statement "prVar42 = (re_context_type *)((int)*(re_bitset_ptr_t *)(aVar4.idx + 0x3c) + iVar55);" (assignment_expression "prVar42 = (re_context_type *)((int)*(re_bitset_ptr_t *)(aVar4.idx + 0x3c) + iVar55)" identifier = (cast_expression "(re_context_type *)((int)*(re_bitset_ptr_t *)(aVar4.idx + 0x3c) + iVar55)" ( (type_descriptor "re_context_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)*(re_bitset_ptr_t *)(aVar4.idx + 0x3c) + iVar55)" ( (binary_expression "(int)*(re_bitset_ptr_t *)(aVar4.idx + 0x3c) + iVar55" (cast_expression "(int)*(re_bitset_ptr_t *)(aVar4.idx + 0x3c)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(re_bitset_ptr_t *)(aVar4.idx + 0x3c)" * (cast_expression "(re_bitset_ptr_t *)(aVar4.idx + 0x3c)" ( (type_descriptor "re_bitset_ptr_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(aVar4.idx + 0x3c)" ( (binary_expression "aVar4.idx + 0x3c" (field_expression "aVar4.idx" identifier . field_identifier) + number_literal) ))))) + identifier) )))) ;) (expression_statement "aVar46.ctx_type = *prVar42;" (assignment_expression "aVar46.ctx_type = *prVar42" (field_expression "aVar46.ctx_type" identifier . field_identifier) = (pointer_expression "*prVar42" * identifier)) ;) (expression_statement "*prVar42 = aVar46.ctx_type | 1 << (uVar60 & 0x1f);" (assignment_expression "*prVar42 = aVar46.ctx_type | 1 << (uVar60 & 0x1f)" (pointer_expression "*prVar42" * identifier) = (binary_expression "aVar46.ctx_type | 1 << (uVar60 & 0x1f)" (field_expression "aVar46.ctx_type" identifier . field_identifier) | (binary_expression "1 << (uVar60 & 0x1f)" number_literal << (parenthesized_expression "(uVar60 & 0x1f)" ( (binary_expression "uVar60 & 0x1f" identifier & number_literal) ))))) ;) })) (if_statement "if (((uVar8 & 0xffffff80) == 0) && (uVar26 != uVar8)) {\n              *(byte *)(aVar4.idx + 0x58) = *(byte *)(aVar4.idx + 0x58) & 0xef | 0x10;\n            }" if (parenthesized_expression "(((uVar8 & 0xffffff80) == 0) && (uVar26 != uVar8))" ( (binary_expression "((uVar8 & 0xffffff80) == 0) && (uVar26 != uVar8)" (parenthesized_expression "((uVar8 & 0xffffff80) == 0)" ( (binary_expression "(uVar8 & 0xffffff80) == 0" (parenthesized_expression "(uVar8 & 0xffffff80)" ( (binary_expression "uVar8 & 0xffffff80" identifier & number_literal) )) == number_literal) )) && (parenthesized_expression "(uVar26 != uVar8)" ( (binary_expression "uVar26 != uVar8" identifier != identifier) ))) )) (compound_statement "{\n              *(byte *)(aVar4.idx + 0x58) = *(byte *)(aVar4.idx + 0x58) & 0xef | 0x10;\n            }" { (expression_statement "*(byte *)(aVar4.idx + 0x58) = *(byte *)(aVar4.idx + 0x58) & 0xef | 0x10;" (assignment_expression "*(byte *)(aVar4.idx + 0x58) = *(byte *)(aVar4.idx + 0x58) & 0xef | 0x10" (pointer_expression "*(byte *)(aVar4.idx + 0x58)" * (cast_expression "(byte *)(aVar4.idx + 0x58)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(aVar4.idx + 0x58)" ( (binary_expression "aVar4.idx + 0x58" (field_expression "aVar4.idx" identifier . field_identifier) + number_literal) )))) = (binary_expression "*(byte *)(aVar4.idx + 0x58) & 0xef | 0x10" (binary_expression "*(byte *)(aVar4.idx + 0x58) & 0xef" (pointer_expression "*(byte *)(aVar4.idx + 0x58)" * (cast_expression "(byte *)(aVar4.idx + 0x58)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(aVar4.idx + 0x58)" ( (binary_expression "aVar4.idx + 0x58" (field_expression "aVar4.idx" identifier . field_identifier) + number_literal) )))) & number_literal) | number_literal)) ;) })) (expression_statement "uVar60 = uVar60 + 1;" (assignment_expression "uVar60 = uVar60 + 1" identifier = (binary_expression "uVar60 + 1" identifier + number_literal)) ;) (expression_statement "uVar8 = uVar8 + 1;" (assignment_expression "uVar8 = uVar8 + 1" identifier = (binary_expression "uVar8 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar60 != 0x20)" ( (binary_expression "uVar60 != 0x20" identifier != number_literal) )) ;) (expression_statement "iVar55 = iVar55 + 4;" (assignment_expression "iVar55 = iVar55 + 4" identifier = (binary_expression "iVar55 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar55 != 0x20)" ( (binary_expression "iVar55 != 0x20" identifier != number_literal) )) ;) }) (else_clause "else {\n        *(re_bitset_ptr_t *)(aVar4.idx + 0x3c) =\n             (re_bitset_ptr_t)(*(int *)(puVar62 + 0x23754) + 0x6ee4);\n      }" else (compound_statement "{\n        *(re_bitset_ptr_t *)(aVar4.idx + 0x3c) =\n             (re_bitset_ptr_t)(*(int *)(puVar62 + 0x23754) + 0x6ee4);\n      }" { (expression_statement "*(re_bitset_ptr_t *)(aVar4.idx + 0x3c) =\n             (re_bitset_ptr_t)(*(int *)(puVar62 + 0x23754) + 0x6ee4);" (assignment_expression "*(re_bitset_ptr_t *)(aVar4.idx + 0x3c) =\n             (re_bitset_ptr_t)(*(int *)(puVar62 + 0x23754) + 0x6ee4)" (pointer_expression "*(re_bitset_ptr_t *)(aVar4.idx + 0x3c)" * (cast_expression "(re_bitset_ptr_t *)(aVar4.idx + 0x3c)" ( (type_descriptor "re_bitset_ptr_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(aVar4.idx + 0x3c)" ( (binary_expression "aVar4.idx + 0x3c" (field_expression "aVar4.idx" identifier . field_identifier) + number_literal) )))) = (call_expression "(re_bitset_ptr_t)(*(int *)(puVar62 + 0x23754) + 0x6ee4)" (parenthesized_expression "(re_bitset_ptr_t)" ( identifier )) (argument_list "(*(int *)(puVar62 + 0x23754) + 0x6ee4)" ( (binary_expression "*(int *)(puVar62 + 0x23754) + 0x6ee4" (pointer_expression "*(int *)(puVar62 + 0x23754)" * (cast_expression "(int *)(puVar62 + 0x23754)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar62 + 0x23754)" ( (binary_expression "puVar62 + 0x23754" identifier + number_literal) )))) + number_literal) )))) ;) }))) })) (if_statement "if ((*aVar4.sbcset == 0) ||\n       ((re_state_table_entry *)(aVar4.mbcset)->nranges == (re_state_table_entry *)0x0))\n    goto LAB_00056e5c;" if (parenthesized_expression "((*aVar4.sbcset == 0) ||\n       ((re_state_table_entry *)(aVar4.mbcset)->nranges == (re_state_table_entry *)0x0))" ( (binary_expression "(*aVar4.sbcset == 0) ||\n       ((re_state_table_entry *)(aVar4.mbcset)->nranges == (re_state_table_entry *)0x0)" (parenthesized_expression "(*aVar4.sbcset == 0)" ( (binary_expression "*aVar4.sbcset == 0" (pointer_expression "*aVar4.sbcset" * (field_expression "aVar4.sbcset" identifier . field_identifier)) == number_literal) )) || (parenthesized_expression "((re_state_table_entry *)(aVar4.mbcset)->nranges == (re_state_table_entry *)0x0)" ( (binary_expression "(re_state_table_entry *)(aVar4.mbcset)->nranges == (re_state_table_entry *)0x0" (cast_expression "(re_state_table_entry *)(aVar4.mbcset)->nranges" ( (type_descriptor "re_state_table_entry *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(aVar4.mbcset)->nranges" (parenthesized_expression "(aVar4.mbcset)" ( (field_expression "aVar4.mbcset" identifier . field_identifier) )) -> field_identifier)) == (cast_expression "(re_state_table_entry *)0x0" ( (type_descriptor "re_state_table_entry *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (goto_statement "goto LAB_00056e5c;" goto statement_identifier ;)) (expression_statement "rStack_20c = _REG_NOERROR;" (assignment_expression "rStack_20c = _REG_NOERROR" identifier = identifier) ;) (if_statement "if (*(int *)(puVar62 + 0x23c78) == 0) {\nLAB_00056054:\n      uVar60 = ((anon_union_4_2_91654ee9_for___value *)&(preg_00.mbcset)->nmbchars)->__wch;\n      uVar8 = (uint)prVar51 & 0x400000;\n      bVar36 = uVar8 != 0;\n      aVar49.idx = 0x4c;\n      aVar46.sbcset = (re_bitset_ptr_t)0x0;\n      (**(code **)(puVar62 + 0x23c9c))(aaStack_1f4);\n      cStack_1ad = uVar60 != 0 || bVar36;\n      iStack_1a8 = *(int *)(aVar4.idx + 0x5c);\n      bStack_1af = (byte)((uint)(*(int *)(aVar4.idx + 0x58) << 2) >> 0x1f);\n      bStack_1ae = (byte)((uint)(*(int *)(aVar4.idx + 0x58) << 3) >> 0x1f);\n      aStack_1f8 = aVar45;\n      aStack_1cc = (anon_union_4_5_a39f51ca_for_opr)preg;\n      aStack_1c8 = (anon_union_4_5_a39f51ca_for_opr)preg;\n      aStack_1c4 = (anon_union_4_5_a39f51ca_for_opr)preg;\n      aStack_1c0 = (anon_union_4_5_a39f51ca_for_opr)preg;\n      uStack_1b8 = uVar60;\n      uStack_1b0 = bVar36;\n      if (0 < (int)preg) {\n        aVar46.sbcset = (re_bitset_ptr_t)((int)preg + 1);\n        rVar21 = re_string_realloc_buffers((re_string_t *)&aStack_1f8,aVar46.idx);\n        if (rVar21 == _REG_NOERROR) goto LAB_000560cc;\n        goto LAB_00056168;\n      }\nLAB_000560cc:\n      if (cStack_1ad != '\0') {\n        aVar45 = aaStack_1f4[0];\n      }\n      aaStack_1f4[0] = aVar45;\n      if (uVar8 == 0) {\n        if (*(int *)(aVar4.idx + 0x5c) < 2) {\n          if (uVar60 != 0) {\n            re_string_translate_buffer((re_string_t *)&aStack_1f8);\n          }\n        }\n        else {\n          build_wcs_buffer((re_string_t *)&aStack_1f8);\n        }\n      }\n      else {\n        if (1 < *(int *)(aVar4.idx + 0x5c)) {\n          iVar55 = *(int *)(puVar62 + 0x23abc);\n          do {\n            rVar21 = build_wcs_upper_buffer((re_string_t *)&aStack_1f8);\n            if (rVar21 != _REG_NOERROR) break;\n            if (((int)preg <= iStack_1d8) ||\n               (aVar46.ctx_type = iStack_1d4 << 1,\n               iStack_1dc + *(int *)(aVar4.idx + 0x5c) < iStack_1d4)) goto LAB_000563d0;\n            rVar21 = (*(code *)(iVar55 + 0x6d2c))(&aStack_1f8);\n          } while (rVar21 == _REG_NOERROR);\n          goto LAB_00056168;\n        }\n        build_upper_buffer((re_string_t *)&aStack_1f8);\n      }\nLAB_000563d0:\n      rStack_20c = _REG_NOERROR;\n      (preg_00.mbcset)->ncoll_syms = 0;\n      prVar59 = (re_dfa_t *)((re_string_t *)&(preg_00.mbcset)->mbchars)->raw_mbs;\n      prVar59->syntax = (reg_syntax_t)prVar51;\n      fetch_token((re_token_t *)&rStack_204,(re_string_t *)&aStack_1f8,(uint)prVar51 | 0x800000);\n      aVar46 = preg_00;\n      aVar45.sbcset =\n           (re_bitset_ptr_t)\n           parse_reg_exp((re_string_t *)&aStack_1f8,preg_00.sbcset,(re_token_t *)&rStack_204,\n                         (reg_syntax_t)prVar51,0,&rStack_20c);\n      if (rStack_20c == _REG_NOERROR) {\n        aVar49.sbcset = (re_bitset_ptr_t)0x0;\n        aVar46.sbcset = (re_bitset_ptr_t)0x0;\n        aVar56.mbcset =\n             (re_charset_t *)create_tree(prVar59,(bin_tree_t *)0x0,(bin_tree_t *)0x0,END_OF_RE);\n        aVar39.mbcset = aVar56.mbcset;\n        if ((re_dfa_t *)aVar45.sbcset != (re_dfa_t *)0x0) {\nLAB_000564b0:\n          aVar49 = aVar56;\n          aVar39.sbcset =\n               (re_bitset_ptr_t)\n               create_tree(prVar59,(bin_tree_t *)aVar45.mbcset,aVar56.sbcset,CONCAT);\n          aVar46 = aVar45;\n        }\n        if (((re_dfa_t *)aVar56.sbcset == (re_dfa_t *)0x0) ||\n           (pcVar5 = *(code **)(puVar62 + 0x23cf0), (re_dfa_t *)aVar39.sbcset == (re_dfa_t *)0x0)) {\n          rStack_20c = _REG_ESPACE;\n          goto LAB_000566f4;\n        }\n        ((anon_union_4_5_a39f51ca_for_opr *)(aVar4.idx + 0x34))->mbcset = (re_charset_t *)aVar39;\n        aVar45.mbcset = (re_charset_t *)*preg_00.sbcset;\n        iVar61 = ((re_node_set *)&(aVar45.mbcset)->range_starts)->alloc;\n        iVar55 = iVar61 << 2;\n        pwVar27 = (wctype_t *)(*pcVar5)(iVar55);\n        (aVar45.mbcset)->char_classes = pwVar27;\n        iVar55 = (**(code **)(puVar62 + 0x23cf0))(iVar55);\n        ((re_node_set *)(aVar45.idx + 0x10))->alloc = iVar55;\n        iVar61 = iVar61 * 0xc;\n        uVar60 = (**(code **)(puVar62 + 0x23cf0))(iVar61);\n        ((anon_union_4_2_91654ee9_for___value *)&(aVar45.mbcset)->nmbchars)->__wch = uVar60;\n        prVar28 = (re_node_set *)(**(code **)(puVar62 + 0x23cf0))(iVar61);\n        (aVar45.mbcset)->ncoll_syms = (Idx)prVar28;\n        if (pwVar27 == (wctype_t *)0x0) {\n          rVar21 = _REG_ESPACE;\n        }\n        else if (iVar55 == 0) {\n          rVar21 = _REG_ESPACE;\n        }\n        else if (uVar60 == 0) {\n          rVar21 = _REG_ESPACE;\n        }\n        else if (prVar28 == (re_node_set *)0x0) {\n          rVar21 = _REG_ESPACE;\n        }\n        else {\n          pprVar29 = (re_sub_match_top_t **)\n                     (**(code **)(puVar62 + 0x23cf0))((int)(preg_00.mbcset)->ncoll_syms << 2);\n          *(re_sub_match_top_t ***)(aVar45.idx + 0x84) = pprVar29;\n          if (pprVar29 != (re_sub_match_top_t **)0x0) {\n            prVar30 = (re_sub_match_top_t *)0x0;\n            if ((re_node_set *)(preg_00.mbcset)->ncoll_syms != (re_node_set *)0x0) {\n              do {\n                (*(re_sub_match_top_t ***)(aVar45.idx + 0x84))[(int)prVar30] = prVar30;\n                prVar30 = (re_sub_match_top_t *)((int)&prVar30->str_idx + 1);\n              } while (prVar30 < (re_sub_match_top_t *)(preg_00.mbcset)->ncoll_syms);\n            }\n            preorder(*(bin_tree_t **)(aVar45.idx + 0x34),\n                     (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)\n                     (*(int *)(puVar62 + 0x23abc) + 0x60e8),aVar45.sbcset);\n            prVar30 = (re_sub_match_top_t *)(preg_00.mbcset)->ncoll_syms;\n            if (prVar30 == (re_sub_match_top_t *)0x0) {\nLAB_00056704:\n              (**(code **)(puVar62 + 0x23dc0))(*(re_sub_match_top_t ***)(aVar45.idx + 0x84));\n              *(re_sub_match_top_t ***)(aVar45.idx + 0x84) = (re_sub_match_top_t **)0x0;\n            }\n            else {\n              pprVar29 = *(re_sub_match_top_t ***)(aVar45.idx + 0x84);\n              if (*pprVar29 == (re_sub_match_top_t *)0x0) {\n                prVar31 = (re_sub_match_top_t *)0x0;\n                do {\n                  pprVar29 = pprVar29 + 1;\n                  prVar31 = (re_sub_match_top_t *)((int)&prVar31->str_idx + 1);\n                  if (prVar30 == prVar31) {\n                    if (prVar30 == prVar31) goto LAB_00056704;\n                    break;\n                  }\n                } while (*pprVar29 == prVar31);\n              }\n            }\n          }\n          aVar46.sbcset = (re_bitset_ptr_t)(*(int *)(puVar62 + 0x23abc) + 0x73a4);\n          rVar21 = postorder(*(bin_tree_t **)(aVar45.idx + 0x34),\n                             (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar46.sbcset,\n                             preg_00.sbcset);\n          aVar49.mbcset = aVar45.mbcset;\n          if (rVar21 == _REG_NOERROR) {\n            aVar46.sbcset = (re_bitset_ptr_t)(*(int *)(puVar62 + 0x23b40) + -0x5be4);\n            rVar21 = postorder(*(bin_tree_t **)(aVar45.idx + 0x34),\n                               (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar46.sbcset,\n                               aVar45.sbcset);\n            if (rVar21 == _REG_NOERROR) {\n              preorder(*(bin_tree_t **)(aVar45.idx + 0x34),\n                       (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)\n                       (*(int *)(puVar62 + 0x23abc) + 0x61b4),aVar45.sbcset);\n              aVar46.sbcset = (re_bitset_ptr_t)(*(int *)(puVar62 + 0x23b40) + -0x4614);\n              rVar21 = preorder(*(bin_tree_t **)(aVar45.idx + 0x34),\n                                (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar46.sbcset,\n                                aVar45.sbcset);\n              if (rVar21 == _REG_NOERROR) {\n                uVar60 = 0;\n                iVar55 = *(int *)(puVar62 + 0x23b40);\n                aVar56.sbcset = (re_bitset_ptr_t)0x0;\nLAB_00056744:\n                if ((re_dfa_t *)(aVar45.mbcset)->range_ends != (re_dfa_t *)aVar56.sbcset) {\nLAB_00056750:\n                  if (((re_node_set *)(aVar45.mbcset)->ncoll_syms)[aVar56.idx].nelem == 0) {\n                    aVar46.mbcset = aVar45.mbcset;\n                    aVar49 = aVar56;\n                    rVar21 = (*(code *)(iVar55 + -0x561c))\n                                       (&rStack_204,aVar45.sbcset,aVar56.sbcset,1);\n                    if (rVar21 != _REG_NOERROR) goto LAB_00056168;\n                    if (((re_node_set *)(aVar45.mbcset)->ncoll_syms)[aVar56.idx].nelem == 0) {\n                      (**(code **)(puVar62 + 0x23dc0))(rStack_204.elems);\n                      uVar60 = 1;\n                    }\n                  }\n                  aVar56.sbcset =\n                       (re_bitset_ptr_t)\n                       ((int)&((re_string_t *)&(aVar56.mbcset)->mbchars)->raw_mbs + 1);\n                  goto LAB_00056744;\n                }\n                if (uVar60 != 0) {\n                  uVar60 = 0;\n                  aVar56.sbcset = (re_bitset_ptr_t)0x0;\n                  goto LAB_00056750;\n                }\n                if ((((((re_node_set *)&(preg_00.mbcset)->nequiv_classes)->alloc & 0x8000000) == 0)\n                    && ((re_node_set *)(preg_00.mbcset)->ncoll_syms != (re_node_set *)0x0)) &&\n                   (*(char *)(aVar45.idx + 0x58) < '\0')) {\n                  pwVar57 = (wint_t *)(aVar45.mbcset)->range_ends;\n                }\n                else {\n                  if (*(Idx *)(aVar45.idx + 0x4c) == 0) goto LAB_000568f0;\n                  pwVar57 = (wint_t *)(aVar45.mbcset)->range_ends;\n                }\n                iVar55 = (**(code **)(puVar62 + 0x23cf0))((int)pwVar57 * 0xc);\n                ((re_node_set *)&(aVar45.mbcset)->nequiv_classes)->alloc = iVar55;\n                if (iVar55 == 0) {\n                  rVar21 = _REG_ESPACE;\n                  goto LAB_00056168;\n                }\n                if (pwVar57 != (wint_t *)0x0) {\n                  iVar55 = 0;\n                  uVar26 = 0;\n                  do {\n                    puVar32 = (undefined1 *)\n                              (((re_node_set *)&(aVar45.mbcset)->nequiv_classes)->alloc + iVar55);\n                    *puVar32 = 0;\n                    puVar32[1] = 0;\n                    puVar32[2] = 0;\n                    puVar32[3] = 0;\n                    puVar32[4] = 0;\n                    puVar32[5] = 0;\n                    puVar32[6] = 0;\n                    puVar32[7] = 0;\n                    puVar32[8] = 0;\n                    puVar32[9] = 0;\n                    puVar32[10] = 0;\n                    puVar32[0xb] = 0;\n                    uVar26 = uVar26 + 1;\n                    iVar55 = iVar55 + 0xc;\n                  } while (uVar26 < (aVar45.mbcset)->range_ends);\n                  iVar55 = *(int *)(puVar62 + 0x23abc);\n                  if ((wint_t *)(aVar45.mbcset)->range_ends != (wint_t *)0x0) {\n                    iVar61 = 0;\n                    aStack_218.sbcset = (re_bitset_ptr_t)0x0;\n                    do {\n                      piVar38 = *(int **)((int)&((re_node_set *)(aVar45.mbcset)->ncoll_syms)->elems\n                                         + iVar61);\n                      if (0 < *(int *)((int)&((re_node_set *)(aVar45.mbcset)->ncoll_syms)->nelem +\n                                      iVar61)) {\n                        iVar58 = 0;\n                        do {\n                          aVar46 = aStack_218;\n                          iVar33 = (*(code *)(iVar55 + 0x6e30))\n                                             (((re_node_set *)&(aVar45.mbcset)->nequiv_classes)->\n                                              alloc + *piVar38 * 0xc);\n                          rVar21 = _REG_ESPACE;\n                          if (iVar33 == 0) goto LAB_00056168;\n                          iVar58 = iVar58 + 1;\n                          piVar38 = piVar38 + 1;\n                        } while (iVar58 < *(int *)((int)&((re_node_set *)(aVar45.mbcset)->ncoll_syms\n                                                         )->nelem + iVar61));\n                      }\n                      aStack_218.sbcset =\n                           (re_bitset_ptr_t)\n                           ((int)&((re_string_t *)&(aStack_218.mbcset)->mbchars)->raw_mbs + 1);\n                      iVar61 = iVar61 + 0xc;\n                    } while (aStack_218.sbcset < (re_dfa_t *)(aVar45.mbcset)->range_ends);\n                  }\n                }\nLAB_000568f0:\n                rStack_20c = _REG_NOERROR;\n                if ((((*(byte *)(aVar4.idx + 0x58) & 0x20) != 0) && (uVar8 == 0)) &&\n                   (((anon_union_4_2_91654ee9_for___value *)&(preg_00.mbcset)->nmbchars)->__wch == 0\n                   )) {\n                  if ((aVar4.mbcset)->range_ends != (wchar_t *)0x0) {\n                    aVar49.sbcset = (re_bitset_ptr_t)(*(int *)(puVar62 + 0x23754) + 0x6e4c);\n                    if (*(byte *)(*aVar4.sbcset + 4) < 0xd) {\n                    /* WARNING: Could not recover jumptable at 0x00056a60. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      rVar21 = (*(code *)(puVar62 +\n                                         aVar49.sbcset[*(byte *)(*aVar4.sbcset + 4)] + 0x2b71c))();\n                      return rVar21;\n                    }\n                    (**(code **)(puVar62 + 0x23bc4))(0);\n                    if (uVar60 != 0) {\n                      aVar49.idx = (Idx)&DAT_00000007;\n                      uVar8 = 0;\n                      do {\n                        prVar53 = (re_token_t *)(aVar4.mbcset)->mbchars + uVar8;\n                        if (prVar53->field_0x4 == '\x01') {\n                          if ((char)(prVar53->opr).c < '\0') {\n                            *(uint *)&prVar53->field_0x4 = *(uint *)&prVar53->field_0x4 & 0xfffffbff\n                            ;\n                          }\n                        }\n                        else if (prVar53->field_0x4 == '\x05') {\n                          prVar53->field_0x4 = 7;\n                        }\n                        uVar8 = uVar8 + 1;\n                      } while (uVar8 < (aVar4.mbcset)->range_ends);\n                    }\n                  }\n                  *(int *)(aVar4.idx + 0x5c) = 1;\n                  if (0 < *(Idx *)(aVar4.idx + 0x4c)) {\n                    uVar60 = 1;\n                  }\n                  *(byte *)(aVar4.idx + 0x58) =\n                       *(byte *)(aVar4.idx + 0x58) & 0x9f | (byte)((uVar60 & 1) << 6);\n                }\n                iVar55 = (*(bin_tree_t **)(aVar4.idx + 0x34))->first->node_idx;\n                *(int *)(aVar4.idx + 0x48) = iVar55;\n                aVar46.sbcset =\n                     (re_bitset_ptr_t)((re_node_set *)(aVar4.mbcset)->ncoll_syms + iVar55);\n                rVar34 = re_node_set_init_copy(&rStack_204,(re_node_set *)aVar46.mbcset);\n                rVar21 = rVar34;\n                rStack_208 = rVar34;\n                if (rVar34 == _REG_NOERROR) {\n                  if ((0 < *(Idx *)(aVar4.idx + 0x4c)) && (_REG_NOERROR < rStack_204.nelem)) {\n                    iVar55 = *(int *)(puVar62 + 0x23abc);\n                    iVar61 = *(int *)(puVar62 + 0x23abc);\n                    rVar21 = _REG_NOERROR;\n                    do {\n                      aVar49.sbcset =\n                           (re_bitset_ptr_t)\n                           ((re_token_t *)(aVar4.mbcset)->mbchars + rStack_204.elems[rVar21]);\n                      if (*(char *)&((re_node_set *)&(aVar49.mbcset)->range_starts)->alloc == '\x04'\n                         ) {\n                        rVar48 = _REG_NOERROR;\n                        piVar38 = rStack_204.elems;\n                        if (rStack_204.nelem < _REG_NOMATCH) {\nLAB_00056b8c:\n                          if (rStack_204.nelem != rVar48) {\n                            iVar33 = *((re_node_set *)(aVar4.mbcset)->nmbchars)\n                                      [rStack_204.elems[rVar21]].elems;\n                            iVar58 = (*(code *)(iVar55 + 0x5ea8))(&rStack_204,iVar33);\n                            if (iVar58 == 0) {\n                              aVar46.sbcset =\n                                   (re_bitset_ptr_t)\n                                   ((re_node_set *)(aVar4.mbcset)->ncoll_syms + iVar33);\n                              rVar21 = (*(code *)(iVar61 + 0x7f1c))(&rStack_204);\n                              if (rVar21 != _REG_NOERROR) goto LAB_00056cb8;\n                            }\n                          }\n                        }\n                        else {\n                          do {\n                            prVar53 = (re_token_t *)(aVar4.mbcset)->mbchars + *piVar38;\n                            if ((prVar53->field_0x4 == '\t') &&\n                               ((prVar53->opr).sbcset == (re_bitset_ptr_t)*aVar49.sbcset))\n                            goto LAB_00056b8c;\n                            rVar48 = rVar48 + _REG_NOMATCH;\n                            piVar38 = piVar38 + 1;\n                          } while (rStack_204.nelem != rVar48);\n                        }\n                      }\n                      rVar21 = rVar21 + _REG_NOMATCH;\n                    } while (rVar21 < rStack_204.nelem);\n                  }\n                  aVar49.sbcset = (re_bitset_ptr_t)&rStack_204;\n                  aVar46 = aVar4;\n                  prVar35 = re_acquire_state_context\n                                      (&rStack_208,(re_dfa_t *)aVar4.mbcset,\n                                       (re_node_set *)aVar49.mbcset,0);\n                  (aVar4.mbcset)->nchar_classes = (Idx)prVar35;\n                  rVar21 = rStack_208;\n                  if (prVar35 != (re_dfastate_t *)0x0) {\n                    if ((prVar35->field_0x34 & 1) == 0) {\n                      *(re_dfastate_t **)(aVar4.idx + 0x30) = prVar35;\n                      *(re_dfastate_t **)(aVar4.idx + 0x2c) = prVar35;\n                      *(re_dfastate_t **)(aVar4.idx + 0x28) = prVar35;\n                    }\n                    else {\n                      aVar49.sbcset = (re_bitset_ptr_t)&rStack_204;\n                      prVar35 = re_acquire_state_context\n                                          (&rStack_208,(re_dfa_t *)aVar4.mbcset,\n                                           (re_node_set *)aVar49.mbcset,1);\n                      *(re_dfastate_t **)(aVar4.idx + 0x28) = prVar35;\n                      prVar35 = re_acquire_state_context\n                                          (&rStack_208,(re_dfa_t *)aVar4.mbcset,\n                                           (re_node_set *)aVar49.mbcset,2);\n                      *(re_dfastate_t **)(aVar4.idx + 0x2c) = prVar35;\n                      aVar46 = aVar4;\n                      prVar35 = re_acquire_state_context\n                                          (&rStack_208,(re_dfa_t *)aVar4.mbcset,\n                                           (re_node_set *)aVar49.mbcset,6);\n                      *(re_dfastate_t **)(aVar4.idx + 0x30) = prVar35;\n                      rVar21 = rStack_208;\n                      if (((*(re_dfastate_t **)(aVar4.idx + 0x28) == (re_dfastate_t *)0x0) ||\n                          (*(re_dfastate_t **)(aVar4.idx + 0x2c) == (re_dfastate_t *)0x0)) ||\n                         (prVar35 == (re_dfastate_t *)0x0)) goto LAB_00056cb8;\n                    }\n                    (**(code **)(puVar62 + 0x23dc0))(rStack_204.elems);\n                    rVar21 = rVar34;\n                  }\n                }\nLAB_00056cb8:\n                rStack_20c = rVar21;\n                free_workarea_compile((regex_t *)preg_00.mbcset);\n                re_string_destruct((re_string_t *)&aStack_1f8);\n                rVar21 = rStack_20c;\n                if (rStack_20c != _REG_NOERROR) {\n                  if (*(int *)(puVar62 + 0x23c78) != 0) {\n                    (**(code **)(puVar62 + 0x23df0))((pthread_mutex_t *)(aVar4.idx + 0x88));\n                  }\n                  free_dfa_content((re_dfa_t *)aVar4.mbcset);\n                  *preg_00.sbcset = 0;\n                  ((re_node_set *)&(preg_00.mbcset)->range_starts)->alloc = 0;\n                  rVar21 = rStack_20c;\n                }\n                goto LAB_00056cfc;\n              }\n            }\n          }\n        }\n      }\n      else {\n        aVar49.sbcset = (re_bitset_ptr_t)0x0;\n        if ((re_dfa_t *)aVar45.sbcset != (re_dfa_t *)0x0) {\n          aVar56.mbcset =\n               (re_charset_t *)create_tree(prVar59,(bin_tree_t *)0x0,(bin_tree_t *)0x0,END_OF_RE);\n          goto LAB_000564b0;\n        }\nLAB_000566f4:\n        *(bin_tree_t **)(aVar4.idx + 0x34) = (bin_tree_t *)0x0;\n        rVar21 = rStack_20c;\n      }\nLAB_00056168:\n      rStack_20c = rVar21;\n      free_workarea_compile((regex_t *)preg_00.mbcset);\n      re_string_destruct((re_string_t *)&aStack_1f8);\n      if (*(int *)(puVar62 + 0x23c78) != 0) {\n        (**(code **)(puVar62 + 0x23df0))((pthread_mutex_t *)(aVar4.idx + 0x88));\n      }\n      free_dfa_content((re_dfa_t *)aVar4.mbcset);\n      *preg_00.sbcset = 0;\n      ((re_node_set *)&(preg_00.mbcset)->range_starts)->alloc = 0;\n      rVar21 = rStack_20c;\n      goto LAB_00056cfc;\n    }" if (parenthesized_expression "(*(int *)(puVar62 + 0x23c78) == 0)" ( (binary_expression "*(int *)(puVar62 + 0x23c78) == 0" (pointer_expression "*(int *)(puVar62 + 0x23c78)" * (cast_expression "(int *)(puVar62 + 0x23c78)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar62 + 0x23c78)" ( (binary_expression "puVar62 + 0x23c78" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\nLAB_00056054:\n      uVar60 = ((anon_union_4_2_91654ee9_for___value *)&(preg_00.mbcset)->nmbchars)->__wch;\n      uVar8 = (uint)prVar51 & 0x400000;\n      bVar36 = uVar8 != 0;\n      aVar49.idx = 0x4c;\n      aVar46.sbcset = (re_bitset_ptr_t)0x0;\n      (**(code **)(puVar62 + 0x23c9c))(aaStack_1f4);\n      cStack_1ad = uVar60 != 0 || bVar36;\n      iStack_1a8 = *(int *)(aVar4.idx + 0x5c);\n      bStack_1af = (byte)((uint)(*(int *)(aVar4.idx + 0x58) << 2) >> 0x1f);\n      bStack_1ae = (byte)((uint)(*(int *)(aVar4.idx + 0x58) << 3) >> 0x1f);\n      aStack_1f8 = aVar45;\n      aStack_1cc = (anon_union_4_5_a39f51ca_for_opr)preg;\n      aStack_1c8 = (anon_union_4_5_a39f51ca_for_opr)preg;\n      aStack_1c4 = (anon_union_4_5_a39f51ca_for_opr)preg;\n      aStack_1c0 = (anon_union_4_5_a39f51ca_for_opr)preg;\n      uStack_1b8 = uVar60;\n      uStack_1b0 = bVar36;\n      if (0 < (int)preg) {\n        aVar46.sbcset = (re_bitset_ptr_t)((int)preg + 1);\n        rVar21 = re_string_realloc_buffers((re_string_t *)&aStack_1f8,aVar46.idx);\n        if (rVar21 == _REG_NOERROR) goto LAB_000560cc;\n        goto LAB_00056168;\n      }\nLAB_000560cc:\n      if (cStack_1ad != '\0') {\n        aVar45 = aaStack_1f4[0];\n      }\n      aaStack_1f4[0] = aVar45;\n      if (uVar8 == 0) {\n        if (*(int *)(aVar4.idx + 0x5c) < 2) {\n          if (uVar60 != 0) {\n            re_string_translate_buffer((re_string_t *)&aStack_1f8);\n          }\n        }\n        else {\n          build_wcs_buffer((re_string_t *)&aStack_1f8);\n        }\n      }\n      else {\n        if (1 < *(int *)(aVar4.idx + 0x5c)) {\n          iVar55 = *(int *)(puVar62 + 0x23abc);\n          do {\n            rVar21 = build_wcs_upper_buffer((re_string_t *)&aStack_1f8);\n            if (rVar21 != _REG_NOERROR) break;\n            if (((int)preg <= iStack_1d8) ||\n               (aVar46.ctx_type = iStack_1d4 << 1,\n               iStack_1dc + *(int *)(aVar4.idx + 0x5c) < iStack_1d4)) goto LAB_000563d0;\n            rVar21 = (*(code *)(iVar55 + 0x6d2c))(&aStack_1f8);\n          } while (rVar21 == _REG_NOERROR);\n          goto LAB_00056168;\n        }\n        build_upper_buffer((re_string_t *)&aStack_1f8);\n      }\nLAB_000563d0:\n      rStack_20c = _REG_NOERROR;\n      (preg_00.mbcset)->ncoll_syms = 0;\n      prVar59 = (re_dfa_t *)((re_string_t *)&(preg_00.mbcset)->mbchars)->raw_mbs;\n      prVar59->syntax = (reg_syntax_t)prVar51;\n      fetch_token((re_token_t *)&rStack_204,(re_string_t *)&aStack_1f8,(uint)prVar51 | 0x800000);\n      aVar46 = preg_00;\n      aVar45.sbcset =\n           (re_bitset_ptr_t)\n           parse_reg_exp((re_string_t *)&aStack_1f8,preg_00.sbcset,(re_token_t *)&rStack_204,\n                         (reg_syntax_t)prVar51,0,&rStack_20c);\n      if (rStack_20c == _REG_NOERROR) {\n        aVar49.sbcset = (re_bitset_ptr_t)0x0;\n        aVar46.sbcset = (re_bitset_ptr_t)0x0;\n        aVar56.mbcset =\n             (re_charset_t *)create_tree(prVar59,(bin_tree_t *)0x0,(bin_tree_t *)0x0,END_OF_RE);\n        aVar39.mbcset = aVar56.mbcset;\n        if ((re_dfa_t *)aVar45.sbcset != (re_dfa_t *)0x0) {\nLAB_000564b0:\n          aVar49 = aVar56;\n          aVar39.sbcset =\n               (re_bitset_ptr_t)\n               create_tree(prVar59,(bin_tree_t *)aVar45.mbcset,aVar56.sbcset,CONCAT);\n          aVar46 = aVar45;\n        }\n        if (((re_dfa_t *)aVar56.sbcset == (re_dfa_t *)0x0) ||\n           (pcVar5 = *(code **)(puVar62 + 0x23cf0), (re_dfa_t *)aVar39.sbcset == (re_dfa_t *)0x0)) {\n          rStack_20c = _REG_ESPACE;\n          goto LAB_000566f4;\n        }\n        ((anon_union_4_5_a39f51ca_for_opr *)(aVar4.idx + 0x34))->mbcset = (re_charset_t *)aVar39;\n        aVar45.mbcset = (re_charset_t *)*preg_00.sbcset;\n        iVar61 = ((re_node_set *)&(aVar45.mbcset)->range_starts)->alloc;\n        iVar55 = iVar61 << 2;\n        pwVar27 = (wctype_t *)(*pcVar5)(iVar55);\n        (aVar45.mbcset)->char_classes = pwVar27;\n        iVar55 = (**(code **)(puVar62 + 0x23cf0))(iVar55);\n        ((re_node_set *)(aVar45.idx + 0x10))->alloc = iVar55;\n        iVar61 = iVar61 * 0xc;\n        uVar60 = (**(code **)(puVar62 + 0x23cf0))(iVar61);\n        ((anon_union_4_2_91654ee9_for___value *)&(aVar45.mbcset)->nmbchars)->__wch = uVar60;\n        prVar28 = (re_node_set *)(**(code **)(puVar62 + 0x23cf0))(iVar61);\n        (aVar45.mbcset)->ncoll_syms = (Idx)prVar28;\n        if (pwVar27 == (wctype_t *)0x0) {\n          rVar21 = _REG_ESPACE;\n        }\n        else if (iVar55 == 0) {\n          rVar21 = _REG_ESPACE;\n        }\n        else if (uVar60 == 0) {\n          rVar21 = _REG_ESPACE;\n        }\n        else if (prVar28 == (re_node_set *)0x0) {\n          rVar21 = _REG_ESPACE;\n        }\n        else {\n          pprVar29 = (re_sub_match_top_t **)\n                     (**(code **)(puVar62 + 0x23cf0))((int)(preg_00.mbcset)->ncoll_syms << 2);\n          *(re_sub_match_top_t ***)(aVar45.idx + 0x84) = pprVar29;\n          if (pprVar29 != (re_sub_match_top_t **)0x0) {\n            prVar30 = (re_sub_match_top_t *)0x0;\n            if ((re_node_set *)(preg_00.mbcset)->ncoll_syms != (re_node_set *)0x0) {\n              do {\n                (*(re_sub_match_top_t ***)(aVar45.idx + 0x84))[(int)prVar30] = prVar30;\n                prVar30 = (re_sub_match_top_t *)((int)&prVar30->str_idx + 1);\n              } while (prVar30 < (re_sub_match_top_t *)(preg_00.mbcset)->ncoll_syms);\n            }\n            preorder(*(bin_tree_t **)(aVar45.idx + 0x34),\n                     (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)\n                     (*(int *)(puVar62 + 0x23abc) + 0x60e8),aVar45.sbcset);\n            prVar30 = (re_sub_match_top_t *)(preg_00.mbcset)->ncoll_syms;\n            if (prVar30 == (re_sub_match_top_t *)0x0) {\nLAB_00056704:\n              (**(code **)(puVar62 + 0x23dc0))(*(re_sub_match_top_t ***)(aVar45.idx + 0x84));\n              *(re_sub_match_top_t ***)(aVar45.idx + 0x84) = (re_sub_match_top_t **)0x0;\n            }\n            else {\n              pprVar29 = *(re_sub_match_top_t ***)(aVar45.idx + 0x84);\n              if (*pprVar29 == (re_sub_match_top_t *)0x0) {\n                prVar31 = (re_sub_match_top_t *)0x0;\n                do {\n                  pprVar29 = pprVar29 + 1;\n                  prVar31 = (re_sub_match_top_t *)((int)&prVar31->str_idx + 1);\n                  if (prVar30 == prVar31) {\n                    if (prVar30 == prVar31) goto LAB_00056704;\n                    break;\n                  }\n                } while (*pprVar29 == prVar31);\n              }\n            }\n          }\n          aVar46.sbcset = (re_bitset_ptr_t)(*(int *)(puVar62 + 0x23abc) + 0x73a4);\n          rVar21 = postorder(*(bin_tree_t **)(aVar45.idx + 0x34),\n                             (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar46.sbcset,\n                             preg_00.sbcset);\n          aVar49.mbcset = aVar45.mbcset;\n          if (rVar21 == _REG_NOERROR) {\n            aVar46.sbcset = (re_bitset_ptr_t)(*(int *)(puVar62 + 0x23b40) + -0x5be4);\n            rVar21 = postorder(*(bin_tree_t **)(aVar45.idx + 0x34),\n                               (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar46.sbcset,\n                               aVar45.sbcset);\n            if (rVar21 == _REG_NOERROR) {\n              preorder(*(bin_tree_t **)(aVar45.idx + 0x34),\n                       (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)\n                       (*(int *)(puVar62 + 0x23abc) + 0x61b4),aVar45.sbcset);\n              aVar46.sbcset = (re_bitset_ptr_t)(*(int *)(puVar62 + 0x23b40) + -0x4614);\n              rVar21 = preorder(*(bin_tree_t **)(aVar45.idx + 0x34),\n                                (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar46.sbcset,\n                                aVar45.sbcset);\n              if (rVar21 == _REG_NOERROR) {\n                uVar60 = 0;\n                iVar55 = *(int *)(puVar62 + 0x23b40);\n                aVar56.sbcset = (re_bitset_ptr_t)0x0;\nLAB_00056744:\n                if ((re_dfa_t *)(aVar45.mbcset)->range_ends != (re_dfa_t *)aVar56.sbcset) {\nLAB_00056750:\n                  if (((re_node_set *)(aVar45.mbcset)->ncoll_syms)[aVar56.idx].nelem == 0) {\n                    aVar46.mbcset = aVar45.mbcset;\n                    aVar49 = aVar56;\n                    rVar21 = (*(code *)(iVar55 + -0x561c))\n                                       (&rStack_204,aVar45.sbcset,aVar56.sbcset,1);\n                    if (rVar21 != _REG_NOERROR) goto LAB_00056168;\n                    if (((re_node_set *)(aVar45.mbcset)->ncoll_syms)[aVar56.idx].nelem == 0) {\n                      (**(code **)(puVar62 + 0x23dc0))(rStack_204.elems);\n                      uVar60 = 1;\n                    }\n                  }\n                  aVar56.sbcset =\n                       (re_bitset_ptr_t)\n                       ((int)&((re_string_t *)&(aVar56.mbcset)->mbchars)->raw_mbs + 1);\n                  goto LAB_00056744;\n                }\n                if (uVar60 != 0) {\n                  uVar60 = 0;\n                  aVar56.sbcset = (re_bitset_ptr_t)0x0;\n                  goto LAB_00056750;\n                }\n                if ((((((re_node_set *)&(preg_00.mbcset)->nequiv_classes)->alloc & 0x8000000) == 0)\n                    && ((re_node_set *)(preg_00.mbcset)->ncoll_syms != (re_node_set *)0x0)) &&\n                   (*(char *)(aVar45.idx + 0x58) < '\0')) {\n                  pwVar57 = (wint_t *)(aVar45.mbcset)->range_ends;\n                }\n                else {\n                  if (*(Idx *)(aVar45.idx + 0x4c) == 0) goto LAB_000568f0;\n                  pwVar57 = (wint_t *)(aVar45.mbcset)->range_ends;\n                }\n                iVar55 = (**(code **)(puVar62 + 0x23cf0))((int)pwVar57 * 0xc);\n                ((re_node_set *)&(aVar45.mbcset)->nequiv_classes)->alloc = iVar55;\n                if (iVar55 == 0) {\n                  rVar21 = _REG_ESPACE;\n                  goto LAB_00056168;\n                }\n                if (pwVar57 != (wint_t *)0x0) {\n                  iVar55 = 0;\n                  uVar26 = 0;\n                  do {\n                    puVar32 = (undefined1 *)\n                              (((re_node_set *)&(aVar45.mbcset)->nequiv_classes)->alloc + iVar55);\n                    *puVar32 = 0;\n                    puVar32[1] = 0;\n                    puVar32[2] = 0;\n                    puVar32[3] = 0;\n                    puVar32[4] = 0;\n                    puVar32[5] = 0;\n                    puVar32[6] = 0;\n                    puVar32[7] = 0;\n                    puVar32[8] = 0;\n                    puVar32[9] = 0;\n                    puVar32[10] = 0;\n                    puVar32[0xb] = 0;\n                    uVar26 = uVar26 + 1;\n                    iVar55 = iVar55 + 0xc;\n                  } while (uVar26 < (aVar45.mbcset)->range_ends);\n                  iVar55 = *(int *)(puVar62 + 0x23abc);\n                  if ((wint_t *)(aVar45.mbcset)->range_ends != (wint_t *)0x0) {\n                    iVar61 = 0;\n                    aStack_218.sbcset = (re_bitset_ptr_t)0x0;\n                    do {\n                      piVar38 = *(int **)((int)&((re_node_set *)(aVar45.mbcset)->ncoll_syms)->elems\n                                         + iVar61);\n                      if (0 < *(int *)((int)&((re_node_set *)(aVar45.mbcset)->ncoll_syms)->nelem +\n                                      iVar61)) {\n                        iVar58 = 0;\n                        do {\n                          aVar46 = aStack_218;\n                          iVar33 = (*(code *)(iVar55 + 0x6e30))\n                                             (((re_node_set *)&(aVar45.mbcset)->nequiv_classes)->\n                                              alloc + *piVar38 * 0xc);\n                          rVar21 = _REG_ESPACE;\n                          if (iVar33 == 0) goto LAB_00056168;\n                          iVar58 = iVar58 + 1;\n                          piVar38 = piVar38 + 1;\n                        } while (iVar58 < *(int *)((int)&((re_node_set *)(aVar45.mbcset)->ncoll_syms\n                                                         )->nelem + iVar61));\n                      }\n                      aStack_218.sbcset =\n                           (re_bitset_ptr_t)\n                           ((int)&((re_string_t *)&(aStack_218.mbcset)->mbchars)->raw_mbs + 1);\n                      iVar61 = iVar61 + 0xc;\n                    } while (aStack_218.sbcset < (re_dfa_t *)(aVar45.mbcset)->range_ends);\n                  }\n                }\nLAB_000568f0:\n                rStack_20c = _REG_NOERROR;\n                if ((((*(byte *)(aVar4.idx + 0x58) & 0x20) != 0) && (uVar8 == 0)) &&\n                   (((anon_union_4_2_91654ee9_for___value *)&(preg_00.mbcset)->nmbchars)->__wch == 0\n                   )) {\n                  if ((aVar4.mbcset)->range_ends != (wchar_t *)0x0) {\n                    aVar49.sbcset = (re_bitset_ptr_t)(*(int *)(puVar62 + 0x23754) + 0x6e4c);\n                    if (*(byte *)(*aVar4.sbcset + 4) < 0xd) {\n                    /* WARNING: Could not recover jumptable at 0x00056a60. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      rVar21 = (*(code *)(puVar62 +\n                                         aVar49.sbcset[*(byte *)(*aVar4.sbcset + 4)] + 0x2b71c))();\n                      return rVar21;\n                    }\n                    (**(code **)(puVar62 + 0x23bc4))(0);\n                    if (uVar60 != 0) {\n                      aVar49.idx = (Idx)&DAT_00000007;\n                      uVar8 = 0;\n                      do {\n                        prVar53 = (re_token_t *)(aVar4.mbcset)->mbchars + uVar8;\n                        if (prVar53->field_0x4 == '\x01') {\n                          if ((char)(prVar53->opr).c < '\0') {\n                            *(uint *)&prVar53->field_0x4 = *(uint *)&prVar53->field_0x4 & 0xfffffbff\n                            ;\n                          }\n                        }\n                        else if (prVar53->field_0x4 == '\x05') {\n                          prVar53->field_0x4 = 7;\n                        }\n                        uVar8 = uVar8 + 1;\n                      } while (uVar8 < (aVar4.mbcset)->range_ends);\n                    }\n                  }\n                  *(int *)(aVar4.idx + 0x5c) = 1;\n                  if (0 < *(Idx *)(aVar4.idx + 0x4c)) {\n                    uVar60 = 1;\n                  }\n                  *(byte *)(aVar4.idx + 0x58) =\n                       *(byte *)(aVar4.idx + 0x58) & 0x9f | (byte)((uVar60 & 1) << 6);\n                }\n                iVar55 = (*(bin_tree_t **)(aVar4.idx + 0x34))->first->node_idx;\n                *(int *)(aVar4.idx + 0x48) = iVar55;\n                aVar46.sbcset =\n                     (re_bitset_ptr_t)((re_node_set *)(aVar4.mbcset)->ncoll_syms + iVar55);\n                rVar34 = re_node_set_init_copy(&rStack_204,(re_node_set *)aVar46.mbcset);\n                rVar21 = rVar34;\n                rStack_208 = rVar34;\n                if (rVar34 == _REG_NOERROR) {\n                  if ((0 < *(Idx *)(aVar4.idx + 0x4c)) && (_REG_NOERROR < rStack_204.nelem)) {\n                    iVar55 = *(int *)(puVar62 + 0x23abc);\n                    iVar61 = *(int *)(puVar62 + 0x23abc);\n                    rVar21 = _REG_NOERROR;\n                    do {\n                      aVar49.sbcset =\n                           (re_bitset_ptr_t)\n                           ((re_token_t *)(aVar4.mbcset)->mbchars + rStack_204.elems[rVar21]);\n                      if (*(char *)&((re_node_set *)&(aVar49.mbcset)->range_starts)->alloc == '\x04'\n                         ) {\n                        rVar48 = _REG_NOERROR;\n                        piVar38 = rStack_204.elems;\n                        if (rStack_204.nelem < _REG_NOMATCH) {\nLAB_00056b8c:\n                          if (rStack_204.nelem != rVar48) {\n                            iVar33 = *((re_node_set *)(aVar4.mbcset)->nmbchars)\n                                      [rStack_204.elems[rVar21]].elems;\n                            iVar58 = (*(code *)(iVar55 + 0x5ea8))(&rStack_204,iVar33);\n                            if (iVar58 == 0) {\n                              aVar46.sbcset =\n                                   (re_bitset_ptr_t)\n                                   ((re_node_set *)(aVar4.mbcset)->ncoll_syms + iVar33);\n                              rVar21 = (*(code *)(iVar61 + 0x7f1c))(&rStack_204);\n                              if (rVar21 != _REG_NOERROR) goto LAB_00056cb8;\n                            }\n                          }\n                        }\n                        else {\n                          do {\n                            prVar53 = (re_token_t *)(aVar4.mbcset)->mbchars + *piVar38;\n                            if ((prVar53->field_0x4 == '\t') &&\n                               ((prVar53->opr).sbcset == (re_bitset_ptr_t)*aVar49.sbcset))\n                            goto LAB_00056b8c;\n                            rVar48 = rVar48 + _REG_NOMATCH;\n                            piVar38 = piVar38 + 1;\n                          } while (rStack_204.nelem != rVar48);\n                        }\n                      }\n                      rVar21 = rVar21 + _REG_NOMATCH;\n                    } while (rVar21 < rStack_204.nelem);\n                  }\n                  aVar49.sbcset = (re_bitset_ptr_t)&rStack_204;\n                  aVar46 = aVar4;\n                  prVar35 = re_acquire_state_context\n                                      (&rStack_208,(re_dfa_t *)aVar4.mbcset,\n                                       (re_node_set *)aVar49.mbcset,0);\n                  (aVar4.mbcset)->nchar_classes = (Idx)prVar35;\n                  rVar21 = rStack_208;\n                  if (prVar35 != (re_dfastate_t *)0x0) {\n                    if ((prVar35->field_0x34 & 1) == 0) {\n                      *(re_dfastate_t **)(aVar4.idx + 0x30) = prVar35;\n                      *(re_dfastate_t **)(aVar4.idx + 0x2c) = prVar35;\n                      *(re_dfastate_t **)(aVar4.idx + 0x28) = prVar35;\n                    }\n                    else {\n                      aVar49.sbcset = (re_bitset_ptr_t)&rStack_204;\n                      prVar35 = re_acquire_state_context\n                                          (&rStack_208,(re_dfa_t *)aVar4.mbcset,\n                                           (re_node_set *)aVar49.mbcset,1);\n                      *(re_dfastate_t **)(aVar4.idx + 0x28) = prVar35;\n                      prVar35 = re_acquire_state_context\n                                          (&rStack_208,(re_dfa_t *)aVar4.mbcset,\n                                           (re_node_set *)aVar49.mbcset,2);\n                      *(re_dfastate_t **)(aVar4.idx + 0x2c) = prVar35;\n                      aVar46 = aVar4;\n                      prVar35 = re_acquire_state_context\n                                          (&rStack_208,(re_dfa_t *)aVar4.mbcset,\n                                           (re_node_set *)aVar49.mbcset,6);\n                      *(re_dfastate_t **)(aVar4.idx + 0x30) = prVar35;\n                      rVar21 = rStack_208;\n                      if (((*(re_dfastate_t **)(aVar4.idx + 0x28) == (re_dfastate_t *)0x0) ||\n                          (*(re_dfastate_t **)(aVar4.idx + 0x2c) == (re_dfastate_t *)0x0)) ||\n                         (prVar35 == (re_dfastate_t *)0x0)) goto LAB_00056cb8;\n                    }\n                    (**(code **)(puVar62 + 0x23dc0))(rStack_204.elems);\n                    rVar21 = rVar34;\n                  }\n                }\nLAB_00056cb8:\n                rStack_20c = rVar21;\n                free_workarea_compile((regex_t *)preg_00.mbcset);\n                re_string_destruct((re_string_t *)&aStack_1f8);\n                rVar21 = rStack_20c;\n                if (rStack_20c != _REG_NOERROR) {\n                  if (*(int *)(puVar62 + 0x23c78) != 0) {\n                    (**(code **)(puVar62 + 0x23df0))((pthread_mutex_t *)(aVar4.idx + 0x88));\n                  }\n                  free_dfa_content((re_dfa_t *)aVar4.mbcset);\n                  *preg_00.sbcset = 0;\n                  ((re_node_set *)&(preg_00.mbcset)->range_starts)->alloc = 0;\n                  rVar21 = rStack_20c;\n                }\n                goto LAB_00056cfc;\n              }\n            }\n          }\n        }\n      }\n      else {\n        aVar49.sbcset = (re_bitset_ptr_t)0x0;\n        if ((re_dfa_t *)aVar45.sbcset != (re_dfa_t *)0x0) {\n          aVar56.mbcset =\n               (re_charset_t *)create_tree(prVar59,(bin_tree_t *)0x0,(bin_tree_t *)0x0,END_OF_RE);\n          goto LAB_000564b0;\n        }\nLAB_000566f4:\n        *(bin_tree_t **)(aVar4.idx + 0x34) = (bin_tree_t *)0x0;\n        rVar21 = rStack_20c;\n      }\nLAB_00056168:\n      rStack_20c = rVar21;\n      free_workarea_compile((regex_t *)preg_00.mbcset);\n      re_string_destruct((re_string_t *)&aStack_1f8);\n      if (*(int *)(puVar62 + 0x23c78) != 0) {\n        (**(code **)(puVar62 + 0x23df0))((pthread_mutex_t *)(aVar4.idx + 0x88));\n      }\n      free_dfa_content((re_dfa_t *)aVar4.mbcset);\n      *preg_00.sbcset = 0;\n      ((re_node_set *)&(preg_00.mbcset)->range_starts)->alloc = 0;\n      rVar21 = rStack_20c;\n      goto LAB_00056cfc;\n    }" { (labeled_statement "LAB_00056054:\n      uVar60 = ((anon_union_4_2_91654ee9_for___value *)&(preg_00.mbcset)->nmbchars)->__wch;" statement_identifier : (expression_statement "uVar60 = ((anon_union_4_2_91654ee9_for___value *)&(preg_00.mbcset)->nmbchars)->__wch;" (assignment_expression "uVar60 = ((anon_union_4_2_91654ee9_for___value *)&(preg_00.mbcset)->nmbchars)->__wch" identifier = (field_expression "((anon_union_4_2_91654ee9_for___value *)&(preg_00.mbcset)->nmbchars)->__wch" (parenthesized_expression "((anon_union_4_2_91654ee9_for___value *)&(preg_00.mbcset)->nmbchars)" ( (cast_expression "(anon_union_4_2_91654ee9_for___value *)&(preg_00.mbcset)->nmbchars" ( (type_descriptor "anon_union_4_2_91654ee9_for___value *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(preg_00.mbcset)->nmbchars" & (field_expression "(preg_00.mbcset)->nmbchars" (parenthesized_expression "(preg_00.mbcset)" ( (field_expression "preg_00.mbcset" identifier . field_identifier) )) -> field_identifier))) )) -> field_identifier)) ;)) (expression_statement "uVar8 = (uint)prVar51 & 0x400000;" (assignment_expression "uVar8 = (uint)prVar51 & 0x400000" identifier = (binary_expression "(uint)prVar51 & 0x400000" (cast_expression "(uint)prVar51" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "bVar36 = uVar8 != 0;" (assignment_expression "bVar36 = uVar8 != 0" identifier = (binary_expression "uVar8 != 0" identifier != number_literal)) ;) (expression_statement "aVar49.idx = 0x4c;" (assignment_expression "aVar49.idx = 0x4c" (field_expression "aVar49.idx" identifier . field_identifier) = number_literal) ;) (expression_statement "aVar46.sbcset = (re_bitset_ptr_t)0x0;" (assignment_expression "aVar46.sbcset = (re_bitset_ptr_t)0x0" (field_expression "aVar46.sbcset" identifier . field_identifier) = (cast_expression "(re_bitset_ptr_t)0x0" ( (type_descriptor "re_bitset_ptr_t" type_identifier) ) number_literal)) ;) (expression_statement "(**(code **)(puVar62 + 0x23c9c))(aaStack_1f4);" (call_expression "(**(code **)(puVar62 + 0x23c9c))(aaStack_1f4)" (parenthesized_expression "(**(code **)(puVar62 + 0x23c9c))" ( (pointer_expression "**(code **)(puVar62 + 0x23c9c)" * (pointer_expression "*(code **)(puVar62 + 0x23c9c)" * (cast_expression "(code **)(puVar62 + 0x23c9c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar62 + 0x23c9c)" ( (binary_expression "puVar62 + 0x23c9c" identifier + number_literal) ))))) )) (argument_list "(aaStack_1f4)" ( identifier ))) ;) (expression_statement "cStack_1ad = uVar60 != 0 || bVar36;" (assignment_expression "cStack_1ad = uVar60 != 0 || bVar36" identifier = (binary_expression "uVar60 != 0 || bVar36" (binary_expression "uVar60 != 0" identifier != number_literal) || identifier)) ;) (expression_statement "iStack_1a8 = *(int *)(aVar4.idx + 0x5c);" (assignment_expression "iStack_1a8 = *(int *)(aVar4.idx + 0x5c)" identifier = (pointer_expression "*(int *)(aVar4.idx + 0x5c)" * (cast_expression "(int *)(aVar4.idx + 0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(aVar4.idx + 0x5c)" ( (binary_expression "aVar4.idx + 0x5c" (field_expression "aVar4.idx" identifier . field_identifier) + number_literal) ))))) ;) (expression_statement "bStack_1af = (byte)((uint)(*(int *)(aVar4.idx + 0x58) << 2) >> 0x1f);" (assignment_expression "bStack_1af = (byte)((uint)(*(int *)(aVar4.idx + 0x58) << 2) >> 0x1f)" identifier = (call_expression "(byte)((uint)(*(int *)(aVar4.idx + 0x58) << 2) >> 0x1f)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)(*(int *)(aVar4.idx + 0x58) << 2) >> 0x1f)" ( (binary_expression "(uint)(*(int *)(aVar4.idx + 0x58) << 2) >> 0x1f" (call_expression "(uint)(*(int *)(aVar4.idx + 0x58) << 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)(aVar4.idx + 0x58) << 2)" ( (binary_expression "*(int *)(aVar4.idx + 0x58) << 2" (pointer_expression "*(int *)(aVar4.idx + 0x58)" * (cast_expression "(int *)(aVar4.idx + 0x58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(aVar4.idx + 0x58)" ( (binary_expression "aVar4.idx + 0x58" (field_expression "aVar4.idx" identifier . field_identifier) + number_literal) )))) << number_literal) ))) >> number_literal) )))) ;) (expression_statement "bStack_1ae = (byte)((uint)(*(int *)(aVar4.idx + 0x58) << 3) >> 0x1f);" (assignment_expression "bStack_1ae = (byte)((uint)(*(int *)(aVar4.idx + 0x58) << 3) >> 0x1f)" identifier = (call_expression "(byte)((uint)(*(int *)(aVar4.idx + 0x58) << 3) >> 0x1f)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)(*(int *)(aVar4.idx + 0x58) << 3) >> 0x1f)" ( (binary_expression "(uint)(*(int *)(aVar4.idx + 0x58) << 3) >> 0x1f" (call_expression "(uint)(*(int *)(aVar4.idx + 0x58) << 3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)(aVar4.idx + 0x58) << 3)" ( (binary_expression "*(int *)(aVar4.idx + 0x58) << 3" (pointer_expression "*(int *)(aVar4.idx + 0x58)" * (cast_expression "(int *)(aVar4.idx + 0x58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(aVar4.idx + 0x58)" ( (binary_expression "aVar4.idx + 0x58" (field_expression "aVar4.idx" identifier . field_identifier) + number_literal) )))) << number_literal) ))) >> number_literal) )))) ;) (expression_statement "aStack_1f8 = aVar45;" (assignment_expression "aStack_1f8 = aVar45" identifier = identifier) ;) (expression_statement "aStack_1cc = (anon_union_4_5_a39f51ca_for_opr)preg;" (assignment_expression "aStack_1cc = (anon_union_4_5_a39f51ca_for_opr)preg" identifier = (cast_expression "(anon_union_4_5_a39f51ca_for_opr)preg" ( (type_descriptor "anon_union_4_5_a39f51ca_for_opr" type_identifier) ) identifier)) ;) (expression_statement "aStack_1c8 = (anon_union_4_5_a39f51ca_for_opr)preg;" (assignment_expression "aStack_1c8 = (anon_union_4_5_a39f51ca_for_opr)preg" identifier = (cast_expression "(anon_union_4_5_a39f51ca_for_opr)preg" ( (type_descriptor "anon_union_4_5_a39f51ca_for_opr" type_identifier) ) identifier)) ;) (expression_statement "aStack_1c4 = (anon_union_4_5_a39f51ca_for_opr)preg;" (assignment_expression "aStack_1c4 = (anon_union_4_5_a39f51ca_for_opr)preg" identifier = (cast_expression "(anon_union_4_5_a39f51ca_for_opr)preg" ( (type_descriptor "anon_union_4_5_a39f51ca_for_opr" type_identifier) ) identifier)) ;) (expression_statement "aStack_1c0 = (anon_union_4_5_a39f51ca_for_opr)preg;" (assignment_expression "aStack_1c0 = (anon_union_4_5_a39f51ca_for_opr)preg" identifier = (cast_expression "(anon_union_4_5_a39f51ca_for_opr)preg" ( (type_descriptor "anon_union_4_5_a39f51ca_for_opr" type_identifier) ) identifier)) ;) (expression_statement "uStack_1b8 = uVar60;" (assignment_expression "uStack_1b8 = uVar60" identifier = identifier) ;) (expression_statement "uStack_1b0 = bVar36;" (assignment_expression "uStack_1b0 = bVar36" identifier = identifier) ;) (if_statement "if (0 < (int)preg) {\n        aVar46.sbcset = (re_bitset_ptr_t)((int)preg + 1);\n        rVar21 = re_string_realloc_buffers((re_string_t *)&aStack_1f8,aVar46.idx);\n        if (rVar21 == _REG_NOERROR) goto LAB_000560cc;\n        goto LAB_00056168;\n      }" if (parenthesized_expression "(0 < (int)preg)" ( (binary_expression "0 < (int)preg" number_literal < (cast_expression "(int)preg" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n        aVar46.sbcset = (re_bitset_ptr_t)((int)preg + 1);\n        rVar21 = re_string_realloc_buffers((re_string_t *)&aStack_1f8,aVar46.idx);\n        if (rVar21 == _REG_NOERROR) goto LAB_000560cc;\n        goto LAB_00056168;\n      }" { (expression_statement "aVar46.sbcset = (re_bitset_ptr_t)((int)preg + 1);" (assignment_expression "aVar46.sbcset = (re_bitset_ptr_t)((int)preg + 1)" (field_expression "aVar46.sbcset" identifier . field_identifier) = (call_expression "(re_bitset_ptr_t)((int)preg + 1)" (parenthesized_expression "(re_bitset_ptr_t)" ( identifier )) (argument_list "((int)preg + 1)" ( (binary_expression "(int)preg + 1" (cast_expression "(int)preg" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "rVar21 = re_string_realloc_buffers((re_string_t *)&aStack_1f8,aVar46.idx);" (assignment_expression "rVar21 = re_string_realloc_buffers((re_string_t *)&aStack_1f8,aVar46.idx)" identifier = (call_expression "re_string_realloc_buffers((re_string_t *)&aStack_1f8,aVar46.idx)" identifier (argument_list "((re_string_t *)&aStack_1f8,aVar46.idx)" ( (cast_expression "(re_string_t *)&aStack_1f8" ( (type_descriptor "re_string_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&aStack_1f8" & identifier)) , (field_expression "aVar46.idx" identifier . field_identifier) )))) ;) (if_statement "if (rVar21 == _REG_NOERROR) goto LAB_000560cc;" if (parenthesized_expression "(rVar21 == _REG_NOERROR)" ( (binary_expression "rVar21 == _REG_NOERROR" identifier == identifier) )) (goto_statement "goto LAB_000560cc;" goto statement_identifier ;)) (goto_statement "goto LAB_00056168;" goto statement_identifier ;) })) (labeled_statement "LAB_000560cc:\n      if (cStack_1ad != '\0') {\n        aVar45 = aaStack_1f4[0];\n      }" statement_identifier : (if_statement "if (cStack_1ad != '\0') {\n        aVar45 = aaStack_1f4[0];\n      }" if (parenthesized_expression "(cStack_1ad != '\0')" ( (binary_expression "cStack_1ad != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        aVar45 = aaStack_1f4[0];\n      }" { (expression_statement "aVar45 = aaStack_1f4[0];" (assignment_expression "aVar45 = aaStack_1f4[0]" identifier = (subscript_expression "aaStack_1f4[0]" identifier [ number_literal ])) ;) }))) (expression_statement "aaStack_1f4[0] = aVar45;" (assignment_expression "aaStack_1f4[0] = aVar45" (subscript_expression "aaStack_1f4[0]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (uVar8 == 0) {\n        if (*(int *)(aVar4.idx + 0x5c) < 2) {\n          if (uVar60 != 0) {\n            re_string_translate_buffer((re_string_t *)&aStack_1f8);\n          }\n        }\n        else {\n          build_wcs_buffer((re_string_t *)&aStack_1f8);\n        }\n      }\n      else {\n        if (1 < *(int *)(aVar4.idx + 0x5c)) {\n          iVar55 = *(int *)(puVar62 + 0x23abc);\n          do {\n            rVar21 = build_wcs_upper_buffer((re_string_t *)&aStack_1f8);\n            if (rVar21 != _REG_NOERROR) break;\n            if (((int)preg <= iStack_1d8) ||\n               (aVar46.ctx_type = iStack_1d4 << 1,\n               iStack_1dc + *(int *)(aVar4.idx + 0x5c) < iStack_1d4)) goto LAB_000563d0;\n            rVar21 = (*(code *)(iVar55 + 0x6d2c))(&aStack_1f8);\n          } while (rVar21 == _REG_NOERROR);\n          goto LAB_00056168;\n        }\n        build_upper_buffer((re_string_t *)&aStack_1f8);\n      }" if (parenthesized_expression "(uVar8 == 0)" ( (binary_expression "uVar8 == 0" identifier == number_literal) )) (compound_statement "{\n        if (*(int *)(aVar4.idx + 0x5c) < 2) {\n          if (uVar60 != 0) {\n            re_string_translate_buffer((re_string_t *)&aStack_1f8);\n          }\n        }\n        else {\n          build_wcs_buffer((re_string_t *)&aStack_1f8);\n        }\n      }" { (if_statement "if (*(int *)(aVar4.idx + 0x5c) < 2) {\n          if (uVar60 != 0) {\n            re_string_translate_buffer((re_string_t *)&aStack_1f8);\n          }\n        }\n        else {\n          build_wcs_buffer((re_string_t *)&aStack_1f8);\n        }" if (parenthesized_expression "(*(int *)(aVar4.idx + 0x5c) < 2)" ( (binary_expression "*(int *)(aVar4.idx + 0x5c) < 2" (pointer_expression "*(int *)(aVar4.idx + 0x5c)" * (cast_expression "(int *)(aVar4.idx + 0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(aVar4.idx + 0x5c)" ( (binary_expression "aVar4.idx + 0x5c" (field_expression "aVar4.idx" identifier . field_identifier) + number_literal) )))) < number_literal) )) (compound_statement "{\n          if (uVar60 != 0) {\n            re_string_translate_buffer((re_string_t *)&aStack_1f8);\n          }\n        }" { (if_statement "if (uVar60 != 0) {\n            re_string_translate_buffer((re_string_t *)&aStack_1f8);\n          }" if (parenthesized_expression "(uVar60 != 0)" ( (binary_expression "uVar60 != 0" identifier != number_literal) )) (compound_statement "{\n            re_string_translate_buffer((re_string_t *)&aStack_1f8);\n          }" { (expression_statement "re_string_translate_buffer((re_string_t *)&aStack_1f8);" (call_expression "re_string_translate_buffer((re_string_t *)&aStack_1f8)" identifier (argument_list "((re_string_t *)&aStack_1f8)" ( (cast_expression "(re_string_t *)&aStack_1f8" ( (type_descriptor "re_string_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&aStack_1f8" & identifier)) ))) ;) })) }) (else_clause "else {\n          build_wcs_buffer((re_string_t *)&aStack_1f8);\n        }" else (compound_statement "{\n          build_wcs_buffer((re_string_t *)&aStack_1f8);\n        }" { (expression_statement "build_wcs_buffer((re_string_t *)&aStack_1f8);" (call_expression "build_wcs_buffer((re_string_t *)&aStack_1f8)" identifier (argument_list "((re_string_t *)&aStack_1f8)" ( (cast_expression "(re_string_t *)&aStack_1f8" ( (type_descriptor "re_string_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&aStack_1f8" & identifier)) ))) ;) }))) }) (else_clause "else {\n        if (1 < *(int *)(aVar4.idx + 0x5c)) {\n          iVar55 = *(int *)(puVar62 + 0x23abc);\n          do {\n            rVar21 = build_wcs_upper_buffer((re_string_t *)&aStack_1f8);\n            if (rVar21 != _REG_NOERROR) break;\n            if (((int)preg <= iStack_1d8) ||\n               (aVar46.ctx_type = iStack_1d4 << 1,\n               iStack_1dc + *(int *)(aVar4.idx + 0x5c) < iStack_1d4)) goto LAB_000563d0;\n            rVar21 = (*(code *)(iVar55 + 0x6d2c))(&aStack_1f8);\n          } while (rVar21 == _REG_NOERROR);\n          goto LAB_00056168;\n        }\n        build_upper_buffer((re_string_t *)&aStack_1f8);\n      }" else (compound_statement "{\n        if (1 < *(int *)(aVar4.idx + 0x5c)) {\n          iVar55 = *(int *)(puVar62 + 0x23abc);\n          do {\n            rVar21 = build_wcs_upper_buffer((re_string_t *)&aStack_1f8);\n            if (rVar21 != _REG_NOERROR) break;\n            if (((int)preg <= iStack_1d8) ||\n               (aVar46.ctx_type = iStack_1d4 << 1,\n               iStack_1dc + *(int *)(aVar4.idx + 0x5c) < iStack_1d4)) goto LAB_000563d0;\n            rVar21 = (*(code *)(iVar55 + 0x6d2c))(&aStack_1f8);\n          } while (rVar21 == _REG_NOERROR);\n          goto LAB_00056168;\n        }\n        build_upper_buffer((re_string_t *)&aStack_1f8);\n      }" { (if_statement "if (1 < *(int *)(aVar4.idx + 0x5c)) {\n          iVar55 = *(int *)(puVar62 + 0x23abc);\n          do {\n            rVar21 = build_wcs_upper_buffer((re_string_t *)&aStack_1f8);\n            if (rVar21 != _REG_NOERROR) break;\n            if (((int)preg <= iStack_1d8) ||\n               (aVar46.ctx_type = iStack_1d4 << 1,\n               iStack_1dc + *(int *)(aVar4.idx + 0x5c) < iStack_1d4)) goto LAB_000563d0;\n            rVar21 = (*(code *)(iVar55 + 0x6d2c))(&aStack_1f8);\n          } while (rVar21 == _REG_NOERROR);\n          goto LAB_00056168;\n        }" if (parenthesized_expression "(1 < *(int *)(aVar4.idx + 0x5c))" ( (binary_expression "1 < *(int *)(aVar4.idx + 0x5c)" number_literal < (pointer_expression "*(int *)(aVar4.idx + 0x5c)" * (cast_expression "(int *)(aVar4.idx + 0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(aVar4.idx + 0x5c)" ( (binary_expression "aVar4.idx + 0x5c" (field_expression "aVar4.idx" identifier . field_identifier) + number_literal) ))))) )) (compound_statement "{\n          iVar55 = *(int *)(puVar62 + 0x23abc);\n          do {\n            rVar21 = build_wcs_upper_buffer((re_string_t *)&aStack_1f8);\n            if (rVar21 != _REG_NOERROR) break;\n            if (((int)preg <= iStack_1d8) ||\n               (aVar46.ctx_type = iStack_1d4 << 1,\n               iStack_1dc + *(int *)(aVar4.idx + 0x5c) < iStack_1d4)) goto LAB_000563d0;\n            rVar21 = (*(code *)(iVar55 + 0x6d2c))(&aStack_1f8);\n          } while (rVar21 == _REG_NOERROR);\n          goto LAB_00056168;\n        }" { (expression_statement "iVar55 = *(int *)(puVar62 + 0x23abc);" (assignment_expression "iVar55 = *(int *)(puVar62 + 0x23abc)" identifier = (pointer_expression "*(int *)(puVar62 + 0x23abc)" * (cast_expression "(int *)(puVar62 + 0x23abc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar62 + 0x23abc)" ( (binary_expression "puVar62 + 0x23abc" identifier + number_literal) ))))) ;) (do_statement "do {\n            rVar21 = build_wcs_upper_buffer((re_string_t *)&aStack_1f8);\n            if (rVar21 != _REG_NOERROR) break;\n            if (((int)preg <= iStack_1d8) ||\n               (aVar46.ctx_type = iStack_1d4 << 1,\n               iStack_1dc + *(int *)(aVar4.idx + 0x5c) < iStack_1d4)) goto LAB_000563d0;\n            rVar21 = (*(code *)(iVar55 + 0x6d2c))(&aStack_1f8);\n          } while (rVar21 == _REG_NOERROR);" do (compound_statement "{\n            rVar21 = build_wcs_upper_buffer((re_string_t *)&aStack_1f8);\n            if (rVar21 != _REG_NOERROR) break;\n            if (((int)preg <= iStack_1d8) ||\n               (aVar46.ctx_type = iStack_1d4 << 1,\n               iStack_1dc + *(int *)(aVar4.idx + 0x5c) < iStack_1d4)) goto LAB_000563d0;\n            rVar21 = (*(code *)(iVar55 + 0x6d2c))(&aStack_1f8);\n          }" { (expression_statement "rVar21 = build_wcs_upper_buffer((re_string_t *)&aStack_1f8);" (assignment_expression "rVar21 = build_wcs_upper_buffer((re_string_t *)&aStack_1f8)" identifier = (call_expression "build_wcs_upper_buffer((re_string_t *)&aStack_1f8)" identifier (argument_list "((re_string_t *)&aStack_1f8)" ( (cast_expression "(re_string_t *)&aStack_1f8" ( (type_descriptor "re_string_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&aStack_1f8" & identifier)) )))) ;) (if_statement "if (rVar21 != _REG_NOERROR) break;" if (parenthesized_expression "(rVar21 != _REG_NOERROR)" ( (binary_expression "rVar21 != _REG_NOERROR" identifier != identifier) )) (break_statement "break;" break ;)) (if_statement "if (((int)preg <= iStack_1d8) ||\n               (aVar46.ctx_type = iStack_1d4 << 1,\n               iStack_1dc + *(int *)(aVar4.idx + 0x5c) < iStack_1d4)) goto LAB_000563d0;" if (parenthesized_expression "(((int)preg <= iStack_1d8) ||\n               (aVar46.ctx_type = iStack_1d4 << 1,\n               iStack_1dc + *(int *)(aVar4.idx + 0x5c) < iStack_1d4))" ( (binary_expression "((int)preg <= iStack_1d8) ||\n               (aVar46.ctx_type = iStack_1d4 << 1,\n               iStack_1dc + *(int *)(aVar4.idx + 0x5c) < iStack_1d4)" (parenthesized_expression "((int)preg <= iStack_1d8)" ( (binary_expression "(int)preg <= iStack_1d8" (cast_expression "(int)preg" ( (type_descriptor "int" primitive_type) ) identifier) <= identifier) )) || (parenthesized_expression "(aVar46.ctx_type = iStack_1d4 << 1,\n               iStack_1dc + *(int *)(aVar4.idx + 0x5c) < iStack_1d4)" ( (comma_expression "aVar46.ctx_type = iStack_1d4 << 1,\n               iStack_1dc + *(int *)(aVar4.idx + 0x5c) < iStack_1d4" (assignment_expression "aVar46.ctx_type = iStack_1d4 << 1" (field_expression "aVar46.ctx_type" identifier . field_identifier) = (binary_expression "iStack_1d4 << 1" identifier << number_literal)) , (binary_expression "iStack_1dc + *(int *)(aVar4.idx + 0x5c) < iStack_1d4" (binary_expression "iStack_1dc + *(int *)(aVar4.idx + 0x5c)" identifier + (pointer_expression "*(int *)(aVar4.idx + 0x5c)" * (cast_expression "(int *)(aVar4.idx + 0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(aVar4.idx + 0x5c)" ( (binary_expression "aVar4.idx + 0x5c" (field_expression "aVar4.idx" identifier . field_identifier) + number_literal) ))))) < identifier)) ))) )) (goto_statement "goto LAB_000563d0;" goto statement_identifier ;)) (expression_statement "rVar21 = (*(code *)(iVar55 + 0x6d2c))(&aStack_1f8);" (assignment_expression "rVar21 = (*(code *)(iVar55 + 0x6d2c))(&aStack_1f8)" identifier = (call_expression "(*(code *)(iVar55 + 0x6d2c))(&aStack_1f8)" (parenthesized_expression "(*(code *)(iVar55 + 0x6d2c))" ( (pointer_expression "*(code *)(iVar55 + 0x6d2c)" * (cast_expression "(code *)(iVar55 + 0x6d2c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar55 + 0x6d2c)" ( (binary_expression "iVar55 + 0x6d2c" identifier + number_literal) )))) )) (argument_list "(&aStack_1f8)" ( (pointer_expression "&aStack_1f8" & identifier) )))) ;) }) while (parenthesized_expression "(rVar21 == _REG_NOERROR)" ( (binary_expression "rVar21 == _REG_NOERROR" identifier == identifier) )) ;) (goto_statement "goto LAB_00056168;" goto statement_identifier ;) })) (expression_statement "build_upper_buffer((re_string_t *)&aStack_1f8);" (call_expression "build_upper_buffer((re_string_t *)&aStack_1f8)" identifier (argument_list "((re_string_t *)&aStack_1f8)" ( (cast_expression "(re_string_t *)&aStack_1f8" ( (type_descriptor "re_string_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&aStack_1f8" & identifier)) ))) ;) }))) (labeled_statement "LAB_000563d0:\n      rStack_20c = _REG_NOERROR;" statement_identifier : (expression_statement "rStack_20c = _REG_NOERROR;" (assignment_expression "rStack_20c = _REG_NOERROR" identifier = identifier) ;)) (expression_statement "(preg_00.mbcset)->ncoll_syms = 0;" (assignment_expression "(preg_00.mbcset)->ncoll_syms = 0" (field_expression "(preg_00.mbcset)->ncoll_syms" (parenthesized_expression "(preg_00.mbcset)" ( (field_expression "preg_00.mbcset" identifier . field_identifier) )) -> field_identifier) = number_literal) ;) (expression_statement "prVar59 = (re_dfa_t *)((re_string_t *)&(preg_00.mbcset)->mbchars)->raw_mbs;" (assignment_expression "prVar59 = (re_dfa_t *)((re_string_t *)&(preg_00.mbcset)->mbchars)->raw_mbs" identifier = (cast_expression "(re_dfa_t *)((re_string_t *)&(preg_00.mbcset)->mbchars)->raw_mbs" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "((re_string_t *)&(preg_00.mbcset)->mbchars)->raw_mbs" (parenthesized_expression "((re_string_t *)&(preg_00.mbcset)->mbchars)" ( (cast_expression "(re_string_t *)&(preg_00.mbcset)->mbchars" ( (type_descriptor "re_string_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(preg_00.mbcset)->mbchars" & (field_expression "(preg_00.mbcset)->mbchars" (parenthesized_expression "(preg_00.mbcset)" ( (field_expression "preg_00.mbcset" identifier . field_identifier) )) -> field_identifier))) )) -> field_identifier))) ;) (expression_statement "prVar59->syntax = (reg_syntax_t)prVar51;" (assignment_expression "prVar59->syntax = (reg_syntax_t)prVar51" (field_expression "prVar59->syntax" identifier -> field_identifier) = (cast_expression "(reg_syntax_t)prVar51" ( (type_descriptor "reg_syntax_t" type_identifier) ) identifier)) ;) (expression_statement "fetch_token((re_token_t *)&rStack_204,(re_string_t *)&aStack_1f8,(uint)prVar51 | 0x800000);" (call_expression "fetch_token((re_token_t *)&rStack_204,(re_string_t *)&aStack_1f8,(uint)prVar51 | 0x800000)" identifier (argument_list "((re_token_t *)&rStack_204,(re_string_t *)&aStack_1f8,(uint)prVar51 | 0x800000)" ( (cast_expression "(re_token_t *)&rStack_204" ( (type_descriptor "re_token_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&rStack_204" & identifier)) , (cast_expression "(re_string_t *)&aStack_1f8" ( (type_descriptor "re_string_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&aStack_1f8" & identifier)) , (binary_expression "(uint)prVar51 | 0x800000" (cast_expression "(uint)prVar51" ( (type_descriptor "uint" type_identifier) ) identifier) | number_literal) ))) ;) (expression_statement "aVar46 = preg_00;" (assignment_expression "aVar46 = preg_00" identifier = identifier) ;) (expression_statement "aVar45.sbcset =\n           (re_bitset_ptr_t)\n           parse_reg_exp((re_string_t *)&aStack_1f8,preg_00.sbcset,(re_token_t *)&rStack_204,\n                         (reg_syntax_t)prVar51,0,&rStack_20c);" (assignment_expression "aVar45.sbcset =\n           (re_bitset_ptr_t)\n           parse_reg_exp((re_string_t *)&aStack_1f8,preg_00.sbcset,(re_token_t *)&rStack_204,\n                         (reg_syntax_t)prVar51,0,&rStack_20c)" (field_expression "aVar45.sbcset" identifier . field_identifier) = (cast_expression "(re_bitset_ptr_t)\n           parse_reg_exp((re_string_t *)&aStack_1f8,preg_00.sbcset,(re_token_t *)&rStack_204,\n                         (reg_syntax_t)prVar51,0,&rStack_20c)" ( (type_descriptor "re_bitset_ptr_t" type_identifier) ) (call_expression "parse_reg_exp((re_string_t *)&aStack_1f8,preg_00.sbcset,(re_token_t *)&rStack_204,\n                         (reg_syntax_t)prVar51,0,&rStack_20c)" identifier (argument_list "((re_string_t *)&aStack_1f8,preg_00.sbcset,(re_token_t *)&rStack_204,\n                         (reg_syntax_t)prVar51,0,&rStack_20c)" ( (cast_expression "(re_string_t *)&aStack_1f8" ( (type_descriptor "re_string_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&aStack_1f8" & identifier)) , (field_expression "preg_00.sbcset" identifier . field_identifier) , (cast_expression "(re_token_t *)&rStack_204" ( (type_descriptor "re_token_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&rStack_204" & identifier)) , (cast_expression "(reg_syntax_t)prVar51" ( (type_descriptor "reg_syntax_t" type_identifier) ) identifier) , number_literal , (pointer_expression "&rStack_20c" & identifier) ))))) ;) (if_statement "if (rStack_20c == _REG_NOERROR) {\n        aVar49.sbcset = (re_bitset_ptr_t)0x0;\n        aVar46.sbcset = (re_bitset_ptr_t)0x0;\n        aVar56.mbcset =\n             (re_charset_t *)create_tree(prVar59,(bin_tree_t *)0x0,(bin_tree_t *)0x0,END_OF_RE);\n        aVar39.mbcset = aVar56.mbcset;\n        if ((re_dfa_t *)aVar45.sbcset != (re_dfa_t *)0x0) {\nLAB_000564b0:\n          aVar49 = aVar56;\n          aVar39.sbcset =\n               (re_bitset_ptr_t)\n               create_tree(prVar59,(bin_tree_t *)aVar45.mbcset,aVar56.sbcset,CONCAT);\n          aVar46 = aVar45;\n        }\n        if (((re_dfa_t *)aVar56.sbcset == (re_dfa_t *)0x0) ||\n           (pcVar5 = *(code **)(puVar62 + 0x23cf0), (re_dfa_t *)aVar39.sbcset == (re_dfa_t *)0x0)) {\n          rStack_20c = _REG_ESPACE;\n          goto LAB_000566f4;\n        }\n        ((anon_union_4_5_a39f51ca_for_opr *)(aVar4.idx + 0x34))->mbcset = (re_charset_t *)aVar39;\n        aVar45.mbcset = (re_charset_t *)*preg_00.sbcset;\n        iVar61 = ((re_node_set *)&(aVar45.mbcset)->range_starts)->alloc;\n        iVar55 = iVar61 << 2;\n        pwVar27 = (wctype_t *)(*pcVar5)(iVar55);\n        (aVar45.mbcset)->char_classes = pwVar27;\n        iVar55 = (**(code **)(puVar62 + 0x23cf0))(iVar55);\n        ((re_node_set *)(aVar45.idx + 0x10))->alloc = iVar55;\n        iVar61 = iVar61 * 0xc;\n        uVar60 = (**(code **)(puVar62 + 0x23cf0))(iVar61);\n        ((anon_union_4_2_91654ee9_for___value *)&(aVar45.mbcset)->nmbchars)->__wch = uVar60;\n        prVar28 = (re_node_set *)(**(code **)(puVar62 + 0x23cf0))(iVar61);\n        (aVar45.mbcset)->ncoll_syms = (Idx)prVar28;\n        if (pwVar27 == (wctype_t *)0x0) {\n          rVar21 = _REG_ESPACE;\n        }\n        else if (iVar55 == 0) {\n          rVar21 = _REG_ESPACE;\n        }\n        else if (uVar60 == 0) {\n          rVar21 = _REG_ESPACE;\n        }\n        else if (prVar28 == (re_node_set *)0x0) {\n          rVar21 = _REG_ESPACE;\n        }\n        else {\n          pprVar29 = (re_sub_match_top_t **)\n                     (**(code **)(puVar62 + 0x23cf0))((int)(preg_00.mbcset)->ncoll_syms << 2);\n          *(re_sub_match_top_t ***)(aVar45.idx + 0x84) = pprVar29;\n          if (pprVar29 != (re_sub_match_top_t **)0x0) {\n            prVar30 = (re_sub_match_top_t *)0x0;\n            if ((re_node_set *)(preg_00.mbcset)->ncoll_syms != (re_node_set *)0x0) {\n              do {\n                (*(re_sub_match_top_t ***)(aVar45.idx + 0x84))[(int)prVar30] = prVar30;\n                prVar30 = (re_sub_match_top_t *)((int)&prVar30->str_idx + 1);\n              } while (prVar30 < (re_sub_match_top_t *)(preg_00.mbcset)->ncoll_syms);\n            }\n            preorder(*(bin_tree_t **)(aVar45.idx + 0x34),\n                     (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)\n                     (*(int *)(puVar62 + 0x23abc) + 0x60e8),aVar45.sbcset);\n            prVar30 = (re_sub_match_top_t *)(preg_00.mbcset)->ncoll_syms;\n            if (prVar30 == (re_sub_match_top_t *)0x0) {\nLAB_00056704:\n              (**(code **)(puVar62 + 0x23dc0))(*(re_sub_match_top_t ***)(aVar45.idx + 0x84));\n              *(re_sub_match_top_t ***)(aVar45.idx + 0x84) = (re_sub_match_top_t **)0x0;\n            }\n            else {\n              pprVar29 = *(re_sub_match_top_t ***)(aVar45.idx + 0x84);\n              if (*pprVar29 == (re_sub_match_top_t *)0x0) {\n                prVar31 = (re_sub_match_top_t *)0x0;\n                do {\n                  pprVar29 = pprVar29 + 1;\n                  prVar31 = (re_sub_match_top_t *)((int)&prVar31->str_idx + 1);\n                  if (prVar30 == prVar31) {\n                    if (prVar30 == prVar31) goto LAB_00056704;\n                    break;\n                  }\n                } while (*pprVar29 == prVar31);\n              }\n            }\n          }\n          aVar46.sbcset = (re_bitset_ptr_t)(*(int *)(puVar62 + 0x23abc) + 0x73a4);\n          rVar21 = postorder(*(bin_tree_t **)(aVar45.idx + 0x34),\n                             (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar46.sbcset,\n                             preg_00.sbcset);\n          aVar49.mbcset = aVar45.mbcset;\n          if (rVar21 == _REG_NOERROR) {\n            aVar46.sbcset = (re_bitset_ptr_t)(*(int *)(puVar62 + 0x23b40) + -0x5be4);\n            rVar21 = postorder(*(bin_tree_t **)(aVar45.idx + 0x34),\n                               (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar46.sbcset,\n                               aVar45.sbcset);\n            if (rVar21 == _REG_NOERROR) {\n              preorder(*(bin_tree_t **)(aVar45.idx + 0x34),\n                       (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)\n                       (*(int *)(puVar62 + 0x23abc) + 0x61b4),aVar45.sbcset);\n              aVar46.sbcset = (re_bitset_ptr_t)(*(int *)(puVar62 + 0x23b40) + -0x4614);\n              rVar21 = preorder(*(bin_tree_t **)(aVar45.idx + 0x34),\n                                (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar46.sbcset,\n                                aVar45.sbcset);\n              if (rVar21 == _REG_NOERROR) {\n                uVar60 = 0;\n                iVar55 = *(int *)(puVar62 + 0x23b40);\n                aVar56.sbcset = (re_bitset_ptr_t)0x0;\nLAB_00056744:\n                if ((re_dfa_t *)(aVar45.mbcset)->range_ends != (re_dfa_t *)aVar56.sbcset) {\nLAB_00056750:\n                  if (((re_node_set *)(aVar45.mbcset)->ncoll_syms)[aVar56.idx].nelem == 0) {\n                    aVar46.mbcset = aVar45.mbcset;\n                    aVar49 = aVar56;\n                    rVar21 = (*(code *)(iVar55 + -0x561c))\n                                       (&rStack_204,aVar45.sbcset,aVar56.sbcset,1);\n                    if (rVar21 != _REG_NOERROR) goto LAB_00056168;\n                    if (((re_node_set *)(aVar45.mbcset)->ncoll_syms)[aVar56.idx].nelem == 0) {\n                      (**(code **)(puVar62 + 0x23dc0))(rStack_204.elems);\n                      uVar60 = 1;\n                    }\n                  }\n                  aVar56.sbcset =\n                       (re_bitset_ptr_t)\n                       ((int)&((re_string_t *)&(aVar56.mbcset)->mbchars)->raw_mbs + 1);\n                  goto LAB_00056744;\n                }\n                if (uVar60 != 0) {\n                  uVar60 = 0;\n                  aVar56.sbcset = (re_bitset_ptr_t)0x0;\n                  goto LAB_00056750;\n                }\n                if ((((((re_node_set *)&(preg_00.mbcset)->nequiv_classes)->alloc & 0x8000000) == 0)\n                    && ((re_node_set *)(preg_00.mbcset)->ncoll_syms != (re_node_set *)0x0)) &&\n                   (*(char *)(aVar45.idx + 0x58) < '\0')) {\n                  pwVar57 = (wint_t *)(aVar45.mbcset)->range_ends;\n                }\n                else {\n                  if (*(Idx *)(aVar45.idx + 0x4c) == 0) goto LAB_000568f0;\n                  pwVar57 = (wint_t *)(aVar45.mbcset)->range_ends;\n                }\n                iVar55 = (**(code **)(puVar62 + 0x23cf0))((int)pwVar57 * 0xc);\n                ((re_node_set *)&(aVar45.mbcset)->nequiv_classes)->alloc = iVar55;\n                if (iVar55 == 0) {\n                  rVar21 = _REG_ESPACE;\n                  goto LAB_00056168;\n                }\n                if (pwVar57 != (wint_t *)0x0) {\n                  iVar55 = 0;\n                  uVar26 = 0;\n                  do {\n                    puVar32 = (undefined1 *)\n                              (((re_node_set *)&(aVar45.mbcset)->nequiv_classes)->alloc + iVar55);\n                    *puVar32 = 0;\n                    puVar32[1] = 0;\n                    puVar32[2] = 0;\n                    puVar32[3] = 0;\n                    puVar32[4] = 0;\n                    puVar32[5] = 0;\n                    puVar32[6] = 0;\n                    puVar32[7] = 0;\n                    puVar32[8] = 0;\n                    puVar32[9] = 0;\n                    puVar32[10] = 0;\n                    puVar32[0xb] = 0;\n                    uVar26 = uVar26 + 1;\n                    iVar55 = iVar55 + 0xc;\n                  } while (uVar26 < (aVar45.mbcset)->range_ends);\n                  iVar55 = *(int *)(puVar62 + 0x23abc);\n                  if ((wint_t *)(aVar45.mbcset)->range_ends != (wint_t *)0x0) {\n                    iVar61 = 0;\n                    aStack_218.sbcset = (re_bitset_ptr_t)0x0;\n                    do {\n                      piVar38 = *(int **)((int)&((re_node_set *)(aVar45.mbcset)->ncoll_syms)->elems\n                                         + iVar61);\n                      if (0 < *(int *)((int)&((re_node_set *)(aVar45.mbcset)->ncoll_syms)->nelem +\n                                      iVar61)) {\n                        iVar58 = 0;\n                        do {\n                          aVar46 = aStack_218;\n                          iVar33 = (*(code *)(iVar55 + 0x6e30))\n                                             (((re_node_set *)&(aVar45.mbcset)->nequiv_classes)->\n                                              alloc + *piVar38 * 0xc);\n                          rVar21 = _REG_ESPACE;\n                          if (iVar33 == 0) goto LAB_00056168;\n                          iVar58 = iVar58 + 1;\n                          piVar38 = piVar38 + 1;\n                        } while (iVar58 < *(int *)((int)&((re_node_set *)(aVar45.mbcset)->ncoll_syms\n                                                         )->nelem + iVar61));\n                      }\n                      aStack_218.sbcset =\n                           (re_bitset_ptr_t)\n                           ((int)&((re_string_t *)&(aStack_218.mbcset)->mbchars)->raw_mbs + 1);\n                      iVar61 = iVar61 + 0xc;\n                    } while (aStack_218.sbcset < (re_dfa_t *)(aVar45.mbcset)->range_ends);\n                  }\n                }\nLAB_000568f0:\n                rStack_20c = _REG_NOERROR;\n                if ((((*(byte *)(aVar4.idx + 0x58) & 0x20) != 0) && (uVar8 == 0)) &&\n                   (((anon_union_4_2_91654ee9_for___value *)&(preg_00.mbcset)->nmbchars)->__wch == 0\n                   )) {\n                  if ((aVar4.mbcset)->range_ends != (wchar_t *)0x0) {\n                    aVar49.sbcset = (re_bitset_ptr_t)(*(int *)(puVar62 + 0x23754) + 0x6e4c);\n                    if (*(byte *)(*aVar4.sbcset + 4) < 0xd) {\n                    /* WARNING: Could not recover jumptable at 0x00056a60. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      rVar21 = (*(code *)(puVar62 +\n                                         aVar49.sbcset[*(byte *)(*aVar4.sbcset + 4)] + 0x2b71c))();\n                      return rVar21;\n                    }\n                    (**(code **)(puVar62 + 0x23bc4))(0);\n                    if (uVar60 != 0) {\n                      aVar49.idx = (Idx)&DAT_00000007;\n                      uVar8 = 0;\n                      do {\n                        prVar53 = (re_token_t *)(aVar4.mbcset)->mbchars + uVar8;\n                        if (prVar53->field_0x4 == '\x01') {\n                          if ((char)(prVar53->opr).c < '\0') {\n                            *(uint *)&prVar53->field_0x4 = *(uint *)&prVar53->field_0x4 & 0xfffffbff\n                            ;\n                          }\n                        }\n                        else if (prVar53->field_0x4 == '\x05') {\n                          prVar53->field_0x4 = 7;\n                        }\n                        uVar8 = uVar8 + 1;\n                      } while (uVar8 < (aVar4.mbcset)->range_ends);\n                    }\n                  }\n                  *(int *)(aVar4.idx + 0x5c) = 1;\n                  if (0 < *(Idx *)(aVar4.idx + 0x4c)) {\n                    uVar60 = 1;\n                  }\n                  *(byte *)(aVar4.idx + 0x58) =\n                       *(byte *)(aVar4.idx + 0x58) & 0x9f | (byte)((uVar60 & 1) << 6);\n                }\n                iVar55 = (*(bin_tree_t **)(aVar4.idx + 0x34))->first->node_idx;\n                *(int *)(aVar4.idx + 0x48) = iVar55;\n                aVar46.sbcset =\n                     (re_bitset_ptr_t)((re_node_set *)(aVar4.mbcset)->ncoll_syms + iVar55);\n                rVar34 = re_node_set_init_copy(&rStack_204,(re_node_set *)aVar46.mbcset);\n                rVar21 = rVar34;\n                rStack_208 = rVar34;\n                if (rVar34 == _REG_NOERROR) {\n                  if ((0 < *(Idx *)(aVar4.idx + 0x4c)) && (_REG_NOERROR < rStack_204.nelem)) {\n                    iVar55 = *(int *)(puVar62 + 0x23abc);\n                    iVar61 = *(int *)(puVar62 + 0x23abc);\n                    rVar21 = _REG_NOERROR;\n                    do {\n                      aVar49.sbcset =\n                           (re_bitset_ptr_t)\n                           ((re_token_t *)(aVar4.mbcset)->mbchars + rStack_204.elems[rVar21]);\n                      if (*(char *)&((re_node_set *)&(aVar49.mbcset)->range_starts)->alloc == '\x04'\n                         ) {\n                        rVar48 = _REG_NOERROR;\n                        piVar38 = rStack_204.elems;\n                        if (rStack_204.nelem < _REG_NOMATCH) {\nLAB_00056b8c:\n                          if (rStack_204.nelem != rVar48) {\n                            iVar33 = *((re_node_set *)(aVar4.mbcset)->nmbchars)\n                                      [rStack_204.elems[rVar21]].elems;\n                            iVar58 = (*(code *)(iVar55 + 0x5ea8))(&rStack_204,iVar33);\n                            if (iVar58 == 0) {\n                              aVar46.sbcset =\n                                   (re_bitset_ptr_t)\n                                   ((re_node_set *)(aVar4.mbcset)->ncoll_syms + iVar33);\n                              rVar21 = (*(code *)(iVar61 + 0x7f1c))(&rStack_204);\n                              if (rVar21 != _REG_NOERROR) goto LAB_00056cb8;\n                            }\n                          }\n                        }\n                        else {\n                          do {\n                            prVar53 = (re_token_t *)(aVar4.mbcset)->mbchars + *piVar38;\n                            if ((prVar53->field_0x4 == '\t') &&\n                               ((prVar53->opr).sbcset == (re_bitset_ptr_t)*aVar49.sbcset))\n                            goto LAB_00056b8c;\n                            rVar48 = rVar48 + _REG_NOMATCH;\n                            piVar38 = piVar38 + 1;\n                          } while (rStack_204.nelem != rVar48);\n                        }\n                      }\n                      rVar21 = rVar21 + _REG_NOMATCH;\n                    } while (rVar21 < rStack_204.nelem);\n                  }\n                  aVar49.sbcset = (re_bitset_ptr_t)&rStack_204;\n                  aVar46 = aVar4;\n                  prVar35 = re_acquire_state_context\n                                      (&rStack_208,(re_dfa_t *)aVar4.mbcset,\n                                       (re_node_set *)aVar49.mbcset,0);\n                  (aVar4.mbcset)->nchar_classes = (Idx)prVar35;\n                  rVar21 = rStack_208;\n                  if (prVar35 != (re_dfastate_t *)0x0) {\n                    if ((prVar35->field_0x34 & 1) == 0) {\n                      *(re_dfastate_t **)(aVar4.idx + 0x30) = prVar35;\n                      *(re_dfastate_t **)(aVar4.idx + 0x2c) = prVar35;\n                      *(re_dfastate_t **)(aVar4.idx + 0x28) = prVar35;\n                    }\n                    else {\n                      aVar49.sbcset = (re_bitset_ptr_t)&rStack_204;\n                      prVar35 = re_acquire_state_context\n                                          (&rStack_208,(re_dfa_t *)aVar4.mbcset,\n                                           (re_node_set *)aVar49.mbcset,1);\n                      *(re_dfastate_t **)(aVar4.idx + 0x28) = prVar35;\n                      prVar35 = re_acquire_state_context\n                                          (&rStack_208,(re_dfa_t *)aVar4.mbcset,\n                                           (re_node_set *)aVar49.mbcset,2);\n                      *(re_dfastate_t **)(aVar4.idx + 0x2c) = prVar35;\n                      aVar46 = aVar4;\n                      prVar35 = re_acquire_state_context\n                                          (&rStack_208,(re_dfa_t *)aVar4.mbcset,\n                                           (re_node_set *)aVar49.mbcset,6);\n                      *(re_dfastate_t **)(aVar4.idx + 0x30) = prVar35;\n                      rVar21 = rStack_208;\n                      if (((*(re_dfastate_t **)(aVar4.idx + 0x28) == (re_dfastate_t *)0x0) ||\n                          (*(re_dfastate_t **)(aVar4.idx + 0x2c) == (re_dfastate_t *)0x0)) ||\n                         (prVar35 == (re_dfastate_t *)0x0)) goto LAB_00056cb8;\n                    }\n                    (**(code **)(puVar62 + 0x23dc0))(rStack_204.elems);\n                    rVar21 = rVar34;\n                  }\n                }\nLAB_00056cb8:\n                rStack_20c = rVar21;\n                free_workarea_compile((regex_t *)preg_00.mbcset);\n                re_string_destruct((re_string_t *)&aStack_1f8);\n                rVar21 = rStack_20c;\n                if (rStack_20c != _REG_NOERROR) {\n                  if (*(int *)(puVar62 + 0x23c78) != 0) {\n                    (**(code **)(puVar62 + 0x23df0))((pthread_mutex_t *)(aVar4.idx + 0x88));\n                  }\n                  free_dfa_content((re_dfa_t *)aVar4.mbcset);\n                  *preg_00.sbcset = 0;\n                  ((re_node_set *)&(preg_00.mbcset)->range_starts)->alloc = 0;\n                  rVar21 = rStack_20c;\n                }\n                goto LAB_00056cfc;\n              }\n            }\n          }\n        }\n      }\n      else {\n        aVar49.sbcset = (re_bitset_ptr_t)0x0;\n        if ((re_dfa_t *)aVar45.sbcset != (re_dfa_t *)0x0) {\n          aVar56.mbcset =\n               (re_charset_t *)create_tree(prVar59,(bin_tree_t *)0x0,(bin_tree_t *)0x0,END_OF_RE);\n          goto LAB_000564b0;\n        }\nLAB_000566f4:\n        *(bin_tree_t **)(aVar4.idx + 0x34) = (bin_tree_t *)0x0;\n        rVar21 = rStack_20c;\n      }" if (parenthesized_expression "(rStack_20c == _REG_NOERROR)" ( (binary_expression "rStack_20c == _REG_NOERROR" identifier == identifier) )) (compound_statement "{\n        aVar49.sbcset = (re_bitset_ptr_t)0x0;\n        aVar46.sbcset = (re_bitset_ptr_t)0x0;\n        aVar56.mbcset =\n             (re_charset_t *)create_tree(prVar59,(bin_tree_t *)0x0,(bin_tree_t *)0x0,END_OF_RE);\n        aVar39.mbcset = aVar56.mbcset;\n        if ((re_dfa_t *)aVar45.sbcset != (re_dfa_t *)0x0) {\nLAB_000564b0:\n          aVar49 = aVar56;\n          aVar39.sbcset =\n               (re_bitset_ptr_t)\n               create_tree(prVar59,(bin_tree_t *)aVar45.mbcset,aVar56.sbcset,CONCAT);\n          aVar46 = aVar45;\n        }\n        if (((re_dfa_t *)aVar56.sbcset == (re_dfa_t *)0x0) ||\n           (pcVar5 = *(code **)(puVar62 + 0x23cf0), (re_dfa_t *)aVar39.sbcset == (re_dfa_t *)0x0)) {\n          rStack_20c = _REG_ESPACE;\n          goto LAB_000566f4;\n        }\n        ((anon_union_4_5_a39f51ca_for_opr *)(aVar4.idx + 0x34))->mbcset = (re_charset_t *)aVar39;\n        aVar45.mbcset = (re_charset_t *)*preg_00.sbcset;\n        iVar61 = ((re_node_set *)&(aVar45.mbcset)->range_starts)->alloc;\n        iVar55 = iVar61 << 2;\n        pwVar27 = (wctype_t *)(*pcVar5)(iVar55);\n        (aVar45.mbcset)->char_classes = pwVar27;\n        iVar55 = (**(code **)(puVar62 + 0x23cf0))(iVar55);\n        ((re_node_set *)(aVar45.idx + 0x10))->alloc = iVar55;\n        iVar61 = iVar61 * 0xc;\n        uVar60 = (**(code **)(puVar62 + 0x23cf0))(iVar61);\n        ((anon_union_4_2_91654ee9_for___value *)&(aVar45.mbcset)->nmbchars)->__wch = uVar60;\n        prVar28 = (re_node_set *)(**(code **)(puVar62 + 0x23cf0))(iVar61);\n        (aVar45.mbcset)->ncoll_syms = (Idx)prVar28;\n        if (pwVar27 == (wctype_t *)0x0) {\n          rVar21 = _REG_ESPACE;\n        }\n        else if (iVar55 == 0) {\n          rVar21 = _REG_ESPACE;\n        }\n        else if (uVar60 == 0) {\n          rVar21 = _REG_ESPACE;\n        }\n        else if (prVar28 == (re_node_set *)0x0) {\n          rVar21 = _REG_ESPACE;\n        }\n        else {\n          pprVar29 = (re_sub_match_top_t **)\n                     (**(code **)(puVar62 + 0x23cf0))((int)(preg_00.mbcset)->ncoll_syms << 2);\n          *(re_sub_match_top_t ***)(aVar45.idx + 0x84) = pprVar29;\n          if (pprVar29 != (re_sub_match_top_t **)0x0) {\n            prVar30 = (re_sub_match_top_t *)0x0;\n            if ((re_node_set *)(preg_00.mbcset)->ncoll_syms != (re_node_set *)0x0) {\n              do {\n                (*(re_sub_match_top_t ***)(aVar45.idx + 0x84))[(int)prVar30] = prVar30;\n                prVar30 = (re_sub_match_top_t *)((int)&prVar30->str_idx + 1);\n              } while (prVar30 < (re_sub_match_top_t *)(preg_00.mbcset)->ncoll_syms);\n            }\n            preorder(*(bin_tree_t **)(aVar45.idx + 0x34),\n                     (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)\n                     (*(int *)(puVar62 + 0x23abc) + 0x60e8),aVar45.sbcset);\n            prVar30 = (re_sub_match_top_t *)(preg_00.mbcset)->ncoll_syms;\n            if (prVar30 == (re_sub_match_top_t *)0x0) {\nLAB_00056704:\n              (**(code **)(puVar62 + 0x23dc0))(*(re_sub_match_top_t ***)(aVar45.idx + 0x84));\n              *(re_sub_match_top_t ***)(aVar45.idx + 0x84) = (re_sub_match_top_t **)0x0;\n            }\n            else {\n              pprVar29 = *(re_sub_match_top_t ***)(aVar45.idx + 0x84);\n              if (*pprVar29 == (re_sub_match_top_t *)0x0) {\n                prVar31 = (re_sub_match_top_t *)0x0;\n                do {\n                  pprVar29 = pprVar29 + 1;\n                  prVar31 = (re_sub_match_top_t *)((int)&prVar31->str_idx + 1);\n                  if (prVar30 == prVar31) {\n                    if (prVar30 == prVar31) goto LAB_00056704;\n                    break;\n                  }\n                } while (*pprVar29 == prVar31);\n              }\n            }\n          }\n          aVar46.sbcset = (re_bitset_ptr_t)(*(int *)(puVar62 + 0x23abc) + 0x73a4);\n          rVar21 = postorder(*(bin_tree_t **)(aVar45.idx + 0x34),\n                             (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar46.sbcset,\n                             preg_00.sbcset);\n          aVar49.mbcset = aVar45.mbcset;\n          if (rVar21 == _REG_NOERROR) {\n            aVar46.sbcset = (re_bitset_ptr_t)(*(int *)(puVar62 + 0x23b40) + -0x5be4);\n            rVar21 = postorder(*(bin_tree_t **)(aVar45.idx + 0x34),\n                               (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar46.sbcset,\n                               aVar45.sbcset);\n            if (rVar21 == _REG_NOERROR) {\n              preorder(*(bin_tree_t **)(aVar45.idx + 0x34),\n                       (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)\n                       (*(int *)(puVar62 + 0x23abc) + 0x61b4),aVar45.sbcset);\n              aVar46.sbcset = (re_bitset_ptr_t)(*(int *)(puVar62 + 0x23b40) + -0x4614);\n              rVar21 = preorder(*(bin_tree_t **)(aVar45.idx + 0x34),\n                                (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar46.sbcset,\n                                aVar45.sbcset);\n              if (rVar21 == _REG_NOERROR) {\n                uVar60 = 0;\n                iVar55 = *(int *)(puVar62 + 0x23b40);\n                aVar56.sbcset = (re_bitset_ptr_t)0x0;\nLAB_00056744:\n                if ((re_dfa_t *)(aVar45.mbcset)->range_ends != (re_dfa_t *)aVar56.sbcset) {\nLAB_00056750:\n                  if (((re_node_set *)(aVar45.mbcset)->ncoll_syms)[aVar56.idx].nelem == 0) {\n                    aVar46.mbcset = aVar45.mbcset;\n                    aVar49 = aVar56;\n                    rVar21 = (*(code *)(iVar55 + -0x561c))\n                                       (&rStack_204,aVar45.sbcset,aVar56.sbcset,1);\n                    if (rVar21 != _REG_NOERROR) goto LAB_00056168;\n                    if (((re_node_set *)(aVar45.mbcset)->ncoll_syms)[aVar56.idx].nelem == 0) {\n                      (**(code **)(puVar62 + 0x23dc0))(rStack_204.elems);\n                      uVar60 = 1;\n                    }\n                  }\n                  aVar56.sbcset =\n                       (re_bitset_ptr_t)\n                       ((int)&((re_string_t *)&(aVar56.mbcset)->mbchars)->raw_mbs + 1);\n                  goto LAB_00056744;\n                }\n                if (uVar60 != 0) {\n                  uVar60 = 0;\n                  aVar56.sbcset = (re_bitset_ptr_t)0x0;\n                  goto LAB_00056750;\n                }\n                if ((((((re_node_set *)&(preg_00.mbcset)->nequiv_classes)->alloc & 0x8000000) == 0)\n                    && ((re_node_set *)(preg_00.mbcset)->ncoll_syms != (re_node_set *)0x0)) &&\n                   (*(char *)(aVar45.idx + 0x58) < '\0')) {\n                  pwVar57 = (wint_t *)(aVar45.mbcset)->range_ends;\n                }\n                else {\n                  if (*(Idx *)(aVar45.idx + 0x4c) == 0) goto LAB_000568f0;\n                  pwVar57 = (wint_t *)(aVar45.mbcset)->range_ends;\n                }\n                iVar55 = (**(code **)(puVar62 + 0x23cf0))((int)pwVar57 * 0xc);\n                ((re_node_set *)&(aVar45.mbcset)->nequiv_classes)->alloc = iVar55;\n                if (iVar55 == 0) {\n                  rVar21 = _REG_ESPACE;\n                  goto LAB_00056168;\n                }\n                if (pwVar57 != (wint_t *)0x0) {\n                  iVar55 = 0;\n                  uVar26 = 0;\n                  do {\n                    puVar32 = (undefined1 *)\n                              (((re_node_set *)&(aVar45.mbcset)->nequiv_classes)->alloc + iVar55);\n                    *puVar32 = 0;\n                    puVar32[1] = 0;\n                    puVar32[2] = 0;\n                    puVar32[3] = 0;\n                    puVar32[4] = 0;\n                    puVar32[5] = 0;\n                    puVar32[6] = 0;\n                    puVar32[7] = 0;\n                    puVar32[8] = 0;\n                    puVar32[9] = 0;\n                    puVar32[10] = 0;\n                    puVar32[0xb] = 0;\n                    uVar26 = uVar26 + 1;\n                    iVar55 = iVar55 + 0xc;\n                  } while (uVar26 < (aVar45.mbcset)->range_ends);\n                  iVar55 = *(int *)(puVar62 + 0x23abc);\n                  if ((wint_t *)(aVar45.mbcset)->range_ends != (wint_t *)0x0) {\n                    iVar61 = 0;\n                    aStack_218.sbcset = (re_bitset_ptr_t)0x0;\n                    do {\n                      piVar38 = *(int **)((int)&((re_node_set *)(aVar45.mbcset)->ncoll_syms)->elems\n                                         + iVar61);\n                      if (0 < *(int *)((int)&((re_node_set *)(aVar45.mbcset)->ncoll_syms)->nelem +\n                                      iVar61)) {\n                        iVar58 = 0;\n                        do {\n                          aVar46 = aStack_218;\n                          iVar33 = (*(code *)(iVar55 + 0x6e30))\n                                             (((re_node_set *)&(aVar45.mbcset)->nequiv_classes)->\n                                              alloc + *piVar38 * 0xc);\n                          rVar21 = _REG_ESPACE;\n                          if (iVar33 == 0) goto LAB_00056168;\n                          iVar58 = iVar58 + 1;\n                          piVar38 = piVar38 + 1;\n                        } while (iVar58 < *(int *)((int)&((re_node_set *)(aVar45.mbcset)->ncoll_syms\n                                                         )->nelem + iVar61));\n                      }\n                      aStack_218.sbcset =\n                           (re_bitset_ptr_t)\n                           ((int)&((re_string_t *)&(aStack_218.mbcset)->mbchars)->raw_mbs + 1);\n                      iVar61 = iVar61 + 0xc;\n                    } while (aStack_218.sbcset < (re_dfa_t *)(aVar45.mbcset)->range_ends);\n                  }\n                }\nLAB_000568f0:\n                rStack_20c = _REG_NOERROR;\n                if ((((*(byte *)(aVar4.idx + 0x58) & 0x20) != 0) && (uVar8 == 0)) &&\n                   (((anon_union_4_2_91654ee9_for___value *)&(preg_00.mbcset)->nmbchars)->__wch == 0\n                   )) {\n                  if ((aVar4.mbcset)->range_ends != (wchar_t *)0x0) {\n                    aVar49.sbcset = (re_bitset_ptr_t)(*(int *)(puVar62 + 0x23754) + 0x6e4c);\n                    if (*(byte *)(*aVar4.sbcset + 4) < 0xd) {\n                    /* WARNING: Could not recover jumptable at 0x00056a60. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      rVar21 = (*(code *)(puVar62 +\n                                         aVar49.sbcset[*(byte *)(*aVar4.sbcset + 4)] + 0x2b71c))();\n                      return rVar21;\n                    }\n                    (**(code **)(puVar62 + 0x23bc4))(0);\n                    if (uVar60 != 0) {\n                      aVar49.idx = (Idx)&DAT_00000007;\n                      uVar8 = 0;\n                      do {\n                        prVar53 = (re_token_t *)(aVar4.mbcset)->mbchars + uVar8;\n                        if (prVar53->field_0x4 == '\x01') {\n                          if ((char)(prVar53->opr).c < '\0') {\n                            *(uint *)&prVar53->field_0x4 = *(uint *)&prVar53->field_0x4 & 0xfffffbff\n                            ;\n                          }\n                        }\n                        else if (prVar53->field_0x4 == '\x05') {\n                          prVar53->field_0x4 = 7;\n                        }\n                        uVar8 = uVar8 + 1;\n                      } while (uVar8 < (aVar4.mbcset)->range_ends);\n                    }\n                  }\n                  *(int *)(aVar4.idx + 0x5c) = 1;\n                  if (0 < *(Idx *)(aVar4.idx + 0x4c)) {\n                    uVar60 = 1;\n                  }\n                  *(byte *)(aVar4.idx + 0x58) =\n                       *(byte *)(aVar4.idx + 0x58) & 0x9f | (byte)((uVar60 & 1) << 6);\n                }\n                iVar55 = (*(bin_tree_t **)(aVar4.idx + 0x34))->first->node_idx;\n                *(int *)(aVar4.idx + 0x48) = iVar55;\n                aVar46.sbcset =\n                     (re_bitset_ptr_t)((re_node_set *)(aVar4.mbcset)->ncoll_syms + iVar55);\n                rVar34 = re_node_set_init_copy(&rStack_204,(re_node_set *)aVar46.mbcset);\n                rVar21 = rVar34;\n                rStack_208 = rVar34;\n                if (rVar34 == _REG_NOERROR) {\n                  if ((0 < *(Idx *)(aVar4.idx + 0x4c)) && (_REG_NOERROR < rStack_204.nelem)) {\n                    iVar55 = *(int *)(puVar62 + 0x23abc);\n                    iVar61 = *(int *)(puVar62 + 0x23abc);\n                    rVar21 = _REG_NOERROR;\n                    do {\n                      aVar49.sbcset =\n                           (re_bitset_ptr_t)\n                           ((re_token_t *)(aVar4.mbcset)->mbchars + rStack_204.elems[rVar21]);\n                      if (*(char *)&((re_node_set *)&(aVar49.mbcset)->range_starts)->alloc == '\x04'\n                         ) {\n                        rVar48 = _REG_NOERROR;\n                        piVar38 = rStack_204.elems;\n                        if (rStack_204.nelem < _REG_NOMATCH) {\nLAB_00056b8c:\n                          if (rStack_204.nelem != rVar48) {\n                            iVar33 = *((re_node_set *)(aVar4.mbcset)->nmbchars)\n                                      [rStack_204.elems[rVar21]].elems;\n                            iVar58 = (*(code *)(iVar55 + 0x5ea8))(&rStack_204,iVar33);\n                            if (iVar58 == 0) {\n                              aVar46.sbcset =\n                                   (re_bitset_ptr_t)\n                                   ((re_node_set *)(aVar4.mbcset)->ncoll_syms + iVar33);\n                              rVar21 = (*(code *)(iVar61 + 0x7f1c))(&rStack_204);\n                              if (rVar21 != _REG_NOERROR) goto LAB_00056cb8;\n                            }\n                          }\n                        }\n                        else {\n                          do {\n                            prVar53 = (re_token_t *)(aVar4.mbcset)->mbchars + *piVar38;\n                            if ((prVar53->field_0x4 == '\t') &&\n                               ((prVar53->opr).sbcset == (re_bitset_ptr_t)*aVar49.sbcset))\n                            goto LAB_00056b8c;\n                            rVar48 = rVar48 + _REG_NOMATCH;\n                            piVar38 = piVar38 + 1;\n                          } while (rStack_204.nelem != rVar48);\n                        }\n                      }\n                      rVar21 = rVar21 + _REG_NOMATCH;\n                    } while (rVar21 < rStack_204.nelem);\n                  }\n                  aVar49.sbcset = (re_bitset_ptr_t)&rStack_204;\n                  aVar46 = aVar4;\n                  prVar35 = re_acquire_state_context\n                                      (&rStack_208,(re_dfa_t *)aVar4.mbcset,\n                                       (re_node_set *)aVar49.mbcset,0);\n                  (aVar4.mbcset)->nchar_classes = (Idx)prVar35;\n                  rVar21 = rStack_208;\n                  if (prVar35 != (re_dfastate_t *)0x0) {\n                    if ((prVar35->field_0x34 & 1) == 0) {\n                      *(re_dfastate_t **)(aVar4.idx + 0x30) = prVar35;\n                      *(re_dfastate_t **)(aVar4.idx + 0x2c) = prVar35;\n                      *(re_dfastate_t **)(aVar4.idx + 0x28) = prVar35;\n                    }\n                    else {\n                      aVar49.sbcset = (re_bitset_ptr_t)&rStack_204;\n                      prVar35 = re_acquire_state_context\n                                          (&rStack_208,(re_dfa_t *)aVar4.mbcset,\n                                           (re_node_set *)aVar49.mbcset,1);\n                      *(re_dfastate_t **)(aVar4.idx + 0x28) = prVar35;\n                      prVar35 = re_acquire_state_context\n                                          (&rStack_208,(re_dfa_t *)aVar4.mbcset,\n                                           (re_node_set *)aVar49.mbcset,2);\n                      *(re_dfastate_t **)(aVar4.idx + 0x2c) = prVar35;\n                      aVar46 = aVar4;\n                      prVar35 = re_acquire_state_context\n                                          (&rStack_208,(re_dfa_t *)aVar4.mbcset,\n                                           (re_node_set *)aVar49.mbcset,6);\n                      *(re_dfastate_t **)(aVar4.idx + 0x30) = prVar35;\n                      rVar21 = rStack_208;\n                      if (((*(re_dfastate_t **)(aVar4.idx + 0x28) == (re_dfastate_t *)0x0) ||\n                          (*(re_dfastate_t **)(aVar4.idx + 0x2c) == (re_dfastate_t *)0x0)) ||\n                         (prVar35 == (re_dfastate_t *)0x0)) goto LAB_00056cb8;\n                    }\n                    (**(code **)(puVar62 + 0x23dc0))(rStack_204.elems);\n                    rVar21 = rVar34;\n                  }\n                }\nLAB_00056cb8:\n                rStack_20c = rVar21;\n                free_workarea_compile((regex_t *)preg_00.mbcset);\n                re_string_destruct((re_string_t *)&aStack_1f8);\n                rVar21 = rStack_20c;\n                if (rStack_20c != _REG_NOERROR) {\n                  if (*(int *)(puVar62 + 0x23c78) != 0) {\n                    (**(code **)(puVar62 + 0x23df0))((pthread_mutex_t *)(aVar4.idx + 0x88));\n                  }\n                  free_dfa_content((re_dfa_t *)aVar4.mbcset);\n                  *preg_00.sbcset = 0;\n                  ((re_node_set *)&(preg_00.mbcset)->range_starts)->alloc = 0;\n                  rVar21 = rStack_20c;\n                }\n                goto LAB_00056cfc;\n              }\n            }\n          }\n        }\n      }" { (expression_statement "aVar49.sbcset = (re_bitset_ptr_t)0x0;" (assignment_expression "aVar49.sbcset = (re_bitset_ptr_t)0x0" (field_expression "aVar49.sbcset" identifier . field_identifier) = (cast_expression "(re_bitset_ptr_t)0x0" ( (type_descriptor "re_bitset_ptr_t" type_identifier) ) number_literal)) ;) (expression_statement "aVar46.sbcset = (re_bitset_ptr_t)0x0;" (assignment_expression "aVar46.sbcset = (re_bitset_ptr_t)0x0" (field_expression "aVar46.sbcset" identifier . field_identifier) = (cast_expression "(re_bitset_ptr_t)0x0" ( (type_descriptor "re_bitset_ptr_t" type_identifier) ) number_literal)) ;) (expression_statement "aVar56.mbcset =\n             (re_charset_t *)create_tree(prVar59,(bin_tree_t *)0x0,(bin_tree_t *)0x0,END_OF_RE);" (assignment_expression "aVar56.mbcset =\n             (re_charset_t *)create_tree(prVar59,(bin_tree_t *)0x0,(bin_tree_t *)0x0,END_OF_RE)" (field_expression "aVar56.mbcset" identifier . field_identifier) = (cast_expression "(re_charset_t *)create_tree(prVar59,(bin_tree_t *)0x0,(bin_tree_t *)0x0,END_OF_RE)" ( (type_descriptor "re_charset_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "create_tree(prVar59,(bin_tree_t *)0x0,(bin_tree_t *)0x0,END_OF_RE)" identifier (argument_list "(prVar59,(bin_tree_t *)0x0,(bin_tree_t *)0x0,END_OF_RE)" ( identifier , (cast_expression "(bin_tree_t *)0x0" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (cast_expression "(bin_tree_t *)0x0" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , identifier ))))) ;) (expression_statement "aVar39.mbcset = aVar56.mbcset;" (assignment_expression "aVar39.mbcset = aVar56.mbcset" (field_expression "aVar39.mbcset" identifier . field_identifier) = (field_expression "aVar56.mbcset" identifier . field_identifier)) ;) (if_statement "if ((re_dfa_t *)aVar45.sbcset != (re_dfa_t *)0x0) {\nLAB_000564b0:\n          aVar49 = aVar56;\n          aVar39.sbcset =\n               (re_bitset_ptr_t)\n               create_tree(prVar59,(bin_tree_t *)aVar45.mbcset,aVar56.sbcset,CONCAT);\n          aVar46 = aVar45;\n        }" if (parenthesized_expression "((re_dfa_t *)aVar45.sbcset != (re_dfa_t *)0x0)" ( (binary_expression "(re_dfa_t *)aVar45.sbcset != (re_dfa_t *)0x0" (cast_expression "(re_dfa_t *)aVar45.sbcset" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "aVar45.sbcset" identifier . field_identifier)) != (cast_expression "(re_dfa_t *)0x0" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_000564b0:\n          aVar49 = aVar56;\n          aVar39.sbcset =\n               (re_bitset_ptr_t)\n               create_tree(prVar59,(bin_tree_t *)aVar45.mbcset,aVar56.sbcset,CONCAT);\n          aVar46 = aVar45;\n        }" { (labeled_statement "LAB_000564b0:\n          aVar49 = aVar56;" statement_identifier : (expression_statement "aVar49 = aVar56;" (assignment_expression "aVar49 = aVar56" identifier = identifier) ;)) (expression_statement "aVar39.sbcset =\n               (re_bitset_ptr_t)\n               create_tree(prVar59,(bin_tree_t *)aVar45.mbcset,aVar56.sbcset,CONCAT);" (assignment_expression "aVar39.sbcset =\n               (re_bitset_ptr_t)\n               create_tree(prVar59,(bin_tree_t *)aVar45.mbcset,aVar56.sbcset,CONCAT)" (field_expression "aVar39.sbcset" identifier . field_identifier) = (cast_expression "(re_bitset_ptr_t)\n               create_tree(prVar59,(bin_tree_t *)aVar45.mbcset,aVar56.sbcset,CONCAT)" ( (type_descriptor "re_bitset_ptr_t" type_identifier) ) (call_expression "create_tree(prVar59,(bin_tree_t *)aVar45.mbcset,aVar56.sbcset,CONCAT)" identifier (argument_list "(prVar59,(bin_tree_t *)aVar45.mbcset,aVar56.sbcset,CONCAT)" ( identifier , (cast_expression "(bin_tree_t *)aVar45.mbcset" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "aVar45.mbcset" identifier . field_identifier)) , (field_expression "aVar56.sbcset" identifier . field_identifier) , identifier ))))) ;) (expression_statement "aVar46 = aVar45;" (assignment_expression "aVar46 = aVar45" identifier = identifier) ;) })) (if_statement "if (((re_dfa_t *)aVar56.sbcset == (re_dfa_t *)0x0) ||\n           (pcVar5 = *(code **)(puVar62 + 0x23cf0), (re_dfa_t *)aVar39.sbcset == (re_dfa_t *)0x0)) {\n          rStack_20c = _REG_ESPACE;\n          goto LAB_000566f4;\n        }" if (parenthesized_expression "(((re_dfa_t *)aVar56.sbcset == (re_dfa_t *)0x0) ||\n           (pcVar5 = *(code **)(puVar62 + 0x23cf0), (re_dfa_t *)aVar39.sbcset == (re_dfa_t *)0x0))" ( (binary_expression "((re_dfa_t *)aVar56.sbcset == (re_dfa_t *)0x0) ||\n           (pcVar5 = *(code **)(puVar62 + 0x23cf0), (re_dfa_t *)aVar39.sbcset == (re_dfa_t *)0x0)" (parenthesized_expression "((re_dfa_t *)aVar56.sbcset == (re_dfa_t *)0x0)" ( (binary_expression "(re_dfa_t *)aVar56.sbcset == (re_dfa_t *)0x0" (cast_expression "(re_dfa_t *)aVar56.sbcset" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "aVar56.sbcset" identifier . field_identifier)) == (cast_expression "(re_dfa_t *)0x0" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(pcVar5 = *(code **)(puVar62 + 0x23cf0), (re_dfa_t *)aVar39.sbcset == (re_dfa_t *)0x0)" ( (comma_expression "pcVar5 = *(code **)(puVar62 + 0x23cf0), (re_dfa_t *)aVar39.sbcset == (re_dfa_t *)0x0" (assignment_expression "pcVar5 = *(code **)(puVar62 + 0x23cf0)" identifier = (pointer_expression "*(code **)(puVar62 + 0x23cf0)" * (cast_expression "(code **)(puVar62 + 0x23cf0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar62 + 0x23cf0)" ( (binary_expression "puVar62 + 0x23cf0" identifier + number_literal) ))))) , (binary_expression "(re_dfa_t *)aVar39.sbcset == (re_dfa_t *)0x0" (cast_expression "(re_dfa_t *)aVar39.sbcset" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "aVar39.sbcset" identifier . field_identifier)) == (cast_expression "(re_dfa_t *)0x0" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n          rStack_20c = _REG_ESPACE;\n          goto LAB_000566f4;\n        }" { (expression_statement "rStack_20c = _REG_ESPACE;" (assignment_expression "rStack_20c = _REG_ESPACE" identifier = identifier) ;) (goto_statement "goto LAB_000566f4;" goto statement_identifier ;) })) (expression_statement "((anon_union_4_5_a39f51ca_for_opr *)(aVar4.idx + 0x34))->mbcset = (re_charset_t *)aVar39;" (assignment_expression "((anon_union_4_5_a39f51ca_for_opr *)(aVar4.idx + 0x34))->mbcset = (re_charset_t *)aVar39" (field_expression "((anon_union_4_5_a39f51ca_for_opr *)(aVar4.idx + 0x34))->mbcset" (parenthesized_expression "((anon_union_4_5_a39f51ca_for_opr *)(aVar4.idx + 0x34))" ( (cast_expression "(anon_union_4_5_a39f51ca_for_opr *)(aVar4.idx + 0x34)" ( (type_descriptor "anon_union_4_5_a39f51ca_for_opr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(aVar4.idx + 0x34)" ( (binary_expression "aVar4.idx + 0x34" (field_expression "aVar4.idx" identifier . field_identifier) + number_literal) ))) )) -> field_identifier) = (cast_expression "(re_charset_t *)aVar39" ( (type_descriptor "re_charset_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "aVar45.mbcset = (re_charset_t *)*preg_00.sbcset;" (assignment_expression "aVar45.mbcset = (re_charset_t *)*preg_00.sbcset" (field_expression "aVar45.mbcset" identifier . field_identifier) = (cast_expression "(re_charset_t *)*preg_00.sbcset" ( (type_descriptor "re_charset_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*preg_00.sbcset" * (field_expression "preg_00.sbcset" identifier . field_identifier)))) ;) (expression_statement "iVar61 = ((re_node_set *)&(aVar45.mbcset)->range_starts)->alloc;" (assignment_expression "iVar61 = ((re_node_set *)&(aVar45.mbcset)->range_starts)->alloc" identifier = (field_expression "((re_node_set *)&(aVar45.mbcset)->range_starts)->alloc" (parenthesized_expression "((re_node_set *)&(aVar45.mbcset)->range_starts)" ( (cast_expression "(re_node_set *)&(aVar45.mbcset)->range_starts" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(aVar45.mbcset)->range_starts" & (field_expression "(aVar45.mbcset)->range_starts" (parenthesized_expression "(aVar45.mbcset)" ( (field_expression "aVar45.mbcset" identifier . field_identifier) )) -> field_identifier))) )) -> field_identifier)) ;) (expression_statement "iVar55 = iVar61 << 2;" (assignment_expression "iVar55 = iVar61 << 2" identifier = (binary_expression "iVar61 << 2" identifier << number_literal)) ;) (expression_statement "pwVar27 = (wctype_t *)(*pcVar5)(iVar55);" (assignment_expression "pwVar27 = (wctype_t *)(*pcVar5)(iVar55)" identifier = (cast_expression "(wctype_t *)(*pcVar5)(iVar55)" ( (type_descriptor "wctype_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar5)(iVar55)" (parenthesized_expression "(*pcVar5)" ( (pointer_expression "*pcVar5" * identifier) )) (argument_list "(iVar55)" ( identifier ))))) ;) (expression_statement "(aVar45.mbcset)->char_classes = pwVar27;" (assignment_expression "(aVar45.mbcset)->char_classes = pwVar27" (field_expression "(aVar45.mbcset)->char_classes" (parenthesized_expression "(aVar45.mbcset)" ( (field_expression "aVar45.mbcset" identifier . field_identifier) )) -> field_identifier) = identifier) ;) (expression_statement "iVar55 = (**(code **)(puVar62 + 0x23cf0))(iVar55);" (assignment_expression "iVar55 = (**(code **)(puVar62 + 0x23cf0))(iVar55)" identifier = (call_expression "(**(code **)(puVar62 + 0x23cf0))(iVar55)" (parenthesized_expression "(**(code **)(puVar62 + 0x23cf0))" ( (pointer_expression "**(code **)(puVar62 + 0x23cf0)" * (pointer_expression "*(code **)(puVar62 + 0x23cf0)" * (cast_expression "(code **)(puVar62 + 0x23cf0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar62 + 0x23cf0)" ( (binary_expression "puVar62 + 0x23cf0" identifier + number_literal) ))))) )) (argument_list "(iVar55)" ( identifier )))) ;) (expression_statement "((re_node_set *)(aVar45.idx + 0x10))->alloc = iVar55;" (assignment_expression "((re_node_set *)(aVar45.idx + 0x10))->alloc = iVar55" (field_expression "((re_node_set *)(aVar45.idx + 0x10))->alloc" (parenthesized_expression "((re_node_set *)(aVar45.idx + 0x10))" ( (cast_expression "(re_node_set *)(aVar45.idx + 0x10)" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(aVar45.idx + 0x10)" ( (binary_expression "aVar45.idx + 0x10" (field_expression "aVar45.idx" identifier . field_identifier) + number_literal) ))) )) -> field_identifier) = identifier) ;) (expression_statement "iVar61 = iVar61 * 0xc;" (assignment_expression "iVar61 = iVar61 * 0xc" identifier = (binary_expression "iVar61 * 0xc" identifier * number_literal)) ;) (expression_statement "uVar60 = (**(code **)(puVar62 + 0x23cf0))(iVar61);" (assignment_expression "uVar60 = (**(code **)(puVar62 + 0x23cf0))(iVar61)" identifier = (call_expression "(**(code **)(puVar62 + 0x23cf0))(iVar61)" (parenthesized_expression "(**(code **)(puVar62 + 0x23cf0))" ( (pointer_expression "**(code **)(puVar62 + 0x23cf0)" * (pointer_expression "*(code **)(puVar62 + 0x23cf0)" * (cast_expression "(code **)(puVar62 + 0x23cf0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar62 + 0x23cf0)" ( (binary_expression "puVar62 + 0x23cf0" identifier + number_literal) ))))) )) (argument_list "(iVar61)" ( identifier )))) ;) (expression_statement "((anon_union_4_2_91654ee9_for___value *)&(aVar45.mbcset)->nmbchars)->__wch = uVar60;" (assignment_expression "((anon_union_4_2_91654ee9_for___value *)&(aVar45.mbcset)->nmbchars)->__wch = uVar60" (field_expression "((anon_union_4_2_91654ee9_for___value *)&(aVar45.mbcset)->nmbchars)->__wch" (parenthesized_expression "((anon_union_4_2_91654ee9_for___value *)&(aVar45.mbcset)->nmbchars)" ( (cast_expression "(anon_union_4_2_91654ee9_for___value *)&(aVar45.mbcset)->nmbchars" ( (type_descriptor "anon_union_4_2_91654ee9_for___value *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(aVar45.mbcset)->nmbchars" & (field_expression "(aVar45.mbcset)->nmbchars" (parenthesized_expression "(aVar45.mbcset)" ( (field_expression "aVar45.mbcset" identifier . field_identifier) )) -> field_identifier))) )) -> field_identifier) = identifier) ;) (expression_statement "prVar28 = (re_node_set *)(**(code **)(puVar62 + 0x23cf0))(iVar61);" (assignment_expression "prVar28 = (re_node_set *)(**(code **)(puVar62 + 0x23cf0))(iVar61)" identifier = (cast_expression "(re_node_set *)(**(code **)(puVar62 + 0x23cf0))(iVar61)" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar62 + 0x23cf0))(iVar61)" (parenthesized_expression "(**(code **)(puVar62 + 0x23cf0))" ( (pointer_expression "**(code **)(puVar62 + 0x23cf0)" * (pointer_expression "*(code **)(puVar62 + 0x23cf0)" * (cast_expression "(code **)(puVar62 + 0x23cf0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar62 + 0x23cf0)" ( (binary_expression "puVar62 + 0x23cf0" identifier + number_literal) ))))) )) (argument_list "(iVar61)" ( identifier ))))) ;) (expression_statement "(aVar45.mbcset)->ncoll_syms = (Idx)prVar28;" (assignment_expression "(aVar45.mbcset)->ncoll_syms = (Idx)prVar28" (field_expression "(aVar45.mbcset)->ncoll_syms" (parenthesized_expression "(aVar45.mbcset)" ( (field_expression "aVar45.mbcset" identifier . field_identifier) )) -> field_identifier) = (cast_expression "(Idx)prVar28" ( (type_descriptor "Idx" type_identifier) ) identifier)) ;) (if_statement "if (pwVar27 == (wctype_t *)0x0) {\n          rVar21 = _REG_ESPACE;\n        }\n        else if (iVar55 == 0) {\n          rVar21 = _REG_ESPACE;\n        }\n        else if (uVar60 == 0) {\n          rVar21 = _REG_ESPACE;\n        }\n        else if (prVar28 == (re_node_set *)0x0) {\n          rVar21 = _REG_ESPACE;\n        }\n        else {\n          pprVar29 = (re_sub_match_top_t **)\n                     (**(code **)(puVar62 + 0x23cf0))((int)(preg_00.mbcset)->ncoll_syms << 2);\n          *(re_sub_match_top_t ***)(aVar45.idx + 0x84) = pprVar29;\n          if (pprVar29 != (re_sub_match_top_t **)0x0) {\n            prVar30 = (re_sub_match_top_t *)0x0;\n            if ((re_node_set *)(preg_00.mbcset)->ncoll_syms != (re_node_set *)0x0) {\n              do {\n                (*(re_sub_match_top_t ***)(aVar45.idx + 0x84))[(int)prVar30] = prVar30;\n                prVar30 = (re_sub_match_top_t *)((int)&prVar30->str_idx + 1);\n              } while (prVar30 < (re_sub_match_top_t *)(preg_00.mbcset)->ncoll_syms);\n            }\n            preorder(*(bin_tree_t **)(aVar45.idx + 0x34),\n                     (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)\n                     (*(int *)(puVar62 + 0x23abc) + 0x60e8),aVar45.sbcset);\n            prVar30 = (re_sub_match_top_t *)(preg_00.mbcset)->ncoll_syms;\n            if (prVar30 == (re_sub_match_top_t *)0x0) {\nLAB_00056704:\n              (**(code **)(puVar62 + 0x23dc0))(*(re_sub_match_top_t ***)(aVar45.idx + 0x84));\n              *(re_sub_match_top_t ***)(aVar45.idx + 0x84) = (re_sub_match_top_t **)0x0;\n            }\n            else {\n              pprVar29 = *(re_sub_match_top_t ***)(aVar45.idx + 0x84);\n              if (*pprVar29 == (re_sub_match_top_t *)0x0) {\n                prVar31 = (re_sub_match_top_t *)0x0;\n                do {\n                  pprVar29 = pprVar29 + 1;\n                  prVar31 = (re_sub_match_top_t *)((int)&prVar31->str_idx + 1);\n                  if (prVar30 == prVar31) {\n                    if (prVar30 == prVar31) goto LAB_00056704;\n                    break;\n                  }\n                } while (*pprVar29 == prVar31);\n              }\n            }\n          }\n          aVar46.sbcset = (re_bitset_ptr_t)(*(int *)(puVar62 + 0x23abc) + 0x73a4);\n          rVar21 = postorder(*(bin_tree_t **)(aVar45.idx + 0x34),\n                             (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar46.sbcset,\n                             preg_00.sbcset);\n          aVar49.mbcset = aVar45.mbcset;\n          if (rVar21 == _REG_NOERROR) {\n            aVar46.sbcset = (re_bitset_ptr_t)(*(int *)(puVar62 + 0x23b40) + -0x5be4);\n            rVar21 = postorder(*(bin_tree_t **)(aVar45.idx + 0x34),\n                               (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar46.sbcset,\n                               aVar45.sbcset);\n            if (rVar21 == _REG_NOERROR) {\n              preorder(*(bin_tree_t **)(aVar45.idx + 0x34),\n                       (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)\n                       (*(int *)(puVar62 + 0x23abc) + 0x61b4),aVar45.sbcset);\n              aVar46.sbcset = (re_bitset_ptr_t)(*(int *)(puVar62 + 0x23b40) + -0x4614);\n              rVar21 = preorder(*(bin_tree_t **)(aVar45.idx + 0x34),\n                                (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar46.sbcset,\n                                aVar45.sbcset);\n              if (rVar21 == _REG_NOERROR) {\n                uVar60 = 0;\n                iVar55 = *(int *)(puVar62 + 0x23b40);\n                aVar56.sbcset = (re_bitset_ptr_t)0x0;\nLAB_00056744:\n                if ((re_dfa_t *)(aVar45.mbcset)->range_ends != (re_dfa_t *)aVar56.sbcset) {\nLAB_00056750:\n                  if (((re_node_set *)(aVar45.mbcset)->ncoll_syms)[aVar56.idx].nelem == 0) {\n                    aVar46.mbcset = aVar45.mbcset;\n                    aVar49 = aVar56;\n                    rVar21 = (*(code *)(iVar55 + -0x561c))\n                                       (&rStack_204,aVar45.sbcset,aVar56.sbcset,1);\n                    if (rVar21 != _REG_NOERROR) goto LAB_00056168;\n                    if (((re_node_set *)(aVar45.mbcset)->ncoll_syms)[aVar56.idx].nelem == 0) {\n                      (**(code **)(puVar62 + 0x23dc0))(rStack_204.elems);\n                      uVar60 = 1;\n                    }\n                  }\n                  aVar56.sbcset =\n                       (re_bitset_ptr_t)\n                       ((int)&((re_string_t *)&(aVar56.mbcset)->mbchars)->raw_mbs + 1);\n                  goto LAB_00056744;\n                }\n                if (uVar60 != 0) {\n                  uVar60 = 0;\n                  aVar56.sbcset = (re_bitset_ptr_t)0x0;\n                  goto LAB_00056750;\n                }\n                if ((((((re_node_set *)&(preg_00.mbcset)->nequiv_classes)->alloc & 0x8000000) == 0)\n                    && ((re_node_set *)(preg_00.mbcset)->ncoll_syms != (re_node_set *)0x0)) &&\n                   (*(char *)(aVar45.idx + 0x58) < '\0')) {\n                  pwVar57 = (wint_t *)(aVar45.mbcset)->range_ends;\n                }\n                else {\n                  if (*(Idx *)(aVar45.idx + 0x4c) == 0) goto LAB_000568f0;\n                  pwVar57 = (wint_t *)(aVar45.mbcset)->range_ends;\n                }\n                iVar55 = (**(code **)(puVar62 + 0x23cf0))((int)pwVar57 * 0xc);\n                ((re_node_set *)&(aVar45.mbcset)->nequiv_classes)->alloc = iVar55;\n                if (iVar55 == 0) {\n                  rVar21 = _REG_ESPACE;\n                  goto LAB_00056168;\n                }\n                if (pwVar57 != (wint_t *)0x0) {\n                  iVar55 = 0;\n                  uVar26 = 0;\n                  do {\n                    puVar32 = (undefined1 *)\n                              (((re_node_set *)&(aVar45.mbcset)->nequiv_classes)->alloc + iVar55);\n                    *puVar32 = 0;\n                    puVar32[1] = 0;\n                    puVar32[2] = 0;\n                    puVar32[3] = 0;\n                    puVar32[4] = 0;\n                    puVar32[5] = 0;\n                    puVar32[6] = 0;\n                    puVar32[7] = 0;\n                    puVar32[8] = 0;\n                    puVar32[9] = 0;\n                    puVar32[10] = 0;\n                    puVar32[0xb] = 0;\n                    uVar26 = uVar26 + 1;\n                    iVar55 = iVar55 + 0xc;\n                  } while (uVar26 < (aVar45.mbcset)->range_ends);\n                  iVar55 = *(int *)(puVar62 + 0x23abc);\n                  if ((wint_t *)(aVar45.mbcset)->range_ends != (wint_t *)0x0) {\n                    iVar61 = 0;\n                    aStack_218.sbcset = (re_bitset_ptr_t)0x0;\n                    do {\n                      piVar38 = *(int **)((int)&((re_node_set *)(aVar45.mbcset)->ncoll_syms)->elems\n                                         + iVar61);\n                      if (0 < *(int *)((int)&((re_node_set *)(aVar45.mbcset)->ncoll_syms)->nelem +\n                                      iVar61)) {\n                        iVar58 = 0;\n                        do {\n                          aVar46 = aStack_218;\n                          iVar33 = (*(code *)(iVar55 + 0x6e30))\n                                             (((re_node_set *)&(aVar45.mbcset)->nequiv_classes)->\n                                              alloc + *piVar38 * 0xc);\n                          rVar21 = _REG_ESPACE;\n                          if (iVar33 == 0) goto LAB_00056168;\n                          iVar58 = iVar58 + 1;\n                          piVar38 = piVar38 + 1;\n                        } while (iVar58 < *(int *)((int)&((re_node_set *)(aVar45.mbcset)->ncoll_syms\n                                                         )->nelem + iVar61));\n                      }\n                      aStack_218.sbcset =\n                           (re_bitset_ptr_t)\n                           ((int)&((re_string_t *)&(aStack_218.mbcset)->mbchars)->raw_mbs + 1);\n                      iVar61 = iVar61 + 0xc;\n                    } while (aStack_218.sbcset < (re_dfa_t *)(aVar45.mbcset)->range_ends);\n                  }\n                }\nLAB_000568f0:\n                rStack_20c = _REG_NOERROR;\n                if ((((*(byte *)(aVar4.idx + 0x58) & 0x20) != 0) && (uVar8 == 0)) &&\n                   (((anon_union_4_2_91654ee9_for___value *)&(preg_00.mbcset)->nmbchars)->__wch == 0\n                   )) {\n                  if ((aVar4.mbcset)->range_ends != (wchar_t *)0x0) {\n                    aVar49.sbcset = (re_bitset_ptr_t)(*(int *)(puVar62 + 0x23754) + 0x6e4c);\n                    if (*(byte *)(*aVar4.sbcset + 4) < 0xd) {\n                    /* WARNING: Could not recover jumptable at 0x00056a60. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      rVar21 = (*(code *)(puVar62 +\n                                         aVar49.sbcset[*(byte *)(*aVar4.sbcset + 4)] + 0x2b71c))();\n                      return rVar21;\n                    }\n                    (**(code **)(puVar62 + 0x23bc4))(0);\n                    if (uVar60 != 0) {\n                      aVar49.idx = (Idx)&DAT_00000007;\n                      uVar8 = 0;\n                      do {\n                        prVar53 = (re_token_t *)(aVar4.mbcset)->mbchars + uVar8;\n                        if (prVar53->field_0x4 == '\x01') {\n                          if ((char)(prVar53->opr).c < '\0') {\n                            *(uint *)&prVar53->field_0x4 = *(uint *)&prVar53->field_0x4 & 0xfffffbff\n                            ;\n                          }\n                        }\n                        else if (prVar53->field_0x4 == '\x05') {\n                          prVar53->field_0x4 = 7;\n                        }\n                        uVar8 = uVar8 + 1;\n                      } while (uVar8 < (aVar4.mbcset)->range_ends);\n                    }\n                  }\n                  *(int *)(aVar4.idx + 0x5c) = 1;\n                  if (0 < *(Idx *)(aVar4.idx + 0x4c)) {\n                    uVar60 = 1;\n                  }\n                  *(byte *)(aVar4.idx + 0x58) =\n                       *(byte *)(aVar4.idx + 0x58) & 0x9f | (byte)((uVar60 & 1) << 6);\n                }\n                iVar55 = (*(bin_tree_t **)(aVar4.idx + 0x34))->first->node_idx;\n                *(int *)(aVar4.idx + 0x48) = iVar55;\n                aVar46.sbcset =\n                     (re_bitset_ptr_t)((re_node_set *)(aVar4.mbcset)->ncoll_syms + iVar55);\n                rVar34 = re_node_set_init_copy(&rStack_204,(re_node_set *)aVar46.mbcset);\n                rVar21 = rVar34;\n                rStack_208 = rVar34;\n                if (rVar34 == _REG_NOERROR) {\n                  if ((0 < *(Idx *)(aVar4.idx + 0x4c)) && (_REG_NOERROR < rStack_204.nelem)) {\n                    iVar55 = *(int *)(puVar62 + 0x23abc);\n                    iVar61 = *(int *)(puVar62 + 0x23abc);\n                    rVar21 = _REG_NOERROR;\n                    do {\n                      aVar49.sbcset =\n                           (re_bitset_ptr_t)\n                           ((re_token_t *)(aVar4.mbcset)->mbchars + rStack_204.elems[rVar21]);\n                      if (*(char *)&((re_node_set *)&(aVar49.mbcset)->range_starts)->alloc == '\x04'\n                         ) {\n                        rVar48 = _REG_NOERROR;\n                        piVar38 = rStack_204.elems;\n                        if (rStack_204.nelem < _REG_NOMATCH) {\nLAB_00056b8c:\n                          if (rStack_204.nelem != rVar48) {\n                            iVar33 = *((re_node_set *)(aVar4.mbcset)->nmbchars)\n                                      [rStack_204.elems[rVar21]].elems;\n                            iVar58 = (*(code *)(iVar55 + 0x5ea8))(&rStack_204,iVar33);\n                            if (iVar58 == 0) {\n                              aVar46.sbcset =\n                                   (re_bitset_ptr_t)\n                                   ((re_node_set *)(aVar4.mbcset)->ncoll_syms + iVar33);\n                              rVar21 = (*(code *)(iVar61 + 0x7f1c))(&rStack_204);\n                              if (rVar21 != _REG_NOERROR) goto LAB_00056cb8;\n                            }\n                          }\n                        }\n                        else {\n                          do {\n                            prVar53 = (re_token_t *)(aVar4.mbcset)->mbchars + *piVar38;\n                            if ((prVar53->field_0x4 == '\t') &&\n                               ((prVar53->opr).sbcset == (re_bitset_ptr_t)*aVar49.sbcset))\n                            goto LAB_00056b8c;\n                            rVar48 = rVar48 + _REG_NOMATCH;\n                            piVar38 = piVar38 + 1;\n                          } while (rStack_204.nelem != rVar48);\n                        }\n                      }\n                      rVar21 = rVar21 + _REG_NOMATCH;\n                    } while (rVar21 < rStack_204.nelem);\n                  }\n                  aVar49.sbcset = (re_bitset_ptr_t)&rStack_204;\n                  aVar46 = aVar4;\n                  prVar35 = re_acquire_state_context\n                                      (&rStack_208,(re_dfa_t *)aVar4.mbcset,\n                                       (re_node_set *)aVar49.mbcset,0);\n                  (aVar4.mbcset)->nchar_classes = (Idx)prVar35;\n                  rVar21 = rStack_208;\n                  if (prVar35 != (re_dfastate_t *)0x0) {\n                    if ((prVar35->field_0x34 & 1) == 0) {\n                      *(re_dfastate_t **)(aVar4.idx + 0x30) = prVar35;\n                      *(re_dfastate_t **)(aVar4.idx + 0x2c) = prVar35;\n                      *(re_dfastate_t **)(aVar4.idx + 0x28) = prVar35;\n                    }\n                    else {\n                      aVar49.sbcset = (re_bitset_ptr_t)&rStack_204;\n                      prVar35 = re_acquire_state_context\n                                          (&rStack_208,(re_dfa_t *)aVar4.mbcset,\n                                           (re_node_set *)aVar49.mbcset,1);\n                      *(re_dfastate_t **)(aVar4.idx + 0x28) = prVar35;\n                      prVar35 = re_acquire_state_context\n                                          (&rStack_208,(re_dfa_t *)aVar4.mbcset,\n                                           (re_node_set *)aVar49.mbcset,2);\n                      *(re_dfastate_t **)(aVar4.idx + 0x2c) = prVar35;\n                      aVar46 = aVar4;\n                      prVar35 = re_acquire_state_context\n                                          (&rStack_208,(re_dfa_t *)aVar4.mbcset,\n                                           (re_node_set *)aVar49.mbcset,6);\n                      *(re_dfastate_t **)(aVar4.idx + 0x30) = prVar35;\n                      rVar21 = rStack_208;\n                      if (((*(re_dfastate_t **)(aVar4.idx + 0x28) == (re_dfastate_t *)0x0) ||\n                          (*(re_dfastate_t **)(aVar4.idx + 0x2c) == (re_dfastate_t *)0x0)) ||\n                         (prVar35 == (re_dfastate_t *)0x0)) goto LAB_00056cb8;\n                    }\n                    (**(code **)(puVar62 + 0x23dc0))(rStack_204.elems);\n                    rVar21 = rVar34;\n                  }\n                }\nLAB_00056cb8:\n                rStack_20c = rVar21;\n                free_workarea_compile((regex_t *)preg_00.mbcset);\n                re_string_destruct((re_string_t *)&aStack_1f8);\n                rVar21 = rStack_20c;\n                if (rStack_20c != _REG_NOERROR) {\n                  if (*(int *)(puVar62 + 0x23c78) != 0) {\n                    (**(code **)(puVar62 + 0x23df0))((pthread_mutex_t *)(aVar4.idx + 0x88));\n                  }\n                  free_dfa_content((re_dfa_t *)aVar4.mbcset);\n                  *preg_00.sbcset = 0;\n                  ((re_node_set *)&(preg_00.mbcset)->range_starts)->alloc = 0;\n                  rVar21 = rStack_20c;\n                }\n                goto LAB_00056cfc;\n              }\n            }\n          }\n        }" if (parenthesized_expression "(pwVar27 == (wctype_t *)0x0)" ( (binary_expression "pwVar27 == (wctype_t *)0x0" identifier == (cast_expression "(wctype_t *)0x0" ( (type_descriptor "wctype_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          rVar21 = _REG_ESPACE;\n        }" { (expression_statement "rVar21 = _REG_ESPACE;" (assignment_expression "rVar21 = _REG_ESPACE" identifier = identifier) ;) }) (else_clause "else if (iVar55 == 0) {\n          rVar21 = _REG_ESPACE;\n        }\n        else if (uVar60 == 0) {\n          rVar21 = _REG_ESPACE;\n        }\n        else if (prVar28 == (re_node_set *)0x0) {\n          rVar21 = _REG_ESPACE;\n        }\n        else {\n          pprVar29 = (re_sub_match_top_t **)\n                     (**(code **)(puVar62 + 0x23cf0))((int)(preg_00.mbcset)->ncoll_syms << 2);\n          *(re_sub_match_top_t ***)(aVar45.idx + 0x84) = pprVar29;\n          if (pprVar29 != (re_sub_match_top_t **)0x0) {\n            prVar30 = (re_sub_match_top_t *)0x0;\n            if ((re_node_set *)(preg_00.mbcset)->ncoll_syms != (re_node_set *)0x0) {\n              do {\n                (*(re_sub_match_top_t ***)(aVar45.idx + 0x84))[(int)prVar30] = prVar30;\n                prVar30 = (re_sub_match_top_t *)((int)&prVar30->str_idx + 1);\n              } while (prVar30 < (re_sub_match_top_t *)(preg_00.mbcset)->ncoll_syms);\n            }\n            preorder(*(bin_tree_t **)(aVar45.idx + 0x34),\n                     (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)\n                     (*(int *)(puVar62 + 0x23abc) + 0x60e8),aVar45.sbcset);\n            prVar30 = (re_sub_match_top_t *)(preg_00.mbcset)->ncoll_syms;\n            if (prVar30 == (re_sub_match_top_t *)0x0) {\nLAB_00056704:\n              (**(code **)(puVar62 + 0x23dc0))(*(re_sub_match_top_t ***)(aVar45.idx + 0x84));\n              *(re_sub_match_top_t ***)(aVar45.idx + 0x84) = (re_sub_match_top_t **)0x0;\n            }\n            else {\n              pprVar29 = *(re_sub_match_top_t ***)(aVar45.idx + 0x84);\n              if (*pprVar29 == (re_sub_match_top_t *)0x0) {\n                prVar31 = (re_sub_match_top_t *)0x0;\n                do {\n                  pprVar29 = pprVar29 + 1;\n                  prVar31 = (re_sub_match_top_t *)((int)&prVar31->str_idx + 1);\n                  if (prVar30 == prVar31) {\n                    if (prVar30 == prVar31) goto LAB_00056704;\n                    break;\n                  }\n                } while (*pprVar29 == prVar31);\n              }\n            }\n          }\n          aVar46.sbcset = (re_bitset_ptr_t)(*(int *)(puVar62 + 0x23abc) + 0x73a4);\n          rVar21 = postorder(*(bin_tree_t **)(aVar45.idx + 0x34),\n                             (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar46.sbcset,\n                             preg_00.sbcset);\n          aVar49.mbcset = aVar45.mbcset;\n          if (rVar21 == _REG_NOERROR) {\n            aVar46.sbcset = (re_bitset_ptr_t)(*(int *)(puVar62 + 0x23b40) + -0x5be4);\n            rVar21 = postorder(*(bin_tree_t **)(aVar45.idx + 0x34),\n                               (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar46.sbcset,\n                               aVar45.sbcset);\n            if (rVar21 == _REG_NOERROR) {\n              preorder(*(bin_tree_t **)(aVar45.idx + 0x34),\n                       (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)\n                       (*(int *)(puVar62 + 0x23abc) + 0x61b4),aVar45.sbcset);\n              aVar46.sbcset = (re_bitset_ptr_t)(*(int *)(puVar62 + 0x23b40) + -0x4614);\n              rVar21 = preorder(*(bin_tree_t **)(aVar45.idx + 0x34),\n                                (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar46.sbcset,\n                                aVar45.sbcset);\n              if (rVar21 == _REG_NOERROR) {\n                uVar60 = 0;\n                iVar55 = *(int *)(puVar62 + 0x23b40);\n                aVar56.sbcset = (re_bitset_ptr_t)0x0;\nLAB_00056744:\n                if ((re_dfa_t *)(aVar45.mbcset)->range_ends != (re_dfa_t *)aVar56.sbcset) {\nLAB_00056750:\n                  if (((re_node_set *)(aVar45.mbcset)->ncoll_syms)[aVar56.idx].nelem == 0) {\n                    aVar46.mbcset = aVar45.mbcset;\n                    aVar49 = aVar56;\n                    rVar21 = (*(code *)(iVar55 + -0x561c))\n                                       (&rStack_204,aVar45.sbcset,aVar56.sbcset,1);\n                    if (rVar21 != _REG_NOERROR) goto LAB_00056168;\n                    if (((re_node_set *)(aVar45.mbcset)->ncoll_syms)[aVar56.idx].nelem == 0) {\n                      (**(code **)(puVar62 + 0x23dc0))(rStack_204.elems);\n                      uVar60 = 1;\n                    }\n                  }\n                  aVar56.sbcset =\n                       (re_bitset_ptr_t)\n                       ((int)&((re_string_t *)&(aVar56.mbcset)->mbchars)->raw_mbs + 1);\n                  goto LAB_00056744;\n                }\n                if (uVar60 != 0) {\n                  uVar60 = 0;\n                  aVar56.sbcset = (re_bitset_ptr_t)0x0;\n                  goto LAB_00056750;\n                }\n                if ((((((re_node_set *)&(preg_00.mbcset)->nequiv_classes)->alloc & 0x8000000) == 0)\n                    && ((re_node_set *)(preg_00.mbcset)->ncoll_syms != (re_node_set *)0x0)) &&\n                   (*(char *)(aVar45.idx + 0x58) < '\0')) {\n                  pwVar57 = (wint_t *)(aVar45.mbcset)->range_ends;\n                }\n                else {\n                  if (*(Idx *)(aVar45.idx + 0x4c) == 0) goto LAB_000568f0;\n                  pwVar57 = (wint_t *)(aVar45.mbcset)->range_ends;\n                }\n                iVar55 = (**(code **)(puVar62 + 0x23cf0))((int)pwVar57 * 0xc);\n                ((re_node_set *)&(aVar45.mbcset)->nequiv_classes)->alloc = iVar55;\n                if (iVar55 == 0) {\n                  rVar21 = _REG_ESPACE;\n                  goto LAB_00056168;\n                }\n                if (pwVar57 != (wint_t *)0x0) {\n                  iVar55 = 0;\n                  uVar26 = 0;\n                  do {\n                    puVar32 = (undefined1 *)\n                              (((re_node_set *)&(aVar45.mbcset)->nequiv_classes)->alloc + iVar55);\n                    *puVar32 = 0;\n                    puVar32[1] = 0;\n                    puVar32[2] = 0;\n                    puVar32[3] = 0;\n                    puVar32[4] = 0;\n                    puVar32[5] = 0;\n                    puVar32[6] = 0;\n                    puVar32[7] = 0;\n                    puVar32[8] = 0;\n                    puVar32[9] = 0;\n                    puVar32[10] = 0;\n                    puVar32[0xb] = 0;\n                    uVar26 = uVar26 + 1;\n                    iVar55 = iVar55 + 0xc;\n                  } while (uVar26 < (aVar45.mbcset)->range_ends);\n                  iVar55 = *(int *)(puVar62 + 0x23abc);\n                  if ((wint_t *)(aVar45.mbcset)->range_ends != (wint_t *)0x0) {\n                    iVar61 = 0;\n                    aStack_218.sbcset = (re_bitset_ptr_t)0x0;\n                    do {\n                      piVar38 = *(int **)((int)&((re_node_set *)(aVar45.mbcset)->ncoll_syms)->elems\n                                         + iVar61);\n                      if (0 < *(int *)((int)&((re_node_set *)(aVar45.mbcset)->ncoll_syms)->nelem +\n                                      iVar61)) {\n                        iVar58 = 0;\n                        do {\n                          aVar46 = aStack_218;\n                          iVar33 = (*(code *)(iVar55 + 0x6e30))\n                                             (((re_node_set *)&(aVar45.mbcset)->nequiv_classes)->\n                                              alloc + *piVar38 * 0xc);\n                          rVar21 = _REG_ESPACE;\n                          if (iVar33 == 0) goto LAB_00056168;\n                          iVar58 = iVar58 + 1;\n                          piVar38 = piVar38 + 1;\n                        } while (iVar58 < *(int *)((int)&((re_node_set *)(aVar45.mbcset)->ncoll_syms\n                                                         )->nelem + iVar61));\n                      }\n                      aStack_218.sbcset =\n                           (re_bitset_ptr_t)\n                           ((int)&((re_string_t *)&(aStack_218.mbcset)->mbchars)->raw_mbs + 1);\n                      iVar61 = iVar61 + 0xc;\n                    } while (aStack_218.sbcset < (re_dfa_t *)(aVar45.mbcset)->range_ends);\n                  }\n                }\nLAB_000568f0:\n                rStack_20c = _REG_NOERROR;\n                if ((((*(byte *)(aVar4.idx + 0x58) & 0x20) != 0) && (uVar8 == 0)) &&\n                   (((anon_union_4_2_91654ee9_for___value *)&(preg_00.mbcset)->nmbchars)->__wch == 0\n                   )) {\n                  if ((aVar4.mbcset)->range_ends != (wchar_t *)0x0) {\n                    aVar49.sbcset = (re_bitset_ptr_t)(*(int *)(puVar62 + 0x23754) + 0x6e4c);\n                    if (*(byte *)(*aVar4.sbcset + 4) < 0xd) {\n                    /* WARNING: Could not recover jumptable at 0x00056a60. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      rVar21 = (*(code *)(puVar62 +\n                                         aVar49.sbcset[*(byte *)(*aVar4.sbcset + 4)] + 0x2b71c))();\n                      return rVar21;\n                    }\n                    (**(code **)(puVar62 + 0x23bc4))(0);\n                    if (uVar60 != 0) {\n                      aVar49.idx = (Idx)&DAT_00000007;\n                      uVar8 = 0;\n                      do {\n                        prVar53 = (re_token_t *)(aVar4.mbcset)->mbchars + uVar8;\n                        if (prVar53->field_0x4 == '\x01') {\n                          if ((char)(prVar53->opr).c < '\0') {\n                            *(uint *)&prVar53->field_0x4 = *(uint *)&prVar53->field_0x4 & 0xfffffbff\n                            ;\n                          }\n                        }\n                        else if (prVar53->field_0x4 == '\x05') {\n                          prVar53->field_0x4 = 7;\n                        }\n                        uVar8 = uVar8 + 1;\n                      } while (uVar8 < (aVar4.mbcset)->range_ends);\n                    }\n                  }\n                  *(int *)(aVar4.idx + 0x5c) = 1;\n                  if (0 < *(Idx *)(aVar4.idx + 0x4c)) {\n                    uVar60 = 1;\n                  }\n                  *(byte *)(aVar4.idx + 0x58) =\n                       *(byte *)(aVar4.idx + 0x58) & 0x9f | (byte)((uVar60 & 1) << 6);\n                }\n                iVar55 = (*(bin_tree_t **)(aVar4.idx + 0x34))->first->node_idx;\n                *(int *)(aVar4.idx + 0x48) = iVar55;\n                aVar46.sbcset =\n                     (re_bitset_ptr_t)((re_node_set *)(aVar4.mbcset)->ncoll_syms + iVar55);\n                rVar34 = re_node_set_init_copy(&rStack_204,(re_node_set *)aVar46.mbcset);\n                rVar21 = rVar34;\n                rStack_208 = rVar34;\n                if (rVar34 == _REG_NOERROR) {\n                  if ((0 < *(Idx *)(aVar4.idx + 0x4c)) && (_REG_NOERROR < rStack_204.nelem)) {\n                    iVar55 = *(int *)(puVar62 + 0x23abc);\n                    iVar61 = *(int *)(puVar62 + 0x23abc);\n                    rVar21 = _REG_NOERROR;\n                    do {\n                      aVar49.sbcset =\n                           (re_bitset_ptr_t)\n                           ((re_token_t *)(aVar4.mbcset)->mbchars + rStack_204.elems[rVar21]);\n                      if (*(char *)&((re_node_set *)&(aVar49.mbcset)->range_starts)->alloc == '\x04'\n                         ) {\n                        rVar48 = _REG_NOERROR;\n                        piVar38 = rStack_204.elems;\n                        if (rStack_204.nelem < _REG_NOMATCH) {\nLAB_00056b8c:\n                          if (rStack_204.nelem != rVar48) {\n                            iVar33 = *((re_node_set *)(aVar4.mbcset)->nmbchars)\n                                      [rStack_204.elems[rVar21]].elems;\n                            iVar58 = (*(code *)(iVar55 + 0x5ea8))(&rStack_204,iVar33);\n                            if (iVar58 == 0) {\n                              aVar46.sbcset =\n                                   (re_bitset_ptr_t)\n                                   ((re_node_set *)(aVar4.mbcset)->ncoll_syms + iVar33);\n                              rVar21 = (*(code *)(iVar61 + 0x7f1c))(&rStack_204);\n                              if (rVar21 != _REG_NOERROR) goto LAB_00056cb8;\n                            }\n                          }\n                        }\n                        else {\n                          do {\n                            prVar53 = (re_token_t *)(aVar4.mbcset)->mbchars + *piVar38;\n                            if ((prVar53->field_0x4 == '\t') &&\n                               ((prVar53->opr).sbcset == (re_bitset_ptr_t)*aVar49.sbcset))\n                            goto LAB_00056b8c;\n                            rVar48 = rVar48 + _REG_NOMATCH;\n                            piVar38 = piVar38 + 1;\n                          } while (rStack_204.nelem != rVar48);\n                        }\n                      }\n                      rVar21 = rVar21 + _REG_NOMATCH;\n                    } while (rVar21 < rStack_204.nelem);\n                  }\n                  aVar49.sbcset = (re_bitset_ptr_t)&rStack_204;\n                  aVar46 = aVar4;\n                  prVar35 = re_acquire_state_context\n                                      (&rStack_208,(re_dfa_t *)aVar4.mbcset,\n                                       (re_node_set *)aVar49.mbcset,0);\n                  (aVar4.mbcset)->nchar_classes = (Idx)prVar35;\n                  rVar21 = rStack_208;\n                  if (prVar35 != (re_dfastate_t *)0x0) {\n                    if ((prVar35->field_0x34 & 1) == 0) {\n                      *(re_dfastate_t **)(aVar4.idx + 0x30) = prVar35;\n                      *(re_dfastate_t **)(aVar4.idx + 0x2c) = prVar35;\n                      *(re_dfastate_t **)(aVar4.idx + 0x28) = prVar35;\n                    }\n                    else {\n                      aVar49.sbcset = (re_bitset_ptr_t)&rStack_204;\n                      prVar35 = re_acquire_state_context\n                                          (&rStack_208,(re_dfa_t *)aVar4.mbcset,\n                                           (re_node_set *)aVar49.mbcset,1);\n                      *(re_dfastate_t **)(aVar4.idx + 0x28) = prVar35;\n                      prVar35 = re_acquire_state_context\n                                          (&rStack_208,(re_dfa_t *)aVar4.mbcset,\n                                           (re_node_set *)aVar49.mbcset,2);\n                      *(re_dfastate_t **)(aVar4.idx + 0x2c) = prVar35;\n                      aVar46 = aVar4;\n                      prVar35 = re_acquire_state_context\n                                          (&rStack_208,(re_dfa_t *)aVar4.mbcset,\n                                           (re_node_set *)aVar49.mbcset,6);\n                      *(re_dfastate_t **)(aVar4.idx + 0x30) = prVar35;\n                      rVar21 = rStack_208;\n                      if (((*(re_dfastate_t **)(aVar4.idx + 0x28) == (re_dfastate_t *)0x0) ||\n                          (*(re_dfastate_t **)(aVar4.idx + 0x2c) == (re_dfastate_t *)0x0)) ||\n                         (prVar35 == (re_dfastate_t *)0x0)) goto LAB_00056cb8;\n                    }\n                    (**(code **)(puVar62 + 0x23dc0))(rStack_204.elems);\n                    rVar21 = rVar34;\n                  }\n                }\nLAB_00056cb8:\n                rStack_20c = rVar21;\n                free_workarea_compile((regex_t *)preg_00.mbcset);\n                re_string_destruct((re_string_t *)&aStack_1f8);\n                rVar21 = rStack_20c;\n                if (rStack_20c != _REG_NOERROR) {\n                  if (*(int *)(puVar62 + 0x23c78) != 0) {\n                    (**(code **)(puVar62 + 0x23df0))((pthread_mutex_t *)(aVar4.idx + 0x88));\n                  }\n                  free_dfa_content((re_dfa_t *)aVar4.mbcset);\n                  *preg_00.sbcset = 0;\n                  ((re_node_set *)&(preg_00.mbcset)->range_starts)->alloc = 0;\n                  rVar21 = rStack_20c;\n                }\n                goto LAB_00056cfc;\n              }\n            }\n          }\n        }" else (if_statement "if (iVar55 == 0) {\n          rVar21 = _REG_ESPACE;\n        }\n        else if (uVar60 == 0) {\n          rVar21 = _REG_ESPACE;\n        }\n        else if (prVar28 == (re_node_set *)0x0) {\n          rVar21 = _REG_ESPACE;\n        }\n        else {\n          pprVar29 = (re_sub_match_top_t **)\n                     (**(code **)(puVar62 + 0x23cf0))((int)(preg_00.mbcset)->ncoll_syms << 2);\n          *(re_sub_match_top_t ***)(aVar45.idx + 0x84) = pprVar29;\n          if (pprVar29 != (re_sub_match_top_t **)0x0) {\n            prVar30 = (re_sub_match_top_t *)0x0;\n            if ((re_node_set *)(preg_00.mbcset)->ncoll_syms != (re_node_set *)0x0) {\n              do {\n                (*(re_sub_match_top_t ***)(aVar45.idx + 0x84))[(int)prVar30] = prVar30;\n                prVar30 = (re_sub_match_top_t *)((int)&prVar30->str_idx + 1);\n              } while (prVar30 < (re_sub_match_top_t *)(preg_00.mbcset)->ncoll_syms);\n            }\n            preorder(*(bin_tree_t **)(aVar45.idx + 0x34),\n                     (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)\n                     (*(int *)(puVar62 + 0x23abc) + 0x60e8),aVar45.sbcset);\n            prVar30 = (re_sub_match_top_t *)(preg_00.mbcset)->ncoll_syms;\n            if (prVar30 == (re_sub_match_top_t *)0x0) {\nLAB_00056704:\n              (**(code **)(puVar62 + 0x23dc0))(*(re_sub_match_top_t ***)(aVar45.idx + 0x84));\n              *(re_sub_match_top_t ***)(aVar45.idx + 0x84) = (re_sub_match_top_t **)0x0;\n            }\n            else {\n              pprVar29 = *(re_sub_match_top_t ***)(aVar45.idx + 0x84);\n              if (*pprVar29 == (re_sub_match_top_t *)0x0) {\n                prVar31 = (re_sub_match_top_t *)0x0;\n                do {\n                  pprVar29 = pprVar29 + 1;\n                  prVar31 = (re_sub_match_top_t *)((int)&prVar31->str_idx + 1);\n                  if (prVar30 == prVar31) {\n                    if (prVar30 == prVar31) goto LAB_00056704;\n                    break;\n                  }\n                } while (*pprVar29 == prVar31);\n              }\n            }\n          }\n          aVar46.sbcset = (re_bitset_ptr_t)(*(int *)(puVar62 + 0x23abc) + 0x73a4);\n          rVar21 = postorder(*(bin_tree_t **)(aVar45.idx + 0x34),\n                             (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar46.sbcset,\n                             preg_00.sbcset);\n          aVar49.mbcset = aVar45.mbcset;\n          if (rVar21 == _REG_NOERROR) {\n            aVar46.sbcset = (re_bitset_ptr_t)(*(int *)(puVar62 + 0x23b40) + -0x5be4);\n            rVar21 = postorder(*(bin_tree_t **)(aVar45.idx + 0x34),\n                               (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar46.sbcset,\n                               aVar45.sbcset);\n            if (rVar21 == _REG_NOERROR) {\n              preorder(*(bin_tree_t **)(aVar45.idx + 0x34),\n                       (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)\n                       (*(int *)(puVar62 + 0x23abc) + 0x61b4),aVar45.sbcset);\n              aVar46.sbcset = (re_bitset_ptr_t)(*(int *)(puVar62 + 0x23b40) + -0x4614);\n              rVar21 = preorder(*(bin_tree_t **)(aVar45.idx + 0x34),\n                                (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar46.sbcset,\n                                aVar45.sbcset);\n              if (rVar21 == _REG_NOERROR) {\n                uVar60 = 0;\n                iVar55 = *(int *)(puVar62 + 0x23b40);\n                aVar56.sbcset = (re_bitset_ptr_t)0x0;\nLAB_00056744:\n                if ((re_dfa_t *)(aVar45.mbcset)->range_ends != (re_dfa_t *)aVar56.sbcset) {\nLAB_00056750:\n                  if (((re_node_set *)(aVar45.mbcset)->ncoll_syms)[aVar56.idx].nelem == 0) {\n                    aVar46.mbcset = aVar45.mbcset;\n                    aVar49 = aVar56;\n                    rVar21 = (*(code *)(iVar55 + -0x561c))\n                                       (&rStack_204,aVar45.sbcset,aVar56.sbcset,1);\n                    if (rVar21 != _REG_NOERROR) goto LAB_00056168;\n                    if (((re_node_set *)(aVar45.mbcset)->ncoll_syms)[aVar56.idx].nelem == 0) {\n                      (**(code **)(puVar62 + 0x23dc0))(rStack_204.elems);\n                      uVar60 = 1;\n                    }\n                  }\n                  aVar56.sbcset =\n                       (re_bitset_ptr_t)\n                       ((int)&((re_string_t *)&(aVar56.mbcset)->mbchars)->raw_mbs + 1);\n                  goto LAB_00056744;\n                }\n                if (uVar60 != 0) {\n                  uVar60 = 0;\n                  aVar56.sbcset = (re_bitset_ptr_t)0x0;\n                  goto LAB_00056750;\n                }\n                if ((((((re_node_set *)&(preg_00.mbcset)->nequiv_classes)->alloc & 0x8000000) == 0)\n                    && ((re_node_set *)(preg_00.mbcset)->ncoll_syms != (re_node_set *)0x0)) &&\n                   (*(char *)(aVar45.idx + 0x58) < '\0')) {\n                  pwVar57 = (wint_t *)(aVar45.mbcset)->range_ends;\n                }\n                else {\n                  if (*(Idx *)(aVar45.idx + 0x4c) == 0) goto LAB_000568f0;\n                  pwVar57 = (wint_t *)(aVar45.mbcset)->range_ends;\n                }\n                iVar55 = (**(code **)(puVar62 + 0x23cf0))((int)pwVar57 * 0xc);\n                ((re_node_set *)&(aVar45.mbcset)->nequiv_classes)->alloc = iVar55;\n                if (iVar55 == 0) {\n                  rVar21 = _REG_ESPACE;\n                  goto LAB_00056168;\n                }\n                if (pwVar57 != (wint_t *)0x0) {\n                  iVar55 = 0;\n                  uVar26 = 0;\n                  do {\n                    puVar32 = (undefined1 *)\n                              (((re_node_set *)&(aVar45.mbcset)->nequiv_classes)->alloc + iVar55);\n                    *puVar32 = 0;\n                    puVar32[1] = 0;\n                    puVar32[2] = 0;\n                    puVar32[3] = 0;\n                    puVar32[4] = 0;\n                    puVar32[5] = 0;\n                    puVar32[6] = 0;\n                    puVar32[7] = 0;\n                    puVar32[8] = 0;\n                    puVar32[9] = 0;\n                    puVar32[10] = 0;\n                    puVar32[0xb] = 0;\n                    uVar26 = uVar26 + 1;\n                    iVar55 = iVar55 + 0xc;\n                  } while (uVar26 < (aVar45.mbcset)->range_ends);\n                  iVar55 = *(int *)(puVar62 + 0x23abc);\n                  if ((wint_t *)(aVar45.mbcset)->range_ends != (wint_t *)0x0) {\n                    iVar61 = 0;\n                    aStack_218.sbcset = (re_bitset_ptr_t)0x0;\n                    do {\n                      piVar38 = *(int **)((int)&((re_node_set *)(aVar45.mbcset)->ncoll_syms)->elems\n                                         + iVar61);\n                      if (0 < *(int *)((int)&((re_node_set *)(aVar45.mbcset)->ncoll_syms)->nelem +\n                                      iVar61)) {\n                        iVar58 = 0;\n                        do {\n                          aVar46 = aStack_218;\n                          iVar33 = (*(code *)(iVar55 + 0x6e30))\n                                             (((re_node_set *)&(aVar45.mbcset)->nequiv_classes)->\n                                              alloc + *piVar38 * 0xc);\n                          rVar21 = _REG_ESPACE;\n                          if (iVar33 == 0) goto LAB_00056168;\n                          iVar58 = iVar58 + 1;\n                          piVar38 = piVar38 + 1;\n                        } while (iVar58 < *(int *)((int)&((re_node_set *)(aVar45.mbcset)->ncoll_syms\n                                                         )->nelem + iVar61));\n                      }\n                      aStack_218.sbcset =\n                           (re_bitset_ptr_t)\n                           ((int)&((re_string_t *)&(aStack_218.mbcset)->mbchars)->raw_mbs + 1);\n                      iVar61 = iVar61 + 0xc;\n                    } while (aStack_218.sbcset < (re_dfa_t *)(aVar45.mbcset)->range_ends);\n                  }\n                }\nLAB_000568f0:\n                rStack_20c = _REG_NOERROR;\n                if ((((*(byte *)(aVar4.idx + 0x58) & 0x20) != 0) && (uVar8 == 0)) &&\n                   (((anon_union_4_2_91654ee9_for___value *)&(preg_00.mbcset)->nmbchars)->__wch == 0\n                   )) {\n                  if ((aVar4.mbcset)->range_ends != (wchar_t *)0x0) {\n                    aVar49.sbcset = (re_bitset_ptr_t)(*(int *)(puVar62 + 0x23754) + 0x6e4c);\n                    if (*(byte *)(*aVar4.sbcset + 4) < 0xd) {\n                    /* WARNING: Could not recover jumptable at 0x00056a60. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      rVar21 = (*(code *)(puVar62 +\n                                         aVar49.sbcset[*(byte *)(*aVar4.sbcset + 4)] + 0x2b71c))();\n                      return rVar21;\n                    }\n                    (**(code **)(puVar62 + 0x23bc4))(0);\n                    if (uVar60 != 0) {\n                      aVar49.idx = (Idx)&DAT_00000007;\n                      uVar8 = 0;\n                      do {\n                        prVar53 = (re_token_t *)(aVar4.mbcset)->mbchars + uVar8;\n                        if (prVar53->field_0x4 == '\x01') {\n                          if ((char)(prVar53->opr).c < '\0') {\n                            *(uint *)&prVar53->field_0x4 = *(uint *)&prVar53->field_0x4 & 0xfffffbff\n                            ;\n                          }\n                        }\n                        else if (prVar53->field_0x4 == '\x05') {\n                          prVar53->field_0x4 = 7;\n                        }\n                        uVar8 = uVar8 + 1;\n                      } while (uVar8 < (aVar4.mbcset)->range_ends);\n                    }\n                  }\n                  *(int *)(aVar4.idx + 0x5c) = 1;\n                  if (0 < *(Idx *)(aVar4.idx + 0x4c)) {\n                    uVar60 = 1;\n                  }\n                  *(byte *)(aVar4.idx + 0x58) =\n                       *(byte *)(aVar4.idx + 0x58) & 0x9f | (byte)((uVar60 & 1) << 6);\n                }\n                iVar55 = (*(bin_tree_t **)(aVar4.idx + 0x34))->first->node_idx;\n                *(int *)(aVar4.idx + 0x48) = iVar55;\n                aVar46.sbcset =\n                     (re_bitset_ptr_t)((re_node_set *)(aVar4.mbcset)->ncoll_syms + iVar55);\n                rVar34 = re_node_set_init_copy(&rStack_204,(re_node_set *)aVar46.mbcset);\n                rVar21 = rVar34;\n                rStack_208 = rVar34;\n                if (rVar34 == _REG_NOERROR) {\n                  if ((0 < *(Idx *)(aVar4.idx + 0x4c)) && (_REG_NOERROR < rStack_204.nelem)) {\n                    iVar55 = *(int *)(puVar62 + 0x23abc);\n                    iVar61 = *(int *)(puVar62 + 0x23abc);\n                    rVar21 = _REG_NOERROR;\n                    do {\n                      aVar49.sbcset =\n                           (re_bitset_ptr_t)\n                           ((re_token_t *)(aVar4.mbcset)->mbchars + rStack_204.elems[rVar21]);\n                      if (*(char *)&((re_node_set *)&(aVar49.mbcset)->range_starts)->alloc == '\x04'\n                         ) {\n                        rVar48 = _REG_NOERROR;\n                        piVar38 = rStack_204.elems;\n                        if (rStack_204.nelem < _REG_NOMATCH) {\nLAB_00056b8c:\n                          if (rStack_204.nelem != rVar48) {\n                            iVar33 = *((re_node_set *)(aVar4.mbcset)->nmbchars)\n                                      [rStack_204.elems[rVar21]].elems;\n                            iVar58 = (*(code *)(iVar55 + 0x5ea8))(&rStack_204,iVar33);\n                            if (iVar58 == 0) {\n                              aVar46.sbcset =\n                                   (re_bitset_ptr_t)\n                                   ((re_node_set *)(aVar4.mbcset)->ncoll_syms + iVar33);\n                              rVar21 = (*(code *)(iVar61 + 0x7f1c))(&rStack_204);\n                              if (rVar21 != _REG_NOERROR) goto LAB_00056cb8;\n                            }\n                          }\n                        }\n                        else {\n                          do {\n                            prVar53 = (re_token_t *)(aVar4.mbcset)->mbchars + *piVar38;\n                            if ((prVar53->field_0x4 == '\t') &&\n                               ((prVar53->opr).sbcset == (re_bitset_ptr_t)*aVar49.sbcset))\n                            goto LAB_00056b8c;\n                            rVar48 = rVar48 + _REG_NOMATCH;\n                            piVar38 = piVar38 + 1;\n                          } while (rStack_204.nelem != rVar48);\n                        }\n                      }\n                      rVar21 = rVar21 + _REG_NOMATCH;\n                    } while (rVar21 < rStack_204.nelem);\n                  }\n                  aVar49.sbcset = (re_bitset_ptr_t)&rStack_204;\n                  aVar46 = aVar4;\n                  prVar35 = re_acquire_state_context\n                                      (&rStack_208,(re_dfa_t *)aVar4.mbcset,\n                                       (re_node_set *)aVar49.mbcset,0);\n                  (aVar4.mbcset)->nchar_classes = (Idx)prVar35;\n                  rVar21 = rStack_208;\n                  if (prVar35 != (re_dfastate_t *)0x0) {\n                    if ((prVar35->field_0x34 & 1) == 0) {\n                      *(re_dfastate_t **)(aVar4.idx + 0x30) = prVar35;\n                      *(re_dfastate_t **)(aVar4.idx + 0x2c) = prVar35;\n                      *(re_dfastate_t **)(aVar4.idx + 0x28) = prVar35;\n                    }\n                    else {\n                      aVar49.sbcset = (re_bitset_ptr_t)&rStack_204;\n                      prVar35 = re_acquire_state_context\n                                          (&rStack_208,(re_dfa_t *)aVar4.mbcset,\n                                           (re_node_set *)aVar49.mbcset,1);\n                      *(re_dfastate_t **)(aVar4.idx + 0x28) = prVar35;\n                      prVar35 = re_acquire_state_context\n                                          (&rStack_208,(re_dfa_t *)aVar4.mbcset,\n                                           (re_node_set *)aVar49.mbcset,2);\n                      *(re_dfastate_t **)(aVar4.idx + 0x2c) = prVar35;\n                      aVar46 = aVar4;\n                      prVar35 = re_acquire_state_context\n                                          (&rStack_208,(re_dfa_t *)aVar4.mbcset,\n                                           (re_node_set *)aVar49.mbcset,6);\n                      *(re_dfastate_t **)(aVar4.idx + 0x30) = prVar35;\n                      rVar21 = rStack_208;\n                      if (((*(re_dfastate_t **)(aVar4.idx + 0x28) == (re_dfastate_t *)0x0) ||\n                          (*(re_dfastate_t **)(aVar4.idx + 0x2c) == (re_dfastate_t *)0x0)) ||\n                         (prVar35 == (re_dfastate_t *)0x0)) goto LAB_00056cb8;\n                    }\n                    (**(code **)(puVar62 + 0x23dc0))(rStack_204.elems);\n                    rVar21 = rVar34;\n                  }\n                }\nLAB_00056cb8:\n                rStack_20c = rVar21;\n                free_workarea_compile((regex_t *)preg_00.mbcset);\n                re_string_destruct((re_string_t *)&aStack_1f8);\n                rVar21 = rStack_20c;\n                if (rStack_20c != _REG_NOERROR) {\n                  if (*(int *)(puVar62 + 0x23c78) != 0) {\n                    (**(code **)(puVar62 + 0x23df0))((pthread_mutex_t *)(aVar4.idx + 0x88));\n                  }\n                  free_dfa_content((re_dfa_t *)aVar4.mbcset);\n                  *preg_00.sbcset = 0;\n                  ((re_node_set *)&(preg_00.mbcset)->range_starts)->alloc = 0;\n                  rVar21 = rStack_20c;\n                }\n                goto LAB_00056cfc;\n              }\n            }\n          }\n        }" if (parenthesized_expression "(iVar55 == 0)" ( (binary_expression "iVar55 == 0" identifier == number_literal) )) (compound_statement "{\n          rVar21 = _REG_ESPACE;\n        }" { (expression_statement "rVar21 = _REG_ESPACE;" (assignment_expression "rVar21 = _REG_ESPACE" identifier = identifier) ;) }) (else_clause "else if (uVar60 == 0) {\n          rVar21 = _REG_ESPACE;\n        }\n        else if (prVar28 == (re_node_set *)0x0) {\n          rVar21 = _REG_ESPACE;\n        }\n        else {\n          pprVar29 = (re_sub_match_top_t **)\n                     (**(code **)(puVar62 + 0x23cf0))((int)(preg_00.mbcset)->ncoll_syms << 2);\n          *(re_sub_match_top_t ***)(aVar45.idx + 0x84) = pprVar29;\n          if (pprVar29 != (re_sub_match_top_t **)0x0) {\n            prVar30 = (re_sub_match_top_t *)0x0;\n            if ((re_node_set *)(preg_00.mbcset)->ncoll_syms != (re_node_set *)0x0) {\n              do {\n                (*(re_sub_match_top_t ***)(aVar45.idx + 0x84))[(int)prVar30] = prVar30;\n                prVar30 = (re_sub_match_top_t *)((int)&prVar30->str_idx + 1);\n              } while (prVar30 < (re_sub_match_top_t *)(preg_00.mbcset)->ncoll_syms);\n            }\n            preorder(*(bin_tree_t **)(aVar45.idx + 0x34),\n                     (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)\n                     (*(int *)(puVar62 + 0x23abc) + 0x60e8),aVar45.sbcset);\n            prVar30 = (re_sub_match_top_t *)(preg_00.mbcset)->ncoll_syms;\n            if (prVar30 == (re_sub_match_top_t *)0x0) {\nLAB_00056704:\n              (**(code **)(puVar62 + 0x23dc0))(*(re_sub_match_top_t ***)(aVar45.idx + 0x84));\n              *(re_sub_match_top_t ***)(aVar45.idx + 0x84) = (re_sub_match_top_t **)0x0;\n            }\n            else {\n              pprVar29 = *(re_sub_match_top_t ***)(aVar45.idx + 0x84);\n              if (*pprVar29 == (re_sub_match_top_t *)0x0) {\n                prVar31 = (re_sub_match_top_t *)0x0;\n                do {\n                  pprVar29 = pprVar29 + 1;\n                  prVar31 = (re_sub_match_top_t *)((int)&prVar31->str_idx + 1);\n                  if (prVar30 == prVar31) {\n                    if (prVar30 == prVar31) goto LAB_00056704;\n                    break;\n                  }\n                } while (*pprVar29 == prVar31);\n              }\n            }\n          }\n          aVar46.sbcset = (re_bitset_ptr_t)(*(int *)(puVar62 + 0x23abc) + 0x73a4);\n          rVar21 = postorder(*(bin_tree_t **)(aVar45.idx + 0x34),\n                             (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar46.sbcset,\n                             preg_00.sbcset);\n          aVar49.mbcset = aVar45.mbcset;\n          if (rVar21 == _REG_NOERROR) {\n            aVar46.sbcset = (re_bitset_ptr_t)(*(int *)(puVar62 + 0x23b40) + -0x5be4);\n            rVar21 = postorder(*(bin_tree_t **)(aVar45.idx + 0x34),\n                               (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar46.sbcset,\n                               aVar45.sbcset);\n            if (rVar21 == _REG_NOERROR) {\n              preorder(*(bin_tree_t **)(aVar45.idx + 0x34),\n                       (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)\n                       (*(int *)(puVar62 + 0x23abc) + 0x61b4),aVar45.sbcset);\n              aVar46.sbcset = (re_bitset_ptr_t)(*(int *)(puVar62 + 0x23b40) + -0x4614);\n              rVar21 = preorder(*(bin_tree_t **)(aVar45.idx + 0x34),\n                                (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar46.sbcset,\n                                aVar45.sbcset);\n              if (rVar21 == _REG_NOERROR) {\n                uVar60 = 0;\n                iVar55 = *(int *)(puVar62 + 0x23b40);\n                aVar56.sbcset = (re_bitset_ptr_t)0x0;\nLAB_00056744:\n                if ((re_dfa_t *)(aVar45.mbcset)->range_ends != (re_dfa_t *)aVar56.sbcset) {\nLAB_00056750:\n                  if (((re_node_set *)(aVar45.mbcset)->ncoll_syms)[aVar56.idx].nelem == 0) {\n                    aVar46.mbcset = aVar45.mbcset;\n                    aVar49 = aVar56;\n                    rVar21 = (*(code *)(iVar55 + -0x561c))\n                                       (&rStack_204,aVar45.sbcset,aVar56.sbcset,1);\n                    if (rVar21 != _REG_NOERROR) goto LAB_00056168;\n                    if (((re_node_set *)(aVar45.mbcset)->ncoll_syms)[aVar56.idx].nelem == 0) {\n                      (**(code **)(puVar62 + 0x23dc0))(rStack_204.elems);\n                      uVar60 = 1;\n                    }\n                  }\n                  aVar56.sbcset =\n                       (re_bitset_ptr_t)\n                       ((int)&((re_string_t *)&(aVar56.mbcset)->mbchars)->raw_mbs + 1);\n                  goto LAB_00056744;\n                }\n                if (uVar60 != 0) {\n                  uVar60 = 0;\n                  aVar56.sbcset = (re_bitset_ptr_t)0x0;\n                  goto LAB_00056750;\n                }\n                if ((((((re_node_set *)&(preg_00.mbcset)->nequiv_classes)->alloc & 0x8000000) == 0)\n                    && ((re_node_set *)(preg_00.mbcset)->ncoll_syms != (re_node_set *)0x0)) &&\n                   (*(char *)(aVar45.idx + 0x58) < '\0')) {\n                  pwVar57 = (wint_t *)(aVar45.mbcset)->range_ends;\n                }\n                else {\n                  if (*(Idx *)(aVar45.idx + 0x4c) == 0) goto LAB_000568f0;\n                  pwVar57 = (wint_t *)(aVar45.mbcset)->range_ends;\n                }\n                iVar55 = (**(code **)(puVar62 + 0x23cf0))((int)pwVar57 * 0xc);\n                ((re_node_set *)&(aVar45.mbcset)->nequiv_classes)->alloc = iVar55;\n                if (iVar55 == 0) {\n                  rVar21 = _REG_ESPACE;\n                  goto LAB_00056168;\n                }\n                if (pwVar57 != (wint_t *)0x0) {\n                  iVar55 = 0;\n                  uVar26 = 0;\n                  do {\n                    puVar32 = (undefined1 *)\n                              (((re_node_set *)&(aVar45.mbcset)->nequiv_classes)->alloc + iVar55);\n                    *puVar32 = 0;\n                    puVar32[1] = 0;\n                    puVar32[2] = 0;\n                    puVar32[3] = 0;\n                    puVar32[4] = 0;\n                    puVar32[5] = 0;\n                    puVar32[6] = 0;\n                    puVar32[7] = 0;\n                    puVar32[8] = 0;\n                    puVar32[9] = 0;\n                    puVar32[10] = 0;\n                    puVar32[0xb] = 0;\n                    uVar26 = uVar26 + 1;\n                    iVar55 = iVar55 + 0xc;\n                  } while (uVar26 < (aVar45.mbcset)->range_ends);\n                  iVar55 = *(int *)(puVar62 + 0x23abc);\n                  if ((wint_t *)(aVar45.mbcset)->range_ends != (wint_t *)0x0) {\n                    iVar61 = 0;\n                    aStack_218.sbcset = (re_bitset_ptr_t)0x0;\n                    do {\n                      piVar38 = *(int **)((int)&((re_node_set *)(aVar45.mbcset)->ncoll_syms)->elems\n                                         + iVar61);\n                      if (0 < *(int *)((int)&((re_node_set *)(aVar45.mbcset)->ncoll_syms)->nelem +\n                                      iVar61)) {\n                        iVar58 = 0;\n                        do {\n                          aVar46 = aStack_218;\n                          iVar33 = (*(code *)(iVar55 + 0x6e30))\n                                             (((re_node_set *)&(aVar45.mbcset)->nequiv_classes)->\n                                              alloc + *piVar38 * 0xc);\n                          rVar21 = _REG_ESPACE;\n                          if (iVar33 == 0) goto LAB_00056168;\n                          iVar58 = iVar58 + 1;\n                          piVar38 = piVar38 + 1;\n                        } while (iVar58 < *(int *)((int)&((re_node_set *)(aVar45.mbcset)->ncoll_syms\n                                                         )->nelem + iVar61));\n                      }\n                      aStack_218.sbcset =\n                           (re_bitset_ptr_t)\n                           ((int)&((re_string_t *)&(aStack_218.mbcset)->mbchars)->raw_mbs + 1);\n                      iVar61 = iVar61 + 0xc;\n                    } while (aStack_218.sbcset < (re_dfa_t *)(aVar45.mbcset)->range_ends);\n                  }\n                }\nLAB_000568f0:\n                rStack_20c = _REG_NOERROR;\n                if ((((*(byte *)(aVar4.idx + 0x58) & 0x20) != 0) && (uVar8 == 0)) &&\n                   (((anon_union_4_2_91654ee9_for___value *)&(preg_00.mbcset)->nmbchars)->__wch == 0\n                   )) {\n                  if ((aVar4.mbcset)->range_ends != (wchar_t *)0x0) {\n                    aVar49.sbcset = (re_bitset_ptr_t)(*(int *)(puVar62 + 0x23754) + 0x6e4c);\n                    if (*(byte *)(*aVar4.sbcset + 4) < 0xd) {\n                    /* WARNING: Could not recover jumptable at 0x00056a60. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      rVar21 = (*(code *)(puVar62 +\n                                         aVar49.sbcset[*(byte *)(*aVar4.sbcset + 4)] + 0x2b71c))();\n                      return rVar21;\n                    }\n                    (**(code **)(puVar62 + 0x23bc4))(0);\n                    if (uVar60 != 0) {\n                      aVar49.idx = (Idx)&DAT_00000007;\n                      uVar8 = 0;\n                      do {\n                        prVar53 = (re_token_t *)(aVar4.mbcset)->mbchars + uVar8;\n                        if (prVar53->field_0x4 == '\x01') {\n                          if ((char)(prVar53->opr).c < '\0') {\n                            *(uint *)&prVar53->field_0x4 = *(uint *)&prVar53->field_0x4 & 0xfffffbff\n                            ;\n                          }\n                        }\n                        else if (prVar53->field_0x4 == '\x05') {\n                          prVar53->field_0x4 = 7;\n                        }\n                        uVar8 = uVar8 + 1;\n                      } while (uVar8 < (aVar4.mbcset)->range_ends);\n                    }\n                  }\n                  *(int *)(aVar4.idx + 0x5c) = 1;\n                  if (0 < *(Idx *)(aVar4.idx + 0x4c)) {\n                    uVar60 = 1;\n                  }\n                  *(byte *)(aVar4.idx + 0x58) =\n                       *(byte *)(aVar4.idx + 0x58) & 0x9f | (byte)((uVar60 & 1) << 6);\n                }\n                iVar55 = (*(bin_tree_t **)(aVar4.idx + 0x34))->first->node_idx;\n                *(int *)(aVar4.idx + 0x48) = iVar55;\n                aVar46.sbcset =\n                     (re_bitset_ptr_t)((re_node_set *)(aVar4.mbcset)->ncoll_syms + iVar55);\n                rVar34 = re_node_set_init_copy(&rStack_204,(re_node_set *)aVar46.mbcset);\n                rVar21 = rVar34;\n                rStack_208 = rVar34;\n                if (rVar34 == _REG_NOERROR) {\n                  if ((0 < *(Idx *)(aVar4.idx + 0x4c)) && (_REG_NOERROR < rStack_204.nelem)) {\n                    iVar55 = *(int *)(puVar62 + 0x23abc);\n                    iVar61 = *(int *)(puVar62 + 0x23abc);\n                    rVar21 = _REG_NOERROR;\n                    do {\n                      aVar49.sbcset =\n                           (re_bitset_ptr_t)\n                           ((re_token_t *)(aVar4.mbcset)->mbchars + rStack_204.elems[rVar21]);\n                      if (*(char *)&((re_node_set *)&(aVar49.mbcset)->range_starts)->alloc == '\x04'\n                         ) {\n                        rVar48 = _REG_NOERROR;\n                        piVar38 = rStack_204.elems;\n                        if (rStack_204.nelem < _REG_NOMATCH) {\nLAB_00056b8c:\n                          if (rStack_204.nelem != rVar48) {\n                            iVar33 = *((re_node_set *)(aVar4.mbcset)->nmbchars)\n                                      [rStack_204.elems[rVar21]].elems;\n                            iVar58 = (*(code *)(iVar55 + 0x5ea8))(&rStack_204,iVar33);\n                            if (iVar58 == 0) {\n                              aVar46.sbcset =\n                                   (re_bitset_ptr_t)\n                                   ((re_node_set *)(aVar4.mbcset)->ncoll_syms + iVar33);\n                              rVar21 = (*(code *)(iVar61 + 0x7f1c))(&rStack_204);\n                              if (rVar21 != _REG_NOERROR) goto LAB_00056cb8;\n                            }\n                          }\n                        }\n                        else {\n                          do {\n                            prVar53 = (re_token_t *)(aVar4.mbcset)->mbchars + *piVar38;\n                            if ((prVar53->field_0x4 == '\t') &&\n                               ((prVar53->opr).sbcset == (re_bitset_ptr_t)*aVar49.sbcset))\n                            goto LAB_00056b8c;\n                            rVar48 = rVar48 + _REG_NOMATCH;\n                            piVar38 = piVar38 + 1;\n                          } while (rStack_204.nelem != rVar48);\n                        }\n                      }\n                      rVar21 = rVar21 + _REG_NOMATCH;\n                    } while (rVar21 < rStack_204.nelem);\n                  }\n                  aVar49.sbcset = (re_bitset_ptr_t)&rStack_204;\n                  aVar46 = aVar4;\n                  prVar35 = re_acquire_state_context\n                                      (&rStack_208,(re_dfa_t *)aVar4.mbcset,\n                                       (re_node_set *)aVar49.mbcset,0);\n                  (aVar4.mbcset)->nchar_classes = (Idx)prVar35;\n                  rVar21 = rStack_208;\n                  if (prVar35 != (re_dfastate_t *)0x0) {\n                    if ((prVar35->field_0x34 & 1) == 0) {\n                      *(re_dfastate_t **)(aVar4.idx + 0x30) = prVar35;\n                      *(re_dfastate_t **)(aVar4.idx + 0x2c) = prVar35;\n                      *(re_dfastate_t **)(aVar4.idx + 0x28) = prVar35;\n                    }\n                    else {\n                      aVar49.sbcset = (re_bitset_ptr_t)&rStack_204;\n                      prVar35 = re_acquire_state_context\n                                          (&rStack_208,(re_dfa_t *)aVar4.mbcset,\n                                           (re_node_set *)aVar49.mbcset,1);\n                      *(re_dfastate_t **)(aVar4.idx + 0x28) = prVar35;\n                      prVar35 = re_acquire_state_context\n                                          (&rStack_208,(re_dfa_t *)aVar4.mbcset,\n                                           (re_node_set *)aVar49.mbcset,2);\n                      *(re_dfastate_t **)(aVar4.idx + 0x2c) = prVar35;\n                      aVar46 = aVar4;\n                      prVar35 = re_acquire_state_context\n                                          (&rStack_208,(re_dfa_t *)aVar4.mbcset,\n                                           (re_node_set *)aVar49.mbcset,6);\n                      *(re_dfastate_t **)(aVar4.idx + 0x30) = prVar35;\n                      rVar21 = rStack_208;\n                      if (((*(re_dfastate_t **)(aVar4.idx + 0x28) == (re_dfastate_t *)0x0) ||\n                          (*(re_dfastate_t **)(aVar4.idx + 0x2c) == (re_dfastate_t *)0x0)) ||\n                         (prVar35 == (re_dfastate_t *)0x0)) goto LAB_00056cb8;\n                    }\n                    (**(code **)(puVar62 + 0x23dc0))(rStack_204.elems);\n                    rVar21 = rVar34;\n                  }\n                }\nLAB_00056cb8:\n                rStack_20c = rVar21;\n                free_workarea_compile((regex_t *)preg_00.mbcset);\n                re_string_destruct((re_string_t *)&aStack_1f8);\n                rVar21 = rStack_20c;\n                if (rStack_20c != _REG_NOERROR) {\n                  if (*(int *)(puVar62 + 0x23c78) != 0) {\n                    (**(code **)(puVar62 + 0x23df0))((pthread_mutex_t *)(aVar4.idx + 0x88));\n                  }\n                  free_dfa_content((re_dfa_t *)aVar4.mbcset);\n                  *preg_00.sbcset = 0;\n                  ((re_node_set *)&(preg_00.mbcset)->range_starts)->alloc = 0;\n                  rVar21 = rStack_20c;\n                }\n                goto LAB_00056cfc;\n              }\n            }\n          }\n        }" else (if_statement "if (uVar60 == 0) {\n          rVar21 = _REG_ESPACE;\n        }\n        else if (prVar28 == (re_node_set *)0x0) {\n          rVar21 = _REG_ESPACE;\n        }\n        else {\n          pprVar29 = (re_sub_match_top_t **)\n                     (**(code **)(puVar62 + 0x23cf0))((int)(preg_00.mbcset)->ncoll_syms << 2);\n          *(re_sub_match_top_t ***)(aVar45.idx + 0x84) = pprVar29;\n          if (pprVar29 != (re_sub_match_top_t **)0x0) {\n            prVar30 = (re_sub_match_top_t *)0x0;\n            if ((re_node_set *)(preg_00.mbcset)->ncoll_syms != (re_node_set *)0x0) {\n              do {\n                (*(re_sub_match_top_t ***)(aVar45.idx + 0x84))[(int)prVar30] = prVar30;\n                prVar30 = (re_sub_match_top_t *)((int)&prVar30->str_idx + 1);\n              } while (prVar30 < (re_sub_match_top_t *)(preg_00.mbcset)->ncoll_syms);\n            }\n            preorder(*(bin_tree_t **)(aVar45.idx + 0x34),\n                     (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)\n                     (*(int *)(puVar62 + 0x23abc) + 0x60e8),aVar45.sbcset);\n            prVar30 = (re_sub_match_top_t *)(preg_00.mbcset)->ncoll_syms;\n            if (prVar30 == (re_sub_match_top_t *)0x0) {\nLAB_00056704:\n              (**(code **)(puVar62 + 0x23dc0))(*(re_sub_match_top_t ***)(aVar45.idx + 0x84));\n              *(re_sub_match_top_t ***)(aVar45.idx + 0x84) = (re_sub_match_top_t **)0x0;\n            }\n            else {\n              pprVar29 = *(re_sub_match_top_t ***)(aVar45.idx + 0x84);\n              if (*pprVar29 == (re_sub_match_top_t *)0x0) {\n                prVar31 = (re_sub_match_top_t *)0x0;\n                do {\n                  pprVar29 = pprVar29 + 1;\n                  prVar31 = (re_sub_match_top_t *)((int)&prVar31->str_idx + 1);\n                  if (prVar30 == prVar31) {\n                    if (prVar30 == prVar31) goto LAB_00056704;\n                    break;\n                  }\n                } while (*pprVar29 == prVar31);\n              }\n            }\n          }\n          aVar46.sbcset = (re_bitset_ptr_t)(*(int *)(puVar62 + 0x23abc) + 0x73a4);\n          rVar21 = postorder(*(bin_tree_t **)(aVar45.idx + 0x34),\n                             (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar46.sbcset,\n                             preg_00.sbcset);\n          aVar49.mbcset = aVar45.mbcset;\n          if (rVar21 == _REG_NOERROR) {\n            aVar46.sbcset = (re_bitset_ptr_t)(*(int *)(puVar62 + 0x23b40) + -0x5be4);\n            rVar21 = postorder(*(bin_tree_t **)(aVar45.idx + 0x34),\n                               (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar46.sbcset,\n                               aVar45.sbcset);\n            if (rVar21 == _REG_NOERROR) {\n              preorder(*(bin_tree_t **)(aVar45.idx + 0x34),\n                       (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)\n                       (*(int *)(puVar62 + 0x23abc) + 0x61b4),aVar45.sbcset);\n              aVar46.sbcset = (re_bitset_ptr_t)(*(int *)(puVar62 + 0x23b40) + -0x4614);\n              rVar21 = preorder(*(bin_tree_t **)(aVar45.idx + 0x34),\n                                (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar46.sbcset,\n                                aVar45.sbcset);\n              if (rVar21 == _REG_NOERROR) {\n                uVar60 = 0;\n                iVar55 = *(int *)(puVar62 + 0x23b40);\n                aVar56.sbcset = (re_bitset_ptr_t)0x0;\nLAB_00056744:\n                if ((re_dfa_t *)(aVar45.mbcset)->range_ends != (re_dfa_t *)aVar56.sbcset) {\nLAB_00056750:\n                  if (((re_node_set *)(aVar45.mbcset)->ncoll_syms)[aVar56.idx].nelem == 0) {\n                    aVar46.mbcset = aVar45.mbcset;\n                    aVar49 = aVar56;\n                    rVar21 = (*(code *)(iVar55 + -0x561c))\n                                       (&rStack_204,aVar45.sbcset,aVar56.sbcset,1);\n                    if (rVar21 != _REG_NOERROR) goto LAB_00056168;\n                    if (((re_node_set *)(aVar45.mbcset)->ncoll_syms)[aVar56.idx].nelem == 0) {\n                      (**(code **)(puVar62 + 0x23dc0))(rStack_204.elems);\n                      uVar60 = 1;\n                    }\n                  }\n                  aVar56.sbcset =\n                       (re_bitset_ptr_t)\n                       ((int)&((re_string_t *)&(aVar56.mbcset)->mbchars)->raw_mbs + 1);\n                  goto LAB_00056744;\n                }\n                if (uVar60 != 0) {\n                  uVar60 = 0;\n                  aVar56.sbcset = (re_bitset_ptr_t)0x0;\n                  goto LAB_00056750;\n                }\n                if ((((((re_node_set *)&(preg_00.mbcset)->nequiv_classes)->alloc & 0x8000000) == 0)\n                    && ((re_node_set *)(preg_00.mbcset)->ncoll_syms != (re_node_set *)0x0)) &&\n                   (*(char *)(aVar45.idx + 0x58) < '\0')) {\n                  pwVar57 = (wint_t *)(aVar45.mbcset)->range_ends;\n                }\n                else {\n                  if (*(Idx *)(aVar45.idx + 0x4c) == 0) goto LAB_000568f0;\n                  pwVar57 = (wint_t *)(aVar45.mbcset)->range_ends;\n                }\n                iVar55 = (**(code **)(puVar62 + 0x23cf0))((int)pwVar57 * 0xc);\n                ((re_node_set *)&(aVar45.mbcset)->nequiv_classes)->alloc = iVar55;\n                if (iVar55 == 0) {\n                  rVar21 = _REG_ESPACE;\n                  goto LAB_00056168;\n                }\n                if (pwVar57 != (wint_t *)0x0) {\n                  iVar55 = 0;\n                  uVar26 = 0;\n                  do {\n                    puVar32 = (undefined1 *)\n                              (((re_node_set *)&(aVar45.mbcset)->nequiv_classes)->alloc + iVar55);\n                    *puVar32 = 0;\n                    puVar32[1] = 0;\n                    puVar32[2] = 0;\n                    puVar32[3] = 0;\n                    puVar32[4] = 0;\n                    puVar32[5] = 0;\n                    puVar32[6] = 0;\n                    puVar32[7] = 0;\n                    puVar32[8] = 0;\n                    puVar32[9] = 0;\n                    puVar32[10] = 0;\n                    puVar32[0xb] = 0;\n                    uVar26 = uVar26 + 1;\n                    iVar55 = iVar55 + 0xc;\n                  } while (uVar26 < (aVar45.mbcset)->range_ends);\n                  iVar55 = *(int *)(puVar62 + 0x23abc);\n                  if ((wint_t *)(aVar45.mbcset)->range_ends != (wint_t *)0x0) {\n                    iVar61 = 0;\n                    aStack_218.sbcset = (re_bitset_ptr_t)0x0;\n                    do {\n                      piVar38 = *(int **)((int)&((re_node_set *)(aVar45.mbcset)->ncoll_syms)->elems\n                                         + iVar61);\n                      if (0 < *(int *)((int)&((re_node_set *)(aVar45.mbcset)->ncoll_syms)->nelem +\n                                      iVar61)) {\n                        iVar58 = 0;\n                        do {\n                          aVar46 = aStack_218;\n                          iVar33 = (*(code *)(iVar55 + 0x6e30))\n                                             (((re_node_set *)&(aVar45.mbcset)->nequiv_classes)->\n                                              alloc + *piVar38 * 0xc);\n                          rVar21 = _REG_ESPACE;\n                          if (iVar33 == 0) goto LAB_00056168;\n                          iVar58 = iVar58 + 1;\n                          piVar38 = piVar38 + 1;\n                        } while (iVar58 < *(int *)((int)&((re_node_set *)(aVar45.mbcset)->ncoll_syms\n                                                         )->nelem + iVar61));\n                      }\n                      aStack_218.sbcset =\n                           (re_bitset_ptr_t)\n                           ((int)&((re_string_t *)&(aStack_218.mbcset)->mbchars)->raw_mbs + 1);\n                      iVar61 = iVar61 + 0xc;\n                    } while (aStack_218.sbcset < (re_dfa_t *)(aVar45.mbcset)->range_ends);\n                  }\n                }\nLAB_000568f0:\n                rStack_20c = _REG_NOERROR;\n                if ((((*(byte *)(aVar4.idx + 0x58) & 0x20) != 0) && (uVar8 == 0)) &&\n                   (((anon_union_4_2_91654ee9_for___value *)&(preg_00.mbcset)->nmbchars)->__wch == 0\n                   )) {\n                  if ((aVar4.mbcset)->range_ends != (wchar_t *)0x0) {\n                    aVar49.sbcset = (re_bitset_ptr_t)(*(int *)(puVar62 + 0x23754) + 0x6e4c);\n                    if (*(byte *)(*aVar4.sbcset + 4) < 0xd) {\n                    /* WARNING: Could not recover jumptable at 0x00056a60. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      rVar21 = (*(code *)(puVar62 +\n                                         aVar49.sbcset[*(byte *)(*aVar4.sbcset + 4)] + 0x2b71c))();\n                      return rVar21;\n                    }\n                    (**(code **)(puVar62 + 0x23bc4))(0);\n                    if (uVar60 != 0) {\n                      aVar49.idx = (Idx)&DAT_00000007;\n                      uVar8 = 0;\n                      do {\n                        prVar53 = (re_token_t *)(aVar4.mbcset)->mbchars + uVar8;\n                        if (prVar53->field_0x4 == '\x01') {\n                          if ((char)(prVar53->opr).c < '\0') {\n                            *(uint *)&prVar53->field_0x4 = *(uint *)&prVar53->field_0x4 & 0xfffffbff\n                            ;\n                          }\n                        }\n                        else if (prVar53->field_0x4 == '\x05') {\n                          prVar53->field_0x4 = 7;\n                        }\n                        uVar8 = uVar8 + 1;\n                      } while (uVar8 < (aVar4.mbcset)->range_ends);\n                    }\n                  }\n                  *(int *)(aVar4.idx + 0x5c) = 1;\n                  if (0 < *(Idx *)(aVar4.idx + 0x4c)) {\n                    uVar60 = 1;\n                  }\n                  *(byte *)(aVar4.idx + 0x58) =\n                       *(byte *)(aVar4.idx + 0x58) & 0x9f | (byte)((uVar60 & 1) << 6);\n                }\n                iVar55 = (*(bin_tree_t **)(aVar4.idx + 0x34))->first->node_idx;\n                *(int *)(aVar4.idx + 0x48) = iVar55;\n                aVar46.sbcset =\n                     (re_bitset_ptr_t)((re_node_set *)(aVar4.mbcset)->ncoll_syms + iVar55);\n                rVar34 = re_node_set_init_copy(&rStack_204,(re_node_set *)aVar46.mbcset);\n                rVar21 = rVar34;\n                rStack_208 = rVar34;\n                if (rVar34 == _REG_NOERROR) {\n                  if ((0 < *(Idx *)(aVar4.idx + 0x4c)) && (_REG_NOERROR < rStack_204.nelem)) {\n                    iVar55 = *(int *)(puVar62 + 0x23abc);\n                    iVar61 = *(int *)(puVar62 + 0x23abc);\n                    rVar21 = _REG_NOERROR;\n                    do {\n                      aVar49.sbcset =\n                           (re_bitset_ptr_t)\n                           ((re_token_t *)(aVar4.mbcset)->mbchars + rStack_204.elems[rVar21]);\n                      if (*(char *)&((re_node_set *)&(aVar49.mbcset)->range_starts)->alloc == '\x04'\n                         ) {\n                        rVar48 = _REG_NOERROR;\n                        piVar38 = rStack_204.elems;\n                        if (rStack_204.nelem < _REG_NOMATCH) {\nLAB_00056b8c:\n                          if (rStack_204.nelem != rVar48) {\n                            iVar33 = *((re_node_set *)(aVar4.mbcset)->nmbchars)\n                                      [rStack_204.elems[rVar21]].elems;\n                            iVar58 = (*(code *)(iVar55 + 0x5ea8))(&rStack_204,iVar33);\n                            if (iVar58 == 0) {\n                              aVar46.sbcset =\n                                   (re_bitset_ptr_t)\n                                   ((re_node_set *)(aVar4.mbcset)->ncoll_syms + iVar33);\n                              rVar21 = (*(code *)(iVar61 + 0x7f1c))(&rStack_204);\n                              if (rVar21 != _REG_NOERROR) goto LAB_00056cb8;\n                            }\n                          }\n                        }\n                        else {\n                          do {\n                            prVar53 = (re_token_t *)(aVar4.mbcset)->mbchars + *piVar38;\n                            if ((prVar53->field_0x4 == '\t') &&\n                               ((prVar53->opr).sbcset == (re_bitset_ptr_t)*aVar49.sbcset))\n                            goto LAB_00056b8c;\n                            rVar48 = rVar48 + _REG_NOMATCH;\n                            piVar38 = piVar38 + 1;\n                          } while (rStack_204.nelem != rVar48);\n                        }\n                      }\n                      rVar21 = rVar21 + _REG_NOMATCH;\n                    } while (rVar21 < rStack_204.nelem);\n                  }\n                  aVar49.sbcset = (re_bitset_ptr_t)&rStack_204;\n                  aVar46 = aVar4;\n                  prVar35 = re_acquire_state_context\n                                      (&rStack_208,(re_dfa_t *)aVar4.mbcset,\n                                       (re_node_set *)aVar49.mbcset,0);\n                  (aVar4.mbcset)->nchar_classes = (Idx)prVar35;\n                  rVar21 = rStack_208;\n                  if (prVar35 != (re_dfastate_t *)0x0) {\n                    if ((prVar35->field_0x34 & 1) == 0) {\n                      *(re_dfastate_t **)(aVar4.idx + 0x30) = prVar35;\n                      *(re_dfastate_t **)(aVar4.idx + 0x2c) = prVar35;\n                      *(re_dfastate_t **)(aVar4.idx + 0x28) = prVar35;\n                    }\n                    else {\n                      aVar49.sbcset = (re_bitset_ptr_t)&rStack_204;\n                      prVar35 = re_acquire_state_context\n                                          (&rStack_208,(re_dfa_t *)aVar4.mbcset,\n                                           (re_node_set *)aVar49.mbcset,1);\n                      *(re_dfastate_t **)(aVar4.idx + 0x28) = prVar35;\n                      prVar35 = re_acquire_state_context\n                                          (&rStack_208,(re_dfa_t *)aVar4.mbcset,\n                                           (re_node_set *)aVar49.mbcset,2);\n                      *(re_dfastate_t **)(aVar4.idx + 0x2c) = prVar35;\n                      aVar46 = aVar4;\n                      prVar35 = re_acquire_state_context\n                                          (&rStack_208,(re_dfa_t *)aVar4.mbcset,\n                                           (re_node_set *)aVar49.mbcset,6);\n                      *(re_dfastate_t **)(aVar4.idx + 0x30) = prVar35;\n                      rVar21 = rStack_208;\n                      if (((*(re_dfastate_t **)(aVar4.idx + 0x28) == (re_dfastate_t *)0x0) ||\n                          (*(re_dfastate_t **)(aVar4.idx + 0x2c) == (re_dfastate_t *)0x0)) ||\n                         (prVar35 == (re_dfastate_t *)0x0)) goto LAB_00056cb8;\n                    }\n                    (**(code **)(puVar62 + 0x23dc0))(rStack_204.elems);\n                    rVar21 = rVar34;\n                  }\n                }\nLAB_00056cb8:\n                rStack_20c = rVar21;\n                free_workarea_compile((regex_t *)preg_00.mbcset);\n                re_string_destruct((re_string_t *)&aStack_1f8);\n                rVar21 = rStack_20c;\n                if (rStack_20c != _REG_NOERROR) {\n                  if (*(int *)(puVar62 + 0x23c78) != 0) {\n                    (**(code **)(puVar62 + 0x23df0))((pthread_mutex_t *)(aVar4.idx + 0x88));\n                  }\n                  free_dfa_content((re_dfa_t *)aVar4.mbcset);\n                  *preg_00.sbcset = 0;\n                  ((re_node_set *)&(preg_00.mbcset)->range_starts)->alloc = 0;\n                  rVar21 = rStack_20c;\n                }\n                goto LAB_00056cfc;\n              }\n            }\n          }\n        }" if (parenthesized_expression "(uVar60 == 0)" ( (binary_expression "uVar60 == 0" identifier == number_literal) )) (compound_statement "{\n          rVar21 = _REG_ESPACE;\n        }" { (expression_statement "rVar21 = _REG_ESPACE;" (assignment_expression "rVar21 = _REG_ESPACE" identifier = identifier) ;) }) (else_clause "else if (prVar28 == (re_node_set *)0x0) {\n          rVar21 = _REG_ESPACE;\n        }\n        else {\n          pprVar29 = (re_sub_match_top_t **)\n                     (**(code **)(puVar62 + 0x23cf0))((int)(preg_00.mbcset)->ncoll_syms << 2);\n          *(re_sub_match_top_t ***)(aVar45.idx + 0x84) = pprVar29;\n          if (pprVar29 != (re_sub_match_top_t **)0x0) {\n            prVar30 = (re_sub_match_top_t *)0x0;\n            if ((re_node_set *)(preg_00.mbcset)->ncoll_syms != (re_node_set *)0x0) {\n              do {\n                (*(re_sub_match_top_t ***)(aVar45.idx + 0x84))[(int)prVar30] = prVar30;\n                prVar30 = (re_sub_match_top_t *)((int)&prVar30->str_idx + 1);\n              } while (prVar30 < (re_sub_match_top_t *)(preg_00.mbcset)->ncoll_syms);\n            }\n            preorder(*(bin_tree_t **)(aVar45.idx + 0x34),\n                     (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)\n                     (*(int *)(puVar62 + 0x23abc) + 0x60e8),aVar45.sbcset);\n            prVar30 = (re_sub_match_top_t *)(preg_00.mbcset)->ncoll_syms;\n            if (prVar30 == (re_sub_match_top_t *)0x0) {\nLAB_00056704:\n              (**(code **)(puVar62 + 0x23dc0))(*(re_sub_match_top_t ***)(aVar45.idx + 0x84));\n              *(re_sub_match_top_t ***)(aVar45.idx + 0x84) = (re_sub_match_top_t **)0x0;\n            }\n            else {\n              pprVar29 = *(re_sub_match_top_t ***)(aVar45.idx + 0x84);\n              if (*pprVar29 == (re_sub_match_top_t *)0x0) {\n                prVar31 = (re_sub_match_top_t *)0x0;\n                do {\n                  pprVar29 = pprVar29 + 1;\n                  prVar31 = (re_sub_match_top_t *)((int)&prVar31->str_idx + 1);\n                  if (prVar30 == prVar31) {\n                    if (prVar30 == prVar31) goto LAB_00056704;\n                    break;\n                  }\n                } while (*pprVar29 == prVar31);\n              }\n            }\n          }\n          aVar46.sbcset = (re_bitset_ptr_t)(*(int *)(puVar62 + 0x23abc) + 0x73a4);\n          rVar21 = postorder(*(bin_tree_t **)(aVar45.idx + 0x34),\n                             (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar46.sbcset,\n                             preg_00.sbcset);\n          aVar49.mbcset = aVar45.mbcset;\n          if (rVar21 == _REG_NOERROR) {\n            aVar46.sbcset = (re_bitset_ptr_t)(*(int *)(puVar62 + 0x23b40) + -0x5be4);\n            rVar21 = postorder(*(bin_tree_t **)(aVar45.idx + 0x34),\n                               (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar46.sbcset,\n                               aVar45.sbcset);\n            if (rVar21 == _REG_NOERROR) {\n              preorder(*(bin_tree_t **)(aVar45.idx + 0x34),\n                       (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)\n                       (*(int *)(puVar62 + 0x23abc) + 0x61b4),aVar45.sbcset);\n              aVar46.sbcset = (re_bitset_ptr_t)(*(int *)(puVar62 + 0x23b40) + -0x4614);\n              rVar21 = preorder(*(bin_tree_t **)(aVar45.idx + 0x34),\n                                (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar46.sbcset,\n                                aVar45.sbcset);\n              if (rVar21 == _REG_NOERROR) {\n                uVar60 = 0;\n                iVar55 = *(int *)(puVar62 + 0x23b40);\n                aVar56.sbcset = (re_bitset_ptr_t)0x0;\nLAB_00056744:\n                if ((re_dfa_t *)(aVar45.mbcset)->range_ends != (re_dfa_t *)aVar56.sbcset) {\nLAB_00056750:\n                  if (((re_node_set *)(aVar45.mbcset)->ncoll_syms)[aVar56.idx].nelem == 0) {\n                    aVar46.mbcset = aVar45.mbcset;\n                    aVar49 = aVar56;\n                    rVar21 = (*(code *)(iVar55 + -0x561c))\n                                       (&rStack_204,aVar45.sbcset,aVar56.sbcset,1);\n                    if (rVar21 != _REG_NOERROR) goto LAB_00056168;\n                    if (((re_node_set *)(aVar45.mbcset)->ncoll_syms)[aVar56.idx].nelem == 0) {\n                      (**(code **)(puVar62 + 0x23dc0))(rStack_204.elems);\n                      uVar60 = 1;\n                    }\n                  }\n                  aVar56.sbcset =\n                       (re_bitset_ptr_t)\n                       ((int)&((re_string_t *)&(aVar56.mbcset)->mbchars)->raw_mbs + 1);\n                  goto LAB_00056744;\n                }\n                if (uVar60 != 0) {\n                  uVar60 = 0;\n                  aVar56.sbcset = (re_bitset_ptr_t)0x0;\n                  goto LAB_00056750;\n                }\n                if ((((((re_node_set *)&(preg_00.mbcset)->nequiv_classes)->alloc & 0x8000000) == 0)\n                    && ((re_node_set *)(preg_00.mbcset)->ncoll_syms != (re_node_set *)0x0)) &&\n                   (*(char *)(aVar45.idx + 0x58) < '\0')) {\n                  pwVar57 = (wint_t *)(aVar45.mbcset)->range_ends;\n                }\n                else {\n                  if (*(Idx *)(aVar45.idx + 0x4c) == 0) goto LAB_000568f0;\n                  pwVar57 = (wint_t *)(aVar45.mbcset)->range_ends;\n                }\n                iVar55 = (**(code **)(puVar62 + 0x23cf0))((int)pwVar57 * 0xc);\n                ((re_node_set *)&(aVar45.mbcset)->nequiv_classes)->alloc = iVar55;\n                if (iVar55 == 0) {\n                  rVar21 = _REG_ESPACE;\n                  goto LAB_00056168;\n                }\n                if (pwVar57 != (wint_t *)0x0) {\n                  iVar55 = 0;\n                  uVar26 = 0;\n                  do {\n                    puVar32 = (undefined1 *)\n                              (((re_node_set *)&(aVar45.mbcset)->nequiv_classes)->alloc + iVar55);\n                    *puVar32 = 0;\n                    puVar32[1] = 0;\n                    puVar32[2] = 0;\n                    puVar32[3] = 0;\n                    puVar32[4] = 0;\n                    puVar32[5] = 0;\n                    puVar32[6] = 0;\n                    puVar32[7] = 0;\n                    puVar32[8] = 0;\n                    puVar32[9] = 0;\n                    puVar32[10] = 0;\n                    puVar32[0xb] = 0;\n                    uVar26 = uVar26 + 1;\n                    iVar55 = iVar55 + 0xc;\n                  } while (uVar26 < (aVar45.mbcset)->range_ends);\n                  iVar55 = *(int *)(puVar62 + 0x23abc);\n                  if ((wint_t *)(aVar45.mbcset)->range_ends != (wint_t *)0x0) {\n                    iVar61 = 0;\n                    aStack_218.sbcset = (re_bitset_ptr_t)0x0;\n                    do {\n                      piVar38 = *(int **)((int)&((re_node_set *)(aVar45.mbcset)->ncoll_syms)->elems\n                                         + iVar61);\n                      if (0 < *(int *)((int)&((re_node_set *)(aVar45.mbcset)->ncoll_syms)->nelem +\n                                      iVar61)) {\n                        iVar58 = 0;\n                        do {\n                          aVar46 = aStack_218;\n                          iVar33 = (*(code *)(iVar55 + 0x6e30))\n                                             (((re_node_set *)&(aVar45.mbcset)->nequiv_classes)->\n                                              alloc + *piVar38 * 0xc);\n                          rVar21 = _REG_ESPACE;\n                          if (iVar33 == 0) goto LAB_00056168;\n                          iVar58 = iVar58 + 1;\n                          piVar38 = piVar38 + 1;\n                        } while (iVar58 < *(int *)((int)&((re_node_set *)(aVar45.mbcset)->ncoll_syms\n                                                         )->nelem + iVar61));\n                      }\n                      aStack_218.sbcset =\n                           (re_bitset_ptr_t)\n                           ((int)&((re_string_t *)&(aStack_218.mbcset)->mbchars)->raw_mbs + 1);\n                      iVar61 = iVar61 + 0xc;\n                    } while (aStack_218.sbcset < (re_dfa_t *)(aVar45.mbcset)->range_ends);\n                  }\n                }\nLAB_000568f0:\n                rStack_20c = _REG_NOERROR;\n                if ((((*(byte *)(aVar4.idx + 0x58) & 0x20) != 0) && (uVar8 == 0)) &&\n                   (((anon_union_4_2_91654ee9_for___value *)&(preg_00.mbcset)->nmbchars)->__wch == 0\n                   )) {\n                  if ((aVar4.mbcset)->range_ends != (wchar_t *)0x0) {\n                    aVar49.sbcset = (re_bitset_ptr_t)(*(int *)(puVar62 + 0x23754) + 0x6e4c);\n                    if (*(byte *)(*aVar4.sbcset + 4) < 0xd) {\n                    /* WARNING: Could not recover jumptable at 0x00056a60. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      rVar21 = (*(code *)(puVar62 +\n                                         aVar49.sbcset[*(byte *)(*aVar4.sbcset + 4)] + 0x2b71c))();\n                      return rVar21;\n                    }\n                    (**(code **)(puVar62 + 0x23bc4))(0);\n                    if (uVar60 != 0) {\n                      aVar49.idx = (Idx)&DAT_00000007;\n                      uVar8 = 0;\n                      do {\n                        prVar53 = (re_token_t *)(aVar4.mbcset)->mbchars + uVar8;\n                        if (prVar53->field_0x4 == '\x01') {\n                          if ((char)(prVar53->opr).c < '\0') {\n                            *(uint *)&prVar53->field_0x4 = *(uint *)&prVar53->field_0x4 & 0xfffffbff\n                            ;\n                          }\n                        }\n                        else if (prVar53->field_0x4 == '\x05') {\n                          prVar53->field_0x4 = 7;\n                        }\n                        uVar8 = uVar8 + 1;\n                      } while (uVar8 < (aVar4.mbcset)->range_ends);\n                    }\n                  }\n                  *(int *)(aVar4.idx + 0x5c) = 1;\n                  if (0 < *(Idx *)(aVar4.idx + 0x4c)) {\n                    uVar60 = 1;\n                  }\n                  *(byte *)(aVar4.idx + 0x58) =\n                       *(byte *)(aVar4.idx + 0x58) & 0x9f | (byte)((uVar60 & 1) << 6);\n                }\n                iVar55 = (*(bin_tree_t **)(aVar4.idx + 0x34))->first->node_idx;\n                *(int *)(aVar4.idx + 0x48) = iVar55;\n                aVar46.sbcset =\n                     (re_bitset_ptr_t)((re_node_set *)(aVar4.mbcset)->ncoll_syms + iVar55);\n                rVar34 = re_node_set_init_copy(&rStack_204,(re_node_set *)aVar46.mbcset);\n                rVar21 = rVar34;\n                rStack_208 = rVar34;\n                if (rVar34 == _REG_NOERROR) {\n                  if ((0 < *(Idx *)(aVar4.idx + 0x4c)) && (_REG_NOERROR < rStack_204.nelem)) {\n                    iVar55 = *(int *)(puVar62 + 0x23abc);\n                    iVar61 = *(int *)(puVar62 + 0x23abc);\n                    rVar21 = _REG_NOERROR;\n                    do {\n                      aVar49.sbcset =\n                           (re_bitset_ptr_t)\n                           ((re_token_t *)(aVar4.mbcset)->mbchars + rStack_204.elems[rVar21]);\n                      if (*(char *)&((re_node_set *)&(aVar49.mbcset)->range_starts)->alloc == '\x04'\n                         ) {\n                        rVar48 = _REG_NOERROR;\n                        piVar38 = rStack_204.elems;\n                        if (rStack_204.nelem < _REG_NOMATCH) {\nLAB_00056b8c:\n                          if (rStack_204.nelem != rVar48) {\n                            iVar33 = *((re_node_set *)(aVar4.mbcset)->nmbchars)\n                                      [rStack_204.elems[rVar21]].elems;\n                            iVar58 = (*(code *)(iVar55 + 0x5ea8))(&rStack_204,iVar33);\n                            if (iVar58 == 0) {\n                              aVar46.sbcset =\n                                   (re_bitset_ptr_t)\n                                   ((re_node_set *)(aVar4.mbcset)->ncoll_syms + iVar33);\n                              rVar21 = (*(code *)(iVar61 + 0x7f1c))(&rStack_204);\n                              if (rVar21 != _REG_NOERROR) goto LAB_00056cb8;\n                            }\n                          }\n                        }\n                        else {\n                          do {\n                            prVar53 = (re_token_t *)(aVar4.mbcset)->mbchars + *piVar38;\n                            if ((prVar53->field_0x4 == '\t') &&\n                               ((prVar53->opr).sbcset == (re_bitset_ptr_t)*aVar49.sbcset))\n                            goto LAB_00056b8c;\n                            rVar48 = rVar48 + _REG_NOMATCH;\n                            piVar38 = piVar38 + 1;\n                          } while (rStack_204.nelem != rVar48);\n                        }\n                      }\n                      rVar21 = rVar21 + _REG_NOMATCH;\n                    } while (rVar21 < rStack_204.nelem);\n                  }\n                  aVar49.sbcset = (re_bitset_ptr_t)&rStack_204;\n                  aVar46 = aVar4;\n                  prVar35 = re_acquire_state_context\n                                      (&rStack_208,(re_dfa_t *)aVar4.mbcset,\n                                       (re_node_set *)aVar49.mbcset,0);\n                  (aVar4.mbcset)->nchar_classes = (Idx)prVar35;\n                  rVar21 = rStack_208;\n                  if (prVar35 != (re_dfastate_t *)0x0) {\n                    if ((prVar35->field_0x34 & 1) == 0) {\n                      *(re_dfastate_t **)(aVar4.idx + 0x30) = prVar35;\n                      *(re_dfastate_t **)(aVar4.idx + 0x2c) = prVar35;\n                      *(re_dfastate_t **)(aVar4.idx + 0x28) = prVar35;\n                    }\n                    else {\n                      aVar49.sbcset = (re_bitset_ptr_t)&rStack_204;\n                      prVar35 = re_acquire_state_context\n                                          (&rStack_208,(re_dfa_t *)aVar4.mbcset,\n                                           (re_node_set *)aVar49.mbcset,1);\n                      *(re_dfastate_t **)(aVar4.idx + 0x28) = prVar35;\n                      prVar35 = re_acquire_state_context\n                                          (&rStack_208,(re_dfa_t *)aVar4.mbcset,\n                                           (re_node_set *)aVar49.mbcset,2);\n                      *(re_dfastate_t **)(aVar4.idx + 0x2c) = prVar35;\n                      aVar46 = aVar4;\n                      prVar35 = re_acquire_state_context\n                                          (&rStack_208,(re_dfa_t *)aVar4.mbcset,\n                                           (re_node_set *)aVar49.mbcset,6);\n                      *(re_dfastate_t **)(aVar4.idx + 0x30) = prVar35;\n                      rVar21 = rStack_208;\n                      if (((*(re_dfastate_t **)(aVar4.idx + 0x28) == (re_dfastate_t *)0x0) ||\n                          (*(re_dfastate_t **)(aVar4.idx + 0x2c) == (re_dfastate_t *)0x0)) ||\n                         (prVar35 == (re_dfastate_t *)0x0)) goto LAB_00056cb8;\n                    }\n                    (**(code **)(puVar62 + 0x23dc0))(rStack_204.elems);\n                    rVar21 = rVar34;\n                  }\n                }\nLAB_00056cb8:\n                rStack_20c = rVar21;\n                free_workarea_compile((regex_t *)preg_00.mbcset);\n                re_string_destruct((re_string_t *)&aStack_1f8);\n                rVar21 = rStack_20c;\n                if (rStack_20c != _REG_NOERROR) {\n                  if (*(int *)(puVar62 + 0x23c78) != 0) {\n                    (**(code **)(puVar62 + 0x23df0))((pthread_mutex_t *)(aVar4.idx + 0x88));\n                  }\n                  free_dfa_content((re_dfa_t *)aVar4.mbcset);\n                  *preg_00.sbcset = 0;\n                  ((re_node_set *)&(preg_00.mbcset)->range_starts)->alloc = 0;\n                  rVar21 = rStack_20c;\n                }\n                goto LAB_00056cfc;\n              }\n            }\n          }\n        }" else (if_statement "if (prVar28 == (re_node_set *)0x0) {\n          rVar21 = _REG_ESPACE;\n        }\n        else {\n          pprVar29 = (re_sub_match_top_t **)\n                     (**(code **)(puVar62 + 0x23cf0))((int)(preg_00.mbcset)->ncoll_syms << 2);\n          *(re_sub_match_top_t ***)(aVar45.idx + 0x84) = pprVar29;\n          if (pprVar29 != (re_sub_match_top_t **)0x0) {\n            prVar30 = (re_sub_match_top_t *)0x0;\n            if ((re_node_set *)(preg_00.mbcset)->ncoll_syms != (re_node_set *)0x0) {\n              do {\n                (*(re_sub_match_top_t ***)(aVar45.idx + 0x84))[(int)prVar30] = prVar30;\n                prVar30 = (re_sub_match_top_t *)((int)&prVar30->str_idx + 1);\n              } while (prVar30 < (re_sub_match_top_t *)(preg_00.mbcset)->ncoll_syms);\n            }\n            preorder(*(bin_tree_t **)(aVar45.idx + 0x34),\n                     (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)\n                     (*(int *)(puVar62 + 0x23abc) + 0x60e8),aVar45.sbcset);\n            prVar30 = (re_sub_match_top_t *)(preg_00.mbcset)->ncoll_syms;\n            if (prVar30 == (re_sub_match_top_t *)0x0) {\nLAB_00056704:\n              (**(code **)(puVar62 + 0x23dc0))(*(re_sub_match_top_t ***)(aVar45.idx + 0x84));\n              *(re_sub_match_top_t ***)(aVar45.idx + 0x84) = (re_sub_match_top_t **)0x0;\n            }\n            else {\n              pprVar29 = *(re_sub_match_top_t ***)(aVar45.idx + 0x84);\n              if (*pprVar29 == (re_sub_match_top_t *)0x0) {\n                prVar31 = (re_sub_match_top_t *)0x0;\n                do {\n                  pprVar29 = pprVar29 + 1;\n                  prVar31 = (re_sub_match_top_t *)((int)&prVar31->str_idx + 1);\n                  if (prVar30 == prVar31) {\n                    if (prVar30 == prVar31) goto LAB_00056704;\n                    break;\n                  }\n                } while (*pprVar29 == prVar31);\n              }\n            }\n          }\n          aVar46.sbcset = (re_bitset_ptr_t)(*(int *)(puVar62 + 0x23abc) + 0x73a4);\n          rVar21 = postorder(*(bin_tree_t **)(aVar45.idx + 0x34),\n                             (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar46.sbcset,\n                             preg_00.sbcset);\n          aVar49.mbcset = aVar45.mbcset;\n          if (rVar21 == _REG_NOERROR) {\n            aVar46.sbcset = (re_bitset_ptr_t)(*(int *)(puVar62 + 0x23b40) + -0x5be4);\n            rVar21 = postorder(*(bin_tree_t **)(aVar45.idx + 0x34),\n                               (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar46.sbcset,\n                               aVar45.sbcset);\n            if (rVar21 == _REG_NOERROR) {\n              preorder(*(bin_tree_t **)(aVar45.idx + 0x34),\n                       (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)\n                       (*(int *)(puVar62 + 0x23abc) + 0x61b4),aVar45.sbcset);\n              aVar46.sbcset = (re_bitset_ptr_t)(*(int *)(puVar62 + 0x23b40) + -0x4614);\n              rVar21 = preorder(*(bin_tree_t **)(aVar45.idx + 0x34),\n                                (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar46.sbcset,\n                                aVar45.sbcset);\n              if (rVar21 == _REG_NOERROR) {\n                uVar60 = 0;\n                iVar55 = *(int *)(puVar62 + 0x23b40);\n                aVar56.sbcset = (re_bitset_ptr_t)0x0;\nLAB_00056744:\n                if ((re_dfa_t *)(aVar45.mbcset)->range_ends != (re_dfa_t *)aVar56.sbcset) {\nLAB_00056750:\n                  if (((re_node_set *)(aVar45.mbcset)->ncoll_syms)[aVar56.idx].nelem == 0) {\n                    aVar46.mbcset = aVar45.mbcset;\n                    aVar49 = aVar56;\n                    rVar21 = (*(code *)(iVar55 + -0x561c))\n                                       (&rStack_204,aVar45.sbcset,aVar56.sbcset,1);\n                    if (rVar21 != _REG_NOERROR) goto LAB_00056168;\n                    if (((re_node_set *)(aVar45.mbcset)->ncoll_syms)[aVar56.idx].nelem == 0) {\n                      (**(code **)(puVar62 + 0x23dc0))(rStack_204.elems);\n                      uVar60 = 1;\n                    }\n                  }\n                  aVar56.sbcset =\n                       (re_bitset_ptr_t)\n                       ((int)&((re_string_t *)&(aVar56.mbcset)->mbchars)->raw_mbs + 1);\n                  goto LAB_00056744;\n                }\n                if (uVar60 != 0) {\n                  uVar60 = 0;\n                  aVar56.sbcset = (re_bitset_ptr_t)0x0;\n                  goto LAB_00056750;\n                }\n                if ((((((re_node_set *)&(preg_00.mbcset)->nequiv_classes)->alloc & 0x8000000) == 0)\n                    && ((re_node_set *)(preg_00.mbcset)->ncoll_syms != (re_node_set *)0x0)) &&\n                   (*(char *)(aVar45.idx + 0x58) < '\0')) {\n                  pwVar57 = (wint_t *)(aVar45.mbcset)->range_ends;\n                }\n                else {\n                  if (*(Idx *)(aVar45.idx + 0x4c) == 0) goto LAB_000568f0;\n                  pwVar57 = (wint_t *)(aVar45.mbcset)->range_ends;\n                }\n                iVar55 = (**(code **)(puVar62 + 0x23cf0))((int)pwVar57 * 0xc);\n                ((re_node_set *)&(aVar45.mbcset)->nequiv_classes)->alloc = iVar55;\n                if (iVar55 == 0) {\n                  rVar21 = _REG_ESPACE;\n                  goto LAB_00056168;\n                }\n                if (pwVar57 != (wint_t *)0x0) {\n                  iVar55 = 0;\n                  uVar26 = 0;\n                  do {\n                    puVar32 = (undefined1 *)\n                              (((re_node_set *)&(aVar45.mbcset)->nequiv_classes)->alloc + iVar55);\n                    *puVar32 = 0;\n                    puVar32[1] = 0;\n                    puVar32[2] = 0;\n                    puVar32[3] = 0;\n                    puVar32[4] = 0;\n                    puVar32[5] = 0;\n                    puVar32[6] = 0;\n                    puVar32[7] = 0;\n                    puVar32[8] = 0;\n                    puVar32[9] = 0;\n                    puVar32[10] = 0;\n                    puVar32[0xb] = 0;\n                    uVar26 = uVar26 + 1;\n                    iVar55 = iVar55 + 0xc;\n                  } while (uVar26 < (aVar45.mbcset)->range_ends);\n                  iVar55 = *(int *)(puVar62 + 0x23abc);\n                  if ((wint_t *)(aVar45.mbcset)->range_ends != (wint_t *)0x0) {\n                    iVar61 = 0;\n                    aStack_218.sbcset = (re_bitset_ptr_t)0x0;\n                    do {\n                      piVar38 = *(int **)((int)&((re_node_set *)(aVar45.mbcset)->ncoll_syms)->elems\n                                         + iVar61);\n                      if (0 < *(int *)((int)&((re_node_set *)(aVar45.mbcset)->ncoll_syms)->nelem +\n                                      iVar61)) {\n                        iVar58 = 0;\n                        do {\n                          aVar46 = aStack_218;\n                          iVar33 = (*(code *)(iVar55 + 0x6e30))\n                                             (((re_node_set *)&(aVar45.mbcset)->nequiv_classes)->\n                                              alloc + *piVar38 * 0xc);\n                          rVar21 = _REG_ESPACE;\n                          if (iVar33 == 0) goto LAB_00056168;\n                          iVar58 = iVar58 + 1;\n                          piVar38 = piVar38 + 1;\n                        } while (iVar58 < *(int *)((int)&((re_node_set *)(aVar45.mbcset)->ncoll_syms\n                                                         )->nelem + iVar61));\n                      }\n                      aStack_218.sbcset =\n                           (re_bitset_ptr_t)\n                           ((int)&((re_string_t *)&(aStack_218.mbcset)->mbchars)->raw_mbs + 1);\n                      iVar61 = iVar61 + 0xc;\n                    } while (aStack_218.sbcset < (re_dfa_t *)(aVar45.mbcset)->range_ends);\n                  }\n                }\nLAB_000568f0:\n                rStack_20c = _REG_NOERROR;\n                if ((((*(byte *)(aVar4.idx + 0x58) & 0x20) != 0) && (uVar8 == 0)) &&\n                   (((anon_union_4_2_91654ee9_for___value *)&(preg_00.mbcset)->nmbchars)->__wch == 0\n                   )) {\n                  if ((aVar4.mbcset)->range_ends != (wchar_t *)0x0) {\n                    aVar49.sbcset = (re_bitset_ptr_t)(*(int *)(puVar62 + 0x23754) + 0x6e4c);\n                    if (*(byte *)(*aVar4.sbcset + 4) < 0xd) {\n                    /* WARNING: Could not recover jumptable at 0x00056a60. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      rVar21 = (*(code *)(puVar62 +\n                                         aVar49.sbcset[*(byte *)(*aVar4.sbcset + 4)] + 0x2b71c))();\n                      return rVar21;\n                    }\n                    (**(code **)(puVar62 + 0x23bc4))(0);\n                    if (uVar60 != 0) {\n                      aVar49.idx = (Idx)&DAT_00000007;\n                      uVar8 = 0;\n                      do {\n                        prVar53 = (re_token_t *)(aVar4.mbcset)->mbchars + uVar8;\n                        if (prVar53->field_0x4 == '\x01') {\n                          if ((char)(prVar53->opr).c < '\0') {\n                            *(uint *)&prVar53->field_0x4 = *(uint *)&prVar53->field_0x4 & 0xfffffbff\n                            ;\n                          }\n                        }\n                        else if (prVar53->field_0x4 == '\x05') {\n                          prVar53->field_0x4 = 7;\n                        }\n                        uVar8 = uVar8 + 1;\n                      } while (uVar8 < (aVar4.mbcset)->range_ends);\n                    }\n                  }\n                  *(int *)(aVar4.idx + 0x5c) = 1;\n                  if (0 < *(Idx *)(aVar4.idx + 0x4c)) {\n                    uVar60 = 1;\n                  }\n                  *(byte *)(aVar4.idx + 0x58) =\n                       *(byte *)(aVar4.idx + 0x58) & 0x9f | (byte)((uVar60 & 1) << 6);\n                }\n                iVar55 = (*(bin_tree_t **)(aVar4.idx + 0x34))->first->node_idx;\n                *(int *)(aVar4.idx + 0x48) = iVar55;\n                aVar46.sbcset =\n                     (re_bitset_ptr_t)((re_node_set *)(aVar4.mbcset)->ncoll_syms + iVar55);\n                rVar34 = re_node_set_init_copy(&rStack_204,(re_node_set *)aVar46.mbcset);\n                rVar21 = rVar34;\n                rStack_208 = rVar34;\n                if (rVar34 == _REG_NOERROR) {\n                  if ((0 < *(Idx *)(aVar4.idx + 0x4c)) && (_REG_NOERROR < rStack_204.nelem)) {\n                    iVar55 = *(int *)(puVar62 + 0x23abc);\n                    iVar61 = *(int *)(puVar62 + 0x23abc);\n                    rVar21 = _REG_NOERROR;\n                    do {\n                      aVar49.sbcset =\n                           (re_bitset_ptr_t)\n                           ((re_token_t *)(aVar4.mbcset)->mbchars + rStack_204.elems[rVar21]);\n                      if (*(char *)&((re_node_set *)&(aVar49.mbcset)->range_starts)->alloc == '\x04'\n                         ) {\n                        rVar48 = _REG_NOERROR;\n                        piVar38 = rStack_204.elems;\n                        if (rStack_204.nelem < _REG_NOMATCH) {\nLAB_00056b8c:\n                          if (rStack_204.nelem != rVar48) {\n                            iVar33 = *((re_node_set *)(aVar4.mbcset)->nmbchars)\n                                      [rStack_204.elems[rVar21]].elems;\n                            iVar58 = (*(code *)(iVar55 + 0x5ea8))(&rStack_204,iVar33);\n                            if (iVar58 == 0) {\n                              aVar46.sbcset =\n                                   (re_bitset_ptr_t)\n                                   ((re_node_set *)(aVar4.mbcset)->ncoll_syms + iVar33);\n                              rVar21 = (*(code *)(iVar61 + 0x7f1c))(&rStack_204);\n                              if (rVar21 != _REG_NOERROR) goto LAB_00056cb8;\n                            }\n                          }\n                        }\n                        else {\n                          do {\n                            prVar53 = (re_token_t *)(aVar4.mbcset)->mbchars + *piVar38;\n                            if ((prVar53->field_0x4 == '\t') &&\n                               ((prVar53->opr).sbcset == (re_bitset_ptr_t)*aVar49.sbcset))\n                            goto LAB_00056b8c;\n                            rVar48 = rVar48 + _REG_NOMATCH;\n                            piVar38 = piVar38 + 1;\n                          } while (rStack_204.nelem != rVar48);\n                        }\n                      }\n                      rVar21 = rVar21 + _REG_NOMATCH;\n                    } while (rVar21 < rStack_204.nelem);\n                  }\n                  aVar49.sbcset = (re_bitset_ptr_t)&rStack_204;\n                  aVar46 = aVar4;\n                  prVar35 = re_acquire_state_context\n                                      (&rStack_208,(re_dfa_t *)aVar4.mbcset,\n                                       (re_node_set *)aVar49.mbcset,0);\n                  (aVar4.mbcset)->nchar_classes = (Idx)prVar35;\n                  rVar21 = rStack_208;\n                  if (prVar35 != (re_dfastate_t *)0x0) {\n                    if ((prVar35->field_0x34 & 1) == 0) {\n                      *(re_dfastate_t **)(aVar4.idx + 0x30) = prVar35;\n                      *(re_dfastate_t **)(aVar4.idx + 0x2c) = prVar35;\n                      *(re_dfastate_t **)(aVar4.idx + 0x28) = prVar35;\n                    }\n                    else {\n                      aVar49.sbcset = (re_bitset_ptr_t)&rStack_204;\n                      prVar35 = re_acquire_state_context\n                                          (&rStack_208,(re_dfa_t *)aVar4.mbcset,\n                                           (re_node_set *)aVar49.mbcset,1);\n                      *(re_dfastate_t **)(aVar4.idx + 0x28) = prVar35;\n                      prVar35 = re_acquire_state_context\n                                          (&rStack_208,(re_dfa_t *)aVar4.mbcset,\n                                           (re_node_set *)aVar49.mbcset,2);\n                      *(re_dfastate_t **)(aVar4.idx + 0x2c) = prVar35;\n                      aVar46 = aVar4;\n                      prVar35 = re_acquire_state_context\n                                          (&rStack_208,(re_dfa_t *)aVar4.mbcset,\n                                           (re_node_set *)aVar49.mbcset,6);\n                      *(re_dfastate_t **)(aVar4.idx + 0x30) = prVar35;\n                      rVar21 = rStack_208;\n                      if (((*(re_dfastate_t **)(aVar4.idx + 0x28) == (re_dfastate_t *)0x0) ||\n                          (*(re_dfastate_t **)(aVar4.idx + 0x2c) == (re_dfastate_t *)0x0)) ||\n                         (prVar35 == (re_dfastate_t *)0x0)) goto LAB_00056cb8;\n                    }\n                    (**(code **)(puVar62 + 0x23dc0))(rStack_204.elems);\n                    rVar21 = rVar34;\n                  }\n                }\nLAB_00056cb8:\n                rStack_20c = rVar21;\n                free_workarea_compile((regex_t *)preg_00.mbcset);\n                re_string_destruct((re_string_t *)&aStack_1f8);\n                rVar21 = rStack_20c;\n                if (rStack_20c != _REG_NOERROR) {\n                  if (*(int *)(puVar62 + 0x23c78) != 0) {\n                    (**(code **)(puVar62 + 0x23df0))((pthread_mutex_t *)(aVar4.idx + 0x88));\n                  }\n                  free_dfa_content((re_dfa_t *)aVar4.mbcset);\n                  *preg_00.sbcset = 0;\n                  ((re_node_set *)&(preg_00.mbcset)->range_starts)->alloc = 0;\n                  rVar21 = rStack_20c;\n                }\n                goto LAB_00056cfc;\n              }\n            }\n          }\n        }" if (parenthesized_expression "(prVar28 == (re_node_set *)0x0)" ( (binary_expression "prVar28 == (re_node_set *)0x0" identifier == (cast_expression "(re_node_set *)0x0" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          rVar21 = _REG_ESPACE;\n        }" { (expression_statement "rVar21 = _REG_ESPACE;" (assignment_expression "rVar21 = _REG_ESPACE" identifier = identifier) ;) }) (else_clause "else {\n          pprVar29 = (re_sub_match_top_t **)\n                     (**(code **)(puVar62 + 0x23cf0))((int)(preg_00.mbcset)->ncoll_syms << 2);\n          *(re_sub_match_top_t ***)(aVar45.idx + 0x84) = pprVar29;\n          if (pprVar29 != (re_sub_match_top_t **)0x0) {\n            prVar30 = (re_sub_match_top_t *)0x0;\n            if ((re_node_set *)(preg_00.mbcset)->ncoll_syms != (re_node_set *)0x0) {\n              do {\n                (*(re_sub_match_top_t ***)(aVar45.idx + 0x84))[(int)prVar30] = prVar30;\n                prVar30 = (re_sub_match_top_t *)((int)&prVar30->str_idx + 1);\n              } while (prVar30 < (re_sub_match_top_t *)(preg_00.mbcset)->ncoll_syms);\n            }\n            preorder(*(bin_tree_t **)(aVar45.idx + 0x34),\n                     (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)\n                     (*(int *)(puVar62 + 0x23abc) + 0x60e8),aVar45.sbcset);\n            prVar30 = (re_sub_match_top_t *)(preg_00.mbcset)->ncoll_syms;\n            if (prVar30 == (re_sub_match_top_t *)0x0) {\nLAB_00056704:\n              (**(code **)(puVar62 + 0x23dc0))(*(re_sub_match_top_t ***)(aVar45.idx + 0x84));\n              *(re_sub_match_top_t ***)(aVar45.idx + 0x84) = (re_sub_match_top_t **)0x0;\n            }\n            else {\n              pprVar29 = *(re_sub_match_top_t ***)(aVar45.idx + 0x84);\n              if (*pprVar29 == (re_sub_match_top_t *)0x0) {\n                prVar31 = (re_sub_match_top_t *)0x0;\n                do {\n                  pprVar29 = pprVar29 + 1;\n                  prVar31 = (re_sub_match_top_t *)((int)&prVar31->str_idx + 1);\n                  if (prVar30 == prVar31) {\n                    if (prVar30 == prVar31) goto LAB_00056704;\n                    break;\n                  }\n                } while (*pprVar29 == prVar31);\n              }\n            }\n          }\n          aVar46.sbcset = (re_bitset_ptr_t)(*(int *)(puVar62 + 0x23abc) + 0x73a4);\n          rVar21 = postorder(*(bin_tree_t **)(aVar45.idx + 0x34),\n                             (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar46.sbcset,\n                             preg_00.sbcset);\n          aVar49.mbcset = aVar45.mbcset;\n          if (rVar21 == _REG_NOERROR) {\n            aVar46.sbcset = (re_bitset_ptr_t)(*(int *)(puVar62 + 0x23b40) + -0x5be4);\n            rVar21 = postorder(*(bin_tree_t **)(aVar45.idx + 0x34),\n                               (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar46.sbcset,\n                               aVar45.sbcset);\n            if (rVar21 == _REG_NOERROR) {\n              preorder(*(bin_tree_t **)(aVar45.idx + 0x34),\n                       (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)\n                       (*(int *)(puVar62 + 0x23abc) + 0x61b4),aVar45.sbcset);\n              aVar46.sbcset = (re_bitset_ptr_t)(*(int *)(puVar62 + 0x23b40) + -0x4614);\n              rVar21 = preorder(*(bin_tree_t **)(aVar45.idx + 0x34),\n                                (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar46.sbcset,\n                                aVar45.sbcset);\n              if (rVar21 == _REG_NOERROR) {\n                uVar60 = 0;\n                iVar55 = *(int *)(puVar62 + 0x23b40);\n                aVar56.sbcset = (re_bitset_ptr_t)0x0;\nLAB_00056744:\n                if ((re_dfa_t *)(aVar45.mbcset)->range_ends != (re_dfa_t *)aVar56.sbcset) {\nLAB_00056750:\n                  if (((re_node_set *)(aVar45.mbcset)->ncoll_syms)[aVar56.idx].nelem == 0) {\n                    aVar46.mbcset = aVar45.mbcset;\n                    aVar49 = aVar56;\n                    rVar21 = (*(code *)(iVar55 + -0x561c))\n                                       (&rStack_204,aVar45.sbcset,aVar56.sbcset,1);\n                    if (rVar21 != _REG_NOERROR) goto LAB_00056168;\n                    if (((re_node_set *)(aVar45.mbcset)->ncoll_syms)[aVar56.idx].nelem == 0) {\n                      (**(code **)(puVar62 + 0x23dc0))(rStack_204.elems);\n                      uVar60 = 1;\n                    }\n                  }\n                  aVar56.sbcset =\n                       (re_bitset_ptr_t)\n                       ((int)&((re_string_t *)&(aVar56.mbcset)->mbchars)->raw_mbs + 1);\n                  goto LAB_00056744;\n                }\n                if (uVar60 != 0) {\n                  uVar60 = 0;\n                  aVar56.sbcset = (re_bitset_ptr_t)0x0;\n                  goto LAB_00056750;\n                }\n                if ((((((re_node_set *)&(preg_00.mbcset)->nequiv_classes)->alloc & 0x8000000) == 0)\n                    && ((re_node_set *)(preg_00.mbcset)->ncoll_syms != (re_node_set *)0x0)) &&\n                   (*(char *)(aVar45.idx + 0x58) < '\0')) {\n                  pwVar57 = (wint_t *)(aVar45.mbcset)->range_ends;\n                }\n                else {\n                  if (*(Idx *)(aVar45.idx + 0x4c) == 0) goto LAB_000568f0;\n                  pwVar57 = (wint_t *)(aVar45.mbcset)->range_ends;\n                }\n                iVar55 = (**(code **)(puVar62 + 0x23cf0))((int)pwVar57 * 0xc);\n                ((re_node_set *)&(aVar45.mbcset)->nequiv_classes)->alloc = iVar55;\n                if (iVar55 == 0) {\n                  rVar21 = _REG_ESPACE;\n                  goto LAB_00056168;\n                }\n                if (pwVar57 != (wint_t *)0x0) {\n                  iVar55 = 0;\n                  uVar26 = 0;\n                  do {\n                    puVar32 = (undefined1 *)\n                              (((re_node_set *)&(aVar45.mbcset)->nequiv_classes)->alloc + iVar55);\n                    *puVar32 = 0;\n                    puVar32[1] = 0;\n                    puVar32[2] = 0;\n                    puVar32[3] = 0;\n                    puVar32[4] = 0;\n                    puVar32[5] = 0;\n                    puVar32[6] = 0;\n                    puVar32[7] = 0;\n                    puVar32[8] = 0;\n                    puVar32[9] = 0;\n                    puVar32[10] = 0;\n                    puVar32[0xb] = 0;\n                    uVar26 = uVar26 + 1;\n                    iVar55 = iVar55 + 0xc;\n                  } while (uVar26 < (aVar45.mbcset)->range_ends);\n                  iVar55 = *(int *)(puVar62 + 0x23abc);\n                  if ((wint_t *)(aVar45.mbcset)->range_ends != (wint_t *)0x0) {\n                    iVar61 = 0;\n                    aStack_218.sbcset = (re_bitset_ptr_t)0x0;\n                    do {\n                      piVar38 = *(int **)((int)&((re_node_set *)(aVar45.mbcset)->ncoll_syms)->elems\n                                         + iVar61);\n                      if (0 < *(int *)((int)&((re_node_set *)(aVar45.mbcset)->ncoll_syms)->nelem +\n                                      iVar61)) {\n                        iVar58 = 0;\n                        do {\n                          aVar46 = aStack_218;\n                          iVar33 = (*(code *)(iVar55 + 0x6e30))\n                                             (((re_node_set *)&(aVar45.mbcset)->nequiv_classes)->\n                                              alloc + *piVar38 * 0xc);\n                          rVar21 = _REG_ESPACE;\n                          if (iVar33 == 0) goto LAB_00056168;\n                          iVar58 = iVar58 + 1;\n                          piVar38 = piVar38 + 1;\n                        } while (iVar58 < *(int *)((int)&((re_node_set *)(aVar45.mbcset)->ncoll_syms\n                                                         )->nelem + iVar61));\n                      }\n                      aStack_218.sbcset =\n                           (re_bitset_ptr_t)\n                           ((int)&((re_string_t *)&(aStack_218.mbcset)->mbchars)->raw_mbs + 1);\n                      iVar61 = iVar61 + 0xc;\n                    } while (aStack_218.sbcset < (re_dfa_t *)(aVar45.mbcset)->range_ends);\n                  }\n                }\nLAB_000568f0:\n                rStack_20c = _REG_NOERROR;\n                if ((((*(byte *)(aVar4.idx + 0x58) & 0x20) != 0) && (uVar8 == 0)) &&\n                   (((anon_union_4_2_91654ee9_for___value *)&(preg_00.mbcset)->nmbchars)->__wch == 0\n                   )) {\n                  if ((aVar4.mbcset)->range_ends != (wchar_t *)0x0) {\n                    aVar49.sbcset = (re_bitset_ptr_t)(*(int *)(puVar62 + 0x23754) + 0x6e4c);\n                    if (*(byte *)(*aVar4.sbcset + 4) < 0xd) {\n                    /* WARNING: Could not recover jumptable at 0x00056a60. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      rVar21 = (*(code *)(puVar62 +\n                                         aVar49.sbcset[*(byte *)(*aVar4.sbcset + 4)] + 0x2b71c))();\n                      return rVar21;\n                    }\n                    (**(code **)(puVar62 + 0x23bc4))(0);\n                    if (uVar60 != 0) {\n                      aVar49.idx = (Idx)&DAT_00000007;\n                      uVar8 = 0;\n                      do {\n                        prVar53 = (re_token_t *)(aVar4.mbcset)->mbchars + uVar8;\n                        if (prVar53->field_0x4 == '\x01') {\n                          if ((char)(prVar53->opr).c < '\0') {\n                            *(uint *)&prVar53->field_0x4 = *(uint *)&prVar53->field_0x4 & 0xfffffbff\n                            ;\n                          }\n                        }\n                        else if (prVar53->field_0x4 == '\x05') {\n                          prVar53->field_0x4 = 7;\n                        }\n                        uVar8 = uVar8 + 1;\n                      } while (uVar8 < (aVar4.mbcset)->range_ends);\n                    }\n                  }\n                  *(int *)(aVar4.idx + 0x5c) = 1;\n                  if (0 < *(Idx *)(aVar4.idx + 0x4c)) {\n                    uVar60 = 1;\n                  }\n                  *(byte *)(aVar4.idx + 0x58) =\n                       *(byte *)(aVar4.idx + 0x58) & 0x9f | (byte)((uVar60 & 1) << 6);\n                }\n                iVar55 = (*(bin_tree_t **)(aVar4.idx + 0x34))->first->node_idx;\n                *(int *)(aVar4.idx + 0x48) = iVar55;\n                aVar46.sbcset =\n                     (re_bitset_ptr_t)((re_node_set *)(aVar4.mbcset)->ncoll_syms + iVar55);\n                rVar34 = re_node_set_init_copy(&rStack_204,(re_node_set *)aVar46.mbcset);\n                rVar21 = rVar34;\n                rStack_208 = rVar34;\n                if (rVar34 == _REG_NOERROR) {\n                  if ((0 < *(Idx *)(aVar4.idx + 0x4c)) && (_REG_NOERROR < rStack_204.nelem)) {\n                    iVar55 = *(int *)(puVar62 + 0x23abc);\n                    iVar61 = *(int *)(puVar62 + 0x23abc);\n                    rVar21 = _REG_NOERROR;\n                    do {\n                      aVar49.sbcset =\n                           (re_bitset_ptr_t)\n                           ((re_token_t *)(aVar4.mbcset)->mbchars + rStack_204.elems[rVar21]);\n                      if (*(char *)&((re_node_set *)&(aVar49.mbcset)->range_starts)->alloc == '\x04'\n                         ) {\n                        rVar48 = _REG_NOERROR;\n                        piVar38 = rStack_204.elems;\n                        if (rStack_204.nelem < _REG_NOMATCH) {\nLAB_00056b8c:\n                          if (rStack_204.nelem != rVar48) {\n                            iVar33 = *((re_node_set *)(aVar4.mbcset)->nmbchars)\n                                      [rStack_204.elems[rVar21]].elems;\n                            iVar58 = (*(code *)(iVar55 + 0x5ea8))(&rStack_204,iVar33);\n                            if (iVar58 == 0) {\n                              aVar46.sbcset =\n                                   (re_bitset_ptr_t)\n                                   ((re_node_set *)(aVar4.mbcset)->ncoll_syms + iVar33);\n                              rVar21 = (*(code *)(iVar61 + 0x7f1c))(&rStack_204);\n                              if (rVar21 != _REG_NOERROR) goto LAB_00056cb8;\n                            }\n                          }\n                        }\n                        else {\n                          do {\n                            prVar53 = (re_token_t *)(aVar4.mbcset)->mbchars + *piVar38;\n                            if ((prVar53->field_0x4 == '\t') &&\n                               ((prVar53->opr).sbcset == (re_bitset_ptr_t)*aVar49.sbcset))\n                            goto LAB_00056b8c;\n                            rVar48 = rVar48 + _REG_NOMATCH;\n                            piVar38 = piVar38 + 1;\n                          } while (rStack_204.nelem != rVar48);\n                        }\n                      }\n                      rVar21 = rVar21 + _REG_NOMATCH;\n                    } while (rVar21 < rStack_204.nelem);\n                  }\n                  aVar49.sbcset = (re_bitset_ptr_t)&rStack_204;\n                  aVar46 = aVar4;\n                  prVar35 = re_acquire_state_context\n                                      (&rStack_208,(re_dfa_t *)aVar4.mbcset,\n                                       (re_node_set *)aVar49.mbcset,0);\n                  (aVar4.mbcset)->nchar_classes = (Idx)prVar35;\n                  rVar21 = rStack_208;\n                  if (prVar35 != (re_dfastate_t *)0x0) {\n                    if ((prVar35->field_0x34 & 1) == 0) {\n                      *(re_dfastate_t **)(aVar4.idx + 0x30) = prVar35;\n                      *(re_dfastate_t **)(aVar4.idx + 0x2c) = prVar35;\n                      *(re_dfastate_t **)(aVar4.idx + 0x28) = prVar35;\n                    }\n                    else {\n                      aVar49.sbcset = (re_bitset_ptr_t)&rStack_204;\n                      prVar35 = re_acquire_state_context\n                                          (&rStack_208,(re_dfa_t *)aVar4.mbcset,\n                                           (re_node_set *)aVar49.mbcset,1);\n                      *(re_dfastate_t **)(aVar4.idx + 0x28) = prVar35;\n                      prVar35 = re_acquire_state_context\n                                          (&rStack_208,(re_dfa_t *)aVar4.mbcset,\n                                           (re_node_set *)aVar49.mbcset,2);\n                      *(re_dfastate_t **)(aVar4.idx + 0x2c) = prVar35;\n                      aVar46 = aVar4;\n                      prVar35 = re_acquire_state_context\n                                          (&rStack_208,(re_dfa_t *)aVar4.mbcset,\n                                           (re_node_set *)aVar49.mbcset,6);\n                      *(re_dfastate_t **)(aVar4.idx + 0x30) = prVar35;\n                      rVar21 = rStack_208;\n                      if (((*(re_dfastate_t **)(aVar4.idx + 0x28) == (re_dfastate_t *)0x0) ||\n                          (*(re_dfastate_t **)(aVar4.idx + 0x2c) == (re_dfastate_t *)0x0)) ||\n                         (prVar35 == (re_dfastate_t *)0x0)) goto LAB_00056cb8;\n                    }\n                    (**(code **)(puVar62 + 0x23dc0))(rStack_204.elems);\n                    rVar21 = rVar34;\n                  }\n                }\nLAB_00056cb8:\n                rStack_20c = rVar21;\n                free_workarea_compile((regex_t *)preg_00.mbcset);\n                re_string_destruct((re_string_t *)&aStack_1f8);\n                rVar21 = rStack_20c;\n                if (rStack_20c != _REG_NOERROR) {\n                  if (*(int *)(puVar62 + 0x23c78) != 0) {\n                    (**(code **)(puVar62 + 0x23df0))((pthread_mutex_t *)(aVar4.idx + 0x88));\n                  }\n                  free_dfa_content((re_dfa_t *)aVar4.mbcset);\n                  *preg_00.sbcset = 0;\n                  ((re_node_set *)&(preg_00.mbcset)->range_starts)->alloc = 0;\n                  rVar21 = rStack_20c;\n                }\n                goto LAB_00056cfc;\n              }\n            }\n          }\n        }" else (compound_statement "{\n          pprVar29 = (re_sub_match_top_t **)\n                     (**(code **)(puVar62 + 0x23cf0))((int)(preg_00.mbcset)->ncoll_syms << 2);\n          *(re_sub_match_top_t ***)(aVar45.idx + 0x84) = pprVar29;\n          if (pprVar29 != (re_sub_match_top_t **)0x0) {\n            prVar30 = (re_sub_match_top_t *)0x0;\n            if ((re_node_set *)(preg_00.mbcset)->ncoll_syms != (re_node_set *)0x0) {\n              do {\n                (*(re_sub_match_top_t ***)(aVar45.idx + 0x84))[(int)prVar30] = prVar30;\n                prVar30 = (re_sub_match_top_t *)((int)&prVar30->str_idx + 1);\n              } while (prVar30 < (re_sub_match_top_t *)(preg_00.mbcset)->ncoll_syms);\n            }\n            preorder(*(bin_tree_t **)(aVar45.idx + 0x34),\n                     (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)\n                     (*(int *)(puVar62 + 0x23abc) + 0x60e8),aVar45.sbcset);\n            prVar30 = (re_sub_match_top_t *)(preg_00.mbcset)->ncoll_syms;\n            if (prVar30 == (re_sub_match_top_t *)0x0) {\nLAB_00056704:\n              (**(code **)(puVar62 + 0x23dc0))(*(re_sub_match_top_t ***)(aVar45.idx + 0x84));\n              *(re_sub_match_top_t ***)(aVar45.idx + 0x84) = (re_sub_match_top_t **)0x0;\n            }\n            else {\n              pprVar29 = *(re_sub_match_top_t ***)(aVar45.idx + 0x84);\n              if (*pprVar29 == (re_sub_match_top_t *)0x0) {\n                prVar31 = (re_sub_match_top_t *)0x0;\n                do {\n                  pprVar29 = pprVar29 + 1;\n                  prVar31 = (re_sub_match_top_t *)((int)&prVar31->str_idx + 1);\n                  if (prVar30 == prVar31) {\n                    if (prVar30 == prVar31) goto LAB_00056704;\n                    break;\n                  }\n                } while (*pprVar29 == prVar31);\n              }\n            }\n          }\n          aVar46.sbcset = (re_bitset_ptr_t)(*(int *)(puVar62 + 0x23abc) + 0x73a4);\n          rVar21 = postorder(*(bin_tree_t **)(aVar45.idx + 0x34),\n                             (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar46.sbcset,\n                             preg_00.sbcset);\n          aVar49.mbcset = aVar45.mbcset;\n          if (rVar21 == _REG_NOERROR) {\n            aVar46.sbcset = (re_bitset_ptr_t)(*(int *)(puVar62 + 0x23b40) + -0x5be4);\n            rVar21 = postorder(*(bin_tree_t **)(aVar45.idx + 0x34),\n                               (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar46.sbcset,\n                               aVar45.sbcset);\n            if (rVar21 == _REG_NOERROR) {\n              preorder(*(bin_tree_t **)(aVar45.idx + 0x34),\n                       (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)\n                       (*(int *)(puVar62 + 0x23abc) + 0x61b4),aVar45.sbcset);\n              aVar46.sbcset = (re_bitset_ptr_t)(*(int *)(puVar62 + 0x23b40) + -0x4614);\n              rVar21 = preorder(*(bin_tree_t **)(aVar45.idx + 0x34),\n                                (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar46.sbcset,\n                                aVar45.sbcset);\n              if (rVar21 == _REG_NOERROR) {\n                uVar60 = 0;\n                iVar55 = *(int *)(puVar62 + 0x23b40);\n                aVar56.sbcset = (re_bitset_ptr_t)0x0;\nLAB_00056744:\n                if ((re_dfa_t *)(aVar45.mbcset)->range_ends != (re_dfa_t *)aVar56.sbcset) {\nLAB_00056750:\n                  if (((re_node_set *)(aVar45.mbcset)->ncoll_syms)[aVar56.idx].nelem == 0) {\n                    aVar46.mbcset = aVar45.mbcset;\n                    aVar49 = aVar56;\n                    rVar21 = (*(code *)(iVar55 + -0x561c))\n                                       (&rStack_204,aVar45.sbcset,aVar56.sbcset,1);\n                    if (rVar21 != _REG_NOERROR) goto LAB_00056168;\n                    if (((re_node_set *)(aVar45.mbcset)->ncoll_syms)[aVar56.idx].nelem == 0) {\n                      (**(code **)(puVar62 + 0x23dc0))(rStack_204.elems);\n                      uVar60 = 1;\n                    }\n                  }\n                  aVar56.sbcset =\n                       (re_bitset_ptr_t)\n                       ((int)&((re_string_t *)&(aVar56.mbcset)->mbchars)->raw_mbs + 1);\n                  goto LAB_00056744;\n                }\n                if (uVar60 != 0) {\n                  uVar60 = 0;\n                  aVar56.sbcset = (re_bitset_ptr_t)0x0;\n                  goto LAB_00056750;\n                }\n                if ((((((re_node_set *)&(preg_00.mbcset)->nequiv_classes)->alloc & 0x8000000) == 0)\n                    && ((re_node_set *)(preg_00.mbcset)->ncoll_syms != (re_node_set *)0x0)) &&\n                   (*(char *)(aVar45.idx + 0x58) < '\0')) {\n                  pwVar57 = (wint_t *)(aVar45.mbcset)->range_ends;\n                }\n                else {\n                  if (*(Idx *)(aVar45.idx + 0x4c) == 0) goto LAB_000568f0;\n                  pwVar57 = (wint_t *)(aVar45.mbcset)->range_ends;\n                }\n                iVar55 = (**(code **)(puVar62 + 0x23cf0))((int)pwVar57 * 0xc);\n                ((re_node_set *)&(aVar45.mbcset)->nequiv_classes)->alloc = iVar55;\n                if (iVar55 == 0) {\n                  rVar21 = _REG_ESPACE;\n                  goto LAB_00056168;\n                }\n                if (pwVar57 != (wint_t *)0x0) {\n                  iVar55 = 0;\n                  uVar26 = 0;\n                  do {\n                    puVar32 = (undefined1 *)\n                              (((re_node_set *)&(aVar45.mbcset)->nequiv_classes)->alloc + iVar55);\n                    *puVar32 = 0;\n                    puVar32[1] = 0;\n                    puVar32[2] = 0;\n                    puVar32[3] = 0;\n                    puVar32[4] = 0;\n                    puVar32[5] = 0;\n                    puVar32[6] = 0;\n                    puVar32[7] = 0;\n                    puVar32[8] = 0;\n                    puVar32[9] = 0;\n                    puVar32[10] = 0;\n                    puVar32[0xb] = 0;\n                    uVar26 = uVar26 + 1;\n                    iVar55 = iVar55 + 0xc;\n                  } while (uVar26 < (aVar45.mbcset)->range_ends);\n                  iVar55 = *(int *)(puVar62 + 0x23abc);\n                  if ((wint_t *)(aVar45.mbcset)->range_ends != (wint_t *)0x0) {\n                    iVar61 = 0;\n                    aStack_218.sbcset = (re_bitset_ptr_t)0x0;\n                    do {\n                      piVar38 = *(int **)((int)&((re_node_set *)(aVar45.mbcset)->ncoll_syms)->elems\n                                         + iVar61);\n                      if (0 < *(int *)((int)&((re_node_set *)(aVar45.mbcset)->ncoll_syms)->nelem +\n                                      iVar61)) {\n                        iVar58 = 0;\n                        do {\n                          aVar46 = aStack_218;\n                          iVar33 = (*(code *)(iVar55 + 0x6e30))\n                                             (((re_node_set *)&(aVar45.mbcset)->nequiv_classes)->\n                                              alloc + *piVar38 * 0xc);\n                          rVar21 = _REG_ESPACE;\n                          if (iVar33 == 0) goto LAB_00056168;\n                          iVar58 = iVar58 + 1;\n                          piVar38 = piVar38 + 1;\n                        } while (iVar58 < *(int *)((int)&((re_node_set *)(aVar45.mbcset)->ncoll_syms\n                                                         )->nelem + iVar61));\n                      }\n                      aStack_218.sbcset =\n                           (re_bitset_ptr_t)\n                           ((int)&((re_string_t *)&(aStack_218.mbcset)->mbchars)->raw_mbs + 1);\n                      iVar61 = iVar61 + 0xc;\n                    } while (aStack_218.sbcset < (re_dfa_t *)(aVar45.mbcset)->range_ends);\n                  }\n                }\nLAB_000568f0:\n                rStack_20c = _REG_NOERROR;\n                if ((((*(byte *)(aVar4.idx + 0x58) & 0x20) != 0) && (uVar8 == 0)) &&\n                   (((anon_union_4_2_91654ee9_for___value *)&(preg_00.mbcset)->nmbchars)->__wch == 0\n                   )) {\n                  if ((aVar4.mbcset)->range_ends != (wchar_t *)0x0) {\n                    aVar49.sbcset = (re_bitset_ptr_t)(*(int *)(puVar62 + 0x23754) + 0x6e4c);\n                    if (*(byte *)(*aVar4.sbcset + 4) < 0xd) {\n                    /* WARNING: Could not recover jumptable at 0x00056a60. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      rVar21 = (*(code *)(puVar62 +\n                                         aVar49.sbcset[*(byte *)(*aVar4.sbcset + 4)] + 0x2b71c))();\n                      return rVar21;\n                    }\n                    (**(code **)(puVar62 + 0x23bc4))(0);\n                    if (uVar60 != 0) {\n                      aVar49.idx = (Idx)&DAT_00000007;\n                      uVar8 = 0;\n                      do {\n                        prVar53 = (re_token_t *)(aVar4.mbcset)->mbchars + uVar8;\n                        if (prVar53->field_0x4 == '\x01') {\n                          if ((char)(prVar53->opr).c < '\0') {\n                            *(uint *)&prVar53->field_0x4 = *(uint *)&prVar53->field_0x4 & 0xfffffbff\n                            ;\n                          }\n                        }\n                        else if (prVar53->field_0x4 == '\x05') {\n                          prVar53->field_0x4 = 7;\n                        }\n                        uVar8 = uVar8 + 1;\n                      } while (uVar8 < (aVar4.mbcset)->range_ends);\n                    }\n                  }\n                  *(int *)(aVar4.idx + 0x5c) = 1;\n                  if (0 < *(Idx *)(aVar4.idx + 0x4c)) {\n                    uVar60 = 1;\n                  }\n                  *(byte *)(aVar4.idx + 0x58) =\n                       *(byte *)(aVar4.idx + 0x58) & 0x9f | (byte)((uVar60 & 1) << 6);\n                }\n                iVar55 = (*(bin_tree_t **)(aVar4.idx + 0x34))->first->node_idx;\n                *(int *)(aVar4.idx + 0x48) = iVar55;\n                aVar46.sbcset =\n                     (re_bitset_ptr_t)((re_node_set *)(aVar4.mbcset)->ncoll_syms + iVar55);\n                rVar34 = re_node_set_init_copy(&rStack_204,(re_node_set *)aVar46.mbcset);\n                rVar21 = rVar34;\n                rStack_208 = rVar34;\n                if (rVar34 == _REG_NOERROR) {\n                  if ((0 < *(Idx *)(aVar4.idx + 0x4c)) && (_REG_NOERROR < rStack_204.nelem)) {\n                    iVar55 = *(int *)(puVar62 + 0x23abc);\n                    iVar61 = *(int *)(puVar62 + 0x23abc);\n                    rVar21 = _REG_NOERROR;\n                    do {\n                      aVar49.sbcset =\n                           (re_bitset_ptr_t)\n                           ((re_token_t *)(aVar4.mbcset)->mbchars + rStack_204.elems[rVar21]);\n                      if (*(char *)&((re_node_set *)&(aVar49.mbcset)->range_starts)->alloc == '\x04'\n                         ) {\n                        rVar48 = _REG_NOERROR;\n                        piVar38 = rStack_204.elems;\n                        if (rStack_204.nelem < _REG_NOMATCH) {\nLAB_00056b8c:\n                          if (rStack_204.nelem != rVar48) {\n                            iVar33 = *((re_node_set *)(aVar4.mbcset)->nmbchars)\n                                      [rStack_204.elems[rVar21]].elems;\n                            iVar58 = (*(code *)(iVar55 + 0x5ea8))(&rStack_204,iVar33);\n                            if (iVar58 == 0) {\n                              aVar46.sbcset =\n                                   (re_bitset_ptr_t)\n                                   ((re_node_set *)(aVar4.mbcset)->ncoll_syms + iVar33);\n                              rVar21 = (*(code *)(iVar61 + 0x7f1c))(&rStack_204);\n                              if (rVar21 != _REG_NOERROR) goto LAB_00056cb8;\n                            }\n                          }\n                        }\n                        else {\n                          do {\n                            prVar53 = (re_token_t *)(aVar4.mbcset)->mbchars + *piVar38;\n                            if ((prVar53->field_0x4 == '\t') &&\n                               ((prVar53->opr).sbcset == (re_bitset_ptr_t)*aVar49.sbcset))\n                            goto LAB_00056b8c;\n                            rVar48 = rVar48 + _REG_NOMATCH;\n                            piVar38 = piVar38 + 1;\n                          } while (rStack_204.nelem != rVar48);\n                        }\n                      }\n                      rVar21 = rVar21 + _REG_NOMATCH;\n                    } while (rVar21 < rStack_204.nelem);\n                  }\n                  aVar49.sbcset = (re_bitset_ptr_t)&rStack_204;\n                  aVar46 = aVar4;\n                  prVar35 = re_acquire_state_context\n                                      (&rStack_208,(re_dfa_t *)aVar4.mbcset,\n                                       (re_node_set *)aVar49.mbcset,0);\n                  (aVar4.mbcset)->nchar_classes = (Idx)prVar35;\n                  rVar21 = rStack_208;\n                  if (prVar35 != (re_dfastate_t *)0x0) {\n                    if ((prVar35->field_0x34 & 1) == 0) {\n                      *(re_dfastate_t **)(aVar4.idx + 0x30) = prVar35;\n                      *(re_dfastate_t **)(aVar4.idx + 0x2c) = prVar35;\n                      *(re_dfastate_t **)(aVar4.idx + 0x28) = prVar35;\n                    }\n                    else {\n                      aVar49.sbcset = (re_bitset_ptr_t)&rStack_204;\n                      prVar35 = re_acquire_state_context\n                                          (&rStack_208,(re_dfa_t *)aVar4.mbcset,\n                                           (re_node_set *)aVar49.mbcset,1);\n                      *(re_dfastate_t **)(aVar4.idx + 0x28) = prVar35;\n                      prVar35 = re_acquire_state_context\n                                          (&rStack_208,(re_dfa_t *)aVar4.mbcset,\n                                           (re_node_set *)aVar49.mbcset,2);\n                      *(re_dfastate_t **)(aVar4.idx + 0x2c) = prVar35;\n                      aVar46 = aVar4;\n                      prVar35 = re_acquire_state_context\n                                          (&rStack_208,(re_dfa_t *)aVar4.mbcset,\n                                           (re_node_set *)aVar49.mbcset,6);\n                      *(re_dfastate_t **)(aVar4.idx + 0x30) = prVar35;\n                      rVar21 = rStack_208;\n                      if (((*(re_dfastate_t **)(aVar4.idx + 0x28) == (re_dfastate_t *)0x0) ||\n                          (*(re_dfastate_t **)(aVar4.idx + 0x2c) == (re_dfastate_t *)0x0)) ||\n                         (prVar35 == (re_dfastate_t *)0x0)) goto LAB_00056cb8;\n                    }\n                    (**(code **)(puVar62 + 0x23dc0))(rStack_204.elems);\n                    rVar21 = rVar34;\n                  }\n                }\nLAB_00056cb8:\n                rStack_20c = rVar21;\n                free_workarea_compile((regex_t *)preg_00.mbcset);\n                re_string_destruct((re_string_t *)&aStack_1f8);\n                rVar21 = rStack_20c;\n                if (rStack_20c != _REG_NOERROR) {\n                  if (*(int *)(puVar62 + 0x23c78) != 0) {\n                    (**(code **)(puVar62 + 0x23df0))((pthread_mutex_t *)(aVar4.idx + 0x88));\n                  }\n                  free_dfa_content((re_dfa_t *)aVar4.mbcset);\n                  *preg_00.sbcset = 0;\n                  ((re_node_set *)&(preg_00.mbcset)->range_starts)->alloc = 0;\n                  rVar21 = rStack_20c;\n                }\n                goto LAB_00056cfc;\n              }\n            }\n          }\n        }" { (expression_statement "pprVar29 = (re_sub_match_top_t **)\n                     (**(code **)(puVar62 + 0x23cf0))((int)(preg_00.mbcset)->ncoll_syms << 2);" (assignment_expression "pprVar29 = (re_sub_match_top_t **)\n                     (**(code **)(puVar62 + 0x23cf0))((int)(preg_00.mbcset)->ncoll_syms << 2)" identifier = (cast_expression "(re_sub_match_top_t **)\n                     (**(code **)(puVar62 + 0x23cf0))((int)(preg_00.mbcset)->ncoll_syms << 2)" ( (type_descriptor "re_sub_match_top_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "(**(code **)(puVar62 + 0x23cf0))((int)(preg_00.mbcset)->ncoll_syms << 2)" (parenthesized_expression "(**(code **)(puVar62 + 0x23cf0))" ( (pointer_expression "**(code **)(puVar62 + 0x23cf0)" * (pointer_expression "*(code **)(puVar62 + 0x23cf0)" * (cast_expression "(code **)(puVar62 + 0x23cf0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar62 + 0x23cf0)" ( (binary_expression "puVar62 + 0x23cf0" identifier + number_literal) ))))) )) (argument_list "((int)(preg_00.mbcset)->ncoll_syms << 2)" ( (binary_expression "(int)(preg_00.mbcset)->ncoll_syms << 2" (cast_expression "(int)(preg_00.mbcset)->ncoll_syms" ( (type_descriptor "int" primitive_type) ) (field_expression "(preg_00.mbcset)->ncoll_syms" (parenthesized_expression "(preg_00.mbcset)" ( (field_expression "preg_00.mbcset" identifier . field_identifier) )) -> field_identifier)) << number_literal) ))))) ;) (expression_statement "*(re_sub_match_top_t ***)(aVar45.idx + 0x84) = pprVar29;" (assignment_expression "*(re_sub_match_top_t ***)(aVar45.idx + 0x84) = pprVar29" (pointer_expression "*(re_sub_match_top_t ***)(aVar45.idx + 0x84)" * (cast_expression "(re_sub_match_top_t ***)(aVar45.idx + 0x84)" ( (type_descriptor "re_sub_match_top_t ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(aVar45.idx + 0x84)" ( (binary_expression "aVar45.idx + 0x84" (field_expression "aVar45.idx" identifier . field_identifier) + number_literal) )))) = identifier) ;) (if_statement "if (pprVar29 != (re_sub_match_top_t **)0x0) {\n            prVar30 = (re_sub_match_top_t *)0x0;\n            if ((re_node_set *)(preg_00.mbcset)->ncoll_syms != (re_node_set *)0x0) {\n              do {\n                (*(re_sub_match_top_t ***)(aVar45.idx + 0x84))[(int)prVar30] = prVar30;\n                prVar30 = (re_sub_match_top_t *)((int)&prVar30->str_idx + 1);\n              } while (prVar30 < (re_sub_match_top_t *)(preg_00.mbcset)->ncoll_syms);\n            }\n            preorder(*(bin_tree_t **)(aVar45.idx + 0x34),\n                     (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)\n                     (*(int *)(puVar62 + 0x23abc) + 0x60e8),aVar45.sbcset);\n            prVar30 = (re_sub_match_top_t *)(preg_00.mbcset)->ncoll_syms;\n            if (prVar30 == (re_sub_match_top_t *)0x0) {\nLAB_00056704:\n              (**(code **)(puVar62 + 0x23dc0))(*(re_sub_match_top_t ***)(aVar45.idx + 0x84));\n              *(re_sub_match_top_t ***)(aVar45.idx + 0x84) = (re_sub_match_top_t **)0x0;\n            }\n            else {\n              pprVar29 = *(re_sub_match_top_t ***)(aVar45.idx + 0x84);\n              if (*pprVar29 == (re_sub_match_top_t *)0x0) {\n                prVar31 = (re_sub_match_top_t *)0x0;\n                do {\n                  pprVar29 = pprVar29 + 1;\n                  prVar31 = (re_sub_match_top_t *)((int)&prVar31->str_idx + 1);\n                  if (prVar30 == prVar31) {\n                    if (prVar30 == prVar31) goto LAB_00056704;\n                    break;\n                  }\n                } while (*pprVar29 == prVar31);\n              }\n            }\n          }" if (parenthesized_expression "(pprVar29 != (re_sub_match_top_t **)0x0)" ( (binary_expression "pprVar29 != (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)) )) (compound_statement "{\n            prVar30 = (re_sub_match_top_t *)0x0;\n            if ((re_node_set *)(preg_00.mbcset)->ncoll_syms != (re_node_set *)0x0) {\n              do {\n                (*(re_sub_match_top_t ***)(aVar45.idx + 0x84))[(int)prVar30] = prVar30;\n                prVar30 = (re_sub_match_top_t *)((int)&prVar30->str_idx + 1);\n              } while (prVar30 < (re_sub_match_top_t *)(preg_00.mbcset)->ncoll_syms);\n            }\n            preorder(*(bin_tree_t **)(aVar45.idx + 0x34),\n                     (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)\n                     (*(int *)(puVar62 + 0x23abc) + 0x60e8),aVar45.sbcset);\n            prVar30 = (re_sub_match_top_t *)(preg_00.mbcset)->ncoll_syms;\n            if (prVar30 == (re_sub_match_top_t *)0x0) {\nLAB_00056704:\n              (**(code **)(puVar62 + 0x23dc0))(*(re_sub_match_top_t ***)(aVar45.idx + 0x84));\n              *(re_sub_match_top_t ***)(aVar45.idx + 0x84) = (re_sub_match_top_t **)0x0;\n            }\n            else {\n              pprVar29 = *(re_sub_match_top_t ***)(aVar45.idx + 0x84);\n              if (*pprVar29 == (re_sub_match_top_t *)0x0) {\n                prVar31 = (re_sub_match_top_t *)0x0;\n                do {\n                  pprVar29 = pprVar29 + 1;\n                  prVar31 = (re_sub_match_top_t *)((int)&prVar31->str_idx + 1);\n                  if (prVar30 == prVar31) {\n                    if (prVar30 == prVar31) goto LAB_00056704;\n                    break;\n                  }\n                } while (*pprVar29 == prVar31);\n              }\n            }\n          }" { (expression_statement "prVar30 = (re_sub_match_top_t *)0x0;" (assignment_expression "prVar30 = (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 "*" *)) ) number_literal)) ;) (if_statement "if ((re_node_set *)(preg_00.mbcset)->ncoll_syms != (re_node_set *)0x0) {\n              do {\n                (*(re_sub_match_top_t ***)(aVar45.idx + 0x84))[(int)prVar30] = prVar30;\n                prVar30 = (re_sub_match_top_t *)((int)&prVar30->str_idx + 1);\n              } while (prVar30 < (re_sub_match_top_t *)(preg_00.mbcset)->ncoll_syms);\n            }" if (parenthesized_expression "((re_node_set *)(preg_00.mbcset)->ncoll_syms != (re_node_set *)0x0)" ( (binary_expression "(re_node_set *)(preg_00.mbcset)->ncoll_syms != (re_node_set *)0x0" (cast_expression "(re_node_set *)(preg_00.mbcset)->ncoll_syms" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(preg_00.mbcset)->ncoll_syms" (parenthesized_expression "(preg_00.mbcset)" ( (field_expression "preg_00.mbcset" identifier . field_identifier) )) -> field_identifier)) != (cast_expression "(re_node_set *)0x0" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              do {\n                (*(re_sub_match_top_t ***)(aVar45.idx + 0x84))[(int)prVar30] = prVar30;\n                prVar30 = (re_sub_match_top_t *)((int)&prVar30->str_idx + 1);\n              } while (prVar30 < (re_sub_match_top_t *)(preg_00.mbcset)->ncoll_syms);\n            }" { (do_statement "do {\n                (*(re_sub_match_top_t ***)(aVar45.idx + 0x84))[(int)prVar30] = prVar30;\n                prVar30 = (re_sub_match_top_t *)((int)&prVar30->str_idx + 1);\n              } while (prVar30 < (re_sub_match_top_t *)(preg_00.mbcset)->ncoll_syms);" do (compound_statement "{\n                (*(re_sub_match_top_t ***)(aVar45.idx + 0x84))[(int)prVar30] = prVar30;\n                prVar30 = (re_sub_match_top_t *)((int)&prVar30->str_idx + 1);\n              }" { (expression_statement "(*(re_sub_match_top_t ***)(aVar45.idx + 0x84))[(int)prVar30] = prVar30;" (assignment_expression "(*(re_sub_match_top_t ***)(aVar45.idx + 0x84))[(int)prVar30] = prVar30" (subscript_expression "(*(re_sub_match_top_t ***)(aVar45.idx + 0x84))[(int)prVar30]" (parenthesized_expression "(*(re_sub_match_top_t ***)(aVar45.idx + 0x84))" ( (pointer_expression "*(re_sub_match_top_t ***)(aVar45.idx + 0x84)" * (cast_expression "(re_sub_match_top_t ***)(aVar45.idx + 0x84)" ( (type_descriptor "re_sub_match_top_t ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(aVar45.idx + 0x84)" ( (binary_expression "aVar45.idx + 0x84" (field_expression "aVar45.idx" identifier . field_identifier) + number_literal) )))) )) [ (cast_expression "(int)prVar30" ( (type_descriptor "int" primitive_type) ) identifier) ]) = identifier) ;) (expression_statement "prVar30 = (re_sub_match_top_t *)((int)&prVar30->str_idx + 1);" (assignment_expression "prVar30 = (re_sub_match_top_t *)((int)&prVar30->str_idx + 1)" identifier = (cast_expression "(re_sub_match_top_t *)((int)&prVar30->str_idx + 1)" ( (type_descriptor "re_sub_match_top_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&prVar30->str_idx + 1)" ( (binary_expression "(int)&prVar30->str_idx + 1" (cast_expression "(int)&prVar30->str_idx" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&prVar30->str_idx" & (field_expression "prVar30->str_idx" identifier -> field_identifier))) + number_literal) )))) ;) }) while (parenthesized_expression "(prVar30 < (re_sub_match_top_t *)(preg_00.mbcset)->ncoll_syms)" ( (binary_expression "prVar30 < (re_sub_match_top_t *)(preg_00.mbcset)->ncoll_syms" identifier < (cast_expression "(re_sub_match_top_t *)(preg_00.mbcset)->ncoll_syms" ( (type_descriptor "re_sub_match_top_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(preg_00.mbcset)->ncoll_syms" (parenthesized_expression "(preg_00.mbcset)" ( (field_expression "preg_00.mbcset" identifier . field_identifier) )) -> field_identifier))) )) ;) })) (expression_statement "preorder(*(bin_tree_t **)(aVar45.idx + 0x34),\n                     (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)\n                     (*(int *)(puVar62 + 0x23abc) + 0x60e8),aVar45.sbcset);" (call_expression "preorder(*(bin_tree_t **)(aVar45.idx + 0x34),\n                     (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)\n                     (*(int *)(puVar62 + 0x23abc) + 0x60e8),aVar45.sbcset)" identifier (argument_list "(*(bin_tree_t **)(aVar45.idx + 0x34),\n                     (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)\n                     (*(int *)(puVar62 + 0x23abc) + 0x60e8),aVar45.sbcset)" ( (pointer_expression "*(bin_tree_t **)(aVar45.idx + 0x34)" * (cast_expression "(bin_tree_t **)(aVar45.idx + 0x34)" ( (type_descriptor "bin_tree_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(aVar45.idx + 0x34)" ( (binary_expression "aVar45.idx + 0x34" (field_expression "aVar45.idx" identifier . field_identifier) + number_literal) )))) , (cast_expression "(_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)\n                     (*(int *)(puVar62 + 0x23abc) + 0x60e8)" ( (type_descriptor "_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar62 + 0x23abc) + 0x60e8)" ( (binary_expression "*(int *)(puVar62 + 0x23abc) + 0x60e8" (pointer_expression "*(int *)(puVar62 + 0x23abc)" * (cast_expression "(int *)(puVar62 + 0x23abc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar62 + 0x23abc)" ( (binary_expression "puVar62 + 0x23abc" identifier + number_literal) )))) + number_literal) ))) , (field_expression "aVar45.sbcset" identifier . field_identifier) ))) ;) (expression_statement "prVar30 = (re_sub_match_top_t *)(preg_00.mbcset)->ncoll_syms;" (assignment_expression "prVar30 = (re_sub_match_top_t *)(preg_00.mbcset)->ncoll_syms" identifier = (cast_expression "(re_sub_match_top_t *)(preg_00.mbcset)->ncoll_syms" ( (type_descriptor "re_sub_match_top_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(preg_00.mbcset)->ncoll_syms" (parenthesized_expression "(preg_00.mbcset)" ( (field_expression "preg_00.mbcset" identifier . field_identifier) )) -> field_identifier))) ;) (if_statement "if (prVar30 == (re_sub_match_top_t *)0x0) {\nLAB_00056704:\n              (**(code **)(puVar62 + 0x23dc0))(*(re_sub_match_top_t ***)(aVar45.idx + 0x84));\n              *(re_sub_match_top_t ***)(aVar45.idx + 0x84) = (re_sub_match_top_t **)0x0;\n            }\n            else {\n              pprVar29 = *(re_sub_match_top_t ***)(aVar45.idx + 0x84);\n              if (*pprVar29 == (re_sub_match_top_t *)0x0) {\n                prVar31 = (re_sub_match_top_t *)0x0;\n                do {\n                  pprVar29 = pprVar29 + 1;\n                  prVar31 = (re_sub_match_top_t *)((int)&prVar31->str_idx + 1);\n                  if (prVar30 == prVar31) {\n                    if (prVar30 == prVar31) goto LAB_00056704;\n                    break;\n                  }\n                } while (*pprVar29 == prVar31);\n              }\n            }" if (parenthesized_expression "(prVar30 == (re_sub_match_top_t *)0x0)" ( (binary_expression "prVar30 == (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 "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_00056704:\n              (**(code **)(puVar62 + 0x23dc0))(*(re_sub_match_top_t ***)(aVar45.idx + 0x84));\n              *(re_sub_match_top_t ***)(aVar45.idx + 0x84) = (re_sub_match_top_t **)0x0;\n            }" { (labeled_statement "LAB_00056704:\n              (**(code **)(puVar62 + 0x23dc0))(*(re_sub_match_top_t ***)(aVar45.idx + 0x84));" statement_identifier : (expression_statement "(**(code **)(puVar62 + 0x23dc0))(*(re_sub_match_top_t ***)(aVar45.idx + 0x84));" (call_expression "(**(code **)(puVar62 + 0x23dc0))(*(re_sub_match_top_t ***)(aVar45.idx + 0x84))" (parenthesized_expression "(**(code **)(puVar62 + 0x23dc0))" ( (pointer_expression "**(code **)(puVar62 + 0x23dc0)" * (pointer_expression "*(code **)(puVar62 + 0x23dc0)" * (cast_expression "(code **)(puVar62 + 0x23dc0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar62 + 0x23dc0)" ( (binary_expression "puVar62 + 0x23dc0" identifier + number_literal) ))))) )) (argument_list "(*(re_sub_match_top_t ***)(aVar45.idx + 0x84))" ( (pointer_expression "*(re_sub_match_top_t ***)(aVar45.idx + 0x84)" * (cast_expression "(re_sub_match_top_t ***)(aVar45.idx + 0x84)" ( (type_descriptor "re_sub_match_top_t ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(aVar45.idx + 0x84)" ( (binary_expression "aVar45.idx + 0x84" (field_expression "aVar45.idx" identifier . field_identifier) + number_literal) )))) ))) ;)) (expression_statement "*(re_sub_match_top_t ***)(aVar45.idx + 0x84) = (re_sub_match_top_t **)0x0;" (assignment_expression "*(re_sub_match_top_t ***)(aVar45.idx + 0x84) = (re_sub_match_top_t **)0x0" (pointer_expression "*(re_sub_match_top_t ***)(aVar45.idx + 0x84)" * (cast_expression "(re_sub_match_top_t ***)(aVar45.idx + 0x84)" ( (type_descriptor "re_sub_match_top_t ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(aVar45.idx + 0x84)" ( (binary_expression "aVar45.idx + 0x84" (field_expression "aVar45.idx" identifier . field_identifier) + number_literal) )))) = (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)) ;) }) (else_clause "else {\n              pprVar29 = *(re_sub_match_top_t ***)(aVar45.idx + 0x84);\n              if (*pprVar29 == (re_sub_match_top_t *)0x0) {\n                prVar31 = (re_sub_match_top_t *)0x0;\n                do {\n                  pprVar29 = pprVar29 + 1;\n                  prVar31 = (re_sub_match_top_t *)((int)&prVar31->str_idx + 1);\n                  if (prVar30 == prVar31) {\n                    if (prVar30 == prVar31) goto LAB_00056704;\n                    break;\n                  }\n                } while (*pprVar29 == prVar31);\n              }\n            }" else (compound_statement "{\n              pprVar29 = *(re_sub_match_top_t ***)(aVar45.idx + 0x84);\n              if (*pprVar29 == (re_sub_match_top_t *)0x0) {\n                prVar31 = (re_sub_match_top_t *)0x0;\n                do {\n                  pprVar29 = pprVar29 + 1;\n                  prVar31 = (re_sub_match_top_t *)((int)&prVar31->str_idx + 1);\n                  if (prVar30 == prVar31) {\n                    if (prVar30 == prVar31) goto LAB_00056704;\n                    break;\n                  }\n                } while (*pprVar29 == prVar31);\n              }\n            }" { (expression_statement "pprVar29 = *(re_sub_match_top_t ***)(aVar45.idx + 0x84);" (assignment_expression "pprVar29 = *(re_sub_match_top_t ***)(aVar45.idx + 0x84)" identifier = (pointer_expression "*(re_sub_match_top_t ***)(aVar45.idx + 0x84)" * (cast_expression "(re_sub_match_top_t ***)(aVar45.idx + 0x84)" ( (type_descriptor "re_sub_match_top_t ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(aVar45.idx + 0x84)" ( (binary_expression "aVar45.idx + 0x84" (field_expression "aVar45.idx" identifier . field_identifier) + number_literal) ))))) ;) (if_statement "if (*pprVar29 == (re_sub_match_top_t *)0x0) {\n                prVar31 = (re_sub_match_top_t *)0x0;\n                do {\n                  pprVar29 = pprVar29 + 1;\n                  prVar31 = (re_sub_match_top_t *)((int)&prVar31->str_idx + 1);\n                  if (prVar30 == prVar31) {\n                    if (prVar30 == prVar31) goto LAB_00056704;\n                    break;\n                  }\n                } while (*pprVar29 == prVar31);\n              }" if (parenthesized_expression "(*pprVar29 == (re_sub_match_top_t *)0x0)" ( (binary_expression "*pprVar29 == (re_sub_match_top_t *)0x0" (pointer_expression "*pprVar29" * identifier) == (cast_expression "(re_sub_match_top_t *)0x0" ( (type_descriptor "re_sub_match_top_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                prVar31 = (re_sub_match_top_t *)0x0;\n                do {\n                  pprVar29 = pprVar29 + 1;\n                  prVar31 = (re_sub_match_top_t *)((int)&prVar31->str_idx + 1);\n                  if (prVar30 == prVar31) {\n                    if (prVar30 == prVar31) goto LAB_00056704;\n                    break;\n                  }\n                } while (*pprVar29 == prVar31);\n              }" { (expression_statement "prVar31 = (re_sub_match_top_t *)0x0;" (assignment_expression "prVar31 = (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 "*" *)) ) number_literal)) ;) (do_statement "do {\n                  pprVar29 = pprVar29 + 1;\n                  prVar31 = (re_sub_match_top_t *)((int)&prVar31->str_idx + 1);\n                  if (prVar30 == prVar31) {\n                    if (prVar30 == prVar31) goto LAB_00056704;\n                    break;\n                  }\n                } while (*pprVar29 == prVar31);" do (compound_statement "{\n                  pprVar29 = pprVar29 + 1;\n                  prVar31 = (re_sub_match_top_t *)((int)&prVar31->str_idx + 1);\n                  if (prVar30 == prVar31) {\n                    if (prVar30 == prVar31) goto LAB_00056704;\n                    break;\n                  }\n                }" { (expression_statement "pprVar29 = pprVar29 + 1;" (assignment_expression "pprVar29 = pprVar29 + 1" identifier = (binary_expression "pprVar29 + 1" identifier + number_literal)) ;) (expression_statement "prVar31 = (re_sub_match_top_t *)((int)&prVar31->str_idx + 1);" (assignment_expression "prVar31 = (re_sub_match_top_t *)((int)&prVar31->str_idx + 1)" identifier = (cast_expression "(re_sub_match_top_t *)((int)&prVar31->str_idx + 1)" ( (type_descriptor "re_sub_match_top_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&prVar31->str_idx + 1)" ( (binary_expression "(int)&prVar31->str_idx + 1" (cast_expression "(int)&prVar31->str_idx" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&prVar31->str_idx" & (field_expression "prVar31->str_idx" identifier -> field_identifier))) + number_literal) )))) ;) (if_statement "if (prVar30 == prVar31) {\n                    if (prVar30 == prVar31) goto LAB_00056704;\n                    break;\n                  }" if (parenthesized_expression "(prVar30 == prVar31)" ( (binary_expression "prVar30 == prVar31" identifier == identifier) )) (compound_statement "{\n                    if (prVar30 == prVar31) goto LAB_00056704;\n                    break;\n                  }" { (if_statement "if (prVar30 == prVar31) goto LAB_00056704;" if (parenthesized_expression "(prVar30 == prVar31)" ( (binary_expression "prVar30 == prVar31" identifier == identifier) )) (goto_statement "goto LAB_00056704;" goto statement_identifier ;)) (break_statement "break;" break ;) })) }) while (parenthesized_expression "(*pprVar29 == prVar31)" ( (binary_expression "*pprVar29 == prVar31" (pointer_expression "*pprVar29" * identifier) == identifier) )) ;) })) }))) })) (expression_statement "aVar46.sbcset = (re_bitset_ptr_t)(*(int *)(puVar62 + 0x23abc) + 0x73a4);" (assignment_expression "aVar46.sbcset = (re_bitset_ptr_t)(*(int *)(puVar62 + 0x23abc) + 0x73a4)" (field_expression "aVar46.sbcset" identifier . field_identifier) = (call_expression "(re_bitset_ptr_t)(*(int *)(puVar62 + 0x23abc) + 0x73a4)" (parenthesized_expression "(re_bitset_ptr_t)" ( identifier )) (argument_list "(*(int *)(puVar62 + 0x23abc) + 0x73a4)" ( (binary_expression "*(int *)(puVar62 + 0x23abc) + 0x73a4" (pointer_expression "*(int *)(puVar62 + 0x23abc)" * (cast_expression "(int *)(puVar62 + 0x23abc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar62 + 0x23abc)" ( (binary_expression "puVar62 + 0x23abc" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "rVar21 = postorder(*(bin_tree_t **)(aVar45.idx + 0x34),\n                             (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar46.sbcset,\n                             preg_00.sbcset);" (assignment_expression "rVar21 = postorder(*(bin_tree_t **)(aVar45.idx + 0x34),\n                             (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar46.sbcset,\n                             preg_00.sbcset)" identifier = (call_expression "postorder(*(bin_tree_t **)(aVar45.idx + 0x34),\n                             (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar46.sbcset,\n                             preg_00.sbcset)" identifier (argument_list "(*(bin_tree_t **)(aVar45.idx + 0x34),\n                             (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar46.sbcset,\n                             preg_00.sbcset)" ( (pointer_expression "*(bin_tree_t **)(aVar45.idx + 0x34)" * (cast_expression "(bin_tree_t **)(aVar45.idx + 0x34)" ( (type_descriptor "bin_tree_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(aVar45.idx + 0x34)" ( (binary_expression "aVar45.idx + 0x34" (field_expression "aVar45.idx" identifier . field_identifier) + number_literal) )))) , (cast_expression "(_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar46.sbcset" ( (type_descriptor "_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "aVar46.sbcset" identifier . field_identifier)) , (field_expression "preg_00.sbcset" identifier . field_identifier) )))) ;) (expression_statement "aVar49.mbcset = aVar45.mbcset;" (assignment_expression "aVar49.mbcset = aVar45.mbcset" (field_expression "aVar49.mbcset" identifier . field_identifier) = (field_expression "aVar45.mbcset" identifier . field_identifier)) ;) (if_statement "if (rVar21 == _REG_NOERROR) {\n            aVar46.sbcset = (re_bitset_ptr_t)(*(int *)(puVar62 + 0x23b40) + -0x5be4);\n            rVar21 = postorder(*(bin_tree_t **)(aVar45.idx + 0x34),\n                               (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar46.sbcset,\n                               aVar45.sbcset);\n            if (rVar21 == _REG_NOERROR) {\n              preorder(*(bin_tree_t **)(aVar45.idx + 0x34),\n                       (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)\n                       (*(int *)(puVar62 + 0x23abc) + 0x61b4),aVar45.sbcset);\n              aVar46.sbcset = (re_bitset_ptr_t)(*(int *)(puVar62 + 0x23b40) + -0x4614);\n              rVar21 = preorder(*(bin_tree_t **)(aVar45.idx + 0x34),\n                                (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar46.sbcset,\n                                aVar45.sbcset);\n              if (rVar21 == _REG_NOERROR) {\n                uVar60 = 0;\n                iVar55 = *(int *)(puVar62 + 0x23b40);\n                aVar56.sbcset = (re_bitset_ptr_t)0x0;\nLAB_00056744:\n                if ((re_dfa_t *)(aVar45.mbcset)->range_ends != (re_dfa_t *)aVar56.sbcset) {\nLAB_00056750:\n                  if (((re_node_set *)(aVar45.mbcset)->ncoll_syms)[aVar56.idx].nelem == 0) {\n                    aVar46.mbcset = aVar45.mbcset;\n                    aVar49 = aVar56;\n                    rVar21 = (*(code *)(iVar55 + -0x561c))\n                                       (&rStack_204,aVar45.sbcset,aVar56.sbcset,1);\n                    if (rVar21 != _REG_NOERROR) goto LAB_00056168;\n                    if (((re_node_set *)(aVar45.mbcset)->ncoll_syms)[aVar56.idx].nelem == 0) {\n                      (**(code **)(puVar62 + 0x23dc0))(rStack_204.elems);\n                      uVar60 = 1;\n                    }\n                  }\n                  aVar56.sbcset =\n                       (re_bitset_ptr_t)\n                       ((int)&((re_string_t *)&(aVar56.mbcset)->mbchars)->raw_mbs + 1);\n                  goto LAB_00056744;\n                }\n                if (uVar60 != 0) {\n                  uVar60 = 0;\n                  aVar56.sbcset = (re_bitset_ptr_t)0x0;\n                  goto LAB_00056750;\n                }\n                if ((((((re_node_set *)&(preg_00.mbcset)->nequiv_classes)->alloc & 0x8000000) == 0)\n                    && ((re_node_set *)(preg_00.mbcset)->ncoll_syms != (re_node_set *)0x0)) &&\n                   (*(char *)(aVar45.idx + 0x58) < '\0')) {\n                  pwVar57 = (wint_t *)(aVar45.mbcset)->range_ends;\n                }\n                else {\n                  if (*(Idx *)(aVar45.idx + 0x4c) == 0) goto LAB_000568f0;\n                  pwVar57 = (wint_t *)(aVar45.mbcset)->range_ends;\n                }\n                iVar55 = (**(code **)(puVar62 + 0x23cf0))((int)pwVar57 * 0xc);\n                ((re_node_set *)&(aVar45.mbcset)->nequiv_classes)->alloc = iVar55;\n                if (iVar55 == 0) {\n                  rVar21 = _REG_ESPACE;\n                  goto LAB_00056168;\n                }\n                if (pwVar57 != (wint_t *)0x0) {\n                  iVar55 = 0;\n                  uVar26 = 0;\n                  do {\n                    puVar32 = (undefined1 *)\n                              (((re_node_set *)&(aVar45.mbcset)->nequiv_classes)->alloc + iVar55);\n                    *puVar32 = 0;\n                    puVar32[1] = 0;\n                    puVar32[2] = 0;\n                    puVar32[3] = 0;\n                    puVar32[4] = 0;\n                    puVar32[5] = 0;\n                    puVar32[6] = 0;\n                    puVar32[7] = 0;\n                    puVar32[8] = 0;\n                    puVar32[9] = 0;\n                    puVar32[10] = 0;\n                    puVar32[0xb] = 0;\n                    uVar26 = uVar26 + 1;\n                    iVar55 = iVar55 + 0xc;\n                  } while (uVar26 < (aVar45.mbcset)->range_ends);\n                  iVar55 = *(int *)(puVar62 + 0x23abc);\n                  if ((wint_t *)(aVar45.mbcset)->range_ends != (wint_t *)0x0) {\n                    iVar61 = 0;\n                    aStack_218.sbcset = (re_bitset_ptr_t)0x0;\n                    do {\n                      piVar38 = *(int **)((int)&((re_node_set *)(aVar45.mbcset)->ncoll_syms)->elems\n                                         + iVar61);\n                      if (0 < *(int *)((int)&((re_node_set *)(aVar45.mbcset)->ncoll_syms)->nelem +\n                                      iVar61)) {\n                        iVar58 = 0;\n                        do {\n                          aVar46 = aStack_218;\n                          iVar33 = (*(code *)(iVar55 + 0x6e30))\n                                             (((re_node_set *)&(aVar45.mbcset)->nequiv_classes)->\n                                              alloc + *piVar38 * 0xc);\n                          rVar21 = _REG_ESPACE;\n                          if (iVar33 == 0) goto LAB_00056168;\n                          iVar58 = iVar58 + 1;\n                          piVar38 = piVar38 + 1;\n                        } while (iVar58 < *(int *)((int)&((re_node_set *)(aVar45.mbcset)->ncoll_syms\n                                                         )->nelem + iVar61));\n                      }\n                      aStack_218.sbcset =\n                           (re_bitset_ptr_t)\n                           ((int)&((re_string_t *)&(aStack_218.mbcset)->mbchars)->raw_mbs + 1);\n                      iVar61 = iVar61 + 0xc;\n                    } while (aStack_218.sbcset < (re_dfa_t *)(aVar45.mbcset)->range_ends);\n                  }\n                }\nLAB_000568f0:\n                rStack_20c = _REG_NOERROR;\n                if ((((*(byte *)(aVar4.idx + 0x58) & 0x20) != 0) && (uVar8 == 0)) &&\n                   (((anon_union_4_2_91654ee9_for___value *)&(preg_00.mbcset)->nmbchars)->__wch == 0\n                   )) {\n                  if ((aVar4.mbcset)->range_ends != (wchar_t *)0x0) {\n                    aVar49.sbcset = (re_bitset_ptr_t)(*(int *)(puVar62 + 0x23754) + 0x6e4c);\n                    if (*(byte *)(*aVar4.sbcset + 4) < 0xd) {\n                    /* WARNING: Could not recover jumptable at 0x00056a60. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      rVar21 = (*(code *)(puVar62 +\n                                         aVar49.sbcset[*(byte *)(*aVar4.sbcset + 4)] + 0x2b71c))();\n                      return rVar21;\n                    }\n                    (**(code **)(puVar62 + 0x23bc4))(0);\n                    if (uVar60 != 0) {\n                      aVar49.idx = (Idx)&DAT_00000007;\n                      uVar8 = 0;\n                      do {\n                        prVar53 = (re_token_t *)(aVar4.mbcset)->mbchars + uVar8;\n                        if (prVar53->field_0x4 == '\x01') {\n                          if ((char)(prVar53->opr).c < '\0') {\n                            *(uint *)&prVar53->field_0x4 = *(uint *)&prVar53->field_0x4 & 0xfffffbff\n                            ;\n                          }\n                        }\n                        else if (prVar53->field_0x4 == '\x05') {\n                          prVar53->field_0x4 = 7;\n                        }\n                        uVar8 = uVar8 + 1;\n                      } while (uVar8 < (aVar4.mbcset)->range_ends);\n                    }\n                  }\n                  *(int *)(aVar4.idx + 0x5c) = 1;\n                  if (0 < *(Idx *)(aVar4.idx + 0x4c)) {\n                    uVar60 = 1;\n                  }\n                  *(byte *)(aVar4.idx + 0x58) =\n                       *(byte *)(aVar4.idx + 0x58) & 0x9f | (byte)((uVar60 & 1) << 6);\n                }\n                iVar55 = (*(bin_tree_t **)(aVar4.idx + 0x34))->first->node_idx;\n                *(int *)(aVar4.idx + 0x48) = iVar55;\n                aVar46.sbcset =\n                     (re_bitset_ptr_t)((re_node_set *)(aVar4.mbcset)->ncoll_syms + iVar55);\n                rVar34 = re_node_set_init_copy(&rStack_204,(re_node_set *)aVar46.mbcset);\n                rVar21 = rVar34;\n                rStack_208 = rVar34;\n                if (rVar34 == _REG_NOERROR) {\n                  if ((0 < *(Idx *)(aVar4.idx + 0x4c)) && (_REG_NOERROR < rStack_204.nelem)) {\n                    iVar55 = *(int *)(puVar62 + 0x23abc);\n                    iVar61 = *(int *)(puVar62 + 0x23abc);\n                    rVar21 = _REG_NOERROR;\n                    do {\n                      aVar49.sbcset =\n                           (re_bitset_ptr_t)\n                           ((re_token_t *)(aVar4.mbcset)->mbchars + rStack_204.elems[rVar21]);\n                      if (*(char *)&((re_node_set *)&(aVar49.mbcset)->range_starts)->alloc == '\x04'\n                         ) {\n                        rVar48 = _REG_NOERROR;\n                        piVar38 = rStack_204.elems;\n                        if (rStack_204.nelem < _REG_NOMATCH) {\nLAB_00056b8c:\n                          if (rStack_204.nelem != rVar48) {\n                            iVar33 = *((re_node_set *)(aVar4.mbcset)->nmbchars)\n                                      [rStack_204.elems[rVar21]].elems;\n                            iVar58 = (*(code *)(iVar55 + 0x5ea8))(&rStack_204,iVar33);\n                            if (iVar58 == 0) {\n                              aVar46.sbcset =\n                                   (re_bitset_ptr_t)\n                                   ((re_node_set *)(aVar4.mbcset)->ncoll_syms + iVar33);\n                              rVar21 = (*(code *)(iVar61 + 0x7f1c))(&rStack_204);\n                              if (rVar21 != _REG_NOERROR) goto LAB_00056cb8;\n                            }\n                          }\n                        }\n                        else {\n                          do {\n                            prVar53 = (re_token_t *)(aVar4.mbcset)->mbchars + *piVar38;\n                            if ((prVar53->field_0x4 == '\t') &&\n                               ((prVar53->opr).sbcset == (re_bitset_ptr_t)*aVar49.sbcset))\n                            goto LAB_00056b8c;\n                            rVar48 = rVar48 + _REG_NOMATCH;\n                            piVar38 = piVar38 + 1;\n                          } while (rStack_204.nelem != rVar48);\n                        }\n                      }\n                      rVar21 = rVar21 + _REG_NOMATCH;\n                    } while (rVar21 < rStack_204.nelem);\n                  }\n                  aVar49.sbcset = (re_bitset_ptr_t)&rStack_204;\n                  aVar46 = aVar4;\n                  prVar35 = re_acquire_state_context\n                                      (&rStack_208,(re_dfa_t *)aVar4.mbcset,\n                                       (re_node_set *)aVar49.mbcset,0);\n                  (aVar4.mbcset)->nchar_classes = (Idx)prVar35;\n                  rVar21 = rStack_208;\n                  if (prVar35 != (re_dfastate_t *)0x0) {\n                    if ((prVar35->field_0x34 & 1) == 0) {\n                      *(re_dfastate_t **)(aVar4.idx + 0x30) = prVar35;\n                      *(re_dfastate_t **)(aVar4.idx + 0x2c) = prVar35;\n                      *(re_dfastate_t **)(aVar4.idx + 0x28) = prVar35;\n                    }\n                    else {\n                      aVar49.sbcset = (re_bitset_ptr_t)&rStack_204;\n                      prVar35 = re_acquire_state_context\n                                          (&rStack_208,(re_dfa_t *)aVar4.mbcset,\n                                           (re_node_set *)aVar49.mbcset,1);\n                      *(re_dfastate_t **)(aVar4.idx + 0x28) = prVar35;\n                      prVar35 = re_acquire_state_context\n                                          (&rStack_208,(re_dfa_t *)aVar4.mbcset,\n                                           (re_node_set *)aVar49.mbcset,2);\n                      *(re_dfastate_t **)(aVar4.idx + 0x2c) = prVar35;\n                      aVar46 = aVar4;\n                      prVar35 = re_acquire_state_context\n                                          (&rStack_208,(re_dfa_t *)aVar4.mbcset,\n                                           (re_node_set *)aVar49.mbcset,6);\n                      *(re_dfastate_t **)(aVar4.idx + 0x30) = prVar35;\n                      rVar21 = rStack_208;\n                      if (((*(re_dfastate_t **)(aVar4.idx + 0x28) == (re_dfastate_t *)0x0) ||\n                          (*(re_dfastate_t **)(aVar4.idx + 0x2c) == (re_dfastate_t *)0x0)) ||\n                         (prVar35 == (re_dfastate_t *)0x0)) goto LAB_00056cb8;\n                    }\n                    (**(code **)(puVar62 + 0x23dc0))(rStack_204.elems);\n                    rVar21 = rVar34;\n                  }\n                }\nLAB_00056cb8:\n                rStack_20c = rVar21;\n                free_workarea_compile((regex_t *)preg_00.mbcset);\n                re_string_destruct((re_string_t *)&aStack_1f8);\n                rVar21 = rStack_20c;\n                if (rStack_20c != _REG_NOERROR) {\n                  if (*(int *)(puVar62 + 0x23c78) != 0) {\n                    (**(code **)(puVar62 + 0x23df0))((pthread_mutex_t *)(aVar4.idx + 0x88));\n                  }\n                  free_dfa_content((re_dfa_t *)aVar4.mbcset);\n                  *preg_00.sbcset = 0;\n                  ((re_node_set *)&(preg_00.mbcset)->range_starts)->alloc = 0;\n                  rVar21 = rStack_20c;\n                }\n                goto LAB_00056cfc;\n              }\n            }\n          }" if (parenthesized_expression "(rVar21 == _REG_NOERROR)" ( (binary_expression "rVar21 == _REG_NOERROR" identifier == identifier) )) (compound_statement "{\n            aVar46.sbcset = (re_bitset_ptr_t)(*(int *)(puVar62 + 0x23b40) + -0x5be4);\n            rVar21 = postorder(*(bin_tree_t **)(aVar45.idx + 0x34),\n                               (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar46.sbcset,\n                               aVar45.sbcset);\n            if (rVar21 == _REG_NOERROR) {\n              preorder(*(bin_tree_t **)(aVar45.idx + 0x34),\n                       (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)\n                       (*(int *)(puVar62 + 0x23abc) + 0x61b4),aVar45.sbcset);\n              aVar46.sbcset = (re_bitset_ptr_t)(*(int *)(puVar62 + 0x23b40) + -0x4614);\n              rVar21 = preorder(*(bin_tree_t **)(aVar45.idx + 0x34),\n                                (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar46.sbcset,\n                                aVar45.sbcset);\n              if (rVar21 == _REG_NOERROR) {\n                uVar60 = 0;\n                iVar55 = *(int *)(puVar62 + 0x23b40);\n                aVar56.sbcset = (re_bitset_ptr_t)0x0;\nLAB_00056744:\n                if ((re_dfa_t *)(aVar45.mbcset)->range_ends != (re_dfa_t *)aVar56.sbcset) {\nLAB_00056750:\n                  if (((re_node_set *)(aVar45.mbcset)->ncoll_syms)[aVar56.idx].nelem == 0) {\n                    aVar46.mbcset = aVar45.mbcset;\n                    aVar49 = aVar56;\n                    rVar21 = (*(code *)(iVar55 + -0x561c))\n                                       (&rStack_204,aVar45.sbcset,aVar56.sbcset,1);\n                    if (rVar21 != _REG_NOERROR) goto LAB_00056168;\n                    if (((re_node_set *)(aVar45.mbcset)->ncoll_syms)[aVar56.idx].nelem == 0) {\n                      (**(code **)(puVar62 + 0x23dc0))(rStack_204.elems);\n                      uVar60 = 1;\n                    }\n                  }\n                  aVar56.sbcset =\n                       (re_bitset_ptr_t)\n                       ((int)&((re_string_t *)&(aVar56.mbcset)->mbchars)->raw_mbs + 1);\n                  goto LAB_00056744;\n                }\n                if (uVar60 != 0) {\n                  uVar60 = 0;\n                  aVar56.sbcset = (re_bitset_ptr_t)0x0;\n                  goto LAB_00056750;\n                }\n                if ((((((re_node_set *)&(preg_00.mbcset)->nequiv_classes)->alloc & 0x8000000) == 0)\n                    && ((re_node_set *)(preg_00.mbcset)->ncoll_syms != (re_node_set *)0x0)) &&\n                   (*(char *)(aVar45.idx + 0x58) < '\0')) {\n                  pwVar57 = (wint_t *)(aVar45.mbcset)->range_ends;\n                }\n                else {\n                  if (*(Idx *)(aVar45.idx + 0x4c) == 0) goto LAB_000568f0;\n                  pwVar57 = (wint_t *)(aVar45.mbcset)->range_ends;\n                }\n                iVar55 = (**(code **)(puVar62 + 0x23cf0))((int)pwVar57 * 0xc);\n                ((re_node_set *)&(aVar45.mbcset)->nequiv_classes)->alloc = iVar55;\n                if (iVar55 == 0) {\n                  rVar21 = _REG_ESPACE;\n                  goto LAB_00056168;\n                }\n                if (pwVar57 != (wint_t *)0x0) {\n                  iVar55 = 0;\n                  uVar26 = 0;\n                  do {\n                    puVar32 = (undefined1 *)\n                              (((re_node_set *)&(aVar45.mbcset)->nequiv_classes)->alloc + iVar55);\n                    *puVar32 = 0;\n                    puVar32[1] = 0;\n                    puVar32[2] = 0;\n                    puVar32[3] = 0;\n                    puVar32[4] = 0;\n                    puVar32[5] = 0;\n                    puVar32[6] = 0;\n                    puVar32[7] = 0;\n                    puVar32[8] = 0;\n                    puVar32[9] = 0;\n                    puVar32[10] = 0;\n                    puVar32[0xb] = 0;\n                    uVar26 = uVar26 + 1;\n                    iVar55 = iVar55 + 0xc;\n                  } while (uVar26 < (aVar45.mbcset)->range_ends);\n                  iVar55 = *(int *)(puVar62 + 0x23abc);\n                  if ((wint_t *)(aVar45.mbcset)->range_ends != (wint_t *)0x0) {\n                    iVar61 = 0;\n                    aStack_218.sbcset = (re_bitset_ptr_t)0x0;\n                    do {\n                      piVar38 = *(int **)((int)&((re_node_set *)(aVar45.mbcset)->ncoll_syms)->elems\n                                         + iVar61);\n                      if (0 < *(int *)((int)&((re_node_set *)(aVar45.mbcset)->ncoll_syms)->nelem +\n                                      iVar61)) {\n                        iVar58 = 0;\n                        do {\n                          aVar46 = aStack_218;\n                          iVar33 = (*(code *)(iVar55 + 0x6e30))\n                                             (((re_node_set *)&(aVar45.mbcset)->nequiv_classes)->\n                                              alloc + *piVar38 * 0xc);\n                          rVar21 = _REG_ESPACE;\n                          if (iVar33 == 0) goto LAB_00056168;\n                          iVar58 = iVar58 + 1;\n                          piVar38 = piVar38 + 1;\n                        } while (iVar58 < *(int *)((int)&((re_node_set *)(aVar45.mbcset)->ncoll_syms\n                                                         )->nelem + iVar61));\n                      }\n                      aStack_218.sbcset =\n                           (re_bitset_ptr_t)\n                           ((int)&((re_string_t *)&(aStack_218.mbcset)->mbchars)->raw_mbs + 1);\n                      iVar61 = iVar61 + 0xc;\n                    } while (aStack_218.sbcset < (re_dfa_t *)(aVar45.mbcset)->range_ends);\n                  }\n                }\nLAB_000568f0:\n                rStack_20c = _REG_NOERROR;\n                if ((((*(byte *)(aVar4.idx + 0x58) & 0x20) != 0) && (uVar8 == 0)) &&\n                   (((anon_union_4_2_91654ee9_for___value *)&(preg_00.mbcset)->nmbchars)->__wch == 0\n                   )) {\n                  if ((aVar4.mbcset)->range_ends != (wchar_t *)0x0) {\n                    aVar49.sbcset = (re_bitset_ptr_t)(*(int *)(puVar62 + 0x23754) + 0x6e4c);\n                    if (*(byte *)(*aVar4.sbcset + 4) < 0xd) {\n                    /* WARNING: Could not recover jumptable at 0x00056a60. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      rVar21 = (*(code *)(puVar62 +\n                                         aVar49.sbcset[*(byte *)(*aVar4.sbcset + 4)] + 0x2b71c))();\n                      return rVar21;\n                    }\n                    (**(code **)(puVar62 + 0x23bc4))(0);\n                    if (uVar60 != 0) {\n                      aVar49.idx = (Idx)&DAT_00000007;\n                      uVar8 = 0;\n                      do {\n                        prVar53 = (re_token_t *)(aVar4.mbcset)->mbchars + uVar8;\n                        if (prVar53->field_0x4 == '\x01') {\n                          if ((char)(prVar53->opr).c < '\0') {\n                            *(uint *)&prVar53->field_0x4 = *(uint *)&prVar53->field_0x4 & 0xfffffbff\n                            ;\n                          }\n                        }\n                        else if (prVar53->field_0x4 == '\x05') {\n                          prVar53->field_0x4 = 7;\n                        }\n                        uVar8 = uVar8 + 1;\n                      } while (uVar8 < (aVar4.mbcset)->range_ends);\n                    }\n                  }\n                  *(int *)(aVar4.idx + 0x5c) = 1;\n                  if (0 < *(Idx *)(aVar4.idx + 0x4c)) {\n                    uVar60 = 1;\n                  }\n                  *(byte *)(aVar4.idx + 0x58) =\n                       *(byte *)(aVar4.idx + 0x58) & 0x9f | (byte)((uVar60 & 1) << 6);\n                }\n                iVar55 = (*(bin_tree_t **)(aVar4.idx + 0x34))->first->node_idx;\n                *(int *)(aVar4.idx + 0x48) = iVar55;\n                aVar46.sbcset =\n                     (re_bitset_ptr_t)((re_node_set *)(aVar4.mbcset)->ncoll_syms + iVar55);\n                rVar34 = re_node_set_init_copy(&rStack_204,(re_node_set *)aVar46.mbcset);\n                rVar21 = rVar34;\n                rStack_208 = rVar34;\n                if (rVar34 == _REG_NOERROR) {\n                  if ((0 < *(Idx *)(aVar4.idx + 0x4c)) && (_REG_NOERROR < rStack_204.nelem)) {\n                    iVar55 = *(int *)(puVar62 + 0x23abc);\n                    iVar61 = *(int *)(puVar62 + 0x23abc);\n                    rVar21 = _REG_NOERROR;\n                    do {\n                      aVar49.sbcset =\n                           (re_bitset_ptr_t)\n                           ((re_token_t *)(aVar4.mbcset)->mbchars + rStack_204.elems[rVar21]);\n                      if (*(char *)&((re_node_set *)&(aVar49.mbcset)->range_starts)->alloc == '\x04'\n                         ) {\n                        rVar48 = _REG_NOERROR;\n                        piVar38 = rStack_204.elems;\n                        if (rStack_204.nelem < _REG_NOMATCH) {\nLAB_00056b8c:\n                          if (rStack_204.nelem != rVar48) {\n                            iVar33 = *((re_node_set *)(aVar4.mbcset)->nmbchars)\n                                      [rStack_204.elems[rVar21]].elems;\n                            iVar58 = (*(code *)(iVar55 + 0x5ea8))(&rStack_204,iVar33);\n                            if (iVar58 == 0) {\n                              aVar46.sbcset =\n                                   (re_bitset_ptr_t)\n                                   ((re_node_set *)(aVar4.mbcset)->ncoll_syms + iVar33);\n                              rVar21 = (*(code *)(iVar61 + 0x7f1c))(&rStack_204);\n                              if (rVar21 != _REG_NOERROR) goto LAB_00056cb8;\n                            }\n                          }\n                        }\n                        else {\n                          do {\n                            prVar53 = (re_token_t *)(aVar4.mbcset)->mbchars + *piVar38;\n                            if ((prVar53->field_0x4 == '\t') &&\n                               ((prVar53->opr).sbcset == (re_bitset_ptr_t)*aVar49.sbcset))\n                            goto LAB_00056b8c;\n                            rVar48 = rVar48 + _REG_NOMATCH;\n                            piVar38 = piVar38 + 1;\n                          } while (rStack_204.nelem != rVar48);\n                        }\n                      }\n                      rVar21 = rVar21 + _REG_NOMATCH;\n                    } while (rVar21 < rStack_204.nelem);\n                  }\n                  aVar49.sbcset = (re_bitset_ptr_t)&rStack_204;\n                  aVar46 = aVar4;\n                  prVar35 = re_acquire_state_context\n                                      (&rStack_208,(re_dfa_t *)aVar4.mbcset,\n                                       (re_node_set *)aVar49.mbcset,0);\n                  (aVar4.mbcset)->nchar_classes = (Idx)prVar35;\n                  rVar21 = rStack_208;\n                  if (prVar35 != (re_dfastate_t *)0x0) {\n                    if ((prVar35->field_0x34 & 1) == 0) {\n                      *(re_dfastate_t **)(aVar4.idx + 0x30) = prVar35;\n                      *(re_dfastate_t **)(aVar4.idx + 0x2c) = prVar35;\n                      *(re_dfastate_t **)(aVar4.idx + 0x28) = prVar35;\n                    }\n                    else {\n                      aVar49.sbcset = (re_bitset_ptr_t)&rStack_204;\n                      prVar35 = re_acquire_state_context\n                                          (&rStack_208,(re_dfa_t *)aVar4.mbcset,\n                                           (re_node_set *)aVar49.mbcset,1);\n                      *(re_dfastate_t **)(aVar4.idx + 0x28) = prVar35;\n                      prVar35 = re_acquire_state_context\n                                          (&rStack_208,(re_dfa_t *)aVar4.mbcset,\n                                           (re_node_set *)aVar49.mbcset,2);\n                      *(re_dfastate_t **)(aVar4.idx + 0x2c) = prVar35;\n                      aVar46 = aVar4;\n                      prVar35 = re_acquire_state_context\n                                          (&rStack_208,(re_dfa_t *)aVar4.mbcset,\n                                           (re_node_set *)aVar49.mbcset,6);\n                      *(re_dfastate_t **)(aVar4.idx + 0x30) = prVar35;\n                      rVar21 = rStack_208;\n                      if (((*(re_dfastate_t **)(aVar4.idx + 0x28) == (re_dfastate_t *)0x0) ||\n                          (*(re_dfastate_t **)(aVar4.idx + 0x2c) == (re_dfastate_t *)0x0)) ||\n                         (prVar35 == (re_dfastate_t *)0x0)) goto LAB_00056cb8;\n                    }\n                    (**(code **)(puVar62 + 0x23dc0))(rStack_204.elems);\n                    rVar21 = rVar34;\n                  }\n                }\nLAB_00056cb8:\n                rStack_20c = rVar21;\n                free_workarea_compile((regex_t *)preg_00.mbcset);\n                re_string_destruct((re_string_t *)&aStack_1f8);\n                rVar21 = rStack_20c;\n                if (rStack_20c != _REG_NOERROR) {\n                  if (*(int *)(puVar62 + 0x23c78) != 0) {\n                    (**(code **)(puVar62 + 0x23df0))((pthread_mutex_t *)(aVar4.idx + 0x88));\n                  }\n                  free_dfa_content((re_dfa_t *)aVar4.mbcset);\n                  *preg_00.sbcset = 0;\n                  ((re_node_set *)&(preg_00.mbcset)->range_starts)->alloc = 0;\n                  rVar21 = rStack_20c;\n                }\n                goto LAB_00056cfc;\n              }\n            }\n          }" { (expression_statement "aVar46.sbcset = (re_bitset_ptr_t)(*(int *)(puVar62 + 0x23b40) + -0x5be4);" (assignment_expression "aVar46.sbcset = (re_bitset_ptr_t)(*(int *)(puVar62 + 0x23b40) + -0x5be4)" (field_expression "aVar46.sbcset" identifier . field_identifier) = (call_expression "(re_bitset_ptr_t)(*(int *)(puVar62 + 0x23b40) + -0x5be4)" (parenthesized_expression "(re_bitset_ptr_t)" ( identifier )) (argument_list "(*(int *)(puVar62 + 0x23b40) + -0x5be4)" ( (binary_expression "*(int *)(puVar62 + 0x23b40) + -0x5be4" (pointer_expression "*(int *)(puVar62 + 0x23b40)" * (cast_expression "(int *)(puVar62 + 0x23b40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar62 + 0x23b40)" ( (binary_expression "puVar62 + 0x23b40" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "rVar21 = postorder(*(bin_tree_t **)(aVar45.idx + 0x34),\n                               (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar46.sbcset,\n                               aVar45.sbcset);" (assignment_expression "rVar21 = postorder(*(bin_tree_t **)(aVar45.idx + 0x34),\n                               (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar46.sbcset,\n                               aVar45.sbcset)" identifier = (call_expression "postorder(*(bin_tree_t **)(aVar45.idx + 0x34),\n                               (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar46.sbcset,\n                               aVar45.sbcset)" identifier (argument_list "(*(bin_tree_t **)(aVar45.idx + 0x34),\n                               (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar46.sbcset,\n                               aVar45.sbcset)" ( (pointer_expression "*(bin_tree_t **)(aVar45.idx + 0x34)" * (cast_expression "(bin_tree_t **)(aVar45.idx + 0x34)" ( (type_descriptor "bin_tree_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(aVar45.idx + 0x34)" ( (binary_expression "aVar45.idx + 0x34" (field_expression "aVar45.idx" identifier . field_identifier) + number_literal) )))) , (cast_expression "(_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar46.sbcset" ( (type_descriptor "_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "aVar46.sbcset" identifier . field_identifier)) , (field_expression "aVar45.sbcset" identifier . field_identifier) )))) ;) (if_statement "if (rVar21 == _REG_NOERROR) {\n              preorder(*(bin_tree_t **)(aVar45.idx + 0x34),\n                       (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)\n                       (*(int *)(puVar62 + 0x23abc) + 0x61b4),aVar45.sbcset);\n              aVar46.sbcset = (re_bitset_ptr_t)(*(int *)(puVar62 + 0x23b40) + -0x4614);\n              rVar21 = preorder(*(bin_tree_t **)(aVar45.idx + 0x34),\n                                (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar46.sbcset,\n                                aVar45.sbcset);\n              if (rVar21 == _REG_NOERROR) {\n                uVar60 = 0;\n                iVar55 = *(int *)(puVar62 + 0x23b40);\n                aVar56.sbcset = (re_bitset_ptr_t)0x0;\nLAB_00056744:\n                if ((re_dfa_t *)(aVar45.mbcset)->range_ends != (re_dfa_t *)aVar56.sbcset) {\nLAB_00056750:\n                  if (((re_node_set *)(aVar45.mbcset)->ncoll_syms)[aVar56.idx].nelem == 0) {\n                    aVar46.mbcset = aVar45.mbcset;\n                    aVar49 = aVar56;\n                    rVar21 = (*(code *)(iVar55 + -0x561c))\n                                       (&rStack_204,aVar45.sbcset,aVar56.sbcset,1);\n                    if (rVar21 != _REG_NOERROR) goto LAB_00056168;\n                    if (((re_node_set *)(aVar45.mbcset)->ncoll_syms)[aVar56.idx].nelem == 0) {\n                      (**(code **)(puVar62 + 0x23dc0))(rStack_204.elems);\n                      uVar60 = 1;\n                    }\n                  }\n                  aVar56.sbcset =\n                       (re_bitset_ptr_t)\n                       ((int)&((re_string_t *)&(aVar56.mbcset)->mbchars)->raw_mbs + 1);\n                  goto LAB_00056744;\n                }\n                if (uVar60 != 0) {\n                  uVar60 = 0;\n                  aVar56.sbcset = (re_bitset_ptr_t)0x0;\n                  goto LAB_00056750;\n                }\n                if ((((((re_node_set *)&(preg_00.mbcset)->nequiv_classes)->alloc & 0x8000000) == 0)\n                    && ((re_node_set *)(preg_00.mbcset)->ncoll_syms != (re_node_set *)0x0)) &&\n                   (*(char *)(aVar45.idx + 0x58) < '\0')) {\n                  pwVar57 = (wint_t *)(aVar45.mbcset)->range_ends;\n                }\n                else {\n                  if (*(Idx *)(aVar45.idx + 0x4c) == 0) goto LAB_000568f0;\n                  pwVar57 = (wint_t *)(aVar45.mbcset)->range_ends;\n                }\n                iVar55 = (**(code **)(puVar62 + 0x23cf0))((int)pwVar57 * 0xc);\n                ((re_node_set *)&(aVar45.mbcset)->nequiv_classes)->alloc = iVar55;\n                if (iVar55 == 0) {\n                  rVar21 = _REG_ESPACE;\n                  goto LAB_00056168;\n                }\n                if (pwVar57 != (wint_t *)0x0) {\n                  iVar55 = 0;\n                  uVar26 = 0;\n                  do {\n                    puVar32 = (undefined1 *)\n                              (((re_node_set *)&(aVar45.mbcset)->nequiv_classes)->alloc + iVar55);\n                    *puVar32 = 0;\n                    puVar32[1] = 0;\n                    puVar32[2] = 0;\n                    puVar32[3] = 0;\n                    puVar32[4] = 0;\n                    puVar32[5] = 0;\n                    puVar32[6] = 0;\n                    puVar32[7] = 0;\n                    puVar32[8] = 0;\n                    puVar32[9] = 0;\n                    puVar32[10] = 0;\n                    puVar32[0xb] = 0;\n                    uVar26 = uVar26 + 1;\n                    iVar55 = iVar55 + 0xc;\n                  } while (uVar26 < (aVar45.mbcset)->range_ends);\n                  iVar55 = *(int *)(puVar62 + 0x23abc);\n                  if ((wint_t *)(aVar45.mbcset)->range_ends != (wint_t *)0x0) {\n                    iVar61 = 0;\n                    aStack_218.sbcset = (re_bitset_ptr_t)0x0;\n                    do {\n                      piVar38 = *(int **)((int)&((re_node_set *)(aVar45.mbcset)->ncoll_syms)->elems\n                                         + iVar61);\n                      if (0 < *(int *)((int)&((re_node_set *)(aVar45.mbcset)->ncoll_syms)->nelem +\n                                      iVar61)) {\n                        iVar58 = 0;\n                        do {\n                          aVar46 = aStack_218;\n                          iVar33 = (*(code *)(iVar55 + 0x6e30))\n                                             (((re_node_set *)&(aVar45.mbcset)->nequiv_classes)->\n                                              alloc + *piVar38 * 0xc);\n                          rVar21 = _REG_ESPACE;\n                          if (iVar33 == 0) goto LAB_00056168;\n                          iVar58 = iVar58 + 1;\n                          piVar38 = piVar38 + 1;\n                        } while (iVar58 < *(int *)((int)&((re_node_set *)(aVar45.mbcset)->ncoll_syms\n                                                         )->nelem + iVar61));\n                      }\n                      aStack_218.sbcset =\n                           (re_bitset_ptr_t)\n                           ((int)&((re_string_t *)&(aStack_218.mbcset)->mbchars)->raw_mbs + 1);\n                      iVar61 = iVar61 + 0xc;\n                    } while (aStack_218.sbcset < (re_dfa_t *)(aVar45.mbcset)->range_ends);\n                  }\n                }\nLAB_000568f0:\n                rStack_20c = _REG_NOERROR;\n                if ((((*(byte *)(aVar4.idx + 0x58) & 0x20) != 0) && (uVar8 == 0)) &&\n                   (((anon_union_4_2_91654ee9_for___value *)&(preg_00.mbcset)->nmbchars)->__wch == 0\n                   )) {\n                  if ((aVar4.mbcset)->range_ends != (wchar_t *)0x0) {\n                    aVar49.sbcset = (re_bitset_ptr_t)(*(int *)(puVar62 + 0x23754) + 0x6e4c);\n                    if (*(byte *)(*aVar4.sbcset + 4) < 0xd) {\n                    /* WARNING: Could not recover jumptable at 0x00056a60. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      rVar21 = (*(code *)(puVar62 +\n                                         aVar49.sbcset[*(byte *)(*aVar4.sbcset + 4)] + 0x2b71c))();\n                      return rVar21;\n                    }\n                    (**(code **)(puVar62 + 0x23bc4))(0);\n                    if (uVar60 != 0) {\n                      aVar49.idx = (Idx)&DAT_00000007;\n                      uVar8 = 0;\n                      do {\n                        prVar53 = (re_token_t *)(aVar4.mbcset)->mbchars + uVar8;\n                        if (prVar53->field_0x4 == '\x01') {\n                          if ((char)(prVar53->opr).c < '\0') {\n                            *(uint *)&prVar53->field_0x4 = *(uint *)&prVar53->field_0x4 & 0xfffffbff\n                            ;\n                          }\n                        }\n                        else if (prVar53->field_0x4 == '\x05') {\n                          prVar53->field_0x4 = 7;\n                        }\n                        uVar8 = uVar8 + 1;\n                      } while (uVar8 < (aVar4.mbcset)->range_ends);\n                    }\n                  }\n                  *(int *)(aVar4.idx + 0x5c) = 1;\n                  if (0 < *(Idx *)(aVar4.idx + 0x4c)) {\n                    uVar60 = 1;\n                  }\n                  *(byte *)(aVar4.idx + 0x58) =\n                       *(byte *)(aVar4.idx + 0x58) & 0x9f | (byte)((uVar60 & 1) << 6);\n                }\n                iVar55 = (*(bin_tree_t **)(aVar4.idx + 0x34))->first->node_idx;\n                *(int *)(aVar4.idx + 0x48) = iVar55;\n                aVar46.sbcset =\n                     (re_bitset_ptr_t)((re_node_set *)(aVar4.mbcset)->ncoll_syms + iVar55);\n                rVar34 = re_node_set_init_copy(&rStack_204,(re_node_set *)aVar46.mbcset);\n                rVar21 = rVar34;\n                rStack_208 = rVar34;\n                if (rVar34 == _REG_NOERROR) {\n                  if ((0 < *(Idx *)(aVar4.idx + 0x4c)) && (_REG_NOERROR < rStack_204.nelem)) {\n                    iVar55 = *(int *)(puVar62 + 0x23abc);\n                    iVar61 = *(int *)(puVar62 + 0x23abc);\n                    rVar21 = _REG_NOERROR;\n                    do {\n                      aVar49.sbcset =\n                           (re_bitset_ptr_t)\n                           ((re_token_t *)(aVar4.mbcset)->mbchars + rStack_204.elems[rVar21]);\n                      if (*(char *)&((re_node_set *)&(aVar49.mbcset)->range_starts)->alloc == '\x04'\n                         ) {\n                        rVar48 = _REG_NOERROR;\n                        piVar38 = rStack_204.elems;\n                        if (rStack_204.nelem < _REG_NOMATCH) {\nLAB_00056b8c:\n                          if (rStack_204.nelem != rVar48) {\n                            iVar33 = *((re_node_set *)(aVar4.mbcset)->nmbchars)\n                                      [rStack_204.elems[rVar21]].elems;\n                            iVar58 = (*(code *)(iVar55 + 0x5ea8))(&rStack_204,iVar33);\n                            if (iVar58 == 0) {\n                              aVar46.sbcset =\n                                   (re_bitset_ptr_t)\n                                   ((re_node_set *)(aVar4.mbcset)->ncoll_syms + iVar33);\n                              rVar21 = (*(code *)(iVar61 + 0x7f1c))(&rStack_204);\n                              if (rVar21 != _REG_NOERROR) goto LAB_00056cb8;\n                            }\n                          }\n                        }\n                        else {\n                          do {\n                            prVar53 = (re_token_t *)(aVar4.mbcset)->mbchars + *piVar38;\n                            if ((prVar53->field_0x4 == '\t') &&\n                               ((prVar53->opr).sbcset == (re_bitset_ptr_t)*aVar49.sbcset))\n                            goto LAB_00056b8c;\n                            rVar48 = rVar48 + _REG_NOMATCH;\n                            piVar38 = piVar38 + 1;\n                          } while (rStack_204.nelem != rVar48);\n                        }\n                      }\n                      rVar21 = rVar21 + _REG_NOMATCH;\n                    } while (rVar21 < rStack_204.nelem);\n                  }\n                  aVar49.sbcset = (re_bitset_ptr_t)&rStack_204;\n                  aVar46 = aVar4;\n                  prVar35 = re_acquire_state_context\n                                      (&rStack_208,(re_dfa_t *)aVar4.mbcset,\n                                       (re_node_set *)aVar49.mbcset,0);\n                  (aVar4.mbcset)->nchar_classes = (Idx)prVar35;\n                  rVar21 = rStack_208;\n                  if (prVar35 != (re_dfastate_t *)0x0) {\n                    if ((prVar35->field_0x34 & 1) == 0) {\n                      *(re_dfastate_t **)(aVar4.idx + 0x30) = prVar35;\n                      *(re_dfastate_t **)(aVar4.idx + 0x2c) = prVar35;\n                      *(re_dfastate_t **)(aVar4.idx + 0x28) = prVar35;\n                    }\n                    else {\n                      aVar49.sbcset = (re_bitset_ptr_t)&rStack_204;\n                      prVar35 = re_acquire_state_context\n                                          (&rStack_208,(re_dfa_t *)aVar4.mbcset,\n                                           (re_node_set *)aVar49.mbcset,1);\n                      *(re_dfastate_t **)(aVar4.idx + 0x28) = prVar35;\n                      prVar35 = re_acquire_state_context\n                                          (&rStack_208,(re_dfa_t *)aVar4.mbcset,\n                                           (re_node_set *)aVar49.mbcset,2);\n                      *(re_dfastate_t **)(aVar4.idx + 0x2c) = prVar35;\n                      aVar46 = aVar4;\n                      prVar35 = re_acquire_state_context\n                                          (&rStack_208,(re_dfa_t *)aVar4.mbcset,\n                                           (re_node_set *)aVar49.mbcset,6);\n                      *(re_dfastate_t **)(aVar4.idx + 0x30) = prVar35;\n                      rVar21 = rStack_208;\n                      if (((*(re_dfastate_t **)(aVar4.idx + 0x28) == (re_dfastate_t *)0x0) ||\n                          (*(re_dfastate_t **)(aVar4.idx + 0x2c) == (re_dfastate_t *)0x0)) ||\n                         (prVar35 == (re_dfastate_t *)0x0)) goto LAB_00056cb8;\n                    }\n                    (**(code **)(puVar62 + 0x23dc0))(rStack_204.elems);\n                    rVar21 = rVar34;\n                  }\n                }\nLAB_00056cb8:\n                rStack_20c = rVar21;\n                free_workarea_compile((regex_t *)preg_00.mbcset);\n                re_string_destruct((re_string_t *)&aStack_1f8);\n                rVar21 = rStack_20c;\n                if (rStack_20c != _REG_NOERROR) {\n                  if (*(int *)(puVar62 + 0x23c78) != 0) {\n                    (**(code **)(puVar62 + 0x23df0))((pthread_mutex_t *)(aVar4.idx + 0x88));\n                  }\n                  free_dfa_content((re_dfa_t *)aVar4.mbcset);\n                  *preg_00.sbcset = 0;\n                  ((re_node_set *)&(preg_00.mbcset)->range_starts)->alloc = 0;\n                  rVar21 = rStack_20c;\n                }\n                goto LAB_00056cfc;\n              }\n            }" if (parenthesized_expression "(rVar21 == _REG_NOERROR)" ( (binary_expression "rVar21 == _REG_NOERROR" identifier == identifier) )) (compound_statement "{\n              preorder(*(bin_tree_t **)(aVar45.idx + 0x34),\n                       (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)\n                       (*(int *)(puVar62 + 0x23abc) + 0x61b4),aVar45.sbcset);\n              aVar46.sbcset = (re_bitset_ptr_t)(*(int *)(puVar62 + 0x23b40) + -0x4614);\n              rVar21 = preorder(*(bin_tree_t **)(aVar45.idx + 0x34),\n                                (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar46.sbcset,\n                                aVar45.sbcset);\n              if (rVar21 == _REG_NOERROR) {\n                uVar60 = 0;\n                iVar55 = *(int *)(puVar62 + 0x23b40);\n                aVar56.sbcset = (re_bitset_ptr_t)0x0;\nLAB_00056744:\n                if ((re_dfa_t *)(aVar45.mbcset)->range_ends != (re_dfa_t *)aVar56.sbcset) {\nLAB_00056750:\n                  if (((re_node_set *)(aVar45.mbcset)->ncoll_syms)[aVar56.idx].nelem == 0) {\n                    aVar46.mbcset = aVar45.mbcset;\n                    aVar49 = aVar56;\n                    rVar21 = (*(code *)(iVar55 + -0x561c))\n                                       (&rStack_204,aVar45.sbcset,aVar56.sbcset,1);\n                    if (rVar21 != _REG_NOERROR) goto LAB_00056168;\n                    if (((re_node_set *)(aVar45.mbcset)->ncoll_syms)[aVar56.idx].nelem == 0) {\n                      (**(code **)(puVar62 + 0x23dc0))(rStack_204.elems);\n                      uVar60 = 1;\n                    }\n                  }\n                  aVar56.sbcset =\n                       (re_bitset_ptr_t)\n                       ((int)&((re_string_t *)&(aVar56.mbcset)->mbchars)->raw_mbs + 1);\n                  goto LAB_00056744;\n                }\n                if (uVar60 != 0) {\n                  uVar60 = 0;\n                  aVar56.sbcset = (re_bitset_ptr_t)0x0;\n                  goto LAB_00056750;\n                }\n                if ((((((re_node_set *)&(preg_00.mbcset)->nequiv_classes)->alloc & 0x8000000) == 0)\n                    && ((re_node_set *)(preg_00.mbcset)->ncoll_syms != (re_node_set *)0x0)) &&\n                   (*(char *)(aVar45.idx + 0x58) < '\0')) {\n                  pwVar57 = (wint_t *)(aVar45.mbcset)->range_ends;\n                }\n                else {\n                  if (*(Idx *)(aVar45.idx + 0x4c) == 0) goto LAB_000568f0;\n                  pwVar57 = (wint_t *)(aVar45.mbcset)->range_ends;\n                }\n                iVar55 = (**(code **)(puVar62 + 0x23cf0))((int)pwVar57 * 0xc);\n                ((re_node_set *)&(aVar45.mbcset)->nequiv_classes)->alloc = iVar55;\n                if (iVar55 == 0) {\n                  rVar21 = _REG_ESPACE;\n                  goto LAB_00056168;\n                }\n                if (pwVar57 != (wint_t *)0x0) {\n                  iVar55 = 0;\n                  uVar26 = 0;\n                  do {\n                    puVar32 = (undefined1 *)\n                              (((re_node_set *)&(aVar45.mbcset)->nequiv_classes)->alloc + iVar55);\n                    *puVar32 = 0;\n                    puVar32[1] = 0;\n                    puVar32[2] = 0;\n                    puVar32[3] = 0;\n                    puVar32[4] = 0;\n                    puVar32[5] = 0;\n                    puVar32[6] = 0;\n                    puVar32[7] = 0;\n                    puVar32[8] = 0;\n                    puVar32[9] = 0;\n                    puVar32[10] = 0;\n                    puVar32[0xb] = 0;\n                    uVar26 = uVar26 + 1;\n                    iVar55 = iVar55 + 0xc;\n                  } while (uVar26 < (aVar45.mbcset)->range_ends);\n                  iVar55 = *(int *)(puVar62 + 0x23abc);\n                  if ((wint_t *)(aVar45.mbcset)->range_ends != (wint_t *)0x0) {\n                    iVar61 = 0;\n                    aStack_218.sbcset = (re_bitset_ptr_t)0x0;\n                    do {\n                      piVar38 = *(int **)((int)&((re_node_set *)(aVar45.mbcset)->ncoll_syms)->elems\n                                         + iVar61);\n                      if (0 < *(int *)((int)&((re_node_set *)(aVar45.mbcset)->ncoll_syms)->nelem +\n                                      iVar61)) {\n                        iVar58 = 0;\n                        do {\n                          aVar46 = aStack_218;\n                          iVar33 = (*(code *)(iVar55 + 0x6e30))\n                                             (((re_node_set *)&(aVar45.mbcset)->nequiv_classes)->\n                                              alloc + *piVar38 * 0xc);\n                          rVar21 = _REG_ESPACE;\n                          if (iVar33 == 0) goto LAB_00056168;\n                          iVar58 = iVar58 + 1;\n                          piVar38 = piVar38 + 1;\n                        } while (iVar58 < *(int *)((int)&((re_node_set *)(aVar45.mbcset)->ncoll_syms\n                                                         )->nelem + iVar61));\n                      }\n                      aStack_218.sbcset =\n                           (re_bitset_ptr_t)\n                           ((int)&((re_string_t *)&(aStack_218.mbcset)->mbchars)->raw_mbs + 1);\n                      iVar61 = iVar61 + 0xc;\n                    } while (aStack_218.sbcset < (re_dfa_t *)(aVar45.mbcset)->range_ends);\n                  }\n                }\nLAB_000568f0:\n                rStack_20c = _REG_NOERROR;\n                if ((((*(byte *)(aVar4.idx + 0x58) & 0x20) != 0) && (uVar8 == 0)) &&\n                   (((anon_union_4_2_91654ee9_for___value *)&(preg_00.mbcset)->nmbchars)->__wch == 0\n                   )) {\n                  if ((aVar4.mbcset)->range_ends != (wchar_t *)0x0) {\n                    aVar49.sbcset = (re_bitset_ptr_t)(*(int *)(puVar62 + 0x23754) + 0x6e4c);\n                    if (*(byte *)(*aVar4.sbcset + 4) < 0xd) {\n                    /* WARNING: Could not recover jumptable at 0x00056a60. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      rVar21 = (*(code *)(puVar62 +\n                                         aVar49.sbcset[*(byte *)(*aVar4.sbcset + 4)] + 0x2b71c))();\n                      return rVar21;\n                    }\n                    (**(code **)(puVar62 + 0x23bc4))(0);\n                    if (uVar60 != 0) {\n                      aVar49.idx = (Idx)&DAT_00000007;\n                      uVar8 = 0;\n                      do {\n                        prVar53 = (re_token_t *)(aVar4.mbcset)->mbchars + uVar8;\n                        if (prVar53->field_0x4 == '\x01') {\n                          if ((char)(prVar53->opr).c < '\0') {\n                            *(uint *)&prVar53->field_0x4 = *(uint *)&prVar53->field_0x4 & 0xfffffbff\n                            ;\n                          }\n                        }\n                        else if (prVar53->field_0x4 == '\x05') {\n                          prVar53->field_0x4 = 7;\n                        }\n                        uVar8 = uVar8 + 1;\n                      } while (uVar8 < (aVar4.mbcset)->range_ends);\n                    }\n                  }\n                  *(int *)(aVar4.idx + 0x5c) = 1;\n                  if (0 < *(Idx *)(aVar4.idx + 0x4c)) {\n                    uVar60 = 1;\n                  }\n                  *(byte *)(aVar4.idx + 0x58) =\n                       *(byte *)(aVar4.idx + 0x58) & 0x9f | (byte)((uVar60 & 1) << 6);\n                }\n                iVar55 = (*(bin_tree_t **)(aVar4.idx + 0x34))->first->node_idx;\n                *(int *)(aVar4.idx + 0x48) = iVar55;\n                aVar46.sbcset =\n                     (re_bitset_ptr_t)((re_node_set *)(aVar4.mbcset)->ncoll_syms + iVar55);\n                rVar34 = re_node_set_init_copy(&rStack_204,(re_node_set *)aVar46.mbcset);\n                rVar21 = rVar34;\n                rStack_208 = rVar34;\n                if (rVar34 == _REG_NOERROR) {\n                  if ((0 < *(Idx *)(aVar4.idx + 0x4c)) && (_REG_NOERROR < rStack_204.nelem)) {\n                    iVar55 = *(int *)(puVar62 + 0x23abc);\n                    iVar61 = *(int *)(puVar62 + 0x23abc);\n                    rVar21 = _REG_NOERROR;\n                    do {\n                      aVar49.sbcset =\n                           (re_bitset_ptr_t)\n                           ((re_token_t *)(aVar4.mbcset)->mbchars + rStack_204.elems[rVar21]);\n                      if (*(char *)&((re_node_set *)&(aVar49.mbcset)->range_starts)->alloc == '\x04'\n                         ) {\n                        rVar48 = _REG_NOERROR;\n                        piVar38 = rStack_204.elems;\n                        if (rStack_204.nelem < _REG_NOMATCH) {\nLAB_00056b8c:\n                          if (rStack_204.nelem != rVar48) {\n                            iVar33 = *((re_node_set *)(aVar4.mbcset)->nmbchars)\n                                      [rStack_204.elems[rVar21]].elems;\n                            iVar58 = (*(code *)(iVar55 + 0x5ea8))(&rStack_204,iVar33);\n                            if (iVar58 == 0) {\n                              aVar46.sbcset =\n                                   (re_bitset_ptr_t)\n                                   ((re_node_set *)(aVar4.mbcset)->ncoll_syms + iVar33);\n                              rVar21 = (*(code *)(iVar61 + 0x7f1c))(&rStack_204);\n                              if (rVar21 != _REG_NOERROR) goto LAB_00056cb8;\n                            }\n                          }\n                        }\n                        else {\n                          do {\n                            prVar53 = (re_token_t *)(aVar4.mbcset)->mbchars + *piVar38;\n                            if ((prVar53->field_0x4 == '\t') &&\n                               ((prVar53->opr).sbcset == (re_bitset_ptr_t)*aVar49.sbcset))\n                            goto LAB_00056b8c;\n                            rVar48 = rVar48 + _REG_NOMATCH;\n                            piVar38 = piVar38 + 1;\n                          } while (rStack_204.nelem != rVar48);\n                        }\n                      }\n                      rVar21 = rVar21 + _REG_NOMATCH;\n                    } while (rVar21 < rStack_204.nelem);\n                  }\n                  aVar49.sbcset = (re_bitset_ptr_t)&rStack_204;\n                  aVar46 = aVar4;\n                  prVar35 = re_acquire_state_context\n                                      (&rStack_208,(re_dfa_t *)aVar4.mbcset,\n                                       (re_node_set *)aVar49.mbcset,0);\n                  (aVar4.mbcset)->nchar_classes = (Idx)prVar35;\n                  rVar21 = rStack_208;\n                  if (prVar35 != (re_dfastate_t *)0x0) {\n                    if ((prVar35->field_0x34 & 1) == 0) {\n                      *(re_dfastate_t **)(aVar4.idx + 0x30) = prVar35;\n                      *(re_dfastate_t **)(aVar4.idx + 0x2c) = prVar35;\n                      *(re_dfastate_t **)(aVar4.idx + 0x28) = prVar35;\n                    }\n                    else {\n                      aVar49.sbcset = (re_bitset_ptr_t)&rStack_204;\n                      prVar35 = re_acquire_state_context\n                                          (&rStack_208,(re_dfa_t *)aVar4.mbcset,\n                                           (re_node_set *)aVar49.mbcset,1);\n                      *(re_dfastate_t **)(aVar4.idx + 0x28) = prVar35;\n                      prVar35 = re_acquire_state_context\n                                          (&rStack_208,(re_dfa_t *)aVar4.mbcset,\n                                           (re_node_set *)aVar49.mbcset,2);\n                      *(re_dfastate_t **)(aVar4.idx + 0x2c) = prVar35;\n                      aVar46 = aVar4;\n                      prVar35 = re_acquire_state_context\n                                          (&rStack_208,(re_dfa_t *)aVar4.mbcset,\n                                           (re_node_set *)aVar49.mbcset,6);\n                      *(re_dfastate_t **)(aVar4.idx + 0x30) = prVar35;\n                      rVar21 = rStack_208;\n                      if (((*(re_dfastate_t **)(aVar4.idx + 0x28) == (re_dfastate_t *)0x0) ||\n                          (*(re_dfastate_t **)(aVar4.idx + 0x2c) == (re_dfastate_t *)0x0)) ||\n                         (prVar35 == (re_dfastate_t *)0x0)) goto LAB_00056cb8;\n                    }\n                    (**(code **)(puVar62 + 0x23dc0))(rStack_204.elems);\n                    rVar21 = rVar34;\n                  }\n                }\nLAB_00056cb8:\n                rStack_20c = rVar21;\n                free_workarea_compile((regex_t *)preg_00.mbcset);\n                re_string_destruct((re_string_t *)&aStack_1f8);\n                rVar21 = rStack_20c;\n                if (rStack_20c != _REG_NOERROR) {\n                  if (*(int *)(puVar62 + 0x23c78) != 0) {\n                    (**(code **)(puVar62 + 0x23df0))((pthread_mutex_t *)(aVar4.idx + 0x88));\n                  }\n                  free_dfa_content((re_dfa_t *)aVar4.mbcset);\n                  *preg_00.sbcset = 0;\n                  ((re_node_set *)&(preg_00.mbcset)->range_starts)->alloc = 0;\n                  rVar21 = rStack_20c;\n                }\n                goto LAB_00056cfc;\n              }\n            }" { (expression_statement "preorder(*(bin_tree_t **)(aVar45.idx + 0x34),\n                       (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)\n                       (*(int *)(puVar62 + 0x23abc) + 0x61b4),aVar45.sbcset);" (call_expression "preorder(*(bin_tree_t **)(aVar45.idx + 0x34),\n                       (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)\n                       (*(int *)(puVar62 + 0x23abc) + 0x61b4),aVar45.sbcset)" identifier (argument_list "(*(bin_tree_t **)(aVar45.idx + 0x34),\n                       (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)\n                       (*(int *)(puVar62 + 0x23abc) + 0x61b4),aVar45.sbcset)" ( (pointer_expression "*(bin_tree_t **)(aVar45.idx + 0x34)" * (cast_expression "(bin_tree_t **)(aVar45.idx + 0x34)" ( (type_descriptor "bin_tree_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(aVar45.idx + 0x34)" ( (binary_expression "aVar45.idx + 0x34" (field_expression "aVar45.idx" identifier . field_identifier) + number_literal) )))) , (cast_expression "(_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)\n                       (*(int *)(puVar62 + 0x23abc) + 0x61b4)" ( (type_descriptor "_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar62 + 0x23abc) + 0x61b4)" ( (binary_expression "*(int *)(puVar62 + 0x23abc) + 0x61b4" (pointer_expression "*(int *)(puVar62 + 0x23abc)" * (cast_expression "(int *)(puVar62 + 0x23abc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar62 + 0x23abc)" ( (binary_expression "puVar62 + 0x23abc" identifier + number_literal) )))) + number_literal) ))) , (field_expression "aVar45.sbcset" identifier . field_identifier) ))) ;) (expression_statement "aVar46.sbcset = (re_bitset_ptr_t)(*(int *)(puVar62 + 0x23b40) + -0x4614);" (assignment_expression "aVar46.sbcset = (re_bitset_ptr_t)(*(int *)(puVar62 + 0x23b40) + -0x4614)" (field_expression "aVar46.sbcset" identifier . field_identifier) = (call_expression "(re_bitset_ptr_t)(*(int *)(puVar62 + 0x23b40) + -0x4614)" (parenthesized_expression "(re_bitset_ptr_t)" ( identifier )) (argument_list "(*(int *)(puVar62 + 0x23b40) + -0x4614)" ( (binary_expression "*(int *)(puVar62 + 0x23b40) + -0x4614" (pointer_expression "*(int *)(puVar62 + 0x23b40)" * (cast_expression "(int *)(puVar62 + 0x23b40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar62 + 0x23b40)" ( (binary_expression "puVar62 + 0x23b40" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "rVar21 = preorder(*(bin_tree_t **)(aVar45.idx + 0x34),\n                                (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar46.sbcset,\n                                aVar45.sbcset);" (assignment_expression "rVar21 = preorder(*(bin_tree_t **)(aVar45.idx + 0x34),\n                                (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar46.sbcset,\n                                aVar45.sbcset)" identifier = (call_expression "preorder(*(bin_tree_t **)(aVar45.idx + 0x34),\n                                (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar46.sbcset,\n                                aVar45.sbcset)" identifier (argument_list "(*(bin_tree_t **)(aVar45.idx + 0x34),\n                                (_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar46.sbcset,\n                                aVar45.sbcset)" ( (pointer_expression "*(bin_tree_t **)(aVar45.idx + 0x34)" * (cast_expression "(bin_tree_t **)(aVar45.idx + 0x34)" ( (type_descriptor "bin_tree_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(aVar45.idx + 0x34)" ( (binary_expression "aVar45.idx + 0x34" (field_expression "aVar45.idx" identifier . field_identifier) + number_literal) )))) , (cast_expression "(_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *)aVar46.sbcset" ( (type_descriptor "_func_reg_errcode_t_void_ptr_bin_tree_t_ptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "aVar46.sbcset" identifier . field_identifier)) , (field_expression "aVar45.sbcset" identifier . field_identifier) )))) ;) (if_statement "if (rVar21 == _REG_NOERROR) {\n                uVar60 = 0;\n                iVar55 = *(int *)(puVar62 + 0x23b40);\n                aVar56.sbcset = (re_bitset_ptr_t)0x0;\nLAB_00056744:\n                if ((re_dfa_t *)(aVar45.mbcset)->range_ends != (re_dfa_t *)aVar56.sbcset) {\nLAB_00056750:\n                  if (((re_node_set *)(aVar45.mbcset)->ncoll_syms)[aVar56.idx].nelem == 0) {\n                    aVar46.mbcset = aVar45.mbcset;\n                    aVar49 = aVar56;\n                    rVar21 = (*(code *)(iVar55 + -0x561c))\n                                       (&rStack_204,aVar45.sbcset,aVar56.sbcset,1);\n                    if (rVar21 != _REG_NOERROR) goto LAB_00056168;\n                    if (((re_node_set *)(aVar45.mbcset)->ncoll_syms)[aVar56.idx].nelem == 0) {\n                      (**(code **)(puVar62 + 0x23dc0))(rStack_204.elems);\n                      uVar60 = 1;\n                    }\n                  }\n                  aVar56.sbcset =\n                       (re_bitset_ptr_t)\n                       ((int)&((re_string_t *)&(aVar56.mbcset)->mbchars)->raw_mbs + 1);\n                  goto LAB_00056744;\n                }\n                if (uVar60 != 0) {\n                  uVar60 = 0;\n                  aVar56.sbcset = (re_bitset_ptr_t)0x0;\n                  goto LAB_00056750;\n                }\n                if ((((((re_node_set *)&(preg_00.mbcset)->nequiv_classes)->alloc & 0x8000000) == 0)\n                    && ((re_node_set *)(preg_00.mbcset)->ncoll_syms != (re_node_set *)0x0)) &&\n                   (*(char *)(aVar45.idx + 0x58) < '\0')) {\n                  pwVar57 = (wint_t *)(aVar45.mbcset)->range_ends;\n                }\n                else {\n                  if (*(Idx *)(aVar45.idx + 0x4c) == 0) goto LAB_000568f0;\n                  pwVar57 = (wint_t *)(aVar45.mbcset)->range_ends;\n                }\n                iVar55 = (**(code **)(puVar62 + 0x23cf0))((int)pwVar57 * 0xc);\n                ((re_node_set *)&(aVar45.mbcset)->nequiv_classes)->alloc = iVar55;\n                if (iVar55 == 0) {\n                  rVar21 = _REG_ESPACE;\n                  goto LAB_00056168;\n                }\n                if (pwVar57 != (wint_t *)0x0) {\n                  iVar55 = 0;\n                  uVar26 = 0;\n                  do {\n                    puVar32 = (undefined1 *)\n                              (((re_node_set *)&(aVar45.mbcset)->nequiv_classes)->alloc + iVar55);\n                    *puVar32 = 0;\n                    puVar32[1] = 0;\n                    puVar32[2] = 0;\n                    puVar32[3] = 0;\n                    puVar32[4] = 0;\n                    puVar32[5] = 0;\n                    puVar32[6] = 0;\n                    puVar32[7] = 0;\n                    puVar32[8] = 0;\n                    puVar32[9] = 0;\n                    puVar32[10] = 0;\n                    puVar32[0xb] = 0;\n                    uVar26 = uVar26 + 1;\n                    iVar55 = iVar55 + 0xc;\n                  } while (uVar26 < (aVar45.mbcset)->range_ends);\n                  iVar55 = *(int *)(puVar62 + 0x23abc);\n                  if ((wint_t *)(aVar45.mbcset)->range_ends != (wint_t *)0x0) {\n                    iVar61 = 0;\n                    aStack_218.sbcset = (re_bitset_ptr_t)0x0;\n                    do {\n                      piVar38 = *(int **)((int)&((re_node_set *)(aVar45.mbcset)->ncoll_syms)->elems\n                                         + iVar61);\n                      if (0 < *(int *)((int)&((re_node_set *)(aVar45.mbcset)->ncoll_syms)->nelem +\n                                      iVar61)) {\n                        iVar58 = 0;\n                        do {\n                          aVar46 = aStack_218;\n                          iVar33 = (*(code *)(iVar55 + 0x6e30))\n                                             (((re_node_set *)&(aVar45.mbcset)->nequiv_classes)->\n                                              alloc + *piVar38 * 0xc);\n                          rVar21 = _REG_ESPACE;\n                          if (iVar33 == 0) goto LAB_00056168;\n                          iVar58 = iVar58 + 1;\n                          piVar38 = piVar38 + 1;\n                        } while (iVar58 < *(int *)((int)&((re_node_set *)(aVar45.mbcset)->ncoll_syms\n                                                         )->nelem + iVar61));\n                      }\n                      aStack_218.sbcset =\n                           (re_bitset_ptr_t)\n                           ((int)&((re_string_t *)&(aStack_218.mbcset)->mbchars)->raw_mbs + 1);\n                      iVar61 = iVar61 + 0xc;\n                    } while (aStack_218.sbcset < (re_dfa_t *)(aVar45.mbcset)->range_ends);\n                  }\n                }\nLAB_000568f0:\n                rStack_20c = _REG_NOERROR;\n                if ((((*(byte *)(aVar4.idx + 0x58) & 0x20) != 0) && (uVar8 == 0)) &&\n                   (((anon_union_4_2_91654ee9_for___value *)&(preg_00.mbcset)->nmbchars)->__wch == 0\n                   )) {\n                  if ((aVar4.mbcset)->range_ends != (wchar_t *)0x0) {\n                    aVar49.sbcset = (re_bitset_ptr_t)(*(int *)(puVar62 + 0x23754) + 0x6e4c);\n                    if (*(byte *)(*aVar4.sbcset + 4) < 0xd) {\n                    /* WARNING: Could not recover jumptable at 0x00056a60. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      rVar21 = (*(code *)(puVar62 +\n                                         aVar49.sbcset[*(byte *)(*aVar4.sbcset + 4)] + 0x2b71c))();\n                      return rVar21;\n                    }\n                    (**(code **)(puVar62 + 0x23bc4))(0);\n                    if (uVar60 != 0) {\n                      aVar49.idx = (Idx)&DAT_00000007;\n                      uVar8 = 0;\n                      do {\n                        prVar53 = (re_token_t *)(aVar4.mbcset)->mbchars + uVar8;\n                        if (prVar53->field_0x4 == '\x01') {\n                          if ((char)(prVar53->opr).c < '\0') {\n                            *(uint *)&prVar53->field_0x4 = *(uint *)&prVar53->field_0x4 & 0xfffffbff\n                            ;\n                          }\n                        }\n                        else if (prVar53->field_0x4 == '\x05') {\n                          prVar53->field_0x4 = 7;\n                        }\n                        uVar8 = uVar8 + 1;\n                      } while (uVar8 < (aVar4.mbcset)->range_ends);\n                    }\n                  }\n                  *(int *)(aVar4.idx + 0x5c) = 1;\n                  if (0 < *(Idx *)(aVar4.idx + 0x4c)) {\n                    uVar60 = 1;\n                  }\n                  *(byte *)(aVar4.idx + 0x58) =\n                       *(byte *)(aVar4.idx + 0x58) & 0x9f | (byte)((uVar60 & 1) << 6);\n                }\n                iVar55 = (*(bin_tree_t **)(aVar4.idx + 0x34))->first->node_idx;\n                *(int *)(aVar4.idx + 0x48) = iVar55;\n                aVar46.sbcset =\n                     (re_bitset_ptr_t)((re_node_set *)(aVar4.mbcset)->ncoll_syms + iVar55);\n                rVar34 = re_node_set_init_copy(&rStack_204,(re_node_set *)aVar46.mbcset);\n                rVar21 = rVar34;\n                rStack_208 = rVar34;\n                if (rVar34 == _REG_NOERROR) {\n                  if ((0 < *(Idx *)(aVar4.idx + 0x4c)) && (_REG_NOERROR < rStack_204.nelem)) {\n                    iVar55 = *(int *)(puVar62 + 0x23abc);\n                    iVar61 = *(int *)(puVar62 + 0x23abc);\n                    rVar21 = _REG_NOERROR;\n                    do {\n                      aVar49.sbcset =\n                           (re_bitset_ptr_t)\n                           ((re_token_t *)(aVar4.mbcset)->mbchars + rStack_204.elems[rVar21]);\n                      if (*(char *)&((re_node_set *)&(aVar49.mbcset)->range_starts)->alloc == '\x04'\n                         ) {\n                        rVar48 = _REG_NOERROR;\n                        piVar38 = rStack_204.elems;\n                        if (rStack_204.nelem < _REG_NOMATCH) {\nLAB_00056b8c:\n                          if (rStack_204.nelem != rVar48) {\n                            iVar33 = *((re_node_set *)(aVar4.mbcset)->nmbchars)\n                                      [rStack_204.elems[rVar21]].elems;\n                            iVar58 = (*(code *)(iVar55 + 0x5ea8))(&rStack_204,iVar33);\n                            if (iVar58 == 0) {\n                              aVar46.sbcset =\n                                   (re_bitset_ptr_t)\n                                   ((re_node_set *)(aVar4.mbcset)->ncoll_syms + iVar33);\n                              rVar21 = (*(code *)(iVar61 + 0x7f1c))(&rStack_204);\n                              if (rVar21 != _REG_NOERROR) goto LAB_00056cb8;\n                            }\n                          }\n                        }\n                        else {\n                          do {\n                            prVar53 = (re_token_t *)(aVar4.mbcset)->mbchars + *piVar38;\n                            if ((prVar53->field_0x4 == '\t') &&\n                               ((prVar53->opr).sbcset == (re_bitset_ptr_t)*aVar49.sbcset))\n                            goto LAB_00056b8c;\n                            rVar48 = rVar48 + _REG_NOMATCH;\n                            piVar38 = piVar38 + 1;\n                          } while (rStack_204.nelem != rVar48);\n                        }\n                      }\n                      rVar21 = rVar21 + _REG_NOMATCH;\n                    } while (rVar21 < rStack_204.nelem);\n                  }\n                  aVar49.sbcset = (re_bitset_ptr_t)&rStack_204;\n                  aVar46 = aVar4;\n                  prVar35 = re_acquire_state_context\n                                      (&rStack_208,(re_dfa_t *)aVar4.mbcset,\n                                       (re_node_set *)aVar49.mbcset,0);\n                  (aVar4.mbcset)->nchar_classes = (Idx)prVar35;\n                  rVar21 = rStack_208;\n                  if (prVar35 != (re_dfastate_t *)0x0) {\n                    if ((prVar35->field_0x34 & 1) == 0) {\n                      *(re_dfastate_t **)(aVar4.idx + 0x30) = prVar35;\n                      *(re_dfastate_t **)(aVar4.idx + 0x2c) = prVar35;\n                      *(re_dfastate_t **)(aVar4.idx + 0x28) = prVar35;\n                    }\n                    else {\n                      aVar49.sbcset = (re_bitset_ptr_t)&rStack_204;\n                      prVar35 = re_acquire_state_context\n                                          (&rStack_208,(re_dfa_t *)aVar4.mbcset,\n                                           (re_node_set *)aVar49.mbcset,1);\n                      *(re_dfastate_t **)(aVar4.idx + 0x28) = prVar35;\n                      prVar35 = re_acquire_state_context\n                                          (&rStack_208,(re_dfa_t *)aVar4.mbcset,\n                                           (re_node_set *)aVar49.mbcset,2);\n                      *(re_dfastate_t **)(aVar4.idx + 0x2c) = prVar35;\n                      aVar46 = aVar4;\n                      prVar35 = re_acquire_state_context\n                                          (&rStack_208,(re_dfa_t *)aVar4.mbcset,\n                                           (re_node_set *)aVar49.mbcset,6);\n                      *(re_dfastate_t **)(aVar4.idx + 0x30) = prVar35;\n                      rVar21 = rStack_208;\n                      if (((*(re_dfastate_t **)(aVar4.idx + 0x28) == (re_dfastate_t *)0x0) ||\n                          (*(re_dfastate_t **)(aVar4.idx + 0x2c) == (re_dfastate_t *)0x0)) ||\n                         (prVar35 == (re_dfastate_t *)0x0)) goto LAB_00056cb8;\n                    }\n                    (**(code **)(puVar62 + 0x23dc0))(rStack_204.elems);\n                    rVar21 = rVar34;\n                  }\n                }\nLAB_00056cb8:\n                rStack_20c = rVar21;\n                free_workarea_compile((regex_t *)preg_00.mbcset);\n                re_string_destruct((re_string_t *)&aStack_1f8);\n                rVar21 = rStack_20c;\n                if (rStack_20c != _REG_NOERROR) {\n                  if (*(int *)(puVar62 + 0x23c78) != 0) {\n                    (**(code **)(puVar62 + 0x23df0))((pthread_mutex_t *)(aVar4.idx + 0x88));\n                  }\n                  free_dfa_content((re_dfa_t *)aVar4.mbcset);\n                  *preg_00.sbcset = 0;\n                  ((re_node_set *)&(preg_00.mbcset)->range_starts)->alloc = 0;\n                  rVar21 = rStack_20c;\n                }\n                goto LAB_00056cfc;\n              }" if (parenthesized_expression "(rVar21 == _REG_NOERROR)" ( (binary_expression "rVar21 == _REG_NOERROR" identifier == identifier) )) (compound_statement "{\n                uVar60 = 0;\n                iVar55 = *(int *)(puVar62 + 0x23b40);\n                aVar56.sbcset = (re_bitset_ptr_t)0x0;\nLAB_00056744:\n                if ((re_dfa_t *)(aVar45.mbcset)->range_ends != (re_dfa_t *)aVar56.sbcset) {\nLAB_00056750:\n                  if (((re_node_set *)(aVar45.mbcset)->ncoll_syms)[aVar56.idx].nelem == 0) {\n                    aVar46.mbcset = aVar45.mbcset;\n                    aVar49 = aVar56;\n                    rVar21 = (*(code *)(iVar55 + -0x561c))\n                                       (&rStack_204,aVar45.sbcset,aVar56.sbcset,1);\n                    if (rVar21 != _REG_NOERROR) goto LAB_00056168;\n                    if (((re_node_set *)(aVar45.mbcset)->ncoll_syms)[aVar56.idx].nelem == 0) {\n                      (**(code **)(puVar62 + 0x23dc0))(rStack_204.elems);\n                      uVar60 = 1;\n                    }\n                  }\n                  aVar56.sbcset =\n                       (re_bitset_ptr_t)\n                       ((int)&((re_string_t *)&(aVar56.mbcset)->mbchars)->raw_mbs + 1);\n                  goto LAB_00056744;\n                }\n                if (uVar60 != 0) {\n                  uVar60 = 0;\n                  aVar56.sbcset = (re_bitset_ptr_t)0x0;\n                  goto LAB_00056750;\n                }\n                if ((((((re_node_set *)&(preg_00.mbcset)->nequiv_classes)->alloc & 0x8000000) == 0)\n                    && ((re_node_set *)(preg_00.mbcset)->ncoll_syms != (re_node_set *)0x0)) &&\n                   (*(char *)(aVar45.idx + 0x58) < '\0')) {\n                  pwVar57 = (wint_t *)(aVar45.mbcset)->range_ends;\n                }\n                else {\n                  if (*(Idx *)(aVar45.idx + 0x4c) == 0) goto LAB_000568f0;\n                  pwVar57 = (wint_t *)(aVar45.mbcset)->range_ends;\n                }\n                iVar55 = (**(code **)(puVar62 + 0x23cf0))((int)pwVar57 * 0xc);\n                ((re_node_set *)&(aVar45.mbcset)->nequiv_classes)->alloc = iVar55;\n                if (iVar55 == 0) {\n                  rVar21 = _REG_ESPACE;\n                  goto LAB_00056168;\n                }\n                if (pwVar57 != (wint_t *)0x0) {\n                  iVar55 = 0;\n                  uVar26 = 0;\n                  do {\n                    puVar32 = (undefined1 *)\n                              (((re_node_set *)&(aVar45.mbcset)->nequiv_classes)->alloc + iVar55);\n                    *puVar32 = 0;\n                    puVar32[1] = 0;\n                    puVar32[2] = 0;\n                    puVar32[3] = 0;\n                    puVar32[4] = 0;\n                    puVar32[5] = 0;\n                    puVar32[6] = 0;\n                    puVar32[7] = 0;\n                    puVar32[8] = 0;\n                    puVar32[9] = 0;\n                    puVar32[10] = 0;\n                    puVar32[0xb] = 0;\n                    uVar26 = uVar26 + 1;\n                    iVar55 = iVar55 + 0xc;\n                  } while (uVar26 < (aVar45.mbcset)->range_ends);\n                  iVar55 = *(int *)(puVar62 + 0x23abc);\n                  if ((wint_t *)(aVar45.mbcset)->range_ends != (wint_t *)0x0) {\n                    iVar61 = 0;\n                    aStack_218.sbcset = (re_bitset_ptr_t)0x0;\n                    do {\n                      piVar38 = *(int **)((int)&((re_node_set *)(aVar45.mbcset)->ncoll_syms)->elems\n                                         + iVar61);\n                      if (0 < *(int *)((int)&((re_node_set *)(aVar45.mbcset)->ncoll_syms)->nelem +\n                                      iVar61)) {\n                        iVar58 = 0;\n                        do {\n                          aVar46 = aStack_218;\n                          iVar33 = (*(code *)(iVar55 + 0x6e30))\n                                             (((re_node_set *)&(aVar45.mbcset)->nequiv_classes)->\n                                              alloc + *piVar38 * 0xc);\n                          rVar21 = _REG_ESPACE;\n                          if (iVar33 == 0) goto LAB_00056168;\n                          iVar58 = iVar58 + 1;\n                          piVar38 = piVar38 + 1;\n                        } while (iVar58 < *(int *)((int)&((re_node_set *)(aVar45.mbcset)->ncoll_syms\n                                                         )->nelem + iVar61));\n                      }\n                      aStack_218.sbcset =\n                           (re_bitset_ptr_t)\n                           ((int)&((re_string_t *)&(aStack_218.mbcset)->mbchars)->raw_mbs + 1);\n                      iVar61 = iVar61 + 0xc;\n                    } while (aStack_218.sbcset < (re_dfa_t *)(aVar45.mbcset)->range_ends);\n                  }\n                }\nLAB_000568f0:\n                rStack_20c = _REG_NOERROR;\n                if ((((*(byte *)(aVar4.idx + 0x58) & 0x20) != 0) && (uVar8 == 0)) &&\n                   (((anon_union_4_2_91654ee9_for___value *)&(preg_00.mbcset)->nmbchars)->__wch == 0\n                   )) {\n                  if ((aVar4.mbcset)->range_ends != (wchar_t *)0x0) {\n                    aVar49.sbcset = (re_bitset_ptr_t)(*(int *)(puVar62 + 0x23754) + 0x6e4c);\n                    if (*(byte *)(*aVar4.sbcset + 4) < 0xd) {\n                    /* WARNING: Could not recover jumptable at 0x00056a60. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      rVar21 = (*(code *)(puVar62 +\n                                         aVar49.sbcset[*(byte *)(*aVar4.sbcset + 4)] + 0x2b71c))();\n                      return rVar21;\n                    }\n                    (**(code **)(puVar62 + 0x23bc4))(0);\n                    if (uVar60 != 0) {\n                      aVar49.idx = (Idx)&DAT_00000007;\n                      uVar8 = 0;\n                      do {\n                        prVar53 = (re_token_t *)(aVar4.mbcset)->mbchars + uVar8;\n                        if (prVar53->field_0x4 == '\x01') {\n                          if ((char)(prVar53->opr).c < '\0') {\n                            *(uint *)&prVar53->field_0x4 = *(uint *)&prVar53->field_0x4 & 0xfffffbff\n                            ;\n                          }\n                        }\n                        else if (prVar53->field_0x4 == '\x05') {\n                          prVar53->field_0x4 = 7;\n                        }\n                        uVar8 = uVar8 + 1;\n                      } while (uVar8 < (aVar4.mbcset)->range_ends);\n                    }\n                  }\n                  *(int *)(aVar4.idx + 0x5c) = 1;\n                  if (0 < *(Idx *)(aVar4.idx + 0x4c)) {\n                    uVar60 = 1;\n                  }\n                  *(byte *)(aVar4.idx + 0x58) =\n                       *(byte *)(aVar4.idx + 0x58) & 0x9f | (byte)((uVar60 & 1) << 6);\n                }\n                iVar55 = (*(bin_tree_t **)(aVar4.idx + 0x34))->first->node_idx;\n                *(int *)(aVar4.idx + 0x48) = iVar55;\n                aVar46.sbcset =\n                     (re_bitset_ptr_t)((re_node_set *)(aVar4.mbcset)->ncoll_syms + iVar55);\n                rVar34 = re_node_set_init_copy(&rStack_204,(re_node_set *)aVar46.mbcset);\n                rVar21 = rVar34;\n                rStack_208 = rVar34;\n                if (rVar34 == _REG_NOERROR) {\n                  if ((0 < *(Idx *)(aVar4.idx + 0x4c)) && (_REG_NOERROR < rStack_204.nelem)) {\n                    iVar55 = *(int *)(puVar62 + 0x23abc);\n                    iVar61 = *(int *)(puVar62 + 0x23abc);\n                    rVar21 = _REG_NOERROR;\n                    do {\n                      aVar49.sbcset =\n                           (re_bitset_ptr_t)\n                           ((re_token_t *)(aVar4.mbcset)->mbchars + rStack_204.elems[rVar21]);\n                      if (*(char *)&((re_node_set *)&(aVar49.mbcset)->range_starts)->alloc == '\x04'\n                         ) {\n                        rVar48 = _REG_NOERROR;\n                        piVar38 = rStack_204.elems;\n                        if (rStack_204.nelem < _REG_NOMATCH) {\nLAB_00056b8c:\n                          if (rStack_204.nelem != rVar48) {\n                            iVar33 = *((re_node_set *)(aVar4.mbcset)->nmbchars)\n                                      [rStack_204.elems[rVar21]].elems;\n                            iVar58 = (*(code *)(iVar55 + 0x5ea8))(&rStack_204,iVar33);\n                            if (iVar58 == 0) {\n                              aVar46.sbcset =\n                                   (re_bitset_ptr_t)\n                                   ((re_node_set *)(aVar4.mbcset)->ncoll_syms + iVar33);\n                              rVar21 = (*(code *)(iVar61 + 0x7f1c))(&rStack_204);\n                              if (rVar21 != _REG_NOERROR) goto LAB_00056cb8;\n                            }\n                          }\n                        }\n                        else {\n                          do {\n                            prVar53 = (re_token_t *)(aVar4.mbcset)->mbchars + *piVar38;\n                            if ((prVar53->field_0x4 == '\t') &&\n                               ((prVar53->opr).sbcset == (re_bitset_ptr_t)*aVar49.sbcset))\n                            goto LAB_00056b8c;\n                            rVar48 = rVar48 + _REG_NOMATCH;\n                            piVar38 = piVar38 + 1;\n                          } while (rStack_204.nelem != rVar48);\n                        }\n                      }\n                      rVar21 = rVar21 + _REG_NOMATCH;\n                    } while (rVar21 < rStack_204.nelem);\n                  }\n                  aVar49.sbcset = (re_bitset_ptr_t)&rStack_204;\n                  aVar46 = aVar4;\n                  prVar35 = re_acquire_state_context\n                                      (&rStack_208,(re_dfa_t *)aVar4.mbcset,\n                                       (re_node_set *)aVar49.mbcset,0);\n                  (aVar4.mbcset)->nchar_classes = (Idx)prVar35;\n                  rVar21 = rStack_208;\n                  if (prVar35 != (re_dfastate_t *)0x0) {\n                    if ((prVar35->field_0x34 & 1) == 0) {\n                      *(re_dfastate_t **)(aVar4.idx + 0x30) = prVar35;\n                      *(re_dfastate_t **)(aVar4.idx + 0x2c) = prVar35;\n                      *(re_dfastate_t **)(aVar4.idx + 0x28) = prVar35;\n                    }\n                    else {\n                      aVar49.sbcset = (re_bitset_ptr_t)&rStack_204;\n                      prVar35 = re_acquire_state_context\n                                          (&rStack_208,(re_dfa_t *)aVar4.mbcset,\n                                           (re_node_set *)aVar49.mbcset,1);\n                      *(re_dfastate_t **)(aVar4.idx + 0x28) = prVar35;\n                      prVar35 = re_acquire_state_context\n                                          (&rStack_208,(re_dfa_t *)aVar4.mbcset,\n                                           (re_node_set *)aVar49.mbcset,2);\n                      *(re_dfastate_t **)(aVar4.idx + 0x2c) = prVar35;\n                      aVar46 = aVar4;\n                      prVar35 = re_acquire_state_context\n                                          (&rStack_208,(re_dfa_t *)aVar4.mbcset,\n                                           (re_node_set *)aVar49.mbcset,6);\n                      *(re_dfastate_t **)(aVar4.idx + 0x30) = prVar35;\n                      rVar21 = rStack_208;\n                      if (((*(re_dfastate_t **)(aVar4.idx + 0x28) == (re_dfastate_t *)0x0) ||\n                          (*(re_dfastate_t **)(aVar4.idx + 0x2c) == (re_dfastate_t *)0x0)) ||\n                         (prVar35 == (re_dfastate_t *)0x0)) goto LAB_00056cb8;\n                    }\n                    (**(code **)(puVar62 + 0x23dc0))(rStack_204.elems);\n                    rVar21 = rVar34;\n                  }\n                }\nLAB_00056cb8:\n                rStack_20c = rVar21;\n                free_workarea_compile((regex_t *)preg_00.mbcset);\n                re_string_destruct((re_string_t *)&aStack_1f8);\n                rVar21 = rStack_20c;\n                if (rStack_20c != _REG_NOERROR) {\n                  if (*(int *)(puVar62 + 0x23c78) != 0) {\n                    (**(code **)(puVar62 + 0x23df0))((pthread_mutex_t *)(aVar4.idx + 0x88));\n                  }\n                  free_dfa_content((re_dfa_t *)aVar4.mbcset);\n                  *preg_00.sbcset = 0;\n                  ((re_node_set *)&(preg_00.mbcset)->range_starts)->alloc = 0;\n                  rVar21 = rStack_20c;\n                }\n                goto LAB_00056cfc;\n              }" { (expression_statement "uVar60 = 0;" (assignment_expression "uVar60 = 0" identifier = number_literal) ;) (expression_statement "iVar55 = *(int *)(puVar62 + 0x23b40);" (assignment_expression "iVar55 = *(int *)(puVar62 + 0x23b40)" identifier = (pointer_expression "*(int *)(puVar62 + 0x23b40)" * (cast_expression "(int *)(puVar62 + 0x23b40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar62 + 0x23b40)" ( (binary_expression "puVar62 + 0x23b40" identifier + number_literal) ))))) ;) (expression_statement "aVar56.sbcset = (re_bitset_ptr_t)0x0;" (assignment_expression "aVar56.sbcset = (re_bitset_ptr_t)0x0" (field_expression "aVar56.sbcset" identifier . field_identifier) = (cast_expression "(re_bitset_ptr_t)0x0" ( (type_descriptor "re_bitset_ptr_t" type_identifier) ) number_literal)) ;) (labeled_statement "LAB_00056744:\n                if ((re_dfa_t *)(aVar45.mbcset)->range_ends != (re_dfa_t *)aVar56.sbcset) {\nLAB_00056750:\n                  if (((re_node_set *)(aVar45.mbcset)->ncoll_syms)[aVar56.idx].nelem == 0) {\n                    aVar46.mbcset = aVar45.mbcset;\n                    aVar49 = aVar56;\n                    rVar21 = (*(code *)(iVar55 + -0x561c))\n                                       (&rStack_204,aVar45.sbcset,aVar56.sbcset,1);\n                    if (rVar21 != _REG_NOERROR) goto LAB_00056168;\n                    if (((re_node_set *)(aVar45.mbcset)->ncoll_syms)[aVar56.idx].nelem == 0) {\n                      (**(code **)(puVar62 + 0x23dc0))(rStack_204.elems);\n                      uVar60 = 1;\n                    }\n                  }\n                  aVar56.sbcset =\n                       (re_bitset_ptr_t)\n                       ((int)&((re_string_t *)&(aVar56.mbcset)->mbchars)->raw_mbs + 1);\n                  goto LAB_00056744;\n                }" statement_identifier : (if_statement "if ((re_dfa_t *)(aVar45.mbcset)->range_ends != (re_dfa_t *)aVar56.sbcset) {\nLAB_00056750:\n                  if (((re_node_set *)(aVar45.mbcset)->ncoll_syms)[aVar56.idx].nelem == 0) {\n                    aVar46.mbcset = aVar45.mbcset;\n                    aVar49 = aVar56;\n                    rVar21 = (*(code *)(iVar55 + -0x561c))\n                                       (&rStack_204,aVar45.sbcset,aVar56.sbcset,1);\n                    if (rVar21 != _REG_NOERROR) goto LAB_00056168;\n                    if (((re_node_set *)(aVar45.mbcset)->ncoll_syms)[aVar56.idx].nelem == 0) {\n                      (**(code **)(puVar62 + 0x23dc0))(rStack_204.elems);\n                      uVar60 = 1;\n                    }\n                  }\n                  aVar56.sbcset =\n                       (re_bitset_ptr_t)\n                       ((int)&((re_string_t *)&(aVar56.mbcset)->mbchars)->raw_mbs + 1);\n                  goto LAB_00056744;\n                }" if (parenthesized_expression "((re_dfa_t *)(aVar45.mbcset)->range_ends != (re_dfa_t *)aVar56.sbcset)" ( (binary_expression "(re_dfa_t *)(aVar45.mbcset)->range_ends != (re_dfa_t *)aVar56.sbcset" (cast_expression "(re_dfa_t *)(aVar45.mbcset)->range_ends" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(aVar45.mbcset)->range_ends" (parenthesized_expression "(aVar45.mbcset)" ( (field_expression "aVar45.mbcset" identifier . field_identifier) )) -> field_identifier)) != (cast_expression "(re_dfa_t *)aVar56.sbcset" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "aVar56.sbcset" identifier . field_identifier))) )) (compound_statement "{\nLAB_00056750:\n                  if (((re_node_set *)(aVar45.mbcset)->ncoll_syms)[aVar56.idx].nelem == 0) {\n                    aVar46.mbcset = aVar45.mbcset;\n                    aVar49 = aVar56;\n                    rVar21 = (*(code *)(iVar55 + -0x561c))\n                                       (&rStack_204,aVar45.sbcset,aVar56.sbcset,1);\n                    if (rVar21 != _REG_NOERROR) goto LAB_00056168;\n                    if (((re_node_set *)(aVar45.mbcset)->ncoll_syms)[aVar56.idx].nelem == 0) {\n                      (**(code **)(puVar62 + 0x23dc0))(rStack_204.elems);\n                      uVar60 = 1;\n                    }\n                  }\n                  aVar56.sbcset =\n                       (re_bitset_ptr_t)\n                       ((int)&((re_string_t *)&(aVar56.mbcset)->mbchars)->raw_mbs + 1);\n                  goto LAB_00056744;\n                }" { (labeled_statement "LAB_00056750:\n                  if (((re_node_set *)(aVar45.mbcset)->ncoll_syms)[aVar56.idx].nelem == 0) {\n                    aVar46.mbcset = aVar45.mbcset;\n                    aVar49 = aVar56;\n                    rVar21 = (*(code *)(iVar55 + -0x561c))\n                                       (&rStack_204,aVar45.sbcset,aVar56.sbcset,1);\n                    if (rVar21 != _REG_NOERROR) goto LAB_00056168;\n                    if (((re_node_set *)(aVar45.mbcset)->ncoll_syms)[aVar56.idx].nelem == 0) {\n                      (**(code **)(puVar62 + 0x23dc0))(rStack_204.elems);\n                      uVar60 = 1;\n                    }\n                  }" statement_identifier : (if_statement "if (((re_node_set *)(aVar45.mbcset)->ncoll_syms)[aVar56.idx].nelem == 0) {\n                    aVar46.mbcset = aVar45.mbcset;\n                    aVar49 = aVar56;\n                    rVar21 = (*(code *)(iVar55 + -0x561c))\n                                       (&rStack_204,aVar45.sbcset,aVar56.sbcset,1);\n                    if (rVar21 != _REG_NOERROR) goto LAB_00056168;\n                    if (((re_node_set *)(aVar45.mbcset)->ncoll_syms)[aVar56.idx].nelem == 0) {\n                      (**(code **)(puVar62 + 0x23dc0))(rStack_204.elems);\n                      uVar60 = 1;\n                    }\n                  }" if (parenthesized_expression "(((re_node_set *)(aVar45.mbcset)->ncoll_syms)[aVar56.idx].nelem == 0)" ( (binary_expression "((re_node_set *)(aVar45.mbcset)->ncoll_syms)[aVar56.idx].nelem == 0" (field_expression "((re_node_set *)(aVar45.mbcset)->ncoll_syms)[aVar56.idx].nelem" (subscript_expression "((re_node_set *)(aVar45.mbcset)->ncoll_syms)[aVar56.idx]" (parenthesized_expression "((re_node_set *)(aVar45.mbcset)->ncoll_syms)" ( (cast_expression "(re_node_set *)(aVar45.mbcset)->ncoll_syms" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(aVar45.mbcset)->ncoll_syms" (parenthesized_expression "(aVar45.mbcset)" ( (field_expression "aVar45.mbcset" identifier . field_identifier) )) -> field_identifier)) )) [ (field_expression "aVar56.idx" identifier . field_identifier) ]) . field_identifier) == number_literal) )) (compound_statement "{\n                    aVar46.mbcset = aVar45.mbcset;\n                    aVar49 = aVar56;\n                    rVar21 = (*(code *)(iVar55 + -0x561c))\n                                       (&rStack_204,aVar45.sbcset,aVar56.sbcset,1);\n                    if (rVar21 != _REG_NOERROR) goto LAB_00056168;\n                    if (((re_node_set *)(aVar45.mbcset)->ncoll_syms)[aVar56.idx].nelem == 0) {\n                      (**(code **)(puVar62 + 0x23dc0))(rStack_204.elems);\n                      uVar60 = 1;\n                    }\n                  }" { (expression_statement "aVar46.mbcset = aVar45.mbcset;" (assignment_expression "aVar46.mbcset = aVar45.mbcset" (field_expression "aVar46.mbcset" identifier . field_identifier) = (field_expression "aVar45.mbcset" identifier . field_identifier)) ;) (expression_statement "aVar49 = aVar56;" (assignment_expression "aVar49 = aVar56" identifier = identifier) ;) (expression_statement "rVar21 = (*(code *)(iVar55 + -0x561c))\n                                       (&rStack_204,aVar45.sbcset,aVar56.sbcset,1);" (assignment_expression "rVar21 = (*(code *)(iVar55 + -0x561c))\n                                       (&rStack_204,aVar45.sbcset,aVar56.sbcset,1)" identifier = (call_expression "(*(code *)(iVar55 + -0x561c))\n                                       (&rStack_204,aVar45.sbcset,aVar56.sbcset,1)" (parenthesized_expression "(*(code *)(iVar55 + -0x561c))" ( (pointer_expression "*(code *)(iVar55 + -0x561c)" * (cast_expression "(code *)(iVar55 + -0x561c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar55 + -0x561c)" ( (binary_expression "iVar55 + -0x561c" identifier + number_literal) )))) )) (argument_list "(&rStack_204,aVar45.sbcset,aVar56.sbcset,1)" ( (pointer_expression "&rStack_204" & identifier) , (field_expression "aVar45.sbcset" identifier . field_identifier) , (field_expression "aVar56.sbcset" identifier . field_identifier) , number_literal )))) ;) (if_statement "if (rVar21 != _REG_NOERROR) goto LAB_00056168;" if (parenthesized_expression "(rVar21 != _REG_NOERROR)" ( (binary_expression "rVar21 != _REG_NOERROR" identifier != identifier) )) (goto_statement "goto LAB_00056168;" goto statement_identifier ;)) (if_statement "if (((re_node_set *)(aVar45.mbcset)->ncoll_syms)[aVar56.idx].nelem == 0) {\n                      (**(code **)(puVar62 + 0x23dc0))(rStack_204.elems);\n                      uVar60 = 1;\n                    }" if (parenthesized_expression "(((re_node_set *)(aVar45.mbcset)->ncoll_syms)[aVar56.idx].nelem == 0)" ( (binary_expression "((re_node_set *)(aVar45.mbcset)->ncoll_syms)[aVar56.idx].nelem == 0" (field_expression "((re_node_set *)(aVar45.mbcset)->ncoll_syms)[aVar56.idx].nelem" (subscript_expression "((re_node_set *)(aVar45.mbcset)->ncoll_syms)[aVar56.idx]" (parenthesized_expression "((re_node_set *)(aVar45.mbcset)->ncoll_syms)" ( (cast_expression "(re_node_set *)(aVar45.mbcset)->ncoll_syms" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(aVar45.mbcset)->ncoll_syms" (parenthesized_expression "(aVar45.mbcset)" ( (field_expression "aVar45.mbcset" identifier . field_identifier) )) -> field_identifier)) )) [ (field_expression "aVar56.idx" identifier . field_identifier) ]) . field_identifier) == number_literal) )) (compound_statement "{\n                      (**(code **)(puVar62 + 0x23dc0))(rStack_204.elems);\n                      uVar60 = 1;\n                    }" { (expression_statement "(**(code **)(puVar62 + 0x23dc0))(rStack_204.elems);" (call_expression "(**(code **)(puVar62 + 0x23dc0))(rStack_204.elems)" (parenthesized_expression "(**(code **)(puVar62 + 0x23dc0))" ( (pointer_expression "**(code **)(puVar62 + 0x23dc0)" * (pointer_expression "*(code **)(puVar62 + 0x23dc0)" * (cast_expression "(code **)(puVar62 + 0x23dc0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar62 + 0x23dc0)" ( (binary_expression "puVar62 + 0x23dc0" identifier + number_literal) ))))) )) (argument_list "(rStack_204.elems)" ( (field_expression "rStack_204.elems" identifier . field_identifier) ))) ;) (expression_statement "uVar60 = 1;" (assignment_expression "uVar60 = 1" identifier = number_literal) ;) })) }))) (expression_statement "aVar56.sbcset =\n                       (re_bitset_ptr_t)\n                       ((int)&((re_string_t *)&(aVar56.mbcset)->mbchars)->raw_mbs + 1);" (assignment_expression "aVar56.sbcset =\n                       (re_bitset_ptr_t)\n                       ((int)&((re_string_t *)&(aVar56.mbcset)->mbchars)->raw_mbs + 1)" (field_expression "aVar56.sbcset" identifier . field_identifier) = (call_expression "(re_bitset_ptr_t)\n                       ((int)&((re_string_t *)&(aVar56.mbcset)->mbchars)->raw_mbs + 1)" (parenthesized_expression "(re_bitset_ptr_t)" ( identifier )) (argument_list "((int)&((re_string_t *)&(aVar56.mbcset)->mbchars)->raw_mbs + 1)" ( (binary_expression "(int)&((re_string_t *)&(aVar56.mbcset)->mbchars)->raw_mbs + 1" (cast_expression "(int)&((re_string_t *)&(aVar56.mbcset)->mbchars)->raw_mbs" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&((re_string_t *)&(aVar56.mbcset)->mbchars)->raw_mbs" & (field_expression "((re_string_t *)&(aVar56.mbcset)->mbchars)->raw_mbs" (parenthesized_expression "((re_string_t *)&(aVar56.mbcset)->mbchars)" ( (cast_expression "(re_string_t *)&(aVar56.mbcset)->mbchars" ( (type_descriptor "re_string_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(aVar56.mbcset)->mbchars" & (field_expression "(aVar56.mbcset)->mbchars" (parenthesized_expression "(aVar56.mbcset)" ( (field_expression "aVar56.mbcset" identifier . field_identifier) )) -> field_identifier))) )) -> field_identifier))) + number_literal) )))) ;) (goto_statement "goto LAB_00056744;" goto statement_identifier ;) }))) (if_statement "if (uVar60 != 0) {\n                  uVar60 = 0;\n                  aVar56.sbcset = (re_bitset_ptr_t)0x0;\n                  goto LAB_00056750;\n                }" if (parenthesized_expression "(uVar60 != 0)" ( (binary_expression "uVar60 != 0" identifier != number_literal) )) (compound_statement "{\n                  uVar60 = 0;\n                  aVar56.sbcset = (re_bitset_ptr_t)0x0;\n                  goto LAB_00056750;\n                }" { (expression_statement "uVar60 = 0;" (assignment_expression "uVar60 = 0" identifier = number_literal) ;) (expression_statement "aVar56.sbcset = (re_bitset_ptr_t)0x0;" (assignment_expression "aVar56.sbcset = (re_bitset_ptr_t)0x0" (field_expression "aVar56.sbcset" identifier . field_identifier) = (cast_expression "(re_bitset_ptr_t)0x0" ( (type_descriptor "re_bitset_ptr_t" type_identifier) ) number_literal)) ;) (goto_statement "goto LAB_00056750;" goto statement_identifier ;) })) (if_statement "if ((((((re_node_set *)&(preg_00.mbcset)->nequiv_classes)->alloc & 0x8000000) == 0)\n                    && ((re_node_set *)(preg_00.mbcset)->ncoll_syms != (re_node_set *)0x0)) &&\n                   (*(char *)(aVar45.idx + 0x58) < '\0')) {\n                  pwVar57 = (wint_t *)(aVar45.mbcset)->range_ends;\n                }\n                else {\n                  if (*(Idx *)(aVar45.idx + 0x4c) == 0) goto LAB_000568f0;\n                  pwVar57 = (wint_t *)(aVar45.mbcset)->range_ends;\n                }" if (parenthesized_expression "((((((re_node_set *)&(preg_00.mbcset)->nequiv_classes)->alloc & 0x8000000) == 0)\n                    && ((re_node_set *)(preg_00.mbcset)->ncoll_syms != (re_node_set *)0x0)) &&\n                   (*(char *)(aVar45.idx + 0x58) < '\0'))" ( (binary_expression "(((((re_node_set *)&(preg_00.mbcset)->nequiv_classes)->alloc & 0x8000000) == 0)\n                    && ((re_node_set *)(preg_00.mbcset)->ncoll_syms != (re_node_set *)0x0)) &&\n                   (*(char *)(aVar45.idx + 0x58) < '\0')" (parenthesized_expression "(((((re_node_set *)&(preg_00.mbcset)->nequiv_classes)->alloc & 0x8000000) == 0)\n                    && ((re_node_set *)(preg_00.mbcset)->ncoll_syms != (re_node_set *)0x0))" ( (binary_expression "((((re_node_set *)&(preg_00.mbcset)->nequiv_classes)->alloc & 0x8000000) == 0)\n                    && ((re_node_set *)(preg_00.mbcset)->ncoll_syms != (re_node_set *)0x0)" (parenthesized_expression "((((re_node_set *)&(preg_00.mbcset)->nequiv_classes)->alloc & 0x8000000) == 0)" ( (binary_expression "(((re_node_set *)&(preg_00.mbcset)->nequiv_classes)->alloc & 0x8000000) == 0" (parenthesized_expression "(((re_node_set *)&(preg_00.mbcset)->nequiv_classes)->alloc & 0x8000000)" ( (binary_expression "((re_node_set *)&(preg_00.mbcset)->nequiv_classes)->alloc & 0x8000000" (field_expression "((re_node_set *)&(preg_00.mbcset)->nequiv_classes)->alloc" (parenthesized_expression "((re_node_set *)&(preg_00.mbcset)->nequiv_classes)" ( (cast_expression "(re_node_set *)&(preg_00.mbcset)->nequiv_classes" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(preg_00.mbcset)->nequiv_classes" & (field_expression "(preg_00.mbcset)->nequiv_classes" (parenthesized_expression "(preg_00.mbcset)" ( (field_expression "preg_00.mbcset" identifier . field_identifier) )) -> field_identifier))) )) -> field_identifier) & number_literal) )) == number_literal) )) && (parenthesized_expression "((re_node_set *)(preg_00.mbcset)->ncoll_syms != (re_node_set *)0x0)" ( (binary_expression "(re_node_set *)(preg_00.mbcset)->ncoll_syms != (re_node_set *)0x0" (cast_expression "(re_node_set *)(preg_00.mbcset)->ncoll_syms" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(preg_00.mbcset)->ncoll_syms" (parenthesized_expression "(preg_00.mbcset)" ( (field_expression "preg_00.mbcset" identifier . field_identifier) )) -> field_identifier)) != (cast_expression "(re_node_set *)0x0" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) && (parenthesized_expression "(*(char *)(aVar45.idx + 0x58) < '\0')" ( (binary_expression "*(char *)(aVar45.idx + 0x58) < '\0'" (pointer_expression "*(char *)(aVar45.idx + 0x58)" * (cast_expression "(char *)(aVar45.idx + 0x58)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(aVar45.idx + 0x58)" ( (binary_expression "aVar45.idx + 0x58" (field_expression "aVar45.idx" identifier . field_identifier) + number_literal) )))) < (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n                  pwVar57 = (wint_t *)(aVar45.mbcset)->range_ends;\n                }" { (expression_statement "pwVar57 = (wint_t *)(aVar45.mbcset)->range_ends;" (assignment_expression "pwVar57 = (wint_t *)(aVar45.mbcset)->range_ends" identifier = (cast_expression "(wint_t *)(aVar45.mbcset)->range_ends" ( (type_descriptor "wint_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(aVar45.mbcset)->range_ends" (parenthesized_expression "(aVar45.mbcset)" ( (field_expression "aVar45.mbcset" identifier . field_identifier) )) -> field_identifier))) ;) }) (else_clause "else {\n                  if (*(Idx *)(aVar45.idx + 0x4c) == 0) goto LAB_000568f0;\n                  pwVar57 = (wint_t *)(aVar45.mbcset)->range_ends;\n                }" else (compound_statement "{\n                  if (*(Idx *)(aVar45.idx + 0x4c) == 0) goto LAB_000568f0;\n                  pwVar57 = (wint_t *)(aVar45.mbcset)->range_ends;\n                }" { (if_statement "if (*(Idx *)(aVar45.idx + 0x4c) == 0) goto LAB_000568f0;" if (parenthesized_expression "(*(Idx *)(aVar45.idx + 0x4c) == 0)" ( (binary_expression "*(Idx *)(aVar45.idx + 0x4c) == 0" (pointer_expression "*(Idx *)(aVar45.idx + 0x4c)" * (cast_expression "(Idx *)(aVar45.idx + 0x4c)" ( (type_descriptor "Idx *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(aVar45.idx + 0x4c)" ( (binary_expression "aVar45.idx + 0x4c" (field_expression "aVar45.idx" identifier . field_identifier) + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_000568f0;" goto statement_identifier ;)) (expression_statement "pwVar57 = (wint_t *)(aVar45.mbcset)->range_ends;" (assignment_expression "pwVar57 = (wint_t *)(aVar45.mbcset)->range_ends" identifier = (cast_expression "(wint_t *)(aVar45.mbcset)->range_ends" ( (type_descriptor "wint_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(aVar45.mbcset)->range_ends" (parenthesized_expression "(aVar45.mbcset)" ( (field_expression "aVar45.mbcset" identifier . field_identifier) )) -> field_identifier))) ;) }))) (expression_statement "iVar55 = (**(code **)(puVar62 + 0x23cf0))((int)pwVar57 * 0xc);" (assignment_expression "iVar55 = (**(code **)(puVar62 + 0x23cf0))((int)pwVar57 * 0xc)" identifier = (call_expression "(**(code **)(puVar62 + 0x23cf0))((int)pwVar57 * 0xc)" (parenthesized_expression "(**(code **)(puVar62 + 0x23cf0))" ( (pointer_expression "**(code **)(puVar62 + 0x23cf0)" * (pointer_expression "*(code **)(puVar62 + 0x23cf0)" * (cast_expression "(code **)(puVar62 + 0x23cf0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar62 + 0x23cf0)" ( (binary_expression "puVar62 + 0x23cf0" identifier + number_literal) ))))) )) (argument_list "((int)pwVar57 * 0xc)" ( (binary_expression "(int)pwVar57 * 0xc" (cast_expression "(int)pwVar57" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) )))) ;) (expression_statement "((re_node_set *)&(aVar45.mbcset)->nequiv_classes)->alloc = iVar55;" (assignment_expression "((re_node_set *)&(aVar45.mbcset)->nequiv_classes)->alloc = iVar55" (field_expression "((re_node_set *)&(aVar45.mbcset)->nequiv_classes)->alloc" (parenthesized_expression "((re_node_set *)&(aVar45.mbcset)->nequiv_classes)" ( (cast_expression "(re_node_set *)&(aVar45.mbcset)->nequiv_classes" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(aVar45.mbcset)->nequiv_classes" & (field_expression "(aVar45.mbcset)->nequiv_classes" (parenthesized_expression "(aVar45.mbcset)" ( (field_expression "aVar45.mbcset" identifier . field_identifier) )) -> field_identifier))) )) -> field_identifier) = identifier) ;) (if_statement "if (iVar55 == 0) {\n                  rVar21 = _REG_ESPACE;\n                  goto LAB_00056168;\n                }" if (parenthesized_expression "(iVar55 == 0)" ( (binary_expression "iVar55 == 0" identifier == number_literal) )) (compound_statement "{\n                  rVar21 = _REG_ESPACE;\n                  goto LAB_00056168;\n                }" { (expression_statement "rVar21 = _REG_ESPACE;" (assignment_expression "rVar21 = _REG_ESPACE" identifier = identifier) ;) (goto_statement "goto LAB_00056168;" goto statement_identifier ;) })) (if_statement "if (pwVar57 != (wint_t *)0x0) {\n                  iVar55 = 0;\n                  uVar26 = 0;\n                  do {\n                    puVar32 = (undefined1 *)\n                              (((re_node_set *)&(aVar45.mbcset)->nequiv_classes)->alloc + iVar55);\n                    *puVar32 = 0;\n                    puVar32[1] = 0;\n                    puVar32[2] = 0;\n                    puVar32[3] = 0;\n                    puVar32[4] = 0;\n                    puVar32[5] = 0;\n                    puVar32[6] = 0;\n                    puVar32[7] = 0;\n                    puVar32[8] = 0;\n                    puVar32[9] = 0;\n                    puVar32[10] = 0;\n                    puVar32[0xb] = 0;\n                    uVar26 = uVar26 + 1;\n                    iVar55 = iVar55 + 0xc;\n                  } while (uVar26 < (aVar45.mbcset)->range_ends);\n                  iVar55 = *(int *)(puVar62 + 0x23abc);\n                  if ((wint_t *)(aVar45.mbcset)->range_ends != (wint_t *)0x0) {\n                    iVar61 = 0;\n                    aStack_218.sbcset = (re_bitset_ptr_t)0x0;\n                    do {\n                      piVar38 = *(int **)((int)&((re_node_set *)(aVar45.mbcset)->ncoll_syms)->elems\n                                         + iVar61);\n                      if (0 < *(int *)((int)&((re_node_set *)(aVar45.mbcset)->ncoll_syms)->nelem +\n                                      iVar61)) {\n                        iVar58 = 0;\n                        do {\n                          aVar46 = aStack_218;\n                          iVar33 = (*(code *)(iVar55 + 0x6e30))\n                                             (((re_node_set *)&(aVar45.mbcset)->nequiv_classes)->\n                                              alloc + *piVar38 * 0xc);\n                          rVar21 = _REG_ESPACE;\n                          if (iVar33 == 0) goto LAB_00056168;\n                          iVar58 = iVar58 + 1;\n                          piVar38 = piVar38 + 1;\n                        } while (iVar58 < *(int *)((int)&((re_node_set *)(aVar45.mbcset)->ncoll_syms\n                                                         )->nelem + iVar61));\n                      }\n                      aStack_218.sbcset =\n                           (re_bitset_ptr_t)\n                           ((int)&((re_string_t *)&(aStack_218.mbcset)->mbchars)->raw_mbs + 1);\n                      iVar61 = iVar61 + 0xc;\n                    } while (aStack_218.sbcset < (re_dfa_t *)(aVar45.mbcset)->range_ends);\n                  }\n                }" if (parenthesized_expression "(pwVar57 != (wint_t *)0x0)" ( (binary_expression "pwVar57 != (wint_t *)0x0" identifier != (cast_expression "(wint_t *)0x0" ( (type_descriptor "wint_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                  iVar55 = 0;\n                  uVar26 = 0;\n                  do {\n                    puVar32 = (undefined1 *)\n                              (((re_node_set *)&(aVar45.mbcset)->nequiv_classes)->alloc + iVar55);\n                    *puVar32 = 0;\n                    puVar32[1] = 0;\n                    puVar32[2] = 0;\n                    puVar32[3] = 0;\n                    puVar32[4] = 0;\n                    puVar32[5] = 0;\n                    puVar32[6] = 0;\n                    puVar32[7] = 0;\n                    puVar32[8] = 0;\n                    puVar32[9] = 0;\n                    puVar32[10] = 0;\n                    puVar32[0xb] = 0;\n                    uVar26 = uVar26 + 1;\n                    iVar55 = iVar55 + 0xc;\n                  } while (uVar26 < (aVar45.mbcset)->range_ends);\n                  iVar55 = *(int *)(puVar62 + 0x23abc);\n                  if ((wint_t *)(aVar45.mbcset)->range_ends != (wint_t *)0x0) {\n                    iVar61 = 0;\n                    aStack_218.sbcset = (re_bitset_ptr_t)0x0;\n                    do {\n                      piVar38 = *(int **)((int)&((re_node_set *)(aVar45.mbcset)->ncoll_syms)->elems\n                                         + iVar61);\n                      if (0 < *(int *)((int)&((re_node_set *)(aVar45.mbcset)->ncoll_syms)->nelem +\n                                      iVar61)) {\n                        iVar58 = 0;\n                        do {\n                          aVar46 = aStack_218;\n                          iVar33 = (*(code *)(iVar55 + 0x6e30))\n                                             (((re_node_set *)&(aVar45.mbcset)->nequiv_classes)->\n                                              alloc + *piVar38 * 0xc);\n                          rVar21 = _REG_ESPACE;\n                          if (iVar33 == 0) goto LAB_00056168;\n                          iVar58 = iVar58 + 1;\n                          piVar38 = piVar38 + 1;\n                        } while (iVar58 < *(int *)((int)&((re_node_set *)(aVar45.mbcset)->ncoll_syms\n                                                         )->nelem + iVar61));\n                      }\n                      aStack_218.sbcset =\n                           (re_bitset_ptr_t)\n                           ((int)&((re_string_t *)&(aStack_218.mbcset)->mbchars)->raw_mbs + 1);\n                      iVar61 = iVar61 + 0xc;\n                    } while (aStack_218.sbcset < (re_dfa_t *)(aVar45.mbcset)->range_ends);\n                  }\n                }" { (expression_statement "iVar55 = 0;" (assignment_expression "iVar55 = 0" identifier = number_literal) ;) (expression_statement "uVar26 = 0;" (assignment_expression "uVar26 = 0" identifier = number_literal) ;) (do_statement "do {\n                    puVar32 = (undefined1 *)\n                              (((re_node_set *)&(aVar45.mbcset)->nequiv_classes)->alloc + iVar55);\n                    *puVar32 = 0;\n                    puVar32[1] = 0;\n                    puVar32[2] = 0;\n                    puVar32[3] = 0;\n                    puVar32[4] = 0;\n                    puVar32[5] = 0;\n                    puVar32[6] = 0;\n                    puVar32[7] = 0;\n                    puVar32[8] = 0;\n                    puVar32[9] = 0;\n                    puVar32[10] = 0;\n                    puVar32[0xb] = 0;\n                    uVar26 = uVar26 + 1;\n                    iVar55 = iVar55 + 0xc;\n                  } while (uVar26 < (aVar45.mbcset)->range_ends);" do (compound_statement "{\n                    puVar32 = (undefined1 *)\n                              (((re_node_set *)&(aVar45.mbcset)->nequiv_classes)->alloc + iVar55);\n                    *puVar32 = 0;\n                    puVar32[1] = 0;\n                    puVar32[2] = 0;\n                    puVar32[3] = 0;\n                    puVar32[4] = 0;\n                    puVar32[5] = 0;\n                    puVar32[6] = 0;\n                    puVar32[7] = 0;\n                    puVar32[8] = 0;\n                    puVar32[9] = 0;\n                    puVar32[10] = 0;\n                    puVar32[0xb] = 0;\n                    uVar26 = uVar26 + 1;\n                    iVar55 = iVar55 + 0xc;\n                  }" { (expression_statement "puVar32 = (undefined1 *)\n                              (((re_node_set *)&(aVar45.mbcset)->nequiv_classes)->alloc + iVar55);" (assignment_expression "puVar32 = (undefined1 *)\n                              (((re_node_set *)&(aVar45.mbcset)->nequiv_classes)->alloc + iVar55)" identifier = (cast_expression "(undefined1 *)\n                              (((re_node_set *)&(aVar45.mbcset)->nequiv_classes)->alloc + iVar55)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((re_node_set *)&(aVar45.mbcset)->nequiv_classes)->alloc + iVar55)" ( (binary_expression "((re_node_set *)&(aVar45.mbcset)->nequiv_classes)->alloc + iVar55" (field_expression "((re_node_set *)&(aVar45.mbcset)->nequiv_classes)->alloc" (parenthesized_expression "((re_node_set *)&(aVar45.mbcset)->nequiv_classes)" ( (cast_expression "(re_node_set *)&(aVar45.mbcset)->nequiv_classes" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(aVar45.mbcset)->nequiv_classes" & (field_expression "(aVar45.mbcset)->nequiv_classes" (parenthesized_expression "(aVar45.mbcset)" ( (field_expression "aVar45.mbcset" identifier . field_identifier) )) -> field_identifier))) )) -> field_identifier) + identifier) )))) ;) (expression_statement "*puVar32 = 0;" (assignment_expression "*puVar32 = 0" (pointer_expression "*puVar32" * identifier) = number_literal) ;) (expression_statement "puVar32[1] = 0;" (assignment_expression "puVar32[1] = 0" (subscript_expression "puVar32[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar32[2] = 0;" (assignment_expression "puVar32[2] = 0" (subscript_expression "puVar32[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar32[3] = 0;" (assignment_expression "puVar32[3] = 0" (subscript_expression "puVar32[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar32[4] = 0;" (assignment_expression "puVar32[4] = 0" (subscript_expression "puVar32[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar32[5] = 0;" (assignment_expression "puVar32[5] = 0" (subscript_expression "puVar32[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar32[6] = 0;" (assignment_expression "puVar32[6] = 0" (subscript_expression "puVar32[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar32[7] = 0;" (assignment_expression "puVar32[7] = 0" (subscript_expression "puVar32[7]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar32[8] = 0;" (assignment_expression "puVar32[8] = 0" (subscript_expression "puVar32[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar32[9] = 0;" (assignment_expression "puVar32[9] = 0" (subscript_expression "puVar32[9]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar32[10] = 0;" (assignment_expression "puVar32[10] = 0" (subscript_expression "puVar32[10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar32[0xb] = 0;" (assignment_expression "puVar32[0xb] = 0" (subscript_expression "puVar32[0xb]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar26 = uVar26 + 1;" (assignment_expression "uVar26 = uVar26 + 1" identifier = (binary_expression "uVar26 + 1" identifier + number_literal)) ;) (expression_statement "iVar55 = iVar55 + 0xc;" (assignment_expression "iVar55 = iVar55 + 0xc" identifier = (binary_expression "iVar55 + 0xc" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar26 < (aVar45.mbcset)->range_ends)" ( (binary_expression "uVar26 < (aVar45.mbcset)->range_ends" identifier < (field_expression "(aVar45.mbcset)->range_ends" (parenthesized_expression "(aVar45.mbcset)" ( (field_expression "aVar45.mbcset" identifier . field_identifier) )) -> field_identifier)) )) ;) (expression_statement "iVar55 = *(int *)(puVar62 + 0x23abc);" (assignment_expression "iVar55 = *(int *)(puVar62 + 0x23abc)" identifier = (pointer_expression "*(int *)(puVar62 + 0x23abc)" * (cast_expression "(int *)(puVar62 + 0x23abc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar62 + 0x23abc)" ( (binary_expression "puVar62 + 0x23abc" identifier + number_literal) ))))) ;) (if_statement "if ((wint_t *)(aVar45.mbcset)->range_ends != (wint_t *)0x0) {\n                    iVar61 = 0;\n                    aStack_218.sbcset = (re_bitset_ptr_t)0x0;\n                    do {\n                      piVar38 = *(int **)((int)&((re_node_set *)(aVar45.mbcset)->ncoll_syms)->elems\n                                         + iVar61);\n                      if (0 < *(int *)((int)&((re_node_set *)(aVar45.mbcset)->ncoll_syms)->nelem +\n                                      iVar61)) {\n                        iVar58 = 0;\n                        do {\n                          aVar46 = aStack_218;\n                          iVar33 = (*(code *)(iVar55 + 0x6e30))\n                                             (((re_node_set *)&(aVar45.mbcset)->nequiv_classes)->\n                                              alloc + *piVar38 * 0xc);\n                          rVar21 = _REG_ESPACE;\n                          if (iVar33 == 0) goto LAB_00056168;\n                          iVar58 = iVar58 + 1;\n                          piVar38 = piVar38 + 1;\n                        } while (iVar58 < *(int *)((int)&((re_node_set *)(aVar45.mbcset)->ncoll_syms\n                                                         )->nelem + iVar61));\n                      }\n                      aStack_218.sbcset =\n                           (re_bitset_ptr_t)\n                           ((int)&((re_string_t *)&(aStack_218.mbcset)->mbchars)->raw_mbs + 1);\n                      iVar61 = iVar61 + 0xc;\n                    } while (aStack_218.sbcset < (re_dfa_t *)(aVar45.mbcset)->range_ends);\n                  }" if (parenthesized_expression "((wint_t *)(aVar45.mbcset)->range_ends != (wint_t *)0x0)" ( (binary_expression "(wint_t *)(aVar45.mbcset)->range_ends != (wint_t *)0x0" (cast_expression "(wint_t *)(aVar45.mbcset)->range_ends" ( (type_descriptor "wint_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(aVar45.mbcset)->range_ends" (parenthesized_expression "(aVar45.mbcset)" ( (field_expression "aVar45.mbcset" identifier . field_identifier) )) -> field_identifier)) != (cast_expression "(wint_t *)0x0" ( (type_descriptor "wint_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    iVar61 = 0;\n                    aStack_218.sbcset = (re_bitset_ptr_t)0x0;\n                    do {\n                      piVar38 = *(int **)((int)&((re_node_set *)(aVar45.mbcset)->ncoll_syms)->elems\n                                         + iVar61);\n                      if (0 < *(int *)((int)&((re_node_set *)(aVar45.mbcset)->ncoll_syms)->nelem +\n                                      iVar61)) {\n                        iVar58 = 0;\n                        do {\n                          aVar46 = aStack_218;\n                          iVar33 = (*(code *)(iVar55 + 0x6e30))\n                                             (((re_node_set *)&(aVar45.mbcset)->nequiv_classes)->\n                                              alloc + *piVar38 * 0xc);\n                          rVar21 = _REG_ESPACE;\n                          if (iVar33 == 0) goto LAB_00056168;\n                          iVar58 = iVar58 + 1;\n                          piVar38 = piVar38 + 1;\n                        } while (iVar58 < *(int *)((int)&((re_node_set *)(aVar45.mbcset)->ncoll_syms\n                                                         )->nelem + iVar61));\n                      }\n                      aStack_218.sbcset =\n                           (re_bitset_ptr_t)\n                           ((int)&((re_string_t *)&(aStack_218.mbcset)->mbchars)->raw_mbs + 1);\n                      iVar61 = iVar61 + 0xc;\n                    } while (aStack_218.sbcset < (re_dfa_t *)(aVar45.mbcset)->range_ends);\n                  }" { (expression_statement "iVar61 = 0;" (assignment_expression "iVar61 = 0" identifier = number_literal) ;) (expression_statement "aStack_218.sbcset = (re_bitset_ptr_t)0x0;" (assignment_expression "aStack_218.sbcset = (re_bitset_ptr_t)0x0" (field_expression "aStack_218.sbcset" identifier . field_identifier) = (cast_expression "(re_bitset_ptr_t)0x0" ( (type_descriptor "re_bitset_ptr_t" type_identifier) ) number_literal)) ;) (do_statement "do {\n                      piVar38 = *(int **)((int)&((re_node_set *)(aVar45.mbcset)->ncoll_syms)->elems\n                                         + iVar61);\n                      if (0 < *(int *)((int)&((re_node_set *)(aVar45.mbcset)->ncoll_syms)->nelem +\n                                      iVar61)) {\n                        iVar58 = 0;\n                        do {\n                          aVar46 = aStack_218;\n                          iVar33 = (*(code *)(iVar55 + 0x6e30))\n                                             (((re_node_set *)&(aVar45.mbcset)->nequiv_classes)->\n                                              alloc + *piVar38 * 0xc);\n                          rVar21 = _REG_ESPACE;\n                          if (iVar33 == 0) goto LAB_00056168;\n                          iVar58 = iVar58 + 1;\n                          piVar38 = piVar38 + 1;\n                        } while (iVar58 < *(int *)((int)&((re_node_set *)(aVar45.mbcset)->ncoll_syms\n                                                         )->nelem + iVar61));\n                      }\n                      aStack_218.sbcset =\n                           (re_bitset_ptr_t)\n                           ((int)&((re_string_t *)&(aStack_218.mbcset)->mbchars)->raw_mbs + 1);\n                      iVar61 = iVar61 + 0xc;\n                    } while (aStack_218.sbcset < (re_dfa_t *)(aVar45.mbcset)->range_ends);" do (compound_statement "{\n                      piVar38 = *(int **)((int)&((re_node_set *)(aVar45.mbcset)->ncoll_syms)->elems\n                                         + iVar61);\n                      if (0 < *(int *)((int)&((re_node_set *)(aVar45.mbcset)->ncoll_syms)->nelem +\n                                      iVar61)) {\n                        iVar58 = 0;\n                        do {\n                          aVar46 = aStack_218;\n                          iVar33 = (*(code *)(iVar55 + 0x6e30))\n                                             (((re_node_set *)&(aVar45.mbcset)->nequiv_classes)->\n                                              alloc + *piVar38 * 0xc);\n                          rVar21 = _REG_ESPACE;\n                          if (iVar33 == 0) goto LAB_00056168;\n                          iVar58 = iVar58 + 1;\n                          piVar38 = piVar38 + 1;\n                        } while (iVar58 < *(int *)((int)&((re_node_set *)(aVar45.mbcset)->ncoll_syms\n                                                         )->nelem + iVar61));\n                      }\n                      aStack_218.sbcset =\n                           (re_bitset_ptr_t)\n                           ((int)&((re_string_t *)&(aStack_218.mbcset)->mbchars)->raw_mbs + 1);\n                      iVar61 = iVar61 + 0xc;\n                    }" { (expression_statement "piVar38 = *(int **)((int)&((re_node_set *)(aVar45.mbcset)->ncoll_syms)->elems\n                                         + iVar61);" (assignment_expression "piVar38 = *(int **)((int)&((re_node_set *)(aVar45.mbcset)->ncoll_syms)->elems\n                                         + iVar61)" identifier = (pointer_expression "*(int **)((int)&((re_node_set *)(aVar45.mbcset)->ncoll_syms)->elems\n                                         + iVar61)" * (cast_expression "(int **)((int)&((re_node_set *)(aVar45.mbcset)->ncoll_syms)->elems\n                                         + iVar61)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)&((re_node_set *)(aVar45.mbcset)->ncoll_syms)->elems\n                                         + iVar61)" ( (binary_expression "(int)&((re_node_set *)(aVar45.mbcset)->ncoll_syms)->elems\n                                         + iVar61" (cast_expression "(int)&((re_node_set *)(aVar45.mbcset)->ncoll_syms)->elems" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&((re_node_set *)(aVar45.mbcset)->ncoll_syms)->elems" & (field_expression "((re_node_set *)(aVar45.mbcset)->ncoll_syms)->elems" (parenthesized_expression "((re_node_set *)(aVar45.mbcset)->ncoll_syms)" ( (cast_expression "(re_node_set *)(aVar45.mbcset)->ncoll_syms" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(aVar45.mbcset)->ncoll_syms" (parenthesized_expression "(aVar45.mbcset)" ( (field_expression "aVar45.mbcset" identifier . field_identifier) )) -> field_identifier)) )) -> field_identifier))) + identifier) ))))) ;) (if_statement "if (0 < *(int *)((int)&((re_node_set *)(aVar45.mbcset)->ncoll_syms)->nelem +\n                                      iVar61)) {\n                        iVar58 = 0;\n                        do {\n                          aVar46 = aStack_218;\n                          iVar33 = (*(code *)(iVar55 + 0x6e30))\n                                             (((re_node_set *)&(aVar45.mbcset)->nequiv_classes)->\n                                              alloc + *piVar38 * 0xc);\n                          rVar21 = _REG_ESPACE;\n                          if (iVar33 == 0) goto LAB_00056168;\n                          iVar58 = iVar58 + 1;\n                          piVar38 = piVar38 + 1;\n                        } while (iVar58 < *(int *)((int)&((re_node_set *)(aVar45.mbcset)->ncoll_syms\n                                                         )->nelem + iVar61));\n                      }" if (parenthesized_expression "(0 < *(int *)((int)&((re_node_set *)(aVar45.mbcset)->ncoll_syms)->nelem +\n                                      iVar61))" ( (binary_expression "0 < *(int *)((int)&((re_node_set *)(aVar45.mbcset)->ncoll_syms)->nelem +\n                                      iVar61)" number_literal < (pointer_expression "*(int *)((int)&((re_node_set *)(aVar45.mbcset)->ncoll_syms)->nelem +\n                                      iVar61)" * (cast_expression "(int *)((int)&((re_node_set *)(aVar45.mbcset)->ncoll_syms)->nelem +\n                                      iVar61)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&((re_node_set *)(aVar45.mbcset)->ncoll_syms)->nelem +\n                                      iVar61)" ( (binary_expression "(int)&((re_node_set *)(aVar45.mbcset)->ncoll_syms)->nelem +\n                                      iVar61" (cast_expression "(int)&((re_node_set *)(aVar45.mbcset)->ncoll_syms)->nelem" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&((re_node_set *)(aVar45.mbcset)->ncoll_syms)->nelem" & (field_expression "((re_node_set *)(aVar45.mbcset)->ncoll_syms)->nelem" (parenthesized_expression "((re_node_set *)(aVar45.mbcset)->ncoll_syms)" ( (cast_expression "(re_node_set *)(aVar45.mbcset)->ncoll_syms" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(aVar45.mbcset)->ncoll_syms" (parenthesized_expression "(aVar45.mbcset)" ( (field_expression "aVar45.mbcset" identifier . field_identifier) )) -> field_identifier)) )) -> field_identifier))) + identifier) ))))) )) (compound_statement "{\n                        iVar58 = 0;\n                        do {\n                          aVar46 = aStack_218;\n                          iVar33 = (*(code *)(iVar55 + 0x6e30))\n                                             (((re_node_set *)&(aVar45.mbcset)->nequiv_classes)->\n                                              alloc + *piVar38 * 0xc);\n                          rVar21 = _REG_ESPACE;\n                          if (iVar33 == 0) goto LAB_00056168;\n                          iVar58 = iVar58 + 1;\n                          piVar38 = piVar38 + 1;\n                        } while (iVar58 < *(int *)((int)&((re_node_set *)(aVar45.mbcset)->ncoll_syms\n                                                         )->nelem + iVar61));\n                      }" { (expression_statement "iVar58 = 0;" (assignment_expression "iVar58 = 0" identifier = number_literal) ;) (do_statement "do {\n                          aVar46 = aStack_218;\n                          iVar33 = (*(code *)(iVar55 + 0x6e30))\n                                             (((re_node_set *)&(aVar45.mbcset)->nequiv_classes)->\n                                              alloc + *piVar38 * 0xc);\n                          rVar21 = _REG_ESPACE;\n                          if (iVar33 == 0) goto LAB_00056168;\n                          iVar58 = iVar58 + 1;\n                          piVar38 = piVar38 + 1;\n                        } while (iVar58 < *(int *)((int)&((re_node_set *)(aVar45.mbcset)->ncoll_syms\n                                                         )->nelem + iVar61));" do (compound_statement "{\n                          aVar46 = aStack_218;\n                          iVar33 = (*(code *)(iVar55 + 0x6e30))\n                                             (((re_node_set *)&(aVar45.mbcset)->nequiv_classes)->\n                                              alloc + *piVar38 * 0xc);\n                          rVar21 = _REG_ESPACE;\n                          if (iVar33 == 0) goto LAB_00056168;\n                          iVar58 = iVar58 + 1;\n                          piVar38 = piVar38 + 1;\n                        }" { (expression_statement "aVar46 = aStack_218;" (assignment_expression "aVar46 = aStack_218" identifier = identifier) ;) (expression_statement "iVar33 = (*(code *)(iVar55 + 0x6e30))\n                                             (((re_node_set *)&(aVar45.mbcset)->nequiv_classes)->\n                                              alloc + *piVar38 * 0xc);" (assignment_expression "iVar33 = (*(code *)(iVar55 + 0x6e30))\n                                             (((re_node_set *)&(aVar45.mbcset)->nequiv_classes)->\n                                              alloc + *piVar38 * 0xc)" identifier = (call_expression "(*(code *)(iVar55 + 0x6e30))\n                                             (((re_node_set *)&(aVar45.mbcset)->nequiv_classes)->\n                                              alloc + *piVar38 * 0xc)" (parenthesized_expression "(*(code *)(iVar55 + 0x6e30))" ( (pointer_expression "*(code *)(iVar55 + 0x6e30)" * (cast_expression "(code *)(iVar55 + 0x6e30)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar55 + 0x6e30)" ( (binary_expression "iVar55 + 0x6e30" identifier + number_literal) )))) )) (argument_list "(((re_node_set *)&(aVar45.mbcset)->nequiv_classes)->\n                                              alloc + *piVar38 * 0xc)" ( (binary_expression "((re_node_set *)&(aVar45.mbcset)->nequiv_classes)->\n                                              alloc + *piVar38 * 0xc" (field_expression "((re_node_set *)&(aVar45.mbcset)->nequiv_classes)->\n                                              alloc" (parenthesized_expression "((re_node_set *)&(aVar45.mbcset)->nequiv_classes)" ( (cast_expression "(re_node_set *)&(aVar45.mbcset)->nequiv_classes" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(aVar45.mbcset)->nequiv_classes" & (field_expression "(aVar45.mbcset)->nequiv_classes" (parenthesized_expression "(aVar45.mbcset)" ( (field_expression "aVar45.mbcset" identifier . field_identifier) )) -> field_identifier))) )) -> field_identifier) + (binary_expression "*piVar38 * 0xc" (pointer_expression "*piVar38" * identifier) * number_literal)) )))) ;) (expression_statement "rVar21 = _REG_ESPACE;" (assignment_expression "rVar21 = _REG_ESPACE" identifier = identifier) ;) (if_statement "if (iVar33 == 0) goto LAB_00056168;" if (parenthesized_expression "(iVar33 == 0)" ( (binary_expression "iVar33 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00056168;" goto statement_identifier ;)) (expression_statement "iVar58 = iVar58 + 1;" (assignment_expression "iVar58 = iVar58 + 1" identifier = (binary_expression "iVar58 + 1" identifier + number_literal)) ;) (expression_statement "piVar38 = piVar38 + 1;" (assignment_expression "piVar38 = piVar38 + 1" identifier = (binary_expression "piVar38 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar58 < *(int *)((int)&((re_node_set *)(aVar45.mbcset)->ncoll_syms\n                                                         )->nelem + iVar61))" ( (binary_expression "iVar58 < *(int *)((int)&((re_node_set *)(aVar45.mbcset)->ncoll_syms\n                                                         )->nelem + iVar61)" identifier < (pointer_expression "*(int *)((int)&((re_node_set *)(aVar45.mbcset)->ncoll_syms\n                                                         )->nelem + iVar61)" * (cast_expression "(int *)((int)&((re_node_set *)(aVar45.mbcset)->ncoll_syms\n                                                         )->nelem + iVar61)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&((re_node_set *)(aVar45.mbcset)->ncoll_syms\n                                                         )->nelem + iVar61)" ( (binary_expression "(int)&((re_node_set *)(aVar45.mbcset)->ncoll_syms\n                                                         )->nelem + iVar61" (cast_expression "(int)&((re_node_set *)(aVar45.mbcset)->ncoll_syms\n                                                         )->nelem" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&((re_node_set *)(aVar45.mbcset)->ncoll_syms\n                                                         )->nelem" & (field_expression "((re_node_set *)(aVar45.mbcset)->ncoll_syms\n                                                         )->nelem" (parenthesized_expression "((re_node_set *)(aVar45.mbcset)->ncoll_syms\n                                                         )" ( (cast_expression "(re_node_set *)(aVar45.mbcset)->ncoll_syms" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(aVar45.mbcset)->ncoll_syms" (parenthesized_expression "(aVar45.mbcset)" ( (field_expression "aVar45.mbcset" identifier . field_identifier) )) -> field_identifier)) )) -> field_identifier))) + identifier) ))))) )) ;) })) (expression_statement "aStack_218.sbcset =\n                           (re_bitset_ptr_t)\n                           ((int)&((re_string_t *)&(aStack_218.mbcset)->mbchars)->raw_mbs + 1);" (assignment_expression "aStack_218.sbcset =\n                           (re_bitset_ptr_t)\n                           ((int)&((re_string_t *)&(aStack_218.mbcset)->mbchars)->raw_mbs + 1)" (field_expression "aStack_218.sbcset" identifier . field_identifier) = (call_expression "(re_bitset_ptr_t)\n                           ((int)&((re_string_t *)&(aStack_218.mbcset)->mbchars)->raw_mbs + 1)" (parenthesized_expression "(re_bitset_ptr_t)" ( identifier )) (argument_list "((int)&((re_string_t *)&(aStack_218.mbcset)->mbchars)->raw_mbs + 1)" ( (binary_expression "(int)&((re_string_t *)&(aStack_218.mbcset)->mbchars)->raw_mbs + 1" (cast_expression "(int)&((re_string_t *)&(aStack_218.mbcset)->mbchars)->raw_mbs" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&((re_string_t *)&(aStack_218.mbcset)->mbchars)->raw_mbs" & (field_expression "((re_string_t *)&(aStack_218.mbcset)->mbchars)->raw_mbs" (parenthesized_expression "((re_string_t *)&(aStack_218.mbcset)->mbchars)" ( (cast_expression "(re_string_t *)&(aStack_218.mbcset)->mbchars" ( (type_descriptor "re_string_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(aStack_218.mbcset)->mbchars" & (field_expression "(aStack_218.mbcset)->mbchars" (parenthesized_expression "(aStack_218.mbcset)" ( (field_expression "aStack_218.mbcset" identifier . field_identifier) )) -> field_identifier))) )) -> field_identifier))) + number_literal) )))) ;) (expression_statement "iVar61 = iVar61 + 0xc;" (assignment_expression "iVar61 = iVar61 + 0xc" identifier = (binary_expression "iVar61 + 0xc" identifier + number_literal)) ;) }) while (parenthesized_expression "(aStack_218.sbcset < (re_dfa_t *)(aVar45.mbcset)->range_ends)" ( (binary_expression "aStack_218.sbcset < (re_dfa_t *)(aVar45.mbcset)->range_ends" (field_expression "aStack_218.sbcset" identifier . field_identifier) < (cast_expression "(re_dfa_t *)(aVar45.mbcset)->range_ends" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(aVar45.mbcset)->range_ends" (parenthesized_expression "(aVar45.mbcset)" ( (field_expression "aVar45.mbcset" identifier . field_identifier) )) -> field_identifier))) )) ;) })) })) (labeled_statement "LAB_000568f0:\n                rStack_20c = _REG_NOERROR;" statement_identifier : (expression_statement "rStack_20c = _REG_NOERROR;" (assignment_expression "rStack_20c = _REG_NOERROR" identifier = identifier) ;)) (if_statement "if ((((*(byte *)(aVar4.idx + 0x58) & 0x20) != 0) && (uVar8 == 0)) &&\n                   (((anon_union_4_2_91654ee9_for___value *)&(preg_00.mbcset)->nmbchars)->__wch == 0\n                   )) {\n                  if ((aVar4.mbcset)->range_ends != (wchar_t *)0x0) {\n                    aVar49.sbcset = (re_bitset_ptr_t)(*(int *)(puVar62 + 0x23754) + 0x6e4c);\n                    if (*(byte *)(*aVar4.sbcset + 4) < 0xd) {\n                    /* WARNING: Could not recover jumptable at 0x00056a60. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      rVar21 = (*(code *)(puVar62 +\n                                         aVar49.sbcset[*(byte *)(*aVar4.sbcset + 4)] + 0x2b71c))();\n                      return rVar21;\n                    }\n                    (**(code **)(puVar62 + 0x23bc4))(0);\n                    if (uVar60 != 0) {\n                      aVar49.idx = (Idx)&DAT_00000007;\n                      uVar8 = 0;\n                      do {\n                        prVar53 = (re_token_t *)(aVar4.mbcset)->mbchars + uVar8;\n                        if (prVar53->field_0x4 == '\x01') {\n                          if ((char)(prVar53->opr).c < '\0') {\n                            *(uint *)&prVar53->field_0x4 = *(uint *)&prVar53->field_0x4 & 0xfffffbff\n                            ;\n                          }\n                        }\n                        else if (prVar53->field_0x4 == '\x05') {\n                          prVar53->field_0x4 = 7;\n                        }\n                        uVar8 = uVar8 + 1;\n                      } while (uVar8 < (aVar4.mbcset)->range_ends);\n                    }\n                  }\n                  *(int *)(aVar4.idx + 0x5c) = 1;\n                  if (0 < *(Idx *)(aVar4.idx + 0x4c)) {\n                    uVar60 = 1;\n                  }\n                  *(byte *)(aVar4.idx + 0x58) =\n                       *(byte *)(aVar4.idx + 0x58) & 0x9f | (byte)((uVar60 & 1) << 6);\n                }" if (parenthesized_expression "((((*(byte *)(aVar4.idx + 0x58) & 0x20) != 0) && (uVar8 == 0)) &&\n                   (((anon_union_4_2_91654ee9_for___value *)&(preg_00.mbcset)->nmbchars)->__wch == 0\n                   ))" ( (binary_expression "(((*(byte *)(aVar4.idx + 0x58) & 0x20) != 0) && (uVar8 == 0)) &&\n                   (((anon_union_4_2_91654ee9_for___value *)&(preg_00.mbcset)->nmbchars)->__wch == 0\n                   )" (parenthesized_expression "(((*(byte *)(aVar4.idx + 0x58) & 0x20) != 0) && (uVar8 == 0))" ( (binary_expression "((*(byte *)(aVar4.idx + 0x58) & 0x20) != 0) && (uVar8 == 0)" (parenthesized_expression "((*(byte *)(aVar4.idx + 0x58) & 0x20) != 0)" ( (binary_expression "(*(byte *)(aVar4.idx + 0x58) & 0x20) != 0" (parenthesized_expression "(*(byte *)(aVar4.idx + 0x58) & 0x20)" ( (binary_expression "*(byte *)(aVar4.idx + 0x58) & 0x20" (pointer_expression "*(byte *)(aVar4.idx + 0x58)" * (cast_expression "(byte *)(aVar4.idx + 0x58)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(aVar4.idx + 0x58)" ( (binary_expression "aVar4.idx + 0x58" (field_expression "aVar4.idx" identifier . field_identifier) + number_literal) )))) & number_literal) )) != number_literal) )) && (parenthesized_expression "(uVar8 == 0)" ( (binary_expression "uVar8 == 0" identifier == number_literal) ))) )) && (parenthesized_expression "(((anon_union_4_2_91654ee9_for___value *)&(preg_00.mbcset)->nmbchars)->__wch == 0\n                   )" ( (binary_expression "((anon_union_4_2_91654ee9_for___value *)&(preg_00.mbcset)->nmbchars)->__wch == 0" (field_expression "((anon_union_4_2_91654ee9_for___value *)&(preg_00.mbcset)->nmbchars)->__wch" (parenthesized_expression "((anon_union_4_2_91654ee9_for___value *)&(preg_00.mbcset)->nmbchars)" ( (cast_expression "(anon_union_4_2_91654ee9_for___value *)&(preg_00.mbcset)->nmbchars" ( (type_descriptor "anon_union_4_2_91654ee9_for___value *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(preg_00.mbcset)->nmbchars" & (field_expression "(preg_00.mbcset)->nmbchars" (parenthesized_expression "(preg_00.mbcset)" ( (field_expression "preg_00.mbcset" identifier . field_identifier) )) -> field_identifier))) )) -> field_identifier) == number_literal) ))) )) (compound_statement "{\n                  if ((aVar4.mbcset)->range_ends != (wchar_t *)0x0) {\n                    aVar49.sbcset = (re_bitset_ptr_t)(*(int *)(puVar62 + 0x23754) + 0x6e4c);\n                    if (*(byte *)(*aVar4.sbcset + 4) < 0xd) {\n                    /* WARNING: Could not recover jumptable at 0x00056a60. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      rVar21 = (*(code *)(puVar62 +\n                                         aVar49.sbcset[*(byte *)(*aVar4.sbcset + 4)] + 0x2b71c))();\n                      return rVar21;\n                    }\n                    (**(code **)(puVar62 + 0x23bc4))(0);\n                    if (uVar60 != 0) {\n                      aVar49.idx = (Idx)&DAT_00000007;\n                      uVar8 = 0;\n                      do {\n                        prVar53 = (re_token_t *)(aVar4.mbcset)->mbchars + uVar8;\n                        if (prVar53->field_0x4 == '\x01') {\n                          if ((char)(prVar53->opr).c < '\0') {\n                            *(uint *)&prVar53->field_0x4 = *(uint *)&prVar53->field_0x4 & 0xfffffbff\n                            ;\n                          }\n                        }\n                        else if (prVar53->field_0x4 == '\x05') {\n                          prVar53->field_0x4 = 7;\n                        }\n                        uVar8 = uVar8 + 1;\n                      } while (uVar8 < (aVar4.mbcset)->range_ends);\n                    }\n                  }\n                  *(int *)(aVar4.idx + 0x5c) = 1;\n                  if (0 < *(Idx *)(aVar4.idx + 0x4c)) {\n                    uVar60 = 1;\n                  }\n                  *(byte *)(aVar4.idx + 0x58) =\n                       *(byte *)(aVar4.idx + 0x58) & 0x9f | (byte)((uVar60 & 1) << 6);\n                }" { (if_statement "if ((aVar4.mbcset)->range_ends != (wchar_t *)0x0) {\n                    aVar49.sbcset = (re_bitset_ptr_t)(*(int *)(puVar62 + 0x23754) + 0x6e4c);\n                    if (*(byte *)(*aVar4.sbcset + 4) < 0xd) {\n                    /* WARNING: Could not recover jumptable at 0x00056a60. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      rVar21 = (*(code *)(puVar62 +\n                                         aVar49.sbcset[*(byte *)(*aVar4.sbcset + 4)] + 0x2b71c))();\n                      return rVar21;\n                    }\n                    (**(code **)(puVar62 + 0x23bc4))(0);\n                    if (uVar60 != 0) {\n                      aVar49.idx = (Idx)&DAT_00000007;\n                      uVar8 = 0;\n                      do {\n                        prVar53 = (re_token_t *)(aVar4.mbcset)->mbchars + uVar8;\n                        if (prVar53->field_0x4 == '\x01') {\n                          if ((char)(prVar53->opr).c < '\0') {\n                            *(uint *)&prVar53->field_0x4 = *(uint *)&prVar53->field_0x4 & 0xfffffbff\n                            ;\n                          }\n                        }\n                        else if (prVar53->field_0x4 == '\x05') {\n                          prVar53->field_0x4 = 7;\n                        }\n                        uVar8 = uVar8 + 1;\n                      } while (uVar8 < (aVar4.mbcset)->range_ends);\n                    }\n                  }" if (parenthesized_expression "((aVar4.mbcset)->range_ends != (wchar_t *)0x0)" ( (binary_expression "(aVar4.mbcset)->range_ends != (wchar_t *)0x0" (field_expression "(aVar4.mbcset)->range_ends" (parenthesized_expression "(aVar4.mbcset)" ( (field_expression "aVar4.mbcset" identifier . field_identifier) )) -> field_identifier) != (cast_expression "(wchar_t *)0x0" ( (type_descriptor "wchar_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    aVar49.sbcset = (re_bitset_ptr_t)(*(int *)(puVar62 + 0x23754) + 0x6e4c);\n                    if (*(byte *)(*aVar4.sbcset + 4) < 0xd) {\n                    /* WARNING: Could not recover jumptable at 0x00056a60. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      rVar21 = (*(code *)(puVar62 +\n                                         aVar49.sbcset[*(byte *)(*aVar4.sbcset + 4)] + 0x2b71c))();\n                      return rVar21;\n                    }\n                    (**(code **)(puVar62 + 0x23bc4))(0);\n                    if (uVar60 != 0) {\n                      aVar49.idx = (Idx)&DAT_00000007;\n                      uVar8 = 0;\n                      do {\n                        prVar53 = (re_token_t *)(aVar4.mbcset)->mbchars + uVar8;\n                        if (prVar53->field_0x4 == '\x01') {\n                          if ((char)(prVar53->opr).c < '\0') {\n                            *(uint *)&prVar53->field_0x4 = *(uint *)&prVar53->field_0x4 & 0xfffffbff\n                            ;\n                          }\n                        }\n                        else if (prVar53->field_0x4 == '\x05') {\n                          prVar53->field_0x4 = 7;\n                        }\n                        uVar8 = uVar8 + 1;\n                      } while (uVar8 < (aVar4.mbcset)->range_ends);\n                    }\n                  }" { (expression_statement "aVar49.sbcset = (re_bitset_ptr_t)(*(int *)(puVar62 + 0x23754) + 0x6e4c);" (assignment_expression "aVar49.sbcset = (re_bitset_ptr_t)(*(int *)(puVar62 + 0x23754) + 0x6e4c)" (field_expression "aVar49.sbcset" identifier . field_identifier) = (call_expression "(re_bitset_ptr_t)(*(int *)(puVar62 + 0x23754) + 0x6e4c)" (parenthesized_expression "(re_bitset_ptr_t)" ( identifier )) (argument_list "(*(int *)(puVar62 + 0x23754) + 0x6e4c)" ( (binary_expression "*(int *)(puVar62 + 0x23754) + 0x6e4c" (pointer_expression "*(int *)(puVar62 + 0x23754)" * (cast_expression "(int *)(puVar62 + 0x23754)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar62 + 0x23754)" ( (binary_expression "puVar62 + 0x23754" identifier + number_literal) )))) + number_literal) )))) ;) (if_statement "if (*(byte *)(*aVar4.sbcset + 4) < 0xd) {\n                    /* WARNING: Could not recover jumptable at 0x00056a60. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      rVar21 = (*(code *)(puVar62 +\n                                         aVar49.sbcset[*(byte *)(*aVar4.sbcset + 4)] + 0x2b71c))();\n                      return rVar21;\n                    }" if (parenthesized_expression "(*(byte *)(*aVar4.sbcset + 4) < 0xd)" ( (binary_expression "*(byte *)(*aVar4.sbcset + 4) < 0xd" (pointer_expression "*(byte *)(*aVar4.sbcset + 4)" * (cast_expression "(byte *)(*aVar4.sbcset + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*aVar4.sbcset + 4)" ( (binary_expression "*aVar4.sbcset + 4" (pointer_expression "*aVar4.sbcset" * (field_expression "aVar4.sbcset" identifier . field_identifier)) + number_literal) )))) < number_literal) )) (compound_statement "{\n                    /* WARNING: Could not recover jumptable at 0x00056a60. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      rVar21 = (*(code *)(puVar62 +\n                                         aVar49.sbcset[*(byte *)(*aVar4.sbcset + 4)] + 0x2b71c))();\n                      return rVar21;\n                    }" { comment comment (expression_statement "rVar21 = (*(code *)(puVar62 +\n                                         aVar49.sbcset[*(byte *)(*aVar4.sbcset + 4)] + 0x2b71c))();" (assignment_expression "rVar21 = (*(code *)(puVar62 +\n                                         aVar49.sbcset[*(byte *)(*aVar4.sbcset + 4)] + 0x2b71c))()" identifier = (call_expression "(*(code *)(puVar62 +\n                                         aVar49.sbcset[*(byte *)(*aVar4.sbcset + 4)] + 0x2b71c))()" (parenthesized_expression "(*(code *)(puVar62 +\n                                         aVar49.sbcset[*(byte *)(*aVar4.sbcset + 4)] + 0x2b71c))" ( (pointer_expression "*(code *)(puVar62 +\n                                         aVar49.sbcset[*(byte *)(*aVar4.sbcset + 4)] + 0x2b71c)" * (cast_expression "(code *)(puVar62 +\n                                         aVar49.sbcset[*(byte *)(*aVar4.sbcset + 4)] + 0x2b71c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar62 +\n                                         aVar49.sbcset[*(byte *)(*aVar4.sbcset + 4)] + 0x2b71c)" ( (binary_expression "puVar62 +\n                                         aVar49.sbcset[*(byte *)(*aVar4.sbcset + 4)] + 0x2b71c" (binary_expression "puVar62 +\n                                         aVar49.sbcset[*(byte *)(*aVar4.sbcset + 4)]" identifier + (subscript_expression "aVar49.sbcset[*(byte *)(*aVar4.sbcset + 4)]" (field_expression "aVar49.sbcset" identifier . field_identifier) [ (pointer_expression "*(byte *)(*aVar4.sbcset + 4)" * (cast_expression "(byte *)(*aVar4.sbcset + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*aVar4.sbcset + 4)" ( (binary_expression "*aVar4.sbcset + 4" (pointer_expression "*aVar4.sbcset" * (field_expression "aVar4.sbcset" identifier . field_identifier)) + number_literal) )))) ])) + number_literal) )))) )) (argument_list "()" ( )))) ;) (return_statement "return rVar21;" return identifier ;) })) (expression_statement "(**(code **)(puVar62 + 0x23bc4))(0);" (call_expression "(**(code **)(puVar62 + 0x23bc4))(0)" (parenthesized_expression "(**(code **)(puVar62 + 0x23bc4))" ( (pointer_expression "**(code **)(puVar62 + 0x23bc4)" * (pointer_expression "*(code **)(puVar62 + 0x23bc4)" * (cast_expression "(code **)(puVar62 + 0x23bc4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar62 + 0x23bc4)" ( (binary_expression "puVar62 + 0x23bc4" identifier + number_literal) ))))) )) (argument_list "(0)" ( number_literal ))) ;) (if_statement "if (uVar60 != 0) {\n                      aVar49.idx = (Idx)&DAT_00000007;\n                      uVar8 = 0;\n                      do {\n                        prVar53 = (re_token_t *)(aVar4.mbcset)->mbchars + uVar8;\n                        if (prVar53->field_0x4 == '\x01') {\n                          if ((char)(prVar53->opr).c < '\0') {\n                            *(uint *)&prVar53->field_0x4 = *(uint *)&prVar53->field_0x4 & 0xfffffbff\n                            ;\n                          }\n                        }\n                        else if (prVar53->field_0x4 == '\x05') {\n                          prVar53->field_0x4 = 7;\n                        }\n                        uVar8 = uVar8 + 1;\n                      } while (uVar8 < (aVar4.mbcset)->range_ends);\n                    }" if (parenthesized_expression "(uVar60 != 0)" ( (binary_expression "uVar60 != 0" identifier != number_literal) )) (compound_statement "{\n                      aVar49.idx = (Idx)&DAT_00000007;\n                      uVar8 = 0;\n                      do {\n                        prVar53 = (re_token_t *)(aVar4.mbcset)->mbchars + uVar8;\n                        if (prVar53->field_0x4 == '\x01') {\n                          if ((char)(prVar53->opr).c < '\0') {\n                            *(uint *)&prVar53->field_0x4 = *(uint *)&prVar53->field_0x4 & 0xfffffbff\n                            ;\n                          }\n                        }\n                        else if (prVar53->field_0x4 == '\x05') {\n                          prVar53->field_0x4 = 7;\n                        }\n                        uVar8 = uVar8 + 1;\n                      } while (uVar8 < (aVar4.mbcset)->range_ends);\n                    }" { (expression_statement "aVar49.idx = (Idx)&DAT_00000007;" (assignment_expression "aVar49.idx = (Idx)&DAT_00000007" (field_expression "aVar49.idx" identifier . field_identifier) = (binary_expression "(Idx)&DAT_00000007" (parenthesized_expression "(Idx)" ( identifier )) & identifier)) ;) (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) (do_statement "do {\n                        prVar53 = (re_token_t *)(aVar4.mbcset)->mbchars + uVar8;\n                        if (prVar53->field_0x4 == '\x01') {\n                          if ((char)(prVar53->opr).c < '\0') {\n                            *(uint *)&prVar53->field_0x4 = *(uint *)&prVar53->field_0x4 & 0xfffffbff\n                            ;\n                          }\n                        }\n                        else if (prVar53->field_0x4 == '\x05') {\n                          prVar53->field_0x4 = 7;\n                        }\n                        uVar8 = uVar8 + 1;\n                      } while (uVar8 < (aVar4.mbcset)->range_ends);" do (compound_statement "{\n                        prVar53 = (re_token_t *)(aVar4.mbcset)->mbchars + uVar8;\n                        if (prVar53->field_0x4 == '\x01') {\n                          if ((char)(prVar53->opr).c < '\0') {\n                            *(uint *)&prVar53->field_0x4 = *(uint *)&prVar53->field_0x4 & 0xfffffbff\n                            ;\n                          }\n                        }\n                        else if (prVar53->field_0x4 == '\x05') {\n                          prVar53->field_0x4 = 7;\n                        }\n                        uVar8 = uVar8 + 1;\n                      }" { (expression_statement "prVar53 = (re_token_t *)(aVar4.mbcset)->mbchars + uVar8;" (assignment_expression "prVar53 = (re_token_t *)(aVar4.mbcset)->mbchars + uVar8" identifier = (binary_expression "(re_token_t *)(aVar4.mbcset)->mbchars + uVar8" (cast_expression "(re_token_t *)(aVar4.mbcset)->mbchars" ( (type_descriptor "re_token_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(aVar4.mbcset)->mbchars" (parenthesized_expression "(aVar4.mbcset)" ( (field_expression "aVar4.mbcset" identifier . field_identifier) )) -> field_identifier)) + identifier)) ;) (if_statement "if (prVar53->field_0x4 == '\x01') {\n                          if ((char)(prVar53->opr).c < '\0') {\n                            *(uint *)&prVar53->field_0x4 = *(uint *)&prVar53->field_0x4 & 0xfffffbff\n                            ;\n                          }\n                        }\n                        else if (prVar53->field_0x4 == '\x05') {\n                          prVar53->field_0x4 = 7;\n                        }" if (parenthesized_expression "(prVar53->field_0x4 == '\x01')" ( (binary_expression "prVar53->field_0x4 == '\x01'" (field_expression "prVar53->field_0x4" identifier -> field_identifier) == (char_literal "'\x01'" ' escape_sequence ')) )) (compound_statement "{\n                          if ((char)(prVar53->opr).c < '\0') {\n                            *(uint *)&prVar53->field_0x4 = *(uint *)&prVar53->field_0x4 & 0xfffffbff\n                            ;\n                          }\n                        }" { (if_statement "if ((char)(prVar53->opr).c < '\0') {\n                            *(uint *)&prVar53->field_0x4 = *(uint *)&prVar53->field_0x4 & 0xfffffbff\n                            ;\n                          }" if (parenthesized_expression "((char)(prVar53->opr).c < '\0')" ( (binary_expression "(char)(prVar53->opr).c < '\0'" (cast_expression "(char)(prVar53->opr).c" ( (type_descriptor "char" primitive_type) ) (field_expression "(prVar53->opr).c" (parenthesized_expression "(prVar53->opr)" ( (field_expression "prVar53->opr" identifier -> field_identifier) )) . field_identifier)) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                            *(uint *)&prVar53->field_0x4 = *(uint *)&prVar53->field_0x4 & 0xfffffbff\n                            ;\n                          }" { (expression_statement "*(uint *)&prVar53->field_0x4 = *(uint *)&prVar53->field_0x4 & 0xfffffbff\n                            ;" (assignment_expression "*(uint *)&prVar53->field_0x4 = *(uint *)&prVar53->field_0x4 & 0xfffffbff" (pointer_expression "*(uint *)&prVar53->field_0x4" * (cast_expression "(uint *)&prVar53->field_0x4" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&prVar53->field_0x4" & (field_expression "prVar53->field_0x4" identifier -> field_identifier)))) = (binary_expression "*(uint *)&prVar53->field_0x4 & 0xfffffbff" (pointer_expression "*(uint *)&prVar53->field_0x4" * (cast_expression "(uint *)&prVar53->field_0x4" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&prVar53->field_0x4" & (field_expression "prVar53->field_0x4" identifier -> field_identifier)))) & number_literal)) ;) })) }) (else_clause "else if (prVar53->field_0x4 == '\x05') {\n                          prVar53->field_0x4 = 7;\n                        }" else (if_statement "if (prVar53->field_0x4 == '\x05') {\n                          prVar53->field_0x4 = 7;\n                        }" if (parenthesized_expression "(prVar53->field_0x4 == '\x05')" ( (binary_expression "prVar53->field_0x4 == '\x05'" (field_expression "prVar53->field_0x4" identifier -> field_identifier) == (char_literal "'\x05'" ' escape_sequence ')) )) (compound_statement "{\n                          prVar53->field_0x4 = 7;\n                        }" { (expression_statement "prVar53->field_0x4 = 7;" (assignment_expression "prVar53->field_0x4 = 7" (field_expression "prVar53->field_0x4" identifier -> field_identifier) = number_literal) ;) })))) (expression_statement "uVar8 = uVar8 + 1;" (assignment_expression "uVar8 = uVar8 + 1" identifier = (binary_expression "uVar8 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar8 < (aVar4.mbcset)->range_ends)" ( (binary_expression "uVar8 < (aVar4.mbcset)->range_ends" identifier < (field_expression "(aVar4.mbcset)->range_ends" (parenthesized_expression "(aVar4.mbcset)" ( (field_expression "aVar4.mbcset" identifier . field_identifier) )) -> field_identifier)) )) ;) })) })) (expression_statement "*(int *)(aVar4.idx + 0x5c) = 1;" (assignment_expression "*(int *)(aVar4.idx + 0x5c) = 1" (pointer_expression "*(int *)(aVar4.idx + 0x5c)" * (cast_expression "(int *)(aVar4.idx + 0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(aVar4.idx + 0x5c)" ( (binary_expression "aVar4.idx + 0x5c" (field_expression "aVar4.idx" identifier . field_identifier) + number_literal) )))) = number_literal) ;) (if_statement "if (0 < *(Idx *)(aVar4.idx + 0x4c)) {\n                    uVar60 = 1;\n                  }" if (parenthesized_expression "(0 < *(Idx *)(aVar4.idx + 0x4c))" ( (binary_expression "0 < *(Idx *)(aVar4.idx + 0x4c)" number_literal < (pointer_expression "*(Idx *)(aVar4.idx + 0x4c)" * (cast_expression "(Idx *)(aVar4.idx + 0x4c)" ( (type_descriptor "Idx *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(aVar4.idx + 0x4c)" ( (binary_expression "aVar4.idx + 0x4c" (field_expression "aVar4.idx" identifier . field_identifier) + number_literal) ))))) )) (compound_statement "{\n                    uVar60 = 1;\n                  }" { (expression_statement "uVar60 = 1;" (assignment_expression "uVar60 = 1" identifier = number_literal) ;) })) (expression_statement "*(byte *)(aVar4.idx + 0x58) =\n                       *(byte *)(aVar4.idx + 0x58) & 0x9f | (byte)((uVar60 & 1) << 6);" (assignment_expression "*(byte *)(aVar4.idx + 0x58) =\n                       *(byte *)(aVar4.idx + 0x58) & 0x9f | (byte)((uVar60 & 1) << 6)" (pointer_expression "*(byte *)(aVar4.idx + 0x58)" * (cast_expression "(byte *)(aVar4.idx + 0x58)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(aVar4.idx + 0x58)" ( (binary_expression "aVar4.idx + 0x58" (field_expression "aVar4.idx" identifier . field_identifier) + number_literal) )))) = (binary_expression "*(byte *)(aVar4.idx + 0x58) & 0x9f | (byte)((uVar60 & 1) << 6)" (binary_expression "*(byte *)(aVar4.idx + 0x58) & 0x9f" (pointer_expression "*(byte *)(aVar4.idx + 0x58)" * (cast_expression "(byte *)(aVar4.idx + 0x58)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(aVar4.idx + 0x58)" ( (binary_expression "aVar4.idx + 0x58" (field_expression "aVar4.idx" identifier . field_identifier) + number_literal) )))) & number_literal) | (call_expression "(byte)((uVar60 & 1) << 6)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uVar60 & 1) << 6)" ( (binary_expression "(uVar60 & 1) << 6" (parenthesized_expression "(uVar60 & 1)" ( (binary_expression "uVar60 & 1" identifier & number_literal) )) << number_literal) ))))) ;) })) (expression_statement "iVar55 = (*(bin_tree_t **)(aVar4.idx + 0x34))->first->node_idx;" (assignment_expression "iVar55 = (*(bin_tree_t **)(aVar4.idx + 0x34))->first->node_idx" identifier = (field_expression "(*(bin_tree_t **)(aVar4.idx + 0x34))->first->node_idx" (field_expression "(*(bin_tree_t **)(aVar4.idx + 0x34))->first" (parenthesized_expression "(*(bin_tree_t **)(aVar4.idx + 0x34))" ( (pointer_expression "*(bin_tree_t **)(aVar4.idx + 0x34)" * (cast_expression "(bin_tree_t **)(aVar4.idx + 0x34)" ( (type_descriptor "bin_tree_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(aVar4.idx + 0x34)" ( (binary_expression "aVar4.idx + 0x34" (field_expression "aVar4.idx" identifier . field_identifier) + number_literal) )))) )) -> field_identifier) -> field_identifier)) ;) (expression_statement "*(int *)(aVar4.idx + 0x48) = iVar55;" (assignment_expression "*(int *)(aVar4.idx + 0x48) = iVar55" (pointer_expression "*(int *)(aVar4.idx + 0x48)" * (cast_expression "(int *)(aVar4.idx + 0x48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(aVar4.idx + 0x48)" ( (binary_expression "aVar4.idx + 0x48" (field_expression "aVar4.idx" identifier . field_identifier) + number_literal) )))) = identifier) ;) (expression_statement "aVar46.sbcset =\n                     (re_bitset_ptr_t)((re_node_set *)(aVar4.mbcset)->ncoll_syms + iVar55);" (assignment_expression "aVar46.sbcset =\n                     (re_bitset_ptr_t)((re_node_set *)(aVar4.mbcset)->ncoll_syms + iVar55)" (field_expression "aVar46.sbcset" identifier . field_identifier) = (call_expression "(re_bitset_ptr_t)((re_node_set *)(aVar4.mbcset)->ncoll_syms + iVar55)" (parenthesized_expression "(re_bitset_ptr_t)" ( identifier )) (argument_list "((re_node_set *)(aVar4.mbcset)->ncoll_syms + iVar55)" ( (binary_expression "(re_node_set *)(aVar4.mbcset)->ncoll_syms + iVar55" (cast_expression "(re_node_set *)(aVar4.mbcset)->ncoll_syms" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(aVar4.mbcset)->ncoll_syms" (parenthesized_expression "(aVar4.mbcset)" ( (field_expression "aVar4.mbcset" identifier . field_identifier) )) -> field_identifier)) + identifier) )))) ;) (expression_statement "rVar34 = re_node_set_init_copy(&rStack_204,(re_node_set *)aVar46.mbcset);" (assignment_expression "rVar34 = re_node_set_init_copy(&rStack_204,(re_node_set *)aVar46.mbcset)" identifier = (call_expression "re_node_set_init_copy(&rStack_204,(re_node_set *)aVar46.mbcset)" identifier (argument_list "(&rStack_204,(re_node_set *)aVar46.mbcset)" ( (pointer_expression "&rStack_204" & identifier) , (cast_expression "(re_node_set *)aVar46.mbcset" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "aVar46.mbcset" identifier . field_identifier)) )))) ;) (expression_statement "rVar21 = rVar34;" (assignment_expression "rVar21 = rVar34" identifier = identifier) ;) (expression_statement "rStack_208 = rVar34;" (assignment_expression "rStack_208 = rVar34" identifier = identifier) ;) (if_statement "if (rVar34 == _REG_NOERROR) {\n                  if ((0 < *(Idx *)(aVar4.idx + 0x4c)) && (_REG_NOERROR < rStack_204.nelem)) {\n                    iVar55 = *(int *)(puVar62 + 0x23abc);\n                    iVar61 = *(int *)(puVar62 + 0x23abc);\n                    rVar21 = _REG_NOERROR;\n                    do {\n                      aVar49.sbcset =\n                           (re_bitset_ptr_t)\n                           ((re_token_t *)(aVar4.mbcset)->mbchars + rStack_204.elems[rVar21]);\n                      if (*(char *)&((re_node_set *)&(aVar49.mbcset)->range_starts)->alloc == '\x04'\n                         ) {\n                        rVar48 = _REG_NOERROR;\n                        piVar38 = rStack_204.elems;\n                        if (rStack_204.nelem < _REG_NOMATCH) {\nLAB_00056b8c:\n                          if (rStack_204.nelem != rVar48) {\n                            iVar33 = *((re_node_set *)(aVar4.mbcset)->nmbchars)\n                                      [rStack_204.elems[rVar21]].elems;\n                            iVar58 = (*(code *)(iVar55 + 0x5ea8))(&rStack_204,iVar33);\n                            if (iVar58 == 0) {\n                              aVar46.sbcset =\n                                   (re_bitset_ptr_t)\n                                   ((re_node_set *)(aVar4.mbcset)->ncoll_syms + iVar33);\n                              rVar21 = (*(code *)(iVar61 + 0x7f1c))(&rStack_204);\n                              if (rVar21 != _REG_NOERROR) goto LAB_00056cb8;\n                            }\n                          }\n                        }\n                        else {\n                          do {\n                            prVar53 = (re_token_t *)(aVar4.mbcset)->mbchars + *piVar38;\n                            if ((prVar53->field_0x4 == '\t') &&\n                               ((prVar53->opr).sbcset == (re_bitset_ptr_t)*aVar49.sbcset))\n                            goto LAB_00056b8c;\n                            rVar48 = rVar48 + _REG_NOMATCH;\n                            piVar38 = piVar38 + 1;\n                          } while (rStack_204.nelem != rVar48);\n                        }\n                      }\n                      rVar21 = rVar21 + _REG_NOMATCH;\n                    } while (rVar21 < rStack_204.nelem);\n                  }\n                  aVar49.sbcset = (re_bitset_ptr_t)&rStack_204;\n                  aVar46 = aVar4;\n                  prVar35 = re_acquire_state_context\n                                      (&rStack_208,(re_dfa_t *)aVar4.mbcset,\n                                       (re_node_set *)aVar49.mbcset,0);\n                  (aVar4.mbcset)->nchar_classes = (Idx)prVar35;\n                  rVar21 = rStack_208;\n                  if (prVar35 != (re_dfastate_t *)0x0) {\n                    if ((prVar35->field_0x34 & 1) == 0) {\n                      *(re_dfastate_t **)(aVar4.idx + 0x30) = prVar35;\n                      *(re_dfastate_t **)(aVar4.idx + 0x2c) = prVar35;\n                      *(re_dfastate_t **)(aVar4.idx + 0x28) = prVar35;\n                    }\n                    else {\n                      aVar49.sbcset = (re_bitset_ptr_t)&rStack_204;\n                      prVar35 = re_acquire_state_context\n                                          (&rStack_208,(re_dfa_t *)aVar4.mbcset,\n                                           (re_node_set *)aVar49.mbcset,1);\n                      *(re_dfastate_t **)(aVar4.idx + 0x28) = prVar35;\n                      prVar35 = re_acquire_state_context\n                                          (&rStack_208,(re_dfa_t *)aVar4.mbcset,\n                                           (re_node_set *)aVar49.mbcset,2);\n                      *(re_dfastate_t **)(aVar4.idx + 0x2c) = prVar35;\n                      aVar46 = aVar4;\n                      prVar35 = re_acquire_state_context\n                                          (&rStack_208,(re_dfa_t *)aVar4.mbcset,\n                                           (re_node_set *)aVar49.mbcset,6);\n                      *(re_dfastate_t **)(aVar4.idx + 0x30) = prVar35;\n                      rVar21 = rStack_208;\n                      if (((*(re_dfastate_t **)(aVar4.idx + 0x28) == (re_dfastate_t *)0x0) ||\n                          (*(re_dfastate_t **)(aVar4.idx + 0x2c) == (re_dfastate_t *)0x0)) ||\n                         (prVar35 == (re_dfastate_t *)0x0)) goto LAB_00056cb8;\n                    }\n                    (**(code **)(puVar62 + 0x23dc0))(rStack_204.elems);\n                    rVar21 = rVar34;\n                  }\n                }" if (parenthesized_expression "(rVar34 == _REG_NOERROR)" ( (binary_expression "rVar34 == _REG_NOERROR" identifier == identifier) )) (compound_statement "{\n                  if ((0 < *(Idx *)(aVar4.idx + 0x4c)) && (_REG_NOERROR < rStack_204.nelem)) {\n                    iVar55 = *(int *)(puVar62 + 0x23abc);\n                    iVar61 = *(int *)(puVar62 + 0x23abc);\n                    rVar21 = _REG_NOERROR;\n                    do {\n                      aVar49.sbcset =\n                           (re_bitset_ptr_t)\n                           ((re_token_t *)(aVar4.mbcset)->mbchars + rStack_204.elems[rVar21]);\n                      if (*(char *)&((re_node_set *)&(aVar49.mbcset)->range_starts)->alloc == '\x04'\n                         ) {\n                        rVar48 = _REG_NOERROR;\n                        piVar38 = rStack_204.elems;\n                        if (rStack_204.nelem < _REG_NOMATCH) {\nLAB_00056b8c:\n                          if (rStack_204.nelem != rVar48) {\n                            iVar33 = *((re_node_set *)(aVar4.mbcset)->nmbchars)\n                                      [rStack_204.elems[rVar21]].elems;\n                            iVar58 = (*(code *)(iVar55 + 0x5ea8))(&rStack_204,iVar33);\n                            if (iVar58 == 0) {\n                              aVar46.sbcset =\n                                   (re_bitset_ptr_t)\n                                   ((re_node_set *)(aVar4.mbcset)->ncoll_syms + iVar33);\n                              rVar21 = (*(code *)(iVar61 + 0x7f1c))(&rStack_204);\n                              if (rVar21 != _REG_NOERROR) goto LAB_00056cb8;\n                            }\n                          }\n                        }\n                        else {\n                          do {\n                            prVar53 = (re_token_t *)(aVar4.mbcset)->mbchars + *piVar38;\n                            if ((prVar53->field_0x4 == '\t') &&\n                               ((prVar53->opr).sbcset == (re_bitset_ptr_t)*aVar49.sbcset))\n                            goto LAB_00056b8c;\n                            rVar48 = rVar48 + _REG_NOMATCH;\n                            piVar38 = piVar38 + 1;\n                          } while (rStack_204.nelem != rVar48);\n                        }\n                      }\n                      rVar21 = rVar21 + _REG_NOMATCH;\n                    } while (rVar21 < rStack_204.nelem);\n                  }\n                  aVar49.sbcset = (re_bitset_ptr_t)&rStack_204;\n                  aVar46 = aVar4;\n                  prVar35 = re_acquire_state_context\n                                      (&rStack_208,(re_dfa_t *)aVar4.mbcset,\n                                       (re_node_set *)aVar49.mbcset,0);\n                  (aVar4.mbcset)->nchar_classes = (Idx)prVar35;\n                  rVar21 = rStack_208;\n                  if (prVar35 != (re_dfastate_t *)0x0) {\n                    if ((prVar35->field_0x34 & 1) == 0) {\n                      *(re_dfastate_t **)(aVar4.idx + 0x30) = prVar35;\n                      *(re_dfastate_t **)(aVar4.idx + 0x2c) = prVar35;\n                      *(re_dfastate_t **)(aVar4.idx + 0x28) = prVar35;\n                    }\n                    else {\n                      aVar49.sbcset = (re_bitset_ptr_t)&rStack_204;\n                      prVar35 = re_acquire_state_context\n                                          (&rStack_208,(re_dfa_t *)aVar4.mbcset,\n                                           (re_node_set *)aVar49.mbcset,1);\n                      *(re_dfastate_t **)(aVar4.idx + 0x28) = prVar35;\n                      prVar35 = re_acquire_state_context\n                                          (&rStack_208,(re_dfa_t *)aVar4.mbcset,\n                                           (re_node_set *)aVar49.mbcset,2);\n                      *(re_dfastate_t **)(aVar4.idx + 0x2c) = prVar35;\n                      aVar46 = aVar4;\n                      prVar35 = re_acquire_state_context\n                                          (&rStack_208,(re_dfa_t *)aVar4.mbcset,\n                                           (re_node_set *)aVar49.mbcset,6);\n                      *(re_dfastate_t **)(aVar4.idx + 0x30) = prVar35;\n                      rVar21 = rStack_208;\n                      if (((*(re_dfastate_t **)(aVar4.idx + 0x28) == (re_dfastate_t *)0x0) ||\n                          (*(re_dfastate_t **)(aVar4.idx + 0x2c) == (re_dfastate_t *)0x0)) ||\n                         (prVar35 == (re_dfastate_t *)0x0)) goto LAB_00056cb8;\n                    }\n                    (**(code **)(puVar62 + 0x23dc0))(rStack_204.elems);\n                    rVar21 = rVar34;\n                  }\n                }" { (if_statement "if ((0 < *(Idx *)(aVar4.idx + 0x4c)) && (_REG_NOERROR < rStack_204.nelem)) {\n                    iVar55 = *(int *)(puVar62 + 0x23abc);\n                    iVar61 = *(int *)(puVar62 + 0x23abc);\n                    rVar21 = _REG_NOERROR;\n                    do {\n                      aVar49.sbcset =\n                           (re_bitset_ptr_t)\n                           ((re_token_t *)(aVar4.mbcset)->mbchars + rStack_204.elems[rVar21]);\n                      if (*(char *)&((re_node_set *)&(aVar49.mbcset)->range_starts)->alloc == '\x04'\n                         ) {\n                        rVar48 = _REG_NOERROR;\n                        piVar38 = rStack_204.elems;\n                        if (rStack_204.nelem < _REG_NOMATCH) {\nLAB_00056b8c:\n                          if (rStack_204.nelem != rVar48) {\n                            iVar33 = *((re_node_set *)(aVar4.mbcset)->nmbchars)\n                                      [rStack_204.elems[rVar21]].elems;\n                            iVar58 = (*(code *)(iVar55 + 0x5ea8))(&rStack_204,iVar33);\n                            if (iVar58 == 0) {\n                              aVar46.sbcset =\n                                   (re_bitset_ptr_t)\n                                   ((re_node_set *)(aVar4.mbcset)->ncoll_syms + iVar33);\n                              rVar21 = (*(code *)(iVar61 + 0x7f1c))(&rStack_204);\n                              if (rVar21 != _REG_NOERROR) goto LAB_00056cb8;\n                            }\n                          }\n                        }\n                        else {\n                          do {\n                            prVar53 = (re_token_t *)(aVar4.mbcset)->mbchars + *piVar38;\n                            if ((prVar53->field_0x4 == '\t') &&\n                               ((prVar53->opr).sbcset == (re_bitset_ptr_t)*aVar49.sbcset))\n                            goto LAB_00056b8c;\n                            rVar48 = rVar48 + _REG_NOMATCH;\n                            piVar38 = piVar38 + 1;\n                          } while (rStack_204.nelem != rVar48);\n                        }\n                      }\n                      rVar21 = rVar21 + _REG_NOMATCH;\n                    } while (rVar21 < rStack_204.nelem);\n                  }" if (parenthesized_expression "((0 < *(Idx *)(aVar4.idx + 0x4c)) && (_REG_NOERROR < rStack_204.nelem))" ( (binary_expression "(0 < *(Idx *)(aVar4.idx + 0x4c)) && (_REG_NOERROR < rStack_204.nelem)" (parenthesized_expression "(0 < *(Idx *)(aVar4.idx + 0x4c))" ( (binary_expression "0 < *(Idx *)(aVar4.idx + 0x4c)" number_literal < (pointer_expression "*(Idx *)(aVar4.idx + 0x4c)" * (cast_expression "(Idx *)(aVar4.idx + 0x4c)" ( (type_descriptor "Idx *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(aVar4.idx + 0x4c)" ( (binary_expression "aVar4.idx + 0x4c" (field_expression "aVar4.idx" identifier . field_identifier) + number_literal) ))))) )) && (parenthesized_expression "(_REG_NOERROR < rStack_204.nelem)" ( (binary_expression "_REG_NOERROR < rStack_204.nelem" identifier < (field_expression "rStack_204.nelem" identifier . field_identifier)) ))) )) (compound_statement "{\n                    iVar55 = *(int *)(puVar62 + 0x23abc);\n                    iVar61 = *(int *)(puVar62 + 0x23abc);\n                    rVar21 = _REG_NOERROR;\n                    do {\n                      aVar49.sbcset =\n                           (re_bitset_ptr_t)\n                           ((re_token_t *)(aVar4.mbcset)->mbchars + rStack_204.elems[rVar21]);\n                      if (*(char *)&((re_node_set *)&(aVar49.mbcset)->range_starts)->alloc == '\x04'\n                         ) {\n                        rVar48 = _REG_NOERROR;\n                        piVar38 = rStack_204.elems;\n                        if (rStack_204.nelem < _REG_NOMATCH) {\nLAB_00056b8c:\n                          if (rStack_204.nelem != rVar48) {\n                            iVar33 = *((re_node_set *)(aVar4.mbcset)->nmbchars)\n                                      [rStack_204.elems[rVar21]].elems;\n                            iVar58 = (*(code *)(iVar55 + 0x5ea8))(&rStack_204,iVar33);\n                            if (iVar58 == 0) {\n                              aVar46.sbcset =\n                                   (re_bitset_ptr_t)\n                                   ((re_node_set *)(aVar4.mbcset)->ncoll_syms + iVar33);\n                              rVar21 = (*(code *)(iVar61 + 0x7f1c))(&rStack_204);\n                              if (rVar21 != _REG_NOERROR) goto LAB_00056cb8;\n                            }\n                          }\n                        }\n                        else {\n                          do {\n                            prVar53 = (re_token_t *)(aVar4.mbcset)->mbchars + *piVar38;\n                            if ((prVar53->field_0x4 == '\t') &&\n                               ((prVar53->opr).sbcset == (re_bitset_ptr_t)*aVar49.sbcset))\n                            goto LAB_00056b8c;\n                            rVar48 = rVar48 + _REG_NOMATCH;\n                            piVar38 = piVar38 + 1;\n                          } while (rStack_204.nelem != rVar48);\n                        }\n                      }\n                      rVar21 = rVar21 + _REG_NOMATCH;\n                    } while (rVar21 < rStack_204.nelem);\n                  }" { (expression_statement "iVar55 = *(int *)(puVar62 + 0x23abc);" (assignment_expression "iVar55 = *(int *)(puVar62 + 0x23abc)" identifier = (pointer_expression "*(int *)(puVar62 + 0x23abc)" * (cast_expression "(int *)(puVar62 + 0x23abc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar62 + 0x23abc)" ( (binary_expression "puVar62 + 0x23abc" identifier + number_literal) ))))) ;) (expression_statement "iVar61 = *(int *)(puVar62 + 0x23abc);" (assignment_expression "iVar61 = *(int *)(puVar62 + 0x23abc)" identifier = (pointer_expression "*(int *)(puVar62 + 0x23abc)" * (cast_expression "(int *)(puVar62 + 0x23abc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar62 + 0x23abc)" ( (binary_expression "puVar62 + 0x23abc" identifier + number_literal) ))))) ;) (expression_statement "rVar21 = _REG_NOERROR;" (assignment_expression "rVar21 = _REG_NOERROR" identifier = identifier) ;) (do_statement "do {\n                      aVar49.sbcset =\n                           (re_bitset_ptr_t)\n                           ((re_token_t *)(aVar4.mbcset)->mbchars + rStack_204.elems[rVar21]);\n                      if (*(char *)&((re_node_set *)&(aVar49.mbcset)->range_starts)->alloc == '\x04'\n                         ) {\n                        rVar48 = _REG_NOERROR;\n                        piVar38 = rStack_204.elems;\n                        if (rStack_204.nelem < _REG_NOMATCH) {\nLAB_00056b8c:\n                          if (rStack_204.nelem != rVar48) {\n                            iVar33 = *((re_node_set *)(aVar4.mbcset)->nmbchars)\n                                      [rStack_204.elems[rVar21]].elems;\n                            iVar58 = (*(code *)(iVar55 + 0x5ea8))(&rStack_204,iVar33);\n                            if (iVar58 == 0) {\n                              aVar46.sbcset =\n                                   (re_bitset_ptr_t)\n                                   ((re_node_set *)(aVar4.mbcset)->ncoll_syms + iVar33);\n                              rVar21 = (*(code *)(iVar61 + 0x7f1c))(&rStack_204);\n                              if (rVar21 != _REG_NOERROR) goto LAB_00056cb8;\n                            }\n                          }\n                        }\n                        else {\n                          do {\n                            prVar53 = (re_token_t *)(aVar4.mbcset)->mbchars + *piVar38;\n                            if ((prVar53->field_0x4 == '\t') &&\n                               ((prVar53->opr).sbcset == (re_bitset_ptr_t)*aVar49.sbcset))\n                            goto LAB_00056b8c;\n                            rVar48 = rVar48 + _REG_NOMATCH;\n                            piVar38 = piVar38 + 1;\n                          } while (rStack_204.nelem != rVar48);\n                        }\n                      }\n                      rVar21 = rVar21 + _REG_NOMATCH;\n                    } while (rVar21 < rStack_204.nelem);" do (compound_statement "{\n                      aVar49.sbcset =\n                           (re_bitset_ptr_t)\n                           ((re_token_t *)(aVar4.mbcset)->mbchars + rStack_204.elems[rVar21]);\n                      if (*(char *)&((re_node_set *)&(aVar49.mbcset)->range_starts)->alloc == '\x04'\n                         ) {\n                        rVar48 = _REG_NOERROR;\n                        piVar38 = rStack_204.elems;\n                        if (rStack_204.nelem < _REG_NOMATCH) {\nLAB_00056b8c:\n                          if (rStack_204.nelem != rVar48) {\n                            iVar33 = *((re_node_set *)(aVar4.mbcset)->nmbchars)\n                                      [rStack_204.elems[rVar21]].elems;\n                            iVar58 = (*(code *)(iVar55 + 0x5ea8))(&rStack_204,iVar33);\n                            if (iVar58 == 0) {\n                              aVar46.sbcset =\n                                   (re_bitset_ptr_t)\n                                   ((re_node_set *)(aVar4.mbcset)->ncoll_syms + iVar33);\n                              rVar21 = (*(code *)(iVar61 + 0x7f1c))(&rStack_204);\n                              if (rVar21 != _REG_NOERROR) goto LAB_00056cb8;\n                            }\n                          }\n                        }\n                        else {\n                          do {\n                            prVar53 = (re_token_t *)(aVar4.mbcset)->mbchars + *piVar38;\n                            if ((prVar53->field_0x4 == '\t') &&\n                               ((prVar53->opr).sbcset == (re_bitset_ptr_t)*aVar49.sbcset))\n                            goto LAB_00056b8c;\n                            rVar48 = rVar48 + _REG_NOMATCH;\n                            piVar38 = piVar38 + 1;\n                          } while (rStack_204.nelem != rVar48);\n                        }\n                      }\n                      rVar21 = rVar21 + _REG_NOMATCH;\n                    }" { (expression_statement "aVar49.sbcset =\n                           (re_bitset_ptr_t)\n                           ((re_token_t *)(aVar4.mbcset)->mbchars + rStack_204.elems[rVar21]);" (assignment_expression "aVar49.sbcset =\n                           (re_bitset_ptr_t)\n                           ((re_token_t *)(aVar4.mbcset)->mbchars + rStack_204.elems[rVar21])" (field_expression "aVar49.sbcset" identifier . field_identifier) = (call_expression "(re_bitset_ptr_t)\n                           ((re_token_t *)(aVar4.mbcset)->mbchars + rStack_204.elems[rVar21])" (parenthesized_expression "(re_bitset_ptr_t)" ( identifier )) (argument_list "((re_token_t *)(aVar4.mbcset)->mbchars + rStack_204.elems[rVar21])" ( (binary_expression "(re_token_t *)(aVar4.mbcset)->mbchars + rStack_204.elems[rVar21]" (cast_expression "(re_token_t *)(aVar4.mbcset)->mbchars" ( (type_descriptor "re_token_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(aVar4.mbcset)->mbchars" (parenthesized_expression "(aVar4.mbcset)" ( (field_expression "aVar4.mbcset" identifier . field_identifier) )) -> field_identifier)) + (subscript_expression "rStack_204.elems[rVar21]" (field_expression "rStack_204.elems" identifier . field_identifier) [ identifier ])) )))) ;) (if_statement "if (*(char *)&((re_node_set *)&(aVar49.mbcset)->range_starts)->alloc == '\x04'\n                         ) {\n                        rVar48 = _REG_NOERROR;\n                        piVar38 = rStack_204.elems;\n                        if (rStack_204.nelem < _REG_NOMATCH) {\nLAB_00056b8c:\n                          if (rStack_204.nelem != rVar48) {\n                            iVar33 = *((re_node_set *)(aVar4.mbcset)->nmbchars)\n                                      [rStack_204.elems[rVar21]].elems;\n                            iVar58 = (*(code *)(iVar55 + 0x5ea8))(&rStack_204,iVar33);\n                            if (iVar58 == 0) {\n                              aVar46.sbcset =\n                                   (re_bitset_ptr_t)\n                                   ((re_node_set *)(aVar4.mbcset)->ncoll_syms + iVar33);\n                              rVar21 = (*(code *)(iVar61 + 0x7f1c))(&rStack_204);\n                              if (rVar21 != _REG_NOERROR) goto LAB_00056cb8;\n                            }\n                          }\n                        }\n                        else {\n                          do {\n                            prVar53 = (re_token_t *)(aVar4.mbcset)->mbchars + *piVar38;\n                            if ((prVar53->field_0x4 == '\t') &&\n                               ((prVar53->opr).sbcset == (re_bitset_ptr_t)*aVar49.sbcset))\n                            goto LAB_00056b8c;\n                            rVar48 = rVar48 + _REG_NOMATCH;\n                            piVar38 = piVar38 + 1;\n                          } while (rStack_204.nelem != rVar48);\n                        }\n                      }" if (parenthesized_expression "(*(char *)&((re_node_set *)&(aVar49.mbcset)->range_starts)->alloc == '\x04'\n                         )" ( (binary_expression "*(char *)&((re_node_set *)&(aVar49.mbcset)->range_starts)->alloc == '\x04'" (pointer_expression "*(char *)&((re_node_set *)&(aVar49.mbcset)->range_starts)->alloc" * (cast_expression "(char *)&((re_node_set *)&(aVar49.mbcset)->range_starts)->alloc" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&((re_node_set *)&(aVar49.mbcset)->range_starts)->alloc" & (field_expression "((re_node_set *)&(aVar49.mbcset)->range_starts)->alloc" (parenthesized_expression "((re_node_set *)&(aVar49.mbcset)->range_starts)" ( (cast_expression "(re_node_set *)&(aVar49.mbcset)->range_starts" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(aVar49.mbcset)->range_starts" & (field_expression "(aVar49.mbcset)->range_starts" (parenthesized_expression "(aVar49.mbcset)" ( (field_expression "aVar49.mbcset" identifier . field_identifier) )) -> field_identifier))) )) -> field_identifier)))) == (char_literal "'\x04'" ' escape_sequence ')) )) (compound_statement "{\n                        rVar48 = _REG_NOERROR;\n                        piVar38 = rStack_204.elems;\n                        if (rStack_204.nelem < _REG_NOMATCH) {\nLAB_00056b8c:\n                          if (rStack_204.nelem != rVar48) {\n                            iVar33 = *((re_node_set *)(aVar4.mbcset)->nmbchars)\n                                      [rStack_204.elems[rVar21]].elems;\n                            iVar58 = (*(code *)(iVar55 + 0x5ea8))(&rStack_204,iVar33);\n                            if (iVar58 == 0) {\n                              aVar46.sbcset =\n                                   (re_bitset_ptr_t)\n                                   ((re_node_set *)(aVar4.mbcset)->ncoll_syms + iVar33);\n                              rVar21 = (*(code *)(iVar61 + 0x7f1c))(&rStack_204);\n                              if (rVar21 != _REG_NOERROR) goto LAB_00056cb8;\n                            }\n                          }\n                        }\n                        else {\n                          do {\n                            prVar53 = (re_token_t *)(aVar4.mbcset)->mbchars + *piVar38;\n                            if ((prVar53->field_0x4 == '\t') &&\n                               ((prVar53->opr).sbcset == (re_bitset_ptr_t)*aVar49.sbcset))\n                            goto LAB_00056b8c;\n                            rVar48 = rVar48 + _REG_NOMATCH;\n                            piVar38 = piVar38 + 1;\n                          } while (rStack_204.nelem != rVar48);\n                        }\n                      }" { (expression_statement "rVar48 = _REG_NOERROR;" (assignment_expression "rVar48 = _REG_NOERROR" identifier = identifier) ;) (expression_statement "piVar38 = rStack_204.elems;" (assignment_expression "piVar38 = rStack_204.elems" identifier = (field_expression "rStack_204.elems" identifier . field_identifier)) ;) (if_statement "if (rStack_204.nelem < _REG_NOMATCH) {\nLAB_00056b8c:\n                          if (rStack_204.nelem != rVar48) {\n                            iVar33 = *((re_node_set *)(aVar4.mbcset)->nmbchars)\n                                      [rStack_204.elems[rVar21]].elems;\n                            iVar58 = (*(code *)(iVar55 + 0x5ea8))(&rStack_204,iVar33);\n                            if (iVar58 == 0) {\n                              aVar46.sbcset =\n                                   (re_bitset_ptr_t)\n                                   ((re_node_set *)(aVar4.mbcset)->ncoll_syms + iVar33);\n                              rVar21 = (*(code *)(iVar61 + 0x7f1c))(&rStack_204);\n                              if (rVar21 != _REG_NOERROR) goto LAB_00056cb8;\n                            }\n                          }\n                        }\n                        else {\n                          do {\n                            prVar53 = (re_token_t *)(aVar4.mbcset)->mbchars + *piVar38;\n                            if ((prVar53->field_0x4 == '\t') &&\n                               ((prVar53->opr).sbcset == (re_bitset_ptr_t)*aVar49.sbcset))\n                            goto LAB_00056b8c;\n                            rVar48 = rVar48 + _REG_NOMATCH;\n                            piVar38 = piVar38 + 1;\n                          } while (rStack_204.nelem != rVar48);\n                        }" if (parenthesized_expression "(rStack_204.nelem < _REG_NOMATCH)" ( (binary_expression "rStack_204.nelem < _REG_NOMATCH" (field_expression "rStack_204.nelem" identifier . field_identifier) < identifier) )) (compound_statement "{\nLAB_00056b8c:\n                          if (rStack_204.nelem != rVar48) {\n                            iVar33 = *((re_node_set *)(aVar4.mbcset)->nmbchars)\n                                      [rStack_204.elems[rVar21]].elems;\n                            iVar58 = (*(code *)(iVar55 + 0x5ea8))(&rStack_204,iVar33);\n                            if (iVar58 == 0) {\n                              aVar46.sbcset =\n                                   (re_bitset_ptr_t)\n                                   ((re_node_set *)(aVar4.mbcset)->ncoll_syms + iVar33);\n                              rVar21 = (*(code *)(iVar61 + 0x7f1c))(&rStack_204);\n                              if (rVar21 != _REG_NOERROR) goto LAB_00056cb8;\n                            }\n                          }\n                        }" { (labeled_statement "LAB_00056b8c:\n                          if (rStack_204.nelem != rVar48) {\n                            iVar33 = *((re_node_set *)(aVar4.mbcset)->nmbchars)\n                                      [rStack_204.elems[rVar21]].elems;\n                            iVar58 = (*(code *)(iVar55 + 0x5ea8))(&rStack_204,iVar33);\n                            if (iVar58 == 0) {\n                              aVar46.sbcset =\n                                   (re_bitset_ptr_t)\n                                   ((re_node_set *)(aVar4.mbcset)->ncoll_syms + iVar33);\n                              rVar21 = (*(code *)(iVar61 + 0x7f1c))(&rStack_204);\n                              if (rVar21 != _REG_NOERROR) goto LAB_00056cb8;\n                            }\n                          }" statement_identifier : (if_statement "if (rStack_204.nelem != rVar48) {\n                            iVar33 = *((re_node_set *)(aVar4.mbcset)->nmbchars)\n                                      [rStack_204.elems[rVar21]].elems;\n                            iVar58 = (*(code *)(iVar55 + 0x5ea8))(&rStack_204,iVar33);\n                            if (iVar58 == 0) {\n                              aVar46.sbcset =\n                                   (re_bitset_ptr_t)\n                                   ((re_node_set *)(aVar4.mbcset)->ncoll_syms + iVar33);\n                              rVar21 = (*(code *)(iVar61 + 0x7f1c))(&rStack_204);\n                              if (rVar21 != _REG_NOERROR) goto LAB_00056cb8;\n                            }\n                          }" if (parenthesized_expression "(rStack_204.nelem != rVar48)" ( (binary_expression "rStack_204.nelem != rVar48" (field_expression "rStack_204.nelem" identifier . field_identifier) != identifier) )) (compound_statement "{\n                            iVar33 = *((re_node_set *)(aVar4.mbcset)->nmbchars)\n                                      [rStack_204.elems[rVar21]].elems;\n                            iVar58 = (*(code *)(iVar55 + 0x5ea8))(&rStack_204,iVar33);\n                            if (iVar58 == 0) {\n                              aVar46.sbcset =\n                                   (re_bitset_ptr_t)\n                                   ((re_node_set *)(aVar4.mbcset)->ncoll_syms + iVar33);\n                              rVar21 = (*(code *)(iVar61 + 0x7f1c))(&rStack_204);\n                              if (rVar21 != _REG_NOERROR) goto LAB_00056cb8;\n                            }\n                          }" { (expression_statement "iVar33 = *((re_node_set *)(aVar4.mbcset)->nmbchars)\n                                      [rStack_204.elems[rVar21]].elems;" (assignment_expression "iVar33 = *((re_node_set *)(aVar4.mbcset)->nmbchars)\n                                      [rStack_204.elems[rVar21]].elems" identifier = (pointer_expression "*((re_node_set *)(aVar4.mbcset)->nmbchars)\n                                      [rStack_204.elems[rVar21]].elems" * (field_expression "((re_node_set *)(aVar4.mbcset)->nmbchars)\n                                      [rStack_204.elems[rVar21]].elems" (subscript_expression "((re_node_set *)(aVar4.mbcset)->nmbchars)\n                                      [rStack_204.elems[rVar21]]" (parenthesized_expression "((re_node_set *)(aVar4.mbcset)->nmbchars)" ( (cast_expression "(re_node_set *)(aVar4.mbcset)->nmbchars" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(aVar4.mbcset)->nmbchars" (parenthesized_expression "(aVar4.mbcset)" ( (field_expression "aVar4.mbcset" identifier . field_identifier) )) -> field_identifier)) )) [ (subscript_expression "rStack_204.elems[rVar21]" (field_expression "rStack_204.elems" identifier . field_identifier) [ identifier ]) ]) . field_identifier))) ;) (expression_statement "iVar58 = (*(code *)(iVar55 + 0x5ea8))(&rStack_204,iVar33);" (assignment_expression "iVar58 = (*(code *)(iVar55 + 0x5ea8))(&rStack_204,iVar33)" identifier = (call_expression "(*(code *)(iVar55 + 0x5ea8))(&rStack_204,iVar33)" (parenthesized_expression "(*(code *)(iVar55 + 0x5ea8))" ( (pointer_expression "*(code *)(iVar55 + 0x5ea8)" * (cast_expression "(code *)(iVar55 + 0x5ea8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar55 + 0x5ea8)" ( (binary_expression "iVar55 + 0x5ea8" identifier + number_literal) )))) )) (argument_list "(&rStack_204,iVar33)" ( (pointer_expression "&rStack_204" & identifier) , identifier )))) ;) (if_statement "if (iVar58 == 0) {\n                              aVar46.sbcset =\n                                   (re_bitset_ptr_t)\n                                   ((re_node_set *)(aVar4.mbcset)->ncoll_syms + iVar33);\n                              rVar21 = (*(code *)(iVar61 + 0x7f1c))(&rStack_204);\n                              if (rVar21 != _REG_NOERROR) goto LAB_00056cb8;\n                            }" if (parenthesized_expression "(iVar58 == 0)" ( (binary_expression "iVar58 == 0" identifier == number_literal) )) (compound_statement "{\n                              aVar46.sbcset =\n                                   (re_bitset_ptr_t)\n                                   ((re_node_set *)(aVar4.mbcset)->ncoll_syms + iVar33);\n                              rVar21 = (*(code *)(iVar61 + 0x7f1c))(&rStack_204);\n                              if (rVar21 != _REG_NOERROR) goto LAB_00056cb8;\n                            }" { (expression_statement "aVar46.sbcset =\n                                   (re_bitset_ptr_t)\n                                   ((re_node_set *)(aVar4.mbcset)->ncoll_syms + iVar33);" (assignment_expression "aVar46.sbcset =\n                                   (re_bitset_ptr_t)\n                                   ((re_node_set *)(aVar4.mbcset)->ncoll_syms + iVar33)" (field_expression "aVar46.sbcset" identifier . field_identifier) = (call_expression "(re_bitset_ptr_t)\n                                   ((re_node_set *)(aVar4.mbcset)->ncoll_syms + iVar33)" (parenthesized_expression "(re_bitset_ptr_t)" ( identifier )) (argument_list "((re_node_set *)(aVar4.mbcset)->ncoll_syms + iVar33)" ( (binary_expression "(re_node_set *)(aVar4.mbcset)->ncoll_syms + iVar33" (cast_expression "(re_node_set *)(aVar4.mbcset)->ncoll_syms" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(aVar4.mbcset)->ncoll_syms" (parenthesized_expression "(aVar4.mbcset)" ( (field_expression "aVar4.mbcset" identifier . field_identifier) )) -> field_identifier)) + identifier) )))) ;) (expression_statement "rVar21 = (*(code *)(iVar61 + 0x7f1c))(&rStack_204);" (assignment_expression "rVar21 = (*(code *)(iVar61 + 0x7f1c))(&rStack_204)" identifier = (call_expression "(*(code *)(iVar61 + 0x7f1c))(&rStack_204)" (parenthesized_expression "(*(code *)(iVar61 + 0x7f1c))" ( (pointer_expression "*(code *)(iVar61 + 0x7f1c)" * (cast_expression "(code *)(iVar61 + 0x7f1c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar61 + 0x7f1c)" ( (binary_expression "iVar61 + 0x7f1c" identifier + number_literal) )))) )) (argument_list "(&rStack_204)" ( (pointer_expression "&rStack_204" & identifier) )))) ;) (if_statement "if (rVar21 != _REG_NOERROR) goto LAB_00056cb8;" if (parenthesized_expression "(rVar21 != _REG_NOERROR)" ( (binary_expression "rVar21 != _REG_NOERROR" identifier != identifier) )) (goto_statement "goto LAB_00056cb8;" goto statement_identifier ;)) })) }))) }) (else_clause "else {\n                          do {\n                            prVar53 = (re_token_t *)(aVar4.mbcset)->mbchars + *piVar38;\n                            if ((prVar53->field_0x4 == '\t') &&\n                               ((prVar53->opr).sbcset == (re_bitset_ptr_t)*aVar49.sbcset))\n                            goto LAB_00056b8c;\n                            rVar48 = rVar48 + _REG_NOMATCH;\n                            piVar38 = piVar38 + 1;\n                          } while (rStack_204.nelem != rVar48);\n                        }" else (compound_statement "{\n                          do {\n                            prVar53 = (re_token_t *)(aVar4.mbcset)->mbchars + *piVar38;\n                            if ((prVar53->field_0x4 == '\t') &&\n                               ((prVar53->opr).sbcset == (re_bitset_ptr_t)*aVar49.sbcset))\n                            goto LAB_00056b8c;\n                            rVar48 = rVar48 + _REG_NOMATCH;\n                            piVar38 = piVar38 + 1;\n                          } while (rStack_204.nelem != rVar48);\n                        }" { (do_statement "do {\n                            prVar53 = (re_token_t *)(aVar4.mbcset)->mbchars + *piVar38;\n                            if ((prVar53->field_0x4 == '\t') &&\n                               ((prVar53->opr).sbcset == (re_bitset_ptr_t)*aVar49.sbcset))\n                            goto LAB_00056b8c;\n                            rVar48 = rVar48 + _REG_NOMATCH;\n                            piVar38 = piVar38 + 1;\n                          } while (rStack_204.nelem != rVar48);" do (compound_statement "{\n                            prVar53 = (re_token_t *)(aVar4.mbcset)->mbchars + *piVar38;\n                            if ((prVar53->field_0x4 == '\t') &&\n                               ((prVar53->opr).sbcset == (re_bitset_ptr_t)*aVar49.sbcset))\n                            goto LAB_00056b8c;\n                            rVar48 = rVar48 + _REG_NOMATCH;\n                            piVar38 = piVar38 + 1;\n                          }" { (expression_statement "prVar53 = (re_token_t *)(aVar4.mbcset)->mbchars + *piVar38;" (assignment_expression "prVar53 = (re_token_t *)(aVar4.mbcset)->mbchars + *piVar38" identifier = (binary_expression "(re_token_t *)(aVar4.mbcset)->mbchars + *piVar38" (cast_expression "(re_token_t *)(aVar4.mbcset)->mbchars" ( (type_descriptor "re_token_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(aVar4.mbcset)->mbchars" (parenthesized_expression "(aVar4.mbcset)" ( (field_expression "aVar4.mbcset" identifier . field_identifier) )) -> field_identifier)) + (pointer_expression "*piVar38" * identifier))) ;) (if_statement "if ((prVar53->field_0x4 == '\t') &&\n                               ((prVar53->opr).sbcset == (re_bitset_ptr_t)*aVar49.sbcset))\n                            goto LAB_00056b8c;" if (parenthesized_expression "((prVar53->field_0x4 == '\t') &&\n                               ((prVar53->opr).sbcset == (re_bitset_ptr_t)*aVar49.sbcset))" ( (binary_expression "(prVar53->field_0x4 == '\t') &&\n                               ((prVar53->opr).sbcset == (re_bitset_ptr_t)*aVar49.sbcset)" (parenthesized_expression "(prVar53->field_0x4 == '\t')" ( (binary_expression "prVar53->field_0x4 == '\t'" (field_expression "prVar53->field_0x4" identifier -> field_identifier) == (char_literal "'\t'" ' escape_sequence ')) )) && (parenthesized_expression "((prVar53->opr).sbcset == (re_bitset_ptr_t)*aVar49.sbcset)" ( (binary_expression "(prVar53->opr).sbcset == (re_bitset_ptr_t)*aVar49.sbcset" (field_expression "(prVar53->opr).sbcset" (parenthesized_expression "(prVar53->opr)" ( (field_expression "prVar53->opr" identifier -> field_identifier) )) . field_identifier) == (binary_expression "(re_bitset_ptr_t)*aVar49.sbcset" (parenthesized_expression "(re_bitset_ptr_t)" ( identifier )) * (field_expression "aVar49.sbcset" identifier . field_identifier))) ))) )) (goto_statement "goto LAB_00056b8c;" goto statement_identifier ;)) (expression_statement "rVar48 = rVar48 + _REG_NOMATCH;" (assignment_expression "rVar48 = rVar48 + _REG_NOMATCH" identifier = (binary_expression "rVar48 + _REG_NOMATCH" identifier + identifier)) ;) (expression_statement "piVar38 = piVar38 + 1;" (assignment_expression "piVar38 = piVar38 + 1" identifier = (binary_expression "piVar38 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(rStack_204.nelem != rVar48)" ( (binary_expression "rStack_204.nelem != rVar48" (field_expression "rStack_204.nelem" identifier . field_identifier) != identifier) )) ;) }))) })) (expression_statement "rVar21 = rVar21 + _REG_NOMATCH;" (assignment_expression "rVar21 = rVar21 + _REG_NOMATCH" identifier = (binary_expression "rVar21 + _REG_NOMATCH" identifier + identifier)) ;) }) while (parenthesized_expression "(rVar21 < rStack_204.nelem)" ( (binary_expression "rVar21 < rStack_204.nelem" identifier < (field_expression "rStack_204.nelem" identifier . field_identifier)) )) ;) })) (expression_statement "aVar49.sbcset = (re_bitset_ptr_t)&rStack_204;" (assignment_expression "aVar49.sbcset = (re_bitset_ptr_t)&rStack_204" (field_expression "aVar49.sbcset" identifier . field_identifier) = (binary_expression "(re_bitset_ptr_t)&rStack_204" (parenthesized_expression "(re_bitset_ptr_t)" ( identifier )) & identifier)) ;) (expression_statement "aVar46 = aVar4;" (assignment_expression "aVar46 = aVar4" identifier = identifier) ;) (expression_statement "prVar35 = re_acquire_state_context\n                                      (&rStack_208,(re_dfa_t *)aVar4.mbcset,\n                                       (re_node_set *)aVar49.mbcset,0);" (assignment_expression "prVar35 = re_acquire_state_context\n                                      (&rStack_208,(re_dfa_t *)aVar4.mbcset,\n                                       (re_node_set *)aVar49.mbcset,0)" identifier = (call_expression "re_acquire_state_context\n                                      (&rStack_208,(re_dfa_t *)aVar4.mbcset,\n                                       (re_node_set *)aVar49.mbcset,0)" identifier (argument_list "(&rStack_208,(re_dfa_t *)aVar4.mbcset,\n                                       (re_node_set *)aVar49.mbcset,0)" ( (pointer_expression "&rStack_208" & identifier) , (cast_expression "(re_dfa_t *)aVar4.mbcset" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "aVar4.mbcset" identifier . field_identifier)) , (cast_expression "(re_node_set *)aVar49.mbcset" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "aVar49.mbcset" identifier . field_identifier)) , number_literal )))) ;) (expression_statement "(aVar4.mbcset)->nchar_classes = (Idx)prVar35;" (assignment_expression "(aVar4.mbcset)->nchar_classes = (Idx)prVar35" (field_expression "(aVar4.mbcset)->nchar_classes" (parenthesized_expression "(aVar4.mbcset)" ( (field_expression "aVar4.mbcset" identifier . field_identifier) )) -> field_identifier) = (cast_expression "(Idx)prVar35" ( (type_descriptor "Idx" type_identifier) ) identifier)) ;) (expression_statement "rVar21 = rStack_208;" (assignment_expression "rVar21 = rStack_208" identifier = identifier) ;) (if_statement "if (prVar35 != (re_dfastate_t *)0x0) {\n                    if ((prVar35->field_0x34 & 1) == 0) {\n                      *(re_dfastate_t **)(aVar4.idx + 0x30) = prVar35;\n                      *(re_dfastate_t **)(aVar4.idx + 0x2c) = prVar35;\n                      *(re_dfastate_t **)(aVar4.idx + 0x28) = prVar35;\n                    }\n                    else {\n                      aVar49.sbcset = (re_bitset_ptr_t)&rStack_204;\n                      prVar35 = re_acquire_state_context\n                                          (&rStack_208,(re_dfa_t *)aVar4.mbcset,\n                                           (re_node_set *)aVar49.mbcset,1);\n                      *(re_dfastate_t **)(aVar4.idx + 0x28) = prVar35;\n                      prVar35 = re_acquire_state_context\n                                          (&rStack_208,(re_dfa_t *)aVar4.mbcset,\n                                           (re_node_set *)aVar49.mbcset,2);\n                      *(re_dfastate_t **)(aVar4.idx + 0x2c) = prVar35;\n                      aVar46 = aVar4;\n                      prVar35 = re_acquire_state_context\n                                          (&rStack_208,(re_dfa_t *)aVar4.mbcset,\n                                           (re_node_set *)aVar49.mbcset,6);\n                      *(re_dfastate_t **)(aVar4.idx + 0x30) = prVar35;\n                      rVar21 = rStack_208;\n                      if (((*(re_dfastate_t **)(aVar4.idx + 0x28) == (re_dfastate_t *)0x0) ||\n                          (*(re_dfastate_t **)(aVar4.idx + 0x2c) == (re_dfastate_t *)0x0)) ||\n                         (prVar35 == (re_dfastate_t *)0x0)) goto LAB_00056cb8;\n                    }\n                    (**(code **)(puVar62 + 0x23dc0))(rStack_204.elems);\n                    rVar21 = rVar34;\n                  }" if (parenthesized_expression "(prVar35 != (re_dfastate_t *)0x0)" ( (binary_expression "prVar35 != (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 ((prVar35->field_0x34 & 1) == 0) {\n                      *(re_dfastate_t **)(aVar4.idx + 0x30) = prVar35;\n                      *(re_dfastate_t **)(aVar4.idx + 0x2c) = prVar35;\n                      *(re_dfastate_t **)(aVar4.idx + 0x28) = prVar35;\n                    }\n                    else {\n                      aVar49.sbcset = (re_bitset_ptr_t)&rStack_204;\n                      prVar35 = re_acquire_state_context\n                                          (&rStack_208,(re_dfa_t *)aVar4.mbcset,\n                                           (re_node_set *)aVar49.mbcset,1);\n                      *(re_dfastate_t **)(aVar4.idx + 0x28) = prVar35;\n                      prVar35 = re_acquire_state_context\n                                          (&rStack_208,(re_dfa_t *)aVar4.mbcset,\n                                           (re_node_set *)aVar49.mbcset,2);\n                      *(re_dfastate_t **)(aVar4.idx + 0x2c) = prVar35;\n                      aVar46 = aVar4;\n                      prVar35 = re_acquire_state_context\n                                          (&rStack_208,(re_dfa_t *)aVar4.mbcset,\n                                           (re_node_set *)aVar49.mbcset,6);\n                      *(re_dfastate_t **)(aVar4.idx + 0x30) = prVar35;\n                      rVar21 = rStack_208;\n                      if (((*(re_dfastate_t **)(aVar4.idx + 0x28) == (re_dfastate_t *)0x0) ||\n                          (*(re_dfastate_t **)(aVar4.idx + 0x2c) == (re_dfastate_t *)0x0)) ||\n                         (prVar35 == (re_dfastate_t *)0x0)) goto LAB_00056cb8;\n                    }\n                    (**(code **)(puVar62 + 0x23dc0))(rStack_204.elems);\n                    rVar21 = rVar34;\n                  }" { (if_statement "if ((prVar35->field_0x34 & 1) == 0) {\n                      *(re_dfastate_t **)(aVar4.idx + 0x30) = prVar35;\n                      *(re_dfastate_t **)(aVar4.idx + 0x2c) = prVar35;\n                      *(re_dfastate_t **)(aVar4.idx + 0x28) = prVar35;\n                    }\n                    else {\n                      aVar49.sbcset = (re_bitset_ptr_t)&rStack_204;\n                      prVar35 = re_acquire_state_context\n                                          (&rStack_208,(re_dfa_t *)aVar4.mbcset,\n                                           (re_node_set *)aVar49.mbcset,1);\n                      *(re_dfastate_t **)(aVar4.idx + 0x28) = prVar35;\n                      prVar35 = re_acquire_state_context\n                                          (&rStack_208,(re_dfa_t *)aVar4.mbcset,\n                                           (re_node_set *)aVar49.mbcset,2);\n                      *(re_dfastate_t **)(aVar4.idx + 0x2c) = prVar35;\n                      aVar46 = aVar4;\n                      prVar35 = re_acquire_state_context\n                                          (&rStack_208,(re_dfa_t *)aVar4.mbcset,\n                                           (re_node_set *)aVar49.mbcset,6);\n                      *(re_dfastate_t **)(aVar4.idx + 0x30) = prVar35;\n                      rVar21 = rStack_208;\n                      if (((*(re_dfastate_t **)(aVar4.idx + 0x28) == (re_dfastate_t *)0x0) ||\n                          (*(re_dfastate_t **)(aVar4.idx + 0x2c) == (re_dfastate_t *)0x0)) ||\n                         (prVar35 == (re_dfastate_t *)0x0)) goto LAB_00056cb8;\n                    }" if (parenthesized_expression "((prVar35->field_0x34 & 1) == 0)" ( (binary_expression "(prVar35->field_0x34 & 1) == 0" (parenthesized_expression "(prVar35->field_0x34 & 1)" ( (binary_expression "prVar35->field_0x34 & 1" (field_expression "prVar35->field_0x34" identifier -> field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n                      *(re_dfastate_t **)(aVar4.idx + 0x30) = prVar35;\n                      *(re_dfastate_t **)(aVar4.idx + 0x2c) = prVar35;\n                      *(re_dfastate_t **)(aVar4.idx + 0x28) = prVar35;\n                    }" { (expression_statement "*(re_dfastate_t **)(aVar4.idx + 0x30) = prVar35;" (assignment_expression "*(re_dfastate_t **)(aVar4.idx + 0x30) = prVar35" (pointer_expression "*(re_dfastate_t **)(aVar4.idx + 0x30)" * (cast_expression "(re_dfastate_t **)(aVar4.idx + 0x30)" ( (type_descriptor "re_dfastate_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(aVar4.idx + 0x30)" ( (binary_expression "aVar4.idx + 0x30" (field_expression "aVar4.idx" identifier . field_identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(re_dfastate_t **)(aVar4.idx + 0x2c) = prVar35;" (assignment_expression "*(re_dfastate_t **)(aVar4.idx + 0x2c) = prVar35" (pointer_expression "*(re_dfastate_t **)(aVar4.idx + 0x2c)" * (cast_expression "(re_dfastate_t **)(aVar4.idx + 0x2c)" ( (type_descriptor "re_dfastate_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(aVar4.idx + 0x2c)" ( (binary_expression "aVar4.idx + 0x2c" (field_expression "aVar4.idx" identifier . field_identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(re_dfastate_t **)(aVar4.idx + 0x28) = prVar35;" (assignment_expression "*(re_dfastate_t **)(aVar4.idx + 0x28) = prVar35" (pointer_expression "*(re_dfastate_t **)(aVar4.idx + 0x28)" * (cast_expression "(re_dfastate_t **)(aVar4.idx + 0x28)" ( (type_descriptor "re_dfastate_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(aVar4.idx + 0x28)" ( (binary_expression "aVar4.idx + 0x28" (field_expression "aVar4.idx" identifier . field_identifier) + number_literal) )))) = identifier) ;) }) (else_clause "else {\n                      aVar49.sbcset = (re_bitset_ptr_t)&rStack_204;\n                      prVar35 = re_acquire_state_context\n                                          (&rStack_208,(re_dfa_t *)aVar4.mbcset,\n                                           (re_node_set *)aVar49.mbcset,1);\n                      *(re_dfastate_t **)(aVar4.idx + 0x28) = prVar35;\n                      prVar35 = re_acquire_state_context\n                                          (&rStack_208,(re_dfa_t *)aVar4.mbcset,\n                                           (re_node_set *)aVar49.mbcset,2);\n                      *(re_dfastate_t **)(aVar4.idx + 0x2c) = prVar35;\n                      aVar46 = aVar4;\n                      prVar35 = re_acquire_state_context\n                                          (&rStack_208,(re_dfa_t *)aVar4.mbcset,\n                                           (re_node_set *)aVar49.mbcset,6);\n                      *(re_dfastate_t **)(aVar4.idx + 0x30) = prVar35;\n                      rVar21 = rStack_208;\n                      if (((*(re_dfastate_t **)(aVar4.idx + 0x28) == (re_dfastate_t *)0x0) ||\n                          (*(re_dfastate_t **)(aVar4.idx + 0x2c) == (re_dfastate_t *)0x0)) ||\n                         (prVar35 == (re_dfastate_t *)0x0)) goto LAB_00056cb8;\n                    }" else (compound_statement "{\n                      aVar49.sbcset = (re_bitset_ptr_t)&rStack_204;\n                      prVar35 = re_acquire_state_context\n                                          (&rStack_208,(re_dfa_t *)aVar4.mbcset,\n                                           (re_node_set *)aVar49.mbcset,1);\n                      *(re_dfastate_t **)(aVar4.idx + 0x28) = prVar35;\n                      prVar35 = re_acquire_state_context\n                                          (&rStack_208,(re_dfa_t *)aVar4.mbcset,\n                                           (re_node_set *)aVar49.mbcset,2);\n                      *(re_dfastate_t **)(aVar4.idx + 0x2c) = prVar35;\n                      aVar46 = aVar4;\n                      prVar35 = re_acquire_state_context\n                                          (&rStack_208,(re_dfa_t *)aVar4.mbcset,\n                                           (re_node_set *)aVar49.mbcset,6);\n                      *(re_dfastate_t **)(aVar4.idx + 0x30) = prVar35;\n                      rVar21 = rStack_208;\n                      if (((*(re_dfastate_t **)(aVar4.idx + 0x28) == (re_dfastate_t *)0x0) ||\n                          (*(re_dfastate_t **)(aVar4.idx + 0x2c) == (re_dfastate_t *)0x0)) ||\n                         (prVar35 == (re_dfastate_t *)0x0)) goto LAB_00056cb8;\n                    }" { (expression_statement "aVar49.sbcset = (re_bitset_ptr_t)&rStack_204;" (assignment_expression "aVar49.sbcset = (re_bitset_ptr_t)&rStack_204" (field_expression "aVar49.sbcset" identifier . field_identifier) = (binary_expression "(re_bitset_ptr_t)&rStack_204" (parenthesized_expression "(re_bitset_ptr_t)" ( identifier )) & identifier)) ;) (expression_statement "prVar35 = re_acquire_state_context\n                                          (&rStack_208,(re_dfa_t *)aVar4.mbcset,\n                                           (re_node_set *)aVar49.mbcset,1);" (assignment_expression "prVar35 = re_acquire_state_context\n                                          (&rStack_208,(re_dfa_t *)aVar4.mbcset,\n                                           (re_node_set *)aVar49.mbcset,1)" identifier = (call_expression "re_acquire_state_context\n                                          (&rStack_208,(re_dfa_t *)aVar4.mbcset,\n                                           (re_node_set *)aVar49.mbcset,1)" identifier (argument_list "(&rStack_208,(re_dfa_t *)aVar4.mbcset,\n                                           (re_node_set *)aVar49.mbcset,1)" ( (pointer_expression "&rStack_208" & identifier) , (cast_expression "(re_dfa_t *)aVar4.mbcset" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "aVar4.mbcset" identifier . field_identifier)) , (cast_expression "(re_node_set *)aVar49.mbcset" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "aVar49.mbcset" identifier . field_identifier)) , number_literal )))) ;) (expression_statement "*(re_dfastate_t **)(aVar4.idx + 0x28) = prVar35;" (assignment_expression "*(re_dfastate_t **)(aVar4.idx + 0x28) = prVar35" (pointer_expression "*(re_dfastate_t **)(aVar4.idx + 0x28)" * (cast_expression "(re_dfastate_t **)(aVar4.idx + 0x28)" ( (type_descriptor "re_dfastate_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(aVar4.idx + 0x28)" ( (binary_expression "aVar4.idx + 0x28" (field_expression "aVar4.idx" identifier . field_identifier) + number_literal) )))) = identifier) ;) (expression_statement "prVar35 = re_acquire_state_context\n                                          (&rStack_208,(re_dfa_t *)aVar4.mbcset,\n                                           (re_node_set *)aVar49.mbcset,2);" (assignment_expression "prVar35 = re_acquire_state_context\n                                          (&rStack_208,(re_dfa_t *)aVar4.mbcset,\n                                           (re_node_set *)aVar49.mbcset,2)" identifier = (call_expression "re_acquire_state_context\n                                          (&rStack_208,(re_dfa_t *)aVar4.mbcset,\n                                           (re_node_set *)aVar49.mbcset,2)" identifier (argument_list "(&rStack_208,(re_dfa_t *)aVar4.mbcset,\n                                           (re_node_set *)aVar49.mbcset,2)" ( (pointer_expression "&rStack_208" & identifier) , (cast_expression "(re_dfa_t *)aVar4.mbcset" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "aVar4.mbcset" identifier . field_identifier)) , (cast_expression "(re_node_set *)aVar49.mbcset" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "aVar49.mbcset" identifier . field_identifier)) , number_literal )))) ;) (expression_statement "*(re_dfastate_t **)(aVar4.idx + 0x2c) = prVar35;" (assignment_expression "*(re_dfastate_t **)(aVar4.idx + 0x2c) = prVar35" (pointer_expression "*(re_dfastate_t **)(aVar4.idx + 0x2c)" * (cast_expression "(re_dfastate_t **)(aVar4.idx + 0x2c)" ( (type_descriptor "re_dfastate_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(aVar4.idx + 0x2c)" ( (binary_expression "aVar4.idx + 0x2c" (field_expression "aVar4.idx" identifier . field_identifier) + number_literal) )))) = identifier) ;) (expression_statement "aVar46 = aVar4;" (assignment_expression "aVar46 = aVar4" identifier = identifier) ;) (expression_statement "prVar35 = re_acquire_state_context\n                                          (&rStack_208,(re_dfa_t *)aVar4.mbcset,\n                                           (re_node_set *)aVar49.mbcset,6);" (assignment_expression "prVar35 = re_acquire_state_context\n                                          (&rStack_208,(re_dfa_t *)aVar4.mbcset,\n                                           (re_node_set *)aVar49.mbcset,6)" identifier = (call_expression "re_acquire_state_context\n                                          (&rStack_208,(re_dfa_t *)aVar4.mbcset,\n                                           (re_node_set *)aVar49.mbcset,6)" identifier (argument_list "(&rStack_208,(re_dfa_t *)aVar4.mbcset,\n                                           (re_node_set *)aVar49.mbcset,6)" ( (pointer_expression "&rStack_208" & identifier) , (cast_expression "(re_dfa_t *)aVar4.mbcset" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "aVar4.mbcset" identifier . field_identifier)) , (cast_expression "(re_node_set *)aVar49.mbcset" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "aVar49.mbcset" identifier . field_identifier)) , number_literal )))) ;) (expression_statement "*(re_dfastate_t **)(aVar4.idx + 0x30) = prVar35;" (assignment_expression "*(re_dfastate_t **)(aVar4.idx + 0x30) = prVar35" (pointer_expression "*(re_dfastate_t **)(aVar4.idx + 0x30)" * (cast_expression "(re_dfastate_t **)(aVar4.idx + 0x30)" ( (type_descriptor "re_dfastate_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(aVar4.idx + 0x30)" ( (binary_expression "aVar4.idx + 0x30" (field_expression "aVar4.idx" identifier . field_identifier) + number_literal) )))) = identifier) ;) (expression_statement "rVar21 = rStack_208;" (assignment_expression "rVar21 = rStack_208" identifier = identifier) ;) (if_statement "if (((*(re_dfastate_t **)(aVar4.idx + 0x28) == (re_dfastate_t *)0x0) ||\n                          (*(re_dfastate_t **)(aVar4.idx + 0x2c) == (re_dfastate_t *)0x0)) ||\n                         (prVar35 == (re_dfastate_t *)0x0)) goto LAB_00056cb8;" if (parenthesized_expression "(((*(re_dfastate_t **)(aVar4.idx + 0x28) == (re_dfastate_t *)0x0) ||\n                          (*(re_dfastate_t **)(aVar4.idx + 0x2c) == (re_dfastate_t *)0x0)) ||\n                         (prVar35 == (re_dfastate_t *)0x0))" ( (binary_expression "((*(re_dfastate_t **)(aVar4.idx + 0x28) == (re_dfastate_t *)0x0) ||\n                          (*(re_dfastate_t **)(aVar4.idx + 0x2c) == (re_dfastate_t *)0x0)) ||\n                         (prVar35 == (re_dfastate_t *)0x0)" (parenthesized_expression "((*(re_dfastate_t **)(aVar4.idx + 0x28) == (re_dfastate_t *)0x0) ||\n                          (*(re_dfastate_t **)(aVar4.idx + 0x2c) == (re_dfastate_t *)0x0))" ( (binary_expression "(*(re_dfastate_t **)(aVar4.idx + 0x28) == (re_dfastate_t *)0x0) ||\n                          (*(re_dfastate_t **)(aVar4.idx + 0x2c) == (re_dfastate_t *)0x0)" (parenthesized_expression "(*(re_dfastate_t **)(aVar4.idx + 0x28) == (re_dfastate_t *)0x0)" ( (binary_expression "*(re_dfastate_t **)(aVar4.idx + 0x28) == (re_dfastate_t *)0x0" (pointer_expression "*(re_dfastate_t **)(aVar4.idx + 0x28)" * (cast_expression "(re_dfastate_t **)(aVar4.idx + 0x28)" ( (type_descriptor "re_dfastate_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(aVar4.idx + 0x28)" ( (binary_expression "aVar4.idx + 0x28" (field_expression "aVar4.idx" identifier . field_identifier) + number_literal) )))) == (cast_expression "(re_dfastate_t *)0x0" ( (type_descriptor "re_dfastate_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(*(re_dfastate_t **)(aVar4.idx + 0x2c) == (re_dfastate_t *)0x0)" ( (binary_expression "*(re_dfastate_t **)(aVar4.idx + 0x2c) == (re_dfastate_t *)0x0" (pointer_expression "*(re_dfastate_t **)(aVar4.idx + 0x2c)" * (cast_expression "(re_dfastate_t **)(aVar4.idx + 0x2c)" ( (type_descriptor "re_dfastate_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(aVar4.idx + 0x2c)" ( (binary_expression "aVar4.idx + 0x2c" (field_expression "aVar4.idx" identifier . field_identifier) + number_literal) )))) == (cast_expression "(re_dfastate_t *)0x0" ( (type_descriptor "re_dfastate_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) || (parenthesized_expression "(prVar35 == (re_dfastate_t *)0x0)" ( (binary_expression "prVar35 == (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_00056cb8;" goto statement_identifier ;)) }))) (expression_statement "(**(code **)(puVar62 + 0x23dc0))(rStack_204.elems);" (call_expression "(**(code **)(puVar62 + 0x23dc0))(rStack_204.elems)" (parenthesized_expression "(**(code **)(puVar62 + 0x23dc0))" ( (pointer_expression "**(code **)(puVar62 + 0x23dc0)" * (pointer_expression "*(code **)(puVar62 + 0x23dc0)" * (cast_expression "(code **)(puVar62 + 0x23dc0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar62 + 0x23dc0)" ( (binary_expression "puVar62 + 0x23dc0" identifier + number_literal) ))))) )) (argument_list "(rStack_204.elems)" ( (field_expression "rStack_204.elems" identifier . field_identifier) ))) ;) (expression_statement "rVar21 = rVar34;" (assignment_expression "rVar21 = rVar34" identifier = identifier) ;) })) })) (labeled_statement "LAB_00056cb8:\n                rStack_20c = rVar21;" statement_identifier : (expression_statement "rStack_20c = rVar21;" (assignment_expression "rStack_20c = rVar21" identifier = identifier) ;)) (expression_statement "free_workarea_compile((regex_t *)preg_00.mbcset);" (call_expression "free_workarea_compile((regex_t *)preg_00.mbcset)" identifier (argument_list "((regex_t *)preg_00.mbcset)" ( (cast_expression "(regex_t *)preg_00.mbcset" ( (type_descriptor "regex_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "preg_00.mbcset" identifier . field_identifier)) ))) ;) (expression_statement "re_string_destruct((re_string_t *)&aStack_1f8);" (call_expression "re_string_destruct((re_string_t *)&aStack_1f8)" identifier (argument_list "((re_string_t *)&aStack_1f8)" ( (cast_expression "(re_string_t *)&aStack_1f8" ( (type_descriptor "re_string_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&aStack_1f8" & identifier)) ))) ;) (expression_statement "rVar21 = rStack_20c;" (assignment_expression "rVar21 = rStack_20c" identifier = identifier) ;) (if_statement "if (rStack_20c != _REG_NOERROR) {\n                  if (*(int *)(puVar62 + 0x23c78) != 0) {\n                    (**(code **)(puVar62 + 0x23df0))((pthread_mutex_t *)(aVar4.idx + 0x88));\n                  }\n                  free_dfa_content((re_dfa_t *)aVar4.mbcset);\n                  *preg_00.sbcset = 0;\n                  ((re_node_set *)&(preg_00.mbcset)->range_starts)->alloc = 0;\n                  rVar21 = rStack_20c;\n                }" if (parenthesized_expression "(rStack_20c != _REG_NOERROR)" ( (binary_expression "rStack_20c != _REG_NOERROR" identifier != identifier) )) (compound_statement "{\n                  if (*(int *)(puVar62 + 0x23c78) != 0) {\n                    (**(code **)(puVar62 + 0x23df0))((pthread_mutex_t *)(aVar4.idx + 0x88));\n                  }\n                  free_dfa_content((re_dfa_t *)aVar4.mbcset);\n                  *preg_00.sbcset = 0;\n                  ((re_node_set *)&(preg_00.mbcset)->range_starts)->alloc = 0;\n                  rVar21 = rStack_20c;\n                }" { (if_statement "if (*(int *)(puVar62 + 0x23c78) != 0) {\n                    (**(code **)(puVar62 + 0x23df0))((pthread_mutex_t *)(aVar4.idx + 0x88));\n                  }" if (parenthesized_expression "(*(int *)(puVar62 + 0x23c78) != 0)" ( (binary_expression "*(int *)(puVar62 + 0x23c78) != 0" (pointer_expression "*(int *)(puVar62 + 0x23c78)" * (cast_expression "(int *)(puVar62 + 0x23c78)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar62 + 0x23c78)" ( (binary_expression "puVar62 + 0x23c78" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                    (**(code **)(puVar62 + 0x23df0))((pthread_mutex_t *)(aVar4.idx + 0x88));\n                  }" { (expression_statement "(**(code **)(puVar62 + 0x23df0))((pthread_mutex_t *)(aVar4.idx + 0x88));" (call_expression "(**(code **)(puVar62 + 0x23df0))((pthread_mutex_t *)(aVar4.idx + 0x88))" (parenthesized_expression "(**(code **)(puVar62 + 0x23df0))" ( (pointer_expression "**(code **)(puVar62 + 0x23df0)" * (pointer_expression "*(code **)(puVar62 + 0x23df0)" * (cast_expression "(code **)(puVar62 + 0x23df0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar62 + 0x23df0)" ( (binary_expression "puVar62 + 0x23df0" identifier + number_literal) ))))) )) (argument_list "((pthread_mutex_t *)(aVar4.idx + 0x88))" ( (cast_expression "(pthread_mutex_t *)(aVar4.idx + 0x88)" ( (type_descriptor "pthread_mutex_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(aVar4.idx + 0x88)" ( (binary_expression "aVar4.idx + 0x88" (field_expression "aVar4.idx" identifier . field_identifier) + number_literal) ))) ))) ;) })) (expression_statement "free_dfa_content((re_dfa_t *)aVar4.mbcset);" (call_expression "free_dfa_content((re_dfa_t *)aVar4.mbcset)" identifier (argument_list "((re_dfa_t *)aVar4.mbcset)" ( (cast_expression "(re_dfa_t *)aVar4.mbcset" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "aVar4.mbcset" identifier . field_identifier)) ))) ;) (expression_statement "*preg_00.sbcset = 0;" (assignment_expression "*preg_00.sbcset = 0" (pointer_expression "*preg_00.sbcset" * (field_expression "preg_00.sbcset" identifier . field_identifier)) = number_literal) ;) (expression_statement "((re_node_set *)&(preg_00.mbcset)->range_starts)->alloc = 0;" (assignment_expression "((re_node_set *)&(preg_00.mbcset)->range_starts)->alloc = 0" (field_expression "((re_node_set *)&(preg_00.mbcset)->range_starts)->alloc" (parenthesized_expression "((re_node_set *)&(preg_00.mbcset)->range_starts)" ( (cast_expression "(re_node_set *)&(preg_00.mbcset)->range_starts" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(preg_00.mbcset)->range_starts" & (field_expression "(preg_00.mbcset)->range_starts" (parenthesized_expression "(preg_00.mbcset)" ( (field_expression "preg_00.mbcset" identifier . field_identifier) )) -> field_identifier))) )) -> field_identifier) = number_literal) ;) (expression_statement "rVar21 = rStack_20c;" (assignment_expression "rVar21 = rStack_20c" identifier = identifier) ;) })) (goto_statement "goto LAB_00056cfc;" goto statement_identifier ;) })) })) })) }))))))))) }) (else_clause "else {\n        aVar49.sbcset = (re_bitset_ptr_t)0x0;\n        if ((re_dfa_t *)aVar45.sbcset != (re_dfa_t *)0x0) {\n          aVar56.mbcset =\n               (re_charset_t *)create_tree(prVar59,(bin_tree_t *)0x0,(bin_tree_t *)0x0,END_OF_RE);\n          goto LAB_000564b0;\n        }\nLAB_000566f4:\n        *(bin_tree_t **)(aVar4.idx + 0x34) = (bin_tree_t *)0x0;\n        rVar21 = rStack_20c;\n      }" else (compound_statement "{\n        aVar49.sbcset = (re_bitset_ptr_t)0x0;\n        if ((re_dfa_t *)aVar45.sbcset != (re_dfa_t *)0x0) {\n          aVar56.mbcset =\n               (re_charset_t *)create_tree(prVar59,(bin_tree_t *)0x0,(bin_tree_t *)0x0,END_OF_RE);\n          goto LAB_000564b0;\n        }\nLAB_000566f4:\n        *(bin_tree_t **)(aVar4.idx + 0x34) = (bin_tree_t *)0x0;\n        rVar21 = rStack_20c;\n      }" { (expression_statement "aVar49.sbcset = (re_bitset_ptr_t)0x0;" (assignment_expression "aVar49.sbcset = (re_bitset_ptr_t)0x0" (field_expression "aVar49.sbcset" identifier . field_identifier) = (cast_expression "(re_bitset_ptr_t)0x0" ( (type_descriptor "re_bitset_ptr_t" type_identifier) ) number_literal)) ;) (if_statement "if ((re_dfa_t *)aVar45.sbcset != (re_dfa_t *)0x0) {\n          aVar56.mbcset =\n               (re_charset_t *)create_tree(prVar59,(bin_tree_t *)0x0,(bin_tree_t *)0x0,END_OF_RE);\n          goto LAB_000564b0;\n        }" if (parenthesized_expression "((re_dfa_t *)aVar45.sbcset != (re_dfa_t *)0x0)" ( (binary_expression "(re_dfa_t *)aVar45.sbcset != (re_dfa_t *)0x0" (cast_expression "(re_dfa_t *)aVar45.sbcset" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "aVar45.sbcset" identifier . field_identifier)) != (cast_expression "(re_dfa_t *)0x0" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          aVar56.mbcset =\n               (re_charset_t *)create_tree(prVar59,(bin_tree_t *)0x0,(bin_tree_t *)0x0,END_OF_RE);\n          goto LAB_000564b0;\n        }" { (expression_statement "aVar56.mbcset =\n               (re_charset_t *)create_tree(prVar59,(bin_tree_t *)0x0,(bin_tree_t *)0x0,END_OF_RE);" (assignment_expression "aVar56.mbcset =\n               (re_charset_t *)create_tree(prVar59,(bin_tree_t *)0x0,(bin_tree_t *)0x0,END_OF_RE)" (field_expression "aVar56.mbcset" identifier . field_identifier) = (cast_expression "(re_charset_t *)create_tree(prVar59,(bin_tree_t *)0x0,(bin_tree_t *)0x0,END_OF_RE)" ( (type_descriptor "re_charset_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "create_tree(prVar59,(bin_tree_t *)0x0,(bin_tree_t *)0x0,END_OF_RE)" identifier (argument_list "(prVar59,(bin_tree_t *)0x0,(bin_tree_t *)0x0,END_OF_RE)" ( identifier , (cast_expression "(bin_tree_t *)0x0" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (cast_expression "(bin_tree_t *)0x0" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , identifier ))))) ;) (goto_statement "goto LAB_000564b0;" goto statement_identifier ;) })) (labeled_statement "LAB_000566f4:\n        *(bin_tree_t **)(aVar4.idx + 0x34) = (bin_tree_t *)0x0;" statement_identifier : (expression_statement "*(bin_tree_t **)(aVar4.idx + 0x34) = (bin_tree_t *)0x0;" (assignment_expression "*(bin_tree_t **)(aVar4.idx + 0x34) = (bin_tree_t *)0x0" (pointer_expression "*(bin_tree_t **)(aVar4.idx + 0x34)" * (cast_expression "(bin_tree_t **)(aVar4.idx + 0x34)" ( (type_descriptor "bin_tree_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(aVar4.idx + 0x34)" ( (binary_expression "aVar4.idx + 0x34" (field_expression "aVar4.idx" identifier . field_identifier) + number_literal) )))) = (cast_expression "(bin_tree_t *)0x0" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "rVar21 = rStack_20c;" (assignment_expression "rVar21 = rStack_20c" identifier = identifier) ;) }))) (labeled_statement "LAB_00056168:\n      rStack_20c = rVar21;" statement_identifier : (expression_statement "rStack_20c = rVar21;" (assignment_expression "rStack_20c = rVar21" identifier = identifier) ;)) (expression_statement "free_workarea_compile((regex_t *)preg_00.mbcset);" (call_expression "free_workarea_compile((regex_t *)preg_00.mbcset)" identifier (argument_list "((regex_t *)preg_00.mbcset)" ( (cast_expression "(regex_t *)preg_00.mbcset" ( (type_descriptor "regex_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "preg_00.mbcset" identifier . field_identifier)) ))) ;) (expression_statement "re_string_destruct((re_string_t *)&aStack_1f8);" (call_expression "re_string_destruct((re_string_t *)&aStack_1f8)" identifier (argument_list "((re_string_t *)&aStack_1f8)" ( (cast_expression "(re_string_t *)&aStack_1f8" ( (type_descriptor "re_string_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&aStack_1f8" & identifier)) ))) ;) (if_statement "if (*(int *)(puVar62 + 0x23c78) != 0) {\n        (**(code **)(puVar62 + 0x23df0))((pthread_mutex_t *)(aVar4.idx + 0x88));\n      }" if (parenthesized_expression "(*(int *)(puVar62 + 0x23c78) != 0)" ( (binary_expression "*(int *)(puVar62 + 0x23c78) != 0" (pointer_expression "*(int *)(puVar62 + 0x23c78)" * (cast_expression "(int *)(puVar62 + 0x23c78)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar62 + 0x23c78)" ( (binary_expression "puVar62 + 0x23c78" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n        (**(code **)(puVar62 + 0x23df0))((pthread_mutex_t *)(aVar4.idx + 0x88));\n      }" { (expression_statement "(**(code **)(puVar62 + 0x23df0))((pthread_mutex_t *)(aVar4.idx + 0x88));" (call_expression "(**(code **)(puVar62 + 0x23df0))((pthread_mutex_t *)(aVar4.idx + 0x88))" (parenthesized_expression "(**(code **)(puVar62 + 0x23df0))" ( (pointer_expression "**(code **)(puVar62 + 0x23df0)" * (pointer_expression "*(code **)(puVar62 + 0x23df0)" * (cast_expression "(code **)(puVar62 + 0x23df0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar62 + 0x23df0)" ( (binary_expression "puVar62 + 0x23df0" identifier + number_literal) ))))) )) (argument_list "((pthread_mutex_t *)(aVar4.idx + 0x88))" ( (cast_expression "(pthread_mutex_t *)(aVar4.idx + 0x88)" ( (type_descriptor "pthread_mutex_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(aVar4.idx + 0x88)" ( (binary_expression "aVar4.idx + 0x88" (field_expression "aVar4.idx" identifier . field_identifier) + number_literal) ))) ))) ;) })) (expression_statement "free_dfa_content((re_dfa_t *)aVar4.mbcset);" (call_expression "free_dfa_content((re_dfa_t *)aVar4.mbcset)" identifier (argument_list "((re_dfa_t *)aVar4.mbcset)" ( (cast_expression "(re_dfa_t *)aVar4.mbcset" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "aVar4.mbcset" identifier . field_identifier)) ))) ;) (expression_statement "*preg_00.sbcset = 0;" (assignment_expression "*preg_00.sbcset = 0" (pointer_expression "*preg_00.sbcset" * (field_expression "preg_00.sbcset" identifier . field_identifier)) = number_literal) ;) (expression_statement "((re_node_set *)&(preg_00.mbcset)->range_starts)->alloc = 0;" (assignment_expression "((re_node_set *)&(preg_00.mbcset)->range_starts)->alloc = 0" (field_expression "((re_node_set *)&(preg_00.mbcset)->range_starts)->alloc" (parenthesized_expression "((re_node_set *)&(preg_00.mbcset)->range_starts)" ( (cast_expression "(re_node_set *)&(preg_00.mbcset)->range_starts" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(preg_00.mbcset)->range_starts" & (field_expression "(preg_00.mbcset)->range_starts" (parenthesized_expression "(preg_00.mbcset)" ( (field_expression "preg_00.mbcset" identifier . field_identifier) )) -> field_identifier))) )) -> field_identifier) = number_literal) ;) (expression_statement "rVar21 = rStack_20c;" (assignment_expression "rVar21 = rStack_20c" identifier = identifier) ;) (goto_statement "goto LAB_00056cfc;" goto statement_identifier ;) })) (expression_statement "aVar46.sbcset = (re_bitset_ptr_t)0x0;" (assignment_expression "aVar46.sbcset = (re_bitset_ptr_t)0x0" (field_expression "aVar46.sbcset" identifier . field_identifier) = (cast_expression "(re_bitset_ptr_t)0x0" ( (type_descriptor "re_bitset_ptr_t" type_identifier) ) number_literal)) ;) (expression_statement "iVar55 = (**(code **)(puVar62 + 0x23d98))((pthread_mutex_t *)(aVar4.idx + 0x88));" (assignment_expression "iVar55 = (**(code **)(puVar62 + 0x23d98))((pthread_mutex_t *)(aVar4.idx + 0x88))" identifier = (call_expression "(**(code **)(puVar62 + 0x23d98))((pthread_mutex_t *)(aVar4.idx + 0x88))" (parenthesized_expression "(**(code **)(puVar62 + 0x23d98))" ( (pointer_expression "**(code **)(puVar62 + 0x23d98)" * (pointer_expression "*(code **)(puVar62 + 0x23d98)" * (cast_expression "(code **)(puVar62 + 0x23d98)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar62 + 0x23d98)" ( (binary_expression "puVar62 + 0x23d98" identifier + number_literal) ))))) )) (argument_list "((pthread_mutex_t *)(aVar4.idx + 0x88))" ( (cast_expression "(pthread_mutex_t *)(aVar4.idx + 0x88)" ( (type_descriptor "pthread_mutex_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(aVar4.idx + 0x88)" ( (binary_expression "aVar4.idx + 0x88" (field_expression "aVar4.idx" identifier . field_identifier) + number_literal) ))) )))) ;) (if_statement "if (iVar55 != 0) goto LAB_00056e5c;" if (parenthesized_expression "(iVar55 != 0)" ( (binary_expression "iVar55 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00056e5c;" goto statement_identifier ;)) (if_statement "if (rStack_20c == _REG_NOERROR) goto LAB_00056054;" if (parenthesized_expression "(rStack_20c == _REG_NOERROR)" ( (binary_expression "rStack_20c == _REG_NOERROR" identifier == identifier) )) (goto_statement "goto LAB_00056054;" goto statement_identifier ;)) }) (else_clause "else {\nLAB_00056e5c:\n    rStack_20c = _REG_ESPACE;\n  }" else (compound_statement "{\nLAB_00056e5c:\n    rStack_20c = _REG_ESPACE;\n  }" { (labeled_statement "LAB_00056e5c:\n    rStack_20c = _REG_ESPACE;" statement_identifier : (expression_statement "rStack_20c = _REG_ESPACE;" (assignment_expression "rStack_20c = _REG_ESPACE" identifier = identifier) ;)) }))) (expression_statement "free_dfa_content((re_dfa_t *)aVar4.mbcset);" (call_expression "free_dfa_content((re_dfa_t *)aVar4.mbcset)" identifier (argument_list "((re_dfa_t *)aVar4.mbcset)" ( (cast_expression "(re_dfa_t *)aVar4.mbcset" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "aVar4.mbcset" identifier . field_identifier)) ))) ;) (expression_statement "*preg_00.sbcset = 0;" (assignment_expression "*preg_00.sbcset = 0" (pointer_expression "*preg_00.sbcset" * (field_expression "preg_00.sbcset" identifier . field_identifier)) = number_literal) ;) (expression_statement "((re_node_set *)&(preg_00.mbcset)->range_starts)->alloc = 0;" (assignment_expression "((re_node_set *)&(preg_00.mbcset)->range_starts)->alloc = 0" (field_expression "((re_node_set *)&(preg_00.mbcset)->range_starts)->alloc" (parenthesized_expression "((re_node_set *)&(preg_00.mbcset)->range_starts)" ( (cast_expression "(re_node_set *)&(preg_00.mbcset)->range_starts" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(preg_00.mbcset)->range_starts" & (field_expression "(preg_00.mbcset)->range_starts" (parenthesized_expression "(preg_00.mbcset)" ( (field_expression "preg_00.mbcset" identifier . field_identifier) )) -> field_identifier))) )) -> field_identifier) = number_literal) ;) (expression_statement "rVar21 = rStack_20c;" (assignment_expression "rVar21 = rStack_20c" identifier = identifier) ;) (labeled_statement "LAB_00056cfc:\n  if (pcStack_1a4 == (char *)**(int **)(puVar62 + 0x23dac)) {\n    return rVar21;\n  }" statement_identifier : (if_statement "if (pcStack_1a4 == (char *)**(int **)(puVar62 + 0x23dac)) {\n    return rVar21;\n  }" if (parenthesized_expression "(pcStack_1a4 == (char *)**(int **)(puVar62 + 0x23dac))" ( (binary_expression "pcStack_1a4 == (char *)**(int **)(puVar62 + 0x23dac)" identifier == (cast_expression "(char *)**(int **)(puVar62 + 0x23dac)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(int **)(puVar62 + 0x23dac)" * (pointer_expression "*(int **)(puVar62 + 0x23dac)" * (cast_expression "(int **)(puVar62 + 0x23dac)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar62 + 0x23dac)" ( (binary_expression "puVar62 + 0x23dac" identifier + number_literal) ))))))) )) (compound_statement "{\n    return rVar21;\n  }" { (return_statement "return rVar21;" return identifier ;) }))) (expression_statement "pcVar5 = *(code **)(puVar62 + 0x23d6c);" (assignment_expression "pcVar5 = *(code **)(puVar62 + 0x23d6c)" identifier = (pointer_expression "*(code **)(puVar62 + 0x23d6c)" * (cast_expression "(code **)(puVar62 + 0x23d6c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar62 + 0x23d6c)" ( (binary_expression "puVar62 + 0x23d6c" identifier + number_literal) ))))) ;) (expression_statement "pattern = pcStack_1a4;" (assignment_expression "pattern = pcStack_1a4" identifier = identifier) ;) (expression_statement "(*pcVar5)();" (call_expression "(*pcVar5)()" (parenthesized_expression "(*pcVar5)" ( (pointer_expression "*pcVar5" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "syntax = **(reg_syntax_t **)(pcVar5 + 0x22b18);" (assignment_expression "syntax = **(reg_syntax_t **)(pcVar5 + 0x22b18)" identifier = (pointer_expression "**(reg_syntax_t **)(pcVar5 + 0x22b18)" * (pointer_expression "*(reg_syntax_t **)(pcVar5 + 0x22b18)" * (cast_expression "(reg_syntax_t **)(pcVar5 + 0x22b18)" ( (type_descriptor "reg_syntax_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar5 + 0x22b18)" ( (binary_expression "pcVar5 + 0x22b18" identifier + number_literal) )))))) ;) (expression_statement "*(byte *)&((re_node_set *)&(aVar49.mbcset)->nequiv_classes)->alloc =\n       *(byte *)&((re_node_set *)&(aVar49.mbcset)->nequiv_classes)->alloc & 0xf6 |\n       (byte)(((syntax << 6) >> 0x1f) << 3) | 1;" (assignment_expression "*(byte *)&((re_node_set *)&(aVar49.mbcset)->nequiv_classes)->alloc =\n       *(byte *)&((re_node_set *)&(aVar49.mbcset)->nequiv_classes)->alloc & 0xf6 |\n       (byte)(((syntax << 6) >> 0x1f) << 3) | 1" (pointer_expression "*(byte *)&((re_node_set *)&(aVar49.mbcset)->nequiv_classes)->alloc" * (cast_expression "(byte *)&((re_node_set *)&(aVar49.mbcset)->nequiv_classes)->alloc" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&((re_node_set *)&(aVar49.mbcset)->nequiv_classes)->alloc" & (field_expression "((re_node_set *)&(aVar49.mbcset)->nequiv_classes)->alloc" (parenthesized_expression "((re_node_set *)&(aVar49.mbcset)->nequiv_classes)" ( (cast_expression "(re_node_set *)&(aVar49.mbcset)->nequiv_classes" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(aVar49.mbcset)->nequiv_classes" & (field_expression "(aVar49.mbcset)->nequiv_classes" (parenthesized_expression "(aVar49.mbcset)" ( (field_expression "aVar49.mbcset" identifier . field_identifier) )) -> field_identifier))) )) -> field_identifier)))) = (binary_expression "*(byte *)&((re_node_set *)&(aVar49.mbcset)->nequiv_classes)->alloc & 0xf6 |\n       (byte)(((syntax << 6) >> 0x1f) << 3) | 1" (binary_expression "*(byte *)&((re_node_set *)&(aVar49.mbcset)->nequiv_classes)->alloc & 0xf6 |\n       (byte)(((syntax << 6) >> 0x1f) << 3)" (binary_expression "*(byte *)&((re_node_set *)&(aVar49.mbcset)->nequiv_classes)->alloc & 0xf6" (pointer_expression "*(byte *)&((re_node_set *)&(aVar49.mbcset)->nequiv_classes)->alloc" * (cast_expression "(byte *)&((re_node_set *)&(aVar49.mbcset)->nequiv_classes)->alloc" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&((re_node_set *)&(aVar49.mbcset)->nequiv_classes)->alloc" & (field_expression "((re_node_set *)&(aVar49.mbcset)->nequiv_classes)->alloc" (parenthesized_expression "((re_node_set *)&(aVar49.mbcset)->nequiv_classes)" ( (cast_expression "(re_node_set *)&(aVar49.mbcset)->nequiv_classes" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(aVar49.mbcset)->nequiv_classes" & (field_expression "(aVar49.mbcset)->nequiv_classes" (parenthesized_expression "(aVar49.mbcset)" ( (field_expression "aVar49.mbcset" identifier . field_identifier) )) -> field_identifier))) )) -> field_identifier)))) & number_literal) | (call_expression "(byte)(((syntax << 6) >> 0x1f) << 3)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(((syntax << 6) >> 0x1f) << 3)" ( (binary_expression "((syntax << 6) >> 0x1f) << 3" (parenthesized_expression "((syntax << 6) >> 0x1f)" ( (binary_expression "(syntax << 6) >> 0x1f" (parenthesized_expression "(syntax << 6)" ( (binary_expression "syntax << 6" identifier << number_literal) )) >> number_literal) )) << number_literal) )))) | number_literal)) ;) (expression_statement "rVar21 = re_compile_internal((regex_t *)aVar49.mbcset,pattern,aVar46.ctx_type,syntax);" (assignment_expression "rVar21 = re_compile_internal((regex_t *)aVar49.mbcset,pattern,aVar46.ctx_type,syntax)" identifier = (call_expression "re_compile_internal((regex_t *)aVar49.mbcset,pattern,aVar46.ctx_type,syntax)" identifier (argument_list "((regex_t *)aVar49.mbcset,pattern,aVar46.ctx_type,syntax)" ( (cast_expression "(regex_t *)aVar49.mbcset" ( (type_descriptor "regex_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "aVar49.mbcset" identifier . field_identifier)) , identifier , (field_expression "aVar46.ctx_type" identifier . field_identifier) , identifier )))) ;) (if_statement "if (rVar21 == _REG_NOERROR) {\n    rVar21 = _REG_NOERROR;\n  }\n  else {\n    rVar21 = (**(code **)(pcVar5 + 0x22d48))\n                       (0,*(int *)(pcVar5 + 0x22728) + 0x6f48 +\n                          *(int *)(rVar21 * 4 + *(int *)(pcVar5 + 0x22728) + 0x6f04),5);\n  }" if (parenthesized_expression "(rVar21 == _REG_NOERROR)" ( (binary_expression "rVar21 == _REG_NOERROR" identifier == identifier) )) (compound_statement "{\n    rVar21 = _REG_NOERROR;\n  }" { (expression_statement "rVar21 = _REG_NOERROR;" (assignment_expression "rVar21 = _REG_NOERROR" identifier = identifier) ;) }) (else_clause "else {\n    rVar21 = (**(code **)(pcVar5 + 0x22d48))\n                       (0,*(int *)(pcVar5 + 0x22728) + 0x6f48 +\n                          *(int *)(rVar21 * 4 + *(int *)(pcVar5 + 0x22728) + 0x6f04),5);\n  }" else (compound_statement "{\n    rVar21 = (**(code **)(pcVar5 + 0x22d48))\n                       (0,*(int *)(pcVar5 + 0x22728) + 0x6f48 +\n                          *(int *)(rVar21 * 4 + *(int *)(pcVar5 + 0x22728) + 0x6f04),5);\n  }" { (expression_statement "rVar21 = (**(code **)(pcVar5 + 0x22d48))\n                       (0,*(int *)(pcVar5 + 0x22728) + 0x6f48 +\n                          *(int *)(rVar21 * 4 + *(int *)(pcVar5 + 0x22728) + 0x6f04),5);" (assignment_expression "rVar21 = (**(code **)(pcVar5 + 0x22d48))\n                       (0,*(int *)(pcVar5 + 0x22728) + 0x6f48 +\n                          *(int *)(rVar21 * 4 + *(int *)(pcVar5 + 0x22728) + 0x6f04),5)" identifier = (call_expression "(**(code **)(pcVar5 + 0x22d48))\n                       (0,*(int *)(pcVar5 + 0x22728) + 0x6f48 +\n                          *(int *)(rVar21 * 4 + *(int *)(pcVar5 + 0x22728) + 0x6f04),5)" (parenthesized_expression "(**(code **)(pcVar5 + 0x22d48))" ( (pointer_expression "**(code **)(pcVar5 + 0x22d48)" * (pointer_expression "*(code **)(pcVar5 + 0x22d48)" * (cast_expression "(code **)(pcVar5 + 0x22d48)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar5 + 0x22d48)" ( (binary_expression "pcVar5 + 0x22d48" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(pcVar5 + 0x22728) + 0x6f48 +\n                          *(int *)(rVar21 * 4 + *(int *)(pcVar5 + 0x22728) + 0x6f04),5)" ( number_literal , (binary_expression "*(int *)(pcVar5 + 0x22728) + 0x6f48 +\n                          *(int *)(rVar21 * 4 + *(int *)(pcVar5 + 0x22728) + 0x6f04)" (binary_expression "*(int *)(pcVar5 + 0x22728) + 0x6f48" (pointer_expression "*(int *)(pcVar5 + 0x22728)" * (cast_expression "(int *)(pcVar5 + 0x22728)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar5 + 0x22728)" ( (binary_expression "pcVar5 + 0x22728" identifier + number_literal) )))) + number_literal) + (pointer_expression "*(int *)(rVar21 * 4 + *(int *)(pcVar5 + 0x22728) + 0x6f04)" * (cast_expression "(int *)(rVar21 * 4 + *(int *)(pcVar5 + 0x22728) + 0x6f04)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(rVar21 * 4 + *(int *)(pcVar5 + 0x22728) + 0x6f04)" ( (binary_expression "rVar21 * 4 + *(int *)(pcVar5 + 0x22728) + 0x6f04" (binary_expression "rVar21 * 4 + *(int *)(pcVar5 + 0x22728)" (binary_expression "rVar21 * 4" identifier * number_literal) + (pointer_expression "*(int *)(pcVar5 + 0x22728)" * (cast_expression "(int *)(pcVar5 + 0x22728)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar5 + 0x22728)" ( (binary_expression "pcVar5 + 0x22728" identifier + number_literal) ))))) + number_literal) ))))) , number_literal )))) ;) }))) (return_statement "return rVar21;" return identifier ;) (labeled_statement "code_r0x00055b38:\n  if (aVar41.idx < match_first) goto LAB_000557a8;" statement_identifier : (if_statement "if (aVar41.idx < match_first) goto LAB_000557a8;" if (parenthesized_expression "(aVar41.idx < match_first)" ( (binary_expression "aVar41.idx < match_first" (field_expression "aVar41.idx" identifier . field_identifier) < identifier) )) (goto_statement "goto LAB_000557a8;" goto statement_identifier ;))) (goto_statement "goto LAB_00055b44;" goto statement_identifier ;) (labeled_statement "LAB_000557a8:\n  local_150.idx = 1;" statement_identifier : (expression_statement "local_150.idx = 1;" (assignment_expression "local_150.idx = 1" (field_expression "local_150.idx" identifier . field_identifier) = number_literal) ;)) (goto_statement "goto LAB_000557e4;" goto statement_identifier ;) (labeled_statement "LAB_00055914:\n  local_150.idx = 0xc;" statement_identifier : (expression_statement "local_150.idx = 0xc;" (assignment_expression "local_150.idx = 0xc" (field_expression "local_150.idx" identifier . field_identifier) = number_literal) ;)) (expression_statement "aVar46 = aVar15;" (assignment_expression "aVar46 = aVar15" identifier = identifier) ;) (goto_statement "goto LAB_000557e4;" goto statement_identifier ;) })))
(translation_unit "code *******\nFUN_00054610(code *******param_1,code ******param_2,code *******param_3,code *******param_4,\n            code *******param_5,code *******param_6,code ******param_7,code *******param_8,\n            code *******param_9)\n\n{\n  bool bVar1;\n  code *******pppppppcVar2;\n  code *******pppppppcVar3;\n  code *pcVar4;\n  int *piVar5;\n  code *******pppppppcVar6;\n  uint uVar7;\n  code *pcVar8;\n  code *pcVar9;\n  code *pcVar10;\n  code *pcVar11;\n  code *pcVar12;\n  code *****pppppcVar13;\n  code *******pppppppcVar14;\n  code *******pppppppcVar15;\n  uint uVar16;\n  code cVar23;\n  byte *pbVar17;\n  int iVar18;\n  uint uVar19;\n  code ******ppppppcVar20;\n  undefined1 *puVar21;\n  int iVar22;\n  code *******pppppppcVar24;\n  code *******pppppppcVar25;\n  code *******pppppppcVar26;\n  uint uVar27;\n  code *******pppppppcVar28;\n  code *******pppppppcVar29;\n  code *******pppppppcVar30;\n  code *******pppppppcVar31;\n  code ******ppppppcVar32;\n  code *******pppppppcVar33;\n  code *******pppppppcVar34;\n  code ******ppppppcVar35;\n  code *******pppppppcVar36;\n  code *******unaff_s4;\n  int iVar37;\n  code *******unaff_s5;\n  code *******pppppppcVar38;\n  code *******unaff_s7;\n  code ******ppppppcVar39;\n  code ****ppppcVar40;\n  undefined *puVar41;\n  code *******unaff_s8;\n  code *******pppppppcVar42;\n  int iVar43;\n  undefined8 uVar44;\n  code *******pppppppcStack_218;\n  code *******pppppppcStack_20c;\n  code *******pppppppcStack_208;\n  code ******ppppppcStack_204;\n  int iStack_200;\n  int *piStack_1fc;\n  code *******pppppppcStack_1f8;\n  code *******apppppppcStack_1f4 [6];\n  int iStack_1dc;\n  int iStack_1d8;\n  int iStack_1d4;\n  code *******pppppppcStack_1cc;\n  code *******pppppppcStack_1c8;\n  code *******pppppppcStack_1c4;\n  code *******pppppppcStack_1c0;\n  code ******ppppppcStack_1b8;\n  undefined1 uStack_1b0;\n  byte bStack_1af;\n  byte bStack_1ae;\n  char cStack_1ad;\n  code ******ppppppcStack_1a8;\n  int iStack_1a4;\n  code *******pppppppcStack_1a0;\n  code *******pppppppcStack_19c;\n  code *******pppppppcStack_198;\n  code *******pppppppcStack_194;\n  code *******pppppppcStack_190;\n  code *******pppppppcStack_18c;\n  code *******pppppppcStack_188;\n  code *******pppppppcStack_184;\n  code *******pppppppcStack_180;\n  code *pcStack_17c;\n  uint local_168;\n  code *******local_150;\n  code *******local_148;\n  code *******local_144;\n  code *******local_138;\n  int local_118;\n  code *******local_dc;\n  code *******local_d8;\n  code *******local_d4;\n  code *******local_d0;\n  code *******local_cc;\n  code *******local_c8;\n  code *******local_c4;\n  undefined4 local_c0;\n  undefined4 local_bc;\n  undefined4 local_b8;\n  code ******local_b4;\n  code ******local_b0;\n  int *local_ac;\n  int local_a8;\n  int local_9c;\n  code *******local_98;\n  code *******local_94;\n  uint local_90;\n  code *******local_8c;\n  code *******local_88;\n  code *******local_84;\n  code *******local_80;\n  code *******local_7c;\n  undefined4 local_78;\n  code ******local_74;\n  code *******local_70;\n  byte local_6c;\n  byte local_6b;\n  byte local_6a;\n  byte local_69;\n  char local_68;\n  byte local_67;\n  byte local_66;\n  code *******local_64;\n  code *******local_60;\n  code *******local_5c;\n  code *******local_58;\n  code *******local_54;\n  code *******local_50;\n  code *******local_4c;\n  undefined4 local_48;\n  code *******local_44;\n  code *******local_40;\n  int local_3c;\n  code *******local_34;\n  int local_30;\n  code *******local_2c;\n  \n  local_2c = *(code ********)PTR___stack_chk_guard_00079c10;\n  pppppppcVar38 = (code *******)*param_1;\n  pppppppcVar29 = (code *******)0x0;\n  pppppppcVar33 = param_4;\n  (*(code *)PTR_memset_00079b00)(&local_b4,0,0x88);\n  local_148 = (code *******)param_1[4];\n  if (local_148 != (code *******)0x0) {\n    if (((byte)*(code *)(param_1 + 7) & 0x10) == 0) {\n      local_148 = (code *******)0x0;\n    }\n    else if (param_4 == param_5) {\n      local_148 = (code *******)0x0;\n    }\n    else if ((char)*(code *)(param_1 + 7) < '\0') {\n      local_148 = (code *******)0x0;\n    }\n  }\n  if (param_1[6] < param_7) {\n    local_118 = (int)param_7 + (-1 - (int)param_1[6]);\n  }\n  else {\n    local_118 = 0;\n  }\n  pppppppcStack_1a0 = param_4;\n  pppppppcStack_19c = param_1;\n  local_60 = pppppppcVar38;\n  if (param_1[2] == (code ******)0x0) {\n    local_150 = (code *******)0x1;\n  }\n  else if (pppppppcVar38[9] == (code ******)0x0) {\n    local_150 = (code *******)0x1;\n  }\n  else if (pppppppcVar38[10] == (code ******)0x0) {\n    local_150 = (code *******)0x1;\n  }\n  else if (pppppppcVar38[0xb] == (code ******)0x0) {\n    local_150 = (code *******)0x1;\n  }\n  else {\n    pppppppcVar29 = (code *******)pppppppcVar38[0xc];\n    if (pppppppcVar29 == (code *******)0x0) {\n      local_150 = (code *******)0x1;\n    }\n    else {\n      pppppppcVar3 = param_5;\n      if ((((pppppppcVar38[9][2] == (code *****)0x0) && (pppppppcVar38[10][2] == (code *****)0x0))\n          && ((pppppppcVar38[0xb][2] == (code *****)0x0 || (((uint)param_1[7] & 0x1000000) == 0))))\n         && ((pppppppcVar3 = param_4, param_4 != (code *******)0x0 &&\n             (param_4 = param_5, pppppppcVar3 = param_5, param_5 != (code *******)0x0)))) {\n        local_150 = (code *******)0x1;\n        pppppppcStack_1a0 = param_5;\n      }\n      else {\n        param_5 = pppppppcVar3;\n        pppppppcVar3 = (code *******)((int)param_7 - local_118);\n        if (pppppppcVar3 == (code *******)0x0) {\n          pppppppcVar34 = (code *******)(uint)(pppppppcVar38[0x13] != (code ******)0x0);\n        }\n        else {\n          pppppppcVar34 = (code *******)0x1;\n        }\n        ppppppcVar32 = param_1[5];\n        local_6c = (byte)((uint)((int)param_1[3] << 9) >> 0x1f);\n        local_64 = (code *******)pppppppcVar38[0x17];\n        pppppppcVar31 = (code *******)((int)pppppppcVar38[2] + 1);\n        if ((int)pppppppcVar38[2] + 1 < (int)local_64) {\n          pppppppcVar31 = local_64;\n        }\n        pppppppcVar30 = (code *******)(uint)((int)param_3 + 1 < (int)pppppppcVar31);\n        pppppppcVar33 = (code *******)0x1;\n        local_69 = local_6c;\n        if (ppppppcVar32 != (code ******)0x0) {\n          local_69 = 1;\n        }\n        local_6b = (byte)((uint)((int)pppppppcVar38[0x16] << 2) >> 0x1f);\n        local_6a = (byte)((uint)((int)pppppppcVar38[0x16] << 3) >> 0x1f);\n        pppppppcVar29 = (code *******)((int)param_3 + 1);\n        if (pppppppcVar30 == (code *******)0x0) {\n          pppppppcVar29 = pppppppcVar31;\n        }\n        local_b4 = param_2;\n        local_88 = param_3;\n        local_84 = param_3;\n        local_80 = param_3;\n        local_7c = param_3;\n        local_74 = ppppppcVar32;\n        local_150 = (code *******)FUN_00046d2c(&local_b4);\n        pppppppcVar31 = pppppppcVar34;\n        param_6 = param_6;\n        if (local_150 != (code *******)0x0) goto LAB_000557e4;\n        local_70 = pppppppcVar38 + 0x18;\n        local_66 = (byte)((uint)((int)pppppppcVar38[0x16] << 4) >> 0x1f);\n        pppppppcVar2 = (code *******)0x0;\n        local_98 = pppppppcVar2;\n        if ((local_69 == 0) && (local_b0 = param_2, (int)pppppppcVar38[0x17] < 2)) {\n          local_98 = param_3;\n        }\n        local_7c = param_6;\n        local_80 = param_6;\n        local_67 = (byte)((uint)((int)param_1[7] << 7) >> 0x1f);\n        ppppppcVar35 = pppppppcVar38[0x13];\n        pppppppcVar36 = (code *******)((int)ppppppcVar35 * 2);\n        local_5c = param_9;\n        local_58 = (code *******)0xffffffff;\n        local_94 = local_98;\n        if ((int)pppppppcVar36 < 1) {\nLAB_000559f0:\n          local_3c = 1;\n          local_44 = pppppppcVar36;\n          local_34 = pppppppcVar36;\n          if ((pppppppcVar3 < (code *******)0x2) && (((uint)pppppppcVar38[0x16] & 0x40000000) == 0))\n          {\n            local_50 = (code *******)0x0;\nLAB_00055a40:\n            local_78 = 6;\n            if (((uint)param_9 & 1) != 0) {\n              local_78 = 4;\n            }\n            pppppppcVar24 = (code *******)0x1;\n            pppppppcVar25 = param_4;\n            if ((int)param_5 < (int)param_4) {\n              pppppppcVar24 = (code *******)0xffffffff;\n              pppppppcVar25 = param_5;\n            }\n            pppppppcVar26 = param_5;\n            if ((int)param_5 <= (int)param_4) {\n              pppppppcVar26 = param_4;\n            }\n            ppppppcVar35 = pppppppcVar38[0x17];\n            uVar16 = 8;\n            if (local_148 != (code *******)0x0) {\n              if (ppppppcVar35 == (code ******)0x1) {\n                pppppppcVar28 = (code *******)0x4;\n              }\n              else {\n                pppppppcVar28 = pppppppcVar2;\n                if ((-1 < (int)param_1[3] << 9) && (ppppppcVar32 == (code ******)0x0)) {\n                  pppppppcVar28 = (code *******)0x4;\n                }\n              }\n              pppppppcVar29 = (code *******)0x0;\n              if ((int)param_4 <= (int)param_5) {\n                pppppppcVar29 = (code *******)0x2;\n              }\n              uVar16 = (uint)(ppppppcVar32 != (code ******)0x0) | (uint)pppppppcVar28 |\n                       (uint)pppppppcVar29;\n            }\n            local_dc = param_4;\n            if ((int)param_4 < (int)pppppppcVar25) {\n              local_150 = (code *******)0x1;\n              param_6 = pppppppcVar36;\n            }\n            else if ((int)pppppppcVar26 < (int)param_4) {\n              local_150 = (code *******)0x1;\n              param_4 = (code *******)(uint)((int)param_5 < (int)param_4);\n              param_6 = pppppppcVar36;\n            }\n            else {\n              pppppppcVar36 = (code *******)&local_dc;\n              if ((code *******)(uint)((int)param_5 < (int)param_4) != (code *******)0x0) {\n                pppppppcVar36 = (code *******)0x0;\n              }\n              pcVar4 = (code *)(PTR_DAT_000799a4 + -0x2b7c);\n              piVar5 = (int *)(PTR_s_nt0_000795b8 + (uVar16 - 4) * 4 + 0x6e38);\nLAB_00055b44:\n              if (uVar16 - 4 < 5) {\n                    \n                    \n                pppppppcVar29 = (code *******)(*(code *)(&_gp_1 + *piVar5))();\n                return pppppppcVar29;\n              }\n              param_5 = &local_b4;\n              pppppppcVar28 = pppppppcVar33;\n              while( true ) {\n                param_4 = local_dc;\n                pppppppcVar33 = (code *******)((int)local_dc - local_9c);\n                pppppppcVar30 = param_9;\n                pppppppcVar31 = pppppppcVar2;\n                param_6 = local_148;\n                unaff_s4 = param_3;\n                unaff_s5 = pppppppcVar24;\n                unaff_s7 = pppppppcVar26;\n                if (local_94 <= pppppppcVar33) {\n                  pppppppcVar29 = local_dc;\n                  local_150 = (code *******)(*pcVar4)(param_5);\n                  pppppppcVar33 = pppppppcVar28;\n                  if (local_150 != (code *******)0x0) goto LAB_000557e4;\n                  pppppppcVar33 = (code *******)((int)param_4 - local_9c);\n                }\n                if ((int)param_4 < (int)param_3) {\n                  uVar7 = (uint)(byte)*(code *)((int)pppppppcVar33 + (int)local_b0);\n                }\n                else {\n                  uVar7 = 0;\n                }\n                param_4 = (code *******)((int)param_4 + (int)pppppppcVar24);\n                if (*(code *)((int)local_148 + uVar7) != (code)0x0) break;\n                pppppppcVar33 = pppppppcVar28;\n                local_dc = param_4;\n                if ((int)param_4 < (int)pppppppcVar25) {\n                  local_150 = (code *******)0x1;\n                  goto LAB_000557e4;\n                }\n                if ((code *******)(uint)((int)pppppppcVar26 < (int)param_4) != (code *******)0x0) {\n                  local_150 = (code *******)0x1;\n                  param_4 = (code *******)(uint)((int)pppppppcVar26 < (int)param_4);\n                  goto LAB_000557e4;\n                }\n              }\n              while( true ) {\n                pppppppcVar29 = local_dc;\n                pppppppcVar30 = param_9;\n                pppppppcVar6 = (code *******)(*pcVar4)(&local_b4);\n                pppppppcVar14 = local_60;\n                pppppppcVar42 = local_8c;\n                pppppppcVar33 = pppppppcVar28;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar6 != (code *******)0x0) goto LAB_000557e4;\n                if (((ppppppcVar35 != (code ******)0x1) && (local_98 != (code *******)0x0)) &&\n                   (*local_ac == -1)) goto LAB_00055b1c;\n                local_3c = 0;\n                local_48 = 0;\n                local_4c = (code *******)0x0;\n                local_138 = local_8c;\n                local_d8 = (code *******)0x0;\n                unaff_s7 = (code *******)local_60[9];\n                pppppppcVar30 = local_5c;\n                param_4 = pppppppcVar14;\n                if (((uint)unaff_s7[0xd] & 0x1000000) == 0) break;\n                pppppppcVar29 = (code *******)((int)local_8c + -1);\n                pppppppcVar33 = (code *******)FUN_00049110(&local_b4);\n                if (((uint)pppppppcVar33 & 1) == 0) {\n                  if (pppppppcVar33 == (code *******)0x0) break;\n                  if (((uint)pppppppcVar33 & 6) == 6) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xc];\n                    goto LAB_00054d1c;\n                  }\n                  if (((uint)pppppppcVar33 & 2) != 0) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xb];\n                    goto LAB_00054d1c;\n                  }\n                  pppppppcVar28 = pppppppcVar33;\n                  if (((uint)pppppppcVar33 & 4) == 0) break;\n                  pppppppcVar30 = (code *******)unaff_s7[10];\n                  pppppppcVar29 = pppppppcVar14;\n                  unaff_s7 = (code *******)FUN_0004ae34(&local_d8);\n                  pppppppcVar28 = pppppppcVar33;\n                  if (unaff_s7 != (code *******)0x0) break;\n                  if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                }\n                else {\n                  unaff_s7 = (code *******)pppppppcVar14[10];\nLAB_00054d1c:\n                  pppppppcVar28 = (code *******)PTR_s_nt0_000795b8;\n                  if (unaff_s7 != (code *******)0x0) break;\n                }\n                pppppppcVar28 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                local_dc = (code *******)\n                           (*(code *)PTR___assert_fail_000799f8)\n                                     (PTR_s_nt0_000795b8 + 0x71a0,pppppppcVar29,0x435);\n                if (local_dc == pppppppcVar26) {\n                  if ((int)local_dc < (int)param_3) {\n                    uVar7 = (uint)(byte)*(code *)((int)local_dc + (int)param_2);\n                  }\n                  else {\n                    uVar7 = 0;\n                  }\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    uVar7 = (uint)*(byte *)((int)ppppppcVar32 + uVar7);\n                  }\n                  if (*(code *)((int)local_148 + uVar7) == (code)0x0) {\n                    local_150 = (code *******)0x1;\n                    pppppppcVar30 = param_9;\n                    pppppppcVar33 = pppppppcVar28;\n                    goto LAB_000557e4;\n                  }\n                }\n              }\n              pppppppcVar33 = pppppppcVar28;\n              bVar1 = pppppppcVar36 != (code *******)0x0;\n              if ((local_50 == (code *******)0x0) ||\n                 (local_50[(int)pppppppcVar42] = (code ******)unaff_s7,\n                 pppppppcVar14[0x13] == (code ******)0x0)) {\nLAB_00054d50:\n                if ((int)unaff_s7[0xd] << 4 < 0) {\n                  if ((((uint)unaff_s7[0xd] & 0x1000000) == 0) ||\n                     (pppppppcVar29 = unaff_s7, pppppppcVar30 = pppppppcVar42,\n                     iVar18 = FUN_00049440(&local_b4), iVar18 != 0)) {\n                    unaff_s8 = pppppppcVar42;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                  }\n                  else {\n                    pppppppcVar42 = (code *******)0xffffffff;\n                    pppppppcVar28 = (code *******)0x0;\n                  }\n                }\n                else {\n                  pppppppcVar42 = (code *******)0xffffffff;\n                  pppppppcVar28 = (code *******)0x0;\n                }\n                pcVar8 = (code *)(PTR_DAT_000799a4 + -0x7144);\n                pcVar9 = (code *)(PTR_DAT_000799a4 + -0x1980);\n                pcVar10 = (code *)(PTR_DAT_000799a4 + -0x2f9c);\n                unaff_s8 = pppppppcVar42;\n                local_144 = pppppppcVar36;\n                while( true ) {\n                  uVar44 = CONCAT44(local_98,local_84);\n                  unaff_s5 = (code *******)((int)local_8c + 1);\n                  pppppppcVar29 = local_8c;\n                  if ((int)local_7c <= (int)local_8c) break;\n                  if (((int)local_90 <= (int)unaff_s5) && ((int)local_90 < (int)local_84))\n                  goto LAB_00054e94;\n                  if ((int)local_98 <= (int)unaff_s5) {\n                    while ((int)((ulonglong)uVar44 >> 0x20) < (int)uVar44) {\nLAB_00054e94:\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 2);\n                      local_d8 = (code *******)(*pcVar8)(&local_b4);\n                      if (local_d8 == (code *******)0x0) break;\n                      pppppppcVar14 = param_4;\n                      if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                      pppppppcVar33 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                      pppppppcVar30 = (code *******)0x46c;\n                      pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                      uVar44 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0);\n                      pppppppcVar28 = pppppppcVar38;\n                    }\n                  }\n                  pppppppcVar42 = local_60;\n                  if ((int)unaff_s7[0xd] << 5 < 0) {\n                    pppppppcVar31 = pppppppcVar42;\n                    if (0 < (int)unaff_s7[2]) {\n                      pcVar11 = (code *)(PTR_DAT_000799a4 + -0x6fdc);\n                      pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6ef0);\n                      param_6 = (code *******)0x0;\n                      do {\n                        param_5 = (code *******)unaff_s7[3][(int)param_6];\n                        ppppppcVar39 = *pppppppcVar42;\n                        pppppcVar13 = ppppppcVar39[(int)param_5 * 2 + 1];\n                        if (((uint)pppppcVar13 & 0x800) != 0) {\n                          if (((uint)pppppcVar13 & 0xffc000) != 0) {\n                            pppppppcVar29 = local_8c;\n                            uVar19 = (*pcVar12)(&local_b4,local_8c,local_5c);\n                            uVar7 = (uint)((int)ppppppcVar39[(int)param_5 * 2 + 1] << 8) >> 0x16;\n                            if ((uVar7 & 4) == 0) {\n                              uVar27 = uVar19 & 1;\n                              if ((uVar7 & 8) != 0) goto joined_r0x00054f40;\n                            }\n                            else {\n                              uVar27 = uVar7 & 8;\n                              if ((uVar19 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                              if (uVar27 != 0) goto LAB_000550a4;\n                            }\n                            if ((((uVar7 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                               (((uVar7 & 0x80) != 0 &&\n                                (pppppppcVar33 = local_8c, (uVar19 & 8) == 0)))) goto LAB_000550a4;\n                          }\n                          pppppppcVar30 = &local_b4;\n                          pppppppcVar29 = param_5;\n                          pppppppcVar33 = local_8c;\n                          iVar18 = (*pcVar10)(pppppppcVar42);\n                          if (iVar18 != 0) {\n                            pppppppcVar14 = (code *******)((int)local_8c + iVar18);\n                            if (iVar18 <= local_3c) {\n                              iVar18 = local_3c;\n                            }\n                            pppppppcVar29 = pppppppcVar14;\n                            local_3c = iVar18;\n                            local_d4 = (code *******)(*pcVar11)(&local_b4);\n                            pppppppcVar15 = local_d4;\n                            if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                            pppppppcVar30 =\n                                 (code *******)\n                                 (pppppppcVar42[6] + (int)pppppppcVar42[3][(int)param_5] * 3);\n                            unaff_s4 = (code *******)((int)pppppppcVar14 * 4);\n                            param_5 = local_50 + (int)pppppppcVar14;\n                            if (*param_5 == (code ******)0x0) {\n                              local_d0 = (code *******)*pppppppcVar30;\n                              local_cc = (code *******)pppppppcVar30[1];\n                              local_c8 = (code *******)pppppppcVar30[2];\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *param_5 = ppppppcVar39;\n                            }\n                            else {\n                              pppppppcVar29 = (code *******)(*param_5)[10];\n                              local_d4 = (code *******)FUN_000484bc(&local_d0);\n                              pppppppcVar15 = local_d4;\n                              if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar15 = local_50 + (int)pppppppcVar14;\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *pppppppcVar15 = ppppppcVar39;\n                              (*(code *)PTR_free_00079c24)(local_c8);\n                            }\n                            unaff_s4 = local_50 + (int)pppppppcVar14;\n                            if ((*unaff_s4 == (code ******)0x0) &&\n                               (pppppppcVar15 = local_d4, local_d4 != (code *******)0x0))\n                            goto LAB_00055e44;\n                          }\n                        }\nLAB_000550a4:\n                        param_6 = (code *******)((int)param_6 + 1);\n                      } while ((int)param_6 < (int)unaff_s7[2]);\n                    }\n                    local_d8 = (code *******)0x0;\n                  }\n                  uVar7 = (uint)(byte)*(code *)((int)local_8c + (int)local_b0);\n                  local_8c = (code *******)((int)local_8c + 1);\n                  do {\n                    if (unaff_s7[0xb] != (code ******)0x0) {\n                      pppppppcVar30 = (code *******)unaff_s7[0xb][uVar7];\nLAB_000553a0:\n                      pppppppcVar14 = pppppppcVar30;\n                      if (local_50 != (code *******)0x0) goto LAB_000553ac;\n                      goto LAB_000553cc;\n                    }\n                    pppppppcVar31 = (code *******)unaff_s7[0xc];\n                    if (pppppppcVar31 != (code *******)0x0) {\n                      pppppppcVar29 = (code *******)((int)local_8c + -1);\n                      uVar19 = FUN_00049110(&local_b4);\n                      if ((uVar19 & 1) == 0) {\n                        pppppppcVar30 = (code *******)pppppppcVar31[uVar7];\n                      }\n                      else {\n                        pppppppcVar31 = pppppppcVar31 + uVar7 + 0x100;\n                        pppppppcVar30 = (code *******)*pppppppcVar31;\n                      }\n                      goto LAB_000553a0;\n                    }\n                    pppppppcVar29 = unaff_s7;\n                    pppppppcVar30 = local_5c;\n                    iVar18 = (*pcVar9)(local_60);\n                  } while (iVar18 != 0);\n                  local_d8 = (code *******)0xc;\n                  pppppppcVar15 = local_d8;\nLAB_00055e44:\n                  local_d8 = pppppppcVar15;\n                  param_4 = (code *******)0x0;\n                  if (local_50 == (code *******)0x0) {\n                    pppppppcVar14 = param_4;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    break;\n                  }\n                  pppppppcVar30 = (code *******)0x0;\nLAB_000553ac:\n                  pppppppcVar29 = &local_b4;\n                  pppppppcVar14 = (code *******)FUN_00053684(&local_d8);\nLAB_000553cc:\n                  param_4 = pppppppcVar14;\n                  if (pppppppcVar14 == (code *******)0x0) {\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    if ((local_50 == (code *******)0x0) ||\n                       ((pppppppcVar28 != (code *******)0x0 && (pppppppcVar34 == (code *******)0x0))\n                       )) break;\n                    param_6 = &local_b4;\n                    param_5 = (code *******)&local_d8;\n                    pppppppcVar31 = (code *******)(PTR_DAT_000799a4 + 0x3684);\n                    do {\n                      pppppppcVar15 = local_50 + (int)local_8c;\n                      pppppppcVar42 = local_8c;\n                      do {\n                        pppppppcVar42 = (code *******)((int)pppppppcVar42 + 1);\n                        pppppppcVar29 = local_4c;\n                        param_4 = pppppppcVar14;\n                        if ((int)local_4c < (int)pppppppcVar42) goto LAB_00055da8;\n                        local_8c = (code *******)((int)local_8c + 1);\n                        pppppppcVar15 = pppppppcVar15 + 1;\n                      } while (*pppppppcVar15 == (code ******)0x0);\n                      pppppppcVar30 = (code *******)0x0;\n                      pppppppcVar29 = param_6;\n                      param_4 = (code *******)(*(code *)pppppppcVar31)(param_5);\n                      if (local_d8 != (code *******)0x0) {\n                        if (param_4 == (code *******)0x0) goto LAB_00055da8;\n                        break;\n                      }\n                      pppppppcVar29 = local_4c;\n                    } while (param_4 == (code *******)0x0);\n                  }\n                  pppppppcVar15 = (code *******)((uint)unaff_s7 ^ (uint)param_4);\n                  pppppppcVar42 = unaff_s7;\n                  pppppppcVar14 = local_138;\n                  if ((bVar1) &&\n                     (pppppppcVar42 = pppppppcVar15, pppppppcVar14 = unaff_s5,\n                     pppppppcVar15 != (code *******)0x0)) {\n                    bVar1 = false;\n                    pppppppcVar14 = local_138;\n                  }\n                  local_138 = pppppppcVar14;\n                  unaff_s7 = param_4;\n                  if ((((uint)param_4[0xd] & 0x8000000) != 0) &&\n                     ((((uint)param_4[0xd] & 0x1000000) == 0 ||\n                      (pppppppcVar29 = param_4, pppppppcVar30 = local_8c,\n                      iVar18 = FUN_00049440(&local_b4), iVar18 != 0)))) {\n                    unaff_s7 = pppppppcVar42;\n                    unaff_s8 = local_8c;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                    local_144 = (code *******)0x0;\n                    unaff_s7 = param_4;\n                  }\n                }\nLAB_00055da8:\n                if (local_144 != (code *******)0x0) {\n                  *local_144 = (code ******)((int)local_138 + (int)*local_144);\n                }\n              }\n              else {\n                param_4 = unaff_s7 + 1;\n                pppppppcVar30 = (code *******)0x0;\n                pppppppcVar29 = param_4;\n                local_d8 = (code *******)FUN_00047a44(&local_b4);\n                unaff_s8 = local_d8;\n                if (local_d8 == (code *******)0x0) {\n                  if (((uint)unaff_s7[0xd] & 0x2000000) == 0) {\n                    pppppppcVar29 = param_4;\n                    bVar1 = false;\n                  }\n                  else {\n                    pppppppcVar29 = param_4;\n                    local_d8 = (code *******)FUN_00052d84(&local_b4);\n                    unaff_s8 = local_d8;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055dbc;\n                    bVar1 = false;\n                  }\n                  goto LAB_00054d50;\n                }\n              }\nLAB_00055dbc:\n              if (unaff_s8 == (code *******)0xffffffff) {\nLAB_00055b04:\n                FUN_0004b7e8(&local_b4);\nLAB_00055b1c:\n                local_dc = (code *******)((int)pppppppcVar24 + (int)local_dc);\n                if ((int)pppppppcVar25 <= (int)local_dc) goto code_r0x00055b38;\n                local_150 = (code *******)0x1;\n                goto LAB_000557e4;\n              }\n              if (unaff_s8 == (code *******)&SUB_fffffffe) {\n                local_150 = (code *******)0xc;\n                goto LAB_000557e4;\n              }\n              local_58 = unaff_s8;\n              if (((uint)param_1[7] & 0x8000000) == 0) {\n                if (pppppppcVar3 < (code *******)0x2) {\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055c08;\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                else {\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                if (pppppppcVar3 < (code *******)0x2) {\nLAB_00055c6c:\n                  pppppppcVar28 = pppppppcVar33;\n                  unaff_s4 = local_60;\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055548;\n                }\n                else {\n                  cVar23 = *(code *)(pppppppcVar38 + 0x16);\nLAB_00055c20:\n                  pppppppcVar28 = pppppppcVar33;\n                  if (-1 < (char)cVar23) goto LAB_00055c6c;\n                }\n                pppppppcVar31 = local_54;\n                pppppppcVar42 = local_60;\n                unaff_s4 = pppppppcVar42;\n                if (unaff_s8 < (code *******)0x3fffffff) {\n                  param_4 = (code *******)((int)((int)unaff_s8 + 1) * 4);\n                  unaff_s5 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                  if (unaff_s5 == (code *******)0x0) {\nLAB_00055b9c:\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    local_150 = (code *******)0xc;\n                    pppppppcVar33 = pppppppcVar28;\n                  }\n                  else {\n                    pppppppcVar29 = (code *******)&local_d0;\n                    if (pppppppcVar42[0x13] == (code ******)0x0) {\n                      local_cc = (code *******)0x0;\n                      local_c8 = pppppppcVar31;\n                      local_c0 = 0;\n                      local_bc = 0;\n                      local_b8 = 0;\n                      local_d0 = unaff_s5;\n                      local_c4 = unaff_s8;\n                      param_5 = (code *******)FUN_0005421c(&local_b4);\n                      (*(code *)PTR_free_00079c24)(local_b8);\n                      if (param_5 == (code *******)0x0) {\n                        param_4 = (code *******)*unaff_s5;\n                        if (param_4 == (code *******)0x0) {\nLAB_00055b70:\n                          (*(code *)PTR_free_00079c24)(unaff_s5);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          pppppppcVar33 = pppppppcVar28;\n                          goto LAB_00055b04;\n                        }\nLAB_00055528:\n                        (*(code *)PTR_free_00079c24)(local_50);\n                        pppppppcVar33 = pppppppcVar28;\n                        unaff_s4 = pppppppcVar42;\n                        local_58 = unaff_s8;\n                        local_54 = pppppppcVar31;\n                        local_50 = unaff_s5;\n                        goto LAB_00055548;\n                      }\nLAB_00055acc:\n                      param_4 = (code *******)0x0;\n                      pppppppcVar33 = pppppppcVar28;\n                      unaff_s4 = pppppppcVar42;\n                    }\n                    else {\n                      param_4 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                      if (param_4 == (code *******)0x0) goto LAB_00055b9c;\n                      unaff_s7 = (code *******)&local_d0;\n                      pcVar8 = (code *)(PTR_DAT_000799a4 + 0x421c);\n                      pcVar9 = (code *)(PTR_DAT_000799a4 + -0x6bc0);\n                      pppppppcVar33 = pppppppcVar28;\n                      while( true ) {\n                        pppppppcVar28 = (code *******)((int)unaff_s8 + 1);\n                        param_6 = (code *******)((int)pppppppcVar28 * 4);\n                        pppppppcVar30 = param_6;\n                        (*(code *)PTR_memset_00079b00)(param_4,0);\n                        local_c0 = 0;\n                        local_bc = 0;\n                        local_b8 = 0;\n                        pppppppcVar29 = unaff_s7;\n                        local_d0 = unaff_s5;\n                        local_cc = param_4;\n                        local_c8 = pppppppcVar31;\n                        local_c4 = unaff_s8;\n                        param_5 = (code *******)(*pcVar8)(&local_b4);\n                        (*(code *)PTR_free_00079c24)(local_b8);\n                        unaff_s4 = pppppppcVar28;\n                        if (param_5 != (code *******)0x0) break;\n                        if ((*unaff_s5 != (code ******)0x0) ||\n                           (param_6 = param_6 + -1, *param_4 != (code ******)0x0)) {\n                          pppppppcVar29 = unaff_s5;\n                          pppppppcVar30 = param_4;\n                          param_5 = (code *******)FUN_000520d0(pppppppcVar42);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          if (param_5 != (code *******)0x0) goto LAB_00055acc;\n                          goto LAB_00055528;\n                        }\n                        param_6 = (code *******)((int)local_50 + (int)param_6);\n                        do {\n                          while( true ) {\n                            unaff_s8 = (code *******)((int)unaff_s8 + -1);\n                            if ((int)unaff_s8 < 0) goto LAB_00055b70;\n                            pppppppcVar29 = (code *******)param_6[-1];\n                            if (pppppppcVar29 != (code *******)0x0) break;\n                            param_6 = param_6 + -1;\n                          }\n                          param_6 = param_6 + -1;\n                        } while (((uint)pppppppcVar29[0xd] & 0x8000000) == 0);\n                        pppppppcVar31 = (code *******)(*pcVar9)(&local_b4,pppppppcVar29,unaff_s8);\n                        pppppppcVar33 = pppppppcVar28;\n                      }\n                    }\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    (*(code *)PTR_free_00079c24)(param_4);\n                    local_150 = param_5;\n                    if (param_5 == (code *******)0x1) goto LAB_00055b04;\n                  }\n                }\n                else {\n                  local_150 = (code *******)0xc;\n                  pppppppcVar33 = pppppppcVar28;\n                }\n                goto LAB_000557e4;\n              }\n              if (pppppppcVar38[0x13] != (code ******)0x0) {\n                pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                pppppppcVar30 = unaff_s8;\n                local_54 = (code *******)FUN_00049440(&local_b4);\n                goto LAB_00055c6c;\n              }\nLAB_00055c08:\n              if ((((uint)param_1[7] & 0x8000000) == 0) && ((code *******)0x1 < pppppppcVar3)) {\n                cVar23 = *(code *)(pppppppcVar38 + 0x16);\n                goto LAB_00055c20;\n              }\nLAB_00055548:\n              if (pppppppcVar3 == (code *******)0x0) goto LAB_000557e4;\n              if (pppppppcVar3 < (code *******)0x2) {\n                *param_8 = (code ******)0x0;\n                param_8[1] = (code ******)local_58;\n                goto LAB_000555ac;\n              }\n              pppppppcVar29 = param_8 + 2;\n              do {\n                pppppppcVar29[1] = (code ******)0xffffffff;\n                *pppppppcVar29 = (code ******)0xffffffff;\n                pppppppcVar29 = pppppppcVar29 + 2;\n              } while (pppppppcVar29 != param_8 + (int)pppppppcVar3 * 2);\n              *param_8 = (code ******)0x0;\n              param_8[1] = (code ******)local_58;\n              if (((uint)param_1[7] & 0x8000000) != 0) {\nLAB_000555ac:\n                pppppppcVar33 = param_8;\n                do {\n                  pppppppcVar29 = (code *******)*pppppppcVar33;\n                  if (pppppppcVar29 != (code *******)0xffffffff) {\n                    if (local_68 != '\0') {\n                      pppppppcVar34 = local_94;\n                      if (pppppppcVar29 != local_98) {\n                        pppppppcVar34 = *(code ********)(local_a8 + (int)pppppppcVar29 * 4);\n                      }\n                      *pppppppcVar33 = (code ******)pppppppcVar34;\n                      pppppppcVar29 = local_94;\n                      if (local_98 != (code *******)pppppppcVar33[1]) {\n                        pppppppcVar29 = *(code ********)(local_a8 + (int)pppppppcVar33[1] * 4);\n                      }\n                      pppppppcVar33[1] = (code ******)pppppppcVar29;\n                    }\n                    *pppppppcVar33 = (code ******)((int)local_dc + (int)*pppppppcVar33);\n                    pppppppcVar29 = (code *******)((int)local_dc + (int)pppppppcVar33[1]);\n                    pppppppcVar33[1] = (code ******)pppppppcVar29;\n                  }\n                  pppppppcVar33 = pppppppcVar33 + 2;\n                } while (pppppppcVar33 != param_8 + (int)pppppppcVar3 * 2);\n                if (0 < local_118) {\n                  pppppppcVar33 = param_8 + (int)pppppppcVar3 * 2;\n                  do {\n                    *pppppppcVar33 = (code ******)0xffffffff;\n                    pppppppcVar33[1] = (code ******)0xffffffff;\n                    pppppppcVar33 = pppppppcVar33 + 2;\n                  } while (pppppppcVar33 != param_8 + (int)param_7 * 2);\n                }\n                pppppppcVar30 = local_dc;\n                pppppppcVar33 = param_8;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar38[0x21] != (code ******)0x0) {\n                  pppppppcVar30 = (code *******)((int)pppppppcVar3 + -1);\n                  pppppppcVar34 = (code *******)0x0;\n                  pppppppcVar3 = param_8;\n                  while( true ) {\n                    pppppppcVar29 = (code *******)((int)pppppppcVar34 * 4);\n                    if (pppppppcVar30 == pppppppcVar34) break;\n                    if (*(code ********)((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) !=\n                        pppppppcVar34) {\n                      pppppppcVar3[2] =\n                           param_8[(int)((int)*(code ********)\n                                               ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1)\n                                   * 2];\n                      pppppppcVar3[3] =\n                           param_8[((int)*(code ******)\n                                          ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1) * 2 +\n                                   1];\n                    }\n                    pppppppcVar34 = (code *******)((int)pppppppcVar34 + 1);\n                    pppppppcVar3 = pppppppcVar3 + 2;\n                  }\n                }\n                goto LAB_000557e4;\n              }\n              if ((char)*(code *)(pppppppcVar38 + 0x16) < '\0') {\n                local_168 = (uint)(0 < (int)pppppppcVar38[0x13]);\n              }\n              else {\n                local_168 = 0;\n              }\n              pppppppcVar29 = &local_b4;\n              pppppppcVar30 = pppppppcVar3;\n              pppppppcVar33 = param_8;\n              local_150 = (code *******)FUN_0004f4a0(param_1);\n              if (local_150 == (code *******)0x0) goto LAB_000555ac;\n            }\n          }\n          else if (local_90 < 0x3fffffff) {\n            local_50 = (code *******)(*(code *)PTR_malloc_00079b54)((local_90 + 1) * 4);\n            if (local_50 != (code *******)0x0) goto LAB_00055a40;\n            local_150 = (code *******)0xc;\n            param_6 = pppppppcVar36;\n          }\n          else {\n            local_150 = (code *******)0xc;\n            param_6 = pppppppcVar36;\n          }\n        }\n        else {\n          unaff_s5 = (code *******)((int)ppppppcVar35 * 8);\n          if (pppppppcVar36 < (code *******)0xccccccd) {\n            unaff_s4 = (code *******)(*(code *)PTR_malloc_00079b54)((int)ppppppcVar35 * 0x28);\n            local_40 = unaff_s4;\n            local_30 = (*(code *)PTR_malloc_00079b54)(unaff_s5);\n            if ((unaff_s4 != (code *******)0x0) && (local_30 != 0)) goto LAB_000559f0;\n          }\n          local_150 = (code *******)0xc;\n          param_6 = pppppppcVar36;\n        }\nLAB_000557e4:\n        (*(code *)PTR_free_00079c24)(local_50);\n        param_1 = pppppppcVar30;\n        if (pppppppcVar38[0x13] != (code ******)0x0) {\n          FUN_0004b7e8(&local_b4);\n          (*(code *)PTR_free_00079c24)(local_30);\n          (*(code *)PTR_free_00079c24)(local_40);\n          param_1 = pppppppcVar30;\n        }\n        FUN_0004b2bc(&local_b4);\n        pppppppcStack_1a0 = param_4;\n        pppppppcStack_19c = pppppppcVar31;\n      }\n    }\n  }\n  if (local_2c == *(code ********)PTR___stack_chk_guard_00079c10) {\n    return local_150;\n  }\n  pcVar4 = FUN_00055e64;\n  pppppppcVar3 = local_2c;\n  puVar41 = PTR___stack_chk_fail_00079bd0;\n  (*(code *)PTR___stack_chk_fail_00079bd0)();\n  iStack_1a4 = **(int **)(puVar41 + 0x23dac);\n  pppppppcStack_20c = (code *******)0x0;\n  pppppppcVar3[3] = (code ******)pppppppcVar33;\n  pppppppcVar3[2] = (code ******)0x0;\n  pppppppcVar3[6] = (code ******)0x0;\n  *(byte *)(pppppppcVar3 + 7) = (byte)*(code *)(pppppppcVar3 + 7) & 9;\n  pppppppcVar34 = (code *******)*pppppppcVar3;\n  pppppppcStack_198 = param_5;\n  pppppppcStack_194 = param_6;\n  pppppppcStack_190 = unaff_s4;\n  pppppppcStack_18c = unaff_s5;\n  pppppppcStack_188 = pppppppcVar38;\n  pppppppcStack_184 = unaff_s7;\n  pppppppcStack_180 = unaff_s8;\n  pcStack_17c = pcVar4;\n  if (pppppppcVar3[1] < (code ******)0xa0) {\n    pppppppcVar38 = (code *******)0xa0;\n    pppppppcVar31 = param_1;\n    pppppppcVar34 = (code *******)(**(code **)(puVar41 + 0x23cf8))(pppppppcVar34,0xa0);\n    if (pppppppcVar34 == (code *******)0x0) {\n      pppppppcVar29 = (code *******)0xc;\n      goto LAB_00056cfc;\n    }\n    pppppppcVar3[1] = (code ******)0xa0;\n    *pppppppcVar3 = (code ******)pppppppcVar34;\n  }\n  pppppppcVar3[2] = (code ******)0xa0;\n  pppppppcVar31 = (code *******)0xa0;\n  pppppppcVar38 = (code *******)0x0;\n  (**(code **)(puVar41 + 0x23c9c))(pppppppcVar34,0);\n  pppppppcVar34[0x10] = (code ******)0x1f;\n  if (param_1 < (code *******)0xaaaaaaa) {\n    pppppppcVar34[1] = (code ******)((int)param_1 + 1);\n    ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23cf0))(((int)param_1 + 1) * 8);\n    *pppppppcVar34 = ppppppcVar32;\n    if (param_1 == (code *******)0x0) {\n      pppppppcVar30 = (code *******)0x1;\n    }\n    else {\n      pppppppcVar30 = (code *******)0x1;\n      do {\n        pppppppcVar30 = (code *******)((int)pppppppcVar30 << 1);\n      } while (pppppppcVar30 <= param_1);\n    }\n    pppppppcVar38 = pppppppcVar30;\n    ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23b8c))(0xc,pppppppcVar30);\n    pppppppcVar34[8] = ppppppcVar32;\n    pppppppcVar34[0x11] = (code ******)((int)pppppppcVar30 + -1);\n    ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23d2c))();\n    pppppppcVar34[0x17] = ppppppcVar32;\n    pbVar17 = (byte *)(**(code **)(puVar41 + 0x23c2c))(0xe);\n    if ((((*pbVar17 & 0xdf) == 0x55) && ((pbVar17[1] & 0xdf) == 0x54)) &&\n       (pppppppcVar38 = (code *******)0x4, (pbVar17[2] & 0xdf) == 0x46)) {\n      iVar18 = 3;\n      if (pbVar17[3] == 0x2d) {\n        iVar18 = 4;\n      }\n      pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23754) + 0x71b4);\n      iVar18 = (**(code **)(puVar41 + 0x23dfc))(pbVar17 + iVar18,pppppppcVar38);\n      if (iVar18 == 0) {\n        *(byte *)(pppppppcVar34 + 0x16) = (byte)*(code *)(pppppppcVar34 + 0x16) & 0xdf | 0x20;\n      }\n    }\n    *(byte *)(pppppppcVar34 + 0x16) = (byte)*(code *)(pppppppcVar34 + 0x16) & 0xef;\n    if (1 < (int)pppppppcVar34[0x17]) {\n      if (((uint)pppppppcVar34[0x16] & 0x20000000) == 0) {\n        pppppppcVar38 = (code *******)0x1;\n        ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23b8c))(0x20,1);\n        pppppppcVar34[0xf] = ppppppcVar32;\n        if (ppppppcVar32 == (code ******)0x0) goto LAB_00056e5c;\n        iVar18 = 0;\n        do {\n          uVar16 = iVar18 << 3;\n          uVar7 = 0;\n          do {\n            uVar19 = (**(code **)(puVar41 + 0x23c88))(uVar16);\n            if (uVar19 != 0xffffffff) {\n              pppppppcVar38 = *(code ********)((int)pppppppcVar34[0xf] + iVar18);\n              *(uint *)((int)pppppppcVar34[0xf] + iVar18) =\n                   (uint)pppppppcVar38 | 1 << (uVar7 & 0x1f);\n            }\n            if (((uVar16 & 0xffffff80) == 0) && (uVar19 != uVar16)) {\n              *(byte *)(pppppppcVar34 + 0x16) = (byte)*(code *)(pppppppcVar34 + 0x16) & 0xef | 0x10;\n            }\n            uVar7 = uVar7 + 1;\n            uVar16 = uVar16 + 1;\n          } while (uVar7 != 0x20);\n          iVar18 = iVar18 + 4;\n        } while (iVar18 != 0x20);\n      }\n      else {\n        pppppppcVar34[0xf] = (code ******)(*(int *)(puVar41 + 0x23754) + 0x6ee4);\n      }\n    }\n    if ((*pppppppcVar34 == (code ******)0x0) || (pppppppcVar34[8] == (code ******)0x0))\n    goto LAB_00056e5c;\n    pppppppcStack_20c = (code *******)0x0;\n    if (*(int *)(puVar41 + 0x23c78) == 0) {\nLAB_00056054:\n      ppppppcVar32 = pppppppcVar3[5];\n      uVar16 = (uint)pppppppcVar33 & 0x400000;\n      bVar1 = uVar16 != 0;\n      pppppppcVar31 = (code *******)0x4c;\n      pppppppcVar38 = (code *******)0x0;\n      (**(code **)(puVar41 + 0x23c9c))(apppppppcStack_1f4,0);\n      cStack_1ad = ppppppcVar32 != (code ******)0x0 || bVar1;\n      ppppppcStack_1a8 = pppppppcVar34[0x17];\n      bStack_1af = (byte)((uint)((int)pppppppcVar34[0x16] << 2) >> 0x1f);\n      bStack_1ae = (byte)((uint)((int)pppppppcVar34[0x16] << 3) >> 0x1f);\n      pppppppcStack_1f8 = pppppppcVar29;\n      pppppppcStack_1cc = param_1;\n      pppppppcStack_1c8 = param_1;\n      pppppppcStack_1c4 = param_1;\n      pppppppcStack_1c0 = param_1;\n      ppppppcStack_1b8 = ppppppcVar32;\n      uStack_1b0 = bVar1;\n      if (0 < (int)param_1) {\n        pppppppcVar38 = (code *******)((int)param_1 + 1);\n        pppppppcVar30 = (code *******)FUN_00046d2c(&pppppppcStack_1f8,pppppppcVar38);\n        if (pppppppcVar30 == (code *******)0x0) goto LAB_000560cc;\n        goto LAB_00056168;\n      }\nLAB_000560cc:\n      if (cStack_1ad != '\0') {\n        pppppppcVar29 = apppppppcStack_1f4[0];\n      }\n      apppppppcStack_1f4[0] = pppppppcVar29;\n      if (uVar16 == 0) {\n        if ((int)pppppppcVar34[0x17] < 2) {\n          if (ppppppcVar32 != (code ******)0x0) {\n            FUN_00045dc8();\n          }\n        }\n        else {\n          FUN_00047cb0(&pppppppcStack_1f8);\n        }\n      }\n      else {\n        if (1 < (int)pppppppcVar34[0x17]) {\n          iVar18 = *(int *)(puVar41 + 0x23abc);\n          do {\n            pppppppcVar30 = (code *******)FUN_00048714(&pppppppcStack_1f8);\n            if (pppppppcVar30 != (code *******)0x0) break;\n            if (((int)param_1 <= iStack_1d8) ||\n               (pppppppcVar38 = (code *******)(iStack_1d4 << 1),\n               (int)pppppppcVar34[0x17] + iStack_1dc < iStack_1d4)) goto LAB_000563d0;\n            pppppppcVar30 =\n                 (code *******)(*(code *)(iVar18 + 0x6d2c))(&pppppppcStack_1f8,pppppppcVar38);\n          } while (pppppppcVar30 == (code *******)0x0);\n          goto LAB_00056168;\n        }\n        FUN_00047be4(&pppppppcStack_1f8);\n      }\nLAB_000563d0:\n      pppppppcStack_20c = (code *******)0x0;\n      pppppppcVar3[6] = (code ******)0x0;\n      ppppppcVar32 = *pppppppcVar3;\n      ppppppcVar32[0x20] = (code *****)pppppppcVar33;\n      FUN_00049e40(&ppppppcStack_204,&pppppppcStack_1f8,(uint)pppppppcVar33 | 0x800000);\n      pppppppcVar38 = pppppppcVar3;\n      pppppppcVar29 =\n           (code *******)\n           FUN_00051868(&pppppppcStack_1f8,pppppppcVar3,&ppppppcStack_204,pppppppcVar33,0,\n                        &pppppppcStack_20c);\n      if (pppppppcStack_20c == (code *******)0x0) {\n        pppppppcVar31 = (code *******)0x0;\n        pppppppcVar38 = (code *******)0x0;\n        pppppppcVar33 = (code *******)FUN_000470f0(ppppppcVar32,0,0,2);\n        pppppppcVar30 = pppppppcVar33;\n        if (pppppppcVar29 != (code *******)0x0) {\nLAB_000564b0:\n          pppppppcVar31 = pppppppcVar33;\n          pppppppcVar30 = (code *******)FUN_000470f0(ppppppcVar32,pppppppcVar29,pppppppcVar33,0x10);\n          pppppppcVar38 = pppppppcVar29;\n        }\n        if ((pppppppcVar33 == (code *******)0x0) ||\n           (pcVar4 = *(code **)(puVar41 + 0x23cf0), pppppppcVar30 == (code *******)0x0)) {\n          pppppppcStack_20c = (code *******)0xc;\n          goto LAB_000566f4;\n        }\n        pppppppcVar34[0xd] = (code ******)pppppppcVar30;\n        pppppppcVar29 = (code *******)*pppppppcVar3;\n        ppppppcVar39 = pppppppcVar29[1];\n        iVar18 = (int)ppppppcVar39 << 2;\n        ppppppcVar32 = (code ******)(*pcVar4)(iVar18);\n        pppppppcVar29[3] = ppppppcVar32;\n        ppppppcVar35 = (code ******)(**(code **)(puVar41 + 0x23cf0))(iVar18);\n        pppppppcVar29[4] = ppppppcVar35;\n        iVar18 = (int)ppppppcVar39 * 0xc;\n        ppppppcVar39 = (code ******)(**(code **)(puVar41 + 0x23cf0))(iVar18);\n        pppppppcVar29[5] = ppppppcVar39;\n        ppppppcVar20 = (code ******)(**(code **)(puVar41 + 0x23cf0))(iVar18);\n        pppppppcVar29[6] = ppppppcVar20;\n        if (ppppppcVar32 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else if (ppppppcVar35 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else if (ppppppcVar39 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else if (ppppppcVar20 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else {\n          ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23cf0))((int)pppppppcVar3[6] << 2);\n          pppppppcVar29[0x21] = ppppppcVar32;\n          if (ppppppcVar32 != (code ******)0x0) {\n            ppppppcVar32 = (code ******)0x0;\n            if (pppppppcVar3[6] != (code ******)0x0) {\n              do {\n                pppppppcVar29[0x21][(int)ppppppcVar32] = (code *****)ppppppcVar32;\n                ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n              } while (ppppppcVar32 < pppppppcVar3[6]);\n            }\n            FUN_00046050(pppppppcVar29[0xd],*(int *)(puVar41 + 0x23abc) + 0x60e8,pppppppcVar29);\n            ppppppcVar32 = pppppppcVar3[6];\n            if (ppppppcVar32 == (code ******)0x0) {\nLAB_00056704:\n              (**(code **)(puVar41 + 0x23dc0))(pppppppcVar29[0x21]);\n              pppppppcVar29[0x21] = (code ******)0x0;\n            }\n            else {\n              ppppppcVar35 = pppppppcVar29[0x21];\n              if (*ppppppcVar35 == (code *****)0x0) {\n                ppppppcVar39 = (code ******)0x0;\n                do {\n                  ppppppcVar35 = ppppppcVar35 + 1;\n                  ppppppcVar39 = (code ******)((int)ppppppcVar39 + 1);\n                  if (ppppppcVar32 == ppppppcVar39) {\n                    if (ppppppcVar32 == ppppppcVar39) goto LAB_00056704;\n                    break;\n                  }\n                } while ((code ******)*ppppppcVar35 == ppppppcVar39);\n              }\n            }\n          }\n          pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23abc) + 0x73a4);\n          pppppppcVar30 = (code *******)FUN_00045fb4(pppppppcVar29[0xd],pppppppcVar38,pppppppcVar3);\n          pppppppcVar31 = pppppppcVar29;\n          if (pppppppcVar30 == (code *******)0x0) {\n            pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23b40) + -0x5be4);\n            pppppppcVar30 = (code *******)FUN_00045fb4(pppppppcVar29[0xd],pppppppcVar38);\n            if (pppppppcVar30 == (code *******)0x0) {\n              FUN_00046050(pppppppcVar29[0xd],*(int *)(puVar41 + 0x23abc) + 0x61b4);\n              pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23b40) + -0x4614);\n              pppppppcVar30 = (code *******)FUN_00046050(pppppppcVar29[0xd],pppppppcVar38);\n              if (pppppppcVar30 == (code *******)0x0) {\n                uVar7 = 0;\n                iVar18 = *(int *)(puVar41 + 0x23b40);\n                pppppppcVar33 = (code *******)0x0;\nLAB_00056744:\n                if ((code *******)pppppppcVar29[2] != pppppppcVar33) {\nLAB_00056750:\n                  if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                    pppppppcVar38 = pppppppcVar29;\n                    pppppppcVar31 = pppppppcVar33;\n                    pppppppcVar30 =\n                         (code *******)\n                         (*(code *)(iVar18 + -0x561c))\n                                   (&ppppppcStack_204,pppppppcVar29,pppppppcVar33,1);\n                    if (pppppppcVar30 != (code *******)0x0) goto LAB_00056168;\n                    if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                      (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                      uVar7 = 1;\n                    }\n                  }\n                  pppppppcVar33 = (code *******)((int)pppppppcVar33 + 1);\n                  goto LAB_00056744;\n                }\n                if (uVar7 != 0) {\n                  uVar7 = 0;\n                  pppppppcVar33 = (code *******)0x0;\n                  goto LAB_00056750;\n                }\n                if (((((uint)pppppppcVar3[7] & 0x8000000) == 0) &&\n                    (pppppppcVar3[6] != (code ******)0x0)) &&\n                   ((char)*(code *)(pppppppcVar29 + 0x16) < '\0')) {\n                  ppppppcVar32 = pppppppcVar29[2];\n                }\n                else {\n                  if (pppppppcVar29[0x13] == (code ******)0x0) goto LAB_000568f0;\n                  ppppppcVar32 = pppppppcVar29[2];\n                }\n                ppppppcVar35 = (code ******)\n                               (**(code **)(puVar41 + 0x23cf0))((int)ppppppcVar32 * 0xc);\n                pppppppcVar29[7] = ppppppcVar35;\n                if (ppppppcVar35 == (code ******)0x0) {\n                  pppppppcVar30 = (code *******)0xc;\n                  goto LAB_00056168;\n                }\n                if (ppppppcVar32 != (code ******)0x0) {\n                  iVar18 = 0;\n                  ppppppcVar32 = (code ******)0x0;\n                  do {\n                    puVar21 = (undefined1 *)((int)pppppppcVar29[7] + iVar18);\n                    *puVar21 = 0;\n                    puVar21[1] = 0;\n                    puVar21[2] = 0;\n                    puVar21[3] = 0;\n                    puVar21[4] = 0;\n                    puVar21[5] = 0;\n                    puVar21[6] = 0;\n                    puVar21[7] = 0;\n                    puVar21[8] = 0;\n                    puVar21[9] = 0;\n                    puVar21[10] = 0;\n                    puVar21[0xb] = 0;\n                    ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                    iVar18 = iVar18 + 0xc;\n                  } while (ppppppcVar32 < pppppppcVar29[2]);\n                  iVar18 = *(int *)(puVar41 + 0x23abc);\n                  if (pppppppcVar29[2] != (code ******)0x0) {\n                    iVar43 = 0;\n                    pppppppcStack_218 = (code *******)0x0;\n                    do {\n                      piVar5 = *(int **)((int)pppppppcVar29[6] + iVar43 + 8);\n                      if (0 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4)) {\n                        iVar37 = 0;\n                        do {\n                          pppppppcVar38 = pppppppcStack_218;\n                          iVar22 = (*(code *)(iVar18 + 0x6e30))\n                                             (pppppppcVar29[7] + *piVar5 * 3,pppppppcStack_218);\n                          pppppppcVar30 = (code *******)0xc;\n                          if (iVar22 == 0) goto LAB_00056168;\n                          iVar37 = iVar37 + 1;\n                          piVar5 = piVar5 + 1;\n                        } while (iVar37 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4));\n                      }\n                      pppppppcStack_218 = (code *******)((int)pppppppcStack_218 + 1);\n                      iVar43 = iVar43 + 0xc;\n                    } while (pppppppcStack_218 < pppppppcVar29[2]);\n                  }\n                }\nLAB_000568f0:\n                pppppppcStack_20c = (code *******)0x0;\n                if (((((uint)pppppppcVar34[0x16] & 0x20000000) != 0) && (uVar16 == 0)) &&\n                   (pppppppcVar3[5] == (code ******)0x0)) {\n                  if (pppppppcVar34[2] != (code ******)0x0) {\n                    pppppppcVar31 = (code *******)(*(int *)(puVar41 + 0x23754) + 0x6e4c);\n                    if (*(byte *)(*pppppppcVar34 + 1) < 0xd) {\n                    \n                    \n                      pppppppcVar29 =\n                           (code *******)\n                           (*(code *)(puVar41 +\n                                     (int)(pppppppcVar31[*(byte *)(*pppppppcVar34 + 1)] + 0xadc7)))\n                                     ();\n                      return pppppppcVar29;\n                    }\n                    (**(code **)(puVar41 + 0x23bc4))(0);\n                    if (uVar7 != 0) {\n                      pppppppcVar31 = (code *******)&DAT_00000007;\n                      ppppppcVar32 = (code ******)0x0;\n                      do {\n                        ppppppcVar35 = *pppppppcVar34 + (int)ppppppcVar32 * 2;\n                        if (*(char *)(ppppppcVar35 + 1) == '\x01') {\n                          if (*(char *)ppppppcVar35 < '\0') {\n                            ppppppcVar35[1] = (code *****)((uint)ppppppcVar35[1] & 0xfffffbff);\n                          }\n                        }\n                        else if (*(char *)(ppppppcVar35 + 1) == '\x05') {\n                          *(char *)(ppppppcVar35 + 1) = '\a';\n                        }\n                        ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                      } while (ppppppcVar32 < pppppppcVar34[2]);\n                    }\n                  }\n                  pppppppcVar34[0x17] = (code ******)0x1;\n                  if (0 < (int)pppppppcVar34[0x13]) {\n                    uVar7 = 1;\n                  }\n                  *(byte *)(pppppppcVar34 + 0x16) =\n                       (byte)*(code *)(pppppppcVar34 + 0x16) & 0x9f | (byte)((uVar7 & 1) << 6);\n                }\n                ppppppcVar32 = (code ******)pppppppcVar34[0xd][3][7];\n                pppppppcVar34[0x12] = ppppppcVar32;\n                pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppppcVar32 * 3);\n                pppppppcVar33 = (code *******)FUN_000483e8(&ppppppcStack_204,pppppppcVar38);\n                pppppppcVar29 = pppppppcVar33;\n                pppppppcStack_208 = pppppppcVar33;\n                if (pppppppcVar33 == (code *******)0x0) {\n                  if ((0 < (int)pppppppcVar34[0x13]) && (0 < iStack_200)) {\n                    iVar18 = *(int *)(puVar41 + 0x23abc);\n                    iVar43 = *(int *)(puVar41 + 0x23abc);\n                    pppppppcVar29 = (code *******)0x0;\n                    do {\n                      pppppppcVar31 =\n                           (code *******)(*pppppppcVar34 + piStack_1fc[(int)pppppppcVar29] * 2);\n                      if (*(code *)(pppppppcVar31 + 1) == (code)0x4) {\n                        iVar37 = 0;\n                        piVar5 = piStack_1fc;\n                        if (iStack_200 < 1) {\nLAB_00056b8c:\n                          if (iStack_200 != iVar37) {\n                            ppppcVar40 = *pppppppcVar34[5][piStack_1fc[(int)pppppppcVar29] * 3 + 2];\n                            iVar37 = (*(code *)(iVar18 + 0x5ea8))(&ppppppcStack_204,ppppcVar40);\n                            if (iVar37 == 0) {\n                              pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppcVar40 * 3)\n                              ;\n                              pppppppcVar29 =\n                                   (code *******)\n                                   (*(code *)(iVar43 + 0x7f1c))(&ppppppcStack_204,pppppppcVar38);\n                              if (pppppppcVar29 != (code *******)0x0) goto LAB_00056cb8;\n                            }\n                          }\n                        }\n                        else {\n                          do {\n                            ppppppcVar32 = *pppppppcVar34 + *piVar5 * 2;\n                            if ((*(char *)(ppppppcVar32 + 1) == '\t') &&\n                               ((code ******)*ppppppcVar32 == *pppppppcVar31)) goto LAB_00056b8c;\n                            iVar37 = iVar37 + 1;\n                            piVar5 = piVar5 + 1;\n                          } while (iStack_200 != iVar37);\n                        }\n                      }\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1);\n                    } while ((int)pppppppcVar29 < iStack_200);\n                  }\n                  pppppppcVar31 = &ppppppcStack_204;\n                  pppppppcVar38 = pppppppcVar34;\n                  ppppppcVar32 = (code ******)\n                                 FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,0);\n                  pppppppcVar34[9] = ppppppcVar32;\n                  pppppppcVar29 = pppppppcStack_208;\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    if (((uint)ppppppcVar32[0xd] & 0x1000000) == 0) {\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar34[10] = ppppppcVar32;\n                    }\n                    else {\n                      pppppppcVar31 = &ppppppcStack_204;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,1);\n                      pppppppcVar34[10] = ppppppcVar32;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,2);\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar38 = pppppppcVar34;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,6);\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar29 = pppppppcStack_208;\n                      if (((pppppppcVar34[10] == (code ******)0x0) ||\n                          (pppppppcVar34[0xb] == (code ******)0x0)) ||\n                         (ppppppcVar32 == (code ******)0x0)) goto LAB_00056cb8;\n                    }\n                    (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                    pppppppcVar29 = pppppppcVar33;\n                  }\n                }\nLAB_00056cb8:\n                pppppppcStack_20c = pppppppcVar29;\n                FUN_0004b234(pppppppcVar3);\n                FUN_0004b2bc(&pppppppcStack_1f8);\n                pppppppcVar29 = pppppppcStack_20c;\n                if (pppppppcStack_20c != (code *******)0x0) {\n                  if (*(int *)(puVar41 + 0x23c78) != 0) {\n                    (**(code **)(puVar41 + 0x23df0))(pppppppcVar34 + 0x22);\n                  }\n                  FUN_0004b338(pppppppcVar34);\n                  *pppppppcVar3 = (code ******)0x0;\n                  pppppppcVar3[1] = (code ******)0x0;\n                  pppppppcVar29 = pppppppcStack_20c;\n                }\n                goto LAB_00056cfc;\n              }\n            }\n          }\n        }\n      }\n      else {\n        pppppppcVar31 = (code *******)0x0;\n        if (pppppppcVar29 != (code *******)0x0) {\n          pppppppcVar33 = (code *******)FUN_000470f0(ppppppcVar32,0,0,2);\n          goto LAB_000564b0;\n        }\nLAB_000566f4:\n        pppppppcVar34[0xd] = (code ******)0x0;\n        pppppppcVar30 = pppppppcStack_20c;\n      }\nLAB_00056168:\n      pppppppcStack_20c = pppppppcVar30;\n      FUN_0004b234(pppppppcVar3);\n      FUN_0004b2bc(&pppppppcStack_1f8);\n      if (*(int *)(puVar41 + 0x23c78) != 0) {\n        (**(code **)(puVar41 + 0x23df0))(pppppppcVar34 + 0x22);\n      }\n      FUN_0004b338(pppppppcVar34);\n      *pppppppcVar3 = (code ******)0x0;\n      pppppppcVar3[1] = (code ******)0x0;\n      pppppppcVar29 = pppppppcStack_20c;\n      goto LAB_00056cfc;\n    }\n    pppppppcVar38 = (code *******)0x0;\n    iVar18 = (**(code **)(puVar41 + 0x23d98))(pppppppcVar34 + 0x22,0);\n    if (iVar18 != 0) goto LAB_00056e5c;\n    if (pppppppcStack_20c == (code *******)0x0) goto LAB_00056054;\n  }\n  else {\nLAB_00056e5c:\n    pppppppcStack_20c = (code *******)0xc;\n  }\n  FUN_0004b338(pppppppcVar34);\n  *pppppppcVar3 = (code ******)0x0;\n  pppppppcVar3[1] = (code ******)0x0;\n  pppppppcVar29 = pppppppcStack_20c;\nLAB_00056cfc:\n  if (iStack_1a4 == **(int **)(puVar41 + 0x23dac)) {\n    return pppppppcVar29;\n  }\n  pcVar4 = *(code **)(puVar41 + 0x23d6c);\n  iVar18 = iStack_1a4;\n  (*pcVar4)();\n  *(byte *)(pppppppcVar31 + 7) =\n       (byte)*(code *)(pppppppcVar31 + 7) & 0xf6 |\n       (byte)(((uint)(**(int **)(pcVar4 + 0x22b18) << 6) >> 0x1f) << 3) | 1;\n  iVar18 = FUN_00055e64(pppppppcVar31,iVar18,pppppppcVar38);\n  if (iVar18 == 0) {\n    pppppppcVar29 = (code *******)0x0;\n  }\n  else {\n    pppppppcVar29 =\n         (code *******)\n         (**(code **)(pcVar4 + 0x22d48))\n                   (0,*(int *)(pcVar4 + 0x22728) + 0x6f48 +\n                      *(int *)(iVar18 * 4 + *(int *)(pcVar4 + 0x22728) + 0x6f04),5);\n  }\n  return pppppppcVar29;\ncode_r0x00055b38:\n  if ((int)pppppppcVar26 < (int)local_dc) goto LAB_000557a8;\n  goto LAB_00055b44;\nLAB_000557a8:\n  local_150 = (code *******)0x1;\n  goto LAB_000557e4;\nLAB_00055914:\n  local_150 = (code *******)0xc;\n  param_4 = pppppppcVar14;\n  goto LAB_000557e4;\n}\n\n" (function_definition "code *******\nFUN_00054610(code *******param_1,code ******param_2,code *******param_3,code *******param_4,\n            code *******param_5,code *******param_6,code ******param_7,code *******param_8,\n            code *******param_9)\n\n{\n  bool bVar1;\n  code *******pppppppcVar2;\n  code *******pppppppcVar3;\n  code *pcVar4;\n  int *piVar5;\n  code *******pppppppcVar6;\n  uint uVar7;\n  code *pcVar8;\n  code *pcVar9;\n  code *pcVar10;\n  code *pcVar11;\n  code *pcVar12;\n  code *****pppppcVar13;\n  code *******pppppppcVar14;\n  code *******pppppppcVar15;\n  uint uVar16;\n  code cVar23;\n  byte *pbVar17;\n  int iVar18;\n  uint uVar19;\n  code ******ppppppcVar20;\n  undefined1 *puVar21;\n  int iVar22;\n  code *******pppppppcVar24;\n  code *******pppppppcVar25;\n  code *******pppppppcVar26;\n  uint uVar27;\n  code *******pppppppcVar28;\n  code *******pppppppcVar29;\n  code *******pppppppcVar30;\n  code *******pppppppcVar31;\n  code ******ppppppcVar32;\n  code *******pppppppcVar33;\n  code *******pppppppcVar34;\n  code ******ppppppcVar35;\n  code *******pppppppcVar36;\n  code *******unaff_s4;\n  int iVar37;\n  code *******unaff_s5;\n  code *******pppppppcVar38;\n  code *******unaff_s7;\n  code ******ppppppcVar39;\n  code ****ppppcVar40;\n  undefined *puVar41;\n  code *******unaff_s8;\n  code *******pppppppcVar42;\n  int iVar43;\n  undefined8 uVar44;\n  code *******pppppppcStack_218;\n  code *******pppppppcStack_20c;\n  code *******pppppppcStack_208;\n  code ******ppppppcStack_204;\n  int iStack_200;\n  int *piStack_1fc;\n  code *******pppppppcStack_1f8;\n  code *******apppppppcStack_1f4 [6];\n  int iStack_1dc;\n  int iStack_1d8;\n  int iStack_1d4;\n  code *******pppppppcStack_1cc;\n  code *******pppppppcStack_1c8;\n  code *******pppppppcStack_1c4;\n  code *******pppppppcStack_1c0;\n  code ******ppppppcStack_1b8;\n  undefined1 uStack_1b0;\n  byte bStack_1af;\n  byte bStack_1ae;\n  char cStack_1ad;\n  code ******ppppppcStack_1a8;\n  int iStack_1a4;\n  code *******pppppppcStack_1a0;\n  code *******pppppppcStack_19c;\n  code *******pppppppcStack_198;\n  code *******pppppppcStack_194;\n  code *******pppppppcStack_190;\n  code *******pppppppcStack_18c;\n  code *******pppppppcStack_188;\n  code *******pppppppcStack_184;\n  code *******pppppppcStack_180;\n  code *pcStack_17c;\n  uint local_168;\n  code *******local_150;\n  code *******local_148;\n  code *******local_144;\n  code *******local_138;\n  int local_118;\n  code *******local_dc;\n  code *******local_d8;\n  code *******local_d4;\n  code *******local_d0;\n  code *******local_cc;\n  code *******local_c8;\n  code *******local_c4;\n  undefined4 local_c0;\n  undefined4 local_bc;\n  undefined4 local_b8;\n  code ******local_b4;\n  code ******local_b0;\n  int *local_ac;\n  int local_a8;\n  int local_9c;\n  code *******local_98;\n  code *******local_94;\n  uint local_90;\n  code *******local_8c;\n  code *******local_88;\n  code *******local_84;\n  code *******local_80;\n  code *******local_7c;\n  undefined4 local_78;\n  code ******local_74;\n  code *******local_70;\n  byte local_6c;\n  byte local_6b;\n  byte local_6a;\n  byte local_69;\n  char local_68;\n  byte local_67;\n  byte local_66;\n  code *******local_64;\n  code *******local_60;\n  code *******local_5c;\n  code *******local_58;\n  code *******local_54;\n  code *******local_50;\n  code *******local_4c;\n  undefined4 local_48;\n  code *******local_44;\n  code *******local_40;\n  int local_3c;\n  code *******local_34;\n  int local_30;\n  code *******local_2c;\n  \n  local_2c = *(code ********)PTR___stack_chk_guard_00079c10;\n  pppppppcVar38 = (code *******)*param_1;\n  pppppppcVar29 = (code *******)0x0;\n  pppppppcVar33 = param_4;\n  (*(code *)PTR_memset_00079b00)(&local_b4,0,0x88);\n  local_148 = (code *******)param_1[4];\n  if (local_148 != (code *******)0x0) {\n    if (((byte)*(code *)(param_1 + 7) & 0x10) == 0) {\n      local_148 = (code *******)0x0;\n    }\n    else if (param_4 == param_5) {\n      local_148 = (code *******)0x0;\n    }\n    else if ((char)*(code *)(param_1 + 7) < '\0') {\n      local_148 = (code *******)0x0;\n    }\n  }\n  if (param_1[6] < param_7) {\n    local_118 = (int)param_7 + (-1 - (int)param_1[6]);\n  }\n  else {\n    local_118 = 0;\n  }\n  pppppppcStack_1a0 = param_4;\n  pppppppcStack_19c = param_1;\n  local_60 = pppppppcVar38;\n  if (param_1[2] == (code ******)0x0) {\n    local_150 = (code *******)0x1;\n  }\n  else if (pppppppcVar38[9] == (code ******)0x0) {\n    local_150 = (code *******)0x1;\n  }\n  else if (pppppppcVar38[10] == (code ******)0x0) {\n    local_150 = (code *******)0x1;\n  }\n  else if (pppppppcVar38[0xb] == (code ******)0x0) {\n    local_150 = (code *******)0x1;\n  }\n  else {\n    pppppppcVar29 = (code *******)pppppppcVar38[0xc];\n    if (pppppppcVar29 == (code *******)0x0) {\n      local_150 = (code *******)0x1;\n    }\n    else {\n      pppppppcVar3 = param_5;\n      if ((((pppppppcVar38[9][2] == (code *****)0x0) && (pppppppcVar38[10][2] == (code *****)0x0))\n          && ((pppppppcVar38[0xb][2] == (code *****)0x0 || (((uint)param_1[7] & 0x1000000) == 0))))\n         && ((pppppppcVar3 = param_4, param_4 != (code *******)0x0 &&\n             (param_4 = param_5, pppppppcVar3 = param_5, param_5 != (code *******)0x0)))) {\n        local_150 = (code *******)0x1;\n        pppppppcStack_1a0 = param_5;\n      }\n      else {\n        param_5 = pppppppcVar3;\n        pppppppcVar3 = (code *******)((int)param_7 - local_118);\n        if (pppppppcVar3 == (code *******)0x0) {\n          pppppppcVar34 = (code *******)(uint)(pppppppcVar38[0x13] != (code ******)0x0);\n        }\n        else {\n          pppppppcVar34 = (code *******)0x1;\n        }\n        ppppppcVar32 = param_1[5];\n        local_6c = (byte)((uint)((int)param_1[3] << 9) >> 0x1f);\n        local_64 = (code *******)pppppppcVar38[0x17];\n        pppppppcVar31 = (code *******)((int)pppppppcVar38[2] + 1);\n        if ((int)pppppppcVar38[2] + 1 < (int)local_64) {\n          pppppppcVar31 = local_64;\n        }\n        pppppppcVar30 = (code *******)(uint)((int)param_3 + 1 < (int)pppppppcVar31);\n        pppppppcVar33 = (code *******)0x1;\n        local_69 = local_6c;\n        if (ppppppcVar32 != (code ******)0x0) {\n          local_69 = 1;\n        }\n        local_6b = (byte)((uint)((int)pppppppcVar38[0x16] << 2) >> 0x1f);\n        local_6a = (byte)((uint)((int)pppppppcVar38[0x16] << 3) >> 0x1f);\n        pppppppcVar29 = (code *******)((int)param_3 + 1);\n        if (pppppppcVar30 == (code *******)0x0) {\n          pppppppcVar29 = pppppppcVar31;\n        }\n        local_b4 = param_2;\n        local_88 = param_3;\n        local_84 = param_3;\n        local_80 = param_3;\n        local_7c = param_3;\n        local_74 = ppppppcVar32;\n        local_150 = (code *******)FUN_00046d2c(&local_b4);\n        pppppppcVar31 = pppppppcVar34;\n        param_6 = param_6;\n        if (local_150 != (code *******)0x0) goto LAB_000557e4;\n        local_70 = pppppppcVar38 + 0x18;\n        local_66 = (byte)((uint)((int)pppppppcVar38[0x16] << 4) >> 0x1f);\n        pppppppcVar2 = (code *******)0x0;\n        local_98 = pppppppcVar2;\n        if ((local_69 == 0) && (local_b0 = param_2, (int)pppppppcVar38[0x17] < 2)) {\n          local_98 = param_3;\n        }\n        local_7c = param_6;\n        local_80 = param_6;\n        local_67 = (byte)((uint)((int)param_1[7] << 7) >> 0x1f);\n        ppppppcVar35 = pppppppcVar38[0x13];\n        pppppppcVar36 = (code *******)((int)ppppppcVar35 * 2);\n        local_5c = param_9;\n        local_58 = (code *******)0xffffffff;\n        local_94 = local_98;\n        if ((int)pppppppcVar36 < 1) {\nLAB_000559f0:\n          local_3c = 1;\n          local_44 = pppppppcVar36;\n          local_34 = pppppppcVar36;\n          if ((pppppppcVar3 < (code *******)0x2) && (((uint)pppppppcVar38[0x16] & 0x40000000) == 0))\n          {\n            local_50 = (code *******)0x0;\nLAB_00055a40:\n            local_78 = 6;\n            if (((uint)param_9 & 1) != 0) {\n              local_78 = 4;\n            }\n            pppppppcVar24 = (code *******)0x1;\n            pppppppcVar25 = param_4;\n            if ((int)param_5 < (int)param_4) {\n              pppppppcVar24 = (code *******)0xffffffff;\n              pppppppcVar25 = param_5;\n            }\n            pppppppcVar26 = param_5;\n            if ((int)param_5 <= (int)param_4) {\n              pppppppcVar26 = param_4;\n            }\n            ppppppcVar35 = pppppppcVar38[0x17];\n            uVar16 = 8;\n            if (local_148 != (code *******)0x0) {\n              if (ppppppcVar35 == (code ******)0x1) {\n                pppppppcVar28 = (code *******)0x4;\n              }\n              else {\n                pppppppcVar28 = pppppppcVar2;\n                if ((-1 < (int)param_1[3] << 9) && (ppppppcVar32 == (code ******)0x0)) {\n                  pppppppcVar28 = (code *******)0x4;\n                }\n              }\n              pppppppcVar29 = (code *******)0x0;\n              if ((int)param_4 <= (int)param_5) {\n                pppppppcVar29 = (code *******)0x2;\n              }\n              uVar16 = (uint)(ppppppcVar32 != (code ******)0x0) | (uint)pppppppcVar28 |\n                       (uint)pppppppcVar29;\n            }\n            local_dc = param_4;\n            if ((int)param_4 < (int)pppppppcVar25) {\n              local_150 = (code *******)0x1;\n              param_6 = pppppppcVar36;\n            }\n            else if ((int)pppppppcVar26 < (int)param_4) {\n              local_150 = (code *******)0x1;\n              param_4 = (code *******)(uint)((int)param_5 < (int)param_4);\n              param_6 = pppppppcVar36;\n            }\n            else {\n              pppppppcVar36 = (code *******)&local_dc;\n              if ((code *******)(uint)((int)param_5 < (int)param_4) != (code *******)0x0) {\n                pppppppcVar36 = (code *******)0x0;\n              }\n              pcVar4 = (code *)(PTR_DAT_000799a4 + -0x2b7c);\n              piVar5 = (int *)(PTR_s_nt0_000795b8 + (uVar16 - 4) * 4 + 0x6e38);\nLAB_00055b44:\n              if (uVar16 - 4 < 5) {\n                    \n                    \n                pppppppcVar29 = (code *******)(*(code *)(&_gp_1 + *piVar5))();\n                return pppppppcVar29;\n              }\n              param_5 = &local_b4;\n              pppppppcVar28 = pppppppcVar33;\n              while( true ) {\n                param_4 = local_dc;\n                pppppppcVar33 = (code *******)((int)local_dc - local_9c);\n                pppppppcVar30 = param_9;\n                pppppppcVar31 = pppppppcVar2;\n                param_6 = local_148;\n                unaff_s4 = param_3;\n                unaff_s5 = pppppppcVar24;\n                unaff_s7 = pppppppcVar26;\n                if (local_94 <= pppppppcVar33) {\n                  pppppppcVar29 = local_dc;\n                  local_150 = (code *******)(*pcVar4)(param_5);\n                  pppppppcVar33 = pppppppcVar28;\n                  if (local_150 != (code *******)0x0) goto LAB_000557e4;\n                  pppppppcVar33 = (code *******)((int)param_4 - local_9c);\n                }\n                if ((int)param_4 < (int)param_3) {\n                  uVar7 = (uint)(byte)*(code *)((int)pppppppcVar33 + (int)local_b0);\n                }\n                else {\n                  uVar7 = 0;\n                }\n                param_4 = (code *******)((int)param_4 + (int)pppppppcVar24);\n                if (*(code *)((int)local_148 + uVar7) != (code)0x0) break;\n                pppppppcVar33 = pppppppcVar28;\n                local_dc = param_4;\n                if ((int)param_4 < (int)pppppppcVar25) {\n                  local_150 = (code *******)0x1;\n                  goto LAB_000557e4;\n                }\n                if ((code *******)(uint)((int)pppppppcVar26 < (int)param_4) != (code *******)0x0) {\n                  local_150 = (code *******)0x1;\n                  param_4 = (code *******)(uint)((int)pppppppcVar26 < (int)param_4);\n                  goto LAB_000557e4;\n                }\n              }\n              while( true ) {\n                pppppppcVar29 = local_dc;\n                pppppppcVar30 = param_9;\n                pppppppcVar6 = (code *******)(*pcVar4)(&local_b4);\n                pppppppcVar14 = local_60;\n                pppppppcVar42 = local_8c;\n                pppppppcVar33 = pppppppcVar28;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar6 != (code *******)0x0) goto LAB_000557e4;\n                if (((ppppppcVar35 != (code ******)0x1) && (local_98 != (code *******)0x0)) &&\n                   (*local_ac == -1)) goto LAB_00055b1c;\n                local_3c = 0;\n                local_48 = 0;\n                local_4c = (code *******)0x0;\n                local_138 = local_8c;\n                local_d8 = (code *******)0x0;\n                unaff_s7 = (code *******)local_60[9];\n                pppppppcVar30 = local_5c;\n                param_4 = pppppppcVar14;\n                if (((uint)unaff_s7[0xd] & 0x1000000) == 0) break;\n                pppppppcVar29 = (code *******)((int)local_8c + -1);\n                pppppppcVar33 = (code *******)FUN_00049110(&local_b4);\n                if (((uint)pppppppcVar33 & 1) == 0) {\n                  if (pppppppcVar33 == (code *******)0x0) break;\n                  if (((uint)pppppppcVar33 & 6) == 6) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xc];\n                    goto LAB_00054d1c;\n                  }\n                  if (((uint)pppppppcVar33 & 2) != 0) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xb];\n                    goto LAB_00054d1c;\n                  }\n                  pppppppcVar28 = pppppppcVar33;\n                  if (((uint)pppppppcVar33 & 4) == 0) break;\n                  pppppppcVar30 = (code *******)unaff_s7[10];\n                  pppppppcVar29 = pppppppcVar14;\n                  unaff_s7 = (code *******)FUN_0004ae34(&local_d8);\n                  pppppppcVar28 = pppppppcVar33;\n                  if (unaff_s7 != (code *******)0x0) break;\n                  if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                }\n                else {\n                  unaff_s7 = (code *******)pppppppcVar14[10];\nLAB_00054d1c:\n                  pppppppcVar28 = (code *******)PTR_s_nt0_000795b8;\n                  if (unaff_s7 != (code *******)0x0) break;\n                }\n                pppppppcVar28 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                local_dc = (code *******)\n                           (*(code *)PTR___assert_fail_000799f8)\n                                     (PTR_s_nt0_000795b8 + 0x71a0,pppppppcVar29,0x435);\n                if (local_dc == pppppppcVar26) {\n                  if ((int)local_dc < (int)param_3) {\n                    uVar7 = (uint)(byte)*(code *)((int)local_dc + (int)param_2);\n                  }\n                  else {\n                    uVar7 = 0;\n                  }\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    uVar7 = (uint)*(byte *)((int)ppppppcVar32 + uVar7);\n                  }\n                  if (*(code *)((int)local_148 + uVar7) == (code)0x0) {\n                    local_150 = (code *******)0x1;\n                    pppppppcVar30 = param_9;\n                    pppppppcVar33 = pppppppcVar28;\n                    goto LAB_000557e4;\n                  }\n                }\n              }\n              pppppppcVar33 = pppppppcVar28;\n              bVar1 = pppppppcVar36 != (code *******)0x0;\n              if ((local_50 == (code *******)0x0) ||\n                 (local_50[(int)pppppppcVar42] = (code ******)unaff_s7,\n                 pppppppcVar14[0x13] == (code ******)0x0)) {\nLAB_00054d50:\n                if ((int)unaff_s7[0xd] << 4 < 0) {\n                  if ((((uint)unaff_s7[0xd] & 0x1000000) == 0) ||\n                     (pppppppcVar29 = unaff_s7, pppppppcVar30 = pppppppcVar42,\n                     iVar18 = FUN_00049440(&local_b4), iVar18 != 0)) {\n                    unaff_s8 = pppppppcVar42;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                  }\n                  else {\n                    pppppppcVar42 = (code *******)0xffffffff;\n                    pppppppcVar28 = (code *******)0x0;\n                  }\n                }\n                else {\n                  pppppppcVar42 = (code *******)0xffffffff;\n                  pppppppcVar28 = (code *******)0x0;\n                }\n                pcVar8 = (code *)(PTR_DAT_000799a4 + -0x7144);\n                pcVar9 = (code *)(PTR_DAT_000799a4 + -0x1980);\n                pcVar10 = (code *)(PTR_DAT_000799a4 + -0x2f9c);\n                unaff_s8 = pppppppcVar42;\n                local_144 = pppppppcVar36;\n                while( true ) {\n                  uVar44 = CONCAT44(local_98,local_84);\n                  unaff_s5 = (code *******)((int)local_8c + 1);\n                  pppppppcVar29 = local_8c;\n                  if ((int)local_7c <= (int)local_8c) break;\n                  if (((int)local_90 <= (int)unaff_s5) && ((int)local_90 < (int)local_84))\n                  goto LAB_00054e94;\n                  if ((int)local_98 <= (int)unaff_s5) {\n                    while ((int)((ulonglong)uVar44 >> 0x20) < (int)uVar44) {\nLAB_00054e94:\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 2);\n                      local_d8 = (code *******)(*pcVar8)(&local_b4);\n                      if (local_d8 == (code *******)0x0) break;\n                      pppppppcVar14 = param_4;\n                      if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                      pppppppcVar33 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                      pppppppcVar30 = (code *******)0x46c;\n                      pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                      uVar44 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0);\n                      pppppppcVar28 = pppppppcVar38;\n                    }\n                  }\n                  pppppppcVar42 = local_60;\n                  if ((int)unaff_s7[0xd] << 5 < 0) {\n                    pppppppcVar31 = pppppppcVar42;\n                    if (0 < (int)unaff_s7[2]) {\n                      pcVar11 = (code *)(PTR_DAT_000799a4 + -0x6fdc);\n                      pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6ef0);\n                      param_6 = (code *******)0x0;\n                      do {\n                        param_5 = (code *******)unaff_s7[3][(int)param_6];\n                        ppppppcVar39 = *pppppppcVar42;\n                        pppppcVar13 = ppppppcVar39[(int)param_5 * 2 + 1];\n                        if (((uint)pppppcVar13 & 0x800) != 0) {\n                          if (((uint)pppppcVar13 & 0xffc000) != 0) {\n                            pppppppcVar29 = local_8c;\n                            uVar19 = (*pcVar12)(&local_b4,local_8c,local_5c);\n                            uVar7 = (uint)((int)ppppppcVar39[(int)param_5 * 2 + 1] << 8) >> 0x16;\n                            if ((uVar7 & 4) == 0) {\n                              uVar27 = uVar19 & 1;\n                              if ((uVar7 & 8) != 0) goto joined_r0x00054f40;\n                            }\n                            else {\n                              uVar27 = uVar7 & 8;\n                              if ((uVar19 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                              if (uVar27 != 0) goto LAB_000550a4;\n                            }\n                            if ((((uVar7 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                               (((uVar7 & 0x80) != 0 &&\n                                (pppppppcVar33 = local_8c, (uVar19 & 8) == 0)))) goto LAB_000550a4;\n                          }\n                          pppppppcVar30 = &local_b4;\n                          pppppppcVar29 = param_5;\n                          pppppppcVar33 = local_8c;\n                          iVar18 = (*pcVar10)(pppppppcVar42);\n                          if (iVar18 != 0) {\n                            pppppppcVar14 = (code *******)((int)local_8c + iVar18);\n                            if (iVar18 <= local_3c) {\n                              iVar18 = local_3c;\n                            }\n                            pppppppcVar29 = pppppppcVar14;\n                            local_3c = iVar18;\n                            local_d4 = (code *******)(*pcVar11)(&local_b4);\n                            pppppppcVar15 = local_d4;\n                            if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                            pppppppcVar30 =\n                                 (code *******)\n                                 (pppppppcVar42[6] + (int)pppppppcVar42[3][(int)param_5] * 3);\n                            unaff_s4 = (code *******)((int)pppppppcVar14 * 4);\n                            param_5 = local_50 + (int)pppppppcVar14;\n                            if (*param_5 == (code ******)0x0) {\n                              local_d0 = (code *******)*pppppppcVar30;\n                              local_cc = (code *******)pppppppcVar30[1];\n                              local_c8 = (code *******)pppppppcVar30[2];\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *param_5 = ppppppcVar39;\n                            }\n                            else {\n                              pppppppcVar29 = (code *******)(*param_5)[10];\n                              local_d4 = (code *******)FUN_000484bc(&local_d0);\n                              pppppppcVar15 = local_d4;\n                              if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar15 = local_50 + (int)pppppppcVar14;\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *pppppppcVar15 = ppppppcVar39;\n                              (*(code *)PTR_free_00079c24)(local_c8);\n                            }\n                            unaff_s4 = local_50 + (int)pppppppcVar14;\n                            if ((*unaff_s4 == (code ******)0x0) &&\n                               (pppppppcVar15 = local_d4, local_d4 != (code *******)0x0))\n                            goto LAB_00055e44;\n                          }\n                        }\nLAB_000550a4:\n                        param_6 = (code *******)((int)param_6 + 1);\n                      } while ((int)param_6 < (int)unaff_s7[2]);\n                    }\n                    local_d8 = (code *******)0x0;\n                  }\n                  uVar7 = (uint)(byte)*(code *)((int)local_8c + (int)local_b0);\n                  local_8c = (code *******)((int)local_8c + 1);\n                  do {\n                    if (unaff_s7[0xb] != (code ******)0x0) {\n                      pppppppcVar30 = (code *******)unaff_s7[0xb][uVar7];\nLAB_000553a0:\n                      pppppppcVar14 = pppppppcVar30;\n                      if (local_50 != (code *******)0x0) goto LAB_000553ac;\n                      goto LAB_000553cc;\n                    }\n                    pppppppcVar31 = (code *******)unaff_s7[0xc];\n                    if (pppppppcVar31 != (code *******)0x0) {\n                      pppppppcVar29 = (code *******)((int)local_8c + -1);\n                      uVar19 = FUN_00049110(&local_b4);\n                      if ((uVar19 & 1) == 0) {\n                        pppppppcVar30 = (code *******)pppppppcVar31[uVar7];\n                      }\n                      else {\n                        pppppppcVar31 = pppppppcVar31 + uVar7 + 0x100;\n                        pppppppcVar30 = (code *******)*pppppppcVar31;\n                      }\n                      goto LAB_000553a0;\n                    }\n                    pppppppcVar29 = unaff_s7;\n                    pppppppcVar30 = local_5c;\n                    iVar18 = (*pcVar9)(local_60);\n                  } while (iVar18 != 0);\n                  local_d8 = (code *******)0xc;\n                  pppppppcVar15 = local_d8;\nLAB_00055e44:\n                  local_d8 = pppppppcVar15;\n                  param_4 = (code *******)0x0;\n                  if (local_50 == (code *******)0x0) {\n                    pppppppcVar14 = param_4;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    break;\n                  }\n                  pppppppcVar30 = (code *******)0x0;\nLAB_000553ac:\n                  pppppppcVar29 = &local_b4;\n                  pppppppcVar14 = (code *******)FUN_00053684(&local_d8);\nLAB_000553cc:\n                  param_4 = pppppppcVar14;\n                  if (pppppppcVar14 == (code *******)0x0) {\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    if ((local_50 == (code *******)0x0) ||\n                       ((pppppppcVar28 != (code *******)0x0 && (pppppppcVar34 == (code *******)0x0))\n                       )) break;\n                    param_6 = &local_b4;\n                    param_5 = (code *******)&local_d8;\n                    pppppppcVar31 = (code *******)(PTR_DAT_000799a4 + 0x3684);\n                    do {\n                      pppppppcVar15 = local_50 + (int)local_8c;\n                      pppppppcVar42 = local_8c;\n                      do {\n                        pppppppcVar42 = (code *******)((int)pppppppcVar42 + 1);\n                        pppppppcVar29 = local_4c;\n                        param_4 = pppppppcVar14;\n                        if ((int)local_4c < (int)pppppppcVar42) goto LAB_00055da8;\n                        local_8c = (code *******)((int)local_8c + 1);\n                        pppppppcVar15 = pppppppcVar15 + 1;\n                      } while (*pppppppcVar15 == (code ******)0x0);\n                      pppppppcVar30 = (code *******)0x0;\n                      pppppppcVar29 = param_6;\n                      param_4 = (code *******)(*(code *)pppppppcVar31)(param_5);\n                      if (local_d8 != (code *******)0x0) {\n                        if (param_4 == (code *******)0x0) goto LAB_00055da8;\n                        break;\n                      }\n                      pppppppcVar29 = local_4c;\n                    } while (param_4 == (code *******)0x0);\n                  }\n                  pppppppcVar15 = (code *******)((uint)unaff_s7 ^ (uint)param_4);\n                  pppppppcVar42 = unaff_s7;\n                  pppppppcVar14 = local_138;\n                  if ((bVar1) &&\n                     (pppppppcVar42 = pppppppcVar15, pppppppcVar14 = unaff_s5,\n                     pppppppcVar15 != (code *******)0x0)) {\n                    bVar1 = false;\n                    pppppppcVar14 = local_138;\n                  }\n                  local_138 = pppppppcVar14;\n                  unaff_s7 = param_4;\n                  if ((((uint)param_4[0xd] & 0x8000000) != 0) &&\n                     ((((uint)param_4[0xd] & 0x1000000) == 0 ||\n                      (pppppppcVar29 = param_4, pppppppcVar30 = local_8c,\n                      iVar18 = FUN_00049440(&local_b4), iVar18 != 0)))) {\n                    unaff_s7 = pppppppcVar42;\n                    unaff_s8 = local_8c;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                    local_144 = (code *******)0x0;\n                    unaff_s7 = param_4;\n                  }\n                }\nLAB_00055da8:\n                if (local_144 != (code *******)0x0) {\n                  *local_144 = (code ******)((int)local_138 + (int)*local_144);\n                }\n              }\n              else {\n                param_4 = unaff_s7 + 1;\n                pppppppcVar30 = (code *******)0x0;\n                pppppppcVar29 = param_4;\n                local_d8 = (code *******)FUN_00047a44(&local_b4);\n                unaff_s8 = local_d8;\n                if (local_d8 == (code *******)0x0) {\n                  if (((uint)unaff_s7[0xd] & 0x2000000) == 0) {\n                    pppppppcVar29 = param_4;\n                    bVar1 = false;\n                  }\n                  else {\n                    pppppppcVar29 = param_4;\n                    local_d8 = (code *******)FUN_00052d84(&local_b4);\n                    unaff_s8 = local_d8;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055dbc;\n                    bVar1 = false;\n                  }\n                  goto LAB_00054d50;\n                }\n              }\nLAB_00055dbc:\n              if (unaff_s8 == (code *******)0xffffffff) {\nLAB_00055b04:\n                FUN_0004b7e8(&local_b4);\nLAB_00055b1c:\n                local_dc = (code *******)((int)pppppppcVar24 + (int)local_dc);\n                if ((int)pppppppcVar25 <= (int)local_dc) goto code_r0x00055b38;\n                local_150 = (code *******)0x1;\n                goto LAB_000557e4;\n              }\n              if (unaff_s8 == (code *******)&SUB_fffffffe) {\n                local_150 = (code *******)0xc;\n                goto LAB_000557e4;\n              }\n              local_58 = unaff_s8;\n              if (((uint)param_1[7] & 0x8000000) == 0) {\n                if (pppppppcVar3 < (code *******)0x2) {\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055c08;\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                else {\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                if (pppppppcVar3 < (code *******)0x2) {\nLAB_00055c6c:\n                  pppppppcVar28 = pppppppcVar33;\n                  unaff_s4 = local_60;\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055548;\n                }\n                else {\n                  cVar23 = *(code *)(pppppppcVar38 + 0x16);\nLAB_00055c20:\n                  pppppppcVar28 = pppppppcVar33;\n                  if (-1 < (char)cVar23) goto LAB_00055c6c;\n                }\n                pppppppcVar31 = local_54;\n                pppppppcVar42 = local_60;\n                unaff_s4 = pppppppcVar42;\n                if (unaff_s8 < (code *******)0x3fffffff) {\n                  param_4 = (code *******)((int)((int)unaff_s8 + 1) * 4);\n                  unaff_s5 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                  if (unaff_s5 == (code *******)0x0) {\nLAB_00055b9c:\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    local_150 = (code *******)0xc;\n                    pppppppcVar33 = pppppppcVar28;\n                  }\n                  else {\n                    pppppppcVar29 = (code *******)&local_d0;\n                    if (pppppppcVar42[0x13] == (code ******)0x0) {\n                      local_cc = (code *******)0x0;\n                      local_c8 = pppppppcVar31;\n                      local_c0 = 0;\n                      local_bc = 0;\n                      local_b8 = 0;\n                      local_d0 = unaff_s5;\n                      local_c4 = unaff_s8;\n                      param_5 = (code *******)FUN_0005421c(&local_b4);\n                      (*(code *)PTR_free_00079c24)(local_b8);\n                      if (param_5 == (code *******)0x0) {\n                        param_4 = (code *******)*unaff_s5;\n                        if (param_4 == (code *******)0x0) {\nLAB_00055b70:\n                          (*(code *)PTR_free_00079c24)(unaff_s5);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          pppppppcVar33 = pppppppcVar28;\n                          goto LAB_00055b04;\n                        }\nLAB_00055528:\n                        (*(code *)PTR_free_00079c24)(local_50);\n                        pppppppcVar33 = pppppppcVar28;\n                        unaff_s4 = pppppppcVar42;\n                        local_58 = unaff_s8;\n                        local_54 = pppppppcVar31;\n                        local_50 = unaff_s5;\n                        goto LAB_00055548;\n                      }\nLAB_00055acc:\n                      param_4 = (code *******)0x0;\n                      pppppppcVar33 = pppppppcVar28;\n                      unaff_s4 = pppppppcVar42;\n                    }\n                    else {\n                      param_4 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                      if (param_4 == (code *******)0x0) goto LAB_00055b9c;\n                      unaff_s7 = (code *******)&local_d0;\n                      pcVar8 = (code *)(PTR_DAT_000799a4 + 0x421c);\n                      pcVar9 = (code *)(PTR_DAT_000799a4 + -0x6bc0);\n                      pppppppcVar33 = pppppppcVar28;\n                      while( true ) {\n                        pppppppcVar28 = (code *******)((int)unaff_s8 + 1);\n                        param_6 = (code *******)((int)pppppppcVar28 * 4);\n                        pppppppcVar30 = param_6;\n                        (*(code *)PTR_memset_00079b00)(param_4,0);\n                        local_c0 = 0;\n                        local_bc = 0;\n                        local_b8 = 0;\n                        pppppppcVar29 = unaff_s7;\n                        local_d0 = unaff_s5;\n                        local_cc = param_4;\n                        local_c8 = pppppppcVar31;\n                        local_c4 = unaff_s8;\n                        param_5 = (code *******)(*pcVar8)(&local_b4);\n                        (*(code *)PTR_free_00079c24)(local_b8);\n                        unaff_s4 = pppppppcVar28;\n                        if (param_5 != (code *******)0x0) break;\n                        if ((*unaff_s5 != (code ******)0x0) ||\n                           (param_6 = param_6 + -1, *param_4 != (code ******)0x0)) {\n                          pppppppcVar29 = unaff_s5;\n                          pppppppcVar30 = param_4;\n                          param_5 = (code *******)FUN_000520d0(pppppppcVar42);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          if (param_5 != (code *******)0x0) goto LAB_00055acc;\n                          goto LAB_00055528;\n                        }\n                        param_6 = (code *******)((int)local_50 + (int)param_6);\n                        do {\n                          while( true ) {\n                            unaff_s8 = (code *******)((int)unaff_s8 + -1);\n                            if ((int)unaff_s8 < 0) goto LAB_00055b70;\n                            pppppppcVar29 = (code *******)param_6[-1];\n                            if (pppppppcVar29 != (code *******)0x0) break;\n                            param_6 = param_6 + -1;\n                          }\n                          param_6 = param_6 + -1;\n                        } while (((uint)pppppppcVar29[0xd] & 0x8000000) == 0);\n                        pppppppcVar31 = (code *******)(*pcVar9)(&local_b4,pppppppcVar29,unaff_s8);\n                        pppppppcVar33 = pppppppcVar28;\n                      }\n                    }\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    (*(code *)PTR_free_00079c24)(param_4);\n                    local_150 = param_5;\n                    if (param_5 == (code *******)0x1) goto LAB_00055b04;\n                  }\n                }\n                else {\n                  local_150 = (code *******)0xc;\n                  pppppppcVar33 = pppppppcVar28;\n                }\n                goto LAB_000557e4;\n              }\n              if (pppppppcVar38[0x13] != (code ******)0x0) {\n                pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                pppppppcVar30 = unaff_s8;\n                local_54 = (code *******)FUN_00049440(&local_b4);\n                goto LAB_00055c6c;\n              }\nLAB_00055c08:\n              if ((((uint)param_1[7] & 0x8000000) == 0) && ((code *******)0x1 < pppppppcVar3)) {\n                cVar23 = *(code *)(pppppppcVar38 + 0x16);\n                goto LAB_00055c20;\n              }\nLAB_00055548:\n              if (pppppppcVar3 == (code *******)0x0) goto LAB_000557e4;\n              if (pppppppcVar3 < (code *******)0x2) {\n                *param_8 = (code ******)0x0;\n                param_8[1] = (code ******)local_58;\n                goto LAB_000555ac;\n              }\n              pppppppcVar29 = param_8 + 2;\n              do {\n                pppppppcVar29[1] = (code ******)0xffffffff;\n                *pppppppcVar29 = (code ******)0xffffffff;\n                pppppppcVar29 = pppppppcVar29 + 2;\n              } while (pppppppcVar29 != param_8 + (int)pppppppcVar3 * 2);\n              *param_8 = (code ******)0x0;\n              param_8[1] = (code ******)local_58;\n              if (((uint)param_1[7] & 0x8000000) != 0) {\nLAB_000555ac:\n                pppppppcVar33 = param_8;\n                do {\n                  pppppppcVar29 = (code *******)*pppppppcVar33;\n                  if (pppppppcVar29 != (code *******)0xffffffff) {\n                    if (local_68 != '\0') {\n                      pppppppcVar34 = local_94;\n                      if (pppppppcVar29 != local_98) {\n                        pppppppcVar34 = *(code ********)(local_a8 + (int)pppppppcVar29 * 4);\n                      }\n                      *pppppppcVar33 = (code ******)pppppppcVar34;\n                      pppppppcVar29 = local_94;\n                      if (local_98 != (code *******)pppppppcVar33[1]) {\n                        pppppppcVar29 = *(code ********)(local_a8 + (int)pppppppcVar33[1] * 4);\n                      }\n                      pppppppcVar33[1] = (code ******)pppppppcVar29;\n                    }\n                    *pppppppcVar33 = (code ******)((int)local_dc + (int)*pppppppcVar33);\n                    pppppppcVar29 = (code *******)((int)local_dc + (int)pppppppcVar33[1]);\n                    pppppppcVar33[1] = (code ******)pppppppcVar29;\n                  }\n                  pppppppcVar33 = pppppppcVar33 + 2;\n                } while (pppppppcVar33 != param_8 + (int)pppppppcVar3 * 2);\n                if (0 < local_118) {\n                  pppppppcVar33 = param_8 + (int)pppppppcVar3 * 2;\n                  do {\n                    *pppppppcVar33 = (code ******)0xffffffff;\n                    pppppppcVar33[1] = (code ******)0xffffffff;\n                    pppppppcVar33 = pppppppcVar33 + 2;\n                  } while (pppppppcVar33 != param_8 + (int)param_7 * 2);\n                }\n                pppppppcVar30 = local_dc;\n                pppppppcVar33 = param_8;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar38[0x21] != (code ******)0x0) {\n                  pppppppcVar30 = (code *******)((int)pppppppcVar3 + -1);\n                  pppppppcVar34 = (code *******)0x0;\n                  pppppppcVar3 = param_8;\n                  while( true ) {\n                    pppppppcVar29 = (code *******)((int)pppppppcVar34 * 4);\n                    if (pppppppcVar30 == pppppppcVar34) break;\n                    if (*(code ********)((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) !=\n                        pppppppcVar34) {\n                      pppppppcVar3[2] =\n                           param_8[(int)((int)*(code ********)\n                                               ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1)\n                                   * 2];\n                      pppppppcVar3[3] =\n                           param_8[((int)*(code ******)\n                                          ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1) * 2 +\n                                   1];\n                    }\n                    pppppppcVar34 = (code *******)((int)pppppppcVar34 + 1);\n                    pppppppcVar3 = pppppppcVar3 + 2;\n                  }\n                }\n                goto LAB_000557e4;\n              }\n              if ((char)*(code *)(pppppppcVar38 + 0x16) < '\0') {\n                local_168 = (uint)(0 < (int)pppppppcVar38[0x13]);\n              }\n              else {\n                local_168 = 0;\n              }\n              pppppppcVar29 = &local_b4;\n              pppppppcVar30 = pppppppcVar3;\n              pppppppcVar33 = param_8;\n              local_150 = (code *******)FUN_0004f4a0(param_1);\n              if (local_150 == (code *******)0x0) goto LAB_000555ac;\n            }\n          }\n          else if (local_90 < 0x3fffffff) {\n            local_50 = (code *******)(*(code *)PTR_malloc_00079b54)((local_90 + 1) * 4);\n            if (local_50 != (code *******)0x0) goto LAB_00055a40;\n            local_150 = (code *******)0xc;\n            param_6 = pppppppcVar36;\n          }\n          else {\n            local_150 = (code *******)0xc;\n            param_6 = pppppppcVar36;\n          }\n        }\n        else {\n          unaff_s5 = (code *******)((int)ppppppcVar35 * 8);\n          if (pppppppcVar36 < (code *******)0xccccccd) {\n            unaff_s4 = (code *******)(*(code *)PTR_malloc_00079b54)((int)ppppppcVar35 * 0x28);\n            local_40 = unaff_s4;\n            local_30 = (*(code *)PTR_malloc_00079b54)(unaff_s5);\n            if ((unaff_s4 != (code *******)0x0) && (local_30 != 0)) goto LAB_000559f0;\n          }\n          local_150 = (code *******)0xc;\n          param_6 = pppppppcVar36;\n        }\nLAB_000557e4:\n        (*(code *)PTR_free_00079c24)(local_50);\n        param_1 = pppppppcVar30;\n        if (pppppppcVar38[0x13] != (code ******)0x0) {\n          FUN_0004b7e8(&local_b4);\n          (*(code *)PTR_free_00079c24)(local_30);\n          (*(code *)PTR_free_00079c24)(local_40);\n          param_1 = pppppppcVar30;\n        }\n        FUN_0004b2bc(&local_b4);\n        pppppppcStack_1a0 = param_4;\n        pppppppcStack_19c = pppppppcVar31;\n      }\n    }\n  }\n  if (local_2c == *(code ********)PTR___stack_chk_guard_00079c10) {\n    return local_150;\n  }\n  pcVar4 = FUN_00055e64;\n  pppppppcVar3 = local_2c;\n  puVar41 = PTR___stack_chk_fail_00079bd0;\n  (*(code *)PTR___stack_chk_fail_00079bd0)();\n  iStack_1a4 = **(int **)(puVar41 + 0x23dac);\n  pppppppcStack_20c = (code *******)0x0;\n  pppppppcVar3[3] = (code ******)pppppppcVar33;\n  pppppppcVar3[2] = (code ******)0x0;\n  pppppppcVar3[6] = (code ******)0x0;\n  *(byte *)(pppppppcVar3 + 7) = (byte)*(code *)(pppppppcVar3 + 7) & 9;\n  pppppppcVar34 = (code *******)*pppppppcVar3;\n  pppppppcStack_198 = param_5;\n  pppppppcStack_194 = param_6;\n  pppppppcStack_190 = unaff_s4;\n  pppppppcStack_18c = unaff_s5;\n  pppppppcStack_188 = pppppppcVar38;\n  pppppppcStack_184 = unaff_s7;\n  pppppppcStack_180 = unaff_s8;\n  pcStack_17c = pcVar4;\n  if (pppppppcVar3[1] < (code ******)0xa0) {\n    pppppppcVar38 = (code *******)0xa0;\n    pppppppcVar31 = param_1;\n    pppppppcVar34 = (code *******)(**(code **)(puVar41 + 0x23cf8))(pppppppcVar34,0xa0);\n    if (pppppppcVar34 == (code *******)0x0) {\n      pppppppcVar29 = (code *******)0xc;\n      goto LAB_00056cfc;\n    }\n    pppppppcVar3[1] = (code ******)0xa0;\n    *pppppppcVar3 = (code ******)pppppppcVar34;\n  }\n  pppppppcVar3[2] = (code ******)0xa0;\n  pppppppcVar31 = (code *******)0xa0;\n  pppppppcVar38 = (code *******)0x0;\n  (**(code **)(puVar41 + 0x23c9c))(pppppppcVar34,0);\n  pppppppcVar34[0x10] = (code ******)0x1f;\n  if (param_1 < (code *******)0xaaaaaaa) {\n    pppppppcVar34[1] = (code ******)((int)param_1 + 1);\n    ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23cf0))(((int)param_1 + 1) * 8);\n    *pppppppcVar34 = ppppppcVar32;\n    if (param_1 == (code *******)0x0) {\n      pppppppcVar30 = (code *******)0x1;\n    }\n    else {\n      pppppppcVar30 = (code *******)0x1;\n      do {\n        pppppppcVar30 = (code *******)((int)pppppppcVar30 << 1);\n      } while (pppppppcVar30 <= param_1);\n    }\n    pppppppcVar38 = pppppppcVar30;\n    ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23b8c))(0xc,pppppppcVar30);\n    pppppppcVar34[8] = ppppppcVar32;\n    pppppppcVar34[0x11] = (code ******)((int)pppppppcVar30 + -1);\n    ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23d2c))();\n    pppppppcVar34[0x17] = ppppppcVar32;\n    pbVar17 = (byte *)(**(code **)(puVar41 + 0x23c2c))(0xe);\n    if ((((*pbVar17 & 0xdf) == 0x55) && ((pbVar17[1] & 0xdf) == 0x54)) &&\n       (pppppppcVar38 = (code *******)0x4, (pbVar17[2] & 0xdf) == 0x46)) {\n      iVar18 = 3;\n      if (pbVar17[3] == 0x2d) {\n        iVar18 = 4;\n      }\n      pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23754) + 0x71b4);\n      iVar18 = (**(code **)(puVar41 + 0x23dfc))(pbVar17 + iVar18,pppppppcVar38);\n      if (iVar18 == 0) {\n        *(byte *)(pppppppcVar34 + 0x16) = (byte)*(code *)(pppppppcVar34 + 0x16) & 0xdf | 0x20;\n      }\n    }\n    *(byte *)(pppppppcVar34 + 0x16) = (byte)*(code *)(pppppppcVar34 + 0x16) & 0xef;\n    if (1 < (int)pppppppcVar34[0x17]) {\n      if (((uint)pppppppcVar34[0x16] & 0x20000000) == 0) {\n        pppppppcVar38 = (code *******)0x1;\n        ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23b8c))(0x20,1);\n        pppppppcVar34[0xf] = ppppppcVar32;\n        if (ppppppcVar32 == (code ******)0x0) goto LAB_00056e5c;\n        iVar18 = 0;\n        do {\n          uVar16 = iVar18 << 3;\n          uVar7 = 0;\n          do {\n            uVar19 = (**(code **)(puVar41 + 0x23c88))(uVar16);\n            if (uVar19 != 0xffffffff) {\n              pppppppcVar38 = *(code ********)((int)pppppppcVar34[0xf] + iVar18);\n              *(uint *)((int)pppppppcVar34[0xf] + iVar18) =\n                   (uint)pppppppcVar38 | 1 << (uVar7 & 0x1f);\n            }\n            if (((uVar16 & 0xffffff80) == 0) && (uVar19 != uVar16)) {\n              *(byte *)(pppppppcVar34 + 0x16) = (byte)*(code *)(pppppppcVar34 + 0x16) & 0xef | 0x10;\n            }\n            uVar7 = uVar7 + 1;\n            uVar16 = uVar16 + 1;\n          } while (uVar7 != 0x20);\n          iVar18 = iVar18 + 4;\n        } while (iVar18 != 0x20);\n      }\n      else {\n        pppppppcVar34[0xf] = (code ******)(*(int *)(puVar41 + 0x23754) + 0x6ee4);\n      }\n    }\n    if ((*pppppppcVar34 == (code ******)0x0) || (pppppppcVar34[8] == (code ******)0x0))\n    goto LAB_00056e5c;\n    pppppppcStack_20c = (code *******)0x0;\n    if (*(int *)(puVar41 + 0x23c78) == 0) {\nLAB_00056054:\n      ppppppcVar32 = pppppppcVar3[5];\n      uVar16 = (uint)pppppppcVar33 & 0x400000;\n      bVar1 = uVar16 != 0;\n      pppppppcVar31 = (code *******)0x4c;\n      pppppppcVar38 = (code *******)0x0;\n      (**(code **)(puVar41 + 0x23c9c))(apppppppcStack_1f4,0);\n      cStack_1ad = ppppppcVar32 != (code ******)0x0 || bVar1;\n      ppppppcStack_1a8 = pppppppcVar34[0x17];\n      bStack_1af = (byte)((uint)((int)pppppppcVar34[0x16] << 2) >> 0x1f);\n      bStack_1ae = (byte)((uint)((int)pppppppcVar34[0x16] << 3) >> 0x1f);\n      pppppppcStack_1f8 = pppppppcVar29;\n      pppppppcStack_1cc = param_1;\n      pppppppcStack_1c8 = param_1;\n      pppppppcStack_1c4 = param_1;\n      pppppppcStack_1c0 = param_1;\n      ppppppcStack_1b8 = ppppppcVar32;\n      uStack_1b0 = bVar1;\n      if (0 < (int)param_1) {\n        pppppppcVar38 = (code *******)((int)param_1 + 1);\n        pppppppcVar30 = (code *******)FUN_00046d2c(&pppppppcStack_1f8,pppppppcVar38);\n        if (pppppppcVar30 == (code *******)0x0) goto LAB_000560cc;\n        goto LAB_00056168;\n      }\nLAB_000560cc:\n      if (cStack_1ad != '\0') {\n        pppppppcVar29 = apppppppcStack_1f4[0];\n      }\n      apppppppcStack_1f4[0] = pppppppcVar29;\n      if (uVar16 == 0) {\n        if ((int)pppppppcVar34[0x17] < 2) {\n          if (ppppppcVar32 != (code ******)0x0) {\n            FUN_00045dc8();\n          }\n        }\n        else {\n          FUN_00047cb0(&pppppppcStack_1f8);\n        }\n      }\n      else {\n        if (1 < (int)pppppppcVar34[0x17]) {\n          iVar18 = *(int *)(puVar41 + 0x23abc);\n          do {\n            pppppppcVar30 = (code *******)FUN_00048714(&pppppppcStack_1f8);\n            if (pppppppcVar30 != (code *******)0x0) break;\n            if (((int)param_1 <= iStack_1d8) ||\n               (pppppppcVar38 = (code *******)(iStack_1d4 << 1),\n               (int)pppppppcVar34[0x17] + iStack_1dc < iStack_1d4)) goto LAB_000563d0;\n            pppppppcVar30 =\n                 (code *******)(*(code *)(iVar18 + 0x6d2c))(&pppppppcStack_1f8,pppppppcVar38);\n          } while (pppppppcVar30 == (code *******)0x0);\n          goto LAB_00056168;\n        }\n        FUN_00047be4(&pppppppcStack_1f8);\n      }\nLAB_000563d0:\n      pppppppcStack_20c = (code *******)0x0;\n      pppppppcVar3[6] = (code ******)0x0;\n      ppppppcVar32 = *pppppppcVar3;\n      ppppppcVar32[0x20] = (code *****)pppppppcVar33;\n      FUN_00049e40(&ppppppcStack_204,&pppppppcStack_1f8,(uint)pppppppcVar33 | 0x800000);\n      pppppppcVar38 = pppppppcVar3;\n      pppppppcVar29 =\n           (code *******)\n           FUN_00051868(&pppppppcStack_1f8,pppppppcVar3,&ppppppcStack_204,pppppppcVar33,0,\n                        &pppppppcStack_20c);\n      if (pppppppcStack_20c == (code *******)0x0) {\n        pppppppcVar31 = (code *******)0x0;\n        pppppppcVar38 = (code *******)0x0;\n        pppppppcVar33 = (code *******)FUN_000470f0(ppppppcVar32,0,0,2);\n        pppppppcVar30 = pppppppcVar33;\n        if (pppppppcVar29 != (code *******)0x0) {\nLAB_000564b0:\n          pppppppcVar31 = pppppppcVar33;\n          pppppppcVar30 = (code *******)FUN_000470f0(ppppppcVar32,pppppppcVar29,pppppppcVar33,0x10);\n          pppppppcVar38 = pppppppcVar29;\n        }\n        if ((pppppppcVar33 == (code *******)0x0) ||\n           (pcVar4 = *(code **)(puVar41 + 0x23cf0), pppppppcVar30 == (code *******)0x0)) {\n          pppppppcStack_20c = (code *******)0xc;\n          goto LAB_000566f4;\n        }\n        pppppppcVar34[0xd] = (code ******)pppppppcVar30;\n        pppppppcVar29 = (code *******)*pppppppcVar3;\n        ppppppcVar39 = pppppppcVar29[1];\n        iVar18 = (int)ppppppcVar39 << 2;\n        ppppppcVar32 = (code ******)(*pcVar4)(iVar18);\n        pppppppcVar29[3] = ppppppcVar32;\n        ppppppcVar35 = (code ******)(**(code **)(puVar41 + 0x23cf0))(iVar18);\n        pppppppcVar29[4] = ppppppcVar35;\n        iVar18 = (int)ppppppcVar39 * 0xc;\n        ppppppcVar39 = (code ******)(**(code **)(puVar41 + 0x23cf0))(iVar18);\n        pppppppcVar29[5] = ppppppcVar39;\n        ppppppcVar20 = (code ******)(**(code **)(puVar41 + 0x23cf0))(iVar18);\n        pppppppcVar29[6] = ppppppcVar20;\n        if (ppppppcVar32 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else if (ppppppcVar35 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else if (ppppppcVar39 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else if (ppppppcVar20 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else {\n          ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23cf0))((int)pppppppcVar3[6] << 2);\n          pppppppcVar29[0x21] = ppppppcVar32;\n          if (ppppppcVar32 != (code ******)0x0) {\n            ppppppcVar32 = (code ******)0x0;\n            if (pppppppcVar3[6] != (code ******)0x0) {\n              do {\n                pppppppcVar29[0x21][(int)ppppppcVar32] = (code *****)ppppppcVar32;\n                ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n              } while (ppppppcVar32 < pppppppcVar3[6]);\n            }\n            FUN_00046050(pppppppcVar29[0xd],*(int *)(puVar41 + 0x23abc) + 0x60e8,pppppppcVar29);\n            ppppppcVar32 = pppppppcVar3[6];\n            if (ppppppcVar32 == (code ******)0x0) {\nLAB_00056704:\n              (**(code **)(puVar41 + 0x23dc0))(pppppppcVar29[0x21]);\n              pppppppcVar29[0x21] = (code ******)0x0;\n            }\n            else {\n              ppppppcVar35 = pppppppcVar29[0x21];\n              if (*ppppppcVar35 == (code *****)0x0) {\n                ppppppcVar39 = (code ******)0x0;\n                do {\n                  ppppppcVar35 = ppppppcVar35 + 1;\n                  ppppppcVar39 = (code ******)((int)ppppppcVar39 + 1);\n                  if (ppppppcVar32 == ppppppcVar39) {\n                    if (ppppppcVar32 == ppppppcVar39) goto LAB_00056704;\n                    break;\n                  }\n                } while ((code ******)*ppppppcVar35 == ppppppcVar39);\n              }\n            }\n          }\n          pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23abc) + 0x73a4);\n          pppppppcVar30 = (code *******)FUN_00045fb4(pppppppcVar29[0xd],pppppppcVar38,pppppppcVar3);\n          pppppppcVar31 = pppppppcVar29;\n          if (pppppppcVar30 == (code *******)0x0) {\n            pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23b40) + -0x5be4);\n            pppppppcVar30 = (code *******)FUN_00045fb4(pppppppcVar29[0xd],pppppppcVar38);\n            if (pppppppcVar30 == (code *******)0x0) {\n              FUN_00046050(pppppppcVar29[0xd],*(int *)(puVar41 + 0x23abc) + 0x61b4);\n              pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23b40) + -0x4614);\n              pppppppcVar30 = (code *******)FUN_00046050(pppppppcVar29[0xd],pppppppcVar38);\n              if (pppppppcVar30 == (code *******)0x0) {\n                uVar7 = 0;\n                iVar18 = *(int *)(puVar41 + 0x23b40);\n                pppppppcVar33 = (code *******)0x0;\nLAB_00056744:\n                if ((code *******)pppppppcVar29[2] != pppppppcVar33) {\nLAB_00056750:\n                  if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                    pppppppcVar38 = pppppppcVar29;\n                    pppppppcVar31 = pppppppcVar33;\n                    pppppppcVar30 =\n                         (code *******)\n                         (*(code *)(iVar18 + -0x561c))\n                                   (&ppppppcStack_204,pppppppcVar29,pppppppcVar33,1);\n                    if (pppppppcVar30 != (code *******)0x0) goto LAB_00056168;\n                    if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                      (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                      uVar7 = 1;\n                    }\n                  }\n                  pppppppcVar33 = (code *******)((int)pppppppcVar33 + 1);\n                  goto LAB_00056744;\n                }\n                if (uVar7 != 0) {\n                  uVar7 = 0;\n                  pppppppcVar33 = (code *******)0x0;\n                  goto LAB_00056750;\n                }\n                if (((((uint)pppppppcVar3[7] & 0x8000000) == 0) &&\n                    (pppppppcVar3[6] != (code ******)0x0)) &&\n                   ((char)*(code *)(pppppppcVar29 + 0x16) < '\0')) {\n                  ppppppcVar32 = pppppppcVar29[2];\n                }\n                else {\n                  if (pppppppcVar29[0x13] == (code ******)0x0) goto LAB_000568f0;\n                  ppppppcVar32 = pppppppcVar29[2];\n                }\n                ppppppcVar35 = (code ******)\n                               (**(code **)(puVar41 + 0x23cf0))((int)ppppppcVar32 * 0xc);\n                pppppppcVar29[7] = ppppppcVar35;\n                if (ppppppcVar35 == (code ******)0x0) {\n                  pppppppcVar30 = (code *******)0xc;\n                  goto LAB_00056168;\n                }\n                if (ppppppcVar32 != (code ******)0x0) {\n                  iVar18 = 0;\n                  ppppppcVar32 = (code ******)0x0;\n                  do {\n                    puVar21 = (undefined1 *)((int)pppppppcVar29[7] + iVar18);\n                    *puVar21 = 0;\n                    puVar21[1] = 0;\n                    puVar21[2] = 0;\n                    puVar21[3] = 0;\n                    puVar21[4] = 0;\n                    puVar21[5] = 0;\n                    puVar21[6] = 0;\n                    puVar21[7] = 0;\n                    puVar21[8] = 0;\n                    puVar21[9] = 0;\n                    puVar21[10] = 0;\n                    puVar21[0xb] = 0;\n                    ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                    iVar18 = iVar18 + 0xc;\n                  } while (ppppppcVar32 < pppppppcVar29[2]);\n                  iVar18 = *(int *)(puVar41 + 0x23abc);\n                  if (pppppppcVar29[2] != (code ******)0x0) {\n                    iVar43 = 0;\n                    pppppppcStack_218 = (code *******)0x0;\n                    do {\n                      piVar5 = *(int **)((int)pppppppcVar29[6] + iVar43 + 8);\n                      if (0 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4)) {\n                        iVar37 = 0;\n                        do {\n                          pppppppcVar38 = pppppppcStack_218;\n                          iVar22 = (*(code *)(iVar18 + 0x6e30))\n                                             (pppppppcVar29[7] + *piVar5 * 3,pppppppcStack_218);\n                          pppppppcVar30 = (code *******)0xc;\n                          if (iVar22 == 0) goto LAB_00056168;\n                          iVar37 = iVar37 + 1;\n                          piVar5 = piVar5 + 1;\n                        } while (iVar37 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4));\n                      }\n                      pppppppcStack_218 = (code *******)((int)pppppppcStack_218 + 1);\n                      iVar43 = iVar43 + 0xc;\n                    } while (pppppppcStack_218 < pppppppcVar29[2]);\n                  }\n                }\nLAB_000568f0:\n                pppppppcStack_20c = (code *******)0x0;\n                if (((((uint)pppppppcVar34[0x16] & 0x20000000) != 0) && (uVar16 == 0)) &&\n                   (pppppppcVar3[5] == (code ******)0x0)) {\n                  if (pppppppcVar34[2] != (code ******)0x0) {\n                    pppppppcVar31 = (code *******)(*(int *)(puVar41 + 0x23754) + 0x6e4c);\n                    if (*(byte *)(*pppppppcVar34 + 1) < 0xd) {\n                    \n                    \n                      pppppppcVar29 =\n                           (code *******)\n                           (*(code *)(puVar41 +\n                                     (int)(pppppppcVar31[*(byte *)(*pppppppcVar34 + 1)] + 0xadc7)))\n                                     ();\n                      return pppppppcVar29;\n                    }\n                    (**(code **)(puVar41 + 0x23bc4))(0);\n                    if (uVar7 != 0) {\n                      pppppppcVar31 = (code *******)&DAT_00000007;\n                      ppppppcVar32 = (code ******)0x0;\n                      do {\n                        ppppppcVar35 = *pppppppcVar34 + (int)ppppppcVar32 * 2;\n                        if (*(char *)(ppppppcVar35 + 1) == '\x01') {\n                          if (*(char *)ppppppcVar35 < '\0') {\n                            ppppppcVar35[1] = (code *****)((uint)ppppppcVar35[1] & 0xfffffbff);\n                          }\n                        }\n                        else if (*(char *)(ppppppcVar35 + 1) == '\x05') {\n                          *(char *)(ppppppcVar35 + 1) = '\a';\n                        }\n                        ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                      } while (ppppppcVar32 < pppppppcVar34[2]);\n                    }\n                  }\n                  pppppppcVar34[0x17] = (code ******)0x1;\n                  if (0 < (int)pppppppcVar34[0x13]) {\n                    uVar7 = 1;\n                  }\n                  *(byte *)(pppppppcVar34 + 0x16) =\n                       (byte)*(code *)(pppppppcVar34 + 0x16) & 0x9f | (byte)((uVar7 & 1) << 6);\n                }\n                ppppppcVar32 = (code ******)pppppppcVar34[0xd][3][7];\n                pppppppcVar34[0x12] = ppppppcVar32;\n                pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppppcVar32 * 3);\n                pppppppcVar33 = (code *******)FUN_000483e8(&ppppppcStack_204,pppppppcVar38);\n                pppppppcVar29 = pppppppcVar33;\n                pppppppcStack_208 = pppppppcVar33;\n                if (pppppppcVar33 == (code *******)0x0) {\n                  if ((0 < (int)pppppppcVar34[0x13]) && (0 < iStack_200)) {\n                    iVar18 = *(int *)(puVar41 + 0x23abc);\n                    iVar43 = *(int *)(puVar41 + 0x23abc);\n                    pppppppcVar29 = (code *******)0x0;\n                    do {\n                      pppppppcVar31 =\n                           (code *******)(*pppppppcVar34 + piStack_1fc[(int)pppppppcVar29] * 2);\n                      if (*(code *)(pppppppcVar31 + 1) == (code)0x4) {\n                        iVar37 = 0;\n                        piVar5 = piStack_1fc;\n                        if (iStack_200 < 1) {\nLAB_00056b8c:\n                          if (iStack_200 != iVar37) {\n                            ppppcVar40 = *pppppppcVar34[5][piStack_1fc[(int)pppppppcVar29] * 3 + 2];\n                            iVar37 = (*(code *)(iVar18 + 0x5ea8))(&ppppppcStack_204,ppppcVar40);\n                            if (iVar37 == 0) {\n                              pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppcVar40 * 3)\n                              ;\n                              pppppppcVar29 =\n                                   (code *******)\n                                   (*(code *)(iVar43 + 0x7f1c))(&ppppppcStack_204,pppppppcVar38);\n                              if (pppppppcVar29 != (code *******)0x0) goto LAB_00056cb8;\n                            }\n                          }\n                        }\n                        else {\n                          do {\n                            ppppppcVar32 = *pppppppcVar34 + *piVar5 * 2;\n                            if ((*(char *)(ppppppcVar32 + 1) == '\t') &&\n                               ((code ******)*ppppppcVar32 == *pppppppcVar31)) goto LAB_00056b8c;\n                            iVar37 = iVar37 + 1;\n                            piVar5 = piVar5 + 1;\n                          } while (iStack_200 != iVar37);\n                        }\n                      }\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1);\n                    } while ((int)pppppppcVar29 < iStack_200);\n                  }\n                  pppppppcVar31 = &ppppppcStack_204;\n                  pppppppcVar38 = pppppppcVar34;\n                  ppppppcVar32 = (code ******)\n                                 FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,0);\n                  pppppppcVar34[9] = ppppppcVar32;\n                  pppppppcVar29 = pppppppcStack_208;\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    if (((uint)ppppppcVar32[0xd] & 0x1000000) == 0) {\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar34[10] = ppppppcVar32;\n                    }\n                    else {\n                      pppppppcVar31 = &ppppppcStack_204;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,1);\n                      pppppppcVar34[10] = ppppppcVar32;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,2);\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar38 = pppppppcVar34;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,6);\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar29 = pppppppcStack_208;\n                      if (((pppppppcVar34[10] == (code ******)0x0) ||\n                          (pppppppcVar34[0xb] == (code ******)0x0)) ||\n                         (ppppppcVar32 == (code ******)0x0)) goto LAB_00056cb8;\n                    }\n                    (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                    pppppppcVar29 = pppppppcVar33;\n                  }\n                }\nLAB_00056cb8:\n                pppppppcStack_20c = pppppppcVar29;\n                FUN_0004b234(pppppppcVar3);\n                FUN_0004b2bc(&pppppppcStack_1f8);\n                pppppppcVar29 = pppppppcStack_20c;\n                if (pppppppcStack_20c != (code *******)0x0) {\n                  if (*(int *)(puVar41 + 0x23c78) != 0) {\n                    (**(code **)(puVar41 + 0x23df0))(pppppppcVar34 + 0x22);\n                  }\n                  FUN_0004b338(pppppppcVar34);\n                  *pppppppcVar3 = (code ******)0x0;\n                  pppppppcVar3[1] = (code ******)0x0;\n                  pppppppcVar29 = pppppppcStack_20c;\n                }\n                goto LAB_00056cfc;\n              }\n            }\n          }\n        }\n      }\n      else {\n        pppppppcVar31 = (code *******)0x0;\n        if (pppppppcVar29 != (code *******)0x0) {\n          pppppppcVar33 = (code *******)FUN_000470f0(ppppppcVar32,0,0,2);\n          goto LAB_000564b0;\n        }\nLAB_000566f4:\n        pppppppcVar34[0xd] = (code ******)0x0;\n        pppppppcVar30 = pppppppcStack_20c;\n      }\nLAB_00056168:\n      pppppppcStack_20c = pppppppcVar30;\n      FUN_0004b234(pppppppcVar3);\n      FUN_0004b2bc(&pppppppcStack_1f8);\n      if (*(int *)(puVar41 + 0x23c78) != 0) {\n        (**(code **)(puVar41 + 0x23df0))(pppppppcVar34 + 0x22);\n      }\n      FUN_0004b338(pppppppcVar34);\n      *pppppppcVar3 = (code ******)0x0;\n      pppppppcVar3[1] = (code ******)0x0;\n      pppppppcVar29 = pppppppcStack_20c;\n      goto LAB_00056cfc;\n    }\n    pppppppcVar38 = (code *******)0x0;\n    iVar18 = (**(code **)(puVar41 + 0x23d98))(pppppppcVar34 + 0x22,0);\n    if (iVar18 != 0) goto LAB_00056e5c;\n    if (pppppppcStack_20c == (code *******)0x0) goto LAB_00056054;\n  }\n  else {\nLAB_00056e5c:\n    pppppppcStack_20c = (code *******)0xc;\n  }\n  FUN_0004b338(pppppppcVar34);\n  *pppppppcVar3 = (code ******)0x0;\n  pppppppcVar3[1] = (code ******)0x0;\n  pppppppcVar29 = pppppppcStack_20c;\nLAB_00056cfc:\n  if (iStack_1a4 == **(int **)(puVar41 + 0x23dac)) {\n    return pppppppcVar29;\n  }\n  pcVar4 = *(code **)(puVar41 + 0x23d6c);\n  iVar18 = iStack_1a4;\n  (*pcVar4)();\n  *(byte *)(pppppppcVar31 + 7) =\n       (byte)*(code *)(pppppppcVar31 + 7) & 0xf6 |\n       (byte)(((uint)(**(int **)(pcVar4 + 0x22b18) << 6) >> 0x1f) << 3) | 1;\n  iVar18 = FUN_00055e64(pppppppcVar31,iVar18,pppppppcVar38);\n  if (iVar18 == 0) {\n    pppppppcVar29 = (code *******)0x0;\n  }\n  else {\n    pppppppcVar29 =\n         (code *******)\n         (**(code **)(pcVar4 + 0x22d48))\n                   (0,*(int *)(pcVar4 + 0x22728) + 0x6f48 +\n                      *(int *)(iVar18 * 4 + *(int *)(pcVar4 + 0x22728) + 0x6f04),5);\n  }\n  return pppppppcVar29;\ncode_r0x00055b38:\n  if ((int)pppppppcVar26 < (int)local_dc) goto LAB_000557a8;\n  goto LAB_00055b44;\nLAB_000557a8:\n  local_150 = (code *******)0x1;\n  goto LAB_000557e4;\nLAB_00055914:\n  local_150 = (code *******)0xc;\n  param_4 = pppppppcVar14;\n  goto LAB_000557e4;\n}" type_identifier (pointer_declarator "*******\nFUN_00054610(code *******param_1,code ******param_2,code *******param_3,code *******param_4,\n            code *******param_5,code *******param_6,code ******param_7,code *******param_8,\n            code *******param_9)" * (pointer_declarator "******\nFUN_00054610(code *******param_1,code ******param_2,code *******param_3,code *******param_4,\n            code *******param_5,code *******param_6,code ******param_7,code *******param_8,\n            code *******param_9)" * (pointer_declarator "*****\nFUN_00054610(code *******param_1,code ******param_2,code *******param_3,code *******param_4,\n            code *******param_5,code *******param_6,code ******param_7,code *******param_8,\n            code *******param_9)" * (pointer_declarator "****\nFUN_00054610(code *******param_1,code ******param_2,code *******param_3,code *******param_4,\n            code *******param_5,code *******param_6,code ******param_7,code *******param_8,\n            code *******param_9)" * (pointer_declarator "***\nFUN_00054610(code *******param_1,code ******param_2,code *******param_3,code *******param_4,\n            code *******param_5,code *******param_6,code ******param_7,code *******param_8,\n            code *******param_9)" * (pointer_declarator "**\nFUN_00054610(code *******param_1,code ******param_2,code *******param_3,code *******param_4,\n            code *******param_5,code *******param_6,code ******param_7,code *******param_8,\n            code *******param_9)" * (pointer_declarator "*\nFUN_00054610(code *******param_1,code ******param_2,code *******param_3,code *******param_4,\n            code *******param_5,code *******param_6,code ******param_7,code *******param_8,\n            code *******param_9)" * (function_declarator "FUN_00054610(code *******param_1,code ******param_2,code *******param_3,code *******param_4,\n            code *******param_5,code *******param_6,code ******param_7,code *******param_8,\n            code *******param_9)" identifier (parameter_list "(code *******param_1,code ******param_2,code *******param_3,code *******param_4,\n            code *******param_5,code *******param_6,code ******param_7,code *******param_8,\n            code *******param_9)" ( (parameter_declaration "code *******param_1" type_identifier (pointer_declarator "*******param_1" * (pointer_declarator "******param_1" * (pointer_declarator "*****param_1" * (pointer_declarator "****param_1" * (pointer_declarator "***param_1" * (pointer_declarator "**param_1" * (pointer_declarator "*param_1" * identifier)))))))) , (parameter_declaration "code ******param_2" type_identifier (pointer_declarator "******param_2" * (pointer_declarator "*****param_2" * (pointer_declarator "****param_2" * (pointer_declarator "***param_2" * (pointer_declarator "**param_2" * (pointer_declarator "*param_2" * identifier))))))) , (parameter_declaration "code *******param_3" type_identifier (pointer_declarator "*******param_3" * (pointer_declarator "******param_3" * (pointer_declarator "*****param_3" * (pointer_declarator "****param_3" * (pointer_declarator "***param_3" * (pointer_declarator "**param_3" * (pointer_declarator "*param_3" * identifier)))))))) , (parameter_declaration "code *******param_4" type_identifier (pointer_declarator "*******param_4" * (pointer_declarator "******param_4" * (pointer_declarator "*****param_4" * (pointer_declarator "****param_4" * (pointer_declarator "***param_4" * (pointer_declarator "**param_4" * (pointer_declarator "*param_4" * identifier)))))))) , (parameter_declaration "code *******param_5" type_identifier (pointer_declarator "*******param_5" * (pointer_declarator "******param_5" * (pointer_declarator "*****param_5" * (pointer_declarator "****param_5" * (pointer_declarator "***param_5" * (pointer_declarator "**param_5" * (pointer_declarator "*param_5" * identifier)))))))) , (parameter_declaration "code *******param_6" type_identifier (pointer_declarator "*******param_6" * (pointer_declarator "******param_6" * (pointer_declarator "*****param_6" * (pointer_declarator "****param_6" * (pointer_declarator "***param_6" * (pointer_declarator "**param_6" * (pointer_declarator "*param_6" * identifier)))))))) , (parameter_declaration "code ******param_7" type_identifier (pointer_declarator "******param_7" * (pointer_declarator "*****param_7" * (pointer_declarator "****param_7" * (pointer_declarator "***param_7" * (pointer_declarator "**param_7" * (pointer_declarator "*param_7" * identifier))))))) , (parameter_declaration "code *******param_8" type_identifier (pointer_declarator "*******param_8" * (pointer_declarator "******param_8" * (pointer_declarator "*****param_8" * (pointer_declarator "****param_8" * (pointer_declarator "***param_8" * (pointer_declarator "**param_8" * (pointer_declarator "*param_8" * identifier)))))))) , (parameter_declaration "code *******param_9" type_identifier (pointer_declarator "*******param_9" * (pointer_declarator "******param_9" * (pointer_declarator "*****param_9" * (pointer_declarator "****param_9" * (pointer_declarator "***param_9" * (pointer_declarator "**param_9" * (pointer_declarator "*param_9" * identifier)))))))) )))))))))) (compound_statement "{\n  bool bVar1;\n  code *******pppppppcVar2;\n  code *******pppppppcVar3;\n  code *pcVar4;\n  int *piVar5;\n  code *******pppppppcVar6;\n  uint uVar7;\n  code *pcVar8;\n  code *pcVar9;\n  code *pcVar10;\n  code *pcVar11;\n  code *pcVar12;\n  code *****pppppcVar13;\n  code *******pppppppcVar14;\n  code *******pppppppcVar15;\n  uint uVar16;\n  code cVar23;\n  byte *pbVar17;\n  int iVar18;\n  uint uVar19;\n  code ******ppppppcVar20;\n  undefined1 *puVar21;\n  int iVar22;\n  code *******pppppppcVar24;\n  code *******pppppppcVar25;\n  code *******pppppppcVar26;\n  uint uVar27;\n  code *******pppppppcVar28;\n  code *******pppppppcVar29;\n  code *******pppppppcVar30;\n  code *******pppppppcVar31;\n  code ******ppppppcVar32;\n  code *******pppppppcVar33;\n  code *******pppppppcVar34;\n  code ******ppppppcVar35;\n  code *******pppppppcVar36;\n  code *******unaff_s4;\n  int iVar37;\n  code *******unaff_s5;\n  code *******pppppppcVar38;\n  code *******unaff_s7;\n  code ******ppppppcVar39;\n  code ****ppppcVar40;\n  undefined *puVar41;\n  code *******unaff_s8;\n  code *******pppppppcVar42;\n  int iVar43;\n  undefined8 uVar44;\n  code *******pppppppcStack_218;\n  code *******pppppppcStack_20c;\n  code *******pppppppcStack_208;\n  code ******ppppppcStack_204;\n  int iStack_200;\n  int *piStack_1fc;\n  code *******pppppppcStack_1f8;\n  code *******apppppppcStack_1f4 [6];\n  int iStack_1dc;\n  int iStack_1d8;\n  int iStack_1d4;\n  code *******pppppppcStack_1cc;\n  code *******pppppppcStack_1c8;\n  code *******pppppppcStack_1c4;\n  code *******pppppppcStack_1c0;\n  code ******ppppppcStack_1b8;\n  undefined1 uStack_1b0;\n  byte bStack_1af;\n  byte bStack_1ae;\n  char cStack_1ad;\n  code ******ppppppcStack_1a8;\n  int iStack_1a4;\n  code *******pppppppcStack_1a0;\n  code *******pppppppcStack_19c;\n  code *******pppppppcStack_198;\n  code *******pppppppcStack_194;\n  code *******pppppppcStack_190;\n  code *******pppppppcStack_18c;\n  code *******pppppppcStack_188;\n  code *******pppppppcStack_184;\n  code *******pppppppcStack_180;\n  code *pcStack_17c;\n  uint local_168;\n  code *******local_150;\n  code *******local_148;\n  code *******local_144;\n  code *******local_138;\n  int local_118;\n  code *******local_dc;\n  code *******local_d8;\n  code *******local_d4;\n  code *******local_d0;\n  code *******local_cc;\n  code *******local_c8;\n  code *******local_c4;\n  undefined4 local_c0;\n  undefined4 local_bc;\n  undefined4 local_b8;\n  code ******local_b4;\n  code ******local_b0;\n  int *local_ac;\n  int local_a8;\n  int local_9c;\n  code *******local_98;\n  code *******local_94;\n  uint local_90;\n  code *******local_8c;\n  code *******local_88;\n  code *******local_84;\n  code *******local_80;\n  code *******local_7c;\n  undefined4 local_78;\n  code ******local_74;\n  code *******local_70;\n  byte local_6c;\n  byte local_6b;\n  byte local_6a;\n  byte local_69;\n  char local_68;\n  byte local_67;\n  byte local_66;\n  code *******local_64;\n  code *******local_60;\n  code *******local_5c;\n  code *******local_58;\n  code *******local_54;\n  code *******local_50;\n  code *******local_4c;\n  undefined4 local_48;\n  code *******local_44;\n  code *******local_40;\n  int local_3c;\n  code *******local_34;\n  int local_30;\n  code *******local_2c;\n  \n  local_2c = *(code ********)PTR___stack_chk_guard_00079c10;\n  pppppppcVar38 = (code *******)*param_1;\n  pppppppcVar29 = (code *******)0x0;\n  pppppppcVar33 = param_4;\n  (*(code *)PTR_memset_00079b00)(&local_b4,0,0x88);\n  local_148 = (code *******)param_1[4];\n  if (local_148 != (code *******)0x0) {\n    if (((byte)*(code *)(param_1 + 7) & 0x10) == 0) {\n      local_148 = (code *******)0x0;\n    }\n    else if (param_4 == param_5) {\n      local_148 = (code *******)0x0;\n    }\n    else if ((char)*(code *)(param_1 + 7) < '\0') {\n      local_148 = (code *******)0x0;\n    }\n  }\n  if (param_1[6] < param_7) {\n    local_118 = (int)param_7 + (-1 - (int)param_1[6]);\n  }\n  else {\n    local_118 = 0;\n  }\n  pppppppcStack_1a0 = param_4;\n  pppppppcStack_19c = param_1;\n  local_60 = pppppppcVar38;\n  if (param_1[2] == (code ******)0x0) {\n    local_150 = (code *******)0x1;\n  }\n  else if (pppppppcVar38[9] == (code ******)0x0) {\n    local_150 = (code *******)0x1;\n  }\n  else if (pppppppcVar38[10] == (code ******)0x0) {\n    local_150 = (code *******)0x1;\n  }\n  else if (pppppppcVar38[0xb] == (code ******)0x0) {\n    local_150 = (code *******)0x1;\n  }\n  else {\n    pppppppcVar29 = (code *******)pppppppcVar38[0xc];\n    if (pppppppcVar29 == (code *******)0x0) {\n      local_150 = (code *******)0x1;\n    }\n    else {\n      pppppppcVar3 = param_5;\n      if ((((pppppppcVar38[9][2] == (code *****)0x0) && (pppppppcVar38[10][2] == (code *****)0x0))\n          && ((pppppppcVar38[0xb][2] == (code *****)0x0 || (((uint)param_1[7] & 0x1000000) == 0))))\n         && ((pppppppcVar3 = param_4, param_4 != (code *******)0x0 &&\n             (param_4 = param_5, pppppppcVar3 = param_5, param_5 != (code *******)0x0)))) {\n        local_150 = (code *******)0x1;\n        pppppppcStack_1a0 = param_5;\n      }\n      else {\n        param_5 = pppppppcVar3;\n        pppppppcVar3 = (code *******)((int)param_7 - local_118);\n        if (pppppppcVar3 == (code *******)0x0) {\n          pppppppcVar34 = (code *******)(uint)(pppppppcVar38[0x13] != (code ******)0x0);\n        }\n        else {\n          pppppppcVar34 = (code *******)0x1;\n        }\n        ppppppcVar32 = param_1[5];\n        local_6c = (byte)((uint)((int)param_1[3] << 9) >> 0x1f);\n        local_64 = (code *******)pppppppcVar38[0x17];\n        pppppppcVar31 = (code *******)((int)pppppppcVar38[2] + 1);\n        if ((int)pppppppcVar38[2] + 1 < (int)local_64) {\n          pppppppcVar31 = local_64;\n        }\n        pppppppcVar30 = (code *******)(uint)((int)param_3 + 1 < (int)pppppppcVar31);\n        pppppppcVar33 = (code *******)0x1;\n        local_69 = local_6c;\n        if (ppppppcVar32 != (code ******)0x0) {\n          local_69 = 1;\n        }\n        local_6b = (byte)((uint)((int)pppppppcVar38[0x16] << 2) >> 0x1f);\n        local_6a = (byte)((uint)((int)pppppppcVar38[0x16] << 3) >> 0x1f);\n        pppppppcVar29 = (code *******)((int)param_3 + 1);\n        if (pppppppcVar30 == (code *******)0x0) {\n          pppppppcVar29 = pppppppcVar31;\n        }\n        local_b4 = param_2;\n        local_88 = param_3;\n        local_84 = param_3;\n        local_80 = param_3;\n        local_7c = param_3;\n        local_74 = ppppppcVar32;\n        local_150 = (code *******)FUN_00046d2c(&local_b4);\n        pppppppcVar31 = pppppppcVar34;\n        param_6 = param_6;\n        if (local_150 != (code *******)0x0) goto LAB_000557e4;\n        local_70 = pppppppcVar38 + 0x18;\n        local_66 = (byte)((uint)((int)pppppppcVar38[0x16] << 4) >> 0x1f);\n        pppppppcVar2 = (code *******)0x0;\n        local_98 = pppppppcVar2;\n        if ((local_69 == 0) && (local_b0 = param_2, (int)pppppppcVar38[0x17] < 2)) {\n          local_98 = param_3;\n        }\n        local_7c = param_6;\n        local_80 = param_6;\n        local_67 = (byte)((uint)((int)param_1[7] << 7) >> 0x1f);\n        ppppppcVar35 = pppppppcVar38[0x13];\n        pppppppcVar36 = (code *******)((int)ppppppcVar35 * 2);\n        local_5c = param_9;\n        local_58 = (code *******)0xffffffff;\n        local_94 = local_98;\n        if ((int)pppppppcVar36 < 1) {\nLAB_000559f0:\n          local_3c = 1;\n          local_44 = pppppppcVar36;\n          local_34 = pppppppcVar36;\n          if ((pppppppcVar3 < (code *******)0x2) && (((uint)pppppppcVar38[0x16] & 0x40000000) == 0))\n          {\n            local_50 = (code *******)0x0;\nLAB_00055a40:\n            local_78 = 6;\n            if (((uint)param_9 & 1) != 0) {\n              local_78 = 4;\n            }\n            pppppppcVar24 = (code *******)0x1;\n            pppppppcVar25 = param_4;\n            if ((int)param_5 < (int)param_4) {\n              pppppppcVar24 = (code *******)0xffffffff;\n              pppppppcVar25 = param_5;\n            }\n            pppppppcVar26 = param_5;\n            if ((int)param_5 <= (int)param_4) {\n              pppppppcVar26 = param_4;\n            }\n            ppppppcVar35 = pppppppcVar38[0x17];\n            uVar16 = 8;\n            if (local_148 != (code *******)0x0) {\n              if (ppppppcVar35 == (code ******)0x1) {\n                pppppppcVar28 = (code *******)0x4;\n              }\n              else {\n                pppppppcVar28 = pppppppcVar2;\n                if ((-1 < (int)param_1[3] << 9) && (ppppppcVar32 == (code ******)0x0)) {\n                  pppppppcVar28 = (code *******)0x4;\n                }\n              }\n              pppppppcVar29 = (code *******)0x0;\n              if ((int)param_4 <= (int)param_5) {\n                pppppppcVar29 = (code *******)0x2;\n              }\n              uVar16 = (uint)(ppppppcVar32 != (code ******)0x0) | (uint)pppppppcVar28 |\n                       (uint)pppppppcVar29;\n            }\n            local_dc = param_4;\n            if ((int)param_4 < (int)pppppppcVar25) {\n              local_150 = (code *******)0x1;\n              param_6 = pppppppcVar36;\n            }\n            else if ((int)pppppppcVar26 < (int)param_4) {\n              local_150 = (code *******)0x1;\n              param_4 = (code *******)(uint)((int)param_5 < (int)param_4);\n              param_6 = pppppppcVar36;\n            }\n            else {\n              pppppppcVar36 = (code *******)&local_dc;\n              if ((code *******)(uint)((int)param_5 < (int)param_4) != (code *******)0x0) {\n                pppppppcVar36 = (code *******)0x0;\n              }\n              pcVar4 = (code *)(PTR_DAT_000799a4 + -0x2b7c);\n              piVar5 = (int *)(PTR_s_nt0_000795b8 + (uVar16 - 4) * 4 + 0x6e38);\nLAB_00055b44:\n              if (uVar16 - 4 < 5) {\n                    \n                    \n                pppppppcVar29 = (code *******)(*(code *)(&_gp_1 + *piVar5))();\n                return pppppppcVar29;\n              }\n              param_5 = &local_b4;\n              pppppppcVar28 = pppppppcVar33;\n              while( true ) {\n                param_4 = local_dc;\n                pppppppcVar33 = (code *******)((int)local_dc - local_9c);\n                pppppppcVar30 = param_9;\n                pppppppcVar31 = pppppppcVar2;\n                param_6 = local_148;\n                unaff_s4 = param_3;\n                unaff_s5 = pppppppcVar24;\n                unaff_s7 = pppppppcVar26;\n                if (local_94 <= pppppppcVar33) {\n                  pppppppcVar29 = local_dc;\n                  local_150 = (code *******)(*pcVar4)(param_5);\n                  pppppppcVar33 = pppppppcVar28;\n                  if (local_150 != (code *******)0x0) goto LAB_000557e4;\n                  pppppppcVar33 = (code *******)((int)param_4 - local_9c);\n                }\n                if ((int)param_4 < (int)param_3) {\n                  uVar7 = (uint)(byte)*(code *)((int)pppppppcVar33 + (int)local_b0);\n                }\n                else {\n                  uVar7 = 0;\n                }\n                param_4 = (code *******)((int)param_4 + (int)pppppppcVar24);\n                if (*(code *)((int)local_148 + uVar7) != (code)0x0) break;\n                pppppppcVar33 = pppppppcVar28;\n                local_dc = param_4;\n                if ((int)param_4 < (int)pppppppcVar25) {\n                  local_150 = (code *******)0x1;\n                  goto LAB_000557e4;\n                }\n                if ((code *******)(uint)((int)pppppppcVar26 < (int)param_4) != (code *******)0x0) {\n                  local_150 = (code *******)0x1;\n                  param_4 = (code *******)(uint)((int)pppppppcVar26 < (int)param_4);\n                  goto LAB_000557e4;\n                }\n              }\n              while( true ) {\n                pppppppcVar29 = local_dc;\n                pppppppcVar30 = param_9;\n                pppppppcVar6 = (code *******)(*pcVar4)(&local_b4);\n                pppppppcVar14 = local_60;\n                pppppppcVar42 = local_8c;\n                pppppppcVar33 = pppppppcVar28;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar6 != (code *******)0x0) goto LAB_000557e4;\n                if (((ppppppcVar35 != (code ******)0x1) && (local_98 != (code *******)0x0)) &&\n                   (*local_ac == -1)) goto LAB_00055b1c;\n                local_3c = 0;\n                local_48 = 0;\n                local_4c = (code *******)0x0;\n                local_138 = local_8c;\n                local_d8 = (code *******)0x0;\n                unaff_s7 = (code *******)local_60[9];\n                pppppppcVar30 = local_5c;\n                param_4 = pppppppcVar14;\n                if (((uint)unaff_s7[0xd] & 0x1000000) == 0) break;\n                pppppppcVar29 = (code *******)((int)local_8c + -1);\n                pppppppcVar33 = (code *******)FUN_00049110(&local_b4);\n                if (((uint)pppppppcVar33 & 1) == 0) {\n                  if (pppppppcVar33 == (code *******)0x0) break;\n                  if (((uint)pppppppcVar33 & 6) == 6) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xc];\n                    goto LAB_00054d1c;\n                  }\n                  if (((uint)pppppppcVar33 & 2) != 0) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xb];\n                    goto LAB_00054d1c;\n                  }\n                  pppppppcVar28 = pppppppcVar33;\n                  if (((uint)pppppppcVar33 & 4) == 0) break;\n                  pppppppcVar30 = (code *******)unaff_s7[10];\n                  pppppppcVar29 = pppppppcVar14;\n                  unaff_s7 = (code *******)FUN_0004ae34(&local_d8);\n                  pppppppcVar28 = pppppppcVar33;\n                  if (unaff_s7 != (code *******)0x0) break;\n                  if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                }\n                else {\n                  unaff_s7 = (code *******)pppppppcVar14[10];\nLAB_00054d1c:\n                  pppppppcVar28 = (code *******)PTR_s_nt0_000795b8;\n                  if (unaff_s7 != (code *******)0x0) break;\n                }\n                pppppppcVar28 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                local_dc = (code *******)\n                           (*(code *)PTR___assert_fail_000799f8)\n                                     (PTR_s_nt0_000795b8 + 0x71a0,pppppppcVar29,0x435);\n                if (local_dc == pppppppcVar26) {\n                  if ((int)local_dc < (int)param_3) {\n                    uVar7 = (uint)(byte)*(code *)((int)local_dc + (int)param_2);\n                  }\n                  else {\n                    uVar7 = 0;\n                  }\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    uVar7 = (uint)*(byte *)((int)ppppppcVar32 + uVar7);\n                  }\n                  if (*(code *)((int)local_148 + uVar7) == (code)0x0) {\n                    local_150 = (code *******)0x1;\n                    pppppppcVar30 = param_9;\n                    pppppppcVar33 = pppppppcVar28;\n                    goto LAB_000557e4;\n                  }\n                }\n              }\n              pppppppcVar33 = pppppppcVar28;\n              bVar1 = pppppppcVar36 != (code *******)0x0;\n              if ((local_50 == (code *******)0x0) ||\n                 (local_50[(int)pppppppcVar42] = (code ******)unaff_s7,\n                 pppppppcVar14[0x13] == (code ******)0x0)) {\nLAB_00054d50:\n                if ((int)unaff_s7[0xd] << 4 < 0) {\n                  if ((((uint)unaff_s7[0xd] & 0x1000000) == 0) ||\n                     (pppppppcVar29 = unaff_s7, pppppppcVar30 = pppppppcVar42,\n                     iVar18 = FUN_00049440(&local_b4), iVar18 != 0)) {\n                    unaff_s8 = pppppppcVar42;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                  }\n                  else {\n                    pppppppcVar42 = (code *******)0xffffffff;\n                    pppppppcVar28 = (code *******)0x0;\n                  }\n                }\n                else {\n                  pppppppcVar42 = (code *******)0xffffffff;\n                  pppppppcVar28 = (code *******)0x0;\n                }\n                pcVar8 = (code *)(PTR_DAT_000799a4 + -0x7144);\n                pcVar9 = (code *)(PTR_DAT_000799a4 + -0x1980);\n                pcVar10 = (code *)(PTR_DAT_000799a4 + -0x2f9c);\n                unaff_s8 = pppppppcVar42;\n                local_144 = pppppppcVar36;\n                while( true ) {\n                  uVar44 = CONCAT44(local_98,local_84);\n                  unaff_s5 = (code *******)((int)local_8c + 1);\n                  pppppppcVar29 = local_8c;\n                  if ((int)local_7c <= (int)local_8c) break;\n                  if (((int)local_90 <= (int)unaff_s5) && ((int)local_90 < (int)local_84))\n                  goto LAB_00054e94;\n                  if ((int)local_98 <= (int)unaff_s5) {\n                    while ((int)((ulonglong)uVar44 >> 0x20) < (int)uVar44) {\nLAB_00054e94:\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 2);\n                      local_d8 = (code *******)(*pcVar8)(&local_b4);\n                      if (local_d8 == (code *******)0x0) break;\n                      pppppppcVar14 = param_4;\n                      if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                      pppppppcVar33 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                      pppppppcVar30 = (code *******)0x46c;\n                      pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                      uVar44 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0);\n                      pppppppcVar28 = pppppppcVar38;\n                    }\n                  }\n                  pppppppcVar42 = local_60;\n                  if ((int)unaff_s7[0xd] << 5 < 0) {\n                    pppppppcVar31 = pppppppcVar42;\n                    if (0 < (int)unaff_s7[2]) {\n                      pcVar11 = (code *)(PTR_DAT_000799a4 + -0x6fdc);\n                      pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6ef0);\n                      param_6 = (code *******)0x0;\n                      do {\n                        param_5 = (code *******)unaff_s7[3][(int)param_6];\n                        ppppppcVar39 = *pppppppcVar42;\n                        pppppcVar13 = ppppppcVar39[(int)param_5 * 2 + 1];\n                        if (((uint)pppppcVar13 & 0x800) != 0) {\n                          if (((uint)pppppcVar13 & 0xffc000) != 0) {\n                            pppppppcVar29 = local_8c;\n                            uVar19 = (*pcVar12)(&local_b4,local_8c,local_5c);\n                            uVar7 = (uint)((int)ppppppcVar39[(int)param_5 * 2 + 1] << 8) >> 0x16;\n                            if ((uVar7 & 4) == 0) {\n                              uVar27 = uVar19 & 1;\n                              if ((uVar7 & 8) != 0) goto joined_r0x00054f40;\n                            }\n                            else {\n                              uVar27 = uVar7 & 8;\n                              if ((uVar19 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                              if (uVar27 != 0) goto LAB_000550a4;\n                            }\n                            if ((((uVar7 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                               (((uVar7 & 0x80) != 0 &&\n                                (pppppppcVar33 = local_8c, (uVar19 & 8) == 0)))) goto LAB_000550a4;\n                          }\n                          pppppppcVar30 = &local_b4;\n                          pppppppcVar29 = param_5;\n                          pppppppcVar33 = local_8c;\n                          iVar18 = (*pcVar10)(pppppppcVar42);\n                          if (iVar18 != 0) {\n                            pppppppcVar14 = (code *******)((int)local_8c + iVar18);\n                            if (iVar18 <= local_3c) {\n                              iVar18 = local_3c;\n                            }\n                            pppppppcVar29 = pppppppcVar14;\n                            local_3c = iVar18;\n                            local_d4 = (code *******)(*pcVar11)(&local_b4);\n                            pppppppcVar15 = local_d4;\n                            if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                            pppppppcVar30 =\n                                 (code *******)\n                                 (pppppppcVar42[6] + (int)pppppppcVar42[3][(int)param_5] * 3);\n                            unaff_s4 = (code *******)((int)pppppppcVar14 * 4);\n                            param_5 = local_50 + (int)pppppppcVar14;\n                            if (*param_5 == (code ******)0x0) {\n                              local_d0 = (code *******)*pppppppcVar30;\n                              local_cc = (code *******)pppppppcVar30[1];\n                              local_c8 = (code *******)pppppppcVar30[2];\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *param_5 = ppppppcVar39;\n                            }\n                            else {\n                              pppppppcVar29 = (code *******)(*param_5)[10];\n                              local_d4 = (code *******)FUN_000484bc(&local_d0);\n                              pppppppcVar15 = local_d4;\n                              if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar15 = local_50 + (int)pppppppcVar14;\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *pppppppcVar15 = ppppppcVar39;\n                              (*(code *)PTR_free_00079c24)(local_c8);\n                            }\n                            unaff_s4 = local_50 + (int)pppppppcVar14;\n                            if ((*unaff_s4 == (code ******)0x0) &&\n                               (pppppppcVar15 = local_d4, local_d4 != (code *******)0x0))\n                            goto LAB_00055e44;\n                          }\n                        }\nLAB_000550a4:\n                        param_6 = (code *******)((int)param_6 + 1);\n                      } while ((int)param_6 < (int)unaff_s7[2]);\n                    }\n                    local_d8 = (code *******)0x0;\n                  }\n                  uVar7 = (uint)(byte)*(code *)((int)local_8c + (int)local_b0);\n                  local_8c = (code *******)((int)local_8c + 1);\n                  do {\n                    if (unaff_s7[0xb] != (code ******)0x0) {\n                      pppppppcVar30 = (code *******)unaff_s7[0xb][uVar7];\nLAB_000553a0:\n                      pppppppcVar14 = pppppppcVar30;\n                      if (local_50 != (code *******)0x0) goto LAB_000553ac;\n                      goto LAB_000553cc;\n                    }\n                    pppppppcVar31 = (code *******)unaff_s7[0xc];\n                    if (pppppppcVar31 != (code *******)0x0) {\n                      pppppppcVar29 = (code *******)((int)local_8c + -1);\n                      uVar19 = FUN_00049110(&local_b4);\n                      if ((uVar19 & 1) == 0) {\n                        pppppppcVar30 = (code *******)pppppppcVar31[uVar7];\n                      }\n                      else {\n                        pppppppcVar31 = pppppppcVar31 + uVar7 + 0x100;\n                        pppppppcVar30 = (code *******)*pppppppcVar31;\n                      }\n                      goto LAB_000553a0;\n                    }\n                    pppppppcVar29 = unaff_s7;\n                    pppppppcVar30 = local_5c;\n                    iVar18 = (*pcVar9)(local_60);\n                  } while (iVar18 != 0);\n                  local_d8 = (code *******)0xc;\n                  pppppppcVar15 = local_d8;\nLAB_00055e44:\n                  local_d8 = pppppppcVar15;\n                  param_4 = (code *******)0x0;\n                  if (local_50 == (code *******)0x0) {\n                    pppppppcVar14 = param_4;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    break;\n                  }\n                  pppppppcVar30 = (code *******)0x0;\nLAB_000553ac:\n                  pppppppcVar29 = &local_b4;\n                  pppppppcVar14 = (code *******)FUN_00053684(&local_d8);\nLAB_000553cc:\n                  param_4 = pppppppcVar14;\n                  if (pppppppcVar14 == (code *******)0x0) {\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    if ((local_50 == (code *******)0x0) ||\n                       ((pppppppcVar28 != (code *******)0x0 && (pppppppcVar34 == (code *******)0x0))\n                       )) break;\n                    param_6 = &local_b4;\n                    param_5 = (code *******)&local_d8;\n                    pppppppcVar31 = (code *******)(PTR_DAT_000799a4 + 0x3684);\n                    do {\n                      pppppppcVar15 = local_50 + (int)local_8c;\n                      pppppppcVar42 = local_8c;\n                      do {\n                        pppppppcVar42 = (code *******)((int)pppppppcVar42 + 1);\n                        pppppppcVar29 = local_4c;\n                        param_4 = pppppppcVar14;\n                        if ((int)local_4c < (int)pppppppcVar42) goto LAB_00055da8;\n                        local_8c = (code *******)((int)local_8c + 1);\n                        pppppppcVar15 = pppppppcVar15 + 1;\n                      } while (*pppppppcVar15 == (code ******)0x0);\n                      pppppppcVar30 = (code *******)0x0;\n                      pppppppcVar29 = param_6;\n                      param_4 = (code *******)(*(code *)pppppppcVar31)(param_5);\n                      if (local_d8 != (code *******)0x0) {\n                        if (param_4 == (code *******)0x0) goto LAB_00055da8;\n                        break;\n                      }\n                      pppppppcVar29 = local_4c;\n                    } while (param_4 == (code *******)0x0);\n                  }\n                  pppppppcVar15 = (code *******)((uint)unaff_s7 ^ (uint)param_4);\n                  pppppppcVar42 = unaff_s7;\n                  pppppppcVar14 = local_138;\n                  if ((bVar1) &&\n                     (pppppppcVar42 = pppppppcVar15, pppppppcVar14 = unaff_s5,\n                     pppppppcVar15 != (code *******)0x0)) {\n                    bVar1 = false;\n                    pppppppcVar14 = local_138;\n                  }\n                  local_138 = pppppppcVar14;\n                  unaff_s7 = param_4;\n                  if ((((uint)param_4[0xd] & 0x8000000) != 0) &&\n                     ((((uint)param_4[0xd] & 0x1000000) == 0 ||\n                      (pppppppcVar29 = param_4, pppppppcVar30 = local_8c,\n                      iVar18 = FUN_00049440(&local_b4), iVar18 != 0)))) {\n                    unaff_s7 = pppppppcVar42;\n                    unaff_s8 = local_8c;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                    local_144 = (code *******)0x0;\n                    unaff_s7 = param_4;\n                  }\n                }\nLAB_00055da8:\n                if (local_144 != (code *******)0x0) {\n                  *local_144 = (code ******)((int)local_138 + (int)*local_144);\n                }\n              }\n              else {\n                param_4 = unaff_s7 + 1;\n                pppppppcVar30 = (code *******)0x0;\n                pppppppcVar29 = param_4;\n                local_d8 = (code *******)FUN_00047a44(&local_b4);\n                unaff_s8 = local_d8;\n                if (local_d8 == (code *******)0x0) {\n                  if (((uint)unaff_s7[0xd] & 0x2000000) == 0) {\n                    pppppppcVar29 = param_4;\n                    bVar1 = false;\n                  }\n                  else {\n                    pppppppcVar29 = param_4;\n                    local_d8 = (code *******)FUN_00052d84(&local_b4);\n                    unaff_s8 = local_d8;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055dbc;\n                    bVar1 = false;\n                  }\n                  goto LAB_00054d50;\n                }\n              }\nLAB_00055dbc:\n              if (unaff_s8 == (code *******)0xffffffff) {\nLAB_00055b04:\n                FUN_0004b7e8(&local_b4);\nLAB_00055b1c:\n                local_dc = (code *******)((int)pppppppcVar24 + (int)local_dc);\n                if ((int)pppppppcVar25 <= (int)local_dc) goto code_r0x00055b38;\n                local_150 = (code *******)0x1;\n                goto LAB_000557e4;\n              }\n              if (unaff_s8 == (code *******)&SUB_fffffffe) {\n                local_150 = (code *******)0xc;\n                goto LAB_000557e4;\n              }\n              local_58 = unaff_s8;\n              if (((uint)param_1[7] & 0x8000000) == 0) {\n                if (pppppppcVar3 < (code *******)0x2) {\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055c08;\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                else {\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                if (pppppppcVar3 < (code *******)0x2) {\nLAB_00055c6c:\n                  pppppppcVar28 = pppppppcVar33;\n                  unaff_s4 = local_60;\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055548;\n                }\n                else {\n                  cVar23 = *(code *)(pppppppcVar38 + 0x16);\nLAB_00055c20:\n                  pppppppcVar28 = pppppppcVar33;\n                  if (-1 < (char)cVar23) goto LAB_00055c6c;\n                }\n                pppppppcVar31 = local_54;\n                pppppppcVar42 = local_60;\n                unaff_s4 = pppppppcVar42;\n                if (unaff_s8 < (code *******)0x3fffffff) {\n                  param_4 = (code *******)((int)((int)unaff_s8 + 1) * 4);\n                  unaff_s5 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                  if (unaff_s5 == (code *******)0x0) {\nLAB_00055b9c:\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    local_150 = (code *******)0xc;\n                    pppppppcVar33 = pppppppcVar28;\n                  }\n                  else {\n                    pppppppcVar29 = (code *******)&local_d0;\n                    if (pppppppcVar42[0x13] == (code ******)0x0) {\n                      local_cc = (code *******)0x0;\n                      local_c8 = pppppppcVar31;\n                      local_c0 = 0;\n                      local_bc = 0;\n                      local_b8 = 0;\n                      local_d0 = unaff_s5;\n                      local_c4 = unaff_s8;\n                      param_5 = (code *******)FUN_0005421c(&local_b4);\n                      (*(code *)PTR_free_00079c24)(local_b8);\n                      if (param_5 == (code *******)0x0) {\n                        param_4 = (code *******)*unaff_s5;\n                        if (param_4 == (code *******)0x0) {\nLAB_00055b70:\n                          (*(code *)PTR_free_00079c24)(unaff_s5);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          pppppppcVar33 = pppppppcVar28;\n                          goto LAB_00055b04;\n                        }\nLAB_00055528:\n                        (*(code *)PTR_free_00079c24)(local_50);\n                        pppppppcVar33 = pppppppcVar28;\n                        unaff_s4 = pppppppcVar42;\n                        local_58 = unaff_s8;\n                        local_54 = pppppppcVar31;\n                        local_50 = unaff_s5;\n                        goto LAB_00055548;\n                      }\nLAB_00055acc:\n                      param_4 = (code *******)0x0;\n                      pppppppcVar33 = pppppppcVar28;\n                      unaff_s4 = pppppppcVar42;\n                    }\n                    else {\n                      param_4 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                      if (param_4 == (code *******)0x0) goto LAB_00055b9c;\n                      unaff_s7 = (code *******)&local_d0;\n                      pcVar8 = (code *)(PTR_DAT_000799a4 + 0x421c);\n                      pcVar9 = (code *)(PTR_DAT_000799a4 + -0x6bc0);\n                      pppppppcVar33 = pppppppcVar28;\n                      while( true ) {\n                        pppppppcVar28 = (code *******)((int)unaff_s8 + 1);\n                        param_6 = (code *******)((int)pppppppcVar28 * 4);\n                        pppppppcVar30 = param_6;\n                        (*(code *)PTR_memset_00079b00)(param_4,0);\n                        local_c0 = 0;\n                        local_bc = 0;\n                        local_b8 = 0;\n                        pppppppcVar29 = unaff_s7;\n                        local_d0 = unaff_s5;\n                        local_cc = param_4;\n                        local_c8 = pppppppcVar31;\n                        local_c4 = unaff_s8;\n                        param_5 = (code *******)(*pcVar8)(&local_b4);\n                        (*(code *)PTR_free_00079c24)(local_b8);\n                        unaff_s4 = pppppppcVar28;\n                        if (param_5 != (code *******)0x0) break;\n                        if ((*unaff_s5 != (code ******)0x0) ||\n                           (param_6 = param_6 + -1, *param_4 != (code ******)0x0)) {\n                          pppppppcVar29 = unaff_s5;\n                          pppppppcVar30 = param_4;\n                          param_5 = (code *******)FUN_000520d0(pppppppcVar42);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          if (param_5 != (code *******)0x0) goto LAB_00055acc;\n                          goto LAB_00055528;\n                        }\n                        param_6 = (code *******)((int)local_50 + (int)param_6);\n                        do {\n                          while( true ) {\n                            unaff_s8 = (code *******)((int)unaff_s8 + -1);\n                            if ((int)unaff_s8 < 0) goto LAB_00055b70;\n                            pppppppcVar29 = (code *******)param_6[-1];\n                            if (pppppppcVar29 != (code *******)0x0) break;\n                            param_6 = param_6 + -1;\n                          }\n                          param_6 = param_6 + -1;\n                        } while (((uint)pppppppcVar29[0xd] & 0x8000000) == 0);\n                        pppppppcVar31 = (code *******)(*pcVar9)(&local_b4,pppppppcVar29,unaff_s8);\n                        pppppppcVar33 = pppppppcVar28;\n                      }\n                    }\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    (*(code *)PTR_free_00079c24)(param_4);\n                    local_150 = param_5;\n                    if (param_5 == (code *******)0x1) goto LAB_00055b04;\n                  }\n                }\n                else {\n                  local_150 = (code *******)0xc;\n                  pppppppcVar33 = pppppppcVar28;\n                }\n                goto LAB_000557e4;\n              }\n              if (pppppppcVar38[0x13] != (code ******)0x0) {\n                pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                pppppppcVar30 = unaff_s8;\n                local_54 = (code *******)FUN_00049440(&local_b4);\n                goto LAB_00055c6c;\n              }\nLAB_00055c08:\n              if ((((uint)param_1[7] & 0x8000000) == 0) && ((code *******)0x1 < pppppppcVar3)) {\n                cVar23 = *(code *)(pppppppcVar38 + 0x16);\n                goto LAB_00055c20;\n              }\nLAB_00055548:\n              if (pppppppcVar3 == (code *******)0x0) goto LAB_000557e4;\n              if (pppppppcVar3 < (code *******)0x2) {\n                *param_8 = (code ******)0x0;\n                param_8[1] = (code ******)local_58;\n                goto LAB_000555ac;\n              }\n              pppppppcVar29 = param_8 + 2;\n              do {\n                pppppppcVar29[1] = (code ******)0xffffffff;\n                *pppppppcVar29 = (code ******)0xffffffff;\n                pppppppcVar29 = pppppppcVar29 + 2;\n              } while (pppppppcVar29 != param_8 + (int)pppppppcVar3 * 2);\n              *param_8 = (code ******)0x0;\n              param_8[1] = (code ******)local_58;\n              if (((uint)param_1[7] & 0x8000000) != 0) {\nLAB_000555ac:\n                pppppppcVar33 = param_8;\n                do {\n                  pppppppcVar29 = (code *******)*pppppppcVar33;\n                  if (pppppppcVar29 != (code *******)0xffffffff) {\n                    if (local_68 != '\0') {\n                      pppppppcVar34 = local_94;\n                      if (pppppppcVar29 != local_98) {\n                        pppppppcVar34 = *(code ********)(local_a8 + (int)pppppppcVar29 * 4);\n                      }\n                      *pppppppcVar33 = (code ******)pppppppcVar34;\n                      pppppppcVar29 = local_94;\n                      if (local_98 != (code *******)pppppppcVar33[1]) {\n                        pppppppcVar29 = *(code ********)(local_a8 + (int)pppppppcVar33[1] * 4);\n                      }\n                      pppppppcVar33[1] = (code ******)pppppppcVar29;\n                    }\n                    *pppppppcVar33 = (code ******)((int)local_dc + (int)*pppppppcVar33);\n                    pppppppcVar29 = (code *******)((int)local_dc + (int)pppppppcVar33[1]);\n                    pppppppcVar33[1] = (code ******)pppppppcVar29;\n                  }\n                  pppppppcVar33 = pppppppcVar33 + 2;\n                } while (pppppppcVar33 != param_8 + (int)pppppppcVar3 * 2);\n                if (0 < local_118) {\n                  pppppppcVar33 = param_8 + (int)pppppppcVar3 * 2;\n                  do {\n                    *pppppppcVar33 = (code ******)0xffffffff;\n                    pppppppcVar33[1] = (code ******)0xffffffff;\n                    pppppppcVar33 = pppppppcVar33 + 2;\n                  } while (pppppppcVar33 != param_8 + (int)param_7 * 2);\n                }\n                pppppppcVar30 = local_dc;\n                pppppppcVar33 = param_8;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar38[0x21] != (code ******)0x0) {\n                  pppppppcVar30 = (code *******)((int)pppppppcVar3 + -1);\n                  pppppppcVar34 = (code *******)0x0;\n                  pppppppcVar3 = param_8;\n                  while( true ) {\n                    pppppppcVar29 = (code *******)((int)pppppppcVar34 * 4);\n                    if (pppppppcVar30 == pppppppcVar34) break;\n                    if (*(code ********)((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) !=\n                        pppppppcVar34) {\n                      pppppppcVar3[2] =\n                           param_8[(int)((int)*(code ********)\n                                               ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1)\n                                   * 2];\n                      pppppppcVar3[3] =\n                           param_8[((int)*(code ******)\n                                          ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1) * 2 +\n                                   1];\n                    }\n                    pppppppcVar34 = (code *******)((int)pppppppcVar34 + 1);\n                    pppppppcVar3 = pppppppcVar3 + 2;\n                  }\n                }\n                goto LAB_000557e4;\n              }\n              if ((char)*(code *)(pppppppcVar38 + 0x16) < '\0') {\n                local_168 = (uint)(0 < (int)pppppppcVar38[0x13]);\n              }\n              else {\n                local_168 = 0;\n              }\n              pppppppcVar29 = &local_b4;\n              pppppppcVar30 = pppppppcVar3;\n              pppppppcVar33 = param_8;\n              local_150 = (code *******)FUN_0004f4a0(param_1);\n              if (local_150 == (code *******)0x0) goto LAB_000555ac;\n            }\n          }\n          else if (local_90 < 0x3fffffff) {\n            local_50 = (code *******)(*(code *)PTR_malloc_00079b54)((local_90 + 1) * 4);\n            if (local_50 != (code *******)0x0) goto LAB_00055a40;\n            local_150 = (code *******)0xc;\n            param_6 = pppppppcVar36;\n          }\n          else {\n            local_150 = (code *******)0xc;\n            param_6 = pppppppcVar36;\n          }\n        }\n        else {\n          unaff_s5 = (code *******)((int)ppppppcVar35 * 8);\n          if (pppppppcVar36 < (code *******)0xccccccd) {\n            unaff_s4 = (code *******)(*(code *)PTR_malloc_00079b54)((int)ppppppcVar35 * 0x28);\n            local_40 = unaff_s4;\n            local_30 = (*(code *)PTR_malloc_00079b54)(unaff_s5);\n            if ((unaff_s4 != (code *******)0x0) && (local_30 != 0)) goto LAB_000559f0;\n          }\n          local_150 = (code *******)0xc;\n          param_6 = pppppppcVar36;\n        }\nLAB_000557e4:\n        (*(code *)PTR_free_00079c24)(local_50);\n        param_1 = pppppppcVar30;\n        if (pppppppcVar38[0x13] != (code ******)0x0) {\n          FUN_0004b7e8(&local_b4);\n          (*(code *)PTR_free_00079c24)(local_30);\n          (*(code *)PTR_free_00079c24)(local_40);\n          param_1 = pppppppcVar30;\n        }\n        FUN_0004b2bc(&local_b4);\n        pppppppcStack_1a0 = param_4;\n        pppppppcStack_19c = pppppppcVar31;\n      }\n    }\n  }\n  if (local_2c == *(code ********)PTR___stack_chk_guard_00079c10) {\n    return local_150;\n  }\n  pcVar4 = FUN_00055e64;\n  pppppppcVar3 = local_2c;\n  puVar41 = PTR___stack_chk_fail_00079bd0;\n  (*(code *)PTR___stack_chk_fail_00079bd0)();\n  iStack_1a4 = **(int **)(puVar41 + 0x23dac);\n  pppppppcStack_20c = (code *******)0x0;\n  pppppppcVar3[3] = (code ******)pppppppcVar33;\n  pppppppcVar3[2] = (code ******)0x0;\n  pppppppcVar3[6] = (code ******)0x0;\n  *(byte *)(pppppppcVar3 + 7) = (byte)*(code *)(pppppppcVar3 + 7) & 9;\n  pppppppcVar34 = (code *******)*pppppppcVar3;\n  pppppppcStack_198 = param_5;\n  pppppppcStack_194 = param_6;\n  pppppppcStack_190 = unaff_s4;\n  pppppppcStack_18c = unaff_s5;\n  pppppppcStack_188 = pppppppcVar38;\n  pppppppcStack_184 = unaff_s7;\n  pppppppcStack_180 = unaff_s8;\n  pcStack_17c = pcVar4;\n  if (pppppppcVar3[1] < (code ******)0xa0) {\n    pppppppcVar38 = (code *******)0xa0;\n    pppppppcVar31 = param_1;\n    pppppppcVar34 = (code *******)(**(code **)(puVar41 + 0x23cf8))(pppppppcVar34,0xa0);\n    if (pppppppcVar34 == (code *******)0x0) {\n      pppppppcVar29 = (code *******)0xc;\n      goto LAB_00056cfc;\n    }\n    pppppppcVar3[1] = (code ******)0xa0;\n    *pppppppcVar3 = (code ******)pppppppcVar34;\n  }\n  pppppppcVar3[2] = (code ******)0xa0;\n  pppppppcVar31 = (code *******)0xa0;\n  pppppppcVar38 = (code *******)0x0;\n  (**(code **)(puVar41 + 0x23c9c))(pppppppcVar34,0);\n  pppppppcVar34[0x10] = (code ******)0x1f;\n  if (param_1 < (code *******)0xaaaaaaa) {\n    pppppppcVar34[1] = (code ******)((int)param_1 + 1);\n    ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23cf0))(((int)param_1 + 1) * 8);\n    *pppppppcVar34 = ppppppcVar32;\n    if (param_1 == (code *******)0x0) {\n      pppppppcVar30 = (code *******)0x1;\n    }\n    else {\n      pppppppcVar30 = (code *******)0x1;\n      do {\n        pppppppcVar30 = (code *******)((int)pppppppcVar30 << 1);\n      } while (pppppppcVar30 <= param_1);\n    }\n    pppppppcVar38 = pppppppcVar30;\n    ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23b8c))(0xc,pppppppcVar30);\n    pppppppcVar34[8] = ppppppcVar32;\n    pppppppcVar34[0x11] = (code ******)((int)pppppppcVar30 + -1);\n    ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23d2c))();\n    pppppppcVar34[0x17] = ppppppcVar32;\n    pbVar17 = (byte *)(**(code **)(puVar41 + 0x23c2c))(0xe);\n    if ((((*pbVar17 & 0xdf) == 0x55) && ((pbVar17[1] & 0xdf) == 0x54)) &&\n       (pppppppcVar38 = (code *******)0x4, (pbVar17[2] & 0xdf) == 0x46)) {\n      iVar18 = 3;\n      if (pbVar17[3] == 0x2d) {\n        iVar18 = 4;\n      }\n      pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23754) + 0x71b4);\n      iVar18 = (**(code **)(puVar41 + 0x23dfc))(pbVar17 + iVar18,pppppppcVar38);\n      if (iVar18 == 0) {\n        *(byte *)(pppppppcVar34 + 0x16) = (byte)*(code *)(pppppppcVar34 + 0x16) & 0xdf | 0x20;\n      }\n    }\n    *(byte *)(pppppppcVar34 + 0x16) = (byte)*(code *)(pppppppcVar34 + 0x16) & 0xef;\n    if (1 < (int)pppppppcVar34[0x17]) {\n      if (((uint)pppppppcVar34[0x16] & 0x20000000) == 0) {\n        pppppppcVar38 = (code *******)0x1;\n        ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23b8c))(0x20,1);\n        pppppppcVar34[0xf] = ppppppcVar32;\n        if (ppppppcVar32 == (code ******)0x0) goto LAB_00056e5c;\n        iVar18 = 0;\n        do {\n          uVar16 = iVar18 << 3;\n          uVar7 = 0;\n          do {\n            uVar19 = (**(code **)(puVar41 + 0x23c88))(uVar16);\n            if (uVar19 != 0xffffffff) {\n              pppppppcVar38 = *(code ********)((int)pppppppcVar34[0xf] + iVar18);\n              *(uint *)((int)pppppppcVar34[0xf] + iVar18) =\n                   (uint)pppppppcVar38 | 1 << (uVar7 & 0x1f);\n            }\n            if (((uVar16 & 0xffffff80) == 0) && (uVar19 != uVar16)) {\n              *(byte *)(pppppppcVar34 + 0x16) = (byte)*(code *)(pppppppcVar34 + 0x16) & 0xef | 0x10;\n            }\n            uVar7 = uVar7 + 1;\n            uVar16 = uVar16 + 1;\n          } while (uVar7 != 0x20);\n          iVar18 = iVar18 + 4;\n        } while (iVar18 != 0x20);\n      }\n      else {\n        pppppppcVar34[0xf] = (code ******)(*(int *)(puVar41 + 0x23754) + 0x6ee4);\n      }\n    }\n    if ((*pppppppcVar34 == (code ******)0x0) || (pppppppcVar34[8] == (code ******)0x0))\n    goto LAB_00056e5c;\n    pppppppcStack_20c = (code *******)0x0;\n    if (*(int *)(puVar41 + 0x23c78) == 0) {\nLAB_00056054:\n      ppppppcVar32 = pppppppcVar3[5];\n      uVar16 = (uint)pppppppcVar33 & 0x400000;\n      bVar1 = uVar16 != 0;\n      pppppppcVar31 = (code *******)0x4c;\n      pppppppcVar38 = (code *******)0x0;\n      (**(code **)(puVar41 + 0x23c9c))(apppppppcStack_1f4,0);\n      cStack_1ad = ppppppcVar32 != (code ******)0x0 || bVar1;\n      ppppppcStack_1a8 = pppppppcVar34[0x17];\n      bStack_1af = (byte)((uint)((int)pppppppcVar34[0x16] << 2) >> 0x1f);\n      bStack_1ae = (byte)((uint)((int)pppppppcVar34[0x16] << 3) >> 0x1f);\n      pppppppcStack_1f8 = pppppppcVar29;\n      pppppppcStack_1cc = param_1;\n      pppppppcStack_1c8 = param_1;\n      pppppppcStack_1c4 = param_1;\n      pppppppcStack_1c0 = param_1;\n      ppppppcStack_1b8 = ppppppcVar32;\n      uStack_1b0 = bVar1;\n      if (0 < (int)param_1) {\n        pppppppcVar38 = (code *******)((int)param_1 + 1);\n        pppppppcVar30 = (code *******)FUN_00046d2c(&pppppppcStack_1f8,pppppppcVar38);\n        if (pppppppcVar30 == (code *******)0x0) goto LAB_000560cc;\n        goto LAB_00056168;\n      }\nLAB_000560cc:\n      if (cStack_1ad != '\0') {\n        pppppppcVar29 = apppppppcStack_1f4[0];\n      }\n      apppppppcStack_1f4[0] = pppppppcVar29;\n      if (uVar16 == 0) {\n        if ((int)pppppppcVar34[0x17] < 2) {\n          if (ppppppcVar32 != (code ******)0x0) {\n            FUN_00045dc8();\n          }\n        }\n        else {\n          FUN_00047cb0(&pppppppcStack_1f8);\n        }\n      }\n      else {\n        if (1 < (int)pppppppcVar34[0x17]) {\n          iVar18 = *(int *)(puVar41 + 0x23abc);\n          do {\n            pppppppcVar30 = (code *******)FUN_00048714(&pppppppcStack_1f8);\n            if (pppppppcVar30 != (code *******)0x0) break;\n            if (((int)param_1 <= iStack_1d8) ||\n               (pppppppcVar38 = (code *******)(iStack_1d4 << 1),\n               (int)pppppppcVar34[0x17] + iStack_1dc < iStack_1d4)) goto LAB_000563d0;\n            pppppppcVar30 =\n                 (code *******)(*(code *)(iVar18 + 0x6d2c))(&pppppppcStack_1f8,pppppppcVar38);\n          } while (pppppppcVar30 == (code *******)0x0);\n          goto LAB_00056168;\n        }\n        FUN_00047be4(&pppppppcStack_1f8);\n      }\nLAB_000563d0:\n      pppppppcStack_20c = (code *******)0x0;\n      pppppppcVar3[6] = (code ******)0x0;\n      ppppppcVar32 = *pppppppcVar3;\n      ppppppcVar32[0x20] = (code *****)pppppppcVar33;\n      FUN_00049e40(&ppppppcStack_204,&pppppppcStack_1f8,(uint)pppppppcVar33 | 0x800000);\n      pppppppcVar38 = pppppppcVar3;\n      pppppppcVar29 =\n           (code *******)\n           FUN_00051868(&pppppppcStack_1f8,pppppppcVar3,&ppppppcStack_204,pppppppcVar33,0,\n                        &pppppppcStack_20c);\n      if (pppppppcStack_20c == (code *******)0x0) {\n        pppppppcVar31 = (code *******)0x0;\n        pppppppcVar38 = (code *******)0x0;\n        pppppppcVar33 = (code *******)FUN_000470f0(ppppppcVar32,0,0,2);\n        pppppppcVar30 = pppppppcVar33;\n        if (pppppppcVar29 != (code *******)0x0) {\nLAB_000564b0:\n          pppppppcVar31 = pppppppcVar33;\n          pppppppcVar30 = (code *******)FUN_000470f0(ppppppcVar32,pppppppcVar29,pppppppcVar33,0x10);\n          pppppppcVar38 = pppppppcVar29;\n        }\n        if ((pppppppcVar33 == (code *******)0x0) ||\n           (pcVar4 = *(code **)(puVar41 + 0x23cf0), pppppppcVar30 == (code *******)0x0)) {\n          pppppppcStack_20c = (code *******)0xc;\n          goto LAB_000566f4;\n        }\n        pppppppcVar34[0xd] = (code ******)pppppppcVar30;\n        pppppppcVar29 = (code *******)*pppppppcVar3;\n        ppppppcVar39 = pppppppcVar29[1];\n        iVar18 = (int)ppppppcVar39 << 2;\n        ppppppcVar32 = (code ******)(*pcVar4)(iVar18);\n        pppppppcVar29[3] = ppppppcVar32;\n        ppppppcVar35 = (code ******)(**(code **)(puVar41 + 0x23cf0))(iVar18);\n        pppppppcVar29[4] = ppppppcVar35;\n        iVar18 = (int)ppppppcVar39 * 0xc;\n        ppppppcVar39 = (code ******)(**(code **)(puVar41 + 0x23cf0))(iVar18);\n        pppppppcVar29[5] = ppppppcVar39;\n        ppppppcVar20 = (code ******)(**(code **)(puVar41 + 0x23cf0))(iVar18);\n        pppppppcVar29[6] = ppppppcVar20;\n        if (ppppppcVar32 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else if (ppppppcVar35 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else if (ppppppcVar39 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else if (ppppppcVar20 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else {\n          ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23cf0))((int)pppppppcVar3[6] << 2);\n          pppppppcVar29[0x21] = ppppppcVar32;\n          if (ppppppcVar32 != (code ******)0x0) {\n            ppppppcVar32 = (code ******)0x0;\n            if (pppppppcVar3[6] != (code ******)0x0) {\n              do {\n                pppppppcVar29[0x21][(int)ppppppcVar32] = (code *****)ppppppcVar32;\n                ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n              } while (ppppppcVar32 < pppppppcVar3[6]);\n            }\n            FUN_00046050(pppppppcVar29[0xd],*(int *)(puVar41 + 0x23abc) + 0x60e8,pppppppcVar29);\n            ppppppcVar32 = pppppppcVar3[6];\n            if (ppppppcVar32 == (code ******)0x0) {\nLAB_00056704:\n              (**(code **)(puVar41 + 0x23dc0))(pppppppcVar29[0x21]);\n              pppppppcVar29[0x21] = (code ******)0x0;\n            }\n            else {\n              ppppppcVar35 = pppppppcVar29[0x21];\n              if (*ppppppcVar35 == (code *****)0x0) {\n                ppppppcVar39 = (code ******)0x0;\n                do {\n                  ppppppcVar35 = ppppppcVar35 + 1;\n                  ppppppcVar39 = (code ******)((int)ppppppcVar39 + 1);\n                  if (ppppppcVar32 == ppppppcVar39) {\n                    if (ppppppcVar32 == ppppppcVar39) goto LAB_00056704;\n                    break;\n                  }\n                } while ((code ******)*ppppppcVar35 == ppppppcVar39);\n              }\n            }\n          }\n          pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23abc) + 0x73a4);\n          pppppppcVar30 = (code *******)FUN_00045fb4(pppppppcVar29[0xd],pppppppcVar38,pppppppcVar3);\n          pppppppcVar31 = pppppppcVar29;\n          if (pppppppcVar30 == (code *******)0x0) {\n            pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23b40) + -0x5be4);\n            pppppppcVar30 = (code *******)FUN_00045fb4(pppppppcVar29[0xd],pppppppcVar38);\n            if (pppppppcVar30 == (code *******)0x0) {\n              FUN_00046050(pppppppcVar29[0xd],*(int *)(puVar41 + 0x23abc) + 0x61b4);\n              pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23b40) + -0x4614);\n              pppppppcVar30 = (code *******)FUN_00046050(pppppppcVar29[0xd],pppppppcVar38);\n              if (pppppppcVar30 == (code *******)0x0) {\n                uVar7 = 0;\n                iVar18 = *(int *)(puVar41 + 0x23b40);\n                pppppppcVar33 = (code *******)0x0;\nLAB_00056744:\n                if ((code *******)pppppppcVar29[2] != pppppppcVar33) {\nLAB_00056750:\n                  if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                    pppppppcVar38 = pppppppcVar29;\n                    pppppppcVar31 = pppppppcVar33;\n                    pppppppcVar30 =\n                         (code *******)\n                         (*(code *)(iVar18 + -0x561c))\n                                   (&ppppppcStack_204,pppppppcVar29,pppppppcVar33,1);\n                    if (pppppppcVar30 != (code *******)0x0) goto LAB_00056168;\n                    if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                      (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                      uVar7 = 1;\n                    }\n                  }\n                  pppppppcVar33 = (code *******)((int)pppppppcVar33 + 1);\n                  goto LAB_00056744;\n                }\n                if (uVar7 != 0) {\n                  uVar7 = 0;\n                  pppppppcVar33 = (code *******)0x0;\n                  goto LAB_00056750;\n                }\n                if (((((uint)pppppppcVar3[7] & 0x8000000) == 0) &&\n                    (pppppppcVar3[6] != (code ******)0x0)) &&\n                   ((char)*(code *)(pppppppcVar29 + 0x16) < '\0')) {\n                  ppppppcVar32 = pppppppcVar29[2];\n                }\n                else {\n                  if (pppppppcVar29[0x13] == (code ******)0x0) goto LAB_000568f0;\n                  ppppppcVar32 = pppppppcVar29[2];\n                }\n                ppppppcVar35 = (code ******)\n                               (**(code **)(puVar41 + 0x23cf0))((int)ppppppcVar32 * 0xc);\n                pppppppcVar29[7] = ppppppcVar35;\n                if (ppppppcVar35 == (code ******)0x0) {\n                  pppppppcVar30 = (code *******)0xc;\n                  goto LAB_00056168;\n                }\n                if (ppppppcVar32 != (code ******)0x0) {\n                  iVar18 = 0;\n                  ppppppcVar32 = (code ******)0x0;\n                  do {\n                    puVar21 = (undefined1 *)((int)pppppppcVar29[7] + iVar18);\n                    *puVar21 = 0;\n                    puVar21[1] = 0;\n                    puVar21[2] = 0;\n                    puVar21[3] = 0;\n                    puVar21[4] = 0;\n                    puVar21[5] = 0;\n                    puVar21[6] = 0;\n                    puVar21[7] = 0;\n                    puVar21[8] = 0;\n                    puVar21[9] = 0;\n                    puVar21[10] = 0;\n                    puVar21[0xb] = 0;\n                    ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                    iVar18 = iVar18 + 0xc;\n                  } while (ppppppcVar32 < pppppppcVar29[2]);\n                  iVar18 = *(int *)(puVar41 + 0x23abc);\n                  if (pppppppcVar29[2] != (code ******)0x0) {\n                    iVar43 = 0;\n                    pppppppcStack_218 = (code *******)0x0;\n                    do {\n                      piVar5 = *(int **)((int)pppppppcVar29[6] + iVar43 + 8);\n                      if (0 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4)) {\n                        iVar37 = 0;\n                        do {\n                          pppppppcVar38 = pppppppcStack_218;\n                          iVar22 = (*(code *)(iVar18 + 0x6e30))\n                                             (pppppppcVar29[7] + *piVar5 * 3,pppppppcStack_218);\n                          pppppppcVar30 = (code *******)0xc;\n                          if (iVar22 == 0) goto LAB_00056168;\n                          iVar37 = iVar37 + 1;\n                          piVar5 = piVar5 + 1;\n                        } while (iVar37 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4));\n                      }\n                      pppppppcStack_218 = (code *******)((int)pppppppcStack_218 + 1);\n                      iVar43 = iVar43 + 0xc;\n                    } while (pppppppcStack_218 < pppppppcVar29[2]);\n                  }\n                }\nLAB_000568f0:\n                pppppppcStack_20c = (code *******)0x0;\n                if (((((uint)pppppppcVar34[0x16] & 0x20000000) != 0) && (uVar16 == 0)) &&\n                   (pppppppcVar3[5] == (code ******)0x0)) {\n                  if (pppppppcVar34[2] != (code ******)0x0) {\n                    pppppppcVar31 = (code *******)(*(int *)(puVar41 + 0x23754) + 0x6e4c);\n                    if (*(byte *)(*pppppppcVar34 + 1) < 0xd) {\n                    \n                    \n                      pppppppcVar29 =\n                           (code *******)\n                           (*(code *)(puVar41 +\n                                     (int)(pppppppcVar31[*(byte *)(*pppppppcVar34 + 1)] + 0xadc7)))\n                                     ();\n                      return pppppppcVar29;\n                    }\n                    (**(code **)(puVar41 + 0x23bc4))(0);\n                    if (uVar7 != 0) {\n                      pppppppcVar31 = (code *******)&DAT_00000007;\n                      ppppppcVar32 = (code ******)0x0;\n                      do {\n                        ppppppcVar35 = *pppppppcVar34 + (int)ppppppcVar32 * 2;\n                        if (*(char *)(ppppppcVar35 + 1) == '\x01') {\n                          if (*(char *)ppppppcVar35 < '\0') {\n                            ppppppcVar35[1] = (code *****)((uint)ppppppcVar35[1] & 0xfffffbff);\n                          }\n                        }\n                        else if (*(char *)(ppppppcVar35 + 1) == '\x05') {\n                          *(char *)(ppppppcVar35 + 1) = '\a';\n                        }\n                        ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                      } while (ppppppcVar32 < pppppppcVar34[2]);\n                    }\n                  }\n                  pppppppcVar34[0x17] = (code ******)0x1;\n                  if (0 < (int)pppppppcVar34[0x13]) {\n                    uVar7 = 1;\n                  }\n                  *(byte *)(pppppppcVar34 + 0x16) =\n                       (byte)*(code *)(pppppppcVar34 + 0x16) & 0x9f | (byte)((uVar7 & 1) << 6);\n                }\n                ppppppcVar32 = (code ******)pppppppcVar34[0xd][3][7];\n                pppppppcVar34[0x12] = ppppppcVar32;\n                pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppppcVar32 * 3);\n                pppppppcVar33 = (code *******)FUN_000483e8(&ppppppcStack_204,pppppppcVar38);\n                pppppppcVar29 = pppppppcVar33;\n                pppppppcStack_208 = pppppppcVar33;\n                if (pppppppcVar33 == (code *******)0x0) {\n                  if ((0 < (int)pppppppcVar34[0x13]) && (0 < iStack_200)) {\n                    iVar18 = *(int *)(puVar41 + 0x23abc);\n                    iVar43 = *(int *)(puVar41 + 0x23abc);\n                    pppppppcVar29 = (code *******)0x0;\n                    do {\n                      pppppppcVar31 =\n                           (code *******)(*pppppppcVar34 + piStack_1fc[(int)pppppppcVar29] * 2);\n                      if (*(code *)(pppppppcVar31 + 1) == (code)0x4) {\n                        iVar37 = 0;\n                        piVar5 = piStack_1fc;\n                        if (iStack_200 < 1) {\nLAB_00056b8c:\n                          if (iStack_200 != iVar37) {\n                            ppppcVar40 = *pppppppcVar34[5][piStack_1fc[(int)pppppppcVar29] * 3 + 2];\n                            iVar37 = (*(code *)(iVar18 + 0x5ea8))(&ppppppcStack_204,ppppcVar40);\n                            if (iVar37 == 0) {\n                              pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppcVar40 * 3)\n                              ;\n                              pppppppcVar29 =\n                                   (code *******)\n                                   (*(code *)(iVar43 + 0x7f1c))(&ppppppcStack_204,pppppppcVar38);\n                              if (pppppppcVar29 != (code *******)0x0) goto LAB_00056cb8;\n                            }\n                          }\n                        }\n                        else {\n                          do {\n                            ppppppcVar32 = *pppppppcVar34 + *piVar5 * 2;\n                            if ((*(char *)(ppppppcVar32 + 1) == '\t') &&\n                               ((code ******)*ppppppcVar32 == *pppppppcVar31)) goto LAB_00056b8c;\n                            iVar37 = iVar37 + 1;\n                            piVar5 = piVar5 + 1;\n                          } while (iStack_200 != iVar37);\n                        }\n                      }\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1);\n                    } while ((int)pppppppcVar29 < iStack_200);\n                  }\n                  pppppppcVar31 = &ppppppcStack_204;\n                  pppppppcVar38 = pppppppcVar34;\n                  ppppppcVar32 = (code ******)\n                                 FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,0);\n                  pppppppcVar34[9] = ppppppcVar32;\n                  pppppppcVar29 = pppppppcStack_208;\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    if (((uint)ppppppcVar32[0xd] & 0x1000000) == 0) {\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar34[10] = ppppppcVar32;\n                    }\n                    else {\n                      pppppppcVar31 = &ppppppcStack_204;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,1);\n                      pppppppcVar34[10] = ppppppcVar32;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,2);\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar38 = pppppppcVar34;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,6);\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar29 = pppppppcStack_208;\n                      if (((pppppppcVar34[10] == (code ******)0x0) ||\n                          (pppppppcVar34[0xb] == (code ******)0x0)) ||\n                         (ppppppcVar32 == (code ******)0x0)) goto LAB_00056cb8;\n                    }\n                    (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                    pppppppcVar29 = pppppppcVar33;\n                  }\n                }\nLAB_00056cb8:\n                pppppppcStack_20c = pppppppcVar29;\n                FUN_0004b234(pppppppcVar3);\n                FUN_0004b2bc(&pppppppcStack_1f8);\n                pppppppcVar29 = pppppppcStack_20c;\n                if (pppppppcStack_20c != (code *******)0x0) {\n                  if (*(int *)(puVar41 + 0x23c78) != 0) {\n                    (**(code **)(puVar41 + 0x23df0))(pppppppcVar34 + 0x22);\n                  }\n                  FUN_0004b338(pppppppcVar34);\n                  *pppppppcVar3 = (code ******)0x0;\n                  pppppppcVar3[1] = (code ******)0x0;\n                  pppppppcVar29 = pppppppcStack_20c;\n                }\n                goto LAB_00056cfc;\n              }\n            }\n          }\n        }\n      }\n      else {\n        pppppppcVar31 = (code *******)0x0;\n        if (pppppppcVar29 != (code *******)0x0) {\n          pppppppcVar33 = (code *******)FUN_000470f0(ppppppcVar32,0,0,2);\n          goto LAB_000564b0;\n        }\nLAB_000566f4:\n        pppppppcVar34[0xd] = (code ******)0x0;\n        pppppppcVar30 = pppppppcStack_20c;\n      }\nLAB_00056168:\n      pppppppcStack_20c = pppppppcVar30;\n      FUN_0004b234(pppppppcVar3);\n      FUN_0004b2bc(&pppppppcStack_1f8);\n      if (*(int *)(puVar41 + 0x23c78) != 0) {\n        (**(code **)(puVar41 + 0x23df0))(pppppppcVar34 + 0x22);\n      }\n      FUN_0004b338(pppppppcVar34);\n      *pppppppcVar3 = (code ******)0x0;\n      pppppppcVar3[1] = (code ******)0x0;\n      pppppppcVar29 = pppppppcStack_20c;\n      goto LAB_00056cfc;\n    }\n    pppppppcVar38 = (code *******)0x0;\n    iVar18 = (**(code **)(puVar41 + 0x23d98))(pppppppcVar34 + 0x22,0);\n    if (iVar18 != 0) goto LAB_00056e5c;\n    if (pppppppcStack_20c == (code *******)0x0) goto LAB_00056054;\n  }\n  else {\nLAB_00056e5c:\n    pppppppcStack_20c = (code *******)0xc;\n  }\n  FUN_0004b338(pppppppcVar34);\n  *pppppppcVar3 = (code ******)0x0;\n  pppppppcVar3[1] = (code ******)0x0;\n  pppppppcVar29 = pppppppcStack_20c;\nLAB_00056cfc:\n  if (iStack_1a4 == **(int **)(puVar41 + 0x23dac)) {\n    return pppppppcVar29;\n  }\n  pcVar4 = *(code **)(puVar41 + 0x23d6c);\n  iVar18 = iStack_1a4;\n  (*pcVar4)();\n  *(byte *)(pppppppcVar31 + 7) =\n       (byte)*(code *)(pppppppcVar31 + 7) & 0xf6 |\n       (byte)(((uint)(**(int **)(pcVar4 + 0x22b18) << 6) >> 0x1f) << 3) | 1;\n  iVar18 = FUN_00055e64(pppppppcVar31,iVar18,pppppppcVar38);\n  if (iVar18 == 0) {\n    pppppppcVar29 = (code *******)0x0;\n  }\n  else {\n    pppppppcVar29 =\n         (code *******)\n         (**(code **)(pcVar4 + 0x22d48))\n                   (0,*(int *)(pcVar4 + 0x22728) + 0x6f48 +\n                      *(int *)(iVar18 * 4 + *(int *)(pcVar4 + 0x22728) + 0x6f04),5);\n  }\n  return pppppppcVar29;\ncode_r0x00055b38:\n  if ((int)pppppppcVar26 < (int)local_dc) goto LAB_000557a8;\n  goto LAB_00055b44;\nLAB_000557a8:\n  local_150 = (code *******)0x1;\n  goto LAB_000557e4;\nLAB_00055914:\n  local_150 = (code *******)0xc;\n  param_4 = pppppppcVar14;\n  goto LAB_000557e4;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "code *******pppppppcVar2;" type_identifier (pointer_declarator "*******pppppppcVar2" * (pointer_declarator "******pppppppcVar2" * (pointer_declarator "*****pppppppcVar2" * (pointer_declarator "****pppppppcVar2" * (pointer_declarator "***pppppppcVar2" * (pointer_declarator "**pppppppcVar2" * (pointer_declarator "*pppppppcVar2" * identifier))))))) ;) (declaration "code *******pppppppcVar3;" type_identifier (pointer_declarator "*******pppppppcVar3" * (pointer_declarator "******pppppppcVar3" * (pointer_declarator "*****pppppppcVar3" * (pointer_declarator "****pppppppcVar3" * (pointer_declarator "***pppppppcVar3" * (pointer_declarator "**pppppppcVar3" * (pointer_declarator "*pppppppcVar3" * identifier))))))) ;) (declaration "code *pcVar4;" type_identifier (pointer_declarator "*pcVar4" * identifier) ;) (declaration "int *piVar5;" primitive_type (pointer_declarator "*piVar5" * identifier) ;) (declaration "code *******pppppppcVar6;" type_identifier (pointer_declarator "*******pppppppcVar6" * (pointer_declarator "******pppppppcVar6" * (pointer_declarator "*****pppppppcVar6" * (pointer_declarator "****pppppppcVar6" * (pointer_declarator "***pppppppcVar6" * (pointer_declarator "**pppppppcVar6" * (pointer_declarator "*pppppppcVar6" * identifier))))))) ;) (declaration "uint uVar7;" 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 "code *pcVar11;" type_identifier (pointer_declarator "*pcVar11" * identifier) ;) (declaration "code *pcVar12;" type_identifier (pointer_declarator "*pcVar12" * identifier) ;) (declaration "code *****pppppcVar13;" type_identifier (pointer_declarator "*****pppppcVar13" * (pointer_declarator "****pppppcVar13" * (pointer_declarator "***pppppcVar13" * (pointer_declarator "**pppppcVar13" * (pointer_declarator "*pppppcVar13" * identifier))))) ;) (declaration "code *******pppppppcVar14;" type_identifier (pointer_declarator "*******pppppppcVar14" * (pointer_declarator "******pppppppcVar14" * (pointer_declarator "*****pppppppcVar14" * (pointer_declarator "****pppppppcVar14" * (pointer_declarator "***pppppppcVar14" * (pointer_declarator "**pppppppcVar14" * (pointer_declarator "*pppppppcVar14" * identifier))))))) ;) (declaration "code *******pppppppcVar15;" type_identifier (pointer_declarator "*******pppppppcVar15" * (pointer_declarator "******pppppppcVar15" * (pointer_declarator "*****pppppppcVar15" * (pointer_declarator "****pppppppcVar15" * (pointer_declarator "***pppppppcVar15" * (pointer_declarator "**pppppppcVar15" * (pointer_declarator "*pppppppcVar15" * identifier))))))) ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "code cVar23;" type_identifier identifier ;) (declaration "byte *pbVar17;" type_identifier (pointer_declarator "*pbVar17" * identifier) ;) (declaration "int iVar18;" primitive_type identifier ;) (declaration "uint uVar19;" type_identifier identifier ;) (declaration "code ******ppppppcVar20;" type_identifier (pointer_declarator "******ppppppcVar20" * (pointer_declarator "*****ppppppcVar20" * (pointer_declarator "****ppppppcVar20" * (pointer_declarator "***ppppppcVar20" * (pointer_declarator "**ppppppcVar20" * (pointer_declarator "*ppppppcVar20" * identifier)))))) ;) (declaration "undefined1 *puVar21;" type_identifier (pointer_declarator "*puVar21" * identifier) ;) (declaration "int iVar22;" primitive_type identifier ;) (declaration "code *******pppppppcVar24;" type_identifier (pointer_declarator "*******pppppppcVar24" * (pointer_declarator "******pppppppcVar24" * (pointer_declarator "*****pppppppcVar24" * (pointer_declarator "****pppppppcVar24" * (pointer_declarator "***pppppppcVar24" * (pointer_declarator "**pppppppcVar24" * (pointer_declarator "*pppppppcVar24" * identifier))))))) ;) (declaration "code *******pppppppcVar25;" type_identifier (pointer_declarator "*******pppppppcVar25" * (pointer_declarator "******pppppppcVar25" * (pointer_declarator "*****pppppppcVar25" * (pointer_declarator "****pppppppcVar25" * (pointer_declarator "***pppppppcVar25" * (pointer_declarator "**pppppppcVar25" * (pointer_declarator "*pppppppcVar25" * identifier))))))) ;) (declaration "code *******pppppppcVar26;" type_identifier (pointer_declarator "*******pppppppcVar26" * (pointer_declarator "******pppppppcVar26" * (pointer_declarator "*****pppppppcVar26" * (pointer_declarator "****pppppppcVar26" * (pointer_declarator "***pppppppcVar26" * (pointer_declarator "**pppppppcVar26" * (pointer_declarator "*pppppppcVar26" * identifier))))))) ;) (declaration "uint uVar27;" type_identifier identifier ;) (declaration "code *******pppppppcVar28;" type_identifier (pointer_declarator "*******pppppppcVar28" * (pointer_declarator "******pppppppcVar28" * (pointer_declarator "*****pppppppcVar28" * (pointer_declarator "****pppppppcVar28" * (pointer_declarator "***pppppppcVar28" * (pointer_declarator "**pppppppcVar28" * (pointer_declarator "*pppppppcVar28" * identifier))))))) ;) (declaration "code *******pppppppcVar29;" type_identifier (pointer_declarator "*******pppppppcVar29" * (pointer_declarator "******pppppppcVar29" * (pointer_declarator "*****pppppppcVar29" * (pointer_declarator "****pppppppcVar29" * (pointer_declarator "***pppppppcVar29" * (pointer_declarator "**pppppppcVar29" * (pointer_declarator "*pppppppcVar29" * identifier))))))) ;) (declaration "code *******pppppppcVar30;" type_identifier (pointer_declarator "*******pppppppcVar30" * (pointer_declarator "******pppppppcVar30" * (pointer_declarator "*****pppppppcVar30" * (pointer_declarator "****pppppppcVar30" * (pointer_declarator "***pppppppcVar30" * (pointer_declarator "**pppppppcVar30" * (pointer_declarator "*pppppppcVar30" * identifier))))))) ;) (declaration "code *******pppppppcVar31;" type_identifier (pointer_declarator "*******pppppppcVar31" * (pointer_declarator "******pppppppcVar31" * (pointer_declarator "*****pppppppcVar31" * (pointer_declarator "****pppppppcVar31" * (pointer_declarator "***pppppppcVar31" * (pointer_declarator "**pppppppcVar31" * (pointer_declarator "*pppppppcVar31" * identifier))))))) ;) (declaration "code ******ppppppcVar32;" type_identifier (pointer_declarator "******ppppppcVar32" * (pointer_declarator "*****ppppppcVar32" * (pointer_declarator "****ppppppcVar32" * (pointer_declarator "***ppppppcVar32" * (pointer_declarator "**ppppppcVar32" * (pointer_declarator "*ppppppcVar32" * identifier)))))) ;) (declaration "code *******pppppppcVar33;" type_identifier (pointer_declarator "*******pppppppcVar33" * (pointer_declarator "******pppppppcVar33" * (pointer_declarator "*****pppppppcVar33" * (pointer_declarator "****pppppppcVar33" * (pointer_declarator "***pppppppcVar33" * (pointer_declarator "**pppppppcVar33" * (pointer_declarator "*pppppppcVar33" * identifier))))))) ;) (declaration "code *******pppppppcVar34;" type_identifier (pointer_declarator "*******pppppppcVar34" * (pointer_declarator "******pppppppcVar34" * (pointer_declarator "*****pppppppcVar34" * (pointer_declarator "****pppppppcVar34" * (pointer_declarator "***pppppppcVar34" * (pointer_declarator "**pppppppcVar34" * (pointer_declarator "*pppppppcVar34" * identifier))))))) ;) (declaration "code ******ppppppcVar35;" type_identifier (pointer_declarator "******ppppppcVar35" * (pointer_declarator "*****ppppppcVar35" * (pointer_declarator "****ppppppcVar35" * (pointer_declarator "***ppppppcVar35" * (pointer_declarator "**ppppppcVar35" * (pointer_declarator "*ppppppcVar35" * identifier)))))) ;) (declaration "code *******pppppppcVar36;" type_identifier (pointer_declarator "*******pppppppcVar36" * (pointer_declarator "******pppppppcVar36" * (pointer_declarator "*****pppppppcVar36" * (pointer_declarator "****pppppppcVar36" * (pointer_declarator "***pppppppcVar36" * (pointer_declarator "**pppppppcVar36" * (pointer_declarator "*pppppppcVar36" * identifier))))))) ;) (declaration "code *******unaff_s4;" type_identifier (pointer_declarator "*******unaff_s4" * (pointer_declarator "******unaff_s4" * (pointer_declarator "*****unaff_s4" * (pointer_declarator "****unaff_s4" * (pointer_declarator "***unaff_s4" * (pointer_declarator "**unaff_s4" * (pointer_declarator "*unaff_s4" * identifier))))))) ;) (declaration "int iVar37;" primitive_type identifier ;) (declaration "code *******unaff_s5;" type_identifier (pointer_declarator "*******unaff_s5" * (pointer_declarator "******unaff_s5" * (pointer_declarator "*****unaff_s5" * (pointer_declarator "****unaff_s5" * (pointer_declarator "***unaff_s5" * (pointer_declarator "**unaff_s5" * (pointer_declarator "*unaff_s5" * identifier))))))) ;) (declaration "code *******pppppppcVar38;" type_identifier (pointer_declarator "*******pppppppcVar38" * (pointer_declarator "******pppppppcVar38" * (pointer_declarator "*****pppppppcVar38" * (pointer_declarator "****pppppppcVar38" * (pointer_declarator "***pppppppcVar38" * (pointer_declarator "**pppppppcVar38" * (pointer_declarator "*pppppppcVar38" * identifier))))))) ;) (declaration "code *******unaff_s7;" type_identifier (pointer_declarator "*******unaff_s7" * (pointer_declarator "******unaff_s7" * (pointer_declarator "*****unaff_s7" * (pointer_declarator "****unaff_s7" * (pointer_declarator "***unaff_s7" * (pointer_declarator "**unaff_s7" * (pointer_declarator "*unaff_s7" * identifier))))))) ;) (declaration "code ******ppppppcVar39;" type_identifier (pointer_declarator "******ppppppcVar39" * (pointer_declarator "*****ppppppcVar39" * (pointer_declarator "****ppppppcVar39" * (pointer_declarator "***ppppppcVar39" * (pointer_declarator "**ppppppcVar39" * (pointer_declarator "*ppppppcVar39" * identifier)))))) ;) (declaration "code ****ppppcVar40;" type_identifier (pointer_declarator "****ppppcVar40" * (pointer_declarator "***ppppcVar40" * (pointer_declarator "**ppppcVar40" * (pointer_declarator "*ppppcVar40" * identifier)))) ;) (declaration "undefined *puVar41;" type_identifier (pointer_declarator "*puVar41" * identifier) ;) (declaration "code *******unaff_s8;" type_identifier (pointer_declarator "*******unaff_s8" * (pointer_declarator "******unaff_s8" * (pointer_declarator "*****unaff_s8" * (pointer_declarator "****unaff_s8" * (pointer_declarator "***unaff_s8" * (pointer_declarator "**unaff_s8" * (pointer_declarator "*unaff_s8" * identifier))))))) ;) (declaration "code *******pppppppcVar42;" type_identifier (pointer_declarator "*******pppppppcVar42" * (pointer_declarator "******pppppppcVar42" * (pointer_declarator "*****pppppppcVar42" * (pointer_declarator "****pppppppcVar42" * (pointer_declarator "***pppppppcVar42" * (pointer_declarator "**pppppppcVar42" * (pointer_declarator "*pppppppcVar42" * identifier))))))) ;) (declaration "int iVar43;" primitive_type identifier ;) (declaration "undefined8 uVar44;" type_identifier identifier ;) (declaration "code *******pppppppcStack_218;" type_identifier (pointer_declarator "*******pppppppcStack_218" * (pointer_declarator "******pppppppcStack_218" * (pointer_declarator "*****pppppppcStack_218" * (pointer_declarator "****pppppppcStack_218" * (pointer_declarator "***pppppppcStack_218" * (pointer_declarator "**pppppppcStack_218" * (pointer_declarator "*pppppppcStack_218" * identifier))))))) ;) (declaration "code *******pppppppcStack_20c;" type_identifier (pointer_declarator "*******pppppppcStack_20c" * (pointer_declarator "******pppppppcStack_20c" * (pointer_declarator "*****pppppppcStack_20c" * (pointer_declarator "****pppppppcStack_20c" * (pointer_declarator "***pppppppcStack_20c" * (pointer_declarator "**pppppppcStack_20c" * (pointer_declarator "*pppppppcStack_20c" * identifier))))))) ;) (declaration "code *******pppppppcStack_208;" type_identifier (pointer_declarator "*******pppppppcStack_208" * (pointer_declarator "******pppppppcStack_208" * (pointer_declarator "*****pppppppcStack_208" * (pointer_declarator "****pppppppcStack_208" * (pointer_declarator "***pppppppcStack_208" * (pointer_declarator "**pppppppcStack_208" * (pointer_declarator "*pppppppcStack_208" * identifier))))))) ;) (declaration "code ******ppppppcStack_204;" type_identifier (pointer_declarator "******ppppppcStack_204" * (pointer_declarator "*****ppppppcStack_204" * (pointer_declarator "****ppppppcStack_204" * (pointer_declarator "***ppppppcStack_204" * (pointer_declarator "**ppppppcStack_204" * (pointer_declarator "*ppppppcStack_204" * identifier)))))) ;) (declaration "int iStack_200;" primitive_type identifier ;) (declaration "int *piStack_1fc;" primitive_type (pointer_declarator "*piStack_1fc" * identifier) ;) (declaration "code *******pppppppcStack_1f8;" type_identifier (pointer_declarator "*******pppppppcStack_1f8" * (pointer_declarator "******pppppppcStack_1f8" * (pointer_declarator "*****pppppppcStack_1f8" * (pointer_declarator "****pppppppcStack_1f8" * (pointer_declarator "***pppppppcStack_1f8" * (pointer_declarator "**pppppppcStack_1f8" * (pointer_declarator "*pppppppcStack_1f8" * identifier))))))) ;) (declaration "code *******apppppppcStack_1f4 [6];" type_identifier (pointer_declarator "*******apppppppcStack_1f4 [6]" * (pointer_declarator "******apppppppcStack_1f4 [6]" * (pointer_declarator "*****apppppppcStack_1f4 [6]" * (pointer_declarator "****apppppppcStack_1f4 [6]" * (pointer_declarator "***apppppppcStack_1f4 [6]" * (pointer_declarator "**apppppppcStack_1f4 [6]" * (pointer_declarator "*apppppppcStack_1f4 [6]" * (array_declarator "apppppppcStack_1f4 [6]" identifier [ number_literal ])))))))) ;) (declaration "int iStack_1dc;" primitive_type identifier ;) (declaration "int iStack_1d8;" primitive_type identifier ;) (declaration "int iStack_1d4;" primitive_type identifier ;) (declaration "code *******pppppppcStack_1cc;" type_identifier (pointer_declarator "*******pppppppcStack_1cc" * (pointer_declarator "******pppppppcStack_1cc" * (pointer_declarator "*****pppppppcStack_1cc" * (pointer_declarator "****pppppppcStack_1cc" * (pointer_declarator "***pppppppcStack_1cc" * (pointer_declarator "**pppppppcStack_1cc" * (pointer_declarator "*pppppppcStack_1cc" * identifier))))))) ;) (declaration "code *******pppppppcStack_1c8;" type_identifier (pointer_declarator "*******pppppppcStack_1c8" * (pointer_declarator "******pppppppcStack_1c8" * (pointer_declarator "*****pppppppcStack_1c8" * (pointer_declarator "****pppppppcStack_1c8" * (pointer_declarator "***pppppppcStack_1c8" * (pointer_declarator "**pppppppcStack_1c8" * (pointer_declarator "*pppppppcStack_1c8" * identifier))))))) ;) (declaration "code *******pppppppcStack_1c4;" type_identifier (pointer_declarator "*******pppppppcStack_1c4" * (pointer_declarator "******pppppppcStack_1c4" * (pointer_declarator "*****pppppppcStack_1c4" * (pointer_declarator "****pppppppcStack_1c4" * (pointer_declarator "***pppppppcStack_1c4" * (pointer_declarator "**pppppppcStack_1c4" * (pointer_declarator "*pppppppcStack_1c4" * identifier))))))) ;) (declaration "code *******pppppppcStack_1c0;" type_identifier (pointer_declarator "*******pppppppcStack_1c0" * (pointer_declarator "******pppppppcStack_1c0" * (pointer_declarator "*****pppppppcStack_1c0" * (pointer_declarator "****pppppppcStack_1c0" * (pointer_declarator "***pppppppcStack_1c0" * (pointer_declarator "**pppppppcStack_1c0" * (pointer_declarator "*pppppppcStack_1c0" * identifier))))))) ;) (declaration "code ******ppppppcStack_1b8;" type_identifier (pointer_declarator "******ppppppcStack_1b8" * (pointer_declarator "*****ppppppcStack_1b8" * (pointer_declarator "****ppppppcStack_1b8" * (pointer_declarator "***ppppppcStack_1b8" * (pointer_declarator "**ppppppcStack_1b8" * (pointer_declarator "*ppppppcStack_1b8" * identifier)))))) ;) (declaration "undefined1 uStack_1b0;" type_identifier identifier ;) (declaration "byte bStack_1af;" type_identifier identifier ;) (declaration "byte bStack_1ae;" type_identifier identifier ;) (declaration "char cStack_1ad;" primitive_type identifier ;) (declaration "code ******ppppppcStack_1a8;" type_identifier (pointer_declarator "******ppppppcStack_1a8" * (pointer_declarator "*****ppppppcStack_1a8" * (pointer_declarator "****ppppppcStack_1a8" * (pointer_declarator "***ppppppcStack_1a8" * (pointer_declarator "**ppppppcStack_1a8" * (pointer_declarator "*ppppppcStack_1a8" * identifier)))))) ;) (declaration "int iStack_1a4;" primitive_type identifier ;) (declaration "code *******pppppppcStack_1a0;" type_identifier (pointer_declarator "*******pppppppcStack_1a0" * (pointer_declarator "******pppppppcStack_1a0" * (pointer_declarator "*****pppppppcStack_1a0" * (pointer_declarator "****pppppppcStack_1a0" * (pointer_declarator "***pppppppcStack_1a0" * (pointer_declarator "**pppppppcStack_1a0" * (pointer_declarator "*pppppppcStack_1a0" * identifier))))))) ;) (declaration "code *******pppppppcStack_19c;" type_identifier (pointer_declarator "*******pppppppcStack_19c" * (pointer_declarator "******pppppppcStack_19c" * (pointer_declarator "*****pppppppcStack_19c" * (pointer_declarator "****pppppppcStack_19c" * (pointer_declarator "***pppppppcStack_19c" * (pointer_declarator "**pppppppcStack_19c" * (pointer_declarator "*pppppppcStack_19c" * identifier))))))) ;) (declaration "code *******pppppppcStack_198;" type_identifier (pointer_declarator "*******pppppppcStack_198" * (pointer_declarator "******pppppppcStack_198" * (pointer_declarator "*****pppppppcStack_198" * (pointer_declarator "****pppppppcStack_198" * (pointer_declarator "***pppppppcStack_198" * (pointer_declarator "**pppppppcStack_198" * (pointer_declarator "*pppppppcStack_198" * identifier))))))) ;) (declaration "code *******pppppppcStack_194;" type_identifier (pointer_declarator "*******pppppppcStack_194" * (pointer_declarator "******pppppppcStack_194" * (pointer_declarator "*****pppppppcStack_194" * (pointer_declarator "****pppppppcStack_194" * (pointer_declarator "***pppppppcStack_194" * (pointer_declarator "**pppppppcStack_194" * (pointer_declarator "*pppppppcStack_194" * identifier))))))) ;) (declaration "code *******pppppppcStack_190;" type_identifier (pointer_declarator "*******pppppppcStack_190" * (pointer_declarator "******pppppppcStack_190" * (pointer_declarator "*****pppppppcStack_190" * (pointer_declarator "****pppppppcStack_190" * (pointer_declarator "***pppppppcStack_190" * (pointer_declarator "**pppppppcStack_190" * (pointer_declarator "*pppppppcStack_190" * identifier))))))) ;) (declaration "code *******pppppppcStack_18c;" type_identifier (pointer_declarator "*******pppppppcStack_18c" * (pointer_declarator "******pppppppcStack_18c" * (pointer_declarator "*****pppppppcStack_18c" * (pointer_declarator "****pppppppcStack_18c" * (pointer_declarator "***pppppppcStack_18c" * (pointer_declarator "**pppppppcStack_18c" * (pointer_declarator "*pppppppcStack_18c" * identifier))))))) ;) (declaration "code *******pppppppcStack_188;" type_identifier (pointer_declarator "*******pppppppcStack_188" * (pointer_declarator "******pppppppcStack_188" * (pointer_declarator "*****pppppppcStack_188" * (pointer_declarator "****pppppppcStack_188" * (pointer_declarator "***pppppppcStack_188" * (pointer_declarator "**pppppppcStack_188" * (pointer_declarator "*pppppppcStack_188" * identifier))))))) ;) (declaration "code *******pppppppcStack_184;" type_identifier (pointer_declarator "*******pppppppcStack_184" * (pointer_declarator "******pppppppcStack_184" * (pointer_declarator "*****pppppppcStack_184" * (pointer_declarator "****pppppppcStack_184" * (pointer_declarator "***pppppppcStack_184" * (pointer_declarator "**pppppppcStack_184" * (pointer_declarator "*pppppppcStack_184" * identifier))))))) ;) (declaration "code *******pppppppcStack_180;" type_identifier (pointer_declarator "*******pppppppcStack_180" * (pointer_declarator "******pppppppcStack_180" * (pointer_declarator "*****pppppppcStack_180" * (pointer_declarator "****pppppppcStack_180" * (pointer_declarator "***pppppppcStack_180" * (pointer_declarator "**pppppppcStack_180" * (pointer_declarator "*pppppppcStack_180" * identifier))))))) ;) (declaration "code *pcStack_17c;" type_identifier (pointer_declarator "*pcStack_17c" * identifier) ;) (declaration "uint local_168;" type_identifier identifier ;) (declaration "code *******local_150;" type_identifier (pointer_declarator "*******local_150" * (pointer_declarator "******local_150" * (pointer_declarator "*****local_150" * (pointer_declarator "****local_150" * (pointer_declarator "***local_150" * (pointer_declarator "**local_150" * (pointer_declarator "*local_150" * identifier))))))) ;) (declaration "code *******local_148;" type_identifier (pointer_declarator "*******local_148" * (pointer_declarator "******local_148" * (pointer_declarator "*****local_148" * (pointer_declarator "****local_148" * (pointer_declarator "***local_148" * (pointer_declarator "**local_148" * (pointer_declarator "*local_148" * identifier))))))) ;) (declaration "code *******local_144;" type_identifier (pointer_declarator "*******local_144" * (pointer_declarator "******local_144" * (pointer_declarator "*****local_144" * (pointer_declarator "****local_144" * (pointer_declarator "***local_144" * (pointer_declarator "**local_144" * (pointer_declarator "*local_144" * identifier))))))) ;) (declaration "code *******local_138;" type_identifier (pointer_declarator "*******local_138" * (pointer_declarator "******local_138" * (pointer_declarator "*****local_138" * (pointer_declarator "****local_138" * (pointer_declarator "***local_138" * (pointer_declarator "**local_138" * (pointer_declarator "*local_138" * identifier))))))) ;) (declaration "int local_118;" primitive_type identifier ;) (declaration "code *******local_dc;" type_identifier (pointer_declarator "*******local_dc" * (pointer_declarator "******local_dc" * (pointer_declarator "*****local_dc" * (pointer_declarator "****local_dc" * (pointer_declarator "***local_dc" * (pointer_declarator "**local_dc" * (pointer_declarator "*local_dc" * identifier))))))) ;) (declaration "code *******local_d8;" type_identifier (pointer_declarator "*******local_d8" * (pointer_declarator "******local_d8" * (pointer_declarator "*****local_d8" * (pointer_declarator "****local_d8" * (pointer_declarator "***local_d8" * (pointer_declarator "**local_d8" * (pointer_declarator "*local_d8" * identifier))))))) ;) (declaration "code *******local_d4;" type_identifier (pointer_declarator "*******local_d4" * (pointer_declarator "******local_d4" * (pointer_declarator "*****local_d4" * (pointer_declarator "****local_d4" * (pointer_declarator "***local_d4" * (pointer_declarator "**local_d4" * (pointer_declarator "*local_d4" * identifier))))))) ;) (declaration "code *******local_d0;" type_identifier (pointer_declarator "*******local_d0" * (pointer_declarator "******local_d0" * (pointer_declarator "*****local_d0" * (pointer_declarator "****local_d0" * (pointer_declarator "***local_d0" * (pointer_declarator "**local_d0" * (pointer_declarator "*local_d0" * identifier))))))) ;) (declaration "code *******local_cc;" type_identifier (pointer_declarator "*******local_cc" * (pointer_declarator "******local_cc" * (pointer_declarator "*****local_cc" * (pointer_declarator "****local_cc" * (pointer_declarator "***local_cc" * (pointer_declarator "**local_cc" * (pointer_declarator "*local_cc" * identifier))))))) ;) (declaration "code *******local_c8;" type_identifier (pointer_declarator "*******local_c8" * (pointer_declarator "******local_c8" * (pointer_declarator "*****local_c8" * (pointer_declarator "****local_c8" * (pointer_declarator "***local_c8" * (pointer_declarator "**local_c8" * (pointer_declarator "*local_c8" * identifier))))))) ;) (declaration "code *******local_c4;" type_identifier (pointer_declarator "*******local_c4" * (pointer_declarator "******local_c4" * (pointer_declarator "*****local_c4" * (pointer_declarator "****local_c4" * (pointer_declarator "***local_c4" * (pointer_declarator "**local_c4" * (pointer_declarator "*local_c4" * identifier))))))) ;) (declaration "undefined4 local_c0;" type_identifier identifier ;) (declaration "undefined4 local_bc;" type_identifier identifier ;) (declaration "undefined4 local_b8;" type_identifier identifier ;) (declaration "code ******local_b4;" type_identifier (pointer_declarator "******local_b4" * (pointer_declarator "*****local_b4" * (pointer_declarator "****local_b4" * (pointer_declarator "***local_b4" * (pointer_declarator "**local_b4" * (pointer_declarator "*local_b4" * identifier)))))) ;) (declaration "code ******local_b0;" type_identifier (pointer_declarator "******local_b0" * (pointer_declarator "*****local_b0" * (pointer_declarator "****local_b0" * (pointer_declarator "***local_b0" * (pointer_declarator "**local_b0" * (pointer_declarator "*local_b0" * identifier)))))) ;) (declaration "int *local_ac;" primitive_type (pointer_declarator "*local_ac" * identifier) ;) (declaration "int local_a8;" primitive_type identifier ;) (declaration "int local_9c;" primitive_type identifier ;) (declaration "code *******local_98;" type_identifier (pointer_declarator "*******local_98" * (pointer_declarator "******local_98" * (pointer_declarator "*****local_98" * (pointer_declarator "****local_98" * (pointer_declarator "***local_98" * (pointer_declarator "**local_98" * (pointer_declarator "*local_98" * identifier))))))) ;) (declaration "code *******local_94;" type_identifier (pointer_declarator "*******local_94" * (pointer_declarator "******local_94" * (pointer_declarator "*****local_94" * (pointer_declarator "****local_94" * (pointer_declarator "***local_94" * (pointer_declarator "**local_94" * (pointer_declarator "*local_94" * identifier))))))) ;) (declaration "uint local_90;" type_identifier identifier ;) (declaration "code *******local_8c;" type_identifier (pointer_declarator "*******local_8c" * (pointer_declarator "******local_8c" * (pointer_declarator "*****local_8c" * (pointer_declarator "****local_8c" * (pointer_declarator "***local_8c" * (pointer_declarator "**local_8c" * (pointer_declarator "*local_8c" * identifier))))))) ;) (declaration "code *******local_88;" type_identifier (pointer_declarator "*******local_88" * (pointer_declarator "******local_88" * (pointer_declarator "*****local_88" * (pointer_declarator "****local_88" * (pointer_declarator "***local_88" * (pointer_declarator "**local_88" * (pointer_declarator "*local_88" * identifier))))))) ;) (declaration "code *******local_84;" type_identifier (pointer_declarator "*******local_84" * (pointer_declarator "******local_84" * (pointer_declarator "*****local_84" * (pointer_declarator "****local_84" * (pointer_declarator "***local_84" * (pointer_declarator "**local_84" * (pointer_declarator "*local_84" * identifier))))))) ;) (declaration "code *******local_80;" type_identifier (pointer_declarator "*******local_80" * (pointer_declarator "******local_80" * (pointer_declarator "*****local_80" * (pointer_declarator "****local_80" * (pointer_declarator "***local_80" * (pointer_declarator "**local_80" * (pointer_declarator "*local_80" * identifier))))))) ;) (declaration "code *******local_7c;" type_identifier (pointer_declarator "*******local_7c" * (pointer_declarator "******local_7c" * (pointer_declarator "*****local_7c" * (pointer_declarator "****local_7c" * (pointer_declarator "***local_7c" * (pointer_declarator "**local_7c" * (pointer_declarator "*local_7c" * identifier))))))) ;) (declaration "undefined4 local_78;" type_identifier identifier ;) (declaration "code ******local_74;" type_identifier (pointer_declarator "******local_74" * (pointer_declarator "*****local_74" * (pointer_declarator "****local_74" * (pointer_declarator "***local_74" * (pointer_declarator "**local_74" * (pointer_declarator "*local_74" * identifier)))))) ;) (declaration "code *******local_70;" type_identifier (pointer_declarator "*******local_70" * (pointer_declarator "******local_70" * (pointer_declarator "*****local_70" * (pointer_declarator "****local_70" * (pointer_declarator "***local_70" * (pointer_declarator "**local_70" * (pointer_declarator "*local_70" * identifier))))))) ;) (declaration "byte local_6c;" type_identifier identifier ;) (declaration "byte local_6b;" type_identifier identifier ;) (declaration "byte local_6a;" type_identifier identifier ;) (declaration "byte local_69;" type_identifier identifier ;) (declaration "char local_68;" primitive_type identifier ;) (declaration "byte local_67;" type_identifier identifier ;) (declaration "byte local_66;" type_identifier identifier ;) (declaration "code *******local_64;" type_identifier (pointer_declarator "*******local_64" * (pointer_declarator "******local_64" * (pointer_declarator "*****local_64" * (pointer_declarator "****local_64" * (pointer_declarator "***local_64" * (pointer_declarator "**local_64" * (pointer_declarator "*local_64" * identifier))))))) ;) (declaration "code *******local_60;" type_identifier (pointer_declarator "*******local_60" * (pointer_declarator "******local_60" * (pointer_declarator "*****local_60" * (pointer_declarator "****local_60" * (pointer_declarator "***local_60" * (pointer_declarator "**local_60" * (pointer_declarator "*local_60" * identifier))))))) ;) (declaration "code *******local_5c;" type_identifier (pointer_declarator "*******local_5c" * (pointer_declarator "******local_5c" * (pointer_declarator "*****local_5c" * (pointer_declarator "****local_5c" * (pointer_declarator "***local_5c" * (pointer_declarator "**local_5c" * (pointer_declarator "*local_5c" * identifier))))))) ;) (declaration "code *******local_58;" type_identifier (pointer_declarator "*******local_58" * (pointer_declarator "******local_58" * (pointer_declarator "*****local_58" * (pointer_declarator "****local_58" * (pointer_declarator "***local_58" * (pointer_declarator "**local_58" * (pointer_declarator "*local_58" * identifier))))))) ;) (declaration "code *******local_54;" type_identifier (pointer_declarator "*******local_54" * (pointer_declarator "******local_54" * (pointer_declarator "*****local_54" * (pointer_declarator "****local_54" * (pointer_declarator "***local_54" * (pointer_declarator "**local_54" * (pointer_declarator "*local_54" * identifier))))))) ;) (declaration "code *******local_50;" type_identifier (pointer_declarator "*******local_50" * (pointer_declarator "******local_50" * (pointer_declarator "*****local_50" * (pointer_declarator "****local_50" * (pointer_declarator "***local_50" * (pointer_declarator "**local_50" * (pointer_declarator "*local_50" * identifier))))))) ;) (declaration "code *******local_4c;" type_identifier (pointer_declarator "*******local_4c" * (pointer_declarator "******local_4c" * (pointer_declarator "*****local_4c" * (pointer_declarator "****local_4c" * (pointer_declarator "***local_4c" * (pointer_declarator "**local_4c" * (pointer_declarator "*local_4c" * identifier))))))) ;) (declaration "undefined4 local_48;" type_identifier identifier ;) (declaration "code *******local_44;" type_identifier (pointer_declarator "*******local_44" * (pointer_declarator "******local_44" * (pointer_declarator "*****local_44" * (pointer_declarator "****local_44" * (pointer_declarator "***local_44" * (pointer_declarator "**local_44" * (pointer_declarator "*local_44" * identifier))))))) ;) (declaration "code *******local_40;" type_identifier (pointer_declarator "*******local_40" * (pointer_declarator "******local_40" * (pointer_declarator "*****local_40" * (pointer_declarator "****local_40" * (pointer_declarator "***local_40" * (pointer_declarator "**local_40" * (pointer_declarator "*local_40" * identifier))))))) ;) (declaration "int local_3c;" primitive_type identifier ;) (declaration "code *******local_34;" type_identifier (pointer_declarator "*******local_34" * (pointer_declarator "******local_34" * (pointer_declarator "*****local_34" * (pointer_declarator "****local_34" * (pointer_declarator "***local_34" * (pointer_declarator "**local_34" * (pointer_declarator "*local_34" * identifier))))))) ;) (declaration "int local_30;" primitive_type identifier ;) (declaration "code *******local_2c;" type_identifier (pointer_declarator "*******local_2c" * (pointer_declarator "******local_2c" * (pointer_declarator "*****local_2c" * (pointer_declarator "****local_2c" * (pointer_declarator "***local_2c" * (pointer_declarator "**local_2c" * (pointer_declarator "*local_2c" * identifier))))))) ;) (expression_statement "local_2c = *(code ********)PTR___stack_chk_guard_00079c10;" (assignment_expression "local_2c = *(code ********)PTR___stack_chk_guard_00079c10" identifier = (pointer_expression "*(code ********)PTR___stack_chk_guard_00079c10" * (cast_expression "(code ********)PTR___stack_chk_guard_00079c10" ( (type_descriptor "code ********" type_identifier (abstract_pointer_declarator "********" * (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))))) ) identifier))) ;) (expression_statement "pppppppcVar38 = (code *******)*param_1;" (assignment_expression "pppppppcVar38 = (code *******)*param_1" identifier = (cast_expression "(code *******)*param_1" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "*param_1" * identifier))) ;) (expression_statement "pppppppcVar29 = (code *******)0x0;" (assignment_expression "pppppppcVar29 = (code *******)0x0" identifier = (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "pppppppcVar33 = param_4;" (assignment_expression "pppppppcVar33 = param_4" identifier = identifier) ;) (expression_statement "(*(code *)PTR_memset_00079b00)(&local_b4,0,0x88);" (call_expression "(*(code *)PTR_memset_00079b00)(&local_b4,0,0x88)" (parenthesized_expression "(*(code *)PTR_memset_00079b00)" ( (pointer_expression "*(code *)PTR_memset_00079b00" * (cast_expression "(code *)PTR_memset_00079b00" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&local_b4,0,0x88)" ( (pointer_expression "&local_b4" & identifier) , number_literal , number_literal ))) ;) (expression_statement "local_148 = (code *******)param_1[4];" (assignment_expression "local_148 = (code *******)param_1[4]" identifier = (cast_expression "(code *******)param_1[4]" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (subscript_expression "param_1[4]" identifier [ number_literal ]))) ;) (if_statement "if (local_148 != (code *******)0x0) {\n    if (((byte)*(code *)(param_1 + 7) & 0x10) == 0) {\n      local_148 = (code *******)0x0;\n    }\n    else if (param_4 == param_5) {\n      local_148 = (code *******)0x0;\n    }\n    else if ((char)*(code *)(param_1 + 7) < '\0') {\n      local_148 = (code *******)0x0;\n    }\n  }" if (parenthesized_expression "(local_148 != (code *******)0x0)" ( (binary_expression "local_148 != (code *******)0x0" identifier != (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\n    if (((byte)*(code *)(param_1 + 7) & 0x10) == 0) {\n      local_148 = (code *******)0x0;\n    }\n    else if (param_4 == param_5) {\n      local_148 = (code *******)0x0;\n    }\n    else if ((char)*(code *)(param_1 + 7) < '\0') {\n      local_148 = (code *******)0x0;\n    }\n  }" { (if_statement "if (((byte)*(code *)(param_1 + 7) & 0x10) == 0) {\n      local_148 = (code *******)0x0;\n    }\n    else if (param_4 == param_5) {\n      local_148 = (code *******)0x0;\n    }\n    else if ((char)*(code *)(param_1 + 7) < '\0') {\n      local_148 = (code *******)0x0;\n    }" if (parenthesized_expression "(((byte)*(code *)(param_1 + 7) & 0x10) == 0)" ( (binary_expression "((byte)*(code *)(param_1 + 7) & 0x10) == 0" (parenthesized_expression "((byte)*(code *)(param_1 + 7) & 0x10)" ( (binary_expression "(byte)*(code *)(param_1 + 7) & 0x10" (binary_expression "(byte)*(code *)(param_1 + 7)" (parenthesized_expression "(byte)" ( identifier )) * (cast_expression "(code *)(param_1 + 7)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 7)" ( (binary_expression "param_1 + 7" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n      local_148 = (code *******)0x0;\n    }" { (expression_statement "local_148 = (code *******)0x0;" (assignment_expression "local_148 = (code *******)0x0" identifier = (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) }) (else_clause "else if (param_4 == param_5) {\n      local_148 = (code *******)0x0;\n    }\n    else if ((char)*(code *)(param_1 + 7) < '\0') {\n      local_148 = (code *******)0x0;\n    }" else (if_statement "if (param_4 == param_5) {\n      local_148 = (code *******)0x0;\n    }\n    else if ((char)*(code *)(param_1 + 7) < '\0') {\n      local_148 = (code *******)0x0;\n    }" if (parenthesized_expression "(param_4 == param_5)" ( (binary_expression "param_4 == param_5" identifier == identifier) )) (compound_statement "{\n      local_148 = (code *******)0x0;\n    }" { (expression_statement "local_148 = (code *******)0x0;" (assignment_expression "local_148 = (code *******)0x0" identifier = (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) }) (else_clause "else if ((char)*(code *)(param_1 + 7) < '\0') {\n      local_148 = (code *******)0x0;\n    }" else (if_statement "if ((char)*(code *)(param_1 + 7) < '\0') {\n      local_148 = (code *******)0x0;\n    }" if (parenthesized_expression "((char)*(code *)(param_1 + 7) < '\0')" ( (binary_expression "(char)*(code *)(param_1 + 7) < '\0'" (cast_expression "(char)*(code *)(param_1 + 7)" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(code *)(param_1 + 7)" * (cast_expression "(code *)(param_1 + 7)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 7)" ( (binary_expression "param_1 + 7" identifier + number_literal) ))))) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      local_148 = (code *******)0x0;\n    }" { (expression_statement "local_148 = (code *******)0x0;" (assignment_expression "local_148 = (code *******)0x0" identifier = (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) })))))) })) (if_statement "if (param_1[6] < param_7) {\n    local_118 = (int)param_7 + (-1 - (int)param_1[6]);\n  }\n  else {\n    local_118 = 0;\n  }" if (parenthesized_expression "(param_1[6] < param_7)" ( (binary_expression "param_1[6] < param_7" (subscript_expression "param_1[6]" identifier [ number_literal ]) < identifier) )) (compound_statement "{\n    local_118 = (int)param_7 + (-1 - (int)param_1[6]);\n  }" { (expression_statement "local_118 = (int)param_7 + (-1 - (int)param_1[6]);" (assignment_expression "local_118 = (int)param_7 + (-1 - (int)param_1[6])" identifier = (binary_expression "(int)param_7 + (-1 - (int)param_1[6])" (cast_expression "(int)param_7" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(-1 - (int)param_1[6])" ( (binary_expression "-1 - (int)param_1[6]" number_literal - (cast_expression "(int)param_1[6]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_1[6]" identifier [ number_literal ]))) )))) ;) }) (else_clause "else {\n    local_118 = 0;\n  }" else (compound_statement "{\n    local_118 = 0;\n  }" { (expression_statement "local_118 = 0;" (assignment_expression "local_118 = 0" identifier = number_literal) ;) }))) (expression_statement "pppppppcStack_1a0 = param_4;" (assignment_expression "pppppppcStack_1a0 = param_4" identifier = identifier) ;) (expression_statement "pppppppcStack_19c = param_1;" (assignment_expression "pppppppcStack_19c = param_1" identifier = identifier) ;) (expression_statement "local_60 = pppppppcVar38;" (assignment_expression "local_60 = pppppppcVar38" identifier = identifier) ;) (if_statement "if (param_1[2] == (code ******)0x0) {\n    local_150 = (code *******)0x1;\n  }\n  else if (pppppppcVar38[9] == (code ******)0x0) {\n    local_150 = (code *******)0x1;\n  }\n  else if (pppppppcVar38[10] == (code ******)0x0) {\n    local_150 = (code *******)0x1;\n  }\n  else if (pppppppcVar38[0xb] == (code ******)0x0) {\n    local_150 = (code *******)0x1;\n  }\n  else {\n    pppppppcVar29 = (code *******)pppppppcVar38[0xc];\n    if (pppppppcVar29 == (code *******)0x0) {\n      local_150 = (code *******)0x1;\n    }\n    else {\n      pppppppcVar3 = param_5;\n      if ((((pppppppcVar38[9][2] == (code *****)0x0) && (pppppppcVar38[10][2] == (code *****)0x0))\n          && ((pppppppcVar38[0xb][2] == (code *****)0x0 || (((uint)param_1[7] & 0x1000000) == 0))))\n         && ((pppppppcVar3 = param_4, param_4 != (code *******)0x0 &&\n             (param_4 = param_5, pppppppcVar3 = param_5, param_5 != (code *******)0x0)))) {\n        local_150 = (code *******)0x1;\n        pppppppcStack_1a0 = param_5;\n      }\n      else {\n        param_5 = pppppppcVar3;\n        pppppppcVar3 = (code *******)((int)param_7 - local_118);\n        if (pppppppcVar3 == (code *******)0x0) {\n          pppppppcVar34 = (code *******)(uint)(pppppppcVar38[0x13] != (code ******)0x0);\n        }\n        else {\n          pppppppcVar34 = (code *******)0x1;\n        }\n        ppppppcVar32 = param_1[5];\n        local_6c = (byte)((uint)((int)param_1[3] << 9) >> 0x1f);\n        local_64 = (code *******)pppppppcVar38[0x17];\n        pppppppcVar31 = (code *******)((int)pppppppcVar38[2] + 1);\n        if ((int)pppppppcVar38[2] + 1 < (int)local_64) {\n          pppppppcVar31 = local_64;\n        }\n        pppppppcVar30 = (code *******)(uint)((int)param_3 + 1 < (int)pppppppcVar31);\n        pppppppcVar33 = (code *******)0x1;\n        local_69 = local_6c;\n        if (ppppppcVar32 != (code ******)0x0) {\n          local_69 = 1;\n        }\n        local_6b = (byte)((uint)((int)pppppppcVar38[0x16] << 2) >> 0x1f);\n        local_6a = (byte)((uint)((int)pppppppcVar38[0x16] << 3) >> 0x1f);\n        pppppppcVar29 = (code *******)((int)param_3 + 1);\n        if (pppppppcVar30 == (code *******)0x0) {\n          pppppppcVar29 = pppppppcVar31;\n        }\n        local_b4 = param_2;\n        local_88 = param_3;\n        local_84 = param_3;\n        local_80 = param_3;\n        local_7c = param_3;\n        local_74 = ppppppcVar32;\n        local_150 = (code *******)FUN_00046d2c(&local_b4);\n        pppppppcVar31 = pppppppcVar34;\n        param_6 = param_6;\n        if (local_150 != (code *******)0x0) goto LAB_000557e4;\n        local_70 = pppppppcVar38 + 0x18;\n        local_66 = (byte)((uint)((int)pppppppcVar38[0x16] << 4) >> 0x1f);\n        pppppppcVar2 = (code *******)0x0;\n        local_98 = pppppppcVar2;\n        if ((local_69 == 0) && (local_b0 = param_2, (int)pppppppcVar38[0x17] < 2)) {\n          local_98 = param_3;\n        }\n        local_7c = param_6;\n        local_80 = param_6;\n        local_67 = (byte)((uint)((int)param_1[7] << 7) >> 0x1f);\n        ppppppcVar35 = pppppppcVar38[0x13];\n        pppppppcVar36 = (code *******)((int)ppppppcVar35 * 2);\n        local_5c = param_9;\n        local_58 = (code *******)0xffffffff;\n        local_94 = local_98;\n        if ((int)pppppppcVar36 < 1) {\nLAB_000559f0:\n          local_3c = 1;\n          local_44 = pppppppcVar36;\n          local_34 = pppppppcVar36;\n          if ((pppppppcVar3 < (code *******)0x2) && (((uint)pppppppcVar38[0x16] & 0x40000000) == 0))\n          {\n            local_50 = (code *******)0x0;\nLAB_00055a40:\n            local_78 = 6;\n            if (((uint)param_9 & 1) != 0) {\n              local_78 = 4;\n            }\n            pppppppcVar24 = (code *******)0x1;\n            pppppppcVar25 = param_4;\n            if ((int)param_5 < (int)param_4) {\n              pppppppcVar24 = (code *******)0xffffffff;\n              pppppppcVar25 = param_5;\n            }\n            pppppppcVar26 = param_5;\n            if ((int)param_5 <= (int)param_4) {\n              pppppppcVar26 = param_4;\n            }\n            ppppppcVar35 = pppppppcVar38[0x17];\n            uVar16 = 8;\n            if (local_148 != (code *******)0x0) {\n              if (ppppppcVar35 == (code ******)0x1) {\n                pppppppcVar28 = (code *******)0x4;\n              }\n              else {\n                pppppppcVar28 = pppppppcVar2;\n                if ((-1 < (int)param_1[3] << 9) && (ppppppcVar32 == (code ******)0x0)) {\n                  pppppppcVar28 = (code *******)0x4;\n                }\n              }\n              pppppppcVar29 = (code *******)0x0;\n              if ((int)param_4 <= (int)param_5) {\n                pppppppcVar29 = (code *******)0x2;\n              }\n              uVar16 = (uint)(ppppppcVar32 != (code ******)0x0) | (uint)pppppppcVar28 |\n                       (uint)pppppppcVar29;\n            }\n            local_dc = param_4;\n            if ((int)param_4 < (int)pppppppcVar25) {\n              local_150 = (code *******)0x1;\n              param_6 = pppppppcVar36;\n            }\n            else if ((int)pppppppcVar26 < (int)param_4) {\n              local_150 = (code *******)0x1;\n              param_4 = (code *******)(uint)((int)param_5 < (int)param_4);\n              param_6 = pppppppcVar36;\n            }\n            else {\n              pppppppcVar36 = (code *******)&local_dc;\n              if ((code *******)(uint)((int)param_5 < (int)param_4) != (code *******)0x0) {\n                pppppppcVar36 = (code *******)0x0;\n              }\n              pcVar4 = (code *)(PTR_DAT_000799a4 + -0x2b7c);\n              piVar5 = (int *)(PTR_s_nt0_000795b8 + (uVar16 - 4) * 4 + 0x6e38);\nLAB_00055b44:\n              if (uVar16 - 4 < 5) {\n                    \n                    \n                pppppppcVar29 = (code *******)(*(code *)(&_gp_1 + *piVar5))();\n                return pppppppcVar29;\n              }\n              param_5 = &local_b4;\n              pppppppcVar28 = pppppppcVar33;\n              while( true ) {\n                param_4 = local_dc;\n                pppppppcVar33 = (code *******)((int)local_dc - local_9c);\n                pppppppcVar30 = param_9;\n                pppppppcVar31 = pppppppcVar2;\n                param_6 = local_148;\n                unaff_s4 = param_3;\n                unaff_s5 = pppppppcVar24;\n                unaff_s7 = pppppppcVar26;\n                if (local_94 <= pppppppcVar33) {\n                  pppppppcVar29 = local_dc;\n                  local_150 = (code *******)(*pcVar4)(param_5);\n                  pppppppcVar33 = pppppppcVar28;\n                  if (local_150 != (code *******)0x0) goto LAB_000557e4;\n                  pppppppcVar33 = (code *******)((int)param_4 - local_9c);\n                }\n                if ((int)param_4 < (int)param_3) {\n                  uVar7 = (uint)(byte)*(code *)((int)pppppppcVar33 + (int)local_b0);\n                }\n                else {\n                  uVar7 = 0;\n                }\n                param_4 = (code *******)((int)param_4 + (int)pppppppcVar24);\n                if (*(code *)((int)local_148 + uVar7) != (code)0x0) break;\n                pppppppcVar33 = pppppppcVar28;\n                local_dc = param_4;\n                if ((int)param_4 < (int)pppppppcVar25) {\n                  local_150 = (code *******)0x1;\n                  goto LAB_000557e4;\n                }\n                if ((code *******)(uint)((int)pppppppcVar26 < (int)param_4) != (code *******)0x0) {\n                  local_150 = (code *******)0x1;\n                  param_4 = (code *******)(uint)((int)pppppppcVar26 < (int)param_4);\n                  goto LAB_000557e4;\n                }\n              }\n              while( true ) {\n                pppppppcVar29 = local_dc;\n                pppppppcVar30 = param_9;\n                pppppppcVar6 = (code *******)(*pcVar4)(&local_b4);\n                pppppppcVar14 = local_60;\n                pppppppcVar42 = local_8c;\n                pppppppcVar33 = pppppppcVar28;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar6 != (code *******)0x0) goto LAB_000557e4;\n                if (((ppppppcVar35 != (code ******)0x1) && (local_98 != (code *******)0x0)) &&\n                   (*local_ac == -1)) goto LAB_00055b1c;\n                local_3c = 0;\n                local_48 = 0;\n                local_4c = (code *******)0x0;\n                local_138 = local_8c;\n                local_d8 = (code *******)0x0;\n                unaff_s7 = (code *******)local_60[9];\n                pppppppcVar30 = local_5c;\n                param_4 = pppppppcVar14;\n                if (((uint)unaff_s7[0xd] & 0x1000000) == 0) break;\n                pppppppcVar29 = (code *******)((int)local_8c + -1);\n                pppppppcVar33 = (code *******)FUN_00049110(&local_b4);\n                if (((uint)pppppppcVar33 & 1) == 0) {\n                  if (pppppppcVar33 == (code *******)0x0) break;\n                  if (((uint)pppppppcVar33 & 6) == 6) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xc];\n                    goto LAB_00054d1c;\n                  }\n                  if (((uint)pppppppcVar33 & 2) != 0) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xb];\n                    goto LAB_00054d1c;\n                  }\n                  pppppppcVar28 = pppppppcVar33;\n                  if (((uint)pppppppcVar33 & 4) == 0) break;\n                  pppppppcVar30 = (code *******)unaff_s7[10];\n                  pppppppcVar29 = pppppppcVar14;\n                  unaff_s7 = (code *******)FUN_0004ae34(&local_d8);\n                  pppppppcVar28 = pppppppcVar33;\n                  if (unaff_s7 != (code *******)0x0) break;\n                  if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                }\n                else {\n                  unaff_s7 = (code *******)pppppppcVar14[10];\nLAB_00054d1c:\n                  pppppppcVar28 = (code *******)PTR_s_nt0_000795b8;\n                  if (unaff_s7 != (code *******)0x0) break;\n                }\n                pppppppcVar28 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                local_dc = (code *******)\n                           (*(code *)PTR___assert_fail_000799f8)\n                                     (PTR_s_nt0_000795b8 + 0x71a0,pppppppcVar29,0x435);\n                if (local_dc == pppppppcVar26) {\n                  if ((int)local_dc < (int)param_3) {\n                    uVar7 = (uint)(byte)*(code *)((int)local_dc + (int)param_2);\n                  }\n                  else {\n                    uVar7 = 0;\n                  }\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    uVar7 = (uint)*(byte *)((int)ppppppcVar32 + uVar7);\n                  }\n                  if (*(code *)((int)local_148 + uVar7) == (code)0x0) {\n                    local_150 = (code *******)0x1;\n                    pppppppcVar30 = param_9;\n                    pppppppcVar33 = pppppppcVar28;\n                    goto LAB_000557e4;\n                  }\n                }\n              }\n              pppppppcVar33 = pppppppcVar28;\n              bVar1 = pppppppcVar36 != (code *******)0x0;\n              if ((local_50 == (code *******)0x0) ||\n                 (local_50[(int)pppppppcVar42] = (code ******)unaff_s7,\n                 pppppppcVar14[0x13] == (code ******)0x0)) {\nLAB_00054d50:\n                if ((int)unaff_s7[0xd] << 4 < 0) {\n                  if ((((uint)unaff_s7[0xd] & 0x1000000) == 0) ||\n                     (pppppppcVar29 = unaff_s7, pppppppcVar30 = pppppppcVar42,\n                     iVar18 = FUN_00049440(&local_b4), iVar18 != 0)) {\n                    unaff_s8 = pppppppcVar42;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                  }\n                  else {\n                    pppppppcVar42 = (code *******)0xffffffff;\n                    pppppppcVar28 = (code *******)0x0;\n                  }\n                }\n                else {\n                  pppppppcVar42 = (code *******)0xffffffff;\n                  pppppppcVar28 = (code *******)0x0;\n                }\n                pcVar8 = (code *)(PTR_DAT_000799a4 + -0x7144);\n                pcVar9 = (code *)(PTR_DAT_000799a4 + -0x1980);\n                pcVar10 = (code *)(PTR_DAT_000799a4 + -0x2f9c);\n                unaff_s8 = pppppppcVar42;\n                local_144 = pppppppcVar36;\n                while( true ) {\n                  uVar44 = CONCAT44(local_98,local_84);\n                  unaff_s5 = (code *******)((int)local_8c + 1);\n                  pppppppcVar29 = local_8c;\n                  if ((int)local_7c <= (int)local_8c) break;\n                  if (((int)local_90 <= (int)unaff_s5) && ((int)local_90 < (int)local_84))\n                  goto LAB_00054e94;\n                  if ((int)local_98 <= (int)unaff_s5) {\n                    while ((int)((ulonglong)uVar44 >> 0x20) < (int)uVar44) {\nLAB_00054e94:\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 2);\n                      local_d8 = (code *******)(*pcVar8)(&local_b4);\n                      if (local_d8 == (code *******)0x0) break;\n                      pppppppcVar14 = param_4;\n                      if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                      pppppppcVar33 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                      pppppppcVar30 = (code *******)0x46c;\n                      pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                      uVar44 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0);\n                      pppppppcVar28 = pppppppcVar38;\n                    }\n                  }\n                  pppppppcVar42 = local_60;\n                  if ((int)unaff_s7[0xd] << 5 < 0) {\n                    pppppppcVar31 = pppppppcVar42;\n                    if (0 < (int)unaff_s7[2]) {\n                      pcVar11 = (code *)(PTR_DAT_000799a4 + -0x6fdc);\n                      pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6ef0);\n                      param_6 = (code *******)0x0;\n                      do {\n                        param_5 = (code *******)unaff_s7[3][(int)param_6];\n                        ppppppcVar39 = *pppppppcVar42;\n                        pppppcVar13 = ppppppcVar39[(int)param_5 * 2 + 1];\n                        if (((uint)pppppcVar13 & 0x800) != 0) {\n                          if (((uint)pppppcVar13 & 0xffc000) != 0) {\n                            pppppppcVar29 = local_8c;\n                            uVar19 = (*pcVar12)(&local_b4,local_8c,local_5c);\n                            uVar7 = (uint)((int)ppppppcVar39[(int)param_5 * 2 + 1] << 8) >> 0x16;\n                            if ((uVar7 & 4) == 0) {\n                              uVar27 = uVar19 & 1;\n                              if ((uVar7 & 8) != 0) goto joined_r0x00054f40;\n                            }\n                            else {\n                              uVar27 = uVar7 & 8;\n                              if ((uVar19 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                              if (uVar27 != 0) goto LAB_000550a4;\n                            }\n                            if ((((uVar7 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                               (((uVar7 & 0x80) != 0 &&\n                                (pppppppcVar33 = local_8c, (uVar19 & 8) == 0)))) goto LAB_000550a4;\n                          }\n                          pppppppcVar30 = &local_b4;\n                          pppppppcVar29 = param_5;\n                          pppppppcVar33 = local_8c;\n                          iVar18 = (*pcVar10)(pppppppcVar42);\n                          if (iVar18 != 0) {\n                            pppppppcVar14 = (code *******)((int)local_8c + iVar18);\n                            if (iVar18 <= local_3c) {\n                              iVar18 = local_3c;\n                            }\n                            pppppppcVar29 = pppppppcVar14;\n                            local_3c = iVar18;\n                            local_d4 = (code *******)(*pcVar11)(&local_b4);\n                            pppppppcVar15 = local_d4;\n                            if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                            pppppppcVar30 =\n                                 (code *******)\n                                 (pppppppcVar42[6] + (int)pppppppcVar42[3][(int)param_5] * 3);\n                            unaff_s4 = (code *******)((int)pppppppcVar14 * 4);\n                            param_5 = local_50 + (int)pppppppcVar14;\n                            if (*param_5 == (code ******)0x0) {\n                              local_d0 = (code *******)*pppppppcVar30;\n                              local_cc = (code *******)pppppppcVar30[1];\n                              local_c8 = (code *******)pppppppcVar30[2];\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *param_5 = ppppppcVar39;\n                            }\n                            else {\n                              pppppppcVar29 = (code *******)(*param_5)[10];\n                              local_d4 = (code *******)FUN_000484bc(&local_d0);\n                              pppppppcVar15 = local_d4;\n                              if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar15 = local_50 + (int)pppppppcVar14;\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *pppppppcVar15 = ppppppcVar39;\n                              (*(code *)PTR_free_00079c24)(local_c8);\n                            }\n                            unaff_s4 = local_50 + (int)pppppppcVar14;\n                            if ((*unaff_s4 == (code ******)0x0) &&\n                               (pppppppcVar15 = local_d4, local_d4 != (code *******)0x0))\n                            goto LAB_00055e44;\n                          }\n                        }\nLAB_000550a4:\n                        param_6 = (code *******)((int)param_6 + 1);\n                      } while ((int)param_6 < (int)unaff_s7[2]);\n                    }\n                    local_d8 = (code *******)0x0;\n                  }\n                  uVar7 = (uint)(byte)*(code *)((int)local_8c + (int)local_b0);\n                  local_8c = (code *******)((int)local_8c + 1);\n                  do {\n                    if (unaff_s7[0xb] != (code ******)0x0) {\n                      pppppppcVar30 = (code *******)unaff_s7[0xb][uVar7];\nLAB_000553a0:\n                      pppppppcVar14 = pppppppcVar30;\n                      if (local_50 != (code *******)0x0) goto LAB_000553ac;\n                      goto LAB_000553cc;\n                    }\n                    pppppppcVar31 = (code *******)unaff_s7[0xc];\n                    if (pppppppcVar31 != (code *******)0x0) {\n                      pppppppcVar29 = (code *******)((int)local_8c + -1);\n                      uVar19 = FUN_00049110(&local_b4);\n                      if ((uVar19 & 1) == 0) {\n                        pppppppcVar30 = (code *******)pppppppcVar31[uVar7];\n                      }\n                      else {\n                        pppppppcVar31 = pppppppcVar31 + uVar7 + 0x100;\n                        pppppppcVar30 = (code *******)*pppppppcVar31;\n                      }\n                      goto LAB_000553a0;\n                    }\n                    pppppppcVar29 = unaff_s7;\n                    pppppppcVar30 = local_5c;\n                    iVar18 = (*pcVar9)(local_60);\n                  } while (iVar18 != 0);\n                  local_d8 = (code *******)0xc;\n                  pppppppcVar15 = local_d8;\nLAB_00055e44:\n                  local_d8 = pppppppcVar15;\n                  param_4 = (code *******)0x0;\n                  if (local_50 == (code *******)0x0) {\n                    pppppppcVar14 = param_4;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    break;\n                  }\n                  pppppppcVar30 = (code *******)0x0;\nLAB_000553ac:\n                  pppppppcVar29 = &local_b4;\n                  pppppppcVar14 = (code *******)FUN_00053684(&local_d8);\nLAB_000553cc:\n                  param_4 = pppppppcVar14;\n                  if (pppppppcVar14 == (code *******)0x0) {\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    if ((local_50 == (code *******)0x0) ||\n                       ((pppppppcVar28 != (code *******)0x0 && (pppppppcVar34 == (code *******)0x0))\n                       )) break;\n                    param_6 = &local_b4;\n                    param_5 = (code *******)&local_d8;\n                    pppppppcVar31 = (code *******)(PTR_DAT_000799a4 + 0x3684);\n                    do {\n                      pppppppcVar15 = local_50 + (int)local_8c;\n                      pppppppcVar42 = local_8c;\n                      do {\n                        pppppppcVar42 = (code *******)((int)pppppppcVar42 + 1);\n                        pppppppcVar29 = local_4c;\n                        param_4 = pppppppcVar14;\n                        if ((int)local_4c < (int)pppppppcVar42) goto LAB_00055da8;\n                        local_8c = (code *******)((int)local_8c + 1);\n                        pppppppcVar15 = pppppppcVar15 + 1;\n                      } while (*pppppppcVar15 == (code ******)0x0);\n                      pppppppcVar30 = (code *******)0x0;\n                      pppppppcVar29 = param_6;\n                      param_4 = (code *******)(*(code *)pppppppcVar31)(param_5);\n                      if (local_d8 != (code *******)0x0) {\n                        if (param_4 == (code *******)0x0) goto LAB_00055da8;\n                        break;\n                      }\n                      pppppppcVar29 = local_4c;\n                    } while (param_4 == (code *******)0x0);\n                  }\n                  pppppppcVar15 = (code *******)((uint)unaff_s7 ^ (uint)param_4);\n                  pppppppcVar42 = unaff_s7;\n                  pppppppcVar14 = local_138;\n                  if ((bVar1) &&\n                     (pppppppcVar42 = pppppppcVar15, pppppppcVar14 = unaff_s5,\n                     pppppppcVar15 != (code *******)0x0)) {\n                    bVar1 = false;\n                    pppppppcVar14 = local_138;\n                  }\n                  local_138 = pppppppcVar14;\n                  unaff_s7 = param_4;\n                  if ((((uint)param_4[0xd] & 0x8000000) != 0) &&\n                     ((((uint)param_4[0xd] & 0x1000000) == 0 ||\n                      (pppppppcVar29 = param_4, pppppppcVar30 = local_8c,\n                      iVar18 = FUN_00049440(&local_b4), iVar18 != 0)))) {\n                    unaff_s7 = pppppppcVar42;\n                    unaff_s8 = local_8c;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                    local_144 = (code *******)0x0;\n                    unaff_s7 = param_4;\n                  }\n                }\nLAB_00055da8:\n                if (local_144 != (code *******)0x0) {\n                  *local_144 = (code ******)((int)local_138 + (int)*local_144);\n                }\n              }\n              else {\n                param_4 = unaff_s7 + 1;\n                pppppppcVar30 = (code *******)0x0;\n                pppppppcVar29 = param_4;\n                local_d8 = (code *******)FUN_00047a44(&local_b4);\n                unaff_s8 = local_d8;\n                if (local_d8 == (code *******)0x0) {\n                  if (((uint)unaff_s7[0xd] & 0x2000000) == 0) {\n                    pppppppcVar29 = param_4;\n                    bVar1 = false;\n                  }\n                  else {\n                    pppppppcVar29 = param_4;\n                    local_d8 = (code *******)FUN_00052d84(&local_b4);\n                    unaff_s8 = local_d8;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055dbc;\n                    bVar1 = false;\n                  }\n                  goto LAB_00054d50;\n                }\n              }\nLAB_00055dbc:\n              if (unaff_s8 == (code *******)0xffffffff) {\nLAB_00055b04:\n                FUN_0004b7e8(&local_b4);\nLAB_00055b1c:\n                local_dc = (code *******)((int)pppppppcVar24 + (int)local_dc);\n                if ((int)pppppppcVar25 <= (int)local_dc) goto code_r0x00055b38;\n                local_150 = (code *******)0x1;\n                goto LAB_000557e4;\n              }\n              if (unaff_s8 == (code *******)&SUB_fffffffe) {\n                local_150 = (code *******)0xc;\n                goto LAB_000557e4;\n              }\n              local_58 = unaff_s8;\n              if (((uint)param_1[7] & 0x8000000) == 0) {\n                if (pppppppcVar3 < (code *******)0x2) {\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055c08;\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                else {\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                if (pppppppcVar3 < (code *******)0x2) {\nLAB_00055c6c:\n                  pppppppcVar28 = pppppppcVar33;\n                  unaff_s4 = local_60;\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055548;\n                }\n                else {\n                  cVar23 = *(code *)(pppppppcVar38 + 0x16);\nLAB_00055c20:\n                  pppppppcVar28 = pppppppcVar33;\n                  if (-1 < (char)cVar23) goto LAB_00055c6c;\n                }\n                pppppppcVar31 = local_54;\n                pppppppcVar42 = local_60;\n                unaff_s4 = pppppppcVar42;\n                if (unaff_s8 < (code *******)0x3fffffff) {\n                  param_4 = (code *******)((int)((int)unaff_s8 + 1) * 4);\n                  unaff_s5 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                  if (unaff_s5 == (code *******)0x0) {\nLAB_00055b9c:\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    local_150 = (code *******)0xc;\n                    pppppppcVar33 = pppppppcVar28;\n                  }\n                  else {\n                    pppppppcVar29 = (code *******)&local_d0;\n                    if (pppppppcVar42[0x13] == (code ******)0x0) {\n                      local_cc = (code *******)0x0;\n                      local_c8 = pppppppcVar31;\n                      local_c0 = 0;\n                      local_bc = 0;\n                      local_b8 = 0;\n                      local_d0 = unaff_s5;\n                      local_c4 = unaff_s8;\n                      param_5 = (code *******)FUN_0005421c(&local_b4);\n                      (*(code *)PTR_free_00079c24)(local_b8);\n                      if (param_5 == (code *******)0x0) {\n                        param_4 = (code *******)*unaff_s5;\n                        if (param_4 == (code *******)0x0) {\nLAB_00055b70:\n                          (*(code *)PTR_free_00079c24)(unaff_s5);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          pppppppcVar33 = pppppppcVar28;\n                          goto LAB_00055b04;\n                        }\nLAB_00055528:\n                        (*(code *)PTR_free_00079c24)(local_50);\n                        pppppppcVar33 = pppppppcVar28;\n                        unaff_s4 = pppppppcVar42;\n                        local_58 = unaff_s8;\n                        local_54 = pppppppcVar31;\n                        local_50 = unaff_s5;\n                        goto LAB_00055548;\n                      }\nLAB_00055acc:\n                      param_4 = (code *******)0x0;\n                      pppppppcVar33 = pppppppcVar28;\n                      unaff_s4 = pppppppcVar42;\n                    }\n                    else {\n                      param_4 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                      if (param_4 == (code *******)0x0) goto LAB_00055b9c;\n                      unaff_s7 = (code *******)&local_d0;\n                      pcVar8 = (code *)(PTR_DAT_000799a4 + 0x421c);\n                      pcVar9 = (code *)(PTR_DAT_000799a4 + -0x6bc0);\n                      pppppppcVar33 = pppppppcVar28;\n                      while( true ) {\n                        pppppppcVar28 = (code *******)((int)unaff_s8 + 1);\n                        param_6 = (code *******)((int)pppppppcVar28 * 4);\n                        pppppppcVar30 = param_6;\n                        (*(code *)PTR_memset_00079b00)(param_4,0);\n                        local_c0 = 0;\n                        local_bc = 0;\n                        local_b8 = 0;\n                        pppppppcVar29 = unaff_s7;\n                        local_d0 = unaff_s5;\n                        local_cc = param_4;\n                        local_c8 = pppppppcVar31;\n                        local_c4 = unaff_s8;\n                        param_5 = (code *******)(*pcVar8)(&local_b4);\n                        (*(code *)PTR_free_00079c24)(local_b8);\n                        unaff_s4 = pppppppcVar28;\n                        if (param_5 != (code *******)0x0) break;\n                        if ((*unaff_s5 != (code ******)0x0) ||\n                           (param_6 = param_6 + -1, *param_4 != (code ******)0x0)) {\n                          pppppppcVar29 = unaff_s5;\n                          pppppppcVar30 = param_4;\n                          param_5 = (code *******)FUN_000520d0(pppppppcVar42);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          if (param_5 != (code *******)0x0) goto LAB_00055acc;\n                          goto LAB_00055528;\n                        }\n                        param_6 = (code *******)((int)local_50 + (int)param_6);\n                        do {\n                          while( true ) {\n                            unaff_s8 = (code *******)((int)unaff_s8 + -1);\n                            if ((int)unaff_s8 < 0) goto LAB_00055b70;\n                            pppppppcVar29 = (code *******)param_6[-1];\n                            if (pppppppcVar29 != (code *******)0x0) break;\n                            param_6 = param_6 + -1;\n                          }\n                          param_6 = param_6 + -1;\n                        } while (((uint)pppppppcVar29[0xd] & 0x8000000) == 0);\n                        pppppppcVar31 = (code *******)(*pcVar9)(&local_b4,pppppppcVar29,unaff_s8);\n                        pppppppcVar33 = pppppppcVar28;\n                      }\n                    }\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    (*(code *)PTR_free_00079c24)(param_4);\n                    local_150 = param_5;\n                    if (param_5 == (code *******)0x1) goto LAB_00055b04;\n                  }\n                }\n                else {\n                  local_150 = (code *******)0xc;\n                  pppppppcVar33 = pppppppcVar28;\n                }\n                goto LAB_000557e4;\n              }\n              if (pppppppcVar38[0x13] != (code ******)0x0) {\n                pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                pppppppcVar30 = unaff_s8;\n                local_54 = (code *******)FUN_00049440(&local_b4);\n                goto LAB_00055c6c;\n              }\nLAB_00055c08:\n              if ((((uint)param_1[7] & 0x8000000) == 0) && ((code *******)0x1 < pppppppcVar3)) {\n                cVar23 = *(code *)(pppppppcVar38 + 0x16);\n                goto LAB_00055c20;\n              }\nLAB_00055548:\n              if (pppppppcVar3 == (code *******)0x0) goto LAB_000557e4;\n              if (pppppppcVar3 < (code *******)0x2) {\n                *param_8 = (code ******)0x0;\n                param_8[1] = (code ******)local_58;\n                goto LAB_000555ac;\n              }\n              pppppppcVar29 = param_8 + 2;\n              do {\n                pppppppcVar29[1] = (code ******)0xffffffff;\n                *pppppppcVar29 = (code ******)0xffffffff;\n                pppppppcVar29 = pppppppcVar29 + 2;\n              } while (pppppppcVar29 != param_8 + (int)pppppppcVar3 * 2);\n              *param_8 = (code ******)0x0;\n              param_8[1] = (code ******)local_58;\n              if (((uint)param_1[7] & 0x8000000) != 0) {\nLAB_000555ac:\n                pppppppcVar33 = param_8;\n                do {\n                  pppppppcVar29 = (code *******)*pppppppcVar33;\n                  if (pppppppcVar29 != (code *******)0xffffffff) {\n                    if (local_68 != '\0') {\n                      pppppppcVar34 = local_94;\n                      if (pppppppcVar29 != local_98) {\n                        pppppppcVar34 = *(code ********)(local_a8 + (int)pppppppcVar29 * 4);\n                      }\n                      *pppppppcVar33 = (code ******)pppppppcVar34;\n                      pppppppcVar29 = local_94;\n                      if (local_98 != (code *******)pppppppcVar33[1]) {\n                        pppppppcVar29 = *(code ********)(local_a8 + (int)pppppppcVar33[1] * 4);\n                      }\n                      pppppppcVar33[1] = (code ******)pppppppcVar29;\n                    }\n                    *pppppppcVar33 = (code ******)((int)local_dc + (int)*pppppppcVar33);\n                    pppppppcVar29 = (code *******)((int)local_dc + (int)pppppppcVar33[1]);\n                    pppppppcVar33[1] = (code ******)pppppppcVar29;\n                  }\n                  pppppppcVar33 = pppppppcVar33 + 2;\n                } while (pppppppcVar33 != param_8 + (int)pppppppcVar3 * 2);\n                if (0 < local_118) {\n                  pppppppcVar33 = param_8 + (int)pppppppcVar3 * 2;\n                  do {\n                    *pppppppcVar33 = (code ******)0xffffffff;\n                    pppppppcVar33[1] = (code ******)0xffffffff;\n                    pppppppcVar33 = pppppppcVar33 + 2;\n                  } while (pppppppcVar33 != param_8 + (int)param_7 * 2);\n                }\n                pppppppcVar30 = local_dc;\n                pppppppcVar33 = param_8;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar38[0x21] != (code ******)0x0) {\n                  pppppppcVar30 = (code *******)((int)pppppppcVar3 + -1);\n                  pppppppcVar34 = (code *******)0x0;\n                  pppppppcVar3 = param_8;\n                  while( true ) {\n                    pppppppcVar29 = (code *******)((int)pppppppcVar34 * 4);\n                    if (pppppppcVar30 == pppppppcVar34) break;\n                    if (*(code ********)((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) !=\n                        pppppppcVar34) {\n                      pppppppcVar3[2] =\n                           param_8[(int)((int)*(code ********)\n                                               ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1)\n                                   * 2];\n                      pppppppcVar3[3] =\n                           param_8[((int)*(code ******)\n                                          ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1) * 2 +\n                                   1];\n                    }\n                    pppppppcVar34 = (code *******)((int)pppppppcVar34 + 1);\n                    pppppppcVar3 = pppppppcVar3 + 2;\n                  }\n                }\n                goto LAB_000557e4;\n              }\n              if ((char)*(code *)(pppppppcVar38 + 0x16) < '\0') {\n                local_168 = (uint)(0 < (int)pppppppcVar38[0x13]);\n              }\n              else {\n                local_168 = 0;\n              }\n              pppppppcVar29 = &local_b4;\n              pppppppcVar30 = pppppppcVar3;\n              pppppppcVar33 = param_8;\n              local_150 = (code *******)FUN_0004f4a0(param_1);\n              if (local_150 == (code *******)0x0) goto LAB_000555ac;\n            }\n          }\n          else if (local_90 < 0x3fffffff) {\n            local_50 = (code *******)(*(code *)PTR_malloc_00079b54)((local_90 + 1) * 4);\n            if (local_50 != (code *******)0x0) goto LAB_00055a40;\n            local_150 = (code *******)0xc;\n            param_6 = pppppppcVar36;\n          }\n          else {\n            local_150 = (code *******)0xc;\n            param_6 = pppppppcVar36;\n          }\n        }\n        else {\n          unaff_s5 = (code *******)((int)ppppppcVar35 * 8);\n          if (pppppppcVar36 < (code *******)0xccccccd) {\n            unaff_s4 = (code *******)(*(code *)PTR_malloc_00079b54)((int)ppppppcVar35 * 0x28);\n            local_40 = unaff_s4;\n            local_30 = (*(code *)PTR_malloc_00079b54)(unaff_s5);\n            if ((unaff_s4 != (code *******)0x0) && (local_30 != 0)) goto LAB_000559f0;\n          }\n          local_150 = (code *******)0xc;\n          param_6 = pppppppcVar36;\n        }\nLAB_000557e4:\n        (*(code *)PTR_free_00079c24)(local_50);\n        param_1 = pppppppcVar30;\n        if (pppppppcVar38[0x13] != (code ******)0x0) {\n          FUN_0004b7e8(&local_b4);\n          (*(code *)PTR_free_00079c24)(local_30);\n          (*(code *)PTR_free_00079c24)(local_40);\n          param_1 = pppppppcVar30;\n        }\n        FUN_0004b2bc(&local_b4);\n        pppppppcStack_1a0 = param_4;\n        pppppppcStack_19c = pppppppcVar31;\n      }\n    }\n  }" if (parenthesized_expression "(param_1[2] == (code ******)0x0)" ( (binary_expression "param_1[2] == (code ******)0x0" (subscript_expression "param_1[2]" identifier [ number_literal ]) == (cast_expression "(code ******)0x0" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (compound_statement "{\n    local_150 = (code *******)0x1;\n  }" { (expression_statement "local_150 = (code *******)0x1;" (assignment_expression "local_150 = (code *******)0x1" identifier = (cast_expression "(code *******)0x1" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) }) (else_clause "else if (pppppppcVar38[9] == (code ******)0x0) {\n    local_150 = (code *******)0x1;\n  }\n  else if (pppppppcVar38[10] == (code ******)0x0) {\n    local_150 = (code *******)0x1;\n  }\n  else if (pppppppcVar38[0xb] == (code ******)0x0) {\n    local_150 = (code *******)0x1;\n  }\n  else {\n    pppppppcVar29 = (code *******)pppppppcVar38[0xc];\n    if (pppppppcVar29 == (code *******)0x0) {\n      local_150 = (code *******)0x1;\n    }\n    else {\n      pppppppcVar3 = param_5;\n      if ((((pppppppcVar38[9][2] == (code *****)0x0) && (pppppppcVar38[10][2] == (code *****)0x0))\n          && ((pppppppcVar38[0xb][2] == (code *****)0x0 || (((uint)param_1[7] & 0x1000000) == 0))))\n         && ((pppppppcVar3 = param_4, param_4 != (code *******)0x0 &&\n             (param_4 = param_5, pppppppcVar3 = param_5, param_5 != (code *******)0x0)))) {\n        local_150 = (code *******)0x1;\n        pppppppcStack_1a0 = param_5;\n      }\n      else {\n        param_5 = pppppppcVar3;\n        pppppppcVar3 = (code *******)((int)param_7 - local_118);\n        if (pppppppcVar3 == (code *******)0x0) {\n          pppppppcVar34 = (code *******)(uint)(pppppppcVar38[0x13] != (code ******)0x0);\n        }\n        else {\n          pppppppcVar34 = (code *******)0x1;\n        }\n        ppppppcVar32 = param_1[5];\n        local_6c = (byte)((uint)((int)param_1[3] << 9) >> 0x1f);\n        local_64 = (code *******)pppppppcVar38[0x17];\n        pppppppcVar31 = (code *******)((int)pppppppcVar38[2] + 1);\n        if ((int)pppppppcVar38[2] + 1 < (int)local_64) {\n          pppppppcVar31 = local_64;\n        }\n        pppppppcVar30 = (code *******)(uint)((int)param_3 + 1 < (int)pppppppcVar31);\n        pppppppcVar33 = (code *******)0x1;\n        local_69 = local_6c;\n        if (ppppppcVar32 != (code ******)0x0) {\n          local_69 = 1;\n        }\n        local_6b = (byte)((uint)((int)pppppppcVar38[0x16] << 2) >> 0x1f);\n        local_6a = (byte)((uint)((int)pppppppcVar38[0x16] << 3) >> 0x1f);\n        pppppppcVar29 = (code *******)((int)param_3 + 1);\n        if (pppppppcVar30 == (code *******)0x0) {\n          pppppppcVar29 = pppppppcVar31;\n        }\n        local_b4 = param_2;\n        local_88 = param_3;\n        local_84 = param_3;\n        local_80 = param_3;\n        local_7c = param_3;\n        local_74 = ppppppcVar32;\n        local_150 = (code *******)FUN_00046d2c(&local_b4);\n        pppppppcVar31 = pppppppcVar34;\n        param_6 = param_6;\n        if (local_150 != (code *******)0x0) goto LAB_000557e4;\n        local_70 = pppppppcVar38 + 0x18;\n        local_66 = (byte)((uint)((int)pppppppcVar38[0x16] << 4) >> 0x1f);\n        pppppppcVar2 = (code *******)0x0;\n        local_98 = pppppppcVar2;\n        if ((local_69 == 0) && (local_b0 = param_2, (int)pppppppcVar38[0x17] < 2)) {\n          local_98 = param_3;\n        }\n        local_7c = param_6;\n        local_80 = param_6;\n        local_67 = (byte)((uint)((int)param_1[7] << 7) >> 0x1f);\n        ppppppcVar35 = pppppppcVar38[0x13];\n        pppppppcVar36 = (code *******)((int)ppppppcVar35 * 2);\n        local_5c = param_9;\n        local_58 = (code *******)0xffffffff;\n        local_94 = local_98;\n        if ((int)pppppppcVar36 < 1) {\nLAB_000559f0:\n          local_3c = 1;\n          local_44 = pppppppcVar36;\n          local_34 = pppppppcVar36;\n          if ((pppppppcVar3 < (code *******)0x2) && (((uint)pppppppcVar38[0x16] & 0x40000000) == 0))\n          {\n            local_50 = (code *******)0x0;\nLAB_00055a40:\n            local_78 = 6;\n            if (((uint)param_9 & 1) != 0) {\n              local_78 = 4;\n            }\n            pppppppcVar24 = (code *******)0x1;\n            pppppppcVar25 = param_4;\n            if ((int)param_5 < (int)param_4) {\n              pppppppcVar24 = (code *******)0xffffffff;\n              pppppppcVar25 = param_5;\n            }\n            pppppppcVar26 = param_5;\n            if ((int)param_5 <= (int)param_4) {\n              pppppppcVar26 = param_4;\n            }\n            ppppppcVar35 = pppppppcVar38[0x17];\n            uVar16 = 8;\n            if (local_148 != (code *******)0x0) {\n              if (ppppppcVar35 == (code ******)0x1) {\n                pppppppcVar28 = (code *******)0x4;\n              }\n              else {\n                pppppppcVar28 = pppppppcVar2;\n                if ((-1 < (int)param_1[3] << 9) && (ppppppcVar32 == (code ******)0x0)) {\n                  pppppppcVar28 = (code *******)0x4;\n                }\n              }\n              pppppppcVar29 = (code *******)0x0;\n              if ((int)param_4 <= (int)param_5) {\n                pppppppcVar29 = (code *******)0x2;\n              }\n              uVar16 = (uint)(ppppppcVar32 != (code ******)0x0) | (uint)pppppppcVar28 |\n                       (uint)pppppppcVar29;\n            }\n            local_dc = param_4;\n            if ((int)param_4 < (int)pppppppcVar25) {\n              local_150 = (code *******)0x1;\n              param_6 = pppppppcVar36;\n            }\n            else if ((int)pppppppcVar26 < (int)param_4) {\n              local_150 = (code *******)0x1;\n              param_4 = (code *******)(uint)((int)param_5 < (int)param_4);\n              param_6 = pppppppcVar36;\n            }\n            else {\n              pppppppcVar36 = (code *******)&local_dc;\n              if ((code *******)(uint)((int)param_5 < (int)param_4) != (code *******)0x0) {\n                pppppppcVar36 = (code *******)0x0;\n              }\n              pcVar4 = (code *)(PTR_DAT_000799a4 + -0x2b7c);\n              piVar5 = (int *)(PTR_s_nt0_000795b8 + (uVar16 - 4) * 4 + 0x6e38);\nLAB_00055b44:\n              if (uVar16 - 4 < 5) {\n                    \n                    \n                pppppppcVar29 = (code *******)(*(code *)(&_gp_1 + *piVar5))();\n                return pppppppcVar29;\n              }\n              param_5 = &local_b4;\n              pppppppcVar28 = pppppppcVar33;\n              while( true ) {\n                param_4 = local_dc;\n                pppppppcVar33 = (code *******)((int)local_dc - local_9c);\n                pppppppcVar30 = param_9;\n                pppppppcVar31 = pppppppcVar2;\n                param_6 = local_148;\n                unaff_s4 = param_3;\n                unaff_s5 = pppppppcVar24;\n                unaff_s7 = pppppppcVar26;\n                if (local_94 <= pppppppcVar33) {\n                  pppppppcVar29 = local_dc;\n                  local_150 = (code *******)(*pcVar4)(param_5);\n                  pppppppcVar33 = pppppppcVar28;\n                  if (local_150 != (code *******)0x0) goto LAB_000557e4;\n                  pppppppcVar33 = (code *******)((int)param_4 - local_9c);\n                }\n                if ((int)param_4 < (int)param_3) {\n                  uVar7 = (uint)(byte)*(code *)((int)pppppppcVar33 + (int)local_b0);\n                }\n                else {\n                  uVar7 = 0;\n                }\n                param_4 = (code *******)((int)param_4 + (int)pppppppcVar24);\n                if (*(code *)((int)local_148 + uVar7) != (code)0x0) break;\n                pppppppcVar33 = pppppppcVar28;\n                local_dc = param_4;\n                if ((int)param_4 < (int)pppppppcVar25) {\n                  local_150 = (code *******)0x1;\n                  goto LAB_000557e4;\n                }\n                if ((code *******)(uint)((int)pppppppcVar26 < (int)param_4) != (code *******)0x0) {\n                  local_150 = (code *******)0x1;\n                  param_4 = (code *******)(uint)((int)pppppppcVar26 < (int)param_4);\n                  goto LAB_000557e4;\n                }\n              }\n              while( true ) {\n                pppppppcVar29 = local_dc;\n                pppppppcVar30 = param_9;\n                pppppppcVar6 = (code *******)(*pcVar4)(&local_b4);\n                pppppppcVar14 = local_60;\n                pppppppcVar42 = local_8c;\n                pppppppcVar33 = pppppppcVar28;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar6 != (code *******)0x0) goto LAB_000557e4;\n                if (((ppppppcVar35 != (code ******)0x1) && (local_98 != (code *******)0x0)) &&\n                   (*local_ac == -1)) goto LAB_00055b1c;\n                local_3c = 0;\n                local_48 = 0;\n                local_4c = (code *******)0x0;\n                local_138 = local_8c;\n                local_d8 = (code *******)0x0;\n                unaff_s7 = (code *******)local_60[9];\n                pppppppcVar30 = local_5c;\n                param_4 = pppppppcVar14;\n                if (((uint)unaff_s7[0xd] & 0x1000000) == 0) break;\n                pppppppcVar29 = (code *******)((int)local_8c + -1);\n                pppppppcVar33 = (code *******)FUN_00049110(&local_b4);\n                if (((uint)pppppppcVar33 & 1) == 0) {\n                  if (pppppppcVar33 == (code *******)0x0) break;\n                  if (((uint)pppppppcVar33 & 6) == 6) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xc];\n                    goto LAB_00054d1c;\n                  }\n                  if (((uint)pppppppcVar33 & 2) != 0) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xb];\n                    goto LAB_00054d1c;\n                  }\n                  pppppppcVar28 = pppppppcVar33;\n                  if (((uint)pppppppcVar33 & 4) == 0) break;\n                  pppppppcVar30 = (code *******)unaff_s7[10];\n                  pppppppcVar29 = pppppppcVar14;\n                  unaff_s7 = (code *******)FUN_0004ae34(&local_d8);\n                  pppppppcVar28 = pppppppcVar33;\n                  if (unaff_s7 != (code *******)0x0) break;\n                  if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                }\n                else {\n                  unaff_s7 = (code *******)pppppppcVar14[10];\nLAB_00054d1c:\n                  pppppppcVar28 = (code *******)PTR_s_nt0_000795b8;\n                  if (unaff_s7 != (code *******)0x0) break;\n                }\n                pppppppcVar28 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                local_dc = (code *******)\n                           (*(code *)PTR___assert_fail_000799f8)\n                                     (PTR_s_nt0_000795b8 + 0x71a0,pppppppcVar29,0x435);\n                if (local_dc == pppppppcVar26) {\n                  if ((int)local_dc < (int)param_3) {\n                    uVar7 = (uint)(byte)*(code *)((int)local_dc + (int)param_2);\n                  }\n                  else {\n                    uVar7 = 0;\n                  }\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    uVar7 = (uint)*(byte *)((int)ppppppcVar32 + uVar7);\n                  }\n                  if (*(code *)((int)local_148 + uVar7) == (code)0x0) {\n                    local_150 = (code *******)0x1;\n                    pppppppcVar30 = param_9;\n                    pppppppcVar33 = pppppppcVar28;\n                    goto LAB_000557e4;\n                  }\n                }\n              }\n              pppppppcVar33 = pppppppcVar28;\n              bVar1 = pppppppcVar36 != (code *******)0x0;\n              if ((local_50 == (code *******)0x0) ||\n                 (local_50[(int)pppppppcVar42] = (code ******)unaff_s7,\n                 pppppppcVar14[0x13] == (code ******)0x0)) {\nLAB_00054d50:\n                if ((int)unaff_s7[0xd] << 4 < 0) {\n                  if ((((uint)unaff_s7[0xd] & 0x1000000) == 0) ||\n                     (pppppppcVar29 = unaff_s7, pppppppcVar30 = pppppppcVar42,\n                     iVar18 = FUN_00049440(&local_b4), iVar18 != 0)) {\n                    unaff_s8 = pppppppcVar42;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                  }\n                  else {\n                    pppppppcVar42 = (code *******)0xffffffff;\n                    pppppppcVar28 = (code *******)0x0;\n                  }\n                }\n                else {\n                  pppppppcVar42 = (code *******)0xffffffff;\n                  pppppppcVar28 = (code *******)0x0;\n                }\n                pcVar8 = (code *)(PTR_DAT_000799a4 + -0x7144);\n                pcVar9 = (code *)(PTR_DAT_000799a4 + -0x1980);\n                pcVar10 = (code *)(PTR_DAT_000799a4 + -0x2f9c);\n                unaff_s8 = pppppppcVar42;\n                local_144 = pppppppcVar36;\n                while( true ) {\n                  uVar44 = CONCAT44(local_98,local_84);\n                  unaff_s5 = (code *******)((int)local_8c + 1);\n                  pppppppcVar29 = local_8c;\n                  if ((int)local_7c <= (int)local_8c) break;\n                  if (((int)local_90 <= (int)unaff_s5) && ((int)local_90 < (int)local_84))\n                  goto LAB_00054e94;\n                  if ((int)local_98 <= (int)unaff_s5) {\n                    while ((int)((ulonglong)uVar44 >> 0x20) < (int)uVar44) {\nLAB_00054e94:\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 2);\n                      local_d8 = (code *******)(*pcVar8)(&local_b4);\n                      if (local_d8 == (code *******)0x0) break;\n                      pppppppcVar14 = param_4;\n                      if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                      pppppppcVar33 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                      pppppppcVar30 = (code *******)0x46c;\n                      pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                      uVar44 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0);\n                      pppppppcVar28 = pppppppcVar38;\n                    }\n                  }\n                  pppppppcVar42 = local_60;\n                  if ((int)unaff_s7[0xd] << 5 < 0) {\n                    pppppppcVar31 = pppppppcVar42;\n                    if (0 < (int)unaff_s7[2]) {\n                      pcVar11 = (code *)(PTR_DAT_000799a4 + -0x6fdc);\n                      pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6ef0);\n                      param_6 = (code *******)0x0;\n                      do {\n                        param_5 = (code *******)unaff_s7[3][(int)param_6];\n                        ppppppcVar39 = *pppppppcVar42;\n                        pppppcVar13 = ppppppcVar39[(int)param_5 * 2 + 1];\n                        if (((uint)pppppcVar13 & 0x800) != 0) {\n                          if (((uint)pppppcVar13 & 0xffc000) != 0) {\n                            pppppppcVar29 = local_8c;\n                            uVar19 = (*pcVar12)(&local_b4,local_8c,local_5c);\n                            uVar7 = (uint)((int)ppppppcVar39[(int)param_5 * 2 + 1] << 8) >> 0x16;\n                            if ((uVar7 & 4) == 0) {\n                              uVar27 = uVar19 & 1;\n                              if ((uVar7 & 8) != 0) goto joined_r0x00054f40;\n                            }\n                            else {\n                              uVar27 = uVar7 & 8;\n                              if ((uVar19 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                              if (uVar27 != 0) goto LAB_000550a4;\n                            }\n                            if ((((uVar7 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                               (((uVar7 & 0x80) != 0 &&\n                                (pppppppcVar33 = local_8c, (uVar19 & 8) == 0)))) goto LAB_000550a4;\n                          }\n                          pppppppcVar30 = &local_b4;\n                          pppppppcVar29 = param_5;\n                          pppppppcVar33 = local_8c;\n                          iVar18 = (*pcVar10)(pppppppcVar42);\n                          if (iVar18 != 0) {\n                            pppppppcVar14 = (code *******)((int)local_8c + iVar18);\n                            if (iVar18 <= local_3c) {\n                              iVar18 = local_3c;\n                            }\n                            pppppppcVar29 = pppppppcVar14;\n                            local_3c = iVar18;\n                            local_d4 = (code *******)(*pcVar11)(&local_b4);\n                            pppppppcVar15 = local_d4;\n                            if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                            pppppppcVar30 =\n                                 (code *******)\n                                 (pppppppcVar42[6] + (int)pppppppcVar42[3][(int)param_5] * 3);\n                            unaff_s4 = (code *******)((int)pppppppcVar14 * 4);\n                            param_5 = local_50 + (int)pppppppcVar14;\n                            if (*param_5 == (code ******)0x0) {\n                              local_d0 = (code *******)*pppppppcVar30;\n                              local_cc = (code *******)pppppppcVar30[1];\n                              local_c8 = (code *******)pppppppcVar30[2];\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *param_5 = ppppppcVar39;\n                            }\n                            else {\n                              pppppppcVar29 = (code *******)(*param_5)[10];\n                              local_d4 = (code *******)FUN_000484bc(&local_d0);\n                              pppppppcVar15 = local_d4;\n                              if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar15 = local_50 + (int)pppppppcVar14;\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *pppppppcVar15 = ppppppcVar39;\n                              (*(code *)PTR_free_00079c24)(local_c8);\n                            }\n                            unaff_s4 = local_50 + (int)pppppppcVar14;\n                            if ((*unaff_s4 == (code ******)0x0) &&\n                               (pppppppcVar15 = local_d4, local_d4 != (code *******)0x0))\n                            goto LAB_00055e44;\n                          }\n                        }\nLAB_000550a4:\n                        param_6 = (code *******)((int)param_6 + 1);\n                      } while ((int)param_6 < (int)unaff_s7[2]);\n                    }\n                    local_d8 = (code *******)0x0;\n                  }\n                  uVar7 = (uint)(byte)*(code *)((int)local_8c + (int)local_b0);\n                  local_8c = (code *******)((int)local_8c + 1);\n                  do {\n                    if (unaff_s7[0xb] != (code ******)0x0) {\n                      pppppppcVar30 = (code *******)unaff_s7[0xb][uVar7];\nLAB_000553a0:\n                      pppppppcVar14 = pppppppcVar30;\n                      if (local_50 != (code *******)0x0) goto LAB_000553ac;\n                      goto LAB_000553cc;\n                    }\n                    pppppppcVar31 = (code *******)unaff_s7[0xc];\n                    if (pppppppcVar31 != (code *******)0x0) {\n                      pppppppcVar29 = (code *******)((int)local_8c + -1);\n                      uVar19 = FUN_00049110(&local_b4);\n                      if ((uVar19 & 1) == 0) {\n                        pppppppcVar30 = (code *******)pppppppcVar31[uVar7];\n                      }\n                      else {\n                        pppppppcVar31 = pppppppcVar31 + uVar7 + 0x100;\n                        pppppppcVar30 = (code *******)*pppppppcVar31;\n                      }\n                      goto LAB_000553a0;\n                    }\n                    pppppppcVar29 = unaff_s7;\n                    pppppppcVar30 = local_5c;\n                    iVar18 = (*pcVar9)(local_60);\n                  } while (iVar18 != 0);\n                  local_d8 = (code *******)0xc;\n                  pppppppcVar15 = local_d8;\nLAB_00055e44:\n                  local_d8 = pppppppcVar15;\n                  param_4 = (code *******)0x0;\n                  if (local_50 == (code *******)0x0) {\n                    pppppppcVar14 = param_4;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    break;\n                  }\n                  pppppppcVar30 = (code *******)0x0;\nLAB_000553ac:\n                  pppppppcVar29 = &local_b4;\n                  pppppppcVar14 = (code *******)FUN_00053684(&local_d8);\nLAB_000553cc:\n                  param_4 = pppppppcVar14;\n                  if (pppppppcVar14 == (code *******)0x0) {\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    if ((local_50 == (code *******)0x0) ||\n                       ((pppppppcVar28 != (code *******)0x0 && (pppppppcVar34 == (code *******)0x0))\n                       )) break;\n                    param_6 = &local_b4;\n                    param_5 = (code *******)&local_d8;\n                    pppppppcVar31 = (code *******)(PTR_DAT_000799a4 + 0x3684);\n                    do {\n                      pppppppcVar15 = local_50 + (int)local_8c;\n                      pppppppcVar42 = local_8c;\n                      do {\n                        pppppppcVar42 = (code *******)((int)pppppppcVar42 + 1);\n                        pppppppcVar29 = local_4c;\n                        param_4 = pppppppcVar14;\n                        if ((int)local_4c < (int)pppppppcVar42) goto LAB_00055da8;\n                        local_8c = (code *******)((int)local_8c + 1);\n                        pppppppcVar15 = pppppppcVar15 + 1;\n                      } while (*pppppppcVar15 == (code ******)0x0);\n                      pppppppcVar30 = (code *******)0x0;\n                      pppppppcVar29 = param_6;\n                      param_4 = (code *******)(*(code *)pppppppcVar31)(param_5);\n                      if (local_d8 != (code *******)0x0) {\n                        if (param_4 == (code *******)0x0) goto LAB_00055da8;\n                        break;\n                      }\n                      pppppppcVar29 = local_4c;\n                    } while (param_4 == (code *******)0x0);\n                  }\n                  pppppppcVar15 = (code *******)((uint)unaff_s7 ^ (uint)param_4);\n                  pppppppcVar42 = unaff_s7;\n                  pppppppcVar14 = local_138;\n                  if ((bVar1) &&\n                     (pppppppcVar42 = pppppppcVar15, pppppppcVar14 = unaff_s5,\n                     pppppppcVar15 != (code *******)0x0)) {\n                    bVar1 = false;\n                    pppppppcVar14 = local_138;\n                  }\n                  local_138 = pppppppcVar14;\n                  unaff_s7 = param_4;\n                  if ((((uint)param_4[0xd] & 0x8000000) != 0) &&\n                     ((((uint)param_4[0xd] & 0x1000000) == 0 ||\n                      (pppppppcVar29 = param_4, pppppppcVar30 = local_8c,\n                      iVar18 = FUN_00049440(&local_b4), iVar18 != 0)))) {\n                    unaff_s7 = pppppppcVar42;\n                    unaff_s8 = local_8c;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                    local_144 = (code *******)0x0;\n                    unaff_s7 = param_4;\n                  }\n                }\nLAB_00055da8:\n                if (local_144 != (code *******)0x0) {\n                  *local_144 = (code ******)((int)local_138 + (int)*local_144);\n                }\n              }\n              else {\n                param_4 = unaff_s7 + 1;\n                pppppppcVar30 = (code *******)0x0;\n                pppppppcVar29 = param_4;\n                local_d8 = (code *******)FUN_00047a44(&local_b4);\n                unaff_s8 = local_d8;\n                if (local_d8 == (code *******)0x0) {\n                  if (((uint)unaff_s7[0xd] & 0x2000000) == 0) {\n                    pppppppcVar29 = param_4;\n                    bVar1 = false;\n                  }\n                  else {\n                    pppppppcVar29 = param_4;\n                    local_d8 = (code *******)FUN_00052d84(&local_b4);\n                    unaff_s8 = local_d8;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055dbc;\n                    bVar1 = false;\n                  }\n                  goto LAB_00054d50;\n                }\n              }\nLAB_00055dbc:\n              if (unaff_s8 == (code *******)0xffffffff) {\nLAB_00055b04:\n                FUN_0004b7e8(&local_b4);\nLAB_00055b1c:\n                local_dc = (code *******)((int)pppppppcVar24 + (int)local_dc);\n                if ((int)pppppppcVar25 <= (int)local_dc) goto code_r0x00055b38;\n                local_150 = (code *******)0x1;\n                goto LAB_000557e4;\n              }\n              if (unaff_s8 == (code *******)&SUB_fffffffe) {\n                local_150 = (code *******)0xc;\n                goto LAB_000557e4;\n              }\n              local_58 = unaff_s8;\n              if (((uint)param_1[7] & 0x8000000) == 0) {\n                if (pppppppcVar3 < (code *******)0x2) {\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055c08;\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                else {\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                if (pppppppcVar3 < (code *******)0x2) {\nLAB_00055c6c:\n                  pppppppcVar28 = pppppppcVar33;\n                  unaff_s4 = local_60;\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055548;\n                }\n                else {\n                  cVar23 = *(code *)(pppppppcVar38 + 0x16);\nLAB_00055c20:\n                  pppppppcVar28 = pppppppcVar33;\n                  if (-1 < (char)cVar23) goto LAB_00055c6c;\n                }\n                pppppppcVar31 = local_54;\n                pppppppcVar42 = local_60;\n                unaff_s4 = pppppppcVar42;\n                if (unaff_s8 < (code *******)0x3fffffff) {\n                  param_4 = (code *******)((int)((int)unaff_s8 + 1) * 4);\n                  unaff_s5 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                  if (unaff_s5 == (code *******)0x0) {\nLAB_00055b9c:\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    local_150 = (code *******)0xc;\n                    pppppppcVar33 = pppppppcVar28;\n                  }\n                  else {\n                    pppppppcVar29 = (code *******)&local_d0;\n                    if (pppppppcVar42[0x13] == (code ******)0x0) {\n                      local_cc = (code *******)0x0;\n                      local_c8 = pppppppcVar31;\n                      local_c0 = 0;\n                      local_bc = 0;\n                      local_b8 = 0;\n                      local_d0 = unaff_s5;\n                      local_c4 = unaff_s8;\n                      param_5 = (code *******)FUN_0005421c(&local_b4);\n                      (*(code *)PTR_free_00079c24)(local_b8);\n                      if (param_5 == (code *******)0x0) {\n                        param_4 = (code *******)*unaff_s5;\n                        if (param_4 == (code *******)0x0) {\nLAB_00055b70:\n                          (*(code *)PTR_free_00079c24)(unaff_s5);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          pppppppcVar33 = pppppppcVar28;\n                          goto LAB_00055b04;\n                        }\nLAB_00055528:\n                        (*(code *)PTR_free_00079c24)(local_50);\n                        pppppppcVar33 = pppppppcVar28;\n                        unaff_s4 = pppppppcVar42;\n                        local_58 = unaff_s8;\n                        local_54 = pppppppcVar31;\n                        local_50 = unaff_s5;\n                        goto LAB_00055548;\n                      }\nLAB_00055acc:\n                      param_4 = (code *******)0x0;\n                      pppppppcVar33 = pppppppcVar28;\n                      unaff_s4 = pppppppcVar42;\n                    }\n                    else {\n                      param_4 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                      if (param_4 == (code *******)0x0) goto LAB_00055b9c;\n                      unaff_s7 = (code *******)&local_d0;\n                      pcVar8 = (code *)(PTR_DAT_000799a4 + 0x421c);\n                      pcVar9 = (code *)(PTR_DAT_000799a4 + -0x6bc0);\n                      pppppppcVar33 = pppppppcVar28;\n                      while( true ) {\n                        pppppppcVar28 = (code *******)((int)unaff_s8 + 1);\n                        param_6 = (code *******)((int)pppppppcVar28 * 4);\n                        pppppppcVar30 = param_6;\n                        (*(code *)PTR_memset_00079b00)(param_4,0);\n                        local_c0 = 0;\n                        local_bc = 0;\n                        local_b8 = 0;\n                        pppppppcVar29 = unaff_s7;\n                        local_d0 = unaff_s5;\n                        local_cc = param_4;\n                        local_c8 = pppppppcVar31;\n                        local_c4 = unaff_s8;\n                        param_5 = (code *******)(*pcVar8)(&local_b4);\n                        (*(code *)PTR_free_00079c24)(local_b8);\n                        unaff_s4 = pppppppcVar28;\n                        if (param_5 != (code *******)0x0) break;\n                        if ((*unaff_s5 != (code ******)0x0) ||\n                           (param_6 = param_6 + -1, *param_4 != (code ******)0x0)) {\n                          pppppppcVar29 = unaff_s5;\n                          pppppppcVar30 = param_4;\n                          param_5 = (code *******)FUN_000520d0(pppppppcVar42);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          if (param_5 != (code *******)0x0) goto LAB_00055acc;\n                          goto LAB_00055528;\n                        }\n                        param_6 = (code *******)((int)local_50 + (int)param_6);\n                        do {\n                          while( true ) {\n                            unaff_s8 = (code *******)((int)unaff_s8 + -1);\n                            if ((int)unaff_s8 < 0) goto LAB_00055b70;\n                            pppppppcVar29 = (code *******)param_6[-1];\n                            if (pppppppcVar29 != (code *******)0x0) break;\n                            param_6 = param_6 + -1;\n                          }\n                          param_6 = param_6 + -1;\n                        } while (((uint)pppppppcVar29[0xd] & 0x8000000) == 0);\n                        pppppppcVar31 = (code *******)(*pcVar9)(&local_b4,pppppppcVar29,unaff_s8);\n                        pppppppcVar33 = pppppppcVar28;\n                      }\n                    }\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    (*(code *)PTR_free_00079c24)(param_4);\n                    local_150 = param_5;\n                    if (param_5 == (code *******)0x1) goto LAB_00055b04;\n                  }\n                }\n                else {\n                  local_150 = (code *******)0xc;\n                  pppppppcVar33 = pppppppcVar28;\n                }\n                goto LAB_000557e4;\n              }\n              if (pppppppcVar38[0x13] != (code ******)0x0) {\n                pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                pppppppcVar30 = unaff_s8;\n                local_54 = (code *******)FUN_00049440(&local_b4);\n                goto LAB_00055c6c;\n              }\nLAB_00055c08:\n              if ((((uint)param_1[7] & 0x8000000) == 0) && ((code *******)0x1 < pppppppcVar3)) {\n                cVar23 = *(code *)(pppppppcVar38 + 0x16);\n                goto LAB_00055c20;\n              }\nLAB_00055548:\n              if (pppppppcVar3 == (code *******)0x0) goto LAB_000557e4;\n              if (pppppppcVar3 < (code *******)0x2) {\n                *param_8 = (code ******)0x0;\n                param_8[1] = (code ******)local_58;\n                goto LAB_000555ac;\n              }\n              pppppppcVar29 = param_8 + 2;\n              do {\n                pppppppcVar29[1] = (code ******)0xffffffff;\n                *pppppppcVar29 = (code ******)0xffffffff;\n                pppppppcVar29 = pppppppcVar29 + 2;\n              } while (pppppppcVar29 != param_8 + (int)pppppppcVar3 * 2);\n              *param_8 = (code ******)0x0;\n              param_8[1] = (code ******)local_58;\n              if (((uint)param_1[7] & 0x8000000) != 0) {\nLAB_000555ac:\n                pppppppcVar33 = param_8;\n                do {\n                  pppppppcVar29 = (code *******)*pppppppcVar33;\n                  if (pppppppcVar29 != (code *******)0xffffffff) {\n                    if (local_68 != '\0') {\n                      pppppppcVar34 = local_94;\n                      if (pppppppcVar29 != local_98) {\n                        pppppppcVar34 = *(code ********)(local_a8 + (int)pppppppcVar29 * 4);\n                      }\n                      *pppppppcVar33 = (code ******)pppppppcVar34;\n                      pppppppcVar29 = local_94;\n                      if (local_98 != (code *******)pppppppcVar33[1]) {\n                        pppppppcVar29 = *(code ********)(local_a8 + (int)pppppppcVar33[1] * 4);\n                      }\n                      pppppppcVar33[1] = (code ******)pppppppcVar29;\n                    }\n                    *pppppppcVar33 = (code ******)((int)local_dc + (int)*pppppppcVar33);\n                    pppppppcVar29 = (code *******)((int)local_dc + (int)pppppppcVar33[1]);\n                    pppppppcVar33[1] = (code ******)pppppppcVar29;\n                  }\n                  pppppppcVar33 = pppppppcVar33 + 2;\n                } while (pppppppcVar33 != param_8 + (int)pppppppcVar3 * 2);\n                if (0 < local_118) {\n                  pppppppcVar33 = param_8 + (int)pppppppcVar3 * 2;\n                  do {\n                    *pppppppcVar33 = (code ******)0xffffffff;\n                    pppppppcVar33[1] = (code ******)0xffffffff;\n                    pppppppcVar33 = pppppppcVar33 + 2;\n                  } while (pppppppcVar33 != param_8 + (int)param_7 * 2);\n                }\n                pppppppcVar30 = local_dc;\n                pppppppcVar33 = param_8;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar38[0x21] != (code ******)0x0) {\n                  pppppppcVar30 = (code *******)((int)pppppppcVar3 + -1);\n                  pppppppcVar34 = (code *******)0x0;\n                  pppppppcVar3 = param_8;\n                  while( true ) {\n                    pppppppcVar29 = (code *******)((int)pppppppcVar34 * 4);\n                    if (pppppppcVar30 == pppppppcVar34) break;\n                    if (*(code ********)((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) !=\n                        pppppppcVar34) {\n                      pppppppcVar3[2] =\n                           param_8[(int)((int)*(code ********)\n                                               ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1)\n                                   * 2];\n                      pppppppcVar3[3] =\n                           param_8[((int)*(code ******)\n                                          ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1) * 2 +\n                                   1];\n                    }\n                    pppppppcVar34 = (code *******)((int)pppppppcVar34 + 1);\n                    pppppppcVar3 = pppppppcVar3 + 2;\n                  }\n                }\n                goto LAB_000557e4;\n              }\n              if ((char)*(code *)(pppppppcVar38 + 0x16) < '\0') {\n                local_168 = (uint)(0 < (int)pppppppcVar38[0x13]);\n              }\n              else {\n                local_168 = 0;\n              }\n              pppppppcVar29 = &local_b4;\n              pppppppcVar30 = pppppppcVar3;\n              pppppppcVar33 = param_8;\n              local_150 = (code *******)FUN_0004f4a0(param_1);\n              if (local_150 == (code *******)0x0) goto LAB_000555ac;\n            }\n          }\n          else if (local_90 < 0x3fffffff) {\n            local_50 = (code *******)(*(code *)PTR_malloc_00079b54)((local_90 + 1) * 4);\n            if (local_50 != (code *******)0x0) goto LAB_00055a40;\n            local_150 = (code *******)0xc;\n            param_6 = pppppppcVar36;\n          }\n          else {\n            local_150 = (code *******)0xc;\n            param_6 = pppppppcVar36;\n          }\n        }\n        else {\n          unaff_s5 = (code *******)((int)ppppppcVar35 * 8);\n          if (pppppppcVar36 < (code *******)0xccccccd) {\n            unaff_s4 = (code *******)(*(code *)PTR_malloc_00079b54)((int)ppppppcVar35 * 0x28);\n            local_40 = unaff_s4;\n            local_30 = (*(code *)PTR_malloc_00079b54)(unaff_s5);\n            if ((unaff_s4 != (code *******)0x0) && (local_30 != 0)) goto LAB_000559f0;\n          }\n          local_150 = (code *******)0xc;\n          param_6 = pppppppcVar36;\n        }\nLAB_000557e4:\n        (*(code *)PTR_free_00079c24)(local_50);\n        param_1 = pppppppcVar30;\n        if (pppppppcVar38[0x13] != (code ******)0x0) {\n          FUN_0004b7e8(&local_b4);\n          (*(code *)PTR_free_00079c24)(local_30);\n          (*(code *)PTR_free_00079c24)(local_40);\n          param_1 = pppppppcVar30;\n        }\n        FUN_0004b2bc(&local_b4);\n        pppppppcStack_1a0 = param_4;\n        pppppppcStack_19c = pppppppcVar31;\n      }\n    }\n  }" else (if_statement "if (pppppppcVar38[9] == (code ******)0x0) {\n    local_150 = (code *******)0x1;\n  }\n  else if (pppppppcVar38[10] == (code ******)0x0) {\n    local_150 = (code *******)0x1;\n  }\n  else if (pppppppcVar38[0xb] == (code ******)0x0) {\n    local_150 = (code *******)0x1;\n  }\n  else {\n    pppppppcVar29 = (code *******)pppppppcVar38[0xc];\n    if (pppppppcVar29 == (code *******)0x0) {\n      local_150 = (code *******)0x1;\n    }\n    else {\n      pppppppcVar3 = param_5;\n      if ((((pppppppcVar38[9][2] == (code *****)0x0) && (pppppppcVar38[10][2] == (code *****)0x0))\n          && ((pppppppcVar38[0xb][2] == (code *****)0x0 || (((uint)param_1[7] & 0x1000000) == 0))))\n         && ((pppppppcVar3 = param_4, param_4 != (code *******)0x0 &&\n             (param_4 = param_5, pppppppcVar3 = param_5, param_5 != (code *******)0x0)))) {\n        local_150 = (code *******)0x1;\n        pppppppcStack_1a0 = param_5;\n      }\n      else {\n        param_5 = pppppppcVar3;\n        pppppppcVar3 = (code *******)((int)param_7 - local_118);\n        if (pppppppcVar3 == (code *******)0x0) {\n          pppppppcVar34 = (code *******)(uint)(pppppppcVar38[0x13] != (code ******)0x0);\n        }\n        else {\n          pppppppcVar34 = (code *******)0x1;\n        }\n        ppppppcVar32 = param_1[5];\n        local_6c = (byte)((uint)((int)param_1[3] << 9) >> 0x1f);\n        local_64 = (code *******)pppppppcVar38[0x17];\n        pppppppcVar31 = (code *******)((int)pppppppcVar38[2] + 1);\n        if ((int)pppppppcVar38[2] + 1 < (int)local_64) {\n          pppppppcVar31 = local_64;\n        }\n        pppppppcVar30 = (code *******)(uint)((int)param_3 + 1 < (int)pppppppcVar31);\n        pppppppcVar33 = (code *******)0x1;\n        local_69 = local_6c;\n        if (ppppppcVar32 != (code ******)0x0) {\n          local_69 = 1;\n        }\n        local_6b = (byte)((uint)((int)pppppppcVar38[0x16] << 2) >> 0x1f);\n        local_6a = (byte)((uint)((int)pppppppcVar38[0x16] << 3) >> 0x1f);\n        pppppppcVar29 = (code *******)((int)param_3 + 1);\n        if (pppppppcVar30 == (code *******)0x0) {\n          pppppppcVar29 = pppppppcVar31;\n        }\n        local_b4 = param_2;\n        local_88 = param_3;\n        local_84 = param_3;\n        local_80 = param_3;\n        local_7c = param_3;\n        local_74 = ppppppcVar32;\n        local_150 = (code *******)FUN_00046d2c(&local_b4);\n        pppppppcVar31 = pppppppcVar34;\n        param_6 = param_6;\n        if (local_150 != (code *******)0x0) goto LAB_000557e4;\n        local_70 = pppppppcVar38 + 0x18;\n        local_66 = (byte)((uint)((int)pppppppcVar38[0x16] << 4) >> 0x1f);\n        pppppppcVar2 = (code *******)0x0;\n        local_98 = pppppppcVar2;\n        if ((local_69 == 0) && (local_b0 = param_2, (int)pppppppcVar38[0x17] < 2)) {\n          local_98 = param_3;\n        }\n        local_7c = param_6;\n        local_80 = param_6;\n        local_67 = (byte)((uint)((int)param_1[7] << 7) >> 0x1f);\n        ppppppcVar35 = pppppppcVar38[0x13];\n        pppppppcVar36 = (code *******)((int)ppppppcVar35 * 2);\n        local_5c = param_9;\n        local_58 = (code *******)0xffffffff;\n        local_94 = local_98;\n        if ((int)pppppppcVar36 < 1) {\nLAB_000559f0:\n          local_3c = 1;\n          local_44 = pppppppcVar36;\n          local_34 = pppppppcVar36;\n          if ((pppppppcVar3 < (code *******)0x2) && (((uint)pppppppcVar38[0x16] & 0x40000000) == 0))\n          {\n            local_50 = (code *******)0x0;\nLAB_00055a40:\n            local_78 = 6;\n            if (((uint)param_9 & 1) != 0) {\n              local_78 = 4;\n            }\n            pppppppcVar24 = (code *******)0x1;\n            pppppppcVar25 = param_4;\n            if ((int)param_5 < (int)param_4) {\n              pppppppcVar24 = (code *******)0xffffffff;\n              pppppppcVar25 = param_5;\n            }\n            pppppppcVar26 = param_5;\n            if ((int)param_5 <= (int)param_4) {\n              pppppppcVar26 = param_4;\n            }\n            ppppppcVar35 = pppppppcVar38[0x17];\n            uVar16 = 8;\n            if (local_148 != (code *******)0x0) {\n              if (ppppppcVar35 == (code ******)0x1) {\n                pppppppcVar28 = (code *******)0x4;\n              }\n              else {\n                pppppppcVar28 = pppppppcVar2;\n                if ((-1 < (int)param_1[3] << 9) && (ppppppcVar32 == (code ******)0x0)) {\n                  pppppppcVar28 = (code *******)0x4;\n                }\n              }\n              pppppppcVar29 = (code *******)0x0;\n              if ((int)param_4 <= (int)param_5) {\n                pppppppcVar29 = (code *******)0x2;\n              }\n              uVar16 = (uint)(ppppppcVar32 != (code ******)0x0) | (uint)pppppppcVar28 |\n                       (uint)pppppppcVar29;\n            }\n            local_dc = param_4;\n            if ((int)param_4 < (int)pppppppcVar25) {\n              local_150 = (code *******)0x1;\n              param_6 = pppppppcVar36;\n            }\n            else if ((int)pppppppcVar26 < (int)param_4) {\n              local_150 = (code *******)0x1;\n              param_4 = (code *******)(uint)((int)param_5 < (int)param_4);\n              param_6 = pppppppcVar36;\n            }\n            else {\n              pppppppcVar36 = (code *******)&local_dc;\n              if ((code *******)(uint)((int)param_5 < (int)param_4) != (code *******)0x0) {\n                pppppppcVar36 = (code *******)0x0;\n              }\n              pcVar4 = (code *)(PTR_DAT_000799a4 + -0x2b7c);\n              piVar5 = (int *)(PTR_s_nt0_000795b8 + (uVar16 - 4) * 4 + 0x6e38);\nLAB_00055b44:\n              if (uVar16 - 4 < 5) {\n                    \n                    \n                pppppppcVar29 = (code *******)(*(code *)(&_gp_1 + *piVar5))();\n                return pppppppcVar29;\n              }\n              param_5 = &local_b4;\n              pppppppcVar28 = pppppppcVar33;\n              while( true ) {\n                param_4 = local_dc;\n                pppppppcVar33 = (code *******)((int)local_dc - local_9c);\n                pppppppcVar30 = param_9;\n                pppppppcVar31 = pppppppcVar2;\n                param_6 = local_148;\n                unaff_s4 = param_3;\n                unaff_s5 = pppppppcVar24;\n                unaff_s7 = pppppppcVar26;\n                if (local_94 <= pppppppcVar33) {\n                  pppppppcVar29 = local_dc;\n                  local_150 = (code *******)(*pcVar4)(param_5);\n                  pppppppcVar33 = pppppppcVar28;\n                  if (local_150 != (code *******)0x0) goto LAB_000557e4;\n                  pppppppcVar33 = (code *******)((int)param_4 - local_9c);\n                }\n                if ((int)param_4 < (int)param_3) {\n                  uVar7 = (uint)(byte)*(code *)((int)pppppppcVar33 + (int)local_b0);\n                }\n                else {\n                  uVar7 = 0;\n                }\n                param_4 = (code *******)((int)param_4 + (int)pppppppcVar24);\n                if (*(code *)((int)local_148 + uVar7) != (code)0x0) break;\n                pppppppcVar33 = pppppppcVar28;\n                local_dc = param_4;\n                if ((int)param_4 < (int)pppppppcVar25) {\n                  local_150 = (code *******)0x1;\n                  goto LAB_000557e4;\n                }\n                if ((code *******)(uint)((int)pppppppcVar26 < (int)param_4) != (code *******)0x0) {\n                  local_150 = (code *******)0x1;\n                  param_4 = (code *******)(uint)((int)pppppppcVar26 < (int)param_4);\n                  goto LAB_000557e4;\n                }\n              }\n              while( true ) {\n                pppppppcVar29 = local_dc;\n                pppppppcVar30 = param_9;\n                pppppppcVar6 = (code *******)(*pcVar4)(&local_b4);\n                pppppppcVar14 = local_60;\n                pppppppcVar42 = local_8c;\n                pppppppcVar33 = pppppppcVar28;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar6 != (code *******)0x0) goto LAB_000557e4;\n                if (((ppppppcVar35 != (code ******)0x1) && (local_98 != (code *******)0x0)) &&\n                   (*local_ac == -1)) goto LAB_00055b1c;\n                local_3c = 0;\n                local_48 = 0;\n                local_4c = (code *******)0x0;\n                local_138 = local_8c;\n                local_d8 = (code *******)0x0;\n                unaff_s7 = (code *******)local_60[9];\n                pppppppcVar30 = local_5c;\n                param_4 = pppppppcVar14;\n                if (((uint)unaff_s7[0xd] & 0x1000000) == 0) break;\n                pppppppcVar29 = (code *******)((int)local_8c + -1);\n                pppppppcVar33 = (code *******)FUN_00049110(&local_b4);\n                if (((uint)pppppppcVar33 & 1) == 0) {\n                  if (pppppppcVar33 == (code *******)0x0) break;\n                  if (((uint)pppppppcVar33 & 6) == 6) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xc];\n                    goto LAB_00054d1c;\n                  }\n                  if (((uint)pppppppcVar33 & 2) != 0) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xb];\n                    goto LAB_00054d1c;\n                  }\n                  pppppppcVar28 = pppppppcVar33;\n                  if (((uint)pppppppcVar33 & 4) == 0) break;\n                  pppppppcVar30 = (code *******)unaff_s7[10];\n                  pppppppcVar29 = pppppppcVar14;\n                  unaff_s7 = (code *******)FUN_0004ae34(&local_d8);\n                  pppppppcVar28 = pppppppcVar33;\n                  if (unaff_s7 != (code *******)0x0) break;\n                  if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                }\n                else {\n                  unaff_s7 = (code *******)pppppppcVar14[10];\nLAB_00054d1c:\n                  pppppppcVar28 = (code *******)PTR_s_nt0_000795b8;\n                  if (unaff_s7 != (code *******)0x0) break;\n                }\n                pppppppcVar28 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                local_dc = (code *******)\n                           (*(code *)PTR___assert_fail_000799f8)\n                                     (PTR_s_nt0_000795b8 + 0x71a0,pppppppcVar29,0x435);\n                if (local_dc == pppppppcVar26) {\n                  if ((int)local_dc < (int)param_3) {\n                    uVar7 = (uint)(byte)*(code *)((int)local_dc + (int)param_2);\n                  }\n                  else {\n                    uVar7 = 0;\n                  }\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    uVar7 = (uint)*(byte *)((int)ppppppcVar32 + uVar7);\n                  }\n                  if (*(code *)((int)local_148 + uVar7) == (code)0x0) {\n                    local_150 = (code *******)0x1;\n                    pppppppcVar30 = param_9;\n                    pppppppcVar33 = pppppppcVar28;\n                    goto LAB_000557e4;\n                  }\n                }\n              }\n              pppppppcVar33 = pppppppcVar28;\n              bVar1 = pppppppcVar36 != (code *******)0x0;\n              if ((local_50 == (code *******)0x0) ||\n                 (local_50[(int)pppppppcVar42] = (code ******)unaff_s7,\n                 pppppppcVar14[0x13] == (code ******)0x0)) {\nLAB_00054d50:\n                if ((int)unaff_s7[0xd] << 4 < 0) {\n                  if ((((uint)unaff_s7[0xd] & 0x1000000) == 0) ||\n                     (pppppppcVar29 = unaff_s7, pppppppcVar30 = pppppppcVar42,\n                     iVar18 = FUN_00049440(&local_b4), iVar18 != 0)) {\n                    unaff_s8 = pppppppcVar42;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                  }\n                  else {\n                    pppppppcVar42 = (code *******)0xffffffff;\n                    pppppppcVar28 = (code *******)0x0;\n                  }\n                }\n                else {\n                  pppppppcVar42 = (code *******)0xffffffff;\n                  pppppppcVar28 = (code *******)0x0;\n                }\n                pcVar8 = (code *)(PTR_DAT_000799a4 + -0x7144);\n                pcVar9 = (code *)(PTR_DAT_000799a4 + -0x1980);\n                pcVar10 = (code *)(PTR_DAT_000799a4 + -0x2f9c);\n                unaff_s8 = pppppppcVar42;\n                local_144 = pppppppcVar36;\n                while( true ) {\n                  uVar44 = CONCAT44(local_98,local_84);\n                  unaff_s5 = (code *******)((int)local_8c + 1);\n                  pppppppcVar29 = local_8c;\n                  if ((int)local_7c <= (int)local_8c) break;\n                  if (((int)local_90 <= (int)unaff_s5) && ((int)local_90 < (int)local_84))\n                  goto LAB_00054e94;\n                  if ((int)local_98 <= (int)unaff_s5) {\n                    while ((int)((ulonglong)uVar44 >> 0x20) < (int)uVar44) {\nLAB_00054e94:\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 2);\n                      local_d8 = (code *******)(*pcVar8)(&local_b4);\n                      if (local_d8 == (code *******)0x0) break;\n                      pppppppcVar14 = param_4;\n                      if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                      pppppppcVar33 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                      pppppppcVar30 = (code *******)0x46c;\n                      pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                      uVar44 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0);\n                      pppppppcVar28 = pppppppcVar38;\n                    }\n                  }\n                  pppppppcVar42 = local_60;\n                  if ((int)unaff_s7[0xd] << 5 < 0) {\n                    pppppppcVar31 = pppppppcVar42;\n                    if (0 < (int)unaff_s7[2]) {\n                      pcVar11 = (code *)(PTR_DAT_000799a4 + -0x6fdc);\n                      pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6ef0);\n                      param_6 = (code *******)0x0;\n                      do {\n                        param_5 = (code *******)unaff_s7[3][(int)param_6];\n                        ppppppcVar39 = *pppppppcVar42;\n                        pppppcVar13 = ppppppcVar39[(int)param_5 * 2 + 1];\n                        if (((uint)pppppcVar13 & 0x800) != 0) {\n                          if (((uint)pppppcVar13 & 0xffc000) != 0) {\n                            pppppppcVar29 = local_8c;\n                            uVar19 = (*pcVar12)(&local_b4,local_8c,local_5c);\n                            uVar7 = (uint)((int)ppppppcVar39[(int)param_5 * 2 + 1] << 8) >> 0x16;\n                            if ((uVar7 & 4) == 0) {\n                              uVar27 = uVar19 & 1;\n                              if ((uVar7 & 8) != 0) goto joined_r0x00054f40;\n                            }\n                            else {\n                              uVar27 = uVar7 & 8;\n                              if ((uVar19 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                              if (uVar27 != 0) goto LAB_000550a4;\n                            }\n                            if ((((uVar7 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                               (((uVar7 & 0x80) != 0 &&\n                                (pppppppcVar33 = local_8c, (uVar19 & 8) == 0)))) goto LAB_000550a4;\n                          }\n                          pppppppcVar30 = &local_b4;\n                          pppppppcVar29 = param_5;\n                          pppppppcVar33 = local_8c;\n                          iVar18 = (*pcVar10)(pppppppcVar42);\n                          if (iVar18 != 0) {\n                            pppppppcVar14 = (code *******)((int)local_8c + iVar18);\n                            if (iVar18 <= local_3c) {\n                              iVar18 = local_3c;\n                            }\n                            pppppppcVar29 = pppppppcVar14;\n                            local_3c = iVar18;\n                            local_d4 = (code *******)(*pcVar11)(&local_b4);\n                            pppppppcVar15 = local_d4;\n                            if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                            pppppppcVar30 =\n                                 (code *******)\n                                 (pppppppcVar42[6] + (int)pppppppcVar42[3][(int)param_5] * 3);\n                            unaff_s4 = (code *******)((int)pppppppcVar14 * 4);\n                            param_5 = local_50 + (int)pppppppcVar14;\n                            if (*param_5 == (code ******)0x0) {\n                              local_d0 = (code *******)*pppppppcVar30;\n                              local_cc = (code *******)pppppppcVar30[1];\n                              local_c8 = (code *******)pppppppcVar30[2];\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *param_5 = ppppppcVar39;\n                            }\n                            else {\n                              pppppppcVar29 = (code *******)(*param_5)[10];\n                              local_d4 = (code *******)FUN_000484bc(&local_d0);\n                              pppppppcVar15 = local_d4;\n                              if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar15 = local_50 + (int)pppppppcVar14;\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *pppppppcVar15 = ppppppcVar39;\n                              (*(code *)PTR_free_00079c24)(local_c8);\n                            }\n                            unaff_s4 = local_50 + (int)pppppppcVar14;\n                            if ((*unaff_s4 == (code ******)0x0) &&\n                               (pppppppcVar15 = local_d4, local_d4 != (code *******)0x0))\n                            goto LAB_00055e44;\n                          }\n                        }\nLAB_000550a4:\n                        param_6 = (code *******)((int)param_6 + 1);\n                      } while ((int)param_6 < (int)unaff_s7[2]);\n                    }\n                    local_d8 = (code *******)0x0;\n                  }\n                  uVar7 = (uint)(byte)*(code *)((int)local_8c + (int)local_b0);\n                  local_8c = (code *******)((int)local_8c + 1);\n                  do {\n                    if (unaff_s7[0xb] != (code ******)0x0) {\n                      pppppppcVar30 = (code *******)unaff_s7[0xb][uVar7];\nLAB_000553a0:\n                      pppppppcVar14 = pppppppcVar30;\n                      if (local_50 != (code *******)0x0) goto LAB_000553ac;\n                      goto LAB_000553cc;\n                    }\n                    pppppppcVar31 = (code *******)unaff_s7[0xc];\n                    if (pppppppcVar31 != (code *******)0x0) {\n                      pppppppcVar29 = (code *******)((int)local_8c + -1);\n                      uVar19 = FUN_00049110(&local_b4);\n                      if ((uVar19 & 1) == 0) {\n                        pppppppcVar30 = (code *******)pppppppcVar31[uVar7];\n                      }\n                      else {\n                        pppppppcVar31 = pppppppcVar31 + uVar7 + 0x100;\n                        pppppppcVar30 = (code *******)*pppppppcVar31;\n                      }\n                      goto LAB_000553a0;\n                    }\n                    pppppppcVar29 = unaff_s7;\n                    pppppppcVar30 = local_5c;\n                    iVar18 = (*pcVar9)(local_60);\n                  } while (iVar18 != 0);\n                  local_d8 = (code *******)0xc;\n                  pppppppcVar15 = local_d8;\nLAB_00055e44:\n                  local_d8 = pppppppcVar15;\n                  param_4 = (code *******)0x0;\n                  if (local_50 == (code *******)0x0) {\n                    pppppppcVar14 = param_4;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    break;\n                  }\n                  pppppppcVar30 = (code *******)0x0;\nLAB_000553ac:\n                  pppppppcVar29 = &local_b4;\n                  pppppppcVar14 = (code *******)FUN_00053684(&local_d8);\nLAB_000553cc:\n                  param_4 = pppppppcVar14;\n                  if (pppppppcVar14 == (code *******)0x0) {\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    if ((local_50 == (code *******)0x0) ||\n                       ((pppppppcVar28 != (code *******)0x0 && (pppppppcVar34 == (code *******)0x0))\n                       )) break;\n                    param_6 = &local_b4;\n                    param_5 = (code *******)&local_d8;\n                    pppppppcVar31 = (code *******)(PTR_DAT_000799a4 + 0x3684);\n                    do {\n                      pppppppcVar15 = local_50 + (int)local_8c;\n                      pppppppcVar42 = local_8c;\n                      do {\n                        pppppppcVar42 = (code *******)((int)pppppppcVar42 + 1);\n                        pppppppcVar29 = local_4c;\n                        param_4 = pppppppcVar14;\n                        if ((int)local_4c < (int)pppppppcVar42) goto LAB_00055da8;\n                        local_8c = (code *******)((int)local_8c + 1);\n                        pppppppcVar15 = pppppppcVar15 + 1;\n                      } while (*pppppppcVar15 == (code ******)0x0);\n                      pppppppcVar30 = (code *******)0x0;\n                      pppppppcVar29 = param_6;\n                      param_4 = (code *******)(*(code *)pppppppcVar31)(param_5);\n                      if (local_d8 != (code *******)0x0) {\n                        if (param_4 == (code *******)0x0) goto LAB_00055da8;\n                        break;\n                      }\n                      pppppppcVar29 = local_4c;\n                    } while (param_4 == (code *******)0x0);\n                  }\n                  pppppppcVar15 = (code *******)((uint)unaff_s7 ^ (uint)param_4);\n                  pppppppcVar42 = unaff_s7;\n                  pppppppcVar14 = local_138;\n                  if ((bVar1) &&\n                     (pppppppcVar42 = pppppppcVar15, pppppppcVar14 = unaff_s5,\n                     pppppppcVar15 != (code *******)0x0)) {\n                    bVar1 = false;\n                    pppppppcVar14 = local_138;\n                  }\n                  local_138 = pppppppcVar14;\n                  unaff_s7 = param_4;\n                  if ((((uint)param_4[0xd] & 0x8000000) != 0) &&\n                     ((((uint)param_4[0xd] & 0x1000000) == 0 ||\n                      (pppppppcVar29 = param_4, pppppppcVar30 = local_8c,\n                      iVar18 = FUN_00049440(&local_b4), iVar18 != 0)))) {\n                    unaff_s7 = pppppppcVar42;\n                    unaff_s8 = local_8c;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                    local_144 = (code *******)0x0;\n                    unaff_s7 = param_4;\n                  }\n                }\nLAB_00055da8:\n                if (local_144 != (code *******)0x0) {\n                  *local_144 = (code ******)((int)local_138 + (int)*local_144);\n                }\n              }\n              else {\n                param_4 = unaff_s7 + 1;\n                pppppppcVar30 = (code *******)0x0;\n                pppppppcVar29 = param_4;\n                local_d8 = (code *******)FUN_00047a44(&local_b4);\n                unaff_s8 = local_d8;\n                if (local_d8 == (code *******)0x0) {\n                  if (((uint)unaff_s7[0xd] & 0x2000000) == 0) {\n                    pppppppcVar29 = param_4;\n                    bVar1 = false;\n                  }\n                  else {\n                    pppppppcVar29 = param_4;\n                    local_d8 = (code *******)FUN_00052d84(&local_b4);\n                    unaff_s8 = local_d8;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055dbc;\n                    bVar1 = false;\n                  }\n                  goto LAB_00054d50;\n                }\n              }\nLAB_00055dbc:\n              if (unaff_s8 == (code *******)0xffffffff) {\nLAB_00055b04:\n                FUN_0004b7e8(&local_b4);\nLAB_00055b1c:\n                local_dc = (code *******)((int)pppppppcVar24 + (int)local_dc);\n                if ((int)pppppppcVar25 <= (int)local_dc) goto code_r0x00055b38;\n                local_150 = (code *******)0x1;\n                goto LAB_000557e4;\n              }\n              if (unaff_s8 == (code *******)&SUB_fffffffe) {\n                local_150 = (code *******)0xc;\n                goto LAB_000557e4;\n              }\n              local_58 = unaff_s8;\n              if (((uint)param_1[7] & 0x8000000) == 0) {\n                if (pppppppcVar3 < (code *******)0x2) {\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055c08;\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                else {\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                if (pppppppcVar3 < (code *******)0x2) {\nLAB_00055c6c:\n                  pppppppcVar28 = pppppppcVar33;\n                  unaff_s4 = local_60;\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055548;\n                }\n                else {\n                  cVar23 = *(code *)(pppppppcVar38 + 0x16);\nLAB_00055c20:\n                  pppppppcVar28 = pppppppcVar33;\n                  if (-1 < (char)cVar23) goto LAB_00055c6c;\n                }\n                pppppppcVar31 = local_54;\n                pppppppcVar42 = local_60;\n                unaff_s4 = pppppppcVar42;\n                if (unaff_s8 < (code *******)0x3fffffff) {\n                  param_4 = (code *******)((int)((int)unaff_s8 + 1) * 4);\n                  unaff_s5 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                  if (unaff_s5 == (code *******)0x0) {\nLAB_00055b9c:\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    local_150 = (code *******)0xc;\n                    pppppppcVar33 = pppppppcVar28;\n                  }\n                  else {\n                    pppppppcVar29 = (code *******)&local_d0;\n                    if (pppppppcVar42[0x13] == (code ******)0x0) {\n                      local_cc = (code *******)0x0;\n                      local_c8 = pppppppcVar31;\n                      local_c0 = 0;\n                      local_bc = 0;\n                      local_b8 = 0;\n                      local_d0 = unaff_s5;\n                      local_c4 = unaff_s8;\n                      param_5 = (code *******)FUN_0005421c(&local_b4);\n                      (*(code *)PTR_free_00079c24)(local_b8);\n                      if (param_5 == (code *******)0x0) {\n                        param_4 = (code *******)*unaff_s5;\n                        if (param_4 == (code *******)0x0) {\nLAB_00055b70:\n                          (*(code *)PTR_free_00079c24)(unaff_s5);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          pppppppcVar33 = pppppppcVar28;\n                          goto LAB_00055b04;\n                        }\nLAB_00055528:\n                        (*(code *)PTR_free_00079c24)(local_50);\n                        pppppppcVar33 = pppppppcVar28;\n                        unaff_s4 = pppppppcVar42;\n                        local_58 = unaff_s8;\n                        local_54 = pppppppcVar31;\n                        local_50 = unaff_s5;\n                        goto LAB_00055548;\n                      }\nLAB_00055acc:\n                      param_4 = (code *******)0x0;\n                      pppppppcVar33 = pppppppcVar28;\n                      unaff_s4 = pppppppcVar42;\n                    }\n                    else {\n                      param_4 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                      if (param_4 == (code *******)0x0) goto LAB_00055b9c;\n                      unaff_s7 = (code *******)&local_d0;\n                      pcVar8 = (code *)(PTR_DAT_000799a4 + 0x421c);\n                      pcVar9 = (code *)(PTR_DAT_000799a4 + -0x6bc0);\n                      pppppppcVar33 = pppppppcVar28;\n                      while( true ) {\n                        pppppppcVar28 = (code *******)((int)unaff_s8 + 1);\n                        param_6 = (code *******)((int)pppppppcVar28 * 4);\n                        pppppppcVar30 = param_6;\n                        (*(code *)PTR_memset_00079b00)(param_4,0);\n                        local_c0 = 0;\n                        local_bc = 0;\n                        local_b8 = 0;\n                        pppppppcVar29 = unaff_s7;\n                        local_d0 = unaff_s5;\n                        local_cc = param_4;\n                        local_c8 = pppppppcVar31;\n                        local_c4 = unaff_s8;\n                        param_5 = (code *******)(*pcVar8)(&local_b4);\n                        (*(code *)PTR_free_00079c24)(local_b8);\n                        unaff_s4 = pppppppcVar28;\n                        if (param_5 != (code *******)0x0) break;\n                        if ((*unaff_s5 != (code ******)0x0) ||\n                           (param_6 = param_6 + -1, *param_4 != (code ******)0x0)) {\n                          pppppppcVar29 = unaff_s5;\n                          pppppppcVar30 = param_4;\n                          param_5 = (code *******)FUN_000520d0(pppppppcVar42);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          if (param_5 != (code *******)0x0) goto LAB_00055acc;\n                          goto LAB_00055528;\n                        }\n                        param_6 = (code *******)((int)local_50 + (int)param_6);\n                        do {\n                          while( true ) {\n                            unaff_s8 = (code *******)((int)unaff_s8 + -1);\n                            if ((int)unaff_s8 < 0) goto LAB_00055b70;\n                            pppppppcVar29 = (code *******)param_6[-1];\n                            if (pppppppcVar29 != (code *******)0x0) break;\n                            param_6 = param_6 + -1;\n                          }\n                          param_6 = param_6 + -1;\n                        } while (((uint)pppppppcVar29[0xd] & 0x8000000) == 0);\n                        pppppppcVar31 = (code *******)(*pcVar9)(&local_b4,pppppppcVar29,unaff_s8);\n                        pppppppcVar33 = pppppppcVar28;\n                      }\n                    }\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    (*(code *)PTR_free_00079c24)(param_4);\n                    local_150 = param_5;\n                    if (param_5 == (code *******)0x1) goto LAB_00055b04;\n                  }\n                }\n                else {\n                  local_150 = (code *******)0xc;\n                  pppppppcVar33 = pppppppcVar28;\n                }\n                goto LAB_000557e4;\n              }\n              if (pppppppcVar38[0x13] != (code ******)0x0) {\n                pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                pppppppcVar30 = unaff_s8;\n                local_54 = (code *******)FUN_00049440(&local_b4);\n                goto LAB_00055c6c;\n              }\nLAB_00055c08:\n              if ((((uint)param_1[7] & 0x8000000) == 0) && ((code *******)0x1 < pppppppcVar3)) {\n                cVar23 = *(code *)(pppppppcVar38 + 0x16);\n                goto LAB_00055c20;\n              }\nLAB_00055548:\n              if (pppppppcVar3 == (code *******)0x0) goto LAB_000557e4;\n              if (pppppppcVar3 < (code *******)0x2) {\n                *param_8 = (code ******)0x0;\n                param_8[1] = (code ******)local_58;\n                goto LAB_000555ac;\n              }\n              pppppppcVar29 = param_8 + 2;\n              do {\n                pppppppcVar29[1] = (code ******)0xffffffff;\n                *pppppppcVar29 = (code ******)0xffffffff;\n                pppppppcVar29 = pppppppcVar29 + 2;\n              } while (pppppppcVar29 != param_8 + (int)pppppppcVar3 * 2);\n              *param_8 = (code ******)0x0;\n              param_8[1] = (code ******)local_58;\n              if (((uint)param_1[7] & 0x8000000) != 0) {\nLAB_000555ac:\n                pppppppcVar33 = param_8;\n                do {\n                  pppppppcVar29 = (code *******)*pppppppcVar33;\n                  if (pppppppcVar29 != (code *******)0xffffffff) {\n                    if (local_68 != '\0') {\n                      pppppppcVar34 = local_94;\n                      if (pppppppcVar29 != local_98) {\n                        pppppppcVar34 = *(code ********)(local_a8 + (int)pppppppcVar29 * 4);\n                      }\n                      *pppppppcVar33 = (code ******)pppppppcVar34;\n                      pppppppcVar29 = local_94;\n                      if (local_98 != (code *******)pppppppcVar33[1]) {\n                        pppppppcVar29 = *(code ********)(local_a8 + (int)pppppppcVar33[1] * 4);\n                      }\n                      pppppppcVar33[1] = (code ******)pppppppcVar29;\n                    }\n                    *pppppppcVar33 = (code ******)((int)local_dc + (int)*pppppppcVar33);\n                    pppppppcVar29 = (code *******)((int)local_dc + (int)pppppppcVar33[1]);\n                    pppppppcVar33[1] = (code ******)pppppppcVar29;\n                  }\n                  pppppppcVar33 = pppppppcVar33 + 2;\n                } while (pppppppcVar33 != param_8 + (int)pppppppcVar3 * 2);\n                if (0 < local_118) {\n                  pppppppcVar33 = param_8 + (int)pppppppcVar3 * 2;\n                  do {\n                    *pppppppcVar33 = (code ******)0xffffffff;\n                    pppppppcVar33[1] = (code ******)0xffffffff;\n                    pppppppcVar33 = pppppppcVar33 + 2;\n                  } while (pppppppcVar33 != param_8 + (int)param_7 * 2);\n                }\n                pppppppcVar30 = local_dc;\n                pppppppcVar33 = param_8;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar38[0x21] != (code ******)0x0) {\n                  pppppppcVar30 = (code *******)((int)pppppppcVar3 + -1);\n                  pppppppcVar34 = (code *******)0x0;\n                  pppppppcVar3 = param_8;\n                  while( true ) {\n                    pppppppcVar29 = (code *******)((int)pppppppcVar34 * 4);\n                    if (pppppppcVar30 == pppppppcVar34) break;\n                    if (*(code ********)((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) !=\n                        pppppppcVar34) {\n                      pppppppcVar3[2] =\n                           param_8[(int)((int)*(code ********)\n                                               ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1)\n                                   * 2];\n                      pppppppcVar3[3] =\n                           param_8[((int)*(code ******)\n                                          ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1) * 2 +\n                                   1];\n                    }\n                    pppppppcVar34 = (code *******)((int)pppppppcVar34 + 1);\n                    pppppppcVar3 = pppppppcVar3 + 2;\n                  }\n                }\n                goto LAB_000557e4;\n              }\n              if ((char)*(code *)(pppppppcVar38 + 0x16) < '\0') {\n                local_168 = (uint)(0 < (int)pppppppcVar38[0x13]);\n              }\n              else {\n                local_168 = 0;\n              }\n              pppppppcVar29 = &local_b4;\n              pppppppcVar30 = pppppppcVar3;\n              pppppppcVar33 = param_8;\n              local_150 = (code *******)FUN_0004f4a0(param_1);\n              if (local_150 == (code *******)0x0) goto LAB_000555ac;\n            }\n          }\n          else if (local_90 < 0x3fffffff) {\n            local_50 = (code *******)(*(code *)PTR_malloc_00079b54)((local_90 + 1) * 4);\n            if (local_50 != (code *******)0x0) goto LAB_00055a40;\n            local_150 = (code *******)0xc;\n            param_6 = pppppppcVar36;\n          }\n          else {\n            local_150 = (code *******)0xc;\n            param_6 = pppppppcVar36;\n          }\n        }\n        else {\n          unaff_s5 = (code *******)((int)ppppppcVar35 * 8);\n          if (pppppppcVar36 < (code *******)0xccccccd) {\n            unaff_s4 = (code *******)(*(code *)PTR_malloc_00079b54)((int)ppppppcVar35 * 0x28);\n            local_40 = unaff_s4;\n            local_30 = (*(code *)PTR_malloc_00079b54)(unaff_s5);\n            if ((unaff_s4 != (code *******)0x0) && (local_30 != 0)) goto LAB_000559f0;\n          }\n          local_150 = (code *******)0xc;\n          param_6 = pppppppcVar36;\n        }\nLAB_000557e4:\n        (*(code *)PTR_free_00079c24)(local_50);\n        param_1 = pppppppcVar30;\n        if (pppppppcVar38[0x13] != (code ******)0x0) {\n          FUN_0004b7e8(&local_b4);\n          (*(code *)PTR_free_00079c24)(local_30);\n          (*(code *)PTR_free_00079c24)(local_40);\n          param_1 = pppppppcVar30;\n        }\n        FUN_0004b2bc(&local_b4);\n        pppppppcStack_1a0 = param_4;\n        pppppppcStack_19c = pppppppcVar31;\n      }\n    }\n  }" if (parenthesized_expression "(pppppppcVar38[9] == (code ******)0x0)" ( (binary_expression "pppppppcVar38[9] == (code ******)0x0" (subscript_expression "pppppppcVar38[9]" identifier [ number_literal ]) == (cast_expression "(code ******)0x0" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (compound_statement "{\n    local_150 = (code *******)0x1;\n  }" { (expression_statement "local_150 = (code *******)0x1;" (assignment_expression "local_150 = (code *******)0x1" identifier = (cast_expression "(code *******)0x1" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) }) (else_clause "else if (pppppppcVar38[10] == (code ******)0x0) {\n    local_150 = (code *******)0x1;\n  }\n  else if (pppppppcVar38[0xb] == (code ******)0x0) {\n    local_150 = (code *******)0x1;\n  }\n  else {\n    pppppppcVar29 = (code *******)pppppppcVar38[0xc];\n    if (pppppppcVar29 == (code *******)0x0) {\n      local_150 = (code *******)0x1;\n    }\n    else {\n      pppppppcVar3 = param_5;\n      if ((((pppppppcVar38[9][2] == (code *****)0x0) && (pppppppcVar38[10][2] == (code *****)0x0))\n          && ((pppppppcVar38[0xb][2] == (code *****)0x0 || (((uint)param_1[7] & 0x1000000) == 0))))\n         && ((pppppppcVar3 = param_4, param_4 != (code *******)0x0 &&\n             (param_4 = param_5, pppppppcVar3 = param_5, param_5 != (code *******)0x0)))) {\n        local_150 = (code *******)0x1;\n        pppppppcStack_1a0 = param_5;\n      }\n      else {\n        param_5 = pppppppcVar3;\n        pppppppcVar3 = (code *******)((int)param_7 - local_118);\n        if (pppppppcVar3 == (code *******)0x0) {\n          pppppppcVar34 = (code *******)(uint)(pppppppcVar38[0x13] != (code ******)0x0);\n        }\n        else {\n          pppppppcVar34 = (code *******)0x1;\n        }\n        ppppppcVar32 = param_1[5];\n        local_6c = (byte)((uint)((int)param_1[3] << 9) >> 0x1f);\n        local_64 = (code *******)pppppppcVar38[0x17];\n        pppppppcVar31 = (code *******)((int)pppppppcVar38[2] + 1);\n        if ((int)pppppppcVar38[2] + 1 < (int)local_64) {\n          pppppppcVar31 = local_64;\n        }\n        pppppppcVar30 = (code *******)(uint)((int)param_3 + 1 < (int)pppppppcVar31);\n        pppppppcVar33 = (code *******)0x1;\n        local_69 = local_6c;\n        if (ppppppcVar32 != (code ******)0x0) {\n          local_69 = 1;\n        }\n        local_6b = (byte)((uint)((int)pppppppcVar38[0x16] << 2) >> 0x1f);\n        local_6a = (byte)((uint)((int)pppppppcVar38[0x16] << 3) >> 0x1f);\n        pppppppcVar29 = (code *******)((int)param_3 + 1);\n        if (pppppppcVar30 == (code *******)0x0) {\n          pppppppcVar29 = pppppppcVar31;\n        }\n        local_b4 = param_2;\n        local_88 = param_3;\n        local_84 = param_3;\n        local_80 = param_3;\n        local_7c = param_3;\n        local_74 = ppppppcVar32;\n        local_150 = (code *******)FUN_00046d2c(&local_b4);\n        pppppppcVar31 = pppppppcVar34;\n        param_6 = param_6;\n        if (local_150 != (code *******)0x0) goto LAB_000557e4;\n        local_70 = pppppppcVar38 + 0x18;\n        local_66 = (byte)((uint)((int)pppppppcVar38[0x16] << 4) >> 0x1f);\n        pppppppcVar2 = (code *******)0x0;\n        local_98 = pppppppcVar2;\n        if ((local_69 == 0) && (local_b0 = param_2, (int)pppppppcVar38[0x17] < 2)) {\n          local_98 = param_3;\n        }\n        local_7c = param_6;\n        local_80 = param_6;\n        local_67 = (byte)((uint)((int)param_1[7] << 7) >> 0x1f);\n        ppppppcVar35 = pppppppcVar38[0x13];\n        pppppppcVar36 = (code *******)((int)ppppppcVar35 * 2);\n        local_5c = param_9;\n        local_58 = (code *******)0xffffffff;\n        local_94 = local_98;\n        if ((int)pppppppcVar36 < 1) {\nLAB_000559f0:\n          local_3c = 1;\n          local_44 = pppppppcVar36;\n          local_34 = pppppppcVar36;\n          if ((pppppppcVar3 < (code *******)0x2) && (((uint)pppppppcVar38[0x16] & 0x40000000) == 0))\n          {\n            local_50 = (code *******)0x0;\nLAB_00055a40:\n            local_78 = 6;\n            if (((uint)param_9 & 1) != 0) {\n              local_78 = 4;\n            }\n            pppppppcVar24 = (code *******)0x1;\n            pppppppcVar25 = param_4;\n            if ((int)param_5 < (int)param_4) {\n              pppppppcVar24 = (code *******)0xffffffff;\n              pppppppcVar25 = param_5;\n            }\n            pppppppcVar26 = param_5;\n            if ((int)param_5 <= (int)param_4) {\n              pppppppcVar26 = param_4;\n            }\n            ppppppcVar35 = pppppppcVar38[0x17];\n            uVar16 = 8;\n            if (local_148 != (code *******)0x0) {\n              if (ppppppcVar35 == (code ******)0x1) {\n                pppppppcVar28 = (code *******)0x4;\n              }\n              else {\n                pppppppcVar28 = pppppppcVar2;\n                if ((-1 < (int)param_1[3] << 9) && (ppppppcVar32 == (code ******)0x0)) {\n                  pppppppcVar28 = (code *******)0x4;\n                }\n              }\n              pppppppcVar29 = (code *******)0x0;\n              if ((int)param_4 <= (int)param_5) {\n                pppppppcVar29 = (code *******)0x2;\n              }\n              uVar16 = (uint)(ppppppcVar32 != (code ******)0x0) | (uint)pppppppcVar28 |\n                       (uint)pppppppcVar29;\n            }\n            local_dc = param_4;\n            if ((int)param_4 < (int)pppppppcVar25) {\n              local_150 = (code *******)0x1;\n              param_6 = pppppppcVar36;\n            }\n            else if ((int)pppppppcVar26 < (int)param_4) {\n              local_150 = (code *******)0x1;\n              param_4 = (code *******)(uint)((int)param_5 < (int)param_4);\n              param_6 = pppppppcVar36;\n            }\n            else {\n              pppppppcVar36 = (code *******)&local_dc;\n              if ((code *******)(uint)((int)param_5 < (int)param_4) != (code *******)0x0) {\n                pppppppcVar36 = (code *******)0x0;\n              }\n              pcVar4 = (code *)(PTR_DAT_000799a4 + -0x2b7c);\n              piVar5 = (int *)(PTR_s_nt0_000795b8 + (uVar16 - 4) * 4 + 0x6e38);\nLAB_00055b44:\n              if (uVar16 - 4 < 5) {\n                    \n                    \n                pppppppcVar29 = (code *******)(*(code *)(&_gp_1 + *piVar5))();\n                return pppppppcVar29;\n              }\n              param_5 = &local_b4;\n              pppppppcVar28 = pppppppcVar33;\n              while( true ) {\n                param_4 = local_dc;\n                pppppppcVar33 = (code *******)((int)local_dc - local_9c);\n                pppppppcVar30 = param_9;\n                pppppppcVar31 = pppppppcVar2;\n                param_6 = local_148;\n                unaff_s4 = param_3;\n                unaff_s5 = pppppppcVar24;\n                unaff_s7 = pppppppcVar26;\n                if (local_94 <= pppppppcVar33) {\n                  pppppppcVar29 = local_dc;\n                  local_150 = (code *******)(*pcVar4)(param_5);\n                  pppppppcVar33 = pppppppcVar28;\n                  if (local_150 != (code *******)0x0) goto LAB_000557e4;\n                  pppppppcVar33 = (code *******)((int)param_4 - local_9c);\n                }\n                if ((int)param_4 < (int)param_3) {\n                  uVar7 = (uint)(byte)*(code *)((int)pppppppcVar33 + (int)local_b0);\n                }\n                else {\n                  uVar7 = 0;\n                }\n                param_4 = (code *******)((int)param_4 + (int)pppppppcVar24);\n                if (*(code *)((int)local_148 + uVar7) != (code)0x0) break;\n                pppppppcVar33 = pppppppcVar28;\n                local_dc = param_4;\n                if ((int)param_4 < (int)pppppppcVar25) {\n                  local_150 = (code *******)0x1;\n                  goto LAB_000557e4;\n                }\n                if ((code *******)(uint)((int)pppppppcVar26 < (int)param_4) != (code *******)0x0) {\n                  local_150 = (code *******)0x1;\n                  param_4 = (code *******)(uint)((int)pppppppcVar26 < (int)param_4);\n                  goto LAB_000557e4;\n                }\n              }\n              while( true ) {\n                pppppppcVar29 = local_dc;\n                pppppppcVar30 = param_9;\n                pppppppcVar6 = (code *******)(*pcVar4)(&local_b4);\n                pppppppcVar14 = local_60;\n                pppppppcVar42 = local_8c;\n                pppppppcVar33 = pppppppcVar28;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar6 != (code *******)0x0) goto LAB_000557e4;\n                if (((ppppppcVar35 != (code ******)0x1) && (local_98 != (code *******)0x0)) &&\n                   (*local_ac == -1)) goto LAB_00055b1c;\n                local_3c = 0;\n                local_48 = 0;\n                local_4c = (code *******)0x0;\n                local_138 = local_8c;\n                local_d8 = (code *******)0x0;\n                unaff_s7 = (code *******)local_60[9];\n                pppppppcVar30 = local_5c;\n                param_4 = pppppppcVar14;\n                if (((uint)unaff_s7[0xd] & 0x1000000) == 0) break;\n                pppppppcVar29 = (code *******)((int)local_8c + -1);\n                pppppppcVar33 = (code *******)FUN_00049110(&local_b4);\n                if (((uint)pppppppcVar33 & 1) == 0) {\n                  if (pppppppcVar33 == (code *******)0x0) break;\n                  if (((uint)pppppppcVar33 & 6) == 6) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xc];\n                    goto LAB_00054d1c;\n                  }\n                  if (((uint)pppppppcVar33 & 2) != 0) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xb];\n                    goto LAB_00054d1c;\n                  }\n                  pppppppcVar28 = pppppppcVar33;\n                  if (((uint)pppppppcVar33 & 4) == 0) break;\n                  pppppppcVar30 = (code *******)unaff_s7[10];\n                  pppppppcVar29 = pppppppcVar14;\n                  unaff_s7 = (code *******)FUN_0004ae34(&local_d8);\n                  pppppppcVar28 = pppppppcVar33;\n                  if (unaff_s7 != (code *******)0x0) break;\n                  if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                }\n                else {\n                  unaff_s7 = (code *******)pppppppcVar14[10];\nLAB_00054d1c:\n                  pppppppcVar28 = (code *******)PTR_s_nt0_000795b8;\n                  if (unaff_s7 != (code *******)0x0) break;\n                }\n                pppppppcVar28 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                local_dc = (code *******)\n                           (*(code *)PTR___assert_fail_000799f8)\n                                     (PTR_s_nt0_000795b8 + 0x71a0,pppppppcVar29,0x435);\n                if (local_dc == pppppppcVar26) {\n                  if ((int)local_dc < (int)param_3) {\n                    uVar7 = (uint)(byte)*(code *)((int)local_dc + (int)param_2);\n                  }\n                  else {\n                    uVar7 = 0;\n                  }\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    uVar7 = (uint)*(byte *)((int)ppppppcVar32 + uVar7);\n                  }\n                  if (*(code *)((int)local_148 + uVar7) == (code)0x0) {\n                    local_150 = (code *******)0x1;\n                    pppppppcVar30 = param_9;\n                    pppppppcVar33 = pppppppcVar28;\n                    goto LAB_000557e4;\n                  }\n                }\n              }\n              pppppppcVar33 = pppppppcVar28;\n              bVar1 = pppppppcVar36 != (code *******)0x0;\n              if ((local_50 == (code *******)0x0) ||\n                 (local_50[(int)pppppppcVar42] = (code ******)unaff_s7,\n                 pppppppcVar14[0x13] == (code ******)0x0)) {\nLAB_00054d50:\n                if ((int)unaff_s7[0xd] << 4 < 0) {\n                  if ((((uint)unaff_s7[0xd] & 0x1000000) == 0) ||\n                     (pppppppcVar29 = unaff_s7, pppppppcVar30 = pppppppcVar42,\n                     iVar18 = FUN_00049440(&local_b4), iVar18 != 0)) {\n                    unaff_s8 = pppppppcVar42;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                  }\n                  else {\n                    pppppppcVar42 = (code *******)0xffffffff;\n                    pppppppcVar28 = (code *******)0x0;\n                  }\n                }\n                else {\n                  pppppppcVar42 = (code *******)0xffffffff;\n                  pppppppcVar28 = (code *******)0x0;\n                }\n                pcVar8 = (code *)(PTR_DAT_000799a4 + -0x7144);\n                pcVar9 = (code *)(PTR_DAT_000799a4 + -0x1980);\n                pcVar10 = (code *)(PTR_DAT_000799a4 + -0x2f9c);\n                unaff_s8 = pppppppcVar42;\n                local_144 = pppppppcVar36;\n                while( true ) {\n                  uVar44 = CONCAT44(local_98,local_84);\n                  unaff_s5 = (code *******)((int)local_8c + 1);\n                  pppppppcVar29 = local_8c;\n                  if ((int)local_7c <= (int)local_8c) break;\n                  if (((int)local_90 <= (int)unaff_s5) && ((int)local_90 < (int)local_84))\n                  goto LAB_00054e94;\n                  if ((int)local_98 <= (int)unaff_s5) {\n                    while ((int)((ulonglong)uVar44 >> 0x20) < (int)uVar44) {\nLAB_00054e94:\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 2);\n                      local_d8 = (code *******)(*pcVar8)(&local_b4);\n                      if (local_d8 == (code *******)0x0) break;\n                      pppppppcVar14 = param_4;\n                      if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                      pppppppcVar33 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                      pppppppcVar30 = (code *******)0x46c;\n                      pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                      uVar44 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0);\n                      pppppppcVar28 = pppppppcVar38;\n                    }\n                  }\n                  pppppppcVar42 = local_60;\n                  if ((int)unaff_s7[0xd] << 5 < 0) {\n                    pppppppcVar31 = pppppppcVar42;\n                    if (0 < (int)unaff_s7[2]) {\n                      pcVar11 = (code *)(PTR_DAT_000799a4 + -0x6fdc);\n                      pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6ef0);\n                      param_6 = (code *******)0x0;\n                      do {\n                        param_5 = (code *******)unaff_s7[3][(int)param_6];\n                        ppppppcVar39 = *pppppppcVar42;\n                        pppppcVar13 = ppppppcVar39[(int)param_5 * 2 + 1];\n                        if (((uint)pppppcVar13 & 0x800) != 0) {\n                          if (((uint)pppppcVar13 & 0xffc000) != 0) {\n                            pppppppcVar29 = local_8c;\n                            uVar19 = (*pcVar12)(&local_b4,local_8c,local_5c);\n                            uVar7 = (uint)((int)ppppppcVar39[(int)param_5 * 2 + 1] << 8) >> 0x16;\n                            if ((uVar7 & 4) == 0) {\n                              uVar27 = uVar19 & 1;\n                              if ((uVar7 & 8) != 0) goto joined_r0x00054f40;\n                            }\n                            else {\n                              uVar27 = uVar7 & 8;\n                              if ((uVar19 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                              if (uVar27 != 0) goto LAB_000550a4;\n                            }\n                            if ((((uVar7 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                               (((uVar7 & 0x80) != 0 &&\n                                (pppppppcVar33 = local_8c, (uVar19 & 8) == 0)))) goto LAB_000550a4;\n                          }\n                          pppppppcVar30 = &local_b4;\n                          pppppppcVar29 = param_5;\n                          pppppppcVar33 = local_8c;\n                          iVar18 = (*pcVar10)(pppppppcVar42);\n                          if (iVar18 != 0) {\n                            pppppppcVar14 = (code *******)((int)local_8c + iVar18);\n                            if (iVar18 <= local_3c) {\n                              iVar18 = local_3c;\n                            }\n                            pppppppcVar29 = pppppppcVar14;\n                            local_3c = iVar18;\n                            local_d4 = (code *******)(*pcVar11)(&local_b4);\n                            pppppppcVar15 = local_d4;\n                            if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                            pppppppcVar30 =\n                                 (code *******)\n                                 (pppppppcVar42[6] + (int)pppppppcVar42[3][(int)param_5] * 3);\n                            unaff_s4 = (code *******)((int)pppppppcVar14 * 4);\n                            param_5 = local_50 + (int)pppppppcVar14;\n                            if (*param_5 == (code ******)0x0) {\n                              local_d0 = (code *******)*pppppppcVar30;\n                              local_cc = (code *******)pppppppcVar30[1];\n                              local_c8 = (code *******)pppppppcVar30[2];\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *param_5 = ppppppcVar39;\n                            }\n                            else {\n                              pppppppcVar29 = (code *******)(*param_5)[10];\n                              local_d4 = (code *******)FUN_000484bc(&local_d0);\n                              pppppppcVar15 = local_d4;\n                              if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar15 = local_50 + (int)pppppppcVar14;\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *pppppppcVar15 = ppppppcVar39;\n                              (*(code *)PTR_free_00079c24)(local_c8);\n                            }\n                            unaff_s4 = local_50 + (int)pppppppcVar14;\n                            if ((*unaff_s4 == (code ******)0x0) &&\n                               (pppppppcVar15 = local_d4, local_d4 != (code *******)0x0))\n                            goto LAB_00055e44;\n                          }\n                        }\nLAB_000550a4:\n                        param_6 = (code *******)((int)param_6 + 1);\n                      } while ((int)param_6 < (int)unaff_s7[2]);\n                    }\n                    local_d8 = (code *******)0x0;\n                  }\n                  uVar7 = (uint)(byte)*(code *)((int)local_8c + (int)local_b0);\n                  local_8c = (code *******)((int)local_8c + 1);\n                  do {\n                    if (unaff_s7[0xb] != (code ******)0x0) {\n                      pppppppcVar30 = (code *******)unaff_s7[0xb][uVar7];\nLAB_000553a0:\n                      pppppppcVar14 = pppppppcVar30;\n                      if (local_50 != (code *******)0x0) goto LAB_000553ac;\n                      goto LAB_000553cc;\n                    }\n                    pppppppcVar31 = (code *******)unaff_s7[0xc];\n                    if (pppppppcVar31 != (code *******)0x0) {\n                      pppppppcVar29 = (code *******)((int)local_8c + -1);\n                      uVar19 = FUN_00049110(&local_b4);\n                      if ((uVar19 & 1) == 0) {\n                        pppppppcVar30 = (code *******)pppppppcVar31[uVar7];\n                      }\n                      else {\n                        pppppppcVar31 = pppppppcVar31 + uVar7 + 0x100;\n                        pppppppcVar30 = (code *******)*pppppppcVar31;\n                      }\n                      goto LAB_000553a0;\n                    }\n                    pppppppcVar29 = unaff_s7;\n                    pppppppcVar30 = local_5c;\n                    iVar18 = (*pcVar9)(local_60);\n                  } while (iVar18 != 0);\n                  local_d8 = (code *******)0xc;\n                  pppppppcVar15 = local_d8;\nLAB_00055e44:\n                  local_d8 = pppppppcVar15;\n                  param_4 = (code *******)0x0;\n                  if (local_50 == (code *******)0x0) {\n                    pppppppcVar14 = param_4;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    break;\n                  }\n                  pppppppcVar30 = (code *******)0x0;\nLAB_000553ac:\n                  pppppppcVar29 = &local_b4;\n                  pppppppcVar14 = (code *******)FUN_00053684(&local_d8);\nLAB_000553cc:\n                  param_4 = pppppppcVar14;\n                  if (pppppppcVar14 == (code *******)0x0) {\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    if ((local_50 == (code *******)0x0) ||\n                       ((pppppppcVar28 != (code *******)0x0 && (pppppppcVar34 == (code *******)0x0))\n                       )) break;\n                    param_6 = &local_b4;\n                    param_5 = (code *******)&local_d8;\n                    pppppppcVar31 = (code *******)(PTR_DAT_000799a4 + 0x3684);\n                    do {\n                      pppppppcVar15 = local_50 + (int)local_8c;\n                      pppppppcVar42 = local_8c;\n                      do {\n                        pppppppcVar42 = (code *******)((int)pppppppcVar42 + 1);\n                        pppppppcVar29 = local_4c;\n                        param_4 = pppppppcVar14;\n                        if ((int)local_4c < (int)pppppppcVar42) goto LAB_00055da8;\n                        local_8c = (code *******)((int)local_8c + 1);\n                        pppppppcVar15 = pppppppcVar15 + 1;\n                      } while (*pppppppcVar15 == (code ******)0x0);\n                      pppppppcVar30 = (code *******)0x0;\n                      pppppppcVar29 = param_6;\n                      param_4 = (code *******)(*(code *)pppppppcVar31)(param_5);\n                      if (local_d8 != (code *******)0x0) {\n                        if (param_4 == (code *******)0x0) goto LAB_00055da8;\n                        break;\n                      }\n                      pppppppcVar29 = local_4c;\n                    } while (param_4 == (code *******)0x0);\n                  }\n                  pppppppcVar15 = (code *******)((uint)unaff_s7 ^ (uint)param_4);\n                  pppppppcVar42 = unaff_s7;\n                  pppppppcVar14 = local_138;\n                  if ((bVar1) &&\n                     (pppppppcVar42 = pppppppcVar15, pppppppcVar14 = unaff_s5,\n                     pppppppcVar15 != (code *******)0x0)) {\n                    bVar1 = false;\n                    pppppppcVar14 = local_138;\n                  }\n                  local_138 = pppppppcVar14;\n                  unaff_s7 = param_4;\n                  if ((((uint)param_4[0xd] & 0x8000000) != 0) &&\n                     ((((uint)param_4[0xd] & 0x1000000) == 0 ||\n                      (pppppppcVar29 = param_4, pppppppcVar30 = local_8c,\n                      iVar18 = FUN_00049440(&local_b4), iVar18 != 0)))) {\n                    unaff_s7 = pppppppcVar42;\n                    unaff_s8 = local_8c;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                    local_144 = (code *******)0x0;\n                    unaff_s7 = param_4;\n                  }\n                }\nLAB_00055da8:\n                if (local_144 != (code *******)0x0) {\n                  *local_144 = (code ******)((int)local_138 + (int)*local_144);\n                }\n              }\n              else {\n                param_4 = unaff_s7 + 1;\n                pppppppcVar30 = (code *******)0x0;\n                pppppppcVar29 = param_4;\n                local_d8 = (code *******)FUN_00047a44(&local_b4);\n                unaff_s8 = local_d8;\n                if (local_d8 == (code *******)0x0) {\n                  if (((uint)unaff_s7[0xd] & 0x2000000) == 0) {\n                    pppppppcVar29 = param_4;\n                    bVar1 = false;\n                  }\n                  else {\n                    pppppppcVar29 = param_4;\n                    local_d8 = (code *******)FUN_00052d84(&local_b4);\n                    unaff_s8 = local_d8;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055dbc;\n                    bVar1 = false;\n                  }\n                  goto LAB_00054d50;\n                }\n              }\nLAB_00055dbc:\n              if (unaff_s8 == (code *******)0xffffffff) {\nLAB_00055b04:\n                FUN_0004b7e8(&local_b4);\nLAB_00055b1c:\n                local_dc = (code *******)((int)pppppppcVar24 + (int)local_dc);\n                if ((int)pppppppcVar25 <= (int)local_dc) goto code_r0x00055b38;\n                local_150 = (code *******)0x1;\n                goto LAB_000557e4;\n              }\n              if (unaff_s8 == (code *******)&SUB_fffffffe) {\n                local_150 = (code *******)0xc;\n                goto LAB_000557e4;\n              }\n              local_58 = unaff_s8;\n              if (((uint)param_1[7] & 0x8000000) == 0) {\n                if (pppppppcVar3 < (code *******)0x2) {\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055c08;\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                else {\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                if (pppppppcVar3 < (code *******)0x2) {\nLAB_00055c6c:\n                  pppppppcVar28 = pppppppcVar33;\n                  unaff_s4 = local_60;\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055548;\n                }\n                else {\n                  cVar23 = *(code *)(pppppppcVar38 + 0x16);\nLAB_00055c20:\n                  pppppppcVar28 = pppppppcVar33;\n                  if (-1 < (char)cVar23) goto LAB_00055c6c;\n                }\n                pppppppcVar31 = local_54;\n                pppppppcVar42 = local_60;\n                unaff_s4 = pppppppcVar42;\n                if (unaff_s8 < (code *******)0x3fffffff) {\n                  param_4 = (code *******)((int)((int)unaff_s8 + 1) * 4);\n                  unaff_s5 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                  if (unaff_s5 == (code *******)0x0) {\nLAB_00055b9c:\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    local_150 = (code *******)0xc;\n                    pppppppcVar33 = pppppppcVar28;\n                  }\n                  else {\n                    pppppppcVar29 = (code *******)&local_d0;\n                    if (pppppppcVar42[0x13] == (code ******)0x0) {\n                      local_cc = (code *******)0x0;\n                      local_c8 = pppppppcVar31;\n                      local_c0 = 0;\n                      local_bc = 0;\n                      local_b8 = 0;\n                      local_d0 = unaff_s5;\n                      local_c4 = unaff_s8;\n                      param_5 = (code *******)FUN_0005421c(&local_b4);\n                      (*(code *)PTR_free_00079c24)(local_b8);\n                      if (param_5 == (code *******)0x0) {\n                        param_4 = (code *******)*unaff_s5;\n                        if (param_4 == (code *******)0x0) {\nLAB_00055b70:\n                          (*(code *)PTR_free_00079c24)(unaff_s5);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          pppppppcVar33 = pppppppcVar28;\n                          goto LAB_00055b04;\n                        }\nLAB_00055528:\n                        (*(code *)PTR_free_00079c24)(local_50);\n                        pppppppcVar33 = pppppppcVar28;\n                        unaff_s4 = pppppppcVar42;\n                        local_58 = unaff_s8;\n                        local_54 = pppppppcVar31;\n                        local_50 = unaff_s5;\n                        goto LAB_00055548;\n                      }\nLAB_00055acc:\n                      param_4 = (code *******)0x0;\n                      pppppppcVar33 = pppppppcVar28;\n                      unaff_s4 = pppppppcVar42;\n                    }\n                    else {\n                      param_4 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                      if (param_4 == (code *******)0x0) goto LAB_00055b9c;\n                      unaff_s7 = (code *******)&local_d0;\n                      pcVar8 = (code *)(PTR_DAT_000799a4 + 0x421c);\n                      pcVar9 = (code *)(PTR_DAT_000799a4 + -0x6bc0);\n                      pppppppcVar33 = pppppppcVar28;\n                      while( true ) {\n                        pppppppcVar28 = (code *******)((int)unaff_s8 + 1);\n                        param_6 = (code *******)((int)pppppppcVar28 * 4);\n                        pppppppcVar30 = param_6;\n                        (*(code *)PTR_memset_00079b00)(param_4,0);\n                        local_c0 = 0;\n                        local_bc = 0;\n                        local_b8 = 0;\n                        pppppppcVar29 = unaff_s7;\n                        local_d0 = unaff_s5;\n                        local_cc = param_4;\n                        local_c8 = pppppppcVar31;\n                        local_c4 = unaff_s8;\n                        param_5 = (code *******)(*pcVar8)(&local_b4);\n                        (*(code *)PTR_free_00079c24)(local_b8);\n                        unaff_s4 = pppppppcVar28;\n                        if (param_5 != (code *******)0x0) break;\n                        if ((*unaff_s5 != (code ******)0x0) ||\n                           (param_6 = param_6 + -1, *param_4 != (code ******)0x0)) {\n                          pppppppcVar29 = unaff_s5;\n                          pppppppcVar30 = param_4;\n                          param_5 = (code *******)FUN_000520d0(pppppppcVar42);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          if (param_5 != (code *******)0x0) goto LAB_00055acc;\n                          goto LAB_00055528;\n                        }\n                        param_6 = (code *******)((int)local_50 + (int)param_6);\n                        do {\n                          while( true ) {\n                            unaff_s8 = (code *******)((int)unaff_s8 + -1);\n                            if ((int)unaff_s8 < 0) goto LAB_00055b70;\n                            pppppppcVar29 = (code *******)param_6[-1];\n                            if (pppppppcVar29 != (code *******)0x0) break;\n                            param_6 = param_6 + -1;\n                          }\n                          param_6 = param_6 + -1;\n                        } while (((uint)pppppppcVar29[0xd] & 0x8000000) == 0);\n                        pppppppcVar31 = (code *******)(*pcVar9)(&local_b4,pppppppcVar29,unaff_s8);\n                        pppppppcVar33 = pppppppcVar28;\n                      }\n                    }\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    (*(code *)PTR_free_00079c24)(param_4);\n                    local_150 = param_5;\n                    if (param_5 == (code *******)0x1) goto LAB_00055b04;\n                  }\n                }\n                else {\n                  local_150 = (code *******)0xc;\n                  pppppppcVar33 = pppppppcVar28;\n                }\n                goto LAB_000557e4;\n              }\n              if (pppppppcVar38[0x13] != (code ******)0x0) {\n                pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                pppppppcVar30 = unaff_s8;\n                local_54 = (code *******)FUN_00049440(&local_b4);\n                goto LAB_00055c6c;\n              }\nLAB_00055c08:\n              if ((((uint)param_1[7] & 0x8000000) == 0) && ((code *******)0x1 < pppppppcVar3)) {\n                cVar23 = *(code *)(pppppppcVar38 + 0x16);\n                goto LAB_00055c20;\n              }\nLAB_00055548:\n              if (pppppppcVar3 == (code *******)0x0) goto LAB_000557e4;\n              if (pppppppcVar3 < (code *******)0x2) {\n                *param_8 = (code ******)0x0;\n                param_8[1] = (code ******)local_58;\n                goto LAB_000555ac;\n              }\n              pppppppcVar29 = param_8 + 2;\n              do {\n                pppppppcVar29[1] = (code ******)0xffffffff;\n                *pppppppcVar29 = (code ******)0xffffffff;\n                pppppppcVar29 = pppppppcVar29 + 2;\n              } while (pppppppcVar29 != param_8 + (int)pppppppcVar3 * 2);\n              *param_8 = (code ******)0x0;\n              param_8[1] = (code ******)local_58;\n              if (((uint)param_1[7] & 0x8000000) != 0) {\nLAB_000555ac:\n                pppppppcVar33 = param_8;\n                do {\n                  pppppppcVar29 = (code *******)*pppppppcVar33;\n                  if (pppppppcVar29 != (code *******)0xffffffff) {\n                    if (local_68 != '\0') {\n                      pppppppcVar34 = local_94;\n                      if (pppppppcVar29 != local_98) {\n                        pppppppcVar34 = *(code ********)(local_a8 + (int)pppppppcVar29 * 4);\n                      }\n                      *pppppppcVar33 = (code ******)pppppppcVar34;\n                      pppppppcVar29 = local_94;\n                      if (local_98 != (code *******)pppppppcVar33[1]) {\n                        pppppppcVar29 = *(code ********)(local_a8 + (int)pppppppcVar33[1] * 4);\n                      }\n                      pppppppcVar33[1] = (code ******)pppppppcVar29;\n                    }\n                    *pppppppcVar33 = (code ******)((int)local_dc + (int)*pppppppcVar33);\n                    pppppppcVar29 = (code *******)((int)local_dc + (int)pppppppcVar33[1]);\n                    pppppppcVar33[1] = (code ******)pppppppcVar29;\n                  }\n                  pppppppcVar33 = pppppppcVar33 + 2;\n                } while (pppppppcVar33 != param_8 + (int)pppppppcVar3 * 2);\n                if (0 < local_118) {\n                  pppppppcVar33 = param_8 + (int)pppppppcVar3 * 2;\n                  do {\n                    *pppppppcVar33 = (code ******)0xffffffff;\n                    pppppppcVar33[1] = (code ******)0xffffffff;\n                    pppppppcVar33 = pppppppcVar33 + 2;\n                  } while (pppppppcVar33 != param_8 + (int)param_7 * 2);\n                }\n                pppppppcVar30 = local_dc;\n                pppppppcVar33 = param_8;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar38[0x21] != (code ******)0x0) {\n                  pppppppcVar30 = (code *******)((int)pppppppcVar3 + -1);\n                  pppppppcVar34 = (code *******)0x0;\n                  pppppppcVar3 = param_8;\n                  while( true ) {\n                    pppppppcVar29 = (code *******)((int)pppppppcVar34 * 4);\n                    if (pppppppcVar30 == pppppppcVar34) break;\n                    if (*(code ********)((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) !=\n                        pppppppcVar34) {\n                      pppppppcVar3[2] =\n                           param_8[(int)((int)*(code ********)\n                                               ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1)\n                                   * 2];\n                      pppppppcVar3[3] =\n                           param_8[((int)*(code ******)\n                                          ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1) * 2 +\n                                   1];\n                    }\n                    pppppppcVar34 = (code *******)((int)pppppppcVar34 + 1);\n                    pppppppcVar3 = pppppppcVar3 + 2;\n                  }\n                }\n                goto LAB_000557e4;\n              }\n              if ((char)*(code *)(pppppppcVar38 + 0x16) < '\0') {\n                local_168 = (uint)(0 < (int)pppppppcVar38[0x13]);\n              }\n              else {\n                local_168 = 0;\n              }\n              pppppppcVar29 = &local_b4;\n              pppppppcVar30 = pppppppcVar3;\n              pppppppcVar33 = param_8;\n              local_150 = (code *******)FUN_0004f4a0(param_1);\n              if (local_150 == (code *******)0x0) goto LAB_000555ac;\n            }\n          }\n          else if (local_90 < 0x3fffffff) {\n            local_50 = (code *******)(*(code *)PTR_malloc_00079b54)((local_90 + 1) * 4);\n            if (local_50 != (code *******)0x0) goto LAB_00055a40;\n            local_150 = (code *******)0xc;\n            param_6 = pppppppcVar36;\n          }\n          else {\n            local_150 = (code *******)0xc;\n            param_6 = pppppppcVar36;\n          }\n        }\n        else {\n          unaff_s5 = (code *******)((int)ppppppcVar35 * 8);\n          if (pppppppcVar36 < (code *******)0xccccccd) {\n            unaff_s4 = (code *******)(*(code *)PTR_malloc_00079b54)((int)ppppppcVar35 * 0x28);\n            local_40 = unaff_s4;\n            local_30 = (*(code *)PTR_malloc_00079b54)(unaff_s5);\n            if ((unaff_s4 != (code *******)0x0) && (local_30 != 0)) goto LAB_000559f0;\n          }\n          local_150 = (code *******)0xc;\n          param_6 = pppppppcVar36;\n        }\nLAB_000557e4:\n        (*(code *)PTR_free_00079c24)(local_50);\n        param_1 = pppppppcVar30;\n        if (pppppppcVar38[0x13] != (code ******)0x0) {\n          FUN_0004b7e8(&local_b4);\n          (*(code *)PTR_free_00079c24)(local_30);\n          (*(code *)PTR_free_00079c24)(local_40);\n          param_1 = pppppppcVar30;\n        }\n        FUN_0004b2bc(&local_b4);\n        pppppppcStack_1a0 = param_4;\n        pppppppcStack_19c = pppppppcVar31;\n      }\n    }\n  }" else (if_statement "if (pppppppcVar38[10] == (code ******)0x0) {\n    local_150 = (code *******)0x1;\n  }\n  else if (pppppppcVar38[0xb] == (code ******)0x0) {\n    local_150 = (code *******)0x1;\n  }\n  else {\n    pppppppcVar29 = (code *******)pppppppcVar38[0xc];\n    if (pppppppcVar29 == (code *******)0x0) {\n      local_150 = (code *******)0x1;\n    }\n    else {\n      pppppppcVar3 = param_5;\n      if ((((pppppppcVar38[9][2] == (code *****)0x0) && (pppppppcVar38[10][2] == (code *****)0x0))\n          && ((pppppppcVar38[0xb][2] == (code *****)0x0 || (((uint)param_1[7] & 0x1000000) == 0))))\n         && ((pppppppcVar3 = param_4, param_4 != (code *******)0x0 &&\n             (param_4 = param_5, pppppppcVar3 = param_5, param_5 != (code *******)0x0)))) {\n        local_150 = (code *******)0x1;\n        pppppppcStack_1a0 = param_5;\n      }\n      else {\n        param_5 = pppppppcVar3;\n        pppppppcVar3 = (code *******)((int)param_7 - local_118);\n        if (pppppppcVar3 == (code *******)0x0) {\n          pppppppcVar34 = (code *******)(uint)(pppppppcVar38[0x13] != (code ******)0x0);\n        }\n        else {\n          pppppppcVar34 = (code *******)0x1;\n        }\n        ppppppcVar32 = param_1[5];\n        local_6c = (byte)((uint)((int)param_1[3] << 9) >> 0x1f);\n        local_64 = (code *******)pppppppcVar38[0x17];\n        pppppppcVar31 = (code *******)((int)pppppppcVar38[2] + 1);\n        if ((int)pppppppcVar38[2] + 1 < (int)local_64) {\n          pppppppcVar31 = local_64;\n        }\n        pppppppcVar30 = (code *******)(uint)((int)param_3 + 1 < (int)pppppppcVar31);\n        pppppppcVar33 = (code *******)0x1;\n        local_69 = local_6c;\n        if (ppppppcVar32 != (code ******)0x0) {\n          local_69 = 1;\n        }\n        local_6b = (byte)((uint)((int)pppppppcVar38[0x16] << 2) >> 0x1f);\n        local_6a = (byte)((uint)((int)pppppppcVar38[0x16] << 3) >> 0x1f);\n        pppppppcVar29 = (code *******)((int)param_3 + 1);\n        if (pppppppcVar30 == (code *******)0x0) {\n          pppppppcVar29 = pppppppcVar31;\n        }\n        local_b4 = param_2;\n        local_88 = param_3;\n        local_84 = param_3;\n        local_80 = param_3;\n        local_7c = param_3;\n        local_74 = ppppppcVar32;\n        local_150 = (code *******)FUN_00046d2c(&local_b4);\n        pppppppcVar31 = pppppppcVar34;\n        param_6 = param_6;\n        if (local_150 != (code *******)0x0) goto LAB_000557e4;\n        local_70 = pppppppcVar38 + 0x18;\n        local_66 = (byte)((uint)((int)pppppppcVar38[0x16] << 4) >> 0x1f);\n        pppppppcVar2 = (code *******)0x0;\n        local_98 = pppppppcVar2;\n        if ((local_69 == 0) && (local_b0 = param_2, (int)pppppppcVar38[0x17] < 2)) {\n          local_98 = param_3;\n        }\n        local_7c = param_6;\n        local_80 = param_6;\n        local_67 = (byte)((uint)((int)param_1[7] << 7) >> 0x1f);\n        ppppppcVar35 = pppppppcVar38[0x13];\n        pppppppcVar36 = (code *******)((int)ppppppcVar35 * 2);\n        local_5c = param_9;\n        local_58 = (code *******)0xffffffff;\n        local_94 = local_98;\n        if ((int)pppppppcVar36 < 1) {\nLAB_000559f0:\n          local_3c = 1;\n          local_44 = pppppppcVar36;\n          local_34 = pppppppcVar36;\n          if ((pppppppcVar3 < (code *******)0x2) && (((uint)pppppppcVar38[0x16] & 0x40000000) == 0))\n          {\n            local_50 = (code *******)0x0;\nLAB_00055a40:\n            local_78 = 6;\n            if (((uint)param_9 & 1) != 0) {\n              local_78 = 4;\n            }\n            pppppppcVar24 = (code *******)0x1;\n            pppppppcVar25 = param_4;\n            if ((int)param_5 < (int)param_4) {\n              pppppppcVar24 = (code *******)0xffffffff;\n              pppppppcVar25 = param_5;\n            }\n            pppppppcVar26 = param_5;\n            if ((int)param_5 <= (int)param_4) {\n              pppppppcVar26 = param_4;\n            }\n            ppppppcVar35 = pppppppcVar38[0x17];\n            uVar16 = 8;\n            if (local_148 != (code *******)0x0) {\n              if (ppppppcVar35 == (code ******)0x1) {\n                pppppppcVar28 = (code *******)0x4;\n              }\n              else {\n                pppppppcVar28 = pppppppcVar2;\n                if ((-1 < (int)param_1[3] << 9) && (ppppppcVar32 == (code ******)0x0)) {\n                  pppppppcVar28 = (code *******)0x4;\n                }\n              }\n              pppppppcVar29 = (code *******)0x0;\n              if ((int)param_4 <= (int)param_5) {\n                pppppppcVar29 = (code *******)0x2;\n              }\n              uVar16 = (uint)(ppppppcVar32 != (code ******)0x0) | (uint)pppppppcVar28 |\n                       (uint)pppppppcVar29;\n            }\n            local_dc = param_4;\n            if ((int)param_4 < (int)pppppppcVar25) {\n              local_150 = (code *******)0x1;\n              param_6 = pppppppcVar36;\n            }\n            else if ((int)pppppppcVar26 < (int)param_4) {\n              local_150 = (code *******)0x1;\n              param_4 = (code *******)(uint)((int)param_5 < (int)param_4);\n              param_6 = pppppppcVar36;\n            }\n            else {\n              pppppppcVar36 = (code *******)&local_dc;\n              if ((code *******)(uint)((int)param_5 < (int)param_4) != (code *******)0x0) {\n                pppppppcVar36 = (code *******)0x0;\n              }\n              pcVar4 = (code *)(PTR_DAT_000799a4 + -0x2b7c);\n              piVar5 = (int *)(PTR_s_nt0_000795b8 + (uVar16 - 4) * 4 + 0x6e38);\nLAB_00055b44:\n              if (uVar16 - 4 < 5) {\n                    \n                    \n                pppppppcVar29 = (code *******)(*(code *)(&_gp_1 + *piVar5))();\n                return pppppppcVar29;\n              }\n              param_5 = &local_b4;\n              pppppppcVar28 = pppppppcVar33;\n              while( true ) {\n                param_4 = local_dc;\n                pppppppcVar33 = (code *******)((int)local_dc - local_9c);\n                pppppppcVar30 = param_9;\n                pppppppcVar31 = pppppppcVar2;\n                param_6 = local_148;\n                unaff_s4 = param_3;\n                unaff_s5 = pppppppcVar24;\n                unaff_s7 = pppppppcVar26;\n                if (local_94 <= pppppppcVar33) {\n                  pppppppcVar29 = local_dc;\n                  local_150 = (code *******)(*pcVar4)(param_5);\n                  pppppppcVar33 = pppppppcVar28;\n                  if (local_150 != (code *******)0x0) goto LAB_000557e4;\n                  pppppppcVar33 = (code *******)((int)param_4 - local_9c);\n                }\n                if ((int)param_4 < (int)param_3) {\n                  uVar7 = (uint)(byte)*(code *)((int)pppppppcVar33 + (int)local_b0);\n                }\n                else {\n                  uVar7 = 0;\n                }\n                param_4 = (code *******)((int)param_4 + (int)pppppppcVar24);\n                if (*(code *)((int)local_148 + uVar7) != (code)0x0) break;\n                pppppppcVar33 = pppppppcVar28;\n                local_dc = param_4;\n                if ((int)param_4 < (int)pppppppcVar25) {\n                  local_150 = (code *******)0x1;\n                  goto LAB_000557e4;\n                }\n                if ((code *******)(uint)((int)pppppppcVar26 < (int)param_4) != (code *******)0x0) {\n                  local_150 = (code *******)0x1;\n                  param_4 = (code *******)(uint)((int)pppppppcVar26 < (int)param_4);\n                  goto LAB_000557e4;\n                }\n              }\n              while( true ) {\n                pppppppcVar29 = local_dc;\n                pppppppcVar30 = param_9;\n                pppppppcVar6 = (code *******)(*pcVar4)(&local_b4);\n                pppppppcVar14 = local_60;\n                pppppppcVar42 = local_8c;\n                pppppppcVar33 = pppppppcVar28;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar6 != (code *******)0x0) goto LAB_000557e4;\n                if (((ppppppcVar35 != (code ******)0x1) && (local_98 != (code *******)0x0)) &&\n                   (*local_ac == -1)) goto LAB_00055b1c;\n                local_3c = 0;\n                local_48 = 0;\n                local_4c = (code *******)0x0;\n                local_138 = local_8c;\n                local_d8 = (code *******)0x0;\n                unaff_s7 = (code *******)local_60[9];\n                pppppppcVar30 = local_5c;\n                param_4 = pppppppcVar14;\n                if (((uint)unaff_s7[0xd] & 0x1000000) == 0) break;\n                pppppppcVar29 = (code *******)((int)local_8c + -1);\n                pppppppcVar33 = (code *******)FUN_00049110(&local_b4);\n                if (((uint)pppppppcVar33 & 1) == 0) {\n                  if (pppppppcVar33 == (code *******)0x0) break;\n                  if (((uint)pppppppcVar33 & 6) == 6) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xc];\n                    goto LAB_00054d1c;\n                  }\n                  if (((uint)pppppppcVar33 & 2) != 0) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xb];\n                    goto LAB_00054d1c;\n                  }\n                  pppppppcVar28 = pppppppcVar33;\n                  if (((uint)pppppppcVar33 & 4) == 0) break;\n                  pppppppcVar30 = (code *******)unaff_s7[10];\n                  pppppppcVar29 = pppppppcVar14;\n                  unaff_s7 = (code *******)FUN_0004ae34(&local_d8);\n                  pppppppcVar28 = pppppppcVar33;\n                  if (unaff_s7 != (code *******)0x0) break;\n                  if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                }\n                else {\n                  unaff_s7 = (code *******)pppppppcVar14[10];\nLAB_00054d1c:\n                  pppppppcVar28 = (code *******)PTR_s_nt0_000795b8;\n                  if (unaff_s7 != (code *******)0x0) break;\n                }\n                pppppppcVar28 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                local_dc = (code *******)\n                           (*(code *)PTR___assert_fail_000799f8)\n                                     (PTR_s_nt0_000795b8 + 0x71a0,pppppppcVar29,0x435);\n                if (local_dc == pppppppcVar26) {\n                  if ((int)local_dc < (int)param_3) {\n                    uVar7 = (uint)(byte)*(code *)((int)local_dc + (int)param_2);\n                  }\n                  else {\n                    uVar7 = 0;\n                  }\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    uVar7 = (uint)*(byte *)((int)ppppppcVar32 + uVar7);\n                  }\n                  if (*(code *)((int)local_148 + uVar7) == (code)0x0) {\n                    local_150 = (code *******)0x1;\n                    pppppppcVar30 = param_9;\n                    pppppppcVar33 = pppppppcVar28;\n                    goto LAB_000557e4;\n                  }\n                }\n              }\n              pppppppcVar33 = pppppppcVar28;\n              bVar1 = pppppppcVar36 != (code *******)0x0;\n              if ((local_50 == (code *******)0x0) ||\n                 (local_50[(int)pppppppcVar42] = (code ******)unaff_s7,\n                 pppppppcVar14[0x13] == (code ******)0x0)) {\nLAB_00054d50:\n                if ((int)unaff_s7[0xd] << 4 < 0) {\n                  if ((((uint)unaff_s7[0xd] & 0x1000000) == 0) ||\n                     (pppppppcVar29 = unaff_s7, pppppppcVar30 = pppppppcVar42,\n                     iVar18 = FUN_00049440(&local_b4), iVar18 != 0)) {\n                    unaff_s8 = pppppppcVar42;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                  }\n                  else {\n                    pppppppcVar42 = (code *******)0xffffffff;\n                    pppppppcVar28 = (code *******)0x0;\n                  }\n                }\n                else {\n                  pppppppcVar42 = (code *******)0xffffffff;\n                  pppppppcVar28 = (code *******)0x0;\n                }\n                pcVar8 = (code *)(PTR_DAT_000799a4 + -0x7144);\n                pcVar9 = (code *)(PTR_DAT_000799a4 + -0x1980);\n                pcVar10 = (code *)(PTR_DAT_000799a4 + -0x2f9c);\n                unaff_s8 = pppppppcVar42;\n                local_144 = pppppppcVar36;\n                while( true ) {\n                  uVar44 = CONCAT44(local_98,local_84);\n                  unaff_s5 = (code *******)((int)local_8c + 1);\n                  pppppppcVar29 = local_8c;\n                  if ((int)local_7c <= (int)local_8c) break;\n                  if (((int)local_90 <= (int)unaff_s5) && ((int)local_90 < (int)local_84))\n                  goto LAB_00054e94;\n                  if ((int)local_98 <= (int)unaff_s5) {\n                    while ((int)((ulonglong)uVar44 >> 0x20) < (int)uVar44) {\nLAB_00054e94:\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 2);\n                      local_d8 = (code *******)(*pcVar8)(&local_b4);\n                      if (local_d8 == (code *******)0x0) break;\n                      pppppppcVar14 = param_4;\n                      if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                      pppppppcVar33 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                      pppppppcVar30 = (code *******)0x46c;\n                      pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                      uVar44 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0);\n                      pppppppcVar28 = pppppppcVar38;\n                    }\n                  }\n                  pppppppcVar42 = local_60;\n                  if ((int)unaff_s7[0xd] << 5 < 0) {\n                    pppppppcVar31 = pppppppcVar42;\n                    if (0 < (int)unaff_s7[2]) {\n                      pcVar11 = (code *)(PTR_DAT_000799a4 + -0x6fdc);\n                      pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6ef0);\n                      param_6 = (code *******)0x0;\n                      do {\n                        param_5 = (code *******)unaff_s7[3][(int)param_6];\n                        ppppppcVar39 = *pppppppcVar42;\n                        pppppcVar13 = ppppppcVar39[(int)param_5 * 2 + 1];\n                        if (((uint)pppppcVar13 & 0x800) != 0) {\n                          if (((uint)pppppcVar13 & 0xffc000) != 0) {\n                            pppppppcVar29 = local_8c;\n                            uVar19 = (*pcVar12)(&local_b4,local_8c,local_5c);\n                            uVar7 = (uint)((int)ppppppcVar39[(int)param_5 * 2 + 1] << 8) >> 0x16;\n                            if ((uVar7 & 4) == 0) {\n                              uVar27 = uVar19 & 1;\n                              if ((uVar7 & 8) != 0) goto joined_r0x00054f40;\n                            }\n                            else {\n                              uVar27 = uVar7 & 8;\n                              if ((uVar19 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                              if (uVar27 != 0) goto LAB_000550a4;\n                            }\n                            if ((((uVar7 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                               (((uVar7 & 0x80) != 0 &&\n                                (pppppppcVar33 = local_8c, (uVar19 & 8) == 0)))) goto LAB_000550a4;\n                          }\n                          pppppppcVar30 = &local_b4;\n                          pppppppcVar29 = param_5;\n                          pppppppcVar33 = local_8c;\n                          iVar18 = (*pcVar10)(pppppppcVar42);\n                          if (iVar18 != 0) {\n                            pppppppcVar14 = (code *******)((int)local_8c + iVar18);\n                            if (iVar18 <= local_3c) {\n                              iVar18 = local_3c;\n                            }\n                            pppppppcVar29 = pppppppcVar14;\n                            local_3c = iVar18;\n                            local_d4 = (code *******)(*pcVar11)(&local_b4);\n                            pppppppcVar15 = local_d4;\n                            if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                            pppppppcVar30 =\n                                 (code *******)\n                                 (pppppppcVar42[6] + (int)pppppppcVar42[3][(int)param_5] * 3);\n                            unaff_s4 = (code *******)((int)pppppppcVar14 * 4);\n                            param_5 = local_50 + (int)pppppppcVar14;\n                            if (*param_5 == (code ******)0x0) {\n                              local_d0 = (code *******)*pppppppcVar30;\n                              local_cc = (code *******)pppppppcVar30[1];\n                              local_c8 = (code *******)pppppppcVar30[2];\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *param_5 = ppppppcVar39;\n                            }\n                            else {\n                              pppppppcVar29 = (code *******)(*param_5)[10];\n                              local_d4 = (code *******)FUN_000484bc(&local_d0);\n                              pppppppcVar15 = local_d4;\n                              if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar15 = local_50 + (int)pppppppcVar14;\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *pppppppcVar15 = ppppppcVar39;\n                              (*(code *)PTR_free_00079c24)(local_c8);\n                            }\n                            unaff_s4 = local_50 + (int)pppppppcVar14;\n                            if ((*unaff_s4 == (code ******)0x0) &&\n                               (pppppppcVar15 = local_d4, local_d4 != (code *******)0x0))\n                            goto LAB_00055e44;\n                          }\n                        }\nLAB_000550a4:\n                        param_6 = (code *******)((int)param_6 + 1);\n                      } while ((int)param_6 < (int)unaff_s7[2]);\n                    }\n                    local_d8 = (code *******)0x0;\n                  }\n                  uVar7 = (uint)(byte)*(code *)((int)local_8c + (int)local_b0);\n                  local_8c = (code *******)((int)local_8c + 1);\n                  do {\n                    if (unaff_s7[0xb] != (code ******)0x0) {\n                      pppppppcVar30 = (code *******)unaff_s7[0xb][uVar7];\nLAB_000553a0:\n                      pppppppcVar14 = pppppppcVar30;\n                      if (local_50 != (code *******)0x0) goto LAB_000553ac;\n                      goto LAB_000553cc;\n                    }\n                    pppppppcVar31 = (code *******)unaff_s7[0xc];\n                    if (pppppppcVar31 != (code *******)0x0) {\n                      pppppppcVar29 = (code *******)((int)local_8c + -1);\n                      uVar19 = FUN_00049110(&local_b4);\n                      if ((uVar19 & 1) == 0) {\n                        pppppppcVar30 = (code *******)pppppppcVar31[uVar7];\n                      }\n                      else {\n                        pppppppcVar31 = pppppppcVar31 + uVar7 + 0x100;\n                        pppppppcVar30 = (code *******)*pppppppcVar31;\n                      }\n                      goto LAB_000553a0;\n                    }\n                    pppppppcVar29 = unaff_s7;\n                    pppppppcVar30 = local_5c;\n                    iVar18 = (*pcVar9)(local_60);\n                  } while (iVar18 != 0);\n                  local_d8 = (code *******)0xc;\n                  pppppppcVar15 = local_d8;\nLAB_00055e44:\n                  local_d8 = pppppppcVar15;\n                  param_4 = (code *******)0x0;\n                  if (local_50 == (code *******)0x0) {\n                    pppppppcVar14 = param_4;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    break;\n                  }\n                  pppppppcVar30 = (code *******)0x0;\nLAB_000553ac:\n                  pppppppcVar29 = &local_b4;\n                  pppppppcVar14 = (code *******)FUN_00053684(&local_d8);\nLAB_000553cc:\n                  param_4 = pppppppcVar14;\n                  if (pppppppcVar14 == (code *******)0x0) {\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    if ((local_50 == (code *******)0x0) ||\n                       ((pppppppcVar28 != (code *******)0x0 && (pppppppcVar34 == (code *******)0x0))\n                       )) break;\n                    param_6 = &local_b4;\n                    param_5 = (code *******)&local_d8;\n                    pppppppcVar31 = (code *******)(PTR_DAT_000799a4 + 0x3684);\n                    do {\n                      pppppppcVar15 = local_50 + (int)local_8c;\n                      pppppppcVar42 = local_8c;\n                      do {\n                        pppppppcVar42 = (code *******)((int)pppppppcVar42 + 1);\n                        pppppppcVar29 = local_4c;\n                        param_4 = pppppppcVar14;\n                        if ((int)local_4c < (int)pppppppcVar42) goto LAB_00055da8;\n                        local_8c = (code *******)((int)local_8c + 1);\n                        pppppppcVar15 = pppppppcVar15 + 1;\n                      } while (*pppppppcVar15 == (code ******)0x0);\n                      pppppppcVar30 = (code *******)0x0;\n                      pppppppcVar29 = param_6;\n                      param_4 = (code *******)(*(code *)pppppppcVar31)(param_5);\n                      if (local_d8 != (code *******)0x0) {\n                        if (param_4 == (code *******)0x0) goto LAB_00055da8;\n                        break;\n                      }\n                      pppppppcVar29 = local_4c;\n                    } while (param_4 == (code *******)0x0);\n                  }\n                  pppppppcVar15 = (code *******)((uint)unaff_s7 ^ (uint)param_4);\n                  pppppppcVar42 = unaff_s7;\n                  pppppppcVar14 = local_138;\n                  if ((bVar1) &&\n                     (pppppppcVar42 = pppppppcVar15, pppppppcVar14 = unaff_s5,\n                     pppppppcVar15 != (code *******)0x0)) {\n                    bVar1 = false;\n                    pppppppcVar14 = local_138;\n                  }\n                  local_138 = pppppppcVar14;\n                  unaff_s7 = param_4;\n                  if ((((uint)param_4[0xd] & 0x8000000) != 0) &&\n                     ((((uint)param_4[0xd] & 0x1000000) == 0 ||\n                      (pppppppcVar29 = param_4, pppppppcVar30 = local_8c,\n                      iVar18 = FUN_00049440(&local_b4), iVar18 != 0)))) {\n                    unaff_s7 = pppppppcVar42;\n                    unaff_s8 = local_8c;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                    local_144 = (code *******)0x0;\n                    unaff_s7 = param_4;\n                  }\n                }\nLAB_00055da8:\n                if (local_144 != (code *******)0x0) {\n                  *local_144 = (code ******)((int)local_138 + (int)*local_144);\n                }\n              }\n              else {\n                param_4 = unaff_s7 + 1;\n                pppppppcVar30 = (code *******)0x0;\n                pppppppcVar29 = param_4;\n                local_d8 = (code *******)FUN_00047a44(&local_b4);\n                unaff_s8 = local_d8;\n                if (local_d8 == (code *******)0x0) {\n                  if (((uint)unaff_s7[0xd] & 0x2000000) == 0) {\n                    pppppppcVar29 = param_4;\n                    bVar1 = false;\n                  }\n                  else {\n                    pppppppcVar29 = param_4;\n                    local_d8 = (code *******)FUN_00052d84(&local_b4);\n                    unaff_s8 = local_d8;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055dbc;\n                    bVar1 = false;\n                  }\n                  goto LAB_00054d50;\n                }\n              }\nLAB_00055dbc:\n              if (unaff_s8 == (code *******)0xffffffff) {\nLAB_00055b04:\n                FUN_0004b7e8(&local_b4);\nLAB_00055b1c:\n                local_dc = (code *******)((int)pppppppcVar24 + (int)local_dc);\n                if ((int)pppppppcVar25 <= (int)local_dc) goto code_r0x00055b38;\n                local_150 = (code *******)0x1;\n                goto LAB_000557e4;\n              }\n              if (unaff_s8 == (code *******)&SUB_fffffffe) {\n                local_150 = (code *******)0xc;\n                goto LAB_000557e4;\n              }\n              local_58 = unaff_s8;\n              if (((uint)param_1[7] & 0x8000000) == 0) {\n                if (pppppppcVar3 < (code *******)0x2) {\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055c08;\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                else {\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                if (pppppppcVar3 < (code *******)0x2) {\nLAB_00055c6c:\n                  pppppppcVar28 = pppppppcVar33;\n                  unaff_s4 = local_60;\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055548;\n                }\n                else {\n                  cVar23 = *(code *)(pppppppcVar38 + 0x16);\nLAB_00055c20:\n                  pppppppcVar28 = pppppppcVar33;\n                  if (-1 < (char)cVar23) goto LAB_00055c6c;\n                }\n                pppppppcVar31 = local_54;\n                pppppppcVar42 = local_60;\n                unaff_s4 = pppppppcVar42;\n                if (unaff_s8 < (code *******)0x3fffffff) {\n                  param_4 = (code *******)((int)((int)unaff_s8 + 1) * 4);\n                  unaff_s5 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                  if (unaff_s5 == (code *******)0x0) {\nLAB_00055b9c:\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    local_150 = (code *******)0xc;\n                    pppppppcVar33 = pppppppcVar28;\n                  }\n                  else {\n                    pppppppcVar29 = (code *******)&local_d0;\n                    if (pppppppcVar42[0x13] == (code ******)0x0) {\n                      local_cc = (code *******)0x0;\n                      local_c8 = pppppppcVar31;\n                      local_c0 = 0;\n                      local_bc = 0;\n                      local_b8 = 0;\n                      local_d0 = unaff_s5;\n                      local_c4 = unaff_s8;\n                      param_5 = (code *******)FUN_0005421c(&local_b4);\n                      (*(code *)PTR_free_00079c24)(local_b8);\n                      if (param_5 == (code *******)0x0) {\n                        param_4 = (code *******)*unaff_s5;\n                        if (param_4 == (code *******)0x0) {\nLAB_00055b70:\n                          (*(code *)PTR_free_00079c24)(unaff_s5);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          pppppppcVar33 = pppppppcVar28;\n                          goto LAB_00055b04;\n                        }\nLAB_00055528:\n                        (*(code *)PTR_free_00079c24)(local_50);\n                        pppppppcVar33 = pppppppcVar28;\n                        unaff_s4 = pppppppcVar42;\n                        local_58 = unaff_s8;\n                        local_54 = pppppppcVar31;\n                        local_50 = unaff_s5;\n                        goto LAB_00055548;\n                      }\nLAB_00055acc:\n                      param_4 = (code *******)0x0;\n                      pppppppcVar33 = pppppppcVar28;\n                      unaff_s4 = pppppppcVar42;\n                    }\n                    else {\n                      param_4 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                      if (param_4 == (code *******)0x0) goto LAB_00055b9c;\n                      unaff_s7 = (code *******)&local_d0;\n                      pcVar8 = (code *)(PTR_DAT_000799a4 + 0x421c);\n                      pcVar9 = (code *)(PTR_DAT_000799a4 + -0x6bc0);\n                      pppppppcVar33 = pppppppcVar28;\n                      while( true ) {\n                        pppppppcVar28 = (code *******)((int)unaff_s8 + 1);\n                        param_6 = (code *******)((int)pppppppcVar28 * 4);\n                        pppppppcVar30 = param_6;\n                        (*(code *)PTR_memset_00079b00)(param_4,0);\n                        local_c0 = 0;\n                        local_bc = 0;\n                        local_b8 = 0;\n                        pppppppcVar29 = unaff_s7;\n                        local_d0 = unaff_s5;\n                        local_cc = param_4;\n                        local_c8 = pppppppcVar31;\n                        local_c4 = unaff_s8;\n                        param_5 = (code *******)(*pcVar8)(&local_b4);\n                        (*(code *)PTR_free_00079c24)(local_b8);\n                        unaff_s4 = pppppppcVar28;\n                        if (param_5 != (code *******)0x0) break;\n                        if ((*unaff_s5 != (code ******)0x0) ||\n                           (param_6 = param_6 + -1, *param_4 != (code ******)0x0)) {\n                          pppppppcVar29 = unaff_s5;\n                          pppppppcVar30 = param_4;\n                          param_5 = (code *******)FUN_000520d0(pppppppcVar42);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          if (param_5 != (code *******)0x0) goto LAB_00055acc;\n                          goto LAB_00055528;\n                        }\n                        param_6 = (code *******)((int)local_50 + (int)param_6);\n                        do {\n                          while( true ) {\n                            unaff_s8 = (code *******)((int)unaff_s8 + -1);\n                            if ((int)unaff_s8 < 0) goto LAB_00055b70;\n                            pppppppcVar29 = (code *******)param_6[-1];\n                            if (pppppppcVar29 != (code *******)0x0) break;\n                            param_6 = param_6 + -1;\n                          }\n                          param_6 = param_6 + -1;\n                        } while (((uint)pppppppcVar29[0xd] & 0x8000000) == 0);\n                        pppppppcVar31 = (code *******)(*pcVar9)(&local_b4,pppppppcVar29,unaff_s8);\n                        pppppppcVar33 = pppppppcVar28;\n                      }\n                    }\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    (*(code *)PTR_free_00079c24)(param_4);\n                    local_150 = param_5;\n                    if (param_5 == (code *******)0x1) goto LAB_00055b04;\n                  }\n                }\n                else {\n                  local_150 = (code *******)0xc;\n                  pppppppcVar33 = pppppppcVar28;\n                }\n                goto LAB_000557e4;\n              }\n              if (pppppppcVar38[0x13] != (code ******)0x0) {\n                pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                pppppppcVar30 = unaff_s8;\n                local_54 = (code *******)FUN_00049440(&local_b4);\n                goto LAB_00055c6c;\n              }\nLAB_00055c08:\n              if ((((uint)param_1[7] & 0x8000000) == 0) && ((code *******)0x1 < pppppppcVar3)) {\n                cVar23 = *(code *)(pppppppcVar38 + 0x16);\n                goto LAB_00055c20;\n              }\nLAB_00055548:\n              if (pppppppcVar3 == (code *******)0x0) goto LAB_000557e4;\n              if (pppppppcVar3 < (code *******)0x2) {\n                *param_8 = (code ******)0x0;\n                param_8[1] = (code ******)local_58;\n                goto LAB_000555ac;\n              }\n              pppppppcVar29 = param_8 + 2;\n              do {\n                pppppppcVar29[1] = (code ******)0xffffffff;\n                *pppppppcVar29 = (code ******)0xffffffff;\n                pppppppcVar29 = pppppppcVar29 + 2;\n              } while (pppppppcVar29 != param_8 + (int)pppppppcVar3 * 2);\n              *param_8 = (code ******)0x0;\n              param_8[1] = (code ******)local_58;\n              if (((uint)param_1[7] & 0x8000000) != 0) {\nLAB_000555ac:\n                pppppppcVar33 = param_8;\n                do {\n                  pppppppcVar29 = (code *******)*pppppppcVar33;\n                  if (pppppppcVar29 != (code *******)0xffffffff) {\n                    if (local_68 != '\0') {\n                      pppppppcVar34 = local_94;\n                      if (pppppppcVar29 != local_98) {\n                        pppppppcVar34 = *(code ********)(local_a8 + (int)pppppppcVar29 * 4);\n                      }\n                      *pppppppcVar33 = (code ******)pppppppcVar34;\n                      pppppppcVar29 = local_94;\n                      if (local_98 != (code *******)pppppppcVar33[1]) {\n                        pppppppcVar29 = *(code ********)(local_a8 + (int)pppppppcVar33[1] * 4);\n                      }\n                      pppppppcVar33[1] = (code ******)pppppppcVar29;\n                    }\n                    *pppppppcVar33 = (code ******)((int)local_dc + (int)*pppppppcVar33);\n                    pppppppcVar29 = (code *******)((int)local_dc + (int)pppppppcVar33[1]);\n                    pppppppcVar33[1] = (code ******)pppppppcVar29;\n                  }\n                  pppppppcVar33 = pppppppcVar33 + 2;\n                } while (pppppppcVar33 != param_8 + (int)pppppppcVar3 * 2);\n                if (0 < local_118) {\n                  pppppppcVar33 = param_8 + (int)pppppppcVar3 * 2;\n                  do {\n                    *pppppppcVar33 = (code ******)0xffffffff;\n                    pppppppcVar33[1] = (code ******)0xffffffff;\n                    pppppppcVar33 = pppppppcVar33 + 2;\n                  } while (pppppppcVar33 != param_8 + (int)param_7 * 2);\n                }\n                pppppppcVar30 = local_dc;\n                pppppppcVar33 = param_8;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar38[0x21] != (code ******)0x0) {\n                  pppppppcVar30 = (code *******)((int)pppppppcVar3 + -1);\n                  pppppppcVar34 = (code *******)0x0;\n                  pppppppcVar3 = param_8;\n                  while( true ) {\n                    pppppppcVar29 = (code *******)((int)pppppppcVar34 * 4);\n                    if (pppppppcVar30 == pppppppcVar34) break;\n                    if (*(code ********)((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) !=\n                        pppppppcVar34) {\n                      pppppppcVar3[2] =\n                           param_8[(int)((int)*(code ********)\n                                               ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1)\n                                   * 2];\n                      pppppppcVar3[3] =\n                           param_8[((int)*(code ******)\n                                          ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1) * 2 +\n                                   1];\n                    }\n                    pppppppcVar34 = (code *******)((int)pppppppcVar34 + 1);\n                    pppppppcVar3 = pppppppcVar3 + 2;\n                  }\n                }\n                goto LAB_000557e4;\n              }\n              if ((char)*(code *)(pppppppcVar38 + 0x16) < '\0') {\n                local_168 = (uint)(0 < (int)pppppppcVar38[0x13]);\n              }\n              else {\n                local_168 = 0;\n              }\n              pppppppcVar29 = &local_b4;\n              pppppppcVar30 = pppppppcVar3;\n              pppppppcVar33 = param_8;\n              local_150 = (code *******)FUN_0004f4a0(param_1);\n              if (local_150 == (code *******)0x0) goto LAB_000555ac;\n            }\n          }\n          else if (local_90 < 0x3fffffff) {\n            local_50 = (code *******)(*(code *)PTR_malloc_00079b54)((local_90 + 1) * 4);\n            if (local_50 != (code *******)0x0) goto LAB_00055a40;\n            local_150 = (code *******)0xc;\n            param_6 = pppppppcVar36;\n          }\n          else {\n            local_150 = (code *******)0xc;\n            param_6 = pppppppcVar36;\n          }\n        }\n        else {\n          unaff_s5 = (code *******)((int)ppppppcVar35 * 8);\n          if (pppppppcVar36 < (code *******)0xccccccd) {\n            unaff_s4 = (code *******)(*(code *)PTR_malloc_00079b54)((int)ppppppcVar35 * 0x28);\n            local_40 = unaff_s4;\n            local_30 = (*(code *)PTR_malloc_00079b54)(unaff_s5);\n            if ((unaff_s4 != (code *******)0x0) && (local_30 != 0)) goto LAB_000559f0;\n          }\n          local_150 = (code *******)0xc;\n          param_6 = pppppppcVar36;\n        }\nLAB_000557e4:\n        (*(code *)PTR_free_00079c24)(local_50);\n        param_1 = pppppppcVar30;\n        if (pppppppcVar38[0x13] != (code ******)0x0) {\n          FUN_0004b7e8(&local_b4);\n          (*(code *)PTR_free_00079c24)(local_30);\n          (*(code *)PTR_free_00079c24)(local_40);\n          param_1 = pppppppcVar30;\n        }\n        FUN_0004b2bc(&local_b4);\n        pppppppcStack_1a0 = param_4;\n        pppppppcStack_19c = pppppppcVar31;\n      }\n    }\n  }" if (parenthesized_expression "(pppppppcVar38[10] == (code ******)0x0)" ( (binary_expression "pppppppcVar38[10] == (code ******)0x0" (subscript_expression "pppppppcVar38[10]" identifier [ number_literal ]) == (cast_expression "(code ******)0x0" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (compound_statement "{\n    local_150 = (code *******)0x1;\n  }" { (expression_statement "local_150 = (code *******)0x1;" (assignment_expression "local_150 = (code *******)0x1" identifier = (cast_expression "(code *******)0x1" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) }) (else_clause "else if (pppppppcVar38[0xb] == (code ******)0x0) {\n    local_150 = (code *******)0x1;\n  }\n  else {\n    pppppppcVar29 = (code *******)pppppppcVar38[0xc];\n    if (pppppppcVar29 == (code *******)0x0) {\n      local_150 = (code *******)0x1;\n    }\n    else {\n      pppppppcVar3 = param_5;\n      if ((((pppppppcVar38[9][2] == (code *****)0x0) && (pppppppcVar38[10][2] == (code *****)0x0))\n          && ((pppppppcVar38[0xb][2] == (code *****)0x0 || (((uint)param_1[7] & 0x1000000) == 0))))\n         && ((pppppppcVar3 = param_4, param_4 != (code *******)0x0 &&\n             (param_4 = param_5, pppppppcVar3 = param_5, param_5 != (code *******)0x0)))) {\n        local_150 = (code *******)0x1;\n        pppppppcStack_1a0 = param_5;\n      }\n      else {\n        param_5 = pppppppcVar3;\n        pppppppcVar3 = (code *******)((int)param_7 - local_118);\n        if (pppppppcVar3 == (code *******)0x0) {\n          pppppppcVar34 = (code *******)(uint)(pppppppcVar38[0x13] != (code ******)0x0);\n        }\n        else {\n          pppppppcVar34 = (code *******)0x1;\n        }\n        ppppppcVar32 = param_1[5];\n        local_6c = (byte)((uint)((int)param_1[3] << 9) >> 0x1f);\n        local_64 = (code *******)pppppppcVar38[0x17];\n        pppppppcVar31 = (code *******)((int)pppppppcVar38[2] + 1);\n        if ((int)pppppppcVar38[2] + 1 < (int)local_64) {\n          pppppppcVar31 = local_64;\n        }\n        pppppppcVar30 = (code *******)(uint)((int)param_3 + 1 < (int)pppppppcVar31);\n        pppppppcVar33 = (code *******)0x1;\n        local_69 = local_6c;\n        if (ppppppcVar32 != (code ******)0x0) {\n          local_69 = 1;\n        }\n        local_6b = (byte)((uint)((int)pppppppcVar38[0x16] << 2) >> 0x1f);\n        local_6a = (byte)((uint)((int)pppppppcVar38[0x16] << 3) >> 0x1f);\n        pppppppcVar29 = (code *******)((int)param_3 + 1);\n        if (pppppppcVar30 == (code *******)0x0) {\n          pppppppcVar29 = pppppppcVar31;\n        }\n        local_b4 = param_2;\n        local_88 = param_3;\n        local_84 = param_3;\n        local_80 = param_3;\n        local_7c = param_3;\n        local_74 = ppppppcVar32;\n        local_150 = (code *******)FUN_00046d2c(&local_b4);\n        pppppppcVar31 = pppppppcVar34;\n        param_6 = param_6;\n        if (local_150 != (code *******)0x0) goto LAB_000557e4;\n        local_70 = pppppppcVar38 + 0x18;\n        local_66 = (byte)((uint)((int)pppppppcVar38[0x16] << 4) >> 0x1f);\n        pppppppcVar2 = (code *******)0x0;\n        local_98 = pppppppcVar2;\n        if ((local_69 == 0) && (local_b0 = param_2, (int)pppppppcVar38[0x17] < 2)) {\n          local_98 = param_3;\n        }\n        local_7c = param_6;\n        local_80 = param_6;\n        local_67 = (byte)((uint)((int)param_1[7] << 7) >> 0x1f);\n        ppppppcVar35 = pppppppcVar38[0x13];\n        pppppppcVar36 = (code *******)((int)ppppppcVar35 * 2);\n        local_5c = param_9;\n        local_58 = (code *******)0xffffffff;\n        local_94 = local_98;\n        if ((int)pppppppcVar36 < 1) {\nLAB_000559f0:\n          local_3c = 1;\n          local_44 = pppppppcVar36;\n          local_34 = pppppppcVar36;\n          if ((pppppppcVar3 < (code *******)0x2) && (((uint)pppppppcVar38[0x16] & 0x40000000) == 0))\n          {\n            local_50 = (code *******)0x0;\nLAB_00055a40:\n            local_78 = 6;\n            if (((uint)param_9 & 1) != 0) {\n              local_78 = 4;\n            }\n            pppppppcVar24 = (code *******)0x1;\n            pppppppcVar25 = param_4;\n            if ((int)param_5 < (int)param_4) {\n              pppppppcVar24 = (code *******)0xffffffff;\n              pppppppcVar25 = param_5;\n            }\n            pppppppcVar26 = param_5;\n            if ((int)param_5 <= (int)param_4) {\n              pppppppcVar26 = param_4;\n            }\n            ppppppcVar35 = pppppppcVar38[0x17];\n            uVar16 = 8;\n            if (local_148 != (code *******)0x0) {\n              if (ppppppcVar35 == (code ******)0x1) {\n                pppppppcVar28 = (code *******)0x4;\n              }\n              else {\n                pppppppcVar28 = pppppppcVar2;\n                if ((-1 < (int)param_1[3] << 9) && (ppppppcVar32 == (code ******)0x0)) {\n                  pppppppcVar28 = (code *******)0x4;\n                }\n              }\n              pppppppcVar29 = (code *******)0x0;\n              if ((int)param_4 <= (int)param_5) {\n                pppppppcVar29 = (code *******)0x2;\n              }\n              uVar16 = (uint)(ppppppcVar32 != (code ******)0x0) | (uint)pppppppcVar28 |\n                       (uint)pppppppcVar29;\n            }\n            local_dc = param_4;\n            if ((int)param_4 < (int)pppppppcVar25) {\n              local_150 = (code *******)0x1;\n              param_6 = pppppppcVar36;\n            }\n            else if ((int)pppppppcVar26 < (int)param_4) {\n              local_150 = (code *******)0x1;\n              param_4 = (code *******)(uint)((int)param_5 < (int)param_4);\n              param_6 = pppppppcVar36;\n            }\n            else {\n              pppppppcVar36 = (code *******)&local_dc;\n              if ((code *******)(uint)((int)param_5 < (int)param_4) != (code *******)0x0) {\n                pppppppcVar36 = (code *******)0x0;\n              }\n              pcVar4 = (code *)(PTR_DAT_000799a4 + -0x2b7c);\n              piVar5 = (int *)(PTR_s_nt0_000795b8 + (uVar16 - 4) * 4 + 0x6e38);\nLAB_00055b44:\n              if (uVar16 - 4 < 5) {\n                    \n                    \n                pppppppcVar29 = (code *******)(*(code *)(&_gp_1 + *piVar5))();\n                return pppppppcVar29;\n              }\n              param_5 = &local_b4;\n              pppppppcVar28 = pppppppcVar33;\n              while( true ) {\n                param_4 = local_dc;\n                pppppppcVar33 = (code *******)((int)local_dc - local_9c);\n                pppppppcVar30 = param_9;\n                pppppppcVar31 = pppppppcVar2;\n                param_6 = local_148;\n                unaff_s4 = param_3;\n                unaff_s5 = pppppppcVar24;\n                unaff_s7 = pppppppcVar26;\n                if (local_94 <= pppppppcVar33) {\n                  pppppppcVar29 = local_dc;\n                  local_150 = (code *******)(*pcVar4)(param_5);\n                  pppppppcVar33 = pppppppcVar28;\n                  if (local_150 != (code *******)0x0) goto LAB_000557e4;\n                  pppppppcVar33 = (code *******)((int)param_4 - local_9c);\n                }\n                if ((int)param_4 < (int)param_3) {\n                  uVar7 = (uint)(byte)*(code *)((int)pppppppcVar33 + (int)local_b0);\n                }\n                else {\n                  uVar7 = 0;\n                }\n                param_4 = (code *******)((int)param_4 + (int)pppppppcVar24);\n                if (*(code *)((int)local_148 + uVar7) != (code)0x0) break;\n                pppppppcVar33 = pppppppcVar28;\n                local_dc = param_4;\n                if ((int)param_4 < (int)pppppppcVar25) {\n                  local_150 = (code *******)0x1;\n                  goto LAB_000557e4;\n                }\n                if ((code *******)(uint)((int)pppppppcVar26 < (int)param_4) != (code *******)0x0) {\n                  local_150 = (code *******)0x1;\n                  param_4 = (code *******)(uint)((int)pppppppcVar26 < (int)param_4);\n                  goto LAB_000557e4;\n                }\n              }\n              while( true ) {\n                pppppppcVar29 = local_dc;\n                pppppppcVar30 = param_9;\n                pppppppcVar6 = (code *******)(*pcVar4)(&local_b4);\n                pppppppcVar14 = local_60;\n                pppppppcVar42 = local_8c;\n                pppppppcVar33 = pppppppcVar28;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar6 != (code *******)0x0) goto LAB_000557e4;\n                if (((ppppppcVar35 != (code ******)0x1) && (local_98 != (code *******)0x0)) &&\n                   (*local_ac == -1)) goto LAB_00055b1c;\n                local_3c = 0;\n                local_48 = 0;\n                local_4c = (code *******)0x0;\n                local_138 = local_8c;\n                local_d8 = (code *******)0x0;\n                unaff_s7 = (code *******)local_60[9];\n                pppppppcVar30 = local_5c;\n                param_4 = pppppppcVar14;\n                if (((uint)unaff_s7[0xd] & 0x1000000) == 0) break;\n                pppppppcVar29 = (code *******)((int)local_8c + -1);\n                pppppppcVar33 = (code *******)FUN_00049110(&local_b4);\n                if (((uint)pppppppcVar33 & 1) == 0) {\n                  if (pppppppcVar33 == (code *******)0x0) break;\n                  if (((uint)pppppppcVar33 & 6) == 6) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xc];\n                    goto LAB_00054d1c;\n                  }\n                  if (((uint)pppppppcVar33 & 2) != 0) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xb];\n                    goto LAB_00054d1c;\n                  }\n                  pppppppcVar28 = pppppppcVar33;\n                  if (((uint)pppppppcVar33 & 4) == 0) break;\n                  pppppppcVar30 = (code *******)unaff_s7[10];\n                  pppppppcVar29 = pppppppcVar14;\n                  unaff_s7 = (code *******)FUN_0004ae34(&local_d8);\n                  pppppppcVar28 = pppppppcVar33;\n                  if (unaff_s7 != (code *******)0x0) break;\n                  if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                }\n                else {\n                  unaff_s7 = (code *******)pppppppcVar14[10];\nLAB_00054d1c:\n                  pppppppcVar28 = (code *******)PTR_s_nt0_000795b8;\n                  if (unaff_s7 != (code *******)0x0) break;\n                }\n                pppppppcVar28 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                local_dc = (code *******)\n                           (*(code *)PTR___assert_fail_000799f8)\n                                     (PTR_s_nt0_000795b8 + 0x71a0,pppppppcVar29,0x435);\n                if (local_dc == pppppppcVar26) {\n                  if ((int)local_dc < (int)param_3) {\n                    uVar7 = (uint)(byte)*(code *)((int)local_dc + (int)param_2);\n                  }\n                  else {\n                    uVar7 = 0;\n                  }\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    uVar7 = (uint)*(byte *)((int)ppppppcVar32 + uVar7);\n                  }\n                  if (*(code *)((int)local_148 + uVar7) == (code)0x0) {\n                    local_150 = (code *******)0x1;\n                    pppppppcVar30 = param_9;\n                    pppppppcVar33 = pppppppcVar28;\n                    goto LAB_000557e4;\n                  }\n                }\n              }\n              pppppppcVar33 = pppppppcVar28;\n              bVar1 = pppppppcVar36 != (code *******)0x0;\n              if ((local_50 == (code *******)0x0) ||\n                 (local_50[(int)pppppppcVar42] = (code ******)unaff_s7,\n                 pppppppcVar14[0x13] == (code ******)0x0)) {\nLAB_00054d50:\n                if ((int)unaff_s7[0xd] << 4 < 0) {\n                  if ((((uint)unaff_s7[0xd] & 0x1000000) == 0) ||\n                     (pppppppcVar29 = unaff_s7, pppppppcVar30 = pppppppcVar42,\n                     iVar18 = FUN_00049440(&local_b4), iVar18 != 0)) {\n                    unaff_s8 = pppppppcVar42;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                  }\n                  else {\n                    pppppppcVar42 = (code *******)0xffffffff;\n                    pppppppcVar28 = (code *******)0x0;\n                  }\n                }\n                else {\n                  pppppppcVar42 = (code *******)0xffffffff;\n                  pppppppcVar28 = (code *******)0x0;\n                }\n                pcVar8 = (code *)(PTR_DAT_000799a4 + -0x7144);\n                pcVar9 = (code *)(PTR_DAT_000799a4 + -0x1980);\n                pcVar10 = (code *)(PTR_DAT_000799a4 + -0x2f9c);\n                unaff_s8 = pppppppcVar42;\n                local_144 = pppppppcVar36;\n                while( true ) {\n                  uVar44 = CONCAT44(local_98,local_84);\n                  unaff_s5 = (code *******)((int)local_8c + 1);\n                  pppppppcVar29 = local_8c;\n                  if ((int)local_7c <= (int)local_8c) break;\n                  if (((int)local_90 <= (int)unaff_s5) && ((int)local_90 < (int)local_84))\n                  goto LAB_00054e94;\n                  if ((int)local_98 <= (int)unaff_s5) {\n                    while ((int)((ulonglong)uVar44 >> 0x20) < (int)uVar44) {\nLAB_00054e94:\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 2);\n                      local_d8 = (code *******)(*pcVar8)(&local_b4);\n                      if (local_d8 == (code *******)0x0) break;\n                      pppppppcVar14 = param_4;\n                      if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                      pppppppcVar33 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                      pppppppcVar30 = (code *******)0x46c;\n                      pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                      uVar44 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0);\n                      pppppppcVar28 = pppppppcVar38;\n                    }\n                  }\n                  pppppppcVar42 = local_60;\n                  if ((int)unaff_s7[0xd] << 5 < 0) {\n                    pppppppcVar31 = pppppppcVar42;\n                    if (0 < (int)unaff_s7[2]) {\n                      pcVar11 = (code *)(PTR_DAT_000799a4 + -0x6fdc);\n                      pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6ef0);\n                      param_6 = (code *******)0x0;\n                      do {\n                        param_5 = (code *******)unaff_s7[3][(int)param_6];\n                        ppppppcVar39 = *pppppppcVar42;\n                        pppppcVar13 = ppppppcVar39[(int)param_5 * 2 + 1];\n                        if (((uint)pppppcVar13 & 0x800) != 0) {\n                          if (((uint)pppppcVar13 & 0xffc000) != 0) {\n                            pppppppcVar29 = local_8c;\n                            uVar19 = (*pcVar12)(&local_b4,local_8c,local_5c);\n                            uVar7 = (uint)((int)ppppppcVar39[(int)param_5 * 2 + 1] << 8) >> 0x16;\n                            if ((uVar7 & 4) == 0) {\n                              uVar27 = uVar19 & 1;\n                              if ((uVar7 & 8) != 0) goto joined_r0x00054f40;\n                            }\n                            else {\n                              uVar27 = uVar7 & 8;\n                              if ((uVar19 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                              if (uVar27 != 0) goto LAB_000550a4;\n                            }\n                            if ((((uVar7 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                               (((uVar7 & 0x80) != 0 &&\n                                (pppppppcVar33 = local_8c, (uVar19 & 8) == 0)))) goto LAB_000550a4;\n                          }\n                          pppppppcVar30 = &local_b4;\n                          pppppppcVar29 = param_5;\n                          pppppppcVar33 = local_8c;\n                          iVar18 = (*pcVar10)(pppppppcVar42);\n                          if (iVar18 != 0) {\n                            pppppppcVar14 = (code *******)((int)local_8c + iVar18);\n                            if (iVar18 <= local_3c) {\n                              iVar18 = local_3c;\n                            }\n                            pppppppcVar29 = pppppppcVar14;\n                            local_3c = iVar18;\n                            local_d4 = (code *******)(*pcVar11)(&local_b4);\n                            pppppppcVar15 = local_d4;\n                            if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                            pppppppcVar30 =\n                                 (code *******)\n                                 (pppppppcVar42[6] + (int)pppppppcVar42[3][(int)param_5] * 3);\n                            unaff_s4 = (code *******)((int)pppppppcVar14 * 4);\n                            param_5 = local_50 + (int)pppppppcVar14;\n                            if (*param_5 == (code ******)0x0) {\n                              local_d0 = (code *******)*pppppppcVar30;\n                              local_cc = (code *******)pppppppcVar30[1];\n                              local_c8 = (code *******)pppppppcVar30[2];\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *param_5 = ppppppcVar39;\n                            }\n                            else {\n                              pppppppcVar29 = (code *******)(*param_5)[10];\n                              local_d4 = (code *******)FUN_000484bc(&local_d0);\n                              pppppppcVar15 = local_d4;\n                              if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar15 = local_50 + (int)pppppppcVar14;\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *pppppppcVar15 = ppppppcVar39;\n                              (*(code *)PTR_free_00079c24)(local_c8);\n                            }\n                            unaff_s4 = local_50 + (int)pppppppcVar14;\n                            if ((*unaff_s4 == (code ******)0x0) &&\n                               (pppppppcVar15 = local_d4, local_d4 != (code *******)0x0))\n                            goto LAB_00055e44;\n                          }\n                        }\nLAB_000550a4:\n                        param_6 = (code *******)((int)param_6 + 1);\n                      } while ((int)param_6 < (int)unaff_s7[2]);\n                    }\n                    local_d8 = (code *******)0x0;\n                  }\n                  uVar7 = (uint)(byte)*(code *)((int)local_8c + (int)local_b0);\n                  local_8c = (code *******)((int)local_8c + 1);\n                  do {\n                    if (unaff_s7[0xb] != (code ******)0x0) {\n                      pppppppcVar30 = (code *******)unaff_s7[0xb][uVar7];\nLAB_000553a0:\n                      pppppppcVar14 = pppppppcVar30;\n                      if (local_50 != (code *******)0x0) goto LAB_000553ac;\n                      goto LAB_000553cc;\n                    }\n                    pppppppcVar31 = (code *******)unaff_s7[0xc];\n                    if (pppppppcVar31 != (code *******)0x0) {\n                      pppppppcVar29 = (code *******)((int)local_8c + -1);\n                      uVar19 = FUN_00049110(&local_b4);\n                      if ((uVar19 & 1) == 0) {\n                        pppppppcVar30 = (code *******)pppppppcVar31[uVar7];\n                      }\n                      else {\n                        pppppppcVar31 = pppppppcVar31 + uVar7 + 0x100;\n                        pppppppcVar30 = (code *******)*pppppppcVar31;\n                      }\n                      goto LAB_000553a0;\n                    }\n                    pppppppcVar29 = unaff_s7;\n                    pppppppcVar30 = local_5c;\n                    iVar18 = (*pcVar9)(local_60);\n                  } while (iVar18 != 0);\n                  local_d8 = (code *******)0xc;\n                  pppppppcVar15 = local_d8;\nLAB_00055e44:\n                  local_d8 = pppppppcVar15;\n                  param_4 = (code *******)0x0;\n                  if (local_50 == (code *******)0x0) {\n                    pppppppcVar14 = param_4;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    break;\n                  }\n                  pppppppcVar30 = (code *******)0x0;\nLAB_000553ac:\n                  pppppppcVar29 = &local_b4;\n                  pppppppcVar14 = (code *******)FUN_00053684(&local_d8);\nLAB_000553cc:\n                  param_4 = pppppppcVar14;\n                  if (pppppppcVar14 == (code *******)0x0) {\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    if ((local_50 == (code *******)0x0) ||\n                       ((pppppppcVar28 != (code *******)0x0 && (pppppppcVar34 == (code *******)0x0))\n                       )) break;\n                    param_6 = &local_b4;\n                    param_5 = (code *******)&local_d8;\n                    pppppppcVar31 = (code *******)(PTR_DAT_000799a4 + 0x3684);\n                    do {\n                      pppppppcVar15 = local_50 + (int)local_8c;\n                      pppppppcVar42 = local_8c;\n                      do {\n                        pppppppcVar42 = (code *******)((int)pppppppcVar42 + 1);\n                        pppppppcVar29 = local_4c;\n                        param_4 = pppppppcVar14;\n                        if ((int)local_4c < (int)pppppppcVar42) goto LAB_00055da8;\n                        local_8c = (code *******)((int)local_8c + 1);\n                        pppppppcVar15 = pppppppcVar15 + 1;\n                      } while (*pppppppcVar15 == (code ******)0x0);\n                      pppppppcVar30 = (code *******)0x0;\n                      pppppppcVar29 = param_6;\n                      param_4 = (code *******)(*(code *)pppppppcVar31)(param_5);\n                      if (local_d8 != (code *******)0x0) {\n                        if (param_4 == (code *******)0x0) goto LAB_00055da8;\n                        break;\n                      }\n                      pppppppcVar29 = local_4c;\n                    } while (param_4 == (code *******)0x0);\n                  }\n                  pppppppcVar15 = (code *******)((uint)unaff_s7 ^ (uint)param_4);\n                  pppppppcVar42 = unaff_s7;\n                  pppppppcVar14 = local_138;\n                  if ((bVar1) &&\n                     (pppppppcVar42 = pppppppcVar15, pppppppcVar14 = unaff_s5,\n                     pppppppcVar15 != (code *******)0x0)) {\n                    bVar1 = false;\n                    pppppppcVar14 = local_138;\n                  }\n                  local_138 = pppppppcVar14;\n                  unaff_s7 = param_4;\n                  if ((((uint)param_4[0xd] & 0x8000000) != 0) &&\n                     ((((uint)param_4[0xd] & 0x1000000) == 0 ||\n                      (pppppppcVar29 = param_4, pppppppcVar30 = local_8c,\n                      iVar18 = FUN_00049440(&local_b4), iVar18 != 0)))) {\n                    unaff_s7 = pppppppcVar42;\n                    unaff_s8 = local_8c;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                    local_144 = (code *******)0x0;\n                    unaff_s7 = param_4;\n                  }\n                }\nLAB_00055da8:\n                if (local_144 != (code *******)0x0) {\n                  *local_144 = (code ******)((int)local_138 + (int)*local_144);\n                }\n              }\n              else {\n                param_4 = unaff_s7 + 1;\n                pppppppcVar30 = (code *******)0x0;\n                pppppppcVar29 = param_4;\n                local_d8 = (code *******)FUN_00047a44(&local_b4);\n                unaff_s8 = local_d8;\n                if (local_d8 == (code *******)0x0) {\n                  if (((uint)unaff_s7[0xd] & 0x2000000) == 0) {\n                    pppppppcVar29 = param_4;\n                    bVar1 = false;\n                  }\n                  else {\n                    pppppppcVar29 = param_4;\n                    local_d8 = (code *******)FUN_00052d84(&local_b4);\n                    unaff_s8 = local_d8;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055dbc;\n                    bVar1 = false;\n                  }\n                  goto LAB_00054d50;\n                }\n              }\nLAB_00055dbc:\n              if (unaff_s8 == (code *******)0xffffffff) {\nLAB_00055b04:\n                FUN_0004b7e8(&local_b4);\nLAB_00055b1c:\n                local_dc = (code *******)((int)pppppppcVar24 + (int)local_dc);\n                if ((int)pppppppcVar25 <= (int)local_dc) goto code_r0x00055b38;\n                local_150 = (code *******)0x1;\n                goto LAB_000557e4;\n              }\n              if (unaff_s8 == (code *******)&SUB_fffffffe) {\n                local_150 = (code *******)0xc;\n                goto LAB_000557e4;\n              }\n              local_58 = unaff_s8;\n              if (((uint)param_1[7] & 0x8000000) == 0) {\n                if (pppppppcVar3 < (code *******)0x2) {\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055c08;\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                else {\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                if (pppppppcVar3 < (code *******)0x2) {\nLAB_00055c6c:\n                  pppppppcVar28 = pppppppcVar33;\n                  unaff_s4 = local_60;\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055548;\n                }\n                else {\n                  cVar23 = *(code *)(pppppppcVar38 + 0x16);\nLAB_00055c20:\n                  pppppppcVar28 = pppppppcVar33;\n                  if (-1 < (char)cVar23) goto LAB_00055c6c;\n                }\n                pppppppcVar31 = local_54;\n                pppppppcVar42 = local_60;\n                unaff_s4 = pppppppcVar42;\n                if (unaff_s8 < (code *******)0x3fffffff) {\n                  param_4 = (code *******)((int)((int)unaff_s8 + 1) * 4);\n                  unaff_s5 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                  if (unaff_s5 == (code *******)0x0) {\nLAB_00055b9c:\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    local_150 = (code *******)0xc;\n                    pppppppcVar33 = pppppppcVar28;\n                  }\n                  else {\n                    pppppppcVar29 = (code *******)&local_d0;\n                    if (pppppppcVar42[0x13] == (code ******)0x0) {\n                      local_cc = (code *******)0x0;\n                      local_c8 = pppppppcVar31;\n                      local_c0 = 0;\n                      local_bc = 0;\n                      local_b8 = 0;\n                      local_d0 = unaff_s5;\n                      local_c4 = unaff_s8;\n                      param_5 = (code *******)FUN_0005421c(&local_b4);\n                      (*(code *)PTR_free_00079c24)(local_b8);\n                      if (param_5 == (code *******)0x0) {\n                        param_4 = (code *******)*unaff_s5;\n                        if (param_4 == (code *******)0x0) {\nLAB_00055b70:\n                          (*(code *)PTR_free_00079c24)(unaff_s5);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          pppppppcVar33 = pppppppcVar28;\n                          goto LAB_00055b04;\n                        }\nLAB_00055528:\n                        (*(code *)PTR_free_00079c24)(local_50);\n                        pppppppcVar33 = pppppppcVar28;\n                        unaff_s4 = pppppppcVar42;\n                        local_58 = unaff_s8;\n                        local_54 = pppppppcVar31;\n                        local_50 = unaff_s5;\n                        goto LAB_00055548;\n                      }\nLAB_00055acc:\n                      param_4 = (code *******)0x0;\n                      pppppppcVar33 = pppppppcVar28;\n                      unaff_s4 = pppppppcVar42;\n                    }\n                    else {\n                      param_4 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                      if (param_4 == (code *******)0x0) goto LAB_00055b9c;\n                      unaff_s7 = (code *******)&local_d0;\n                      pcVar8 = (code *)(PTR_DAT_000799a4 + 0x421c);\n                      pcVar9 = (code *)(PTR_DAT_000799a4 + -0x6bc0);\n                      pppppppcVar33 = pppppppcVar28;\n                      while( true ) {\n                        pppppppcVar28 = (code *******)((int)unaff_s8 + 1);\n                        param_6 = (code *******)((int)pppppppcVar28 * 4);\n                        pppppppcVar30 = param_6;\n                        (*(code *)PTR_memset_00079b00)(param_4,0);\n                        local_c0 = 0;\n                        local_bc = 0;\n                        local_b8 = 0;\n                        pppppppcVar29 = unaff_s7;\n                        local_d0 = unaff_s5;\n                        local_cc = param_4;\n                        local_c8 = pppppppcVar31;\n                        local_c4 = unaff_s8;\n                        param_5 = (code *******)(*pcVar8)(&local_b4);\n                        (*(code *)PTR_free_00079c24)(local_b8);\n                        unaff_s4 = pppppppcVar28;\n                        if (param_5 != (code *******)0x0) break;\n                        if ((*unaff_s5 != (code ******)0x0) ||\n                           (param_6 = param_6 + -1, *param_4 != (code ******)0x0)) {\n                          pppppppcVar29 = unaff_s5;\n                          pppppppcVar30 = param_4;\n                          param_5 = (code *******)FUN_000520d0(pppppppcVar42);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          if (param_5 != (code *******)0x0) goto LAB_00055acc;\n                          goto LAB_00055528;\n                        }\n                        param_6 = (code *******)((int)local_50 + (int)param_6);\n                        do {\n                          while( true ) {\n                            unaff_s8 = (code *******)((int)unaff_s8 + -1);\n                            if ((int)unaff_s8 < 0) goto LAB_00055b70;\n                            pppppppcVar29 = (code *******)param_6[-1];\n                            if (pppppppcVar29 != (code *******)0x0) break;\n                            param_6 = param_6 + -1;\n                          }\n                          param_6 = param_6 + -1;\n                        } while (((uint)pppppppcVar29[0xd] & 0x8000000) == 0);\n                        pppppppcVar31 = (code *******)(*pcVar9)(&local_b4,pppppppcVar29,unaff_s8);\n                        pppppppcVar33 = pppppppcVar28;\n                      }\n                    }\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    (*(code *)PTR_free_00079c24)(param_4);\n                    local_150 = param_5;\n                    if (param_5 == (code *******)0x1) goto LAB_00055b04;\n                  }\n                }\n                else {\n                  local_150 = (code *******)0xc;\n                  pppppppcVar33 = pppppppcVar28;\n                }\n                goto LAB_000557e4;\n              }\n              if (pppppppcVar38[0x13] != (code ******)0x0) {\n                pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                pppppppcVar30 = unaff_s8;\n                local_54 = (code *******)FUN_00049440(&local_b4);\n                goto LAB_00055c6c;\n              }\nLAB_00055c08:\n              if ((((uint)param_1[7] & 0x8000000) == 0) && ((code *******)0x1 < pppppppcVar3)) {\n                cVar23 = *(code *)(pppppppcVar38 + 0x16);\n                goto LAB_00055c20;\n              }\nLAB_00055548:\n              if (pppppppcVar3 == (code *******)0x0) goto LAB_000557e4;\n              if (pppppppcVar3 < (code *******)0x2) {\n                *param_8 = (code ******)0x0;\n                param_8[1] = (code ******)local_58;\n                goto LAB_000555ac;\n              }\n              pppppppcVar29 = param_8 + 2;\n              do {\n                pppppppcVar29[1] = (code ******)0xffffffff;\n                *pppppppcVar29 = (code ******)0xffffffff;\n                pppppppcVar29 = pppppppcVar29 + 2;\n              } while (pppppppcVar29 != param_8 + (int)pppppppcVar3 * 2);\n              *param_8 = (code ******)0x0;\n              param_8[1] = (code ******)local_58;\n              if (((uint)param_1[7] & 0x8000000) != 0) {\nLAB_000555ac:\n                pppppppcVar33 = param_8;\n                do {\n                  pppppppcVar29 = (code *******)*pppppppcVar33;\n                  if (pppppppcVar29 != (code *******)0xffffffff) {\n                    if (local_68 != '\0') {\n                      pppppppcVar34 = local_94;\n                      if (pppppppcVar29 != local_98) {\n                        pppppppcVar34 = *(code ********)(local_a8 + (int)pppppppcVar29 * 4);\n                      }\n                      *pppppppcVar33 = (code ******)pppppppcVar34;\n                      pppppppcVar29 = local_94;\n                      if (local_98 != (code *******)pppppppcVar33[1]) {\n                        pppppppcVar29 = *(code ********)(local_a8 + (int)pppppppcVar33[1] * 4);\n                      }\n                      pppppppcVar33[1] = (code ******)pppppppcVar29;\n                    }\n                    *pppppppcVar33 = (code ******)((int)local_dc + (int)*pppppppcVar33);\n                    pppppppcVar29 = (code *******)((int)local_dc + (int)pppppppcVar33[1]);\n                    pppppppcVar33[1] = (code ******)pppppppcVar29;\n                  }\n                  pppppppcVar33 = pppppppcVar33 + 2;\n                } while (pppppppcVar33 != param_8 + (int)pppppppcVar3 * 2);\n                if (0 < local_118) {\n                  pppppppcVar33 = param_8 + (int)pppppppcVar3 * 2;\n                  do {\n                    *pppppppcVar33 = (code ******)0xffffffff;\n                    pppppppcVar33[1] = (code ******)0xffffffff;\n                    pppppppcVar33 = pppppppcVar33 + 2;\n                  } while (pppppppcVar33 != param_8 + (int)param_7 * 2);\n                }\n                pppppppcVar30 = local_dc;\n                pppppppcVar33 = param_8;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar38[0x21] != (code ******)0x0) {\n                  pppppppcVar30 = (code *******)((int)pppppppcVar3 + -1);\n                  pppppppcVar34 = (code *******)0x0;\n                  pppppppcVar3 = param_8;\n                  while( true ) {\n                    pppppppcVar29 = (code *******)((int)pppppppcVar34 * 4);\n                    if (pppppppcVar30 == pppppppcVar34) break;\n                    if (*(code ********)((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) !=\n                        pppppppcVar34) {\n                      pppppppcVar3[2] =\n                           param_8[(int)((int)*(code ********)\n                                               ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1)\n                                   * 2];\n                      pppppppcVar3[3] =\n                           param_8[((int)*(code ******)\n                                          ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1) * 2 +\n                                   1];\n                    }\n                    pppppppcVar34 = (code *******)((int)pppppppcVar34 + 1);\n                    pppppppcVar3 = pppppppcVar3 + 2;\n                  }\n                }\n                goto LAB_000557e4;\n              }\n              if ((char)*(code *)(pppppppcVar38 + 0x16) < '\0') {\n                local_168 = (uint)(0 < (int)pppppppcVar38[0x13]);\n              }\n              else {\n                local_168 = 0;\n              }\n              pppppppcVar29 = &local_b4;\n              pppppppcVar30 = pppppppcVar3;\n              pppppppcVar33 = param_8;\n              local_150 = (code *******)FUN_0004f4a0(param_1);\n              if (local_150 == (code *******)0x0) goto LAB_000555ac;\n            }\n          }\n          else if (local_90 < 0x3fffffff) {\n            local_50 = (code *******)(*(code *)PTR_malloc_00079b54)((local_90 + 1) * 4);\n            if (local_50 != (code *******)0x0) goto LAB_00055a40;\n            local_150 = (code *******)0xc;\n            param_6 = pppppppcVar36;\n          }\n          else {\n            local_150 = (code *******)0xc;\n            param_6 = pppppppcVar36;\n          }\n        }\n        else {\n          unaff_s5 = (code *******)((int)ppppppcVar35 * 8);\n          if (pppppppcVar36 < (code *******)0xccccccd) {\n            unaff_s4 = (code *******)(*(code *)PTR_malloc_00079b54)((int)ppppppcVar35 * 0x28);\n            local_40 = unaff_s4;\n            local_30 = (*(code *)PTR_malloc_00079b54)(unaff_s5);\n            if ((unaff_s4 != (code *******)0x0) && (local_30 != 0)) goto LAB_000559f0;\n          }\n          local_150 = (code *******)0xc;\n          param_6 = pppppppcVar36;\n        }\nLAB_000557e4:\n        (*(code *)PTR_free_00079c24)(local_50);\n        param_1 = pppppppcVar30;\n        if (pppppppcVar38[0x13] != (code ******)0x0) {\n          FUN_0004b7e8(&local_b4);\n          (*(code *)PTR_free_00079c24)(local_30);\n          (*(code *)PTR_free_00079c24)(local_40);\n          param_1 = pppppppcVar30;\n        }\n        FUN_0004b2bc(&local_b4);\n        pppppppcStack_1a0 = param_4;\n        pppppppcStack_19c = pppppppcVar31;\n      }\n    }\n  }" else (if_statement "if (pppppppcVar38[0xb] == (code ******)0x0) {\n    local_150 = (code *******)0x1;\n  }\n  else {\n    pppppppcVar29 = (code *******)pppppppcVar38[0xc];\n    if (pppppppcVar29 == (code *******)0x0) {\n      local_150 = (code *******)0x1;\n    }\n    else {\n      pppppppcVar3 = param_5;\n      if ((((pppppppcVar38[9][2] == (code *****)0x0) && (pppppppcVar38[10][2] == (code *****)0x0))\n          && ((pppppppcVar38[0xb][2] == (code *****)0x0 || (((uint)param_1[7] & 0x1000000) == 0))))\n         && ((pppppppcVar3 = param_4, param_4 != (code *******)0x0 &&\n             (param_4 = param_5, pppppppcVar3 = param_5, param_5 != (code *******)0x0)))) {\n        local_150 = (code *******)0x1;\n        pppppppcStack_1a0 = param_5;\n      }\n      else {\n        param_5 = pppppppcVar3;\n        pppppppcVar3 = (code *******)((int)param_7 - local_118);\n        if (pppppppcVar3 == (code *******)0x0) {\n          pppppppcVar34 = (code *******)(uint)(pppppppcVar38[0x13] != (code ******)0x0);\n        }\n        else {\n          pppppppcVar34 = (code *******)0x1;\n        }\n        ppppppcVar32 = param_1[5];\n        local_6c = (byte)((uint)((int)param_1[3] << 9) >> 0x1f);\n        local_64 = (code *******)pppppppcVar38[0x17];\n        pppppppcVar31 = (code *******)((int)pppppppcVar38[2] + 1);\n        if ((int)pppppppcVar38[2] + 1 < (int)local_64) {\n          pppppppcVar31 = local_64;\n        }\n        pppppppcVar30 = (code *******)(uint)((int)param_3 + 1 < (int)pppppppcVar31);\n        pppppppcVar33 = (code *******)0x1;\n        local_69 = local_6c;\n        if (ppppppcVar32 != (code ******)0x0) {\n          local_69 = 1;\n        }\n        local_6b = (byte)((uint)((int)pppppppcVar38[0x16] << 2) >> 0x1f);\n        local_6a = (byte)((uint)((int)pppppppcVar38[0x16] << 3) >> 0x1f);\n        pppppppcVar29 = (code *******)((int)param_3 + 1);\n        if (pppppppcVar30 == (code *******)0x0) {\n          pppppppcVar29 = pppppppcVar31;\n        }\n        local_b4 = param_2;\n        local_88 = param_3;\n        local_84 = param_3;\n        local_80 = param_3;\n        local_7c = param_3;\n        local_74 = ppppppcVar32;\n        local_150 = (code *******)FUN_00046d2c(&local_b4);\n        pppppppcVar31 = pppppppcVar34;\n        param_6 = param_6;\n        if (local_150 != (code *******)0x0) goto LAB_000557e4;\n        local_70 = pppppppcVar38 + 0x18;\n        local_66 = (byte)((uint)((int)pppppppcVar38[0x16] << 4) >> 0x1f);\n        pppppppcVar2 = (code *******)0x0;\n        local_98 = pppppppcVar2;\n        if ((local_69 == 0) && (local_b0 = param_2, (int)pppppppcVar38[0x17] < 2)) {\n          local_98 = param_3;\n        }\n        local_7c = param_6;\n        local_80 = param_6;\n        local_67 = (byte)((uint)((int)param_1[7] << 7) >> 0x1f);\n        ppppppcVar35 = pppppppcVar38[0x13];\n        pppppppcVar36 = (code *******)((int)ppppppcVar35 * 2);\n        local_5c = param_9;\n        local_58 = (code *******)0xffffffff;\n        local_94 = local_98;\n        if ((int)pppppppcVar36 < 1) {\nLAB_000559f0:\n          local_3c = 1;\n          local_44 = pppppppcVar36;\n          local_34 = pppppppcVar36;\n          if ((pppppppcVar3 < (code *******)0x2) && (((uint)pppppppcVar38[0x16] & 0x40000000) == 0))\n          {\n            local_50 = (code *******)0x0;\nLAB_00055a40:\n            local_78 = 6;\n            if (((uint)param_9 & 1) != 0) {\n              local_78 = 4;\n            }\n            pppppppcVar24 = (code *******)0x1;\n            pppppppcVar25 = param_4;\n            if ((int)param_5 < (int)param_4) {\n              pppppppcVar24 = (code *******)0xffffffff;\n              pppppppcVar25 = param_5;\n            }\n            pppppppcVar26 = param_5;\n            if ((int)param_5 <= (int)param_4) {\n              pppppppcVar26 = param_4;\n            }\n            ppppppcVar35 = pppppppcVar38[0x17];\n            uVar16 = 8;\n            if (local_148 != (code *******)0x0) {\n              if (ppppppcVar35 == (code ******)0x1) {\n                pppppppcVar28 = (code *******)0x4;\n              }\n              else {\n                pppppppcVar28 = pppppppcVar2;\n                if ((-1 < (int)param_1[3] << 9) && (ppppppcVar32 == (code ******)0x0)) {\n                  pppppppcVar28 = (code *******)0x4;\n                }\n              }\n              pppppppcVar29 = (code *******)0x0;\n              if ((int)param_4 <= (int)param_5) {\n                pppppppcVar29 = (code *******)0x2;\n              }\n              uVar16 = (uint)(ppppppcVar32 != (code ******)0x0) | (uint)pppppppcVar28 |\n                       (uint)pppppppcVar29;\n            }\n            local_dc = param_4;\n            if ((int)param_4 < (int)pppppppcVar25) {\n              local_150 = (code *******)0x1;\n              param_6 = pppppppcVar36;\n            }\n            else if ((int)pppppppcVar26 < (int)param_4) {\n              local_150 = (code *******)0x1;\n              param_4 = (code *******)(uint)((int)param_5 < (int)param_4);\n              param_6 = pppppppcVar36;\n            }\n            else {\n              pppppppcVar36 = (code *******)&local_dc;\n              if ((code *******)(uint)((int)param_5 < (int)param_4) != (code *******)0x0) {\n                pppppppcVar36 = (code *******)0x0;\n              }\n              pcVar4 = (code *)(PTR_DAT_000799a4 + -0x2b7c);\n              piVar5 = (int *)(PTR_s_nt0_000795b8 + (uVar16 - 4) * 4 + 0x6e38);\nLAB_00055b44:\n              if (uVar16 - 4 < 5) {\n                    \n                    \n                pppppppcVar29 = (code *******)(*(code *)(&_gp_1 + *piVar5))();\n                return pppppppcVar29;\n              }\n              param_5 = &local_b4;\n              pppppppcVar28 = pppppppcVar33;\n              while( true ) {\n                param_4 = local_dc;\n                pppppppcVar33 = (code *******)((int)local_dc - local_9c);\n                pppppppcVar30 = param_9;\n                pppppppcVar31 = pppppppcVar2;\n                param_6 = local_148;\n                unaff_s4 = param_3;\n                unaff_s5 = pppppppcVar24;\n                unaff_s7 = pppppppcVar26;\n                if (local_94 <= pppppppcVar33) {\n                  pppppppcVar29 = local_dc;\n                  local_150 = (code *******)(*pcVar4)(param_5);\n                  pppppppcVar33 = pppppppcVar28;\n                  if (local_150 != (code *******)0x0) goto LAB_000557e4;\n                  pppppppcVar33 = (code *******)((int)param_4 - local_9c);\n                }\n                if ((int)param_4 < (int)param_3) {\n                  uVar7 = (uint)(byte)*(code *)((int)pppppppcVar33 + (int)local_b0);\n                }\n                else {\n                  uVar7 = 0;\n                }\n                param_4 = (code *******)((int)param_4 + (int)pppppppcVar24);\n                if (*(code *)((int)local_148 + uVar7) != (code)0x0) break;\n                pppppppcVar33 = pppppppcVar28;\n                local_dc = param_4;\n                if ((int)param_4 < (int)pppppppcVar25) {\n                  local_150 = (code *******)0x1;\n                  goto LAB_000557e4;\n                }\n                if ((code *******)(uint)((int)pppppppcVar26 < (int)param_4) != (code *******)0x0) {\n                  local_150 = (code *******)0x1;\n                  param_4 = (code *******)(uint)((int)pppppppcVar26 < (int)param_4);\n                  goto LAB_000557e4;\n                }\n              }\n              while( true ) {\n                pppppppcVar29 = local_dc;\n                pppppppcVar30 = param_9;\n                pppppppcVar6 = (code *******)(*pcVar4)(&local_b4);\n                pppppppcVar14 = local_60;\n                pppppppcVar42 = local_8c;\n                pppppppcVar33 = pppppppcVar28;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar6 != (code *******)0x0) goto LAB_000557e4;\n                if (((ppppppcVar35 != (code ******)0x1) && (local_98 != (code *******)0x0)) &&\n                   (*local_ac == -1)) goto LAB_00055b1c;\n                local_3c = 0;\n                local_48 = 0;\n                local_4c = (code *******)0x0;\n                local_138 = local_8c;\n                local_d8 = (code *******)0x0;\n                unaff_s7 = (code *******)local_60[9];\n                pppppppcVar30 = local_5c;\n                param_4 = pppppppcVar14;\n                if (((uint)unaff_s7[0xd] & 0x1000000) == 0) break;\n                pppppppcVar29 = (code *******)((int)local_8c + -1);\n                pppppppcVar33 = (code *******)FUN_00049110(&local_b4);\n                if (((uint)pppppppcVar33 & 1) == 0) {\n                  if (pppppppcVar33 == (code *******)0x0) break;\n                  if (((uint)pppppppcVar33 & 6) == 6) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xc];\n                    goto LAB_00054d1c;\n                  }\n                  if (((uint)pppppppcVar33 & 2) != 0) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xb];\n                    goto LAB_00054d1c;\n                  }\n                  pppppppcVar28 = pppppppcVar33;\n                  if (((uint)pppppppcVar33 & 4) == 0) break;\n                  pppppppcVar30 = (code *******)unaff_s7[10];\n                  pppppppcVar29 = pppppppcVar14;\n                  unaff_s7 = (code *******)FUN_0004ae34(&local_d8);\n                  pppppppcVar28 = pppppppcVar33;\n                  if (unaff_s7 != (code *******)0x0) break;\n                  if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                }\n                else {\n                  unaff_s7 = (code *******)pppppppcVar14[10];\nLAB_00054d1c:\n                  pppppppcVar28 = (code *******)PTR_s_nt0_000795b8;\n                  if (unaff_s7 != (code *******)0x0) break;\n                }\n                pppppppcVar28 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                local_dc = (code *******)\n                           (*(code *)PTR___assert_fail_000799f8)\n                                     (PTR_s_nt0_000795b8 + 0x71a0,pppppppcVar29,0x435);\n                if (local_dc == pppppppcVar26) {\n                  if ((int)local_dc < (int)param_3) {\n                    uVar7 = (uint)(byte)*(code *)((int)local_dc + (int)param_2);\n                  }\n                  else {\n                    uVar7 = 0;\n                  }\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    uVar7 = (uint)*(byte *)((int)ppppppcVar32 + uVar7);\n                  }\n                  if (*(code *)((int)local_148 + uVar7) == (code)0x0) {\n                    local_150 = (code *******)0x1;\n                    pppppppcVar30 = param_9;\n                    pppppppcVar33 = pppppppcVar28;\n                    goto LAB_000557e4;\n                  }\n                }\n              }\n              pppppppcVar33 = pppppppcVar28;\n              bVar1 = pppppppcVar36 != (code *******)0x0;\n              if ((local_50 == (code *******)0x0) ||\n                 (local_50[(int)pppppppcVar42] = (code ******)unaff_s7,\n                 pppppppcVar14[0x13] == (code ******)0x0)) {\nLAB_00054d50:\n                if ((int)unaff_s7[0xd] << 4 < 0) {\n                  if ((((uint)unaff_s7[0xd] & 0x1000000) == 0) ||\n                     (pppppppcVar29 = unaff_s7, pppppppcVar30 = pppppppcVar42,\n                     iVar18 = FUN_00049440(&local_b4), iVar18 != 0)) {\n                    unaff_s8 = pppppppcVar42;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                  }\n                  else {\n                    pppppppcVar42 = (code *******)0xffffffff;\n                    pppppppcVar28 = (code *******)0x0;\n                  }\n                }\n                else {\n                  pppppppcVar42 = (code *******)0xffffffff;\n                  pppppppcVar28 = (code *******)0x0;\n                }\n                pcVar8 = (code *)(PTR_DAT_000799a4 + -0x7144);\n                pcVar9 = (code *)(PTR_DAT_000799a4 + -0x1980);\n                pcVar10 = (code *)(PTR_DAT_000799a4 + -0x2f9c);\n                unaff_s8 = pppppppcVar42;\n                local_144 = pppppppcVar36;\n                while( true ) {\n                  uVar44 = CONCAT44(local_98,local_84);\n                  unaff_s5 = (code *******)((int)local_8c + 1);\n                  pppppppcVar29 = local_8c;\n                  if ((int)local_7c <= (int)local_8c) break;\n                  if (((int)local_90 <= (int)unaff_s5) && ((int)local_90 < (int)local_84))\n                  goto LAB_00054e94;\n                  if ((int)local_98 <= (int)unaff_s5) {\n                    while ((int)((ulonglong)uVar44 >> 0x20) < (int)uVar44) {\nLAB_00054e94:\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 2);\n                      local_d8 = (code *******)(*pcVar8)(&local_b4);\n                      if (local_d8 == (code *******)0x0) break;\n                      pppppppcVar14 = param_4;\n                      if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                      pppppppcVar33 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                      pppppppcVar30 = (code *******)0x46c;\n                      pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                      uVar44 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0);\n                      pppppppcVar28 = pppppppcVar38;\n                    }\n                  }\n                  pppppppcVar42 = local_60;\n                  if ((int)unaff_s7[0xd] << 5 < 0) {\n                    pppppppcVar31 = pppppppcVar42;\n                    if (0 < (int)unaff_s7[2]) {\n                      pcVar11 = (code *)(PTR_DAT_000799a4 + -0x6fdc);\n                      pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6ef0);\n                      param_6 = (code *******)0x0;\n                      do {\n                        param_5 = (code *******)unaff_s7[3][(int)param_6];\n                        ppppppcVar39 = *pppppppcVar42;\n                        pppppcVar13 = ppppppcVar39[(int)param_5 * 2 + 1];\n                        if (((uint)pppppcVar13 & 0x800) != 0) {\n                          if (((uint)pppppcVar13 & 0xffc000) != 0) {\n                            pppppppcVar29 = local_8c;\n                            uVar19 = (*pcVar12)(&local_b4,local_8c,local_5c);\n                            uVar7 = (uint)((int)ppppppcVar39[(int)param_5 * 2 + 1] << 8) >> 0x16;\n                            if ((uVar7 & 4) == 0) {\n                              uVar27 = uVar19 & 1;\n                              if ((uVar7 & 8) != 0) goto joined_r0x00054f40;\n                            }\n                            else {\n                              uVar27 = uVar7 & 8;\n                              if ((uVar19 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                              if (uVar27 != 0) goto LAB_000550a4;\n                            }\n                            if ((((uVar7 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                               (((uVar7 & 0x80) != 0 &&\n                                (pppppppcVar33 = local_8c, (uVar19 & 8) == 0)))) goto LAB_000550a4;\n                          }\n                          pppppppcVar30 = &local_b4;\n                          pppppppcVar29 = param_5;\n                          pppppppcVar33 = local_8c;\n                          iVar18 = (*pcVar10)(pppppppcVar42);\n                          if (iVar18 != 0) {\n                            pppppppcVar14 = (code *******)((int)local_8c + iVar18);\n                            if (iVar18 <= local_3c) {\n                              iVar18 = local_3c;\n                            }\n                            pppppppcVar29 = pppppppcVar14;\n                            local_3c = iVar18;\n                            local_d4 = (code *******)(*pcVar11)(&local_b4);\n                            pppppppcVar15 = local_d4;\n                            if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                            pppppppcVar30 =\n                                 (code *******)\n                                 (pppppppcVar42[6] + (int)pppppppcVar42[3][(int)param_5] * 3);\n                            unaff_s4 = (code *******)((int)pppppppcVar14 * 4);\n                            param_5 = local_50 + (int)pppppppcVar14;\n                            if (*param_5 == (code ******)0x0) {\n                              local_d0 = (code *******)*pppppppcVar30;\n                              local_cc = (code *******)pppppppcVar30[1];\n                              local_c8 = (code *******)pppppppcVar30[2];\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *param_5 = ppppppcVar39;\n                            }\n                            else {\n                              pppppppcVar29 = (code *******)(*param_5)[10];\n                              local_d4 = (code *******)FUN_000484bc(&local_d0);\n                              pppppppcVar15 = local_d4;\n                              if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar15 = local_50 + (int)pppppppcVar14;\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *pppppppcVar15 = ppppppcVar39;\n                              (*(code *)PTR_free_00079c24)(local_c8);\n                            }\n                            unaff_s4 = local_50 + (int)pppppppcVar14;\n                            if ((*unaff_s4 == (code ******)0x0) &&\n                               (pppppppcVar15 = local_d4, local_d4 != (code *******)0x0))\n                            goto LAB_00055e44;\n                          }\n                        }\nLAB_000550a4:\n                        param_6 = (code *******)((int)param_6 + 1);\n                      } while ((int)param_6 < (int)unaff_s7[2]);\n                    }\n                    local_d8 = (code *******)0x0;\n                  }\n                  uVar7 = (uint)(byte)*(code *)((int)local_8c + (int)local_b0);\n                  local_8c = (code *******)((int)local_8c + 1);\n                  do {\n                    if (unaff_s7[0xb] != (code ******)0x0) {\n                      pppppppcVar30 = (code *******)unaff_s7[0xb][uVar7];\nLAB_000553a0:\n                      pppppppcVar14 = pppppppcVar30;\n                      if (local_50 != (code *******)0x0) goto LAB_000553ac;\n                      goto LAB_000553cc;\n                    }\n                    pppppppcVar31 = (code *******)unaff_s7[0xc];\n                    if (pppppppcVar31 != (code *******)0x0) {\n                      pppppppcVar29 = (code *******)((int)local_8c + -1);\n                      uVar19 = FUN_00049110(&local_b4);\n                      if ((uVar19 & 1) == 0) {\n                        pppppppcVar30 = (code *******)pppppppcVar31[uVar7];\n                      }\n                      else {\n                        pppppppcVar31 = pppppppcVar31 + uVar7 + 0x100;\n                        pppppppcVar30 = (code *******)*pppppppcVar31;\n                      }\n                      goto LAB_000553a0;\n                    }\n                    pppppppcVar29 = unaff_s7;\n                    pppppppcVar30 = local_5c;\n                    iVar18 = (*pcVar9)(local_60);\n                  } while (iVar18 != 0);\n                  local_d8 = (code *******)0xc;\n                  pppppppcVar15 = local_d8;\nLAB_00055e44:\n                  local_d8 = pppppppcVar15;\n                  param_4 = (code *******)0x0;\n                  if (local_50 == (code *******)0x0) {\n                    pppppppcVar14 = param_4;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    break;\n                  }\n                  pppppppcVar30 = (code *******)0x0;\nLAB_000553ac:\n                  pppppppcVar29 = &local_b4;\n                  pppppppcVar14 = (code *******)FUN_00053684(&local_d8);\nLAB_000553cc:\n                  param_4 = pppppppcVar14;\n                  if (pppppppcVar14 == (code *******)0x0) {\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    if ((local_50 == (code *******)0x0) ||\n                       ((pppppppcVar28 != (code *******)0x0 && (pppppppcVar34 == (code *******)0x0))\n                       )) break;\n                    param_6 = &local_b4;\n                    param_5 = (code *******)&local_d8;\n                    pppppppcVar31 = (code *******)(PTR_DAT_000799a4 + 0x3684);\n                    do {\n                      pppppppcVar15 = local_50 + (int)local_8c;\n                      pppppppcVar42 = local_8c;\n                      do {\n                        pppppppcVar42 = (code *******)((int)pppppppcVar42 + 1);\n                        pppppppcVar29 = local_4c;\n                        param_4 = pppppppcVar14;\n                        if ((int)local_4c < (int)pppppppcVar42) goto LAB_00055da8;\n                        local_8c = (code *******)((int)local_8c + 1);\n                        pppppppcVar15 = pppppppcVar15 + 1;\n                      } while (*pppppppcVar15 == (code ******)0x0);\n                      pppppppcVar30 = (code *******)0x0;\n                      pppppppcVar29 = param_6;\n                      param_4 = (code *******)(*(code *)pppppppcVar31)(param_5);\n                      if (local_d8 != (code *******)0x0) {\n                        if (param_4 == (code *******)0x0) goto LAB_00055da8;\n                        break;\n                      }\n                      pppppppcVar29 = local_4c;\n                    } while (param_4 == (code *******)0x0);\n                  }\n                  pppppppcVar15 = (code *******)((uint)unaff_s7 ^ (uint)param_4);\n                  pppppppcVar42 = unaff_s7;\n                  pppppppcVar14 = local_138;\n                  if ((bVar1) &&\n                     (pppppppcVar42 = pppppppcVar15, pppppppcVar14 = unaff_s5,\n                     pppppppcVar15 != (code *******)0x0)) {\n                    bVar1 = false;\n                    pppppppcVar14 = local_138;\n                  }\n                  local_138 = pppppppcVar14;\n                  unaff_s7 = param_4;\n                  if ((((uint)param_4[0xd] & 0x8000000) != 0) &&\n                     ((((uint)param_4[0xd] & 0x1000000) == 0 ||\n                      (pppppppcVar29 = param_4, pppppppcVar30 = local_8c,\n                      iVar18 = FUN_00049440(&local_b4), iVar18 != 0)))) {\n                    unaff_s7 = pppppppcVar42;\n                    unaff_s8 = local_8c;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                    local_144 = (code *******)0x0;\n                    unaff_s7 = param_4;\n                  }\n                }\nLAB_00055da8:\n                if (local_144 != (code *******)0x0) {\n                  *local_144 = (code ******)((int)local_138 + (int)*local_144);\n                }\n              }\n              else {\n                param_4 = unaff_s7 + 1;\n                pppppppcVar30 = (code *******)0x0;\n                pppppppcVar29 = param_4;\n                local_d8 = (code *******)FUN_00047a44(&local_b4);\n                unaff_s8 = local_d8;\n                if (local_d8 == (code *******)0x0) {\n                  if (((uint)unaff_s7[0xd] & 0x2000000) == 0) {\n                    pppppppcVar29 = param_4;\n                    bVar1 = false;\n                  }\n                  else {\n                    pppppppcVar29 = param_4;\n                    local_d8 = (code *******)FUN_00052d84(&local_b4);\n                    unaff_s8 = local_d8;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055dbc;\n                    bVar1 = false;\n                  }\n                  goto LAB_00054d50;\n                }\n              }\nLAB_00055dbc:\n              if (unaff_s8 == (code *******)0xffffffff) {\nLAB_00055b04:\n                FUN_0004b7e8(&local_b4);\nLAB_00055b1c:\n                local_dc = (code *******)((int)pppppppcVar24 + (int)local_dc);\n                if ((int)pppppppcVar25 <= (int)local_dc) goto code_r0x00055b38;\n                local_150 = (code *******)0x1;\n                goto LAB_000557e4;\n              }\n              if (unaff_s8 == (code *******)&SUB_fffffffe) {\n                local_150 = (code *******)0xc;\n                goto LAB_000557e4;\n              }\n              local_58 = unaff_s8;\n              if (((uint)param_1[7] & 0x8000000) == 0) {\n                if (pppppppcVar3 < (code *******)0x2) {\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055c08;\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                else {\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                if (pppppppcVar3 < (code *******)0x2) {\nLAB_00055c6c:\n                  pppppppcVar28 = pppppppcVar33;\n                  unaff_s4 = local_60;\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055548;\n                }\n                else {\n                  cVar23 = *(code *)(pppppppcVar38 + 0x16);\nLAB_00055c20:\n                  pppppppcVar28 = pppppppcVar33;\n                  if (-1 < (char)cVar23) goto LAB_00055c6c;\n                }\n                pppppppcVar31 = local_54;\n                pppppppcVar42 = local_60;\n                unaff_s4 = pppppppcVar42;\n                if (unaff_s8 < (code *******)0x3fffffff) {\n                  param_4 = (code *******)((int)((int)unaff_s8 + 1) * 4);\n                  unaff_s5 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                  if (unaff_s5 == (code *******)0x0) {\nLAB_00055b9c:\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    local_150 = (code *******)0xc;\n                    pppppppcVar33 = pppppppcVar28;\n                  }\n                  else {\n                    pppppppcVar29 = (code *******)&local_d0;\n                    if (pppppppcVar42[0x13] == (code ******)0x0) {\n                      local_cc = (code *******)0x0;\n                      local_c8 = pppppppcVar31;\n                      local_c0 = 0;\n                      local_bc = 0;\n                      local_b8 = 0;\n                      local_d0 = unaff_s5;\n                      local_c4 = unaff_s8;\n                      param_5 = (code *******)FUN_0005421c(&local_b4);\n                      (*(code *)PTR_free_00079c24)(local_b8);\n                      if (param_5 == (code *******)0x0) {\n                        param_4 = (code *******)*unaff_s5;\n                        if (param_4 == (code *******)0x0) {\nLAB_00055b70:\n                          (*(code *)PTR_free_00079c24)(unaff_s5);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          pppppppcVar33 = pppppppcVar28;\n                          goto LAB_00055b04;\n                        }\nLAB_00055528:\n                        (*(code *)PTR_free_00079c24)(local_50);\n                        pppppppcVar33 = pppppppcVar28;\n                        unaff_s4 = pppppppcVar42;\n                        local_58 = unaff_s8;\n                        local_54 = pppppppcVar31;\n                        local_50 = unaff_s5;\n                        goto LAB_00055548;\n                      }\nLAB_00055acc:\n                      param_4 = (code *******)0x0;\n                      pppppppcVar33 = pppppppcVar28;\n                      unaff_s4 = pppppppcVar42;\n                    }\n                    else {\n                      param_4 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                      if (param_4 == (code *******)0x0) goto LAB_00055b9c;\n                      unaff_s7 = (code *******)&local_d0;\n                      pcVar8 = (code *)(PTR_DAT_000799a4 + 0x421c);\n                      pcVar9 = (code *)(PTR_DAT_000799a4 + -0x6bc0);\n                      pppppppcVar33 = pppppppcVar28;\n                      while( true ) {\n                        pppppppcVar28 = (code *******)((int)unaff_s8 + 1);\n                        param_6 = (code *******)((int)pppppppcVar28 * 4);\n                        pppppppcVar30 = param_6;\n                        (*(code *)PTR_memset_00079b00)(param_4,0);\n                        local_c0 = 0;\n                        local_bc = 0;\n                        local_b8 = 0;\n                        pppppppcVar29 = unaff_s7;\n                        local_d0 = unaff_s5;\n                        local_cc = param_4;\n                        local_c8 = pppppppcVar31;\n                        local_c4 = unaff_s8;\n                        param_5 = (code *******)(*pcVar8)(&local_b4);\n                        (*(code *)PTR_free_00079c24)(local_b8);\n                        unaff_s4 = pppppppcVar28;\n                        if (param_5 != (code *******)0x0) break;\n                        if ((*unaff_s5 != (code ******)0x0) ||\n                           (param_6 = param_6 + -1, *param_4 != (code ******)0x0)) {\n                          pppppppcVar29 = unaff_s5;\n                          pppppppcVar30 = param_4;\n                          param_5 = (code *******)FUN_000520d0(pppppppcVar42);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          if (param_5 != (code *******)0x0) goto LAB_00055acc;\n                          goto LAB_00055528;\n                        }\n                        param_6 = (code *******)((int)local_50 + (int)param_6);\n                        do {\n                          while( true ) {\n                            unaff_s8 = (code *******)((int)unaff_s8 + -1);\n                            if ((int)unaff_s8 < 0) goto LAB_00055b70;\n                            pppppppcVar29 = (code *******)param_6[-1];\n                            if (pppppppcVar29 != (code *******)0x0) break;\n                            param_6 = param_6 + -1;\n                          }\n                          param_6 = param_6 + -1;\n                        } while (((uint)pppppppcVar29[0xd] & 0x8000000) == 0);\n                        pppppppcVar31 = (code *******)(*pcVar9)(&local_b4,pppppppcVar29,unaff_s8);\n                        pppppppcVar33 = pppppppcVar28;\n                      }\n                    }\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    (*(code *)PTR_free_00079c24)(param_4);\n                    local_150 = param_5;\n                    if (param_5 == (code *******)0x1) goto LAB_00055b04;\n                  }\n                }\n                else {\n                  local_150 = (code *******)0xc;\n                  pppppppcVar33 = pppppppcVar28;\n                }\n                goto LAB_000557e4;\n              }\n              if (pppppppcVar38[0x13] != (code ******)0x0) {\n                pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                pppppppcVar30 = unaff_s8;\n                local_54 = (code *******)FUN_00049440(&local_b4);\n                goto LAB_00055c6c;\n              }\nLAB_00055c08:\n              if ((((uint)param_1[7] & 0x8000000) == 0) && ((code *******)0x1 < pppppppcVar3)) {\n                cVar23 = *(code *)(pppppppcVar38 + 0x16);\n                goto LAB_00055c20;\n              }\nLAB_00055548:\n              if (pppppppcVar3 == (code *******)0x0) goto LAB_000557e4;\n              if (pppppppcVar3 < (code *******)0x2) {\n                *param_8 = (code ******)0x0;\n                param_8[1] = (code ******)local_58;\n                goto LAB_000555ac;\n              }\n              pppppppcVar29 = param_8 + 2;\n              do {\n                pppppppcVar29[1] = (code ******)0xffffffff;\n                *pppppppcVar29 = (code ******)0xffffffff;\n                pppppppcVar29 = pppppppcVar29 + 2;\n              } while (pppppppcVar29 != param_8 + (int)pppppppcVar3 * 2);\n              *param_8 = (code ******)0x0;\n              param_8[1] = (code ******)local_58;\n              if (((uint)param_1[7] & 0x8000000) != 0) {\nLAB_000555ac:\n                pppppppcVar33 = param_8;\n                do {\n                  pppppppcVar29 = (code *******)*pppppppcVar33;\n                  if (pppppppcVar29 != (code *******)0xffffffff) {\n                    if (local_68 != '\0') {\n                      pppppppcVar34 = local_94;\n                      if (pppppppcVar29 != local_98) {\n                        pppppppcVar34 = *(code ********)(local_a8 + (int)pppppppcVar29 * 4);\n                      }\n                      *pppppppcVar33 = (code ******)pppppppcVar34;\n                      pppppppcVar29 = local_94;\n                      if (local_98 != (code *******)pppppppcVar33[1]) {\n                        pppppppcVar29 = *(code ********)(local_a8 + (int)pppppppcVar33[1] * 4);\n                      }\n                      pppppppcVar33[1] = (code ******)pppppppcVar29;\n                    }\n                    *pppppppcVar33 = (code ******)((int)local_dc + (int)*pppppppcVar33);\n                    pppppppcVar29 = (code *******)((int)local_dc + (int)pppppppcVar33[1]);\n                    pppppppcVar33[1] = (code ******)pppppppcVar29;\n                  }\n                  pppppppcVar33 = pppppppcVar33 + 2;\n                } while (pppppppcVar33 != param_8 + (int)pppppppcVar3 * 2);\n                if (0 < local_118) {\n                  pppppppcVar33 = param_8 + (int)pppppppcVar3 * 2;\n                  do {\n                    *pppppppcVar33 = (code ******)0xffffffff;\n                    pppppppcVar33[1] = (code ******)0xffffffff;\n                    pppppppcVar33 = pppppppcVar33 + 2;\n                  } while (pppppppcVar33 != param_8 + (int)param_7 * 2);\n                }\n                pppppppcVar30 = local_dc;\n                pppppppcVar33 = param_8;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar38[0x21] != (code ******)0x0) {\n                  pppppppcVar30 = (code *******)((int)pppppppcVar3 + -1);\n                  pppppppcVar34 = (code *******)0x0;\n                  pppppppcVar3 = param_8;\n                  while( true ) {\n                    pppppppcVar29 = (code *******)((int)pppppppcVar34 * 4);\n                    if (pppppppcVar30 == pppppppcVar34) break;\n                    if (*(code ********)((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) !=\n                        pppppppcVar34) {\n                      pppppppcVar3[2] =\n                           param_8[(int)((int)*(code ********)\n                                               ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1)\n                                   * 2];\n                      pppppppcVar3[3] =\n                           param_8[((int)*(code ******)\n                                          ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1) * 2 +\n                                   1];\n                    }\n                    pppppppcVar34 = (code *******)((int)pppppppcVar34 + 1);\n                    pppppppcVar3 = pppppppcVar3 + 2;\n                  }\n                }\n                goto LAB_000557e4;\n              }\n              if ((char)*(code *)(pppppppcVar38 + 0x16) < '\0') {\n                local_168 = (uint)(0 < (int)pppppppcVar38[0x13]);\n              }\n              else {\n                local_168 = 0;\n              }\n              pppppppcVar29 = &local_b4;\n              pppppppcVar30 = pppppppcVar3;\n              pppppppcVar33 = param_8;\n              local_150 = (code *******)FUN_0004f4a0(param_1);\n              if (local_150 == (code *******)0x0) goto LAB_000555ac;\n            }\n          }\n          else if (local_90 < 0x3fffffff) {\n            local_50 = (code *******)(*(code *)PTR_malloc_00079b54)((local_90 + 1) * 4);\n            if (local_50 != (code *******)0x0) goto LAB_00055a40;\n            local_150 = (code *******)0xc;\n            param_6 = pppppppcVar36;\n          }\n          else {\n            local_150 = (code *******)0xc;\n            param_6 = pppppppcVar36;\n          }\n        }\n        else {\n          unaff_s5 = (code *******)((int)ppppppcVar35 * 8);\n          if (pppppppcVar36 < (code *******)0xccccccd) {\n            unaff_s4 = (code *******)(*(code *)PTR_malloc_00079b54)((int)ppppppcVar35 * 0x28);\n            local_40 = unaff_s4;\n            local_30 = (*(code *)PTR_malloc_00079b54)(unaff_s5);\n            if ((unaff_s4 != (code *******)0x0) && (local_30 != 0)) goto LAB_000559f0;\n          }\n          local_150 = (code *******)0xc;\n          param_6 = pppppppcVar36;\n        }\nLAB_000557e4:\n        (*(code *)PTR_free_00079c24)(local_50);\n        param_1 = pppppppcVar30;\n        if (pppppppcVar38[0x13] != (code ******)0x0) {\n          FUN_0004b7e8(&local_b4);\n          (*(code *)PTR_free_00079c24)(local_30);\n          (*(code *)PTR_free_00079c24)(local_40);\n          param_1 = pppppppcVar30;\n        }\n        FUN_0004b2bc(&local_b4);\n        pppppppcStack_1a0 = param_4;\n        pppppppcStack_19c = pppppppcVar31;\n      }\n    }\n  }" if (parenthesized_expression "(pppppppcVar38[0xb] == (code ******)0x0)" ( (binary_expression "pppppppcVar38[0xb] == (code ******)0x0" (subscript_expression "pppppppcVar38[0xb]" identifier [ number_literal ]) == (cast_expression "(code ******)0x0" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (compound_statement "{\n    local_150 = (code *******)0x1;\n  }" { (expression_statement "local_150 = (code *******)0x1;" (assignment_expression "local_150 = (code *******)0x1" identifier = (cast_expression "(code *******)0x1" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) }) (else_clause "else {\n    pppppppcVar29 = (code *******)pppppppcVar38[0xc];\n    if (pppppppcVar29 == (code *******)0x0) {\n      local_150 = (code *******)0x1;\n    }\n    else {\n      pppppppcVar3 = param_5;\n      if ((((pppppppcVar38[9][2] == (code *****)0x0) && (pppppppcVar38[10][2] == (code *****)0x0))\n          && ((pppppppcVar38[0xb][2] == (code *****)0x0 || (((uint)param_1[7] & 0x1000000) == 0))))\n         && ((pppppppcVar3 = param_4, param_4 != (code *******)0x0 &&\n             (param_4 = param_5, pppppppcVar3 = param_5, param_5 != (code *******)0x0)))) {\n        local_150 = (code *******)0x1;\n        pppppppcStack_1a0 = param_5;\n      }\n      else {\n        param_5 = pppppppcVar3;\n        pppppppcVar3 = (code *******)((int)param_7 - local_118);\n        if (pppppppcVar3 == (code *******)0x0) {\n          pppppppcVar34 = (code *******)(uint)(pppppppcVar38[0x13] != (code ******)0x0);\n        }\n        else {\n          pppppppcVar34 = (code *******)0x1;\n        }\n        ppppppcVar32 = param_1[5];\n        local_6c = (byte)((uint)((int)param_1[3] << 9) >> 0x1f);\n        local_64 = (code *******)pppppppcVar38[0x17];\n        pppppppcVar31 = (code *******)((int)pppppppcVar38[2] + 1);\n        if ((int)pppppppcVar38[2] + 1 < (int)local_64) {\n          pppppppcVar31 = local_64;\n        }\n        pppppppcVar30 = (code *******)(uint)((int)param_3 + 1 < (int)pppppppcVar31);\n        pppppppcVar33 = (code *******)0x1;\n        local_69 = local_6c;\n        if (ppppppcVar32 != (code ******)0x0) {\n          local_69 = 1;\n        }\n        local_6b = (byte)((uint)((int)pppppppcVar38[0x16] << 2) >> 0x1f);\n        local_6a = (byte)((uint)((int)pppppppcVar38[0x16] << 3) >> 0x1f);\n        pppppppcVar29 = (code *******)((int)param_3 + 1);\n        if (pppppppcVar30 == (code *******)0x0) {\n          pppppppcVar29 = pppppppcVar31;\n        }\n        local_b4 = param_2;\n        local_88 = param_3;\n        local_84 = param_3;\n        local_80 = param_3;\n        local_7c = param_3;\n        local_74 = ppppppcVar32;\n        local_150 = (code *******)FUN_00046d2c(&local_b4);\n        pppppppcVar31 = pppppppcVar34;\n        param_6 = param_6;\n        if (local_150 != (code *******)0x0) goto LAB_000557e4;\n        local_70 = pppppppcVar38 + 0x18;\n        local_66 = (byte)((uint)((int)pppppppcVar38[0x16] << 4) >> 0x1f);\n        pppppppcVar2 = (code *******)0x0;\n        local_98 = pppppppcVar2;\n        if ((local_69 == 0) && (local_b0 = param_2, (int)pppppppcVar38[0x17] < 2)) {\n          local_98 = param_3;\n        }\n        local_7c = param_6;\n        local_80 = param_6;\n        local_67 = (byte)((uint)((int)param_1[7] << 7) >> 0x1f);\n        ppppppcVar35 = pppppppcVar38[0x13];\n        pppppppcVar36 = (code *******)((int)ppppppcVar35 * 2);\n        local_5c = param_9;\n        local_58 = (code *******)0xffffffff;\n        local_94 = local_98;\n        if ((int)pppppppcVar36 < 1) {\nLAB_000559f0:\n          local_3c = 1;\n          local_44 = pppppppcVar36;\n          local_34 = pppppppcVar36;\n          if ((pppppppcVar3 < (code *******)0x2) && (((uint)pppppppcVar38[0x16] & 0x40000000) == 0))\n          {\n            local_50 = (code *******)0x0;\nLAB_00055a40:\n            local_78 = 6;\n            if (((uint)param_9 & 1) != 0) {\n              local_78 = 4;\n            }\n            pppppppcVar24 = (code *******)0x1;\n            pppppppcVar25 = param_4;\n            if ((int)param_5 < (int)param_4) {\n              pppppppcVar24 = (code *******)0xffffffff;\n              pppppppcVar25 = param_5;\n            }\n            pppppppcVar26 = param_5;\n            if ((int)param_5 <= (int)param_4) {\n              pppppppcVar26 = param_4;\n            }\n            ppppppcVar35 = pppppppcVar38[0x17];\n            uVar16 = 8;\n            if (local_148 != (code *******)0x0) {\n              if (ppppppcVar35 == (code ******)0x1) {\n                pppppppcVar28 = (code *******)0x4;\n              }\n              else {\n                pppppppcVar28 = pppppppcVar2;\n                if ((-1 < (int)param_1[3] << 9) && (ppppppcVar32 == (code ******)0x0)) {\n                  pppppppcVar28 = (code *******)0x4;\n                }\n              }\n              pppppppcVar29 = (code *******)0x0;\n              if ((int)param_4 <= (int)param_5) {\n                pppppppcVar29 = (code *******)0x2;\n              }\n              uVar16 = (uint)(ppppppcVar32 != (code ******)0x0) | (uint)pppppppcVar28 |\n                       (uint)pppppppcVar29;\n            }\n            local_dc = param_4;\n            if ((int)param_4 < (int)pppppppcVar25) {\n              local_150 = (code *******)0x1;\n              param_6 = pppppppcVar36;\n            }\n            else if ((int)pppppppcVar26 < (int)param_4) {\n              local_150 = (code *******)0x1;\n              param_4 = (code *******)(uint)((int)param_5 < (int)param_4);\n              param_6 = pppppppcVar36;\n            }\n            else {\n              pppppppcVar36 = (code *******)&local_dc;\n              if ((code *******)(uint)((int)param_5 < (int)param_4) != (code *******)0x0) {\n                pppppppcVar36 = (code *******)0x0;\n              }\n              pcVar4 = (code *)(PTR_DAT_000799a4 + -0x2b7c);\n              piVar5 = (int *)(PTR_s_nt0_000795b8 + (uVar16 - 4) * 4 + 0x6e38);\nLAB_00055b44:\n              if (uVar16 - 4 < 5) {\n                    \n                    \n                pppppppcVar29 = (code *******)(*(code *)(&_gp_1 + *piVar5))();\n                return pppppppcVar29;\n              }\n              param_5 = &local_b4;\n              pppppppcVar28 = pppppppcVar33;\n              while( true ) {\n                param_4 = local_dc;\n                pppppppcVar33 = (code *******)((int)local_dc - local_9c);\n                pppppppcVar30 = param_9;\n                pppppppcVar31 = pppppppcVar2;\n                param_6 = local_148;\n                unaff_s4 = param_3;\n                unaff_s5 = pppppppcVar24;\n                unaff_s7 = pppppppcVar26;\n                if (local_94 <= pppppppcVar33) {\n                  pppppppcVar29 = local_dc;\n                  local_150 = (code *******)(*pcVar4)(param_5);\n                  pppppppcVar33 = pppppppcVar28;\n                  if (local_150 != (code *******)0x0) goto LAB_000557e4;\n                  pppppppcVar33 = (code *******)((int)param_4 - local_9c);\n                }\n                if ((int)param_4 < (int)param_3) {\n                  uVar7 = (uint)(byte)*(code *)((int)pppppppcVar33 + (int)local_b0);\n                }\n                else {\n                  uVar7 = 0;\n                }\n                param_4 = (code *******)((int)param_4 + (int)pppppppcVar24);\n                if (*(code *)((int)local_148 + uVar7) != (code)0x0) break;\n                pppppppcVar33 = pppppppcVar28;\n                local_dc = param_4;\n                if ((int)param_4 < (int)pppppppcVar25) {\n                  local_150 = (code *******)0x1;\n                  goto LAB_000557e4;\n                }\n                if ((code *******)(uint)((int)pppppppcVar26 < (int)param_4) != (code *******)0x0) {\n                  local_150 = (code *******)0x1;\n                  param_4 = (code *******)(uint)((int)pppppppcVar26 < (int)param_4);\n                  goto LAB_000557e4;\n                }\n              }\n              while( true ) {\n                pppppppcVar29 = local_dc;\n                pppppppcVar30 = param_9;\n                pppppppcVar6 = (code *******)(*pcVar4)(&local_b4);\n                pppppppcVar14 = local_60;\n                pppppppcVar42 = local_8c;\n                pppppppcVar33 = pppppppcVar28;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar6 != (code *******)0x0) goto LAB_000557e4;\n                if (((ppppppcVar35 != (code ******)0x1) && (local_98 != (code *******)0x0)) &&\n                   (*local_ac == -1)) goto LAB_00055b1c;\n                local_3c = 0;\n                local_48 = 0;\n                local_4c = (code *******)0x0;\n                local_138 = local_8c;\n                local_d8 = (code *******)0x0;\n                unaff_s7 = (code *******)local_60[9];\n                pppppppcVar30 = local_5c;\n                param_4 = pppppppcVar14;\n                if (((uint)unaff_s7[0xd] & 0x1000000) == 0) break;\n                pppppppcVar29 = (code *******)((int)local_8c + -1);\n                pppppppcVar33 = (code *******)FUN_00049110(&local_b4);\n                if (((uint)pppppppcVar33 & 1) == 0) {\n                  if (pppppppcVar33 == (code *******)0x0) break;\n                  if (((uint)pppppppcVar33 & 6) == 6) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xc];\n                    goto LAB_00054d1c;\n                  }\n                  if (((uint)pppppppcVar33 & 2) != 0) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xb];\n                    goto LAB_00054d1c;\n                  }\n                  pppppppcVar28 = pppppppcVar33;\n                  if (((uint)pppppppcVar33 & 4) == 0) break;\n                  pppppppcVar30 = (code *******)unaff_s7[10];\n                  pppppppcVar29 = pppppppcVar14;\n                  unaff_s7 = (code *******)FUN_0004ae34(&local_d8);\n                  pppppppcVar28 = pppppppcVar33;\n                  if (unaff_s7 != (code *******)0x0) break;\n                  if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                }\n                else {\n                  unaff_s7 = (code *******)pppppppcVar14[10];\nLAB_00054d1c:\n                  pppppppcVar28 = (code *******)PTR_s_nt0_000795b8;\n                  if (unaff_s7 != (code *******)0x0) break;\n                }\n                pppppppcVar28 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                local_dc = (code *******)\n                           (*(code *)PTR___assert_fail_000799f8)\n                                     (PTR_s_nt0_000795b8 + 0x71a0,pppppppcVar29,0x435);\n                if (local_dc == pppppppcVar26) {\n                  if ((int)local_dc < (int)param_3) {\n                    uVar7 = (uint)(byte)*(code *)((int)local_dc + (int)param_2);\n                  }\n                  else {\n                    uVar7 = 0;\n                  }\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    uVar7 = (uint)*(byte *)((int)ppppppcVar32 + uVar7);\n                  }\n                  if (*(code *)((int)local_148 + uVar7) == (code)0x0) {\n                    local_150 = (code *******)0x1;\n                    pppppppcVar30 = param_9;\n                    pppppppcVar33 = pppppppcVar28;\n                    goto LAB_000557e4;\n                  }\n                }\n              }\n              pppppppcVar33 = pppppppcVar28;\n              bVar1 = pppppppcVar36 != (code *******)0x0;\n              if ((local_50 == (code *******)0x0) ||\n                 (local_50[(int)pppppppcVar42] = (code ******)unaff_s7,\n                 pppppppcVar14[0x13] == (code ******)0x0)) {\nLAB_00054d50:\n                if ((int)unaff_s7[0xd] << 4 < 0) {\n                  if ((((uint)unaff_s7[0xd] & 0x1000000) == 0) ||\n                     (pppppppcVar29 = unaff_s7, pppppppcVar30 = pppppppcVar42,\n                     iVar18 = FUN_00049440(&local_b4), iVar18 != 0)) {\n                    unaff_s8 = pppppppcVar42;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                  }\n                  else {\n                    pppppppcVar42 = (code *******)0xffffffff;\n                    pppppppcVar28 = (code *******)0x0;\n                  }\n                }\n                else {\n                  pppppppcVar42 = (code *******)0xffffffff;\n                  pppppppcVar28 = (code *******)0x0;\n                }\n                pcVar8 = (code *)(PTR_DAT_000799a4 + -0x7144);\n                pcVar9 = (code *)(PTR_DAT_000799a4 + -0x1980);\n                pcVar10 = (code *)(PTR_DAT_000799a4 + -0x2f9c);\n                unaff_s8 = pppppppcVar42;\n                local_144 = pppppppcVar36;\n                while( true ) {\n                  uVar44 = CONCAT44(local_98,local_84);\n                  unaff_s5 = (code *******)((int)local_8c + 1);\n                  pppppppcVar29 = local_8c;\n                  if ((int)local_7c <= (int)local_8c) break;\n                  if (((int)local_90 <= (int)unaff_s5) && ((int)local_90 < (int)local_84))\n                  goto LAB_00054e94;\n                  if ((int)local_98 <= (int)unaff_s5) {\n                    while ((int)((ulonglong)uVar44 >> 0x20) < (int)uVar44) {\nLAB_00054e94:\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 2);\n                      local_d8 = (code *******)(*pcVar8)(&local_b4);\n                      if (local_d8 == (code *******)0x0) break;\n                      pppppppcVar14 = param_4;\n                      if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                      pppppppcVar33 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                      pppppppcVar30 = (code *******)0x46c;\n                      pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                      uVar44 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0);\n                      pppppppcVar28 = pppppppcVar38;\n                    }\n                  }\n                  pppppppcVar42 = local_60;\n                  if ((int)unaff_s7[0xd] << 5 < 0) {\n                    pppppppcVar31 = pppppppcVar42;\n                    if (0 < (int)unaff_s7[2]) {\n                      pcVar11 = (code *)(PTR_DAT_000799a4 + -0x6fdc);\n                      pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6ef0);\n                      param_6 = (code *******)0x0;\n                      do {\n                        param_5 = (code *******)unaff_s7[3][(int)param_6];\n                        ppppppcVar39 = *pppppppcVar42;\n                        pppppcVar13 = ppppppcVar39[(int)param_5 * 2 + 1];\n                        if (((uint)pppppcVar13 & 0x800) != 0) {\n                          if (((uint)pppppcVar13 & 0xffc000) != 0) {\n                            pppppppcVar29 = local_8c;\n                            uVar19 = (*pcVar12)(&local_b4,local_8c,local_5c);\n                            uVar7 = (uint)((int)ppppppcVar39[(int)param_5 * 2 + 1] << 8) >> 0x16;\n                            if ((uVar7 & 4) == 0) {\n                              uVar27 = uVar19 & 1;\n                              if ((uVar7 & 8) != 0) goto joined_r0x00054f40;\n                            }\n                            else {\n                              uVar27 = uVar7 & 8;\n                              if ((uVar19 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                              if (uVar27 != 0) goto LAB_000550a4;\n                            }\n                            if ((((uVar7 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                               (((uVar7 & 0x80) != 0 &&\n                                (pppppppcVar33 = local_8c, (uVar19 & 8) == 0)))) goto LAB_000550a4;\n                          }\n                          pppppppcVar30 = &local_b4;\n                          pppppppcVar29 = param_5;\n                          pppppppcVar33 = local_8c;\n                          iVar18 = (*pcVar10)(pppppppcVar42);\n                          if (iVar18 != 0) {\n                            pppppppcVar14 = (code *******)((int)local_8c + iVar18);\n                            if (iVar18 <= local_3c) {\n                              iVar18 = local_3c;\n                            }\n                            pppppppcVar29 = pppppppcVar14;\n                            local_3c = iVar18;\n                            local_d4 = (code *******)(*pcVar11)(&local_b4);\n                            pppppppcVar15 = local_d4;\n                            if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                            pppppppcVar30 =\n                                 (code *******)\n                                 (pppppppcVar42[6] + (int)pppppppcVar42[3][(int)param_5] * 3);\n                            unaff_s4 = (code *******)((int)pppppppcVar14 * 4);\n                            param_5 = local_50 + (int)pppppppcVar14;\n                            if (*param_5 == (code ******)0x0) {\n                              local_d0 = (code *******)*pppppppcVar30;\n                              local_cc = (code *******)pppppppcVar30[1];\n                              local_c8 = (code *******)pppppppcVar30[2];\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *param_5 = ppppppcVar39;\n                            }\n                            else {\n                              pppppppcVar29 = (code *******)(*param_5)[10];\n                              local_d4 = (code *******)FUN_000484bc(&local_d0);\n                              pppppppcVar15 = local_d4;\n                              if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar15 = local_50 + (int)pppppppcVar14;\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *pppppppcVar15 = ppppppcVar39;\n                              (*(code *)PTR_free_00079c24)(local_c8);\n                            }\n                            unaff_s4 = local_50 + (int)pppppppcVar14;\n                            if ((*unaff_s4 == (code ******)0x0) &&\n                               (pppppppcVar15 = local_d4, local_d4 != (code *******)0x0))\n                            goto LAB_00055e44;\n                          }\n                        }\nLAB_000550a4:\n                        param_6 = (code *******)((int)param_6 + 1);\n                      } while ((int)param_6 < (int)unaff_s7[2]);\n                    }\n                    local_d8 = (code *******)0x0;\n                  }\n                  uVar7 = (uint)(byte)*(code *)((int)local_8c + (int)local_b0);\n                  local_8c = (code *******)((int)local_8c + 1);\n                  do {\n                    if (unaff_s7[0xb] != (code ******)0x0) {\n                      pppppppcVar30 = (code *******)unaff_s7[0xb][uVar7];\nLAB_000553a0:\n                      pppppppcVar14 = pppppppcVar30;\n                      if (local_50 != (code *******)0x0) goto LAB_000553ac;\n                      goto LAB_000553cc;\n                    }\n                    pppppppcVar31 = (code *******)unaff_s7[0xc];\n                    if (pppppppcVar31 != (code *******)0x0) {\n                      pppppppcVar29 = (code *******)((int)local_8c + -1);\n                      uVar19 = FUN_00049110(&local_b4);\n                      if ((uVar19 & 1) == 0) {\n                        pppppppcVar30 = (code *******)pppppppcVar31[uVar7];\n                      }\n                      else {\n                        pppppppcVar31 = pppppppcVar31 + uVar7 + 0x100;\n                        pppppppcVar30 = (code *******)*pppppppcVar31;\n                      }\n                      goto LAB_000553a0;\n                    }\n                    pppppppcVar29 = unaff_s7;\n                    pppppppcVar30 = local_5c;\n                    iVar18 = (*pcVar9)(local_60);\n                  } while (iVar18 != 0);\n                  local_d8 = (code *******)0xc;\n                  pppppppcVar15 = local_d8;\nLAB_00055e44:\n                  local_d8 = pppppppcVar15;\n                  param_4 = (code *******)0x0;\n                  if (local_50 == (code *******)0x0) {\n                    pppppppcVar14 = param_4;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    break;\n                  }\n                  pppppppcVar30 = (code *******)0x0;\nLAB_000553ac:\n                  pppppppcVar29 = &local_b4;\n                  pppppppcVar14 = (code *******)FUN_00053684(&local_d8);\nLAB_000553cc:\n                  param_4 = pppppppcVar14;\n                  if (pppppppcVar14 == (code *******)0x0) {\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    if ((local_50 == (code *******)0x0) ||\n                       ((pppppppcVar28 != (code *******)0x0 && (pppppppcVar34 == (code *******)0x0))\n                       )) break;\n                    param_6 = &local_b4;\n                    param_5 = (code *******)&local_d8;\n                    pppppppcVar31 = (code *******)(PTR_DAT_000799a4 + 0x3684);\n                    do {\n                      pppppppcVar15 = local_50 + (int)local_8c;\n                      pppppppcVar42 = local_8c;\n                      do {\n                        pppppppcVar42 = (code *******)((int)pppppppcVar42 + 1);\n                        pppppppcVar29 = local_4c;\n                        param_4 = pppppppcVar14;\n                        if ((int)local_4c < (int)pppppppcVar42) goto LAB_00055da8;\n                        local_8c = (code *******)((int)local_8c + 1);\n                        pppppppcVar15 = pppppppcVar15 + 1;\n                      } while (*pppppppcVar15 == (code ******)0x0);\n                      pppppppcVar30 = (code *******)0x0;\n                      pppppppcVar29 = param_6;\n                      param_4 = (code *******)(*(code *)pppppppcVar31)(param_5);\n                      if (local_d8 != (code *******)0x0) {\n                        if (param_4 == (code *******)0x0) goto LAB_00055da8;\n                        break;\n                      }\n                      pppppppcVar29 = local_4c;\n                    } while (param_4 == (code *******)0x0);\n                  }\n                  pppppppcVar15 = (code *******)((uint)unaff_s7 ^ (uint)param_4);\n                  pppppppcVar42 = unaff_s7;\n                  pppppppcVar14 = local_138;\n                  if ((bVar1) &&\n                     (pppppppcVar42 = pppppppcVar15, pppppppcVar14 = unaff_s5,\n                     pppppppcVar15 != (code *******)0x0)) {\n                    bVar1 = false;\n                    pppppppcVar14 = local_138;\n                  }\n                  local_138 = pppppppcVar14;\n                  unaff_s7 = param_4;\n                  if ((((uint)param_4[0xd] & 0x8000000) != 0) &&\n                     ((((uint)param_4[0xd] & 0x1000000) == 0 ||\n                      (pppppppcVar29 = param_4, pppppppcVar30 = local_8c,\n                      iVar18 = FUN_00049440(&local_b4), iVar18 != 0)))) {\n                    unaff_s7 = pppppppcVar42;\n                    unaff_s8 = local_8c;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                    local_144 = (code *******)0x0;\n                    unaff_s7 = param_4;\n                  }\n                }\nLAB_00055da8:\n                if (local_144 != (code *******)0x0) {\n                  *local_144 = (code ******)((int)local_138 + (int)*local_144);\n                }\n              }\n              else {\n                param_4 = unaff_s7 + 1;\n                pppppppcVar30 = (code *******)0x0;\n                pppppppcVar29 = param_4;\n                local_d8 = (code *******)FUN_00047a44(&local_b4);\n                unaff_s8 = local_d8;\n                if (local_d8 == (code *******)0x0) {\n                  if (((uint)unaff_s7[0xd] & 0x2000000) == 0) {\n                    pppppppcVar29 = param_4;\n                    bVar1 = false;\n                  }\n                  else {\n                    pppppppcVar29 = param_4;\n                    local_d8 = (code *******)FUN_00052d84(&local_b4);\n                    unaff_s8 = local_d8;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055dbc;\n                    bVar1 = false;\n                  }\n                  goto LAB_00054d50;\n                }\n              }\nLAB_00055dbc:\n              if (unaff_s8 == (code *******)0xffffffff) {\nLAB_00055b04:\n                FUN_0004b7e8(&local_b4);\nLAB_00055b1c:\n                local_dc = (code *******)((int)pppppppcVar24 + (int)local_dc);\n                if ((int)pppppppcVar25 <= (int)local_dc) goto code_r0x00055b38;\n                local_150 = (code *******)0x1;\n                goto LAB_000557e4;\n              }\n              if (unaff_s8 == (code *******)&SUB_fffffffe) {\n                local_150 = (code *******)0xc;\n                goto LAB_000557e4;\n              }\n              local_58 = unaff_s8;\n              if (((uint)param_1[7] & 0x8000000) == 0) {\n                if (pppppppcVar3 < (code *******)0x2) {\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055c08;\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                else {\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                if (pppppppcVar3 < (code *******)0x2) {\nLAB_00055c6c:\n                  pppppppcVar28 = pppppppcVar33;\n                  unaff_s4 = local_60;\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055548;\n                }\n                else {\n                  cVar23 = *(code *)(pppppppcVar38 + 0x16);\nLAB_00055c20:\n                  pppppppcVar28 = pppppppcVar33;\n                  if (-1 < (char)cVar23) goto LAB_00055c6c;\n                }\n                pppppppcVar31 = local_54;\n                pppppppcVar42 = local_60;\n                unaff_s4 = pppppppcVar42;\n                if (unaff_s8 < (code *******)0x3fffffff) {\n                  param_4 = (code *******)((int)((int)unaff_s8 + 1) * 4);\n                  unaff_s5 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                  if (unaff_s5 == (code *******)0x0) {\nLAB_00055b9c:\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    local_150 = (code *******)0xc;\n                    pppppppcVar33 = pppppppcVar28;\n                  }\n                  else {\n                    pppppppcVar29 = (code *******)&local_d0;\n                    if (pppppppcVar42[0x13] == (code ******)0x0) {\n                      local_cc = (code *******)0x0;\n                      local_c8 = pppppppcVar31;\n                      local_c0 = 0;\n                      local_bc = 0;\n                      local_b8 = 0;\n                      local_d0 = unaff_s5;\n                      local_c4 = unaff_s8;\n                      param_5 = (code *******)FUN_0005421c(&local_b4);\n                      (*(code *)PTR_free_00079c24)(local_b8);\n                      if (param_5 == (code *******)0x0) {\n                        param_4 = (code *******)*unaff_s5;\n                        if (param_4 == (code *******)0x0) {\nLAB_00055b70:\n                          (*(code *)PTR_free_00079c24)(unaff_s5);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          pppppppcVar33 = pppppppcVar28;\n                          goto LAB_00055b04;\n                        }\nLAB_00055528:\n                        (*(code *)PTR_free_00079c24)(local_50);\n                        pppppppcVar33 = pppppppcVar28;\n                        unaff_s4 = pppppppcVar42;\n                        local_58 = unaff_s8;\n                        local_54 = pppppppcVar31;\n                        local_50 = unaff_s5;\n                        goto LAB_00055548;\n                      }\nLAB_00055acc:\n                      param_4 = (code *******)0x0;\n                      pppppppcVar33 = pppppppcVar28;\n                      unaff_s4 = pppppppcVar42;\n                    }\n                    else {\n                      param_4 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                      if (param_4 == (code *******)0x0) goto LAB_00055b9c;\n                      unaff_s7 = (code *******)&local_d0;\n                      pcVar8 = (code *)(PTR_DAT_000799a4 + 0x421c);\n                      pcVar9 = (code *)(PTR_DAT_000799a4 + -0x6bc0);\n                      pppppppcVar33 = pppppppcVar28;\n                      while( true ) {\n                        pppppppcVar28 = (code *******)((int)unaff_s8 + 1);\n                        param_6 = (code *******)((int)pppppppcVar28 * 4);\n                        pppppppcVar30 = param_6;\n                        (*(code *)PTR_memset_00079b00)(param_4,0);\n                        local_c0 = 0;\n                        local_bc = 0;\n                        local_b8 = 0;\n                        pppppppcVar29 = unaff_s7;\n                        local_d0 = unaff_s5;\n                        local_cc = param_4;\n                        local_c8 = pppppppcVar31;\n                        local_c4 = unaff_s8;\n                        param_5 = (code *******)(*pcVar8)(&local_b4);\n                        (*(code *)PTR_free_00079c24)(local_b8);\n                        unaff_s4 = pppppppcVar28;\n                        if (param_5 != (code *******)0x0) break;\n                        if ((*unaff_s5 != (code ******)0x0) ||\n                           (param_6 = param_6 + -1, *param_4 != (code ******)0x0)) {\n                          pppppppcVar29 = unaff_s5;\n                          pppppppcVar30 = param_4;\n                          param_5 = (code *******)FUN_000520d0(pppppppcVar42);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          if (param_5 != (code *******)0x0) goto LAB_00055acc;\n                          goto LAB_00055528;\n                        }\n                        param_6 = (code *******)((int)local_50 + (int)param_6);\n                        do {\n                          while( true ) {\n                            unaff_s8 = (code *******)((int)unaff_s8 + -1);\n                            if ((int)unaff_s8 < 0) goto LAB_00055b70;\n                            pppppppcVar29 = (code *******)param_6[-1];\n                            if (pppppppcVar29 != (code *******)0x0) break;\n                            param_6 = param_6 + -1;\n                          }\n                          param_6 = param_6 + -1;\n                        } while (((uint)pppppppcVar29[0xd] & 0x8000000) == 0);\n                        pppppppcVar31 = (code *******)(*pcVar9)(&local_b4,pppppppcVar29,unaff_s8);\n                        pppppppcVar33 = pppppppcVar28;\n                      }\n                    }\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    (*(code *)PTR_free_00079c24)(param_4);\n                    local_150 = param_5;\n                    if (param_5 == (code *******)0x1) goto LAB_00055b04;\n                  }\n                }\n                else {\n                  local_150 = (code *******)0xc;\n                  pppppppcVar33 = pppppppcVar28;\n                }\n                goto LAB_000557e4;\n              }\n              if (pppppppcVar38[0x13] != (code ******)0x0) {\n                pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                pppppppcVar30 = unaff_s8;\n                local_54 = (code *******)FUN_00049440(&local_b4);\n                goto LAB_00055c6c;\n              }\nLAB_00055c08:\n              if ((((uint)param_1[7] & 0x8000000) == 0) && ((code *******)0x1 < pppppppcVar3)) {\n                cVar23 = *(code *)(pppppppcVar38 + 0x16);\n                goto LAB_00055c20;\n              }\nLAB_00055548:\n              if (pppppppcVar3 == (code *******)0x0) goto LAB_000557e4;\n              if (pppppppcVar3 < (code *******)0x2) {\n                *param_8 = (code ******)0x0;\n                param_8[1] = (code ******)local_58;\n                goto LAB_000555ac;\n              }\n              pppppppcVar29 = param_8 + 2;\n              do {\n                pppppppcVar29[1] = (code ******)0xffffffff;\n                *pppppppcVar29 = (code ******)0xffffffff;\n                pppppppcVar29 = pppppppcVar29 + 2;\n              } while (pppppppcVar29 != param_8 + (int)pppppppcVar3 * 2);\n              *param_8 = (code ******)0x0;\n              param_8[1] = (code ******)local_58;\n              if (((uint)param_1[7] & 0x8000000) != 0) {\nLAB_000555ac:\n                pppppppcVar33 = param_8;\n                do {\n                  pppppppcVar29 = (code *******)*pppppppcVar33;\n                  if (pppppppcVar29 != (code *******)0xffffffff) {\n                    if (local_68 != '\0') {\n                      pppppppcVar34 = local_94;\n                      if (pppppppcVar29 != local_98) {\n                        pppppppcVar34 = *(code ********)(local_a8 + (int)pppppppcVar29 * 4);\n                      }\n                      *pppppppcVar33 = (code ******)pppppppcVar34;\n                      pppppppcVar29 = local_94;\n                      if (local_98 != (code *******)pppppppcVar33[1]) {\n                        pppppppcVar29 = *(code ********)(local_a8 + (int)pppppppcVar33[1] * 4);\n                      }\n                      pppppppcVar33[1] = (code ******)pppppppcVar29;\n                    }\n                    *pppppppcVar33 = (code ******)((int)local_dc + (int)*pppppppcVar33);\n                    pppppppcVar29 = (code *******)((int)local_dc + (int)pppppppcVar33[1]);\n                    pppppppcVar33[1] = (code ******)pppppppcVar29;\n                  }\n                  pppppppcVar33 = pppppppcVar33 + 2;\n                } while (pppppppcVar33 != param_8 + (int)pppppppcVar3 * 2);\n                if (0 < local_118) {\n                  pppppppcVar33 = param_8 + (int)pppppppcVar3 * 2;\n                  do {\n                    *pppppppcVar33 = (code ******)0xffffffff;\n                    pppppppcVar33[1] = (code ******)0xffffffff;\n                    pppppppcVar33 = pppppppcVar33 + 2;\n                  } while (pppppppcVar33 != param_8 + (int)param_7 * 2);\n                }\n                pppppppcVar30 = local_dc;\n                pppppppcVar33 = param_8;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar38[0x21] != (code ******)0x0) {\n                  pppppppcVar30 = (code *******)((int)pppppppcVar3 + -1);\n                  pppppppcVar34 = (code *******)0x0;\n                  pppppppcVar3 = param_8;\n                  while( true ) {\n                    pppppppcVar29 = (code *******)((int)pppppppcVar34 * 4);\n                    if (pppppppcVar30 == pppppppcVar34) break;\n                    if (*(code ********)((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) !=\n                        pppppppcVar34) {\n                      pppppppcVar3[2] =\n                           param_8[(int)((int)*(code ********)\n                                               ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1)\n                                   * 2];\n                      pppppppcVar3[3] =\n                           param_8[((int)*(code ******)\n                                          ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1) * 2 +\n                                   1];\n                    }\n                    pppppppcVar34 = (code *******)((int)pppppppcVar34 + 1);\n                    pppppppcVar3 = pppppppcVar3 + 2;\n                  }\n                }\n                goto LAB_000557e4;\n              }\n              if ((char)*(code *)(pppppppcVar38 + 0x16) < '\0') {\n                local_168 = (uint)(0 < (int)pppppppcVar38[0x13]);\n              }\n              else {\n                local_168 = 0;\n              }\n              pppppppcVar29 = &local_b4;\n              pppppppcVar30 = pppppppcVar3;\n              pppppppcVar33 = param_8;\n              local_150 = (code *******)FUN_0004f4a0(param_1);\n              if (local_150 == (code *******)0x0) goto LAB_000555ac;\n            }\n          }\n          else if (local_90 < 0x3fffffff) {\n            local_50 = (code *******)(*(code *)PTR_malloc_00079b54)((local_90 + 1) * 4);\n            if (local_50 != (code *******)0x0) goto LAB_00055a40;\n            local_150 = (code *******)0xc;\n            param_6 = pppppppcVar36;\n          }\n          else {\n            local_150 = (code *******)0xc;\n            param_6 = pppppppcVar36;\n          }\n        }\n        else {\n          unaff_s5 = (code *******)((int)ppppppcVar35 * 8);\n          if (pppppppcVar36 < (code *******)0xccccccd) {\n            unaff_s4 = (code *******)(*(code *)PTR_malloc_00079b54)((int)ppppppcVar35 * 0x28);\n            local_40 = unaff_s4;\n            local_30 = (*(code *)PTR_malloc_00079b54)(unaff_s5);\n            if ((unaff_s4 != (code *******)0x0) && (local_30 != 0)) goto LAB_000559f0;\n          }\n          local_150 = (code *******)0xc;\n          param_6 = pppppppcVar36;\n        }\nLAB_000557e4:\n        (*(code *)PTR_free_00079c24)(local_50);\n        param_1 = pppppppcVar30;\n        if (pppppppcVar38[0x13] != (code ******)0x0) {\n          FUN_0004b7e8(&local_b4);\n          (*(code *)PTR_free_00079c24)(local_30);\n          (*(code *)PTR_free_00079c24)(local_40);\n          param_1 = pppppppcVar30;\n        }\n        FUN_0004b2bc(&local_b4);\n        pppppppcStack_1a0 = param_4;\n        pppppppcStack_19c = pppppppcVar31;\n      }\n    }\n  }" else (compound_statement "{\n    pppppppcVar29 = (code *******)pppppppcVar38[0xc];\n    if (pppppppcVar29 == (code *******)0x0) {\n      local_150 = (code *******)0x1;\n    }\n    else {\n      pppppppcVar3 = param_5;\n      if ((((pppppppcVar38[9][2] == (code *****)0x0) && (pppppppcVar38[10][2] == (code *****)0x0))\n          && ((pppppppcVar38[0xb][2] == (code *****)0x0 || (((uint)param_1[7] & 0x1000000) == 0))))\n         && ((pppppppcVar3 = param_4, param_4 != (code *******)0x0 &&\n             (param_4 = param_5, pppppppcVar3 = param_5, param_5 != (code *******)0x0)))) {\n        local_150 = (code *******)0x1;\n        pppppppcStack_1a0 = param_5;\n      }\n      else {\n        param_5 = pppppppcVar3;\n        pppppppcVar3 = (code *******)((int)param_7 - local_118);\n        if (pppppppcVar3 == (code *******)0x0) {\n          pppppppcVar34 = (code *******)(uint)(pppppppcVar38[0x13] != (code ******)0x0);\n        }\n        else {\n          pppppppcVar34 = (code *******)0x1;\n        }\n        ppppppcVar32 = param_1[5];\n        local_6c = (byte)((uint)((int)param_1[3] << 9) >> 0x1f);\n        local_64 = (code *******)pppppppcVar38[0x17];\n        pppppppcVar31 = (code *******)((int)pppppppcVar38[2] + 1);\n        if ((int)pppppppcVar38[2] + 1 < (int)local_64) {\n          pppppppcVar31 = local_64;\n        }\n        pppppppcVar30 = (code *******)(uint)((int)param_3 + 1 < (int)pppppppcVar31);\n        pppppppcVar33 = (code *******)0x1;\n        local_69 = local_6c;\n        if (ppppppcVar32 != (code ******)0x0) {\n          local_69 = 1;\n        }\n        local_6b = (byte)((uint)((int)pppppppcVar38[0x16] << 2) >> 0x1f);\n        local_6a = (byte)((uint)((int)pppppppcVar38[0x16] << 3) >> 0x1f);\n        pppppppcVar29 = (code *******)((int)param_3 + 1);\n        if (pppppppcVar30 == (code *******)0x0) {\n          pppppppcVar29 = pppppppcVar31;\n        }\n        local_b4 = param_2;\n        local_88 = param_3;\n        local_84 = param_3;\n        local_80 = param_3;\n        local_7c = param_3;\n        local_74 = ppppppcVar32;\n        local_150 = (code *******)FUN_00046d2c(&local_b4);\n        pppppppcVar31 = pppppppcVar34;\n        param_6 = param_6;\n        if (local_150 != (code *******)0x0) goto LAB_000557e4;\n        local_70 = pppppppcVar38 + 0x18;\n        local_66 = (byte)((uint)((int)pppppppcVar38[0x16] << 4) >> 0x1f);\n        pppppppcVar2 = (code *******)0x0;\n        local_98 = pppppppcVar2;\n        if ((local_69 == 0) && (local_b0 = param_2, (int)pppppppcVar38[0x17] < 2)) {\n          local_98 = param_3;\n        }\n        local_7c = param_6;\n        local_80 = param_6;\n        local_67 = (byte)((uint)((int)param_1[7] << 7) >> 0x1f);\n        ppppppcVar35 = pppppppcVar38[0x13];\n        pppppppcVar36 = (code *******)((int)ppppppcVar35 * 2);\n        local_5c = param_9;\n        local_58 = (code *******)0xffffffff;\n        local_94 = local_98;\n        if ((int)pppppppcVar36 < 1) {\nLAB_000559f0:\n          local_3c = 1;\n          local_44 = pppppppcVar36;\n          local_34 = pppppppcVar36;\n          if ((pppppppcVar3 < (code *******)0x2) && (((uint)pppppppcVar38[0x16] & 0x40000000) == 0))\n          {\n            local_50 = (code *******)0x0;\nLAB_00055a40:\n            local_78 = 6;\n            if (((uint)param_9 & 1) != 0) {\n              local_78 = 4;\n            }\n            pppppppcVar24 = (code *******)0x1;\n            pppppppcVar25 = param_4;\n            if ((int)param_5 < (int)param_4) {\n              pppppppcVar24 = (code *******)0xffffffff;\n              pppppppcVar25 = param_5;\n            }\n            pppppppcVar26 = param_5;\n            if ((int)param_5 <= (int)param_4) {\n              pppppppcVar26 = param_4;\n            }\n            ppppppcVar35 = pppppppcVar38[0x17];\n            uVar16 = 8;\n            if (local_148 != (code *******)0x0) {\n              if (ppppppcVar35 == (code ******)0x1) {\n                pppppppcVar28 = (code *******)0x4;\n              }\n              else {\n                pppppppcVar28 = pppppppcVar2;\n                if ((-1 < (int)param_1[3] << 9) && (ppppppcVar32 == (code ******)0x0)) {\n                  pppppppcVar28 = (code *******)0x4;\n                }\n              }\n              pppppppcVar29 = (code *******)0x0;\n              if ((int)param_4 <= (int)param_5) {\n                pppppppcVar29 = (code *******)0x2;\n              }\n              uVar16 = (uint)(ppppppcVar32 != (code ******)0x0) | (uint)pppppppcVar28 |\n                       (uint)pppppppcVar29;\n            }\n            local_dc = param_4;\n            if ((int)param_4 < (int)pppppppcVar25) {\n              local_150 = (code *******)0x1;\n              param_6 = pppppppcVar36;\n            }\n            else if ((int)pppppppcVar26 < (int)param_4) {\n              local_150 = (code *******)0x1;\n              param_4 = (code *******)(uint)((int)param_5 < (int)param_4);\n              param_6 = pppppppcVar36;\n            }\n            else {\n              pppppppcVar36 = (code *******)&local_dc;\n              if ((code *******)(uint)((int)param_5 < (int)param_4) != (code *******)0x0) {\n                pppppppcVar36 = (code *******)0x0;\n              }\n              pcVar4 = (code *)(PTR_DAT_000799a4 + -0x2b7c);\n              piVar5 = (int *)(PTR_s_nt0_000795b8 + (uVar16 - 4) * 4 + 0x6e38);\nLAB_00055b44:\n              if (uVar16 - 4 < 5) {\n                    \n                    \n                pppppppcVar29 = (code *******)(*(code *)(&_gp_1 + *piVar5))();\n                return pppppppcVar29;\n              }\n              param_5 = &local_b4;\n              pppppppcVar28 = pppppppcVar33;\n              while( true ) {\n                param_4 = local_dc;\n                pppppppcVar33 = (code *******)((int)local_dc - local_9c);\n                pppppppcVar30 = param_9;\n                pppppppcVar31 = pppppppcVar2;\n                param_6 = local_148;\n                unaff_s4 = param_3;\n                unaff_s5 = pppppppcVar24;\n                unaff_s7 = pppppppcVar26;\n                if (local_94 <= pppppppcVar33) {\n                  pppppppcVar29 = local_dc;\n                  local_150 = (code *******)(*pcVar4)(param_5);\n                  pppppppcVar33 = pppppppcVar28;\n                  if (local_150 != (code *******)0x0) goto LAB_000557e4;\n                  pppppppcVar33 = (code *******)((int)param_4 - local_9c);\n                }\n                if ((int)param_4 < (int)param_3) {\n                  uVar7 = (uint)(byte)*(code *)((int)pppppppcVar33 + (int)local_b0);\n                }\n                else {\n                  uVar7 = 0;\n                }\n                param_4 = (code *******)((int)param_4 + (int)pppppppcVar24);\n                if (*(code *)((int)local_148 + uVar7) != (code)0x0) break;\n                pppppppcVar33 = pppppppcVar28;\n                local_dc = param_4;\n                if ((int)param_4 < (int)pppppppcVar25) {\n                  local_150 = (code *******)0x1;\n                  goto LAB_000557e4;\n                }\n                if ((code *******)(uint)((int)pppppppcVar26 < (int)param_4) != (code *******)0x0) {\n                  local_150 = (code *******)0x1;\n                  param_4 = (code *******)(uint)((int)pppppppcVar26 < (int)param_4);\n                  goto LAB_000557e4;\n                }\n              }\n              while( true ) {\n                pppppppcVar29 = local_dc;\n                pppppppcVar30 = param_9;\n                pppppppcVar6 = (code *******)(*pcVar4)(&local_b4);\n                pppppppcVar14 = local_60;\n                pppppppcVar42 = local_8c;\n                pppppppcVar33 = pppppppcVar28;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar6 != (code *******)0x0) goto LAB_000557e4;\n                if (((ppppppcVar35 != (code ******)0x1) && (local_98 != (code *******)0x0)) &&\n                   (*local_ac == -1)) goto LAB_00055b1c;\n                local_3c = 0;\n                local_48 = 0;\n                local_4c = (code *******)0x0;\n                local_138 = local_8c;\n                local_d8 = (code *******)0x0;\n                unaff_s7 = (code *******)local_60[9];\n                pppppppcVar30 = local_5c;\n                param_4 = pppppppcVar14;\n                if (((uint)unaff_s7[0xd] & 0x1000000) == 0) break;\n                pppppppcVar29 = (code *******)((int)local_8c + -1);\n                pppppppcVar33 = (code *******)FUN_00049110(&local_b4);\n                if (((uint)pppppppcVar33 & 1) == 0) {\n                  if (pppppppcVar33 == (code *******)0x0) break;\n                  if (((uint)pppppppcVar33 & 6) == 6) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xc];\n                    goto LAB_00054d1c;\n                  }\n                  if (((uint)pppppppcVar33 & 2) != 0) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xb];\n                    goto LAB_00054d1c;\n                  }\n                  pppppppcVar28 = pppppppcVar33;\n                  if (((uint)pppppppcVar33 & 4) == 0) break;\n                  pppppppcVar30 = (code *******)unaff_s7[10];\n                  pppppppcVar29 = pppppppcVar14;\n                  unaff_s7 = (code *******)FUN_0004ae34(&local_d8);\n                  pppppppcVar28 = pppppppcVar33;\n                  if (unaff_s7 != (code *******)0x0) break;\n                  if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                }\n                else {\n                  unaff_s7 = (code *******)pppppppcVar14[10];\nLAB_00054d1c:\n                  pppppppcVar28 = (code *******)PTR_s_nt0_000795b8;\n                  if (unaff_s7 != (code *******)0x0) break;\n                }\n                pppppppcVar28 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                local_dc = (code *******)\n                           (*(code *)PTR___assert_fail_000799f8)\n                                     (PTR_s_nt0_000795b8 + 0x71a0,pppppppcVar29,0x435);\n                if (local_dc == pppppppcVar26) {\n                  if ((int)local_dc < (int)param_3) {\n                    uVar7 = (uint)(byte)*(code *)((int)local_dc + (int)param_2);\n                  }\n                  else {\n                    uVar7 = 0;\n                  }\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    uVar7 = (uint)*(byte *)((int)ppppppcVar32 + uVar7);\n                  }\n                  if (*(code *)((int)local_148 + uVar7) == (code)0x0) {\n                    local_150 = (code *******)0x1;\n                    pppppppcVar30 = param_9;\n                    pppppppcVar33 = pppppppcVar28;\n                    goto LAB_000557e4;\n                  }\n                }\n              }\n              pppppppcVar33 = pppppppcVar28;\n              bVar1 = pppppppcVar36 != (code *******)0x0;\n              if ((local_50 == (code *******)0x0) ||\n                 (local_50[(int)pppppppcVar42] = (code ******)unaff_s7,\n                 pppppppcVar14[0x13] == (code ******)0x0)) {\nLAB_00054d50:\n                if ((int)unaff_s7[0xd] << 4 < 0) {\n                  if ((((uint)unaff_s7[0xd] & 0x1000000) == 0) ||\n                     (pppppppcVar29 = unaff_s7, pppppppcVar30 = pppppppcVar42,\n                     iVar18 = FUN_00049440(&local_b4), iVar18 != 0)) {\n                    unaff_s8 = pppppppcVar42;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                  }\n                  else {\n                    pppppppcVar42 = (code *******)0xffffffff;\n                    pppppppcVar28 = (code *******)0x0;\n                  }\n                }\n                else {\n                  pppppppcVar42 = (code *******)0xffffffff;\n                  pppppppcVar28 = (code *******)0x0;\n                }\n                pcVar8 = (code *)(PTR_DAT_000799a4 + -0x7144);\n                pcVar9 = (code *)(PTR_DAT_000799a4 + -0x1980);\n                pcVar10 = (code *)(PTR_DAT_000799a4 + -0x2f9c);\n                unaff_s8 = pppppppcVar42;\n                local_144 = pppppppcVar36;\n                while( true ) {\n                  uVar44 = CONCAT44(local_98,local_84);\n                  unaff_s5 = (code *******)((int)local_8c + 1);\n                  pppppppcVar29 = local_8c;\n                  if ((int)local_7c <= (int)local_8c) break;\n                  if (((int)local_90 <= (int)unaff_s5) && ((int)local_90 < (int)local_84))\n                  goto LAB_00054e94;\n                  if ((int)local_98 <= (int)unaff_s5) {\n                    while ((int)((ulonglong)uVar44 >> 0x20) < (int)uVar44) {\nLAB_00054e94:\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 2);\n                      local_d8 = (code *******)(*pcVar8)(&local_b4);\n                      if (local_d8 == (code *******)0x0) break;\n                      pppppppcVar14 = param_4;\n                      if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                      pppppppcVar33 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                      pppppppcVar30 = (code *******)0x46c;\n                      pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                      uVar44 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0);\n                      pppppppcVar28 = pppppppcVar38;\n                    }\n                  }\n                  pppppppcVar42 = local_60;\n                  if ((int)unaff_s7[0xd] << 5 < 0) {\n                    pppppppcVar31 = pppppppcVar42;\n                    if (0 < (int)unaff_s7[2]) {\n                      pcVar11 = (code *)(PTR_DAT_000799a4 + -0x6fdc);\n                      pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6ef0);\n                      param_6 = (code *******)0x0;\n                      do {\n                        param_5 = (code *******)unaff_s7[3][(int)param_6];\n                        ppppppcVar39 = *pppppppcVar42;\n                        pppppcVar13 = ppppppcVar39[(int)param_5 * 2 + 1];\n                        if (((uint)pppppcVar13 & 0x800) != 0) {\n                          if (((uint)pppppcVar13 & 0xffc000) != 0) {\n                            pppppppcVar29 = local_8c;\n                            uVar19 = (*pcVar12)(&local_b4,local_8c,local_5c);\n                            uVar7 = (uint)((int)ppppppcVar39[(int)param_5 * 2 + 1] << 8) >> 0x16;\n                            if ((uVar7 & 4) == 0) {\n                              uVar27 = uVar19 & 1;\n                              if ((uVar7 & 8) != 0) goto joined_r0x00054f40;\n                            }\n                            else {\n                              uVar27 = uVar7 & 8;\n                              if ((uVar19 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                              if (uVar27 != 0) goto LAB_000550a4;\n                            }\n                            if ((((uVar7 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                               (((uVar7 & 0x80) != 0 &&\n                                (pppppppcVar33 = local_8c, (uVar19 & 8) == 0)))) goto LAB_000550a4;\n                          }\n                          pppppppcVar30 = &local_b4;\n                          pppppppcVar29 = param_5;\n                          pppppppcVar33 = local_8c;\n                          iVar18 = (*pcVar10)(pppppppcVar42);\n                          if (iVar18 != 0) {\n                            pppppppcVar14 = (code *******)((int)local_8c + iVar18);\n                            if (iVar18 <= local_3c) {\n                              iVar18 = local_3c;\n                            }\n                            pppppppcVar29 = pppppppcVar14;\n                            local_3c = iVar18;\n                            local_d4 = (code *******)(*pcVar11)(&local_b4);\n                            pppppppcVar15 = local_d4;\n                            if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                            pppppppcVar30 =\n                                 (code *******)\n                                 (pppppppcVar42[6] + (int)pppppppcVar42[3][(int)param_5] * 3);\n                            unaff_s4 = (code *******)((int)pppppppcVar14 * 4);\n                            param_5 = local_50 + (int)pppppppcVar14;\n                            if (*param_5 == (code ******)0x0) {\n                              local_d0 = (code *******)*pppppppcVar30;\n                              local_cc = (code *******)pppppppcVar30[1];\n                              local_c8 = (code *******)pppppppcVar30[2];\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *param_5 = ppppppcVar39;\n                            }\n                            else {\n                              pppppppcVar29 = (code *******)(*param_5)[10];\n                              local_d4 = (code *******)FUN_000484bc(&local_d0);\n                              pppppppcVar15 = local_d4;\n                              if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar15 = local_50 + (int)pppppppcVar14;\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *pppppppcVar15 = ppppppcVar39;\n                              (*(code *)PTR_free_00079c24)(local_c8);\n                            }\n                            unaff_s4 = local_50 + (int)pppppppcVar14;\n                            if ((*unaff_s4 == (code ******)0x0) &&\n                               (pppppppcVar15 = local_d4, local_d4 != (code *******)0x0))\n                            goto LAB_00055e44;\n                          }\n                        }\nLAB_000550a4:\n                        param_6 = (code *******)((int)param_6 + 1);\n                      } while ((int)param_6 < (int)unaff_s7[2]);\n                    }\n                    local_d8 = (code *******)0x0;\n                  }\n                  uVar7 = (uint)(byte)*(code *)((int)local_8c + (int)local_b0);\n                  local_8c = (code *******)((int)local_8c + 1);\n                  do {\n                    if (unaff_s7[0xb] != (code ******)0x0) {\n                      pppppppcVar30 = (code *******)unaff_s7[0xb][uVar7];\nLAB_000553a0:\n                      pppppppcVar14 = pppppppcVar30;\n                      if (local_50 != (code *******)0x0) goto LAB_000553ac;\n                      goto LAB_000553cc;\n                    }\n                    pppppppcVar31 = (code *******)unaff_s7[0xc];\n                    if (pppppppcVar31 != (code *******)0x0) {\n                      pppppppcVar29 = (code *******)((int)local_8c + -1);\n                      uVar19 = FUN_00049110(&local_b4);\n                      if ((uVar19 & 1) == 0) {\n                        pppppppcVar30 = (code *******)pppppppcVar31[uVar7];\n                      }\n                      else {\n                        pppppppcVar31 = pppppppcVar31 + uVar7 + 0x100;\n                        pppppppcVar30 = (code *******)*pppppppcVar31;\n                      }\n                      goto LAB_000553a0;\n                    }\n                    pppppppcVar29 = unaff_s7;\n                    pppppppcVar30 = local_5c;\n                    iVar18 = (*pcVar9)(local_60);\n                  } while (iVar18 != 0);\n                  local_d8 = (code *******)0xc;\n                  pppppppcVar15 = local_d8;\nLAB_00055e44:\n                  local_d8 = pppppppcVar15;\n                  param_4 = (code *******)0x0;\n                  if (local_50 == (code *******)0x0) {\n                    pppppppcVar14 = param_4;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    break;\n                  }\n                  pppppppcVar30 = (code *******)0x0;\nLAB_000553ac:\n                  pppppppcVar29 = &local_b4;\n                  pppppppcVar14 = (code *******)FUN_00053684(&local_d8);\nLAB_000553cc:\n                  param_4 = pppppppcVar14;\n                  if (pppppppcVar14 == (code *******)0x0) {\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    if ((local_50 == (code *******)0x0) ||\n                       ((pppppppcVar28 != (code *******)0x0 && (pppppppcVar34 == (code *******)0x0))\n                       )) break;\n                    param_6 = &local_b4;\n                    param_5 = (code *******)&local_d8;\n                    pppppppcVar31 = (code *******)(PTR_DAT_000799a4 + 0x3684);\n                    do {\n                      pppppppcVar15 = local_50 + (int)local_8c;\n                      pppppppcVar42 = local_8c;\n                      do {\n                        pppppppcVar42 = (code *******)((int)pppppppcVar42 + 1);\n                        pppppppcVar29 = local_4c;\n                        param_4 = pppppppcVar14;\n                        if ((int)local_4c < (int)pppppppcVar42) goto LAB_00055da8;\n                        local_8c = (code *******)((int)local_8c + 1);\n                        pppppppcVar15 = pppppppcVar15 + 1;\n                      } while (*pppppppcVar15 == (code ******)0x0);\n                      pppppppcVar30 = (code *******)0x0;\n                      pppppppcVar29 = param_6;\n                      param_4 = (code *******)(*(code *)pppppppcVar31)(param_5);\n                      if (local_d8 != (code *******)0x0) {\n                        if (param_4 == (code *******)0x0) goto LAB_00055da8;\n                        break;\n                      }\n                      pppppppcVar29 = local_4c;\n                    } while (param_4 == (code *******)0x0);\n                  }\n                  pppppppcVar15 = (code *******)((uint)unaff_s7 ^ (uint)param_4);\n                  pppppppcVar42 = unaff_s7;\n                  pppppppcVar14 = local_138;\n                  if ((bVar1) &&\n                     (pppppppcVar42 = pppppppcVar15, pppppppcVar14 = unaff_s5,\n                     pppppppcVar15 != (code *******)0x0)) {\n                    bVar1 = false;\n                    pppppppcVar14 = local_138;\n                  }\n                  local_138 = pppppppcVar14;\n                  unaff_s7 = param_4;\n                  if ((((uint)param_4[0xd] & 0x8000000) != 0) &&\n                     ((((uint)param_4[0xd] & 0x1000000) == 0 ||\n                      (pppppppcVar29 = param_4, pppppppcVar30 = local_8c,\n                      iVar18 = FUN_00049440(&local_b4), iVar18 != 0)))) {\n                    unaff_s7 = pppppppcVar42;\n                    unaff_s8 = local_8c;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                    local_144 = (code *******)0x0;\n                    unaff_s7 = param_4;\n                  }\n                }\nLAB_00055da8:\n                if (local_144 != (code *******)0x0) {\n                  *local_144 = (code ******)((int)local_138 + (int)*local_144);\n                }\n              }\n              else {\n                param_4 = unaff_s7 + 1;\n                pppppppcVar30 = (code *******)0x0;\n                pppppppcVar29 = param_4;\n                local_d8 = (code *******)FUN_00047a44(&local_b4);\n                unaff_s8 = local_d8;\n                if (local_d8 == (code *******)0x0) {\n                  if (((uint)unaff_s7[0xd] & 0x2000000) == 0) {\n                    pppppppcVar29 = param_4;\n                    bVar1 = false;\n                  }\n                  else {\n                    pppppppcVar29 = param_4;\n                    local_d8 = (code *******)FUN_00052d84(&local_b4);\n                    unaff_s8 = local_d8;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055dbc;\n                    bVar1 = false;\n                  }\n                  goto LAB_00054d50;\n                }\n              }\nLAB_00055dbc:\n              if (unaff_s8 == (code *******)0xffffffff) {\nLAB_00055b04:\n                FUN_0004b7e8(&local_b4);\nLAB_00055b1c:\n                local_dc = (code *******)((int)pppppppcVar24 + (int)local_dc);\n                if ((int)pppppppcVar25 <= (int)local_dc) goto code_r0x00055b38;\n                local_150 = (code *******)0x1;\n                goto LAB_000557e4;\n              }\n              if (unaff_s8 == (code *******)&SUB_fffffffe) {\n                local_150 = (code *******)0xc;\n                goto LAB_000557e4;\n              }\n              local_58 = unaff_s8;\n              if (((uint)param_1[7] & 0x8000000) == 0) {\n                if (pppppppcVar3 < (code *******)0x2) {\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055c08;\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                else {\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                if (pppppppcVar3 < (code *******)0x2) {\nLAB_00055c6c:\n                  pppppppcVar28 = pppppppcVar33;\n                  unaff_s4 = local_60;\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055548;\n                }\n                else {\n                  cVar23 = *(code *)(pppppppcVar38 + 0x16);\nLAB_00055c20:\n                  pppppppcVar28 = pppppppcVar33;\n                  if (-1 < (char)cVar23) goto LAB_00055c6c;\n                }\n                pppppppcVar31 = local_54;\n                pppppppcVar42 = local_60;\n                unaff_s4 = pppppppcVar42;\n                if (unaff_s8 < (code *******)0x3fffffff) {\n                  param_4 = (code *******)((int)((int)unaff_s8 + 1) * 4);\n                  unaff_s5 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                  if (unaff_s5 == (code *******)0x0) {\nLAB_00055b9c:\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    local_150 = (code *******)0xc;\n                    pppppppcVar33 = pppppppcVar28;\n                  }\n                  else {\n                    pppppppcVar29 = (code *******)&local_d0;\n                    if (pppppppcVar42[0x13] == (code ******)0x0) {\n                      local_cc = (code *******)0x0;\n                      local_c8 = pppppppcVar31;\n                      local_c0 = 0;\n                      local_bc = 0;\n                      local_b8 = 0;\n                      local_d0 = unaff_s5;\n                      local_c4 = unaff_s8;\n                      param_5 = (code *******)FUN_0005421c(&local_b4);\n                      (*(code *)PTR_free_00079c24)(local_b8);\n                      if (param_5 == (code *******)0x0) {\n                        param_4 = (code *******)*unaff_s5;\n                        if (param_4 == (code *******)0x0) {\nLAB_00055b70:\n                          (*(code *)PTR_free_00079c24)(unaff_s5);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          pppppppcVar33 = pppppppcVar28;\n                          goto LAB_00055b04;\n                        }\nLAB_00055528:\n                        (*(code *)PTR_free_00079c24)(local_50);\n                        pppppppcVar33 = pppppppcVar28;\n                        unaff_s4 = pppppppcVar42;\n                        local_58 = unaff_s8;\n                        local_54 = pppppppcVar31;\n                        local_50 = unaff_s5;\n                        goto LAB_00055548;\n                      }\nLAB_00055acc:\n                      param_4 = (code *******)0x0;\n                      pppppppcVar33 = pppppppcVar28;\n                      unaff_s4 = pppppppcVar42;\n                    }\n                    else {\n                      param_4 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                      if (param_4 == (code *******)0x0) goto LAB_00055b9c;\n                      unaff_s7 = (code *******)&local_d0;\n                      pcVar8 = (code *)(PTR_DAT_000799a4 + 0x421c);\n                      pcVar9 = (code *)(PTR_DAT_000799a4 + -0x6bc0);\n                      pppppppcVar33 = pppppppcVar28;\n                      while( true ) {\n                        pppppppcVar28 = (code *******)((int)unaff_s8 + 1);\n                        param_6 = (code *******)((int)pppppppcVar28 * 4);\n                        pppppppcVar30 = param_6;\n                        (*(code *)PTR_memset_00079b00)(param_4,0);\n                        local_c0 = 0;\n                        local_bc = 0;\n                        local_b8 = 0;\n                        pppppppcVar29 = unaff_s7;\n                        local_d0 = unaff_s5;\n                        local_cc = param_4;\n                        local_c8 = pppppppcVar31;\n                        local_c4 = unaff_s8;\n                        param_5 = (code *******)(*pcVar8)(&local_b4);\n                        (*(code *)PTR_free_00079c24)(local_b8);\n                        unaff_s4 = pppppppcVar28;\n                        if (param_5 != (code *******)0x0) break;\n                        if ((*unaff_s5 != (code ******)0x0) ||\n                           (param_6 = param_6 + -1, *param_4 != (code ******)0x0)) {\n                          pppppppcVar29 = unaff_s5;\n                          pppppppcVar30 = param_4;\n                          param_5 = (code *******)FUN_000520d0(pppppppcVar42);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          if (param_5 != (code *******)0x0) goto LAB_00055acc;\n                          goto LAB_00055528;\n                        }\n                        param_6 = (code *******)((int)local_50 + (int)param_6);\n                        do {\n                          while( true ) {\n                            unaff_s8 = (code *******)((int)unaff_s8 + -1);\n                            if ((int)unaff_s8 < 0) goto LAB_00055b70;\n                            pppppppcVar29 = (code *******)param_6[-1];\n                            if (pppppppcVar29 != (code *******)0x0) break;\n                            param_6 = param_6 + -1;\n                          }\n                          param_6 = param_6 + -1;\n                        } while (((uint)pppppppcVar29[0xd] & 0x8000000) == 0);\n                        pppppppcVar31 = (code *******)(*pcVar9)(&local_b4,pppppppcVar29,unaff_s8);\n                        pppppppcVar33 = pppppppcVar28;\n                      }\n                    }\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    (*(code *)PTR_free_00079c24)(param_4);\n                    local_150 = param_5;\n                    if (param_5 == (code *******)0x1) goto LAB_00055b04;\n                  }\n                }\n                else {\n                  local_150 = (code *******)0xc;\n                  pppppppcVar33 = pppppppcVar28;\n                }\n                goto LAB_000557e4;\n              }\n              if (pppppppcVar38[0x13] != (code ******)0x0) {\n                pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                pppppppcVar30 = unaff_s8;\n                local_54 = (code *******)FUN_00049440(&local_b4);\n                goto LAB_00055c6c;\n              }\nLAB_00055c08:\n              if ((((uint)param_1[7] & 0x8000000) == 0) && ((code *******)0x1 < pppppppcVar3)) {\n                cVar23 = *(code *)(pppppppcVar38 + 0x16);\n                goto LAB_00055c20;\n              }\nLAB_00055548:\n              if (pppppppcVar3 == (code *******)0x0) goto LAB_000557e4;\n              if (pppppppcVar3 < (code *******)0x2) {\n                *param_8 = (code ******)0x0;\n                param_8[1] = (code ******)local_58;\n                goto LAB_000555ac;\n              }\n              pppppppcVar29 = param_8 + 2;\n              do {\n                pppppppcVar29[1] = (code ******)0xffffffff;\n                *pppppppcVar29 = (code ******)0xffffffff;\n                pppppppcVar29 = pppppppcVar29 + 2;\n              } while (pppppppcVar29 != param_8 + (int)pppppppcVar3 * 2);\n              *param_8 = (code ******)0x0;\n              param_8[1] = (code ******)local_58;\n              if (((uint)param_1[7] & 0x8000000) != 0) {\nLAB_000555ac:\n                pppppppcVar33 = param_8;\n                do {\n                  pppppppcVar29 = (code *******)*pppppppcVar33;\n                  if (pppppppcVar29 != (code *******)0xffffffff) {\n                    if (local_68 != '\0') {\n                      pppppppcVar34 = local_94;\n                      if (pppppppcVar29 != local_98) {\n                        pppppppcVar34 = *(code ********)(local_a8 + (int)pppppppcVar29 * 4);\n                      }\n                      *pppppppcVar33 = (code ******)pppppppcVar34;\n                      pppppppcVar29 = local_94;\n                      if (local_98 != (code *******)pppppppcVar33[1]) {\n                        pppppppcVar29 = *(code ********)(local_a8 + (int)pppppppcVar33[1] * 4);\n                      }\n                      pppppppcVar33[1] = (code ******)pppppppcVar29;\n                    }\n                    *pppppppcVar33 = (code ******)((int)local_dc + (int)*pppppppcVar33);\n                    pppppppcVar29 = (code *******)((int)local_dc + (int)pppppppcVar33[1]);\n                    pppppppcVar33[1] = (code ******)pppppppcVar29;\n                  }\n                  pppppppcVar33 = pppppppcVar33 + 2;\n                } while (pppppppcVar33 != param_8 + (int)pppppppcVar3 * 2);\n                if (0 < local_118) {\n                  pppppppcVar33 = param_8 + (int)pppppppcVar3 * 2;\n                  do {\n                    *pppppppcVar33 = (code ******)0xffffffff;\n                    pppppppcVar33[1] = (code ******)0xffffffff;\n                    pppppppcVar33 = pppppppcVar33 + 2;\n                  } while (pppppppcVar33 != param_8 + (int)param_7 * 2);\n                }\n                pppppppcVar30 = local_dc;\n                pppppppcVar33 = param_8;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar38[0x21] != (code ******)0x0) {\n                  pppppppcVar30 = (code *******)((int)pppppppcVar3 + -1);\n                  pppppppcVar34 = (code *******)0x0;\n                  pppppppcVar3 = param_8;\n                  while( true ) {\n                    pppppppcVar29 = (code *******)((int)pppppppcVar34 * 4);\n                    if (pppppppcVar30 == pppppppcVar34) break;\n                    if (*(code ********)((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) !=\n                        pppppppcVar34) {\n                      pppppppcVar3[2] =\n                           param_8[(int)((int)*(code ********)\n                                               ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1)\n                                   * 2];\n                      pppppppcVar3[3] =\n                           param_8[((int)*(code ******)\n                                          ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1) * 2 +\n                                   1];\n                    }\n                    pppppppcVar34 = (code *******)((int)pppppppcVar34 + 1);\n                    pppppppcVar3 = pppppppcVar3 + 2;\n                  }\n                }\n                goto LAB_000557e4;\n              }\n              if ((char)*(code *)(pppppppcVar38 + 0x16) < '\0') {\n                local_168 = (uint)(0 < (int)pppppppcVar38[0x13]);\n              }\n              else {\n                local_168 = 0;\n              }\n              pppppppcVar29 = &local_b4;\n              pppppppcVar30 = pppppppcVar3;\n              pppppppcVar33 = param_8;\n              local_150 = (code *******)FUN_0004f4a0(param_1);\n              if (local_150 == (code *******)0x0) goto LAB_000555ac;\n            }\n          }\n          else if (local_90 < 0x3fffffff) {\n            local_50 = (code *******)(*(code *)PTR_malloc_00079b54)((local_90 + 1) * 4);\n            if (local_50 != (code *******)0x0) goto LAB_00055a40;\n            local_150 = (code *******)0xc;\n            param_6 = pppppppcVar36;\n          }\n          else {\n            local_150 = (code *******)0xc;\n            param_6 = pppppppcVar36;\n          }\n        }\n        else {\n          unaff_s5 = (code *******)((int)ppppppcVar35 * 8);\n          if (pppppppcVar36 < (code *******)0xccccccd) {\n            unaff_s4 = (code *******)(*(code *)PTR_malloc_00079b54)((int)ppppppcVar35 * 0x28);\n            local_40 = unaff_s4;\n            local_30 = (*(code *)PTR_malloc_00079b54)(unaff_s5);\n            if ((unaff_s4 != (code *******)0x0) && (local_30 != 0)) goto LAB_000559f0;\n          }\n          local_150 = (code *******)0xc;\n          param_6 = pppppppcVar36;\n        }\nLAB_000557e4:\n        (*(code *)PTR_free_00079c24)(local_50);\n        param_1 = pppppppcVar30;\n        if (pppppppcVar38[0x13] != (code ******)0x0) {\n          FUN_0004b7e8(&local_b4);\n          (*(code *)PTR_free_00079c24)(local_30);\n          (*(code *)PTR_free_00079c24)(local_40);\n          param_1 = pppppppcVar30;\n        }\n        FUN_0004b2bc(&local_b4);\n        pppppppcStack_1a0 = param_4;\n        pppppppcStack_19c = pppppppcVar31;\n      }\n    }\n  }" { (expression_statement "pppppppcVar29 = (code *******)pppppppcVar38[0xc];" (assignment_expression "pppppppcVar29 = (code *******)pppppppcVar38[0xc]" identifier = (cast_expression "(code *******)pppppppcVar38[0xc]" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (subscript_expression "pppppppcVar38[0xc]" identifier [ number_literal ]))) ;) (if_statement "if (pppppppcVar29 == (code *******)0x0) {\n      local_150 = (code *******)0x1;\n    }\n    else {\n      pppppppcVar3 = param_5;\n      if ((((pppppppcVar38[9][2] == (code *****)0x0) && (pppppppcVar38[10][2] == (code *****)0x0))\n          && ((pppppppcVar38[0xb][2] == (code *****)0x0 || (((uint)param_1[7] & 0x1000000) == 0))))\n         && ((pppppppcVar3 = param_4, param_4 != (code *******)0x0 &&\n             (param_4 = param_5, pppppppcVar3 = param_5, param_5 != (code *******)0x0)))) {\n        local_150 = (code *******)0x1;\n        pppppppcStack_1a0 = param_5;\n      }\n      else {\n        param_5 = pppppppcVar3;\n        pppppppcVar3 = (code *******)((int)param_7 - local_118);\n        if (pppppppcVar3 == (code *******)0x0) {\n          pppppppcVar34 = (code *******)(uint)(pppppppcVar38[0x13] != (code ******)0x0);\n        }\n        else {\n          pppppppcVar34 = (code *******)0x1;\n        }\n        ppppppcVar32 = param_1[5];\n        local_6c = (byte)((uint)((int)param_1[3] << 9) >> 0x1f);\n        local_64 = (code *******)pppppppcVar38[0x17];\n        pppppppcVar31 = (code *******)((int)pppppppcVar38[2] + 1);\n        if ((int)pppppppcVar38[2] + 1 < (int)local_64) {\n          pppppppcVar31 = local_64;\n        }\n        pppppppcVar30 = (code *******)(uint)((int)param_3 + 1 < (int)pppppppcVar31);\n        pppppppcVar33 = (code *******)0x1;\n        local_69 = local_6c;\n        if (ppppppcVar32 != (code ******)0x0) {\n          local_69 = 1;\n        }\n        local_6b = (byte)((uint)((int)pppppppcVar38[0x16] << 2) >> 0x1f);\n        local_6a = (byte)((uint)((int)pppppppcVar38[0x16] << 3) >> 0x1f);\n        pppppppcVar29 = (code *******)((int)param_3 + 1);\n        if (pppppppcVar30 == (code *******)0x0) {\n          pppppppcVar29 = pppppppcVar31;\n        }\n        local_b4 = param_2;\n        local_88 = param_3;\n        local_84 = param_3;\n        local_80 = param_3;\n        local_7c = param_3;\n        local_74 = ppppppcVar32;\n        local_150 = (code *******)FUN_00046d2c(&local_b4);\n        pppppppcVar31 = pppppppcVar34;\n        param_6 = param_6;\n        if (local_150 != (code *******)0x0) goto LAB_000557e4;\n        local_70 = pppppppcVar38 + 0x18;\n        local_66 = (byte)((uint)((int)pppppppcVar38[0x16] << 4) >> 0x1f);\n        pppppppcVar2 = (code *******)0x0;\n        local_98 = pppppppcVar2;\n        if ((local_69 == 0) && (local_b0 = param_2, (int)pppppppcVar38[0x17] < 2)) {\n          local_98 = param_3;\n        }\n        local_7c = param_6;\n        local_80 = param_6;\n        local_67 = (byte)((uint)((int)param_1[7] << 7) >> 0x1f);\n        ppppppcVar35 = pppppppcVar38[0x13];\n        pppppppcVar36 = (code *******)((int)ppppppcVar35 * 2);\n        local_5c = param_9;\n        local_58 = (code *******)0xffffffff;\n        local_94 = local_98;\n        if ((int)pppppppcVar36 < 1) {\nLAB_000559f0:\n          local_3c = 1;\n          local_44 = pppppppcVar36;\n          local_34 = pppppppcVar36;\n          if ((pppppppcVar3 < (code *******)0x2) && (((uint)pppppppcVar38[0x16] & 0x40000000) == 0))\n          {\n            local_50 = (code *******)0x0;\nLAB_00055a40:\n            local_78 = 6;\n            if (((uint)param_9 & 1) != 0) {\n              local_78 = 4;\n            }\n            pppppppcVar24 = (code *******)0x1;\n            pppppppcVar25 = param_4;\n            if ((int)param_5 < (int)param_4) {\n              pppppppcVar24 = (code *******)0xffffffff;\n              pppppppcVar25 = param_5;\n            }\n            pppppppcVar26 = param_5;\n            if ((int)param_5 <= (int)param_4) {\n              pppppppcVar26 = param_4;\n            }\n            ppppppcVar35 = pppppppcVar38[0x17];\n            uVar16 = 8;\n            if (local_148 != (code *******)0x0) {\n              if (ppppppcVar35 == (code ******)0x1) {\n                pppppppcVar28 = (code *******)0x4;\n              }\n              else {\n                pppppppcVar28 = pppppppcVar2;\n                if ((-1 < (int)param_1[3] << 9) && (ppppppcVar32 == (code ******)0x0)) {\n                  pppppppcVar28 = (code *******)0x4;\n                }\n              }\n              pppppppcVar29 = (code *******)0x0;\n              if ((int)param_4 <= (int)param_5) {\n                pppppppcVar29 = (code *******)0x2;\n              }\n              uVar16 = (uint)(ppppppcVar32 != (code ******)0x0) | (uint)pppppppcVar28 |\n                       (uint)pppppppcVar29;\n            }\n            local_dc = param_4;\n            if ((int)param_4 < (int)pppppppcVar25) {\n              local_150 = (code *******)0x1;\n              param_6 = pppppppcVar36;\n            }\n            else if ((int)pppppppcVar26 < (int)param_4) {\n              local_150 = (code *******)0x1;\n              param_4 = (code *******)(uint)((int)param_5 < (int)param_4);\n              param_6 = pppppppcVar36;\n            }\n            else {\n              pppppppcVar36 = (code *******)&local_dc;\n              if ((code *******)(uint)((int)param_5 < (int)param_4) != (code *******)0x0) {\n                pppppppcVar36 = (code *******)0x0;\n              }\n              pcVar4 = (code *)(PTR_DAT_000799a4 + -0x2b7c);\n              piVar5 = (int *)(PTR_s_nt0_000795b8 + (uVar16 - 4) * 4 + 0x6e38);\nLAB_00055b44:\n              if (uVar16 - 4 < 5) {\n                    \n                    \n                pppppppcVar29 = (code *******)(*(code *)(&_gp_1 + *piVar5))();\n                return pppppppcVar29;\n              }\n              param_5 = &local_b4;\n              pppppppcVar28 = pppppppcVar33;\n              while( true ) {\n                param_4 = local_dc;\n                pppppppcVar33 = (code *******)((int)local_dc - local_9c);\n                pppppppcVar30 = param_9;\n                pppppppcVar31 = pppppppcVar2;\n                param_6 = local_148;\n                unaff_s4 = param_3;\n                unaff_s5 = pppppppcVar24;\n                unaff_s7 = pppppppcVar26;\n                if (local_94 <= pppppppcVar33) {\n                  pppppppcVar29 = local_dc;\n                  local_150 = (code *******)(*pcVar4)(param_5);\n                  pppppppcVar33 = pppppppcVar28;\n                  if (local_150 != (code *******)0x0) goto LAB_000557e4;\n                  pppppppcVar33 = (code *******)((int)param_4 - local_9c);\n                }\n                if ((int)param_4 < (int)param_3) {\n                  uVar7 = (uint)(byte)*(code *)((int)pppppppcVar33 + (int)local_b0);\n                }\n                else {\n                  uVar7 = 0;\n                }\n                param_4 = (code *******)((int)param_4 + (int)pppppppcVar24);\n                if (*(code *)((int)local_148 + uVar7) != (code)0x0) break;\n                pppppppcVar33 = pppppppcVar28;\n                local_dc = param_4;\n                if ((int)param_4 < (int)pppppppcVar25) {\n                  local_150 = (code *******)0x1;\n                  goto LAB_000557e4;\n                }\n                if ((code *******)(uint)((int)pppppppcVar26 < (int)param_4) != (code *******)0x0) {\n                  local_150 = (code *******)0x1;\n                  param_4 = (code *******)(uint)((int)pppppppcVar26 < (int)param_4);\n                  goto LAB_000557e4;\n                }\n              }\n              while( true ) {\n                pppppppcVar29 = local_dc;\n                pppppppcVar30 = param_9;\n                pppppppcVar6 = (code *******)(*pcVar4)(&local_b4);\n                pppppppcVar14 = local_60;\n                pppppppcVar42 = local_8c;\n                pppppppcVar33 = pppppppcVar28;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar6 != (code *******)0x0) goto LAB_000557e4;\n                if (((ppppppcVar35 != (code ******)0x1) && (local_98 != (code *******)0x0)) &&\n                   (*local_ac == -1)) goto LAB_00055b1c;\n                local_3c = 0;\n                local_48 = 0;\n                local_4c = (code *******)0x0;\n                local_138 = local_8c;\n                local_d8 = (code *******)0x0;\n                unaff_s7 = (code *******)local_60[9];\n                pppppppcVar30 = local_5c;\n                param_4 = pppppppcVar14;\n                if (((uint)unaff_s7[0xd] & 0x1000000) == 0) break;\n                pppppppcVar29 = (code *******)((int)local_8c + -1);\n                pppppppcVar33 = (code *******)FUN_00049110(&local_b4);\n                if (((uint)pppppppcVar33 & 1) == 0) {\n                  if (pppppppcVar33 == (code *******)0x0) break;\n                  if (((uint)pppppppcVar33 & 6) == 6) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xc];\n                    goto LAB_00054d1c;\n                  }\n                  if (((uint)pppppppcVar33 & 2) != 0) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xb];\n                    goto LAB_00054d1c;\n                  }\n                  pppppppcVar28 = pppppppcVar33;\n                  if (((uint)pppppppcVar33 & 4) == 0) break;\n                  pppppppcVar30 = (code *******)unaff_s7[10];\n                  pppppppcVar29 = pppppppcVar14;\n                  unaff_s7 = (code *******)FUN_0004ae34(&local_d8);\n                  pppppppcVar28 = pppppppcVar33;\n                  if (unaff_s7 != (code *******)0x0) break;\n                  if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                }\n                else {\n                  unaff_s7 = (code *******)pppppppcVar14[10];\nLAB_00054d1c:\n                  pppppppcVar28 = (code *******)PTR_s_nt0_000795b8;\n                  if (unaff_s7 != (code *******)0x0) break;\n                }\n                pppppppcVar28 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                local_dc = (code *******)\n                           (*(code *)PTR___assert_fail_000799f8)\n                                     (PTR_s_nt0_000795b8 + 0x71a0,pppppppcVar29,0x435);\n                if (local_dc == pppppppcVar26) {\n                  if ((int)local_dc < (int)param_3) {\n                    uVar7 = (uint)(byte)*(code *)((int)local_dc + (int)param_2);\n                  }\n                  else {\n                    uVar7 = 0;\n                  }\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    uVar7 = (uint)*(byte *)((int)ppppppcVar32 + uVar7);\n                  }\n                  if (*(code *)((int)local_148 + uVar7) == (code)0x0) {\n                    local_150 = (code *******)0x1;\n                    pppppppcVar30 = param_9;\n                    pppppppcVar33 = pppppppcVar28;\n                    goto LAB_000557e4;\n                  }\n                }\n              }\n              pppppppcVar33 = pppppppcVar28;\n              bVar1 = pppppppcVar36 != (code *******)0x0;\n              if ((local_50 == (code *******)0x0) ||\n                 (local_50[(int)pppppppcVar42] = (code ******)unaff_s7,\n                 pppppppcVar14[0x13] == (code ******)0x0)) {\nLAB_00054d50:\n                if ((int)unaff_s7[0xd] << 4 < 0) {\n                  if ((((uint)unaff_s7[0xd] & 0x1000000) == 0) ||\n                     (pppppppcVar29 = unaff_s7, pppppppcVar30 = pppppppcVar42,\n                     iVar18 = FUN_00049440(&local_b4), iVar18 != 0)) {\n                    unaff_s8 = pppppppcVar42;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                  }\n                  else {\n                    pppppppcVar42 = (code *******)0xffffffff;\n                    pppppppcVar28 = (code *******)0x0;\n                  }\n                }\n                else {\n                  pppppppcVar42 = (code *******)0xffffffff;\n                  pppppppcVar28 = (code *******)0x0;\n                }\n                pcVar8 = (code *)(PTR_DAT_000799a4 + -0x7144);\n                pcVar9 = (code *)(PTR_DAT_000799a4 + -0x1980);\n                pcVar10 = (code *)(PTR_DAT_000799a4 + -0x2f9c);\n                unaff_s8 = pppppppcVar42;\n                local_144 = pppppppcVar36;\n                while( true ) {\n                  uVar44 = CONCAT44(local_98,local_84);\n                  unaff_s5 = (code *******)((int)local_8c + 1);\n                  pppppppcVar29 = local_8c;\n                  if ((int)local_7c <= (int)local_8c) break;\n                  if (((int)local_90 <= (int)unaff_s5) && ((int)local_90 < (int)local_84))\n                  goto LAB_00054e94;\n                  if ((int)local_98 <= (int)unaff_s5) {\n                    while ((int)((ulonglong)uVar44 >> 0x20) < (int)uVar44) {\nLAB_00054e94:\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 2);\n                      local_d8 = (code *******)(*pcVar8)(&local_b4);\n                      if (local_d8 == (code *******)0x0) break;\n                      pppppppcVar14 = param_4;\n                      if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                      pppppppcVar33 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                      pppppppcVar30 = (code *******)0x46c;\n                      pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                      uVar44 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0);\n                      pppppppcVar28 = pppppppcVar38;\n                    }\n                  }\n                  pppppppcVar42 = local_60;\n                  if ((int)unaff_s7[0xd] << 5 < 0) {\n                    pppppppcVar31 = pppppppcVar42;\n                    if (0 < (int)unaff_s7[2]) {\n                      pcVar11 = (code *)(PTR_DAT_000799a4 + -0x6fdc);\n                      pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6ef0);\n                      param_6 = (code *******)0x0;\n                      do {\n                        param_5 = (code *******)unaff_s7[3][(int)param_6];\n                        ppppppcVar39 = *pppppppcVar42;\n                        pppppcVar13 = ppppppcVar39[(int)param_5 * 2 + 1];\n                        if (((uint)pppppcVar13 & 0x800) != 0) {\n                          if (((uint)pppppcVar13 & 0xffc000) != 0) {\n                            pppppppcVar29 = local_8c;\n                            uVar19 = (*pcVar12)(&local_b4,local_8c,local_5c);\n                            uVar7 = (uint)((int)ppppppcVar39[(int)param_5 * 2 + 1] << 8) >> 0x16;\n                            if ((uVar7 & 4) == 0) {\n                              uVar27 = uVar19 & 1;\n                              if ((uVar7 & 8) != 0) goto joined_r0x00054f40;\n                            }\n                            else {\n                              uVar27 = uVar7 & 8;\n                              if ((uVar19 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                              if (uVar27 != 0) goto LAB_000550a4;\n                            }\n                            if ((((uVar7 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                               (((uVar7 & 0x80) != 0 &&\n                                (pppppppcVar33 = local_8c, (uVar19 & 8) == 0)))) goto LAB_000550a4;\n                          }\n                          pppppppcVar30 = &local_b4;\n                          pppppppcVar29 = param_5;\n                          pppppppcVar33 = local_8c;\n                          iVar18 = (*pcVar10)(pppppppcVar42);\n                          if (iVar18 != 0) {\n                            pppppppcVar14 = (code *******)((int)local_8c + iVar18);\n                            if (iVar18 <= local_3c) {\n                              iVar18 = local_3c;\n                            }\n                            pppppppcVar29 = pppppppcVar14;\n                            local_3c = iVar18;\n                            local_d4 = (code *******)(*pcVar11)(&local_b4);\n                            pppppppcVar15 = local_d4;\n                            if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                            pppppppcVar30 =\n                                 (code *******)\n                                 (pppppppcVar42[6] + (int)pppppppcVar42[3][(int)param_5] * 3);\n                            unaff_s4 = (code *******)((int)pppppppcVar14 * 4);\n                            param_5 = local_50 + (int)pppppppcVar14;\n                            if (*param_5 == (code ******)0x0) {\n                              local_d0 = (code *******)*pppppppcVar30;\n                              local_cc = (code *******)pppppppcVar30[1];\n                              local_c8 = (code *******)pppppppcVar30[2];\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *param_5 = ppppppcVar39;\n                            }\n                            else {\n                              pppppppcVar29 = (code *******)(*param_5)[10];\n                              local_d4 = (code *******)FUN_000484bc(&local_d0);\n                              pppppppcVar15 = local_d4;\n                              if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar15 = local_50 + (int)pppppppcVar14;\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *pppppppcVar15 = ppppppcVar39;\n                              (*(code *)PTR_free_00079c24)(local_c8);\n                            }\n                            unaff_s4 = local_50 + (int)pppppppcVar14;\n                            if ((*unaff_s4 == (code ******)0x0) &&\n                               (pppppppcVar15 = local_d4, local_d4 != (code *******)0x0))\n                            goto LAB_00055e44;\n                          }\n                        }\nLAB_000550a4:\n                        param_6 = (code *******)((int)param_6 + 1);\n                      } while ((int)param_6 < (int)unaff_s7[2]);\n                    }\n                    local_d8 = (code *******)0x0;\n                  }\n                  uVar7 = (uint)(byte)*(code *)((int)local_8c + (int)local_b0);\n                  local_8c = (code *******)((int)local_8c + 1);\n                  do {\n                    if (unaff_s7[0xb] != (code ******)0x0) {\n                      pppppppcVar30 = (code *******)unaff_s7[0xb][uVar7];\nLAB_000553a0:\n                      pppppppcVar14 = pppppppcVar30;\n                      if (local_50 != (code *******)0x0) goto LAB_000553ac;\n                      goto LAB_000553cc;\n                    }\n                    pppppppcVar31 = (code *******)unaff_s7[0xc];\n                    if (pppppppcVar31 != (code *******)0x0) {\n                      pppppppcVar29 = (code *******)((int)local_8c + -1);\n                      uVar19 = FUN_00049110(&local_b4);\n                      if ((uVar19 & 1) == 0) {\n                        pppppppcVar30 = (code *******)pppppppcVar31[uVar7];\n                      }\n                      else {\n                        pppppppcVar31 = pppppppcVar31 + uVar7 + 0x100;\n                        pppppppcVar30 = (code *******)*pppppppcVar31;\n                      }\n                      goto LAB_000553a0;\n                    }\n                    pppppppcVar29 = unaff_s7;\n                    pppppppcVar30 = local_5c;\n                    iVar18 = (*pcVar9)(local_60);\n                  } while (iVar18 != 0);\n                  local_d8 = (code *******)0xc;\n                  pppppppcVar15 = local_d8;\nLAB_00055e44:\n                  local_d8 = pppppppcVar15;\n                  param_4 = (code *******)0x0;\n                  if (local_50 == (code *******)0x0) {\n                    pppppppcVar14 = param_4;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    break;\n                  }\n                  pppppppcVar30 = (code *******)0x0;\nLAB_000553ac:\n                  pppppppcVar29 = &local_b4;\n                  pppppppcVar14 = (code *******)FUN_00053684(&local_d8);\nLAB_000553cc:\n                  param_4 = pppppppcVar14;\n                  if (pppppppcVar14 == (code *******)0x0) {\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    if ((local_50 == (code *******)0x0) ||\n                       ((pppppppcVar28 != (code *******)0x0 && (pppppppcVar34 == (code *******)0x0))\n                       )) break;\n                    param_6 = &local_b4;\n                    param_5 = (code *******)&local_d8;\n                    pppppppcVar31 = (code *******)(PTR_DAT_000799a4 + 0x3684);\n                    do {\n                      pppppppcVar15 = local_50 + (int)local_8c;\n                      pppppppcVar42 = local_8c;\n                      do {\n                        pppppppcVar42 = (code *******)((int)pppppppcVar42 + 1);\n                        pppppppcVar29 = local_4c;\n                        param_4 = pppppppcVar14;\n                        if ((int)local_4c < (int)pppppppcVar42) goto LAB_00055da8;\n                        local_8c = (code *******)((int)local_8c + 1);\n                        pppppppcVar15 = pppppppcVar15 + 1;\n                      } while (*pppppppcVar15 == (code ******)0x0);\n                      pppppppcVar30 = (code *******)0x0;\n                      pppppppcVar29 = param_6;\n                      param_4 = (code *******)(*(code *)pppppppcVar31)(param_5);\n                      if (local_d8 != (code *******)0x0) {\n                        if (param_4 == (code *******)0x0) goto LAB_00055da8;\n                        break;\n                      }\n                      pppppppcVar29 = local_4c;\n                    } while (param_4 == (code *******)0x0);\n                  }\n                  pppppppcVar15 = (code *******)((uint)unaff_s7 ^ (uint)param_4);\n                  pppppppcVar42 = unaff_s7;\n                  pppppppcVar14 = local_138;\n                  if ((bVar1) &&\n                     (pppppppcVar42 = pppppppcVar15, pppppppcVar14 = unaff_s5,\n                     pppppppcVar15 != (code *******)0x0)) {\n                    bVar1 = false;\n                    pppppppcVar14 = local_138;\n                  }\n                  local_138 = pppppppcVar14;\n                  unaff_s7 = param_4;\n                  if ((((uint)param_4[0xd] & 0x8000000) != 0) &&\n                     ((((uint)param_4[0xd] & 0x1000000) == 0 ||\n                      (pppppppcVar29 = param_4, pppppppcVar30 = local_8c,\n                      iVar18 = FUN_00049440(&local_b4), iVar18 != 0)))) {\n                    unaff_s7 = pppppppcVar42;\n                    unaff_s8 = local_8c;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                    local_144 = (code *******)0x0;\n                    unaff_s7 = param_4;\n                  }\n                }\nLAB_00055da8:\n                if (local_144 != (code *******)0x0) {\n                  *local_144 = (code ******)((int)local_138 + (int)*local_144);\n                }\n              }\n              else {\n                param_4 = unaff_s7 + 1;\n                pppppppcVar30 = (code *******)0x0;\n                pppppppcVar29 = param_4;\n                local_d8 = (code *******)FUN_00047a44(&local_b4);\n                unaff_s8 = local_d8;\n                if (local_d8 == (code *******)0x0) {\n                  if (((uint)unaff_s7[0xd] & 0x2000000) == 0) {\n                    pppppppcVar29 = param_4;\n                    bVar1 = false;\n                  }\n                  else {\n                    pppppppcVar29 = param_4;\n                    local_d8 = (code *******)FUN_00052d84(&local_b4);\n                    unaff_s8 = local_d8;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055dbc;\n                    bVar1 = false;\n                  }\n                  goto LAB_00054d50;\n                }\n              }\nLAB_00055dbc:\n              if (unaff_s8 == (code *******)0xffffffff) {\nLAB_00055b04:\n                FUN_0004b7e8(&local_b4);\nLAB_00055b1c:\n                local_dc = (code *******)((int)pppppppcVar24 + (int)local_dc);\n                if ((int)pppppppcVar25 <= (int)local_dc) goto code_r0x00055b38;\n                local_150 = (code *******)0x1;\n                goto LAB_000557e4;\n              }\n              if (unaff_s8 == (code *******)&SUB_fffffffe) {\n                local_150 = (code *******)0xc;\n                goto LAB_000557e4;\n              }\n              local_58 = unaff_s8;\n              if (((uint)param_1[7] & 0x8000000) == 0) {\n                if (pppppppcVar3 < (code *******)0x2) {\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055c08;\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                else {\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                if (pppppppcVar3 < (code *******)0x2) {\nLAB_00055c6c:\n                  pppppppcVar28 = pppppppcVar33;\n                  unaff_s4 = local_60;\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055548;\n                }\n                else {\n                  cVar23 = *(code *)(pppppppcVar38 + 0x16);\nLAB_00055c20:\n                  pppppppcVar28 = pppppppcVar33;\n                  if (-1 < (char)cVar23) goto LAB_00055c6c;\n                }\n                pppppppcVar31 = local_54;\n                pppppppcVar42 = local_60;\n                unaff_s4 = pppppppcVar42;\n                if (unaff_s8 < (code *******)0x3fffffff) {\n                  param_4 = (code *******)((int)((int)unaff_s8 + 1) * 4);\n                  unaff_s5 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                  if (unaff_s5 == (code *******)0x0) {\nLAB_00055b9c:\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    local_150 = (code *******)0xc;\n                    pppppppcVar33 = pppppppcVar28;\n                  }\n                  else {\n                    pppppppcVar29 = (code *******)&local_d0;\n                    if (pppppppcVar42[0x13] == (code ******)0x0) {\n                      local_cc = (code *******)0x0;\n                      local_c8 = pppppppcVar31;\n                      local_c0 = 0;\n                      local_bc = 0;\n                      local_b8 = 0;\n                      local_d0 = unaff_s5;\n                      local_c4 = unaff_s8;\n                      param_5 = (code *******)FUN_0005421c(&local_b4);\n                      (*(code *)PTR_free_00079c24)(local_b8);\n                      if (param_5 == (code *******)0x0) {\n                        param_4 = (code *******)*unaff_s5;\n                        if (param_4 == (code *******)0x0) {\nLAB_00055b70:\n                          (*(code *)PTR_free_00079c24)(unaff_s5);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          pppppppcVar33 = pppppppcVar28;\n                          goto LAB_00055b04;\n                        }\nLAB_00055528:\n                        (*(code *)PTR_free_00079c24)(local_50);\n                        pppppppcVar33 = pppppppcVar28;\n                        unaff_s4 = pppppppcVar42;\n                        local_58 = unaff_s8;\n                        local_54 = pppppppcVar31;\n                        local_50 = unaff_s5;\n                        goto LAB_00055548;\n                      }\nLAB_00055acc:\n                      param_4 = (code *******)0x0;\n                      pppppppcVar33 = pppppppcVar28;\n                      unaff_s4 = pppppppcVar42;\n                    }\n                    else {\n                      param_4 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                      if (param_4 == (code *******)0x0) goto LAB_00055b9c;\n                      unaff_s7 = (code *******)&local_d0;\n                      pcVar8 = (code *)(PTR_DAT_000799a4 + 0x421c);\n                      pcVar9 = (code *)(PTR_DAT_000799a4 + -0x6bc0);\n                      pppppppcVar33 = pppppppcVar28;\n                      while( true ) {\n                        pppppppcVar28 = (code *******)((int)unaff_s8 + 1);\n                        param_6 = (code *******)((int)pppppppcVar28 * 4);\n                        pppppppcVar30 = param_6;\n                        (*(code *)PTR_memset_00079b00)(param_4,0);\n                        local_c0 = 0;\n                        local_bc = 0;\n                        local_b8 = 0;\n                        pppppppcVar29 = unaff_s7;\n                        local_d0 = unaff_s5;\n                        local_cc = param_4;\n                        local_c8 = pppppppcVar31;\n                        local_c4 = unaff_s8;\n                        param_5 = (code *******)(*pcVar8)(&local_b4);\n                        (*(code *)PTR_free_00079c24)(local_b8);\n                        unaff_s4 = pppppppcVar28;\n                        if (param_5 != (code *******)0x0) break;\n                        if ((*unaff_s5 != (code ******)0x0) ||\n                           (param_6 = param_6 + -1, *param_4 != (code ******)0x0)) {\n                          pppppppcVar29 = unaff_s5;\n                          pppppppcVar30 = param_4;\n                          param_5 = (code *******)FUN_000520d0(pppppppcVar42);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          if (param_5 != (code *******)0x0) goto LAB_00055acc;\n                          goto LAB_00055528;\n                        }\n                        param_6 = (code *******)((int)local_50 + (int)param_6);\n                        do {\n                          while( true ) {\n                            unaff_s8 = (code *******)((int)unaff_s8 + -1);\n                            if ((int)unaff_s8 < 0) goto LAB_00055b70;\n                            pppppppcVar29 = (code *******)param_6[-1];\n                            if (pppppppcVar29 != (code *******)0x0) break;\n                            param_6 = param_6 + -1;\n                          }\n                          param_6 = param_6 + -1;\n                        } while (((uint)pppppppcVar29[0xd] & 0x8000000) == 0);\n                        pppppppcVar31 = (code *******)(*pcVar9)(&local_b4,pppppppcVar29,unaff_s8);\n                        pppppppcVar33 = pppppppcVar28;\n                      }\n                    }\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    (*(code *)PTR_free_00079c24)(param_4);\n                    local_150 = param_5;\n                    if (param_5 == (code *******)0x1) goto LAB_00055b04;\n                  }\n                }\n                else {\n                  local_150 = (code *******)0xc;\n                  pppppppcVar33 = pppppppcVar28;\n                }\n                goto LAB_000557e4;\n              }\n              if (pppppppcVar38[0x13] != (code ******)0x0) {\n                pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                pppppppcVar30 = unaff_s8;\n                local_54 = (code *******)FUN_00049440(&local_b4);\n                goto LAB_00055c6c;\n              }\nLAB_00055c08:\n              if ((((uint)param_1[7] & 0x8000000) == 0) && ((code *******)0x1 < pppppppcVar3)) {\n                cVar23 = *(code *)(pppppppcVar38 + 0x16);\n                goto LAB_00055c20;\n              }\nLAB_00055548:\n              if (pppppppcVar3 == (code *******)0x0) goto LAB_000557e4;\n              if (pppppppcVar3 < (code *******)0x2) {\n                *param_8 = (code ******)0x0;\n                param_8[1] = (code ******)local_58;\n                goto LAB_000555ac;\n              }\n              pppppppcVar29 = param_8 + 2;\n              do {\n                pppppppcVar29[1] = (code ******)0xffffffff;\n                *pppppppcVar29 = (code ******)0xffffffff;\n                pppppppcVar29 = pppppppcVar29 + 2;\n              } while (pppppppcVar29 != param_8 + (int)pppppppcVar3 * 2);\n              *param_8 = (code ******)0x0;\n              param_8[1] = (code ******)local_58;\n              if (((uint)param_1[7] & 0x8000000) != 0) {\nLAB_000555ac:\n                pppppppcVar33 = param_8;\n                do {\n                  pppppppcVar29 = (code *******)*pppppppcVar33;\n                  if (pppppppcVar29 != (code *******)0xffffffff) {\n                    if (local_68 != '\0') {\n                      pppppppcVar34 = local_94;\n                      if (pppppppcVar29 != local_98) {\n                        pppppppcVar34 = *(code ********)(local_a8 + (int)pppppppcVar29 * 4);\n                      }\n                      *pppppppcVar33 = (code ******)pppppppcVar34;\n                      pppppppcVar29 = local_94;\n                      if (local_98 != (code *******)pppppppcVar33[1]) {\n                        pppppppcVar29 = *(code ********)(local_a8 + (int)pppppppcVar33[1] * 4);\n                      }\n                      pppppppcVar33[1] = (code ******)pppppppcVar29;\n                    }\n                    *pppppppcVar33 = (code ******)((int)local_dc + (int)*pppppppcVar33);\n                    pppppppcVar29 = (code *******)((int)local_dc + (int)pppppppcVar33[1]);\n                    pppppppcVar33[1] = (code ******)pppppppcVar29;\n                  }\n                  pppppppcVar33 = pppppppcVar33 + 2;\n                } while (pppppppcVar33 != param_8 + (int)pppppppcVar3 * 2);\n                if (0 < local_118) {\n                  pppppppcVar33 = param_8 + (int)pppppppcVar3 * 2;\n                  do {\n                    *pppppppcVar33 = (code ******)0xffffffff;\n                    pppppppcVar33[1] = (code ******)0xffffffff;\n                    pppppppcVar33 = pppppppcVar33 + 2;\n                  } while (pppppppcVar33 != param_8 + (int)param_7 * 2);\n                }\n                pppppppcVar30 = local_dc;\n                pppppppcVar33 = param_8;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar38[0x21] != (code ******)0x0) {\n                  pppppppcVar30 = (code *******)((int)pppppppcVar3 + -1);\n                  pppppppcVar34 = (code *******)0x0;\n                  pppppppcVar3 = param_8;\n                  while( true ) {\n                    pppppppcVar29 = (code *******)((int)pppppppcVar34 * 4);\n                    if (pppppppcVar30 == pppppppcVar34) break;\n                    if (*(code ********)((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) !=\n                        pppppppcVar34) {\n                      pppppppcVar3[2] =\n                           param_8[(int)((int)*(code ********)\n                                               ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1)\n                                   * 2];\n                      pppppppcVar3[3] =\n                           param_8[((int)*(code ******)\n                                          ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1) * 2 +\n                                   1];\n                    }\n                    pppppppcVar34 = (code *******)((int)pppppppcVar34 + 1);\n                    pppppppcVar3 = pppppppcVar3 + 2;\n                  }\n                }\n                goto LAB_000557e4;\n              }\n              if ((char)*(code *)(pppppppcVar38 + 0x16) < '\0') {\n                local_168 = (uint)(0 < (int)pppppppcVar38[0x13]);\n              }\n              else {\n                local_168 = 0;\n              }\n              pppppppcVar29 = &local_b4;\n              pppppppcVar30 = pppppppcVar3;\n              pppppppcVar33 = param_8;\n              local_150 = (code *******)FUN_0004f4a0(param_1);\n              if (local_150 == (code *******)0x0) goto LAB_000555ac;\n            }\n          }\n          else if (local_90 < 0x3fffffff) {\n            local_50 = (code *******)(*(code *)PTR_malloc_00079b54)((local_90 + 1) * 4);\n            if (local_50 != (code *******)0x0) goto LAB_00055a40;\n            local_150 = (code *******)0xc;\n            param_6 = pppppppcVar36;\n          }\n          else {\n            local_150 = (code *******)0xc;\n            param_6 = pppppppcVar36;\n          }\n        }\n        else {\n          unaff_s5 = (code *******)((int)ppppppcVar35 * 8);\n          if (pppppppcVar36 < (code *******)0xccccccd) {\n            unaff_s4 = (code *******)(*(code *)PTR_malloc_00079b54)((int)ppppppcVar35 * 0x28);\n            local_40 = unaff_s4;\n            local_30 = (*(code *)PTR_malloc_00079b54)(unaff_s5);\n            if ((unaff_s4 != (code *******)0x0) && (local_30 != 0)) goto LAB_000559f0;\n          }\n          local_150 = (code *******)0xc;\n          param_6 = pppppppcVar36;\n        }\nLAB_000557e4:\n        (*(code *)PTR_free_00079c24)(local_50);\n        param_1 = pppppppcVar30;\n        if (pppppppcVar38[0x13] != (code ******)0x0) {\n          FUN_0004b7e8(&local_b4);\n          (*(code *)PTR_free_00079c24)(local_30);\n          (*(code *)PTR_free_00079c24)(local_40);\n          param_1 = pppppppcVar30;\n        }\n        FUN_0004b2bc(&local_b4);\n        pppppppcStack_1a0 = param_4;\n        pppppppcStack_19c = pppppppcVar31;\n      }\n    }" if (parenthesized_expression "(pppppppcVar29 == (code *******)0x0)" ( (binary_expression "pppppppcVar29 == (code *******)0x0" identifier == (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\n      local_150 = (code *******)0x1;\n    }" { (expression_statement "local_150 = (code *******)0x1;" (assignment_expression "local_150 = (code *******)0x1" identifier = (cast_expression "(code *******)0x1" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) }) (else_clause "else {\n      pppppppcVar3 = param_5;\n      if ((((pppppppcVar38[9][2] == (code *****)0x0) && (pppppppcVar38[10][2] == (code *****)0x0))\n          && ((pppppppcVar38[0xb][2] == (code *****)0x0 || (((uint)param_1[7] & 0x1000000) == 0))))\n         && ((pppppppcVar3 = param_4, param_4 != (code *******)0x0 &&\n             (param_4 = param_5, pppppppcVar3 = param_5, param_5 != (code *******)0x0)))) {\n        local_150 = (code *******)0x1;\n        pppppppcStack_1a0 = param_5;\n      }\n      else {\n        param_5 = pppppppcVar3;\n        pppppppcVar3 = (code *******)((int)param_7 - local_118);\n        if (pppppppcVar3 == (code *******)0x0) {\n          pppppppcVar34 = (code *******)(uint)(pppppppcVar38[0x13] != (code ******)0x0);\n        }\n        else {\n          pppppppcVar34 = (code *******)0x1;\n        }\n        ppppppcVar32 = param_1[5];\n        local_6c = (byte)((uint)((int)param_1[3] << 9) >> 0x1f);\n        local_64 = (code *******)pppppppcVar38[0x17];\n        pppppppcVar31 = (code *******)((int)pppppppcVar38[2] + 1);\n        if ((int)pppppppcVar38[2] + 1 < (int)local_64) {\n          pppppppcVar31 = local_64;\n        }\n        pppppppcVar30 = (code *******)(uint)((int)param_3 + 1 < (int)pppppppcVar31);\n        pppppppcVar33 = (code *******)0x1;\n        local_69 = local_6c;\n        if (ppppppcVar32 != (code ******)0x0) {\n          local_69 = 1;\n        }\n        local_6b = (byte)((uint)((int)pppppppcVar38[0x16] << 2) >> 0x1f);\n        local_6a = (byte)((uint)((int)pppppppcVar38[0x16] << 3) >> 0x1f);\n        pppppppcVar29 = (code *******)((int)param_3 + 1);\n        if (pppppppcVar30 == (code *******)0x0) {\n          pppppppcVar29 = pppppppcVar31;\n        }\n        local_b4 = param_2;\n        local_88 = param_3;\n        local_84 = param_3;\n        local_80 = param_3;\n        local_7c = param_3;\n        local_74 = ppppppcVar32;\n        local_150 = (code *******)FUN_00046d2c(&local_b4);\n        pppppppcVar31 = pppppppcVar34;\n        param_6 = param_6;\n        if (local_150 != (code *******)0x0) goto LAB_000557e4;\n        local_70 = pppppppcVar38 + 0x18;\n        local_66 = (byte)((uint)((int)pppppppcVar38[0x16] << 4) >> 0x1f);\n        pppppppcVar2 = (code *******)0x0;\n        local_98 = pppppppcVar2;\n        if ((local_69 == 0) && (local_b0 = param_2, (int)pppppppcVar38[0x17] < 2)) {\n          local_98 = param_3;\n        }\n        local_7c = param_6;\n        local_80 = param_6;\n        local_67 = (byte)((uint)((int)param_1[7] << 7) >> 0x1f);\n        ppppppcVar35 = pppppppcVar38[0x13];\n        pppppppcVar36 = (code *******)((int)ppppppcVar35 * 2);\n        local_5c = param_9;\n        local_58 = (code *******)0xffffffff;\n        local_94 = local_98;\n        if ((int)pppppppcVar36 < 1) {\nLAB_000559f0:\n          local_3c = 1;\n          local_44 = pppppppcVar36;\n          local_34 = pppppppcVar36;\n          if ((pppppppcVar3 < (code *******)0x2) && (((uint)pppppppcVar38[0x16] & 0x40000000) == 0))\n          {\n            local_50 = (code *******)0x0;\nLAB_00055a40:\n            local_78 = 6;\n            if (((uint)param_9 & 1) != 0) {\n              local_78 = 4;\n            }\n            pppppppcVar24 = (code *******)0x1;\n            pppppppcVar25 = param_4;\n            if ((int)param_5 < (int)param_4) {\n              pppppppcVar24 = (code *******)0xffffffff;\n              pppppppcVar25 = param_5;\n            }\n            pppppppcVar26 = param_5;\n            if ((int)param_5 <= (int)param_4) {\n              pppppppcVar26 = param_4;\n            }\n            ppppppcVar35 = pppppppcVar38[0x17];\n            uVar16 = 8;\n            if (local_148 != (code *******)0x0) {\n              if (ppppppcVar35 == (code ******)0x1) {\n                pppppppcVar28 = (code *******)0x4;\n              }\n              else {\n                pppppppcVar28 = pppppppcVar2;\n                if ((-1 < (int)param_1[3] << 9) && (ppppppcVar32 == (code ******)0x0)) {\n                  pppppppcVar28 = (code *******)0x4;\n                }\n              }\n              pppppppcVar29 = (code *******)0x0;\n              if ((int)param_4 <= (int)param_5) {\n                pppppppcVar29 = (code *******)0x2;\n              }\n              uVar16 = (uint)(ppppppcVar32 != (code ******)0x0) | (uint)pppppppcVar28 |\n                       (uint)pppppppcVar29;\n            }\n            local_dc = param_4;\n            if ((int)param_4 < (int)pppppppcVar25) {\n              local_150 = (code *******)0x1;\n              param_6 = pppppppcVar36;\n            }\n            else if ((int)pppppppcVar26 < (int)param_4) {\n              local_150 = (code *******)0x1;\n              param_4 = (code *******)(uint)((int)param_5 < (int)param_4);\n              param_6 = pppppppcVar36;\n            }\n            else {\n              pppppppcVar36 = (code *******)&local_dc;\n              if ((code *******)(uint)((int)param_5 < (int)param_4) != (code *******)0x0) {\n                pppppppcVar36 = (code *******)0x0;\n              }\n              pcVar4 = (code *)(PTR_DAT_000799a4 + -0x2b7c);\n              piVar5 = (int *)(PTR_s_nt0_000795b8 + (uVar16 - 4) * 4 + 0x6e38);\nLAB_00055b44:\n              if (uVar16 - 4 < 5) {\n                    \n                    \n                pppppppcVar29 = (code *******)(*(code *)(&_gp_1 + *piVar5))();\n                return pppppppcVar29;\n              }\n              param_5 = &local_b4;\n              pppppppcVar28 = pppppppcVar33;\n              while( true ) {\n                param_4 = local_dc;\n                pppppppcVar33 = (code *******)((int)local_dc - local_9c);\n                pppppppcVar30 = param_9;\n                pppppppcVar31 = pppppppcVar2;\n                param_6 = local_148;\n                unaff_s4 = param_3;\n                unaff_s5 = pppppppcVar24;\n                unaff_s7 = pppppppcVar26;\n                if (local_94 <= pppppppcVar33) {\n                  pppppppcVar29 = local_dc;\n                  local_150 = (code *******)(*pcVar4)(param_5);\n                  pppppppcVar33 = pppppppcVar28;\n                  if (local_150 != (code *******)0x0) goto LAB_000557e4;\n                  pppppppcVar33 = (code *******)((int)param_4 - local_9c);\n                }\n                if ((int)param_4 < (int)param_3) {\n                  uVar7 = (uint)(byte)*(code *)((int)pppppppcVar33 + (int)local_b0);\n                }\n                else {\n                  uVar7 = 0;\n                }\n                param_4 = (code *******)((int)param_4 + (int)pppppppcVar24);\n                if (*(code *)((int)local_148 + uVar7) != (code)0x0) break;\n                pppppppcVar33 = pppppppcVar28;\n                local_dc = param_4;\n                if ((int)param_4 < (int)pppppppcVar25) {\n                  local_150 = (code *******)0x1;\n                  goto LAB_000557e4;\n                }\n                if ((code *******)(uint)((int)pppppppcVar26 < (int)param_4) != (code *******)0x0) {\n                  local_150 = (code *******)0x1;\n                  param_4 = (code *******)(uint)((int)pppppppcVar26 < (int)param_4);\n                  goto LAB_000557e4;\n                }\n              }\n              while( true ) {\n                pppppppcVar29 = local_dc;\n                pppppppcVar30 = param_9;\n                pppppppcVar6 = (code *******)(*pcVar4)(&local_b4);\n                pppppppcVar14 = local_60;\n                pppppppcVar42 = local_8c;\n                pppppppcVar33 = pppppppcVar28;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar6 != (code *******)0x0) goto LAB_000557e4;\n                if (((ppppppcVar35 != (code ******)0x1) && (local_98 != (code *******)0x0)) &&\n                   (*local_ac == -1)) goto LAB_00055b1c;\n                local_3c = 0;\n                local_48 = 0;\n                local_4c = (code *******)0x0;\n                local_138 = local_8c;\n                local_d8 = (code *******)0x0;\n                unaff_s7 = (code *******)local_60[9];\n                pppppppcVar30 = local_5c;\n                param_4 = pppppppcVar14;\n                if (((uint)unaff_s7[0xd] & 0x1000000) == 0) break;\n                pppppppcVar29 = (code *******)((int)local_8c + -1);\n                pppppppcVar33 = (code *******)FUN_00049110(&local_b4);\n                if (((uint)pppppppcVar33 & 1) == 0) {\n                  if (pppppppcVar33 == (code *******)0x0) break;\n                  if (((uint)pppppppcVar33 & 6) == 6) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xc];\n                    goto LAB_00054d1c;\n                  }\n                  if (((uint)pppppppcVar33 & 2) != 0) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xb];\n                    goto LAB_00054d1c;\n                  }\n                  pppppppcVar28 = pppppppcVar33;\n                  if (((uint)pppppppcVar33 & 4) == 0) break;\n                  pppppppcVar30 = (code *******)unaff_s7[10];\n                  pppppppcVar29 = pppppppcVar14;\n                  unaff_s7 = (code *******)FUN_0004ae34(&local_d8);\n                  pppppppcVar28 = pppppppcVar33;\n                  if (unaff_s7 != (code *******)0x0) break;\n                  if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                }\n                else {\n                  unaff_s7 = (code *******)pppppppcVar14[10];\nLAB_00054d1c:\n                  pppppppcVar28 = (code *******)PTR_s_nt0_000795b8;\n                  if (unaff_s7 != (code *******)0x0) break;\n                }\n                pppppppcVar28 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                local_dc = (code *******)\n                           (*(code *)PTR___assert_fail_000799f8)\n                                     (PTR_s_nt0_000795b8 + 0x71a0,pppppppcVar29,0x435);\n                if (local_dc == pppppppcVar26) {\n                  if ((int)local_dc < (int)param_3) {\n                    uVar7 = (uint)(byte)*(code *)((int)local_dc + (int)param_2);\n                  }\n                  else {\n                    uVar7 = 0;\n                  }\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    uVar7 = (uint)*(byte *)((int)ppppppcVar32 + uVar7);\n                  }\n                  if (*(code *)((int)local_148 + uVar7) == (code)0x0) {\n                    local_150 = (code *******)0x1;\n                    pppppppcVar30 = param_9;\n                    pppppppcVar33 = pppppppcVar28;\n                    goto LAB_000557e4;\n                  }\n                }\n              }\n              pppppppcVar33 = pppppppcVar28;\n              bVar1 = pppppppcVar36 != (code *******)0x0;\n              if ((local_50 == (code *******)0x0) ||\n                 (local_50[(int)pppppppcVar42] = (code ******)unaff_s7,\n                 pppppppcVar14[0x13] == (code ******)0x0)) {\nLAB_00054d50:\n                if ((int)unaff_s7[0xd] << 4 < 0) {\n                  if ((((uint)unaff_s7[0xd] & 0x1000000) == 0) ||\n                     (pppppppcVar29 = unaff_s7, pppppppcVar30 = pppppppcVar42,\n                     iVar18 = FUN_00049440(&local_b4), iVar18 != 0)) {\n                    unaff_s8 = pppppppcVar42;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                  }\n                  else {\n                    pppppppcVar42 = (code *******)0xffffffff;\n                    pppppppcVar28 = (code *******)0x0;\n                  }\n                }\n                else {\n                  pppppppcVar42 = (code *******)0xffffffff;\n                  pppppppcVar28 = (code *******)0x0;\n                }\n                pcVar8 = (code *)(PTR_DAT_000799a4 + -0x7144);\n                pcVar9 = (code *)(PTR_DAT_000799a4 + -0x1980);\n                pcVar10 = (code *)(PTR_DAT_000799a4 + -0x2f9c);\n                unaff_s8 = pppppppcVar42;\n                local_144 = pppppppcVar36;\n                while( true ) {\n                  uVar44 = CONCAT44(local_98,local_84);\n                  unaff_s5 = (code *******)((int)local_8c + 1);\n                  pppppppcVar29 = local_8c;\n                  if ((int)local_7c <= (int)local_8c) break;\n                  if (((int)local_90 <= (int)unaff_s5) && ((int)local_90 < (int)local_84))\n                  goto LAB_00054e94;\n                  if ((int)local_98 <= (int)unaff_s5) {\n                    while ((int)((ulonglong)uVar44 >> 0x20) < (int)uVar44) {\nLAB_00054e94:\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 2);\n                      local_d8 = (code *******)(*pcVar8)(&local_b4);\n                      if (local_d8 == (code *******)0x0) break;\n                      pppppppcVar14 = param_4;\n                      if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                      pppppppcVar33 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                      pppppppcVar30 = (code *******)0x46c;\n                      pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                      uVar44 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0);\n                      pppppppcVar28 = pppppppcVar38;\n                    }\n                  }\n                  pppppppcVar42 = local_60;\n                  if ((int)unaff_s7[0xd] << 5 < 0) {\n                    pppppppcVar31 = pppppppcVar42;\n                    if (0 < (int)unaff_s7[2]) {\n                      pcVar11 = (code *)(PTR_DAT_000799a4 + -0x6fdc);\n                      pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6ef0);\n                      param_6 = (code *******)0x0;\n                      do {\n                        param_5 = (code *******)unaff_s7[3][(int)param_6];\n                        ppppppcVar39 = *pppppppcVar42;\n                        pppppcVar13 = ppppppcVar39[(int)param_5 * 2 + 1];\n                        if (((uint)pppppcVar13 & 0x800) != 0) {\n                          if (((uint)pppppcVar13 & 0xffc000) != 0) {\n                            pppppppcVar29 = local_8c;\n                            uVar19 = (*pcVar12)(&local_b4,local_8c,local_5c);\n                            uVar7 = (uint)((int)ppppppcVar39[(int)param_5 * 2 + 1] << 8) >> 0x16;\n                            if ((uVar7 & 4) == 0) {\n                              uVar27 = uVar19 & 1;\n                              if ((uVar7 & 8) != 0) goto joined_r0x00054f40;\n                            }\n                            else {\n                              uVar27 = uVar7 & 8;\n                              if ((uVar19 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                              if (uVar27 != 0) goto LAB_000550a4;\n                            }\n                            if ((((uVar7 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                               (((uVar7 & 0x80) != 0 &&\n                                (pppppppcVar33 = local_8c, (uVar19 & 8) == 0)))) goto LAB_000550a4;\n                          }\n                          pppppppcVar30 = &local_b4;\n                          pppppppcVar29 = param_5;\n                          pppppppcVar33 = local_8c;\n                          iVar18 = (*pcVar10)(pppppppcVar42);\n                          if (iVar18 != 0) {\n                            pppppppcVar14 = (code *******)((int)local_8c + iVar18);\n                            if (iVar18 <= local_3c) {\n                              iVar18 = local_3c;\n                            }\n                            pppppppcVar29 = pppppppcVar14;\n                            local_3c = iVar18;\n                            local_d4 = (code *******)(*pcVar11)(&local_b4);\n                            pppppppcVar15 = local_d4;\n                            if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                            pppppppcVar30 =\n                                 (code *******)\n                                 (pppppppcVar42[6] + (int)pppppppcVar42[3][(int)param_5] * 3);\n                            unaff_s4 = (code *******)((int)pppppppcVar14 * 4);\n                            param_5 = local_50 + (int)pppppppcVar14;\n                            if (*param_5 == (code ******)0x0) {\n                              local_d0 = (code *******)*pppppppcVar30;\n                              local_cc = (code *******)pppppppcVar30[1];\n                              local_c8 = (code *******)pppppppcVar30[2];\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *param_5 = ppppppcVar39;\n                            }\n                            else {\n                              pppppppcVar29 = (code *******)(*param_5)[10];\n                              local_d4 = (code *******)FUN_000484bc(&local_d0);\n                              pppppppcVar15 = local_d4;\n                              if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar15 = local_50 + (int)pppppppcVar14;\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *pppppppcVar15 = ppppppcVar39;\n                              (*(code *)PTR_free_00079c24)(local_c8);\n                            }\n                            unaff_s4 = local_50 + (int)pppppppcVar14;\n                            if ((*unaff_s4 == (code ******)0x0) &&\n                               (pppppppcVar15 = local_d4, local_d4 != (code *******)0x0))\n                            goto LAB_00055e44;\n                          }\n                        }\nLAB_000550a4:\n                        param_6 = (code *******)((int)param_6 + 1);\n                      } while ((int)param_6 < (int)unaff_s7[2]);\n                    }\n                    local_d8 = (code *******)0x0;\n                  }\n                  uVar7 = (uint)(byte)*(code *)((int)local_8c + (int)local_b0);\n                  local_8c = (code *******)((int)local_8c + 1);\n                  do {\n                    if (unaff_s7[0xb] != (code ******)0x0) {\n                      pppppppcVar30 = (code *******)unaff_s7[0xb][uVar7];\nLAB_000553a0:\n                      pppppppcVar14 = pppppppcVar30;\n                      if (local_50 != (code *******)0x0) goto LAB_000553ac;\n                      goto LAB_000553cc;\n                    }\n                    pppppppcVar31 = (code *******)unaff_s7[0xc];\n                    if (pppppppcVar31 != (code *******)0x0) {\n                      pppppppcVar29 = (code *******)((int)local_8c + -1);\n                      uVar19 = FUN_00049110(&local_b4);\n                      if ((uVar19 & 1) == 0) {\n                        pppppppcVar30 = (code *******)pppppppcVar31[uVar7];\n                      }\n                      else {\n                        pppppppcVar31 = pppppppcVar31 + uVar7 + 0x100;\n                        pppppppcVar30 = (code *******)*pppppppcVar31;\n                      }\n                      goto LAB_000553a0;\n                    }\n                    pppppppcVar29 = unaff_s7;\n                    pppppppcVar30 = local_5c;\n                    iVar18 = (*pcVar9)(local_60);\n                  } while (iVar18 != 0);\n                  local_d8 = (code *******)0xc;\n                  pppppppcVar15 = local_d8;\nLAB_00055e44:\n                  local_d8 = pppppppcVar15;\n                  param_4 = (code *******)0x0;\n                  if (local_50 == (code *******)0x0) {\n                    pppppppcVar14 = param_4;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    break;\n                  }\n                  pppppppcVar30 = (code *******)0x0;\nLAB_000553ac:\n                  pppppppcVar29 = &local_b4;\n                  pppppppcVar14 = (code *******)FUN_00053684(&local_d8);\nLAB_000553cc:\n                  param_4 = pppppppcVar14;\n                  if (pppppppcVar14 == (code *******)0x0) {\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    if ((local_50 == (code *******)0x0) ||\n                       ((pppppppcVar28 != (code *******)0x0 && (pppppppcVar34 == (code *******)0x0))\n                       )) break;\n                    param_6 = &local_b4;\n                    param_5 = (code *******)&local_d8;\n                    pppppppcVar31 = (code *******)(PTR_DAT_000799a4 + 0x3684);\n                    do {\n                      pppppppcVar15 = local_50 + (int)local_8c;\n                      pppppppcVar42 = local_8c;\n                      do {\n                        pppppppcVar42 = (code *******)((int)pppppppcVar42 + 1);\n                        pppppppcVar29 = local_4c;\n                        param_4 = pppppppcVar14;\n                        if ((int)local_4c < (int)pppppppcVar42) goto LAB_00055da8;\n                        local_8c = (code *******)((int)local_8c + 1);\n                        pppppppcVar15 = pppppppcVar15 + 1;\n                      } while (*pppppppcVar15 == (code ******)0x0);\n                      pppppppcVar30 = (code *******)0x0;\n                      pppppppcVar29 = param_6;\n                      param_4 = (code *******)(*(code *)pppppppcVar31)(param_5);\n                      if (local_d8 != (code *******)0x0) {\n                        if (param_4 == (code *******)0x0) goto LAB_00055da8;\n                        break;\n                      }\n                      pppppppcVar29 = local_4c;\n                    } while (param_4 == (code *******)0x0);\n                  }\n                  pppppppcVar15 = (code *******)((uint)unaff_s7 ^ (uint)param_4);\n                  pppppppcVar42 = unaff_s7;\n                  pppppppcVar14 = local_138;\n                  if ((bVar1) &&\n                     (pppppppcVar42 = pppppppcVar15, pppppppcVar14 = unaff_s5,\n                     pppppppcVar15 != (code *******)0x0)) {\n                    bVar1 = false;\n                    pppppppcVar14 = local_138;\n                  }\n                  local_138 = pppppppcVar14;\n                  unaff_s7 = param_4;\n                  if ((((uint)param_4[0xd] & 0x8000000) != 0) &&\n                     ((((uint)param_4[0xd] & 0x1000000) == 0 ||\n                      (pppppppcVar29 = param_4, pppppppcVar30 = local_8c,\n                      iVar18 = FUN_00049440(&local_b4), iVar18 != 0)))) {\n                    unaff_s7 = pppppppcVar42;\n                    unaff_s8 = local_8c;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                    local_144 = (code *******)0x0;\n                    unaff_s7 = param_4;\n                  }\n                }\nLAB_00055da8:\n                if (local_144 != (code *******)0x0) {\n                  *local_144 = (code ******)((int)local_138 + (int)*local_144);\n                }\n              }\n              else {\n                param_4 = unaff_s7 + 1;\n                pppppppcVar30 = (code *******)0x0;\n                pppppppcVar29 = param_4;\n                local_d8 = (code *******)FUN_00047a44(&local_b4);\n                unaff_s8 = local_d8;\n                if (local_d8 == (code *******)0x0) {\n                  if (((uint)unaff_s7[0xd] & 0x2000000) == 0) {\n                    pppppppcVar29 = param_4;\n                    bVar1 = false;\n                  }\n                  else {\n                    pppppppcVar29 = param_4;\n                    local_d8 = (code *******)FUN_00052d84(&local_b4);\n                    unaff_s8 = local_d8;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055dbc;\n                    bVar1 = false;\n                  }\n                  goto LAB_00054d50;\n                }\n              }\nLAB_00055dbc:\n              if (unaff_s8 == (code *******)0xffffffff) {\nLAB_00055b04:\n                FUN_0004b7e8(&local_b4);\nLAB_00055b1c:\n                local_dc = (code *******)((int)pppppppcVar24 + (int)local_dc);\n                if ((int)pppppppcVar25 <= (int)local_dc) goto code_r0x00055b38;\n                local_150 = (code *******)0x1;\n                goto LAB_000557e4;\n              }\n              if (unaff_s8 == (code *******)&SUB_fffffffe) {\n                local_150 = (code *******)0xc;\n                goto LAB_000557e4;\n              }\n              local_58 = unaff_s8;\n              if (((uint)param_1[7] & 0x8000000) == 0) {\n                if (pppppppcVar3 < (code *******)0x2) {\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055c08;\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                else {\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                if (pppppppcVar3 < (code *******)0x2) {\nLAB_00055c6c:\n                  pppppppcVar28 = pppppppcVar33;\n                  unaff_s4 = local_60;\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055548;\n                }\n                else {\n                  cVar23 = *(code *)(pppppppcVar38 + 0x16);\nLAB_00055c20:\n                  pppppppcVar28 = pppppppcVar33;\n                  if (-1 < (char)cVar23) goto LAB_00055c6c;\n                }\n                pppppppcVar31 = local_54;\n                pppppppcVar42 = local_60;\n                unaff_s4 = pppppppcVar42;\n                if (unaff_s8 < (code *******)0x3fffffff) {\n                  param_4 = (code *******)((int)((int)unaff_s8 + 1) * 4);\n                  unaff_s5 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                  if (unaff_s5 == (code *******)0x0) {\nLAB_00055b9c:\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    local_150 = (code *******)0xc;\n                    pppppppcVar33 = pppppppcVar28;\n                  }\n                  else {\n                    pppppppcVar29 = (code *******)&local_d0;\n                    if (pppppppcVar42[0x13] == (code ******)0x0) {\n                      local_cc = (code *******)0x0;\n                      local_c8 = pppppppcVar31;\n                      local_c0 = 0;\n                      local_bc = 0;\n                      local_b8 = 0;\n                      local_d0 = unaff_s5;\n                      local_c4 = unaff_s8;\n                      param_5 = (code *******)FUN_0005421c(&local_b4);\n                      (*(code *)PTR_free_00079c24)(local_b8);\n                      if (param_5 == (code *******)0x0) {\n                        param_4 = (code *******)*unaff_s5;\n                        if (param_4 == (code *******)0x0) {\nLAB_00055b70:\n                          (*(code *)PTR_free_00079c24)(unaff_s5);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          pppppppcVar33 = pppppppcVar28;\n                          goto LAB_00055b04;\n                        }\nLAB_00055528:\n                        (*(code *)PTR_free_00079c24)(local_50);\n                        pppppppcVar33 = pppppppcVar28;\n                        unaff_s4 = pppppppcVar42;\n                        local_58 = unaff_s8;\n                        local_54 = pppppppcVar31;\n                        local_50 = unaff_s5;\n                        goto LAB_00055548;\n                      }\nLAB_00055acc:\n                      param_4 = (code *******)0x0;\n                      pppppppcVar33 = pppppppcVar28;\n                      unaff_s4 = pppppppcVar42;\n                    }\n                    else {\n                      param_4 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                      if (param_4 == (code *******)0x0) goto LAB_00055b9c;\n                      unaff_s7 = (code *******)&local_d0;\n                      pcVar8 = (code *)(PTR_DAT_000799a4 + 0x421c);\n                      pcVar9 = (code *)(PTR_DAT_000799a4 + -0x6bc0);\n                      pppppppcVar33 = pppppppcVar28;\n                      while( true ) {\n                        pppppppcVar28 = (code *******)((int)unaff_s8 + 1);\n                        param_6 = (code *******)((int)pppppppcVar28 * 4);\n                        pppppppcVar30 = param_6;\n                        (*(code *)PTR_memset_00079b00)(param_4,0);\n                        local_c0 = 0;\n                        local_bc = 0;\n                        local_b8 = 0;\n                        pppppppcVar29 = unaff_s7;\n                        local_d0 = unaff_s5;\n                        local_cc = param_4;\n                        local_c8 = pppppppcVar31;\n                        local_c4 = unaff_s8;\n                        param_5 = (code *******)(*pcVar8)(&local_b4);\n                        (*(code *)PTR_free_00079c24)(local_b8);\n                        unaff_s4 = pppppppcVar28;\n                        if (param_5 != (code *******)0x0) break;\n                        if ((*unaff_s5 != (code ******)0x0) ||\n                           (param_6 = param_6 + -1, *param_4 != (code ******)0x0)) {\n                          pppppppcVar29 = unaff_s5;\n                          pppppppcVar30 = param_4;\n                          param_5 = (code *******)FUN_000520d0(pppppppcVar42);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          if (param_5 != (code *******)0x0) goto LAB_00055acc;\n                          goto LAB_00055528;\n                        }\n                        param_6 = (code *******)((int)local_50 + (int)param_6);\n                        do {\n                          while( true ) {\n                            unaff_s8 = (code *******)((int)unaff_s8 + -1);\n                            if ((int)unaff_s8 < 0) goto LAB_00055b70;\n                            pppppppcVar29 = (code *******)param_6[-1];\n                            if (pppppppcVar29 != (code *******)0x0) break;\n                            param_6 = param_6 + -1;\n                          }\n                          param_6 = param_6 + -1;\n                        } while (((uint)pppppppcVar29[0xd] & 0x8000000) == 0);\n                        pppppppcVar31 = (code *******)(*pcVar9)(&local_b4,pppppppcVar29,unaff_s8);\n                        pppppppcVar33 = pppppppcVar28;\n                      }\n                    }\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    (*(code *)PTR_free_00079c24)(param_4);\n                    local_150 = param_5;\n                    if (param_5 == (code *******)0x1) goto LAB_00055b04;\n                  }\n                }\n                else {\n                  local_150 = (code *******)0xc;\n                  pppppppcVar33 = pppppppcVar28;\n                }\n                goto LAB_000557e4;\n              }\n              if (pppppppcVar38[0x13] != (code ******)0x0) {\n                pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                pppppppcVar30 = unaff_s8;\n                local_54 = (code *******)FUN_00049440(&local_b4);\n                goto LAB_00055c6c;\n              }\nLAB_00055c08:\n              if ((((uint)param_1[7] & 0x8000000) == 0) && ((code *******)0x1 < pppppppcVar3)) {\n                cVar23 = *(code *)(pppppppcVar38 + 0x16);\n                goto LAB_00055c20;\n              }\nLAB_00055548:\n              if (pppppppcVar3 == (code *******)0x0) goto LAB_000557e4;\n              if (pppppppcVar3 < (code *******)0x2) {\n                *param_8 = (code ******)0x0;\n                param_8[1] = (code ******)local_58;\n                goto LAB_000555ac;\n              }\n              pppppppcVar29 = param_8 + 2;\n              do {\n                pppppppcVar29[1] = (code ******)0xffffffff;\n                *pppppppcVar29 = (code ******)0xffffffff;\n                pppppppcVar29 = pppppppcVar29 + 2;\n              } while (pppppppcVar29 != param_8 + (int)pppppppcVar3 * 2);\n              *param_8 = (code ******)0x0;\n              param_8[1] = (code ******)local_58;\n              if (((uint)param_1[7] & 0x8000000) != 0) {\nLAB_000555ac:\n                pppppppcVar33 = param_8;\n                do {\n                  pppppppcVar29 = (code *******)*pppppppcVar33;\n                  if (pppppppcVar29 != (code *******)0xffffffff) {\n                    if (local_68 != '\0') {\n                      pppppppcVar34 = local_94;\n                      if (pppppppcVar29 != local_98) {\n                        pppppppcVar34 = *(code ********)(local_a8 + (int)pppppppcVar29 * 4);\n                      }\n                      *pppppppcVar33 = (code ******)pppppppcVar34;\n                      pppppppcVar29 = local_94;\n                      if (local_98 != (code *******)pppppppcVar33[1]) {\n                        pppppppcVar29 = *(code ********)(local_a8 + (int)pppppppcVar33[1] * 4);\n                      }\n                      pppppppcVar33[1] = (code ******)pppppppcVar29;\n                    }\n                    *pppppppcVar33 = (code ******)((int)local_dc + (int)*pppppppcVar33);\n                    pppppppcVar29 = (code *******)((int)local_dc + (int)pppppppcVar33[1]);\n                    pppppppcVar33[1] = (code ******)pppppppcVar29;\n                  }\n                  pppppppcVar33 = pppppppcVar33 + 2;\n                } while (pppppppcVar33 != param_8 + (int)pppppppcVar3 * 2);\n                if (0 < local_118) {\n                  pppppppcVar33 = param_8 + (int)pppppppcVar3 * 2;\n                  do {\n                    *pppppppcVar33 = (code ******)0xffffffff;\n                    pppppppcVar33[1] = (code ******)0xffffffff;\n                    pppppppcVar33 = pppppppcVar33 + 2;\n                  } while (pppppppcVar33 != param_8 + (int)param_7 * 2);\n                }\n                pppppppcVar30 = local_dc;\n                pppppppcVar33 = param_8;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar38[0x21] != (code ******)0x0) {\n                  pppppppcVar30 = (code *******)((int)pppppppcVar3 + -1);\n                  pppppppcVar34 = (code *******)0x0;\n                  pppppppcVar3 = param_8;\n                  while( true ) {\n                    pppppppcVar29 = (code *******)((int)pppppppcVar34 * 4);\n                    if (pppppppcVar30 == pppppppcVar34) break;\n                    if (*(code ********)((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) !=\n                        pppppppcVar34) {\n                      pppppppcVar3[2] =\n                           param_8[(int)((int)*(code ********)\n                                               ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1)\n                                   * 2];\n                      pppppppcVar3[3] =\n                           param_8[((int)*(code ******)\n                                          ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1) * 2 +\n                                   1];\n                    }\n                    pppppppcVar34 = (code *******)((int)pppppppcVar34 + 1);\n                    pppppppcVar3 = pppppppcVar3 + 2;\n                  }\n                }\n                goto LAB_000557e4;\n              }\n              if ((char)*(code *)(pppppppcVar38 + 0x16) < '\0') {\n                local_168 = (uint)(0 < (int)pppppppcVar38[0x13]);\n              }\n              else {\n                local_168 = 0;\n              }\n              pppppppcVar29 = &local_b4;\n              pppppppcVar30 = pppppppcVar3;\n              pppppppcVar33 = param_8;\n              local_150 = (code *******)FUN_0004f4a0(param_1);\n              if (local_150 == (code *******)0x0) goto LAB_000555ac;\n            }\n          }\n          else if (local_90 < 0x3fffffff) {\n            local_50 = (code *******)(*(code *)PTR_malloc_00079b54)((local_90 + 1) * 4);\n            if (local_50 != (code *******)0x0) goto LAB_00055a40;\n            local_150 = (code *******)0xc;\n            param_6 = pppppppcVar36;\n          }\n          else {\n            local_150 = (code *******)0xc;\n            param_6 = pppppppcVar36;\n          }\n        }\n        else {\n          unaff_s5 = (code *******)((int)ppppppcVar35 * 8);\n          if (pppppppcVar36 < (code *******)0xccccccd) {\n            unaff_s4 = (code *******)(*(code *)PTR_malloc_00079b54)((int)ppppppcVar35 * 0x28);\n            local_40 = unaff_s4;\n            local_30 = (*(code *)PTR_malloc_00079b54)(unaff_s5);\n            if ((unaff_s4 != (code *******)0x0) && (local_30 != 0)) goto LAB_000559f0;\n          }\n          local_150 = (code *******)0xc;\n          param_6 = pppppppcVar36;\n        }\nLAB_000557e4:\n        (*(code *)PTR_free_00079c24)(local_50);\n        param_1 = pppppppcVar30;\n        if (pppppppcVar38[0x13] != (code ******)0x0) {\n          FUN_0004b7e8(&local_b4);\n          (*(code *)PTR_free_00079c24)(local_30);\n          (*(code *)PTR_free_00079c24)(local_40);\n          param_1 = pppppppcVar30;\n        }\n        FUN_0004b2bc(&local_b4);\n        pppppppcStack_1a0 = param_4;\n        pppppppcStack_19c = pppppppcVar31;\n      }\n    }" else (compound_statement "{\n      pppppppcVar3 = param_5;\n      if ((((pppppppcVar38[9][2] == (code *****)0x0) && (pppppppcVar38[10][2] == (code *****)0x0))\n          && ((pppppppcVar38[0xb][2] == (code *****)0x0 || (((uint)param_1[7] & 0x1000000) == 0))))\n         && ((pppppppcVar3 = param_4, param_4 != (code *******)0x0 &&\n             (param_4 = param_5, pppppppcVar3 = param_5, param_5 != (code *******)0x0)))) {\n        local_150 = (code *******)0x1;\n        pppppppcStack_1a0 = param_5;\n      }\n      else {\n        param_5 = pppppppcVar3;\n        pppppppcVar3 = (code *******)((int)param_7 - local_118);\n        if (pppppppcVar3 == (code *******)0x0) {\n          pppppppcVar34 = (code *******)(uint)(pppppppcVar38[0x13] != (code ******)0x0);\n        }\n        else {\n          pppppppcVar34 = (code *******)0x1;\n        }\n        ppppppcVar32 = param_1[5];\n        local_6c = (byte)((uint)((int)param_1[3] << 9) >> 0x1f);\n        local_64 = (code *******)pppppppcVar38[0x17];\n        pppppppcVar31 = (code *******)((int)pppppppcVar38[2] + 1);\n        if ((int)pppppppcVar38[2] + 1 < (int)local_64) {\n          pppppppcVar31 = local_64;\n        }\n        pppppppcVar30 = (code *******)(uint)((int)param_3 + 1 < (int)pppppppcVar31);\n        pppppppcVar33 = (code *******)0x1;\n        local_69 = local_6c;\n        if (ppppppcVar32 != (code ******)0x0) {\n          local_69 = 1;\n        }\n        local_6b = (byte)((uint)((int)pppppppcVar38[0x16] << 2) >> 0x1f);\n        local_6a = (byte)((uint)((int)pppppppcVar38[0x16] << 3) >> 0x1f);\n        pppppppcVar29 = (code *******)((int)param_3 + 1);\n        if (pppppppcVar30 == (code *******)0x0) {\n          pppppppcVar29 = pppppppcVar31;\n        }\n        local_b4 = param_2;\n        local_88 = param_3;\n        local_84 = param_3;\n        local_80 = param_3;\n        local_7c = param_3;\n        local_74 = ppppppcVar32;\n        local_150 = (code *******)FUN_00046d2c(&local_b4);\n        pppppppcVar31 = pppppppcVar34;\n        param_6 = param_6;\n        if (local_150 != (code *******)0x0) goto LAB_000557e4;\n        local_70 = pppppppcVar38 + 0x18;\n        local_66 = (byte)((uint)((int)pppppppcVar38[0x16] << 4) >> 0x1f);\n        pppppppcVar2 = (code *******)0x0;\n        local_98 = pppppppcVar2;\n        if ((local_69 == 0) && (local_b0 = param_2, (int)pppppppcVar38[0x17] < 2)) {\n          local_98 = param_3;\n        }\n        local_7c = param_6;\n        local_80 = param_6;\n        local_67 = (byte)((uint)((int)param_1[7] << 7) >> 0x1f);\n        ppppppcVar35 = pppppppcVar38[0x13];\n        pppppppcVar36 = (code *******)((int)ppppppcVar35 * 2);\n        local_5c = param_9;\n        local_58 = (code *******)0xffffffff;\n        local_94 = local_98;\n        if ((int)pppppppcVar36 < 1) {\nLAB_000559f0:\n          local_3c = 1;\n          local_44 = pppppppcVar36;\n          local_34 = pppppppcVar36;\n          if ((pppppppcVar3 < (code *******)0x2) && (((uint)pppppppcVar38[0x16] & 0x40000000) == 0))\n          {\n            local_50 = (code *******)0x0;\nLAB_00055a40:\n            local_78 = 6;\n            if (((uint)param_9 & 1) != 0) {\n              local_78 = 4;\n            }\n            pppppppcVar24 = (code *******)0x1;\n            pppppppcVar25 = param_4;\n            if ((int)param_5 < (int)param_4) {\n              pppppppcVar24 = (code *******)0xffffffff;\n              pppppppcVar25 = param_5;\n            }\n            pppppppcVar26 = param_5;\n            if ((int)param_5 <= (int)param_4) {\n              pppppppcVar26 = param_4;\n            }\n            ppppppcVar35 = pppppppcVar38[0x17];\n            uVar16 = 8;\n            if (local_148 != (code *******)0x0) {\n              if (ppppppcVar35 == (code ******)0x1) {\n                pppppppcVar28 = (code *******)0x4;\n              }\n              else {\n                pppppppcVar28 = pppppppcVar2;\n                if ((-1 < (int)param_1[3] << 9) && (ppppppcVar32 == (code ******)0x0)) {\n                  pppppppcVar28 = (code *******)0x4;\n                }\n              }\n              pppppppcVar29 = (code *******)0x0;\n              if ((int)param_4 <= (int)param_5) {\n                pppppppcVar29 = (code *******)0x2;\n              }\n              uVar16 = (uint)(ppppppcVar32 != (code ******)0x0) | (uint)pppppppcVar28 |\n                       (uint)pppppppcVar29;\n            }\n            local_dc = param_4;\n            if ((int)param_4 < (int)pppppppcVar25) {\n              local_150 = (code *******)0x1;\n              param_6 = pppppppcVar36;\n            }\n            else if ((int)pppppppcVar26 < (int)param_4) {\n              local_150 = (code *******)0x1;\n              param_4 = (code *******)(uint)((int)param_5 < (int)param_4);\n              param_6 = pppppppcVar36;\n            }\n            else {\n              pppppppcVar36 = (code *******)&local_dc;\n              if ((code *******)(uint)((int)param_5 < (int)param_4) != (code *******)0x0) {\n                pppppppcVar36 = (code *******)0x0;\n              }\n              pcVar4 = (code *)(PTR_DAT_000799a4 + -0x2b7c);\n              piVar5 = (int *)(PTR_s_nt0_000795b8 + (uVar16 - 4) * 4 + 0x6e38);\nLAB_00055b44:\n              if (uVar16 - 4 < 5) {\n                    \n                    \n                pppppppcVar29 = (code *******)(*(code *)(&_gp_1 + *piVar5))();\n                return pppppppcVar29;\n              }\n              param_5 = &local_b4;\n              pppppppcVar28 = pppppppcVar33;\n              while( true ) {\n                param_4 = local_dc;\n                pppppppcVar33 = (code *******)((int)local_dc - local_9c);\n                pppppppcVar30 = param_9;\n                pppppppcVar31 = pppppppcVar2;\n                param_6 = local_148;\n                unaff_s4 = param_3;\n                unaff_s5 = pppppppcVar24;\n                unaff_s7 = pppppppcVar26;\n                if (local_94 <= pppppppcVar33) {\n                  pppppppcVar29 = local_dc;\n                  local_150 = (code *******)(*pcVar4)(param_5);\n                  pppppppcVar33 = pppppppcVar28;\n                  if (local_150 != (code *******)0x0) goto LAB_000557e4;\n                  pppppppcVar33 = (code *******)((int)param_4 - local_9c);\n                }\n                if ((int)param_4 < (int)param_3) {\n                  uVar7 = (uint)(byte)*(code *)((int)pppppppcVar33 + (int)local_b0);\n                }\n                else {\n                  uVar7 = 0;\n                }\n                param_4 = (code *******)((int)param_4 + (int)pppppppcVar24);\n                if (*(code *)((int)local_148 + uVar7) != (code)0x0) break;\n                pppppppcVar33 = pppppppcVar28;\n                local_dc = param_4;\n                if ((int)param_4 < (int)pppppppcVar25) {\n                  local_150 = (code *******)0x1;\n                  goto LAB_000557e4;\n                }\n                if ((code *******)(uint)((int)pppppppcVar26 < (int)param_4) != (code *******)0x0) {\n                  local_150 = (code *******)0x1;\n                  param_4 = (code *******)(uint)((int)pppppppcVar26 < (int)param_4);\n                  goto LAB_000557e4;\n                }\n              }\n              while( true ) {\n                pppppppcVar29 = local_dc;\n                pppppppcVar30 = param_9;\n                pppppppcVar6 = (code *******)(*pcVar4)(&local_b4);\n                pppppppcVar14 = local_60;\n                pppppppcVar42 = local_8c;\n                pppppppcVar33 = pppppppcVar28;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar6 != (code *******)0x0) goto LAB_000557e4;\n                if (((ppppppcVar35 != (code ******)0x1) && (local_98 != (code *******)0x0)) &&\n                   (*local_ac == -1)) goto LAB_00055b1c;\n                local_3c = 0;\n                local_48 = 0;\n                local_4c = (code *******)0x0;\n                local_138 = local_8c;\n                local_d8 = (code *******)0x0;\n                unaff_s7 = (code *******)local_60[9];\n                pppppppcVar30 = local_5c;\n                param_4 = pppppppcVar14;\n                if (((uint)unaff_s7[0xd] & 0x1000000) == 0) break;\n                pppppppcVar29 = (code *******)((int)local_8c + -1);\n                pppppppcVar33 = (code *******)FUN_00049110(&local_b4);\n                if (((uint)pppppppcVar33 & 1) == 0) {\n                  if (pppppppcVar33 == (code *******)0x0) break;\n                  if (((uint)pppppppcVar33 & 6) == 6) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xc];\n                    goto LAB_00054d1c;\n                  }\n                  if (((uint)pppppppcVar33 & 2) != 0) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xb];\n                    goto LAB_00054d1c;\n                  }\n                  pppppppcVar28 = pppppppcVar33;\n                  if (((uint)pppppppcVar33 & 4) == 0) break;\n                  pppppppcVar30 = (code *******)unaff_s7[10];\n                  pppppppcVar29 = pppppppcVar14;\n                  unaff_s7 = (code *******)FUN_0004ae34(&local_d8);\n                  pppppppcVar28 = pppppppcVar33;\n                  if (unaff_s7 != (code *******)0x0) break;\n                  if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                }\n                else {\n                  unaff_s7 = (code *******)pppppppcVar14[10];\nLAB_00054d1c:\n                  pppppppcVar28 = (code *******)PTR_s_nt0_000795b8;\n                  if (unaff_s7 != (code *******)0x0) break;\n                }\n                pppppppcVar28 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                local_dc = (code *******)\n                           (*(code *)PTR___assert_fail_000799f8)\n                                     (PTR_s_nt0_000795b8 + 0x71a0,pppppppcVar29,0x435);\n                if (local_dc == pppppppcVar26) {\n                  if ((int)local_dc < (int)param_3) {\n                    uVar7 = (uint)(byte)*(code *)((int)local_dc + (int)param_2);\n                  }\n                  else {\n                    uVar7 = 0;\n                  }\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    uVar7 = (uint)*(byte *)((int)ppppppcVar32 + uVar7);\n                  }\n                  if (*(code *)((int)local_148 + uVar7) == (code)0x0) {\n                    local_150 = (code *******)0x1;\n                    pppppppcVar30 = param_9;\n                    pppppppcVar33 = pppppppcVar28;\n                    goto LAB_000557e4;\n                  }\n                }\n              }\n              pppppppcVar33 = pppppppcVar28;\n              bVar1 = pppppppcVar36 != (code *******)0x0;\n              if ((local_50 == (code *******)0x0) ||\n                 (local_50[(int)pppppppcVar42] = (code ******)unaff_s7,\n                 pppppppcVar14[0x13] == (code ******)0x0)) {\nLAB_00054d50:\n                if ((int)unaff_s7[0xd] << 4 < 0) {\n                  if ((((uint)unaff_s7[0xd] & 0x1000000) == 0) ||\n                     (pppppppcVar29 = unaff_s7, pppppppcVar30 = pppppppcVar42,\n                     iVar18 = FUN_00049440(&local_b4), iVar18 != 0)) {\n                    unaff_s8 = pppppppcVar42;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                  }\n                  else {\n                    pppppppcVar42 = (code *******)0xffffffff;\n                    pppppppcVar28 = (code *******)0x0;\n                  }\n                }\n                else {\n                  pppppppcVar42 = (code *******)0xffffffff;\n                  pppppppcVar28 = (code *******)0x0;\n                }\n                pcVar8 = (code *)(PTR_DAT_000799a4 + -0x7144);\n                pcVar9 = (code *)(PTR_DAT_000799a4 + -0x1980);\n                pcVar10 = (code *)(PTR_DAT_000799a4 + -0x2f9c);\n                unaff_s8 = pppppppcVar42;\n                local_144 = pppppppcVar36;\n                while( true ) {\n                  uVar44 = CONCAT44(local_98,local_84);\n                  unaff_s5 = (code *******)((int)local_8c + 1);\n                  pppppppcVar29 = local_8c;\n                  if ((int)local_7c <= (int)local_8c) break;\n                  if (((int)local_90 <= (int)unaff_s5) && ((int)local_90 < (int)local_84))\n                  goto LAB_00054e94;\n                  if ((int)local_98 <= (int)unaff_s5) {\n                    while ((int)((ulonglong)uVar44 >> 0x20) < (int)uVar44) {\nLAB_00054e94:\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 2);\n                      local_d8 = (code *******)(*pcVar8)(&local_b4);\n                      if (local_d8 == (code *******)0x0) break;\n                      pppppppcVar14 = param_4;\n                      if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                      pppppppcVar33 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                      pppppppcVar30 = (code *******)0x46c;\n                      pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                      uVar44 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0);\n                      pppppppcVar28 = pppppppcVar38;\n                    }\n                  }\n                  pppppppcVar42 = local_60;\n                  if ((int)unaff_s7[0xd] << 5 < 0) {\n                    pppppppcVar31 = pppppppcVar42;\n                    if (0 < (int)unaff_s7[2]) {\n                      pcVar11 = (code *)(PTR_DAT_000799a4 + -0x6fdc);\n                      pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6ef0);\n                      param_6 = (code *******)0x0;\n                      do {\n                        param_5 = (code *******)unaff_s7[3][(int)param_6];\n                        ppppppcVar39 = *pppppppcVar42;\n                        pppppcVar13 = ppppppcVar39[(int)param_5 * 2 + 1];\n                        if (((uint)pppppcVar13 & 0x800) != 0) {\n                          if (((uint)pppppcVar13 & 0xffc000) != 0) {\n                            pppppppcVar29 = local_8c;\n                            uVar19 = (*pcVar12)(&local_b4,local_8c,local_5c);\n                            uVar7 = (uint)((int)ppppppcVar39[(int)param_5 * 2 + 1] << 8) >> 0x16;\n                            if ((uVar7 & 4) == 0) {\n                              uVar27 = uVar19 & 1;\n                              if ((uVar7 & 8) != 0) goto joined_r0x00054f40;\n                            }\n                            else {\n                              uVar27 = uVar7 & 8;\n                              if ((uVar19 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                              if (uVar27 != 0) goto LAB_000550a4;\n                            }\n                            if ((((uVar7 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                               (((uVar7 & 0x80) != 0 &&\n                                (pppppppcVar33 = local_8c, (uVar19 & 8) == 0)))) goto LAB_000550a4;\n                          }\n                          pppppppcVar30 = &local_b4;\n                          pppppppcVar29 = param_5;\n                          pppppppcVar33 = local_8c;\n                          iVar18 = (*pcVar10)(pppppppcVar42);\n                          if (iVar18 != 0) {\n                            pppppppcVar14 = (code *******)((int)local_8c + iVar18);\n                            if (iVar18 <= local_3c) {\n                              iVar18 = local_3c;\n                            }\n                            pppppppcVar29 = pppppppcVar14;\n                            local_3c = iVar18;\n                            local_d4 = (code *******)(*pcVar11)(&local_b4);\n                            pppppppcVar15 = local_d4;\n                            if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                            pppppppcVar30 =\n                                 (code *******)\n                                 (pppppppcVar42[6] + (int)pppppppcVar42[3][(int)param_5] * 3);\n                            unaff_s4 = (code *******)((int)pppppppcVar14 * 4);\n                            param_5 = local_50 + (int)pppppppcVar14;\n                            if (*param_5 == (code ******)0x0) {\n                              local_d0 = (code *******)*pppppppcVar30;\n                              local_cc = (code *******)pppppppcVar30[1];\n                              local_c8 = (code *******)pppppppcVar30[2];\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *param_5 = ppppppcVar39;\n                            }\n                            else {\n                              pppppppcVar29 = (code *******)(*param_5)[10];\n                              local_d4 = (code *******)FUN_000484bc(&local_d0);\n                              pppppppcVar15 = local_d4;\n                              if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar15 = local_50 + (int)pppppppcVar14;\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *pppppppcVar15 = ppppppcVar39;\n                              (*(code *)PTR_free_00079c24)(local_c8);\n                            }\n                            unaff_s4 = local_50 + (int)pppppppcVar14;\n                            if ((*unaff_s4 == (code ******)0x0) &&\n                               (pppppppcVar15 = local_d4, local_d4 != (code *******)0x0))\n                            goto LAB_00055e44;\n                          }\n                        }\nLAB_000550a4:\n                        param_6 = (code *******)((int)param_6 + 1);\n                      } while ((int)param_6 < (int)unaff_s7[2]);\n                    }\n                    local_d8 = (code *******)0x0;\n                  }\n                  uVar7 = (uint)(byte)*(code *)((int)local_8c + (int)local_b0);\n                  local_8c = (code *******)((int)local_8c + 1);\n                  do {\n                    if (unaff_s7[0xb] != (code ******)0x0) {\n                      pppppppcVar30 = (code *******)unaff_s7[0xb][uVar7];\nLAB_000553a0:\n                      pppppppcVar14 = pppppppcVar30;\n                      if (local_50 != (code *******)0x0) goto LAB_000553ac;\n                      goto LAB_000553cc;\n                    }\n                    pppppppcVar31 = (code *******)unaff_s7[0xc];\n                    if (pppppppcVar31 != (code *******)0x0) {\n                      pppppppcVar29 = (code *******)((int)local_8c + -1);\n                      uVar19 = FUN_00049110(&local_b4);\n                      if ((uVar19 & 1) == 0) {\n                        pppppppcVar30 = (code *******)pppppppcVar31[uVar7];\n                      }\n                      else {\n                        pppppppcVar31 = pppppppcVar31 + uVar7 + 0x100;\n                        pppppppcVar30 = (code *******)*pppppppcVar31;\n                      }\n                      goto LAB_000553a0;\n                    }\n                    pppppppcVar29 = unaff_s7;\n                    pppppppcVar30 = local_5c;\n                    iVar18 = (*pcVar9)(local_60);\n                  } while (iVar18 != 0);\n                  local_d8 = (code *******)0xc;\n                  pppppppcVar15 = local_d8;\nLAB_00055e44:\n                  local_d8 = pppppppcVar15;\n                  param_4 = (code *******)0x0;\n                  if (local_50 == (code *******)0x0) {\n                    pppppppcVar14 = param_4;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    break;\n                  }\n                  pppppppcVar30 = (code *******)0x0;\nLAB_000553ac:\n                  pppppppcVar29 = &local_b4;\n                  pppppppcVar14 = (code *******)FUN_00053684(&local_d8);\nLAB_000553cc:\n                  param_4 = pppppppcVar14;\n                  if (pppppppcVar14 == (code *******)0x0) {\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    if ((local_50 == (code *******)0x0) ||\n                       ((pppppppcVar28 != (code *******)0x0 && (pppppppcVar34 == (code *******)0x0))\n                       )) break;\n                    param_6 = &local_b4;\n                    param_5 = (code *******)&local_d8;\n                    pppppppcVar31 = (code *******)(PTR_DAT_000799a4 + 0x3684);\n                    do {\n                      pppppppcVar15 = local_50 + (int)local_8c;\n                      pppppppcVar42 = local_8c;\n                      do {\n                        pppppppcVar42 = (code *******)((int)pppppppcVar42 + 1);\n                        pppppppcVar29 = local_4c;\n                        param_4 = pppppppcVar14;\n                        if ((int)local_4c < (int)pppppppcVar42) goto LAB_00055da8;\n                        local_8c = (code *******)((int)local_8c + 1);\n                        pppppppcVar15 = pppppppcVar15 + 1;\n                      } while (*pppppppcVar15 == (code ******)0x0);\n                      pppppppcVar30 = (code *******)0x0;\n                      pppppppcVar29 = param_6;\n                      param_4 = (code *******)(*(code *)pppppppcVar31)(param_5);\n                      if (local_d8 != (code *******)0x0) {\n                        if (param_4 == (code *******)0x0) goto LAB_00055da8;\n                        break;\n                      }\n                      pppppppcVar29 = local_4c;\n                    } while (param_4 == (code *******)0x0);\n                  }\n                  pppppppcVar15 = (code *******)((uint)unaff_s7 ^ (uint)param_4);\n                  pppppppcVar42 = unaff_s7;\n                  pppppppcVar14 = local_138;\n                  if ((bVar1) &&\n                     (pppppppcVar42 = pppppppcVar15, pppppppcVar14 = unaff_s5,\n                     pppppppcVar15 != (code *******)0x0)) {\n                    bVar1 = false;\n                    pppppppcVar14 = local_138;\n                  }\n                  local_138 = pppppppcVar14;\n                  unaff_s7 = param_4;\n                  if ((((uint)param_4[0xd] & 0x8000000) != 0) &&\n                     ((((uint)param_4[0xd] & 0x1000000) == 0 ||\n                      (pppppppcVar29 = param_4, pppppppcVar30 = local_8c,\n                      iVar18 = FUN_00049440(&local_b4), iVar18 != 0)))) {\n                    unaff_s7 = pppppppcVar42;\n                    unaff_s8 = local_8c;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                    local_144 = (code *******)0x0;\n                    unaff_s7 = param_4;\n                  }\n                }\nLAB_00055da8:\n                if (local_144 != (code *******)0x0) {\n                  *local_144 = (code ******)((int)local_138 + (int)*local_144);\n                }\n              }\n              else {\n                param_4 = unaff_s7 + 1;\n                pppppppcVar30 = (code *******)0x0;\n                pppppppcVar29 = param_4;\n                local_d8 = (code *******)FUN_00047a44(&local_b4);\n                unaff_s8 = local_d8;\n                if (local_d8 == (code *******)0x0) {\n                  if (((uint)unaff_s7[0xd] & 0x2000000) == 0) {\n                    pppppppcVar29 = param_4;\n                    bVar1 = false;\n                  }\n                  else {\n                    pppppppcVar29 = param_4;\n                    local_d8 = (code *******)FUN_00052d84(&local_b4);\n                    unaff_s8 = local_d8;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055dbc;\n                    bVar1 = false;\n                  }\n                  goto LAB_00054d50;\n                }\n              }\nLAB_00055dbc:\n              if (unaff_s8 == (code *******)0xffffffff) {\nLAB_00055b04:\n                FUN_0004b7e8(&local_b4);\nLAB_00055b1c:\n                local_dc = (code *******)((int)pppppppcVar24 + (int)local_dc);\n                if ((int)pppppppcVar25 <= (int)local_dc) goto code_r0x00055b38;\n                local_150 = (code *******)0x1;\n                goto LAB_000557e4;\n              }\n              if (unaff_s8 == (code *******)&SUB_fffffffe) {\n                local_150 = (code *******)0xc;\n                goto LAB_000557e4;\n              }\n              local_58 = unaff_s8;\n              if (((uint)param_1[7] & 0x8000000) == 0) {\n                if (pppppppcVar3 < (code *******)0x2) {\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055c08;\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                else {\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                if (pppppppcVar3 < (code *******)0x2) {\nLAB_00055c6c:\n                  pppppppcVar28 = pppppppcVar33;\n                  unaff_s4 = local_60;\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055548;\n                }\n                else {\n                  cVar23 = *(code *)(pppppppcVar38 + 0x16);\nLAB_00055c20:\n                  pppppppcVar28 = pppppppcVar33;\n                  if (-1 < (char)cVar23) goto LAB_00055c6c;\n                }\n                pppppppcVar31 = local_54;\n                pppppppcVar42 = local_60;\n                unaff_s4 = pppppppcVar42;\n                if (unaff_s8 < (code *******)0x3fffffff) {\n                  param_4 = (code *******)((int)((int)unaff_s8 + 1) * 4);\n                  unaff_s5 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                  if (unaff_s5 == (code *******)0x0) {\nLAB_00055b9c:\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    local_150 = (code *******)0xc;\n                    pppppppcVar33 = pppppppcVar28;\n                  }\n                  else {\n                    pppppppcVar29 = (code *******)&local_d0;\n                    if (pppppppcVar42[0x13] == (code ******)0x0) {\n                      local_cc = (code *******)0x0;\n                      local_c8 = pppppppcVar31;\n                      local_c0 = 0;\n                      local_bc = 0;\n                      local_b8 = 0;\n                      local_d0 = unaff_s5;\n                      local_c4 = unaff_s8;\n                      param_5 = (code *******)FUN_0005421c(&local_b4);\n                      (*(code *)PTR_free_00079c24)(local_b8);\n                      if (param_5 == (code *******)0x0) {\n                        param_4 = (code *******)*unaff_s5;\n                        if (param_4 == (code *******)0x0) {\nLAB_00055b70:\n                          (*(code *)PTR_free_00079c24)(unaff_s5);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          pppppppcVar33 = pppppppcVar28;\n                          goto LAB_00055b04;\n                        }\nLAB_00055528:\n                        (*(code *)PTR_free_00079c24)(local_50);\n                        pppppppcVar33 = pppppppcVar28;\n                        unaff_s4 = pppppppcVar42;\n                        local_58 = unaff_s8;\n                        local_54 = pppppppcVar31;\n                        local_50 = unaff_s5;\n                        goto LAB_00055548;\n                      }\nLAB_00055acc:\n                      param_4 = (code *******)0x0;\n                      pppppppcVar33 = pppppppcVar28;\n                      unaff_s4 = pppppppcVar42;\n                    }\n                    else {\n                      param_4 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                      if (param_4 == (code *******)0x0) goto LAB_00055b9c;\n                      unaff_s7 = (code *******)&local_d0;\n                      pcVar8 = (code *)(PTR_DAT_000799a4 + 0x421c);\n                      pcVar9 = (code *)(PTR_DAT_000799a4 + -0x6bc0);\n                      pppppppcVar33 = pppppppcVar28;\n                      while( true ) {\n                        pppppppcVar28 = (code *******)((int)unaff_s8 + 1);\n                        param_6 = (code *******)((int)pppppppcVar28 * 4);\n                        pppppppcVar30 = param_6;\n                        (*(code *)PTR_memset_00079b00)(param_4,0);\n                        local_c0 = 0;\n                        local_bc = 0;\n                        local_b8 = 0;\n                        pppppppcVar29 = unaff_s7;\n                        local_d0 = unaff_s5;\n                        local_cc = param_4;\n                        local_c8 = pppppppcVar31;\n                        local_c4 = unaff_s8;\n                        param_5 = (code *******)(*pcVar8)(&local_b4);\n                        (*(code *)PTR_free_00079c24)(local_b8);\n                        unaff_s4 = pppppppcVar28;\n                        if (param_5 != (code *******)0x0) break;\n                        if ((*unaff_s5 != (code ******)0x0) ||\n                           (param_6 = param_6 + -1, *param_4 != (code ******)0x0)) {\n                          pppppppcVar29 = unaff_s5;\n                          pppppppcVar30 = param_4;\n                          param_5 = (code *******)FUN_000520d0(pppppppcVar42);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          if (param_5 != (code *******)0x0) goto LAB_00055acc;\n                          goto LAB_00055528;\n                        }\n                        param_6 = (code *******)((int)local_50 + (int)param_6);\n                        do {\n                          while( true ) {\n                            unaff_s8 = (code *******)((int)unaff_s8 + -1);\n                            if ((int)unaff_s8 < 0) goto LAB_00055b70;\n                            pppppppcVar29 = (code *******)param_6[-1];\n                            if (pppppppcVar29 != (code *******)0x0) break;\n                            param_6 = param_6 + -1;\n                          }\n                          param_6 = param_6 + -1;\n                        } while (((uint)pppppppcVar29[0xd] & 0x8000000) == 0);\n                        pppppppcVar31 = (code *******)(*pcVar9)(&local_b4,pppppppcVar29,unaff_s8);\n                        pppppppcVar33 = pppppppcVar28;\n                      }\n                    }\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    (*(code *)PTR_free_00079c24)(param_4);\n                    local_150 = param_5;\n                    if (param_5 == (code *******)0x1) goto LAB_00055b04;\n                  }\n                }\n                else {\n                  local_150 = (code *******)0xc;\n                  pppppppcVar33 = pppppppcVar28;\n                }\n                goto LAB_000557e4;\n              }\n              if (pppppppcVar38[0x13] != (code ******)0x0) {\n                pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                pppppppcVar30 = unaff_s8;\n                local_54 = (code *******)FUN_00049440(&local_b4);\n                goto LAB_00055c6c;\n              }\nLAB_00055c08:\n              if ((((uint)param_1[7] & 0x8000000) == 0) && ((code *******)0x1 < pppppppcVar3)) {\n                cVar23 = *(code *)(pppppppcVar38 + 0x16);\n                goto LAB_00055c20;\n              }\nLAB_00055548:\n              if (pppppppcVar3 == (code *******)0x0) goto LAB_000557e4;\n              if (pppppppcVar3 < (code *******)0x2) {\n                *param_8 = (code ******)0x0;\n                param_8[1] = (code ******)local_58;\n                goto LAB_000555ac;\n              }\n              pppppppcVar29 = param_8 + 2;\n              do {\n                pppppppcVar29[1] = (code ******)0xffffffff;\n                *pppppppcVar29 = (code ******)0xffffffff;\n                pppppppcVar29 = pppppppcVar29 + 2;\n              } while (pppppppcVar29 != param_8 + (int)pppppppcVar3 * 2);\n              *param_8 = (code ******)0x0;\n              param_8[1] = (code ******)local_58;\n              if (((uint)param_1[7] & 0x8000000) != 0) {\nLAB_000555ac:\n                pppppppcVar33 = param_8;\n                do {\n                  pppppppcVar29 = (code *******)*pppppppcVar33;\n                  if (pppppppcVar29 != (code *******)0xffffffff) {\n                    if (local_68 != '\0') {\n                      pppppppcVar34 = local_94;\n                      if (pppppppcVar29 != local_98) {\n                        pppppppcVar34 = *(code ********)(local_a8 + (int)pppppppcVar29 * 4);\n                      }\n                      *pppppppcVar33 = (code ******)pppppppcVar34;\n                      pppppppcVar29 = local_94;\n                      if (local_98 != (code *******)pppppppcVar33[1]) {\n                        pppppppcVar29 = *(code ********)(local_a8 + (int)pppppppcVar33[1] * 4);\n                      }\n                      pppppppcVar33[1] = (code ******)pppppppcVar29;\n                    }\n                    *pppppppcVar33 = (code ******)((int)local_dc + (int)*pppppppcVar33);\n                    pppppppcVar29 = (code *******)((int)local_dc + (int)pppppppcVar33[1]);\n                    pppppppcVar33[1] = (code ******)pppppppcVar29;\n                  }\n                  pppppppcVar33 = pppppppcVar33 + 2;\n                } while (pppppppcVar33 != param_8 + (int)pppppppcVar3 * 2);\n                if (0 < local_118) {\n                  pppppppcVar33 = param_8 + (int)pppppppcVar3 * 2;\n                  do {\n                    *pppppppcVar33 = (code ******)0xffffffff;\n                    pppppppcVar33[1] = (code ******)0xffffffff;\n                    pppppppcVar33 = pppppppcVar33 + 2;\n                  } while (pppppppcVar33 != param_8 + (int)param_7 * 2);\n                }\n                pppppppcVar30 = local_dc;\n                pppppppcVar33 = param_8;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar38[0x21] != (code ******)0x0) {\n                  pppppppcVar30 = (code *******)((int)pppppppcVar3 + -1);\n                  pppppppcVar34 = (code *******)0x0;\n                  pppppppcVar3 = param_8;\n                  while( true ) {\n                    pppppppcVar29 = (code *******)((int)pppppppcVar34 * 4);\n                    if (pppppppcVar30 == pppppppcVar34) break;\n                    if (*(code ********)((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) !=\n                        pppppppcVar34) {\n                      pppppppcVar3[2] =\n                           param_8[(int)((int)*(code ********)\n                                               ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1)\n                                   * 2];\n                      pppppppcVar3[3] =\n                           param_8[((int)*(code ******)\n                                          ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1) * 2 +\n                                   1];\n                    }\n                    pppppppcVar34 = (code *******)((int)pppppppcVar34 + 1);\n                    pppppppcVar3 = pppppppcVar3 + 2;\n                  }\n                }\n                goto LAB_000557e4;\n              }\n              if ((char)*(code *)(pppppppcVar38 + 0x16) < '\0') {\n                local_168 = (uint)(0 < (int)pppppppcVar38[0x13]);\n              }\n              else {\n                local_168 = 0;\n              }\n              pppppppcVar29 = &local_b4;\n              pppppppcVar30 = pppppppcVar3;\n              pppppppcVar33 = param_8;\n              local_150 = (code *******)FUN_0004f4a0(param_1);\n              if (local_150 == (code *******)0x0) goto LAB_000555ac;\n            }\n          }\n          else if (local_90 < 0x3fffffff) {\n            local_50 = (code *******)(*(code *)PTR_malloc_00079b54)((local_90 + 1) * 4);\n            if (local_50 != (code *******)0x0) goto LAB_00055a40;\n            local_150 = (code *******)0xc;\n            param_6 = pppppppcVar36;\n          }\n          else {\n            local_150 = (code *******)0xc;\n            param_6 = pppppppcVar36;\n          }\n        }\n        else {\n          unaff_s5 = (code *******)((int)ppppppcVar35 * 8);\n          if (pppppppcVar36 < (code *******)0xccccccd) {\n            unaff_s4 = (code *******)(*(code *)PTR_malloc_00079b54)((int)ppppppcVar35 * 0x28);\n            local_40 = unaff_s4;\n            local_30 = (*(code *)PTR_malloc_00079b54)(unaff_s5);\n            if ((unaff_s4 != (code *******)0x0) && (local_30 != 0)) goto LAB_000559f0;\n          }\n          local_150 = (code *******)0xc;\n          param_6 = pppppppcVar36;\n        }\nLAB_000557e4:\n        (*(code *)PTR_free_00079c24)(local_50);\n        param_1 = pppppppcVar30;\n        if (pppppppcVar38[0x13] != (code ******)0x0) {\n          FUN_0004b7e8(&local_b4);\n          (*(code *)PTR_free_00079c24)(local_30);\n          (*(code *)PTR_free_00079c24)(local_40);\n          param_1 = pppppppcVar30;\n        }\n        FUN_0004b2bc(&local_b4);\n        pppppppcStack_1a0 = param_4;\n        pppppppcStack_19c = pppppppcVar31;\n      }\n    }" { (expression_statement "pppppppcVar3 = param_5;" (assignment_expression "pppppppcVar3 = param_5" identifier = identifier) ;) (if_statement "if ((((pppppppcVar38[9][2] == (code *****)0x0) && (pppppppcVar38[10][2] == (code *****)0x0))\n          && ((pppppppcVar38[0xb][2] == (code *****)0x0 || (((uint)param_1[7] & 0x1000000) == 0))))\n         && ((pppppppcVar3 = param_4, param_4 != (code *******)0x0 &&\n             (param_4 = param_5, pppppppcVar3 = param_5, param_5 != (code *******)0x0)))) {\n        local_150 = (code *******)0x1;\n        pppppppcStack_1a0 = param_5;\n      }\n      else {\n        param_5 = pppppppcVar3;\n        pppppppcVar3 = (code *******)((int)param_7 - local_118);\n        if (pppppppcVar3 == (code *******)0x0) {\n          pppppppcVar34 = (code *******)(uint)(pppppppcVar38[0x13] != (code ******)0x0);\n        }\n        else {\n          pppppppcVar34 = (code *******)0x1;\n        }\n        ppppppcVar32 = param_1[5];\n        local_6c = (byte)((uint)((int)param_1[3] << 9) >> 0x1f);\n        local_64 = (code *******)pppppppcVar38[0x17];\n        pppppppcVar31 = (code *******)((int)pppppppcVar38[2] + 1);\n        if ((int)pppppppcVar38[2] + 1 < (int)local_64) {\n          pppppppcVar31 = local_64;\n        }\n        pppppppcVar30 = (code *******)(uint)((int)param_3 + 1 < (int)pppppppcVar31);\n        pppppppcVar33 = (code *******)0x1;\n        local_69 = local_6c;\n        if (ppppppcVar32 != (code ******)0x0) {\n          local_69 = 1;\n        }\n        local_6b = (byte)((uint)((int)pppppppcVar38[0x16] << 2) >> 0x1f);\n        local_6a = (byte)((uint)((int)pppppppcVar38[0x16] << 3) >> 0x1f);\n        pppppppcVar29 = (code *******)((int)param_3 + 1);\n        if (pppppppcVar30 == (code *******)0x0) {\n          pppppppcVar29 = pppppppcVar31;\n        }\n        local_b4 = param_2;\n        local_88 = param_3;\n        local_84 = param_3;\n        local_80 = param_3;\n        local_7c = param_3;\n        local_74 = ppppppcVar32;\n        local_150 = (code *******)FUN_00046d2c(&local_b4);\n        pppppppcVar31 = pppppppcVar34;\n        param_6 = param_6;\n        if (local_150 != (code *******)0x0) goto LAB_000557e4;\n        local_70 = pppppppcVar38 + 0x18;\n        local_66 = (byte)((uint)((int)pppppppcVar38[0x16] << 4) >> 0x1f);\n        pppppppcVar2 = (code *******)0x0;\n        local_98 = pppppppcVar2;\n        if ((local_69 == 0) && (local_b0 = param_2, (int)pppppppcVar38[0x17] < 2)) {\n          local_98 = param_3;\n        }\n        local_7c = param_6;\n        local_80 = param_6;\n        local_67 = (byte)((uint)((int)param_1[7] << 7) >> 0x1f);\n        ppppppcVar35 = pppppppcVar38[0x13];\n        pppppppcVar36 = (code *******)((int)ppppppcVar35 * 2);\n        local_5c = param_9;\n        local_58 = (code *******)0xffffffff;\n        local_94 = local_98;\n        if ((int)pppppppcVar36 < 1) {\nLAB_000559f0:\n          local_3c = 1;\n          local_44 = pppppppcVar36;\n          local_34 = pppppppcVar36;\n          if ((pppppppcVar3 < (code *******)0x2) && (((uint)pppppppcVar38[0x16] & 0x40000000) == 0))\n          {\n            local_50 = (code *******)0x0;\nLAB_00055a40:\n            local_78 = 6;\n            if (((uint)param_9 & 1) != 0) {\n              local_78 = 4;\n            }\n            pppppppcVar24 = (code *******)0x1;\n            pppppppcVar25 = param_4;\n            if ((int)param_5 < (int)param_4) {\n              pppppppcVar24 = (code *******)0xffffffff;\n              pppppppcVar25 = param_5;\n            }\n            pppppppcVar26 = param_5;\n            if ((int)param_5 <= (int)param_4) {\n              pppppppcVar26 = param_4;\n            }\n            ppppppcVar35 = pppppppcVar38[0x17];\n            uVar16 = 8;\n            if (local_148 != (code *******)0x0) {\n              if (ppppppcVar35 == (code ******)0x1) {\n                pppppppcVar28 = (code *******)0x4;\n              }\n              else {\n                pppppppcVar28 = pppppppcVar2;\n                if ((-1 < (int)param_1[3] << 9) && (ppppppcVar32 == (code ******)0x0)) {\n                  pppppppcVar28 = (code *******)0x4;\n                }\n              }\n              pppppppcVar29 = (code *******)0x0;\n              if ((int)param_4 <= (int)param_5) {\n                pppppppcVar29 = (code *******)0x2;\n              }\n              uVar16 = (uint)(ppppppcVar32 != (code ******)0x0) | (uint)pppppppcVar28 |\n                       (uint)pppppppcVar29;\n            }\n            local_dc = param_4;\n            if ((int)param_4 < (int)pppppppcVar25) {\n              local_150 = (code *******)0x1;\n              param_6 = pppppppcVar36;\n            }\n            else if ((int)pppppppcVar26 < (int)param_4) {\n              local_150 = (code *******)0x1;\n              param_4 = (code *******)(uint)((int)param_5 < (int)param_4);\n              param_6 = pppppppcVar36;\n            }\n            else {\n              pppppppcVar36 = (code *******)&local_dc;\n              if ((code *******)(uint)((int)param_5 < (int)param_4) != (code *******)0x0) {\n                pppppppcVar36 = (code *******)0x0;\n              }\n              pcVar4 = (code *)(PTR_DAT_000799a4 + -0x2b7c);\n              piVar5 = (int *)(PTR_s_nt0_000795b8 + (uVar16 - 4) * 4 + 0x6e38);\nLAB_00055b44:\n              if (uVar16 - 4 < 5) {\n                    \n                    \n                pppppppcVar29 = (code *******)(*(code *)(&_gp_1 + *piVar5))();\n                return pppppppcVar29;\n              }\n              param_5 = &local_b4;\n              pppppppcVar28 = pppppppcVar33;\n              while( true ) {\n                param_4 = local_dc;\n                pppppppcVar33 = (code *******)((int)local_dc - local_9c);\n                pppppppcVar30 = param_9;\n                pppppppcVar31 = pppppppcVar2;\n                param_6 = local_148;\n                unaff_s4 = param_3;\n                unaff_s5 = pppppppcVar24;\n                unaff_s7 = pppppppcVar26;\n                if (local_94 <= pppppppcVar33) {\n                  pppppppcVar29 = local_dc;\n                  local_150 = (code *******)(*pcVar4)(param_5);\n                  pppppppcVar33 = pppppppcVar28;\n                  if (local_150 != (code *******)0x0) goto LAB_000557e4;\n                  pppppppcVar33 = (code *******)((int)param_4 - local_9c);\n                }\n                if ((int)param_4 < (int)param_3) {\n                  uVar7 = (uint)(byte)*(code *)((int)pppppppcVar33 + (int)local_b0);\n                }\n                else {\n                  uVar7 = 0;\n                }\n                param_4 = (code *******)((int)param_4 + (int)pppppppcVar24);\n                if (*(code *)((int)local_148 + uVar7) != (code)0x0) break;\n                pppppppcVar33 = pppppppcVar28;\n                local_dc = param_4;\n                if ((int)param_4 < (int)pppppppcVar25) {\n                  local_150 = (code *******)0x1;\n                  goto LAB_000557e4;\n                }\n                if ((code *******)(uint)((int)pppppppcVar26 < (int)param_4) != (code *******)0x0) {\n                  local_150 = (code *******)0x1;\n                  param_4 = (code *******)(uint)((int)pppppppcVar26 < (int)param_4);\n                  goto LAB_000557e4;\n                }\n              }\n              while( true ) {\n                pppppppcVar29 = local_dc;\n                pppppppcVar30 = param_9;\n                pppppppcVar6 = (code *******)(*pcVar4)(&local_b4);\n                pppppppcVar14 = local_60;\n                pppppppcVar42 = local_8c;\n                pppppppcVar33 = pppppppcVar28;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar6 != (code *******)0x0) goto LAB_000557e4;\n                if (((ppppppcVar35 != (code ******)0x1) && (local_98 != (code *******)0x0)) &&\n                   (*local_ac == -1)) goto LAB_00055b1c;\n                local_3c = 0;\n                local_48 = 0;\n                local_4c = (code *******)0x0;\n                local_138 = local_8c;\n                local_d8 = (code *******)0x0;\n                unaff_s7 = (code *******)local_60[9];\n                pppppppcVar30 = local_5c;\n                param_4 = pppppppcVar14;\n                if (((uint)unaff_s7[0xd] & 0x1000000) == 0) break;\n                pppppppcVar29 = (code *******)((int)local_8c + -1);\n                pppppppcVar33 = (code *******)FUN_00049110(&local_b4);\n                if (((uint)pppppppcVar33 & 1) == 0) {\n                  if (pppppppcVar33 == (code *******)0x0) break;\n                  if (((uint)pppppppcVar33 & 6) == 6) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xc];\n                    goto LAB_00054d1c;\n                  }\n                  if (((uint)pppppppcVar33 & 2) != 0) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xb];\n                    goto LAB_00054d1c;\n                  }\n                  pppppppcVar28 = pppppppcVar33;\n                  if (((uint)pppppppcVar33 & 4) == 0) break;\n                  pppppppcVar30 = (code *******)unaff_s7[10];\n                  pppppppcVar29 = pppppppcVar14;\n                  unaff_s7 = (code *******)FUN_0004ae34(&local_d8);\n                  pppppppcVar28 = pppppppcVar33;\n                  if (unaff_s7 != (code *******)0x0) break;\n                  if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                }\n                else {\n                  unaff_s7 = (code *******)pppppppcVar14[10];\nLAB_00054d1c:\n                  pppppppcVar28 = (code *******)PTR_s_nt0_000795b8;\n                  if (unaff_s7 != (code *******)0x0) break;\n                }\n                pppppppcVar28 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                local_dc = (code *******)\n                           (*(code *)PTR___assert_fail_000799f8)\n                                     (PTR_s_nt0_000795b8 + 0x71a0,pppppppcVar29,0x435);\n                if (local_dc == pppppppcVar26) {\n                  if ((int)local_dc < (int)param_3) {\n                    uVar7 = (uint)(byte)*(code *)((int)local_dc + (int)param_2);\n                  }\n                  else {\n                    uVar7 = 0;\n                  }\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    uVar7 = (uint)*(byte *)((int)ppppppcVar32 + uVar7);\n                  }\n                  if (*(code *)((int)local_148 + uVar7) == (code)0x0) {\n                    local_150 = (code *******)0x1;\n                    pppppppcVar30 = param_9;\n                    pppppppcVar33 = pppppppcVar28;\n                    goto LAB_000557e4;\n                  }\n                }\n              }\n              pppppppcVar33 = pppppppcVar28;\n              bVar1 = pppppppcVar36 != (code *******)0x0;\n              if ((local_50 == (code *******)0x0) ||\n                 (local_50[(int)pppppppcVar42] = (code ******)unaff_s7,\n                 pppppppcVar14[0x13] == (code ******)0x0)) {\nLAB_00054d50:\n                if ((int)unaff_s7[0xd] << 4 < 0) {\n                  if ((((uint)unaff_s7[0xd] & 0x1000000) == 0) ||\n                     (pppppppcVar29 = unaff_s7, pppppppcVar30 = pppppppcVar42,\n                     iVar18 = FUN_00049440(&local_b4), iVar18 != 0)) {\n                    unaff_s8 = pppppppcVar42;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                  }\n                  else {\n                    pppppppcVar42 = (code *******)0xffffffff;\n                    pppppppcVar28 = (code *******)0x0;\n                  }\n                }\n                else {\n                  pppppppcVar42 = (code *******)0xffffffff;\n                  pppppppcVar28 = (code *******)0x0;\n                }\n                pcVar8 = (code *)(PTR_DAT_000799a4 + -0x7144);\n                pcVar9 = (code *)(PTR_DAT_000799a4 + -0x1980);\n                pcVar10 = (code *)(PTR_DAT_000799a4 + -0x2f9c);\n                unaff_s8 = pppppppcVar42;\n                local_144 = pppppppcVar36;\n                while( true ) {\n                  uVar44 = CONCAT44(local_98,local_84);\n                  unaff_s5 = (code *******)((int)local_8c + 1);\n                  pppppppcVar29 = local_8c;\n                  if ((int)local_7c <= (int)local_8c) break;\n                  if (((int)local_90 <= (int)unaff_s5) && ((int)local_90 < (int)local_84))\n                  goto LAB_00054e94;\n                  if ((int)local_98 <= (int)unaff_s5) {\n                    while ((int)((ulonglong)uVar44 >> 0x20) < (int)uVar44) {\nLAB_00054e94:\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 2);\n                      local_d8 = (code *******)(*pcVar8)(&local_b4);\n                      if (local_d8 == (code *******)0x0) break;\n                      pppppppcVar14 = param_4;\n                      if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                      pppppppcVar33 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                      pppppppcVar30 = (code *******)0x46c;\n                      pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                      uVar44 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0);\n                      pppppppcVar28 = pppppppcVar38;\n                    }\n                  }\n                  pppppppcVar42 = local_60;\n                  if ((int)unaff_s7[0xd] << 5 < 0) {\n                    pppppppcVar31 = pppppppcVar42;\n                    if (0 < (int)unaff_s7[2]) {\n                      pcVar11 = (code *)(PTR_DAT_000799a4 + -0x6fdc);\n                      pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6ef0);\n                      param_6 = (code *******)0x0;\n                      do {\n                        param_5 = (code *******)unaff_s7[3][(int)param_6];\n                        ppppppcVar39 = *pppppppcVar42;\n                        pppppcVar13 = ppppppcVar39[(int)param_5 * 2 + 1];\n                        if (((uint)pppppcVar13 & 0x800) != 0) {\n                          if (((uint)pppppcVar13 & 0xffc000) != 0) {\n                            pppppppcVar29 = local_8c;\n                            uVar19 = (*pcVar12)(&local_b4,local_8c,local_5c);\n                            uVar7 = (uint)((int)ppppppcVar39[(int)param_5 * 2 + 1] << 8) >> 0x16;\n                            if ((uVar7 & 4) == 0) {\n                              uVar27 = uVar19 & 1;\n                              if ((uVar7 & 8) != 0) goto joined_r0x00054f40;\n                            }\n                            else {\n                              uVar27 = uVar7 & 8;\n                              if ((uVar19 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                              if (uVar27 != 0) goto LAB_000550a4;\n                            }\n                            if ((((uVar7 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                               (((uVar7 & 0x80) != 0 &&\n                                (pppppppcVar33 = local_8c, (uVar19 & 8) == 0)))) goto LAB_000550a4;\n                          }\n                          pppppppcVar30 = &local_b4;\n                          pppppppcVar29 = param_5;\n                          pppppppcVar33 = local_8c;\n                          iVar18 = (*pcVar10)(pppppppcVar42);\n                          if (iVar18 != 0) {\n                            pppppppcVar14 = (code *******)((int)local_8c + iVar18);\n                            if (iVar18 <= local_3c) {\n                              iVar18 = local_3c;\n                            }\n                            pppppppcVar29 = pppppppcVar14;\n                            local_3c = iVar18;\n                            local_d4 = (code *******)(*pcVar11)(&local_b4);\n                            pppppppcVar15 = local_d4;\n                            if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                            pppppppcVar30 =\n                                 (code *******)\n                                 (pppppppcVar42[6] + (int)pppppppcVar42[3][(int)param_5] * 3);\n                            unaff_s4 = (code *******)((int)pppppppcVar14 * 4);\n                            param_5 = local_50 + (int)pppppppcVar14;\n                            if (*param_5 == (code ******)0x0) {\n                              local_d0 = (code *******)*pppppppcVar30;\n                              local_cc = (code *******)pppppppcVar30[1];\n                              local_c8 = (code *******)pppppppcVar30[2];\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *param_5 = ppppppcVar39;\n                            }\n                            else {\n                              pppppppcVar29 = (code *******)(*param_5)[10];\n                              local_d4 = (code *******)FUN_000484bc(&local_d0);\n                              pppppppcVar15 = local_d4;\n                              if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar15 = local_50 + (int)pppppppcVar14;\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *pppppppcVar15 = ppppppcVar39;\n                              (*(code *)PTR_free_00079c24)(local_c8);\n                            }\n                            unaff_s4 = local_50 + (int)pppppppcVar14;\n                            if ((*unaff_s4 == (code ******)0x0) &&\n                               (pppppppcVar15 = local_d4, local_d4 != (code *******)0x0))\n                            goto LAB_00055e44;\n                          }\n                        }\nLAB_000550a4:\n                        param_6 = (code *******)((int)param_6 + 1);\n                      } while ((int)param_6 < (int)unaff_s7[2]);\n                    }\n                    local_d8 = (code *******)0x0;\n                  }\n                  uVar7 = (uint)(byte)*(code *)((int)local_8c + (int)local_b0);\n                  local_8c = (code *******)((int)local_8c + 1);\n                  do {\n                    if (unaff_s7[0xb] != (code ******)0x0) {\n                      pppppppcVar30 = (code *******)unaff_s7[0xb][uVar7];\nLAB_000553a0:\n                      pppppppcVar14 = pppppppcVar30;\n                      if (local_50 != (code *******)0x0) goto LAB_000553ac;\n                      goto LAB_000553cc;\n                    }\n                    pppppppcVar31 = (code *******)unaff_s7[0xc];\n                    if (pppppppcVar31 != (code *******)0x0) {\n                      pppppppcVar29 = (code *******)((int)local_8c + -1);\n                      uVar19 = FUN_00049110(&local_b4);\n                      if ((uVar19 & 1) == 0) {\n                        pppppppcVar30 = (code *******)pppppppcVar31[uVar7];\n                      }\n                      else {\n                        pppppppcVar31 = pppppppcVar31 + uVar7 + 0x100;\n                        pppppppcVar30 = (code *******)*pppppppcVar31;\n                      }\n                      goto LAB_000553a0;\n                    }\n                    pppppppcVar29 = unaff_s7;\n                    pppppppcVar30 = local_5c;\n                    iVar18 = (*pcVar9)(local_60);\n                  } while (iVar18 != 0);\n                  local_d8 = (code *******)0xc;\n                  pppppppcVar15 = local_d8;\nLAB_00055e44:\n                  local_d8 = pppppppcVar15;\n                  param_4 = (code *******)0x0;\n                  if (local_50 == (code *******)0x0) {\n                    pppppppcVar14 = param_4;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    break;\n                  }\n                  pppppppcVar30 = (code *******)0x0;\nLAB_000553ac:\n                  pppppppcVar29 = &local_b4;\n                  pppppppcVar14 = (code *******)FUN_00053684(&local_d8);\nLAB_000553cc:\n                  param_4 = pppppppcVar14;\n                  if (pppppppcVar14 == (code *******)0x0) {\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    if ((local_50 == (code *******)0x0) ||\n                       ((pppppppcVar28 != (code *******)0x0 && (pppppppcVar34 == (code *******)0x0))\n                       )) break;\n                    param_6 = &local_b4;\n                    param_5 = (code *******)&local_d8;\n                    pppppppcVar31 = (code *******)(PTR_DAT_000799a4 + 0x3684);\n                    do {\n                      pppppppcVar15 = local_50 + (int)local_8c;\n                      pppppppcVar42 = local_8c;\n                      do {\n                        pppppppcVar42 = (code *******)((int)pppppppcVar42 + 1);\n                        pppppppcVar29 = local_4c;\n                        param_4 = pppppppcVar14;\n                        if ((int)local_4c < (int)pppppppcVar42) goto LAB_00055da8;\n                        local_8c = (code *******)((int)local_8c + 1);\n                        pppppppcVar15 = pppppppcVar15 + 1;\n                      } while (*pppppppcVar15 == (code ******)0x0);\n                      pppppppcVar30 = (code *******)0x0;\n                      pppppppcVar29 = param_6;\n                      param_4 = (code *******)(*(code *)pppppppcVar31)(param_5);\n                      if (local_d8 != (code *******)0x0) {\n                        if (param_4 == (code *******)0x0) goto LAB_00055da8;\n                        break;\n                      }\n                      pppppppcVar29 = local_4c;\n                    } while (param_4 == (code *******)0x0);\n                  }\n                  pppppppcVar15 = (code *******)((uint)unaff_s7 ^ (uint)param_4);\n                  pppppppcVar42 = unaff_s7;\n                  pppppppcVar14 = local_138;\n                  if ((bVar1) &&\n                     (pppppppcVar42 = pppppppcVar15, pppppppcVar14 = unaff_s5,\n                     pppppppcVar15 != (code *******)0x0)) {\n                    bVar1 = false;\n                    pppppppcVar14 = local_138;\n                  }\n                  local_138 = pppppppcVar14;\n                  unaff_s7 = param_4;\n                  if ((((uint)param_4[0xd] & 0x8000000) != 0) &&\n                     ((((uint)param_4[0xd] & 0x1000000) == 0 ||\n                      (pppppppcVar29 = param_4, pppppppcVar30 = local_8c,\n                      iVar18 = FUN_00049440(&local_b4), iVar18 != 0)))) {\n                    unaff_s7 = pppppppcVar42;\n                    unaff_s8 = local_8c;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                    local_144 = (code *******)0x0;\n                    unaff_s7 = param_4;\n                  }\n                }\nLAB_00055da8:\n                if (local_144 != (code *******)0x0) {\n                  *local_144 = (code ******)((int)local_138 + (int)*local_144);\n                }\n              }\n              else {\n                param_4 = unaff_s7 + 1;\n                pppppppcVar30 = (code *******)0x0;\n                pppppppcVar29 = param_4;\n                local_d8 = (code *******)FUN_00047a44(&local_b4);\n                unaff_s8 = local_d8;\n                if (local_d8 == (code *******)0x0) {\n                  if (((uint)unaff_s7[0xd] & 0x2000000) == 0) {\n                    pppppppcVar29 = param_4;\n                    bVar1 = false;\n                  }\n                  else {\n                    pppppppcVar29 = param_4;\n                    local_d8 = (code *******)FUN_00052d84(&local_b4);\n                    unaff_s8 = local_d8;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055dbc;\n                    bVar1 = false;\n                  }\n                  goto LAB_00054d50;\n                }\n              }\nLAB_00055dbc:\n              if (unaff_s8 == (code *******)0xffffffff) {\nLAB_00055b04:\n                FUN_0004b7e8(&local_b4);\nLAB_00055b1c:\n                local_dc = (code *******)((int)pppppppcVar24 + (int)local_dc);\n                if ((int)pppppppcVar25 <= (int)local_dc) goto code_r0x00055b38;\n                local_150 = (code *******)0x1;\n                goto LAB_000557e4;\n              }\n              if (unaff_s8 == (code *******)&SUB_fffffffe) {\n                local_150 = (code *******)0xc;\n                goto LAB_000557e4;\n              }\n              local_58 = unaff_s8;\n              if (((uint)param_1[7] & 0x8000000) == 0) {\n                if (pppppppcVar3 < (code *******)0x2) {\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055c08;\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                else {\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                if (pppppppcVar3 < (code *******)0x2) {\nLAB_00055c6c:\n                  pppppppcVar28 = pppppppcVar33;\n                  unaff_s4 = local_60;\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055548;\n                }\n                else {\n                  cVar23 = *(code *)(pppppppcVar38 + 0x16);\nLAB_00055c20:\n                  pppppppcVar28 = pppppppcVar33;\n                  if (-1 < (char)cVar23) goto LAB_00055c6c;\n                }\n                pppppppcVar31 = local_54;\n                pppppppcVar42 = local_60;\n                unaff_s4 = pppppppcVar42;\n                if (unaff_s8 < (code *******)0x3fffffff) {\n                  param_4 = (code *******)((int)((int)unaff_s8 + 1) * 4);\n                  unaff_s5 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                  if (unaff_s5 == (code *******)0x0) {\nLAB_00055b9c:\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    local_150 = (code *******)0xc;\n                    pppppppcVar33 = pppppppcVar28;\n                  }\n                  else {\n                    pppppppcVar29 = (code *******)&local_d0;\n                    if (pppppppcVar42[0x13] == (code ******)0x0) {\n                      local_cc = (code *******)0x0;\n                      local_c8 = pppppppcVar31;\n                      local_c0 = 0;\n                      local_bc = 0;\n                      local_b8 = 0;\n                      local_d0 = unaff_s5;\n                      local_c4 = unaff_s8;\n                      param_5 = (code *******)FUN_0005421c(&local_b4);\n                      (*(code *)PTR_free_00079c24)(local_b8);\n                      if (param_5 == (code *******)0x0) {\n                        param_4 = (code *******)*unaff_s5;\n                        if (param_4 == (code *******)0x0) {\nLAB_00055b70:\n                          (*(code *)PTR_free_00079c24)(unaff_s5);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          pppppppcVar33 = pppppppcVar28;\n                          goto LAB_00055b04;\n                        }\nLAB_00055528:\n                        (*(code *)PTR_free_00079c24)(local_50);\n                        pppppppcVar33 = pppppppcVar28;\n                        unaff_s4 = pppppppcVar42;\n                        local_58 = unaff_s8;\n                        local_54 = pppppppcVar31;\n                        local_50 = unaff_s5;\n                        goto LAB_00055548;\n                      }\nLAB_00055acc:\n                      param_4 = (code *******)0x0;\n                      pppppppcVar33 = pppppppcVar28;\n                      unaff_s4 = pppppppcVar42;\n                    }\n                    else {\n                      param_4 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                      if (param_4 == (code *******)0x0) goto LAB_00055b9c;\n                      unaff_s7 = (code *******)&local_d0;\n                      pcVar8 = (code *)(PTR_DAT_000799a4 + 0x421c);\n                      pcVar9 = (code *)(PTR_DAT_000799a4 + -0x6bc0);\n                      pppppppcVar33 = pppppppcVar28;\n                      while( true ) {\n                        pppppppcVar28 = (code *******)((int)unaff_s8 + 1);\n                        param_6 = (code *******)((int)pppppppcVar28 * 4);\n                        pppppppcVar30 = param_6;\n                        (*(code *)PTR_memset_00079b00)(param_4,0);\n                        local_c0 = 0;\n                        local_bc = 0;\n                        local_b8 = 0;\n                        pppppppcVar29 = unaff_s7;\n                        local_d0 = unaff_s5;\n                        local_cc = param_4;\n                        local_c8 = pppppppcVar31;\n                        local_c4 = unaff_s8;\n                        param_5 = (code *******)(*pcVar8)(&local_b4);\n                        (*(code *)PTR_free_00079c24)(local_b8);\n                        unaff_s4 = pppppppcVar28;\n                        if (param_5 != (code *******)0x0) break;\n                        if ((*unaff_s5 != (code ******)0x0) ||\n                           (param_6 = param_6 + -1, *param_4 != (code ******)0x0)) {\n                          pppppppcVar29 = unaff_s5;\n                          pppppppcVar30 = param_4;\n                          param_5 = (code *******)FUN_000520d0(pppppppcVar42);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          if (param_5 != (code *******)0x0) goto LAB_00055acc;\n                          goto LAB_00055528;\n                        }\n                        param_6 = (code *******)((int)local_50 + (int)param_6);\n                        do {\n                          while( true ) {\n                            unaff_s8 = (code *******)((int)unaff_s8 + -1);\n                            if ((int)unaff_s8 < 0) goto LAB_00055b70;\n                            pppppppcVar29 = (code *******)param_6[-1];\n                            if (pppppppcVar29 != (code *******)0x0) break;\n                            param_6 = param_6 + -1;\n                          }\n                          param_6 = param_6 + -1;\n                        } while (((uint)pppppppcVar29[0xd] & 0x8000000) == 0);\n                        pppppppcVar31 = (code *******)(*pcVar9)(&local_b4,pppppppcVar29,unaff_s8);\n                        pppppppcVar33 = pppppppcVar28;\n                      }\n                    }\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    (*(code *)PTR_free_00079c24)(param_4);\n                    local_150 = param_5;\n                    if (param_5 == (code *******)0x1) goto LAB_00055b04;\n                  }\n                }\n                else {\n                  local_150 = (code *******)0xc;\n                  pppppppcVar33 = pppppppcVar28;\n                }\n                goto LAB_000557e4;\n              }\n              if (pppppppcVar38[0x13] != (code ******)0x0) {\n                pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                pppppppcVar30 = unaff_s8;\n                local_54 = (code *******)FUN_00049440(&local_b4);\n                goto LAB_00055c6c;\n              }\nLAB_00055c08:\n              if ((((uint)param_1[7] & 0x8000000) == 0) && ((code *******)0x1 < pppppppcVar3)) {\n                cVar23 = *(code *)(pppppppcVar38 + 0x16);\n                goto LAB_00055c20;\n              }\nLAB_00055548:\n              if (pppppppcVar3 == (code *******)0x0) goto LAB_000557e4;\n              if (pppppppcVar3 < (code *******)0x2) {\n                *param_8 = (code ******)0x0;\n                param_8[1] = (code ******)local_58;\n                goto LAB_000555ac;\n              }\n              pppppppcVar29 = param_8 + 2;\n              do {\n                pppppppcVar29[1] = (code ******)0xffffffff;\n                *pppppppcVar29 = (code ******)0xffffffff;\n                pppppppcVar29 = pppppppcVar29 + 2;\n              } while (pppppppcVar29 != param_8 + (int)pppppppcVar3 * 2);\n              *param_8 = (code ******)0x0;\n              param_8[1] = (code ******)local_58;\n              if (((uint)param_1[7] & 0x8000000) != 0) {\nLAB_000555ac:\n                pppppppcVar33 = param_8;\n                do {\n                  pppppppcVar29 = (code *******)*pppppppcVar33;\n                  if (pppppppcVar29 != (code *******)0xffffffff) {\n                    if (local_68 != '\0') {\n                      pppppppcVar34 = local_94;\n                      if (pppppppcVar29 != local_98) {\n                        pppppppcVar34 = *(code ********)(local_a8 + (int)pppppppcVar29 * 4);\n                      }\n                      *pppppppcVar33 = (code ******)pppppppcVar34;\n                      pppppppcVar29 = local_94;\n                      if (local_98 != (code *******)pppppppcVar33[1]) {\n                        pppppppcVar29 = *(code ********)(local_a8 + (int)pppppppcVar33[1] * 4);\n                      }\n                      pppppppcVar33[1] = (code ******)pppppppcVar29;\n                    }\n                    *pppppppcVar33 = (code ******)((int)local_dc + (int)*pppppppcVar33);\n                    pppppppcVar29 = (code *******)((int)local_dc + (int)pppppppcVar33[1]);\n                    pppppppcVar33[1] = (code ******)pppppppcVar29;\n                  }\n                  pppppppcVar33 = pppppppcVar33 + 2;\n                } while (pppppppcVar33 != param_8 + (int)pppppppcVar3 * 2);\n                if (0 < local_118) {\n                  pppppppcVar33 = param_8 + (int)pppppppcVar3 * 2;\n                  do {\n                    *pppppppcVar33 = (code ******)0xffffffff;\n                    pppppppcVar33[1] = (code ******)0xffffffff;\n                    pppppppcVar33 = pppppppcVar33 + 2;\n                  } while (pppppppcVar33 != param_8 + (int)param_7 * 2);\n                }\n                pppppppcVar30 = local_dc;\n                pppppppcVar33 = param_8;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar38[0x21] != (code ******)0x0) {\n                  pppppppcVar30 = (code *******)((int)pppppppcVar3 + -1);\n                  pppppppcVar34 = (code *******)0x0;\n                  pppppppcVar3 = param_8;\n                  while( true ) {\n                    pppppppcVar29 = (code *******)((int)pppppppcVar34 * 4);\n                    if (pppppppcVar30 == pppppppcVar34) break;\n                    if (*(code ********)((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) !=\n                        pppppppcVar34) {\n                      pppppppcVar3[2] =\n                           param_8[(int)((int)*(code ********)\n                                               ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1)\n                                   * 2];\n                      pppppppcVar3[3] =\n                           param_8[((int)*(code ******)\n                                          ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1) * 2 +\n                                   1];\n                    }\n                    pppppppcVar34 = (code *******)((int)pppppppcVar34 + 1);\n                    pppppppcVar3 = pppppppcVar3 + 2;\n                  }\n                }\n                goto LAB_000557e4;\n              }\n              if ((char)*(code *)(pppppppcVar38 + 0x16) < '\0') {\n                local_168 = (uint)(0 < (int)pppppppcVar38[0x13]);\n              }\n              else {\n                local_168 = 0;\n              }\n              pppppppcVar29 = &local_b4;\n              pppppppcVar30 = pppppppcVar3;\n              pppppppcVar33 = param_8;\n              local_150 = (code *******)FUN_0004f4a0(param_1);\n              if (local_150 == (code *******)0x0) goto LAB_000555ac;\n            }\n          }\n          else if (local_90 < 0x3fffffff) {\n            local_50 = (code *******)(*(code *)PTR_malloc_00079b54)((local_90 + 1) * 4);\n            if (local_50 != (code *******)0x0) goto LAB_00055a40;\n            local_150 = (code *******)0xc;\n            param_6 = pppppppcVar36;\n          }\n          else {\n            local_150 = (code *******)0xc;\n            param_6 = pppppppcVar36;\n          }\n        }\n        else {\n          unaff_s5 = (code *******)((int)ppppppcVar35 * 8);\n          if (pppppppcVar36 < (code *******)0xccccccd) {\n            unaff_s4 = (code *******)(*(code *)PTR_malloc_00079b54)((int)ppppppcVar35 * 0x28);\n            local_40 = unaff_s4;\n            local_30 = (*(code *)PTR_malloc_00079b54)(unaff_s5);\n            if ((unaff_s4 != (code *******)0x0) && (local_30 != 0)) goto LAB_000559f0;\n          }\n          local_150 = (code *******)0xc;\n          param_6 = pppppppcVar36;\n        }\nLAB_000557e4:\n        (*(code *)PTR_free_00079c24)(local_50);\n        param_1 = pppppppcVar30;\n        if (pppppppcVar38[0x13] != (code ******)0x0) {\n          FUN_0004b7e8(&local_b4);\n          (*(code *)PTR_free_00079c24)(local_30);\n          (*(code *)PTR_free_00079c24)(local_40);\n          param_1 = pppppppcVar30;\n        }\n        FUN_0004b2bc(&local_b4);\n        pppppppcStack_1a0 = param_4;\n        pppppppcStack_19c = pppppppcVar31;\n      }" if (parenthesized_expression "((((pppppppcVar38[9][2] == (code *****)0x0) && (pppppppcVar38[10][2] == (code *****)0x0))\n          && ((pppppppcVar38[0xb][2] == (code *****)0x0 || (((uint)param_1[7] & 0x1000000) == 0))))\n         && ((pppppppcVar3 = param_4, param_4 != (code *******)0x0 &&\n             (param_4 = param_5, pppppppcVar3 = param_5, param_5 != (code *******)0x0))))" ( (binary_expression "(((pppppppcVar38[9][2] == (code *****)0x0) && (pppppppcVar38[10][2] == (code *****)0x0))\n          && ((pppppppcVar38[0xb][2] == (code *****)0x0 || (((uint)param_1[7] & 0x1000000) == 0))))\n         && ((pppppppcVar3 = param_4, param_4 != (code *******)0x0 &&\n             (param_4 = param_5, pppppppcVar3 = param_5, param_5 != (code *******)0x0)))" (parenthesized_expression "(((pppppppcVar38[9][2] == (code *****)0x0) && (pppppppcVar38[10][2] == (code *****)0x0))\n          && ((pppppppcVar38[0xb][2] == (code *****)0x0 || (((uint)param_1[7] & 0x1000000) == 0))))" ( (binary_expression "((pppppppcVar38[9][2] == (code *****)0x0) && (pppppppcVar38[10][2] == (code *****)0x0))\n          && ((pppppppcVar38[0xb][2] == (code *****)0x0 || (((uint)param_1[7] & 0x1000000) == 0)))" (parenthesized_expression "((pppppppcVar38[9][2] == (code *****)0x0) && (pppppppcVar38[10][2] == (code *****)0x0))" ( (binary_expression "(pppppppcVar38[9][2] == (code *****)0x0) && (pppppppcVar38[10][2] == (code *****)0x0)" (parenthesized_expression "(pppppppcVar38[9][2] == (code *****)0x0)" ( (binary_expression "pppppppcVar38[9][2] == (code *****)0x0" (subscript_expression "pppppppcVar38[9][2]" (subscript_expression "pppppppcVar38[9]" identifier [ number_literal ]) [ number_literal ]) == (cast_expression "(code *****)0x0" ( (type_descriptor "code *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) )) && (parenthesized_expression "(pppppppcVar38[10][2] == (code *****)0x0)" ( (binary_expression "pppppppcVar38[10][2] == (code *****)0x0" (subscript_expression "pppppppcVar38[10][2]" (subscript_expression "pppppppcVar38[10]" identifier [ number_literal ]) [ number_literal ]) == (cast_expression "(code *****)0x0" ( (type_descriptor "code *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) ))) )) && (parenthesized_expression "((pppppppcVar38[0xb][2] == (code *****)0x0 || (((uint)param_1[7] & 0x1000000) == 0)))" ( (parenthesized_expression "(pppppppcVar38[0xb][2] == (code *****)0x0 || (((uint)param_1[7] & 0x1000000) == 0))" ( (binary_expression "pppppppcVar38[0xb][2] == (code *****)0x0 || (((uint)param_1[7] & 0x1000000) == 0)" (binary_expression "pppppppcVar38[0xb][2] == (code *****)0x0" (subscript_expression "pppppppcVar38[0xb][2]" (subscript_expression "pppppppcVar38[0xb]" identifier [ number_literal ]) [ number_literal ]) == (cast_expression "(code *****)0x0" ( (type_descriptor "code *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) || (parenthesized_expression "(((uint)param_1[7] & 0x1000000) == 0)" ( (binary_expression "((uint)param_1[7] & 0x1000000) == 0" (parenthesized_expression "((uint)param_1[7] & 0x1000000)" ( (binary_expression "(uint)param_1[7] & 0x1000000" (cast_expression "(uint)param_1[7]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_1[7]" identifier [ number_literal ])) & number_literal) )) == number_literal) ))) )) ))) )) && (parenthesized_expression "((pppppppcVar3 = param_4, param_4 != (code *******)0x0 &&\n             (param_4 = param_5, pppppppcVar3 = param_5, param_5 != (code *******)0x0)))" ( (parenthesized_expression "(pppppppcVar3 = param_4, param_4 != (code *******)0x0 &&\n             (param_4 = param_5, pppppppcVar3 = param_5, param_5 != (code *******)0x0))" ( (comma_expression "pppppppcVar3 = param_4, param_4 != (code *******)0x0 &&\n             (param_4 = param_5, pppppppcVar3 = param_5, param_5 != (code *******)0x0)" (assignment_expression "pppppppcVar3 = param_4" identifier = identifier) , (binary_expression "param_4 != (code *******)0x0 &&\n             (param_4 = param_5, pppppppcVar3 = param_5, param_5 != (code *******)0x0)" (binary_expression "param_4 != (code *******)0x0" identifier != (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) && (parenthesized_expression "(param_4 = param_5, pppppppcVar3 = param_5, param_5 != (code *******)0x0)" ( (comma_expression "param_4 = param_5, pppppppcVar3 = param_5, param_5 != (code *******)0x0" (assignment_expression "param_4 = param_5" identifier = identifier) , (comma_expression "pppppppcVar3 = param_5, param_5 != (code *******)0x0" (assignment_expression "pppppppcVar3 = param_5" identifier = identifier) , (binary_expression "param_5 != (code *******)0x0" identifier != (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)))) )))) )) ))) )) (compound_statement "{\n        local_150 = (code *******)0x1;\n        pppppppcStack_1a0 = param_5;\n      }" { (expression_statement "local_150 = (code *******)0x1;" (assignment_expression "local_150 = (code *******)0x1" identifier = (cast_expression "(code *******)0x1" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "pppppppcStack_1a0 = param_5;" (assignment_expression "pppppppcStack_1a0 = param_5" identifier = identifier) ;) }) (else_clause "else {\n        param_5 = pppppppcVar3;\n        pppppppcVar3 = (code *******)((int)param_7 - local_118);\n        if (pppppppcVar3 == (code *******)0x0) {\n          pppppppcVar34 = (code *******)(uint)(pppppppcVar38[0x13] != (code ******)0x0);\n        }\n        else {\n          pppppppcVar34 = (code *******)0x1;\n        }\n        ppppppcVar32 = param_1[5];\n        local_6c = (byte)((uint)((int)param_1[3] << 9) >> 0x1f);\n        local_64 = (code *******)pppppppcVar38[0x17];\n        pppppppcVar31 = (code *******)((int)pppppppcVar38[2] + 1);\n        if ((int)pppppppcVar38[2] + 1 < (int)local_64) {\n          pppppppcVar31 = local_64;\n        }\n        pppppppcVar30 = (code *******)(uint)((int)param_3 + 1 < (int)pppppppcVar31);\n        pppppppcVar33 = (code *******)0x1;\n        local_69 = local_6c;\n        if (ppppppcVar32 != (code ******)0x0) {\n          local_69 = 1;\n        }\n        local_6b = (byte)((uint)((int)pppppppcVar38[0x16] << 2) >> 0x1f);\n        local_6a = (byte)((uint)((int)pppppppcVar38[0x16] << 3) >> 0x1f);\n        pppppppcVar29 = (code *******)((int)param_3 + 1);\n        if (pppppppcVar30 == (code *******)0x0) {\n          pppppppcVar29 = pppppppcVar31;\n        }\n        local_b4 = param_2;\n        local_88 = param_3;\n        local_84 = param_3;\n        local_80 = param_3;\n        local_7c = param_3;\n        local_74 = ppppppcVar32;\n        local_150 = (code *******)FUN_00046d2c(&local_b4);\n        pppppppcVar31 = pppppppcVar34;\n        param_6 = param_6;\n        if (local_150 != (code *******)0x0) goto LAB_000557e4;\n        local_70 = pppppppcVar38 + 0x18;\n        local_66 = (byte)((uint)((int)pppppppcVar38[0x16] << 4) >> 0x1f);\n        pppppppcVar2 = (code *******)0x0;\n        local_98 = pppppppcVar2;\n        if ((local_69 == 0) && (local_b0 = param_2, (int)pppppppcVar38[0x17] < 2)) {\n          local_98 = param_3;\n        }\n        local_7c = param_6;\n        local_80 = param_6;\n        local_67 = (byte)((uint)((int)param_1[7] << 7) >> 0x1f);\n        ppppppcVar35 = pppppppcVar38[0x13];\n        pppppppcVar36 = (code *******)((int)ppppppcVar35 * 2);\n        local_5c = param_9;\n        local_58 = (code *******)0xffffffff;\n        local_94 = local_98;\n        if ((int)pppppppcVar36 < 1) {\nLAB_000559f0:\n          local_3c = 1;\n          local_44 = pppppppcVar36;\n          local_34 = pppppppcVar36;\n          if ((pppppppcVar3 < (code *******)0x2) && (((uint)pppppppcVar38[0x16] & 0x40000000) == 0))\n          {\n            local_50 = (code *******)0x0;\nLAB_00055a40:\n            local_78 = 6;\n            if (((uint)param_9 & 1) != 0) {\n              local_78 = 4;\n            }\n            pppppppcVar24 = (code *******)0x1;\n            pppppppcVar25 = param_4;\n            if ((int)param_5 < (int)param_4) {\n              pppppppcVar24 = (code *******)0xffffffff;\n              pppppppcVar25 = param_5;\n            }\n            pppppppcVar26 = param_5;\n            if ((int)param_5 <= (int)param_4) {\n              pppppppcVar26 = param_4;\n            }\n            ppppppcVar35 = pppppppcVar38[0x17];\n            uVar16 = 8;\n            if (local_148 != (code *******)0x0) {\n              if (ppppppcVar35 == (code ******)0x1) {\n                pppppppcVar28 = (code *******)0x4;\n              }\n              else {\n                pppppppcVar28 = pppppppcVar2;\n                if ((-1 < (int)param_1[3] << 9) && (ppppppcVar32 == (code ******)0x0)) {\n                  pppppppcVar28 = (code *******)0x4;\n                }\n              }\n              pppppppcVar29 = (code *******)0x0;\n              if ((int)param_4 <= (int)param_5) {\n                pppppppcVar29 = (code *******)0x2;\n              }\n              uVar16 = (uint)(ppppppcVar32 != (code ******)0x0) | (uint)pppppppcVar28 |\n                       (uint)pppppppcVar29;\n            }\n            local_dc = param_4;\n            if ((int)param_4 < (int)pppppppcVar25) {\n              local_150 = (code *******)0x1;\n              param_6 = pppppppcVar36;\n            }\n            else if ((int)pppppppcVar26 < (int)param_4) {\n              local_150 = (code *******)0x1;\n              param_4 = (code *******)(uint)((int)param_5 < (int)param_4);\n              param_6 = pppppppcVar36;\n            }\n            else {\n              pppppppcVar36 = (code *******)&local_dc;\n              if ((code *******)(uint)((int)param_5 < (int)param_4) != (code *******)0x0) {\n                pppppppcVar36 = (code *******)0x0;\n              }\n              pcVar4 = (code *)(PTR_DAT_000799a4 + -0x2b7c);\n              piVar5 = (int *)(PTR_s_nt0_000795b8 + (uVar16 - 4) * 4 + 0x6e38);\nLAB_00055b44:\n              if (uVar16 - 4 < 5) {\n                    \n                    \n                pppppppcVar29 = (code *******)(*(code *)(&_gp_1 + *piVar5))();\n                return pppppppcVar29;\n              }\n              param_5 = &local_b4;\n              pppppppcVar28 = pppppppcVar33;\n              while( true ) {\n                param_4 = local_dc;\n                pppppppcVar33 = (code *******)((int)local_dc - local_9c);\n                pppppppcVar30 = param_9;\n                pppppppcVar31 = pppppppcVar2;\n                param_6 = local_148;\n                unaff_s4 = param_3;\n                unaff_s5 = pppppppcVar24;\n                unaff_s7 = pppppppcVar26;\n                if (local_94 <= pppppppcVar33) {\n                  pppppppcVar29 = local_dc;\n                  local_150 = (code *******)(*pcVar4)(param_5);\n                  pppppppcVar33 = pppppppcVar28;\n                  if (local_150 != (code *******)0x0) goto LAB_000557e4;\n                  pppppppcVar33 = (code *******)((int)param_4 - local_9c);\n                }\n                if ((int)param_4 < (int)param_3) {\n                  uVar7 = (uint)(byte)*(code *)((int)pppppppcVar33 + (int)local_b0);\n                }\n                else {\n                  uVar7 = 0;\n                }\n                param_4 = (code *******)((int)param_4 + (int)pppppppcVar24);\n                if (*(code *)((int)local_148 + uVar7) != (code)0x0) break;\n                pppppppcVar33 = pppppppcVar28;\n                local_dc = param_4;\n                if ((int)param_4 < (int)pppppppcVar25) {\n                  local_150 = (code *******)0x1;\n                  goto LAB_000557e4;\n                }\n                if ((code *******)(uint)((int)pppppppcVar26 < (int)param_4) != (code *******)0x0) {\n                  local_150 = (code *******)0x1;\n                  param_4 = (code *******)(uint)((int)pppppppcVar26 < (int)param_4);\n                  goto LAB_000557e4;\n                }\n              }\n              while( true ) {\n                pppppppcVar29 = local_dc;\n                pppppppcVar30 = param_9;\n                pppppppcVar6 = (code *******)(*pcVar4)(&local_b4);\n                pppppppcVar14 = local_60;\n                pppppppcVar42 = local_8c;\n                pppppppcVar33 = pppppppcVar28;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar6 != (code *******)0x0) goto LAB_000557e4;\n                if (((ppppppcVar35 != (code ******)0x1) && (local_98 != (code *******)0x0)) &&\n                   (*local_ac == -1)) goto LAB_00055b1c;\n                local_3c = 0;\n                local_48 = 0;\n                local_4c = (code *******)0x0;\n                local_138 = local_8c;\n                local_d8 = (code *******)0x0;\n                unaff_s7 = (code *******)local_60[9];\n                pppppppcVar30 = local_5c;\n                param_4 = pppppppcVar14;\n                if (((uint)unaff_s7[0xd] & 0x1000000) == 0) break;\n                pppppppcVar29 = (code *******)((int)local_8c + -1);\n                pppppppcVar33 = (code *******)FUN_00049110(&local_b4);\n                if (((uint)pppppppcVar33 & 1) == 0) {\n                  if (pppppppcVar33 == (code *******)0x0) break;\n                  if (((uint)pppppppcVar33 & 6) == 6) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xc];\n                    goto LAB_00054d1c;\n                  }\n                  if (((uint)pppppppcVar33 & 2) != 0) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xb];\n                    goto LAB_00054d1c;\n                  }\n                  pppppppcVar28 = pppppppcVar33;\n                  if (((uint)pppppppcVar33 & 4) == 0) break;\n                  pppppppcVar30 = (code *******)unaff_s7[10];\n                  pppppppcVar29 = pppppppcVar14;\n                  unaff_s7 = (code *******)FUN_0004ae34(&local_d8);\n                  pppppppcVar28 = pppppppcVar33;\n                  if (unaff_s7 != (code *******)0x0) break;\n                  if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                }\n                else {\n                  unaff_s7 = (code *******)pppppppcVar14[10];\nLAB_00054d1c:\n                  pppppppcVar28 = (code *******)PTR_s_nt0_000795b8;\n                  if (unaff_s7 != (code *******)0x0) break;\n                }\n                pppppppcVar28 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                local_dc = (code *******)\n                           (*(code *)PTR___assert_fail_000799f8)\n                                     (PTR_s_nt0_000795b8 + 0x71a0,pppppppcVar29,0x435);\n                if (local_dc == pppppppcVar26) {\n                  if ((int)local_dc < (int)param_3) {\n                    uVar7 = (uint)(byte)*(code *)((int)local_dc + (int)param_2);\n                  }\n                  else {\n                    uVar7 = 0;\n                  }\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    uVar7 = (uint)*(byte *)((int)ppppppcVar32 + uVar7);\n                  }\n                  if (*(code *)((int)local_148 + uVar7) == (code)0x0) {\n                    local_150 = (code *******)0x1;\n                    pppppppcVar30 = param_9;\n                    pppppppcVar33 = pppppppcVar28;\n                    goto LAB_000557e4;\n                  }\n                }\n              }\n              pppppppcVar33 = pppppppcVar28;\n              bVar1 = pppppppcVar36 != (code *******)0x0;\n              if ((local_50 == (code *******)0x0) ||\n                 (local_50[(int)pppppppcVar42] = (code ******)unaff_s7,\n                 pppppppcVar14[0x13] == (code ******)0x0)) {\nLAB_00054d50:\n                if ((int)unaff_s7[0xd] << 4 < 0) {\n                  if ((((uint)unaff_s7[0xd] & 0x1000000) == 0) ||\n                     (pppppppcVar29 = unaff_s7, pppppppcVar30 = pppppppcVar42,\n                     iVar18 = FUN_00049440(&local_b4), iVar18 != 0)) {\n                    unaff_s8 = pppppppcVar42;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                  }\n                  else {\n                    pppppppcVar42 = (code *******)0xffffffff;\n                    pppppppcVar28 = (code *******)0x0;\n                  }\n                }\n                else {\n                  pppppppcVar42 = (code *******)0xffffffff;\n                  pppppppcVar28 = (code *******)0x0;\n                }\n                pcVar8 = (code *)(PTR_DAT_000799a4 + -0x7144);\n                pcVar9 = (code *)(PTR_DAT_000799a4 + -0x1980);\n                pcVar10 = (code *)(PTR_DAT_000799a4 + -0x2f9c);\n                unaff_s8 = pppppppcVar42;\n                local_144 = pppppppcVar36;\n                while( true ) {\n                  uVar44 = CONCAT44(local_98,local_84);\n                  unaff_s5 = (code *******)((int)local_8c + 1);\n                  pppppppcVar29 = local_8c;\n                  if ((int)local_7c <= (int)local_8c) break;\n                  if (((int)local_90 <= (int)unaff_s5) && ((int)local_90 < (int)local_84))\n                  goto LAB_00054e94;\n                  if ((int)local_98 <= (int)unaff_s5) {\n                    while ((int)((ulonglong)uVar44 >> 0x20) < (int)uVar44) {\nLAB_00054e94:\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 2);\n                      local_d8 = (code *******)(*pcVar8)(&local_b4);\n                      if (local_d8 == (code *******)0x0) break;\n                      pppppppcVar14 = param_4;\n                      if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                      pppppppcVar33 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                      pppppppcVar30 = (code *******)0x46c;\n                      pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                      uVar44 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0);\n                      pppppppcVar28 = pppppppcVar38;\n                    }\n                  }\n                  pppppppcVar42 = local_60;\n                  if ((int)unaff_s7[0xd] << 5 < 0) {\n                    pppppppcVar31 = pppppppcVar42;\n                    if (0 < (int)unaff_s7[2]) {\n                      pcVar11 = (code *)(PTR_DAT_000799a4 + -0x6fdc);\n                      pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6ef0);\n                      param_6 = (code *******)0x0;\n                      do {\n                        param_5 = (code *******)unaff_s7[3][(int)param_6];\n                        ppppppcVar39 = *pppppppcVar42;\n                        pppppcVar13 = ppppppcVar39[(int)param_5 * 2 + 1];\n                        if (((uint)pppppcVar13 & 0x800) != 0) {\n                          if (((uint)pppppcVar13 & 0xffc000) != 0) {\n                            pppppppcVar29 = local_8c;\n                            uVar19 = (*pcVar12)(&local_b4,local_8c,local_5c);\n                            uVar7 = (uint)((int)ppppppcVar39[(int)param_5 * 2 + 1] << 8) >> 0x16;\n                            if ((uVar7 & 4) == 0) {\n                              uVar27 = uVar19 & 1;\n                              if ((uVar7 & 8) != 0) goto joined_r0x00054f40;\n                            }\n                            else {\n                              uVar27 = uVar7 & 8;\n                              if ((uVar19 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                              if (uVar27 != 0) goto LAB_000550a4;\n                            }\n                            if ((((uVar7 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                               (((uVar7 & 0x80) != 0 &&\n                                (pppppppcVar33 = local_8c, (uVar19 & 8) == 0)))) goto LAB_000550a4;\n                          }\n                          pppppppcVar30 = &local_b4;\n                          pppppppcVar29 = param_5;\n                          pppppppcVar33 = local_8c;\n                          iVar18 = (*pcVar10)(pppppppcVar42);\n                          if (iVar18 != 0) {\n                            pppppppcVar14 = (code *******)((int)local_8c + iVar18);\n                            if (iVar18 <= local_3c) {\n                              iVar18 = local_3c;\n                            }\n                            pppppppcVar29 = pppppppcVar14;\n                            local_3c = iVar18;\n                            local_d4 = (code *******)(*pcVar11)(&local_b4);\n                            pppppppcVar15 = local_d4;\n                            if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                            pppppppcVar30 =\n                                 (code *******)\n                                 (pppppppcVar42[6] + (int)pppppppcVar42[3][(int)param_5] * 3);\n                            unaff_s4 = (code *******)((int)pppppppcVar14 * 4);\n                            param_5 = local_50 + (int)pppppppcVar14;\n                            if (*param_5 == (code ******)0x0) {\n                              local_d0 = (code *******)*pppppppcVar30;\n                              local_cc = (code *******)pppppppcVar30[1];\n                              local_c8 = (code *******)pppppppcVar30[2];\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *param_5 = ppppppcVar39;\n                            }\n                            else {\n                              pppppppcVar29 = (code *******)(*param_5)[10];\n                              local_d4 = (code *******)FUN_000484bc(&local_d0);\n                              pppppppcVar15 = local_d4;\n                              if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar15 = local_50 + (int)pppppppcVar14;\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *pppppppcVar15 = ppppppcVar39;\n                              (*(code *)PTR_free_00079c24)(local_c8);\n                            }\n                            unaff_s4 = local_50 + (int)pppppppcVar14;\n                            if ((*unaff_s4 == (code ******)0x0) &&\n                               (pppppppcVar15 = local_d4, local_d4 != (code *******)0x0))\n                            goto LAB_00055e44;\n                          }\n                        }\nLAB_000550a4:\n                        param_6 = (code *******)((int)param_6 + 1);\n                      } while ((int)param_6 < (int)unaff_s7[2]);\n                    }\n                    local_d8 = (code *******)0x0;\n                  }\n                  uVar7 = (uint)(byte)*(code *)((int)local_8c + (int)local_b0);\n                  local_8c = (code *******)((int)local_8c + 1);\n                  do {\n                    if (unaff_s7[0xb] != (code ******)0x0) {\n                      pppppppcVar30 = (code *******)unaff_s7[0xb][uVar7];\nLAB_000553a0:\n                      pppppppcVar14 = pppppppcVar30;\n                      if (local_50 != (code *******)0x0) goto LAB_000553ac;\n                      goto LAB_000553cc;\n                    }\n                    pppppppcVar31 = (code *******)unaff_s7[0xc];\n                    if (pppppppcVar31 != (code *******)0x0) {\n                      pppppppcVar29 = (code *******)((int)local_8c + -1);\n                      uVar19 = FUN_00049110(&local_b4);\n                      if ((uVar19 & 1) == 0) {\n                        pppppppcVar30 = (code *******)pppppppcVar31[uVar7];\n                      }\n                      else {\n                        pppppppcVar31 = pppppppcVar31 + uVar7 + 0x100;\n                        pppppppcVar30 = (code *******)*pppppppcVar31;\n                      }\n                      goto LAB_000553a0;\n                    }\n                    pppppppcVar29 = unaff_s7;\n                    pppppppcVar30 = local_5c;\n                    iVar18 = (*pcVar9)(local_60);\n                  } while (iVar18 != 0);\n                  local_d8 = (code *******)0xc;\n                  pppppppcVar15 = local_d8;\nLAB_00055e44:\n                  local_d8 = pppppppcVar15;\n                  param_4 = (code *******)0x0;\n                  if (local_50 == (code *******)0x0) {\n                    pppppppcVar14 = param_4;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    break;\n                  }\n                  pppppppcVar30 = (code *******)0x0;\nLAB_000553ac:\n                  pppppppcVar29 = &local_b4;\n                  pppppppcVar14 = (code *******)FUN_00053684(&local_d8);\nLAB_000553cc:\n                  param_4 = pppppppcVar14;\n                  if (pppppppcVar14 == (code *******)0x0) {\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    if ((local_50 == (code *******)0x0) ||\n                       ((pppppppcVar28 != (code *******)0x0 && (pppppppcVar34 == (code *******)0x0))\n                       )) break;\n                    param_6 = &local_b4;\n                    param_5 = (code *******)&local_d8;\n                    pppppppcVar31 = (code *******)(PTR_DAT_000799a4 + 0x3684);\n                    do {\n                      pppppppcVar15 = local_50 + (int)local_8c;\n                      pppppppcVar42 = local_8c;\n                      do {\n                        pppppppcVar42 = (code *******)((int)pppppppcVar42 + 1);\n                        pppppppcVar29 = local_4c;\n                        param_4 = pppppppcVar14;\n                        if ((int)local_4c < (int)pppppppcVar42) goto LAB_00055da8;\n                        local_8c = (code *******)((int)local_8c + 1);\n                        pppppppcVar15 = pppppppcVar15 + 1;\n                      } while (*pppppppcVar15 == (code ******)0x0);\n                      pppppppcVar30 = (code *******)0x0;\n                      pppppppcVar29 = param_6;\n                      param_4 = (code *******)(*(code *)pppppppcVar31)(param_5);\n                      if (local_d8 != (code *******)0x0) {\n                        if (param_4 == (code *******)0x0) goto LAB_00055da8;\n                        break;\n                      }\n                      pppppppcVar29 = local_4c;\n                    } while (param_4 == (code *******)0x0);\n                  }\n                  pppppppcVar15 = (code *******)((uint)unaff_s7 ^ (uint)param_4);\n                  pppppppcVar42 = unaff_s7;\n                  pppppppcVar14 = local_138;\n                  if ((bVar1) &&\n                     (pppppppcVar42 = pppppppcVar15, pppppppcVar14 = unaff_s5,\n                     pppppppcVar15 != (code *******)0x0)) {\n                    bVar1 = false;\n                    pppppppcVar14 = local_138;\n                  }\n                  local_138 = pppppppcVar14;\n                  unaff_s7 = param_4;\n                  if ((((uint)param_4[0xd] & 0x8000000) != 0) &&\n                     ((((uint)param_4[0xd] & 0x1000000) == 0 ||\n                      (pppppppcVar29 = param_4, pppppppcVar30 = local_8c,\n                      iVar18 = FUN_00049440(&local_b4), iVar18 != 0)))) {\n                    unaff_s7 = pppppppcVar42;\n                    unaff_s8 = local_8c;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                    local_144 = (code *******)0x0;\n                    unaff_s7 = param_4;\n                  }\n                }\nLAB_00055da8:\n                if (local_144 != (code *******)0x0) {\n                  *local_144 = (code ******)((int)local_138 + (int)*local_144);\n                }\n              }\n              else {\n                param_4 = unaff_s7 + 1;\n                pppppppcVar30 = (code *******)0x0;\n                pppppppcVar29 = param_4;\n                local_d8 = (code *******)FUN_00047a44(&local_b4);\n                unaff_s8 = local_d8;\n                if (local_d8 == (code *******)0x0) {\n                  if (((uint)unaff_s7[0xd] & 0x2000000) == 0) {\n                    pppppppcVar29 = param_4;\n                    bVar1 = false;\n                  }\n                  else {\n                    pppppppcVar29 = param_4;\n                    local_d8 = (code *******)FUN_00052d84(&local_b4);\n                    unaff_s8 = local_d8;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055dbc;\n                    bVar1 = false;\n                  }\n                  goto LAB_00054d50;\n                }\n              }\nLAB_00055dbc:\n              if (unaff_s8 == (code *******)0xffffffff) {\nLAB_00055b04:\n                FUN_0004b7e8(&local_b4);\nLAB_00055b1c:\n                local_dc = (code *******)((int)pppppppcVar24 + (int)local_dc);\n                if ((int)pppppppcVar25 <= (int)local_dc) goto code_r0x00055b38;\n                local_150 = (code *******)0x1;\n                goto LAB_000557e4;\n              }\n              if (unaff_s8 == (code *******)&SUB_fffffffe) {\n                local_150 = (code *******)0xc;\n                goto LAB_000557e4;\n              }\n              local_58 = unaff_s8;\n              if (((uint)param_1[7] & 0x8000000) == 0) {\n                if (pppppppcVar3 < (code *******)0x2) {\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055c08;\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                else {\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                if (pppppppcVar3 < (code *******)0x2) {\nLAB_00055c6c:\n                  pppppppcVar28 = pppppppcVar33;\n                  unaff_s4 = local_60;\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055548;\n                }\n                else {\n                  cVar23 = *(code *)(pppppppcVar38 + 0x16);\nLAB_00055c20:\n                  pppppppcVar28 = pppppppcVar33;\n                  if (-1 < (char)cVar23) goto LAB_00055c6c;\n                }\n                pppppppcVar31 = local_54;\n                pppppppcVar42 = local_60;\n                unaff_s4 = pppppppcVar42;\n                if (unaff_s8 < (code *******)0x3fffffff) {\n                  param_4 = (code *******)((int)((int)unaff_s8 + 1) * 4);\n                  unaff_s5 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                  if (unaff_s5 == (code *******)0x0) {\nLAB_00055b9c:\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    local_150 = (code *******)0xc;\n                    pppppppcVar33 = pppppppcVar28;\n                  }\n                  else {\n                    pppppppcVar29 = (code *******)&local_d0;\n                    if (pppppppcVar42[0x13] == (code ******)0x0) {\n                      local_cc = (code *******)0x0;\n                      local_c8 = pppppppcVar31;\n                      local_c0 = 0;\n                      local_bc = 0;\n                      local_b8 = 0;\n                      local_d0 = unaff_s5;\n                      local_c4 = unaff_s8;\n                      param_5 = (code *******)FUN_0005421c(&local_b4);\n                      (*(code *)PTR_free_00079c24)(local_b8);\n                      if (param_5 == (code *******)0x0) {\n                        param_4 = (code *******)*unaff_s5;\n                        if (param_4 == (code *******)0x0) {\nLAB_00055b70:\n                          (*(code *)PTR_free_00079c24)(unaff_s5);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          pppppppcVar33 = pppppppcVar28;\n                          goto LAB_00055b04;\n                        }\nLAB_00055528:\n                        (*(code *)PTR_free_00079c24)(local_50);\n                        pppppppcVar33 = pppppppcVar28;\n                        unaff_s4 = pppppppcVar42;\n                        local_58 = unaff_s8;\n                        local_54 = pppppppcVar31;\n                        local_50 = unaff_s5;\n                        goto LAB_00055548;\n                      }\nLAB_00055acc:\n                      param_4 = (code *******)0x0;\n                      pppppppcVar33 = pppppppcVar28;\n                      unaff_s4 = pppppppcVar42;\n                    }\n                    else {\n                      param_4 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                      if (param_4 == (code *******)0x0) goto LAB_00055b9c;\n                      unaff_s7 = (code *******)&local_d0;\n                      pcVar8 = (code *)(PTR_DAT_000799a4 + 0x421c);\n                      pcVar9 = (code *)(PTR_DAT_000799a4 + -0x6bc0);\n                      pppppppcVar33 = pppppppcVar28;\n                      while( true ) {\n                        pppppppcVar28 = (code *******)((int)unaff_s8 + 1);\n                        param_6 = (code *******)((int)pppppppcVar28 * 4);\n                        pppppppcVar30 = param_6;\n                        (*(code *)PTR_memset_00079b00)(param_4,0);\n                        local_c0 = 0;\n                        local_bc = 0;\n                        local_b8 = 0;\n                        pppppppcVar29 = unaff_s7;\n                        local_d0 = unaff_s5;\n                        local_cc = param_4;\n                        local_c8 = pppppppcVar31;\n                        local_c4 = unaff_s8;\n                        param_5 = (code *******)(*pcVar8)(&local_b4);\n                        (*(code *)PTR_free_00079c24)(local_b8);\n                        unaff_s4 = pppppppcVar28;\n                        if (param_5 != (code *******)0x0) break;\n                        if ((*unaff_s5 != (code ******)0x0) ||\n                           (param_6 = param_6 + -1, *param_4 != (code ******)0x0)) {\n                          pppppppcVar29 = unaff_s5;\n                          pppppppcVar30 = param_4;\n                          param_5 = (code *******)FUN_000520d0(pppppppcVar42);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          if (param_5 != (code *******)0x0) goto LAB_00055acc;\n                          goto LAB_00055528;\n                        }\n                        param_6 = (code *******)((int)local_50 + (int)param_6);\n                        do {\n                          while( true ) {\n                            unaff_s8 = (code *******)((int)unaff_s8 + -1);\n                            if ((int)unaff_s8 < 0) goto LAB_00055b70;\n                            pppppppcVar29 = (code *******)param_6[-1];\n                            if (pppppppcVar29 != (code *******)0x0) break;\n                            param_6 = param_6 + -1;\n                          }\n                          param_6 = param_6 + -1;\n                        } while (((uint)pppppppcVar29[0xd] & 0x8000000) == 0);\n                        pppppppcVar31 = (code *******)(*pcVar9)(&local_b4,pppppppcVar29,unaff_s8);\n                        pppppppcVar33 = pppppppcVar28;\n                      }\n                    }\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    (*(code *)PTR_free_00079c24)(param_4);\n                    local_150 = param_5;\n                    if (param_5 == (code *******)0x1) goto LAB_00055b04;\n                  }\n                }\n                else {\n                  local_150 = (code *******)0xc;\n                  pppppppcVar33 = pppppppcVar28;\n                }\n                goto LAB_000557e4;\n              }\n              if (pppppppcVar38[0x13] != (code ******)0x0) {\n                pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                pppppppcVar30 = unaff_s8;\n                local_54 = (code *******)FUN_00049440(&local_b4);\n                goto LAB_00055c6c;\n              }\nLAB_00055c08:\n              if ((((uint)param_1[7] & 0x8000000) == 0) && ((code *******)0x1 < pppppppcVar3)) {\n                cVar23 = *(code *)(pppppppcVar38 + 0x16);\n                goto LAB_00055c20;\n              }\nLAB_00055548:\n              if (pppppppcVar3 == (code *******)0x0) goto LAB_000557e4;\n              if (pppppppcVar3 < (code *******)0x2) {\n                *param_8 = (code ******)0x0;\n                param_8[1] = (code ******)local_58;\n                goto LAB_000555ac;\n              }\n              pppppppcVar29 = param_8 + 2;\n              do {\n                pppppppcVar29[1] = (code ******)0xffffffff;\n                *pppppppcVar29 = (code ******)0xffffffff;\n                pppppppcVar29 = pppppppcVar29 + 2;\n              } while (pppppppcVar29 != param_8 + (int)pppppppcVar3 * 2);\n              *param_8 = (code ******)0x0;\n              param_8[1] = (code ******)local_58;\n              if (((uint)param_1[7] & 0x8000000) != 0) {\nLAB_000555ac:\n                pppppppcVar33 = param_8;\n                do {\n                  pppppppcVar29 = (code *******)*pppppppcVar33;\n                  if (pppppppcVar29 != (code *******)0xffffffff) {\n                    if (local_68 != '\0') {\n                      pppppppcVar34 = local_94;\n                      if (pppppppcVar29 != local_98) {\n                        pppppppcVar34 = *(code ********)(local_a8 + (int)pppppppcVar29 * 4);\n                      }\n                      *pppppppcVar33 = (code ******)pppppppcVar34;\n                      pppppppcVar29 = local_94;\n                      if (local_98 != (code *******)pppppppcVar33[1]) {\n                        pppppppcVar29 = *(code ********)(local_a8 + (int)pppppppcVar33[1] * 4);\n                      }\n                      pppppppcVar33[1] = (code ******)pppppppcVar29;\n                    }\n                    *pppppppcVar33 = (code ******)((int)local_dc + (int)*pppppppcVar33);\n                    pppppppcVar29 = (code *******)((int)local_dc + (int)pppppppcVar33[1]);\n                    pppppppcVar33[1] = (code ******)pppppppcVar29;\n                  }\n                  pppppppcVar33 = pppppppcVar33 + 2;\n                } while (pppppppcVar33 != param_8 + (int)pppppppcVar3 * 2);\n                if (0 < local_118) {\n                  pppppppcVar33 = param_8 + (int)pppppppcVar3 * 2;\n                  do {\n                    *pppppppcVar33 = (code ******)0xffffffff;\n                    pppppppcVar33[1] = (code ******)0xffffffff;\n                    pppppppcVar33 = pppppppcVar33 + 2;\n                  } while (pppppppcVar33 != param_8 + (int)param_7 * 2);\n                }\n                pppppppcVar30 = local_dc;\n                pppppppcVar33 = param_8;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar38[0x21] != (code ******)0x0) {\n                  pppppppcVar30 = (code *******)((int)pppppppcVar3 + -1);\n                  pppppppcVar34 = (code *******)0x0;\n                  pppppppcVar3 = param_8;\n                  while( true ) {\n                    pppppppcVar29 = (code *******)((int)pppppppcVar34 * 4);\n                    if (pppppppcVar30 == pppppppcVar34) break;\n                    if (*(code ********)((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) !=\n                        pppppppcVar34) {\n                      pppppppcVar3[2] =\n                           param_8[(int)((int)*(code ********)\n                                               ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1)\n                                   * 2];\n                      pppppppcVar3[3] =\n                           param_8[((int)*(code ******)\n                                          ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1) * 2 +\n                                   1];\n                    }\n                    pppppppcVar34 = (code *******)((int)pppppppcVar34 + 1);\n                    pppppppcVar3 = pppppppcVar3 + 2;\n                  }\n                }\n                goto LAB_000557e4;\n              }\n              if ((char)*(code *)(pppppppcVar38 + 0x16) < '\0') {\n                local_168 = (uint)(0 < (int)pppppppcVar38[0x13]);\n              }\n              else {\n                local_168 = 0;\n              }\n              pppppppcVar29 = &local_b4;\n              pppppppcVar30 = pppppppcVar3;\n              pppppppcVar33 = param_8;\n              local_150 = (code *******)FUN_0004f4a0(param_1);\n              if (local_150 == (code *******)0x0) goto LAB_000555ac;\n            }\n          }\n          else if (local_90 < 0x3fffffff) {\n            local_50 = (code *******)(*(code *)PTR_malloc_00079b54)((local_90 + 1) * 4);\n            if (local_50 != (code *******)0x0) goto LAB_00055a40;\n            local_150 = (code *******)0xc;\n            param_6 = pppppppcVar36;\n          }\n          else {\n            local_150 = (code *******)0xc;\n            param_6 = pppppppcVar36;\n          }\n        }\n        else {\n          unaff_s5 = (code *******)((int)ppppppcVar35 * 8);\n          if (pppppppcVar36 < (code *******)0xccccccd) {\n            unaff_s4 = (code *******)(*(code *)PTR_malloc_00079b54)((int)ppppppcVar35 * 0x28);\n            local_40 = unaff_s4;\n            local_30 = (*(code *)PTR_malloc_00079b54)(unaff_s5);\n            if ((unaff_s4 != (code *******)0x0) && (local_30 != 0)) goto LAB_000559f0;\n          }\n          local_150 = (code *******)0xc;\n          param_6 = pppppppcVar36;\n        }\nLAB_000557e4:\n        (*(code *)PTR_free_00079c24)(local_50);\n        param_1 = pppppppcVar30;\n        if (pppppppcVar38[0x13] != (code ******)0x0) {\n          FUN_0004b7e8(&local_b4);\n          (*(code *)PTR_free_00079c24)(local_30);\n          (*(code *)PTR_free_00079c24)(local_40);\n          param_1 = pppppppcVar30;\n        }\n        FUN_0004b2bc(&local_b4);\n        pppppppcStack_1a0 = param_4;\n        pppppppcStack_19c = pppppppcVar31;\n      }" else (compound_statement "{\n        param_5 = pppppppcVar3;\n        pppppppcVar3 = (code *******)((int)param_7 - local_118);\n        if (pppppppcVar3 == (code *******)0x0) {\n          pppppppcVar34 = (code *******)(uint)(pppppppcVar38[0x13] != (code ******)0x0);\n        }\n        else {\n          pppppppcVar34 = (code *******)0x1;\n        }\n        ppppppcVar32 = param_1[5];\n        local_6c = (byte)((uint)((int)param_1[3] << 9) >> 0x1f);\n        local_64 = (code *******)pppppppcVar38[0x17];\n        pppppppcVar31 = (code *******)((int)pppppppcVar38[2] + 1);\n        if ((int)pppppppcVar38[2] + 1 < (int)local_64) {\n          pppppppcVar31 = local_64;\n        }\n        pppppppcVar30 = (code *******)(uint)((int)param_3 + 1 < (int)pppppppcVar31);\n        pppppppcVar33 = (code *******)0x1;\n        local_69 = local_6c;\n        if (ppppppcVar32 != (code ******)0x0) {\n          local_69 = 1;\n        }\n        local_6b = (byte)((uint)((int)pppppppcVar38[0x16] << 2) >> 0x1f);\n        local_6a = (byte)((uint)((int)pppppppcVar38[0x16] << 3) >> 0x1f);\n        pppppppcVar29 = (code *******)((int)param_3 + 1);\n        if (pppppppcVar30 == (code *******)0x0) {\n          pppppppcVar29 = pppppppcVar31;\n        }\n        local_b4 = param_2;\n        local_88 = param_3;\n        local_84 = param_3;\n        local_80 = param_3;\n        local_7c = param_3;\n        local_74 = ppppppcVar32;\n        local_150 = (code *******)FUN_00046d2c(&local_b4);\n        pppppppcVar31 = pppppppcVar34;\n        param_6 = param_6;\n        if (local_150 != (code *******)0x0) goto LAB_000557e4;\n        local_70 = pppppppcVar38 + 0x18;\n        local_66 = (byte)((uint)((int)pppppppcVar38[0x16] << 4) >> 0x1f);\n        pppppppcVar2 = (code *******)0x0;\n        local_98 = pppppppcVar2;\n        if ((local_69 == 0) && (local_b0 = param_2, (int)pppppppcVar38[0x17] < 2)) {\n          local_98 = param_3;\n        }\n        local_7c = param_6;\n        local_80 = param_6;\n        local_67 = (byte)((uint)((int)param_1[7] << 7) >> 0x1f);\n        ppppppcVar35 = pppppppcVar38[0x13];\n        pppppppcVar36 = (code *******)((int)ppppppcVar35 * 2);\n        local_5c = param_9;\n        local_58 = (code *******)0xffffffff;\n        local_94 = local_98;\n        if ((int)pppppppcVar36 < 1) {\nLAB_000559f0:\n          local_3c = 1;\n          local_44 = pppppppcVar36;\n          local_34 = pppppppcVar36;\n          if ((pppppppcVar3 < (code *******)0x2) && (((uint)pppppppcVar38[0x16] & 0x40000000) == 0))\n          {\n            local_50 = (code *******)0x0;\nLAB_00055a40:\n            local_78 = 6;\n            if (((uint)param_9 & 1) != 0) {\n              local_78 = 4;\n            }\n            pppppppcVar24 = (code *******)0x1;\n            pppppppcVar25 = param_4;\n            if ((int)param_5 < (int)param_4) {\n              pppppppcVar24 = (code *******)0xffffffff;\n              pppppppcVar25 = param_5;\n            }\n            pppppppcVar26 = param_5;\n            if ((int)param_5 <= (int)param_4) {\n              pppppppcVar26 = param_4;\n            }\n            ppppppcVar35 = pppppppcVar38[0x17];\n            uVar16 = 8;\n            if (local_148 != (code *******)0x0) {\n              if (ppppppcVar35 == (code ******)0x1) {\n                pppppppcVar28 = (code *******)0x4;\n              }\n              else {\n                pppppppcVar28 = pppppppcVar2;\n                if ((-1 < (int)param_1[3] << 9) && (ppppppcVar32 == (code ******)0x0)) {\n                  pppppppcVar28 = (code *******)0x4;\n                }\n              }\n              pppppppcVar29 = (code *******)0x0;\n              if ((int)param_4 <= (int)param_5) {\n                pppppppcVar29 = (code *******)0x2;\n              }\n              uVar16 = (uint)(ppppppcVar32 != (code ******)0x0) | (uint)pppppppcVar28 |\n                       (uint)pppppppcVar29;\n            }\n            local_dc = param_4;\n            if ((int)param_4 < (int)pppppppcVar25) {\n              local_150 = (code *******)0x1;\n              param_6 = pppppppcVar36;\n            }\n            else if ((int)pppppppcVar26 < (int)param_4) {\n              local_150 = (code *******)0x1;\n              param_4 = (code *******)(uint)((int)param_5 < (int)param_4);\n              param_6 = pppppppcVar36;\n            }\n            else {\n              pppppppcVar36 = (code *******)&local_dc;\n              if ((code *******)(uint)((int)param_5 < (int)param_4) != (code *******)0x0) {\n                pppppppcVar36 = (code *******)0x0;\n              }\n              pcVar4 = (code *)(PTR_DAT_000799a4 + -0x2b7c);\n              piVar5 = (int *)(PTR_s_nt0_000795b8 + (uVar16 - 4) * 4 + 0x6e38);\nLAB_00055b44:\n              if (uVar16 - 4 < 5) {\n                    \n                    \n                pppppppcVar29 = (code *******)(*(code *)(&_gp_1 + *piVar5))();\n                return pppppppcVar29;\n              }\n              param_5 = &local_b4;\n              pppppppcVar28 = pppppppcVar33;\n              while( true ) {\n                param_4 = local_dc;\n                pppppppcVar33 = (code *******)((int)local_dc - local_9c);\n                pppppppcVar30 = param_9;\n                pppppppcVar31 = pppppppcVar2;\n                param_6 = local_148;\n                unaff_s4 = param_3;\n                unaff_s5 = pppppppcVar24;\n                unaff_s7 = pppppppcVar26;\n                if (local_94 <= pppppppcVar33) {\n                  pppppppcVar29 = local_dc;\n                  local_150 = (code *******)(*pcVar4)(param_5);\n                  pppppppcVar33 = pppppppcVar28;\n                  if (local_150 != (code *******)0x0) goto LAB_000557e4;\n                  pppppppcVar33 = (code *******)((int)param_4 - local_9c);\n                }\n                if ((int)param_4 < (int)param_3) {\n                  uVar7 = (uint)(byte)*(code *)((int)pppppppcVar33 + (int)local_b0);\n                }\n                else {\n                  uVar7 = 0;\n                }\n                param_4 = (code *******)((int)param_4 + (int)pppppppcVar24);\n                if (*(code *)((int)local_148 + uVar7) != (code)0x0) break;\n                pppppppcVar33 = pppppppcVar28;\n                local_dc = param_4;\n                if ((int)param_4 < (int)pppppppcVar25) {\n                  local_150 = (code *******)0x1;\n                  goto LAB_000557e4;\n                }\n                if ((code *******)(uint)((int)pppppppcVar26 < (int)param_4) != (code *******)0x0) {\n                  local_150 = (code *******)0x1;\n                  param_4 = (code *******)(uint)((int)pppppppcVar26 < (int)param_4);\n                  goto LAB_000557e4;\n                }\n              }\n              while( true ) {\n                pppppppcVar29 = local_dc;\n                pppppppcVar30 = param_9;\n                pppppppcVar6 = (code *******)(*pcVar4)(&local_b4);\n                pppppppcVar14 = local_60;\n                pppppppcVar42 = local_8c;\n                pppppppcVar33 = pppppppcVar28;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar6 != (code *******)0x0) goto LAB_000557e4;\n                if (((ppppppcVar35 != (code ******)0x1) && (local_98 != (code *******)0x0)) &&\n                   (*local_ac == -1)) goto LAB_00055b1c;\n                local_3c = 0;\n                local_48 = 0;\n                local_4c = (code *******)0x0;\n                local_138 = local_8c;\n                local_d8 = (code *******)0x0;\n                unaff_s7 = (code *******)local_60[9];\n                pppppppcVar30 = local_5c;\n                param_4 = pppppppcVar14;\n                if (((uint)unaff_s7[0xd] & 0x1000000) == 0) break;\n                pppppppcVar29 = (code *******)((int)local_8c + -1);\n                pppppppcVar33 = (code *******)FUN_00049110(&local_b4);\n                if (((uint)pppppppcVar33 & 1) == 0) {\n                  if (pppppppcVar33 == (code *******)0x0) break;\n                  if (((uint)pppppppcVar33 & 6) == 6) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xc];\n                    goto LAB_00054d1c;\n                  }\n                  if (((uint)pppppppcVar33 & 2) != 0) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xb];\n                    goto LAB_00054d1c;\n                  }\n                  pppppppcVar28 = pppppppcVar33;\n                  if (((uint)pppppppcVar33 & 4) == 0) break;\n                  pppppppcVar30 = (code *******)unaff_s7[10];\n                  pppppppcVar29 = pppppppcVar14;\n                  unaff_s7 = (code *******)FUN_0004ae34(&local_d8);\n                  pppppppcVar28 = pppppppcVar33;\n                  if (unaff_s7 != (code *******)0x0) break;\n                  if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                }\n                else {\n                  unaff_s7 = (code *******)pppppppcVar14[10];\nLAB_00054d1c:\n                  pppppppcVar28 = (code *******)PTR_s_nt0_000795b8;\n                  if (unaff_s7 != (code *******)0x0) break;\n                }\n                pppppppcVar28 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                local_dc = (code *******)\n                           (*(code *)PTR___assert_fail_000799f8)\n                                     (PTR_s_nt0_000795b8 + 0x71a0,pppppppcVar29,0x435);\n                if (local_dc == pppppppcVar26) {\n                  if ((int)local_dc < (int)param_3) {\n                    uVar7 = (uint)(byte)*(code *)((int)local_dc + (int)param_2);\n                  }\n                  else {\n                    uVar7 = 0;\n                  }\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    uVar7 = (uint)*(byte *)((int)ppppppcVar32 + uVar7);\n                  }\n                  if (*(code *)((int)local_148 + uVar7) == (code)0x0) {\n                    local_150 = (code *******)0x1;\n                    pppppppcVar30 = param_9;\n                    pppppppcVar33 = pppppppcVar28;\n                    goto LAB_000557e4;\n                  }\n                }\n              }\n              pppppppcVar33 = pppppppcVar28;\n              bVar1 = pppppppcVar36 != (code *******)0x0;\n              if ((local_50 == (code *******)0x0) ||\n                 (local_50[(int)pppppppcVar42] = (code ******)unaff_s7,\n                 pppppppcVar14[0x13] == (code ******)0x0)) {\nLAB_00054d50:\n                if ((int)unaff_s7[0xd] << 4 < 0) {\n                  if ((((uint)unaff_s7[0xd] & 0x1000000) == 0) ||\n                     (pppppppcVar29 = unaff_s7, pppppppcVar30 = pppppppcVar42,\n                     iVar18 = FUN_00049440(&local_b4), iVar18 != 0)) {\n                    unaff_s8 = pppppppcVar42;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                  }\n                  else {\n                    pppppppcVar42 = (code *******)0xffffffff;\n                    pppppppcVar28 = (code *******)0x0;\n                  }\n                }\n                else {\n                  pppppppcVar42 = (code *******)0xffffffff;\n                  pppppppcVar28 = (code *******)0x0;\n                }\n                pcVar8 = (code *)(PTR_DAT_000799a4 + -0x7144);\n                pcVar9 = (code *)(PTR_DAT_000799a4 + -0x1980);\n                pcVar10 = (code *)(PTR_DAT_000799a4 + -0x2f9c);\n                unaff_s8 = pppppppcVar42;\n                local_144 = pppppppcVar36;\n                while( true ) {\n                  uVar44 = CONCAT44(local_98,local_84);\n                  unaff_s5 = (code *******)((int)local_8c + 1);\n                  pppppppcVar29 = local_8c;\n                  if ((int)local_7c <= (int)local_8c) break;\n                  if (((int)local_90 <= (int)unaff_s5) && ((int)local_90 < (int)local_84))\n                  goto LAB_00054e94;\n                  if ((int)local_98 <= (int)unaff_s5) {\n                    while ((int)((ulonglong)uVar44 >> 0x20) < (int)uVar44) {\nLAB_00054e94:\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 2);\n                      local_d8 = (code *******)(*pcVar8)(&local_b4);\n                      if (local_d8 == (code *******)0x0) break;\n                      pppppppcVar14 = param_4;\n                      if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                      pppppppcVar33 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                      pppppppcVar30 = (code *******)0x46c;\n                      pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                      uVar44 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0);\n                      pppppppcVar28 = pppppppcVar38;\n                    }\n                  }\n                  pppppppcVar42 = local_60;\n                  if ((int)unaff_s7[0xd] << 5 < 0) {\n                    pppppppcVar31 = pppppppcVar42;\n                    if (0 < (int)unaff_s7[2]) {\n                      pcVar11 = (code *)(PTR_DAT_000799a4 + -0x6fdc);\n                      pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6ef0);\n                      param_6 = (code *******)0x0;\n                      do {\n                        param_5 = (code *******)unaff_s7[3][(int)param_6];\n                        ppppppcVar39 = *pppppppcVar42;\n                        pppppcVar13 = ppppppcVar39[(int)param_5 * 2 + 1];\n                        if (((uint)pppppcVar13 & 0x800) != 0) {\n                          if (((uint)pppppcVar13 & 0xffc000) != 0) {\n                            pppppppcVar29 = local_8c;\n                            uVar19 = (*pcVar12)(&local_b4,local_8c,local_5c);\n                            uVar7 = (uint)((int)ppppppcVar39[(int)param_5 * 2 + 1] << 8) >> 0x16;\n                            if ((uVar7 & 4) == 0) {\n                              uVar27 = uVar19 & 1;\n                              if ((uVar7 & 8) != 0) goto joined_r0x00054f40;\n                            }\n                            else {\n                              uVar27 = uVar7 & 8;\n                              if ((uVar19 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                              if (uVar27 != 0) goto LAB_000550a4;\n                            }\n                            if ((((uVar7 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                               (((uVar7 & 0x80) != 0 &&\n                                (pppppppcVar33 = local_8c, (uVar19 & 8) == 0)))) goto LAB_000550a4;\n                          }\n                          pppppppcVar30 = &local_b4;\n                          pppppppcVar29 = param_5;\n                          pppppppcVar33 = local_8c;\n                          iVar18 = (*pcVar10)(pppppppcVar42);\n                          if (iVar18 != 0) {\n                            pppppppcVar14 = (code *******)((int)local_8c + iVar18);\n                            if (iVar18 <= local_3c) {\n                              iVar18 = local_3c;\n                            }\n                            pppppppcVar29 = pppppppcVar14;\n                            local_3c = iVar18;\n                            local_d4 = (code *******)(*pcVar11)(&local_b4);\n                            pppppppcVar15 = local_d4;\n                            if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                            pppppppcVar30 =\n                                 (code *******)\n                                 (pppppppcVar42[6] + (int)pppppppcVar42[3][(int)param_5] * 3);\n                            unaff_s4 = (code *******)((int)pppppppcVar14 * 4);\n                            param_5 = local_50 + (int)pppppppcVar14;\n                            if (*param_5 == (code ******)0x0) {\n                              local_d0 = (code *******)*pppppppcVar30;\n                              local_cc = (code *******)pppppppcVar30[1];\n                              local_c8 = (code *******)pppppppcVar30[2];\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *param_5 = ppppppcVar39;\n                            }\n                            else {\n                              pppppppcVar29 = (code *******)(*param_5)[10];\n                              local_d4 = (code *******)FUN_000484bc(&local_d0);\n                              pppppppcVar15 = local_d4;\n                              if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar15 = local_50 + (int)pppppppcVar14;\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *pppppppcVar15 = ppppppcVar39;\n                              (*(code *)PTR_free_00079c24)(local_c8);\n                            }\n                            unaff_s4 = local_50 + (int)pppppppcVar14;\n                            if ((*unaff_s4 == (code ******)0x0) &&\n                               (pppppppcVar15 = local_d4, local_d4 != (code *******)0x0))\n                            goto LAB_00055e44;\n                          }\n                        }\nLAB_000550a4:\n                        param_6 = (code *******)((int)param_6 + 1);\n                      } while ((int)param_6 < (int)unaff_s7[2]);\n                    }\n                    local_d8 = (code *******)0x0;\n                  }\n                  uVar7 = (uint)(byte)*(code *)((int)local_8c + (int)local_b0);\n                  local_8c = (code *******)((int)local_8c + 1);\n                  do {\n                    if (unaff_s7[0xb] != (code ******)0x0) {\n                      pppppppcVar30 = (code *******)unaff_s7[0xb][uVar7];\nLAB_000553a0:\n                      pppppppcVar14 = pppppppcVar30;\n                      if (local_50 != (code *******)0x0) goto LAB_000553ac;\n                      goto LAB_000553cc;\n                    }\n                    pppppppcVar31 = (code *******)unaff_s7[0xc];\n                    if (pppppppcVar31 != (code *******)0x0) {\n                      pppppppcVar29 = (code *******)((int)local_8c + -1);\n                      uVar19 = FUN_00049110(&local_b4);\n                      if ((uVar19 & 1) == 0) {\n                        pppppppcVar30 = (code *******)pppppppcVar31[uVar7];\n                      }\n                      else {\n                        pppppppcVar31 = pppppppcVar31 + uVar7 + 0x100;\n                        pppppppcVar30 = (code *******)*pppppppcVar31;\n                      }\n                      goto LAB_000553a0;\n                    }\n                    pppppppcVar29 = unaff_s7;\n                    pppppppcVar30 = local_5c;\n                    iVar18 = (*pcVar9)(local_60);\n                  } while (iVar18 != 0);\n                  local_d8 = (code *******)0xc;\n                  pppppppcVar15 = local_d8;\nLAB_00055e44:\n                  local_d8 = pppppppcVar15;\n                  param_4 = (code *******)0x0;\n                  if (local_50 == (code *******)0x0) {\n                    pppppppcVar14 = param_4;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    break;\n                  }\n                  pppppppcVar30 = (code *******)0x0;\nLAB_000553ac:\n                  pppppppcVar29 = &local_b4;\n                  pppppppcVar14 = (code *******)FUN_00053684(&local_d8);\nLAB_000553cc:\n                  param_4 = pppppppcVar14;\n                  if (pppppppcVar14 == (code *******)0x0) {\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    if ((local_50 == (code *******)0x0) ||\n                       ((pppppppcVar28 != (code *******)0x0 && (pppppppcVar34 == (code *******)0x0))\n                       )) break;\n                    param_6 = &local_b4;\n                    param_5 = (code *******)&local_d8;\n                    pppppppcVar31 = (code *******)(PTR_DAT_000799a4 + 0x3684);\n                    do {\n                      pppppppcVar15 = local_50 + (int)local_8c;\n                      pppppppcVar42 = local_8c;\n                      do {\n                        pppppppcVar42 = (code *******)((int)pppppppcVar42 + 1);\n                        pppppppcVar29 = local_4c;\n                        param_4 = pppppppcVar14;\n                        if ((int)local_4c < (int)pppppppcVar42) goto LAB_00055da8;\n                        local_8c = (code *******)((int)local_8c + 1);\n                        pppppppcVar15 = pppppppcVar15 + 1;\n                      } while (*pppppppcVar15 == (code ******)0x0);\n                      pppppppcVar30 = (code *******)0x0;\n                      pppppppcVar29 = param_6;\n                      param_4 = (code *******)(*(code *)pppppppcVar31)(param_5);\n                      if (local_d8 != (code *******)0x0) {\n                        if (param_4 == (code *******)0x0) goto LAB_00055da8;\n                        break;\n                      }\n                      pppppppcVar29 = local_4c;\n                    } while (param_4 == (code *******)0x0);\n                  }\n                  pppppppcVar15 = (code *******)((uint)unaff_s7 ^ (uint)param_4);\n                  pppppppcVar42 = unaff_s7;\n                  pppppppcVar14 = local_138;\n                  if ((bVar1) &&\n                     (pppppppcVar42 = pppppppcVar15, pppppppcVar14 = unaff_s5,\n                     pppppppcVar15 != (code *******)0x0)) {\n                    bVar1 = false;\n                    pppppppcVar14 = local_138;\n                  }\n                  local_138 = pppppppcVar14;\n                  unaff_s7 = param_4;\n                  if ((((uint)param_4[0xd] & 0x8000000) != 0) &&\n                     ((((uint)param_4[0xd] & 0x1000000) == 0 ||\n                      (pppppppcVar29 = param_4, pppppppcVar30 = local_8c,\n                      iVar18 = FUN_00049440(&local_b4), iVar18 != 0)))) {\n                    unaff_s7 = pppppppcVar42;\n                    unaff_s8 = local_8c;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                    local_144 = (code *******)0x0;\n                    unaff_s7 = param_4;\n                  }\n                }\nLAB_00055da8:\n                if (local_144 != (code *******)0x0) {\n                  *local_144 = (code ******)((int)local_138 + (int)*local_144);\n                }\n              }\n              else {\n                param_4 = unaff_s7 + 1;\n                pppppppcVar30 = (code *******)0x0;\n                pppppppcVar29 = param_4;\n                local_d8 = (code *******)FUN_00047a44(&local_b4);\n                unaff_s8 = local_d8;\n                if (local_d8 == (code *******)0x0) {\n                  if (((uint)unaff_s7[0xd] & 0x2000000) == 0) {\n                    pppppppcVar29 = param_4;\n                    bVar1 = false;\n                  }\n                  else {\n                    pppppppcVar29 = param_4;\n                    local_d8 = (code *******)FUN_00052d84(&local_b4);\n                    unaff_s8 = local_d8;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055dbc;\n                    bVar1 = false;\n                  }\n                  goto LAB_00054d50;\n                }\n              }\nLAB_00055dbc:\n              if (unaff_s8 == (code *******)0xffffffff) {\nLAB_00055b04:\n                FUN_0004b7e8(&local_b4);\nLAB_00055b1c:\n                local_dc = (code *******)((int)pppppppcVar24 + (int)local_dc);\n                if ((int)pppppppcVar25 <= (int)local_dc) goto code_r0x00055b38;\n                local_150 = (code *******)0x1;\n                goto LAB_000557e4;\n              }\n              if (unaff_s8 == (code *******)&SUB_fffffffe) {\n                local_150 = (code *******)0xc;\n                goto LAB_000557e4;\n              }\n              local_58 = unaff_s8;\n              if (((uint)param_1[7] & 0x8000000) == 0) {\n                if (pppppppcVar3 < (code *******)0x2) {\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055c08;\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                else {\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                if (pppppppcVar3 < (code *******)0x2) {\nLAB_00055c6c:\n                  pppppppcVar28 = pppppppcVar33;\n                  unaff_s4 = local_60;\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055548;\n                }\n                else {\n                  cVar23 = *(code *)(pppppppcVar38 + 0x16);\nLAB_00055c20:\n                  pppppppcVar28 = pppppppcVar33;\n                  if (-1 < (char)cVar23) goto LAB_00055c6c;\n                }\n                pppppppcVar31 = local_54;\n                pppppppcVar42 = local_60;\n                unaff_s4 = pppppppcVar42;\n                if (unaff_s8 < (code *******)0x3fffffff) {\n                  param_4 = (code *******)((int)((int)unaff_s8 + 1) * 4);\n                  unaff_s5 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                  if (unaff_s5 == (code *******)0x0) {\nLAB_00055b9c:\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    local_150 = (code *******)0xc;\n                    pppppppcVar33 = pppppppcVar28;\n                  }\n                  else {\n                    pppppppcVar29 = (code *******)&local_d0;\n                    if (pppppppcVar42[0x13] == (code ******)0x0) {\n                      local_cc = (code *******)0x0;\n                      local_c8 = pppppppcVar31;\n                      local_c0 = 0;\n                      local_bc = 0;\n                      local_b8 = 0;\n                      local_d0 = unaff_s5;\n                      local_c4 = unaff_s8;\n                      param_5 = (code *******)FUN_0005421c(&local_b4);\n                      (*(code *)PTR_free_00079c24)(local_b8);\n                      if (param_5 == (code *******)0x0) {\n                        param_4 = (code *******)*unaff_s5;\n                        if (param_4 == (code *******)0x0) {\nLAB_00055b70:\n                          (*(code *)PTR_free_00079c24)(unaff_s5);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          pppppppcVar33 = pppppppcVar28;\n                          goto LAB_00055b04;\n                        }\nLAB_00055528:\n                        (*(code *)PTR_free_00079c24)(local_50);\n                        pppppppcVar33 = pppppppcVar28;\n                        unaff_s4 = pppppppcVar42;\n                        local_58 = unaff_s8;\n                        local_54 = pppppppcVar31;\n                        local_50 = unaff_s5;\n                        goto LAB_00055548;\n                      }\nLAB_00055acc:\n                      param_4 = (code *******)0x0;\n                      pppppppcVar33 = pppppppcVar28;\n                      unaff_s4 = pppppppcVar42;\n                    }\n                    else {\n                      param_4 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                      if (param_4 == (code *******)0x0) goto LAB_00055b9c;\n                      unaff_s7 = (code *******)&local_d0;\n                      pcVar8 = (code *)(PTR_DAT_000799a4 + 0x421c);\n                      pcVar9 = (code *)(PTR_DAT_000799a4 + -0x6bc0);\n                      pppppppcVar33 = pppppppcVar28;\n                      while( true ) {\n                        pppppppcVar28 = (code *******)((int)unaff_s8 + 1);\n                        param_6 = (code *******)((int)pppppppcVar28 * 4);\n                        pppppppcVar30 = param_6;\n                        (*(code *)PTR_memset_00079b00)(param_4,0);\n                        local_c0 = 0;\n                        local_bc = 0;\n                        local_b8 = 0;\n                        pppppppcVar29 = unaff_s7;\n                        local_d0 = unaff_s5;\n                        local_cc = param_4;\n                        local_c8 = pppppppcVar31;\n                        local_c4 = unaff_s8;\n                        param_5 = (code *******)(*pcVar8)(&local_b4);\n                        (*(code *)PTR_free_00079c24)(local_b8);\n                        unaff_s4 = pppppppcVar28;\n                        if (param_5 != (code *******)0x0) break;\n                        if ((*unaff_s5 != (code ******)0x0) ||\n                           (param_6 = param_6 + -1, *param_4 != (code ******)0x0)) {\n                          pppppppcVar29 = unaff_s5;\n                          pppppppcVar30 = param_4;\n                          param_5 = (code *******)FUN_000520d0(pppppppcVar42);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          if (param_5 != (code *******)0x0) goto LAB_00055acc;\n                          goto LAB_00055528;\n                        }\n                        param_6 = (code *******)((int)local_50 + (int)param_6);\n                        do {\n                          while( true ) {\n                            unaff_s8 = (code *******)((int)unaff_s8 + -1);\n                            if ((int)unaff_s8 < 0) goto LAB_00055b70;\n                            pppppppcVar29 = (code *******)param_6[-1];\n                            if (pppppppcVar29 != (code *******)0x0) break;\n                            param_6 = param_6 + -1;\n                          }\n                          param_6 = param_6 + -1;\n                        } while (((uint)pppppppcVar29[0xd] & 0x8000000) == 0);\n                        pppppppcVar31 = (code *******)(*pcVar9)(&local_b4,pppppppcVar29,unaff_s8);\n                        pppppppcVar33 = pppppppcVar28;\n                      }\n                    }\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    (*(code *)PTR_free_00079c24)(param_4);\n                    local_150 = param_5;\n                    if (param_5 == (code *******)0x1) goto LAB_00055b04;\n                  }\n                }\n                else {\n                  local_150 = (code *******)0xc;\n                  pppppppcVar33 = pppppppcVar28;\n                }\n                goto LAB_000557e4;\n              }\n              if (pppppppcVar38[0x13] != (code ******)0x0) {\n                pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                pppppppcVar30 = unaff_s8;\n                local_54 = (code *******)FUN_00049440(&local_b4);\n                goto LAB_00055c6c;\n              }\nLAB_00055c08:\n              if ((((uint)param_1[7] & 0x8000000) == 0) && ((code *******)0x1 < pppppppcVar3)) {\n                cVar23 = *(code *)(pppppppcVar38 + 0x16);\n                goto LAB_00055c20;\n              }\nLAB_00055548:\n              if (pppppppcVar3 == (code *******)0x0) goto LAB_000557e4;\n              if (pppppppcVar3 < (code *******)0x2) {\n                *param_8 = (code ******)0x0;\n                param_8[1] = (code ******)local_58;\n                goto LAB_000555ac;\n              }\n              pppppppcVar29 = param_8 + 2;\n              do {\n                pppppppcVar29[1] = (code ******)0xffffffff;\n                *pppppppcVar29 = (code ******)0xffffffff;\n                pppppppcVar29 = pppppppcVar29 + 2;\n              } while (pppppppcVar29 != param_8 + (int)pppppppcVar3 * 2);\n              *param_8 = (code ******)0x0;\n              param_8[1] = (code ******)local_58;\n              if (((uint)param_1[7] & 0x8000000) != 0) {\nLAB_000555ac:\n                pppppppcVar33 = param_8;\n                do {\n                  pppppppcVar29 = (code *******)*pppppppcVar33;\n                  if (pppppppcVar29 != (code *******)0xffffffff) {\n                    if (local_68 != '\0') {\n                      pppppppcVar34 = local_94;\n                      if (pppppppcVar29 != local_98) {\n                        pppppppcVar34 = *(code ********)(local_a8 + (int)pppppppcVar29 * 4);\n                      }\n                      *pppppppcVar33 = (code ******)pppppppcVar34;\n                      pppppppcVar29 = local_94;\n                      if (local_98 != (code *******)pppppppcVar33[1]) {\n                        pppppppcVar29 = *(code ********)(local_a8 + (int)pppppppcVar33[1] * 4);\n                      }\n                      pppppppcVar33[1] = (code ******)pppppppcVar29;\n                    }\n                    *pppppppcVar33 = (code ******)((int)local_dc + (int)*pppppppcVar33);\n                    pppppppcVar29 = (code *******)((int)local_dc + (int)pppppppcVar33[1]);\n                    pppppppcVar33[1] = (code ******)pppppppcVar29;\n                  }\n                  pppppppcVar33 = pppppppcVar33 + 2;\n                } while (pppppppcVar33 != param_8 + (int)pppppppcVar3 * 2);\n                if (0 < local_118) {\n                  pppppppcVar33 = param_8 + (int)pppppppcVar3 * 2;\n                  do {\n                    *pppppppcVar33 = (code ******)0xffffffff;\n                    pppppppcVar33[1] = (code ******)0xffffffff;\n                    pppppppcVar33 = pppppppcVar33 + 2;\n                  } while (pppppppcVar33 != param_8 + (int)param_7 * 2);\n                }\n                pppppppcVar30 = local_dc;\n                pppppppcVar33 = param_8;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar38[0x21] != (code ******)0x0) {\n                  pppppppcVar30 = (code *******)((int)pppppppcVar3 + -1);\n                  pppppppcVar34 = (code *******)0x0;\n                  pppppppcVar3 = param_8;\n                  while( true ) {\n                    pppppppcVar29 = (code *******)((int)pppppppcVar34 * 4);\n                    if (pppppppcVar30 == pppppppcVar34) break;\n                    if (*(code ********)((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) !=\n                        pppppppcVar34) {\n                      pppppppcVar3[2] =\n                           param_8[(int)((int)*(code ********)\n                                               ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1)\n                                   * 2];\n                      pppppppcVar3[3] =\n                           param_8[((int)*(code ******)\n                                          ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1) * 2 +\n                                   1];\n                    }\n                    pppppppcVar34 = (code *******)((int)pppppppcVar34 + 1);\n                    pppppppcVar3 = pppppppcVar3 + 2;\n                  }\n                }\n                goto LAB_000557e4;\n              }\n              if ((char)*(code *)(pppppppcVar38 + 0x16) < '\0') {\n                local_168 = (uint)(0 < (int)pppppppcVar38[0x13]);\n              }\n              else {\n                local_168 = 0;\n              }\n              pppppppcVar29 = &local_b4;\n              pppppppcVar30 = pppppppcVar3;\n              pppppppcVar33 = param_8;\n              local_150 = (code *******)FUN_0004f4a0(param_1);\n              if (local_150 == (code *******)0x0) goto LAB_000555ac;\n            }\n          }\n          else if (local_90 < 0x3fffffff) {\n            local_50 = (code *******)(*(code *)PTR_malloc_00079b54)((local_90 + 1) * 4);\n            if (local_50 != (code *******)0x0) goto LAB_00055a40;\n            local_150 = (code *******)0xc;\n            param_6 = pppppppcVar36;\n          }\n          else {\n            local_150 = (code *******)0xc;\n            param_6 = pppppppcVar36;\n          }\n        }\n        else {\n          unaff_s5 = (code *******)((int)ppppppcVar35 * 8);\n          if (pppppppcVar36 < (code *******)0xccccccd) {\n            unaff_s4 = (code *******)(*(code *)PTR_malloc_00079b54)((int)ppppppcVar35 * 0x28);\n            local_40 = unaff_s4;\n            local_30 = (*(code *)PTR_malloc_00079b54)(unaff_s5);\n            if ((unaff_s4 != (code *******)0x0) && (local_30 != 0)) goto LAB_000559f0;\n          }\n          local_150 = (code *******)0xc;\n          param_6 = pppppppcVar36;\n        }\nLAB_000557e4:\n        (*(code *)PTR_free_00079c24)(local_50);\n        param_1 = pppppppcVar30;\n        if (pppppppcVar38[0x13] != (code ******)0x0) {\n          FUN_0004b7e8(&local_b4);\n          (*(code *)PTR_free_00079c24)(local_30);\n          (*(code *)PTR_free_00079c24)(local_40);\n          param_1 = pppppppcVar30;\n        }\n        FUN_0004b2bc(&local_b4);\n        pppppppcStack_1a0 = param_4;\n        pppppppcStack_19c = pppppppcVar31;\n      }" { (expression_statement "param_5 = pppppppcVar3;" (assignment_expression "param_5 = pppppppcVar3" identifier = identifier) ;) (expression_statement "pppppppcVar3 = (code *******)((int)param_7 - local_118);" (assignment_expression "pppppppcVar3 = (code *******)((int)param_7 - local_118)" identifier = (cast_expression "(code *******)((int)param_7 - local_118)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)param_7 - local_118)" ( (binary_expression "(int)param_7 - local_118" (cast_expression "(int)param_7" ( (type_descriptor "int" primitive_type) ) identifier) - identifier) )))) ;) (if_statement "if (pppppppcVar3 == (code *******)0x0) {\n          pppppppcVar34 = (code *******)(uint)(pppppppcVar38[0x13] != (code ******)0x0);\n        }\n        else {\n          pppppppcVar34 = (code *******)0x1;\n        }" if (parenthesized_expression "(pppppppcVar3 == (code *******)0x0)" ( (binary_expression "pppppppcVar3 == (code *******)0x0" identifier == (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\n          pppppppcVar34 = (code *******)(uint)(pppppppcVar38[0x13] != (code ******)0x0);\n        }" { (expression_statement "pppppppcVar34 = (code *******)(uint)(pppppppcVar38[0x13] != (code ******)0x0);" (assignment_expression "pppppppcVar34 = (code *******)(uint)(pppppppcVar38[0x13] != (code ******)0x0)" identifier = (cast_expression "(code *******)(uint)(pppppppcVar38[0x13] != (code ******)0x0)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "(uint)(pppppppcVar38[0x13] != (code ******)0x0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pppppppcVar38[0x13] != (code ******)0x0)" ( (binary_expression "pppppppcVar38[0x13] != (code ******)0x0" (subscript_expression "pppppppcVar38[0x13]" identifier [ number_literal ]) != (cast_expression "(code ******)0x0" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ))))) ;) }) (else_clause "else {\n          pppppppcVar34 = (code *******)0x1;\n        }" else (compound_statement "{\n          pppppppcVar34 = (code *******)0x1;\n        }" { (expression_statement "pppppppcVar34 = (code *******)0x1;" (assignment_expression "pppppppcVar34 = (code *******)0x1" identifier = (cast_expression "(code *******)0x1" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) }))) (expression_statement "ppppppcVar32 = param_1[5];" (assignment_expression "ppppppcVar32 = param_1[5]" identifier = (subscript_expression "param_1[5]" identifier [ number_literal ])) ;) (expression_statement "local_6c = (byte)((uint)((int)param_1[3] << 9) >> 0x1f);" (assignment_expression "local_6c = (byte)((uint)((int)param_1[3] << 9) >> 0x1f)" identifier = (call_expression "(byte)((uint)((int)param_1[3] << 9) >> 0x1f)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)((int)param_1[3] << 9) >> 0x1f)" ( (binary_expression "(uint)((int)param_1[3] << 9) >> 0x1f" (call_expression "(uint)((int)param_1[3] << 9)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)param_1[3] << 9)" ( (binary_expression "(int)param_1[3] << 9" (cast_expression "(int)param_1[3]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_1[3]" identifier [ number_literal ])) << number_literal) ))) >> number_literal) )))) ;) (expression_statement "local_64 = (code *******)pppppppcVar38[0x17];" (assignment_expression "local_64 = (code *******)pppppppcVar38[0x17]" identifier = (cast_expression "(code *******)pppppppcVar38[0x17]" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (subscript_expression "pppppppcVar38[0x17]" identifier [ number_literal ]))) ;) (expression_statement "pppppppcVar31 = (code *******)((int)pppppppcVar38[2] + 1);" (assignment_expression "pppppppcVar31 = (code *******)((int)pppppppcVar38[2] + 1)" identifier = (cast_expression "(code *******)((int)pppppppcVar38[2] + 1)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)pppppppcVar38[2] + 1)" ( (binary_expression "(int)pppppppcVar38[2] + 1" (cast_expression "(int)pppppppcVar38[2]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "pppppppcVar38[2]" identifier [ number_literal ])) + number_literal) )))) ;) (if_statement "if ((int)pppppppcVar38[2] + 1 < (int)local_64) {\n          pppppppcVar31 = local_64;\n        }" if (parenthesized_expression "((int)pppppppcVar38[2] + 1 < (int)local_64)" ( (binary_expression "(int)pppppppcVar38[2] + 1 < (int)local_64" (binary_expression "(int)pppppppcVar38[2] + 1" (cast_expression "(int)pppppppcVar38[2]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "pppppppcVar38[2]" identifier [ number_literal ])) + number_literal) < (cast_expression "(int)local_64" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          pppppppcVar31 = local_64;\n        }" { (expression_statement "pppppppcVar31 = local_64;" (assignment_expression "pppppppcVar31 = local_64" identifier = identifier) ;) })) (expression_statement "pppppppcVar30 = (code *******)(uint)((int)param_3 + 1 < (int)pppppppcVar31);" (assignment_expression "pppppppcVar30 = (code *******)(uint)((int)param_3 + 1 < (int)pppppppcVar31)" identifier = (cast_expression "(code *******)(uint)((int)param_3 + 1 < (int)pppppppcVar31)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "(uint)((int)param_3 + 1 < (int)pppppppcVar31)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)param_3 + 1 < (int)pppppppcVar31)" ( (binary_expression "(int)param_3 + 1 < (int)pppppppcVar31" (binary_expression "(int)param_3 + 1" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) < (cast_expression "(int)pppppppcVar31" ( (type_descriptor "int" primitive_type) ) identifier)) ))))) ;) (expression_statement "pppppppcVar33 = (code *******)0x1;" (assignment_expression "pppppppcVar33 = (code *******)0x1" identifier = (cast_expression "(code *******)0x1" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "local_69 = local_6c;" (assignment_expression "local_69 = local_6c" identifier = identifier) ;) (if_statement "if (ppppppcVar32 != (code ******)0x0) {\n          local_69 = 1;\n        }" if (parenthesized_expression "(ppppppcVar32 != (code ******)0x0)" ( (binary_expression "ppppppcVar32 != (code ******)0x0" identifier != (cast_expression "(code ******)0x0" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (compound_statement "{\n          local_69 = 1;\n        }" { (expression_statement "local_69 = 1;" (assignment_expression "local_69 = 1" identifier = number_literal) ;) })) (expression_statement "local_6b = (byte)((uint)((int)pppppppcVar38[0x16] << 2) >> 0x1f);" (assignment_expression "local_6b = (byte)((uint)((int)pppppppcVar38[0x16] << 2) >> 0x1f)" identifier = (call_expression "(byte)((uint)((int)pppppppcVar38[0x16] << 2) >> 0x1f)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)((int)pppppppcVar38[0x16] << 2) >> 0x1f)" ( (binary_expression "(uint)((int)pppppppcVar38[0x16] << 2) >> 0x1f" (call_expression "(uint)((int)pppppppcVar38[0x16] << 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)pppppppcVar38[0x16] << 2)" ( (binary_expression "(int)pppppppcVar38[0x16] << 2" (cast_expression "(int)pppppppcVar38[0x16]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "pppppppcVar38[0x16]" identifier [ number_literal ])) << number_literal) ))) >> number_literal) )))) ;) (expression_statement "local_6a = (byte)((uint)((int)pppppppcVar38[0x16] << 3) >> 0x1f);" (assignment_expression "local_6a = (byte)((uint)((int)pppppppcVar38[0x16] << 3) >> 0x1f)" identifier = (call_expression "(byte)((uint)((int)pppppppcVar38[0x16] << 3) >> 0x1f)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)((int)pppppppcVar38[0x16] << 3) >> 0x1f)" ( (binary_expression "(uint)((int)pppppppcVar38[0x16] << 3) >> 0x1f" (call_expression "(uint)((int)pppppppcVar38[0x16] << 3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)pppppppcVar38[0x16] << 3)" ( (binary_expression "(int)pppppppcVar38[0x16] << 3" (cast_expression "(int)pppppppcVar38[0x16]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "pppppppcVar38[0x16]" identifier [ number_literal ])) << number_literal) ))) >> number_literal) )))) ;) (expression_statement "pppppppcVar29 = (code *******)((int)param_3 + 1);" (assignment_expression "pppppppcVar29 = (code *******)((int)param_3 + 1)" identifier = (cast_expression "(code *******)((int)param_3 + 1)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)param_3 + 1)" ( (binary_expression "(int)param_3 + 1" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if (pppppppcVar30 == (code *******)0x0) {\n          pppppppcVar29 = pppppppcVar31;\n        }" if (parenthesized_expression "(pppppppcVar30 == (code *******)0x0)" ( (binary_expression "pppppppcVar30 == (code *******)0x0" identifier == (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\n          pppppppcVar29 = pppppppcVar31;\n        }" { (expression_statement "pppppppcVar29 = pppppppcVar31;" (assignment_expression "pppppppcVar29 = pppppppcVar31" identifier = identifier) ;) })) (expression_statement "local_b4 = param_2;" (assignment_expression "local_b4 = param_2" identifier = identifier) ;) (expression_statement "local_88 = param_3;" (assignment_expression "local_88 = param_3" identifier = identifier) ;) (expression_statement "local_84 = param_3;" (assignment_expression "local_84 = param_3" identifier = identifier) ;) (expression_statement "local_80 = param_3;" (assignment_expression "local_80 = param_3" identifier = identifier) ;) (expression_statement "local_7c = param_3;" (assignment_expression "local_7c = param_3" identifier = identifier) ;) (expression_statement "local_74 = ppppppcVar32;" (assignment_expression "local_74 = ppppppcVar32" identifier = identifier) ;) (expression_statement "local_150 = (code *******)FUN_00046d2c(&local_b4);" (assignment_expression "local_150 = (code *******)FUN_00046d2c(&local_b4)" identifier = (cast_expression "(code *******)FUN_00046d2c(&local_b4)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "FUN_00046d2c(&local_b4)" identifier (argument_list "(&local_b4)" ( (pointer_expression "&local_b4" & identifier) ))))) ;) (expression_statement "pppppppcVar31 = pppppppcVar34;" (assignment_expression "pppppppcVar31 = pppppppcVar34" identifier = identifier) ;) (expression_statement "param_6 = param_6;" (assignment_expression "param_6 = param_6" identifier = identifier) ;) (if_statement "if (local_150 != (code *******)0x0) goto LAB_000557e4;" if (parenthesized_expression "(local_150 != (code *******)0x0)" ( (binary_expression "local_150 != (code *******)0x0" identifier != (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (goto_statement "goto LAB_000557e4;" goto statement_identifier ;)) (expression_statement "local_70 = pppppppcVar38 + 0x18;" (assignment_expression "local_70 = pppppppcVar38 + 0x18" identifier = (binary_expression "pppppppcVar38 + 0x18" identifier + number_literal)) ;) (expression_statement "local_66 = (byte)((uint)((int)pppppppcVar38[0x16] << 4) >> 0x1f);" (assignment_expression "local_66 = (byte)((uint)((int)pppppppcVar38[0x16] << 4) >> 0x1f)" identifier = (call_expression "(byte)((uint)((int)pppppppcVar38[0x16] << 4) >> 0x1f)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)((int)pppppppcVar38[0x16] << 4) >> 0x1f)" ( (binary_expression "(uint)((int)pppppppcVar38[0x16] << 4) >> 0x1f" (call_expression "(uint)((int)pppppppcVar38[0x16] << 4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)pppppppcVar38[0x16] << 4)" ( (binary_expression "(int)pppppppcVar38[0x16] << 4" (cast_expression "(int)pppppppcVar38[0x16]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "pppppppcVar38[0x16]" identifier [ number_literal ])) << number_literal) ))) >> number_literal) )))) ;) (expression_statement "pppppppcVar2 = (code *******)0x0;" (assignment_expression "pppppppcVar2 = (code *******)0x0" identifier = (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "local_98 = pppppppcVar2;" (assignment_expression "local_98 = pppppppcVar2" identifier = identifier) ;) (if_statement "if ((local_69 == 0) && (local_b0 = param_2, (int)pppppppcVar38[0x17] < 2)) {\n          local_98 = param_3;\n        }" if (parenthesized_expression "((local_69 == 0) && (local_b0 = param_2, (int)pppppppcVar38[0x17] < 2))" ( (binary_expression "(local_69 == 0) && (local_b0 = param_2, (int)pppppppcVar38[0x17] < 2)" (parenthesized_expression "(local_69 == 0)" ( (binary_expression "local_69 == 0" identifier == number_literal) )) && (parenthesized_expression "(local_b0 = param_2, (int)pppppppcVar38[0x17] < 2)" ( (comma_expression "local_b0 = param_2, (int)pppppppcVar38[0x17] < 2" (assignment_expression "local_b0 = param_2" identifier = identifier) , (binary_expression "(int)pppppppcVar38[0x17] < 2" (cast_expression "(int)pppppppcVar38[0x17]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "pppppppcVar38[0x17]" identifier [ number_literal ])) < number_literal)) ))) )) (compound_statement "{\n          local_98 = param_3;\n        }" { (expression_statement "local_98 = param_3;" (assignment_expression "local_98 = param_3" identifier = identifier) ;) })) (expression_statement "local_7c = param_6;" (assignment_expression "local_7c = param_6" identifier = identifier) ;) (expression_statement "local_80 = param_6;" (assignment_expression "local_80 = param_6" identifier = identifier) ;) (expression_statement "local_67 = (byte)((uint)((int)param_1[7] << 7) >> 0x1f);" (assignment_expression "local_67 = (byte)((uint)((int)param_1[7] << 7) >> 0x1f)" identifier = (call_expression "(byte)((uint)((int)param_1[7] << 7) >> 0x1f)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)((int)param_1[7] << 7) >> 0x1f)" ( (binary_expression "(uint)((int)param_1[7] << 7) >> 0x1f" (call_expression "(uint)((int)param_1[7] << 7)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)param_1[7] << 7)" ( (binary_expression "(int)param_1[7] << 7" (cast_expression "(int)param_1[7]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_1[7]" identifier [ number_literal ])) << number_literal) ))) >> number_literal) )))) ;) (expression_statement "ppppppcVar35 = pppppppcVar38[0x13];" (assignment_expression "ppppppcVar35 = pppppppcVar38[0x13]" identifier = (subscript_expression "pppppppcVar38[0x13]" identifier [ number_literal ])) ;) (expression_statement "pppppppcVar36 = (code *******)((int)ppppppcVar35 * 2);" (assignment_expression "pppppppcVar36 = (code *******)((int)ppppppcVar35 * 2)" identifier = (cast_expression "(code *******)((int)ppppppcVar35 * 2)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)ppppppcVar35 * 2)" ( (binary_expression "(int)ppppppcVar35 * 2" (cast_expression "(int)ppppppcVar35" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) )))) ;) (expression_statement "local_5c = param_9;" (assignment_expression "local_5c = param_9" identifier = identifier) ;) (expression_statement "local_58 = (code *******)0xffffffff;" (assignment_expression "local_58 = (code *******)0xffffffff" identifier = (cast_expression "(code *******)0xffffffff" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "local_94 = local_98;" (assignment_expression "local_94 = local_98" identifier = identifier) ;) (if_statement "if ((int)pppppppcVar36 < 1) {\nLAB_000559f0:\n          local_3c = 1;\n          local_44 = pppppppcVar36;\n          local_34 = pppppppcVar36;\n          if ((pppppppcVar3 < (code *******)0x2) && (((uint)pppppppcVar38[0x16] & 0x40000000) == 0))\n          {\n            local_50 = (code *******)0x0;\nLAB_00055a40:\n            local_78 = 6;\n            if (((uint)param_9 & 1) != 0) {\n              local_78 = 4;\n            }\n            pppppppcVar24 = (code *******)0x1;\n            pppppppcVar25 = param_4;\n            if ((int)param_5 < (int)param_4) {\n              pppppppcVar24 = (code *******)0xffffffff;\n              pppppppcVar25 = param_5;\n            }\n            pppppppcVar26 = param_5;\n            if ((int)param_5 <= (int)param_4) {\n              pppppppcVar26 = param_4;\n            }\n            ppppppcVar35 = pppppppcVar38[0x17];\n            uVar16 = 8;\n            if (local_148 != (code *******)0x0) {\n              if (ppppppcVar35 == (code ******)0x1) {\n                pppppppcVar28 = (code *******)0x4;\n              }\n              else {\n                pppppppcVar28 = pppppppcVar2;\n                if ((-1 < (int)param_1[3] << 9) && (ppppppcVar32 == (code ******)0x0)) {\n                  pppppppcVar28 = (code *******)0x4;\n                }\n              }\n              pppppppcVar29 = (code *******)0x0;\n              if ((int)param_4 <= (int)param_5) {\n                pppppppcVar29 = (code *******)0x2;\n              }\n              uVar16 = (uint)(ppppppcVar32 != (code ******)0x0) | (uint)pppppppcVar28 |\n                       (uint)pppppppcVar29;\n            }\n            local_dc = param_4;\n            if ((int)param_4 < (int)pppppppcVar25) {\n              local_150 = (code *******)0x1;\n              param_6 = pppppppcVar36;\n            }\n            else if ((int)pppppppcVar26 < (int)param_4) {\n              local_150 = (code *******)0x1;\n              param_4 = (code *******)(uint)((int)param_5 < (int)param_4);\n              param_6 = pppppppcVar36;\n            }\n            else {\n              pppppppcVar36 = (code *******)&local_dc;\n              if ((code *******)(uint)((int)param_5 < (int)param_4) != (code *******)0x0) {\n                pppppppcVar36 = (code *******)0x0;\n              }\n              pcVar4 = (code *)(PTR_DAT_000799a4 + -0x2b7c);\n              piVar5 = (int *)(PTR_s_nt0_000795b8 + (uVar16 - 4) * 4 + 0x6e38);\nLAB_00055b44:\n              if (uVar16 - 4 < 5) {\n                    \n                    \n                pppppppcVar29 = (code *******)(*(code *)(&_gp_1 + *piVar5))();\n                return pppppppcVar29;\n              }\n              param_5 = &local_b4;\n              pppppppcVar28 = pppppppcVar33;\n              while( true ) {\n                param_4 = local_dc;\n                pppppppcVar33 = (code *******)((int)local_dc - local_9c);\n                pppppppcVar30 = param_9;\n                pppppppcVar31 = pppppppcVar2;\n                param_6 = local_148;\n                unaff_s4 = param_3;\n                unaff_s5 = pppppppcVar24;\n                unaff_s7 = pppppppcVar26;\n                if (local_94 <= pppppppcVar33) {\n                  pppppppcVar29 = local_dc;\n                  local_150 = (code *******)(*pcVar4)(param_5);\n                  pppppppcVar33 = pppppppcVar28;\n                  if (local_150 != (code *******)0x0) goto LAB_000557e4;\n                  pppppppcVar33 = (code *******)((int)param_4 - local_9c);\n                }\n                if ((int)param_4 < (int)param_3) {\n                  uVar7 = (uint)(byte)*(code *)((int)pppppppcVar33 + (int)local_b0);\n                }\n                else {\n                  uVar7 = 0;\n                }\n                param_4 = (code *******)((int)param_4 + (int)pppppppcVar24);\n                if (*(code *)((int)local_148 + uVar7) != (code)0x0) break;\n                pppppppcVar33 = pppppppcVar28;\n                local_dc = param_4;\n                if ((int)param_4 < (int)pppppppcVar25) {\n                  local_150 = (code *******)0x1;\n                  goto LAB_000557e4;\n                }\n                if ((code *******)(uint)((int)pppppppcVar26 < (int)param_4) != (code *******)0x0) {\n                  local_150 = (code *******)0x1;\n                  param_4 = (code *******)(uint)((int)pppppppcVar26 < (int)param_4);\n                  goto LAB_000557e4;\n                }\n              }\n              while( true ) {\n                pppppppcVar29 = local_dc;\n                pppppppcVar30 = param_9;\n                pppppppcVar6 = (code *******)(*pcVar4)(&local_b4);\n                pppppppcVar14 = local_60;\n                pppppppcVar42 = local_8c;\n                pppppppcVar33 = pppppppcVar28;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar6 != (code *******)0x0) goto LAB_000557e4;\n                if (((ppppppcVar35 != (code ******)0x1) && (local_98 != (code *******)0x0)) &&\n                   (*local_ac == -1)) goto LAB_00055b1c;\n                local_3c = 0;\n                local_48 = 0;\n                local_4c = (code *******)0x0;\n                local_138 = local_8c;\n                local_d8 = (code *******)0x0;\n                unaff_s7 = (code *******)local_60[9];\n                pppppppcVar30 = local_5c;\n                param_4 = pppppppcVar14;\n                if (((uint)unaff_s7[0xd] & 0x1000000) == 0) break;\n                pppppppcVar29 = (code *******)((int)local_8c + -1);\n                pppppppcVar33 = (code *******)FUN_00049110(&local_b4);\n                if (((uint)pppppppcVar33 & 1) == 0) {\n                  if (pppppppcVar33 == (code *******)0x0) break;\n                  if (((uint)pppppppcVar33 & 6) == 6) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xc];\n                    goto LAB_00054d1c;\n                  }\n                  if (((uint)pppppppcVar33 & 2) != 0) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xb];\n                    goto LAB_00054d1c;\n                  }\n                  pppppppcVar28 = pppppppcVar33;\n                  if (((uint)pppppppcVar33 & 4) == 0) break;\n                  pppppppcVar30 = (code *******)unaff_s7[10];\n                  pppppppcVar29 = pppppppcVar14;\n                  unaff_s7 = (code *******)FUN_0004ae34(&local_d8);\n                  pppppppcVar28 = pppppppcVar33;\n                  if (unaff_s7 != (code *******)0x0) break;\n                  if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                }\n                else {\n                  unaff_s7 = (code *******)pppppppcVar14[10];\nLAB_00054d1c:\n                  pppppppcVar28 = (code *******)PTR_s_nt0_000795b8;\n                  if (unaff_s7 != (code *******)0x0) break;\n                }\n                pppppppcVar28 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                local_dc = (code *******)\n                           (*(code *)PTR___assert_fail_000799f8)\n                                     (PTR_s_nt0_000795b8 + 0x71a0,pppppppcVar29,0x435);\n                if (local_dc == pppppppcVar26) {\n                  if ((int)local_dc < (int)param_3) {\n                    uVar7 = (uint)(byte)*(code *)((int)local_dc + (int)param_2);\n                  }\n                  else {\n                    uVar7 = 0;\n                  }\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    uVar7 = (uint)*(byte *)((int)ppppppcVar32 + uVar7);\n                  }\n                  if (*(code *)((int)local_148 + uVar7) == (code)0x0) {\n                    local_150 = (code *******)0x1;\n                    pppppppcVar30 = param_9;\n                    pppppppcVar33 = pppppppcVar28;\n                    goto LAB_000557e4;\n                  }\n                }\n              }\n              pppppppcVar33 = pppppppcVar28;\n              bVar1 = pppppppcVar36 != (code *******)0x0;\n              if ((local_50 == (code *******)0x0) ||\n                 (local_50[(int)pppppppcVar42] = (code ******)unaff_s7,\n                 pppppppcVar14[0x13] == (code ******)0x0)) {\nLAB_00054d50:\n                if ((int)unaff_s7[0xd] << 4 < 0) {\n                  if ((((uint)unaff_s7[0xd] & 0x1000000) == 0) ||\n                     (pppppppcVar29 = unaff_s7, pppppppcVar30 = pppppppcVar42,\n                     iVar18 = FUN_00049440(&local_b4), iVar18 != 0)) {\n                    unaff_s8 = pppppppcVar42;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                  }\n                  else {\n                    pppppppcVar42 = (code *******)0xffffffff;\n                    pppppppcVar28 = (code *******)0x0;\n                  }\n                }\n                else {\n                  pppppppcVar42 = (code *******)0xffffffff;\n                  pppppppcVar28 = (code *******)0x0;\n                }\n                pcVar8 = (code *)(PTR_DAT_000799a4 + -0x7144);\n                pcVar9 = (code *)(PTR_DAT_000799a4 + -0x1980);\n                pcVar10 = (code *)(PTR_DAT_000799a4 + -0x2f9c);\n                unaff_s8 = pppppppcVar42;\n                local_144 = pppppppcVar36;\n                while( true ) {\n                  uVar44 = CONCAT44(local_98,local_84);\n                  unaff_s5 = (code *******)((int)local_8c + 1);\n                  pppppppcVar29 = local_8c;\n                  if ((int)local_7c <= (int)local_8c) break;\n                  if (((int)local_90 <= (int)unaff_s5) && ((int)local_90 < (int)local_84))\n                  goto LAB_00054e94;\n                  if ((int)local_98 <= (int)unaff_s5) {\n                    while ((int)((ulonglong)uVar44 >> 0x20) < (int)uVar44) {\nLAB_00054e94:\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 2);\n                      local_d8 = (code *******)(*pcVar8)(&local_b4);\n                      if (local_d8 == (code *******)0x0) break;\n                      pppppppcVar14 = param_4;\n                      if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                      pppppppcVar33 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                      pppppppcVar30 = (code *******)0x46c;\n                      pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                      uVar44 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0);\n                      pppppppcVar28 = pppppppcVar38;\n                    }\n                  }\n                  pppppppcVar42 = local_60;\n                  if ((int)unaff_s7[0xd] << 5 < 0) {\n                    pppppppcVar31 = pppppppcVar42;\n                    if (0 < (int)unaff_s7[2]) {\n                      pcVar11 = (code *)(PTR_DAT_000799a4 + -0x6fdc);\n                      pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6ef0);\n                      param_6 = (code *******)0x0;\n                      do {\n                        param_5 = (code *******)unaff_s7[3][(int)param_6];\n                        ppppppcVar39 = *pppppppcVar42;\n                        pppppcVar13 = ppppppcVar39[(int)param_5 * 2 + 1];\n                        if (((uint)pppppcVar13 & 0x800) != 0) {\n                          if (((uint)pppppcVar13 & 0xffc000) != 0) {\n                            pppppppcVar29 = local_8c;\n                            uVar19 = (*pcVar12)(&local_b4,local_8c,local_5c);\n                            uVar7 = (uint)((int)ppppppcVar39[(int)param_5 * 2 + 1] << 8) >> 0x16;\n                            if ((uVar7 & 4) == 0) {\n                              uVar27 = uVar19 & 1;\n                              if ((uVar7 & 8) != 0) goto joined_r0x00054f40;\n                            }\n                            else {\n                              uVar27 = uVar7 & 8;\n                              if ((uVar19 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                              if (uVar27 != 0) goto LAB_000550a4;\n                            }\n                            if ((((uVar7 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                               (((uVar7 & 0x80) != 0 &&\n                                (pppppppcVar33 = local_8c, (uVar19 & 8) == 0)))) goto LAB_000550a4;\n                          }\n                          pppppppcVar30 = &local_b4;\n                          pppppppcVar29 = param_5;\n                          pppppppcVar33 = local_8c;\n                          iVar18 = (*pcVar10)(pppppppcVar42);\n                          if (iVar18 != 0) {\n                            pppppppcVar14 = (code *******)((int)local_8c + iVar18);\n                            if (iVar18 <= local_3c) {\n                              iVar18 = local_3c;\n                            }\n                            pppppppcVar29 = pppppppcVar14;\n                            local_3c = iVar18;\n                            local_d4 = (code *******)(*pcVar11)(&local_b4);\n                            pppppppcVar15 = local_d4;\n                            if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                            pppppppcVar30 =\n                                 (code *******)\n                                 (pppppppcVar42[6] + (int)pppppppcVar42[3][(int)param_5] * 3);\n                            unaff_s4 = (code *******)((int)pppppppcVar14 * 4);\n                            param_5 = local_50 + (int)pppppppcVar14;\n                            if (*param_5 == (code ******)0x0) {\n                              local_d0 = (code *******)*pppppppcVar30;\n                              local_cc = (code *******)pppppppcVar30[1];\n                              local_c8 = (code *******)pppppppcVar30[2];\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *param_5 = ppppppcVar39;\n                            }\n                            else {\n                              pppppppcVar29 = (code *******)(*param_5)[10];\n                              local_d4 = (code *******)FUN_000484bc(&local_d0);\n                              pppppppcVar15 = local_d4;\n                              if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar15 = local_50 + (int)pppppppcVar14;\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *pppppppcVar15 = ppppppcVar39;\n                              (*(code *)PTR_free_00079c24)(local_c8);\n                            }\n                            unaff_s4 = local_50 + (int)pppppppcVar14;\n                            if ((*unaff_s4 == (code ******)0x0) &&\n                               (pppppppcVar15 = local_d4, local_d4 != (code *******)0x0))\n                            goto LAB_00055e44;\n                          }\n                        }\nLAB_000550a4:\n                        param_6 = (code *******)((int)param_6 + 1);\n                      } while ((int)param_6 < (int)unaff_s7[2]);\n                    }\n                    local_d8 = (code *******)0x0;\n                  }\n                  uVar7 = (uint)(byte)*(code *)((int)local_8c + (int)local_b0);\n                  local_8c = (code *******)((int)local_8c + 1);\n                  do {\n                    if (unaff_s7[0xb] != (code ******)0x0) {\n                      pppppppcVar30 = (code *******)unaff_s7[0xb][uVar7];\nLAB_000553a0:\n                      pppppppcVar14 = pppppppcVar30;\n                      if (local_50 != (code *******)0x0) goto LAB_000553ac;\n                      goto LAB_000553cc;\n                    }\n                    pppppppcVar31 = (code *******)unaff_s7[0xc];\n                    if (pppppppcVar31 != (code *******)0x0) {\n                      pppppppcVar29 = (code *******)((int)local_8c + -1);\n                      uVar19 = FUN_00049110(&local_b4);\n                      if ((uVar19 & 1) == 0) {\n                        pppppppcVar30 = (code *******)pppppppcVar31[uVar7];\n                      }\n                      else {\n                        pppppppcVar31 = pppppppcVar31 + uVar7 + 0x100;\n                        pppppppcVar30 = (code *******)*pppppppcVar31;\n                      }\n                      goto LAB_000553a0;\n                    }\n                    pppppppcVar29 = unaff_s7;\n                    pppppppcVar30 = local_5c;\n                    iVar18 = (*pcVar9)(local_60);\n                  } while (iVar18 != 0);\n                  local_d8 = (code *******)0xc;\n                  pppppppcVar15 = local_d8;\nLAB_00055e44:\n                  local_d8 = pppppppcVar15;\n                  param_4 = (code *******)0x0;\n                  if (local_50 == (code *******)0x0) {\n                    pppppppcVar14 = param_4;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    break;\n                  }\n                  pppppppcVar30 = (code *******)0x0;\nLAB_000553ac:\n                  pppppppcVar29 = &local_b4;\n                  pppppppcVar14 = (code *******)FUN_00053684(&local_d8);\nLAB_000553cc:\n                  param_4 = pppppppcVar14;\n                  if (pppppppcVar14 == (code *******)0x0) {\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    if ((local_50 == (code *******)0x0) ||\n                       ((pppppppcVar28 != (code *******)0x0 && (pppppppcVar34 == (code *******)0x0))\n                       )) break;\n                    param_6 = &local_b4;\n                    param_5 = (code *******)&local_d8;\n                    pppppppcVar31 = (code *******)(PTR_DAT_000799a4 + 0x3684);\n                    do {\n                      pppppppcVar15 = local_50 + (int)local_8c;\n                      pppppppcVar42 = local_8c;\n                      do {\n                        pppppppcVar42 = (code *******)((int)pppppppcVar42 + 1);\n                        pppppppcVar29 = local_4c;\n                        param_4 = pppppppcVar14;\n                        if ((int)local_4c < (int)pppppppcVar42) goto LAB_00055da8;\n                        local_8c = (code *******)((int)local_8c + 1);\n                        pppppppcVar15 = pppppppcVar15 + 1;\n                      } while (*pppppppcVar15 == (code ******)0x0);\n                      pppppppcVar30 = (code *******)0x0;\n                      pppppppcVar29 = param_6;\n                      param_4 = (code *******)(*(code *)pppppppcVar31)(param_5);\n                      if (local_d8 != (code *******)0x0) {\n                        if (param_4 == (code *******)0x0) goto LAB_00055da8;\n                        break;\n                      }\n                      pppppppcVar29 = local_4c;\n                    } while (param_4 == (code *******)0x0);\n                  }\n                  pppppppcVar15 = (code *******)((uint)unaff_s7 ^ (uint)param_4);\n                  pppppppcVar42 = unaff_s7;\n                  pppppppcVar14 = local_138;\n                  if ((bVar1) &&\n                     (pppppppcVar42 = pppppppcVar15, pppppppcVar14 = unaff_s5,\n                     pppppppcVar15 != (code *******)0x0)) {\n                    bVar1 = false;\n                    pppppppcVar14 = local_138;\n                  }\n                  local_138 = pppppppcVar14;\n                  unaff_s7 = param_4;\n                  if ((((uint)param_4[0xd] & 0x8000000) != 0) &&\n                     ((((uint)param_4[0xd] & 0x1000000) == 0 ||\n                      (pppppppcVar29 = param_4, pppppppcVar30 = local_8c,\n                      iVar18 = FUN_00049440(&local_b4), iVar18 != 0)))) {\n                    unaff_s7 = pppppppcVar42;\n                    unaff_s8 = local_8c;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                    local_144 = (code *******)0x0;\n                    unaff_s7 = param_4;\n                  }\n                }\nLAB_00055da8:\n                if (local_144 != (code *******)0x0) {\n                  *local_144 = (code ******)((int)local_138 + (int)*local_144);\n                }\n              }\n              else {\n                param_4 = unaff_s7 + 1;\n                pppppppcVar30 = (code *******)0x0;\n                pppppppcVar29 = param_4;\n                local_d8 = (code *******)FUN_00047a44(&local_b4);\n                unaff_s8 = local_d8;\n                if (local_d8 == (code *******)0x0) {\n                  if (((uint)unaff_s7[0xd] & 0x2000000) == 0) {\n                    pppppppcVar29 = param_4;\n                    bVar1 = false;\n                  }\n                  else {\n                    pppppppcVar29 = param_4;\n                    local_d8 = (code *******)FUN_00052d84(&local_b4);\n                    unaff_s8 = local_d8;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055dbc;\n                    bVar1 = false;\n                  }\n                  goto LAB_00054d50;\n                }\n              }\nLAB_00055dbc:\n              if (unaff_s8 == (code *******)0xffffffff) {\nLAB_00055b04:\n                FUN_0004b7e8(&local_b4);\nLAB_00055b1c:\n                local_dc = (code *******)((int)pppppppcVar24 + (int)local_dc);\n                if ((int)pppppppcVar25 <= (int)local_dc) goto code_r0x00055b38;\n                local_150 = (code *******)0x1;\n                goto LAB_000557e4;\n              }\n              if (unaff_s8 == (code *******)&SUB_fffffffe) {\n                local_150 = (code *******)0xc;\n                goto LAB_000557e4;\n              }\n              local_58 = unaff_s8;\n              if (((uint)param_1[7] & 0x8000000) == 0) {\n                if (pppppppcVar3 < (code *******)0x2) {\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055c08;\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                else {\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                if (pppppppcVar3 < (code *******)0x2) {\nLAB_00055c6c:\n                  pppppppcVar28 = pppppppcVar33;\n                  unaff_s4 = local_60;\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055548;\n                }\n                else {\n                  cVar23 = *(code *)(pppppppcVar38 + 0x16);\nLAB_00055c20:\n                  pppppppcVar28 = pppppppcVar33;\n                  if (-1 < (char)cVar23) goto LAB_00055c6c;\n                }\n                pppppppcVar31 = local_54;\n                pppppppcVar42 = local_60;\n                unaff_s4 = pppppppcVar42;\n                if (unaff_s8 < (code *******)0x3fffffff) {\n                  param_4 = (code *******)((int)((int)unaff_s8 + 1) * 4);\n                  unaff_s5 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                  if (unaff_s5 == (code *******)0x0) {\nLAB_00055b9c:\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    local_150 = (code *******)0xc;\n                    pppppppcVar33 = pppppppcVar28;\n                  }\n                  else {\n                    pppppppcVar29 = (code *******)&local_d0;\n                    if (pppppppcVar42[0x13] == (code ******)0x0) {\n                      local_cc = (code *******)0x0;\n                      local_c8 = pppppppcVar31;\n                      local_c0 = 0;\n                      local_bc = 0;\n                      local_b8 = 0;\n                      local_d0 = unaff_s5;\n                      local_c4 = unaff_s8;\n                      param_5 = (code *******)FUN_0005421c(&local_b4);\n                      (*(code *)PTR_free_00079c24)(local_b8);\n                      if (param_5 == (code *******)0x0) {\n                        param_4 = (code *******)*unaff_s5;\n                        if (param_4 == (code *******)0x0) {\nLAB_00055b70:\n                          (*(code *)PTR_free_00079c24)(unaff_s5);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          pppppppcVar33 = pppppppcVar28;\n                          goto LAB_00055b04;\n                        }\nLAB_00055528:\n                        (*(code *)PTR_free_00079c24)(local_50);\n                        pppppppcVar33 = pppppppcVar28;\n                        unaff_s4 = pppppppcVar42;\n                        local_58 = unaff_s8;\n                        local_54 = pppppppcVar31;\n                        local_50 = unaff_s5;\n                        goto LAB_00055548;\n                      }\nLAB_00055acc:\n                      param_4 = (code *******)0x0;\n                      pppppppcVar33 = pppppppcVar28;\n                      unaff_s4 = pppppppcVar42;\n                    }\n                    else {\n                      param_4 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                      if (param_4 == (code *******)0x0) goto LAB_00055b9c;\n                      unaff_s7 = (code *******)&local_d0;\n                      pcVar8 = (code *)(PTR_DAT_000799a4 + 0x421c);\n                      pcVar9 = (code *)(PTR_DAT_000799a4 + -0x6bc0);\n                      pppppppcVar33 = pppppppcVar28;\n                      while( true ) {\n                        pppppppcVar28 = (code *******)((int)unaff_s8 + 1);\n                        param_6 = (code *******)((int)pppppppcVar28 * 4);\n                        pppppppcVar30 = param_6;\n                        (*(code *)PTR_memset_00079b00)(param_4,0);\n                        local_c0 = 0;\n                        local_bc = 0;\n                        local_b8 = 0;\n                        pppppppcVar29 = unaff_s7;\n                        local_d0 = unaff_s5;\n                        local_cc = param_4;\n                        local_c8 = pppppppcVar31;\n                        local_c4 = unaff_s8;\n                        param_5 = (code *******)(*pcVar8)(&local_b4);\n                        (*(code *)PTR_free_00079c24)(local_b8);\n                        unaff_s4 = pppppppcVar28;\n                        if (param_5 != (code *******)0x0) break;\n                        if ((*unaff_s5 != (code ******)0x0) ||\n                           (param_6 = param_6 + -1, *param_4 != (code ******)0x0)) {\n                          pppppppcVar29 = unaff_s5;\n                          pppppppcVar30 = param_4;\n                          param_5 = (code *******)FUN_000520d0(pppppppcVar42);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          if (param_5 != (code *******)0x0) goto LAB_00055acc;\n                          goto LAB_00055528;\n                        }\n                        param_6 = (code *******)((int)local_50 + (int)param_6);\n                        do {\n                          while( true ) {\n                            unaff_s8 = (code *******)((int)unaff_s8 + -1);\n                            if ((int)unaff_s8 < 0) goto LAB_00055b70;\n                            pppppppcVar29 = (code *******)param_6[-1];\n                            if (pppppppcVar29 != (code *******)0x0) break;\n                            param_6 = param_6 + -1;\n                          }\n                          param_6 = param_6 + -1;\n                        } while (((uint)pppppppcVar29[0xd] & 0x8000000) == 0);\n                        pppppppcVar31 = (code *******)(*pcVar9)(&local_b4,pppppppcVar29,unaff_s8);\n                        pppppppcVar33 = pppppppcVar28;\n                      }\n                    }\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    (*(code *)PTR_free_00079c24)(param_4);\n                    local_150 = param_5;\n                    if (param_5 == (code *******)0x1) goto LAB_00055b04;\n                  }\n                }\n                else {\n                  local_150 = (code *******)0xc;\n                  pppppppcVar33 = pppppppcVar28;\n                }\n                goto LAB_000557e4;\n              }\n              if (pppppppcVar38[0x13] != (code ******)0x0) {\n                pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                pppppppcVar30 = unaff_s8;\n                local_54 = (code *******)FUN_00049440(&local_b4);\n                goto LAB_00055c6c;\n              }\nLAB_00055c08:\n              if ((((uint)param_1[7] & 0x8000000) == 0) && ((code *******)0x1 < pppppppcVar3)) {\n                cVar23 = *(code *)(pppppppcVar38 + 0x16);\n                goto LAB_00055c20;\n              }\nLAB_00055548:\n              if (pppppppcVar3 == (code *******)0x0) goto LAB_000557e4;\n              if (pppppppcVar3 < (code *******)0x2) {\n                *param_8 = (code ******)0x0;\n                param_8[1] = (code ******)local_58;\n                goto LAB_000555ac;\n              }\n              pppppppcVar29 = param_8 + 2;\n              do {\n                pppppppcVar29[1] = (code ******)0xffffffff;\n                *pppppppcVar29 = (code ******)0xffffffff;\n                pppppppcVar29 = pppppppcVar29 + 2;\n              } while (pppppppcVar29 != param_8 + (int)pppppppcVar3 * 2);\n              *param_8 = (code ******)0x0;\n              param_8[1] = (code ******)local_58;\n              if (((uint)param_1[7] & 0x8000000) != 0) {\nLAB_000555ac:\n                pppppppcVar33 = param_8;\n                do {\n                  pppppppcVar29 = (code *******)*pppppppcVar33;\n                  if (pppppppcVar29 != (code *******)0xffffffff) {\n                    if (local_68 != '\0') {\n                      pppppppcVar34 = local_94;\n                      if (pppppppcVar29 != local_98) {\n                        pppppppcVar34 = *(code ********)(local_a8 + (int)pppppppcVar29 * 4);\n                      }\n                      *pppppppcVar33 = (code ******)pppppppcVar34;\n                      pppppppcVar29 = local_94;\n                      if (local_98 != (code *******)pppppppcVar33[1]) {\n                        pppppppcVar29 = *(code ********)(local_a8 + (int)pppppppcVar33[1] * 4);\n                      }\n                      pppppppcVar33[1] = (code ******)pppppppcVar29;\n                    }\n                    *pppppppcVar33 = (code ******)((int)local_dc + (int)*pppppppcVar33);\n                    pppppppcVar29 = (code *******)((int)local_dc + (int)pppppppcVar33[1]);\n                    pppppppcVar33[1] = (code ******)pppppppcVar29;\n                  }\n                  pppppppcVar33 = pppppppcVar33 + 2;\n                } while (pppppppcVar33 != param_8 + (int)pppppppcVar3 * 2);\n                if (0 < local_118) {\n                  pppppppcVar33 = param_8 + (int)pppppppcVar3 * 2;\n                  do {\n                    *pppppppcVar33 = (code ******)0xffffffff;\n                    pppppppcVar33[1] = (code ******)0xffffffff;\n                    pppppppcVar33 = pppppppcVar33 + 2;\n                  } while (pppppppcVar33 != param_8 + (int)param_7 * 2);\n                }\n                pppppppcVar30 = local_dc;\n                pppppppcVar33 = param_8;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar38[0x21] != (code ******)0x0) {\n                  pppppppcVar30 = (code *******)((int)pppppppcVar3 + -1);\n                  pppppppcVar34 = (code *******)0x0;\n                  pppppppcVar3 = param_8;\n                  while( true ) {\n                    pppppppcVar29 = (code *******)((int)pppppppcVar34 * 4);\n                    if (pppppppcVar30 == pppppppcVar34) break;\n                    if (*(code ********)((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) !=\n                        pppppppcVar34) {\n                      pppppppcVar3[2] =\n                           param_8[(int)((int)*(code ********)\n                                               ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1)\n                                   * 2];\n                      pppppppcVar3[3] =\n                           param_8[((int)*(code ******)\n                                          ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1) * 2 +\n                                   1];\n                    }\n                    pppppppcVar34 = (code *******)((int)pppppppcVar34 + 1);\n                    pppppppcVar3 = pppppppcVar3 + 2;\n                  }\n                }\n                goto LAB_000557e4;\n              }\n              if ((char)*(code *)(pppppppcVar38 + 0x16) < '\0') {\n                local_168 = (uint)(0 < (int)pppppppcVar38[0x13]);\n              }\n              else {\n                local_168 = 0;\n              }\n              pppppppcVar29 = &local_b4;\n              pppppppcVar30 = pppppppcVar3;\n              pppppppcVar33 = param_8;\n              local_150 = (code *******)FUN_0004f4a0(param_1);\n              if (local_150 == (code *******)0x0) goto LAB_000555ac;\n            }\n          }\n          else if (local_90 < 0x3fffffff) {\n            local_50 = (code *******)(*(code *)PTR_malloc_00079b54)((local_90 + 1) * 4);\n            if (local_50 != (code *******)0x0) goto LAB_00055a40;\n            local_150 = (code *******)0xc;\n            param_6 = pppppppcVar36;\n          }\n          else {\n            local_150 = (code *******)0xc;\n            param_6 = pppppppcVar36;\n          }\n        }\n        else {\n          unaff_s5 = (code *******)((int)ppppppcVar35 * 8);\n          if (pppppppcVar36 < (code *******)0xccccccd) {\n            unaff_s4 = (code *******)(*(code *)PTR_malloc_00079b54)((int)ppppppcVar35 * 0x28);\n            local_40 = unaff_s4;\n            local_30 = (*(code *)PTR_malloc_00079b54)(unaff_s5);\n            if ((unaff_s4 != (code *******)0x0) && (local_30 != 0)) goto LAB_000559f0;\n          }\n          local_150 = (code *******)0xc;\n          param_6 = pppppppcVar36;\n        }" if (parenthesized_expression "((int)pppppppcVar36 < 1)" ( (binary_expression "(int)pppppppcVar36 < 1" (cast_expression "(int)pppppppcVar36" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\nLAB_000559f0:\n          local_3c = 1;\n          local_44 = pppppppcVar36;\n          local_34 = pppppppcVar36;\n          if ((pppppppcVar3 < (code *******)0x2) && (((uint)pppppppcVar38[0x16] & 0x40000000) == 0))\n          {\n            local_50 = (code *******)0x0;\nLAB_00055a40:\n            local_78 = 6;\n            if (((uint)param_9 & 1) != 0) {\n              local_78 = 4;\n            }\n            pppppppcVar24 = (code *******)0x1;\n            pppppppcVar25 = param_4;\n            if ((int)param_5 < (int)param_4) {\n              pppppppcVar24 = (code *******)0xffffffff;\n              pppppppcVar25 = param_5;\n            }\n            pppppppcVar26 = param_5;\n            if ((int)param_5 <= (int)param_4) {\n              pppppppcVar26 = param_4;\n            }\n            ppppppcVar35 = pppppppcVar38[0x17];\n            uVar16 = 8;\n            if (local_148 != (code *******)0x0) {\n              if (ppppppcVar35 == (code ******)0x1) {\n                pppppppcVar28 = (code *******)0x4;\n              }\n              else {\n                pppppppcVar28 = pppppppcVar2;\n                if ((-1 < (int)param_1[3] << 9) && (ppppppcVar32 == (code ******)0x0)) {\n                  pppppppcVar28 = (code *******)0x4;\n                }\n              }\n              pppppppcVar29 = (code *******)0x0;\n              if ((int)param_4 <= (int)param_5) {\n                pppppppcVar29 = (code *******)0x2;\n              }\n              uVar16 = (uint)(ppppppcVar32 != (code ******)0x0) | (uint)pppppppcVar28 |\n                       (uint)pppppppcVar29;\n            }\n            local_dc = param_4;\n            if ((int)param_4 < (int)pppppppcVar25) {\n              local_150 = (code *******)0x1;\n              param_6 = pppppppcVar36;\n            }\n            else if ((int)pppppppcVar26 < (int)param_4) {\n              local_150 = (code *******)0x1;\n              param_4 = (code *******)(uint)((int)param_5 < (int)param_4);\n              param_6 = pppppppcVar36;\n            }\n            else {\n              pppppppcVar36 = (code *******)&local_dc;\n              if ((code *******)(uint)((int)param_5 < (int)param_4) != (code *******)0x0) {\n                pppppppcVar36 = (code *******)0x0;\n              }\n              pcVar4 = (code *)(PTR_DAT_000799a4 + -0x2b7c);\n              piVar5 = (int *)(PTR_s_nt0_000795b8 + (uVar16 - 4) * 4 + 0x6e38);\nLAB_00055b44:\n              if (uVar16 - 4 < 5) {\n                    \n                    \n                pppppppcVar29 = (code *******)(*(code *)(&_gp_1 + *piVar5))();\n                return pppppppcVar29;\n              }\n              param_5 = &local_b4;\n              pppppppcVar28 = pppppppcVar33;\n              while( true ) {\n                param_4 = local_dc;\n                pppppppcVar33 = (code *******)((int)local_dc - local_9c);\n                pppppppcVar30 = param_9;\n                pppppppcVar31 = pppppppcVar2;\n                param_6 = local_148;\n                unaff_s4 = param_3;\n                unaff_s5 = pppppppcVar24;\n                unaff_s7 = pppppppcVar26;\n                if (local_94 <= pppppppcVar33) {\n                  pppppppcVar29 = local_dc;\n                  local_150 = (code *******)(*pcVar4)(param_5);\n                  pppppppcVar33 = pppppppcVar28;\n                  if (local_150 != (code *******)0x0) goto LAB_000557e4;\n                  pppppppcVar33 = (code *******)((int)param_4 - local_9c);\n                }\n                if ((int)param_4 < (int)param_3) {\n                  uVar7 = (uint)(byte)*(code *)((int)pppppppcVar33 + (int)local_b0);\n                }\n                else {\n                  uVar7 = 0;\n                }\n                param_4 = (code *******)((int)param_4 + (int)pppppppcVar24);\n                if (*(code *)((int)local_148 + uVar7) != (code)0x0) break;\n                pppppppcVar33 = pppppppcVar28;\n                local_dc = param_4;\n                if ((int)param_4 < (int)pppppppcVar25) {\n                  local_150 = (code *******)0x1;\n                  goto LAB_000557e4;\n                }\n                if ((code *******)(uint)((int)pppppppcVar26 < (int)param_4) != (code *******)0x0) {\n                  local_150 = (code *******)0x1;\n                  param_4 = (code *******)(uint)((int)pppppppcVar26 < (int)param_4);\n                  goto LAB_000557e4;\n                }\n              }\n              while( true ) {\n                pppppppcVar29 = local_dc;\n                pppppppcVar30 = param_9;\n                pppppppcVar6 = (code *******)(*pcVar4)(&local_b4);\n                pppppppcVar14 = local_60;\n                pppppppcVar42 = local_8c;\n                pppppppcVar33 = pppppppcVar28;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar6 != (code *******)0x0) goto LAB_000557e4;\n                if (((ppppppcVar35 != (code ******)0x1) && (local_98 != (code *******)0x0)) &&\n                   (*local_ac == -1)) goto LAB_00055b1c;\n                local_3c = 0;\n                local_48 = 0;\n                local_4c = (code *******)0x0;\n                local_138 = local_8c;\n                local_d8 = (code *******)0x0;\n                unaff_s7 = (code *******)local_60[9];\n                pppppppcVar30 = local_5c;\n                param_4 = pppppppcVar14;\n                if (((uint)unaff_s7[0xd] & 0x1000000) == 0) break;\n                pppppppcVar29 = (code *******)((int)local_8c + -1);\n                pppppppcVar33 = (code *******)FUN_00049110(&local_b4);\n                if (((uint)pppppppcVar33 & 1) == 0) {\n                  if (pppppppcVar33 == (code *******)0x0) break;\n                  if (((uint)pppppppcVar33 & 6) == 6) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xc];\n                    goto LAB_00054d1c;\n                  }\n                  if (((uint)pppppppcVar33 & 2) != 0) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xb];\n                    goto LAB_00054d1c;\n                  }\n                  pppppppcVar28 = pppppppcVar33;\n                  if (((uint)pppppppcVar33 & 4) == 0) break;\n                  pppppppcVar30 = (code *******)unaff_s7[10];\n                  pppppppcVar29 = pppppppcVar14;\n                  unaff_s7 = (code *******)FUN_0004ae34(&local_d8);\n                  pppppppcVar28 = pppppppcVar33;\n                  if (unaff_s7 != (code *******)0x0) break;\n                  if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                }\n                else {\n                  unaff_s7 = (code *******)pppppppcVar14[10];\nLAB_00054d1c:\n                  pppppppcVar28 = (code *******)PTR_s_nt0_000795b8;\n                  if (unaff_s7 != (code *******)0x0) break;\n                }\n                pppppppcVar28 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                local_dc = (code *******)\n                           (*(code *)PTR___assert_fail_000799f8)\n                                     (PTR_s_nt0_000795b8 + 0x71a0,pppppppcVar29,0x435);\n                if (local_dc == pppppppcVar26) {\n                  if ((int)local_dc < (int)param_3) {\n                    uVar7 = (uint)(byte)*(code *)((int)local_dc + (int)param_2);\n                  }\n                  else {\n                    uVar7 = 0;\n                  }\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    uVar7 = (uint)*(byte *)((int)ppppppcVar32 + uVar7);\n                  }\n                  if (*(code *)((int)local_148 + uVar7) == (code)0x0) {\n                    local_150 = (code *******)0x1;\n                    pppppppcVar30 = param_9;\n                    pppppppcVar33 = pppppppcVar28;\n                    goto LAB_000557e4;\n                  }\n                }\n              }\n              pppppppcVar33 = pppppppcVar28;\n              bVar1 = pppppppcVar36 != (code *******)0x0;\n              if ((local_50 == (code *******)0x0) ||\n                 (local_50[(int)pppppppcVar42] = (code ******)unaff_s7,\n                 pppppppcVar14[0x13] == (code ******)0x0)) {\nLAB_00054d50:\n                if ((int)unaff_s7[0xd] << 4 < 0) {\n                  if ((((uint)unaff_s7[0xd] & 0x1000000) == 0) ||\n                     (pppppppcVar29 = unaff_s7, pppppppcVar30 = pppppppcVar42,\n                     iVar18 = FUN_00049440(&local_b4), iVar18 != 0)) {\n                    unaff_s8 = pppppppcVar42;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                  }\n                  else {\n                    pppppppcVar42 = (code *******)0xffffffff;\n                    pppppppcVar28 = (code *******)0x0;\n                  }\n                }\n                else {\n                  pppppppcVar42 = (code *******)0xffffffff;\n                  pppppppcVar28 = (code *******)0x0;\n                }\n                pcVar8 = (code *)(PTR_DAT_000799a4 + -0x7144);\n                pcVar9 = (code *)(PTR_DAT_000799a4 + -0x1980);\n                pcVar10 = (code *)(PTR_DAT_000799a4 + -0x2f9c);\n                unaff_s8 = pppppppcVar42;\n                local_144 = pppppppcVar36;\n                while( true ) {\n                  uVar44 = CONCAT44(local_98,local_84);\n                  unaff_s5 = (code *******)((int)local_8c + 1);\n                  pppppppcVar29 = local_8c;\n                  if ((int)local_7c <= (int)local_8c) break;\n                  if (((int)local_90 <= (int)unaff_s5) && ((int)local_90 < (int)local_84))\n                  goto LAB_00054e94;\n                  if ((int)local_98 <= (int)unaff_s5) {\n                    while ((int)((ulonglong)uVar44 >> 0x20) < (int)uVar44) {\nLAB_00054e94:\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 2);\n                      local_d8 = (code *******)(*pcVar8)(&local_b4);\n                      if (local_d8 == (code *******)0x0) break;\n                      pppppppcVar14 = param_4;\n                      if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                      pppppppcVar33 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                      pppppppcVar30 = (code *******)0x46c;\n                      pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                      uVar44 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0);\n                      pppppppcVar28 = pppppppcVar38;\n                    }\n                  }\n                  pppppppcVar42 = local_60;\n                  if ((int)unaff_s7[0xd] << 5 < 0) {\n                    pppppppcVar31 = pppppppcVar42;\n                    if (0 < (int)unaff_s7[2]) {\n                      pcVar11 = (code *)(PTR_DAT_000799a4 + -0x6fdc);\n                      pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6ef0);\n                      param_6 = (code *******)0x0;\n                      do {\n                        param_5 = (code *******)unaff_s7[3][(int)param_6];\n                        ppppppcVar39 = *pppppppcVar42;\n                        pppppcVar13 = ppppppcVar39[(int)param_5 * 2 + 1];\n                        if (((uint)pppppcVar13 & 0x800) != 0) {\n                          if (((uint)pppppcVar13 & 0xffc000) != 0) {\n                            pppppppcVar29 = local_8c;\n                            uVar19 = (*pcVar12)(&local_b4,local_8c,local_5c);\n                            uVar7 = (uint)((int)ppppppcVar39[(int)param_5 * 2 + 1] << 8) >> 0x16;\n                            if ((uVar7 & 4) == 0) {\n                              uVar27 = uVar19 & 1;\n                              if ((uVar7 & 8) != 0) goto joined_r0x00054f40;\n                            }\n                            else {\n                              uVar27 = uVar7 & 8;\n                              if ((uVar19 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                              if (uVar27 != 0) goto LAB_000550a4;\n                            }\n                            if ((((uVar7 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                               (((uVar7 & 0x80) != 0 &&\n                                (pppppppcVar33 = local_8c, (uVar19 & 8) == 0)))) goto LAB_000550a4;\n                          }\n                          pppppppcVar30 = &local_b4;\n                          pppppppcVar29 = param_5;\n                          pppppppcVar33 = local_8c;\n                          iVar18 = (*pcVar10)(pppppppcVar42);\n                          if (iVar18 != 0) {\n                            pppppppcVar14 = (code *******)((int)local_8c + iVar18);\n                            if (iVar18 <= local_3c) {\n                              iVar18 = local_3c;\n                            }\n                            pppppppcVar29 = pppppppcVar14;\n                            local_3c = iVar18;\n                            local_d4 = (code *******)(*pcVar11)(&local_b4);\n                            pppppppcVar15 = local_d4;\n                            if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                            pppppppcVar30 =\n                                 (code *******)\n                                 (pppppppcVar42[6] + (int)pppppppcVar42[3][(int)param_5] * 3);\n                            unaff_s4 = (code *******)((int)pppppppcVar14 * 4);\n                            param_5 = local_50 + (int)pppppppcVar14;\n                            if (*param_5 == (code ******)0x0) {\n                              local_d0 = (code *******)*pppppppcVar30;\n                              local_cc = (code *******)pppppppcVar30[1];\n                              local_c8 = (code *******)pppppppcVar30[2];\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *param_5 = ppppppcVar39;\n                            }\n                            else {\n                              pppppppcVar29 = (code *******)(*param_5)[10];\n                              local_d4 = (code *******)FUN_000484bc(&local_d0);\n                              pppppppcVar15 = local_d4;\n                              if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar15 = local_50 + (int)pppppppcVar14;\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *pppppppcVar15 = ppppppcVar39;\n                              (*(code *)PTR_free_00079c24)(local_c8);\n                            }\n                            unaff_s4 = local_50 + (int)pppppppcVar14;\n                            if ((*unaff_s4 == (code ******)0x0) &&\n                               (pppppppcVar15 = local_d4, local_d4 != (code *******)0x0))\n                            goto LAB_00055e44;\n                          }\n                        }\nLAB_000550a4:\n                        param_6 = (code *******)((int)param_6 + 1);\n                      } while ((int)param_6 < (int)unaff_s7[2]);\n                    }\n                    local_d8 = (code *******)0x0;\n                  }\n                  uVar7 = (uint)(byte)*(code *)((int)local_8c + (int)local_b0);\n                  local_8c = (code *******)((int)local_8c + 1);\n                  do {\n                    if (unaff_s7[0xb] != (code ******)0x0) {\n                      pppppppcVar30 = (code *******)unaff_s7[0xb][uVar7];\nLAB_000553a0:\n                      pppppppcVar14 = pppppppcVar30;\n                      if (local_50 != (code *******)0x0) goto LAB_000553ac;\n                      goto LAB_000553cc;\n                    }\n                    pppppppcVar31 = (code *******)unaff_s7[0xc];\n                    if (pppppppcVar31 != (code *******)0x0) {\n                      pppppppcVar29 = (code *******)((int)local_8c + -1);\n                      uVar19 = FUN_00049110(&local_b4);\n                      if ((uVar19 & 1) == 0) {\n                        pppppppcVar30 = (code *******)pppppppcVar31[uVar7];\n                      }\n                      else {\n                        pppppppcVar31 = pppppppcVar31 + uVar7 + 0x100;\n                        pppppppcVar30 = (code *******)*pppppppcVar31;\n                      }\n                      goto LAB_000553a0;\n                    }\n                    pppppppcVar29 = unaff_s7;\n                    pppppppcVar30 = local_5c;\n                    iVar18 = (*pcVar9)(local_60);\n                  } while (iVar18 != 0);\n                  local_d8 = (code *******)0xc;\n                  pppppppcVar15 = local_d8;\nLAB_00055e44:\n                  local_d8 = pppppppcVar15;\n                  param_4 = (code *******)0x0;\n                  if (local_50 == (code *******)0x0) {\n                    pppppppcVar14 = param_4;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    break;\n                  }\n                  pppppppcVar30 = (code *******)0x0;\nLAB_000553ac:\n                  pppppppcVar29 = &local_b4;\n                  pppppppcVar14 = (code *******)FUN_00053684(&local_d8);\nLAB_000553cc:\n                  param_4 = pppppppcVar14;\n                  if (pppppppcVar14 == (code *******)0x0) {\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    if ((local_50 == (code *******)0x0) ||\n                       ((pppppppcVar28 != (code *******)0x0 && (pppppppcVar34 == (code *******)0x0))\n                       )) break;\n                    param_6 = &local_b4;\n                    param_5 = (code *******)&local_d8;\n                    pppppppcVar31 = (code *******)(PTR_DAT_000799a4 + 0x3684);\n                    do {\n                      pppppppcVar15 = local_50 + (int)local_8c;\n                      pppppppcVar42 = local_8c;\n                      do {\n                        pppppppcVar42 = (code *******)((int)pppppppcVar42 + 1);\n                        pppppppcVar29 = local_4c;\n                        param_4 = pppppppcVar14;\n                        if ((int)local_4c < (int)pppppppcVar42) goto LAB_00055da8;\n                        local_8c = (code *******)((int)local_8c + 1);\n                        pppppppcVar15 = pppppppcVar15 + 1;\n                      } while (*pppppppcVar15 == (code ******)0x0);\n                      pppppppcVar30 = (code *******)0x0;\n                      pppppppcVar29 = param_6;\n                      param_4 = (code *******)(*(code *)pppppppcVar31)(param_5);\n                      if (local_d8 != (code *******)0x0) {\n                        if (param_4 == (code *******)0x0) goto LAB_00055da8;\n                        break;\n                      }\n                      pppppppcVar29 = local_4c;\n                    } while (param_4 == (code *******)0x0);\n                  }\n                  pppppppcVar15 = (code *******)((uint)unaff_s7 ^ (uint)param_4);\n                  pppppppcVar42 = unaff_s7;\n                  pppppppcVar14 = local_138;\n                  if ((bVar1) &&\n                     (pppppppcVar42 = pppppppcVar15, pppppppcVar14 = unaff_s5,\n                     pppppppcVar15 != (code *******)0x0)) {\n                    bVar1 = false;\n                    pppppppcVar14 = local_138;\n                  }\n                  local_138 = pppppppcVar14;\n                  unaff_s7 = param_4;\n                  if ((((uint)param_4[0xd] & 0x8000000) != 0) &&\n                     ((((uint)param_4[0xd] & 0x1000000) == 0 ||\n                      (pppppppcVar29 = param_4, pppppppcVar30 = local_8c,\n                      iVar18 = FUN_00049440(&local_b4), iVar18 != 0)))) {\n                    unaff_s7 = pppppppcVar42;\n                    unaff_s8 = local_8c;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                    local_144 = (code *******)0x0;\n                    unaff_s7 = param_4;\n                  }\n                }\nLAB_00055da8:\n                if (local_144 != (code *******)0x0) {\n                  *local_144 = (code ******)((int)local_138 + (int)*local_144);\n                }\n              }\n              else {\n                param_4 = unaff_s7 + 1;\n                pppppppcVar30 = (code *******)0x0;\n                pppppppcVar29 = param_4;\n                local_d8 = (code *******)FUN_00047a44(&local_b4);\n                unaff_s8 = local_d8;\n                if (local_d8 == (code *******)0x0) {\n                  if (((uint)unaff_s7[0xd] & 0x2000000) == 0) {\n                    pppppppcVar29 = param_4;\n                    bVar1 = false;\n                  }\n                  else {\n                    pppppppcVar29 = param_4;\n                    local_d8 = (code *******)FUN_00052d84(&local_b4);\n                    unaff_s8 = local_d8;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055dbc;\n                    bVar1 = false;\n                  }\n                  goto LAB_00054d50;\n                }\n              }\nLAB_00055dbc:\n              if (unaff_s8 == (code *******)0xffffffff) {\nLAB_00055b04:\n                FUN_0004b7e8(&local_b4);\nLAB_00055b1c:\n                local_dc = (code *******)((int)pppppppcVar24 + (int)local_dc);\n                if ((int)pppppppcVar25 <= (int)local_dc) goto code_r0x00055b38;\n                local_150 = (code *******)0x1;\n                goto LAB_000557e4;\n              }\n              if (unaff_s8 == (code *******)&SUB_fffffffe) {\n                local_150 = (code *******)0xc;\n                goto LAB_000557e4;\n              }\n              local_58 = unaff_s8;\n              if (((uint)param_1[7] & 0x8000000) == 0) {\n                if (pppppppcVar3 < (code *******)0x2) {\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055c08;\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                else {\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                if (pppppppcVar3 < (code *******)0x2) {\nLAB_00055c6c:\n                  pppppppcVar28 = pppppppcVar33;\n                  unaff_s4 = local_60;\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055548;\n                }\n                else {\n                  cVar23 = *(code *)(pppppppcVar38 + 0x16);\nLAB_00055c20:\n                  pppppppcVar28 = pppppppcVar33;\n                  if (-1 < (char)cVar23) goto LAB_00055c6c;\n                }\n                pppppppcVar31 = local_54;\n                pppppppcVar42 = local_60;\n                unaff_s4 = pppppppcVar42;\n                if (unaff_s8 < (code *******)0x3fffffff) {\n                  param_4 = (code *******)((int)((int)unaff_s8 + 1) * 4);\n                  unaff_s5 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                  if (unaff_s5 == (code *******)0x0) {\nLAB_00055b9c:\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    local_150 = (code *******)0xc;\n                    pppppppcVar33 = pppppppcVar28;\n                  }\n                  else {\n                    pppppppcVar29 = (code *******)&local_d0;\n                    if (pppppppcVar42[0x13] == (code ******)0x0) {\n                      local_cc = (code *******)0x0;\n                      local_c8 = pppppppcVar31;\n                      local_c0 = 0;\n                      local_bc = 0;\n                      local_b8 = 0;\n                      local_d0 = unaff_s5;\n                      local_c4 = unaff_s8;\n                      param_5 = (code *******)FUN_0005421c(&local_b4);\n                      (*(code *)PTR_free_00079c24)(local_b8);\n                      if (param_5 == (code *******)0x0) {\n                        param_4 = (code *******)*unaff_s5;\n                        if (param_4 == (code *******)0x0) {\nLAB_00055b70:\n                          (*(code *)PTR_free_00079c24)(unaff_s5);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          pppppppcVar33 = pppppppcVar28;\n                          goto LAB_00055b04;\n                        }\nLAB_00055528:\n                        (*(code *)PTR_free_00079c24)(local_50);\n                        pppppppcVar33 = pppppppcVar28;\n                        unaff_s4 = pppppppcVar42;\n                        local_58 = unaff_s8;\n                        local_54 = pppppppcVar31;\n                        local_50 = unaff_s5;\n                        goto LAB_00055548;\n                      }\nLAB_00055acc:\n                      param_4 = (code *******)0x0;\n                      pppppppcVar33 = pppppppcVar28;\n                      unaff_s4 = pppppppcVar42;\n                    }\n                    else {\n                      param_4 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                      if (param_4 == (code *******)0x0) goto LAB_00055b9c;\n                      unaff_s7 = (code *******)&local_d0;\n                      pcVar8 = (code *)(PTR_DAT_000799a4 + 0x421c);\n                      pcVar9 = (code *)(PTR_DAT_000799a4 + -0x6bc0);\n                      pppppppcVar33 = pppppppcVar28;\n                      while( true ) {\n                        pppppppcVar28 = (code *******)((int)unaff_s8 + 1);\n                        param_6 = (code *******)((int)pppppppcVar28 * 4);\n                        pppppppcVar30 = param_6;\n                        (*(code *)PTR_memset_00079b00)(param_4,0);\n                        local_c0 = 0;\n                        local_bc = 0;\n                        local_b8 = 0;\n                        pppppppcVar29 = unaff_s7;\n                        local_d0 = unaff_s5;\n                        local_cc = param_4;\n                        local_c8 = pppppppcVar31;\n                        local_c4 = unaff_s8;\n                        param_5 = (code *******)(*pcVar8)(&local_b4);\n                        (*(code *)PTR_free_00079c24)(local_b8);\n                        unaff_s4 = pppppppcVar28;\n                        if (param_5 != (code *******)0x0) break;\n                        if ((*unaff_s5 != (code ******)0x0) ||\n                           (param_6 = param_6 + -1, *param_4 != (code ******)0x0)) {\n                          pppppppcVar29 = unaff_s5;\n                          pppppppcVar30 = param_4;\n                          param_5 = (code *******)FUN_000520d0(pppppppcVar42);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          if (param_5 != (code *******)0x0) goto LAB_00055acc;\n                          goto LAB_00055528;\n                        }\n                        param_6 = (code *******)((int)local_50 + (int)param_6);\n                        do {\n                          while( true ) {\n                            unaff_s8 = (code *******)((int)unaff_s8 + -1);\n                            if ((int)unaff_s8 < 0) goto LAB_00055b70;\n                            pppppppcVar29 = (code *******)param_6[-1];\n                            if (pppppppcVar29 != (code *******)0x0) break;\n                            param_6 = param_6 + -1;\n                          }\n                          param_6 = param_6 + -1;\n                        } while (((uint)pppppppcVar29[0xd] & 0x8000000) == 0);\n                        pppppppcVar31 = (code *******)(*pcVar9)(&local_b4,pppppppcVar29,unaff_s8);\n                        pppppppcVar33 = pppppppcVar28;\n                      }\n                    }\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    (*(code *)PTR_free_00079c24)(param_4);\n                    local_150 = param_5;\n                    if (param_5 == (code *******)0x1) goto LAB_00055b04;\n                  }\n                }\n                else {\n                  local_150 = (code *******)0xc;\n                  pppppppcVar33 = pppppppcVar28;\n                }\n                goto LAB_000557e4;\n              }\n              if (pppppppcVar38[0x13] != (code ******)0x0) {\n                pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                pppppppcVar30 = unaff_s8;\n                local_54 = (code *******)FUN_00049440(&local_b4);\n                goto LAB_00055c6c;\n              }\nLAB_00055c08:\n              if ((((uint)param_1[7] & 0x8000000) == 0) && ((code *******)0x1 < pppppppcVar3)) {\n                cVar23 = *(code *)(pppppppcVar38 + 0x16);\n                goto LAB_00055c20;\n              }\nLAB_00055548:\n              if (pppppppcVar3 == (code *******)0x0) goto LAB_000557e4;\n              if (pppppppcVar3 < (code *******)0x2) {\n                *param_8 = (code ******)0x0;\n                param_8[1] = (code ******)local_58;\n                goto LAB_000555ac;\n              }\n              pppppppcVar29 = param_8 + 2;\n              do {\n                pppppppcVar29[1] = (code ******)0xffffffff;\n                *pppppppcVar29 = (code ******)0xffffffff;\n                pppppppcVar29 = pppppppcVar29 + 2;\n              } while (pppppppcVar29 != param_8 + (int)pppppppcVar3 * 2);\n              *param_8 = (code ******)0x0;\n              param_8[1] = (code ******)local_58;\n              if (((uint)param_1[7] & 0x8000000) != 0) {\nLAB_000555ac:\n                pppppppcVar33 = param_8;\n                do {\n                  pppppppcVar29 = (code *******)*pppppppcVar33;\n                  if (pppppppcVar29 != (code *******)0xffffffff) {\n                    if (local_68 != '\0') {\n                      pppppppcVar34 = local_94;\n                      if (pppppppcVar29 != local_98) {\n                        pppppppcVar34 = *(code ********)(local_a8 + (int)pppppppcVar29 * 4);\n                      }\n                      *pppppppcVar33 = (code ******)pppppppcVar34;\n                      pppppppcVar29 = local_94;\n                      if (local_98 != (code *******)pppppppcVar33[1]) {\n                        pppppppcVar29 = *(code ********)(local_a8 + (int)pppppppcVar33[1] * 4);\n                      }\n                      pppppppcVar33[1] = (code ******)pppppppcVar29;\n                    }\n                    *pppppppcVar33 = (code ******)((int)local_dc + (int)*pppppppcVar33);\n                    pppppppcVar29 = (code *******)((int)local_dc + (int)pppppppcVar33[1]);\n                    pppppppcVar33[1] = (code ******)pppppppcVar29;\n                  }\n                  pppppppcVar33 = pppppppcVar33 + 2;\n                } while (pppppppcVar33 != param_8 + (int)pppppppcVar3 * 2);\n                if (0 < local_118) {\n                  pppppppcVar33 = param_8 + (int)pppppppcVar3 * 2;\n                  do {\n                    *pppppppcVar33 = (code ******)0xffffffff;\n                    pppppppcVar33[1] = (code ******)0xffffffff;\n                    pppppppcVar33 = pppppppcVar33 + 2;\n                  } while (pppppppcVar33 != param_8 + (int)param_7 * 2);\n                }\n                pppppppcVar30 = local_dc;\n                pppppppcVar33 = param_8;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar38[0x21] != (code ******)0x0) {\n                  pppppppcVar30 = (code *******)((int)pppppppcVar3 + -1);\n                  pppppppcVar34 = (code *******)0x0;\n                  pppppppcVar3 = param_8;\n                  while( true ) {\n                    pppppppcVar29 = (code *******)((int)pppppppcVar34 * 4);\n                    if (pppppppcVar30 == pppppppcVar34) break;\n                    if (*(code ********)((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) !=\n                        pppppppcVar34) {\n                      pppppppcVar3[2] =\n                           param_8[(int)((int)*(code ********)\n                                               ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1)\n                                   * 2];\n                      pppppppcVar3[3] =\n                           param_8[((int)*(code ******)\n                                          ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1) * 2 +\n                                   1];\n                    }\n                    pppppppcVar34 = (code *******)((int)pppppppcVar34 + 1);\n                    pppppppcVar3 = pppppppcVar3 + 2;\n                  }\n                }\n                goto LAB_000557e4;\n              }\n              if ((char)*(code *)(pppppppcVar38 + 0x16) < '\0') {\n                local_168 = (uint)(0 < (int)pppppppcVar38[0x13]);\n              }\n              else {\n                local_168 = 0;\n              }\n              pppppppcVar29 = &local_b4;\n              pppppppcVar30 = pppppppcVar3;\n              pppppppcVar33 = param_8;\n              local_150 = (code *******)FUN_0004f4a0(param_1);\n              if (local_150 == (code *******)0x0) goto LAB_000555ac;\n            }\n          }\n          else if (local_90 < 0x3fffffff) {\n            local_50 = (code *******)(*(code *)PTR_malloc_00079b54)((local_90 + 1) * 4);\n            if (local_50 != (code *******)0x0) goto LAB_00055a40;\n            local_150 = (code *******)0xc;\n            param_6 = pppppppcVar36;\n          }\n          else {\n            local_150 = (code *******)0xc;\n            param_6 = pppppppcVar36;\n          }\n        }" { (labeled_statement "LAB_000559f0:\n          local_3c = 1;" statement_identifier : (expression_statement "local_3c = 1;" (assignment_expression "local_3c = 1" identifier = number_literal) ;)) (expression_statement "local_44 = pppppppcVar36;" (assignment_expression "local_44 = pppppppcVar36" identifier = identifier) ;) (expression_statement "local_34 = pppppppcVar36;" (assignment_expression "local_34 = pppppppcVar36" identifier = identifier) ;) (if_statement "if ((pppppppcVar3 < (code *******)0x2) && (((uint)pppppppcVar38[0x16] & 0x40000000) == 0))\n          {\n            local_50 = (code *******)0x0;\nLAB_00055a40:\n            local_78 = 6;\n            if (((uint)param_9 & 1) != 0) {\n              local_78 = 4;\n            }\n            pppppppcVar24 = (code *******)0x1;\n            pppppppcVar25 = param_4;\n            if ((int)param_5 < (int)param_4) {\n              pppppppcVar24 = (code *******)0xffffffff;\n              pppppppcVar25 = param_5;\n            }\n            pppppppcVar26 = param_5;\n            if ((int)param_5 <= (int)param_4) {\n              pppppppcVar26 = param_4;\n            }\n            ppppppcVar35 = pppppppcVar38[0x17];\n            uVar16 = 8;\n            if (local_148 != (code *******)0x0) {\n              if (ppppppcVar35 == (code ******)0x1) {\n                pppppppcVar28 = (code *******)0x4;\n              }\n              else {\n                pppppppcVar28 = pppppppcVar2;\n                if ((-1 < (int)param_1[3] << 9) && (ppppppcVar32 == (code ******)0x0)) {\n                  pppppppcVar28 = (code *******)0x4;\n                }\n              }\n              pppppppcVar29 = (code *******)0x0;\n              if ((int)param_4 <= (int)param_5) {\n                pppppppcVar29 = (code *******)0x2;\n              }\n              uVar16 = (uint)(ppppppcVar32 != (code ******)0x0) | (uint)pppppppcVar28 |\n                       (uint)pppppppcVar29;\n            }\n            local_dc = param_4;\n            if ((int)param_4 < (int)pppppppcVar25) {\n              local_150 = (code *******)0x1;\n              param_6 = pppppppcVar36;\n            }\n            else if ((int)pppppppcVar26 < (int)param_4) {\n              local_150 = (code *******)0x1;\n              param_4 = (code *******)(uint)((int)param_5 < (int)param_4);\n              param_6 = pppppppcVar36;\n            }\n            else {\n              pppppppcVar36 = (code *******)&local_dc;\n              if ((code *******)(uint)((int)param_5 < (int)param_4) != (code *******)0x0) {\n                pppppppcVar36 = (code *******)0x0;\n              }\n              pcVar4 = (code *)(PTR_DAT_000799a4 + -0x2b7c);\n              piVar5 = (int *)(PTR_s_nt0_000795b8 + (uVar16 - 4) * 4 + 0x6e38);\nLAB_00055b44:\n              if (uVar16 - 4 < 5) {\n                    \n                    \n                pppppppcVar29 = (code *******)(*(code *)(&_gp_1 + *piVar5))();\n                return pppppppcVar29;\n              }\n              param_5 = &local_b4;\n              pppppppcVar28 = pppppppcVar33;\n              while( true ) {\n                param_4 = local_dc;\n                pppppppcVar33 = (code *******)((int)local_dc - local_9c);\n                pppppppcVar30 = param_9;\n                pppppppcVar31 = pppppppcVar2;\n                param_6 = local_148;\n                unaff_s4 = param_3;\n                unaff_s5 = pppppppcVar24;\n                unaff_s7 = pppppppcVar26;\n                if (local_94 <= pppppppcVar33) {\n                  pppppppcVar29 = local_dc;\n                  local_150 = (code *******)(*pcVar4)(param_5);\n                  pppppppcVar33 = pppppppcVar28;\n                  if (local_150 != (code *******)0x0) goto LAB_000557e4;\n                  pppppppcVar33 = (code *******)((int)param_4 - local_9c);\n                }\n                if ((int)param_4 < (int)param_3) {\n                  uVar7 = (uint)(byte)*(code *)((int)pppppppcVar33 + (int)local_b0);\n                }\n                else {\n                  uVar7 = 0;\n                }\n                param_4 = (code *******)((int)param_4 + (int)pppppppcVar24);\n                if (*(code *)((int)local_148 + uVar7) != (code)0x0) break;\n                pppppppcVar33 = pppppppcVar28;\n                local_dc = param_4;\n                if ((int)param_4 < (int)pppppppcVar25) {\n                  local_150 = (code *******)0x1;\n                  goto LAB_000557e4;\n                }\n                if ((code *******)(uint)((int)pppppppcVar26 < (int)param_4) != (code *******)0x0) {\n                  local_150 = (code *******)0x1;\n                  param_4 = (code *******)(uint)((int)pppppppcVar26 < (int)param_4);\n                  goto LAB_000557e4;\n                }\n              }\n              while( true ) {\n                pppppppcVar29 = local_dc;\n                pppppppcVar30 = param_9;\n                pppppppcVar6 = (code *******)(*pcVar4)(&local_b4);\n                pppppppcVar14 = local_60;\n                pppppppcVar42 = local_8c;\n                pppppppcVar33 = pppppppcVar28;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar6 != (code *******)0x0) goto LAB_000557e4;\n                if (((ppppppcVar35 != (code ******)0x1) && (local_98 != (code *******)0x0)) &&\n                   (*local_ac == -1)) goto LAB_00055b1c;\n                local_3c = 0;\n                local_48 = 0;\n                local_4c = (code *******)0x0;\n                local_138 = local_8c;\n                local_d8 = (code *******)0x0;\n                unaff_s7 = (code *******)local_60[9];\n                pppppppcVar30 = local_5c;\n                param_4 = pppppppcVar14;\n                if (((uint)unaff_s7[0xd] & 0x1000000) == 0) break;\n                pppppppcVar29 = (code *******)((int)local_8c + -1);\n                pppppppcVar33 = (code *******)FUN_00049110(&local_b4);\n                if (((uint)pppppppcVar33 & 1) == 0) {\n                  if (pppppppcVar33 == (code *******)0x0) break;\n                  if (((uint)pppppppcVar33 & 6) == 6) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xc];\n                    goto LAB_00054d1c;\n                  }\n                  if (((uint)pppppppcVar33 & 2) != 0) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xb];\n                    goto LAB_00054d1c;\n                  }\n                  pppppppcVar28 = pppppppcVar33;\n                  if (((uint)pppppppcVar33 & 4) == 0) break;\n                  pppppppcVar30 = (code *******)unaff_s7[10];\n                  pppppppcVar29 = pppppppcVar14;\n                  unaff_s7 = (code *******)FUN_0004ae34(&local_d8);\n                  pppppppcVar28 = pppppppcVar33;\n                  if (unaff_s7 != (code *******)0x0) break;\n                  if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                }\n                else {\n                  unaff_s7 = (code *******)pppppppcVar14[10];\nLAB_00054d1c:\n                  pppppppcVar28 = (code *******)PTR_s_nt0_000795b8;\n                  if (unaff_s7 != (code *******)0x0) break;\n                }\n                pppppppcVar28 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                local_dc = (code *******)\n                           (*(code *)PTR___assert_fail_000799f8)\n                                     (PTR_s_nt0_000795b8 + 0x71a0,pppppppcVar29,0x435);\n                if (local_dc == pppppppcVar26) {\n                  if ((int)local_dc < (int)param_3) {\n                    uVar7 = (uint)(byte)*(code *)((int)local_dc + (int)param_2);\n                  }\n                  else {\n                    uVar7 = 0;\n                  }\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    uVar7 = (uint)*(byte *)((int)ppppppcVar32 + uVar7);\n                  }\n                  if (*(code *)((int)local_148 + uVar7) == (code)0x0) {\n                    local_150 = (code *******)0x1;\n                    pppppppcVar30 = param_9;\n                    pppppppcVar33 = pppppppcVar28;\n                    goto LAB_000557e4;\n                  }\n                }\n              }\n              pppppppcVar33 = pppppppcVar28;\n              bVar1 = pppppppcVar36 != (code *******)0x0;\n              if ((local_50 == (code *******)0x0) ||\n                 (local_50[(int)pppppppcVar42] = (code ******)unaff_s7,\n                 pppppppcVar14[0x13] == (code ******)0x0)) {\nLAB_00054d50:\n                if ((int)unaff_s7[0xd] << 4 < 0) {\n                  if ((((uint)unaff_s7[0xd] & 0x1000000) == 0) ||\n                     (pppppppcVar29 = unaff_s7, pppppppcVar30 = pppppppcVar42,\n                     iVar18 = FUN_00049440(&local_b4), iVar18 != 0)) {\n                    unaff_s8 = pppppppcVar42;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                  }\n                  else {\n                    pppppppcVar42 = (code *******)0xffffffff;\n                    pppppppcVar28 = (code *******)0x0;\n                  }\n                }\n                else {\n                  pppppppcVar42 = (code *******)0xffffffff;\n                  pppppppcVar28 = (code *******)0x0;\n                }\n                pcVar8 = (code *)(PTR_DAT_000799a4 + -0x7144);\n                pcVar9 = (code *)(PTR_DAT_000799a4 + -0x1980);\n                pcVar10 = (code *)(PTR_DAT_000799a4 + -0x2f9c);\n                unaff_s8 = pppppppcVar42;\n                local_144 = pppppppcVar36;\n                while( true ) {\n                  uVar44 = CONCAT44(local_98,local_84);\n                  unaff_s5 = (code *******)((int)local_8c + 1);\n                  pppppppcVar29 = local_8c;\n                  if ((int)local_7c <= (int)local_8c) break;\n                  if (((int)local_90 <= (int)unaff_s5) && ((int)local_90 < (int)local_84))\n                  goto LAB_00054e94;\n                  if ((int)local_98 <= (int)unaff_s5) {\n                    while ((int)((ulonglong)uVar44 >> 0x20) < (int)uVar44) {\nLAB_00054e94:\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 2);\n                      local_d8 = (code *******)(*pcVar8)(&local_b4);\n                      if (local_d8 == (code *******)0x0) break;\n                      pppppppcVar14 = param_4;\n                      if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                      pppppppcVar33 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                      pppppppcVar30 = (code *******)0x46c;\n                      pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                      uVar44 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0);\n                      pppppppcVar28 = pppppppcVar38;\n                    }\n                  }\n                  pppppppcVar42 = local_60;\n                  if ((int)unaff_s7[0xd] << 5 < 0) {\n                    pppppppcVar31 = pppppppcVar42;\n                    if (0 < (int)unaff_s7[2]) {\n                      pcVar11 = (code *)(PTR_DAT_000799a4 + -0x6fdc);\n                      pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6ef0);\n                      param_6 = (code *******)0x0;\n                      do {\n                        param_5 = (code *******)unaff_s7[3][(int)param_6];\n                        ppppppcVar39 = *pppppppcVar42;\n                        pppppcVar13 = ppppppcVar39[(int)param_5 * 2 + 1];\n                        if (((uint)pppppcVar13 & 0x800) != 0) {\n                          if (((uint)pppppcVar13 & 0xffc000) != 0) {\n                            pppppppcVar29 = local_8c;\n                            uVar19 = (*pcVar12)(&local_b4,local_8c,local_5c);\n                            uVar7 = (uint)((int)ppppppcVar39[(int)param_5 * 2 + 1] << 8) >> 0x16;\n                            if ((uVar7 & 4) == 0) {\n                              uVar27 = uVar19 & 1;\n                              if ((uVar7 & 8) != 0) goto joined_r0x00054f40;\n                            }\n                            else {\n                              uVar27 = uVar7 & 8;\n                              if ((uVar19 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                              if (uVar27 != 0) goto LAB_000550a4;\n                            }\n                            if ((((uVar7 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                               (((uVar7 & 0x80) != 0 &&\n                                (pppppppcVar33 = local_8c, (uVar19 & 8) == 0)))) goto LAB_000550a4;\n                          }\n                          pppppppcVar30 = &local_b4;\n                          pppppppcVar29 = param_5;\n                          pppppppcVar33 = local_8c;\n                          iVar18 = (*pcVar10)(pppppppcVar42);\n                          if (iVar18 != 0) {\n                            pppppppcVar14 = (code *******)((int)local_8c + iVar18);\n                            if (iVar18 <= local_3c) {\n                              iVar18 = local_3c;\n                            }\n                            pppppppcVar29 = pppppppcVar14;\n                            local_3c = iVar18;\n                            local_d4 = (code *******)(*pcVar11)(&local_b4);\n                            pppppppcVar15 = local_d4;\n                            if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                            pppppppcVar30 =\n                                 (code *******)\n                                 (pppppppcVar42[6] + (int)pppppppcVar42[3][(int)param_5] * 3);\n                            unaff_s4 = (code *******)((int)pppppppcVar14 * 4);\n                            param_5 = local_50 + (int)pppppppcVar14;\n                            if (*param_5 == (code ******)0x0) {\n                              local_d0 = (code *******)*pppppppcVar30;\n                              local_cc = (code *******)pppppppcVar30[1];\n                              local_c8 = (code *******)pppppppcVar30[2];\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *param_5 = ppppppcVar39;\n                            }\n                            else {\n                              pppppppcVar29 = (code *******)(*param_5)[10];\n                              local_d4 = (code *******)FUN_000484bc(&local_d0);\n                              pppppppcVar15 = local_d4;\n                              if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar15 = local_50 + (int)pppppppcVar14;\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *pppppppcVar15 = ppppppcVar39;\n                              (*(code *)PTR_free_00079c24)(local_c8);\n                            }\n                            unaff_s4 = local_50 + (int)pppppppcVar14;\n                            if ((*unaff_s4 == (code ******)0x0) &&\n                               (pppppppcVar15 = local_d4, local_d4 != (code *******)0x0))\n                            goto LAB_00055e44;\n                          }\n                        }\nLAB_000550a4:\n                        param_6 = (code *******)((int)param_6 + 1);\n                      } while ((int)param_6 < (int)unaff_s7[2]);\n                    }\n                    local_d8 = (code *******)0x0;\n                  }\n                  uVar7 = (uint)(byte)*(code *)((int)local_8c + (int)local_b0);\n                  local_8c = (code *******)((int)local_8c + 1);\n                  do {\n                    if (unaff_s7[0xb] != (code ******)0x0) {\n                      pppppppcVar30 = (code *******)unaff_s7[0xb][uVar7];\nLAB_000553a0:\n                      pppppppcVar14 = pppppppcVar30;\n                      if (local_50 != (code *******)0x0) goto LAB_000553ac;\n                      goto LAB_000553cc;\n                    }\n                    pppppppcVar31 = (code *******)unaff_s7[0xc];\n                    if (pppppppcVar31 != (code *******)0x0) {\n                      pppppppcVar29 = (code *******)((int)local_8c + -1);\n                      uVar19 = FUN_00049110(&local_b4);\n                      if ((uVar19 & 1) == 0) {\n                        pppppppcVar30 = (code *******)pppppppcVar31[uVar7];\n                      }\n                      else {\n                        pppppppcVar31 = pppppppcVar31 + uVar7 + 0x100;\n                        pppppppcVar30 = (code *******)*pppppppcVar31;\n                      }\n                      goto LAB_000553a0;\n                    }\n                    pppppppcVar29 = unaff_s7;\n                    pppppppcVar30 = local_5c;\n                    iVar18 = (*pcVar9)(local_60);\n                  } while (iVar18 != 0);\n                  local_d8 = (code *******)0xc;\n                  pppppppcVar15 = local_d8;\nLAB_00055e44:\n                  local_d8 = pppppppcVar15;\n                  param_4 = (code *******)0x0;\n                  if (local_50 == (code *******)0x0) {\n                    pppppppcVar14 = param_4;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    break;\n                  }\n                  pppppppcVar30 = (code *******)0x0;\nLAB_000553ac:\n                  pppppppcVar29 = &local_b4;\n                  pppppppcVar14 = (code *******)FUN_00053684(&local_d8);\nLAB_000553cc:\n                  param_4 = pppppppcVar14;\n                  if (pppppppcVar14 == (code *******)0x0) {\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    if ((local_50 == (code *******)0x0) ||\n                       ((pppppppcVar28 != (code *******)0x0 && (pppppppcVar34 == (code *******)0x0))\n                       )) break;\n                    param_6 = &local_b4;\n                    param_5 = (code *******)&local_d8;\n                    pppppppcVar31 = (code *******)(PTR_DAT_000799a4 + 0x3684);\n                    do {\n                      pppppppcVar15 = local_50 + (int)local_8c;\n                      pppppppcVar42 = local_8c;\n                      do {\n                        pppppppcVar42 = (code *******)((int)pppppppcVar42 + 1);\n                        pppppppcVar29 = local_4c;\n                        param_4 = pppppppcVar14;\n                        if ((int)local_4c < (int)pppppppcVar42) goto LAB_00055da8;\n                        local_8c = (code *******)((int)local_8c + 1);\n                        pppppppcVar15 = pppppppcVar15 + 1;\n                      } while (*pppppppcVar15 == (code ******)0x0);\n                      pppppppcVar30 = (code *******)0x0;\n                      pppppppcVar29 = param_6;\n                      param_4 = (code *******)(*(code *)pppppppcVar31)(param_5);\n                      if (local_d8 != (code *******)0x0) {\n                        if (param_4 == (code *******)0x0) goto LAB_00055da8;\n                        break;\n                      }\n                      pppppppcVar29 = local_4c;\n                    } while (param_4 == (code *******)0x0);\n                  }\n                  pppppppcVar15 = (code *******)((uint)unaff_s7 ^ (uint)param_4);\n                  pppppppcVar42 = unaff_s7;\n                  pppppppcVar14 = local_138;\n                  if ((bVar1) &&\n                     (pppppppcVar42 = pppppppcVar15, pppppppcVar14 = unaff_s5,\n                     pppppppcVar15 != (code *******)0x0)) {\n                    bVar1 = false;\n                    pppppppcVar14 = local_138;\n                  }\n                  local_138 = pppppppcVar14;\n                  unaff_s7 = param_4;\n                  if ((((uint)param_4[0xd] & 0x8000000) != 0) &&\n                     ((((uint)param_4[0xd] & 0x1000000) == 0 ||\n                      (pppppppcVar29 = param_4, pppppppcVar30 = local_8c,\n                      iVar18 = FUN_00049440(&local_b4), iVar18 != 0)))) {\n                    unaff_s7 = pppppppcVar42;\n                    unaff_s8 = local_8c;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                    local_144 = (code *******)0x0;\n                    unaff_s7 = param_4;\n                  }\n                }\nLAB_00055da8:\n                if (local_144 != (code *******)0x0) {\n                  *local_144 = (code ******)((int)local_138 + (int)*local_144);\n                }\n              }\n              else {\n                param_4 = unaff_s7 + 1;\n                pppppppcVar30 = (code *******)0x0;\n                pppppppcVar29 = param_4;\n                local_d8 = (code *******)FUN_00047a44(&local_b4);\n                unaff_s8 = local_d8;\n                if (local_d8 == (code *******)0x0) {\n                  if (((uint)unaff_s7[0xd] & 0x2000000) == 0) {\n                    pppppppcVar29 = param_4;\n                    bVar1 = false;\n                  }\n                  else {\n                    pppppppcVar29 = param_4;\n                    local_d8 = (code *******)FUN_00052d84(&local_b4);\n                    unaff_s8 = local_d8;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055dbc;\n                    bVar1 = false;\n                  }\n                  goto LAB_00054d50;\n                }\n              }\nLAB_00055dbc:\n              if (unaff_s8 == (code *******)0xffffffff) {\nLAB_00055b04:\n                FUN_0004b7e8(&local_b4);\nLAB_00055b1c:\n                local_dc = (code *******)((int)pppppppcVar24 + (int)local_dc);\n                if ((int)pppppppcVar25 <= (int)local_dc) goto code_r0x00055b38;\n                local_150 = (code *******)0x1;\n                goto LAB_000557e4;\n              }\n              if (unaff_s8 == (code *******)&SUB_fffffffe) {\n                local_150 = (code *******)0xc;\n                goto LAB_000557e4;\n              }\n              local_58 = unaff_s8;\n              if (((uint)param_1[7] & 0x8000000) == 0) {\n                if (pppppppcVar3 < (code *******)0x2) {\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055c08;\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                else {\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                if (pppppppcVar3 < (code *******)0x2) {\nLAB_00055c6c:\n                  pppppppcVar28 = pppppppcVar33;\n                  unaff_s4 = local_60;\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055548;\n                }\n                else {\n                  cVar23 = *(code *)(pppppppcVar38 + 0x16);\nLAB_00055c20:\n                  pppppppcVar28 = pppppppcVar33;\n                  if (-1 < (char)cVar23) goto LAB_00055c6c;\n                }\n                pppppppcVar31 = local_54;\n                pppppppcVar42 = local_60;\n                unaff_s4 = pppppppcVar42;\n                if (unaff_s8 < (code *******)0x3fffffff) {\n                  param_4 = (code *******)((int)((int)unaff_s8 + 1) * 4);\n                  unaff_s5 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                  if (unaff_s5 == (code *******)0x0) {\nLAB_00055b9c:\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    local_150 = (code *******)0xc;\n                    pppppppcVar33 = pppppppcVar28;\n                  }\n                  else {\n                    pppppppcVar29 = (code *******)&local_d0;\n                    if (pppppppcVar42[0x13] == (code ******)0x0) {\n                      local_cc = (code *******)0x0;\n                      local_c8 = pppppppcVar31;\n                      local_c0 = 0;\n                      local_bc = 0;\n                      local_b8 = 0;\n                      local_d0 = unaff_s5;\n                      local_c4 = unaff_s8;\n                      param_5 = (code *******)FUN_0005421c(&local_b4);\n                      (*(code *)PTR_free_00079c24)(local_b8);\n                      if (param_5 == (code *******)0x0) {\n                        param_4 = (code *******)*unaff_s5;\n                        if (param_4 == (code *******)0x0) {\nLAB_00055b70:\n                          (*(code *)PTR_free_00079c24)(unaff_s5);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          pppppppcVar33 = pppppppcVar28;\n                          goto LAB_00055b04;\n                        }\nLAB_00055528:\n                        (*(code *)PTR_free_00079c24)(local_50);\n                        pppppppcVar33 = pppppppcVar28;\n                        unaff_s4 = pppppppcVar42;\n                        local_58 = unaff_s8;\n                        local_54 = pppppppcVar31;\n                        local_50 = unaff_s5;\n                        goto LAB_00055548;\n                      }\nLAB_00055acc:\n                      param_4 = (code *******)0x0;\n                      pppppppcVar33 = pppppppcVar28;\n                      unaff_s4 = pppppppcVar42;\n                    }\n                    else {\n                      param_4 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                      if (param_4 == (code *******)0x0) goto LAB_00055b9c;\n                      unaff_s7 = (code *******)&local_d0;\n                      pcVar8 = (code *)(PTR_DAT_000799a4 + 0x421c);\n                      pcVar9 = (code *)(PTR_DAT_000799a4 + -0x6bc0);\n                      pppppppcVar33 = pppppppcVar28;\n                      while( true ) {\n                        pppppppcVar28 = (code *******)((int)unaff_s8 + 1);\n                        param_6 = (code *******)((int)pppppppcVar28 * 4);\n                        pppppppcVar30 = param_6;\n                        (*(code *)PTR_memset_00079b00)(param_4,0);\n                        local_c0 = 0;\n                        local_bc = 0;\n                        local_b8 = 0;\n                        pppppppcVar29 = unaff_s7;\n                        local_d0 = unaff_s5;\n                        local_cc = param_4;\n                        local_c8 = pppppppcVar31;\n                        local_c4 = unaff_s8;\n                        param_5 = (code *******)(*pcVar8)(&local_b4);\n                        (*(code *)PTR_free_00079c24)(local_b8);\n                        unaff_s4 = pppppppcVar28;\n                        if (param_5 != (code *******)0x0) break;\n                        if ((*unaff_s5 != (code ******)0x0) ||\n                           (param_6 = param_6 + -1, *param_4 != (code ******)0x0)) {\n                          pppppppcVar29 = unaff_s5;\n                          pppppppcVar30 = param_4;\n                          param_5 = (code *******)FUN_000520d0(pppppppcVar42);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          if (param_5 != (code *******)0x0) goto LAB_00055acc;\n                          goto LAB_00055528;\n                        }\n                        param_6 = (code *******)((int)local_50 + (int)param_6);\n                        do {\n                          while( true ) {\n                            unaff_s8 = (code *******)((int)unaff_s8 + -1);\n                            if ((int)unaff_s8 < 0) goto LAB_00055b70;\n                            pppppppcVar29 = (code *******)param_6[-1];\n                            if (pppppppcVar29 != (code *******)0x0) break;\n                            param_6 = param_6 + -1;\n                          }\n                          param_6 = param_6 + -1;\n                        } while (((uint)pppppppcVar29[0xd] & 0x8000000) == 0);\n                        pppppppcVar31 = (code *******)(*pcVar9)(&local_b4,pppppppcVar29,unaff_s8);\n                        pppppppcVar33 = pppppppcVar28;\n                      }\n                    }\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    (*(code *)PTR_free_00079c24)(param_4);\n                    local_150 = param_5;\n                    if (param_5 == (code *******)0x1) goto LAB_00055b04;\n                  }\n                }\n                else {\n                  local_150 = (code *******)0xc;\n                  pppppppcVar33 = pppppppcVar28;\n                }\n                goto LAB_000557e4;\n              }\n              if (pppppppcVar38[0x13] != (code ******)0x0) {\n                pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                pppppppcVar30 = unaff_s8;\n                local_54 = (code *******)FUN_00049440(&local_b4);\n                goto LAB_00055c6c;\n              }\nLAB_00055c08:\n              if ((((uint)param_1[7] & 0x8000000) == 0) && ((code *******)0x1 < pppppppcVar3)) {\n                cVar23 = *(code *)(pppppppcVar38 + 0x16);\n                goto LAB_00055c20;\n              }\nLAB_00055548:\n              if (pppppppcVar3 == (code *******)0x0) goto LAB_000557e4;\n              if (pppppppcVar3 < (code *******)0x2) {\n                *param_8 = (code ******)0x0;\n                param_8[1] = (code ******)local_58;\n                goto LAB_000555ac;\n              }\n              pppppppcVar29 = param_8 + 2;\n              do {\n                pppppppcVar29[1] = (code ******)0xffffffff;\n                *pppppppcVar29 = (code ******)0xffffffff;\n                pppppppcVar29 = pppppppcVar29 + 2;\n              } while (pppppppcVar29 != param_8 + (int)pppppppcVar3 * 2);\n              *param_8 = (code ******)0x0;\n              param_8[1] = (code ******)local_58;\n              if (((uint)param_1[7] & 0x8000000) != 0) {\nLAB_000555ac:\n                pppppppcVar33 = param_8;\n                do {\n                  pppppppcVar29 = (code *******)*pppppppcVar33;\n                  if (pppppppcVar29 != (code *******)0xffffffff) {\n                    if (local_68 != '\0') {\n                      pppppppcVar34 = local_94;\n                      if (pppppppcVar29 != local_98) {\n                        pppppppcVar34 = *(code ********)(local_a8 + (int)pppppppcVar29 * 4);\n                      }\n                      *pppppppcVar33 = (code ******)pppppppcVar34;\n                      pppppppcVar29 = local_94;\n                      if (local_98 != (code *******)pppppppcVar33[1]) {\n                        pppppppcVar29 = *(code ********)(local_a8 + (int)pppppppcVar33[1] * 4);\n                      }\n                      pppppppcVar33[1] = (code ******)pppppppcVar29;\n                    }\n                    *pppppppcVar33 = (code ******)((int)local_dc + (int)*pppppppcVar33);\n                    pppppppcVar29 = (code *******)((int)local_dc + (int)pppppppcVar33[1]);\n                    pppppppcVar33[1] = (code ******)pppppppcVar29;\n                  }\n                  pppppppcVar33 = pppppppcVar33 + 2;\n                } while (pppppppcVar33 != param_8 + (int)pppppppcVar3 * 2);\n                if (0 < local_118) {\n                  pppppppcVar33 = param_8 + (int)pppppppcVar3 * 2;\n                  do {\n                    *pppppppcVar33 = (code ******)0xffffffff;\n                    pppppppcVar33[1] = (code ******)0xffffffff;\n                    pppppppcVar33 = pppppppcVar33 + 2;\n                  } while (pppppppcVar33 != param_8 + (int)param_7 * 2);\n                }\n                pppppppcVar30 = local_dc;\n                pppppppcVar33 = param_8;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar38[0x21] != (code ******)0x0) {\n                  pppppppcVar30 = (code *******)((int)pppppppcVar3 + -1);\n                  pppppppcVar34 = (code *******)0x0;\n                  pppppppcVar3 = param_8;\n                  while( true ) {\n                    pppppppcVar29 = (code *******)((int)pppppppcVar34 * 4);\n                    if (pppppppcVar30 == pppppppcVar34) break;\n                    if (*(code ********)((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) !=\n                        pppppppcVar34) {\n                      pppppppcVar3[2] =\n                           param_8[(int)((int)*(code ********)\n                                               ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1)\n                                   * 2];\n                      pppppppcVar3[3] =\n                           param_8[((int)*(code ******)\n                                          ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1) * 2 +\n                                   1];\n                    }\n                    pppppppcVar34 = (code *******)((int)pppppppcVar34 + 1);\n                    pppppppcVar3 = pppppppcVar3 + 2;\n                  }\n                }\n                goto LAB_000557e4;\n              }\n              if ((char)*(code *)(pppppppcVar38 + 0x16) < '\0') {\n                local_168 = (uint)(0 < (int)pppppppcVar38[0x13]);\n              }\n              else {\n                local_168 = 0;\n              }\n              pppppppcVar29 = &local_b4;\n              pppppppcVar30 = pppppppcVar3;\n              pppppppcVar33 = param_8;\n              local_150 = (code *******)FUN_0004f4a0(param_1);\n              if (local_150 == (code *******)0x0) goto LAB_000555ac;\n            }\n          }\n          else if (local_90 < 0x3fffffff) {\n            local_50 = (code *******)(*(code *)PTR_malloc_00079b54)((local_90 + 1) * 4);\n            if (local_50 != (code *******)0x0) goto LAB_00055a40;\n            local_150 = (code *******)0xc;\n            param_6 = pppppppcVar36;\n          }\n          else {\n            local_150 = (code *******)0xc;\n            param_6 = pppppppcVar36;\n          }" if (parenthesized_expression "((pppppppcVar3 < (code *******)0x2) && (((uint)pppppppcVar38[0x16] & 0x40000000) == 0))" ( (binary_expression "(pppppppcVar3 < (code *******)0x2) && (((uint)pppppppcVar38[0x16] & 0x40000000) == 0)" (parenthesized_expression "(pppppppcVar3 < (code *******)0x2)" ( (binary_expression "pppppppcVar3 < (code *******)0x2" identifier < (cast_expression "(code *******)0x2" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) && (parenthesized_expression "(((uint)pppppppcVar38[0x16] & 0x40000000) == 0)" ( (binary_expression "((uint)pppppppcVar38[0x16] & 0x40000000) == 0" (parenthesized_expression "((uint)pppppppcVar38[0x16] & 0x40000000)" ( (binary_expression "(uint)pppppppcVar38[0x16] & 0x40000000" (cast_expression "(uint)pppppppcVar38[0x16]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pppppppcVar38[0x16]" identifier [ number_literal ])) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n            local_50 = (code *******)0x0;\nLAB_00055a40:\n            local_78 = 6;\n            if (((uint)param_9 & 1) != 0) {\n              local_78 = 4;\n            }\n            pppppppcVar24 = (code *******)0x1;\n            pppppppcVar25 = param_4;\n            if ((int)param_5 < (int)param_4) {\n              pppppppcVar24 = (code *******)0xffffffff;\n              pppppppcVar25 = param_5;\n            }\n            pppppppcVar26 = param_5;\n            if ((int)param_5 <= (int)param_4) {\n              pppppppcVar26 = param_4;\n            }\n            ppppppcVar35 = pppppppcVar38[0x17];\n            uVar16 = 8;\n            if (local_148 != (code *******)0x0) {\n              if (ppppppcVar35 == (code ******)0x1) {\n                pppppppcVar28 = (code *******)0x4;\n              }\n              else {\n                pppppppcVar28 = pppppppcVar2;\n                if ((-1 < (int)param_1[3] << 9) && (ppppppcVar32 == (code ******)0x0)) {\n                  pppppppcVar28 = (code *******)0x4;\n                }\n              }\n              pppppppcVar29 = (code *******)0x0;\n              if ((int)param_4 <= (int)param_5) {\n                pppppppcVar29 = (code *******)0x2;\n              }\n              uVar16 = (uint)(ppppppcVar32 != (code ******)0x0) | (uint)pppppppcVar28 |\n                       (uint)pppppppcVar29;\n            }\n            local_dc = param_4;\n            if ((int)param_4 < (int)pppppppcVar25) {\n              local_150 = (code *******)0x1;\n              param_6 = pppppppcVar36;\n            }\n            else if ((int)pppppppcVar26 < (int)param_4) {\n              local_150 = (code *******)0x1;\n              param_4 = (code *******)(uint)((int)param_5 < (int)param_4);\n              param_6 = pppppppcVar36;\n            }\n            else {\n              pppppppcVar36 = (code *******)&local_dc;\n              if ((code *******)(uint)((int)param_5 < (int)param_4) != (code *******)0x0) {\n                pppppppcVar36 = (code *******)0x0;\n              }\n              pcVar4 = (code *)(PTR_DAT_000799a4 + -0x2b7c);\n              piVar5 = (int *)(PTR_s_nt0_000795b8 + (uVar16 - 4) * 4 + 0x6e38);\nLAB_00055b44:\n              if (uVar16 - 4 < 5) {\n                    \n                    \n                pppppppcVar29 = (code *******)(*(code *)(&_gp_1 + *piVar5))();\n                return pppppppcVar29;\n              }\n              param_5 = &local_b4;\n              pppppppcVar28 = pppppppcVar33;\n              while( true ) {\n                param_4 = local_dc;\n                pppppppcVar33 = (code *******)((int)local_dc - local_9c);\n                pppppppcVar30 = param_9;\n                pppppppcVar31 = pppppppcVar2;\n                param_6 = local_148;\n                unaff_s4 = param_3;\n                unaff_s5 = pppppppcVar24;\n                unaff_s7 = pppppppcVar26;\n                if (local_94 <= pppppppcVar33) {\n                  pppppppcVar29 = local_dc;\n                  local_150 = (code *******)(*pcVar4)(param_5);\n                  pppppppcVar33 = pppppppcVar28;\n                  if (local_150 != (code *******)0x0) goto LAB_000557e4;\n                  pppppppcVar33 = (code *******)((int)param_4 - local_9c);\n                }\n                if ((int)param_4 < (int)param_3) {\n                  uVar7 = (uint)(byte)*(code *)((int)pppppppcVar33 + (int)local_b0);\n                }\n                else {\n                  uVar7 = 0;\n                }\n                param_4 = (code *******)((int)param_4 + (int)pppppppcVar24);\n                if (*(code *)((int)local_148 + uVar7) != (code)0x0) break;\n                pppppppcVar33 = pppppppcVar28;\n                local_dc = param_4;\n                if ((int)param_4 < (int)pppppppcVar25) {\n                  local_150 = (code *******)0x1;\n                  goto LAB_000557e4;\n                }\n                if ((code *******)(uint)((int)pppppppcVar26 < (int)param_4) != (code *******)0x0) {\n                  local_150 = (code *******)0x1;\n                  param_4 = (code *******)(uint)((int)pppppppcVar26 < (int)param_4);\n                  goto LAB_000557e4;\n                }\n              }\n              while( true ) {\n                pppppppcVar29 = local_dc;\n                pppppppcVar30 = param_9;\n                pppppppcVar6 = (code *******)(*pcVar4)(&local_b4);\n                pppppppcVar14 = local_60;\n                pppppppcVar42 = local_8c;\n                pppppppcVar33 = pppppppcVar28;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar6 != (code *******)0x0) goto LAB_000557e4;\n                if (((ppppppcVar35 != (code ******)0x1) && (local_98 != (code *******)0x0)) &&\n                   (*local_ac == -1)) goto LAB_00055b1c;\n                local_3c = 0;\n                local_48 = 0;\n                local_4c = (code *******)0x0;\n                local_138 = local_8c;\n                local_d8 = (code *******)0x0;\n                unaff_s7 = (code *******)local_60[9];\n                pppppppcVar30 = local_5c;\n                param_4 = pppppppcVar14;\n                if (((uint)unaff_s7[0xd] & 0x1000000) == 0) break;\n                pppppppcVar29 = (code *******)((int)local_8c + -1);\n                pppppppcVar33 = (code *******)FUN_00049110(&local_b4);\n                if (((uint)pppppppcVar33 & 1) == 0) {\n                  if (pppppppcVar33 == (code *******)0x0) break;\n                  if (((uint)pppppppcVar33 & 6) == 6) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xc];\n                    goto LAB_00054d1c;\n                  }\n                  if (((uint)pppppppcVar33 & 2) != 0) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xb];\n                    goto LAB_00054d1c;\n                  }\n                  pppppppcVar28 = pppppppcVar33;\n                  if (((uint)pppppppcVar33 & 4) == 0) break;\n                  pppppppcVar30 = (code *******)unaff_s7[10];\n                  pppppppcVar29 = pppppppcVar14;\n                  unaff_s7 = (code *******)FUN_0004ae34(&local_d8);\n                  pppppppcVar28 = pppppppcVar33;\n                  if (unaff_s7 != (code *******)0x0) break;\n                  if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                }\n                else {\n                  unaff_s7 = (code *******)pppppppcVar14[10];\nLAB_00054d1c:\n                  pppppppcVar28 = (code *******)PTR_s_nt0_000795b8;\n                  if (unaff_s7 != (code *******)0x0) break;\n                }\n                pppppppcVar28 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                local_dc = (code *******)\n                           (*(code *)PTR___assert_fail_000799f8)\n                                     (PTR_s_nt0_000795b8 + 0x71a0,pppppppcVar29,0x435);\n                if (local_dc == pppppppcVar26) {\n                  if ((int)local_dc < (int)param_3) {\n                    uVar7 = (uint)(byte)*(code *)((int)local_dc + (int)param_2);\n                  }\n                  else {\n                    uVar7 = 0;\n                  }\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    uVar7 = (uint)*(byte *)((int)ppppppcVar32 + uVar7);\n                  }\n                  if (*(code *)((int)local_148 + uVar7) == (code)0x0) {\n                    local_150 = (code *******)0x1;\n                    pppppppcVar30 = param_9;\n                    pppppppcVar33 = pppppppcVar28;\n                    goto LAB_000557e4;\n                  }\n                }\n              }\n              pppppppcVar33 = pppppppcVar28;\n              bVar1 = pppppppcVar36 != (code *******)0x0;\n              if ((local_50 == (code *******)0x0) ||\n                 (local_50[(int)pppppppcVar42] = (code ******)unaff_s7,\n                 pppppppcVar14[0x13] == (code ******)0x0)) {\nLAB_00054d50:\n                if ((int)unaff_s7[0xd] << 4 < 0) {\n                  if ((((uint)unaff_s7[0xd] & 0x1000000) == 0) ||\n                     (pppppppcVar29 = unaff_s7, pppppppcVar30 = pppppppcVar42,\n                     iVar18 = FUN_00049440(&local_b4), iVar18 != 0)) {\n                    unaff_s8 = pppppppcVar42;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                  }\n                  else {\n                    pppppppcVar42 = (code *******)0xffffffff;\n                    pppppppcVar28 = (code *******)0x0;\n                  }\n                }\n                else {\n                  pppppppcVar42 = (code *******)0xffffffff;\n                  pppppppcVar28 = (code *******)0x0;\n                }\n                pcVar8 = (code *)(PTR_DAT_000799a4 + -0x7144);\n                pcVar9 = (code *)(PTR_DAT_000799a4 + -0x1980);\n                pcVar10 = (code *)(PTR_DAT_000799a4 + -0x2f9c);\n                unaff_s8 = pppppppcVar42;\n                local_144 = pppppppcVar36;\n                while( true ) {\n                  uVar44 = CONCAT44(local_98,local_84);\n                  unaff_s5 = (code *******)((int)local_8c + 1);\n                  pppppppcVar29 = local_8c;\n                  if ((int)local_7c <= (int)local_8c) break;\n                  if (((int)local_90 <= (int)unaff_s5) && ((int)local_90 < (int)local_84))\n                  goto LAB_00054e94;\n                  if ((int)local_98 <= (int)unaff_s5) {\n                    while ((int)((ulonglong)uVar44 >> 0x20) < (int)uVar44) {\nLAB_00054e94:\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 2);\n                      local_d8 = (code *******)(*pcVar8)(&local_b4);\n                      if (local_d8 == (code *******)0x0) break;\n                      pppppppcVar14 = param_4;\n                      if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                      pppppppcVar33 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                      pppppppcVar30 = (code *******)0x46c;\n                      pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                      uVar44 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0);\n                      pppppppcVar28 = pppppppcVar38;\n                    }\n                  }\n                  pppppppcVar42 = local_60;\n                  if ((int)unaff_s7[0xd] << 5 < 0) {\n                    pppppppcVar31 = pppppppcVar42;\n                    if (0 < (int)unaff_s7[2]) {\n                      pcVar11 = (code *)(PTR_DAT_000799a4 + -0x6fdc);\n                      pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6ef0);\n                      param_6 = (code *******)0x0;\n                      do {\n                        param_5 = (code *******)unaff_s7[3][(int)param_6];\n                        ppppppcVar39 = *pppppppcVar42;\n                        pppppcVar13 = ppppppcVar39[(int)param_5 * 2 + 1];\n                        if (((uint)pppppcVar13 & 0x800) != 0) {\n                          if (((uint)pppppcVar13 & 0xffc000) != 0) {\n                            pppppppcVar29 = local_8c;\n                            uVar19 = (*pcVar12)(&local_b4,local_8c,local_5c);\n                            uVar7 = (uint)((int)ppppppcVar39[(int)param_5 * 2 + 1] << 8) >> 0x16;\n                            if ((uVar7 & 4) == 0) {\n                              uVar27 = uVar19 & 1;\n                              if ((uVar7 & 8) != 0) goto joined_r0x00054f40;\n                            }\n                            else {\n                              uVar27 = uVar7 & 8;\n                              if ((uVar19 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                              if (uVar27 != 0) goto LAB_000550a4;\n                            }\n                            if ((((uVar7 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                               (((uVar7 & 0x80) != 0 &&\n                                (pppppppcVar33 = local_8c, (uVar19 & 8) == 0)))) goto LAB_000550a4;\n                          }\n                          pppppppcVar30 = &local_b4;\n                          pppppppcVar29 = param_5;\n                          pppppppcVar33 = local_8c;\n                          iVar18 = (*pcVar10)(pppppppcVar42);\n                          if (iVar18 != 0) {\n                            pppppppcVar14 = (code *******)((int)local_8c + iVar18);\n                            if (iVar18 <= local_3c) {\n                              iVar18 = local_3c;\n                            }\n                            pppppppcVar29 = pppppppcVar14;\n                            local_3c = iVar18;\n                            local_d4 = (code *******)(*pcVar11)(&local_b4);\n                            pppppppcVar15 = local_d4;\n                            if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                            pppppppcVar30 =\n                                 (code *******)\n                                 (pppppppcVar42[6] + (int)pppppppcVar42[3][(int)param_5] * 3);\n                            unaff_s4 = (code *******)((int)pppppppcVar14 * 4);\n                            param_5 = local_50 + (int)pppppppcVar14;\n                            if (*param_5 == (code ******)0x0) {\n                              local_d0 = (code *******)*pppppppcVar30;\n                              local_cc = (code *******)pppppppcVar30[1];\n                              local_c8 = (code *******)pppppppcVar30[2];\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *param_5 = ppppppcVar39;\n                            }\n                            else {\n                              pppppppcVar29 = (code *******)(*param_5)[10];\n                              local_d4 = (code *******)FUN_000484bc(&local_d0);\n                              pppppppcVar15 = local_d4;\n                              if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar15 = local_50 + (int)pppppppcVar14;\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *pppppppcVar15 = ppppppcVar39;\n                              (*(code *)PTR_free_00079c24)(local_c8);\n                            }\n                            unaff_s4 = local_50 + (int)pppppppcVar14;\n                            if ((*unaff_s4 == (code ******)0x0) &&\n                               (pppppppcVar15 = local_d4, local_d4 != (code *******)0x0))\n                            goto LAB_00055e44;\n                          }\n                        }\nLAB_000550a4:\n                        param_6 = (code *******)((int)param_6 + 1);\n                      } while ((int)param_6 < (int)unaff_s7[2]);\n                    }\n                    local_d8 = (code *******)0x0;\n                  }\n                  uVar7 = (uint)(byte)*(code *)((int)local_8c + (int)local_b0);\n                  local_8c = (code *******)((int)local_8c + 1);\n                  do {\n                    if (unaff_s7[0xb] != (code ******)0x0) {\n                      pppppppcVar30 = (code *******)unaff_s7[0xb][uVar7];\nLAB_000553a0:\n                      pppppppcVar14 = pppppppcVar30;\n                      if (local_50 != (code *******)0x0) goto LAB_000553ac;\n                      goto LAB_000553cc;\n                    }\n                    pppppppcVar31 = (code *******)unaff_s7[0xc];\n                    if (pppppppcVar31 != (code *******)0x0) {\n                      pppppppcVar29 = (code *******)((int)local_8c + -1);\n                      uVar19 = FUN_00049110(&local_b4);\n                      if ((uVar19 & 1) == 0) {\n                        pppppppcVar30 = (code *******)pppppppcVar31[uVar7];\n                      }\n                      else {\n                        pppppppcVar31 = pppppppcVar31 + uVar7 + 0x100;\n                        pppppppcVar30 = (code *******)*pppppppcVar31;\n                      }\n                      goto LAB_000553a0;\n                    }\n                    pppppppcVar29 = unaff_s7;\n                    pppppppcVar30 = local_5c;\n                    iVar18 = (*pcVar9)(local_60);\n                  } while (iVar18 != 0);\n                  local_d8 = (code *******)0xc;\n                  pppppppcVar15 = local_d8;\nLAB_00055e44:\n                  local_d8 = pppppppcVar15;\n                  param_4 = (code *******)0x0;\n                  if (local_50 == (code *******)0x0) {\n                    pppppppcVar14 = param_4;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    break;\n                  }\n                  pppppppcVar30 = (code *******)0x0;\nLAB_000553ac:\n                  pppppppcVar29 = &local_b4;\n                  pppppppcVar14 = (code *******)FUN_00053684(&local_d8);\nLAB_000553cc:\n                  param_4 = pppppppcVar14;\n                  if (pppppppcVar14 == (code *******)0x0) {\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    if ((local_50 == (code *******)0x0) ||\n                       ((pppppppcVar28 != (code *******)0x0 && (pppppppcVar34 == (code *******)0x0))\n                       )) break;\n                    param_6 = &local_b4;\n                    param_5 = (code *******)&local_d8;\n                    pppppppcVar31 = (code *******)(PTR_DAT_000799a4 + 0x3684);\n                    do {\n                      pppppppcVar15 = local_50 + (int)local_8c;\n                      pppppppcVar42 = local_8c;\n                      do {\n                        pppppppcVar42 = (code *******)((int)pppppppcVar42 + 1);\n                        pppppppcVar29 = local_4c;\n                        param_4 = pppppppcVar14;\n                        if ((int)local_4c < (int)pppppppcVar42) goto LAB_00055da8;\n                        local_8c = (code *******)((int)local_8c + 1);\n                        pppppppcVar15 = pppppppcVar15 + 1;\n                      } while (*pppppppcVar15 == (code ******)0x0);\n                      pppppppcVar30 = (code *******)0x0;\n                      pppppppcVar29 = param_6;\n                      param_4 = (code *******)(*(code *)pppppppcVar31)(param_5);\n                      if (local_d8 != (code *******)0x0) {\n                        if (param_4 == (code *******)0x0) goto LAB_00055da8;\n                        break;\n                      }\n                      pppppppcVar29 = local_4c;\n                    } while (param_4 == (code *******)0x0);\n                  }\n                  pppppppcVar15 = (code *******)((uint)unaff_s7 ^ (uint)param_4);\n                  pppppppcVar42 = unaff_s7;\n                  pppppppcVar14 = local_138;\n                  if ((bVar1) &&\n                     (pppppppcVar42 = pppppppcVar15, pppppppcVar14 = unaff_s5,\n                     pppppppcVar15 != (code *******)0x0)) {\n                    bVar1 = false;\n                    pppppppcVar14 = local_138;\n                  }\n                  local_138 = pppppppcVar14;\n                  unaff_s7 = param_4;\n                  if ((((uint)param_4[0xd] & 0x8000000) != 0) &&\n                     ((((uint)param_4[0xd] & 0x1000000) == 0 ||\n                      (pppppppcVar29 = param_4, pppppppcVar30 = local_8c,\n                      iVar18 = FUN_00049440(&local_b4), iVar18 != 0)))) {\n                    unaff_s7 = pppppppcVar42;\n                    unaff_s8 = local_8c;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                    local_144 = (code *******)0x0;\n                    unaff_s7 = param_4;\n                  }\n                }\nLAB_00055da8:\n                if (local_144 != (code *******)0x0) {\n                  *local_144 = (code ******)((int)local_138 + (int)*local_144);\n                }\n              }\n              else {\n                param_4 = unaff_s7 + 1;\n                pppppppcVar30 = (code *******)0x0;\n                pppppppcVar29 = param_4;\n                local_d8 = (code *******)FUN_00047a44(&local_b4);\n                unaff_s8 = local_d8;\n                if (local_d8 == (code *******)0x0) {\n                  if (((uint)unaff_s7[0xd] & 0x2000000) == 0) {\n                    pppppppcVar29 = param_4;\n                    bVar1 = false;\n                  }\n                  else {\n                    pppppppcVar29 = param_4;\n                    local_d8 = (code *******)FUN_00052d84(&local_b4);\n                    unaff_s8 = local_d8;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055dbc;\n                    bVar1 = false;\n                  }\n                  goto LAB_00054d50;\n                }\n              }\nLAB_00055dbc:\n              if (unaff_s8 == (code *******)0xffffffff) {\nLAB_00055b04:\n                FUN_0004b7e8(&local_b4);\nLAB_00055b1c:\n                local_dc = (code *******)((int)pppppppcVar24 + (int)local_dc);\n                if ((int)pppppppcVar25 <= (int)local_dc) goto code_r0x00055b38;\n                local_150 = (code *******)0x1;\n                goto LAB_000557e4;\n              }\n              if (unaff_s8 == (code *******)&SUB_fffffffe) {\n                local_150 = (code *******)0xc;\n                goto LAB_000557e4;\n              }\n              local_58 = unaff_s8;\n              if (((uint)param_1[7] & 0x8000000) == 0) {\n                if (pppppppcVar3 < (code *******)0x2) {\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055c08;\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                else {\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                if (pppppppcVar3 < (code *******)0x2) {\nLAB_00055c6c:\n                  pppppppcVar28 = pppppppcVar33;\n                  unaff_s4 = local_60;\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055548;\n                }\n                else {\n                  cVar23 = *(code *)(pppppppcVar38 + 0x16);\nLAB_00055c20:\n                  pppppppcVar28 = pppppppcVar33;\n                  if (-1 < (char)cVar23) goto LAB_00055c6c;\n                }\n                pppppppcVar31 = local_54;\n                pppppppcVar42 = local_60;\n                unaff_s4 = pppppppcVar42;\n                if (unaff_s8 < (code *******)0x3fffffff) {\n                  param_4 = (code *******)((int)((int)unaff_s8 + 1) * 4);\n                  unaff_s5 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                  if (unaff_s5 == (code *******)0x0) {\nLAB_00055b9c:\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    local_150 = (code *******)0xc;\n                    pppppppcVar33 = pppppppcVar28;\n                  }\n                  else {\n                    pppppppcVar29 = (code *******)&local_d0;\n                    if (pppppppcVar42[0x13] == (code ******)0x0) {\n                      local_cc = (code *******)0x0;\n                      local_c8 = pppppppcVar31;\n                      local_c0 = 0;\n                      local_bc = 0;\n                      local_b8 = 0;\n                      local_d0 = unaff_s5;\n                      local_c4 = unaff_s8;\n                      param_5 = (code *******)FUN_0005421c(&local_b4);\n                      (*(code *)PTR_free_00079c24)(local_b8);\n                      if (param_5 == (code *******)0x0) {\n                        param_4 = (code *******)*unaff_s5;\n                        if (param_4 == (code *******)0x0) {\nLAB_00055b70:\n                          (*(code *)PTR_free_00079c24)(unaff_s5);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          pppppppcVar33 = pppppppcVar28;\n                          goto LAB_00055b04;\n                        }\nLAB_00055528:\n                        (*(code *)PTR_free_00079c24)(local_50);\n                        pppppppcVar33 = pppppppcVar28;\n                        unaff_s4 = pppppppcVar42;\n                        local_58 = unaff_s8;\n                        local_54 = pppppppcVar31;\n                        local_50 = unaff_s5;\n                        goto LAB_00055548;\n                      }\nLAB_00055acc:\n                      param_4 = (code *******)0x0;\n                      pppppppcVar33 = pppppppcVar28;\n                      unaff_s4 = pppppppcVar42;\n                    }\n                    else {\n                      param_4 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                      if (param_4 == (code *******)0x0) goto LAB_00055b9c;\n                      unaff_s7 = (code *******)&local_d0;\n                      pcVar8 = (code *)(PTR_DAT_000799a4 + 0x421c);\n                      pcVar9 = (code *)(PTR_DAT_000799a4 + -0x6bc0);\n                      pppppppcVar33 = pppppppcVar28;\n                      while( true ) {\n                        pppppppcVar28 = (code *******)((int)unaff_s8 + 1);\n                        param_6 = (code *******)((int)pppppppcVar28 * 4);\n                        pppppppcVar30 = param_6;\n                        (*(code *)PTR_memset_00079b00)(param_4,0);\n                        local_c0 = 0;\n                        local_bc = 0;\n                        local_b8 = 0;\n                        pppppppcVar29 = unaff_s7;\n                        local_d0 = unaff_s5;\n                        local_cc = param_4;\n                        local_c8 = pppppppcVar31;\n                        local_c4 = unaff_s8;\n                        param_5 = (code *******)(*pcVar8)(&local_b4);\n                        (*(code *)PTR_free_00079c24)(local_b8);\n                        unaff_s4 = pppppppcVar28;\n                        if (param_5 != (code *******)0x0) break;\n                        if ((*unaff_s5 != (code ******)0x0) ||\n                           (param_6 = param_6 + -1, *param_4 != (code ******)0x0)) {\n                          pppppppcVar29 = unaff_s5;\n                          pppppppcVar30 = param_4;\n                          param_5 = (code *******)FUN_000520d0(pppppppcVar42);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          if (param_5 != (code *******)0x0) goto LAB_00055acc;\n                          goto LAB_00055528;\n                        }\n                        param_6 = (code *******)((int)local_50 + (int)param_6);\n                        do {\n                          while( true ) {\n                            unaff_s8 = (code *******)((int)unaff_s8 + -1);\n                            if ((int)unaff_s8 < 0) goto LAB_00055b70;\n                            pppppppcVar29 = (code *******)param_6[-1];\n                            if (pppppppcVar29 != (code *******)0x0) break;\n                            param_6 = param_6 + -1;\n                          }\n                          param_6 = param_6 + -1;\n                        } while (((uint)pppppppcVar29[0xd] & 0x8000000) == 0);\n                        pppppppcVar31 = (code *******)(*pcVar9)(&local_b4,pppppppcVar29,unaff_s8);\n                        pppppppcVar33 = pppppppcVar28;\n                      }\n                    }\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    (*(code *)PTR_free_00079c24)(param_4);\n                    local_150 = param_5;\n                    if (param_5 == (code *******)0x1) goto LAB_00055b04;\n                  }\n                }\n                else {\n                  local_150 = (code *******)0xc;\n                  pppppppcVar33 = pppppppcVar28;\n                }\n                goto LAB_000557e4;\n              }\n              if (pppppppcVar38[0x13] != (code ******)0x0) {\n                pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                pppppppcVar30 = unaff_s8;\n                local_54 = (code *******)FUN_00049440(&local_b4);\n                goto LAB_00055c6c;\n              }\nLAB_00055c08:\n              if ((((uint)param_1[7] & 0x8000000) == 0) && ((code *******)0x1 < pppppppcVar3)) {\n                cVar23 = *(code *)(pppppppcVar38 + 0x16);\n                goto LAB_00055c20;\n              }\nLAB_00055548:\n              if (pppppppcVar3 == (code *******)0x0) goto LAB_000557e4;\n              if (pppppppcVar3 < (code *******)0x2) {\n                *param_8 = (code ******)0x0;\n                param_8[1] = (code ******)local_58;\n                goto LAB_000555ac;\n              }\n              pppppppcVar29 = param_8 + 2;\n              do {\n                pppppppcVar29[1] = (code ******)0xffffffff;\n                *pppppppcVar29 = (code ******)0xffffffff;\n                pppppppcVar29 = pppppppcVar29 + 2;\n              } while (pppppppcVar29 != param_8 + (int)pppppppcVar3 * 2);\n              *param_8 = (code ******)0x0;\n              param_8[1] = (code ******)local_58;\n              if (((uint)param_1[7] & 0x8000000) != 0) {\nLAB_000555ac:\n                pppppppcVar33 = param_8;\n                do {\n                  pppppppcVar29 = (code *******)*pppppppcVar33;\n                  if (pppppppcVar29 != (code *******)0xffffffff) {\n                    if (local_68 != '\0') {\n                      pppppppcVar34 = local_94;\n                      if (pppppppcVar29 != local_98) {\n                        pppppppcVar34 = *(code ********)(local_a8 + (int)pppppppcVar29 * 4);\n                      }\n                      *pppppppcVar33 = (code ******)pppppppcVar34;\n                      pppppppcVar29 = local_94;\n                      if (local_98 != (code *******)pppppppcVar33[1]) {\n                        pppppppcVar29 = *(code ********)(local_a8 + (int)pppppppcVar33[1] * 4);\n                      }\n                      pppppppcVar33[1] = (code ******)pppppppcVar29;\n                    }\n                    *pppppppcVar33 = (code ******)((int)local_dc + (int)*pppppppcVar33);\n                    pppppppcVar29 = (code *******)((int)local_dc + (int)pppppppcVar33[1]);\n                    pppppppcVar33[1] = (code ******)pppppppcVar29;\n                  }\n                  pppppppcVar33 = pppppppcVar33 + 2;\n                } while (pppppppcVar33 != param_8 + (int)pppppppcVar3 * 2);\n                if (0 < local_118) {\n                  pppppppcVar33 = param_8 + (int)pppppppcVar3 * 2;\n                  do {\n                    *pppppppcVar33 = (code ******)0xffffffff;\n                    pppppppcVar33[1] = (code ******)0xffffffff;\n                    pppppppcVar33 = pppppppcVar33 + 2;\n                  } while (pppppppcVar33 != param_8 + (int)param_7 * 2);\n                }\n                pppppppcVar30 = local_dc;\n                pppppppcVar33 = param_8;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar38[0x21] != (code ******)0x0) {\n                  pppppppcVar30 = (code *******)((int)pppppppcVar3 + -1);\n                  pppppppcVar34 = (code *******)0x0;\n                  pppppppcVar3 = param_8;\n                  while( true ) {\n                    pppppppcVar29 = (code *******)((int)pppppppcVar34 * 4);\n                    if (pppppppcVar30 == pppppppcVar34) break;\n                    if (*(code ********)((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) !=\n                        pppppppcVar34) {\n                      pppppppcVar3[2] =\n                           param_8[(int)((int)*(code ********)\n                                               ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1)\n                                   * 2];\n                      pppppppcVar3[3] =\n                           param_8[((int)*(code ******)\n                                          ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1) * 2 +\n                                   1];\n                    }\n                    pppppppcVar34 = (code *******)((int)pppppppcVar34 + 1);\n                    pppppppcVar3 = pppppppcVar3 + 2;\n                  }\n                }\n                goto LAB_000557e4;\n              }\n              if ((char)*(code *)(pppppppcVar38 + 0x16) < '\0') {\n                local_168 = (uint)(0 < (int)pppppppcVar38[0x13]);\n              }\n              else {\n                local_168 = 0;\n              }\n              pppppppcVar29 = &local_b4;\n              pppppppcVar30 = pppppppcVar3;\n              pppppppcVar33 = param_8;\n              local_150 = (code *******)FUN_0004f4a0(param_1);\n              if (local_150 == (code *******)0x0) goto LAB_000555ac;\n            }\n          }" { (expression_statement "local_50 = (code *******)0x0;" (assignment_expression "local_50 = (code *******)0x0" identifier = (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (labeled_statement "LAB_00055a40:\n            local_78 = 6;" statement_identifier : (expression_statement "local_78 = 6;" (assignment_expression "local_78 = 6" identifier = number_literal) ;)) (if_statement "if (((uint)param_9 & 1) != 0) {\n              local_78 = 4;\n            }" if (parenthesized_expression "(((uint)param_9 & 1) != 0)" ( (binary_expression "((uint)param_9 & 1) != 0" (parenthesized_expression "((uint)param_9 & 1)" ( (binary_expression "(uint)param_9 & 1" (cast_expression "(uint)param_9" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n              local_78 = 4;\n            }" { (expression_statement "local_78 = 4;" (assignment_expression "local_78 = 4" identifier = number_literal) ;) })) (expression_statement "pppppppcVar24 = (code *******)0x1;" (assignment_expression "pppppppcVar24 = (code *******)0x1" identifier = (cast_expression "(code *******)0x1" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "pppppppcVar25 = param_4;" (assignment_expression "pppppppcVar25 = param_4" identifier = identifier) ;) (if_statement "if ((int)param_5 < (int)param_4) {\n              pppppppcVar24 = (code *******)0xffffffff;\n              pppppppcVar25 = param_5;\n            }" if (parenthesized_expression "((int)param_5 < (int)param_4)" ( (binary_expression "(int)param_5 < (int)param_4" (cast_expression "(int)param_5" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)param_4" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n              pppppppcVar24 = (code *******)0xffffffff;\n              pppppppcVar25 = param_5;\n            }" { (expression_statement "pppppppcVar24 = (code *******)0xffffffff;" (assignment_expression "pppppppcVar24 = (code *******)0xffffffff" identifier = (cast_expression "(code *******)0xffffffff" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "pppppppcVar25 = param_5;" (assignment_expression "pppppppcVar25 = param_5" identifier = identifier) ;) })) (expression_statement "pppppppcVar26 = param_5;" (assignment_expression "pppppppcVar26 = param_5" identifier = identifier) ;) (if_statement "if ((int)param_5 <= (int)param_4) {\n              pppppppcVar26 = param_4;\n            }" if (parenthesized_expression "((int)param_5 <= (int)param_4)" ( (binary_expression "(int)param_5 <= (int)param_4" (cast_expression "(int)param_5" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)param_4" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n              pppppppcVar26 = param_4;\n            }" { (expression_statement "pppppppcVar26 = param_4;" (assignment_expression "pppppppcVar26 = param_4" identifier = identifier) ;) })) (expression_statement "ppppppcVar35 = pppppppcVar38[0x17];" (assignment_expression "ppppppcVar35 = pppppppcVar38[0x17]" identifier = (subscript_expression "pppppppcVar38[0x17]" identifier [ number_literal ])) ;) (expression_statement "uVar16 = 8;" (assignment_expression "uVar16 = 8" identifier = number_literal) ;) (if_statement "if (local_148 != (code *******)0x0) {\n              if (ppppppcVar35 == (code ******)0x1) {\n                pppppppcVar28 = (code *******)0x4;\n              }\n              else {\n                pppppppcVar28 = pppppppcVar2;\n                if ((-1 < (int)param_1[3] << 9) && (ppppppcVar32 == (code ******)0x0)) {\n                  pppppppcVar28 = (code *******)0x4;\n                }\n              }\n              pppppppcVar29 = (code *******)0x0;\n              if ((int)param_4 <= (int)param_5) {\n                pppppppcVar29 = (code *******)0x2;\n              }\n              uVar16 = (uint)(ppppppcVar32 != (code ******)0x0) | (uint)pppppppcVar28 |\n                       (uint)pppppppcVar29;\n            }" if (parenthesized_expression "(local_148 != (code *******)0x0)" ( (binary_expression "local_148 != (code *******)0x0" identifier != (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\n              if (ppppppcVar35 == (code ******)0x1) {\n                pppppppcVar28 = (code *******)0x4;\n              }\n              else {\n                pppppppcVar28 = pppppppcVar2;\n                if ((-1 < (int)param_1[3] << 9) && (ppppppcVar32 == (code ******)0x0)) {\n                  pppppppcVar28 = (code *******)0x4;\n                }\n              }\n              pppppppcVar29 = (code *******)0x0;\n              if ((int)param_4 <= (int)param_5) {\n                pppppppcVar29 = (code *******)0x2;\n              }\n              uVar16 = (uint)(ppppppcVar32 != (code ******)0x0) | (uint)pppppppcVar28 |\n                       (uint)pppppppcVar29;\n            }" { (if_statement "if (ppppppcVar35 == (code ******)0x1) {\n                pppppppcVar28 = (code *******)0x4;\n              }\n              else {\n                pppppppcVar28 = pppppppcVar2;\n                if ((-1 < (int)param_1[3] << 9) && (ppppppcVar32 == (code ******)0x0)) {\n                  pppppppcVar28 = (code *******)0x4;\n                }\n              }" if (parenthesized_expression "(ppppppcVar35 == (code ******)0x1)" ( (binary_expression "ppppppcVar35 == (code ******)0x1" identifier == (cast_expression "(code ******)0x1" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (compound_statement "{\n                pppppppcVar28 = (code *******)0x4;\n              }" { (expression_statement "pppppppcVar28 = (code *******)0x4;" (assignment_expression "pppppppcVar28 = (code *******)0x4" identifier = (cast_expression "(code *******)0x4" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) }) (else_clause "else {\n                pppppppcVar28 = pppppppcVar2;\n                if ((-1 < (int)param_1[3] << 9) && (ppppppcVar32 == (code ******)0x0)) {\n                  pppppppcVar28 = (code *******)0x4;\n                }\n              }" else (compound_statement "{\n                pppppppcVar28 = pppppppcVar2;\n                if ((-1 < (int)param_1[3] << 9) && (ppppppcVar32 == (code ******)0x0)) {\n                  pppppppcVar28 = (code *******)0x4;\n                }\n              }" { (expression_statement "pppppppcVar28 = pppppppcVar2;" (assignment_expression "pppppppcVar28 = pppppppcVar2" identifier = identifier) ;) (if_statement "if ((-1 < (int)param_1[3] << 9) && (ppppppcVar32 == (code ******)0x0)) {\n                  pppppppcVar28 = (code *******)0x4;\n                }" if (parenthesized_expression "((-1 < (int)param_1[3] << 9) && (ppppppcVar32 == (code ******)0x0))" ( (binary_expression "(-1 < (int)param_1[3] << 9) && (ppppppcVar32 == (code ******)0x0)" (parenthesized_expression "(-1 < (int)param_1[3] << 9)" ( (binary_expression "-1 < (int)param_1[3] << 9" number_literal < (binary_expression "(int)param_1[3] << 9" (cast_expression "(int)param_1[3]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_1[3]" identifier [ number_literal ])) << number_literal)) )) && (parenthesized_expression "(ppppppcVar32 == (code ******)0x0)" ( (binary_expression "ppppppcVar32 == (code ******)0x0" identifier == (cast_expression "(code ******)0x0" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ))) )) (compound_statement "{\n                  pppppppcVar28 = (code *******)0x4;\n                }" { (expression_statement "pppppppcVar28 = (code *******)0x4;" (assignment_expression "pppppppcVar28 = (code *******)0x4" identifier = (cast_expression "(code *******)0x4" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) })) }))) (expression_statement "pppppppcVar29 = (code *******)0x0;" (assignment_expression "pppppppcVar29 = (code *******)0x0" identifier = (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (if_statement "if ((int)param_4 <= (int)param_5) {\n                pppppppcVar29 = (code *******)0x2;\n              }" if (parenthesized_expression "((int)param_4 <= (int)param_5)" ( (binary_expression "(int)param_4 <= (int)param_5" (cast_expression "(int)param_4" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)param_5" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                pppppppcVar29 = (code *******)0x2;\n              }" { (expression_statement "pppppppcVar29 = (code *******)0x2;" (assignment_expression "pppppppcVar29 = (code *******)0x2" identifier = (cast_expression "(code *******)0x2" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) })) (expression_statement "uVar16 = (uint)(ppppppcVar32 != (code ******)0x0) | (uint)pppppppcVar28 |\n                       (uint)pppppppcVar29;" (assignment_expression "uVar16 = (uint)(ppppppcVar32 != (code ******)0x0) | (uint)pppppppcVar28 |\n                       (uint)pppppppcVar29" identifier = (binary_expression "(uint)(ppppppcVar32 != (code ******)0x0) | (uint)pppppppcVar28 |\n                       (uint)pppppppcVar29" (binary_expression "(uint)(ppppppcVar32 != (code ******)0x0) | (uint)pppppppcVar28" (call_expression "(uint)(ppppppcVar32 != (code ******)0x0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(ppppppcVar32 != (code ******)0x0)" ( (binary_expression "ppppppcVar32 != (code ******)0x0" identifier != (cast_expression "(code ******)0x0" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ))) | (cast_expression "(uint)pppppppcVar28" ( (type_descriptor "uint" type_identifier) ) identifier)) | (cast_expression "(uint)pppppppcVar29" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) })) (expression_statement "local_dc = param_4;" (assignment_expression "local_dc = param_4" identifier = identifier) ;) (if_statement "if ((int)param_4 < (int)pppppppcVar25) {\n              local_150 = (code *******)0x1;\n              param_6 = pppppppcVar36;\n            }\n            else if ((int)pppppppcVar26 < (int)param_4) {\n              local_150 = (code *******)0x1;\n              param_4 = (code *******)(uint)((int)param_5 < (int)param_4);\n              param_6 = pppppppcVar36;\n            }\n            else {\n              pppppppcVar36 = (code *******)&local_dc;\n              if ((code *******)(uint)((int)param_5 < (int)param_4) != (code *******)0x0) {\n                pppppppcVar36 = (code *******)0x0;\n              }\n              pcVar4 = (code *)(PTR_DAT_000799a4 + -0x2b7c);\n              piVar5 = (int *)(PTR_s_nt0_000795b8 + (uVar16 - 4) * 4 + 0x6e38);\nLAB_00055b44:\n              if (uVar16 - 4 < 5) {\n                    \n                    \n                pppppppcVar29 = (code *******)(*(code *)(&_gp_1 + *piVar5))();\n                return pppppppcVar29;\n              }\n              param_5 = &local_b4;\n              pppppppcVar28 = pppppppcVar33;\n              while( true ) {\n                param_4 = local_dc;\n                pppppppcVar33 = (code *******)((int)local_dc - local_9c);\n                pppppppcVar30 = param_9;\n                pppppppcVar31 = pppppppcVar2;\n                param_6 = local_148;\n                unaff_s4 = param_3;\n                unaff_s5 = pppppppcVar24;\n                unaff_s7 = pppppppcVar26;\n                if (local_94 <= pppppppcVar33) {\n                  pppppppcVar29 = local_dc;\n                  local_150 = (code *******)(*pcVar4)(param_5);\n                  pppppppcVar33 = pppppppcVar28;\n                  if (local_150 != (code *******)0x0) goto LAB_000557e4;\n                  pppppppcVar33 = (code *******)((int)param_4 - local_9c);\n                }\n                if ((int)param_4 < (int)param_3) {\n                  uVar7 = (uint)(byte)*(code *)((int)pppppppcVar33 + (int)local_b0);\n                }\n                else {\n                  uVar7 = 0;\n                }\n                param_4 = (code *******)((int)param_4 + (int)pppppppcVar24);\n                if (*(code *)((int)local_148 + uVar7) != (code)0x0) break;\n                pppppppcVar33 = pppppppcVar28;\n                local_dc = param_4;\n                if ((int)param_4 < (int)pppppppcVar25) {\n                  local_150 = (code *******)0x1;\n                  goto LAB_000557e4;\n                }\n                if ((code *******)(uint)((int)pppppppcVar26 < (int)param_4) != (code *******)0x0) {\n                  local_150 = (code *******)0x1;\n                  param_4 = (code *******)(uint)((int)pppppppcVar26 < (int)param_4);\n                  goto LAB_000557e4;\n                }\n              }\n              while( true ) {\n                pppppppcVar29 = local_dc;\n                pppppppcVar30 = param_9;\n                pppppppcVar6 = (code *******)(*pcVar4)(&local_b4);\n                pppppppcVar14 = local_60;\n                pppppppcVar42 = local_8c;\n                pppppppcVar33 = pppppppcVar28;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar6 != (code *******)0x0) goto LAB_000557e4;\n                if (((ppppppcVar35 != (code ******)0x1) && (local_98 != (code *******)0x0)) &&\n                   (*local_ac == -1)) goto LAB_00055b1c;\n                local_3c = 0;\n                local_48 = 0;\n                local_4c = (code *******)0x0;\n                local_138 = local_8c;\n                local_d8 = (code *******)0x0;\n                unaff_s7 = (code *******)local_60[9];\n                pppppppcVar30 = local_5c;\n                param_4 = pppppppcVar14;\n                if (((uint)unaff_s7[0xd] & 0x1000000) == 0) break;\n                pppppppcVar29 = (code *******)((int)local_8c + -1);\n                pppppppcVar33 = (code *******)FUN_00049110(&local_b4);\n                if (((uint)pppppppcVar33 & 1) == 0) {\n                  if (pppppppcVar33 == (code *******)0x0) break;\n                  if (((uint)pppppppcVar33 & 6) == 6) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xc];\n                    goto LAB_00054d1c;\n                  }\n                  if (((uint)pppppppcVar33 & 2) != 0) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xb];\n                    goto LAB_00054d1c;\n                  }\n                  pppppppcVar28 = pppppppcVar33;\n                  if (((uint)pppppppcVar33 & 4) == 0) break;\n                  pppppppcVar30 = (code *******)unaff_s7[10];\n                  pppppppcVar29 = pppppppcVar14;\n                  unaff_s7 = (code *******)FUN_0004ae34(&local_d8);\n                  pppppppcVar28 = pppppppcVar33;\n                  if (unaff_s7 != (code *******)0x0) break;\n                  if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                }\n                else {\n                  unaff_s7 = (code *******)pppppppcVar14[10];\nLAB_00054d1c:\n                  pppppppcVar28 = (code *******)PTR_s_nt0_000795b8;\n                  if (unaff_s7 != (code *******)0x0) break;\n                }\n                pppppppcVar28 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                local_dc = (code *******)\n                           (*(code *)PTR___assert_fail_000799f8)\n                                     (PTR_s_nt0_000795b8 + 0x71a0,pppppppcVar29,0x435);\n                if (local_dc == pppppppcVar26) {\n                  if ((int)local_dc < (int)param_3) {\n                    uVar7 = (uint)(byte)*(code *)((int)local_dc + (int)param_2);\n                  }\n                  else {\n                    uVar7 = 0;\n                  }\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    uVar7 = (uint)*(byte *)((int)ppppppcVar32 + uVar7);\n                  }\n                  if (*(code *)((int)local_148 + uVar7) == (code)0x0) {\n                    local_150 = (code *******)0x1;\n                    pppppppcVar30 = param_9;\n                    pppppppcVar33 = pppppppcVar28;\n                    goto LAB_000557e4;\n                  }\n                }\n              }\n              pppppppcVar33 = pppppppcVar28;\n              bVar1 = pppppppcVar36 != (code *******)0x0;\n              if ((local_50 == (code *******)0x0) ||\n                 (local_50[(int)pppppppcVar42] = (code ******)unaff_s7,\n                 pppppppcVar14[0x13] == (code ******)0x0)) {\nLAB_00054d50:\n                if ((int)unaff_s7[0xd] << 4 < 0) {\n                  if ((((uint)unaff_s7[0xd] & 0x1000000) == 0) ||\n                     (pppppppcVar29 = unaff_s7, pppppppcVar30 = pppppppcVar42,\n                     iVar18 = FUN_00049440(&local_b4), iVar18 != 0)) {\n                    unaff_s8 = pppppppcVar42;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                  }\n                  else {\n                    pppppppcVar42 = (code *******)0xffffffff;\n                    pppppppcVar28 = (code *******)0x0;\n                  }\n                }\n                else {\n                  pppppppcVar42 = (code *******)0xffffffff;\n                  pppppppcVar28 = (code *******)0x0;\n                }\n                pcVar8 = (code *)(PTR_DAT_000799a4 + -0x7144);\n                pcVar9 = (code *)(PTR_DAT_000799a4 + -0x1980);\n                pcVar10 = (code *)(PTR_DAT_000799a4 + -0x2f9c);\n                unaff_s8 = pppppppcVar42;\n                local_144 = pppppppcVar36;\n                while( true ) {\n                  uVar44 = CONCAT44(local_98,local_84);\n                  unaff_s5 = (code *******)((int)local_8c + 1);\n                  pppppppcVar29 = local_8c;\n                  if ((int)local_7c <= (int)local_8c) break;\n                  if (((int)local_90 <= (int)unaff_s5) && ((int)local_90 < (int)local_84))\n                  goto LAB_00054e94;\n                  if ((int)local_98 <= (int)unaff_s5) {\n                    while ((int)((ulonglong)uVar44 >> 0x20) < (int)uVar44) {\nLAB_00054e94:\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 2);\n                      local_d8 = (code *******)(*pcVar8)(&local_b4);\n                      if (local_d8 == (code *******)0x0) break;\n                      pppppppcVar14 = param_4;\n                      if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                      pppppppcVar33 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                      pppppppcVar30 = (code *******)0x46c;\n                      pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                      uVar44 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0);\n                      pppppppcVar28 = pppppppcVar38;\n                    }\n                  }\n                  pppppppcVar42 = local_60;\n                  if ((int)unaff_s7[0xd] << 5 < 0) {\n                    pppppppcVar31 = pppppppcVar42;\n                    if (0 < (int)unaff_s7[2]) {\n                      pcVar11 = (code *)(PTR_DAT_000799a4 + -0x6fdc);\n                      pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6ef0);\n                      param_6 = (code *******)0x0;\n                      do {\n                        param_5 = (code *******)unaff_s7[3][(int)param_6];\n                        ppppppcVar39 = *pppppppcVar42;\n                        pppppcVar13 = ppppppcVar39[(int)param_5 * 2 + 1];\n                        if (((uint)pppppcVar13 & 0x800) != 0) {\n                          if (((uint)pppppcVar13 & 0xffc000) != 0) {\n                            pppppppcVar29 = local_8c;\n                            uVar19 = (*pcVar12)(&local_b4,local_8c,local_5c);\n                            uVar7 = (uint)((int)ppppppcVar39[(int)param_5 * 2 + 1] << 8) >> 0x16;\n                            if ((uVar7 & 4) == 0) {\n                              uVar27 = uVar19 & 1;\n                              if ((uVar7 & 8) != 0) goto joined_r0x00054f40;\n                            }\n                            else {\n                              uVar27 = uVar7 & 8;\n                              if ((uVar19 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                              if (uVar27 != 0) goto LAB_000550a4;\n                            }\n                            if ((((uVar7 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                               (((uVar7 & 0x80) != 0 &&\n                                (pppppppcVar33 = local_8c, (uVar19 & 8) == 0)))) goto LAB_000550a4;\n                          }\n                          pppppppcVar30 = &local_b4;\n                          pppppppcVar29 = param_5;\n                          pppppppcVar33 = local_8c;\n                          iVar18 = (*pcVar10)(pppppppcVar42);\n                          if (iVar18 != 0) {\n                            pppppppcVar14 = (code *******)((int)local_8c + iVar18);\n                            if (iVar18 <= local_3c) {\n                              iVar18 = local_3c;\n                            }\n                            pppppppcVar29 = pppppppcVar14;\n                            local_3c = iVar18;\n                            local_d4 = (code *******)(*pcVar11)(&local_b4);\n                            pppppppcVar15 = local_d4;\n                            if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                            pppppppcVar30 =\n                                 (code *******)\n                                 (pppppppcVar42[6] + (int)pppppppcVar42[3][(int)param_5] * 3);\n                            unaff_s4 = (code *******)((int)pppppppcVar14 * 4);\n                            param_5 = local_50 + (int)pppppppcVar14;\n                            if (*param_5 == (code ******)0x0) {\n                              local_d0 = (code *******)*pppppppcVar30;\n                              local_cc = (code *******)pppppppcVar30[1];\n                              local_c8 = (code *******)pppppppcVar30[2];\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *param_5 = ppppppcVar39;\n                            }\n                            else {\n                              pppppppcVar29 = (code *******)(*param_5)[10];\n                              local_d4 = (code *******)FUN_000484bc(&local_d0);\n                              pppppppcVar15 = local_d4;\n                              if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar15 = local_50 + (int)pppppppcVar14;\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *pppppppcVar15 = ppppppcVar39;\n                              (*(code *)PTR_free_00079c24)(local_c8);\n                            }\n                            unaff_s4 = local_50 + (int)pppppppcVar14;\n                            if ((*unaff_s4 == (code ******)0x0) &&\n                               (pppppppcVar15 = local_d4, local_d4 != (code *******)0x0))\n                            goto LAB_00055e44;\n                          }\n                        }\nLAB_000550a4:\n                        param_6 = (code *******)((int)param_6 + 1);\n                      } while ((int)param_6 < (int)unaff_s7[2]);\n                    }\n                    local_d8 = (code *******)0x0;\n                  }\n                  uVar7 = (uint)(byte)*(code *)((int)local_8c + (int)local_b0);\n                  local_8c = (code *******)((int)local_8c + 1);\n                  do {\n                    if (unaff_s7[0xb] != (code ******)0x0) {\n                      pppppppcVar30 = (code *******)unaff_s7[0xb][uVar7];\nLAB_000553a0:\n                      pppppppcVar14 = pppppppcVar30;\n                      if (local_50 != (code *******)0x0) goto LAB_000553ac;\n                      goto LAB_000553cc;\n                    }\n                    pppppppcVar31 = (code *******)unaff_s7[0xc];\n                    if (pppppppcVar31 != (code *******)0x0) {\n                      pppppppcVar29 = (code *******)((int)local_8c + -1);\n                      uVar19 = FUN_00049110(&local_b4);\n                      if ((uVar19 & 1) == 0) {\n                        pppppppcVar30 = (code *******)pppppppcVar31[uVar7];\n                      }\n                      else {\n                        pppppppcVar31 = pppppppcVar31 + uVar7 + 0x100;\n                        pppppppcVar30 = (code *******)*pppppppcVar31;\n                      }\n                      goto LAB_000553a0;\n                    }\n                    pppppppcVar29 = unaff_s7;\n                    pppppppcVar30 = local_5c;\n                    iVar18 = (*pcVar9)(local_60);\n                  } while (iVar18 != 0);\n                  local_d8 = (code *******)0xc;\n                  pppppppcVar15 = local_d8;\nLAB_00055e44:\n                  local_d8 = pppppppcVar15;\n                  param_4 = (code *******)0x0;\n                  if (local_50 == (code *******)0x0) {\n                    pppppppcVar14 = param_4;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    break;\n                  }\n                  pppppppcVar30 = (code *******)0x0;\nLAB_000553ac:\n                  pppppppcVar29 = &local_b4;\n                  pppppppcVar14 = (code *******)FUN_00053684(&local_d8);\nLAB_000553cc:\n                  param_4 = pppppppcVar14;\n                  if (pppppppcVar14 == (code *******)0x0) {\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    if ((local_50 == (code *******)0x0) ||\n                       ((pppppppcVar28 != (code *******)0x0 && (pppppppcVar34 == (code *******)0x0))\n                       )) break;\n                    param_6 = &local_b4;\n                    param_5 = (code *******)&local_d8;\n                    pppppppcVar31 = (code *******)(PTR_DAT_000799a4 + 0x3684);\n                    do {\n                      pppppppcVar15 = local_50 + (int)local_8c;\n                      pppppppcVar42 = local_8c;\n                      do {\n                        pppppppcVar42 = (code *******)((int)pppppppcVar42 + 1);\n                        pppppppcVar29 = local_4c;\n                        param_4 = pppppppcVar14;\n                        if ((int)local_4c < (int)pppppppcVar42) goto LAB_00055da8;\n                        local_8c = (code *******)((int)local_8c + 1);\n                        pppppppcVar15 = pppppppcVar15 + 1;\n                      } while (*pppppppcVar15 == (code ******)0x0);\n                      pppppppcVar30 = (code *******)0x0;\n                      pppppppcVar29 = param_6;\n                      param_4 = (code *******)(*(code *)pppppppcVar31)(param_5);\n                      if (local_d8 != (code *******)0x0) {\n                        if (param_4 == (code *******)0x0) goto LAB_00055da8;\n                        break;\n                      }\n                      pppppppcVar29 = local_4c;\n                    } while (param_4 == (code *******)0x0);\n                  }\n                  pppppppcVar15 = (code *******)((uint)unaff_s7 ^ (uint)param_4);\n                  pppppppcVar42 = unaff_s7;\n                  pppppppcVar14 = local_138;\n                  if ((bVar1) &&\n                     (pppppppcVar42 = pppppppcVar15, pppppppcVar14 = unaff_s5,\n                     pppppppcVar15 != (code *******)0x0)) {\n                    bVar1 = false;\n                    pppppppcVar14 = local_138;\n                  }\n                  local_138 = pppppppcVar14;\n                  unaff_s7 = param_4;\n                  if ((((uint)param_4[0xd] & 0x8000000) != 0) &&\n                     ((((uint)param_4[0xd] & 0x1000000) == 0 ||\n                      (pppppppcVar29 = param_4, pppppppcVar30 = local_8c,\n                      iVar18 = FUN_00049440(&local_b4), iVar18 != 0)))) {\n                    unaff_s7 = pppppppcVar42;\n                    unaff_s8 = local_8c;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                    local_144 = (code *******)0x0;\n                    unaff_s7 = param_4;\n                  }\n                }\nLAB_00055da8:\n                if (local_144 != (code *******)0x0) {\n                  *local_144 = (code ******)((int)local_138 + (int)*local_144);\n                }\n              }\n              else {\n                param_4 = unaff_s7 + 1;\n                pppppppcVar30 = (code *******)0x0;\n                pppppppcVar29 = param_4;\n                local_d8 = (code *******)FUN_00047a44(&local_b4);\n                unaff_s8 = local_d8;\n                if (local_d8 == (code *******)0x0) {\n                  if (((uint)unaff_s7[0xd] & 0x2000000) == 0) {\n                    pppppppcVar29 = param_4;\n                    bVar1 = false;\n                  }\n                  else {\n                    pppppppcVar29 = param_4;\n                    local_d8 = (code *******)FUN_00052d84(&local_b4);\n                    unaff_s8 = local_d8;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055dbc;\n                    bVar1 = false;\n                  }\n                  goto LAB_00054d50;\n                }\n              }\nLAB_00055dbc:\n              if (unaff_s8 == (code *******)0xffffffff) {\nLAB_00055b04:\n                FUN_0004b7e8(&local_b4);\nLAB_00055b1c:\n                local_dc = (code *******)((int)pppppppcVar24 + (int)local_dc);\n                if ((int)pppppppcVar25 <= (int)local_dc) goto code_r0x00055b38;\n                local_150 = (code *******)0x1;\n                goto LAB_000557e4;\n              }\n              if (unaff_s8 == (code *******)&SUB_fffffffe) {\n                local_150 = (code *******)0xc;\n                goto LAB_000557e4;\n              }\n              local_58 = unaff_s8;\n              if (((uint)param_1[7] & 0x8000000) == 0) {\n                if (pppppppcVar3 < (code *******)0x2) {\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055c08;\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                else {\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                if (pppppppcVar3 < (code *******)0x2) {\nLAB_00055c6c:\n                  pppppppcVar28 = pppppppcVar33;\n                  unaff_s4 = local_60;\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055548;\n                }\n                else {\n                  cVar23 = *(code *)(pppppppcVar38 + 0x16);\nLAB_00055c20:\n                  pppppppcVar28 = pppppppcVar33;\n                  if (-1 < (char)cVar23) goto LAB_00055c6c;\n                }\n                pppppppcVar31 = local_54;\n                pppppppcVar42 = local_60;\n                unaff_s4 = pppppppcVar42;\n                if (unaff_s8 < (code *******)0x3fffffff) {\n                  param_4 = (code *******)((int)((int)unaff_s8 + 1) * 4);\n                  unaff_s5 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                  if (unaff_s5 == (code *******)0x0) {\nLAB_00055b9c:\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    local_150 = (code *******)0xc;\n                    pppppppcVar33 = pppppppcVar28;\n                  }\n                  else {\n                    pppppppcVar29 = (code *******)&local_d0;\n                    if (pppppppcVar42[0x13] == (code ******)0x0) {\n                      local_cc = (code *******)0x0;\n                      local_c8 = pppppppcVar31;\n                      local_c0 = 0;\n                      local_bc = 0;\n                      local_b8 = 0;\n                      local_d0 = unaff_s5;\n                      local_c4 = unaff_s8;\n                      param_5 = (code *******)FUN_0005421c(&local_b4);\n                      (*(code *)PTR_free_00079c24)(local_b8);\n                      if (param_5 == (code *******)0x0) {\n                        param_4 = (code *******)*unaff_s5;\n                        if (param_4 == (code *******)0x0) {\nLAB_00055b70:\n                          (*(code *)PTR_free_00079c24)(unaff_s5);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          pppppppcVar33 = pppppppcVar28;\n                          goto LAB_00055b04;\n                        }\nLAB_00055528:\n                        (*(code *)PTR_free_00079c24)(local_50);\n                        pppppppcVar33 = pppppppcVar28;\n                        unaff_s4 = pppppppcVar42;\n                        local_58 = unaff_s8;\n                        local_54 = pppppppcVar31;\n                        local_50 = unaff_s5;\n                        goto LAB_00055548;\n                      }\nLAB_00055acc:\n                      param_4 = (code *******)0x0;\n                      pppppppcVar33 = pppppppcVar28;\n                      unaff_s4 = pppppppcVar42;\n                    }\n                    else {\n                      param_4 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                      if (param_4 == (code *******)0x0) goto LAB_00055b9c;\n                      unaff_s7 = (code *******)&local_d0;\n                      pcVar8 = (code *)(PTR_DAT_000799a4 + 0x421c);\n                      pcVar9 = (code *)(PTR_DAT_000799a4 + -0x6bc0);\n                      pppppppcVar33 = pppppppcVar28;\n                      while( true ) {\n                        pppppppcVar28 = (code *******)((int)unaff_s8 + 1);\n                        param_6 = (code *******)((int)pppppppcVar28 * 4);\n                        pppppppcVar30 = param_6;\n                        (*(code *)PTR_memset_00079b00)(param_4,0);\n                        local_c0 = 0;\n                        local_bc = 0;\n                        local_b8 = 0;\n                        pppppppcVar29 = unaff_s7;\n                        local_d0 = unaff_s5;\n                        local_cc = param_4;\n                        local_c8 = pppppppcVar31;\n                        local_c4 = unaff_s8;\n                        param_5 = (code *******)(*pcVar8)(&local_b4);\n                        (*(code *)PTR_free_00079c24)(local_b8);\n                        unaff_s4 = pppppppcVar28;\n                        if (param_5 != (code *******)0x0) break;\n                        if ((*unaff_s5 != (code ******)0x0) ||\n                           (param_6 = param_6 + -1, *param_4 != (code ******)0x0)) {\n                          pppppppcVar29 = unaff_s5;\n                          pppppppcVar30 = param_4;\n                          param_5 = (code *******)FUN_000520d0(pppppppcVar42);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          if (param_5 != (code *******)0x0) goto LAB_00055acc;\n                          goto LAB_00055528;\n                        }\n                        param_6 = (code *******)((int)local_50 + (int)param_6);\n                        do {\n                          while( true ) {\n                            unaff_s8 = (code *******)((int)unaff_s8 + -1);\n                            if ((int)unaff_s8 < 0) goto LAB_00055b70;\n                            pppppppcVar29 = (code *******)param_6[-1];\n                            if (pppppppcVar29 != (code *******)0x0) break;\n                            param_6 = param_6 + -1;\n                          }\n                          param_6 = param_6 + -1;\n                        } while (((uint)pppppppcVar29[0xd] & 0x8000000) == 0);\n                        pppppppcVar31 = (code *******)(*pcVar9)(&local_b4,pppppppcVar29,unaff_s8);\n                        pppppppcVar33 = pppppppcVar28;\n                      }\n                    }\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    (*(code *)PTR_free_00079c24)(param_4);\n                    local_150 = param_5;\n                    if (param_5 == (code *******)0x1) goto LAB_00055b04;\n                  }\n                }\n                else {\n                  local_150 = (code *******)0xc;\n                  pppppppcVar33 = pppppppcVar28;\n                }\n                goto LAB_000557e4;\n              }\n              if (pppppppcVar38[0x13] != (code ******)0x0) {\n                pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                pppppppcVar30 = unaff_s8;\n                local_54 = (code *******)FUN_00049440(&local_b4);\n                goto LAB_00055c6c;\n              }\nLAB_00055c08:\n              if ((((uint)param_1[7] & 0x8000000) == 0) && ((code *******)0x1 < pppppppcVar3)) {\n                cVar23 = *(code *)(pppppppcVar38 + 0x16);\n                goto LAB_00055c20;\n              }\nLAB_00055548:\n              if (pppppppcVar3 == (code *******)0x0) goto LAB_000557e4;\n              if (pppppppcVar3 < (code *******)0x2) {\n                *param_8 = (code ******)0x0;\n                param_8[1] = (code ******)local_58;\n                goto LAB_000555ac;\n              }\n              pppppppcVar29 = param_8 + 2;\n              do {\n                pppppppcVar29[1] = (code ******)0xffffffff;\n                *pppppppcVar29 = (code ******)0xffffffff;\n                pppppppcVar29 = pppppppcVar29 + 2;\n              } while (pppppppcVar29 != param_8 + (int)pppppppcVar3 * 2);\n              *param_8 = (code ******)0x0;\n              param_8[1] = (code ******)local_58;\n              if (((uint)param_1[7] & 0x8000000) != 0) {\nLAB_000555ac:\n                pppppppcVar33 = param_8;\n                do {\n                  pppppppcVar29 = (code *******)*pppppppcVar33;\n                  if (pppppppcVar29 != (code *******)0xffffffff) {\n                    if (local_68 != '\0') {\n                      pppppppcVar34 = local_94;\n                      if (pppppppcVar29 != local_98) {\n                        pppppppcVar34 = *(code ********)(local_a8 + (int)pppppppcVar29 * 4);\n                      }\n                      *pppppppcVar33 = (code ******)pppppppcVar34;\n                      pppppppcVar29 = local_94;\n                      if (local_98 != (code *******)pppppppcVar33[1]) {\n                        pppppppcVar29 = *(code ********)(local_a8 + (int)pppppppcVar33[1] * 4);\n                      }\n                      pppppppcVar33[1] = (code ******)pppppppcVar29;\n                    }\n                    *pppppppcVar33 = (code ******)((int)local_dc + (int)*pppppppcVar33);\n                    pppppppcVar29 = (code *******)((int)local_dc + (int)pppppppcVar33[1]);\n                    pppppppcVar33[1] = (code ******)pppppppcVar29;\n                  }\n                  pppppppcVar33 = pppppppcVar33 + 2;\n                } while (pppppppcVar33 != param_8 + (int)pppppppcVar3 * 2);\n                if (0 < local_118) {\n                  pppppppcVar33 = param_8 + (int)pppppppcVar3 * 2;\n                  do {\n                    *pppppppcVar33 = (code ******)0xffffffff;\n                    pppppppcVar33[1] = (code ******)0xffffffff;\n                    pppppppcVar33 = pppppppcVar33 + 2;\n                  } while (pppppppcVar33 != param_8 + (int)param_7 * 2);\n                }\n                pppppppcVar30 = local_dc;\n                pppppppcVar33 = param_8;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar38[0x21] != (code ******)0x0) {\n                  pppppppcVar30 = (code *******)((int)pppppppcVar3 + -1);\n                  pppppppcVar34 = (code *******)0x0;\n                  pppppppcVar3 = param_8;\n                  while( true ) {\n                    pppppppcVar29 = (code *******)((int)pppppppcVar34 * 4);\n                    if (pppppppcVar30 == pppppppcVar34) break;\n                    if (*(code ********)((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) !=\n                        pppppppcVar34) {\n                      pppppppcVar3[2] =\n                           param_8[(int)((int)*(code ********)\n                                               ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1)\n                                   * 2];\n                      pppppppcVar3[3] =\n                           param_8[((int)*(code ******)\n                                          ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1) * 2 +\n                                   1];\n                    }\n                    pppppppcVar34 = (code *******)((int)pppppppcVar34 + 1);\n                    pppppppcVar3 = pppppppcVar3 + 2;\n                  }\n                }\n                goto LAB_000557e4;\n              }\n              if ((char)*(code *)(pppppppcVar38 + 0x16) < '\0') {\n                local_168 = (uint)(0 < (int)pppppppcVar38[0x13]);\n              }\n              else {\n                local_168 = 0;\n              }\n              pppppppcVar29 = &local_b4;\n              pppppppcVar30 = pppppppcVar3;\n              pppppppcVar33 = param_8;\n              local_150 = (code *******)FUN_0004f4a0(param_1);\n              if (local_150 == (code *******)0x0) goto LAB_000555ac;\n            }" if (parenthesized_expression "((int)param_4 < (int)pppppppcVar25)" ( (binary_expression "(int)param_4 < (int)pppppppcVar25" (cast_expression "(int)param_4" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)pppppppcVar25" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n              local_150 = (code *******)0x1;\n              param_6 = pppppppcVar36;\n            }" { (expression_statement "local_150 = (code *******)0x1;" (assignment_expression "local_150 = (code *******)0x1" identifier = (cast_expression "(code *******)0x1" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "param_6 = pppppppcVar36;" (assignment_expression "param_6 = pppppppcVar36" identifier = identifier) ;) }) (else_clause "else if ((int)pppppppcVar26 < (int)param_4) {\n              local_150 = (code *******)0x1;\n              param_4 = (code *******)(uint)((int)param_5 < (int)param_4);\n              param_6 = pppppppcVar36;\n            }\n            else {\n              pppppppcVar36 = (code *******)&local_dc;\n              if ((code *******)(uint)((int)param_5 < (int)param_4) != (code *******)0x0) {\n                pppppppcVar36 = (code *******)0x0;\n              }\n              pcVar4 = (code *)(PTR_DAT_000799a4 + -0x2b7c);\n              piVar5 = (int *)(PTR_s_nt0_000795b8 + (uVar16 - 4) * 4 + 0x6e38);\nLAB_00055b44:\n              if (uVar16 - 4 < 5) {\n                    \n                    \n                pppppppcVar29 = (code *******)(*(code *)(&_gp_1 + *piVar5))();\n                return pppppppcVar29;\n              }\n              param_5 = &local_b4;\n              pppppppcVar28 = pppppppcVar33;\n              while( true ) {\n                param_4 = local_dc;\n                pppppppcVar33 = (code *******)((int)local_dc - local_9c);\n                pppppppcVar30 = param_9;\n                pppppppcVar31 = pppppppcVar2;\n                param_6 = local_148;\n                unaff_s4 = param_3;\n                unaff_s5 = pppppppcVar24;\n                unaff_s7 = pppppppcVar26;\n                if (local_94 <= pppppppcVar33) {\n                  pppppppcVar29 = local_dc;\n                  local_150 = (code *******)(*pcVar4)(param_5);\n                  pppppppcVar33 = pppppppcVar28;\n                  if (local_150 != (code *******)0x0) goto LAB_000557e4;\n                  pppppppcVar33 = (code *******)((int)param_4 - local_9c);\n                }\n                if ((int)param_4 < (int)param_3) {\n                  uVar7 = (uint)(byte)*(code *)((int)pppppppcVar33 + (int)local_b0);\n                }\n                else {\n                  uVar7 = 0;\n                }\n                param_4 = (code *******)((int)param_4 + (int)pppppppcVar24);\n                if (*(code *)((int)local_148 + uVar7) != (code)0x0) break;\n                pppppppcVar33 = pppppppcVar28;\n                local_dc = param_4;\n                if ((int)param_4 < (int)pppppppcVar25) {\n                  local_150 = (code *******)0x1;\n                  goto LAB_000557e4;\n                }\n                if ((code *******)(uint)((int)pppppppcVar26 < (int)param_4) != (code *******)0x0) {\n                  local_150 = (code *******)0x1;\n                  param_4 = (code *******)(uint)((int)pppppppcVar26 < (int)param_4);\n                  goto LAB_000557e4;\n                }\n              }\n              while( true ) {\n                pppppppcVar29 = local_dc;\n                pppppppcVar30 = param_9;\n                pppppppcVar6 = (code *******)(*pcVar4)(&local_b4);\n                pppppppcVar14 = local_60;\n                pppppppcVar42 = local_8c;\n                pppppppcVar33 = pppppppcVar28;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar6 != (code *******)0x0) goto LAB_000557e4;\n                if (((ppppppcVar35 != (code ******)0x1) && (local_98 != (code *******)0x0)) &&\n                   (*local_ac == -1)) goto LAB_00055b1c;\n                local_3c = 0;\n                local_48 = 0;\n                local_4c = (code *******)0x0;\n                local_138 = local_8c;\n                local_d8 = (code *******)0x0;\n                unaff_s7 = (code *******)local_60[9];\n                pppppppcVar30 = local_5c;\n                param_4 = pppppppcVar14;\n                if (((uint)unaff_s7[0xd] & 0x1000000) == 0) break;\n                pppppppcVar29 = (code *******)((int)local_8c + -1);\n                pppppppcVar33 = (code *******)FUN_00049110(&local_b4);\n                if (((uint)pppppppcVar33 & 1) == 0) {\n                  if (pppppppcVar33 == (code *******)0x0) break;\n                  if (((uint)pppppppcVar33 & 6) == 6) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xc];\n                    goto LAB_00054d1c;\n                  }\n                  if (((uint)pppppppcVar33 & 2) != 0) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xb];\n                    goto LAB_00054d1c;\n                  }\n                  pppppppcVar28 = pppppppcVar33;\n                  if (((uint)pppppppcVar33 & 4) == 0) break;\n                  pppppppcVar30 = (code *******)unaff_s7[10];\n                  pppppppcVar29 = pppppppcVar14;\n                  unaff_s7 = (code *******)FUN_0004ae34(&local_d8);\n                  pppppppcVar28 = pppppppcVar33;\n                  if (unaff_s7 != (code *******)0x0) break;\n                  if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                }\n                else {\n                  unaff_s7 = (code *******)pppppppcVar14[10];\nLAB_00054d1c:\n                  pppppppcVar28 = (code *******)PTR_s_nt0_000795b8;\n                  if (unaff_s7 != (code *******)0x0) break;\n                }\n                pppppppcVar28 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                local_dc = (code *******)\n                           (*(code *)PTR___assert_fail_000799f8)\n                                     (PTR_s_nt0_000795b8 + 0x71a0,pppppppcVar29,0x435);\n                if (local_dc == pppppppcVar26) {\n                  if ((int)local_dc < (int)param_3) {\n                    uVar7 = (uint)(byte)*(code *)((int)local_dc + (int)param_2);\n                  }\n                  else {\n                    uVar7 = 0;\n                  }\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    uVar7 = (uint)*(byte *)((int)ppppppcVar32 + uVar7);\n                  }\n                  if (*(code *)((int)local_148 + uVar7) == (code)0x0) {\n                    local_150 = (code *******)0x1;\n                    pppppppcVar30 = param_9;\n                    pppppppcVar33 = pppppppcVar28;\n                    goto LAB_000557e4;\n                  }\n                }\n              }\n              pppppppcVar33 = pppppppcVar28;\n              bVar1 = pppppppcVar36 != (code *******)0x0;\n              if ((local_50 == (code *******)0x0) ||\n                 (local_50[(int)pppppppcVar42] = (code ******)unaff_s7,\n                 pppppppcVar14[0x13] == (code ******)0x0)) {\nLAB_00054d50:\n                if ((int)unaff_s7[0xd] << 4 < 0) {\n                  if ((((uint)unaff_s7[0xd] & 0x1000000) == 0) ||\n                     (pppppppcVar29 = unaff_s7, pppppppcVar30 = pppppppcVar42,\n                     iVar18 = FUN_00049440(&local_b4), iVar18 != 0)) {\n                    unaff_s8 = pppppppcVar42;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                  }\n                  else {\n                    pppppppcVar42 = (code *******)0xffffffff;\n                    pppppppcVar28 = (code *******)0x0;\n                  }\n                }\n                else {\n                  pppppppcVar42 = (code *******)0xffffffff;\n                  pppppppcVar28 = (code *******)0x0;\n                }\n                pcVar8 = (code *)(PTR_DAT_000799a4 + -0x7144);\n                pcVar9 = (code *)(PTR_DAT_000799a4 + -0x1980);\n                pcVar10 = (code *)(PTR_DAT_000799a4 + -0x2f9c);\n                unaff_s8 = pppppppcVar42;\n                local_144 = pppppppcVar36;\n                while( true ) {\n                  uVar44 = CONCAT44(local_98,local_84);\n                  unaff_s5 = (code *******)((int)local_8c + 1);\n                  pppppppcVar29 = local_8c;\n                  if ((int)local_7c <= (int)local_8c) break;\n                  if (((int)local_90 <= (int)unaff_s5) && ((int)local_90 < (int)local_84))\n                  goto LAB_00054e94;\n                  if ((int)local_98 <= (int)unaff_s5) {\n                    while ((int)((ulonglong)uVar44 >> 0x20) < (int)uVar44) {\nLAB_00054e94:\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 2);\n                      local_d8 = (code *******)(*pcVar8)(&local_b4);\n                      if (local_d8 == (code *******)0x0) break;\n                      pppppppcVar14 = param_4;\n                      if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                      pppppppcVar33 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                      pppppppcVar30 = (code *******)0x46c;\n                      pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                      uVar44 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0);\n                      pppppppcVar28 = pppppppcVar38;\n                    }\n                  }\n                  pppppppcVar42 = local_60;\n                  if ((int)unaff_s7[0xd] << 5 < 0) {\n                    pppppppcVar31 = pppppppcVar42;\n                    if (0 < (int)unaff_s7[2]) {\n                      pcVar11 = (code *)(PTR_DAT_000799a4 + -0x6fdc);\n                      pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6ef0);\n                      param_6 = (code *******)0x0;\n                      do {\n                        param_5 = (code *******)unaff_s7[3][(int)param_6];\n                        ppppppcVar39 = *pppppppcVar42;\n                        pppppcVar13 = ppppppcVar39[(int)param_5 * 2 + 1];\n                        if (((uint)pppppcVar13 & 0x800) != 0) {\n                          if (((uint)pppppcVar13 & 0xffc000) != 0) {\n                            pppppppcVar29 = local_8c;\n                            uVar19 = (*pcVar12)(&local_b4,local_8c,local_5c);\n                            uVar7 = (uint)((int)ppppppcVar39[(int)param_5 * 2 + 1] << 8) >> 0x16;\n                            if ((uVar7 & 4) == 0) {\n                              uVar27 = uVar19 & 1;\n                              if ((uVar7 & 8) != 0) goto joined_r0x00054f40;\n                            }\n                            else {\n                              uVar27 = uVar7 & 8;\n                              if ((uVar19 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                              if (uVar27 != 0) goto LAB_000550a4;\n                            }\n                            if ((((uVar7 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                               (((uVar7 & 0x80) != 0 &&\n                                (pppppppcVar33 = local_8c, (uVar19 & 8) == 0)))) goto LAB_000550a4;\n                          }\n                          pppppppcVar30 = &local_b4;\n                          pppppppcVar29 = param_5;\n                          pppppppcVar33 = local_8c;\n                          iVar18 = (*pcVar10)(pppppppcVar42);\n                          if (iVar18 != 0) {\n                            pppppppcVar14 = (code *******)((int)local_8c + iVar18);\n                            if (iVar18 <= local_3c) {\n                              iVar18 = local_3c;\n                            }\n                            pppppppcVar29 = pppppppcVar14;\n                            local_3c = iVar18;\n                            local_d4 = (code *******)(*pcVar11)(&local_b4);\n                            pppppppcVar15 = local_d4;\n                            if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                            pppppppcVar30 =\n                                 (code *******)\n                                 (pppppppcVar42[6] + (int)pppppppcVar42[3][(int)param_5] * 3);\n                            unaff_s4 = (code *******)((int)pppppppcVar14 * 4);\n                            param_5 = local_50 + (int)pppppppcVar14;\n                            if (*param_5 == (code ******)0x0) {\n                              local_d0 = (code *******)*pppppppcVar30;\n                              local_cc = (code *******)pppppppcVar30[1];\n                              local_c8 = (code *******)pppppppcVar30[2];\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *param_5 = ppppppcVar39;\n                            }\n                            else {\n                              pppppppcVar29 = (code *******)(*param_5)[10];\n                              local_d4 = (code *******)FUN_000484bc(&local_d0);\n                              pppppppcVar15 = local_d4;\n                              if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar15 = local_50 + (int)pppppppcVar14;\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *pppppppcVar15 = ppppppcVar39;\n                              (*(code *)PTR_free_00079c24)(local_c8);\n                            }\n                            unaff_s4 = local_50 + (int)pppppppcVar14;\n                            if ((*unaff_s4 == (code ******)0x0) &&\n                               (pppppppcVar15 = local_d4, local_d4 != (code *******)0x0))\n                            goto LAB_00055e44;\n                          }\n                        }\nLAB_000550a4:\n                        param_6 = (code *******)((int)param_6 + 1);\n                      } while ((int)param_6 < (int)unaff_s7[2]);\n                    }\n                    local_d8 = (code *******)0x0;\n                  }\n                  uVar7 = (uint)(byte)*(code *)((int)local_8c + (int)local_b0);\n                  local_8c = (code *******)((int)local_8c + 1);\n                  do {\n                    if (unaff_s7[0xb] != (code ******)0x0) {\n                      pppppppcVar30 = (code *******)unaff_s7[0xb][uVar7];\nLAB_000553a0:\n                      pppppppcVar14 = pppppppcVar30;\n                      if (local_50 != (code *******)0x0) goto LAB_000553ac;\n                      goto LAB_000553cc;\n                    }\n                    pppppppcVar31 = (code *******)unaff_s7[0xc];\n                    if (pppppppcVar31 != (code *******)0x0) {\n                      pppppppcVar29 = (code *******)((int)local_8c + -1);\n                      uVar19 = FUN_00049110(&local_b4);\n                      if ((uVar19 & 1) == 0) {\n                        pppppppcVar30 = (code *******)pppppppcVar31[uVar7];\n                      }\n                      else {\n                        pppppppcVar31 = pppppppcVar31 + uVar7 + 0x100;\n                        pppppppcVar30 = (code *******)*pppppppcVar31;\n                      }\n                      goto LAB_000553a0;\n                    }\n                    pppppppcVar29 = unaff_s7;\n                    pppppppcVar30 = local_5c;\n                    iVar18 = (*pcVar9)(local_60);\n                  } while (iVar18 != 0);\n                  local_d8 = (code *******)0xc;\n                  pppppppcVar15 = local_d8;\nLAB_00055e44:\n                  local_d8 = pppppppcVar15;\n                  param_4 = (code *******)0x0;\n                  if (local_50 == (code *******)0x0) {\n                    pppppppcVar14 = param_4;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    break;\n                  }\n                  pppppppcVar30 = (code *******)0x0;\nLAB_000553ac:\n                  pppppppcVar29 = &local_b4;\n                  pppppppcVar14 = (code *******)FUN_00053684(&local_d8);\nLAB_000553cc:\n                  param_4 = pppppppcVar14;\n                  if (pppppppcVar14 == (code *******)0x0) {\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    if ((local_50 == (code *******)0x0) ||\n                       ((pppppppcVar28 != (code *******)0x0 && (pppppppcVar34 == (code *******)0x0))\n                       )) break;\n                    param_6 = &local_b4;\n                    param_5 = (code *******)&local_d8;\n                    pppppppcVar31 = (code *******)(PTR_DAT_000799a4 + 0x3684);\n                    do {\n                      pppppppcVar15 = local_50 + (int)local_8c;\n                      pppppppcVar42 = local_8c;\n                      do {\n                        pppppppcVar42 = (code *******)((int)pppppppcVar42 + 1);\n                        pppppppcVar29 = local_4c;\n                        param_4 = pppppppcVar14;\n                        if ((int)local_4c < (int)pppppppcVar42) goto LAB_00055da8;\n                        local_8c = (code *******)((int)local_8c + 1);\n                        pppppppcVar15 = pppppppcVar15 + 1;\n                      } while (*pppppppcVar15 == (code ******)0x0);\n                      pppppppcVar30 = (code *******)0x0;\n                      pppppppcVar29 = param_6;\n                      param_4 = (code *******)(*(code *)pppppppcVar31)(param_5);\n                      if (local_d8 != (code *******)0x0) {\n                        if (param_4 == (code *******)0x0) goto LAB_00055da8;\n                        break;\n                      }\n                      pppppppcVar29 = local_4c;\n                    } while (param_4 == (code *******)0x0);\n                  }\n                  pppppppcVar15 = (code *******)((uint)unaff_s7 ^ (uint)param_4);\n                  pppppppcVar42 = unaff_s7;\n                  pppppppcVar14 = local_138;\n                  if ((bVar1) &&\n                     (pppppppcVar42 = pppppppcVar15, pppppppcVar14 = unaff_s5,\n                     pppppppcVar15 != (code *******)0x0)) {\n                    bVar1 = false;\n                    pppppppcVar14 = local_138;\n                  }\n                  local_138 = pppppppcVar14;\n                  unaff_s7 = param_4;\n                  if ((((uint)param_4[0xd] & 0x8000000) != 0) &&\n                     ((((uint)param_4[0xd] & 0x1000000) == 0 ||\n                      (pppppppcVar29 = param_4, pppppppcVar30 = local_8c,\n                      iVar18 = FUN_00049440(&local_b4), iVar18 != 0)))) {\n                    unaff_s7 = pppppppcVar42;\n                    unaff_s8 = local_8c;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                    local_144 = (code *******)0x0;\n                    unaff_s7 = param_4;\n                  }\n                }\nLAB_00055da8:\n                if (local_144 != (code *******)0x0) {\n                  *local_144 = (code ******)((int)local_138 + (int)*local_144);\n                }\n              }\n              else {\n                param_4 = unaff_s7 + 1;\n                pppppppcVar30 = (code *******)0x0;\n                pppppppcVar29 = param_4;\n                local_d8 = (code *******)FUN_00047a44(&local_b4);\n                unaff_s8 = local_d8;\n                if (local_d8 == (code *******)0x0) {\n                  if (((uint)unaff_s7[0xd] & 0x2000000) == 0) {\n                    pppppppcVar29 = param_4;\n                    bVar1 = false;\n                  }\n                  else {\n                    pppppppcVar29 = param_4;\n                    local_d8 = (code *******)FUN_00052d84(&local_b4);\n                    unaff_s8 = local_d8;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055dbc;\n                    bVar1 = false;\n                  }\n                  goto LAB_00054d50;\n                }\n              }\nLAB_00055dbc:\n              if (unaff_s8 == (code *******)0xffffffff) {\nLAB_00055b04:\n                FUN_0004b7e8(&local_b4);\nLAB_00055b1c:\n                local_dc = (code *******)((int)pppppppcVar24 + (int)local_dc);\n                if ((int)pppppppcVar25 <= (int)local_dc) goto code_r0x00055b38;\n                local_150 = (code *******)0x1;\n                goto LAB_000557e4;\n              }\n              if (unaff_s8 == (code *******)&SUB_fffffffe) {\n                local_150 = (code *******)0xc;\n                goto LAB_000557e4;\n              }\n              local_58 = unaff_s8;\n              if (((uint)param_1[7] & 0x8000000) == 0) {\n                if (pppppppcVar3 < (code *******)0x2) {\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055c08;\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                else {\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                if (pppppppcVar3 < (code *******)0x2) {\nLAB_00055c6c:\n                  pppppppcVar28 = pppppppcVar33;\n                  unaff_s4 = local_60;\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055548;\n                }\n                else {\n                  cVar23 = *(code *)(pppppppcVar38 + 0x16);\nLAB_00055c20:\n                  pppppppcVar28 = pppppppcVar33;\n                  if (-1 < (char)cVar23) goto LAB_00055c6c;\n                }\n                pppppppcVar31 = local_54;\n                pppppppcVar42 = local_60;\n                unaff_s4 = pppppppcVar42;\n                if (unaff_s8 < (code *******)0x3fffffff) {\n                  param_4 = (code *******)((int)((int)unaff_s8 + 1) * 4);\n                  unaff_s5 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                  if (unaff_s5 == (code *******)0x0) {\nLAB_00055b9c:\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    local_150 = (code *******)0xc;\n                    pppppppcVar33 = pppppppcVar28;\n                  }\n                  else {\n                    pppppppcVar29 = (code *******)&local_d0;\n                    if (pppppppcVar42[0x13] == (code ******)0x0) {\n                      local_cc = (code *******)0x0;\n                      local_c8 = pppppppcVar31;\n                      local_c0 = 0;\n                      local_bc = 0;\n                      local_b8 = 0;\n                      local_d0 = unaff_s5;\n                      local_c4 = unaff_s8;\n                      param_5 = (code *******)FUN_0005421c(&local_b4);\n                      (*(code *)PTR_free_00079c24)(local_b8);\n                      if (param_5 == (code *******)0x0) {\n                        param_4 = (code *******)*unaff_s5;\n                        if (param_4 == (code *******)0x0) {\nLAB_00055b70:\n                          (*(code *)PTR_free_00079c24)(unaff_s5);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          pppppppcVar33 = pppppppcVar28;\n                          goto LAB_00055b04;\n                        }\nLAB_00055528:\n                        (*(code *)PTR_free_00079c24)(local_50);\n                        pppppppcVar33 = pppppppcVar28;\n                        unaff_s4 = pppppppcVar42;\n                        local_58 = unaff_s8;\n                        local_54 = pppppppcVar31;\n                        local_50 = unaff_s5;\n                        goto LAB_00055548;\n                      }\nLAB_00055acc:\n                      param_4 = (code *******)0x0;\n                      pppppppcVar33 = pppppppcVar28;\n                      unaff_s4 = pppppppcVar42;\n                    }\n                    else {\n                      param_4 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                      if (param_4 == (code *******)0x0) goto LAB_00055b9c;\n                      unaff_s7 = (code *******)&local_d0;\n                      pcVar8 = (code *)(PTR_DAT_000799a4 + 0x421c);\n                      pcVar9 = (code *)(PTR_DAT_000799a4 + -0x6bc0);\n                      pppppppcVar33 = pppppppcVar28;\n                      while( true ) {\n                        pppppppcVar28 = (code *******)((int)unaff_s8 + 1);\n                        param_6 = (code *******)((int)pppppppcVar28 * 4);\n                        pppppppcVar30 = param_6;\n                        (*(code *)PTR_memset_00079b00)(param_4,0);\n                        local_c0 = 0;\n                        local_bc = 0;\n                        local_b8 = 0;\n                        pppppppcVar29 = unaff_s7;\n                        local_d0 = unaff_s5;\n                        local_cc = param_4;\n                        local_c8 = pppppppcVar31;\n                        local_c4 = unaff_s8;\n                        param_5 = (code *******)(*pcVar8)(&local_b4);\n                        (*(code *)PTR_free_00079c24)(local_b8);\n                        unaff_s4 = pppppppcVar28;\n                        if (param_5 != (code *******)0x0) break;\n                        if ((*unaff_s5 != (code ******)0x0) ||\n                           (param_6 = param_6 + -1, *param_4 != (code ******)0x0)) {\n                          pppppppcVar29 = unaff_s5;\n                          pppppppcVar30 = param_4;\n                          param_5 = (code *******)FUN_000520d0(pppppppcVar42);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          if (param_5 != (code *******)0x0) goto LAB_00055acc;\n                          goto LAB_00055528;\n                        }\n                        param_6 = (code *******)((int)local_50 + (int)param_6);\n                        do {\n                          while( true ) {\n                            unaff_s8 = (code *******)((int)unaff_s8 + -1);\n                            if ((int)unaff_s8 < 0) goto LAB_00055b70;\n                            pppppppcVar29 = (code *******)param_6[-1];\n                            if (pppppppcVar29 != (code *******)0x0) break;\n                            param_6 = param_6 + -1;\n                          }\n                          param_6 = param_6 + -1;\n                        } while (((uint)pppppppcVar29[0xd] & 0x8000000) == 0);\n                        pppppppcVar31 = (code *******)(*pcVar9)(&local_b4,pppppppcVar29,unaff_s8);\n                        pppppppcVar33 = pppppppcVar28;\n                      }\n                    }\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    (*(code *)PTR_free_00079c24)(param_4);\n                    local_150 = param_5;\n                    if (param_5 == (code *******)0x1) goto LAB_00055b04;\n                  }\n                }\n                else {\n                  local_150 = (code *******)0xc;\n                  pppppppcVar33 = pppppppcVar28;\n                }\n                goto LAB_000557e4;\n              }\n              if (pppppppcVar38[0x13] != (code ******)0x0) {\n                pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                pppppppcVar30 = unaff_s8;\n                local_54 = (code *******)FUN_00049440(&local_b4);\n                goto LAB_00055c6c;\n              }\nLAB_00055c08:\n              if ((((uint)param_1[7] & 0x8000000) == 0) && ((code *******)0x1 < pppppppcVar3)) {\n                cVar23 = *(code *)(pppppppcVar38 + 0x16);\n                goto LAB_00055c20;\n              }\nLAB_00055548:\n              if (pppppppcVar3 == (code *******)0x0) goto LAB_000557e4;\n              if (pppppppcVar3 < (code *******)0x2) {\n                *param_8 = (code ******)0x0;\n                param_8[1] = (code ******)local_58;\n                goto LAB_000555ac;\n              }\n              pppppppcVar29 = param_8 + 2;\n              do {\n                pppppppcVar29[1] = (code ******)0xffffffff;\n                *pppppppcVar29 = (code ******)0xffffffff;\n                pppppppcVar29 = pppppppcVar29 + 2;\n              } while (pppppppcVar29 != param_8 + (int)pppppppcVar3 * 2);\n              *param_8 = (code ******)0x0;\n              param_8[1] = (code ******)local_58;\n              if (((uint)param_1[7] & 0x8000000) != 0) {\nLAB_000555ac:\n                pppppppcVar33 = param_8;\n                do {\n                  pppppppcVar29 = (code *******)*pppppppcVar33;\n                  if (pppppppcVar29 != (code *******)0xffffffff) {\n                    if (local_68 != '\0') {\n                      pppppppcVar34 = local_94;\n                      if (pppppppcVar29 != local_98) {\n                        pppppppcVar34 = *(code ********)(local_a8 + (int)pppppppcVar29 * 4);\n                      }\n                      *pppppppcVar33 = (code ******)pppppppcVar34;\n                      pppppppcVar29 = local_94;\n                      if (local_98 != (code *******)pppppppcVar33[1]) {\n                        pppppppcVar29 = *(code ********)(local_a8 + (int)pppppppcVar33[1] * 4);\n                      }\n                      pppppppcVar33[1] = (code ******)pppppppcVar29;\n                    }\n                    *pppppppcVar33 = (code ******)((int)local_dc + (int)*pppppppcVar33);\n                    pppppppcVar29 = (code *******)((int)local_dc + (int)pppppppcVar33[1]);\n                    pppppppcVar33[1] = (code ******)pppppppcVar29;\n                  }\n                  pppppppcVar33 = pppppppcVar33 + 2;\n                } while (pppppppcVar33 != param_8 + (int)pppppppcVar3 * 2);\n                if (0 < local_118) {\n                  pppppppcVar33 = param_8 + (int)pppppppcVar3 * 2;\n                  do {\n                    *pppppppcVar33 = (code ******)0xffffffff;\n                    pppppppcVar33[1] = (code ******)0xffffffff;\n                    pppppppcVar33 = pppppppcVar33 + 2;\n                  } while (pppppppcVar33 != param_8 + (int)param_7 * 2);\n                }\n                pppppppcVar30 = local_dc;\n                pppppppcVar33 = param_8;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar38[0x21] != (code ******)0x0) {\n                  pppppppcVar30 = (code *******)((int)pppppppcVar3 + -1);\n                  pppppppcVar34 = (code *******)0x0;\n                  pppppppcVar3 = param_8;\n                  while( true ) {\n                    pppppppcVar29 = (code *******)((int)pppppppcVar34 * 4);\n                    if (pppppppcVar30 == pppppppcVar34) break;\n                    if (*(code ********)((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) !=\n                        pppppppcVar34) {\n                      pppppppcVar3[2] =\n                           param_8[(int)((int)*(code ********)\n                                               ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1)\n                                   * 2];\n                      pppppppcVar3[3] =\n                           param_8[((int)*(code ******)\n                                          ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1) * 2 +\n                                   1];\n                    }\n                    pppppppcVar34 = (code *******)((int)pppppppcVar34 + 1);\n                    pppppppcVar3 = pppppppcVar3 + 2;\n                  }\n                }\n                goto LAB_000557e4;\n              }\n              if ((char)*(code *)(pppppppcVar38 + 0x16) < '\0') {\n                local_168 = (uint)(0 < (int)pppppppcVar38[0x13]);\n              }\n              else {\n                local_168 = 0;\n              }\n              pppppppcVar29 = &local_b4;\n              pppppppcVar30 = pppppppcVar3;\n              pppppppcVar33 = param_8;\n              local_150 = (code *******)FUN_0004f4a0(param_1);\n              if (local_150 == (code *******)0x0) goto LAB_000555ac;\n            }" else (if_statement "if ((int)pppppppcVar26 < (int)param_4) {\n              local_150 = (code *******)0x1;\n              param_4 = (code *******)(uint)((int)param_5 < (int)param_4);\n              param_6 = pppppppcVar36;\n            }\n            else {\n              pppppppcVar36 = (code *******)&local_dc;\n              if ((code *******)(uint)((int)param_5 < (int)param_4) != (code *******)0x0) {\n                pppppppcVar36 = (code *******)0x0;\n              }\n              pcVar4 = (code *)(PTR_DAT_000799a4 + -0x2b7c);\n              piVar5 = (int *)(PTR_s_nt0_000795b8 + (uVar16 - 4) * 4 + 0x6e38);\nLAB_00055b44:\n              if (uVar16 - 4 < 5) {\n                    \n                    \n                pppppppcVar29 = (code *******)(*(code *)(&_gp_1 + *piVar5))();\n                return pppppppcVar29;\n              }\n              param_5 = &local_b4;\n              pppppppcVar28 = pppppppcVar33;\n              while( true ) {\n                param_4 = local_dc;\n                pppppppcVar33 = (code *******)((int)local_dc - local_9c);\n                pppppppcVar30 = param_9;\n                pppppppcVar31 = pppppppcVar2;\n                param_6 = local_148;\n                unaff_s4 = param_3;\n                unaff_s5 = pppppppcVar24;\n                unaff_s7 = pppppppcVar26;\n                if (local_94 <= pppppppcVar33) {\n                  pppppppcVar29 = local_dc;\n                  local_150 = (code *******)(*pcVar4)(param_5);\n                  pppppppcVar33 = pppppppcVar28;\n                  if (local_150 != (code *******)0x0) goto LAB_000557e4;\n                  pppppppcVar33 = (code *******)((int)param_4 - local_9c);\n                }\n                if ((int)param_4 < (int)param_3) {\n                  uVar7 = (uint)(byte)*(code *)((int)pppppppcVar33 + (int)local_b0);\n                }\n                else {\n                  uVar7 = 0;\n                }\n                param_4 = (code *******)((int)param_4 + (int)pppppppcVar24);\n                if (*(code *)((int)local_148 + uVar7) != (code)0x0) break;\n                pppppppcVar33 = pppppppcVar28;\n                local_dc = param_4;\n                if ((int)param_4 < (int)pppppppcVar25) {\n                  local_150 = (code *******)0x1;\n                  goto LAB_000557e4;\n                }\n                if ((code *******)(uint)((int)pppppppcVar26 < (int)param_4) != (code *******)0x0) {\n                  local_150 = (code *******)0x1;\n                  param_4 = (code *******)(uint)((int)pppppppcVar26 < (int)param_4);\n                  goto LAB_000557e4;\n                }\n              }\n              while( true ) {\n                pppppppcVar29 = local_dc;\n                pppppppcVar30 = param_9;\n                pppppppcVar6 = (code *******)(*pcVar4)(&local_b4);\n                pppppppcVar14 = local_60;\n                pppppppcVar42 = local_8c;\n                pppppppcVar33 = pppppppcVar28;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar6 != (code *******)0x0) goto LAB_000557e4;\n                if (((ppppppcVar35 != (code ******)0x1) && (local_98 != (code *******)0x0)) &&\n                   (*local_ac == -1)) goto LAB_00055b1c;\n                local_3c = 0;\n                local_48 = 0;\n                local_4c = (code *******)0x0;\n                local_138 = local_8c;\n                local_d8 = (code *******)0x0;\n                unaff_s7 = (code *******)local_60[9];\n                pppppppcVar30 = local_5c;\n                param_4 = pppppppcVar14;\n                if (((uint)unaff_s7[0xd] & 0x1000000) == 0) break;\n                pppppppcVar29 = (code *******)((int)local_8c + -1);\n                pppppppcVar33 = (code *******)FUN_00049110(&local_b4);\n                if (((uint)pppppppcVar33 & 1) == 0) {\n                  if (pppppppcVar33 == (code *******)0x0) break;\n                  if (((uint)pppppppcVar33 & 6) == 6) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xc];\n                    goto LAB_00054d1c;\n                  }\n                  if (((uint)pppppppcVar33 & 2) != 0) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xb];\n                    goto LAB_00054d1c;\n                  }\n                  pppppppcVar28 = pppppppcVar33;\n                  if (((uint)pppppppcVar33 & 4) == 0) break;\n                  pppppppcVar30 = (code *******)unaff_s7[10];\n                  pppppppcVar29 = pppppppcVar14;\n                  unaff_s7 = (code *******)FUN_0004ae34(&local_d8);\n                  pppppppcVar28 = pppppppcVar33;\n                  if (unaff_s7 != (code *******)0x0) break;\n                  if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                }\n                else {\n                  unaff_s7 = (code *******)pppppppcVar14[10];\nLAB_00054d1c:\n                  pppppppcVar28 = (code *******)PTR_s_nt0_000795b8;\n                  if (unaff_s7 != (code *******)0x0) break;\n                }\n                pppppppcVar28 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                local_dc = (code *******)\n                           (*(code *)PTR___assert_fail_000799f8)\n                                     (PTR_s_nt0_000795b8 + 0x71a0,pppppppcVar29,0x435);\n                if (local_dc == pppppppcVar26) {\n                  if ((int)local_dc < (int)param_3) {\n                    uVar7 = (uint)(byte)*(code *)((int)local_dc + (int)param_2);\n                  }\n                  else {\n                    uVar7 = 0;\n                  }\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    uVar7 = (uint)*(byte *)((int)ppppppcVar32 + uVar7);\n                  }\n                  if (*(code *)((int)local_148 + uVar7) == (code)0x0) {\n                    local_150 = (code *******)0x1;\n                    pppppppcVar30 = param_9;\n                    pppppppcVar33 = pppppppcVar28;\n                    goto LAB_000557e4;\n                  }\n                }\n              }\n              pppppppcVar33 = pppppppcVar28;\n              bVar1 = pppppppcVar36 != (code *******)0x0;\n              if ((local_50 == (code *******)0x0) ||\n                 (local_50[(int)pppppppcVar42] = (code ******)unaff_s7,\n                 pppppppcVar14[0x13] == (code ******)0x0)) {\nLAB_00054d50:\n                if ((int)unaff_s7[0xd] << 4 < 0) {\n                  if ((((uint)unaff_s7[0xd] & 0x1000000) == 0) ||\n                     (pppppppcVar29 = unaff_s7, pppppppcVar30 = pppppppcVar42,\n                     iVar18 = FUN_00049440(&local_b4), iVar18 != 0)) {\n                    unaff_s8 = pppppppcVar42;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                  }\n                  else {\n                    pppppppcVar42 = (code *******)0xffffffff;\n                    pppppppcVar28 = (code *******)0x0;\n                  }\n                }\n                else {\n                  pppppppcVar42 = (code *******)0xffffffff;\n                  pppppppcVar28 = (code *******)0x0;\n                }\n                pcVar8 = (code *)(PTR_DAT_000799a4 + -0x7144);\n                pcVar9 = (code *)(PTR_DAT_000799a4 + -0x1980);\n                pcVar10 = (code *)(PTR_DAT_000799a4 + -0x2f9c);\n                unaff_s8 = pppppppcVar42;\n                local_144 = pppppppcVar36;\n                while( true ) {\n                  uVar44 = CONCAT44(local_98,local_84);\n                  unaff_s5 = (code *******)((int)local_8c + 1);\n                  pppppppcVar29 = local_8c;\n                  if ((int)local_7c <= (int)local_8c) break;\n                  if (((int)local_90 <= (int)unaff_s5) && ((int)local_90 < (int)local_84))\n                  goto LAB_00054e94;\n                  if ((int)local_98 <= (int)unaff_s5) {\n                    while ((int)((ulonglong)uVar44 >> 0x20) < (int)uVar44) {\nLAB_00054e94:\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 2);\n                      local_d8 = (code *******)(*pcVar8)(&local_b4);\n                      if (local_d8 == (code *******)0x0) break;\n                      pppppppcVar14 = param_4;\n                      if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                      pppppppcVar33 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                      pppppppcVar30 = (code *******)0x46c;\n                      pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                      uVar44 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0);\n                      pppppppcVar28 = pppppppcVar38;\n                    }\n                  }\n                  pppppppcVar42 = local_60;\n                  if ((int)unaff_s7[0xd] << 5 < 0) {\n                    pppppppcVar31 = pppppppcVar42;\n                    if (0 < (int)unaff_s7[2]) {\n                      pcVar11 = (code *)(PTR_DAT_000799a4 + -0x6fdc);\n                      pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6ef0);\n                      param_6 = (code *******)0x0;\n                      do {\n                        param_5 = (code *******)unaff_s7[3][(int)param_6];\n                        ppppppcVar39 = *pppppppcVar42;\n                        pppppcVar13 = ppppppcVar39[(int)param_5 * 2 + 1];\n                        if (((uint)pppppcVar13 & 0x800) != 0) {\n                          if (((uint)pppppcVar13 & 0xffc000) != 0) {\n                            pppppppcVar29 = local_8c;\n                            uVar19 = (*pcVar12)(&local_b4,local_8c,local_5c);\n                            uVar7 = (uint)((int)ppppppcVar39[(int)param_5 * 2 + 1] << 8) >> 0x16;\n                            if ((uVar7 & 4) == 0) {\n                              uVar27 = uVar19 & 1;\n                              if ((uVar7 & 8) != 0) goto joined_r0x00054f40;\n                            }\n                            else {\n                              uVar27 = uVar7 & 8;\n                              if ((uVar19 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                              if (uVar27 != 0) goto LAB_000550a4;\n                            }\n                            if ((((uVar7 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                               (((uVar7 & 0x80) != 0 &&\n                                (pppppppcVar33 = local_8c, (uVar19 & 8) == 0)))) goto LAB_000550a4;\n                          }\n                          pppppppcVar30 = &local_b4;\n                          pppppppcVar29 = param_5;\n                          pppppppcVar33 = local_8c;\n                          iVar18 = (*pcVar10)(pppppppcVar42);\n                          if (iVar18 != 0) {\n                            pppppppcVar14 = (code *******)((int)local_8c + iVar18);\n                            if (iVar18 <= local_3c) {\n                              iVar18 = local_3c;\n                            }\n                            pppppppcVar29 = pppppppcVar14;\n                            local_3c = iVar18;\n                            local_d4 = (code *******)(*pcVar11)(&local_b4);\n                            pppppppcVar15 = local_d4;\n                            if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                            pppppppcVar30 =\n                                 (code *******)\n                                 (pppppppcVar42[6] + (int)pppppppcVar42[3][(int)param_5] * 3);\n                            unaff_s4 = (code *******)((int)pppppppcVar14 * 4);\n                            param_5 = local_50 + (int)pppppppcVar14;\n                            if (*param_5 == (code ******)0x0) {\n                              local_d0 = (code *******)*pppppppcVar30;\n                              local_cc = (code *******)pppppppcVar30[1];\n                              local_c8 = (code *******)pppppppcVar30[2];\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *param_5 = ppppppcVar39;\n                            }\n                            else {\n                              pppppppcVar29 = (code *******)(*param_5)[10];\n                              local_d4 = (code *******)FUN_000484bc(&local_d0);\n                              pppppppcVar15 = local_d4;\n                              if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar15 = local_50 + (int)pppppppcVar14;\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *pppppppcVar15 = ppppppcVar39;\n                              (*(code *)PTR_free_00079c24)(local_c8);\n                            }\n                            unaff_s4 = local_50 + (int)pppppppcVar14;\n                            if ((*unaff_s4 == (code ******)0x0) &&\n                               (pppppppcVar15 = local_d4, local_d4 != (code *******)0x0))\n                            goto LAB_00055e44;\n                          }\n                        }\nLAB_000550a4:\n                        param_6 = (code *******)((int)param_6 + 1);\n                      } while ((int)param_6 < (int)unaff_s7[2]);\n                    }\n                    local_d8 = (code *******)0x0;\n                  }\n                  uVar7 = (uint)(byte)*(code *)((int)local_8c + (int)local_b0);\n                  local_8c = (code *******)((int)local_8c + 1);\n                  do {\n                    if (unaff_s7[0xb] != (code ******)0x0) {\n                      pppppppcVar30 = (code *******)unaff_s7[0xb][uVar7];\nLAB_000553a0:\n                      pppppppcVar14 = pppppppcVar30;\n                      if (local_50 != (code *******)0x0) goto LAB_000553ac;\n                      goto LAB_000553cc;\n                    }\n                    pppppppcVar31 = (code *******)unaff_s7[0xc];\n                    if (pppppppcVar31 != (code *******)0x0) {\n                      pppppppcVar29 = (code *******)((int)local_8c + -1);\n                      uVar19 = FUN_00049110(&local_b4);\n                      if ((uVar19 & 1) == 0) {\n                        pppppppcVar30 = (code *******)pppppppcVar31[uVar7];\n                      }\n                      else {\n                        pppppppcVar31 = pppppppcVar31 + uVar7 + 0x100;\n                        pppppppcVar30 = (code *******)*pppppppcVar31;\n                      }\n                      goto LAB_000553a0;\n                    }\n                    pppppppcVar29 = unaff_s7;\n                    pppppppcVar30 = local_5c;\n                    iVar18 = (*pcVar9)(local_60);\n                  } while (iVar18 != 0);\n                  local_d8 = (code *******)0xc;\n                  pppppppcVar15 = local_d8;\nLAB_00055e44:\n                  local_d8 = pppppppcVar15;\n                  param_4 = (code *******)0x0;\n                  if (local_50 == (code *******)0x0) {\n                    pppppppcVar14 = param_4;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    break;\n                  }\n                  pppppppcVar30 = (code *******)0x0;\nLAB_000553ac:\n                  pppppppcVar29 = &local_b4;\n                  pppppppcVar14 = (code *******)FUN_00053684(&local_d8);\nLAB_000553cc:\n                  param_4 = pppppppcVar14;\n                  if (pppppppcVar14 == (code *******)0x0) {\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    if ((local_50 == (code *******)0x0) ||\n                       ((pppppppcVar28 != (code *******)0x0 && (pppppppcVar34 == (code *******)0x0))\n                       )) break;\n                    param_6 = &local_b4;\n                    param_5 = (code *******)&local_d8;\n                    pppppppcVar31 = (code *******)(PTR_DAT_000799a4 + 0x3684);\n                    do {\n                      pppppppcVar15 = local_50 + (int)local_8c;\n                      pppppppcVar42 = local_8c;\n                      do {\n                        pppppppcVar42 = (code *******)((int)pppppppcVar42 + 1);\n                        pppppppcVar29 = local_4c;\n                        param_4 = pppppppcVar14;\n                        if ((int)local_4c < (int)pppppppcVar42) goto LAB_00055da8;\n                        local_8c = (code *******)((int)local_8c + 1);\n                        pppppppcVar15 = pppppppcVar15 + 1;\n                      } while (*pppppppcVar15 == (code ******)0x0);\n                      pppppppcVar30 = (code *******)0x0;\n                      pppppppcVar29 = param_6;\n                      param_4 = (code *******)(*(code *)pppppppcVar31)(param_5);\n                      if (local_d8 != (code *******)0x0) {\n                        if (param_4 == (code *******)0x0) goto LAB_00055da8;\n                        break;\n                      }\n                      pppppppcVar29 = local_4c;\n                    } while (param_4 == (code *******)0x0);\n                  }\n                  pppppppcVar15 = (code *******)((uint)unaff_s7 ^ (uint)param_4);\n                  pppppppcVar42 = unaff_s7;\n                  pppppppcVar14 = local_138;\n                  if ((bVar1) &&\n                     (pppppppcVar42 = pppppppcVar15, pppppppcVar14 = unaff_s5,\n                     pppppppcVar15 != (code *******)0x0)) {\n                    bVar1 = false;\n                    pppppppcVar14 = local_138;\n                  }\n                  local_138 = pppppppcVar14;\n                  unaff_s7 = param_4;\n                  if ((((uint)param_4[0xd] & 0x8000000) != 0) &&\n                     ((((uint)param_4[0xd] & 0x1000000) == 0 ||\n                      (pppppppcVar29 = param_4, pppppppcVar30 = local_8c,\n                      iVar18 = FUN_00049440(&local_b4), iVar18 != 0)))) {\n                    unaff_s7 = pppppppcVar42;\n                    unaff_s8 = local_8c;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                    local_144 = (code *******)0x0;\n                    unaff_s7 = param_4;\n                  }\n                }\nLAB_00055da8:\n                if (local_144 != (code *******)0x0) {\n                  *local_144 = (code ******)((int)local_138 + (int)*local_144);\n                }\n              }\n              else {\n                param_4 = unaff_s7 + 1;\n                pppppppcVar30 = (code *******)0x0;\n                pppppppcVar29 = param_4;\n                local_d8 = (code *******)FUN_00047a44(&local_b4);\n                unaff_s8 = local_d8;\n                if (local_d8 == (code *******)0x0) {\n                  if (((uint)unaff_s7[0xd] & 0x2000000) == 0) {\n                    pppppppcVar29 = param_4;\n                    bVar1 = false;\n                  }\n                  else {\n                    pppppppcVar29 = param_4;\n                    local_d8 = (code *******)FUN_00052d84(&local_b4);\n                    unaff_s8 = local_d8;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055dbc;\n                    bVar1 = false;\n                  }\n                  goto LAB_00054d50;\n                }\n              }\nLAB_00055dbc:\n              if (unaff_s8 == (code *******)0xffffffff) {\nLAB_00055b04:\n                FUN_0004b7e8(&local_b4);\nLAB_00055b1c:\n                local_dc = (code *******)((int)pppppppcVar24 + (int)local_dc);\n                if ((int)pppppppcVar25 <= (int)local_dc) goto code_r0x00055b38;\n                local_150 = (code *******)0x1;\n                goto LAB_000557e4;\n              }\n              if (unaff_s8 == (code *******)&SUB_fffffffe) {\n                local_150 = (code *******)0xc;\n                goto LAB_000557e4;\n              }\n              local_58 = unaff_s8;\n              if (((uint)param_1[7] & 0x8000000) == 0) {\n                if (pppppppcVar3 < (code *******)0x2) {\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055c08;\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                else {\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                if (pppppppcVar3 < (code *******)0x2) {\nLAB_00055c6c:\n                  pppppppcVar28 = pppppppcVar33;\n                  unaff_s4 = local_60;\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055548;\n                }\n                else {\n                  cVar23 = *(code *)(pppppppcVar38 + 0x16);\nLAB_00055c20:\n                  pppppppcVar28 = pppppppcVar33;\n                  if (-1 < (char)cVar23) goto LAB_00055c6c;\n                }\n                pppppppcVar31 = local_54;\n                pppppppcVar42 = local_60;\n                unaff_s4 = pppppppcVar42;\n                if (unaff_s8 < (code *******)0x3fffffff) {\n                  param_4 = (code *******)((int)((int)unaff_s8 + 1) * 4);\n                  unaff_s5 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                  if (unaff_s5 == (code *******)0x0) {\nLAB_00055b9c:\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    local_150 = (code *******)0xc;\n                    pppppppcVar33 = pppppppcVar28;\n                  }\n                  else {\n                    pppppppcVar29 = (code *******)&local_d0;\n                    if (pppppppcVar42[0x13] == (code ******)0x0) {\n                      local_cc = (code *******)0x0;\n                      local_c8 = pppppppcVar31;\n                      local_c0 = 0;\n                      local_bc = 0;\n                      local_b8 = 0;\n                      local_d0 = unaff_s5;\n                      local_c4 = unaff_s8;\n                      param_5 = (code *******)FUN_0005421c(&local_b4);\n                      (*(code *)PTR_free_00079c24)(local_b8);\n                      if (param_5 == (code *******)0x0) {\n                        param_4 = (code *******)*unaff_s5;\n                        if (param_4 == (code *******)0x0) {\nLAB_00055b70:\n                          (*(code *)PTR_free_00079c24)(unaff_s5);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          pppppppcVar33 = pppppppcVar28;\n                          goto LAB_00055b04;\n                        }\nLAB_00055528:\n                        (*(code *)PTR_free_00079c24)(local_50);\n                        pppppppcVar33 = pppppppcVar28;\n                        unaff_s4 = pppppppcVar42;\n                        local_58 = unaff_s8;\n                        local_54 = pppppppcVar31;\n                        local_50 = unaff_s5;\n                        goto LAB_00055548;\n                      }\nLAB_00055acc:\n                      param_4 = (code *******)0x0;\n                      pppppppcVar33 = pppppppcVar28;\n                      unaff_s4 = pppppppcVar42;\n                    }\n                    else {\n                      param_4 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                      if (param_4 == (code *******)0x0) goto LAB_00055b9c;\n                      unaff_s7 = (code *******)&local_d0;\n                      pcVar8 = (code *)(PTR_DAT_000799a4 + 0x421c);\n                      pcVar9 = (code *)(PTR_DAT_000799a4 + -0x6bc0);\n                      pppppppcVar33 = pppppppcVar28;\n                      while( true ) {\n                        pppppppcVar28 = (code *******)((int)unaff_s8 + 1);\n                        param_6 = (code *******)((int)pppppppcVar28 * 4);\n                        pppppppcVar30 = param_6;\n                        (*(code *)PTR_memset_00079b00)(param_4,0);\n                        local_c0 = 0;\n                        local_bc = 0;\n                        local_b8 = 0;\n                        pppppppcVar29 = unaff_s7;\n                        local_d0 = unaff_s5;\n                        local_cc = param_4;\n                        local_c8 = pppppppcVar31;\n                        local_c4 = unaff_s8;\n                        param_5 = (code *******)(*pcVar8)(&local_b4);\n                        (*(code *)PTR_free_00079c24)(local_b8);\n                        unaff_s4 = pppppppcVar28;\n                        if (param_5 != (code *******)0x0) break;\n                        if ((*unaff_s5 != (code ******)0x0) ||\n                           (param_6 = param_6 + -1, *param_4 != (code ******)0x0)) {\n                          pppppppcVar29 = unaff_s5;\n                          pppppppcVar30 = param_4;\n                          param_5 = (code *******)FUN_000520d0(pppppppcVar42);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          if (param_5 != (code *******)0x0) goto LAB_00055acc;\n                          goto LAB_00055528;\n                        }\n                        param_6 = (code *******)((int)local_50 + (int)param_6);\n                        do {\n                          while( true ) {\n                            unaff_s8 = (code *******)((int)unaff_s8 + -1);\n                            if ((int)unaff_s8 < 0) goto LAB_00055b70;\n                            pppppppcVar29 = (code *******)param_6[-1];\n                            if (pppppppcVar29 != (code *******)0x0) break;\n                            param_6 = param_6 + -1;\n                          }\n                          param_6 = param_6 + -1;\n                        } while (((uint)pppppppcVar29[0xd] & 0x8000000) == 0);\n                        pppppppcVar31 = (code *******)(*pcVar9)(&local_b4,pppppppcVar29,unaff_s8);\n                        pppppppcVar33 = pppppppcVar28;\n                      }\n                    }\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    (*(code *)PTR_free_00079c24)(param_4);\n                    local_150 = param_5;\n                    if (param_5 == (code *******)0x1) goto LAB_00055b04;\n                  }\n                }\n                else {\n                  local_150 = (code *******)0xc;\n                  pppppppcVar33 = pppppppcVar28;\n                }\n                goto LAB_000557e4;\n              }\n              if (pppppppcVar38[0x13] != (code ******)0x0) {\n                pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                pppppppcVar30 = unaff_s8;\n                local_54 = (code *******)FUN_00049440(&local_b4);\n                goto LAB_00055c6c;\n              }\nLAB_00055c08:\n              if ((((uint)param_1[7] & 0x8000000) == 0) && ((code *******)0x1 < pppppppcVar3)) {\n                cVar23 = *(code *)(pppppppcVar38 + 0x16);\n                goto LAB_00055c20;\n              }\nLAB_00055548:\n              if (pppppppcVar3 == (code *******)0x0) goto LAB_000557e4;\n              if (pppppppcVar3 < (code *******)0x2) {\n                *param_8 = (code ******)0x0;\n                param_8[1] = (code ******)local_58;\n                goto LAB_000555ac;\n              }\n              pppppppcVar29 = param_8 + 2;\n              do {\n                pppppppcVar29[1] = (code ******)0xffffffff;\n                *pppppppcVar29 = (code ******)0xffffffff;\n                pppppppcVar29 = pppppppcVar29 + 2;\n              } while (pppppppcVar29 != param_8 + (int)pppppppcVar3 * 2);\n              *param_8 = (code ******)0x0;\n              param_8[1] = (code ******)local_58;\n              if (((uint)param_1[7] & 0x8000000) != 0) {\nLAB_000555ac:\n                pppppppcVar33 = param_8;\n                do {\n                  pppppppcVar29 = (code *******)*pppppppcVar33;\n                  if (pppppppcVar29 != (code *******)0xffffffff) {\n                    if (local_68 != '\0') {\n                      pppppppcVar34 = local_94;\n                      if (pppppppcVar29 != local_98) {\n                        pppppppcVar34 = *(code ********)(local_a8 + (int)pppppppcVar29 * 4);\n                      }\n                      *pppppppcVar33 = (code ******)pppppppcVar34;\n                      pppppppcVar29 = local_94;\n                      if (local_98 != (code *******)pppppppcVar33[1]) {\n                        pppppppcVar29 = *(code ********)(local_a8 + (int)pppppppcVar33[1] * 4);\n                      }\n                      pppppppcVar33[1] = (code ******)pppppppcVar29;\n                    }\n                    *pppppppcVar33 = (code ******)((int)local_dc + (int)*pppppppcVar33);\n                    pppppppcVar29 = (code *******)((int)local_dc + (int)pppppppcVar33[1]);\n                    pppppppcVar33[1] = (code ******)pppppppcVar29;\n                  }\n                  pppppppcVar33 = pppppppcVar33 + 2;\n                } while (pppppppcVar33 != param_8 + (int)pppppppcVar3 * 2);\n                if (0 < local_118) {\n                  pppppppcVar33 = param_8 + (int)pppppppcVar3 * 2;\n                  do {\n                    *pppppppcVar33 = (code ******)0xffffffff;\n                    pppppppcVar33[1] = (code ******)0xffffffff;\n                    pppppppcVar33 = pppppppcVar33 + 2;\n                  } while (pppppppcVar33 != param_8 + (int)param_7 * 2);\n                }\n                pppppppcVar30 = local_dc;\n                pppppppcVar33 = param_8;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar38[0x21] != (code ******)0x0) {\n                  pppppppcVar30 = (code *******)((int)pppppppcVar3 + -1);\n                  pppppppcVar34 = (code *******)0x0;\n                  pppppppcVar3 = param_8;\n                  while( true ) {\n                    pppppppcVar29 = (code *******)((int)pppppppcVar34 * 4);\n                    if (pppppppcVar30 == pppppppcVar34) break;\n                    if (*(code ********)((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) !=\n                        pppppppcVar34) {\n                      pppppppcVar3[2] =\n                           param_8[(int)((int)*(code ********)\n                                               ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1)\n                                   * 2];\n                      pppppppcVar3[3] =\n                           param_8[((int)*(code ******)\n                                          ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1) * 2 +\n                                   1];\n                    }\n                    pppppppcVar34 = (code *******)((int)pppppppcVar34 + 1);\n                    pppppppcVar3 = pppppppcVar3 + 2;\n                  }\n                }\n                goto LAB_000557e4;\n              }\n              if ((char)*(code *)(pppppppcVar38 + 0x16) < '\0') {\n                local_168 = (uint)(0 < (int)pppppppcVar38[0x13]);\n              }\n              else {\n                local_168 = 0;\n              }\n              pppppppcVar29 = &local_b4;\n              pppppppcVar30 = pppppppcVar3;\n              pppppppcVar33 = param_8;\n              local_150 = (code *******)FUN_0004f4a0(param_1);\n              if (local_150 == (code *******)0x0) goto LAB_000555ac;\n            }" if (parenthesized_expression "((int)pppppppcVar26 < (int)param_4)" ( (binary_expression "(int)pppppppcVar26 < (int)param_4" (cast_expression "(int)pppppppcVar26" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)param_4" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n              local_150 = (code *******)0x1;\n              param_4 = (code *******)(uint)((int)param_5 < (int)param_4);\n              param_6 = pppppppcVar36;\n            }" { (expression_statement "local_150 = (code *******)0x1;" (assignment_expression "local_150 = (code *******)0x1" identifier = (cast_expression "(code *******)0x1" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "param_4 = (code *******)(uint)((int)param_5 < (int)param_4);" (assignment_expression "param_4 = (code *******)(uint)((int)param_5 < (int)param_4)" identifier = (cast_expression "(code *******)(uint)((int)param_5 < (int)param_4)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "(uint)((int)param_5 < (int)param_4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)param_5 < (int)param_4)" ( (binary_expression "(int)param_5 < (int)param_4" (cast_expression "(int)param_5" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)param_4" ( (type_descriptor "int" primitive_type) ) identifier)) ))))) ;) (expression_statement "param_6 = pppppppcVar36;" (assignment_expression "param_6 = pppppppcVar36" identifier = identifier) ;) }) (else_clause "else {\n              pppppppcVar36 = (code *******)&local_dc;\n              if ((code *******)(uint)((int)param_5 < (int)param_4) != (code *******)0x0) {\n                pppppppcVar36 = (code *******)0x0;\n              }\n              pcVar4 = (code *)(PTR_DAT_000799a4 + -0x2b7c);\n              piVar5 = (int *)(PTR_s_nt0_000795b8 + (uVar16 - 4) * 4 + 0x6e38);\nLAB_00055b44:\n              if (uVar16 - 4 < 5) {\n                    \n                    \n                pppppppcVar29 = (code *******)(*(code *)(&_gp_1 + *piVar5))();\n                return pppppppcVar29;\n              }\n              param_5 = &local_b4;\n              pppppppcVar28 = pppppppcVar33;\n              while( true ) {\n                param_4 = local_dc;\n                pppppppcVar33 = (code *******)((int)local_dc - local_9c);\n                pppppppcVar30 = param_9;\n                pppppppcVar31 = pppppppcVar2;\n                param_6 = local_148;\n                unaff_s4 = param_3;\n                unaff_s5 = pppppppcVar24;\n                unaff_s7 = pppppppcVar26;\n                if (local_94 <= pppppppcVar33) {\n                  pppppppcVar29 = local_dc;\n                  local_150 = (code *******)(*pcVar4)(param_5);\n                  pppppppcVar33 = pppppppcVar28;\n                  if (local_150 != (code *******)0x0) goto LAB_000557e4;\n                  pppppppcVar33 = (code *******)((int)param_4 - local_9c);\n                }\n                if ((int)param_4 < (int)param_3) {\n                  uVar7 = (uint)(byte)*(code *)((int)pppppppcVar33 + (int)local_b0);\n                }\n                else {\n                  uVar7 = 0;\n                }\n                param_4 = (code *******)((int)param_4 + (int)pppppppcVar24);\n                if (*(code *)((int)local_148 + uVar7) != (code)0x0) break;\n                pppppppcVar33 = pppppppcVar28;\n                local_dc = param_4;\n                if ((int)param_4 < (int)pppppppcVar25) {\n                  local_150 = (code *******)0x1;\n                  goto LAB_000557e4;\n                }\n                if ((code *******)(uint)((int)pppppppcVar26 < (int)param_4) != (code *******)0x0) {\n                  local_150 = (code *******)0x1;\n                  param_4 = (code *******)(uint)((int)pppppppcVar26 < (int)param_4);\n                  goto LAB_000557e4;\n                }\n              }\n              while( true ) {\n                pppppppcVar29 = local_dc;\n                pppppppcVar30 = param_9;\n                pppppppcVar6 = (code *******)(*pcVar4)(&local_b4);\n                pppppppcVar14 = local_60;\n                pppppppcVar42 = local_8c;\n                pppppppcVar33 = pppppppcVar28;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar6 != (code *******)0x0) goto LAB_000557e4;\n                if (((ppppppcVar35 != (code ******)0x1) && (local_98 != (code *******)0x0)) &&\n                   (*local_ac == -1)) goto LAB_00055b1c;\n                local_3c = 0;\n                local_48 = 0;\n                local_4c = (code *******)0x0;\n                local_138 = local_8c;\n                local_d8 = (code *******)0x0;\n                unaff_s7 = (code *******)local_60[9];\n                pppppppcVar30 = local_5c;\n                param_4 = pppppppcVar14;\n                if (((uint)unaff_s7[0xd] & 0x1000000) == 0) break;\n                pppppppcVar29 = (code *******)((int)local_8c + -1);\n                pppppppcVar33 = (code *******)FUN_00049110(&local_b4);\n                if (((uint)pppppppcVar33 & 1) == 0) {\n                  if (pppppppcVar33 == (code *******)0x0) break;\n                  if (((uint)pppppppcVar33 & 6) == 6) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xc];\n                    goto LAB_00054d1c;\n                  }\n                  if (((uint)pppppppcVar33 & 2) != 0) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xb];\n                    goto LAB_00054d1c;\n                  }\n                  pppppppcVar28 = pppppppcVar33;\n                  if (((uint)pppppppcVar33 & 4) == 0) break;\n                  pppppppcVar30 = (code *******)unaff_s7[10];\n                  pppppppcVar29 = pppppppcVar14;\n                  unaff_s7 = (code *******)FUN_0004ae34(&local_d8);\n                  pppppppcVar28 = pppppppcVar33;\n                  if (unaff_s7 != (code *******)0x0) break;\n                  if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                }\n                else {\n                  unaff_s7 = (code *******)pppppppcVar14[10];\nLAB_00054d1c:\n                  pppppppcVar28 = (code *******)PTR_s_nt0_000795b8;\n                  if (unaff_s7 != (code *******)0x0) break;\n                }\n                pppppppcVar28 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                local_dc = (code *******)\n                           (*(code *)PTR___assert_fail_000799f8)\n                                     (PTR_s_nt0_000795b8 + 0x71a0,pppppppcVar29,0x435);\n                if (local_dc == pppppppcVar26) {\n                  if ((int)local_dc < (int)param_3) {\n                    uVar7 = (uint)(byte)*(code *)((int)local_dc + (int)param_2);\n                  }\n                  else {\n                    uVar7 = 0;\n                  }\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    uVar7 = (uint)*(byte *)((int)ppppppcVar32 + uVar7);\n                  }\n                  if (*(code *)((int)local_148 + uVar7) == (code)0x0) {\n                    local_150 = (code *******)0x1;\n                    pppppppcVar30 = param_9;\n                    pppppppcVar33 = pppppppcVar28;\n                    goto LAB_000557e4;\n                  }\n                }\n              }\n              pppppppcVar33 = pppppppcVar28;\n              bVar1 = pppppppcVar36 != (code *******)0x0;\n              if ((local_50 == (code *******)0x0) ||\n                 (local_50[(int)pppppppcVar42] = (code ******)unaff_s7,\n                 pppppppcVar14[0x13] == (code ******)0x0)) {\nLAB_00054d50:\n                if ((int)unaff_s7[0xd] << 4 < 0) {\n                  if ((((uint)unaff_s7[0xd] & 0x1000000) == 0) ||\n                     (pppppppcVar29 = unaff_s7, pppppppcVar30 = pppppppcVar42,\n                     iVar18 = FUN_00049440(&local_b4), iVar18 != 0)) {\n                    unaff_s8 = pppppppcVar42;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                  }\n                  else {\n                    pppppppcVar42 = (code *******)0xffffffff;\n                    pppppppcVar28 = (code *******)0x0;\n                  }\n                }\n                else {\n                  pppppppcVar42 = (code *******)0xffffffff;\n                  pppppppcVar28 = (code *******)0x0;\n                }\n                pcVar8 = (code *)(PTR_DAT_000799a4 + -0x7144);\n                pcVar9 = (code *)(PTR_DAT_000799a4 + -0x1980);\n                pcVar10 = (code *)(PTR_DAT_000799a4 + -0x2f9c);\n                unaff_s8 = pppppppcVar42;\n                local_144 = pppppppcVar36;\n                while( true ) {\n                  uVar44 = CONCAT44(local_98,local_84);\n                  unaff_s5 = (code *******)((int)local_8c + 1);\n                  pppppppcVar29 = local_8c;\n                  if ((int)local_7c <= (int)local_8c) break;\n                  if (((int)local_90 <= (int)unaff_s5) && ((int)local_90 < (int)local_84))\n                  goto LAB_00054e94;\n                  if ((int)local_98 <= (int)unaff_s5) {\n                    while ((int)((ulonglong)uVar44 >> 0x20) < (int)uVar44) {\nLAB_00054e94:\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 2);\n                      local_d8 = (code *******)(*pcVar8)(&local_b4);\n                      if (local_d8 == (code *******)0x0) break;\n                      pppppppcVar14 = param_4;\n                      if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                      pppppppcVar33 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                      pppppppcVar30 = (code *******)0x46c;\n                      pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                      uVar44 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0);\n                      pppppppcVar28 = pppppppcVar38;\n                    }\n                  }\n                  pppppppcVar42 = local_60;\n                  if ((int)unaff_s7[0xd] << 5 < 0) {\n                    pppppppcVar31 = pppppppcVar42;\n                    if (0 < (int)unaff_s7[2]) {\n                      pcVar11 = (code *)(PTR_DAT_000799a4 + -0x6fdc);\n                      pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6ef0);\n                      param_6 = (code *******)0x0;\n                      do {\n                        param_5 = (code *******)unaff_s7[3][(int)param_6];\n                        ppppppcVar39 = *pppppppcVar42;\n                        pppppcVar13 = ppppppcVar39[(int)param_5 * 2 + 1];\n                        if (((uint)pppppcVar13 & 0x800) != 0) {\n                          if (((uint)pppppcVar13 & 0xffc000) != 0) {\n                            pppppppcVar29 = local_8c;\n                            uVar19 = (*pcVar12)(&local_b4,local_8c,local_5c);\n                            uVar7 = (uint)((int)ppppppcVar39[(int)param_5 * 2 + 1] << 8) >> 0x16;\n                            if ((uVar7 & 4) == 0) {\n                              uVar27 = uVar19 & 1;\n                              if ((uVar7 & 8) != 0) goto joined_r0x00054f40;\n                            }\n                            else {\n                              uVar27 = uVar7 & 8;\n                              if ((uVar19 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                              if (uVar27 != 0) goto LAB_000550a4;\n                            }\n                            if ((((uVar7 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                               (((uVar7 & 0x80) != 0 &&\n                                (pppppppcVar33 = local_8c, (uVar19 & 8) == 0)))) goto LAB_000550a4;\n                          }\n                          pppppppcVar30 = &local_b4;\n                          pppppppcVar29 = param_5;\n                          pppppppcVar33 = local_8c;\n                          iVar18 = (*pcVar10)(pppppppcVar42);\n                          if (iVar18 != 0) {\n                            pppppppcVar14 = (code *******)((int)local_8c + iVar18);\n                            if (iVar18 <= local_3c) {\n                              iVar18 = local_3c;\n                            }\n                            pppppppcVar29 = pppppppcVar14;\n                            local_3c = iVar18;\n                            local_d4 = (code *******)(*pcVar11)(&local_b4);\n                            pppppppcVar15 = local_d4;\n                            if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                            pppppppcVar30 =\n                                 (code *******)\n                                 (pppppppcVar42[6] + (int)pppppppcVar42[3][(int)param_5] * 3);\n                            unaff_s4 = (code *******)((int)pppppppcVar14 * 4);\n                            param_5 = local_50 + (int)pppppppcVar14;\n                            if (*param_5 == (code ******)0x0) {\n                              local_d0 = (code *******)*pppppppcVar30;\n                              local_cc = (code *******)pppppppcVar30[1];\n                              local_c8 = (code *******)pppppppcVar30[2];\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *param_5 = ppppppcVar39;\n                            }\n                            else {\n                              pppppppcVar29 = (code *******)(*param_5)[10];\n                              local_d4 = (code *******)FUN_000484bc(&local_d0);\n                              pppppppcVar15 = local_d4;\n                              if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar15 = local_50 + (int)pppppppcVar14;\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *pppppppcVar15 = ppppppcVar39;\n                              (*(code *)PTR_free_00079c24)(local_c8);\n                            }\n                            unaff_s4 = local_50 + (int)pppppppcVar14;\n                            if ((*unaff_s4 == (code ******)0x0) &&\n                               (pppppppcVar15 = local_d4, local_d4 != (code *******)0x0))\n                            goto LAB_00055e44;\n                          }\n                        }\nLAB_000550a4:\n                        param_6 = (code *******)((int)param_6 + 1);\n                      } while ((int)param_6 < (int)unaff_s7[2]);\n                    }\n                    local_d8 = (code *******)0x0;\n                  }\n                  uVar7 = (uint)(byte)*(code *)((int)local_8c + (int)local_b0);\n                  local_8c = (code *******)((int)local_8c + 1);\n                  do {\n                    if (unaff_s7[0xb] != (code ******)0x0) {\n                      pppppppcVar30 = (code *******)unaff_s7[0xb][uVar7];\nLAB_000553a0:\n                      pppppppcVar14 = pppppppcVar30;\n                      if (local_50 != (code *******)0x0) goto LAB_000553ac;\n                      goto LAB_000553cc;\n                    }\n                    pppppppcVar31 = (code *******)unaff_s7[0xc];\n                    if (pppppppcVar31 != (code *******)0x0) {\n                      pppppppcVar29 = (code *******)((int)local_8c + -1);\n                      uVar19 = FUN_00049110(&local_b4);\n                      if ((uVar19 & 1) == 0) {\n                        pppppppcVar30 = (code *******)pppppppcVar31[uVar7];\n                      }\n                      else {\n                        pppppppcVar31 = pppppppcVar31 + uVar7 + 0x100;\n                        pppppppcVar30 = (code *******)*pppppppcVar31;\n                      }\n                      goto LAB_000553a0;\n                    }\n                    pppppppcVar29 = unaff_s7;\n                    pppppppcVar30 = local_5c;\n                    iVar18 = (*pcVar9)(local_60);\n                  } while (iVar18 != 0);\n                  local_d8 = (code *******)0xc;\n                  pppppppcVar15 = local_d8;\nLAB_00055e44:\n                  local_d8 = pppppppcVar15;\n                  param_4 = (code *******)0x0;\n                  if (local_50 == (code *******)0x0) {\n                    pppppppcVar14 = param_4;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    break;\n                  }\n                  pppppppcVar30 = (code *******)0x0;\nLAB_000553ac:\n                  pppppppcVar29 = &local_b4;\n                  pppppppcVar14 = (code *******)FUN_00053684(&local_d8);\nLAB_000553cc:\n                  param_4 = pppppppcVar14;\n                  if (pppppppcVar14 == (code *******)0x0) {\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    if ((local_50 == (code *******)0x0) ||\n                       ((pppppppcVar28 != (code *******)0x0 && (pppppppcVar34 == (code *******)0x0))\n                       )) break;\n                    param_6 = &local_b4;\n                    param_5 = (code *******)&local_d8;\n                    pppppppcVar31 = (code *******)(PTR_DAT_000799a4 + 0x3684);\n                    do {\n                      pppppppcVar15 = local_50 + (int)local_8c;\n                      pppppppcVar42 = local_8c;\n                      do {\n                        pppppppcVar42 = (code *******)((int)pppppppcVar42 + 1);\n                        pppppppcVar29 = local_4c;\n                        param_4 = pppppppcVar14;\n                        if ((int)local_4c < (int)pppppppcVar42) goto LAB_00055da8;\n                        local_8c = (code *******)((int)local_8c + 1);\n                        pppppppcVar15 = pppppppcVar15 + 1;\n                      } while (*pppppppcVar15 == (code ******)0x0);\n                      pppppppcVar30 = (code *******)0x0;\n                      pppppppcVar29 = param_6;\n                      param_4 = (code *******)(*(code *)pppppppcVar31)(param_5);\n                      if (local_d8 != (code *******)0x0) {\n                        if (param_4 == (code *******)0x0) goto LAB_00055da8;\n                        break;\n                      }\n                      pppppppcVar29 = local_4c;\n                    } while (param_4 == (code *******)0x0);\n                  }\n                  pppppppcVar15 = (code *******)((uint)unaff_s7 ^ (uint)param_4);\n                  pppppppcVar42 = unaff_s7;\n                  pppppppcVar14 = local_138;\n                  if ((bVar1) &&\n                     (pppppppcVar42 = pppppppcVar15, pppppppcVar14 = unaff_s5,\n                     pppppppcVar15 != (code *******)0x0)) {\n                    bVar1 = false;\n                    pppppppcVar14 = local_138;\n                  }\n                  local_138 = pppppppcVar14;\n                  unaff_s7 = param_4;\n                  if ((((uint)param_4[0xd] & 0x8000000) != 0) &&\n                     ((((uint)param_4[0xd] & 0x1000000) == 0 ||\n                      (pppppppcVar29 = param_4, pppppppcVar30 = local_8c,\n                      iVar18 = FUN_00049440(&local_b4), iVar18 != 0)))) {\n                    unaff_s7 = pppppppcVar42;\n                    unaff_s8 = local_8c;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                    local_144 = (code *******)0x0;\n                    unaff_s7 = param_4;\n                  }\n                }\nLAB_00055da8:\n                if (local_144 != (code *******)0x0) {\n                  *local_144 = (code ******)((int)local_138 + (int)*local_144);\n                }\n              }\n              else {\n                param_4 = unaff_s7 + 1;\n                pppppppcVar30 = (code *******)0x0;\n                pppppppcVar29 = param_4;\n                local_d8 = (code *******)FUN_00047a44(&local_b4);\n                unaff_s8 = local_d8;\n                if (local_d8 == (code *******)0x0) {\n                  if (((uint)unaff_s7[0xd] & 0x2000000) == 0) {\n                    pppppppcVar29 = param_4;\n                    bVar1 = false;\n                  }\n                  else {\n                    pppppppcVar29 = param_4;\n                    local_d8 = (code *******)FUN_00052d84(&local_b4);\n                    unaff_s8 = local_d8;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055dbc;\n                    bVar1 = false;\n                  }\n                  goto LAB_00054d50;\n                }\n              }\nLAB_00055dbc:\n              if (unaff_s8 == (code *******)0xffffffff) {\nLAB_00055b04:\n                FUN_0004b7e8(&local_b4);\nLAB_00055b1c:\n                local_dc = (code *******)((int)pppppppcVar24 + (int)local_dc);\n                if ((int)pppppppcVar25 <= (int)local_dc) goto code_r0x00055b38;\n                local_150 = (code *******)0x1;\n                goto LAB_000557e4;\n              }\n              if (unaff_s8 == (code *******)&SUB_fffffffe) {\n                local_150 = (code *******)0xc;\n                goto LAB_000557e4;\n              }\n              local_58 = unaff_s8;\n              if (((uint)param_1[7] & 0x8000000) == 0) {\n                if (pppppppcVar3 < (code *******)0x2) {\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055c08;\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                else {\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                if (pppppppcVar3 < (code *******)0x2) {\nLAB_00055c6c:\n                  pppppppcVar28 = pppppppcVar33;\n                  unaff_s4 = local_60;\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055548;\n                }\n                else {\n                  cVar23 = *(code *)(pppppppcVar38 + 0x16);\nLAB_00055c20:\n                  pppppppcVar28 = pppppppcVar33;\n                  if (-1 < (char)cVar23) goto LAB_00055c6c;\n                }\n                pppppppcVar31 = local_54;\n                pppppppcVar42 = local_60;\n                unaff_s4 = pppppppcVar42;\n                if (unaff_s8 < (code *******)0x3fffffff) {\n                  param_4 = (code *******)((int)((int)unaff_s8 + 1) * 4);\n                  unaff_s5 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                  if (unaff_s5 == (code *******)0x0) {\nLAB_00055b9c:\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    local_150 = (code *******)0xc;\n                    pppppppcVar33 = pppppppcVar28;\n                  }\n                  else {\n                    pppppppcVar29 = (code *******)&local_d0;\n                    if (pppppppcVar42[0x13] == (code ******)0x0) {\n                      local_cc = (code *******)0x0;\n                      local_c8 = pppppppcVar31;\n                      local_c0 = 0;\n                      local_bc = 0;\n                      local_b8 = 0;\n                      local_d0 = unaff_s5;\n                      local_c4 = unaff_s8;\n                      param_5 = (code *******)FUN_0005421c(&local_b4);\n                      (*(code *)PTR_free_00079c24)(local_b8);\n                      if (param_5 == (code *******)0x0) {\n                        param_4 = (code *******)*unaff_s5;\n                        if (param_4 == (code *******)0x0) {\nLAB_00055b70:\n                          (*(code *)PTR_free_00079c24)(unaff_s5);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          pppppppcVar33 = pppppppcVar28;\n                          goto LAB_00055b04;\n                        }\nLAB_00055528:\n                        (*(code *)PTR_free_00079c24)(local_50);\n                        pppppppcVar33 = pppppppcVar28;\n                        unaff_s4 = pppppppcVar42;\n                        local_58 = unaff_s8;\n                        local_54 = pppppppcVar31;\n                        local_50 = unaff_s5;\n                        goto LAB_00055548;\n                      }\nLAB_00055acc:\n                      param_4 = (code *******)0x0;\n                      pppppppcVar33 = pppppppcVar28;\n                      unaff_s4 = pppppppcVar42;\n                    }\n                    else {\n                      param_4 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                      if (param_4 == (code *******)0x0) goto LAB_00055b9c;\n                      unaff_s7 = (code *******)&local_d0;\n                      pcVar8 = (code *)(PTR_DAT_000799a4 + 0x421c);\n                      pcVar9 = (code *)(PTR_DAT_000799a4 + -0x6bc0);\n                      pppppppcVar33 = pppppppcVar28;\n                      while( true ) {\n                        pppppppcVar28 = (code *******)((int)unaff_s8 + 1);\n                        param_6 = (code *******)((int)pppppppcVar28 * 4);\n                        pppppppcVar30 = param_6;\n                        (*(code *)PTR_memset_00079b00)(param_4,0);\n                        local_c0 = 0;\n                        local_bc = 0;\n                        local_b8 = 0;\n                        pppppppcVar29 = unaff_s7;\n                        local_d0 = unaff_s5;\n                        local_cc = param_4;\n                        local_c8 = pppppppcVar31;\n                        local_c4 = unaff_s8;\n                        param_5 = (code *******)(*pcVar8)(&local_b4);\n                        (*(code *)PTR_free_00079c24)(local_b8);\n                        unaff_s4 = pppppppcVar28;\n                        if (param_5 != (code *******)0x0) break;\n                        if ((*unaff_s5 != (code ******)0x0) ||\n                           (param_6 = param_6 + -1, *param_4 != (code ******)0x0)) {\n                          pppppppcVar29 = unaff_s5;\n                          pppppppcVar30 = param_4;\n                          param_5 = (code *******)FUN_000520d0(pppppppcVar42);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          if (param_5 != (code *******)0x0) goto LAB_00055acc;\n                          goto LAB_00055528;\n                        }\n                        param_6 = (code *******)((int)local_50 + (int)param_6);\n                        do {\n                          while( true ) {\n                            unaff_s8 = (code *******)((int)unaff_s8 + -1);\n                            if ((int)unaff_s8 < 0) goto LAB_00055b70;\n                            pppppppcVar29 = (code *******)param_6[-1];\n                            if (pppppppcVar29 != (code *******)0x0) break;\n                            param_6 = param_6 + -1;\n                          }\n                          param_6 = param_6 + -1;\n                        } while (((uint)pppppppcVar29[0xd] & 0x8000000) == 0);\n                        pppppppcVar31 = (code *******)(*pcVar9)(&local_b4,pppppppcVar29,unaff_s8);\n                        pppppppcVar33 = pppppppcVar28;\n                      }\n                    }\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    (*(code *)PTR_free_00079c24)(param_4);\n                    local_150 = param_5;\n                    if (param_5 == (code *******)0x1) goto LAB_00055b04;\n                  }\n                }\n                else {\n                  local_150 = (code *******)0xc;\n                  pppppppcVar33 = pppppppcVar28;\n                }\n                goto LAB_000557e4;\n              }\n              if (pppppppcVar38[0x13] != (code ******)0x0) {\n                pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                pppppppcVar30 = unaff_s8;\n                local_54 = (code *******)FUN_00049440(&local_b4);\n                goto LAB_00055c6c;\n              }\nLAB_00055c08:\n              if ((((uint)param_1[7] & 0x8000000) == 0) && ((code *******)0x1 < pppppppcVar3)) {\n                cVar23 = *(code *)(pppppppcVar38 + 0x16);\n                goto LAB_00055c20;\n              }\nLAB_00055548:\n              if (pppppppcVar3 == (code *******)0x0) goto LAB_000557e4;\n              if (pppppppcVar3 < (code *******)0x2) {\n                *param_8 = (code ******)0x0;\n                param_8[1] = (code ******)local_58;\n                goto LAB_000555ac;\n              }\n              pppppppcVar29 = param_8 + 2;\n              do {\n                pppppppcVar29[1] = (code ******)0xffffffff;\n                *pppppppcVar29 = (code ******)0xffffffff;\n                pppppppcVar29 = pppppppcVar29 + 2;\n              } while (pppppppcVar29 != param_8 + (int)pppppppcVar3 * 2);\n              *param_8 = (code ******)0x0;\n              param_8[1] = (code ******)local_58;\n              if (((uint)param_1[7] & 0x8000000) != 0) {\nLAB_000555ac:\n                pppppppcVar33 = param_8;\n                do {\n                  pppppppcVar29 = (code *******)*pppppppcVar33;\n                  if (pppppppcVar29 != (code *******)0xffffffff) {\n                    if (local_68 != '\0') {\n                      pppppppcVar34 = local_94;\n                      if (pppppppcVar29 != local_98) {\n                        pppppppcVar34 = *(code ********)(local_a8 + (int)pppppppcVar29 * 4);\n                      }\n                      *pppppppcVar33 = (code ******)pppppppcVar34;\n                      pppppppcVar29 = local_94;\n                      if (local_98 != (code *******)pppppppcVar33[1]) {\n                        pppppppcVar29 = *(code ********)(local_a8 + (int)pppppppcVar33[1] * 4);\n                      }\n                      pppppppcVar33[1] = (code ******)pppppppcVar29;\n                    }\n                    *pppppppcVar33 = (code ******)((int)local_dc + (int)*pppppppcVar33);\n                    pppppppcVar29 = (code *******)((int)local_dc + (int)pppppppcVar33[1]);\n                    pppppppcVar33[1] = (code ******)pppppppcVar29;\n                  }\n                  pppppppcVar33 = pppppppcVar33 + 2;\n                } while (pppppppcVar33 != param_8 + (int)pppppppcVar3 * 2);\n                if (0 < local_118) {\n                  pppppppcVar33 = param_8 + (int)pppppppcVar3 * 2;\n                  do {\n                    *pppppppcVar33 = (code ******)0xffffffff;\n                    pppppppcVar33[1] = (code ******)0xffffffff;\n                    pppppppcVar33 = pppppppcVar33 + 2;\n                  } while (pppppppcVar33 != param_8 + (int)param_7 * 2);\n                }\n                pppppppcVar30 = local_dc;\n                pppppppcVar33 = param_8;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar38[0x21] != (code ******)0x0) {\n                  pppppppcVar30 = (code *******)((int)pppppppcVar3 + -1);\n                  pppppppcVar34 = (code *******)0x0;\n                  pppppppcVar3 = param_8;\n                  while( true ) {\n                    pppppppcVar29 = (code *******)((int)pppppppcVar34 * 4);\n                    if (pppppppcVar30 == pppppppcVar34) break;\n                    if (*(code ********)((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) !=\n                        pppppppcVar34) {\n                      pppppppcVar3[2] =\n                           param_8[(int)((int)*(code ********)\n                                               ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1)\n                                   * 2];\n                      pppppppcVar3[3] =\n                           param_8[((int)*(code ******)\n                                          ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1) * 2 +\n                                   1];\n                    }\n                    pppppppcVar34 = (code *******)((int)pppppppcVar34 + 1);\n                    pppppppcVar3 = pppppppcVar3 + 2;\n                  }\n                }\n                goto LAB_000557e4;\n              }\n              if ((char)*(code *)(pppppppcVar38 + 0x16) < '\0') {\n                local_168 = (uint)(0 < (int)pppppppcVar38[0x13]);\n              }\n              else {\n                local_168 = 0;\n              }\n              pppppppcVar29 = &local_b4;\n              pppppppcVar30 = pppppppcVar3;\n              pppppppcVar33 = param_8;\n              local_150 = (code *******)FUN_0004f4a0(param_1);\n              if (local_150 == (code *******)0x0) goto LAB_000555ac;\n            }" else (compound_statement "{\n              pppppppcVar36 = (code *******)&local_dc;\n              if ((code *******)(uint)((int)param_5 < (int)param_4) != (code *******)0x0) {\n                pppppppcVar36 = (code *******)0x0;\n              }\n              pcVar4 = (code *)(PTR_DAT_000799a4 + -0x2b7c);\n              piVar5 = (int *)(PTR_s_nt0_000795b8 + (uVar16 - 4) * 4 + 0x6e38);\nLAB_00055b44:\n              if (uVar16 - 4 < 5) {\n                    \n                    \n                pppppppcVar29 = (code *******)(*(code *)(&_gp_1 + *piVar5))();\n                return pppppppcVar29;\n              }\n              param_5 = &local_b4;\n              pppppppcVar28 = pppppppcVar33;\n              while( true ) {\n                param_4 = local_dc;\n                pppppppcVar33 = (code *******)((int)local_dc - local_9c);\n                pppppppcVar30 = param_9;\n                pppppppcVar31 = pppppppcVar2;\n                param_6 = local_148;\n                unaff_s4 = param_3;\n                unaff_s5 = pppppppcVar24;\n                unaff_s7 = pppppppcVar26;\n                if (local_94 <= pppppppcVar33) {\n                  pppppppcVar29 = local_dc;\n                  local_150 = (code *******)(*pcVar4)(param_5);\n                  pppppppcVar33 = pppppppcVar28;\n                  if (local_150 != (code *******)0x0) goto LAB_000557e4;\n                  pppppppcVar33 = (code *******)((int)param_4 - local_9c);\n                }\n                if ((int)param_4 < (int)param_3) {\n                  uVar7 = (uint)(byte)*(code *)((int)pppppppcVar33 + (int)local_b0);\n                }\n                else {\n                  uVar7 = 0;\n                }\n                param_4 = (code *******)((int)param_4 + (int)pppppppcVar24);\n                if (*(code *)((int)local_148 + uVar7) != (code)0x0) break;\n                pppppppcVar33 = pppppppcVar28;\n                local_dc = param_4;\n                if ((int)param_4 < (int)pppppppcVar25) {\n                  local_150 = (code *******)0x1;\n                  goto LAB_000557e4;\n                }\n                if ((code *******)(uint)((int)pppppppcVar26 < (int)param_4) != (code *******)0x0) {\n                  local_150 = (code *******)0x1;\n                  param_4 = (code *******)(uint)((int)pppppppcVar26 < (int)param_4);\n                  goto LAB_000557e4;\n                }\n              }\n              while( true ) {\n                pppppppcVar29 = local_dc;\n                pppppppcVar30 = param_9;\n                pppppppcVar6 = (code *******)(*pcVar4)(&local_b4);\n                pppppppcVar14 = local_60;\n                pppppppcVar42 = local_8c;\n                pppppppcVar33 = pppppppcVar28;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar6 != (code *******)0x0) goto LAB_000557e4;\n                if (((ppppppcVar35 != (code ******)0x1) && (local_98 != (code *******)0x0)) &&\n                   (*local_ac == -1)) goto LAB_00055b1c;\n                local_3c = 0;\n                local_48 = 0;\n                local_4c = (code *******)0x0;\n                local_138 = local_8c;\n                local_d8 = (code *******)0x0;\n                unaff_s7 = (code *******)local_60[9];\n                pppppppcVar30 = local_5c;\n                param_4 = pppppppcVar14;\n                if (((uint)unaff_s7[0xd] & 0x1000000) == 0) break;\n                pppppppcVar29 = (code *******)((int)local_8c + -1);\n                pppppppcVar33 = (code *******)FUN_00049110(&local_b4);\n                if (((uint)pppppppcVar33 & 1) == 0) {\n                  if (pppppppcVar33 == (code *******)0x0) break;\n                  if (((uint)pppppppcVar33 & 6) == 6) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xc];\n                    goto LAB_00054d1c;\n                  }\n                  if (((uint)pppppppcVar33 & 2) != 0) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xb];\n                    goto LAB_00054d1c;\n                  }\n                  pppppppcVar28 = pppppppcVar33;\n                  if (((uint)pppppppcVar33 & 4) == 0) break;\n                  pppppppcVar30 = (code *******)unaff_s7[10];\n                  pppppppcVar29 = pppppppcVar14;\n                  unaff_s7 = (code *******)FUN_0004ae34(&local_d8);\n                  pppppppcVar28 = pppppppcVar33;\n                  if (unaff_s7 != (code *******)0x0) break;\n                  if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                }\n                else {\n                  unaff_s7 = (code *******)pppppppcVar14[10];\nLAB_00054d1c:\n                  pppppppcVar28 = (code *******)PTR_s_nt0_000795b8;\n                  if (unaff_s7 != (code *******)0x0) break;\n                }\n                pppppppcVar28 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                local_dc = (code *******)\n                           (*(code *)PTR___assert_fail_000799f8)\n                                     (PTR_s_nt0_000795b8 + 0x71a0,pppppppcVar29,0x435);\n                if (local_dc == pppppppcVar26) {\n                  if ((int)local_dc < (int)param_3) {\n                    uVar7 = (uint)(byte)*(code *)((int)local_dc + (int)param_2);\n                  }\n                  else {\n                    uVar7 = 0;\n                  }\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    uVar7 = (uint)*(byte *)((int)ppppppcVar32 + uVar7);\n                  }\n                  if (*(code *)((int)local_148 + uVar7) == (code)0x0) {\n                    local_150 = (code *******)0x1;\n                    pppppppcVar30 = param_9;\n                    pppppppcVar33 = pppppppcVar28;\n                    goto LAB_000557e4;\n                  }\n                }\n              }\n              pppppppcVar33 = pppppppcVar28;\n              bVar1 = pppppppcVar36 != (code *******)0x0;\n              if ((local_50 == (code *******)0x0) ||\n                 (local_50[(int)pppppppcVar42] = (code ******)unaff_s7,\n                 pppppppcVar14[0x13] == (code ******)0x0)) {\nLAB_00054d50:\n                if ((int)unaff_s7[0xd] << 4 < 0) {\n                  if ((((uint)unaff_s7[0xd] & 0x1000000) == 0) ||\n                     (pppppppcVar29 = unaff_s7, pppppppcVar30 = pppppppcVar42,\n                     iVar18 = FUN_00049440(&local_b4), iVar18 != 0)) {\n                    unaff_s8 = pppppppcVar42;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                  }\n                  else {\n                    pppppppcVar42 = (code *******)0xffffffff;\n                    pppppppcVar28 = (code *******)0x0;\n                  }\n                }\n                else {\n                  pppppppcVar42 = (code *******)0xffffffff;\n                  pppppppcVar28 = (code *******)0x0;\n                }\n                pcVar8 = (code *)(PTR_DAT_000799a4 + -0x7144);\n                pcVar9 = (code *)(PTR_DAT_000799a4 + -0x1980);\n                pcVar10 = (code *)(PTR_DAT_000799a4 + -0x2f9c);\n                unaff_s8 = pppppppcVar42;\n                local_144 = pppppppcVar36;\n                while( true ) {\n                  uVar44 = CONCAT44(local_98,local_84);\n                  unaff_s5 = (code *******)((int)local_8c + 1);\n                  pppppppcVar29 = local_8c;\n                  if ((int)local_7c <= (int)local_8c) break;\n                  if (((int)local_90 <= (int)unaff_s5) && ((int)local_90 < (int)local_84))\n                  goto LAB_00054e94;\n                  if ((int)local_98 <= (int)unaff_s5) {\n                    while ((int)((ulonglong)uVar44 >> 0x20) < (int)uVar44) {\nLAB_00054e94:\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 2);\n                      local_d8 = (code *******)(*pcVar8)(&local_b4);\n                      if (local_d8 == (code *******)0x0) break;\n                      pppppppcVar14 = param_4;\n                      if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                      pppppppcVar33 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                      pppppppcVar30 = (code *******)0x46c;\n                      pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                      uVar44 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0);\n                      pppppppcVar28 = pppppppcVar38;\n                    }\n                  }\n                  pppppppcVar42 = local_60;\n                  if ((int)unaff_s7[0xd] << 5 < 0) {\n                    pppppppcVar31 = pppppppcVar42;\n                    if (0 < (int)unaff_s7[2]) {\n                      pcVar11 = (code *)(PTR_DAT_000799a4 + -0x6fdc);\n                      pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6ef0);\n                      param_6 = (code *******)0x0;\n                      do {\n                        param_5 = (code *******)unaff_s7[3][(int)param_6];\n                        ppppppcVar39 = *pppppppcVar42;\n                        pppppcVar13 = ppppppcVar39[(int)param_5 * 2 + 1];\n                        if (((uint)pppppcVar13 & 0x800) != 0) {\n                          if (((uint)pppppcVar13 & 0xffc000) != 0) {\n                            pppppppcVar29 = local_8c;\n                            uVar19 = (*pcVar12)(&local_b4,local_8c,local_5c);\n                            uVar7 = (uint)((int)ppppppcVar39[(int)param_5 * 2 + 1] << 8) >> 0x16;\n                            if ((uVar7 & 4) == 0) {\n                              uVar27 = uVar19 & 1;\n                              if ((uVar7 & 8) != 0) goto joined_r0x00054f40;\n                            }\n                            else {\n                              uVar27 = uVar7 & 8;\n                              if ((uVar19 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                              if (uVar27 != 0) goto LAB_000550a4;\n                            }\n                            if ((((uVar7 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                               (((uVar7 & 0x80) != 0 &&\n                                (pppppppcVar33 = local_8c, (uVar19 & 8) == 0)))) goto LAB_000550a4;\n                          }\n                          pppppppcVar30 = &local_b4;\n                          pppppppcVar29 = param_5;\n                          pppppppcVar33 = local_8c;\n                          iVar18 = (*pcVar10)(pppppppcVar42);\n                          if (iVar18 != 0) {\n                            pppppppcVar14 = (code *******)((int)local_8c + iVar18);\n                            if (iVar18 <= local_3c) {\n                              iVar18 = local_3c;\n                            }\n                            pppppppcVar29 = pppppppcVar14;\n                            local_3c = iVar18;\n                            local_d4 = (code *******)(*pcVar11)(&local_b4);\n                            pppppppcVar15 = local_d4;\n                            if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                            pppppppcVar30 =\n                                 (code *******)\n                                 (pppppppcVar42[6] + (int)pppppppcVar42[3][(int)param_5] * 3);\n                            unaff_s4 = (code *******)((int)pppppppcVar14 * 4);\n                            param_5 = local_50 + (int)pppppppcVar14;\n                            if (*param_5 == (code ******)0x0) {\n                              local_d0 = (code *******)*pppppppcVar30;\n                              local_cc = (code *******)pppppppcVar30[1];\n                              local_c8 = (code *******)pppppppcVar30[2];\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *param_5 = ppppppcVar39;\n                            }\n                            else {\n                              pppppppcVar29 = (code *******)(*param_5)[10];\n                              local_d4 = (code *******)FUN_000484bc(&local_d0);\n                              pppppppcVar15 = local_d4;\n                              if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar15 = local_50 + (int)pppppppcVar14;\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *pppppppcVar15 = ppppppcVar39;\n                              (*(code *)PTR_free_00079c24)(local_c8);\n                            }\n                            unaff_s4 = local_50 + (int)pppppppcVar14;\n                            if ((*unaff_s4 == (code ******)0x0) &&\n                               (pppppppcVar15 = local_d4, local_d4 != (code *******)0x0))\n                            goto LAB_00055e44;\n                          }\n                        }\nLAB_000550a4:\n                        param_6 = (code *******)((int)param_6 + 1);\n                      } while ((int)param_6 < (int)unaff_s7[2]);\n                    }\n                    local_d8 = (code *******)0x0;\n                  }\n                  uVar7 = (uint)(byte)*(code *)((int)local_8c + (int)local_b0);\n                  local_8c = (code *******)((int)local_8c + 1);\n                  do {\n                    if (unaff_s7[0xb] != (code ******)0x0) {\n                      pppppppcVar30 = (code *******)unaff_s7[0xb][uVar7];\nLAB_000553a0:\n                      pppppppcVar14 = pppppppcVar30;\n                      if (local_50 != (code *******)0x0) goto LAB_000553ac;\n                      goto LAB_000553cc;\n                    }\n                    pppppppcVar31 = (code *******)unaff_s7[0xc];\n                    if (pppppppcVar31 != (code *******)0x0) {\n                      pppppppcVar29 = (code *******)((int)local_8c + -1);\n                      uVar19 = FUN_00049110(&local_b4);\n                      if ((uVar19 & 1) == 0) {\n                        pppppppcVar30 = (code *******)pppppppcVar31[uVar7];\n                      }\n                      else {\n                        pppppppcVar31 = pppppppcVar31 + uVar7 + 0x100;\n                        pppppppcVar30 = (code *******)*pppppppcVar31;\n                      }\n                      goto LAB_000553a0;\n                    }\n                    pppppppcVar29 = unaff_s7;\n                    pppppppcVar30 = local_5c;\n                    iVar18 = (*pcVar9)(local_60);\n                  } while (iVar18 != 0);\n                  local_d8 = (code *******)0xc;\n                  pppppppcVar15 = local_d8;\nLAB_00055e44:\n                  local_d8 = pppppppcVar15;\n                  param_4 = (code *******)0x0;\n                  if (local_50 == (code *******)0x0) {\n                    pppppppcVar14 = param_4;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    break;\n                  }\n                  pppppppcVar30 = (code *******)0x0;\nLAB_000553ac:\n                  pppppppcVar29 = &local_b4;\n                  pppppppcVar14 = (code *******)FUN_00053684(&local_d8);\nLAB_000553cc:\n                  param_4 = pppppppcVar14;\n                  if (pppppppcVar14 == (code *******)0x0) {\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    if ((local_50 == (code *******)0x0) ||\n                       ((pppppppcVar28 != (code *******)0x0 && (pppppppcVar34 == (code *******)0x0))\n                       )) break;\n                    param_6 = &local_b4;\n                    param_5 = (code *******)&local_d8;\n                    pppppppcVar31 = (code *******)(PTR_DAT_000799a4 + 0x3684);\n                    do {\n                      pppppppcVar15 = local_50 + (int)local_8c;\n                      pppppppcVar42 = local_8c;\n                      do {\n                        pppppppcVar42 = (code *******)((int)pppppppcVar42 + 1);\n                        pppppppcVar29 = local_4c;\n                        param_4 = pppppppcVar14;\n                        if ((int)local_4c < (int)pppppppcVar42) goto LAB_00055da8;\n                        local_8c = (code *******)((int)local_8c + 1);\n                        pppppppcVar15 = pppppppcVar15 + 1;\n                      } while (*pppppppcVar15 == (code ******)0x0);\n                      pppppppcVar30 = (code *******)0x0;\n                      pppppppcVar29 = param_6;\n                      param_4 = (code *******)(*(code *)pppppppcVar31)(param_5);\n                      if (local_d8 != (code *******)0x0) {\n                        if (param_4 == (code *******)0x0) goto LAB_00055da8;\n                        break;\n                      }\n                      pppppppcVar29 = local_4c;\n                    } while (param_4 == (code *******)0x0);\n                  }\n                  pppppppcVar15 = (code *******)((uint)unaff_s7 ^ (uint)param_4);\n                  pppppppcVar42 = unaff_s7;\n                  pppppppcVar14 = local_138;\n                  if ((bVar1) &&\n                     (pppppppcVar42 = pppppppcVar15, pppppppcVar14 = unaff_s5,\n                     pppppppcVar15 != (code *******)0x0)) {\n                    bVar1 = false;\n                    pppppppcVar14 = local_138;\n                  }\n                  local_138 = pppppppcVar14;\n                  unaff_s7 = param_4;\n                  if ((((uint)param_4[0xd] & 0x8000000) != 0) &&\n                     ((((uint)param_4[0xd] & 0x1000000) == 0 ||\n                      (pppppppcVar29 = param_4, pppppppcVar30 = local_8c,\n                      iVar18 = FUN_00049440(&local_b4), iVar18 != 0)))) {\n                    unaff_s7 = pppppppcVar42;\n                    unaff_s8 = local_8c;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                    local_144 = (code *******)0x0;\n                    unaff_s7 = param_4;\n                  }\n                }\nLAB_00055da8:\n                if (local_144 != (code *******)0x0) {\n                  *local_144 = (code ******)((int)local_138 + (int)*local_144);\n                }\n              }\n              else {\n                param_4 = unaff_s7 + 1;\n                pppppppcVar30 = (code *******)0x0;\n                pppppppcVar29 = param_4;\n                local_d8 = (code *******)FUN_00047a44(&local_b4);\n                unaff_s8 = local_d8;\n                if (local_d8 == (code *******)0x0) {\n                  if (((uint)unaff_s7[0xd] & 0x2000000) == 0) {\n                    pppppppcVar29 = param_4;\n                    bVar1 = false;\n                  }\n                  else {\n                    pppppppcVar29 = param_4;\n                    local_d8 = (code *******)FUN_00052d84(&local_b4);\n                    unaff_s8 = local_d8;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055dbc;\n                    bVar1 = false;\n                  }\n                  goto LAB_00054d50;\n                }\n              }\nLAB_00055dbc:\n              if (unaff_s8 == (code *******)0xffffffff) {\nLAB_00055b04:\n                FUN_0004b7e8(&local_b4);\nLAB_00055b1c:\n                local_dc = (code *******)((int)pppppppcVar24 + (int)local_dc);\n                if ((int)pppppppcVar25 <= (int)local_dc) goto code_r0x00055b38;\n                local_150 = (code *******)0x1;\n                goto LAB_000557e4;\n              }\n              if (unaff_s8 == (code *******)&SUB_fffffffe) {\n                local_150 = (code *******)0xc;\n                goto LAB_000557e4;\n              }\n              local_58 = unaff_s8;\n              if (((uint)param_1[7] & 0x8000000) == 0) {\n                if (pppppppcVar3 < (code *******)0x2) {\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055c08;\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                else {\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                if (pppppppcVar3 < (code *******)0x2) {\nLAB_00055c6c:\n                  pppppppcVar28 = pppppppcVar33;\n                  unaff_s4 = local_60;\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055548;\n                }\n                else {\n                  cVar23 = *(code *)(pppppppcVar38 + 0x16);\nLAB_00055c20:\n                  pppppppcVar28 = pppppppcVar33;\n                  if (-1 < (char)cVar23) goto LAB_00055c6c;\n                }\n                pppppppcVar31 = local_54;\n                pppppppcVar42 = local_60;\n                unaff_s4 = pppppppcVar42;\n                if (unaff_s8 < (code *******)0x3fffffff) {\n                  param_4 = (code *******)((int)((int)unaff_s8 + 1) * 4);\n                  unaff_s5 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                  if (unaff_s5 == (code *******)0x0) {\nLAB_00055b9c:\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    local_150 = (code *******)0xc;\n                    pppppppcVar33 = pppppppcVar28;\n                  }\n                  else {\n                    pppppppcVar29 = (code *******)&local_d0;\n                    if (pppppppcVar42[0x13] == (code ******)0x0) {\n                      local_cc = (code *******)0x0;\n                      local_c8 = pppppppcVar31;\n                      local_c0 = 0;\n                      local_bc = 0;\n                      local_b8 = 0;\n                      local_d0 = unaff_s5;\n                      local_c4 = unaff_s8;\n                      param_5 = (code *******)FUN_0005421c(&local_b4);\n                      (*(code *)PTR_free_00079c24)(local_b8);\n                      if (param_5 == (code *******)0x0) {\n                        param_4 = (code *******)*unaff_s5;\n                        if (param_4 == (code *******)0x0) {\nLAB_00055b70:\n                          (*(code *)PTR_free_00079c24)(unaff_s5);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          pppppppcVar33 = pppppppcVar28;\n                          goto LAB_00055b04;\n                        }\nLAB_00055528:\n                        (*(code *)PTR_free_00079c24)(local_50);\n                        pppppppcVar33 = pppppppcVar28;\n                        unaff_s4 = pppppppcVar42;\n                        local_58 = unaff_s8;\n                        local_54 = pppppppcVar31;\n                        local_50 = unaff_s5;\n                        goto LAB_00055548;\n                      }\nLAB_00055acc:\n                      param_4 = (code *******)0x0;\n                      pppppppcVar33 = pppppppcVar28;\n                      unaff_s4 = pppppppcVar42;\n                    }\n                    else {\n                      param_4 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                      if (param_4 == (code *******)0x0) goto LAB_00055b9c;\n                      unaff_s7 = (code *******)&local_d0;\n                      pcVar8 = (code *)(PTR_DAT_000799a4 + 0x421c);\n                      pcVar9 = (code *)(PTR_DAT_000799a4 + -0x6bc0);\n                      pppppppcVar33 = pppppppcVar28;\n                      while( true ) {\n                        pppppppcVar28 = (code *******)((int)unaff_s8 + 1);\n                        param_6 = (code *******)((int)pppppppcVar28 * 4);\n                        pppppppcVar30 = param_6;\n                        (*(code *)PTR_memset_00079b00)(param_4,0);\n                        local_c0 = 0;\n                        local_bc = 0;\n                        local_b8 = 0;\n                        pppppppcVar29 = unaff_s7;\n                        local_d0 = unaff_s5;\n                        local_cc = param_4;\n                        local_c8 = pppppppcVar31;\n                        local_c4 = unaff_s8;\n                        param_5 = (code *******)(*pcVar8)(&local_b4);\n                        (*(code *)PTR_free_00079c24)(local_b8);\n                        unaff_s4 = pppppppcVar28;\n                        if (param_5 != (code *******)0x0) break;\n                        if ((*unaff_s5 != (code ******)0x0) ||\n                           (param_6 = param_6 + -1, *param_4 != (code ******)0x0)) {\n                          pppppppcVar29 = unaff_s5;\n                          pppppppcVar30 = param_4;\n                          param_5 = (code *******)FUN_000520d0(pppppppcVar42);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          if (param_5 != (code *******)0x0) goto LAB_00055acc;\n                          goto LAB_00055528;\n                        }\n                        param_6 = (code *******)((int)local_50 + (int)param_6);\n                        do {\n                          while( true ) {\n                            unaff_s8 = (code *******)((int)unaff_s8 + -1);\n                            if ((int)unaff_s8 < 0) goto LAB_00055b70;\n                            pppppppcVar29 = (code *******)param_6[-1];\n                            if (pppppppcVar29 != (code *******)0x0) break;\n                            param_6 = param_6 + -1;\n                          }\n                          param_6 = param_6 + -1;\n                        } while (((uint)pppppppcVar29[0xd] & 0x8000000) == 0);\n                        pppppppcVar31 = (code *******)(*pcVar9)(&local_b4,pppppppcVar29,unaff_s8);\n                        pppppppcVar33 = pppppppcVar28;\n                      }\n                    }\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    (*(code *)PTR_free_00079c24)(param_4);\n                    local_150 = param_5;\n                    if (param_5 == (code *******)0x1) goto LAB_00055b04;\n                  }\n                }\n                else {\n                  local_150 = (code *******)0xc;\n                  pppppppcVar33 = pppppppcVar28;\n                }\n                goto LAB_000557e4;\n              }\n              if (pppppppcVar38[0x13] != (code ******)0x0) {\n                pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                pppppppcVar30 = unaff_s8;\n                local_54 = (code *******)FUN_00049440(&local_b4);\n                goto LAB_00055c6c;\n              }\nLAB_00055c08:\n              if ((((uint)param_1[7] & 0x8000000) == 0) && ((code *******)0x1 < pppppppcVar3)) {\n                cVar23 = *(code *)(pppppppcVar38 + 0x16);\n                goto LAB_00055c20;\n              }\nLAB_00055548:\n              if (pppppppcVar3 == (code *******)0x0) goto LAB_000557e4;\n              if (pppppppcVar3 < (code *******)0x2) {\n                *param_8 = (code ******)0x0;\n                param_8[1] = (code ******)local_58;\n                goto LAB_000555ac;\n              }\n              pppppppcVar29 = param_8 + 2;\n              do {\n                pppppppcVar29[1] = (code ******)0xffffffff;\n                *pppppppcVar29 = (code ******)0xffffffff;\n                pppppppcVar29 = pppppppcVar29 + 2;\n              } while (pppppppcVar29 != param_8 + (int)pppppppcVar3 * 2);\n              *param_8 = (code ******)0x0;\n              param_8[1] = (code ******)local_58;\n              if (((uint)param_1[7] & 0x8000000) != 0) {\nLAB_000555ac:\n                pppppppcVar33 = param_8;\n                do {\n                  pppppppcVar29 = (code *******)*pppppppcVar33;\n                  if (pppppppcVar29 != (code *******)0xffffffff) {\n                    if (local_68 != '\0') {\n                      pppppppcVar34 = local_94;\n                      if (pppppppcVar29 != local_98) {\n                        pppppppcVar34 = *(code ********)(local_a8 + (int)pppppppcVar29 * 4);\n                      }\n                      *pppppppcVar33 = (code ******)pppppppcVar34;\n                      pppppppcVar29 = local_94;\n                      if (local_98 != (code *******)pppppppcVar33[1]) {\n                        pppppppcVar29 = *(code ********)(local_a8 + (int)pppppppcVar33[1] * 4);\n                      }\n                      pppppppcVar33[1] = (code ******)pppppppcVar29;\n                    }\n                    *pppppppcVar33 = (code ******)((int)local_dc + (int)*pppppppcVar33);\n                    pppppppcVar29 = (code *******)((int)local_dc + (int)pppppppcVar33[1]);\n                    pppppppcVar33[1] = (code ******)pppppppcVar29;\n                  }\n                  pppppppcVar33 = pppppppcVar33 + 2;\n                } while (pppppppcVar33 != param_8 + (int)pppppppcVar3 * 2);\n                if (0 < local_118) {\n                  pppppppcVar33 = param_8 + (int)pppppppcVar3 * 2;\n                  do {\n                    *pppppppcVar33 = (code ******)0xffffffff;\n                    pppppppcVar33[1] = (code ******)0xffffffff;\n                    pppppppcVar33 = pppppppcVar33 + 2;\n                  } while (pppppppcVar33 != param_8 + (int)param_7 * 2);\n                }\n                pppppppcVar30 = local_dc;\n                pppppppcVar33 = param_8;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar38[0x21] != (code ******)0x0) {\n                  pppppppcVar30 = (code *******)((int)pppppppcVar3 + -1);\n                  pppppppcVar34 = (code *******)0x0;\n                  pppppppcVar3 = param_8;\n                  while( true ) {\n                    pppppppcVar29 = (code *******)((int)pppppppcVar34 * 4);\n                    if (pppppppcVar30 == pppppppcVar34) break;\n                    if (*(code ********)((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) !=\n                        pppppppcVar34) {\n                      pppppppcVar3[2] =\n                           param_8[(int)((int)*(code ********)\n                                               ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1)\n                                   * 2];\n                      pppppppcVar3[3] =\n                           param_8[((int)*(code ******)\n                                          ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1) * 2 +\n                                   1];\n                    }\n                    pppppppcVar34 = (code *******)((int)pppppppcVar34 + 1);\n                    pppppppcVar3 = pppppppcVar3 + 2;\n                  }\n                }\n                goto LAB_000557e4;\n              }\n              if ((char)*(code *)(pppppppcVar38 + 0x16) < '\0') {\n                local_168 = (uint)(0 < (int)pppppppcVar38[0x13]);\n              }\n              else {\n                local_168 = 0;\n              }\n              pppppppcVar29 = &local_b4;\n              pppppppcVar30 = pppppppcVar3;\n              pppppppcVar33 = param_8;\n              local_150 = (code *******)FUN_0004f4a0(param_1);\n              if (local_150 == (code *******)0x0) goto LAB_000555ac;\n            }" { (expression_statement "pppppppcVar36 = (code *******)&local_dc;" (assignment_expression "pppppppcVar36 = (code *******)&local_dc" identifier = (cast_expression "(code *******)&local_dc" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "&local_dc" & identifier))) ;) (if_statement "if ((code *******)(uint)((int)param_5 < (int)param_4) != (code *******)0x0) {\n                pppppppcVar36 = (code *******)0x0;\n              }" if (parenthesized_expression "((code *******)(uint)((int)param_5 < (int)param_4) != (code *******)0x0)" ( (binary_expression "(code *******)(uint)((int)param_5 < (int)param_4) != (code *******)0x0" (cast_expression "(code *******)(uint)((int)param_5 < (int)param_4)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "(uint)((int)param_5 < (int)param_4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)param_5 < (int)param_4)" ( (binary_expression "(int)param_5 < (int)param_4" (cast_expression "(int)param_5" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)param_4" ( (type_descriptor "int" primitive_type) ) identifier)) )))) != (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\n                pppppppcVar36 = (code *******)0x0;\n              }" { (expression_statement "pppppppcVar36 = (code *******)0x0;" (assignment_expression "pppppppcVar36 = (code *******)0x0" identifier = (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) })) (expression_statement "pcVar4 = (code *)(PTR_DAT_000799a4 + -0x2b7c);" (assignment_expression "pcVar4 = (code *)(PTR_DAT_000799a4 + -0x2b7c)" identifier = (cast_expression "(code *)(PTR_DAT_000799a4 + -0x2b7c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000799a4 + -0x2b7c)" ( (binary_expression "PTR_DAT_000799a4 + -0x2b7c" identifier + number_literal) )))) ;) (expression_statement "piVar5 = (int *)(PTR_s_nt0_000795b8 + (uVar16 - 4) * 4 + 0x6e38);" (assignment_expression "piVar5 = (int *)(PTR_s_nt0_000795b8 + (uVar16 - 4) * 4 + 0x6e38)" identifier = (cast_expression "(int *)(PTR_s_nt0_000795b8 + (uVar16 - 4) * 4 + 0x6e38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_nt0_000795b8 + (uVar16 - 4) * 4 + 0x6e38)" ( (binary_expression "PTR_s_nt0_000795b8 + (uVar16 - 4) * 4 + 0x6e38" (binary_expression "PTR_s_nt0_000795b8 + (uVar16 - 4) * 4" identifier + (binary_expression "(uVar16 - 4) * 4" (parenthesized_expression "(uVar16 - 4)" ( (binary_expression "uVar16 - 4" identifier - number_literal) )) * number_literal)) + number_literal) )))) ;) (labeled_statement "LAB_00055b44:\n              if (uVar16 - 4 < 5) {\n                    \n                    \n                pppppppcVar29 = (code *******)(*(code *)(&_gp_1 + *piVar5))();\n                return pppppppcVar29;\n              }" statement_identifier : (if_statement "if (uVar16 - 4 < 5) {\n                    \n                    \n                pppppppcVar29 = (code *******)(*(code *)(&_gp_1 + *piVar5))();\n                return pppppppcVar29;\n              }" if (parenthesized_expression "(uVar16 - 4 < 5)" ( (binary_expression "uVar16 - 4 < 5" (binary_expression "uVar16 - 4" identifier - number_literal) < number_literal) )) (compound_statement "{\n                    \n                    \n                pppppppcVar29 = (code *******)(*(code *)(&_gp_1 + *piVar5))();\n                return pppppppcVar29;\n              }" { (expression_statement "pppppppcVar29 = (code *******)(*(code *)(&_gp_1 + *piVar5))();" (assignment_expression "pppppppcVar29 = (code *******)(*(code *)(&_gp_1 + *piVar5))()" identifier = (cast_expression "(code *******)(*(code *)(&_gp_1 + *piVar5))()" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "(*(code *)(&_gp_1 + *piVar5))()" (parenthesized_expression "(*(code *)(&_gp_1 + *piVar5))" ( (pointer_expression "*(code *)(&_gp_1 + *piVar5)" * (cast_expression "(code *)(&_gp_1 + *piVar5)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&_gp_1 + *piVar5)" ( (binary_expression "&_gp_1 + *piVar5" (pointer_expression "&_gp_1" & identifier) + (pointer_expression "*piVar5" * identifier)) )))) )) (argument_list "()" ( ))))) ;) (return_statement "return pppppppcVar29;" return identifier ;) }))) (expression_statement "param_5 = &local_b4;" (assignment_expression "param_5 = &local_b4" identifier = (pointer_expression "&local_b4" & identifier)) ;) (expression_statement "pppppppcVar28 = pppppppcVar33;" (assignment_expression "pppppppcVar28 = pppppppcVar33" identifier = identifier) ;) (while_statement "while( true ) {\n                param_4 = local_dc;\n                pppppppcVar33 = (code *******)((int)local_dc - local_9c);\n                pppppppcVar30 = param_9;\n                pppppppcVar31 = pppppppcVar2;\n                param_6 = local_148;\n                unaff_s4 = param_3;\n                unaff_s5 = pppppppcVar24;\n                unaff_s7 = pppppppcVar26;\n                if (local_94 <= pppppppcVar33) {\n                  pppppppcVar29 = local_dc;\n                  local_150 = (code *******)(*pcVar4)(param_5);\n                  pppppppcVar33 = pppppppcVar28;\n                  if (local_150 != (code *******)0x0) goto LAB_000557e4;\n                  pppppppcVar33 = (code *******)((int)param_4 - local_9c);\n                }\n                if ((int)param_4 < (int)param_3) {\n                  uVar7 = (uint)(byte)*(code *)((int)pppppppcVar33 + (int)local_b0);\n                }\n                else {\n                  uVar7 = 0;\n                }\n                param_4 = (code *******)((int)param_4 + (int)pppppppcVar24);\n                if (*(code *)((int)local_148 + uVar7) != (code)0x0) break;\n                pppppppcVar33 = pppppppcVar28;\n                local_dc = param_4;\n                if ((int)param_4 < (int)pppppppcVar25) {\n                  local_150 = (code *******)0x1;\n                  goto LAB_000557e4;\n                }\n                if ((code *******)(uint)((int)pppppppcVar26 < (int)param_4) != (code *******)0x0) {\n                  local_150 = (code *******)0x1;\n                  param_4 = (code *******)(uint)((int)pppppppcVar26 < (int)param_4);\n                  goto LAB_000557e4;\n                }\n              }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                param_4 = local_dc;\n                pppppppcVar33 = (code *******)((int)local_dc - local_9c);\n                pppppppcVar30 = param_9;\n                pppppppcVar31 = pppppppcVar2;\n                param_6 = local_148;\n                unaff_s4 = param_3;\n                unaff_s5 = pppppppcVar24;\n                unaff_s7 = pppppppcVar26;\n                if (local_94 <= pppppppcVar33) {\n                  pppppppcVar29 = local_dc;\n                  local_150 = (code *******)(*pcVar4)(param_5);\n                  pppppppcVar33 = pppppppcVar28;\n                  if (local_150 != (code *******)0x0) goto LAB_000557e4;\n                  pppppppcVar33 = (code *******)((int)param_4 - local_9c);\n                }\n                if ((int)param_4 < (int)param_3) {\n                  uVar7 = (uint)(byte)*(code *)((int)pppppppcVar33 + (int)local_b0);\n                }\n                else {\n                  uVar7 = 0;\n                }\n                param_4 = (code *******)((int)param_4 + (int)pppppppcVar24);\n                if (*(code *)((int)local_148 + uVar7) != (code)0x0) break;\n                pppppppcVar33 = pppppppcVar28;\n                local_dc = param_4;\n                if ((int)param_4 < (int)pppppppcVar25) {\n                  local_150 = (code *******)0x1;\n                  goto LAB_000557e4;\n                }\n                if ((code *******)(uint)((int)pppppppcVar26 < (int)param_4) != (code *******)0x0) {\n                  local_150 = (code *******)0x1;\n                  param_4 = (code *******)(uint)((int)pppppppcVar26 < (int)param_4);\n                  goto LAB_000557e4;\n                }\n              }" { (expression_statement "param_4 = local_dc;" (assignment_expression "param_4 = local_dc" identifier = identifier) ;) (expression_statement "pppppppcVar33 = (code *******)((int)local_dc - local_9c);" (assignment_expression "pppppppcVar33 = (code *******)((int)local_dc - local_9c)" identifier = (cast_expression "(code *******)((int)local_dc - local_9c)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)local_dc - local_9c)" ( (binary_expression "(int)local_dc - local_9c" (cast_expression "(int)local_dc" ( (type_descriptor "int" primitive_type) ) identifier) - identifier) )))) ;) (expression_statement "pppppppcVar30 = param_9;" (assignment_expression "pppppppcVar30 = param_9" identifier = identifier) ;) (expression_statement "pppppppcVar31 = pppppppcVar2;" (assignment_expression "pppppppcVar31 = pppppppcVar2" identifier = identifier) ;) (expression_statement "param_6 = local_148;" (assignment_expression "param_6 = local_148" identifier = identifier) ;) (expression_statement "unaff_s4 = param_3;" (assignment_expression "unaff_s4 = param_3" identifier = identifier) ;) (expression_statement "unaff_s5 = pppppppcVar24;" (assignment_expression "unaff_s5 = pppppppcVar24" identifier = identifier) ;) (expression_statement "unaff_s7 = pppppppcVar26;" (assignment_expression "unaff_s7 = pppppppcVar26" identifier = identifier) ;) (if_statement "if (local_94 <= pppppppcVar33) {\n                  pppppppcVar29 = local_dc;\n                  local_150 = (code *******)(*pcVar4)(param_5);\n                  pppppppcVar33 = pppppppcVar28;\n                  if (local_150 != (code *******)0x0) goto LAB_000557e4;\n                  pppppppcVar33 = (code *******)((int)param_4 - local_9c);\n                }" if (parenthesized_expression "(local_94 <= pppppppcVar33)" ( (binary_expression "local_94 <= pppppppcVar33" identifier <= identifier) )) (compound_statement "{\n                  pppppppcVar29 = local_dc;\n                  local_150 = (code *******)(*pcVar4)(param_5);\n                  pppppppcVar33 = pppppppcVar28;\n                  if (local_150 != (code *******)0x0) goto LAB_000557e4;\n                  pppppppcVar33 = (code *******)((int)param_4 - local_9c);\n                }" { (expression_statement "pppppppcVar29 = local_dc;" (assignment_expression "pppppppcVar29 = local_dc" identifier = identifier) ;) (expression_statement "local_150 = (code *******)(*pcVar4)(param_5);" (assignment_expression "local_150 = (code *******)(*pcVar4)(param_5)" identifier = (cast_expression "(code *******)(*pcVar4)(param_5)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "(*pcVar4)(param_5)" (parenthesized_expression "(*pcVar4)" ( (pointer_expression "*pcVar4" * identifier) )) (argument_list "(param_5)" ( identifier ))))) ;) (expression_statement "pppppppcVar33 = pppppppcVar28;" (assignment_expression "pppppppcVar33 = pppppppcVar28" identifier = identifier) ;) (if_statement "if (local_150 != (code *******)0x0) goto LAB_000557e4;" if (parenthesized_expression "(local_150 != (code *******)0x0)" ( (binary_expression "local_150 != (code *******)0x0" identifier != (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (goto_statement "goto LAB_000557e4;" goto statement_identifier ;)) (expression_statement "pppppppcVar33 = (code *******)((int)param_4 - local_9c);" (assignment_expression "pppppppcVar33 = (code *******)((int)param_4 - local_9c)" identifier = (cast_expression "(code *******)((int)param_4 - local_9c)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)param_4 - local_9c)" ( (binary_expression "(int)param_4 - local_9c" (cast_expression "(int)param_4" ( (type_descriptor "int" primitive_type) ) identifier) - identifier) )))) ;) })) (if_statement "if ((int)param_4 < (int)param_3) {\n                  uVar7 = (uint)(byte)*(code *)((int)pppppppcVar33 + (int)local_b0);\n                }\n                else {\n                  uVar7 = 0;\n                }" if (parenthesized_expression "((int)param_4 < (int)param_3)" ( (binary_expression "(int)param_4 < (int)param_3" (cast_expression "(int)param_4" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                  uVar7 = (uint)(byte)*(code *)((int)pppppppcVar33 + (int)local_b0);\n                }" { (expression_statement "uVar7 = (uint)(byte)*(code *)((int)pppppppcVar33 + (int)local_b0);" (assignment_expression "uVar7 = (uint)(byte)*(code *)((int)pppppppcVar33 + (int)local_b0)" identifier = (binary_expression "(uint)(byte)*(code *)((int)pppppppcVar33 + (int)local_b0)" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(byte)" ( identifier ))) * (cast_expression "(code *)((int)pppppppcVar33 + (int)local_b0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppppppcVar33 + (int)local_b0)" ( (binary_expression "(int)pppppppcVar33 + (int)local_b0" (cast_expression "(int)pppppppcVar33" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)local_b0" ( (type_descriptor "int" primitive_type) ) identifier)) ))))) ;) }) (else_clause "else {\n                  uVar7 = 0;\n                }" else (compound_statement "{\n                  uVar7 = 0;\n                }" { (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" identifier = number_literal) ;) }))) (expression_statement "param_4 = (code *******)((int)param_4 + (int)pppppppcVar24);" (assignment_expression "param_4 = (code *******)((int)param_4 + (int)pppppppcVar24)" identifier = (cast_expression "(code *******)((int)param_4 + (int)pppppppcVar24)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)param_4 + (int)pppppppcVar24)" ( (binary_expression "(int)param_4 + (int)pppppppcVar24" (cast_expression "(int)param_4" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)pppppppcVar24" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (if_statement "if (*(code *)((int)local_148 + uVar7) != (code)0x0) break;" if (parenthesized_expression "(*(code *)((int)local_148 + uVar7) != (code)0x0)" ( (binary_expression "*(code *)((int)local_148 + uVar7) != (code)0x0" (pointer_expression "*(code *)((int)local_148 + uVar7)" * (cast_expression "(code *)((int)local_148 + uVar7)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_148 + uVar7)" ( (binary_expression "(int)local_148 + uVar7" (cast_expression "(int)local_148" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) != (cast_expression "(code)0x0" ( (type_descriptor "code" type_identifier) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "pppppppcVar33 = pppppppcVar28;" (assignment_expression "pppppppcVar33 = pppppppcVar28" identifier = identifier) ;) (expression_statement "local_dc = param_4;" (assignment_expression "local_dc = param_4" identifier = identifier) ;) (if_statement "if ((int)param_4 < (int)pppppppcVar25) {\n                  local_150 = (code *******)0x1;\n                  goto LAB_000557e4;\n                }" if (parenthesized_expression "((int)param_4 < (int)pppppppcVar25)" ( (binary_expression "(int)param_4 < (int)pppppppcVar25" (cast_expression "(int)param_4" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)pppppppcVar25" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                  local_150 = (code *******)0x1;\n                  goto LAB_000557e4;\n                }" { (expression_statement "local_150 = (code *******)0x1;" (assignment_expression "local_150 = (code *******)0x1" identifier = (cast_expression "(code *******)0x1" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (goto_statement "goto LAB_000557e4;" goto statement_identifier ;) })) (if_statement "if ((code *******)(uint)((int)pppppppcVar26 < (int)param_4) != (code *******)0x0) {\n                  local_150 = (code *******)0x1;\n                  param_4 = (code *******)(uint)((int)pppppppcVar26 < (int)param_4);\n                  goto LAB_000557e4;\n                }" if (parenthesized_expression "((code *******)(uint)((int)pppppppcVar26 < (int)param_4) != (code *******)0x0)" ( (binary_expression "(code *******)(uint)((int)pppppppcVar26 < (int)param_4) != (code *******)0x0" (cast_expression "(code *******)(uint)((int)pppppppcVar26 < (int)param_4)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "(uint)((int)pppppppcVar26 < (int)param_4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)pppppppcVar26 < (int)param_4)" ( (binary_expression "(int)pppppppcVar26 < (int)param_4" (cast_expression "(int)pppppppcVar26" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)param_4" ( (type_descriptor "int" primitive_type) ) identifier)) )))) != (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\n                  local_150 = (code *******)0x1;\n                  param_4 = (code *******)(uint)((int)pppppppcVar26 < (int)param_4);\n                  goto LAB_000557e4;\n                }" { (expression_statement "local_150 = (code *******)0x1;" (assignment_expression "local_150 = (code *******)0x1" identifier = (cast_expression "(code *******)0x1" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "param_4 = (code *******)(uint)((int)pppppppcVar26 < (int)param_4);" (assignment_expression "param_4 = (code *******)(uint)((int)pppppppcVar26 < (int)param_4)" identifier = (cast_expression "(code *******)(uint)((int)pppppppcVar26 < (int)param_4)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "(uint)((int)pppppppcVar26 < (int)param_4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)pppppppcVar26 < (int)param_4)" ( (binary_expression "(int)pppppppcVar26 < (int)param_4" (cast_expression "(int)pppppppcVar26" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)param_4" ( (type_descriptor "int" primitive_type) ) identifier)) ))))) ;) (goto_statement "goto LAB_000557e4;" goto statement_identifier ;) })) })) (while_statement "while( true ) {\n                pppppppcVar29 = local_dc;\n                pppppppcVar30 = param_9;\n                pppppppcVar6 = (code *******)(*pcVar4)(&local_b4);\n                pppppppcVar14 = local_60;\n                pppppppcVar42 = local_8c;\n                pppppppcVar33 = pppppppcVar28;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar6 != (code *******)0x0) goto LAB_000557e4;\n                if (((ppppppcVar35 != (code ******)0x1) && (local_98 != (code *******)0x0)) &&\n                   (*local_ac == -1)) goto LAB_00055b1c;\n                local_3c = 0;\n                local_48 = 0;\n                local_4c = (code *******)0x0;\n                local_138 = local_8c;\n                local_d8 = (code *******)0x0;\n                unaff_s7 = (code *******)local_60[9];\n                pppppppcVar30 = local_5c;\n                param_4 = pppppppcVar14;\n                if (((uint)unaff_s7[0xd] & 0x1000000) == 0) break;\n                pppppppcVar29 = (code *******)((int)local_8c + -1);\n                pppppppcVar33 = (code *******)FUN_00049110(&local_b4);\n                if (((uint)pppppppcVar33 & 1) == 0) {\n                  if (pppppppcVar33 == (code *******)0x0) break;\n                  if (((uint)pppppppcVar33 & 6) == 6) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xc];\n                    goto LAB_00054d1c;\n                  }\n                  if (((uint)pppppppcVar33 & 2) != 0) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xb];\n                    goto LAB_00054d1c;\n                  }\n                  pppppppcVar28 = pppppppcVar33;\n                  if (((uint)pppppppcVar33 & 4) == 0) break;\n                  pppppppcVar30 = (code *******)unaff_s7[10];\n                  pppppppcVar29 = pppppppcVar14;\n                  unaff_s7 = (code *******)FUN_0004ae34(&local_d8);\n                  pppppppcVar28 = pppppppcVar33;\n                  if (unaff_s7 != (code *******)0x0) break;\n                  if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                }\n                else {\n                  unaff_s7 = (code *******)pppppppcVar14[10];\nLAB_00054d1c:\n                  pppppppcVar28 = (code *******)PTR_s_nt0_000795b8;\n                  if (unaff_s7 != (code *******)0x0) break;\n                }\n                pppppppcVar28 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                local_dc = (code *******)\n                           (*(code *)PTR___assert_fail_000799f8)\n                                     (PTR_s_nt0_000795b8 + 0x71a0,pppppppcVar29,0x435);\n                if (local_dc == pppppppcVar26) {\n                  if ((int)local_dc < (int)param_3) {\n                    uVar7 = (uint)(byte)*(code *)((int)local_dc + (int)param_2);\n                  }\n                  else {\n                    uVar7 = 0;\n                  }\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    uVar7 = (uint)*(byte *)((int)ppppppcVar32 + uVar7);\n                  }\n                  if (*(code *)((int)local_148 + uVar7) == (code)0x0) {\n                    local_150 = (code *******)0x1;\n                    pppppppcVar30 = param_9;\n                    pppppppcVar33 = pppppppcVar28;\n                    goto LAB_000557e4;\n                  }\n                }\n              }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                pppppppcVar29 = local_dc;\n                pppppppcVar30 = param_9;\n                pppppppcVar6 = (code *******)(*pcVar4)(&local_b4);\n                pppppppcVar14 = local_60;\n                pppppppcVar42 = local_8c;\n                pppppppcVar33 = pppppppcVar28;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar6 != (code *******)0x0) goto LAB_000557e4;\n                if (((ppppppcVar35 != (code ******)0x1) && (local_98 != (code *******)0x0)) &&\n                   (*local_ac == -1)) goto LAB_00055b1c;\n                local_3c = 0;\n                local_48 = 0;\n                local_4c = (code *******)0x0;\n                local_138 = local_8c;\n                local_d8 = (code *******)0x0;\n                unaff_s7 = (code *******)local_60[9];\n                pppppppcVar30 = local_5c;\n                param_4 = pppppppcVar14;\n                if (((uint)unaff_s7[0xd] & 0x1000000) == 0) break;\n                pppppppcVar29 = (code *******)((int)local_8c + -1);\n                pppppppcVar33 = (code *******)FUN_00049110(&local_b4);\n                if (((uint)pppppppcVar33 & 1) == 0) {\n                  if (pppppppcVar33 == (code *******)0x0) break;\n                  if (((uint)pppppppcVar33 & 6) == 6) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xc];\n                    goto LAB_00054d1c;\n                  }\n                  if (((uint)pppppppcVar33 & 2) != 0) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xb];\n                    goto LAB_00054d1c;\n                  }\n                  pppppppcVar28 = pppppppcVar33;\n                  if (((uint)pppppppcVar33 & 4) == 0) break;\n                  pppppppcVar30 = (code *******)unaff_s7[10];\n                  pppppppcVar29 = pppppppcVar14;\n                  unaff_s7 = (code *******)FUN_0004ae34(&local_d8);\n                  pppppppcVar28 = pppppppcVar33;\n                  if (unaff_s7 != (code *******)0x0) break;\n                  if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                }\n                else {\n                  unaff_s7 = (code *******)pppppppcVar14[10];\nLAB_00054d1c:\n                  pppppppcVar28 = (code *******)PTR_s_nt0_000795b8;\n                  if (unaff_s7 != (code *******)0x0) break;\n                }\n                pppppppcVar28 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                local_dc = (code *******)\n                           (*(code *)PTR___assert_fail_000799f8)\n                                     (PTR_s_nt0_000795b8 + 0x71a0,pppppppcVar29,0x435);\n                if (local_dc == pppppppcVar26) {\n                  if ((int)local_dc < (int)param_3) {\n                    uVar7 = (uint)(byte)*(code *)((int)local_dc + (int)param_2);\n                  }\n                  else {\n                    uVar7 = 0;\n                  }\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    uVar7 = (uint)*(byte *)((int)ppppppcVar32 + uVar7);\n                  }\n                  if (*(code *)((int)local_148 + uVar7) == (code)0x0) {\n                    local_150 = (code *******)0x1;\n                    pppppppcVar30 = param_9;\n                    pppppppcVar33 = pppppppcVar28;\n                    goto LAB_000557e4;\n                  }\n                }\n              }" { (expression_statement "pppppppcVar29 = local_dc;" (assignment_expression "pppppppcVar29 = local_dc" identifier = identifier) ;) (expression_statement "pppppppcVar30 = param_9;" (assignment_expression "pppppppcVar30 = param_9" identifier = identifier) ;) (expression_statement "pppppppcVar6 = (code *******)(*pcVar4)(&local_b4);" (assignment_expression "pppppppcVar6 = (code *******)(*pcVar4)(&local_b4)" identifier = (cast_expression "(code *******)(*pcVar4)(&local_b4)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "(*pcVar4)(&local_b4)" (parenthesized_expression "(*pcVar4)" ( (pointer_expression "*pcVar4" * identifier) )) (argument_list "(&local_b4)" ( (pointer_expression "&local_b4" & identifier) ))))) ;) (expression_statement "pppppppcVar14 = local_60;" (assignment_expression "pppppppcVar14 = local_60" identifier = identifier) ;) (expression_statement "pppppppcVar42 = local_8c;" (assignment_expression "pppppppcVar42 = local_8c" identifier = identifier) ;) (expression_statement "pppppppcVar33 = pppppppcVar28;" (assignment_expression "pppppppcVar33 = pppppppcVar28" identifier = identifier) ;) (expression_statement "local_150 = pppppppcVar6;" (assignment_expression "local_150 = pppppppcVar6" identifier = identifier) ;) (if_statement "if (pppppppcVar6 != (code *******)0x0) goto LAB_000557e4;" if (parenthesized_expression "(pppppppcVar6 != (code *******)0x0)" ( (binary_expression "pppppppcVar6 != (code *******)0x0" identifier != (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (goto_statement "goto LAB_000557e4;" goto statement_identifier ;)) (if_statement "if (((ppppppcVar35 != (code ******)0x1) && (local_98 != (code *******)0x0)) &&\n                   (*local_ac == -1)) goto LAB_00055b1c;" if (parenthesized_expression "(((ppppppcVar35 != (code ******)0x1) && (local_98 != (code *******)0x0)) &&\n                   (*local_ac == -1))" ( (binary_expression "((ppppppcVar35 != (code ******)0x1) && (local_98 != (code *******)0x0)) &&\n                   (*local_ac == -1)" (parenthesized_expression "((ppppppcVar35 != (code ******)0x1) && (local_98 != (code *******)0x0))" ( (binary_expression "(ppppppcVar35 != (code ******)0x1) && (local_98 != (code *******)0x0)" (parenthesized_expression "(ppppppcVar35 != (code ******)0x1)" ( (binary_expression "ppppppcVar35 != (code ******)0x1" identifier != (cast_expression "(code ******)0x1" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) && (parenthesized_expression "(local_98 != (code *******)0x0)" ( (binary_expression "local_98 != (code *******)0x0" identifier != (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ))) )) && (parenthesized_expression "(*local_ac == -1)" ( (binary_expression "*local_ac == -1" (pointer_expression "*local_ac" * identifier) == number_literal) ))) )) (goto_statement "goto LAB_00055b1c;" goto statement_identifier ;)) (expression_statement "local_3c = 0;" (assignment_expression "local_3c = 0" identifier = number_literal) ;) (expression_statement "local_48 = 0;" (assignment_expression "local_48 = 0" identifier = number_literal) ;) (expression_statement "local_4c = (code *******)0x0;" (assignment_expression "local_4c = (code *******)0x0" identifier = (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "local_138 = local_8c;" (assignment_expression "local_138 = local_8c" identifier = identifier) ;) (expression_statement "local_d8 = (code *******)0x0;" (assignment_expression "local_d8 = (code *******)0x0" identifier = (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "unaff_s7 = (code *******)local_60[9];" (assignment_expression "unaff_s7 = (code *******)local_60[9]" identifier = (cast_expression "(code *******)local_60[9]" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (subscript_expression "local_60[9]" identifier [ number_literal ]))) ;) (expression_statement "pppppppcVar30 = local_5c;" (assignment_expression "pppppppcVar30 = local_5c" identifier = identifier) ;) (expression_statement "param_4 = pppppppcVar14;" (assignment_expression "param_4 = pppppppcVar14" identifier = identifier) ;) (if_statement "if (((uint)unaff_s7[0xd] & 0x1000000) == 0) break;" if (parenthesized_expression "(((uint)unaff_s7[0xd] & 0x1000000) == 0)" ( (binary_expression "((uint)unaff_s7[0xd] & 0x1000000) == 0" (parenthesized_expression "((uint)unaff_s7[0xd] & 0x1000000)" ( (binary_expression "(uint)unaff_s7[0xd] & 0x1000000" (cast_expression "(uint)unaff_s7[0xd]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "unaff_s7[0xd]" identifier [ number_literal ])) & number_literal) )) == number_literal) )) (break_statement "break;" break ;)) (expression_statement "pppppppcVar29 = (code *******)((int)local_8c + -1);" (assignment_expression "pppppppcVar29 = (code *******)((int)local_8c + -1)" identifier = (cast_expression "(code *******)((int)local_8c + -1)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)local_8c + -1)" ( (binary_expression "(int)local_8c + -1" (cast_expression "(int)local_8c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "pppppppcVar33 = (code *******)FUN_00049110(&local_b4);" (assignment_expression "pppppppcVar33 = (code *******)FUN_00049110(&local_b4)" identifier = (cast_expression "(code *******)FUN_00049110(&local_b4)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "FUN_00049110(&local_b4)" identifier (argument_list "(&local_b4)" ( (pointer_expression "&local_b4" & identifier) ))))) ;) (if_statement "if (((uint)pppppppcVar33 & 1) == 0) {\n                  if (pppppppcVar33 == (code *******)0x0) break;\n                  if (((uint)pppppppcVar33 & 6) == 6) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xc];\n                    goto LAB_00054d1c;\n                  }\n                  if (((uint)pppppppcVar33 & 2) != 0) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xb];\n                    goto LAB_00054d1c;\n                  }\n                  pppppppcVar28 = pppppppcVar33;\n                  if (((uint)pppppppcVar33 & 4) == 0) break;\n                  pppppppcVar30 = (code *******)unaff_s7[10];\n                  pppppppcVar29 = pppppppcVar14;\n                  unaff_s7 = (code *******)FUN_0004ae34(&local_d8);\n                  pppppppcVar28 = pppppppcVar33;\n                  if (unaff_s7 != (code *******)0x0) break;\n                  if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                }\n                else {\n                  unaff_s7 = (code *******)pppppppcVar14[10];\nLAB_00054d1c:\n                  pppppppcVar28 = (code *******)PTR_s_nt0_000795b8;\n                  if (unaff_s7 != (code *******)0x0) break;\n                }" if (parenthesized_expression "(((uint)pppppppcVar33 & 1) == 0)" ( (binary_expression "((uint)pppppppcVar33 & 1) == 0" (parenthesized_expression "((uint)pppppppcVar33 & 1)" ( (binary_expression "(uint)pppppppcVar33 & 1" (cast_expression "(uint)pppppppcVar33" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n                  if (pppppppcVar33 == (code *******)0x0) break;\n                  if (((uint)pppppppcVar33 & 6) == 6) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xc];\n                    goto LAB_00054d1c;\n                  }\n                  if (((uint)pppppppcVar33 & 2) != 0) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xb];\n                    goto LAB_00054d1c;\n                  }\n                  pppppppcVar28 = pppppppcVar33;\n                  if (((uint)pppppppcVar33 & 4) == 0) break;\n                  pppppppcVar30 = (code *******)unaff_s7[10];\n                  pppppppcVar29 = pppppppcVar14;\n                  unaff_s7 = (code *******)FUN_0004ae34(&local_d8);\n                  pppppppcVar28 = pppppppcVar33;\n                  if (unaff_s7 != (code *******)0x0) break;\n                  if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                }" { (if_statement "if (pppppppcVar33 == (code *******)0x0) break;" if (parenthesized_expression "(pppppppcVar33 == (code *******)0x0)" ( (binary_expression "pppppppcVar33 == (code *******)0x0" identifier == (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (break_statement "break;" break ;)) (if_statement "if (((uint)pppppppcVar33 & 6) == 6) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xc];\n                    goto LAB_00054d1c;\n                  }" if (parenthesized_expression "(((uint)pppppppcVar33 & 6) == 6)" ( (binary_expression "((uint)pppppppcVar33 & 6) == 6" (parenthesized_expression "((uint)pppppppcVar33 & 6)" ( (binary_expression "(uint)pppppppcVar33 & 6" (cast_expression "(uint)pppppppcVar33" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n                    unaff_s7 = (code *******)pppppppcVar14[0xc];\n                    goto LAB_00054d1c;\n                  }" { (expression_statement "unaff_s7 = (code *******)pppppppcVar14[0xc];" (assignment_expression "unaff_s7 = (code *******)pppppppcVar14[0xc]" identifier = (cast_expression "(code *******)pppppppcVar14[0xc]" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (subscript_expression "pppppppcVar14[0xc]" identifier [ number_literal ]))) ;) (goto_statement "goto LAB_00054d1c;" goto statement_identifier ;) })) (if_statement "if (((uint)pppppppcVar33 & 2) != 0) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xb];\n                    goto LAB_00054d1c;\n                  }" if (parenthesized_expression "(((uint)pppppppcVar33 & 2) != 0)" ( (binary_expression "((uint)pppppppcVar33 & 2) != 0" (parenthesized_expression "((uint)pppppppcVar33 & 2)" ( (binary_expression "(uint)pppppppcVar33 & 2" (cast_expression "(uint)pppppppcVar33" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n                    unaff_s7 = (code *******)pppppppcVar14[0xb];\n                    goto LAB_00054d1c;\n                  }" { (expression_statement "unaff_s7 = (code *******)pppppppcVar14[0xb];" (assignment_expression "unaff_s7 = (code *******)pppppppcVar14[0xb]" identifier = (cast_expression "(code *******)pppppppcVar14[0xb]" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (subscript_expression "pppppppcVar14[0xb]" identifier [ number_literal ]))) ;) (goto_statement "goto LAB_00054d1c;" goto statement_identifier ;) })) (expression_statement "pppppppcVar28 = pppppppcVar33;" (assignment_expression "pppppppcVar28 = pppppppcVar33" identifier = identifier) ;) (if_statement "if (((uint)pppppppcVar33 & 4) == 0) break;" if (parenthesized_expression "(((uint)pppppppcVar33 & 4) == 0)" ( (binary_expression "((uint)pppppppcVar33 & 4) == 0" (parenthesized_expression "((uint)pppppppcVar33 & 4)" ( (binary_expression "(uint)pppppppcVar33 & 4" (cast_expression "(uint)pppppppcVar33" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) == number_literal) )) (break_statement "break;" break ;)) (expression_statement "pppppppcVar30 = (code *******)unaff_s7[10];" (assignment_expression "pppppppcVar30 = (code *******)unaff_s7[10]" identifier = (cast_expression "(code *******)unaff_s7[10]" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (subscript_expression "unaff_s7[10]" identifier [ number_literal ]))) ;) (expression_statement "pppppppcVar29 = pppppppcVar14;" (assignment_expression "pppppppcVar29 = pppppppcVar14" identifier = identifier) ;) (expression_statement "unaff_s7 = (code *******)FUN_0004ae34(&local_d8);" (assignment_expression "unaff_s7 = (code *******)FUN_0004ae34(&local_d8)" identifier = (cast_expression "(code *******)FUN_0004ae34(&local_d8)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "FUN_0004ae34(&local_d8)" identifier (argument_list "(&local_d8)" ( (pointer_expression "&local_d8" & identifier) ))))) ;) (expression_statement "pppppppcVar28 = pppppppcVar33;" (assignment_expression "pppppppcVar28 = pppppppcVar33" identifier = identifier) ;) (if_statement "if (unaff_s7 != (code *******)0x0) break;" if (parenthesized_expression "(unaff_s7 != (code *******)0x0)" ( (binary_expression "unaff_s7 != (code *******)0x0" identifier != (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (break_statement "break;" break ;)) (if_statement "if (local_d8 == (code *******)0xc) goto LAB_00055914;" if (parenthesized_expression "(local_d8 == (code *******)0xc)" ( (binary_expression "local_d8 == (code *******)0xc" identifier == (cast_expression "(code *******)0xc" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (goto_statement "goto LAB_00055914;" goto statement_identifier ;)) }) (else_clause "else {\n                  unaff_s7 = (code *******)pppppppcVar14[10];\nLAB_00054d1c:\n                  pppppppcVar28 = (code *******)PTR_s_nt0_000795b8;\n                  if (unaff_s7 != (code *******)0x0) break;\n                }" else (compound_statement "{\n                  unaff_s7 = (code *******)pppppppcVar14[10];\nLAB_00054d1c:\n                  pppppppcVar28 = (code *******)PTR_s_nt0_000795b8;\n                  if (unaff_s7 != (code *******)0x0) break;\n                }" { (expression_statement "unaff_s7 = (code *******)pppppppcVar14[10];" (assignment_expression "unaff_s7 = (code *******)pppppppcVar14[10]" identifier = (cast_expression "(code *******)pppppppcVar14[10]" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (subscript_expression "pppppppcVar14[10]" identifier [ number_literal ]))) ;) (labeled_statement "LAB_00054d1c:\n                  pppppppcVar28 = (code *******)PTR_s_nt0_000795b8;" statement_identifier : (expression_statement "pppppppcVar28 = (code *******)PTR_s_nt0_000795b8;" (assignment_expression "pppppppcVar28 = (code *******)PTR_s_nt0_000795b8" identifier = (cast_expression "(code *******)PTR_s_nt0_000795b8" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) identifier)) ;)) (if_statement "if (unaff_s7 != (code *******)0x0) break;" if (parenthesized_expression "(unaff_s7 != (code *******)0x0)" ( (binary_expression "unaff_s7 != (code *******)0x0" identifier != (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (break_statement "break;" break ;)) }))) (expression_statement "pppppppcVar28 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);" (assignment_expression "pppppppcVar28 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0)" identifier = (cast_expression "(code *******)(PTR_s_nt0_000795b8 + 0x6eb0)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(PTR_s_nt0_000795b8 + 0x6eb0)" ( (binary_expression "PTR_s_nt0_000795b8 + 0x6eb0" identifier + number_literal) )))) ;) (expression_statement "pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);" (assignment_expression "pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c)" identifier = (cast_expression "(code *******)(PTR_s_nt0_000795b8 + 0x712c)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(PTR_s_nt0_000795b8 + 0x712c)" ( (binary_expression "PTR_s_nt0_000795b8 + 0x712c" identifier + number_literal) )))) ;) (expression_statement "local_dc = (code *******)\n                           (*(code *)PTR___assert_fail_000799f8)\n                                     (PTR_s_nt0_000795b8 + 0x71a0,pppppppcVar29,0x435);" (assignment_expression "local_dc = (code *******)\n                           (*(code *)PTR___assert_fail_000799f8)\n                                     (PTR_s_nt0_000795b8 + 0x71a0,pppppppcVar29,0x435)" identifier = (cast_expression "(code *******)\n                           (*(code *)PTR___assert_fail_000799f8)\n                                     (PTR_s_nt0_000795b8 + 0x71a0,pppppppcVar29,0x435)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "(*(code *)PTR___assert_fail_000799f8)\n                                     (PTR_s_nt0_000795b8 + 0x71a0,pppppppcVar29,0x435)" (parenthesized_expression "(*(code *)PTR___assert_fail_000799f8)" ( (pointer_expression "*(code *)PTR___assert_fail_000799f8" * (cast_expression "(code *)PTR___assert_fail_000799f8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_nt0_000795b8 + 0x71a0,pppppppcVar29,0x435)" ( (binary_expression "PTR_s_nt0_000795b8 + 0x71a0" identifier + number_literal) , identifier , number_literal ))))) ;) (if_statement "if (local_dc == pppppppcVar26) {\n                  if ((int)local_dc < (int)param_3) {\n                    uVar7 = (uint)(byte)*(code *)((int)local_dc + (int)param_2);\n                  }\n                  else {\n                    uVar7 = 0;\n                  }\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    uVar7 = (uint)*(byte *)((int)ppppppcVar32 + uVar7);\n                  }\n                  if (*(code *)((int)local_148 + uVar7) == (code)0x0) {\n                    local_150 = (code *******)0x1;\n                    pppppppcVar30 = param_9;\n                    pppppppcVar33 = pppppppcVar28;\n                    goto LAB_000557e4;\n                  }\n                }" if (parenthesized_expression "(local_dc == pppppppcVar26)" ( (binary_expression "local_dc == pppppppcVar26" identifier == identifier) )) (compound_statement "{\n                  if ((int)local_dc < (int)param_3) {\n                    uVar7 = (uint)(byte)*(code *)((int)local_dc + (int)param_2);\n                  }\n                  else {\n                    uVar7 = 0;\n                  }\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    uVar7 = (uint)*(byte *)((int)ppppppcVar32 + uVar7);\n                  }\n                  if (*(code *)((int)local_148 + uVar7) == (code)0x0) {\n                    local_150 = (code *******)0x1;\n                    pppppppcVar30 = param_9;\n                    pppppppcVar33 = pppppppcVar28;\n                    goto LAB_000557e4;\n                  }\n                }" { (if_statement "if ((int)local_dc < (int)param_3) {\n                    uVar7 = (uint)(byte)*(code *)((int)local_dc + (int)param_2);\n                  }\n                  else {\n                    uVar7 = 0;\n                  }" if (parenthesized_expression "((int)local_dc < (int)param_3)" ( (binary_expression "(int)local_dc < (int)param_3" (cast_expression "(int)local_dc" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                    uVar7 = (uint)(byte)*(code *)((int)local_dc + (int)param_2);\n                  }" { (expression_statement "uVar7 = (uint)(byte)*(code *)((int)local_dc + (int)param_2);" (assignment_expression "uVar7 = (uint)(byte)*(code *)((int)local_dc + (int)param_2)" identifier = (binary_expression "(uint)(byte)*(code *)((int)local_dc + (int)param_2)" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(byte)" ( identifier ))) * (cast_expression "(code *)((int)local_dc + (int)param_2)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_dc + (int)param_2)" ( (binary_expression "(int)local_dc + (int)param_2" (cast_expression "(int)local_dc" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier)) ))))) ;) }) (else_clause "else {\n                    uVar7 = 0;\n                  }" else (compound_statement "{\n                    uVar7 = 0;\n                  }" { (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" identifier = number_literal) ;) }))) (if_statement "if (ppppppcVar32 != (code ******)0x0) {\n                    uVar7 = (uint)*(byte *)((int)ppppppcVar32 + uVar7);\n                  }" if (parenthesized_expression "(ppppppcVar32 != (code ******)0x0)" ( (binary_expression "ppppppcVar32 != (code ******)0x0" identifier != (cast_expression "(code ******)0x0" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (compound_statement "{\n                    uVar7 = (uint)*(byte *)((int)ppppppcVar32 + uVar7);\n                  }" { (expression_statement "uVar7 = (uint)*(byte *)((int)ppppppcVar32 + uVar7);" (assignment_expression "uVar7 = (uint)*(byte *)((int)ppppppcVar32 + uVar7)" identifier = (binary_expression "(uint)*(byte *)((int)ppppppcVar32 + uVar7)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)((int)ppppppcVar32 + uVar7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppppppcVar32 + uVar7)" ( (binary_expression "(int)ppppppcVar32 + uVar7" (cast_expression "(int)ppppppcVar32" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) ))))) ;) })) (if_statement "if (*(code *)((int)local_148 + uVar7) == (code)0x0) {\n                    local_150 = (code *******)0x1;\n                    pppppppcVar30 = param_9;\n                    pppppppcVar33 = pppppppcVar28;\n                    goto LAB_000557e4;\n                  }" if (parenthesized_expression "(*(code *)((int)local_148 + uVar7) == (code)0x0)" ( (binary_expression "*(code *)((int)local_148 + uVar7) == (code)0x0" (pointer_expression "*(code *)((int)local_148 + uVar7)" * (cast_expression "(code *)((int)local_148 + uVar7)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_148 + uVar7)" ( (binary_expression "(int)local_148 + uVar7" (cast_expression "(int)local_148" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) == (cast_expression "(code)0x0" ( (type_descriptor "code" type_identifier) ) number_literal)) )) (compound_statement "{\n                    local_150 = (code *******)0x1;\n                    pppppppcVar30 = param_9;\n                    pppppppcVar33 = pppppppcVar28;\n                    goto LAB_000557e4;\n                  }" { (expression_statement "local_150 = (code *******)0x1;" (assignment_expression "local_150 = (code *******)0x1" identifier = (cast_expression "(code *******)0x1" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "pppppppcVar30 = param_9;" (assignment_expression "pppppppcVar30 = param_9" identifier = identifier) ;) (expression_statement "pppppppcVar33 = pppppppcVar28;" (assignment_expression "pppppppcVar33 = pppppppcVar28" identifier = identifier) ;) (goto_statement "goto LAB_000557e4;" goto statement_identifier ;) })) })) })) (expression_statement "pppppppcVar33 = pppppppcVar28;" (assignment_expression "pppppppcVar33 = pppppppcVar28" identifier = identifier) ;) (expression_statement "bVar1 = pppppppcVar36 != (code *******)0x0;" (assignment_expression "bVar1 = pppppppcVar36 != (code *******)0x0" identifier = (binary_expression "pppppppcVar36 != (code *******)0x0" identifier != (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal))) ;) (if_statement "if ((local_50 == (code *******)0x0) ||\n                 (local_50[(int)pppppppcVar42] = (code ******)unaff_s7,\n                 pppppppcVar14[0x13] == (code ******)0x0)) {\nLAB_00054d50:\n                if ((int)unaff_s7[0xd] << 4 < 0) {\n                  if ((((uint)unaff_s7[0xd] & 0x1000000) == 0) ||\n                     (pppppppcVar29 = unaff_s7, pppppppcVar30 = pppppppcVar42,\n                     iVar18 = FUN_00049440(&local_b4), iVar18 != 0)) {\n                    unaff_s8 = pppppppcVar42;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                  }\n                  else {\n                    pppppppcVar42 = (code *******)0xffffffff;\n                    pppppppcVar28 = (code *******)0x0;\n                  }\n                }\n                else {\n                  pppppppcVar42 = (code *******)0xffffffff;\n                  pppppppcVar28 = (code *******)0x0;\n                }\n                pcVar8 = (code *)(PTR_DAT_000799a4 + -0x7144);\n                pcVar9 = (code *)(PTR_DAT_000799a4 + -0x1980);\n                pcVar10 = (code *)(PTR_DAT_000799a4 + -0x2f9c);\n                unaff_s8 = pppppppcVar42;\n                local_144 = pppppppcVar36;\n                while( true ) {\n                  uVar44 = CONCAT44(local_98,local_84);\n                  unaff_s5 = (code *******)((int)local_8c + 1);\n                  pppppppcVar29 = local_8c;\n                  if ((int)local_7c <= (int)local_8c) break;\n                  if (((int)local_90 <= (int)unaff_s5) && ((int)local_90 < (int)local_84))\n                  goto LAB_00054e94;\n                  if ((int)local_98 <= (int)unaff_s5) {\n                    while ((int)((ulonglong)uVar44 >> 0x20) < (int)uVar44) {\nLAB_00054e94:\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 2);\n                      local_d8 = (code *******)(*pcVar8)(&local_b4);\n                      if (local_d8 == (code *******)0x0) break;\n                      pppppppcVar14 = param_4;\n                      if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                      pppppppcVar33 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                      pppppppcVar30 = (code *******)0x46c;\n                      pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                      uVar44 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0);\n                      pppppppcVar28 = pppppppcVar38;\n                    }\n                  }\n                  pppppppcVar42 = local_60;\n                  if ((int)unaff_s7[0xd] << 5 < 0) {\n                    pppppppcVar31 = pppppppcVar42;\n                    if (0 < (int)unaff_s7[2]) {\n                      pcVar11 = (code *)(PTR_DAT_000799a4 + -0x6fdc);\n                      pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6ef0);\n                      param_6 = (code *******)0x0;\n                      do {\n                        param_5 = (code *******)unaff_s7[3][(int)param_6];\n                        ppppppcVar39 = *pppppppcVar42;\n                        pppppcVar13 = ppppppcVar39[(int)param_5 * 2 + 1];\n                        if (((uint)pppppcVar13 & 0x800) != 0) {\n                          if (((uint)pppppcVar13 & 0xffc000) != 0) {\n                            pppppppcVar29 = local_8c;\n                            uVar19 = (*pcVar12)(&local_b4,local_8c,local_5c);\n                            uVar7 = (uint)((int)ppppppcVar39[(int)param_5 * 2 + 1] << 8) >> 0x16;\n                            if ((uVar7 & 4) == 0) {\n                              uVar27 = uVar19 & 1;\n                              if ((uVar7 & 8) != 0) goto joined_r0x00054f40;\n                            }\n                            else {\n                              uVar27 = uVar7 & 8;\n                              if ((uVar19 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                              if (uVar27 != 0) goto LAB_000550a4;\n                            }\n                            if ((((uVar7 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                               (((uVar7 & 0x80) != 0 &&\n                                (pppppppcVar33 = local_8c, (uVar19 & 8) == 0)))) goto LAB_000550a4;\n                          }\n                          pppppppcVar30 = &local_b4;\n                          pppppppcVar29 = param_5;\n                          pppppppcVar33 = local_8c;\n                          iVar18 = (*pcVar10)(pppppppcVar42);\n                          if (iVar18 != 0) {\n                            pppppppcVar14 = (code *******)((int)local_8c + iVar18);\n                            if (iVar18 <= local_3c) {\n                              iVar18 = local_3c;\n                            }\n                            pppppppcVar29 = pppppppcVar14;\n                            local_3c = iVar18;\n                            local_d4 = (code *******)(*pcVar11)(&local_b4);\n                            pppppppcVar15 = local_d4;\n                            if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                            pppppppcVar30 =\n                                 (code *******)\n                                 (pppppppcVar42[6] + (int)pppppppcVar42[3][(int)param_5] * 3);\n                            unaff_s4 = (code *******)((int)pppppppcVar14 * 4);\n                            param_5 = local_50 + (int)pppppppcVar14;\n                            if (*param_5 == (code ******)0x0) {\n                              local_d0 = (code *******)*pppppppcVar30;\n                              local_cc = (code *******)pppppppcVar30[1];\n                              local_c8 = (code *******)pppppppcVar30[2];\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *param_5 = ppppppcVar39;\n                            }\n                            else {\n                              pppppppcVar29 = (code *******)(*param_5)[10];\n                              local_d4 = (code *******)FUN_000484bc(&local_d0);\n                              pppppppcVar15 = local_d4;\n                              if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar15 = local_50 + (int)pppppppcVar14;\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *pppppppcVar15 = ppppppcVar39;\n                              (*(code *)PTR_free_00079c24)(local_c8);\n                            }\n                            unaff_s4 = local_50 + (int)pppppppcVar14;\n                            if ((*unaff_s4 == (code ******)0x0) &&\n                               (pppppppcVar15 = local_d4, local_d4 != (code *******)0x0))\n                            goto LAB_00055e44;\n                          }\n                        }\nLAB_000550a4:\n                        param_6 = (code *******)((int)param_6 + 1);\n                      } while ((int)param_6 < (int)unaff_s7[2]);\n                    }\n                    local_d8 = (code *******)0x0;\n                  }\n                  uVar7 = (uint)(byte)*(code *)((int)local_8c + (int)local_b0);\n                  local_8c = (code *******)((int)local_8c + 1);\n                  do {\n                    if (unaff_s7[0xb] != (code ******)0x0) {\n                      pppppppcVar30 = (code *******)unaff_s7[0xb][uVar7];\nLAB_000553a0:\n                      pppppppcVar14 = pppppppcVar30;\n                      if (local_50 != (code *******)0x0) goto LAB_000553ac;\n                      goto LAB_000553cc;\n                    }\n                    pppppppcVar31 = (code *******)unaff_s7[0xc];\n                    if (pppppppcVar31 != (code *******)0x0) {\n                      pppppppcVar29 = (code *******)((int)local_8c + -1);\n                      uVar19 = FUN_00049110(&local_b4);\n                      if ((uVar19 & 1) == 0) {\n                        pppppppcVar30 = (code *******)pppppppcVar31[uVar7];\n                      }\n                      else {\n                        pppppppcVar31 = pppppppcVar31 + uVar7 + 0x100;\n                        pppppppcVar30 = (code *******)*pppppppcVar31;\n                      }\n                      goto LAB_000553a0;\n                    }\n                    pppppppcVar29 = unaff_s7;\n                    pppppppcVar30 = local_5c;\n                    iVar18 = (*pcVar9)(local_60);\n                  } while (iVar18 != 0);\n                  local_d8 = (code *******)0xc;\n                  pppppppcVar15 = local_d8;\nLAB_00055e44:\n                  local_d8 = pppppppcVar15;\n                  param_4 = (code *******)0x0;\n                  if (local_50 == (code *******)0x0) {\n                    pppppppcVar14 = param_4;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    break;\n                  }\n                  pppppppcVar30 = (code *******)0x0;\nLAB_000553ac:\n                  pppppppcVar29 = &local_b4;\n                  pppppppcVar14 = (code *******)FUN_00053684(&local_d8);\nLAB_000553cc:\n                  param_4 = pppppppcVar14;\n                  if (pppppppcVar14 == (code *******)0x0) {\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    if ((local_50 == (code *******)0x0) ||\n                       ((pppppppcVar28 != (code *******)0x0 && (pppppppcVar34 == (code *******)0x0))\n                       )) break;\n                    param_6 = &local_b4;\n                    param_5 = (code *******)&local_d8;\n                    pppppppcVar31 = (code *******)(PTR_DAT_000799a4 + 0x3684);\n                    do {\n                      pppppppcVar15 = local_50 + (int)local_8c;\n                      pppppppcVar42 = local_8c;\n                      do {\n                        pppppppcVar42 = (code *******)((int)pppppppcVar42 + 1);\n                        pppppppcVar29 = local_4c;\n                        param_4 = pppppppcVar14;\n                        if ((int)local_4c < (int)pppppppcVar42) goto LAB_00055da8;\n                        local_8c = (code *******)((int)local_8c + 1);\n                        pppppppcVar15 = pppppppcVar15 + 1;\n                      } while (*pppppppcVar15 == (code ******)0x0);\n                      pppppppcVar30 = (code *******)0x0;\n                      pppppppcVar29 = param_6;\n                      param_4 = (code *******)(*(code *)pppppppcVar31)(param_5);\n                      if (local_d8 != (code *******)0x0) {\n                        if (param_4 == (code *******)0x0) goto LAB_00055da8;\n                        break;\n                      }\n                      pppppppcVar29 = local_4c;\n                    } while (param_4 == (code *******)0x0);\n                  }\n                  pppppppcVar15 = (code *******)((uint)unaff_s7 ^ (uint)param_4);\n                  pppppppcVar42 = unaff_s7;\n                  pppppppcVar14 = local_138;\n                  if ((bVar1) &&\n                     (pppppppcVar42 = pppppppcVar15, pppppppcVar14 = unaff_s5,\n                     pppppppcVar15 != (code *******)0x0)) {\n                    bVar1 = false;\n                    pppppppcVar14 = local_138;\n                  }\n                  local_138 = pppppppcVar14;\n                  unaff_s7 = param_4;\n                  if ((((uint)param_4[0xd] & 0x8000000) != 0) &&\n                     ((((uint)param_4[0xd] & 0x1000000) == 0 ||\n                      (pppppppcVar29 = param_4, pppppppcVar30 = local_8c,\n                      iVar18 = FUN_00049440(&local_b4), iVar18 != 0)))) {\n                    unaff_s7 = pppppppcVar42;\n                    unaff_s8 = local_8c;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                    local_144 = (code *******)0x0;\n                    unaff_s7 = param_4;\n                  }\n                }\nLAB_00055da8:\n                if (local_144 != (code *******)0x0) {\n                  *local_144 = (code ******)((int)local_138 + (int)*local_144);\n                }\n              }\n              else {\n                param_4 = unaff_s7 + 1;\n                pppppppcVar30 = (code *******)0x0;\n                pppppppcVar29 = param_4;\n                local_d8 = (code *******)FUN_00047a44(&local_b4);\n                unaff_s8 = local_d8;\n                if (local_d8 == (code *******)0x0) {\n                  if (((uint)unaff_s7[0xd] & 0x2000000) == 0) {\n                    pppppppcVar29 = param_4;\n                    bVar1 = false;\n                  }\n                  else {\n                    pppppppcVar29 = param_4;\n                    local_d8 = (code *******)FUN_00052d84(&local_b4);\n                    unaff_s8 = local_d8;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055dbc;\n                    bVar1 = false;\n                  }\n                  goto LAB_00054d50;\n                }\n              }" if (parenthesized_expression "((local_50 == (code *******)0x0) ||\n                 (local_50[(int)pppppppcVar42] = (code ******)unaff_s7,\n                 pppppppcVar14[0x13] == (code ******)0x0))" ( (binary_expression "(local_50 == (code *******)0x0) ||\n                 (local_50[(int)pppppppcVar42] = (code ******)unaff_s7,\n                 pppppppcVar14[0x13] == (code ******)0x0)" (parenthesized_expression "(local_50 == (code *******)0x0)" ( (binary_expression "local_50 == (code *******)0x0" identifier == (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) || (parenthesized_expression "(local_50[(int)pppppppcVar42] = (code ******)unaff_s7,\n                 pppppppcVar14[0x13] == (code ******)0x0)" ( (comma_expression "local_50[(int)pppppppcVar42] = (code ******)unaff_s7,\n                 pppppppcVar14[0x13] == (code ******)0x0" (assignment_expression "local_50[(int)pppppppcVar42] = (code ******)unaff_s7" (subscript_expression "local_50[(int)pppppppcVar42]" identifier [ (cast_expression "(int)pppppppcVar42" ( (type_descriptor "int" primitive_type) ) identifier) ]) = (cast_expression "(code ******)unaff_s7" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) identifier)) , (binary_expression "pppppppcVar14[0x13] == (code ******)0x0" (subscript_expression "pppppppcVar14[0x13]" identifier [ number_literal ]) == (cast_expression "(code ******)0x0" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal))) ))) )) (compound_statement "{\nLAB_00054d50:\n                if ((int)unaff_s7[0xd] << 4 < 0) {\n                  if ((((uint)unaff_s7[0xd] & 0x1000000) == 0) ||\n                     (pppppppcVar29 = unaff_s7, pppppppcVar30 = pppppppcVar42,\n                     iVar18 = FUN_00049440(&local_b4), iVar18 != 0)) {\n                    unaff_s8 = pppppppcVar42;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                  }\n                  else {\n                    pppppppcVar42 = (code *******)0xffffffff;\n                    pppppppcVar28 = (code *******)0x0;\n                  }\n                }\n                else {\n                  pppppppcVar42 = (code *******)0xffffffff;\n                  pppppppcVar28 = (code *******)0x0;\n                }\n                pcVar8 = (code *)(PTR_DAT_000799a4 + -0x7144);\n                pcVar9 = (code *)(PTR_DAT_000799a4 + -0x1980);\n                pcVar10 = (code *)(PTR_DAT_000799a4 + -0x2f9c);\n                unaff_s8 = pppppppcVar42;\n                local_144 = pppppppcVar36;\n                while( true ) {\n                  uVar44 = CONCAT44(local_98,local_84);\n                  unaff_s5 = (code *******)((int)local_8c + 1);\n                  pppppppcVar29 = local_8c;\n                  if ((int)local_7c <= (int)local_8c) break;\n                  if (((int)local_90 <= (int)unaff_s5) && ((int)local_90 < (int)local_84))\n                  goto LAB_00054e94;\n                  if ((int)local_98 <= (int)unaff_s5) {\n                    while ((int)((ulonglong)uVar44 >> 0x20) < (int)uVar44) {\nLAB_00054e94:\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 2);\n                      local_d8 = (code *******)(*pcVar8)(&local_b4);\n                      if (local_d8 == (code *******)0x0) break;\n                      pppppppcVar14 = param_4;\n                      if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                      pppppppcVar33 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                      pppppppcVar30 = (code *******)0x46c;\n                      pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                      uVar44 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0);\n                      pppppppcVar28 = pppppppcVar38;\n                    }\n                  }\n                  pppppppcVar42 = local_60;\n                  if ((int)unaff_s7[0xd] << 5 < 0) {\n                    pppppppcVar31 = pppppppcVar42;\n                    if (0 < (int)unaff_s7[2]) {\n                      pcVar11 = (code *)(PTR_DAT_000799a4 + -0x6fdc);\n                      pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6ef0);\n                      param_6 = (code *******)0x0;\n                      do {\n                        param_5 = (code *******)unaff_s7[3][(int)param_6];\n                        ppppppcVar39 = *pppppppcVar42;\n                        pppppcVar13 = ppppppcVar39[(int)param_5 * 2 + 1];\n                        if (((uint)pppppcVar13 & 0x800) != 0) {\n                          if (((uint)pppppcVar13 & 0xffc000) != 0) {\n                            pppppppcVar29 = local_8c;\n                            uVar19 = (*pcVar12)(&local_b4,local_8c,local_5c);\n                            uVar7 = (uint)((int)ppppppcVar39[(int)param_5 * 2 + 1] << 8) >> 0x16;\n                            if ((uVar7 & 4) == 0) {\n                              uVar27 = uVar19 & 1;\n                              if ((uVar7 & 8) != 0) goto joined_r0x00054f40;\n                            }\n                            else {\n                              uVar27 = uVar7 & 8;\n                              if ((uVar19 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                              if (uVar27 != 0) goto LAB_000550a4;\n                            }\n                            if ((((uVar7 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                               (((uVar7 & 0x80) != 0 &&\n                                (pppppppcVar33 = local_8c, (uVar19 & 8) == 0)))) goto LAB_000550a4;\n                          }\n                          pppppppcVar30 = &local_b4;\n                          pppppppcVar29 = param_5;\n                          pppppppcVar33 = local_8c;\n                          iVar18 = (*pcVar10)(pppppppcVar42);\n                          if (iVar18 != 0) {\n                            pppppppcVar14 = (code *******)((int)local_8c + iVar18);\n                            if (iVar18 <= local_3c) {\n                              iVar18 = local_3c;\n                            }\n                            pppppppcVar29 = pppppppcVar14;\n                            local_3c = iVar18;\n                            local_d4 = (code *******)(*pcVar11)(&local_b4);\n                            pppppppcVar15 = local_d4;\n                            if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                            pppppppcVar30 =\n                                 (code *******)\n                                 (pppppppcVar42[6] + (int)pppppppcVar42[3][(int)param_5] * 3);\n                            unaff_s4 = (code *******)((int)pppppppcVar14 * 4);\n                            param_5 = local_50 + (int)pppppppcVar14;\n                            if (*param_5 == (code ******)0x0) {\n                              local_d0 = (code *******)*pppppppcVar30;\n                              local_cc = (code *******)pppppppcVar30[1];\n                              local_c8 = (code *******)pppppppcVar30[2];\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *param_5 = ppppppcVar39;\n                            }\n                            else {\n                              pppppppcVar29 = (code *******)(*param_5)[10];\n                              local_d4 = (code *******)FUN_000484bc(&local_d0);\n                              pppppppcVar15 = local_d4;\n                              if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar15 = local_50 + (int)pppppppcVar14;\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *pppppppcVar15 = ppppppcVar39;\n                              (*(code *)PTR_free_00079c24)(local_c8);\n                            }\n                            unaff_s4 = local_50 + (int)pppppppcVar14;\n                            if ((*unaff_s4 == (code ******)0x0) &&\n                               (pppppppcVar15 = local_d4, local_d4 != (code *******)0x0))\n                            goto LAB_00055e44;\n                          }\n                        }\nLAB_000550a4:\n                        param_6 = (code *******)((int)param_6 + 1);\n                      } while ((int)param_6 < (int)unaff_s7[2]);\n                    }\n                    local_d8 = (code *******)0x0;\n                  }\n                  uVar7 = (uint)(byte)*(code *)((int)local_8c + (int)local_b0);\n                  local_8c = (code *******)((int)local_8c + 1);\n                  do {\n                    if (unaff_s7[0xb] != (code ******)0x0) {\n                      pppppppcVar30 = (code *******)unaff_s7[0xb][uVar7];\nLAB_000553a0:\n                      pppppppcVar14 = pppppppcVar30;\n                      if (local_50 != (code *******)0x0) goto LAB_000553ac;\n                      goto LAB_000553cc;\n                    }\n                    pppppppcVar31 = (code *******)unaff_s7[0xc];\n                    if (pppppppcVar31 != (code *******)0x0) {\n                      pppppppcVar29 = (code *******)((int)local_8c + -1);\n                      uVar19 = FUN_00049110(&local_b4);\n                      if ((uVar19 & 1) == 0) {\n                        pppppppcVar30 = (code *******)pppppppcVar31[uVar7];\n                      }\n                      else {\n                        pppppppcVar31 = pppppppcVar31 + uVar7 + 0x100;\n                        pppppppcVar30 = (code *******)*pppppppcVar31;\n                      }\n                      goto LAB_000553a0;\n                    }\n                    pppppppcVar29 = unaff_s7;\n                    pppppppcVar30 = local_5c;\n                    iVar18 = (*pcVar9)(local_60);\n                  } while (iVar18 != 0);\n                  local_d8 = (code *******)0xc;\n                  pppppppcVar15 = local_d8;\nLAB_00055e44:\n                  local_d8 = pppppppcVar15;\n                  param_4 = (code *******)0x0;\n                  if (local_50 == (code *******)0x0) {\n                    pppppppcVar14 = param_4;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    break;\n                  }\n                  pppppppcVar30 = (code *******)0x0;\nLAB_000553ac:\n                  pppppppcVar29 = &local_b4;\n                  pppppppcVar14 = (code *******)FUN_00053684(&local_d8);\nLAB_000553cc:\n                  param_4 = pppppppcVar14;\n                  if (pppppppcVar14 == (code *******)0x0) {\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    if ((local_50 == (code *******)0x0) ||\n                       ((pppppppcVar28 != (code *******)0x0 && (pppppppcVar34 == (code *******)0x0))\n                       )) break;\n                    param_6 = &local_b4;\n                    param_5 = (code *******)&local_d8;\n                    pppppppcVar31 = (code *******)(PTR_DAT_000799a4 + 0x3684);\n                    do {\n                      pppppppcVar15 = local_50 + (int)local_8c;\n                      pppppppcVar42 = local_8c;\n                      do {\n                        pppppppcVar42 = (code *******)((int)pppppppcVar42 + 1);\n                        pppppppcVar29 = local_4c;\n                        param_4 = pppppppcVar14;\n                        if ((int)local_4c < (int)pppppppcVar42) goto LAB_00055da8;\n                        local_8c = (code *******)((int)local_8c + 1);\n                        pppppppcVar15 = pppppppcVar15 + 1;\n                      } while (*pppppppcVar15 == (code ******)0x0);\n                      pppppppcVar30 = (code *******)0x0;\n                      pppppppcVar29 = param_6;\n                      param_4 = (code *******)(*(code *)pppppppcVar31)(param_5);\n                      if (local_d8 != (code *******)0x0) {\n                        if (param_4 == (code *******)0x0) goto LAB_00055da8;\n                        break;\n                      }\n                      pppppppcVar29 = local_4c;\n                    } while (param_4 == (code *******)0x0);\n                  }\n                  pppppppcVar15 = (code *******)((uint)unaff_s7 ^ (uint)param_4);\n                  pppppppcVar42 = unaff_s7;\n                  pppppppcVar14 = local_138;\n                  if ((bVar1) &&\n                     (pppppppcVar42 = pppppppcVar15, pppppppcVar14 = unaff_s5,\n                     pppppppcVar15 != (code *******)0x0)) {\n                    bVar1 = false;\n                    pppppppcVar14 = local_138;\n                  }\n                  local_138 = pppppppcVar14;\n                  unaff_s7 = param_4;\n                  if ((((uint)param_4[0xd] & 0x8000000) != 0) &&\n                     ((((uint)param_4[0xd] & 0x1000000) == 0 ||\n                      (pppppppcVar29 = param_4, pppppppcVar30 = local_8c,\n                      iVar18 = FUN_00049440(&local_b4), iVar18 != 0)))) {\n                    unaff_s7 = pppppppcVar42;\n                    unaff_s8 = local_8c;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                    local_144 = (code *******)0x0;\n                    unaff_s7 = param_4;\n                  }\n                }\nLAB_00055da8:\n                if (local_144 != (code *******)0x0) {\n                  *local_144 = (code ******)((int)local_138 + (int)*local_144);\n                }\n              }" { (labeled_statement "LAB_00054d50:\n                if ((int)unaff_s7[0xd] << 4 < 0) {\n                  if ((((uint)unaff_s7[0xd] & 0x1000000) == 0) ||\n                     (pppppppcVar29 = unaff_s7, pppppppcVar30 = pppppppcVar42,\n                     iVar18 = FUN_00049440(&local_b4), iVar18 != 0)) {\n                    unaff_s8 = pppppppcVar42;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                  }\n                  else {\n                    pppppppcVar42 = (code *******)0xffffffff;\n                    pppppppcVar28 = (code *******)0x0;\n                  }\n                }\n                else {\n                  pppppppcVar42 = (code *******)0xffffffff;\n                  pppppppcVar28 = (code *******)0x0;\n                }" statement_identifier : (if_statement "if ((int)unaff_s7[0xd] << 4 < 0) {\n                  if ((((uint)unaff_s7[0xd] & 0x1000000) == 0) ||\n                     (pppppppcVar29 = unaff_s7, pppppppcVar30 = pppppppcVar42,\n                     iVar18 = FUN_00049440(&local_b4), iVar18 != 0)) {\n                    unaff_s8 = pppppppcVar42;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                  }\n                  else {\n                    pppppppcVar42 = (code *******)0xffffffff;\n                    pppppppcVar28 = (code *******)0x0;\n                  }\n                }\n                else {\n                  pppppppcVar42 = (code *******)0xffffffff;\n                  pppppppcVar28 = (code *******)0x0;\n                }" if (parenthesized_expression "((int)unaff_s7[0xd] << 4 < 0)" ( (binary_expression "(int)unaff_s7[0xd] << 4 < 0" (binary_expression "(int)unaff_s7[0xd] << 4" (cast_expression "(int)unaff_s7[0xd]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "unaff_s7[0xd]" identifier [ number_literal ])) << number_literal) < number_literal) )) (compound_statement "{\n                  if ((((uint)unaff_s7[0xd] & 0x1000000) == 0) ||\n                     (pppppppcVar29 = unaff_s7, pppppppcVar30 = pppppppcVar42,\n                     iVar18 = FUN_00049440(&local_b4), iVar18 != 0)) {\n                    unaff_s8 = pppppppcVar42;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                  }\n                  else {\n                    pppppppcVar42 = (code *******)0xffffffff;\n                    pppppppcVar28 = (code *******)0x0;\n                  }\n                }" { (if_statement "if ((((uint)unaff_s7[0xd] & 0x1000000) == 0) ||\n                     (pppppppcVar29 = unaff_s7, pppppppcVar30 = pppppppcVar42,\n                     iVar18 = FUN_00049440(&local_b4), iVar18 != 0)) {\n                    unaff_s8 = pppppppcVar42;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                  }\n                  else {\n                    pppppppcVar42 = (code *******)0xffffffff;\n                    pppppppcVar28 = (code *******)0x0;\n                  }" if (parenthesized_expression "((((uint)unaff_s7[0xd] & 0x1000000) == 0) ||\n                     (pppppppcVar29 = unaff_s7, pppppppcVar30 = pppppppcVar42,\n                     iVar18 = FUN_00049440(&local_b4), iVar18 != 0))" ( (binary_expression "(((uint)unaff_s7[0xd] & 0x1000000) == 0) ||\n                     (pppppppcVar29 = unaff_s7, pppppppcVar30 = pppppppcVar42,\n                     iVar18 = FUN_00049440(&local_b4), iVar18 != 0)" (parenthesized_expression "(((uint)unaff_s7[0xd] & 0x1000000) == 0)" ( (binary_expression "((uint)unaff_s7[0xd] & 0x1000000) == 0" (parenthesized_expression "((uint)unaff_s7[0xd] & 0x1000000)" ( (binary_expression "(uint)unaff_s7[0xd] & 0x1000000" (cast_expression "(uint)unaff_s7[0xd]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "unaff_s7[0xd]" identifier [ number_literal ])) & number_literal) )) == number_literal) )) || (parenthesized_expression "(pppppppcVar29 = unaff_s7, pppppppcVar30 = pppppppcVar42,\n                     iVar18 = FUN_00049440(&local_b4), iVar18 != 0)" ( (comma_expression "pppppppcVar29 = unaff_s7, pppppppcVar30 = pppppppcVar42,\n                     iVar18 = FUN_00049440(&local_b4), iVar18 != 0" (assignment_expression "pppppppcVar29 = unaff_s7" identifier = identifier) , (comma_expression "pppppppcVar30 = pppppppcVar42,\n                     iVar18 = FUN_00049440(&local_b4), iVar18 != 0" (assignment_expression "pppppppcVar30 = pppppppcVar42" identifier = identifier) , (comma_expression "iVar18 = FUN_00049440(&local_b4), iVar18 != 0" (assignment_expression "iVar18 = FUN_00049440(&local_b4)" identifier = (call_expression "FUN_00049440(&local_b4)" identifier (argument_list "(&local_b4)" ( (pointer_expression "&local_b4" & identifier) )))) , (binary_expression "iVar18 != 0" identifier != number_literal)))) ))) )) (compound_statement "{\n                    unaff_s8 = pppppppcVar42;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                  }" { (expression_statement "unaff_s8 = pppppppcVar42;" (assignment_expression "unaff_s8 = pppppppcVar42" identifier = identifier) ;) (if_statement "if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;" if (parenthesized_expression "(pppppppcVar34 == (code *******)0x0)" ( (binary_expression "pppppppcVar34 == (code *******)0x0" identifier == (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (goto_statement "goto LAB_00055dbc;" goto statement_identifier ;)) (expression_statement "pppppppcVar28 = (code *******)0x1;" (assignment_expression "pppppppcVar28 = (code *******)0x1" identifier = (cast_expression "(code *******)0x1" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) }) (else_clause "else {\n                    pppppppcVar42 = (code *******)0xffffffff;\n                    pppppppcVar28 = (code *******)0x0;\n                  }" else (compound_statement "{\n                    pppppppcVar42 = (code *******)0xffffffff;\n                    pppppppcVar28 = (code *******)0x0;\n                  }" { (expression_statement "pppppppcVar42 = (code *******)0xffffffff;" (assignment_expression "pppppppcVar42 = (code *******)0xffffffff" identifier = (cast_expression "(code *******)0xffffffff" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "pppppppcVar28 = (code *******)0x0;" (assignment_expression "pppppppcVar28 = (code *******)0x0" identifier = (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) }))) }) (else_clause "else {\n                  pppppppcVar42 = (code *******)0xffffffff;\n                  pppppppcVar28 = (code *******)0x0;\n                }" else (compound_statement "{\n                  pppppppcVar42 = (code *******)0xffffffff;\n                  pppppppcVar28 = (code *******)0x0;\n                }" { (expression_statement "pppppppcVar42 = (code *******)0xffffffff;" (assignment_expression "pppppppcVar42 = (code *******)0xffffffff" identifier = (cast_expression "(code *******)0xffffffff" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "pppppppcVar28 = (code *******)0x0;" (assignment_expression "pppppppcVar28 = (code *******)0x0" identifier = (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) })))) (expression_statement "pcVar8 = (code *)(PTR_DAT_000799a4 + -0x7144);" (assignment_expression "pcVar8 = (code *)(PTR_DAT_000799a4 + -0x7144)" identifier = (cast_expression "(code *)(PTR_DAT_000799a4 + -0x7144)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000799a4 + -0x7144)" ( (binary_expression "PTR_DAT_000799a4 + -0x7144" identifier + number_literal) )))) ;) (expression_statement "pcVar9 = (code *)(PTR_DAT_000799a4 + -0x1980);" (assignment_expression "pcVar9 = (code *)(PTR_DAT_000799a4 + -0x1980)" identifier = (cast_expression "(code *)(PTR_DAT_000799a4 + -0x1980)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000799a4 + -0x1980)" ( (binary_expression "PTR_DAT_000799a4 + -0x1980" identifier + number_literal) )))) ;) (expression_statement "pcVar10 = (code *)(PTR_DAT_000799a4 + -0x2f9c);" (assignment_expression "pcVar10 = (code *)(PTR_DAT_000799a4 + -0x2f9c)" identifier = (cast_expression "(code *)(PTR_DAT_000799a4 + -0x2f9c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000799a4 + -0x2f9c)" ( (binary_expression "PTR_DAT_000799a4 + -0x2f9c" identifier + number_literal) )))) ;) (expression_statement "unaff_s8 = pppppppcVar42;" (assignment_expression "unaff_s8 = pppppppcVar42" identifier = identifier) ;) (expression_statement "local_144 = pppppppcVar36;" (assignment_expression "local_144 = pppppppcVar36" identifier = identifier) ;) (while_statement "while( true ) {\n                  uVar44 = CONCAT44(local_98,local_84);\n                  unaff_s5 = (code *******)((int)local_8c + 1);\n                  pppppppcVar29 = local_8c;\n                  if ((int)local_7c <= (int)local_8c) break;\n                  if (((int)local_90 <= (int)unaff_s5) && ((int)local_90 < (int)local_84))\n                  goto LAB_00054e94;\n                  if ((int)local_98 <= (int)unaff_s5) {\n                    while ((int)((ulonglong)uVar44 >> 0x20) < (int)uVar44) {\nLAB_00054e94:\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 2);\n                      local_d8 = (code *******)(*pcVar8)(&local_b4);\n                      if (local_d8 == (code *******)0x0) break;\n                      pppppppcVar14 = param_4;\n                      if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                      pppppppcVar33 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                      pppppppcVar30 = (code *******)0x46c;\n                      pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                      uVar44 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0);\n                      pppppppcVar28 = pppppppcVar38;\n                    }\n                  }\n                  pppppppcVar42 = local_60;\n                  if ((int)unaff_s7[0xd] << 5 < 0) {\n                    pppppppcVar31 = pppppppcVar42;\n                    if (0 < (int)unaff_s7[2]) {\n                      pcVar11 = (code *)(PTR_DAT_000799a4 + -0x6fdc);\n                      pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6ef0);\n                      param_6 = (code *******)0x0;\n                      do {\n                        param_5 = (code *******)unaff_s7[3][(int)param_6];\n                        ppppppcVar39 = *pppppppcVar42;\n                        pppppcVar13 = ppppppcVar39[(int)param_5 * 2 + 1];\n                        if (((uint)pppppcVar13 & 0x800) != 0) {\n                          if (((uint)pppppcVar13 & 0xffc000) != 0) {\n                            pppppppcVar29 = local_8c;\n                            uVar19 = (*pcVar12)(&local_b4,local_8c,local_5c);\n                            uVar7 = (uint)((int)ppppppcVar39[(int)param_5 * 2 + 1] << 8) >> 0x16;\n                            if ((uVar7 & 4) == 0) {\n                              uVar27 = uVar19 & 1;\n                              if ((uVar7 & 8) != 0) goto joined_r0x00054f40;\n                            }\n                            else {\n                              uVar27 = uVar7 & 8;\n                              if ((uVar19 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                              if (uVar27 != 0) goto LAB_000550a4;\n                            }\n                            if ((((uVar7 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                               (((uVar7 & 0x80) != 0 &&\n                                (pppppppcVar33 = local_8c, (uVar19 & 8) == 0)))) goto LAB_000550a4;\n                          }\n                          pppppppcVar30 = &local_b4;\n                          pppppppcVar29 = param_5;\n                          pppppppcVar33 = local_8c;\n                          iVar18 = (*pcVar10)(pppppppcVar42);\n                          if (iVar18 != 0) {\n                            pppppppcVar14 = (code *******)((int)local_8c + iVar18);\n                            if (iVar18 <= local_3c) {\n                              iVar18 = local_3c;\n                            }\n                            pppppppcVar29 = pppppppcVar14;\n                            local_3c = iVar18;\n                            local_d4 = (code *******)(*pcVar11)(&local_b4);\n                            pppppppcVar15 = local_d4;\n                            if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                            pppppppcVar30 =\n                                 (code *******)\n                                 (pppppppcVar42[6] + (int)pppppppcVar42[3][(int)param_5] * 3);\n                            unaff_s4 = (code *******)((int)pppppppcVar14 * 4);\n                            param_5 = local_50 + (int)pppppppcVar14;\n                            if (*param_5 == (code ******)0x0) {\n                              local_d0 = (code *******)*pppppppcVar30;\n                              local_cc = (code *******)pppppppcVar30[1];\n                              local_c8 = (code *******)pppppppcVar30[2];\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *param_5 = ppppppcVar39;\n                            }\n                            else {\n                              pppppppcVar29 = (code *******)(*param_5)[10];\n                              local_d4 = (code *******)FUN_000484bc(&local_d0);\n                              pppppppcVar15 = local_d4;\n                              if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar15 = local_50 + (int)pppppppcVar14;\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *pppppppcVar15 = ppppppcVar39;\n                              (*(code *)PTR_free_00079c24)(local_c8);\n                            }\n                            unaff_s4 = local_50 + (int)pppppppcVar14;\n                            if ((*unaff_s4 == (code ******)0x0) &&\n                               (pppppppcVar15 = local_d4, local_d4 != (code *******)0x0))\n                            goto LAB_00055e44;\n                          }\n                        }\nLAB_000550a4:\n                        param_6 = (code *******)((int)param_6 + 1);\n                      } while ((int)param_6 < (int)unaff_s7[2]);\n                    }\n                    local_d8 = (code *******)0x0;\n                  }\n                  uVar7 = (uint)(byte)*(code *)((int)local_8c + (int)local_b0);\n                  local_8c = (code *******)((int)local_8c + 1);\n                  do {\n                    if (unaff_s7[0xb] != (code ******)0x0) {\n                      pppppppcVar30 = (code *******)unaff_s7[0xb][uVar7];\nLAB_000553a0:\n                      pppppppcVar14 = pppppppcVar30;\n                      if (local_50 != (code *******)0x0) goto LAB_000553ac;\n                      goto LAB_000553cc;\n                    }\n                    pppppppcVar31 = (code *******)unaff_s7[0xc];\n                    if (pppppppcVar31 != (code *******)0x0) {\n                      pppppppcVar29 = (code *******)((int)local_8c + -1);\n                      uVar19 = FUN_00049110(&local_b4);\n                      if ((uVar19 & 1) == 0) {\n                        pppppppcVar30 = (code *******)pppppppcVar31[uVar7];\n                      }\n                      else {\n                        pppppppcVar31 = pppppppcVar31 + uVar7 + 0x100;\n                        pppppppcVar30 = (code *******)*pppppppcVar31;\n                      }\n                      goto LAB_000553a0;\n                    }\n                    pppppppcVar29 = unaff_s7;\n                    pppppppcVar30 = local_5c;\n                    iVar18 = (*pcVar9)(local_60);\n                  } while (iVar18 != 0);\n                  local_d8 = (code *******)0xc;\n                  pppppppcVar15 = local_d8;\nLAB_00055e44:\n                  local_d8 = pppppppcVar15;\n                  param_4 = (code *******)0x0;\n                  if (local_50 == (code *******)0x0) {\n                    pppppppcVar14 = param_4;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    break;\n                  }\n                  pppppppcVar30 = (code *******)0x0;\nLAB_000553ac:\n                  pppppppcVar29 = &local_b4;\n                  pppppppcVar14 = (code *******)FUN_00053684(&local_d8);\nLAB_000553cc:\n                  param_4 = pppppppcVar14;\n                  if (pppppppcVar14 == (code *******)0x0) {\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    if ((local_50 == (code *******)0x0) ||\n                       ((pppppppcVar28 != (code *******)0x0 && (pppppppcVar34 == (code *******)0x0))\n                       )) break;\n                    param_6 = &local_b4;\n                    param_5 = (code *******)&local_d8;\n                    pppppppcVar31 = (code *******)(PTR_DAT_000799a4 + 0x3684);\n                    do {\n                      pppppppcVar15 = local_50 + (int)local_8c;\n                      pppppppcVar42 = local_8c;\n                      do {\n                        pppppppcVar42 = (code *******)((int)pppppppcVar42 + 1);\n                        pppppppcVar29 = local_4c;\n                        param_4 = pppppppcVar14;\n                        if ((int)local_4c < (int)pppppppcVar42) goto LAB_00055da8;\n                        local_8c = (code *******)((int)local_8c + 1);\n                        pppppppcVar15 = pppppppcVar15 + 1;\n                      } while (*pppppppcVar15 == (code ******)0x0);\n                      pppppppcVar30 = (code *******)0x0;\n                      pppppppcVar29 = param_6;\n                      param_4 = (code *******)(*(code *)pppppppcVar31)(param_5);\n                      if (local_d8 != (code *******)0x0) {\n                        if (param_4 == (code *******)0x0) goto LAB_00055da8;\n                        break;\n                      }\n                      pppppppcVar29 = local_4c;\n                    } while (param_4 == (code *******)0x0);\n                  }\n                  pppppppcVar15 = (code *******)((uint)unaff_s7 ^ (uint)param_4);\n                  pppppppcVar42 = unaff_s7;\n                  pppppppcVar14 = local_138;\n                  if ((bVar1) &&\n                     (pppppppcVar42 = pppppppcVar15, pppppppcVar14 = unaff_s5,\n                     pppppppcVar15 != (code *******)0x0)) {\n                    bVar1 = false;\n                    pppppppcVar14 = local_138;\n                  }\n                  local_138 = pppppppcVar14;\n                  unaff_s7 = param_4;\n                  if ((((uint)param_4[0xd] & 0x8000000) != 0) &&\n                     ((((uint)param_4[0xd] & 0x1000000) == 0 ||\n                      (pppppppcVar29 = param_4, pppppppcVar30 = local_8c,\n                      iVar18 = FUN_00049440(&local_b4), iVar18 != 0)))) {\n                    unaff_s7 = pppppppcVar42;\n                    unaff_s8 = local_8c;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                    local_144 = (code *******)0x0;\n                    unaff_s7 = param_4;\n                  }\n                }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                  uVar44 = CONCAT44(local_98,local_84);\n                  unaff_s5 = (code *******)((int)local_8c + 1);\n                  pppppppcVar29 = local_8c;\n                  if ((int)local_7c <= (int)local_8c) break;\n                  if (((int)local_90 <= (int)unaff_s5) && ((int)local_90 < (int)local_84))\n                  goto LAB_00054e94;\n                  if ((int)local_98 <= (int)unaff_s5) {\n                    while ((int)((ulonglong)uVar44 >> 0x20) < (int)uVar44) {\nLAB_00054e94:\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 2);\n                      local_d8 = (code *******)(*pcVar8)(&local_b4);\n                      if (local_d8 == (code *******)0x0) break;\n                      pppppppcVar14 = param_4;\n                      if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                      pppppppcVar33 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                      pppppppcVar30 = (code *******)0x46c;\n                      pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                      uVar44 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0);\n                      pppppppcVar28 = pppppppcVar38;\n                    }\n                  }\n                  pppppppcVar42 = local_60;\n                  if ((int)unaff_s7[0xd] << 5 < 0) {\n                    pppppppcVar31 = pppppppcVar42;\n                    if (0 < (int)unaff_s7[2]) {\n                      pcVar11 = (code *)(PTR_DAT_000799a4 + -0x6fdc);\n                      pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6ef0);\n                      param_6 = (code *******)0x0;\n                      do {\n                        param_5 = (code *******)unaff_s7[3][(int)param_6];\n                        ppppppcVar39 = *pppppppcVar42;\n                        pppppcVar13 = ppppppcVar39[(int)param_5 * 2 + 1];\n                        if (((uint)pppppcVar13 & 0x800) != 0) {\n                          if (((uint)pppppcVar13 & 0xffc000) != 0) {\n                            pppppppcVar29 = local_8c;\n                            uVar19 = (*pcVar12)(&local_b4,local_8c,local_5c);\n                            uVar7 = (uint)((int)ppppppcVar39[(int)param_5 * 2 + 1] << 8) >> 0x16;\n                            if ((uVar7 & 4) == 0) {\n                              uVar27 = uVar19 & 1;\n                              if ((uVar7 & 8) != 0) goto joined_r0x00054f40;\n                            }\n                            else {\n                              uVar27 = uVar7 & 8;\n                              if ((uVar19 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                              if (uVar27 != 0) goto LAB_000550a4;\n                            }\n                            if ((((uVar7 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                               (((uVar7 & 0x80) != 0 &&\n                                (pppppppcVar33 = local_8c, (uVar19 & 8) == 0)))) goto LAB_000550a4;\n                          }\n                          pppppppcVar30 = &local_b4;\n                          pppppppcVar29 = param_5;\n                          pppppppcVar33 = local_8c;\n                          iVar18 = (*pcVar10)(pppppppcVar42);\n                          if (iVar18 != 0) {\n                            pppppppcVar14 = (code *******)((int)local_8c + iVar18);\n                            if (iVar18 <= local_3c) {\n                              iVar18 = local_3c;\n                            }\n                            pppppppcVar29 = pppppppcVar14;\n                            local_3c = iVar18;\n                            local_d4 = (code *******)(*pcVar11)(&local_b4);\n                            pppppppcVar15 = local_d4;\n                            if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                            pppppppcVar30 =\n                                 (code *******)\n                                 (pppppppcVar42[6] + (int)pppppppcVar42[3][(int)param_5] * 3);\n                            unaff_s4 = (code *******)((int)pppppppcVar14 * 4);\n                            param_5 = local_50 + (int)pppppppcVar14;\n                            if (*param_5 == (code ******)0x0) {\n                              local_d0 = (code *******)*pppppppcVar30;\n                              local_cc = (code *******)pppppppcVar30[1];\n                              local_c8 = (code *******)pppppppcVar30[2];\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *param_5 = ppppppcVar39;\n                            }\n                            else {\n                              pppppppcVar29 = (code *******)(*param_5)[10];\n                              local_d4 = (code *******)FUN_000484bc(&local_d0);\n                              pppppppcVar15 = local_d4;\n                              if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar15 = local_50 + (int)pppppppcVar14;\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *pppppppcVar15 = ppppppcVar39;\n                              (*(code *)PTR_free_00079c24)(local_c8);\n                            }\n                            unaff_s4 = local_50 + (int)pppppppcVar14;\n                            if ((*unaff_s4 == (code ******)0x0) &&\n                               (pppppppcVar15 = local_d4, local_d4 != (code *******)0x0))\n                            goto LAB_00055e44;\n                          }\n                        }\nLAB_000550a4:\n                        param_6 = (code *******)((int)param_6 + 1);\n                      } while ((int)param_6 < (int)unaff_s7[2]);\n                    }\n                    local_d8 = (code *******)0x0;\n                  }\n                  uVar7 = (uint)(byte)*(code *)((int)local_8c + (int)local_b0);\n                  local_8c = (code *******)((int)local_8c + 1);\n                  do {\n                    if (unaff_s7[0xb] != (code ******)0x0) {\n                      pppppppcVar30 = (code *******)unaff_s7[0xb][uVar7];\nLAB_000553a0:\n                      pppppppcVar14 = pppppppcVar30;\n                      if (local_50 != (code *******)0x0) goto LAB_000553ac;\n                      goto LAB_000553cc;\n                    }\n                    pppppppcVar31 = (code *******)unaff_s7[0xc];\n                    if (pppppppcVar31 != (code *******)0x0) {\n                      pppppppcVar29 = (code *******)((int)local_8c + -1);\n                      uVar19 = FUN_00049110(&local_b4);\n                      if ((uVar19 & 1) == 0) {\n                        pppppppcVar30 = (code *******)pppppppcVar31[uVar7];\n                      }\n                      else {\n                        pppppppcVar31 = pppppppcVar31 + uVar7 + 0x100;\n                        pppppppcVar30 = (code *******)*pppppppcVar31;\n                      }\n                      goto LAB_000553a0;\n                    }\n                    pppppppcVar29 = unaff_s7;\n                    pppppppcVar30 = local_5c;\n                    iVar18 = (*pcVar9)(local_60);\n                  } while (iVar18 != 0);\n                  local_d8 = (code *******)0xc;\n                  pppppppcVar15 = local_d8;\nLAB_00055e44:\n                  local_d8 = pppppppcVar15;\n                  param_4 = (code *******)0x0;\n                  if (local_50 == (code *******)0x0) {\n                    pppppppcVar14 = param_4;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    break;\n                  }\n                  pppppppcVar30 = (code *******)0x0;\nLAB_000553ac:\n                  pppppppcVar29 = &local_b4;\n                  pppppppcVar14 = (code *******)FUN_00053684(&local_d8);\nLAB_000553cc:\n                  param_4 = pppppppcVar14;\n                  if (pppppppcVar14 == (code *******)0x0) {\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    if ((local_50 == (code *******)0x0) ||\n                       ((pppppppcVar28 != (code *******)0x0 && (pppppppcVar34 == (code *******)0x0))\n                       )) break;\n                    param_6 = &local_b4;\n                    param_5 = (code *******)&local_d8;\n                    pppppppcVar31 = (code *******)(PTR_DAT_000799a4 + 0x3684);\n                    do {\n                      pppppppcVar15 = local_50 + (int)local_8c;\n                      pppppppcVar42 = local_8c;\n                      do {\n                        pppppppcVar42 = (code *******)((int)pppppppcVar42 + 1);\n                        pppppppcVar29 = local_4c;\n                        param_4 = pppppppcVar14;\n                        if ((int)local_4c < (int)pppppppcVar42) goto LAB_00055da8;\n                        local_8c = (code *******)((int)local_8c + 1);\n                        pppppppcVar15 = pppppppcVar15 + 1;\n                      } while (*pppppppcVar15 == (code ******)0x0);\n                      pppppppcVar30 = (code *******)0x0;\n                      pppppppcVar29 = param_6;\n                      param_4 = (code *******)(*(code *)pppppppcVar31)(param_5);\n                      if (local_d8 != (code *******)0x0) {\n                        if (param_4 == (code *******)0x0) goto LAB_00055da8;\n                        break;\n                      }\n                      pppppppcVar29 = local_4c;\n                    } while (param_4 == (code *******)0x0);\n                  }\n                  pppppppcVar15 = (code *******)((uint)unaff_s7 ^ (uint)param_4);\n                  pppppppcVar42 = unaff_s7;\n                  pppppppcVar14 = local_138;\n                  if ((bVar1) &&\n                     (pppppppcVar42 = pppppppcVar15, pppppppcVar14 = unaff_s5,\n                     pppppppcVar15 != (code *******)0x0)) {\n                    bVar1 = false;\n                    pppppppcVar14 = local_138;\n                  }\n                  local_138 = pppppppcVar14;\n                  unaff_s7 = param_4;\n                  if ((((uint)param_4[0xd] & 0x8000000) != 0) &&\n                     ((((uint)param_4[0xd] & 0x1000000) == 0 ||\n                      (pppppppcVar29 = param_4, pppppppcVar30 = local_8c,\n                      iVar18 = FUN_00049440(&local_b4), iVar18 != 0)))) {\n                    unaff_s7 = pppppppcVar42;\n                    unaff_s8 = local_8c;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                    local_144 = (code *******)0x0;\n                    unaff_s7 = param_4;\n                  }\n                }" { (expression_statement "uVar44 = CONCAT44(local_98,local_84);" (assignment_expression "uVar44 = CONCAT44(local_98,local_84)" identifier = (call_expression "CONCAT44(local_98,local_84)" identifier (argument_list "(local_98,local_84)" ( identifier , identifier )))) ;) (expression_statement "unaff_s5 = (code *******)((int)local_8c + 1);" (assignment_expression "unaff_s5 = (code *******)((int)local_8c + 1)" identifier = (cast_expression "(code *******)((int)local_8c + 1)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)local_8c + 1)" ( (binary_expression "(int)local_8c + 1" (cast_expression "(int)local_8c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "pppppppcVar29 = local_8c;" (assignment_expression "pppppppcVar29 = local_8c" identifier = identifier) ;) (if_statement "if ((int)local_7c <= (int)local_8c) break;" if (parenthesized_expression "((int)local_7c <= (int)local_8c)" ( (binary_expression "(int)local_7c <= (int)local_8c" (cast_expression "(int)local_7c" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)local_8c" ( (type_descriptor "int" primitive_type) ) identifier)) )) (break_statement "break;" break ;)) (if_statement "if (((int)local_90 <= (int)unaff_s5) && ((int)local_90 < (int)local_84))\n                  goto LAB_00054e94;" if (parenthesized_expression "(((int)local_90 <= (int)unaff_s5) && ((int)local_90 < (int)local_84))" ( (binary_expression "((int)local_90 <= (int)unaff_s5) && ((int)local_90 < (int)local_84)" (parenthesized_expression "((int)local_90 <= (int)unaff_s5)" ( (binary_expression "(int)local_90 <= (int)unaff_s5" (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)unaff_s5" ( (type_descriptor "int" primitive_type) ) identifier)) )) && (parenthesized_expression "((int)local_90 < (int)local_84)" ( (binary_expression "(int)local_90 < (int)local_84" (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)local_84" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )) (goto_statement "goto LAB_00054e94;" goto statement_identifier ;)) (if_statement "if ((int)local_98 <= (int)unaff_s5) {\n                    while ((int)((ulonglong)uVar44 >> 0x20) < (int)uVar44) {\nLAB_00054e94:\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 2);\n                      local_d8 = (code *******)(*pcVar8)(&local_b4);\n                      if (local_d8 == (code *******)0x0) break;\n                      pppppppcVar14 = param_4;\n                      if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                      pppppppcVar33 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                      pppppppcVar30 = (code *******)0x46c;\n                      pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                      uVar44 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0);\n                      pppppppcVar28 = pppppppcVar38;\n                    }\n                  }" if (parenthesized_expression "((int)local_98 <= (int)unaff_s5)" ( (binary_expression "(int)local_98 <= (int)unaff_s5" (cast_expression "(int)local_98" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)unaff_s5" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                    while ((int)((ulonglong)uVar44 >> 0x20) < (int)uVar44) {\nLAB_00054e94:\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 2);\n                      local_d8 = (code *******)(*pcVar8)(&local_b4);\n                      if (local_d8 == (code *******)0x0) break;\n                      pppppppcVar14 = param_4;\n                      if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                      pppppppcVar33 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                      pppppppcVar30 = (code *******)0x46c;\n                      pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                      uVar44 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0);\n                      pppppppcVar28 = pppppppcVar38;\n                    }\n                  }" { (while_statement "while ((int)((ulonglong)uVar44 >> 0x20) < (int)uVar44) {\nLAB_00054e94:\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 2);\n                      local_d8 = (code *******)(*pcVar8)(&local_b4);\n                      if (local_d8 == (code *******)0x0) break;\n                      pppppppcVar14 = param_4;\n                      if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                      pppppppcVar33 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                      pppppppcVar30 = (code *******)0x46c;\n                      pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                      uVar44 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0);\n                      pppppppcVar28 = pppppppcVar38;\n                    }" while (parenthesized_expression "((int)((ulonglong)uVar44 >> 0x20) < (int)uVar44)" ( (binary_expression "(int)((ulonglong)uVar44 >> 0x20) < (int)uVar44" (cast_expression "(int)((ulonglong)uVar44 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar44 >> 0x20)" ( (binary_expression "(ulonglong)uVar44 >> 0x20" (cast_expression "(ulonglong)uVar44" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) < (cast_expression "(int)uVar44" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\nLAB_00054e94:\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 2);\n                      local_d8 = (code *******)(*pcVar8)(&local_b4);\n                      if (local_d8 == (code *******)0x0) break;\n                      pppppppcVar14 = param_4;\n                      if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                      pppppppcVar33 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                      pppppppcVar30 = (code *******)0x46c;\n                      pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                      uVar44 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0);\n                      pppppppcVar28 = pppppppcVar38;\n                    }" { (labeled_statement "LAB_00054e94:\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 2);" statement_identifier : (expression_statement "pppppppcVar29 = (code *******)((int)pppppppcVar29 + 2);" (assignment_expression "pppppppcVar29 = (code *******)((int)pppppppcVar29 + 2)" identifier = (cast_expression "(code *******)((int)pppppppcVar29 + 2)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)pppppppcVar29 + 2)" ( (binary_expression "(int)pppppppcVar29 + 2" (cast_expression "(int)pppppppcVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;)) (expression_statement "local_d8 = (code *******)(*pcVar8)(&local_b4);" (assignment_expression "local_d8 = (code *******)(*pcVar8)(&local_b4)" identifier = (cast_expression "(code *******)(*pcVar8)(&local_b4)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "(*pcVar8)(&local_b4)" (parenthesized_expression "(*pcVar8)" ( (pointer_expression "*pcVar8" * identifier) )) (argument_list "(&local_b4)" ( (pointer_expression "&local_b4" & identifier) ))))) ;) (if_statement "if (local_d8 == (code *******)0x0) break;" if (parenthesized_expression "(local_d8 == (code *******)0x0)" ( (binary_expression "local_d8 == (code *******)0x0" identifier == (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "pppppppcVar14 = param_4;" (assignment_expression "pppppppcVar14 = param_4" identifier = identifier) ;) (if_statement "if (local_d8 == (code *******)0xc) goto LAB_00055914;" if (parenthesized_expression "(local_d8 == (code *******)0xc)" ( (binary_expression "local_d8 == (code *******)0xc" identifier == (cast_expression "(code *******)0xc" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (goto_statement "goto LAB_00055914;" goto statement_identifier ;)) (expression_statement "pppppppcVar33 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);" (assignment_expression "pppppppcVar33 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0)" identifier = (cast_expression "(code *******)(PTR_s_nt0_000795b8 + 0x6eb0)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(PTR_s_nt0_000795b8 + 0x6eb0)" ( (binary_expression "PTR_s_nt0_000795b8 + 0x6eb0" identifier + number_literal) )))) ;) (expression_statement "pppppppcVar30 = (code *******)0x46c;" (assignment_expression "pppppppcVar30 = (code *******)0x46c" identifier = (cast_expression "(code *******)0x46c" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);" (assignment_expression "pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c)" identifier = (cast_expression "(code *******)(PTR_s_nt0_000795b8 + 0x712c)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(PTR_s_nt0_000795b8 + 0x712c)" ( (binary_expression "PTR_s_nt0_000795b8 + 0x712c" identifier + number_literal) )))) ;) (expression_statement "uVar44 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0);" (assignment_expression "uVar44 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0)" identifier = (call_expression "(*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0)" (parenthesized_expression "(*(code *)PTR___assert_fail_000799f8)" ( (pointer_expression "*(code *)PTR___assert_fail_000799f8" * (cast_expression "(code *)PTR___assert_fail_000799f8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_nt0_000795b8 + 0x71a0)" ( (binary_expression "PTR_s_nt0_000795b8 + 0x71a0" identifier + number_literal) )))) ;) (expression_statement "pppppppcVar28 = pppppppcVar38;" (assignment_expression "pppppppcVar28 = pppppppcVar38" identifier = identifier) ;) })) })) (expression_statement "pppppppcVar42 = local_60;" (assignment_expression "pppppppcVar42 = local_60" identifier = identifier) ;) (if_statement "if ((int)unaff_s7[0xd] << 5 < 0) {\n                    pppppppcVar31 = pppppppcVar42;\n                    if (0 < (int)unaff_s7[2]) {\n                      pcVar11 = (code *)(PTR_DAT_000799a4 + -0x6fdc);\n                      pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6ef0);\n                      param_6 = (code *******)0x0;\n                      do {\n                        param_5 = (code *******)unaff_s7[3][(int)param_6];\n                        ppppppcVar39 = *pppppppcVar42;\n                        pppppcVar13 = ppppppcVar39[(int)param_5 * 2 + 1];\n                        if (((uint)pppppcVar13 & 0x800) != 0) {\n                          if (((uint)pppppcVar13 & 0xffc000) != 0) {\n                            pppppppcVar29 = local_8c;\n                            uVar19 = (*pcVar12)(&local_b4,local_8c,local_5c);\n                            uVar7 = (uint)((int)ppppppcVar39[(int)param_5 * 2 + 1] << 8) >> 0x16;\n                            if ((uVar7 & 4) == 0) {\n                              uVar27 = uVar19 & 1;\n                              if ((uVar7 & 8) != 0) goto joined_r0x00054f40;\n                            }\n                            else {\n                              uVar27 = uVar7 & 8;\n                              if ((uVar19 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                              if (uVar27 != 0) goto LAB_000550a4;\n                            }\n                            if ((((uVar7 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                               (((uVar7 & 0x80) != 0 &&\n                                (pppppppcVar33 = local_8c, (uVar19 & 8) == 0)))) goto LAB_000550a4;\n                          }\n                          pppppppcVar30 = &local_b4;\n                          pppppppcVar29 = param_5;\n                          pppppppcVar33 = local_8c;\n                          iVar18 = (*pcVar10)(pppppppcVar42);\n                          if (iVar18 != 0) {\n                            pppppppcVar14 = (code *******)((int)local_8c + iVar18);\n                            if (iVar18 <= local_3c) {\n                              iVar18 = local_3c;\n                            }\n                            pppppppcVar29 = pppppppcVar14;\n                            local_3c = iVar18;\n                            local_d4 = (code *******)(*pcVar11)(&local_b4);\n                            pppppppcVar15 = local_d4;\n                            if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                            pppppppcVar30 =\n                                 (code *******)\n                                 (pppppppcVar42[6] + (int)pppppppcVar42[3][(int)param_5] * 3);\n                            unaff_s4 = (code *******)((int)pppppppcVar14 * 4);\n                            param_5 = local_50 + (int)pppppppcVar14;\n                            if (*param_5 == (code ******)0x0) {\n                              local_d0 = (code *******)*pppppppcVar30;\n                              local_cc = (code *******)pppppppcVar30[1];\n                              local_c8 = (code *******)pppppppcVar30[2];\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *param_5 = ppppppcVar39;\n                            }\n                            else {\n                              pppppppcVar29 = (code *******)(*param_5)[10];\n                              local_d4 = (code *******)FUN_000484bc(&local_d0);\n                              pppppppcVar15 = local_d4;\n                              if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar15 = local_50 + (int)pppppppcVar14;\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *pppppppcVar15 = ppppppcVar39;\n                              (*(code *)PTR_free_00079c24)(local_c8);\n                            }\n                            unaff_s4 = local_50 + (int)pppppppcVar14;\n                            if ((*unaff_s4 == (code ******)0x0) &&\n                               (pppppppcVar15 = local_d4, local_d4 != (code *******)0x0))\n                            goto LAB_00055e44;\n                          }\n                        }\nLAB_000550a4:\n                        param_6 = (code *******)((int)param_6 + 1);\n                      } while ((int)param_6 < (int)unaff_s7[2]);\n                    }\n                    local_d8 = (code *******)0x0;\n                  }" if (parenthesized_expression "((int)unaff_s7[0xd] << 5 < 0)" ( (binary_expression "(int)unaff_s7[0xd] << 5 < 0" (binary_expression "(int)unaff_s7[0xd] << 5" (cast_expression "(int)unaff_s7[0xd]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "unaff_s7[0xd]" identifier [ number_literal ])) << number_literal) < number_literal) )) (compound_statement "{\n                    pppppppcVar31 = pppppppcVar42;\n                    if (0 < (int)unaff_s7[2]) {\n                      pcVar11 = (code *)(PTR_DAT_000799a4 + -0x6fdc);\n                      pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6ef0);\n                      param_6 = (code *******)0x0;\n                      do {\n                        param_5 = (code *******)unaff_s7[3][(int)param_6];\n                        ppppppcVar39 = *pppppppcVar42;\n                        pppppcVar13 = ppppppcVar39[(int)param_5 * 2 + 1];\n                        if (((uint)pppppcVar13 & 0x800) != 0) {\n                          if (((uint)pppppcVar13 & 0xffc000) != 0) {\n                            pppppppcVar29 = local_8c;\n                            uVar19 = (*pcVar12)(&local_b4,local_8c,local_5c);\n                            uVar7 = (uint)((int)ppppppcVar39[(int)param_5 * 2 + 1] << 8) >> 0x16;\n                            if ((uVar7 & 4) == 0) {\n                              uVar27 = uVar19 & 1;\n                              if ((uVar7 & 8) != 0) goto joined_r0x00054f40;\n                            }\n                            else {\n                              uVar27 = uVar7 & 8;\n                              if ((uVar19 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                              if (uVar27 != 0) goto LAB_000550a4;\n                            }\n                            if ((((uVar7 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                               (((uVar7 & 0x80) != 0 &&\n                                (pppppppcVar33 = local_8c, (uVar19 & 8) == 0)))) goto LAB_000550a4;\n                          }\n                          pppppppcVar30 = &local_b4;\n                          pppppppcVar29 = param_5;\n                          pppppppcVar33 = local_8c;\n                          iVar18 = (*pcVar10)(pppppppcVar42);\n                          if (iVar18 != 0) {\n                            pppppppcVar14 = (code *******)((int)local_8c + iVar18);\n                            if (iVar18 <= local_3c) {\n                              iVar18 = local_3c;\n                            }\n                            pppppppcVar29 = pppppppcVar14;\n                            local_3c = iVar18;\n                            local_d4 = (code *******)(*pcVar11)(&local_b4);\n                            pppppppcVar15 = local_d4;\n                            if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                            pppppppcVar30 =\n                                 (code *******)\n                                 (pppppppcVar42[6] + (int)pppppppcVar42[3][(int)param_5] * 3);\n                            unaff_s4 = (code *******)((int)pppppppcVar14 * 4);\n                            param_5 = local_50 + (int)pppppppcVar14;\n                            if (*param_5 == (code ******)0x0) {\n                              local_d0 = (code *******)*pppppppcVar30;\n                              local_cc = (code *******)pppppppcVar30[1];\n                              local_c8 = (code *******)pppppppcVar30[2];\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *param_5 = ppppppcVar39;\n                            }\n                            else {\n                              pppppppcVar29 = (code *******)(*param_5)[10];\n                              local_d4 = (code *******)FUN_000484bc(&local_d0);\n                              pppppppcVar15 = local_d4;\n                              if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar15 = local_50 + (int)pppppppcVar14;\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *pppppppcVar15 = ppppppcVar39;\n                              (*(code *)PTR_free_00079c24)(local_c8);\n                            }\n                            unaff_s4 = local_50 + (int)pppppppcVar14;\n                            if ((*unaff_s4 == (code ******)0x0) &&\n                               (pppppppcVar15 = local_d4, local_d4 != (code *******)0x0))\n                            goto LAB_00055e44;\n                          }\n                        }\nLAB_000550a4:\n                        param_6 = (code *******)((int)param_6 + 1);\n                      } while ((int)param_6 < (int)unaff_s7[2]);\n                    }\n                    local_d8 = (code *******)0x0;\n                  }" { (expression_statement "pppppppcVar31 = pppppppcVar42;" (assignment_expression "pppppppcVar31 = pppppppcVar42" identifier = identifier) ;) (if_statement "if (0 < (int)unaff_s7[2]) {\n                      pcVar11 = (code *)(PTR_DAT_000799a4 + -0x6fdc);\n                      pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6ef0);\n                      param_6 = (code *******)0x0;\n                      do {\n                        param_5 = (code *******)unaff_s7[3][(int)param_6];\n                        ppppppcVar39 = *pppppppcVar42;\n                        pppppcVar13 = ppppppcVar39[(int)param_5 * 2 + 1];\n                        if (((uint)pppppcVar13 & 0x800) != 0) {\n                          if (((uint)pppppcVar13 & 0xffc000) != 0) {\n                            pppppppcVar29 = local_8c;\n                            uVar19 = (*pcVar12)(&local_b4,local_8c,local_5c);\n                            uVar7 = (uint)((int)ppppppcVar39[(int)param_5 * 2 + 1] << 8) >> 0x16;\n                            if ((uVar7 & 4) == 0) {\n                              uVar27 = uVar19 & 1;\n                              if ((uVar7 & 8) != 0) goto joined_r0x00054f40;\n                            }\n                            else {\n                              uVar27 = uVar7 & 8;\n                              if ((uVar19 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                              if (uVar27 != 0) goto LAB_000550a4;\n                            }\n                            if ((((uVar7 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                               (((uVar7 & 0x80) != 0 &&\n                                (pppppppcVar33 = local_8c, (uVar19 & 8) == 0)))) goto LAB_000550a4;\n                          }\n                          pppppppcVar30 = &local_b4;\n                          pppppppcVar29 = param_5;\n                          pppppppcVar33 = local_8c;\n                          iVar18 = (*pcVar10)(pppppppcVar42);\n                          if (iVar18 != 0) {\n                            pppppppcVar14 = (code *******)((int)local_8c + iVar18);\n                            if (iVar18 <= local_3c) {\n                              iVar18 = local_3c;\n                            }\n                            pppppppcVar29 = pppppppcVar14;\n                            local_3c = iVar18;\n                            local_d4 = (code *******)(*pcVar11)(&local_b4);\n                            pppppppcVar15 = local_d4;\n                            if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                            pppppppcVar30 =\n                                 (code *******)\n                                 (pppppppcVar42[6] + (int)pppppppcVar42[3][(int)param_5] * 3);\n                            unaff_s4 = (code *******)((int)pppppppcVar14 * 4);\n                            param_5 = local_50 + (int)pppppppcVar14;\n                            if (*param_5 == (code ******)0x0) {\n                              local_d0 = (code *******)*pppppppcVar30;\n                              local_cc = (code *******)pppppppcVar30[1];\n                              local_c8 = (code *******)pppppppcVar30[2];\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *param_5 = ppppppcVar39;\n                            }\n                            else {\n                              pppppppcVar29 = (code *******)(*param_5)[10];\n                              local_d4 = (code *******)FUN_000484bc(&local_d0);\n                              pppppppcVar15 = local_d4;\n                              if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar15 = local_50 + (int)pppppppcVar14;\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *pppppppcVar15 = ppppppcVar39;\n                              (*(code *)PTR_free_00079c24)(local_c8);\n                            }\n                            unaff_s4 = local_50 + (int)pppppppcVar14;\n                            if ((*unaff_s4 == (code ******)0x0) &&\n                               (pppppppcVar15 = local_d4, local_d4 != (code *******)0x0))\n                            goto LAB_00055e44;\n                          }\n                        }\nLAB_000550a4:\n                        param_6 = (code *******)((int)param_6 + 1);\n                      } while ((int)param_6 < (int)unaff_s7[2]);\n                    }" if (parenthesized_expression "(0 < (int)unaff_s7[2])" ( (binary_expression "0 < (int)unaff_s7[2]" number_literal < (cast_expression "(int)unaff_s7[2]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "unaff_s7[2]" identifier [ number_literal ]))) )) (compound_statement "{\n                      pcVar11 = (code *)(PTR_DAT_000799a4 + -0x6fdc);\n                      pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6ef0);\n                      param_6 = (code *******)0x0;\n                      do {\n                        param_5 = (code *******)unaff_s7[3][(int)param_6];\n                        ppppppcVar39 = *pppppppcVar42;\n                        pppppcVar13 = ppppppcVar39[(int)param_5 * 2 + 1];\n                        if (((uint)pppppcVar13 & 0x800) != 0) {\n                          if (((uint)pppppcVar13 & 0xffc000) != 0) {\n                            pppppppcVar29 = local_8c;\n                            uVar19 = (*pcVar12)(&local_b4,local_8c,local_5c);\n                            uVar7 = (uint)((int)ppppppcVar39[(int)param_5 * 2 + 1] << 8) >> 0x16;\n                            if ((uVar7 & 4) == 0) {\n                              uVar27 = uVar19 & 1;\n                              if ((uVar7 & 8) != 0) goto joined_r0x00054f40;\n                            }\n                            else {\n                              uVar27 = uVar7 & 8;\n                              if ((uVar19 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                              if (uVar27 != 0) goto LAB_000550a4;\n                            }\n                            if ((((uVar7 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                               (((uVar7 & 0x80) != 0 &&\n                                (pppppppcVar33 = local_8c, (uVar19 & 8) == 0)))) goto LAB_000550a4;\n                          }\n                          pppppppcVar30 = &local_b4;\n                          pppppppcVar29 = param_5;\n                          pppppppcVar33 = local_8c;\n                          iVar18 = (*pcVar10)(pppppppcVar42);\n                          if (iVar18 != 0) {\n                            pppppppcVar14 = (code *******)((int)local_8c + iVar18);\n                            if (iVar18 <= local_3c) {\n                              iVar18 = local_3c;\n                            }\n                            pppppppcVar29 = pppppppcVar14;\n                            local_3c = iVar18;\n                            local_d4 = (code *******)(*pcVar11)(&local_b4);\n                            pppppppcVar15 = local_d4;\n                            if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                            pppppppcVar30 =\n                                 (code *******)\n                                 (pppppppcVar42[6] + (int)pppppppcVar42[3][(int)param_5] * 3);\n                            unaff_s4 = (code *******)((int)pppppppcVar14 * 4);\n                            param_5 = local_50 + (int)pppppppcVar14;\n                            if (*param_5 == (code ******)0x0) {\n                              local_d0 = (code *******)*pppppppcVar30;\n                              local_cc = (code *******)pppppppcVar30[1];\n                              local_c8 = (code *******)pppppppcVar30[2];\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *param_5 = ppppppcVar39;\n                            }\n                            else {\n                              pppppppcVar29 = (code *******)(*param_5)[10];\n                              local_d4 = (code *******)FUN_000484bc(&local_d0);\n                              pppppppcVar15 = local_d4;\n                              if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar15 = local_50 + (int)pppppppcVar14;\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *pppppppcVar15 = ppppppcVar39;\n                              (*(code *)PTR_free_00079c24)(local_c8);\n                            }\n                            unaff_s4 = local_50 + (int)pppppppcVar14;\n                            if ((*unaff_s4 == (code ******)0x0) &&\n                               (pppppppcVar15 = local_d4, local_d4 != (code *******)0x0))\n                            goto LAB_00055e44;\n                          }\n                        }\nLAB_000550a4:\n                        param_6 = (code *******)((int)param_6 + 1);\n                      } while ((int)param_6 < (int)unaff_s7[2]);\n                    }" { (expression_statement "pcVar11 = (code *)(PTR_DAT_000799a4 + -0x6fdc);" (assignment_expression "pcVar11 = (code *)(PTR_DAT_000799a4 + -0x6fdc)" identifier = (cast_expression "(code *)(PTR_DAT_000799a4 + -0x6fdc)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000799a4 + -0x6fdc)" ( (binary_expression "PTR_DAT_000799a4 + -0x6fdc" identifier + number_literal) )))) ;) (expression_statement "pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6ef0);" (assignment_expression "pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6ef0)" identifier = (cast_expression "(code *)(PTR_DAT_000799a4 + -0x6ef0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000799a4 + -0x6ef0)" ( (binary_expression "PTR_DAT_000799a4 + -0x6ef0" identifier + number_literal) )))) ;) (expression_statement "param_6 = (code *******)0x0;" (assignment_expression "param_6 = (code *******)0x0" identifier = (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (do_statement "do {\n                        param_5 = (code *******)unaff_s7[3][(int)param_6];\n                        ppppppcVar39 = *pppppppcVar42;\n                        pppppcVar13 = ppppppcVar39[(int)param_5 * 2 + 1];\n                        if (((uint)pppppcVar13 & 0x800) != 0) {\n                          if (((uint)pppppcVar13 & 0xffc000) != 0) {\n                            pppppppcVar29 = local_8c;\n                            uVar19 = (*pcVar12)(&local_b4,local_8c,local_5c);\n                            uVar7 = (uint)((int)ppppppcVar39[(int)param_5 * 2 + 1] << 8) >> 0x16;\n                            if ((uVar7 & 4) == 0) {\n                              uVar27 = uVar19 & 1;\n                              if ((uVar7 & 8) != 0) goto joined_r0x00054f40;\n                            }\n                            else {\n                              uVar27 = uVar7 & 8;\n                              if ((uVar19 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                              if (uVar27 != 0) goto LAB_000550a4;\n                            }\n                            if ((((uVar7 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                               (((uVar7 & 0x80) != 0 &&\n                                (pppppppcVar33 = local_8c, (uVar19 & 8) == 0)))) goto LAB_000550a4;\n                          }\n                          pppppppcVar30 = &local_b4;\n                          pppppppcVar29 = param_5;\n                          pppppppcVar33 = local_8c;\n                          iVar18 = (*pcVar10)(pppppppcVar42);\n                          if (iVar18 != 0) {\n                            pppppppcVar14 = (code *******)((int)local_8c + iVar18);\n                            if (iVar18 <= local_3c) {\n                              iVar18 = local_3c;\n                            }\n                            pppppppcVar29 = pppppppcVar14;\n                            local_3c = iVar18;\n                            local_d4 = (code *******)(*pcVar11)(&local_b4);\n                            pppppppcVar15 = local_d4;\n                            if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                            pppppppcVar30 =\n                                 (code *******)\n                                 (pppppppcVar42[6] + (int)pppppppcVar42[3][(int)param_5] * 3);\n                            unaff_s4 = (code *******)((int)pppppppcVar14 * 4);\n                            param_5 = local_50 + (int)pppppppcVar14;\n                            if (*param_5 == (code ******)0x0) {\n                              local_d0 = (code *******)*pppppppcVar30;\n                              local_cc = (code *******)pppppppcVar30[1];\n                              local_c8 = (code *******)pppppppcVar30[2];\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *param_5 = ppppppcVar39;\n                            }\n                            else {\n                              pppppppcVar29 = (code *******)(*param_5)[10];\n                              local_d4 = (code *******)FUN_000484bc(&local_d0);\n                              pppppppcVar15 = local_d4;\n                              if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar15 = local_50 + (int)pppppppcVar14;\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *pppppppcVar15 = ppppppcVar39;\n                              (*(code *)PTR_free_00079c24)(local_c8);\n                            }\n                            unaff_s4 = local_50 + (int)pppppppcVar14;\n                            if ((*unaff_s4 == (code ******)0x0) &&\n                               (pppppppcVar15 = local_d4, local_d4 != (code *******)0x0))\n                            goto LAB_00055e44;\n                          }\n                        }\nLAB_000550a4:\n                        param_6 = (code *******)((int)param_6 + 1);\n                      } while ((int)param_6 < (int)unaff_s7[2]);" do (compound_statement "{\n                        param_5 = (code *******)unaff_s7[3][(int)param_6];\n                        ppppppcVar39 = *pppppppcVar42;\n                        pppppcVar13 = ppppppcVar39[(int)param_5 * 2 + 1];\n                        if (((uint)pppppcVar13 & 0x800) != 0) {\n                          if (((uint)pppppcVar13 & 0xffc000) != 0) {\n                            pppppppcVar29 = local_8c;\n                            uVar19 = (*pcVar12)(&local_b4,local_8c,local_5c);\n                            uVar7 = (uint)((int)ppppppcVar39[(int)param_5 * 2 + 1] << 8) >> 0x16;\n                            if ((uVar7 & 4) == 0) {\n                              uVar27 = uVar19 & 1;\n                              if ((uVar7 & 8) != 0) goto joined_r0x00054f40;\n                            }\n                            else {\n                              uVar27 = uVar7 & 8;\n                              if ((uVar19 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                              if (uVar27 != 0) goto LAB_000550a4;\n                            }\n                            if ((((uVar7 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                               (((uVar7 & 0x80) != 0 &&\n                                (pppppppcVar33 = local_8c, (uVar19 & 8) == 0)))) goto LAB_000550a4;\n                          }\n                          pppppppcVar30 = &local_b4;\n                          pppppppcVar29 = param_5;\n                          pppppppcVar33 = local_8c;\n                          iVar18 = (*pcVar10)(pppppppcVar42);\n                          if (iVar18 != 0) {\n                            pppppppcVar14 = (code *******)((int)local_8c + iVar18);\n                            if (iVar18 <= local_3c) {\n                              iVar18 = local_3c;\n                            }\n                            pppppppcVar29 = pppppppcVar14;\n                            local_3c = iVar18;\n                            local_d4 = (code *******)(*pcVar11)(&local_b4);\n                            pppppppcVar15 = local_d4;\n                            if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                            pppppppcVar30 =\n                                 (code *******)\n                                 (pppppppcVar42[6] + (int)pppppppcVar42[3][(int)param_5] * 3);\n                            unaff_s4 = (code *******)((int)pppppppcVar14 * 4);\n                            param_5 = local_50 + (int)pppppppcVar14;\n                            if (*param_5 == (code ******)0x0) {\n                              local_d0 = (code *******)*pppppppcVar30;\n                              local_cc = (code *******)pppppppcVar30[1];\n                              local_c8 = (code *******)pppppppcVar30[2];\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *param_5 = ppppppcVar39;\n                            }\n                            else {\n                              pppppppcVar29 = (code *******)(*param_5)[10];\n                              local_d4 = (code *******)FUN_000484bc(&local_d0);\n                              pppppppcVar15 = local_d4;\n                              if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar15 = local_50 + (int)pppppppcVar14;\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *pppppppcVar15 = ppppppcVar39;\n                              (*(code *)PTR_free_00079c24)(local_c8);\n                            }\n                            unaff_s4 = local_50 + (int)pppppppcVar14;\n                            if ((*unaff_s4 == (code ******)0x0) &&\n                               (pppppppcVar15 = local_d4, local_d4 != (code *******)0x0))\n                            goto LAB_00055e44;\n                          }\n                        }\nLAB_000550a4:\n                        param_6 = (code *******)((int)param_6 + 1);\n                      }" { (expression_statement "param_5 = (code *******)unaff_s7[3][(int)param_6];" (assignment_expression "param_5 = (code *******)unaff_s7[3][(int)param_6]" identifier = (cast_expression "(code *******)unaff_s7[3][(int)param_6]" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (subscript_expression "unaff_s7[3][(int)param_6]" (subscript_expression "unaff_s7[3]" identifier [ number_literal ]) [ (cast_expression "(int)param_6" ( (type_descriptor "int" primitive_type) ) identifier) ]))) ;) (expression_statement "ppppppcVar39 = *pppppppcVar42;" (assignment_expression "ppppppcVar39 = *pppppppcVar42" identifier = (pointer_expression "*pppppppcVar42" * identifier)) ;) (expression_statement "pppppcVar13 = ppppppcVar39[(int)param_5 * 2 + 1];" (assignment_expression "pppppcVar13 = ppppppcVar39[(int)param_5 * 2 + 1]" identifier = (subscript_expression "ppppppcVar39[(int)param_5 * 2 + 1]" identifier [ (binary_expression "(int)param_5 * 2 + 1" (binary_expression "(int)param_5 * 2" (cast_expression "(int)param_5" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal) ])) ;) (if_statement "if (((uint)pppppcVar13 & 0x800) != 0) {\n                          if (((uint)pppppcVar13 & 0xffc000) != 0) {\n                            pppppppcVar29 = local_8c;\n                            uVar19 = (*pcVar12)(&local_b4,local_8c,local_5c);\n                            uVar7 = (uint)((int)ppppppcVar39[(int)param_5 * 2 + 1] << 8) >> 0x16;\n                            if ((uVar7 & 4) == 0) {\n                              uVar27 = uVar19 & 1;\n                              if ((uVar7 & 8) != 0) goto joined_r0x00054f40;\n                            }\n                            else {\n                              uVar27 = uVar7 & 8;\n                              if ((uVar19 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                              if (uVar27 != 0) goto LAB_000550a4;\n                            }\n                            if ((((uVar7 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                               (((uVar7 & 0x80) != 0 &&\n                                (pppppppcVar33 = local_8c, (uVar19 & 8) == 0)))) goto LAB_000550a4;\n                          }\n                          pppppppcVar30 = &local_b4;\n                          pppppppcVar29 = param_5;\n                          pppppppcVar33 = local_8c;\n                          iVar18 = (*pcVar10)(pppppppcVar42);\n                          if (iVar18 != 0) {\n                            pppppppcVar14 = (code *******)((int)local_8c + iVar18);\n                            if (iVar18 <= local_3c) {\n                              iVar18 = local_3c;\n                            }\n                            pppppppcVar29 = pppppppcVar14;\n                            local_3c = iVar18;\n                            local_d4 = (code *******)(*pcVar11)(&local_b4);\n                            pppppppcVar15 = local_d4;\n                            if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                            pppppppcVar30 =\n                                 (code *******)\n                                 (pppppppcVar42[6] + (int)pppppppcVar42[3][(int)param_5] * 3);\n                            unaff_s4 = (code *******)((int)pppppppcVar14 * 4);\n                            param_5 = local_50 + (int)pppppppcVar14;\n                            if (*param_5 == (code ******)0x0) {\n                              local_d0 = (code *******)*pppppppcVar30;\n                              local_cc = (code *******)pppppppcVar30[1];\n                              local_c8 = (code *******)pppppppcVar30[2];\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *param_5 = ppppppcVar39;\n                            }\n                            else {\n                              pppppppcVar29 = (code *******)(*param_5)[10];\n                              local_d4 = (code *******)FUN_000484bc(&local_d0);\n                              pppppppcVar15 = local_d4;\n                              if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar15 = local_50 + (int)pppppppcVar14;\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *pppppppcVar15 = ppppppcVar39;\n                              (*(code *)PTR_free_00079c24)(local_c8);\n                            }\n                            unaff_s4 = local_50 + (int)pppppppcVar14;\n                            if ((*unaff_s4 == (code ******)0x0) &&\n                               (pppppppcVar15 = local_d4, local_d4 != (code *******)0x0))\n                            goto LAB_00055e44;\n                          }\n                        }" if (parenthesized_expression "(((uint)pppppcVar13 & 0x800) != 0)" ( (binary_expression "((uint)pppppcVar13 & 0x800) != 0" (parenthesized_expression "((uint)pppppcVar13 & 0x800)" ( (binary_expression "(uint)pppppcVar13 & 0x800" (cast_expression "(uint)pppppcVar13" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n                          if (((uint)pppppcVar13 & 0xffc000) != 0) {\n                            pppppppcVar29 = local_8c;\n                            uVar19 = (*pcVar12)(&local_b4,local_8c,local_5c);\n                            uVar7 = (uint)((int)ppppppcVar39[(int)param_5 * 2 + 1] << 8) >> 0x16;\n                            if ((uVar7 & 4) == 0) {\n                              uVar27 = uVar19 & 1;\n                              if ((uVar7 & 8) != 0) goto joined_r0x00054f40;\n                            }\n                            else {\n                              uVar27 = uVar7 & 8;\n                              if ((uVar19 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                              if (uVar27 != 0) goto LAB_000550a4;\n                            }\n                            if ((((uVar7 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                               (((uVar7 & 0x80) != 0 &&\n                                (pppppppcVar33 = local_8c, (uVar19 & 8) == 0)))) goto LAB_000550a4;\n                          }\n                          pppppppcVar30 = &local_b4;\n                          pppppppcVar29 = param_5;\n                          pppppppcVar33 = local_8c;\n                          iVar18 = (*pcVar10)(pppppppcVar42);\n                          if (iVar18 != 0) {\n                            pppppppcVar14 = (code *******)((int)local_8c + iVar18);\n                            if (iVar18 <= local_3c) {\n                              iVar18 = local_3c;\n                            }\n                            pppppppcVar29 = pppppppcVar14;\n                            local_3c = iVar18;\n                            local_d4 = (code *******)(*pcVar11)(&local_b4);\n                            pppppppcVar15 = local_d4;\n                            if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                            pppppppcVar30 =\n                                 (code *******)\n                                 (pppppppcVar42[6] + (int)pppppppcVar42[3][(int)param_5] * 3);\n                            unaff_s4 = (code *******)((int)pppppppcVar14 * 4);\n                            param_5 = local_50 + (int)pppppppcVar14;\n                            if (*param_5 == (code ******)0x0) {\n                              local_d0 = (code *******)*pppppppcVar30;\n                              local_cc = (code *******)pppppppcVar30[1];\n                              local_c8 = (code *******)pppppppcVar30[2];\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *param_5 = ppppppcVar39;\n                            }\n                            else {\n                              pppppppcVar29 = (code *******)(*param_5)[10];\n                              local_d4 = (code *******)FUN_000484bc(&local_d0);\n                              pppppppcVar15 = local_d4;\n                              if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar15 = local_50 + (int)pppppppcVar14;\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *pppppppcVar15 = ppppppcVar39;\n                              (*(code *)PTR_free_00079c24)(local_c8);\n                            }\n                            unaff_s4 = local_50 + (int)pppppppcVar14;\n                            if ((*unaff_s4 == (code ******)0x0) &&\n                               (pppppppcVar15 = local_d4, local_d4 != (code *******)0x0))\n                            goto LAB_00055e44;\n                          }\n                        }" { (if_statement "if (((uint)pppppcVar13 & 0xffc000) != 0) {\n                            pppppppcVar29 = local_8c;\n                            uVar19 = (*pcVar12)(&local_b4,local_8c,local_5c);\n                            uVar7 = (uint)((int)ppppppcVar39[(int)param_5 * 2 + 1] << 8) >> 0x16;\n                            if ((uVar7 & 4) == 0) {\n                              uVar27 = uVar19 & 1;\n                              if ((uVar7 & 8) != 0) goto joined_r0x00054f40;\n                            }\n                            else {\n                              uVar27 = uVar7 & 8;\n                              if ((uVar19 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                              if (uVar27 != 0) goto LAB_000550a4;\n                            }\n                            if ((((uVar7 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                               (((uVar7 & 0x80) != 0 &&\n                                (pppppppcVar33 = local_8c, (uVar19 & 8) == 0)))) goto LAB_000550a4;\n                          }" if (parenthesized_expression "(((uint)pppppcVar13 & 0xffc000) != 0)" ( (binary_expression "((uint)pppppcVar13 & 0xffc000) != 0" (parenthesized_expression "((uint)pppppcVar13 & 0xffc000)" ( (binary_expression "(uint)pppppcVar13 & 0xffc000" (cast_expression "(uint)pppppcVar13" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n                            pppppppcVar29 = local_8c;\n                            uVar19 = (*pcVar12)(&local_b4,local_8c,local_5c);\n                            uVar7 = (uint)((int)ppppppcVar39[(int)param_5 * 2 + 1] << 8) >> 0x16;\n                            if ((uVar7 & 4) == 0) {\n                              uVar27 = uVar19 & 1;\n                              if ((uVar7 & 8) != 0) goto joined_r0x00054f40;\n                            }\n                            else {\n                              uVar27 = uVar7 & 8;\n                              if ((uVar19 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                              if (uVar27 != 0) goto LAB_000550a4;\n                            }\n                            if ((((uVar7 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                               (((uVar7 & 0x80) != 0 &&\n                                (pppppppcVar33 = local_8c, (uVar19 & 8) == 0)))) goto LAB_000550a4;\n                          }" { (expression_statement "pppppppcVar29 = local_8c;" (assignment_expression "pppppppcVar29 = local_8c" identifier = identifier) ;) (expression_statement "uVar19 = (*pcVar12)(&local_b4,local_8c,local_5c);" (assignment_expression "uVar19 = (*pcVar12)(&local_b4,local_8c,local_5c)" identifier = (call_expression "(*pcVar12)(&local_b4,local_8c,local_5c)" (parenthesized_expression "(*pcVar12)" ( (pointer_expression "*pcVar12" * identifier) )) (argument_list "(&local_b4,local_8c,local_5c)" ( (pointer_expression "&local_b4" & identifier) , identifier , identifier )))) ;) (expression_statement "uVar7 = (uint)((int)ppppppcVar39[(int)param_5 * 2 + 1] << 8) >> 0x16;" (assignment_expression "uVar7 = (uint)((int)ppppppcVar39[(int)param_5 * 2 + 1] << 8) >> 0x16" identifier = (binary_expression "(uint)((int)ppppppcVar39[(int)param_5 * 2 + 1] << 8) >> 0x16" (call_expression "(uint)((int)ppppppcVar39[(int)param_5 * 2 + 1] << 8)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)ppppppcVar39[(int)param_5 * 2 + 1] << 8)" ( (binary_expression "(int)ppppppcVar39[(int)param_5 * 2 + 1] << 8" (cast_expression "(int)ppppppcVar39[(int)param_5 * 2 + 1]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "ppppppcVar39[(int)param_5 * 2 + 1]" identifier [ (binary_expression "(int)param_5 * 2 + 1" (binary_expression "(int)param_5 * 2" (cast_expression "(int)param_5" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal) ])) << number_literal) ))) >> number_literal)) ;) (if_statement "if ((uVar7 & 4) == 0) {\n                              uVar27 = uVar19 & 1;\n                              if ((uVar7 & 8) != 0) goto joined_r0x00054f40;\n                            }\n                            else {\n                              uVar27 = uVar7 & 8;\n                              if ((uVar19 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                              if (uVar27 != 0) goto LAB_000550a4;\n                            }" if (parenthesized_expression "((uVar7 & 4) == 0)" ( (binary_expression "(uVar7 & 4) == 0" (parenthesized_expression "(uVar7 & 4)" ( (binary_expression "uVar7 & 4" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n                              uVar27 = uVar19 & 1;\n                              if ((uVar7 & 8) != 0) goto joined_r0x00054f40;\n                            }" { (expression_statement "uVar27 = uVar19 & 1;" (assignment_expression "uVar27 = uVar19 & 1" identifier = (binary_expression "uVar19 & 1" identifier & number_literal)) ;) (if_statement "if ((uVar7 & 8) != 0) goto joined_r0x00054f40;" if (parenthesized_expression "((uVar7 & 8) != 0)" ( (binary_expression "(uVar7 & 8) != 0" (parenthesized_expression "(uVar7 & 8)" ( (binary_expression "uVar7 & 8" identifier & number_literal) )) != number_literal) )) (goto_statement "goto joined_r0x00054f40;" goto statement_identifier ;)) }) (else_clause "else {\n                              uVar27 = uVar7 & 8;\n                              if ((uVar19 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                              if (uVar27 != 0) goto LAB_000550a4;\n                            }" else (compound_statement "{\n                              uVar27 = uVar7 & 8;\n                              if ((uVar19 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                              if (uVar27 != 0) goto LAB_000550a4;\n                            }" { (expression_statement "uVar27 = uVar7 & 8;" (assignment_expression "uVar27 = uVar7 & 8" identifier = (binary_expression "uVar7 & 8" identifier & number_literal)) ;) (if_statement "if ((uVar19 & 1) == 0) goto LAB_000550a4;" 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_000550a4;" goto statement_identifier ;)) (labeled_statement "joined_r0x00054f40:\n                              if (uVar27 != 0) goto LAB_000550a4;" statement_identifier : (if_statement "if (uVar27 != 0) goto LAB_000550a4;" if (parenthesized_expression "(uVar27 != 0)" ( (binary_expression "uVar27 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000550a4;" goto statement_identifier ;))) }))) (if_statement "if ((((uVar7 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                               (((uVar7 & 0x80) != 0 &&\n                                (pppppppcVar33 = local_8c, (uVar19 & 8) == 0)))) goto LAB_000550a4;" if (parenthesized_expression "((((uVar7 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                               (((uVar7 & 0x80) != 0 &&\n                                (pppppppcVar33 = local_8c, (uVar19 & 8) == 0))))" ( (binary_expression "(((uVar7 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                               (((uVar7 & 0x80) != 0 &&\n                                (pppppppcVar33 = local_8c, (uVar19 & 8) == 0)))" (parenthesized_expression "(((uVar7 & 0x20) != 0) && ((uVar19 & 2) == 0))" ( (binary_expression "((uVar7 & 0x20) != 0) && ((uVar19 & 2) == 0)" (parenthesized_expression "((uVar7 & 0x20) != 0)" ( (binary_expression "(uVar7 & 0x20) != 0" (parenthesized_expression "(uVar7 & 0x20)" ( (binary_expression "uVar7 & 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 "(((uVar7 & 0x80) != 0 &&\n                                (pppppppcVar33 = local_8c, (uVar19 & 8) == 0)))" ( (parenthesized_expression "((uVar7 & 0x80) != 0 &&\n                                (pppppppcVar33 = local_8c, (uVar19 & 8) == 0))" ( (binary_expression "(uVar7 & 0x80) != 0 &&\n                                (pppppppcVar33 = local_8c, (uVar19 & 8) == 0)" (binary_expression "(uVar7 & 0x80) != 0" (parenthesized_expression "(uVar7 & 0x80)" ( (binary_expression "uVar7 & 0x80" identifier & number_literal) )) != number_literal) && (parenthesized_expression "(pppppppcVar33 = local_8c, (uVar19 & 8) == 0)" ( (comma_expression "pppppppcVar33 = local_8c, (uVar19 & 8) == 0" (assignment_expression "pppppppcVar33 = local_8c" identifier = identifier) , (binary_expression "(uVar19 & 8) == 0" (parenthesized_expression "(uVar19 & 8)" ( (binary_expression "uVar19 & 8" identifier & number_literal) )) == number_literal)) ))) )) ))) )) (goto_statement "goto LAB_000550a4;" goto statement_identifier ;)) })) (expression_statement "pppppppcVar30 = &local_b4;" (assignment_expression "pppppppcVar30 = &local_b4" identifier = (pointer_expression "&local_b4" & identifier)) ;) (expression_statement "pppppppcVar29 = param_5;" (assignment_expression "pppppppcVar29 = param_5" identifier = identifier) ;) (expression_statement "pppppppcVar33 = local_8c;" (assignment_expression "pppppppcVar33 = local_8c" identifier = identifier) ;) (expression_statement "iVar18 = (*pcVar10)(pppppppcVar42);" (assignment_expression "iVar18 = (*pcVar10)(pppppppcVar42)" identifier = (call_expression "(*pcVar10)(pppppppcVar42)" (parenthesized_expression "(*pcVar10)" ( (pointer_expression "*pcVar10" * identifier) )) (argument_list "(pppppppcVar42)" ( identifier )))) ;) (if_statement "if (iVar18 != 0) {\n                            pppppppcVar14 = (code *******)((int)local_8c + iVar18);\n                            if (iVar18 <= local_3c) {\n                              iVar18 = local_3c;\n                            }\n                            pppppppcVar29 = pppppppcVar14;\n                            local_3c = iVar18;\n                            local_d4 = (code *******)(*pcVar11)(&local_b4);\n                            pppppppcVar15 = local_d4;\n                            if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                            pppppppcVar30 =\n                                 (code *******)\n                                 (pppppppcVar42[6] + (int)pppppppcVar42[3][(int)param_5] * 3);\n                            unaff_s4 = (code *******)((int)pppppppcVar14 * 4);\n                            param_5 = local_50 + (int)pppppppcVar14;\n                            if (*param_5 == (code ******)0x0) {\n                              local_d0 = (code *******)*pppppppcVar30;\n                              local_cc = (code *******)pppppppcVar30[1];\n                              local_c8 = (code *******)pppppppcVar30[2];\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *param_5 = ppppppcVar39;\n                            }\n                            else {\n                              pppppppcVar29 = (code *******)(*param_5)[10];\n                              local_d4 = (code *******)FUN_000484bc(&local_d0);\n                              pppppppcVar15 = local_d4;\n                              if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar15 = local_50 + (int)pppppppcVar14;\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *pppppppcVar15 = ppppppcVar39;\n                              (*(code *)PTR_free_00079c24)(local_c8);\n                            }\n                            unaff_s4 = local_50 + (int)pppppppcVar14;\n                            if ((*unaff_s4 == (code ******)0x0) &&\n                               (pppppppcVar15 = local_d4, local_d4 != (code *******)0x0))\n                            goto LAB_00055e44;\n                          }" if (parenthesized_expression "(iVar18 != 0)" ( (binary_expression "iVar18 != 0" identifier != number_literal) )) (compound_statement "{\n                            pppppppcVar14 = (code *******)((int)local_8c + iVar18);\n                            if (iVar18 <= local_3c) {\n                              iVar18 = local_3c;\n                            }\n                            pppppppcVar29 = pppppppcVar14;\n                            local_3c = iVar18;\n                            local_d4 = (code *******)(*pcVar11)(&local_b4);\n                            pppppppcVar15 = local_d4;\n                            if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                            pppppppcVar30 =\n                                 (code *******)\n                                 (pppppppcVar42[6] + (int)pppppppcVar42[3][(int)param_5] * 3);\n                            unaff_s4 = (code *******)((int)pppppppcVar14 * 4);\n                            param_5 = local_50 + (int)pppppppcVar14;\n                            if (*param_5 == (code ******)0x0) {\n                              local_d0 = (code *******)*pppppppcVar30;\n                              local_cc = (code *******)pppppppcVar30[1];\n                              local_c8 = (code *******)pppppppcVar30[2];\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *param_5 = ppppppcVar39;\n                            }\n                            else {\n                              pppppppcVar29 = (code *******)(*param_5)[10];\n                              local_d4 = (code *******)FUN_000484bc(&local_d0);\n                              pppppppcVar15 = local_d4;\n                              if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar15 = local_50 + (int)pppppppcVar14;\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *pppppppcVar15 = ppppppcVar39;\n                              (*(code *)PTR_free_00079c24)(local_c8);\n                            }\n                            unaff_s4 = local_50 + (int)pppppppcVar14;\n                            if ((*unaff_s4 == (code ******)0x0) &&\n                               (pppppppcVar15 = local_d4, local_d4 != (code *******)0x0))\n                            goto LAB_00055e44;\n                          }" { (expression_statement "pppppppcVar14 = (code *******)((int)local_8c + iVar18);" (assignment_expression "pppppppcVar14 = (code *******)((int)local_8c + iVar18)" identifier = (cast_expression "(code *******)((int)local_8c + iVar18)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)local_8c + iVar18)" ( (binary_expression "(int)local_8c + iVar18" (cast_expression "(int)local_8c" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (if_statement "if (iVar18 <= local_3c) {\n                              iVar18 = local_3c;\n                            }" if (parenthesized_expression "(iVar18 <= local_3c)" ( (binary_expression "iVar18 <= local_3c" identifier <= identifier) )) (compound_statement "{\n                              iVar18 = local_3c;\n                            }" { (expression_statement "iVar18 = local_3c;" (assignment_expression "iVar18 = local_3c" identifier = identifier) ;) })) (expression_statement "pppppppcVar29 = pppppppcVar14;" (assignment_expression "pppppppcVar29 = pppppppcVar14" identifier = identifier) ;) (expression_statement "local_3c = iVar18;" (assignment_expression "local_3c = iVar18" identifier = identifier) ;) (expression_statement "local_d4 = (code *******)(*pcVar11)(&local_b4);" (assignment_expression "local_d4 = (code *******)(*pcVar11)(&local_b4)" identifier = (cast_expression "(code *******)(*pcVar11)(&local_b4)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "(*pcVar11)(&local_b4)" (parenthesized_expression "(*pcVar11)" ( (pointer_expression "*pcVar11" * identifier) )) (argument_list "(&local_b4)" ( (pointer_expression "&local_b4" & identifier) ))))) ;) (expression_statement "pppppppcVar15 = local_d4;" (assignment_expression "pppppppcVar15 = local_d4" identifier = identifier) ;) (if_statement "if (local_d4 != (code *******)0x0) goto LAB_00055e44;" if (parenthesized_expression "(local_d4 != (code *******)0x0)" ( (binary_expression "local_d4 != (code *******)0x0" identifier != (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (goto_statement "goto LAB_00055e44;" goto statement_identifier ;)) (expression_statement "pppppppcVar30 =\n                                 (code *******)\n                                 (pppppppcVar42[6] + (int)pppppppcVar42[3][(int)param_5] * 3);" (assignment_expression "pppppppcVar30 =\n                                 (code *******)\n                                 (pppppppcVar42[6] + (int)pppppppcVar42[3][(int)param_5] * 3)" identifier = (cast_expression "(code *******)\n                                 (pppppppcVar42[6] + (int)pppppppcVar42[3][(int)param_5] * 3)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(pppppppcVar42[6] + (int)pppppppcVar42[3][(int)param_5] * 3)" ( (binary_expression "pppppppcVar42[6] + (int)pppppppcVar42[3][(int)param_5] * 3" (subscript_expression "pppppppcVar42[6]" identifier [ number_literal ]) + (binary_expression "(int)pppppppcVar42[3][(int)param_5] * 3" (cast_expression "(int)pppppppcVar42[3][(int)param_5]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "pppppppcVar42[3][(int)param_5]" (subscript_expression "pppppppcVar42[3]" identifier [ number_literal ]) [ (cast_expression "(int)param_5" ( (type_descriptor "int" primitive_type) ) identifier) ])) * number_literal)) )))) ;) (expression_statement "unaff_s4 = (code *******)((int)pppppppcVar14 * 4);" (assignment_expression "unaff_s4 = (code *******)((int)pppppppcVar14 * 4)" identifier = (cast_expression "(code *******)((int)pppppppcVar14 * 4)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)pppppppcVar14 * 4)" ( (binary_expression "(int)pppppppcVar14 * 4" (cast_expression "(int)pppppppcVar14" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) )))) ;) (expression_statement "param_5 = local_50 + (int)pppppppcVar14;" (assignment_expression "param_5 = local_50 + (int)pppppppcVar14" identifier = (binary_expression "local_50 + (int)pppppppcVar14" identifier + (cast_expression "(int)pppppppcVar14" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (*param_5 == (code ******)0x0) {\n                              local_d0 = (code *******)*pppppppcVar30;\n                              local_cc = (code *******)pppppppcVar30[1];\n                              local_c8 = (code *******)pppppppcVar30[2];\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *param_5 = ppppppcVar39;\n                            }\n                            else {\n                              pppppppcVar29 = (code *******)(*param_5)[10];\n                              local_d4 = (code *******)FUN_000484bc(&local_d0);\n                              pppppppcVar15 = local_d4;\n                              if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar15 = local_50 + (int)pppppppcVar14;\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *pppppppcVar15 = ppppppcVar39;\n                              (*(code *)PTR_free_00079c24)(local_c8);\n                            }" if (parenthesized_expression "(*param_5 == (code ******)0x0)" ( (binary_expression "*param_5 == (code ******)0x0" (pointer_expression "*param_5" * identifier) == (cast_expression "(code ******)0x0" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (compound_statement "{\n                              local_d0 = (code *******)*pppppppcVar30;\n                              local_cc = (code *******)pppppppcVar30[1];\n                              local_c8 = (code *******)pppppppcVar30[2];\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *param_5 = ppppppcVar39;\n                            }" { (expression_statement "local_d0 = (code *******)*pppppppcVar30;" (assignment_expression "local_d0 = (code *******)*pppppppcVar30" identifier = (cast_expression "(code *******)*pppppppcVar30" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "*pppppppcVar30" * identifier))) ;) (expression_statement "local_cc = (code *******)pppppppcVar30[1];" (assignment_expression "local_cc = (code *******)pppppppcVar30[1]" identifier = (cast_expression "(code *******)pppppppcVar30[1]" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (subscript_expression "pppppppcVar30[1]" identifier [ number_literal ]))) ;) (expression_statement "local_c8 = (code *******)pppppppcVar30[2];" (assignment_expression "local_c8 = (code *******)pppppppcVar30[2]" identifier = (cast_expression "(code *******)pppppppcVar30[2]" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (subscript_expression "pppppppcVar30[2]" identifier [ number_literal ]))) ;) (expression_statement "pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);" (assignment_expression "pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c)" identifier = (cast_expression "(code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "(*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c)" (parenthesized_expression "(*pcVar12)" ( (pointer_expression "*pcVar12" * identifier) )) (argument_list "(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c)" ( (pointer_expression "&local_b4" & identifier) , (cast_expression "(code *)((int)pppppppcVar14 + -1)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppppppcVar14 + -1)" ( (binary_expression "(int)pppppppcVar14 + -1" (cast_expression "(int)pppppppcVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) , identifier ))))) ;) (expression_statement "pppppppcVar30 = (code *******)&local_d0;" (assignment_expression "pppppppcVar30 = (code *******)&local_d0" identifier = (cast_expression "(code *******)&local_d0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "&local_d0" & identifier))) ;) (expression_statement "pppppppcVar29 = pppppppcVar42;" (assignment_expression "pppppppcVar29 = pppppppcVar42" identifier = identifier) ;) (expression_statement "ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);" (assignment_expression "ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4)" identifier = (cast_expression "(code ******)FUN_0004ae34(&local_d4)" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (call_expression "FUN_0004ae34(&local_d4)" identifier (argument_list "(&local_d4)" ( (pointer_expression "&local_d4" & identifier) ))))) ;) (expression_statement "*param_5 = ppppppcVar39;" (assignment_expression "*param_5 = ppppppcVar39" (pointer_expression "*param_5" * identifier) = identifier) ;) }) (else_clause "else {\n                              pppppppcVar29 = (code *******)(*param_5)[10];\n                              local_d4 = (code *******)FUN_000484bc(&local_d0);\n                              pppppppcVar15 = local_d4;\n                              if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar15 = local_50 + (int)pppppppcVar14;\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *pppppppcVar15 = ppppppcVar39;\n                              (*(code *)PTR_free_00079c24)(local_c8);\n                            }" else (compound_statement "{\n                              pppppppcVar29 = (code *******)(*param_5)[10];\n                              local_d4 = (code *******)FUN_000484bc(&local_d0);\n                              pppppppcVar15 = local_d4;\n                              if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar15 = local_50 + (int)pppppppcVar14;\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *pppppppcVar15 = ppppppcVar39;\n                              (*(code *)PTR_free_00079c24)(local_c8);\n                            }" { (expression_statement "pppppppcVar29 = (code *******)(*param_5)[10];" (assignment_expression "pppppppcVar29 = (code *******)(*param_5)[10]" identifier = (cast_expression "(code *******)(*param_5)[10]" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (subscript_expression "(*param_5)[10]" (parenthesized_expression "(*param_5)" ( (pointer_expression "*param_5" * identifier) )) [ number_literal ]))) ;) (expression_statement "local_d4 = (code *******)FUN_000484bc(&local_d0);" (assignment_expression "local_d4 = (code *******)FUN_000484bc(&local_d0)" identifier = (cast_expression "(code *******)FUN_000484bc(&local_d0)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "FUN_000484bc(&local_d0)" identifier (argument_list "(&local_d0)" ( (pointer_expression "&local_d0" & identifier) ))))) ;) (expression_statement "pppppppcVar15 = local_d4;" (assignment_expression "pppppppcVar15 = local_d4" identifier = identifier) ;) (if_statement "if (local_d4 != (code *******)0x0) goto LAB_00055e44;" if (parenthesized_expression "(local_d4 != (code *******)0x0)" ( (binary_expression "local_d4 != (code *******)0x0" identifier != (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (goto_statement "goto LAB_00055e44;" goto statement_identifier ;)) (expression_statement "pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);" (assignment_expression "pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c)" identifier = (cast_expression "(code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "(*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c)" (parenthesized_expression "(*pcVar12)" ( (pointer_expression "*pcVar12" * identifier) )) (argument_list "(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c)" ( (pointer_expression "&local_b4" & identifier) , (cast_expression "(code *)((int)pppppppcVar14 + -1)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppppppcVar14 + -1)" ( (binary_expression "(int)pppppppcVar14 + -1" (cast_expression "(int)pppppppcVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) , identifier ))))) ;) (expression_statement "pppppppcVar15 = local_50 + (int)pppppppcVar14;" (assignment_expression "pppppppcVar15 = local_50 + (int)pppppppcVar14" identifier = (binary_expression "local_50 + (int)pppppppcVar14" identifier + (cast_expression "(int)pppppppcVar14" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "pppppppcVar30 = (code *******)&local_d0;" (assignment_expression "pppppppcVar30 = (code *******)&local_d0" identifier = (cast_expression "(code *******)&local_d0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "&local_d0" & identifier))) ;) (expression_statement "pppppppcVar29 = pppppppcVar42;" (assignment_expression "pppppppcVar29 = pppppppcVar42" identifier = identifier) ;) (expression_statement "ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);" (assignment_expression "ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4)" identifier = (cast_expression "(code ******)FUN_0004ae34(&local_d4)" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (call_expression "FUN_0004ae34(&local_d4)" identifier (argument_list "(&local_d4)" ( (pointer_expression "&local_d4" & identifier) ))))) ;) (expression_statement "*pppppppcVar15 = ppppppcVar39;" (assignment_expression "*pppppppcVar15 = ppppppcVar39" (pointer_expression "*pppppppcVar15" * identifier) = identifier) ;) (expression_statement "(*(code *)PTR_free_00079c24)(local_c8);" (call_expression "(*(code *)PTR_free_00079c24)(local_c8)" (parenthesized_expression "(*(code *)PTR_free_00079c24)" ( (pointer_expression "*(code *)PTR_free_00079c24" * (cast_expression "(code *)PTR_free_00079c24" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_c8)" ( identifier ))) ;) }))) (expression_statement "unaff_s4 = local_50 + (int)pppppppcVar14;" (assignment_expression "unaff_s4 = local_50 + (int)pppppppcVar14" identifier = (binary_expression "local_50 + (int)pppppppcVar14" identifier + (cast_expression "(int)pppppppcVar14" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if ((*unaff_s4 == (code ******)0x0) &&\n                               (pppppppcVar15 = local_d4, local_d4 != (code *******)0x0))\n                            goto LAB_00055e44;" if (parenthesized_expression "((*unaff_s4 == (code ******)0x0) &&\n                               (pppppppcVar15 = local_d4, local_d4 != (code *******)0x0))" ( (binary_expression "(*unaff_s4 == (code ******)0x0) &&\n                               (pppppppcVar15 = local_d4, local_d4 != (code *******)0x0)" (parenthesized_expression "(*unaff_s4 == (code ******)0x0)" ( (binary_expression "*unaff_s4 == (code ******)0x0" (pointer_expression "*unaff_s4" * identifier) == (cast_expression "(code ******)0x0" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) && (parenthesized_expression "(pppppppcVar15 = local_d4, local_d4 != (code *******)0x0)" ( (comma_expression "pppppppcVar15 = local_d4, local_d4 != (code *******)0x0" (assignment_expression "pppppppcVar15 = local_d4" identifier = identifier) , (binary_expression "local_d4 != (code *******)0x0" identifier != (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal))) ))) )) (goto_statement "goto LAB_00055e44;" goto statement_identifier ;)) })) })) (labeled_statement "LAB_000550a4:\n                        param_6 = (code *******)((int)param_6 + 1);" statement_identifier : (expression_statement "param_6 = (code *******)((int)param_6 + 1);" (assignment_expression "param_6 = (code *******)((int)param_6 + 1)" identifier = (cast_expression "(code *******)((int)param_6 + 1)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)param_6 + 1)" ( (binary_expression "(int)param_6 + 1" (cast_expression "(int)param_6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;)) }) while (parenthesized_expression "((int)param_6 < (int)unaff_s7[2])" ( (binary_expression "(int)param_6 < (int)unaff_s7[2]" (cast_expression "(int)param_6" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)unaff_s7[2]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "unaff_s7[2]" identifier [ number_literal ]))) )) ;) })) (expression_statement "local_d8 = (code *******)0x0;" (assignment_expression "local_d8 = (code *******)0x0" identifier = (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) })) (expression_statement "uVar7 = (uint)(byte)*(code *)((int)local_8c + (int)local_b0);" (assignment_expression "uVar7 = (uint)(byte)*(code *)((int)local_8c + (int)local_b0)" identifier = (binary_expression "(uint)(byte)*(code *)((int)local_8c + (int)local_b0)" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(byte)" ( identifier ))) * (cast_expression "(code *)((int)local_8c + (int)local_b0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_8c + (int)local_b0)" ( (binary_expression "(int)local_8c + (int)local_b0" (cast_expression "(int)local_8c" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)local_b0" ( (type_descriptor "int" primitive_type) ) identifier)) ))))) ;) (expression_statement "local_8c = (code *******)((int)local_8c + 1);" (assignment_expression "local_8c = (code *******)((int)local_8c + 1)" identifier = (cast_expression "(code *******)((int)local_8c + 1)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)local_8c + 1)" ( (binary_expression "(int)local_8c + 1" (cast_expression "(int)local_8c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (do_statement "do {\n                    if (unaff_s7[0xb] != (code ******)0x0) {\n                      pppppppcVar30 = (code *******)unaff_s7[0xb][uVar7];\nLAB_000553a0:\n                      pppppppcVar14 = pppppppcVar30;\n                      if (local_50 != (code *******)0x0) goto LAB_000553ac;\n                      goto LAB_000553cc;\n                    }\n                    pppppppcVar31 = (code *******)unaff_s7[0xc];\n                    if (pppppppcVar31 != (code *******)0x0) {\n                      pppppppcVar29 = (code *******)((int)local_8c + -1);\n                      uVar19 = FUN_00049110(&local_b4);\n                      if ((uVar19 & 1) == 0) {\n                        pppppppcVar30 = (code *******)pppppppcVar31[uVar7];\n                      }\n                      else {\n                        pppppppcVar31 = pppppppcVar31 + uVar7 + 0x100;\n                        pppppppcVar30 = (code *******)*pppppppcVar31;\n                      }\n                      goto LAB_000553a0;\n                    }\n                    pppppppcVar29 = unaff_s7;\n                    pppppppcVar30 = local_5c;\n                    iVar18 = (*pcVar9)(local_60);\n                  } while (iVar18 != 0);" do (compound_statement "{\n                    if (unaff_s7[0xb] != (code ******)0x0) {\n                      pppppppcVar30 = (code *******)unaff_s7[0xb][uVar7];\nLAB_000553a0:\n                      pppppppcVar14 = pppppppcVar30;\n                      if (local_50 != (code *******)0x0) goto LAB_000553ac;\n                      goto LAB_000553cc;\n                    }\n                    pppppppcVar31 = (code *******)unaff_s7[0xc];\n                    if (pppppppcVar31 != (code *******)0x0) {\n                      pppppppcVar29 = (code *******)((int)local_8c + -1);\n                      uVar19 = FUN_00049110(&local_b4);\n                      if ((uVar19 & 1) == 0) {\n                        pppppppcVar30 = (code *******)pppppppcVar31[uVar7];\n                      }\n                      else {\n                        pppppppcVar31 = pppppppcVar31 + uVar7 + 0x100;\n                        pppppppcVar30 = (code *******)*pppppppcVar31;\n                      }\n                      goto LAB_000553a0;\n                    }\n                    pppppppcVar29 = unaff_s7;\n                    pppppppcVar30 = local_5c;\n                    iVar18 = (*pcVar9)(local_60);\n                  }" { (if_statement "if (unaff_s7[0xb] != (code ******)0x0) {\n                      pppppppcVar30 = (code *******)unaff_s7[0xb][uVar7];\nLAB_000553a0:\n                      pppppppcVar14 = pppppppcVar30;\n                      if (local_50 != (code *******)0x0) goto LAB_000553ac;\n                      goto LAB_000553cc;\n                    }" if (parenthesized_expression "(unaff_s7[0xb] != (code ******)0x0)" ( (binary_expression "unaff_s7[0xb] != (code ******)0x0" (subscript_expression "unaff_s7[0xb]" identifier [ number_literal ]) != (cast_expression "(code ******)0x0" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (compound_statement "{\n                      pppppppcVar30 = (code *******)unaff_s7[0xb][uVar7];\nLAB_000553a0:\n                      pppppppcVar14 = pppppppcVar30;\n                      if (local_50 != (code *******)0x0) goto LAB_000553ac;\n                      goto LAB_000553cc;\n                    }" { (expression_statement "pppppppcVar30 = (code *******)unaff_s7[0xb][uVar7];" (assignment_expression "pppppppcVar30 = (code *******)unaff_s7[0xb][uVar7]" identifier = (cast_expression "(code *******)unaff_s7[0xb][uVar7]" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (subscript_expression "unaff_s7[0xb][uVar7]" (subscript_expression "unaff_s7[0xb]" identifier [ number_literal ]) [ identifier ]))) ;) (labeled_statement "LAB_000553a0:\n                      pppppppcVar14 = pppppppcVar30;" statement_identifier : (expression_statement "pppppppcVar14 = pppppppcVar30;" (assignment_expression "pppppppcVar14 = pppppppcVar30" identifier = identifier) ;)) (if_statement "if (local_50 != (code *******)0x0) goto LAB_000553ac;" if (parenthesized_expression "(local_50 != (code *******)0x0)" ( (binary_expression "local_50 != (code *******)0x0" identifier != (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (goto_statement "goto LAB_000553ac;" goto statement_identifier ;)) (goto_statement "goto LAB_000553cc;" goto statement_identifier ;) })) (expression_statement "pppppppcVar31 = (code *******)unaff_s7[0xc];" (assignment_expression "pppppppcVar31 = (code *******)unaff_s7[0xc]" identifier = (cast_expression "(code *******)unaff_s7[0xc]" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (subscript_expression "unaff_s7[0xc]" identifier [ number_literal ]))) ;) (if_statement "if (pppppppcVar31 != (code *******)0x0) {\n                      pppppppcVar29 = (code *******)((int)local_8c + -1);\n                      uVar19 = FUN_00049110(&local_b4);\n                      if ((uVar19 & 1) == 0) {\n                        pppppppcVar30 = (code *******)pppppppcVar31[uVar7];\n                      }\n                      else {\n                        pppppppcVar31 = pppppppcVar31 + uVar7 + 0x100;\n                        pppppppcVar30 = (code *******)*pppppppcVar31;\n                      }\n                      goto LAB_000553a0;\n                    }" if (parenthesized_expression "(pppppppcVar31 != (code *******)0x0)" ( (binary_expression "pppppppcVar31 != (code *******)0x0" identifier != (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\n                      pppppppcVar29 = (code *******)((int)local_8c + -1);\n                      uVar19 = FUN_00049110(&local_b4);\n                      if ((uVar19 & 1) == 0) {\n                        pppppppcVar30 = (code *******)pppppppcVar31[uVar7];\n                      }\n                      else {\n                        pppppppcVar31 = pppppppcVar31 + uVar7 + 0x100;\n                        pppppppcVar30 = (code *******)*pppppppcVar31;\n                      }\n                      goto LAB_000553a0;\n                    }" { (expression_statement "pppppppcVar29 = (code *******)((int)local_8c + -1);" (assignment_expression "pppppppcVar29 = (code *******)((int)local_8c + -1)" identifier = (cast_expression "(code *******)((int)local_8c + -1)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)local_8c + -1)" ( (binary_expression "(int)local_8c + -1" (cast_expression "(int)local_8c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "uVar19 = FUN_00049110(&local_b4);" (assignment_expression "uVar19 = FUN_00049110(&local_b4)" identifier = (call_expression "FUN_00049110(&local_b4)" identifier (argument_list "(&local_b4)" ( (pointer_expression "&local_b4" & identifier) )))) ;) (if_statement "if ((uVar19 & 1) == 0) {\n                        pppppppcVar30 = (code *******)pppppppcVar31[uVar7];\n                      }\n                      else {\n                        pppppppcVar31 = pppppppcVar31 + uVar7 + 0x100;\n                        pppppppcVar30 = (code *******)*pppppppcVar31;\n                      }" if (parenthesized_expression "((uVar19 & 1) == 0)" ( (binary_expression "(uVar19 & 1) == 0" (parenthesized_expression "(uVar19 & 1)" ( (binary_expression "uVar19 & 1" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n                        pppppppcVar30 = (code *******)pppppppcVar31[uVar7];\n                      }" { (expression_statement "pppppppcVar30 = (code *******)pppppppcVar31[uVar7];" (assignment_expression "pppppppcVar30 = (code *******)pppppppcVar31[uVar7]" identifier = (cast_expression "(code *******)pppppppcVar31[uVar7]" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (subscript_expression "pppppppcVar31[uVar7]" identifier [ identifier ]))) ;) }) (else_clause "else {\n                        pppppppcVar31 = pppppppcVar31 + uVar7 + 0x100;\n                        pppppppcVar30 = (code *******)*pppppppcVar31;\n                      }" else (compound_statement "{\n                        pppppppcVar31 = pppppppcVar31 + uVar7 + 0x100;\n                        pppppppcVar30 = (code *******)*pppppppcVar31;\n                      }" { (expression_statement "pppppppcVar31 = pppppppcVar31 + uVar7 + 0x100;" (assignment_expression "pppppppcVar31 = pppppppcVar31 + uVar7 + 0x100" identifier = (binary_expression "pppppppcVar31 + uVar7 + 0x100" (binary_expression "pppppppcVar31 + uVar7" identifier + identifier) + number_literal)) ;) (expression_statement "pppppppcVar30 = (code *******)*pppppppcVar31;" (assignment_expression "pppppppcVar30 = (code *******)*pppppppcVar31" identifier = (cast_expression "(code *******)*pppppppcVar31" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "*pppppppcVar31" * identifier))) ;) }))) (goto_statement "goto LAB_000553a0;" goto statement_identifier ;) })) (expression_statement "pppppppcVar29 = unaff_s7;" (assignment_expression "pppppppcVar29 = unaff_s7" identifier = identifier) ;) (expression_statement "pppppppcVar30 = local_5c;" (assignment_expression "pppppppcVar30 = local_5c" identifier = identifier) ;) (expression_statement "iVar18 = (*pcVar9)(local_60);" (assignment_expression "iVar18 = (*pcVar9)(local_60)" identifier = (call_expression "(*pcVar9)(local_60)" (parenthesized_expression "(*pcVar9)" ( (pointer_expression "*pcVar9" * identifier) )) (argument_list "(local_60)" ( identifier )))) ;) }) while (parenthesized_expression "(iVar18 != 0)" ( (binary_expression "iVar18 != 0" identifier != number_literal) )) ;) (expression_statement "local_d8 = (code *******)0xc;" (assignment_expression "local_d8 = (code *******)0xc" identifier = (cast_expression "(code *******)0xc" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "pppppppcVar15 = local_d8;" (assignment_expression "pppppppcVar15 = local_d8" identifier = identifier) ;) (labeled_statement "LAB_00055e44:\n                  local_d8 = pppppppcVar15;" statement_identifier : (expression_statement "local_d8 = pppppppcVar15;" (assignment_expression "local_d8 = pppppppcVar15" identifier = identifier) ;)) (expression_statement "param_4 = (code *******)0x0;" (assignment_expression "param_4 = (code *******)0x0" identifier = (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (if_statement "if (local_50 == (code *******)0x0) {\n                    pppppppcVar14 = param_4;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    break;\n                  }" if (parenthesized_expression "(local_50 == (code *******)0x0)" ( (binary_expression "local_50 == (code *******)0x0" identifier == (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\n                    pppppppcVar14 = param_4;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    break;\n                  }" { (expression_statement "pppppppcVar14 = param_4;" (assignment_expression "pppppppcVar14 = param_4" identifier = identifier) ;) (if_statement "if (local_d8 != (code *******)0x0) goto LAB_00055914;" if (parenthesized_expression "(local_d8 != (code *******)0x0)" ( (binary_expression "local_d8 != (code *******)0x0" identifier != (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (goto_statement "goto LAB_00055914;" goto statement_identifier ;)) (break_statement "break;" break ;) })) (expression_statement "pppppppcVar30 = (code *******)0x0;" (assignment_expression "pppppppcVar30 = (code *******)0x0" identifier = (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (labeled_statement "LAB_000553ac:\n                  pppppppcVar29 = &local_b4;" statement_identifier : (expression_statement "pppppppcVar29 = &local_b4;" (assignment_expression "pppppppcVar29 = &local_b4" identifier = (pointer_expression "&local_b4" & identifier)) ;)) (expression_statement "pppppppcVar14 = (code *******)FUN_00053684(&local_d8);" (assignment_expression "pppppppcVar14 = (code *******)FUN_00053684(&local_d8)" identifier = (cast_expression "(code *******)FUN_00053684(&local_d8)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "FUN_00053684(&local_d8)" identifier (argument_list "(&local_d8)" ( (pointer_expression "&local_d8" & identifier) ))))) ;) (labeled_statement "LAB_000553cc:\n                  param_4 = pppppppcVar14;" statement_identifier : (expression_statement "param_4 = pppppppcVar14;" (assignment_expression "param_4 = pppppppcVar14" identifier = identifier) ;)) (if_statement "if (pppppppcVar14 == (code *******)0x0) {\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    if ((local_50 == (code *******)0x0) ||\n                       ((pppppppcVar28 != (code *******)0x0 && (pppppppcVar34 == (code *******)0x0))\n                       )) break;\n                    param_6 = &local_b4;\n                    param_5 = (code *******)&local_d8;\n                    pppppppcVar31 = (code *******)(PTR_DAT_000799a4 + 0x3684);\n                    do {\n                      pppppppcVar15 = local_50 + (int)local_8c;\n                      pppppppcVar42 = local_8c;\n                      do {\n                        pppppppcVar42 = (code *******)((int)pppppppcVar42 + 1);\n                        pppppppcVar29 = local_4c;\n                        param_4 = pppppppcVar14;\n                        if ((int)local_4c < (int)pppppppcVar42) goto LAB_00055da8;\n                        local_8c = (code *******)((int)local_8c + 1);\n                        pppppppcVar15 = pppppppcVar15 + 1;\n                      } while (*pppppppcVar15 == (code ******)0x0);\n                      pppppppcVar30 = (code *******)0x0;\n                      pppppppcVar29 = param_6;\n                      param_4 = (code *******)(*(code *)pppppppcVar31)(param_5);\n                      if (local_d8 != (code *******)0x0) {\n                        if (param_4 == (code *******)0x0) goto LAB_00055da8;\n                        break;\n                      }\n                      pppppppcVar29 = local_4c;\n                    } while (param_4 == (code *******)0x0);\n                  }" if (parenthesized_expression "(pppppppcVar14 == (code *******)0x0)" ( (binary_expression "pppppppcVar14 == (code *******)0x0" identifier == (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    if ((local_50 == (code *******)0x0) ||\n                       ((pppppppcVar28 != (code *******)0x0 && (pppppppcVar34 == (code *******)0x0))\n                       )) break;\n                    param_6 = &local_b4;\n                    param_5 = (code *******)&local_d8;\n                    pppppppcVar31 = (code *******)(PTR_DAT_000799a4 + 0x3684);\n                    do {\n                      pppppppcVar15 = local_50 + (int)local_8c;\n                      pppppppcVar42 = local_8c;\n                      do {\n                        pppppppcVar42 = (code *******)((int)pppppppcVar42 + 1);\n                        pppppppcVar29 = local_4c;\n                        param_4 = pppppppcVar14;\n                        if ((int)local_4c < (int)pppppppcVar42) goto LAB_00055da8;\n                        local_8c = (code *******)((int)local_8c + 1);\n                        pppppppcVar15 = pppppppcVar15 + 1;\n                      } while (*pppppppcVar15 == (code ******)0x0);\n                      pppppppcVar30 = (code *******)0x0;\n                      pppppppcVar29 = param_6;\n                      param_4 = (code *******)(*(code *)pppppppcVar31)(param_5);\n                      if (local_d8 != (code *******)0x0) {\n                        if (param_4 == (code *******)0x0) goto LAB_00055da8;\n                        break;\n                      }\n                      pppppppcVar29 = local_4c;\n                    } while (param_4 == (code *******)0x0);\n                  }" { (if_statement "if (local_d8 != (code *******)0x0) goto LAB_00055914;" if (parenthesized_expression "(local_d8 != (code *******)0x0)" ( (binary_expression "local_d8 != (code *******)0x0" identifier != (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (goto_statement "goto LAB_00055914;" goto statement_identifier ;)) (if_statement "if ((local_50 == (code *******)0x0) ||\n                       ((pppppppcVar28 != (code *******)0x0 && (pppppppcVar34 == (code *******)0x0))\n                       )) break;" if (parenthesized_expression "((local_50 == (code *******)0x0) ||\n                       ((pppppppcVar28 != (code *******)0x0 && (pppppppcVar34 == (code *******)0x0))\n                       ))" ( (binary_expression "(local_50 == (code *******)0x0) ||\n                       ((pppppppcVar28 != (code *******)0x0 && (pppppppcVar34 == (code *******)0x0))\n                       )" (parenthesized_expression "(local_50 == (code *******)0x0)" ( (binary_expression "local_50 == (code *******)0x0" identifier == (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) || (parenthesized_expression "((pppppppcVar28 != (code *******)0x0 && (pppppppcVar34 == (code *******)0x0))\n                       )" ( (parenthesized_expression "(pppppppcVar28 != (code *******)0x0 && (pppppppcVar34 == (code *******)0x0))" ( (binary_expression "pppppppcVar28 != (code *******)0x0 && (pppppppcVar34 == (code *******)0x0)" (binary_expression "pppppppcVar28 != (code *******)0x0" identifier != (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) && (parenthesized_expression "(pppppppcVar34 == (code *******)0x0)" ( (binary_expression "pppppppcVar34 == (code *******)0x0" identifier == (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ))) )) ))) )) (break_statement "break;" break ;)) (expression_statement "param_6 = &local_b4;" (assignment_expression "param_6 = &local_b4" identifier = (pointer_expression "&local_b4" & identifier)) ;) (expression_statement "param_5 = (code *******)&local_d8;" (assignment_expression "param_5 = (code *******)&local_d8" identifier = (cast_expression "(code *******)&local_d8" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "&local_d8" & identifier))) ;) (expression_statement "pppppppcVar31 = (code *******)(PTR_DAT_000799a4 + 0x3684);" (assignment_expression "pppppppcVar31 = (code *******)(PTR_DAT_000799a4 + 0x3684)" identifier = (cast_expression "(code *******)(PTR_DAT_000799a4 + 0x3684)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(PTR_DAT_000799a4 + 0x3684)" ( (binary_expression "PTR_DAT_000799a4 + 0x3684" identifier + number_literal) )))) ;) (do_statement "do {\n                      pppppppcVar15 = local_50 + (int)local_8c;\n                      pppppppcVar42 = local_8c;\n                      do {\n                        pppppppcVar42 = (code *******)((int)pppppppcVar42 + 1);\n                        pppppppcVar29 = local_4c;\n                        param_4 = pppppppcVar14;\n                        if ((int)local_4c < (int)pppppppcVar42) goto LAB_00055da8;\n                        local_8c = (code *******)((int)local_8c + 1);\n                        pppppppcVar15 = pppppppcVar15 + 1;\n                      } while (*pppppppcVar15 == (code ******)0x0);\n                      pppppppcVar30 = (code *******)0x0;\n                      pppppppcVar29 = param_6;\n                      param_4 = (code *******)(*(code *)pppppppcVar31)(param_5);\n                      if (local_d8 != (code *******)0x0) {\n                        if (param_4 == (code *******)0x0) goto LAB_00055da8;\n                        break;\n                      }\n                      pppppppcVar29 = local_4c;\n                    } while (param_4 == (code *******)0x0);" do (compound_statement "{\n                      pppppppcVar15 = local_50 + (int)local_8c;\n                      pppppppcVar42 = local_8c;\n                      do {\n                        pppppppcVar42 = (code *******)((int)pppppppcVar42 + 1);\n                        pppppppcVar29 = local_4c;\n                        param_4 = pppppppcVar14;\n                        if ((int)local_4c < (int)pppppppcVar42) goto LAB_00055da8;\n                        local_8c = (code *******)((int)local_8c + 1);\n                        pppppppcVar15 = pppppppcVar15 + 1;\n                      } while (*pppppppcVar15 == (code ******)0x0);\n                      pppppppcVar30 = (code *******)0x0;\n                      pppppppcVar29 = param_6;\n                      param_4 = (code *******)(*(code *)pppppppcVar31)(param_5);\n                      if (local_d8 != (code *******)0x0) {\n                        if (param_4 == (code *******)0x0) goto LAB_00055da8;\n                        break;\n                      }\n                      pppppppcVar29 = local_4c;\n                    }" { (expression_statement "pppppppcVar15 = local_50 + (int)local_8c;" (assignment_expression "pppppppcVar15 = local_50 + (int)local_8c" identifier = (binary_expression "local_50 + (int)local_8c" identifier + (cast_expression "(int)local_8c" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "pppppppcVar42 = local_8c;" (assignment_expression "pppppppcVar42 = local_8c" identifier = identifier) ;) (do_statement "do {\n                        pppppppcVar42 = (code *******)((int)pppppppcVar42 + 1);\n                        pppppppcVar29 = local_4c;\n                        param_4 = pppppppcVar14;\n                        if ((int)local_4c < (int)pppppppcVar42) goto LAB_00055da8;\n                        local_8c = (code *******)((int)local_8c + 1);\n                        pppppppcVar15 = pppppppcVar15 + 1;\n                      } while (*pppppppcVar15 == (code ******)0x0);" do (compound_statement "{\n                        pppppppcVar42 = (code *******)((int)pppppppcVar42 + 1);\n                        pppppppcVar29 = local_4c;\n                        param_4 = pppppppcVar14;\n                        if ((int)local_4c < (int)pppppppcVar42) goto LAB_00055da8;\n                        local_8c = (code *******)((int)local_8c + 1);\n                        pppppppcVar15 = pppppppcVar15 + 1;\n                      }" { (expression_statement "pppppppcVar42 = (code *******)((int)pppppppcVar42 + 1);" (assignment_expression "pppppppcVar42 = (code *******)((int)pppppppcVar42 + 1)" identifier = (cast_expression "(code *******)((int)pppppppcVar42 + 1)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)pppppppcVar42 + 1)" ( (binary_expression "(int)pppppppcVar42 + 1" (cast_expression "(int)pppppppcVar42" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "pppppppcVar29 = local_4c;" (assignment_expression "pppppppcVar29 = local_4c" identifier = identifier) ;) (expression_statement "param_4 = pppppppcVar14;" (assignment_expression "param_4 = pppppppcVar14" identifier = identifier) ;) (if_statement "if ((int)local_4c < (int)pppppppcVar42) goto LAB_00055da8;" if (parenthesized_expression "((int)local_4c < (int)pppppppcVar42)" ( (binary_expression "(int)local_4c < (int)pppppppcVar42" (cast_expression "(int)local_4c" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)pppppppcVar42" ( (type_descriptor "int" primitive_type) ) identifier)) )) (goto_statement "goto LAB_00055da8;" goto statement_identifier ;)) (expression_statement "local_8c = (code *******)((int)local_8c + 1);" (assignment_expression "local_8c = (code *******)((int)local_8c + 1)" identifier = (cast_expression "(code *******)((int)local_8c + 1)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)local_8c + 1)" ( (binary_expression "(int)local_8c + 1" (cast_expression "(int)local_8c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "pppppppcVar15 = pppppppcVar15 + 1;" (assignment_expression "pppppppcVar15 = pppppppcVar15 + 1" identifier = (binary_expression "pppppppcVar15 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(*pppppppcVar15 == (code ******)0x0)" ( (binary_expression "*pppppppcVar15 == (code ******)0x0" (pointer_expression "*pppppppcVar15" * identifier) == (cast_expression "(code ******)0x0" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) ;) (expression_statement "pppppppcVar30 = (code *******)0x0;" (assignment_expression "pppppppcVar30 = (code *******)0x0" identifier = (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "pppppppcVar29 = param_6;" (assignment_expression "pppppppcVar29 = param_6" identifier = identifier) ;) (expression_statement "param_4 = (code *******)(*(code *)pppppppcVar31)(param_5);" (assignment_expression "param_4 = (code *******)(*(code *)pppppppcVar31)(param_5)" identifier = (cast_expression "(code *******)(*(code *)pppppppcVar31)(param_5)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "(*(code *)pppppppcVar31)(param_5)" (parenthesized_expression "(*(code *)pppppppcVar31)" ( (pointer_expression "*(code *)pppppppcVar31" * (cast_expression "(code *)pppppppcVar31" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_5)" ( identifier ))))) ;) (if_statement "if (local_d8 != (code *******)0x0) {\n                        if (param_4 == (code *******)0x0) goto LAB_00055da8;\n                        break;\n                      }" if (parenthesized_expression "(local_d8 != (code *******)0x0)" ( (binary_expression "local_d8 != (code *******)0x0" identifier != (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\n                        if (param_4 == (code *******)0x0) goto LAB_00055da8;\n                        break;\n                      }" { (if_statement "if (param_4 == (code *******)0x0) goto LAB_00055da8;" if (parenthesized_expression "(param_4 == (code *******)0x0)" ( (binary_expression "param_4 == (code *******)0x0" identifier == (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (goto_statement "goto LAB_00055da8;" goto statement_identifier ;)) (break_statement "break;" break ;) })) (expression_statement "pppppppcVar29 = local_4c;" (assignment_expression "pppppppcVar29 = local_4c" identifier = identifier) ;) }) while (parenthesized_expression "(param_4 == (code *******)0x0)" ( (binary_expression "param_4 == (code *******)0x0" identifier == (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) ;) })) (expression_statement "pppppppcVar15 = (code *******)((uint)unaff_s7 ^ (uint)param_4);" (assignment_expression "pppppppcVar15 = (code *******)((uint)unaff_s7 ^ (uint)param_4)" identifier = (cast_expression "(code *******)((uint)unaff_s7 ^ (uint)param_4)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((uint)unaff_s7 ^ (uint)param_4)" ( (binary_expression "(uint)unaff_s7 ^ (uint)param_4" (cast_expression "(uint)unaff_s7" ( (type_descriptor "uint" type_identifier) ) identifier) ^ (cast_expression "(uint)param_4" ( (type_descriptor "uint" type_identifier) ) identifier)) )))) ;) (expression_statement "pppppppcVar42 = unaff_s7;" (assignment_expression "pppppppcVar42 = unaff_s7" identifier = identifier) ;) (expression_statement "pppppppcVar14 = local_138;" (assignment_expression "pppppppcVar14 = local_138" identifier = identifier) ;) (if_statement "if ((bVar1) &&\n                     (pppppppcVar42 = pppppppcVar15, pppppppcVar14 = unaff_s5,\n                     pppppppcVar15 != (code *******)0x0)) {\n                    bVar1 = false;\n                    pppppppcVar14 = local_138;\n                  }" if (parenthesized_expression "((bVar1) &&\n                     (pppppppcVar42 = pppppppcVar15, pppppppcVar14 = unaff_s5,\n                     pppppppcVar15 != (code *******)0x0))" ( (binary_expression "(bVar1) &&\n                     (pppppppcVar42 = pppppppcVar15, pppppppcVar14 = unaff_s5,\n                     pppppppcVar15 != (code *******)0x0)" (parenthesized_expression "(bVar1)" ( identifier )) && (parenthesized_expression "(pppppppcVar42 = pppppppcVar15, pppppppcVar14 = unaff_s5,\n                     pppppppcVar15 != (code *******)0x0)" ( (comma_expression "pppppppcVar42 = pppppppcVar15, pppppppcVar14 = unaff_s5,\n                     pppppppcVar15 != (code *******)0x0" (assignment_expression "pppppppcVar42 = pppppppcVar15" identifier = identifier) , (comma_expression "pppppppcVar14 = unaff_s5,\n                     pppppppcVar15 != (code *******)0x0" (assignment_expression "pppppppcVar14 = unaff_s5" identifier = identifier) , (binary_expression "pppppppcVar15 != (code *******)0x0" identifier != (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)))) ))) )) (compound_statement "{\n                    bVar1 = false;\n                    pppppppcVar14 = local_138;\n                  }" { (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" identifier = false) ;) (expression_statement "pppppppcVar14 = local_138;" (assignment_expression "pppppppcVar14 = local_138" identifier = identifier) ;) })) (expression_statement "local_138 = pppppppcVar14;" (assignment_expression "local_138 = pppppppcVar14" identifier = identifier) ;) (expression_statement "unaff_s7 = param_4;" (assignment_expression "unaff_s7 = param_4" identifier = identifier) ;) (if_statement "if ((((uint)param_4[0xd] & 0x8000000) != 0) &&\n                     ((((uint)param_4[0xd] & 0x1000000) == 0 ||\n                      (pppppppcVar29 = param_4, pppppppcVar30 = local_8c,\n                      iVar18 = FUN_00049440(&local_b4), iVar18 != 0)))) {\n                    unaff_s7 = pppppppcVar42;\n                    unaff_s8 = local_8c;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                    local_144 = (code *******)0x0;\n                    unaff_s7 = param_4;\n                  }" if (parenthesized_expression "((((uint)param_4[0xd] & 0x8000000) != 0) &&\n                     ((((uint)param_4[0xd] & 0x1000000) == 0 ||\n                      (pppppppcVar29 = param_4, pppppppcVar30 = local_8c,\n                      iVar18 = FUN_00049440(&local_b4), iVar18 != 0))))" ( (binary_expression "(((uint)param_4[0xd] & 0x8000000) != 0) &&\n                     ((((uint)param_4[0xd] & 0x1000000) == 0 ||\n                      (pppppppcVar29 = param_4, pppppppcVar30 = local_8c,\n                      iVar18 = FUN_00049440(&local_b4), iVar18 != 0)))" (parenthesized_expression "(((uint)param_4[0xd] & 0x8000000) != 0)" ( (binary_expression "((uint)param_4[0xd] & 0x8000000) != 0" (parenthesized_expression "((uint)param_4[0xd] & 0x8000000)" ( (binary_expression "(uint)param_4[0xd] & 0x8000000" (cast_expression "(uint)param_4[0xd]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_4[0xd]" identifier [ number_literal ])) & number_literal) )) != number_literal) )) && (parenthesized_expression "((((uint)param_4[0xd] & 0x1000000) == 0 ||\n                      (pppppppcVar29 = param_4, pppppppcVar30 = local_8c,\n                      iVar18 = FUN_00049440(&local_b4), iVar18 != 0)))" ( (parenthesized_expression "(((uint)param_4[0xd] & 0x1000000) == 0 ||\n                      (pppppppcVar29 = param_4, pppppppcVar30 = local_8c,\n                      iVar18 = FUN_00049440(&local_b4), iVar18 != 0))" ( (binary_expression "((uint)param_4[0xd] & 0x1000000) == 0 ||\n                      (pppppppcVar29 = param_4, pppppppcVar30 = local_8c,\n                      iVar18 = FUN_00049440(&local_b4), iVar18 != 0)" (binary_expression "((uint)param_4[0xd] & 0x1000000) == 0" (parenthesized_expression "((uint)param_4[0xd] & 0x1000000)" ( (binary_expression "(uint)param_4[0xd] & 0x1000000" (cast_expression "(uint)param_4[0xd]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_4[0xd]" identifier [ number_literal ])) & number_literal) )) == number_literal) || (parenthesized_expression "(pppppppcVar29 = param_4, pppppppcVar30 = local_8c,\n                      iVar18 = FUN_00049440(&local_b4), iVar18 != 0)" ( (comma_expression "pppppppcVar29 = param_4, pppppppcVar30 = local_8c,\n                      iVar18 = FUN_00049440(&local_b4), iVar18 != 0" (assignment_expression "pppppppcVar29 = param_4" identifier = identifier) , (comma_expression "pppppppcVar30 = local_8c,\n                      iVar18 = FUN_00049440(&local_b4), iVar18 != 0" (assignment_expression "pppppppcVar30 = local_8c" identifier = identifier) , (comma_expression "iVar18 = FUN_00049440(&local_b4), iVar18 != 0" (assignment_expression "iVar18 = FUN_00049440(&local_b4)" identifier = (call_expression "FUN_00049440(&local_b4)" identifier (argument_list "(&local_b4)" ( (pointer_expression "&local_b4" & identifier) )))) , (binary_expression "iVar18 != 0" identifier != number_literal)))) ))) )) ))) )) (compound_statement "{\n                    unaff_s7 = pppppppcVar42;\n                    unaff_s8 = local_8c;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                    local_144 = (code *******)0x0;\n                    unaff_s7 = param_4;\n                  }" { (expression_statement "unaff_s7 = pppppppcVar42;" (assignment_expression "unaff_s7 = pppppppcVar42" identifier = identifier) ;) (expression_statement "unaff_s8 = local_8c;" (assignment_expression "unaff_s8 = local_8c" identifier = identifier) ;) (if_statement "if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;" if (parenthesized_expression "(pppppppcVar34 == (code *******)0x0)" ( (binary_expression "pppppppcVar34 == (code *******)0x0" identifier == (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (goto_statement "goto LAB_00055dbc;" goto statement_identifier ;)) (expression_statement "pppppppcVar28 = (code *******)0x1;" (assignment_expression "pppppppcVar28 = (code *******)0x1" identifier = (cast_expression "(code *******)0x1" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "local_144 = (code *******)0x0;" (assignment_expression "local_144 = (code *******)0x0" identifier = (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "unaff_s7 = param_4;" (assignment_expression "unaff_s7 = param_4" identifier = identifier) ;) })) })) (labeled_statement "LAB_00055da8:\n                if (local_144 != (code *******)0x0) {\n                  *local_144 = (code ******)((int)local_138 + (int)*local_144);\n                }" statement_identifier : (if_statement "if (local_144 != (code *******)0x0) {\n                  *local_144 = (code ******)((int)local_138 + (int)*local_144);\n                }" if (parenthesized_expression "(local_144 != (code *******)0x0)" ( (binary_expression "local_144 != (code *******)0x0" identifier != (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\n                  *local_144 = (code ******)((int)local_138 + (int)*local_144);\n                }" { (expression_statement "*local_144 = (code ******)((int)local_138 + (int)*local_144);" (assignment_expression "*local_144 = (code ******)((int)local_138 + (int)*local_144)" (pointer_expression "*local_144" * identifier) = (cast_expression "(code ******)((int)local_138 + (int)*local_144)" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "((int)local_138 + (int)*local_144)" ( (binary_expression "(int)local_138 + (int)*local_144" (cast_expression "(int)local_138" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)*local_144" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*local_144" * identifier))) )))) ;) }))) }) (else_clause "else {\n                param_4 = unaff_s7 + 1;\n                pppppppcVar30 = (code *******)0x0;\n                pppppppcVar29 = param_4;\n                local_d8 = (code *******)FUN_00047a44(&local_b4);\n                unaff_s8 = local_d8;\n                if (local_d8 == (code *******)0x0) {\n                  if (((uint)unaff_s7[0xd] & 0x2000000) == 0) {\n                    pppppppcVar29 = param_4;\n                    bVar1 = false;\n                  }\n                  else {\n                    pppppppcVar29 = param_4;\n                    local_d8 = (code *******)FUN_00052d84(&local_b4);\n                    unaff_s8 = local_d8;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055dbc;\n                    bVar1 = false;\n                  }\n                  goto LAB_00054d50;\n                }\n              }" else (compound_statement "{\n                param_4 = unaff_s7 + 1;\n                pppppppcVar30 = (code *******)0x0;\n                pppppppcVar29 = param_4;\n                local_d8 = (code *******)FUN_00047a44(&local_b4);\n                unaff_s8 = local_d8;\n                if (local_d8 == (code *******)0x0) {\n                  if (((uint)unaff_s7[0xd] & 0x2000000) == 0) {\n                    pppppppcVar29 = param_4;\n                    bVar1 = false;\n                  }\n                  else {\n                    pppppppcVar29 = param_4;\n                    local_d8 = (code *******)FUN_00052d84(&local_b4);\n                    unaff_s8 = local_d8;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055dbc;\n                    bVar1 = false;\n                  }\n                  goto LAB_00054d50;\n                }\n              }" { (expression_statement "param_4 = unaff_s7 + 1;" (assignment_expression "param_4 = unaff_s7 + 1" identifier = (binary_expression "unaff_s7 + 1" identifier + number_literal)) ;) (expression_statement "pppppppcVar30 = (code *******)0x0;" (assignment_expression "pppppppcVar30 = (code *******)0x0" identifier = (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "pppppppcVar29 = param_4;" (assignment_expression "pppppppcVar29 = param_4" identifier = identifier) ;) (expression_statement "local_d8 = (code *******)FUN_00047a44(&local_b4);" (assignment_expression "local_d8 = (code *******)FUN_00047a44(&local_b4)" identifier = (cast_expression "(code *******)FUN_00047a44(&local_b4)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "FUN_00047a44(&local_b4)" identifier (argument_list "(&local_b4)" ( (pointer_expression "&local_b4" & identifier) ))))) ;) (expression_statement "unaff_s8 = local_d8;" (assignment_expression "unaff_s8 = local_d8" identifier = identifier) ;) (if_statement "if (local_d8 == (code *******)0x0) {\n                  if (((uint)unaff_s7[0xd] & 0x2000000) == 0) {\n                    pppppppcVar29 = param_4;\n                    bVar1 = false;\n                  }\n                  else {\n                    pppppppcVar29 = param_4;\n                    local_d8 = (code *******)FUN_00052d84(&local_b4);\n                    unaff_s8 = local_d8;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055dbc;\n                    bVar1 = false;\n                  }\n                  goto LAB_00054d50;\n                }" if (parenthesized_expression "(local_d8 == (code *******)0x0)" ( (binary_expression "local_d8 == (code *******)0x0" identifier == (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\n                  if (((uint)unaff_s7[0xd] & 0x2000000) == 0) {\n                    pppppppcVar29 = param_4;\n                    bVar1 = false;\n                  }\n                  else {\n                    pppppppcVar29 = param_4;\n                    local_d8 = (code *******)FUN_00052d84(&local_b4);\n                    unaff_s8 = local_d8;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055dbc;\n                    bVar1 = false;\n                  }\n                  goto LAB_00054d50;\n                }" { (if_statement "if (((uint)unaff_s7[0xd] & 0x2000000) == 0) {\n                    pppppppcVar29 = param_4;\n                    bVar1 = false;\n                  }\n                  else {\n                    pppppppcVar29 = param_4;\n                    local_d8 = (code *******)FUN_00052d84(&local_b4);\n                    unaff_s8 = local_d8;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055dbc;\n                    bVar1 = false;\n                  }" if (parenthesized_expression "(((uint)unaff_s7[0xd] & 0x2000000) == 0)" ( (binary_expression "((uint)unaff_s7[0xd] & 0x2000000) == 0" (parenthesized_expression "((uint)unaff_s7[0xd] & 0x2000000)" ( (binary_expression "(uint)unaff_s7[0xd] & 0x2000000" (cast_expression "(uint)unaff_s7[0xd]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "unaff_s7[0xd]" identifier [ number_literal ])) & number_literal) )) == number_literal) )) (compound_statement "{\n                    pppppppcVar29 = param_4;\n                    bVar1 = false;\n                  }" { (expression_statement "pppppppcVar29 = param_4;" (assignment_expression "pppppppcVar29 = param_4" identifier = identifier) ;) (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" identifier = false) ;) }) (else_clause "else {\n                    pppppppcVar29 = param_4;\n                    local_d8 = (code *******)FUN_00052d84(&local_b4);\n                    unaff_s8 = local_d8;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055dbc;\n                    bVar1 = false;\n                  }" else (compound_statement "{\n                    pppppppcVar29 = param_4;\n                    local_d8 = (code *******)FUN_00052d84(&local_b4);\n                    unaff_s8 = local_d8;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055dbc;\n                    bVar1 = false;\n                  }" { (expression_statement "pppppppcVar29 = param_4;" (assignment_expression "pppppppcVar29 = param_4" identifier = identifier) ;) (expression_statement "local_d8 = (code *******)FUN_00052d84(&local_b4);" (assignment_expression "local_d8 = (code *******)FUN_00052d84(&local_b4)" identifier = (cast_expression "(code *******)FUN_00052d84(&local_b4)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "FUN_00052d84(&local_b4)" identifier (argument_list "(&local_b4)" ( (pointer_expression "&local_b4" & identifier) ))))) ;) (expression_statement "unaff_s8 = local_d8;" (assignment_expression "unaff_s8 = local_d8" identifier = identifier) ;) (if_statement "if (local_d8 != (code *******)0x0) goto LAB_00055dbc;" if (parenthesized_expression "(local_d8 != (code *******)0x0)" ( (binary_expression "local_d8 != (code *******)0x0" identifier != (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (goto_statement "goto LAB_00055dbc;" goto statement_identifier ;)) (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" identifier = false) ;) }))) (goto_statement "goto LAB_00054d50;" goto statement_identifier ;) })) }))) (labeled_statement "LAB_00055dbc:\n              if (unaff_s8 == (code *******)0xffffffff) {\nLAB_00055b04:\n                FUN_0004b7e8(&local_b4);\nLAB_00055b1c:\n                local_dc = (code *******)((int)pppppppcVar24 + (int)local_dc);\n                if ((int)pppppppcVar25 <= (int)local_dc) goto code_r0x00055b38;\n                local_150 = (code *******)0x1;\n                goto LAB_000557e4;\n              }" statement_identifier : (if_statement "if (unaff_s8 == (code *******)0xffffffff) {\nLAB_00055b04:\n                FUN_0004b7e8(&local_b4);\nLAB_00055b1c:\n                local_dc = (code *******)((int)pppppppcVar24 + (int)local_dc);\n                if ((int)pppppppcVar25 <= (int)local_dc) goto code_r0x00055b38;\n                local_150 = (code *******)0x1;\n                goto LAB_000557e4;\n              }" if (parenthesized_expression "(unaff_s8 == (code *******)0xffffffff)" ( (binary_expression "unaff_s8 == (code *******)0xffffffff" identifier == (cast_expression "(code *******)0xffffffff" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\nLAB_00055b04:\n                FUN_0004b7e8(&local_b4);\nLAB_00055b1c:\n                local_dc = (code *******)((int)pppppppcVar24 + (int)local_dc);\n                if ((int)pppppppcVar25 <= (int)local_dc) goto code_r0x00055b38;\n                local_150 = (code *******)0x1;\n                goto LAB_000557e4;\n              }" { (labeled_statement "LAB_00055b04:\n                FUN_0004b7e8(&local_b4);" statement_identifier : (expression_statement "FUN_0004b7e8(&local_b4);" (call_expression "FUN_0004b7e8(&local_b4)" identifier (argument_list "(&local_b4)" ( (pointer_expression "&local_b4" & identifier) ))) ;)) (labeled_statement "LAB_00055b1c:\n                local_dc = (code *******)((int)pppppppcVar24 + (int)local_dc);" statement_identifier : (expression_statement "local_dc = (code *******)((int)pppppppcVar24 + (int)local_dc);" (assignment_expression "local_dc = (code *******)((int)pppppppcVar24 + (int)local_dc)" identifier = (cast_expression "(code *******)((int)pppppppcVar24 + (int)local_dc)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)pppppppcVar24 + (int)local_dc)" ( (binary_expression "(int)pppppppcVar24 + (int)local_dc" (cast_expression "(int)pppppppcVar24" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)local_dc" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;)) (if_statement "if ((int)pppppppcVar25 <= (int)local_dc) goto code_r0x00055b38;" if (parenthesized_expression "((int)pppppppcVar25 <= (int)local_dc)" ( (binary_expression "(int)pppppppcVar25 <= (int)local_dc" (cast_expression "(int)pppppppcVar25" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)local_dc" ( (type_descriptor "int" primitive_type) ) identifier)) )) (goto_statement "goto code_r0x00055b38;" goto statement_identifier ;)) (expression_statement "local_150 = (code *******)0x1;" (assignment_expression "local_150 = (code *******)0x1" identifier = (cast_expression "(code *******)0x1" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (goto_statement "goto LAB_000557e4;" goto statement_identifier ;) }))) (if_statement "if (unaff_s8 == (code *******)&SUB_fffffffe) {\n                local_150 = (code *******)0xc;\n                goto LAB_000557e4;\n              }" if (parenthesized_expression "(unaff_s8 == (code *******)&SUB_fffffffe)" ( (binary_expression "unaff_s8 == (code *******)&SUB_fffffffe" identifier == (cast_expression "(code *******)&SUB_fffffffe" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "&SUB_fffffffe" & identifier))) )) (compound_statement "{\n                local_150 = (code *******)0xc;\n                goto LAB_000557e4;\n              }" { (expression_statement "local_150 = (code *******)0xc;" (assignment_expression "local_150 = (code *******)0xc" identifier = (cast_expression "(code *******)0xc" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (goto_statement "goto LAB_000557e4;" goto statement_identifier ;) })) (expression_statement "local_58 = unaff_s8;" (assignment_expression "local_58 = unaff_s8" identifier = identifier) ;) (if_statement "if (((uint)param_1[7] & 0x8000000) == 0) {\n                if (pppppppcVar3 < (code *******)0x2) {\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055c08;\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                else {\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                if (pppppppcVar3 < (code *******)0x2) {\nLAB_00055c6c:\n                  pppppppcVar28 = pppppppcVar33;\n                  unaff_s4 = local_60;\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055548;\n                }\n                else {\n                  cVar23 = *(code *)(pppppppcVar38 + 0x16);\nLAB_00055c20:\n                  pppppppcVar28 = pppppppcVar33;\n                  if (-1 < (char)cVar23) goto LAB_00055c6c;\n                }\n                pppppppcVar31 = local_54;\n                pppppppcVar42 = local_60;\n                unaff_s4 = pppppppcVar42;\n                if (unaff_s8 < (code *******)0x3fffffff) {\n                  param_4 = (code *******)((int)((int)unaff_s8 + 1) * 4);\n                  unaff_s5 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                  if (unaff_s5 == (code *******)0x0) {\nLAB_00055b9c:\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    local_150 = (code *******)0xc;\n                    pppppppcVar33 = pppppppcVar28;\n                  }\n                  else {\n                    pppppppcVar29 = (code *******)&local_d0;\n                    if (pppppppcVar42[0x13] == (code ******)0x0) {\n                      local_cc = (code *******)0x0;\n                      local_c8 = pppppppcVar31;\n                      local_c0 = 0;\n                      local_bc = 0;\n                      local_b8 = 0;\n                      local_d0 = unaff_s5;\n                      local_c4 = unaff_s8;\n                      param_5 = (code *******)FUN_0005421c(&local_b4);\n                      (*(code *)PTR_free_00079c24)(local_b8);\n                      if (param_5 == (code *******)0x0) {\n                        param_4 = (code *******)*unaff_s5;\n                        if (param_4 == (code *******)0x0) {\nLAB_00055b70:\n                          (*(code *)PTR_free_00079c24)(unaff_s5);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          pppppppcVar33 = pppppppcVar28;\n                          goto LAB_00055b04;\n                        }\nLAB_00055528:\n                        (*(code *)PTR_free_00079c24)(local_50);\n                        pppppppcVar33 = pppppppcVar28;\n                        unaff_s4 = pppppppcVar42;\n                        local_58 = unaff_s8;\n                        local_54 = pppppppcVar31;\n                        local_50 = unaff_s5;\n                        goto LAB_00055548;\n                      }\nLAB_00055acc:\n                      param_4 = (code *******)0x0;\n                      pppppppcVar33 = pppppppcVar28;\n                      unaff_s4 = pppppppcVar42;\n                    }\n                    else {\n                      param_4 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                      if (param_4 == (code *******)0x0) goto LAB_00055b9c;\n                      unaff_s7 = (code *******)&local_d0;\n                      pcVar8 = (code *)(PTR_DAT_000799a4 + 0x421c);\n                      pcVar9 = (code *)(PTR_DAT_000799a4 + -0x6bc0);\n                      pppppppcVar33 = pppppppcVar28;\n                      while( true ) {\n                        pppppppcVar28 = (code *******)((int)unaff_s8 + 1);\n                        param_6 = (code *******)((int)pppppppcVar28 * 4);\n                        pppppppcVar30 = param_6;\n                        (*(code *)PTR_memset_00079b00)(param_4,0);\n                        local_c0 = 0;\n                        local_bc = 0;\n                        local_b8 = 0;\n                        pppppppcVar29 = unaff_s7;\n                        local_d0 = unaff_s5;\n                        local_cc = param_4;\n                        local_c8 = pppppppcVar31;\n                        local_c4 = unaff_s8;\n                        param_5 = (code *******)(*pcVar8)(&local_b4);\n                        (*(code *)PTR_free_00079c24)(local_b8);\n                        unaff_s4 = pppppppcVar28;\n                        if (param_5 != (code *******)0x0) break;\n                        if ((*unaff_s5 != (code ******)0x0) ||\n                           (param_6 = param_6 + -1, *param_4 != (code ******)0x0)) {\n                          pppppppcVar29 = unaff_s5;\n                          pppppppcVar30 = param_4;\n                          param_5 = (code *******)FUN_000520d0(pppppppcVar42);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          if (param_5 != (code *******)0x0) goto LAB_00055acc;\n                          goto LAB_00055528;\n                        }\n                        param_6 = (code *******)((int)local_50 + (int)param_6);\n                        do {\n                          while( true ) {\n                            unaff_s8 = (code *******)((int)unaff_s8 + -1);\n                            if ((int)unaff_s8 < 0) goto LAB_00055b70;\n                            pppppppcVar29 = (code *******)param_6[-1];\n                            if (pppppppcVar29 != (code *******)0x0) break;\n                            param_6 = param_6 + -1;\n                          }\n                          param_6 = param_6 + -1;\n                        } while (((uint)pppppppcVar29[0xd] & 0x8000000) == 0);\n                        pppppppcVar31 = (code *******)(*pcVar9)(&local_b4,pppppppcVar29,unaff_s8);\n                        pppppppcVar33 = pppppppcVar28;\n                      }\n                    }\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    (*(code *)PTR_free_00079c24)(param_4);\n                    local_150 = param_5;\n                    if (param_5 == (code *******)0x1) goto LAB_00055b04;\n                  }\n                }\n                else {\n                  local_150 = (code *******)0xc;\n                  pppppppcVar33 = pppppppcVar28;\n                }\n                goto LAB_000557e4;\n              }" if (parenthesized_expression "(((uint)param_1[7] & 0x8000000) == 0)" ( (binary_expression "((uint)param_1[7] & 0x8000000) == 0" (parenthesized_expression "((uint)param_1[7] & 0x8000000)" ( (binary_expression "(uint)param_1[7] & 0x8000000" (cast_expression "(uint)param_1[7]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_1[7]" identifier [ number_literal ])) & number_literal) )) == number_literal) )) (compound_statement "{\n                if (pppppppcVar3 < (code *******)0x2) {\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055c08;\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                else {\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                if (pppppppcVar3 < (code *******)0x2) {\nLAB_00055c6c:\n                  pppppppcVar28 = pppppppcVar33;\n                  unaff_s4 = local_60;\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055548;\n                }\n                else {\n                  cVar23 = *(code *)(pppppppcVar38 + 0x16);\nLAB_00055c20:\n                  pppppppcVar28 = pppppppcVar33;\n                  if (-1 < (char)cVar23) goto LAB_00055c6c;\n                }\n                pppppppcVar31 = local_54;\n                pppppppcVar42 = local_60;\n                unaff_s4 = pppppppcVar42;\n                if (unaff_s8 < (code *******)0x3fffffff) {\n                  param_4 = (code *******)((int)((int)unaff_s8 + 1) * 4);\n                  unaff_s5 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                  if (unaff_s5 == (code *******)0x0) {\nLAB_00055b9c:\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    local_150 = (code *******)0xc;\n                    pppppppcVar33 = pppppppcVar28;\n                  }\n                  else {\n                    pppppppcVar29 = (code *******)&local_d0;\n                    if (pppppppcVar42[0x13] == (code ******)0x0) {\n                      local_cc = (code *******)0x0;\n                      local_c8 = pppppppcVar31;\n                      local_c0 = 0;\n                      local_bc = 0;\n                      local_b8 = 0;\n                      local_d0 = unaff_s5;\n                      local_c4 = unaff_s8;\n                      param_5 = (code *******)FUN_0005421c(&local_b4);\n                      (*(code *)PTR_free_00079c24)(local_b8);\n                      if (param_5 == (code *******)0x0) {\n                        param_4 = (code *******)*unaff_s5;\n                        if (param_4 == (code *******)0x0) {\nLAB_00055b70:\n                          (*(code *)PTR_free_00079c24)(unaff_s5);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          pppppppcVar33 = pppppppcVar28;\n                          goto LAB_00055b04;\n                        }\nLAB_00055528:\n                        (*(code *)PTR_free_00079c24)(local_50);\n                        pppppppcVar33 = pppppppcVar28;\n                        unaff_s4 = pppppppcVar42;\n                        local_58 = unaff_s8;\n                        local_54 = pppppppcVar31;\n                        local_50 = unaff_s5;\n                        goto LAB_00055548;\n                      }\nLAB_00055acc:\n                      param_4 = (code *******)0x0;\n                      pppppppcVar33 = pppppppcVar28;\n                      unaff_s4 = pppppppcVar42;\n                    }\n                    else {\n                      param_4 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                      if (param_4 == (code *******)0x0) goto LAB_00055b9c;\n                      unaff_s7 = (code *******)&local_d0;\n                      pcVar8 = (code *)(PTR_DAT_000799a4 + 0x421c);\n                      pcVar9 = (code *)(PTR_DAT_000799a4 + -0x6bc0);\n                      pppppppcVar33 = pppppppcVar28;\n                      while( true ) {\n                        pppppppcVar28 = (code *******)((int)unaff_s8 + 1);\n                        param_6 = (code *******)((int)pppppppcVar28 * 4);\n                        pppppppcVar30 = param_6;\n                        (*(code *)PTR_memset_00079b00)(param_4,0);\n                        local_c0 = 0;\n                        local_bc = 0;\n                        local_b8 = 0;\n                        pppppppcVar29 = unaff_s7;\n                        local_d0 = unaff_s5;\n                        local_cc = param_4;\n                        local_c8 = pppppppcVar31;\n                        local_c4 = unaff_s8;\n                        param_5 = (code *******)(*pcVar8)(&local_b4);\n                        (*(code *)PTR_free_00079c24)(local_b8);\n                        unaff_s4 = pppppppcVar28;\n                        if (param_5 != (code *******)0x0) break;\n                        if ((*unaff_s5 != (code ******)0x0) ||\n                           (param_6 = param_6 + -1, *param_4 != (code ******)0x0)) {\n                          pppppppcVar29 = unaff_s5;\n                          pppppppcVar30 = param_4;\n                          param_5 = (code *******)FUN_000520d0(pppppppcVar42);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          if (param_5 != (code *******)0x0) goto LAB_00055acc;\n                          goto LAB_00055528;\n                        }\n                        param_6 = (code *******)((int)local_50 + (int)param_6);\n                        do {\n                          while( true ) {\n                            unaff_s8 = (code *******)((int)unaff_s8 + -1);\n                            if ((int)unaff_s8 < 0) goto LAB_00055b70;\n                            pppppppcVar29 = (code *******)param_6[-1];\n                            if (pppppppcVar29 != (code *******)0x0) break;\n                            param_6 = param_6 + -1;\n                          }\n                          param_6 = param_6 + -1;\n                        } while (((uint)pppppppcVar29[0xd] & 0x8000000) == 0);\n                        pppppppcVar31 = (code *******)(*pcVar9)(&local_b4,pppppppcVar29,unaff_s8);\n                        pppppppcVar33 = pppppppcVar28;\n                      }\n                    }\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    (*(code *)PTR_free_00079c24)(param_4);\n                    local_150 = param_5;\n                    if (param_5 == (code *******)0x1) goto LAB_00055b04;\n                  }\n                }\n                else {\n                  local_150 = (code *******)0xc;\n                  pppppppcVar33 = pppppppcVar28;\n                }\n                goto LAB_000557e4;\n              }" { (if_statement "if (pppppppcVar3 < (code *******)0x2) {\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055c08;\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                else {\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }" if (parenthesized_expression "(pppppppcVar3 < (code *******)0x2)" ( (binary_expression "pppppppcVar3 < (code *******)0x2" identifier < (cast_expression "(code *******)0x2" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055c08;\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }" { (if_statement "if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055c08;" if (parenthesized_expression "(pppppppcVar38[0x13] == (code ******)0x0)" ( (binary_expression "pppppppcVar38[0x13] == (code ******)0x0" (subscript_expression "pppppppcVar38[0x13]" identifier [ number_literal ]) == (cast_expression "(code ******)0x0" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (goto_statement "goto LAB_00055c08;" goto statement_identifier ;)) (expression_statement "pppppppcVar29 = (code *******)local_50[(int)unaff_s8];" (assignment_expression "pppppppcVar29 = (code *******)local_50[(int)unaff_s8]" identifier = (cast_expression "(code *******)local_50[(int)unaff_s8]" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (subscript_expression "local_50[(int)unaff_s8]" identifier [ (cast_expression "(int)unaff_s8" ( (type_descriptor "int" primitive_type) ) identifier) ]))) ;) (expression_statement "pppppppcVar30 = unaff_s8;" (assignment_expression "pppppppcVar30 = unaff_s8" identifier = identifier) ;) (expression_statement "local_54 = (code *******)FUN_00049440(&local_b4);" (assignment_expression "local_54 = (code *******)FUN_00049440(&local_b4)" identifier = (cast_expression "(code *******)FUN_00049440(&local_b4)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "FUN_00049440(&local_b4)" identifier (argument_list "(&local_b4)" ( (pointer_expression "&local_b4" & identifier) ))))) ;) }) (else_clause "else {\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }" else (compound_statement "{\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }" { (expression_statement "pppppppcVar29 = (code *******)local_50[(int)unaff_s8];" (assignment_expression "pppppppcVar29 = (code *******)local_50[(int)unaff_s8]" identifier = (cast_expression "(code *******)local_50[(int)unaff_s8]" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (subscript_expression "local_50[(int)unaff_s8]" identifier [ (cast_expression "(int)unaff_s8" ( (type_descriptor "int" primitive_type) ) identifier) ]))) ;) (expression_statement "pppppppcVar30 = unaff_s8;" (assignment_expression "pppppppcVar30 = unaff_s8" identifier = identifier) ;) (expression_statement "local_54 = (code *******)FUN_00049440(&local_b4);" (assignment_expression "local_54 = (code *******)FUN_00049440(&local_b4)" identifier = (cast_expression "(code *******)FUN_00049440(&local_b4)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "FUN_00049440(&local_b4)" identifier (argument_list "(&local_b4)" ( (pointer_expression "&local_b4" & identifier) ))))) ;) }))) (if_statement "if (pppppppcVar3 < (code *******)0x2) {\nLAB_00055c6c:\n                  pppppppcVar28 = pppppppcVar33;\n                  unaff_s4 = local_60;\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055548;\n                }\n                else {\n                  cVar23 = *(code *)(pppppppcVar38 + 0x16);\nLAB_00055c20:\n                  pppppppcVar28 = pppppppcVar33;\n                  if (-1 < (char)cVar23) goto LAB_00055c6c;\n                }" if (parenthesized_expression "(pppppppcVar3 < (code *******)0x2)" ( (binary_expression "pppppppcVar3 < (code *******)0x2" identifier < (cast_expression "(code *******)0x2" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\nLAB_00055c6c:\n                  pppppppcVar28 = pppppppcVar33;\n                  unaff_s4 = local_60;\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055548;\n                }" { (labeled_statement "LAB_00055c6c:\n                  pppppppcVar28 = pppppppcVar33;" statement_identifier : (expression_statement "pppppppcVar28 = pppppppcVar33;" (assignment_expression "pppppppcVar28 = pppppppcVar33" identifier = identifier) ;)) (expression_statement "unaff_s4 = local_60;" (assignment_expression "unaff_s4 = local_60" identifier = identifier) ;) (if_statement "if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055548;" if (parenthesized_expression "(pppppppcVar38[0x13] == (code ******)0x0)" ( (binary_expression "pppppppcVar38[0x13] == (code ******)0x0" (subscript_expression "pppppppcVar38[0x13]" identifier [ number_literal ]) == (cast_expression "(code ******)0x0" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (goto_statement "goto LAB_00055548;" goto statement_identifier ;)) }) (else_clause "else {\n                  cVar23 = *(code *)(pppppppcVar38 + 0x16);\nLAB_00055c20:\n                  pppppppcVar28 = pppppppcVar33;\n                  if (-1 < (char)cVar23) goto LAB_00055c6c;\n                }" else (compound_statement "{\n                  cVar23 = *(code *)(pppppppcVar38 + 0x16);\nLAB_00055c20:\n                  pppppppcVar28 = pppppppcVar33;\n                  if (-1 < (char)cVar23) goto LAB_00055c6c;\n                }" { (expression_statement "cVar23 = *(code *)(pppppppcVar38 + 0x16);" (assignment_expression "cVar23 = *(code *)(pppppppcVar38 + 0x16)" identifier = (pointer_expression "*(code *)(pppppppcVar38 + 0x16)" * (cast_expression "(code *)(pppppppcVar38 + 0x16)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pppppppcVar38 + 0x16)" ( (binary_expression "pppppppcVar38 + 0x16" identifier + number_literal) ))))) ;) (labeled_statement "LAB_00055c20:\n                  pppppppcVar28 = pppppppcVar33;" statement_identifier : (expression_statement "pppppppcVar28 = pppppppcVar33;" (assignment_expression "pppppppcVar28 = pppppppcVar33" identifier = identifier) ;)) (if_statement "if (-1 < (char)cVar23) goto LAB_00055c6c;" if (parenthesized_expression "(-1 < (char)cVar23)" ( (binary_expression "-1 < (char)cVar23" number_literal < (cast_expression "(char)cVar23" ( (type_descriptor "char" primitive_type) ) identifier)) )) (goto_statement "goto LAB_00055c6c;" goto statement_identifier ;)) }))) (expression_statement "pppppppcVar31 = local_54;" (assignment_expression "pppppppcVar31 = local_54" identifier = identifier) ;) (expression_statement "pppppppcVar42 = local_60;" (assignment_expression "pppppppcVar42 = local_60" identifier = identifier) ;) (expression_statement "unaff_s4 = pppppppcVar42;" (assignment_expression "unaff_s4 = pppppppcVar42" identifier = identifier) ;) (if_statement "if (unaff_s8 < (code *******)0x3fffffff) {\n                  param_4 = (code *******)((int)((int)unaff_s8 + 1) * 4);\n                  unaff_s5 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                  if (unaff_s5 == (code *******)0x0) {\nLAB_00055b9c:\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    local_150 = (code *******)0xc;\n                    pppppppcVar33 = pppppppcVar28;\n                  }\n                  else {\n                    pppppppcVar29 = (code *******)&local_d0;\n                    if (pppppppcVar42[0x13] == (code ******)0x0) {\n                      local_cc = (code *******)0x0;\n                      local_c8 = pppppppcVar31;\n                      local_c0 = 0;\n                      local_bc = 0;\n                      local_b8 = 0;\n                      local_d0 = unaff_s5;\n                      local_c4 = unaff_s8;\n                      param_5 = (code *******)FUN_0005421c(&local_b4);\n                      (*(code *)PTR_free_00079c24)(local_b8);\n                      if (param_5 == (code *******)0x0) {\n                        param_4 = (code *******)*unaff_s5;\n                        if (param_4 == (code *******)0x0) {\nLAB_00055b70:\n                          (*(code *)PTR_free_00079c24)(unaff_s5);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          pppppppcVar33 = pppppppcVar28;\n                          goto LAB_00055b04;\n                        }\nLAB_00055528:\n                        (*(code *)PTR_free_00079c24)(local_50);\n                        pppppppcVar33 = pppppppcVar28;\n                        unaff_s4 = pppppppcVar42;\n                        local_58 = unaff_s8;\n                        local_54 = pppppppcVar31;\n                        local_50 = unaff_s5;\n                        goto LAB_00055548;\n                      }\nLAB_00055acc:\n                      param_4 = (code *******)0x0;\n                      pppppppcVar33 = pppppppcVar28;\n                      unaff_s4 = pppppppcVar42;\n                    }\n                    else {\n                      param_4 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                      if (param_4 == (code *******)0x0) goto LAB_00055b9c;\n                      unaff_s7 = (code *******)&local_d0;\n                      pcVar8 = (code *)(PTR_DAT_000799a4 + 0x421c);\n                      pcVar9 = (code *)(PTR_DAT_000799a4 + -0x6bc0);\n                      pppppppcVar33 = pppppppcVar28;\n                      while( true ) {\n                        pppppppcVar28 = (code *******)((int)unaff_s8 + 1);\n                        param_6 = (code *******)((int)pppppppcVar28 * 4);\n                        pppppppcVar30 = param_6;\n                        (*(code *)PTR_memset_00079b00)(param_4,0);\n                        local_c0 = 0;\n                        local_bc = 0;\n                        local_b8 = 0;\n                        pppppppcVar29 = unaff_s7;\n                        local_d0 = unaff_s5;\n                        local_cc = param_4;\n                        local_c8 = pppppppcVar31;\n                        local_c4 = unaff_s8;\n                        param_5 = (code *******)(*pcVar8)(&local_b4);\n                        (*(code *)PTR_free_00079c24)(local_b8);\n                        unaff_s4 = pppppppcVar28;\n                        if (param_5 != (code *******)0x0) break;\n                        if ((*unaff_s5 != (code ******)0x0) ||\n                           (param_6 = param_6 + -1, *param_4 != (code ******)0x0)) {\n                          pppppppcVar29 = unaff_s5;\n                          pppppppcVar30 = param_4;\n                          param_5 = (code *******)FUN_000520d0(pppppppcVar42);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          if (param_5 != (code *******)0x0) goto LAB_00055acc;\n                          goto LAB_00055528;\n                        }\n                        param_6 = (code *******)((int)local_50 + (int)param_6);\n                        do {\n                          while( true ) {\n                            unaff_s8 = (code *******)((int)unaff_s8 + -1);\n                            if ((int)unaff_s8 < 0) goto LAB_00055b70;\n                            pppppppcVar29 = (code *******)param_6[-1];\n                            if (pppppppcVar29 != (code *******)0x0) break;\n                            param_6 = param_6 + -1;\n                          }\n                          param_6 = param_6 + -1;\n                        } while (((uint)pppppppcVar29[0xd] & 0x8000000) == 0);\n                        pppppppcVar31 = (code *******)(*pcVar9)(&local_b4,pppppppcVar29,unaff_s8);\n                        pppppppcVar33 = pppppppcVar28;\n                      }\n                    }\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    (*(code *)PTR_free_00079c24)(param_4);\n                    local_150 = param_5;\n                    if (param_5 == (code *******)0x1) goto LAB_00055b04;\n                  }\n                }\n                else {\n                  local_150 = (code *******)0xc;\n                  pppppppcVar33 = pppppppcVar28;\n                }" if (parenthesized_expression "(unaff_s8 < (code *******)0x3fffffff)" ( (binary_expression "unaff_s8 < (code *******)0x3fffffff" identifier < (cast_expression "(code *******)0x3fffffff" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\n                  param_4 = (code *******)((int)((int)unaff_s8 + 1) * 4);\n                  unaff_s5 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                  if (unaff_s5 == (code *******)0x0) {\nLAB_00055b9c:\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    local_150 = (code *******)0xc;\n                    pppppppcVar33 = pppppppcVar28;\n                  }\n                  else {\n                    pppppppcVar29 = (code *******)&local_d0;\n                    if (pppppppcVar42[0x13] == (code ******)0x0) {\n                      local_cc = (code *******)0x0;\n                      local_c8 = pppppppcVar31;\n                      local_c0 = 0;\n                      local_bc = 0;\n                      local_b8 = 0;\n                      local_d0 = unaff_s5;\n                      local_c4 = unaff_s8;\n                      param_5 = (code *******)FUN_0005421c(&local_b4);\n                      (*(code *)PTR_free_00079c24)(local_b8);\n                      if (param_5 == (code *******)0x0) {\n                        param_4 = (code *******)*unaff_s5;\n                        if (param_4 == (code *******)0x0) {\nLAB_00055b70:\n                          (*(code *)PTR_free_00079c24)(unaff_s5);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          pppppppcVar33 = pppppppcVar28;\n                          goto LAB_00055b04;\n                        }\nLAB_00055528:\n                        (*(code *)PTR_free_00079c24)(local_50);\n                        pppppppcVar33 = pppppppcVar28;\n                        unaff_s4 = pppppppcVar42;\n                        local_58 = unaff_s8;\n                        local_54 = pppppppcVar31;\n                        local_50 = unaff_s5;\n                        goto LAB_00055548;\n                      }\nLAB_00055acc:\n                      param_4 = (code *******)0x0;\n                      pppppppcVar33 = pppppppcVar28;\n                      unaff_s4 = pppppppcVar42;\n                    }\n                    else {\n                      param_4 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                      if (param_4 == (code *******)0x0) goto LAB_00055b9c;\n                      unaff_s7 = (code *******)&local_d0;\n                      pcVar8 = (code *)(PTR_DAT_000799a4 + 0x421c);\n                      pcVar9 = (code *)(PTR_DAT_000799a4 + -0x6bc0);\n                      pppppppcVar33 = pppppppcVar28;\n                      while( true ) {\n                        pppppppcVar28 = (code *******)((int)unaff_s8 + 1);\n                        param_6 = (code *******)((int)pppppppcVar28 * 4);\n                        pppppppcVar30 = param_6;\n                        (*(code *)PTR_memset_00079b00)(param_4,0);\n                        local_c0 = 0;\n                        local_bc = 0;\n                        local_b8 = 0;\n                        pppppppcVar29 = unaff_s7;\n                        local_d0 = unaff_s5;\n                        local_cc = param_4;\n                        local_c8 = pppppppcVar31;\n                        local_c4 = unaff_s8;\n                        param_5 = (code *******)(*pcVar8)(&local_b4);\n                        (*(code *)PTR_free_00079c24)(local_b8);\n                        unaff_s4 = pppppppcVar28;\n                        if (param_5 != (code *******)0x0) break;\n                        if ((*unaff_s5 != (code ******)0x0) ||\n                           (param_6 = param_6 + -1, *param_4 != (code ******)0x0)) {\n                          pppppppcVar29 = unaff_s5;\n                          pppppppcVar30 = param_4;\n                          param_5 = (code *******)FUN_000520d0(pppppppcVar42);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          if (param_5 != (code *******)0x0) goto LAB_00055acc;\n                          goto LAB_00055528;\n                        }\n                        param_6 = (code *******)((int)local_50 + (int)param_6);\n                        do {\n                          while( true ) {\n                            unaff_s8 = (code *******)((int)unaff_s8 + -1);\n                            if ((int)unaff_s8 < 0) goto LAB_00055b70;\n                            pppppppcVar29 = (code *******)param_6[-1];\n                            if (pppppppcVar29 != (code *******)0x0) break;\n                            param_6 = param_6 + -1;\n                          }\n                          param_6 = param_6 + -1;\n                        } while (((uint)pppppppcVar29[0xd] & 0x8000000) == 0);\n                        pppppppcVar31 = (code *******)(*pcVar9)(&local_b4,pppppppcVar29,unaff_s8);\n                        pppppppcVar33 = pppppppcVar28;\n                      }\n                    }\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    (*(code *)PTR_free_00079c24)(param_4);\n                    local_150 = param_5;\n                    if (param_5 == (code *******)0x1) goto LAB_00055b04;\n                  }\n                }" { (expression_statement "param_4 = (code *******)((int)((int)unaff_s8 + 1) * 4);" (assignment_expression "param_4 = (code *******)((int)((int)unaff_s8 + 1) * 4)" identifier = (cast_expression "(code *******)((int)((int)unaff_s8 + 1) * 4)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)((int)unaff_s8 + 1) * 4)" ( (binary_expression "(int)((int)unaff_s8 + 1) * 4" (cast_expression "(int)((int)unaff_s8 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)unaff_s8 + 1)" ( (binary_expression "(int)unaff_s8 + 1" (cast_expression "(int)unaff_s8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) * number_literal) )))) ;) (expression_statement "unaff_s5 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);" (assignment_expression "unaff_s5 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4)" identifier = (cast_expression "(code *******)(*(code *)PTR_malloc_00079b54)(param_4)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "(*(code *)PTR_malloc_00079b54)(param_4)" (parenthesized_expression "(*(code *)PTR_malloc_00079b54)" ( (pointer_expression "*(code *)PTR_malloc_00079b54" * (cast_expression "(code *)PTR_malloc_00079b54" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_4)" ( identifier ))))) ;) (if_statement "if (unaff_s5 == (code *******)0x0) {\nLAB_00055b9c:\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    local_150 = (code *******)0xc;\n                    pppppppcVar33 = pppppppcVar28;\n                  }\n                  else {\n                    pppppppcVar29 = (code *******)&local_d0;\n                    if (pppppppcVar42[0x13] == (code ******)0x0) {\n                      local_cc = (code *******)0x0;\n                      local_c8 = pppppppcVar31;\n                      local_c0 = 0;\n                      local_bc = 0;\n                      local_b8 = 0;\n                      local_d0 = unaff_s5;\n                      local_c4 = unaff_s8;\n                      param_5 = (code *******)FUN_0005421c(&local_b4);\n                      (*(code *)PTR_free_00079c24)(local_b8);\n                      if (param_5 == (code *******)0x0) {\n                        param_4 = (code *******)*unaff_s5;\n                        if (param_4 == (code *******)0x0) {\nLAB_00055b70:\n                          (*(code *)PTR_free_00079c24)(unaff_s5);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          pppppppcVar33 = pppppppcVar28;\n                          goto LAB_00055b04;\n                        }\nLAB_00055528:\n                        (*(code *)PTR_free_00079c24)(local_50);\n                        pppppppcVar33 = pppppppcVar28;\n                        unaff_s4 = pppppppcVar42;\n                        local_58 = unaff_s8;\n                        local_54 = pppppppcVar31;\n                        local_50 = unaff_s5;\n                        goto LAB_00055548;\n                      }\nLAB_00055acc:\n                      param_4 = (code *******)0x0;\n                      pppppppcVar33 = pppppppcVar28;\n                      unaff_s4 = pppppppcVar42;\n                    }\n                    else {\n                      param_4 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                      if (param_4 == (code *******)0x0) goto LAB_00055b9c;\n                      unaff_s7 = (code *******)&local_d0;\n                      pcVar8 = (code *)(PTR_DAT_000799a4 + 0x421c);\n                      pcVar9 = (code *)(PTR_DAT_000799a4 + -0x6bc0);\n                      pppppppcVar33 = pppppppcVar28;\n                      while( true ) {\n                        pppppppcVar28 = (code *******)((int)unaff_s8 + 1);\n                        param_6 = (code *******)((int)pppppppcVar28 * 4);\n                        pppppppcVar30 = param_6;\n                        (*(code *)PTR_memset_00079b00)(param_4,0);\n                        local_c0 = 0;\n                        local_bc = 0;\n                        local_b8 = 0;\n                        pppppppcVar29 = unaff_s7;\n                        local_d0 = unaff_s5;\n                        local_cc = param_4;\n                        local_c8 = pppppppcVar31;\n                        local_c4 = unaff_s8;\n                        param_5 = (code *******)(*pcVar8)(&local_b4);\n                        (*(code *)PTR_free_00079c24)(local_b8);\n                        unaff_s4 = pppppppcVar28;\n                        if (param_5 != (code *******)0x0) break;\n                        if ((*unaff_s5 != (code ******)0x0) ||\n                           (param_6 = param_6 + -1, *param_4 != (code ******)0x0)) {\n                          pppppppcVar29 = unaff_s5;\n                          pppppppcVar30 = param_4;\n                          param_5 = (code *******)FUN_000520d0(pppppppcVar42);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          if (param_5 != (code *******)0x0) goto LAB_00055acc;\n                          goto LAB_00055528;\n                        }\n                        param_6 = (code *******)((int)local_50 + (int)param_6);\n                        do {\n                          while( true ) {\n                            unaff_s8 = (code *******)((int)unaff_s8 + -1);\n                            if ((int)unaff_s8 < 0) goto LAB_00055b70;\n                            pppppppcVar29 = (code *******)param_6[-1];\n                            if (pppppppcVar29 != (code *******)0x0) break;\n                            param_6 = param_6 + -1;\n                          }\n                          param_6 = param_6 + -1;\n                        } while (((uint)pppppppcVar29[0xd] & 0x8000000) == 0);\n                        pppppppcVar31 = (code *******)(*pcVar9)(&local_b4,pppppppcVar29,unaff_s8);\n                        pppppppcVar33 = pppppppcVar28;\n                      }\n                    }\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    (*(code *)PTR_free_00079c24)(param_4);\n                    local_150 = param_5;\n                    if (param_5 == (code *******)0x1) goto LAB_00055b04;\n                  }" if (parenthesized_expression "(unaff_s5 == (code *******)0x0)" ( (binary_expression "unaff_s5 == (code *******)0x0" identifier == (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\nLAB_00055b9c:\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    local_150 = (code *******)0xc;\n                    pppppppcVar33 = pppppppcVar28;\n                  }" { (labeled_statement "LAB_00055b9c:\n                    (*(code *)PTR_free_00079c24)(unaff_s5);" statement_identifier : (expression_statement "(*(code *)PTR_free_00079c24)(unaff_s5);" (call_expression "(*(code *)PTR_free_00079c24)(unaff_s5)" (parenthesized_expression "(*(code *)PTR_free_00079c24)" ( (pointer_expression "*(code *)PTR_free_00079c24" * (cast_expression "(code *)PTR_free_00079c24" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s5)" ( identifier ))) ;)) (expression_statement "local_150 = (code *******)0xc;" (assignment_expression "local_150 = (code *******)0xc" identifier = (cast_expression "(code *******)0xc" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "pppppppcVar33 = pppppppcVar28;" (assignment_expression "pppppppcVar33 = pppppppcVar28" identifier = identifier) ;) }) (else_clause "else {\n                    pppppppcVar29 = (code *******)&local_d0;\n                    if (pppppppcVar42[0x13] == (code ******)0x0) {\n                      local_cc = (code *******)0x0;\n                      local_c8 = pppppppcVar31;\n                      local_c0 = 0;\n                      local_bc = 0;\n                      local_b8 = 0;\n                      local_d0 = unaff_s5;\n                      local_c4 = unaff_s8;\n                      param_5 = (code *******)FUN_0005421c(&local_b4);\n                      (*(code *)PTR_free_00079c24)(local_b8);\n                      if (param_5 == (code *******)0x0) {\n                        param_4 = (code *******)*unaff_s5;\n                        if (param_4 == (code *******)0x0) {\nLAB_00055b70:\n                          (*(code *)PTR_free_00079c24)(unaff_s5);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          pppppppcVar33 = pppppppcVar28;\n                          goto LAB_00055b04;\n                        }\nLAB_00055528:\n                        (*(code *)PTR_free_00079c24)(local_50);\n                        pppppppcVar33 = pppppppcVar28;\n                        unaff_s4 = pppppppcVar42;\n                        local_58 = unaff_s8;\n                        local_54 = pppppppcVar31;\n                        local_50 = unaff_s5;\n                        goto LAB_00055548;\n                      }\nLAB_00055acc:\n                      param_4 = (code *******)0x0;\n                      pppppppcVar33 = pppppppcVar28;\n                      unaff_s4 = pppppppcVar42;\n                    }\n                    else {\n                      param_4 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                      if (param_4 == (code *******)0x0) goto LAB_00055b9c;\n                      unaff_s7 = (code *******)&local_d0;\n                      pcVar8 = (code *)(PTR_DAT_000799a4 + 0x421c);\n                      pcVar9 = (code *)(PTR_DAT_000799a4 + -0x6bc0);\n                      pppppppcVar33 = pppppppcVar28;\n                      while( true ) {\n                        pppppppcVar28 = (code *******)((int)unaff_s8 + 1);\n                        param_6 = (code *******)((int)pppppppcVar28 * 4);\n                        pppppppcVar30 = param_6;\n                        (*(code *)PTR_memset_00079b00)(param_4,0);\n                        local_c0 = 0;\n                        local_bc = 0;\n                        local_b8 = 0;\n                        pppppppcVar29 = unaff_s7;\n                        local_d0 = unaff_s5;\n                        local_cc = param_4;\n                        local_c8 = pppppppcVar31;\n                        local_c4 = unaff_s8;\n                        param_5 = (code *******)(*pcVar8)(&local_b4);\n                        (*(code *)PTR_free_00079c24)(local_b8);\n                        unaff_s4 = pppppppcVar28;\n                        if (param_5 != (code *******)0x0) break;\n                        if ((*unaff_s5 != (code ******)0x0) ||\n                           (param_6 = param_6 + -1, *param_4 != (code ******)0x0)) {\n                          pppppppcVar29 = unaff_s5;\n                          pppppppcVar30 = param_4;\n                          param_5 = (code *******)FUN_000520d0(pppppppcVar42);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          if (param_5 != (code *******)0x0) goto LAB_00055acc;\n                          goto LAB_00055528;\n                        }\n                        param_6 = (code *******)((int)local_50 + (int)param_6);\n                        do {\n                          while( true ) {\n                            unaff_s8 = (code *******)((int)unaff_s8 + -1);\n                            if ((int)unaff_s8 < 0) goto LAB_00055b70;\n                            pppppppcVar29 = (code *******)param_6[-1];\n                            if (pppppppcVar29 != (code *******)0x0) break;\n                            param_6 = param_6 + -1;\n                          }\n                          param_6 = param_6 + -1;\n                        } while (((uint)pppppppcVar29[0xd] & 0x8000000) == 0);\n                        pppppppcVar31 = (code *******)(*pcVar9)(&local_b4,pppppppcVar29,unaff_s8);\n                        pppppppcVar33 = pppppppcVar28;\n                      }\n                    }\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    (*(code *)PTR_free_00079c24)(param_4);\n                    local_150 = param_5;\n                    if (param_5 == (code *******)0x1) goto LAB_00055b04;\n                  }" else (compound_statement "{\n                    pppppppcVar29 = (code *******)&local_d0;\n                    if (pppppppcVar42[0x13] == (code ******)0x0) {\n                      local_cc = (code *******)0x0;\n                      local_c8 = pppppppcVar31;\n                      local_c0 = 0;\n                      local_bc = 0;\n                      local_b8 = 0;\n                      local_d0 = unaff_s5;\n                      local_c4 = unaff_s8;\n                      param_5 = (code *******)FUN_0005421c(&local_b4);\n                      (*(code *)PTR_free_00079c24)(local_b8);\n                      if (param_5 == (code *******)0x0) {\n                        param_4 = (code *******)*unaff_s5;\n                        if (param_4 == (code *******)0x0) {\nLAB_00055b70:\n                          (*(code *)PTR_free_00079c24)(unaff_s5);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          pppppppcVar33 = pppppppcVar28;\n                          goto LAB_00055b04;\n                        }\nLAB_00055528:\n                        (*(code *)PTR_free_00079c24)(local_50);\n                        pppppppcVar33 = pppppppcVar28;\n                        unaff_s4 = pppppppcVar42;\n                        local_58 = unaff_s8;\n                        local_54 = pppppppcVar31;\n                        local_50 = unaff_s5;\n                        goto LAB_00055548;\n                      }\nLAB_00055acc:\n                      param_4 = (code *******)0x0;\n                      pppppppcVar33 = pppppppcVar28;\n                      unaff_s4 = pppppppcVar42;\n                    }\n                    else {\n                      param_4 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                      if (param_4 == (code *******)0x0) goto LAB_00055b9c;\n                      unaff_s7 = (code *******)&local_d0;\n                      pcVar8 = (code *)(PTR_DAT_000799a4 + 0x421c);\n                      pcVar9 = (code *)(PTR_DAT_000799a4 + -0x6bc0);\n                      pppppppcVar33 = pppppppcVar28;\n                      while( true ) {\n                        pppppppcVar28 = (code *******)((int)unaff_s8 + 1);\n                        param_6 = (code *******)((int)pppppppcVar28 * 4);\n                        pppppppcVar30 = param_6;\n                        (*(code *)PTR_memset_00079b00)(param_4,0);\n                        local_c0 = 0;\n                        local_bc = 0;\n                        local_b8 = 0;\n                        pppppppcVar29 = unaff_s7;\n                        local_d0 = unaff_s5;\n                        local_cc = param_4;\n                        local_c8 = pppppppcVar31;\n                        local_c4 = unaff_s8;\n                        param_5 = (code *******)(*pcVar8)(&local_b4);\n                        (*(code *)PTR_free_00079c24)(local_b8);\n                        unaff_s4 = pppppppcVar28;\n                        if (param_5 != (code *******)0x0) break;\n                        if ((*unaff_s5 != (code ******)0x0) ||\n                           (param_6 = param_6 + -1, *param_4 != (code ******)0x0)) {\n                          pppppppcVar29 = unaff_s5;\n                          pppppppcVar30 = param_4;\n                          param_5 = (code *******)FUN_000520d0(pppppppcVar42);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          if (param_5 != (code *******)0x0) goto LAB_00055acc;\n                          goto LAB_00055528;\n                        }\n                        param_6 = (code *******)((int)local_50 + (int)param_6);\n                        do {\n                          while( true ) {\n                            unaff_s8 = (code *******)((int)unaff_s8 + -1);\n                            if ((int)unaff_s8 < 0) goto LAB_00055b70;\n                            pppppppcVar29 = (code *******)param_6[-1];\n                            if (pppppppcVar29 != (code *******)0x0) break;\n                            param_6 = param_6 + -1;\n                          }\n                          param_6 = param_6 + -1;\n                        } while (((uint)pppppppcVar29[0xd] & 0x8000000) == 0);\n                        pppppppcVar31 = (code *******)(*pcVar9)(&local_b4,pppppppcVar29,unaff_s8);\n                        pppppppcVar33 = pppppppcVar28;\n                      }\n                    }\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    (*(code *)PTR_free_00079c24)(param_4);\n                    local_150 = param_5;\n                    if (param_5 == (code *******)0x1) goto LAB_00055b04;\n                  }" { (expression_statement "pppppppcVar29 = (code *******)&local_d0;" (assignment_expression "pppppppcVar29 = (code *******)&local_d0" identifier = (cast_expression "(code *******)&local_d0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "&local_d0" & identifier))) ;) (if_statement "if (pppppppcVar42[0x13] == (code ******)0x0) {\n                      local_cc = (code *******)0x0;\n                      local_c8 = pppppppcVar31;\n                      local_c0 = 0;\n                      local_bc = 0;\n                      local_b8 = 0;\n                      local_d0 = unaff_s5;\n                      local_c4 = unaff_s8;\n                      param_5 = (code *******)FUN_0005421c(&local_b4);\n                      (*(code *)PTR_free_00079c24)(local_b8);\n                      if (param_5 == (code *******)0x0) {\n                        param_4 = (code *******)*unaff_s5;\n                        if (param_4 == (code *******)0x0) {\nLAB_00055b70:\n                          (*(code *)PTR_free_00079c24)(unaff_s5);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          pppppppcVar33 = pppppppcVar28;\n                          goto LAB_00055b04;\n                        }\nLAB_00055528:\n                        (*(code *)PTR_free_00079c24)(local_50);\n                        pppppppcVar33 = pppppppcVar28;\n                        unaff_s4 = pppppppcVar42;\n                        local_58 = unaff_s8;\n                        local_54 = pppppppcVar31;\n                        local_50 = unaff_s5;\n                        goto LAB_00055548;\n                      }\nLAB_00055acc:\n                      param_4 = (code *******)0x0;\n                      pppppppcVar33 = pppppppcVar28;\n                      unaff_s4 = pppppppcVar42;\n                    }\n                    else {\n                      param_4 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                      if (param_4 == (code *******)0x0) goto LAB_00055b9c;\n                      unaff_s7 = (code *******)&local_d0;\n                      pcVar8 = (code *)(PTR_DAT_000799a4 + 0x421c);\n                      pcVar9 = (code *)(PTR_DAT_000799a4 + -0x6bc0);\n                      pppppppcVar33 = pppppppcVar28;\n                      while( true ) {\n                        pppppppcVar28 = (code *******)((int)unaff_s8 + 1);\n                        param_6 = (code *******)((int)pppppppcVar28 * 4);\n                        pppppppcVar30 = param_6;\n                        (*(code *)PTR_memset_00079b00)(param_4,0);\n                        local_c0 = 0;\n                        local_bc = 0;\n                        local_b8 = 0;\n                        pppppppcVar29 = unaff_s7;\n                        local_d0 = unaff_s5;\n                        local_cc = param_4;\n                        local_c8 = pppppppcVar31;\n                        local_c4 = unaff_s8;\n                        param_5 = (code *******)(*pcVar8)(&local_b4);\n                        (*(code *)PTR_free_00079c24)(local_b8);\n                        unaff_s4 = pppppppcVar28;\n                        if (param_5 != (code *******)0x0) break;\n                        if ((*unaff_s5 != (code ******)0x0) ||\n                           (param_6 = param_6 + -1, *param_4 != (code ******)0x0)) {\n                          pppppppcVar29 = unaff_s5;\n                          pppppppcVar30 = param_4;\n                          param_5 = (code *******)FUN_000520d0(pppppppcVar42);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          if (param_5 != (code *******)0x0) goto LAB_00055acc;\n                          goto LAB_00055528;\n                        }\n                        param_6 = (code *******)((int)local_50 + (int)param_6);\n                        do {\n                          while( true ) {\n                            unaff_s8 = (code *******)((int)unaff_s8 + -1);\n                            if ((int)unaff_s8 < 0) goto LAB_00055b70;\n                            pppppppcVar29 = (code *******)param_6[-1];\n                            if (pppppppcVar29 != (code *******)0x0) break;\n                            param_6 = param_6 + -1;\n                          }\n                          param_6 = param_6 + -1;\n                        } while (((uint)pppppppcVar29[0xd] & 0x8000000) == 0);\n                        pppppppcVar31 = (code *******)(*pcVar9)(&local_b4,pppppppcVar29,unaff_s8);\n                        pppppppcVar33 = pppppppcVar28;\n                      }\n                    }" if (parenthesized_expression "(pppppppcVar42[0x13] == (code ******)0x0)" ( (binary_expression "pppppppcVar42[0x13] == (code ******)0x0" (subscript_expression "pppppppcVar42[0x13]" identifier [ number_literal ]) == (cast_expression "(code ******)0x0" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (compound_statement "{\n                      local_cc = (code *******)0x0;\n                      local_c8 = pppppppcVar31;\n                      local_c0 = 0;\n                      local_bc = 0;\n                      local_b8 = 0;\n                      local_d0 = unaff_s5;\n                      local_c4 = unaff_s8;\n                      param_5 = (code *******)FUN_0005421c(&local_b4);\n                      (*(code *)PTR_free_00079c24)(local_b8);\n                      if (param_5 == (code *******)0x0) {\n                        param_4 = (code *******)*unaff_s5;\n                        if (param_4 == (code *******)0x0) {\nLAB_00055b70:\n                          (*(code *)PTR_free_00079c24)(unaff_s5);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          pppppppcVar33 = pppppppcVar28;\n                          goto LAB_00055b04;\n                        }\nLAB_00055528:\n                        (*(code *)PTR_free_00079c24)(local_50);\n                        pppppppcVar33 = pppppppcVar28;\n                        unaff_s4 = pppppppcVar42;\n                        local_58 = unaff_s8;\n                        local_54 = pppppppcVar31;\n                        local_50 = unaff_s5;\n                        goto LAB_00055548;\n                      }\nLAB_00055acc:\n                      param_4 = (code *******)0x0;\n                      pppppppcVar33 = pppppppcVar28;\n                      unaff_s4 = pppppppcVar42;\n                    }" { (expression_statement "local_cc = (code *******)0x0;" (assignment_expression "local_cc = (code *******)0x0" identifier = (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "local_c8 = pppppppcVar31;" (assignment_expression "local_c8 = pppppppcVar31" identifier = identifier) ;) (expression_statement "local_c0 = 0;" (assignment_expression "local_c0 = 0" identifier = number_literal) ;) (expression_statement "local_bc = 0;" (assignment_expression "local_bc = 0" identifier = number_literal) ;) (expression_statement "local_b8 = 0;" (assignment_expression "local_b8 = 0" identifier = number_literal) ;) (expression_statement "local_d0 = unaff_s5;" (assignment_expression "local_d0 = unaff_s5" identifier = identifier) ;) (expression_statement "local_c4 = unaff_s8;" (assignment_expression "local_c4 = unaff_s8" identifier = identifier) ;) (expression_statement "param_5 = (code *******)FUN_0005421c(&local_b4);" (assignment_expression "param_5 = (code *******)FUN_0005421c(&local_b4)" identifier = (cast_expression "(code *******)FUN_0005421c(&local_b4)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "FUN_0005421c(&local_b4)" identifier (argument_list "(&local_b4)" ( (pointer_expression "&local_b4" & identifier) ))))) ;) (expression_statement "(*(code *)PTR_free_00079c24)(local_b8);" (call_expression "(*(code *)PTR_free_00079c24)(local_b8)" (parenthesized_expression "(*(code *)PTR_free_00079c24)" ( (pointer_expression "*(code *)PTR_free_00079c24" * (cast_expression "(code *)PTR_free_00079c24" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_b8)" ( identifier ))) ;) (if_statement "if (param_5 == (code *******)0x0) {\n                        param_4 = (code *******)*unaff_s5;\n                        if (param_4 == (code *******)0x0) {\nLAB_00055b70:\n                          (*(code *)PTR_free_00079c24)(unaff_s5);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          pppppppcVar33 = pppppppcVar28;\n                          goto LAB_00055b04;\n                        }\nLAB_00055528:\n                        (*(code *)PTR_free_00079c24)(local_50);\n                        pppppppcVar33 = pppppppcVar28;\n                        unaff_s4 = pppppppcVar42;\n                        local_58 = unaff_s8;\n                        local_54 = pppppppcVar31;\n                        local_50 = unaff_s5;\n                        goto LAB_00055548;\n                      }" if (parenthesized_expression "(param_5 == (code *******)0x0)" ( (binary_expression "param_5 == (code *******)0x0" identifier == (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\n                        param_4 = (code *******)*unaff_s5;\n                        if (param_4 == (code *******)0x0) {\nLAB_00055b70:\n                          (*(code *)PTR_free_00079c24)(unaff_s5);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          pppppppcVar33 = pppppppcVar28;\n                          goto LAB_00055b04;\n                        }\nLAB_00055528:\n                        (*(code *)PTR_free_00079c24)(local_50);\n                        pppppppcVar33 = pppppppcVar28;\n                        unaff_s4 = pppppppcVar42;\n                        local_58 = unaff_s8;\n                        local_54 = pppppppcVar31;\n                        local_50 = unaff_s5;\n                        goto LAB_00055548;\n                      }" { (expression_statement "param_4 = (code *******)*unaff_s5;" (assignment_expression "param_4 = (code *******)*unaff_s5" identifier = (cast_expression "(code *******)*unaff_s5" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "*unaff_s5" * identifier))) ;) (if_statement "if (param_4 == (code *******)0x0) {\nLAB_00055b70:\n                          (*(code *)PTR_free_00079c24)(unaff_s5);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          pppppppcVar33 = pppppppcVar28;\n                          goto LAB_00055b04;\n                        }" if (parenthesized_expression "(param_4 == (code *******)0x0)" ( (binary_expression "param_4 == (code *******)0x0" identifier == (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\nLAB_00055b70:\n                          (*(code *)PTR_free_00079c24)(unaff_s5);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          pppppppcVar33 = pppppppcVar28;\n                          goto LAB_00055b04;\n                        }" { (labeled_statement "LAB_00055b70:\n                          (*(code *)PTR_free_00079c24)(unaff_s5);" statement_identifier : (expression_statement "(*(code *)PTR_free_00079c24)(unaff_s5);" (call_expression "(*(code *)PTR_free_00079c24)(unaff_s5)" (parenthesized_expression "(*(code *)PTR_free_00079c24)" ( (pointer_expression "*(code *)PTR_free_00079c24" * (cast_expression "(code *)PTR_free_00079c24" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s5)" ( identifier ))) ;)) (expression_statement "(*(code *)PTR_free_00079c24)(param_4);" (call_expression "(*(code *)PTR_free_00079c24)(param_4)" (parenthesized_expression "(*(code *)PTR_free_00079c24)" ( (pointer_expression "*(code *)PTR_free_00079c24" * (cast_expression "(code *)PTR_free_00079c24" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_4)" ( identifier ))) ;) (expression_statement "pppppppcVar33 = pppppppcVar28;" (assignment_expression "pppppppcVar33 = pppppppcVar28" identifier = identifier) ;) (goto_statement "goto LAB_00055b04;" goto statement_identifier ;) })) (labeled_statement "LAB_00055528:\n                        (*(code *)PTR_free_00079c24)(local_50);" statement_identifier : (expression_statement "(*(code *)PTR_free_00079c24)(local_50);" (call_expression "(*(code *)PTR_free_00079c24)(local_50)" (parenthesized_expression "(*(code *)PTR_free_00079c24)" ( (pointer_expression "*(code *)PTR_free_00079c24" * (cast_expression "(code *)PTR_free_00079c24" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_50)" ( identifier ))) ;)) (expression_statement "pppppppcVar33 = pppppppcVar28;" (assignment_expression "pppppppcVar33 = pppppppcVar28" identifier = identifier) ;) (expression_statement "unaff_s4 = pppppppcVar42;" (assignment_expression "unaff_s4 = pppppppcVar42" identifier = identifier) ;) (expression_statement "local_58 = unaff_s8;" (assignment_expression "local_58 = unaff_s8" identifier = identifier) ;) (expression_statement "local_54 = pppppppcVar31;" (assignment_expression "local_54 = pppppppcVar31" identifier = identifier) ;) (expression_statement "local_50 = unaff_s5;" (assignment_expression "local_50 = unaff_s5" identifier = identifier) ;) (goto_statement "goto LAB_00055548;" goto statement_identifier ;) })) (labeled_statement "LAB_00055acc:\n                      param_4 = (code *******)0x0;" statement_identifier : (expression_statement "param_4 = (code *******)0x0;" (assignment_expression "param_4 = (code *******)0x0" identifier = (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;)) (expression_statement "pppppppcVar33 = pppppppcVar28;" (assignment_expression "pppppppcVar33 = pppppppcVar28" identifier = identifier) ;) (expression_statement "unaff_s4 = pppppppcVar42;" (assignment_expression "unaff_s4 = pppppppcVar42" identifier = identifier) ;) }) (else_clause "else {\n                      param_4 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                      if (param_4 == (code *******)0x0) goto LAB_00055b9c;\n                      unaff_s7 = (code *******)&local_d0;\n                      pcVar8 = (code *)(PTR_DAT_000799a4 + 0x421c);\n                      pcVar9 = (code *)(PTR_DAT_000799a4 + -0x6bc0);\n                      pppppppcVar33 = pppppppcVar28;\n                      while( true ) {\n                        pppppppcVar28 = (code *******)((int)unaff_s8 + 1);\n                        param_6 = (code *******)((int)pppppppcVar28 * 4);\n                        pppppppcVar30 = param_6;\n                        (*(code *)PTR_memset_00079b00)(param_4,0);\n                        local_c0 = 0;\n                        local_bc = 0;\n                        local_b8 = 0;\n                        pppppppcVar29 = unaff_s7;\n                        local_d0 = unaff_s5;\n                        local_cc = param_4;\n                        local_c8 = pppppppcVar31;\n                        local_c4 = unaff_s8;\n                        param_5 = (code *******)(*pcVar8)(&local_b4);\n                        (*(code *)PTR_free_00079c24)(local_b8);\n                        unaff_s4 = pppppppcVar28;\n                        if (param_5 != (code *******)0x0) break;\n                        if ((*unaff_s5 != (code ******)0x0) ||\n                           (param_6 = param_6 + -1, *param_4 != (code ******)0x0)) {\n                          pppppppcVar29 = unaff_s5;\n                          pppppppcVar30 = param_4;\n                          param_5 = (code *******)FUN_000520d0(pppppppcVar42);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          if (param_5 != (code *******)0x0) goto LAB_00055acc;\n                          goto LAB_00055528;\n                        }\n                        param_6 = (code *******)((int)local_50 + (int)param_6);\n                        do {\n                          while( true ) {\n                            unaff_s8 = (code *******)((int)unaff_s8 + -1);\n                            if ((int)unaff_s8 < 0) goto LAB_00055b70;\n                            pppppppcVar29 = (code *******)param_6[-1];\n                            if (pppppppcVar29 != (code *******)0x0) break;\n                            param_6 = param_6 + -1;\n                          }\n                          param_6 = param_6 + -1;\n                        } while (((uint)pppppppcVar29[0xd] & 0x8000000) == 0);\n                        pppppppcVar31 = (code *******)(*pcVar9)(&local_b4,pppppppcVar29,unaff_s8);\n                        pppppppcVar33 = pppppppcVar28;\n                      }\n                    }" else (compound_statement "{\n                      param_4 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                      if (param_4 == (code *******)0x0) goto LAB_00055b9c;\n                      unaff_s7 = (code *******)&local_d0;\n                      pcVar8 = (code *)(PTR_DAT_000799a4 + 0x421c);\n                      pcVar9 = (code *)(PTR_DAT_000799a4 + -0x6bc0);\n                      pppppppcVar33 = pppppppcVar28;\n                      while( true ) {\n                        pppppppcVar28 = (code *******)((int)unaff_s8 + 1);\n                        param_6 = (code *******)((int)pppppppcVar28 * 4);\n                        pppppppcVar30 = param_6;\n                        (*(code *)PTR_memset_00079b00)(param_4,0);\n                        local_c0 = 0;\n                        local_bc = 0;\n                        local_b8 = 0;\n                        pppppppcVar29 = unaff_s7;\n                        local_d0 = unaff_s5;\n                        local_cc = param_4;\n                        local_c8 = pppppppcVar31;\n                        local_c4 = unaff_s8;\n                        param_5 = (code *******)(*pcVar8)(&local_b4);\n                        (*(code *)PTR_free_00079c24)(local_b8);\n                        unaff_s4 = pppppppcVar28;\n                        if (param_5 != (code *******)0x0) break;\n                        if ((*unaff_s5 != (code ******)0x0) ||\n                           (param_6 = param_6 + -1, *param_4 != (code ******)0x0)) {\n                          pppppppcVar29 = unaff_s5;\n                          pppppppcVar30 = param_4;\n                          param_5 = (code *******)FUN_000520d0(pppppppcVar42);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          if (param_5 != (code *******)0x0) goto LAB_00055acc;\n                          goto LAB_00055528;\n                        }\n                        param_6 = (code *******)((int)local_50 + (int)param_6);\n                        do {\n                          while( true ) {\n                            unaff_s8 = (code *******)((int)unaff_s8 + -1);\n                            if ((int)unaff_s8 < 0) goto LAB_00055b70;\n                            pppppppcVar29 = (code *******)param_6[-1];\n                            if (pppppppcVar29 != (code *******)0x0) break;\n                            param_6 = param_6 + -1;\n                          }\n                          param_6 = param_6 + -1;\n                        } while (((uint)pppppppcVar29[0xd] & 0x8000000) == 0);\n                        pppppppcVar31 = (code *******)(*pcVar9)(&local_b4,pppppppcVar29,unaff_s8);\n                        pppppppcVar33 = pppppppcVar28;\n                      }\n                    }" { (expression_statement "param_4 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);" (assignment_expression "param_4 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4)" identifier = (cast_expression "(code *******)(*(code *)PTR_malloc_00079b54)(param_4)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "(*(code *)PTR_malloc_00079b54)(param_4)" (parenthesized_expression "(*(code *)PTR_malloc_00079b54)" ( (pointer_expression "*(code *)PTR_malloc_00079b54" * (cast_expression "(code *)PTR_malloc_00079b54" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_4)" ( identifier ))))) ;) (if_statement "if (param_4 == (code *******)0x0) goto LAB_00055b9c;" if (parenthesized_expression "(param_4 == (code *******)0x0)" ( (binary_expression "param_4 == (code *******)0x0" identifier == (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (goto_statement "goto LAB_00055b9c;" goto statement_identifier ;)) (expression_statement "unaff_s7 = (code *******)&local_d0;" (assignment_expression "unaff_s7 = (code *******)&local_d0" identifier = (cast_expression "(code *******)&local_d0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "&local_d0" & identifier))) ;) (expression_statement "pcVar8 = (code *)(PTR_DAT_000799a4 + 0x421c);" (assignment_expression "pcVar8 = (code *)(PTR_DAT_000799a4 + 0x421c)" identifier = (cast_expression "(code *)(PTR_DAT_000799a4 + 0x421c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000799a4 + 0x421c)" ( (binary_expression "PTR_DAT_000799a4 + 0x421c" identifier + number_literal) )))) ;) (expression_statement "pcVar9 = (code *)(PTR_DAT_000799a4 + -0x6bc0);" (assignment_expression "pcVar9 = (code *)(PTR_DAT_000799a4 + -0x6bc0)" identifier = (cast_expression "(code *)(PTR_DAT_000799a4 + -0x6bc0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000799a4 + -0x6bc0)" ( (binary_expression "PTR_DAT_000799a4 + -0x6bc0" identifier + number_literal) )))) ;) (expression_statement "pppppppcVar33 = pppppppcVar28;" (assignment_expression "pppppppcVar33 = pppppppcVar28" identifier = identifier) ;) (while_statement "while( true ) {\n                        pppppppcVar28 = (code *******)((int)unaff_s8 + 1);\n                        param_6 = (code *******)((int)pppppppcVar28 * 4);\n                        pppppppcVar30 = param_6;\n                        (*(code *)PTR_memset_00079b00)(param_4,0);\n                        local_c0 = 0;\n                        local_bc = 0;\n                        local_b8 = 0;\n                        pppppppcVar29 = unaff_s7;\n                        local_d0 = unaff_s5;\n                        local_cc = param_4;\n                        local_c8 = pppppppcVar31;\n                        local_c4 = unaff_s8;\n                        param_5 = (code *******)(*pcVar8)(&local_b4);\n                        (*(code *)PTR_free_00079c24)(local_b8);\n                        unaff_s4 = pppppppcVar28;\n                        if (param_5 != (code *******)0x0) break;\n                        if ((*unaff_s5 != (code ******)0x0) ||\n                           (param_6 = param_6 + -1, *param_4 != (code ******)0x0)) {\n                          pppppppcVar29 = unaff_s5;\n                          pppppppcVar30 = param_4;\n                          param_5 = (code *******)FUN_000520d0(pppppppcVar42);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          if (param_5 != (code *******)0x0) goto LAB_00055acc;\n                          goto LAB_00055528;\n                        }\n                        param_6 = (code *******)((int)local_50 + (int)param_6);\n                        do {\n                          while( true ) {\n                            unaff_s8 = (code *******)((int)unaff_s8 + -1);\n                            if ((int)unaff_s8 < 0) goto LAB_00055b70;\n                            pppppppcVar29 = (code *******)param_6[-1];\n                            if (pppppppcVar29 != (code *******)0x0) break;\n                            param_6 = param_6 + -1;\n                          }\n                          param_6 = param_6 + -1;\n                        } while (((uint)pppppppcVar29[0xd] & 0x8000000) == 0);\n                        pppppppcVar31 = (code *******)(*pcVar9)(&local_b4,pppppppcVar29,unaff_s8);\n                        pppppppcVar33 = pppppppcVar28;\n                      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                        pppppppcVar28 = (code *******)((int)unaff_s8 + 1);\n                        param_6 = (code *******)((int)pppppppcVar28 * 4);\n                        pppppppcVar30 = param_6;\n                        (*(code *)PTR_memset_00079b00)(param_4,0);\n                        local_c0 = 0;\n                        local_bc = 0;\n                        local_b8 = 0;\n                        pppppppcVar29 = unaff_s7;\n                        local_d0 = unaff_s5;\n                        local_cc = param_4;\n                        local_c8 = pppppppcVar31;\n                        local_c4 = unaff_s8;\n                        param_5 = (code *******)(*pcVar8)(&local_b4);\n                        (*(code *)PTR_free_00079c24)(local_b8);\n                        unaff_s4 = pppppppcVar28;\n                        if (param_5 != (code *******)0x0) break;\n                        if ((*unaff_s5 != (code ******)0x0) ||\n                           (param_6 = param_6 + -1, *param_4 != (code ******)0x0)) {\n                          pppppppcVar29 = unaff_s5;\n                          pppppppcVar30 = param_4;\n                          param_5 = (code *******)FUN_000520d0(pppppppcVar42);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          if (param_5 != (code *******)0x0) goto LAB_00055acc;\n                          goto LAB_00055528;\n                        }\n                        param_6 = (code *******)((int)local_50 + (int)param_6);\n                        do {\n                          while( true ) {\n                            unaff_s8 = (code *******)((int)unaff_s8 + -1);\n                            if ((int)unaff_s8 < 0) goto LAB_00055b70;\n                            pppppppcVar29 = (code *******)param_6[-1];\n                            if (pppppppcVar29 != (code *******)0x0) break;\n                            param_6 = param_6 + -1;\n                          }\n                          param_6 = param_6 + -1;\n                        } while (((uint)pppppppcVar29[0xd] & 0x8000000) == 0);\n                        pppppppcVar31 = (code *******)(*pcVar9)(&local_b4,pppppppcVar29,unaff_s8);\n                        pppppppcVar33 = pppppppcVar28;\n                      }" { (expression_statement "pppppppcVar28 = (code *******)((int)unaff_s8 + 1);" (assignment_expression "pppppppcVar28 = (code *******)((int)unaff_s8 + 1)" identifier = (cast_expression "(code *******)((int)unaff_s8 + 1)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)unaff_s8 + 1)" ( (binary_expression "(int)unaff_s8 + 1" (cast_expression "(int)unaff_s8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "param_6 = (code *******)((int)pppppppcVar28 * 4);" (assignment_expression "param_6 = (code *******)((int)pppppppcVar28 * 4)" identifier = (cast_expression "(code *******)((int)pppppppcVar28 * 4)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)pppppppcVar28 * 4)" ( (binary_expression "(int)pppppppcVar28 * 4" (cast_expression "(int)pppppppcVar28" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) )))) ;) (expression_statement "pppppppcVar30 = param_6;" (assignment_expression "pppppppcVar30 = param_6" identifier = identifier) ;) (expression_statement "(*(code *)PTR_memset_00079b00)(param_4,0);" (call_expression "(*(code *)PTR_memset_00079b00)(param_4,0)" (parenthesized_expression "(*(code *)PTR_memset_00079b00)" ( (pointer_expression "*(code *)PTR_memset_00079b00" * (cast_expression "(code *)PTR_memset_00079b00" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_4,0)" ( identifier , number_literal ))) ;) (expression_statement "local_c0 = 0;" (assignment_expression "local_c0 = 0" identifier = number_literal) ;) (expression_statement "local_bc = 0;" (assignment_expression "local_bc = 0" identifier = number_literal) ;) (expression_statement "local_b8 = 0;" (assignment_expression "local_b8 = 0" identifier = number_literal) ;) (expression_statement "pppppppcVar29 = unaff_s7;" (assignment_expression "pppppppcVar29 = unaff_s7" identifier = identifier) ;) (expression_statement "local_d0 = unaff_s5;" (assignment_expression "local_d0 = unaff_s5" identifier = identifier) ;) (expression_statement "local_cc = param_4;" (assignment_expression "local_cc = param_4" identifier = identifier) ;) (expression_statement "local_c8 = pppppppcVar31;" (assignment_expression "local_c8 = pppppppcVar31" identifier = identifier) ;) (expression_statement "local_c4 = unaff_s8;" (assignment_expression "local_c4 = unaff_s8" identifier = identifier) ;) (expression_statement "param_5 = (code *******)(*pcVar8)(&local_b4);" (assignment_expression "param_5 = (code *******)(*pcVar8)(&local_b4)" identifier = (cast_expression "(code *******)(*pcVar8)(&local_b4)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "(*pcVar8)(&local_b4)" (parenthesized_expression "(*pcVar8)" ( (pointer_expression "*pcVar8" * identifier) )) (argument_list "(&local_b4)" ( (pointer_expression "&local_b4" & identifier) ))))) ;) (expression_statement "(*(code *)PTR_free_00079c24)(local_b8);" (call_expression "(*(code *)PTR_free_00079c24)(local_b8)" (parenthesized_expression "(*(code *)PTR_free_00079c24)" ( (pointer_expression "*(code *)PTR_free_00079c24" * (cast_expression "(code *)PTR_free_00079c24" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_b8)" ( identifier ))) ;) (expression_statement "unaff_s4 = pppppppcVar28;" (assignment_expression "unaff_s4 = pppppppcVar28" identifier = identifier) ;) (if_statement "if (param_5 != (code *******)0x0) break;" if (parenthesized_expression "(param_5 != (code *******)0x0)" ( (binary_expression "param_5 != (code *******)0x0" identifier != (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (break_statement "break;" break ;)) (if_statement "if ((*unaff_s5 != (code ******)0x0) ||\n                           (param_6 = param_6 + -1, *param_4 != (code ******)0x0)) {\n                          pppppppcVar29 = unaff_s5;\n                          pppppppcVar30 = param_4;\n                          param_5 = (code *******)FUN_000520d0(pppppppcVar42);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          if (param_5 != (code *******)0x0) goto LAB_00055acc;\n                          goto LAB_00055528;\n                        }" if (parenthesized_expression "((*unaff_s5 != (code ******)0x0) ||\n                           (param_6 = param_6 + -1, *param_4 != (code ******)0x0))" ( (binary_expression "(*unaff_s5 != (code ******)0x0) ||\n                           (param_6 = param_6 + -1, *param_4 != (code ******)0x0)" (parenthesized_expression "(*unaff_s5 != (code ******)0x0)" ( (binary_expression "*unaff_s5 != (code ******)0x0" (pointer_expression "*unaff_s5" * identifier) != (cast_expression "(code ******)0x0" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) || (parenthesized_expression "(param_6 = param_6 + -1, *param_4 != (code ******)0x0)" ( (comma_expression "param_6 = param_6 + -1, *param_4 != (code ******)0x0" (assignment_expression "param_6 = param_6 + -1" identifier = (binary_expression "param_6 + -1" identifier + number_literal)) , (binary_expression "*param_4 != (code ******)0x0" (pointer_expression "*param_4" * identifier) != (cast_expression "(code ******)0x0" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal))) ))) )) (compound_statement "{\n                          pppppppcVar29 = unaff_s5;\n                          pppppppcVar30 = param_4;\n                          param_5 = (code *******)FUN_000520d0(pppppppcVar42);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          if (param_5 != (code *******)0x0) goto LAB_00055acc;\n                          goto LAB_00055528;\n                        }" { (expression_statement "pppppppcVar29 = unaff_s5;" (assignment_expression "pppppppcVar29 = unaff_s5" identifier = identifier) ;) (expression_statement "pppppppcVar30 = param_4;" (assignment_expression "pppppppcVar30 = param_4" identifier = identifier) ;) (expression_statement "param_5 = (code *******)FUN_000520d0(pppppppcVar42);" (assignment_expression "param_5 = (code *******)FUN_000520d0(pppppppcVar42)" identifier = (cast_expression "(code *******)FUN_000520d0(pppppppcVar42)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "FUN_000520d0(pppppppcVar42)" identifier (argument_list "(pppppppcVar42)" ( identifier ))))) ;) (expression_statement "(*(code *)PTR_free_00079c24)(param_4);" (call_expression "(*(code *)PTR_free_00079c24)(param_4)" (parenthesized_expression "(*(code *)PTR_free_00079c24)" ( (pointer_expression "*(code *)PTR_free_00079c24" * (cast_expression "(code *)PTR_free_00079c24" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_4)" ( identifier ))) ;) (if_statement "if (param_5 != (code *******)0x0) goto LAB_00055acc;" if (parenthesized_expression "(param_5 != (code *******)0x0)" ( (binary_expression "param_5 != (code *******)0x0" identifier != (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (goto_statement "goto LAB_00055acc;" goto statement_identifier ;)) (goto_statement "goto LAB_00055528;" goto statement_identifier ;) })) (expression_statement "param_6 = (code *******)((int)local_50 + (int)param_6);" (assignment_expression "param_6 = (code *******)((int)local_50 + (int)param_6)" identifier = (cast_expression "(code *******)((int)local_50 + (int)param_6)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)local_50 + (int)param_6)" ( (binary_expression "(int)local_50 + (int)param_6" (cast_expression "(int)local_50" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)param_6" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (do_statement "do {\n                          while( true ) {\n                            unaff_s8 = (code *******)((int)unaff_s8 + -1);\n                            if ((int)unaff_s8 < 0) goto LAB_00055b70;\n                            pppppppcVar29 = (code *******)param_6[-1];\n                            if (pppppppcVar29 != (code *******)0x0) break;\n                            param_6 = param_6 + -1;\n                          }\n                          param_6 = param_6 + -1;\n                        } while (((uint)pppppppcVar29[0xd] & 0x8000000) == 0);" do (compound_statement "{\n                          while( true ) {\n                            unaff_s8 = (code *******)((int)unaff_s8 + -1);\n                            if ((int)unaff_s8 < 0) goto LAB_00055b70;\n                            pppppppcVar29 = (code *******)param_6[-1];\n                            if (pppppppcVar29 != (code *******)0x0) break;\n                            param_6 = param_6 + -1;\n                          }\n                          param_6 = param_6 + -1;\n                        }" { (while_statement "while( true ) {\n                            unaff_s8 = (code *******)((int)unaff_s8 + -1);\n                            if ((int)unaff_s8 < 0) goto LAB_00055b70;\n                            pppppppcVar29 = (code *******)param_6[-1];\n                            if (pppppppcVar29 != (code *******)0x0) break;\n                            param_6 = param_6 + -1;\n                          }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                            unaff_s8 = (code *******)((int)unaff_s8 + -1);\n                            if ((int)unaff_s8 < 0) goto LAB_00055b70;\n                            pppppppcVar29 = (code *******)param_6[-1];\n                            if (pppppppcVar29 != (code *******)0x0) break;\n                            param_6 = param_6 + -1;\n                          }" { (expression_statement "unaff_s8 = (code *******)((int)unaff_s8 + -1);" (assignment_expression "unaff_s8 = (code *******)((int)unaff_s8 + -1)" identifier = (cast_expression "(code *******)((int)unaff_s8 + -1)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)unaff_s8 + -1)" ( (binary_expression "(int)unaff_s8 + -1" (cast_expression "(int)unaff_s8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if ((int)unaff_s8 < 0) goto LAB_00055b70;" if (parenthesized_expression "((int)unaff_s8 < 0)" ( (binary_expression "(int)unaff_s8 < 0" (cast_expression "(int)unaff_s8" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto LAB_00055b70;" goto statement_identifier ;)) (expression_statement "pppppppcVar29 = (code *******)param_6[-1];" (assignment_expression "pppppppcVar29 = (code *******)param_6[-1]" identifier = (cast_expression "(code *******)param_6[-1]" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (subscript_expression "param_6[-1]" identifier [ number_literal ]))) ;) (if_statement "if (pppppppcVar29 != (code *******)0x0) break;" if (parenthesized_expression "(pppppppcVar29 != (code *******)0x0)" ( (binary_expression "pppppppcVar29 != (code *******)0x0" identifier != (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "param_6 = param_6 + -1;" (assignment_expression "param_6 = param_6 + -1" identifier = (binary_expression "param_6 + -1" identifier + number_literal)) ;) })) (expression_statement "param_6 = param_6 + -1;" (assignment_expression "param_6 = param_6 + -1" identifier = (binary_expression "param_6 + -1" identifier + number_literal)) ;) }) while (parenthesized_expression "(((uint)pppppppcVar29[0xd] & 0x8000000) == 0)" ( (binary_expression "((uint)pppppppcVar29[0xd] & 0x8000000) == 0" (parenthesized_expression "((uint)pppppppcVar29[0xd] & 0x8000000)" ( (binary_expression "(uint)pppppppcVar29[0xd] & 0x8000000" (cast_expression "(uint)pppppppcVar29[0xd]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pppppppcVar29[0xd]" identifier [ number_literal ])) & number_literal) )) == number_literal) )) ;) (expression_statement "pppppppcVar31 = (code *******)(*pcVar9)(&local_b4,pppppppcVar29,unaff_s8);" (assignment_expression "pppppppcVar31 = (code *******)(*pcVar9)(&local_b4,pppppppcVar29,unaff_s8)" identifier = (cast_expression "(code *******)(*pcVar9)(&local_b4,pppppppcVar29,unaff_s8)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "(*pcVar9)(&local_b4,pppppppcVar29,unaff_s8)" (parenthesized_expression "(*pcVar9)" ( (pointer_expression "*pcVar9" * identifier) )) (argument_list "(&local_b4,pppppppcVar29,unaff_s8)" ( (pointer_expression "&local_b4" & identifier) , identifier , identifier ))))) ;) (expression_statement "pppppppcVar33 = pppppppcVar28;" (assignment_expression "pppppppcVar33 = pppppppcVar28" identifier = identifier) ;) })) }))) (expression_statement "(*(code *)PTR_free_00079c24)(unaff_s5);" (call_expression "(*(code *)PTR_free_00079c24)(unaff_s5)" (parenthesized_expression "(*(code *)PTR_free_00079c24)" ( (pointer_expression "*(code *)PTR_free_00079c24" * (cast_expression "(code *)PTR_free_00079c24" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s5)" ( identifier ))) ;) (expression_statement "(*(code *)PTR_free_00079c24)(param_4);" (call_expression "(*(code *)PTR_free_00079c24)(param_4)" (parenthesized_expression "(*(code *)PTR_free_00079c24)" ( (pointer_expression "*(code *)PTR_free_00079c24" * (cast_expression "(code *)PTR_free_00079c24" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_4)" ( identifier ))) ;) (expression_statement "local_150 = param_5;" (assignment_expression "local_150 = param_5" identifier = identifier) ;) (if_statement "if (param_5 == (code *******)0x1) goto LAB_00055b04;" if (parenthesized_expression "(param_5 == (code *******)0x1)" ( (binary_expression "param_5 == (code *******)0x1" identifier == (cast_expression "(code *******)0x1" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (goto_statement "goto LAB_00055b04;" goto statement_identifier ;)) }))) }) (else_clause "else {\n                  local_150 = (code *******)0xc;\n                  pppppppcVar33 = pppppppcVar28;\n                }" else (compound_statement "{\n                  local_150 = (code *******)0xc;\n                  pppppppcVar33 = pppppppcVar28;\n                }" { (expression_statement "local_150 = (code *******)0xc;" (assignment_expression "local_150 = (code *******)0xc" identifier = (cast_expression "(code *******)0xc" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "pppppppcVar33 = pppppppcVar28;" (assignment_expression "pppppppcVar33 = pppppppcVar28" identifier = identifier) ;) }))) (goto_statement "goto LAB_000557e4;" goto statement_identifier ;) })) (if_statement "if (pppppppcVar38[0x13] != (code ******)0x0) {\n                pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                pppppppcVar30 = unaff_s8;\n                local_54 = (code *******)FUN_00049440(&local_b4);\n                goto LAB_00055c6c;\n              }" if (parenthesized_expression "(pppppppcVar38[0x13] != (code ******)0x0)" ( (binary_expression "pppppppcVar38[0x13] != (code ******)0x0" (subscript_expression "pppppppcVar38[0x13]" identifier [ number_literal ]) != (cast_expression "(code ******)0x0" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (compound_statement "{\n                pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                pppppppcVar30 = unaff_s8;\n                local_54 = (code *******)FUN_00049440(&local_b4);\n                goto LAB_00055c6c;\n              }" { (expression_statement "pppppppcVar29 = (code *******)local_50[(int)unaff_s8];" (assignment_expression "pppppppcVar29 = (code *******)local_50[(int)unaff_s8]" identifier = (cast_expression "(code *******)local_50[(int)unaff_s8]" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (subscript_expression "local_50[(int)unaff_s8]" identifier [ (cast_expression "(int)unaff_s8" ( (type_descriptor "int" primitive_type) ) identifier) ]))) ;) (expression_statement "pppppppcVar30 = unaff_s8;" (assignment_expression "pppppppcVar30 = unaff_s8" identifier = identifier) ;) (expression_statement "local_54 = (code *******)FUN_00049440(&local_b4);" (assignment_expression "local_54 = (code *******)FUN_00049440(&local_b4)" identifier = (cast_expression "(code *******)FUN_00049440(&local_b4)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "FUN_00049440(&local_b4)" identifier (argument_list "(&local_b4)" ( (pointer_expression "&local_b4" & identifier) ))))) ;) (goto_statement "goto LAB_00055c6c;" goto statement_identifier ;) })) (labeled_statement "LAB_00055c08:\n              if ((((uint)param_1[7] & 0x8000000) == 0) && ((code *******)0x1 < pppppppcVar3)) {\n                cVar23 = *(code *)(pppppppcVar38 + 0x16);\n                goto LAB_00055c20;\n              }" statement_identifier : (if_statement "if ((((uint)param_1[7] & 0x8000000) == 0) && ((code *******)0x1 < pppppppcVar3)) {\n                cVar23 = *(code *)(pppppppcVar38 + 0x16);\n                goto LAB_00055c20;\n              }" if (parenthesized_expression "((((uint)param_1[7] & 0x8000000) == 0) && ((code *******)0x1 < pppppppcVar3))" ( (binary_expression "(((uint)param_1[7] & 0x8000000) == 0) && ((code *******)0x1 < pppppppcVar3)" (parenthesized_expression "(((uint)param_1[7] & 0x8000000) == 0)" ( (binary_expression "((uint)param_1[7] & 0x8000000) == 0" (parenthesized_expression "((uint)param_1[7] & 0x8000000)" ( (binary_expression "(uint)param_1[7] & 0x8000000" (cast_expression "(uint)param_1[7]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_1[7]" identifier [ number_literal ])) & number_literal) )) == number_literal) )) && (parenthesized_expression "((code *******)0x1 < pppppppcVar3)" ( (binary_expression "(code *******)0x1 < pppppppcVar3" (cast_expression "(code *******)0x1" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal) < identifier) ))) )) (compound_statement "{\n                cVar23 = *(code *)(pppppppcVar38 + 0x16);\n                goto LAB_00055c20;\n              }" { (expression_statement "cVar23 = *(code *)(pppppppcVar38 + 0x16);" (assignment_expression "cVar23 = *(code *)(pppppppcVar38 + 0x16)" identifier = (pointer_expression "*(code *)(pppppppcVar38 + 0x16)" * (cast_expression "(code *)(pppppppcVar38 + 0x16)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pppppppcVar38 + 0x16)" ( (binary_expression "pppppppcVar38 + 0x16" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_00055c20;" goto statement_identifier ;) }))) (labeled_statement "LAB_00055548:\n              if (pppppppcVar3 == (code *******)0x0) goto LAB_000557e4;" statement_identifier : (if_statement "if (pppppppcVar3 == (code *******)0x0) goto LAB_000557e4;" if (parenthesized_expression "(pppppppcVar3 == (code *******)0x0)" ( (binary_expression "pppppppcVar3 == (code *******)0x0" identifier == (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (goto_statement "goto LAB_000557e4;" goto statement_identifier ;))) (if_statement "if (pppppppcVar3 < (code *******)0x2) {\n                *param_8 = (code ******)0x0;\n                param_8[1] = (code ******)local_58;\n                goto LAB_000555ac;\n              }" if (parenthesized_expression "(pppppppcVar3 < (code *******)0x2)" ( (binary_expression "pppppppcVar3 < (code *******)0x2" identifier < (cast_expression "(code *******)0x2" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\n                *param_8 = (code ******)0x0;\n                param_8[1] = (code ******)local_58;\n                goto LAB_000555ac;\n              }" { (expression_statement "*param_8 = (code ******)0x0;" (assignment_expression "*param_8 = (code ******)0x0" (pointer_expression "*param_8" * identifier) = (cast_expression "(code ******)0x0" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) (expression_statement "param_8[1] = (code ******)local_58;" (assignment_expression "param_8[1] = (code ******)local_58" (subscript_expression "param_8[1]" identifier [ number_literal ]) = (cast_expression "(code ******)local_58" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) identifier)) ;) (goto_statement "goto LAB_000555ac;" goto statement_identifier ;) })) (expression_statement "pppppppcVar29 = param_8 + 2;" (assignment_expression "pppppppcVar29 = param_8 + 2" identifier = (binary_expression "param_8 + 2" identifier + number_literal)) ;) (do_statement "do {\n                pppppppcVar29[1] = (code ******)0xffffffff;\n                *pppppppcVar29 = (code ******)0xffffffff;\n                pppppppcVar29 = pppppppcVar29 + 2;\n              } while (pppppppcVar29 != param_8 + (int)pppppppcVar3 * 2);" do (compound_statement "{\n                pppppppcVar29[1] = (code ******)0xffffffff;\n                *pppppppcVar29 = (code ******)0xffffffff;\n                pppppppcVar29 = pppppppcVar29 + 2;\n              }" { (expression_statement "pppppppcVar29[1] = (code ******)0xffffffff;" (assignment_expression "pppppppcVar29[1] = (code ******)0xffffffff" (subscript_expression "pppppppcVar29[1]" identifier [ number_literal ]) = (cast_expression "(code ******)0xffffffff" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) (expression_statement "*pppppppcVar29 = (code ******)0xffffffff;" (assignment_expression "*pppppppcVar29 = (code ******)0xffffffff" (pointer_expression "*pppppppcVar29" * identifier) = (cast_expression "(code ******)0xffffffff" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) (expression_statement "pppppppcVar29 = pppppppcVar29 + 2;" (assignment_expression "pppppppcVar29 = pppppppcVar29 + 2" identifier = (binary_expression "pppppppcVar29 + 2" identifier + number_literal)) ;) }) while (parenthesized_expression "(pppppppcVar29 != param_8 + (int)pppppppcVar3 * 2)" ( (binary_expression "pppppppcVar29 != param_8 + (int)pppppppcVar3 * 2" identifier != (binary_expression "param_8 + (int)pppppppcVar3 * 2" identifier + (binary_expression "(int)pppppppcVar3 * 2" (cast_expression "(int)pppppppcVar3" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal))) )) ;) (expression_statement "*param_8 = (code ******)0x0;" (assignment_expression "*param_8 = (code ******)0x0" (pointer_expression "*param_8" * identifier) = (cast_expression "(code ******)0x0" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) (expression_statement "param_8[1] = (code ******)local_58;" (assignment_expression "param_8[1] = (code ******)local_58" (subscript_expression "param_8[1]" identifier [ number_literal ]) = (cast_expression "(code ******)local_58" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) identifier)) ;) (if_statement "if (((uint)param_1[7] & 0x8000000) != 0) {\nLAB_000555ac:\n                pppppppcVar33 = param_8;\n                do {\n                  pppppppcVar29 = (code *******)*pppppppcVar33;\n                  if (pppppppcVar29 != (code *******)0xffffffff) {\n                    if (local_68 != '\0') {\n                      pppppppcVar34 = local_94;\n                      if (pppppppcVar29 != local_98) {\n                        pppppppcVar34 = *(code ********)(local_a8 + (int)pppppppcVar29 * 4);\n                      }\n                      *pppppppcVar33 = (code ******)pppppppcVar34;\n                      pppppppcVar29 = local_94;\n                      if (local_98 != (code *******)pppppppcVar33[1]) {\n                        pppppppcVar29 = *(code ********)(local_a8 + (int)pppppppcVar33[1] * 4);\n                      }\n                      pppppppcVar33[1] = (code ******)pppppppcVar29;\n                    }\n                    *pppppppcVar33 = (code ******)((int)local_dc + (int)*pppppppcVar33);\n                    pppppppcVar29 = (code *******)((int)local_dc + (int)pppppppcVar33[1]);\n                    pppppppcVar33[1] = (code ******)pppppppcVar29;\n                  }\n                  pppppppcVar33 = pppppppcVar33 + 2;\n                } while (pppppppcVar33 != param_8 + (int)pppppppcVar3 * 2);\n                if (0 < local_118) {\n                  pppppppcVar33 = param_8 + (int)pppppppcVar3 * 2;\n                  do {\n                    *pppppppcVar33 = (code ******)0xffffffff;\n                    pppppppcVar33[1] = (code ******)0xffffffff;\n                    pppppppcVar33 = pppppppcVar33 + 2;\n                  } while (pppppppcVar33 != param_8 + (int)param_7 * 2);\n                }\n                pppppppcVar30 = local_dc;\n                pppppppcVar33 = param_8;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar38[0x21] != (code ******)0x0) {\n                  pppppppcVar30 = (code *******)((int)pppppppcVar3 + -1);\n                  pppppppcVar34 = (code *******)0x0;\n                  pppppppcVar3 = param_8;\n                  while( true ) {\n                    pppppppcVar29 = (code *******)((int)pppppppcVar34 * 4);\n                    if (pppppppcVar30 == pppppppcVar34) break;\n                    if (*(code ********)((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) !=\n                        pppppppcVar34) {\n                      pppppppcVar3[2] =\n                           param_8[(int)((int)*(code ********)\n                                               ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1)\n                                   * 2];\n                      pppppppcVar3[3] =\n                           param_8[((int)*(code ******)\n                                          ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1) * 2 +\n                                   1];\n                    }\n                    pppppppcVar34 = (code *******)((int)pppppppcVar34 + 1);\n                    pppppppcVar3 = pppppppcVar3 + 2;\n                  }\n                }\n                goto LAB_000557e4;\n              }" if (parenthesized_expression "(((uint)param_1[7] & 0x8000000) != 0)" ( (binary_expression "((uint)param_1[7] & 0x8000000) != 0" (parenthesized_expression "((uint)param_1[7] & 0x8000000)" ( (binary_expression "(uint)param_1[7] & 0x8000000" (cast_expression "(uint)param_1[7]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_1[7]" identifier [ number_literal ])) & number_literal) )) != number_literal) )) (compound_statement "{\nLAB_000555ac:\n                pppppppcVar33 = param_8;\n                do {\n                  pppppppcVar29 = (code *******)*pppppppcVar33;\n                  if (pppppppcVar29 != (code *******)0xffffffff) {\n                    if (local_68 != '\0') {\n                      pppppppcVar34 = local_94;\n                      if (pppppppcVar29 != local_98) {\n                        pppppppcVar34 = *(code ********)(local_a8 + (int)pppppppcVar29 * 4);\n                      }\n                      *pppppppcVar33 = (code ******)pppppppcVar34;\n                      pppppppcVar29 = local_94;\n                      if (local_98 != (code *******)pppppppcVar33[1]) {\n                        pppppppcVar29 = *(code ********)(local_a8 + (int)pppppppcVar33[1] * 4);\n                      }\n                      pppppppcVar33[1] = (code ******)pppppppcVar29;\n                    }\n                    *pppppppcVar33 = (code ******)((int)local_dc + (int)*pppppppcVar33);\n                    pppppppcVar29 = (code *******)((int)local_dc + (int)pppppppcVar33[1]);\n                    pppppppcVar33[1] = (code ******)pppppppcVar29;\n                  }\n                  pppppppcVar33 = pppppppcVar33 + 2;\n                } while (pppppppcVar33 != param_8 + (int)pppppppcVar3 * 2);\n                if (0 < local_118) {\n                  pppppppcVar33 = param_8 + (int)pppppppcVar3 * 2;\n                  do {\n                    *pppppppcVar33 = (code ******)0xffffffff;\n                    pppppppcVar33[1] = (code ******)0xffffffff;\n                    pppppppcVar33 = pppppppcVar33 + 2;\n                  } while (pppppppcVar33 != param_8 + (int)param_7 * 2);\n                }\n                pppppppcVar30 = local_dc;\n                pppppppcVar33 = param_8;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar38[0x21] != (code ******)0x0) {\n                  pppppppcVar30 = (code *******)((int)pppppppcVar3 + -1);\n                  pppppppcVar34 = (code *******)0x0;\n                  pppppppcVar3 = param_8;\n                  while( true ) {\n                    pppppppcVar29 = (code *******)((int)pppppppcVar34 * 4);\n                    if (pppppppcVar30 == pppppppcVar34) break;\n                    if (*(code ********)((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) !=\n                        pppppppcVar34) {\n                      pppppppcVar3[2] =\n                           param_8[(int)((int)*(code ********)\n                                               ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1)\n                                   * 2];\n                      pppppppcVar3[3] =\n                           param_8[((int)*(code ******)\n                                          ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1) * 2 +\n                                   1];\n                    }\n                    pppppppcVar34 = (code *******)((int)pppppppcVar34 + 1);\n                    pppppppcVar3 = pppppppcVar3 + 2;\n                  }\n                }\n                goto LAB_000557e4;\n              }" { (labeled_statement "LAB_000555ac:\n                pppppppcVar33 = param_8;" statement_identifier : (expression_statement "pppppppcVar33 = param_8;" (assignment_expression "pppppppcVar33 = param_8" identifier = identifier) ;)) (do_statement "do {\n                  pppppppcVar29 = (code *******)*pppppppcVar33;\n                  if (pppppppcVar29 != (code *******)0xffffffff) {\n                    if (local_68 != '\0') {\n                      pppppppcVar34 = local_94;\n                      if (pppppppcVar29 != local_98) {\n                        pppppppcVar34 = *(code ********)(local_a8 + (int)pppppppcVar29 * 4);\n                      }\n                      *pppppppcVar33 = (code ******)pppppppcVar34;\n                      pppppppcVar29 = local_94;\n                      if (local_98 != (code *******)pppppppcVar33[1]) {\n                        pppppppcVar29 = *(code ********)(local_a8 + (int)pppppppcVar33[1] * 4);\n                      }\n                      pppppppcVar33[1] = (code ******)pppppppcVar29;\n                    }\n                    *pppppppcVar33 = (code ******)((int)local_dc + (int)*pppppppcVar33);\n                    pppppppcVar29 = (code *******)((int)local_dc + (int)pppppppcVar33[1]);\n                    pppppppcVar33[1] = (code ******)pppppppcVar29;\n                  }\n                  pppppppcVar33 = pppppppcVar33 + 2;\n                } while (pppppppcVar33 != param_8 + (int)pppppppcVar3 * 2);" do (compound_statement "{\n                  pppppppcVar29 = (code *******)*pppppppcVar33;\n                  if (pppppppcVar29 != (code *******)0xffffffff) {\n                    if (local_68 != '\0') {\n                      pppppppcVar34 = local_94;\n                      if (pppppppcVar29 != local_98) {\n                        pppppppcVar34 = *(code ********)(local_a8 + (int)pppppppcVar29 * 4);\n                      }\n                      *pppppppcVar33 = (code ******)pppppppcVar34;\n                      pppppppcVar29 = local_94;\n                      if (local_98 != (code *******)pppppppcVar33[1]) {\n                        pppppppcVar29 = *(code ********)(local_a8 + (int)pppppppcVar33[1] * 4);\n                      }\n                      pppppppcVar33[1] = (code ******)pppppppcVar29;\n                    }\n                    *pppppppcVar33 = (code ******)((int)local_dc + (int)*pppppppcVar33);\n                    pppppppcVar29 = (code *******)((int)local_dc + (int)pppppppcVar33[1]);\n                    pppppppcVar33[1] = (code ******)pppppppcVar29;\n                  }\n                  pppppppcVar33 = pppppppcVar33 + 2;\n                }" { (expression_statement "pppppppcVar29 = (code *******)*pppppppcVar33;" (assignment_expression "pppppppcVar29 = (code *******)*pppppppcVar33" identifier = (cast_expression "(code *******)*pppppppcVar33" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "*pppppppcVar33" * identifier))) ;) (if_statement "if (pppppppcVar29 != (code *******)0xffffffff) {\n                    if (local_68 != '\0') {\n                      pppppppcVar34 = local_94;\n                      if (pppppppcVar29 != local_98) {\n                        pppppppcVar34 = *(code ********)(local_a8 + (int)pppppppcVar29 * 4);\n                      }\n                      *pppppppcVar33 = (code ******)pppppppcVar34;\n                      pppppppcVar29 = local_94;\n                      if (local_98 != (code *******)pppppppcVar33[1]) {\n                        pppppppcVar29 = *(code ********)(local_a8 + (int)pppppppcVar33[1] * 4);\n                      }\n                      pppppppcVar33[1] = (code ******)pppppppcVar29;\n                    }\n                    *pppppppcVar33 = (code ******)((int)local_dc + (int)*pppppppcVar33);\n                    pppppppcVar29 = (code *******)((int)local_dc + (int)pppppppcVar33[1]);\n                    pppppppcVar33[1] = (code ******)pppppppcVar29;\n                  }" if (parenthesized_expression "(pppppppcVar29 != (code *******)0xffffffff)" ( (binary_expression "pppppppcVar29 != (code *******)0xffffffff" identifier != (cast_expression "(code *******)0xffffffff" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\n                    if (local_68 != '\0') {\n                      pppppppcVar34 = local_94;\n                      if (pppppppcVar29 != local_98) {\n                        pppppppcVar34 = *(code ********)(local_a8 + (int)pppppppcVar29 * 4);\n                      }\n                      *pppppppcVar33 = (code ******)pppppppcVar34;\n                      pppppppcVar29 = local_94;\n                      if (local_98 != (code *******)pppppppcVar33[1]) {\n                        pppppppcVar29 = *(code ********)(local_a8 + (int)pppppppcVar33[1] * 4);\n                      }\n                      pppppppcVar33[1] = (code ******)pppppppcVar29;\n                    }\n                    *pppppppcVar33 = (code ******)((int)local_dc + (int)*pppppppcVar33);\n                    pppppppcVar29 = (code *******)((int)local_dc + (int)pppppppcVar33[1]);\n                    pppppppcVar33[1] = (code ******)pppppppcVar29;\n                  }" { (if_statement "if (local_68 != '\0') {\n                      pppppppcVar34 = local_94;\n                      if (pppppppcVar29 != local_98) {\n                        pppppppcVar34 = *(code ********)(local_a8 + (int)pppppppcVar29 * 4);\n                      }\n                      *pppppppcVar33 = (code ******)pppppppcVar34;\n                      pppppppcVar29 = local_94;\n                      if (local_98 != (code *******)pppppppcVar33[1]) {\n                        pppppppcVar29 = *(code ********)(local_a8 + (int)pppppppcVar33[1] * 4);\n                      }\n                      pppppppcVar33[1] = (code ******)pppppppcVar29;\n                    }" if (parenthesized_expression "(local_68 != '\0')" ( (binary_expression "local_68 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                      pppppppcVar34 = local_94;\n                      if (pppppppcVar29 != local_98) {\n                        pppppppcVar34 = *(code ********)(local_a8 + (int)pppppppcVar29 * 4);\n                      }\n                      *pppppppcVar33 = (code ******)pppppppcVar34;\n                      pppppppcVar29 = local_94;\n                      if (local_98 != (code *******)pppppppcVar33[1]) {\n                        pppppppcVar29 = *(code ********)(local_a8 + (int)pppppppcVar33[1] * 4);\n                      }\n                      pppppppcVar33[1] = (code ******)pppppppcVar29;\n                    }" { (expression_statement "pppppppcVar34 = local_94;" (assignment_expression "pppppppcVar34 = local_94" identifier = identifier) ;) (if_statement "if (pppppppcVar29 != local_98) {\n                        pppppppcVar34 = *(code ********)(local_a8 + (int)pppppppcVar29 * 4);\n                      }" if (parenthesized_expression "(pppppppcVar29 != local_98)" ( (binary_expression "pppppppcVar29 != local_98" identifier != identifier) )) (compound_statement "{\n                        pppppppcVar34 = *(code ********)(local_a8 + (int)pppppppcVar29 * 4);\n                      }" { (expression_statement "pppppppcVar34 = *(code ********)(local_a8 + (int)pppppppcVar29 * 4);" (assignment_expression "pppppppcVar34 = *(code ********)(local_a8 + (int)pppppppcVar29 * 4)" identifier = (pointer_expression "*(code ********)(local_a8 + (int)pppppppcVar29 * 4)" * (cast_expression "(code ********)(local_a8 + (int)pppppppcVar29 * 4)" ( (type_descriptor "code ********" type_identifier (abstract_pointer_declarator "********" * (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))))) ) (parenthesized_expression "(local_a8 + (int)pppppppcVar29 * 4)" ( (binary_expression "local_a8 + (int)pppppppcVar29 * 4" identifier + (binary_expression "(int)pppppppcVar29 * 4" (cast_expression "(int)pppppppcVar29" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ))))) ;) })) (expression_statement "*pppppppcVar33 = (code ******)pppppppcVar34;" (assignment_expression "*pppppppcVar33 = (code ******)pppppppcVar34" (pointer_expression "*pppppppcVar33" * identifier) = (cast_expression "(code ******)pppppppcVar34" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) identifier)) ;) (expression_statement "pppppppcVar29 = local_94;" (assignment_expression "pppppppcVar29 = local_94" identifier = identifier) ;) (if_statement "if (local_98 != (code *******)pppppppcVar33[1]) {\n                        pppppppcVar29 = *(code ********)(local_a8 + (int)pppppppcVar33[1] * 4);\n                      }" if (parenthesized_expression "(local_98 != (code *******)pppppppcVar33[1])" ( (binary_expression "local_98 != (code *******)pppppppcVar33[1]" identifier != (cast_expression "(code *******)pppppppcVar33[1]" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (subscript_expression "pppppppcVar33[1]" identifier [ number_literal ]))) )) (compound_statement "{\n                        pppppppcVar29 = *(code ********)(local_a8 + (int)pppppppcVar33[1] * 4);\n                      }" { (expression_statement "pppppppcVar29 = *(code ********)(local_a8 + (int)pppppppcVar33[1] * 4);" (assignment_expression "pppppppcVar29 = *(code ********)(local_a8 + (int)pppppppcVar33[1] * 4)" identifier = (pointer_expression "*(code ********)(local_a8 + (int)pppppppcVar33[1] * 4)" * (cast_expression "(code ********)(local_a8 + (int)pppppppcVar33[1] * 4)" ( (type_descriptor "code ********" type_identifier (abstract_pointer_declarator "********" * (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))))) ) (parenthesized_expression "(local_a8 + (int)pppppppcVar33[1] * 4)" ( (binary_expression "local_a8 + (int)pppppppcVar33[1] * 4" identifier + (binary_expression "(int)pppppppcVar33[1] * 4" (cast_expression "(int)pppppppcVar33[1]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "pppppppcVar33[1]" identifier [ number_literal ])) * number_literal)) ))))) ;) })) (expression_statement "pppppppcVar33[1] = (code ******)pppppppcVar29;" (assignment_expression "pppppppcVar33[1] = (code ******)pppppppcVar29" (subscript_expression "pppppppcVar33[1]" identifier [ number_literal ]) = (cast_expression "(code ******)pppppppcVar29" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) identifier)) ;) })) (expression_statement "*pppppppcVar33 = (code ******)((int)local_dc + (int)*pppppppcVar33);" (assignment_expression "*pppppppcVar33 = (code ******)((int)local_dc + (int)*pppppppcVar33)" (pointer_expression "*pppppppcVar33" * identifier) = (cast_expression "(code ******)((int)local_dc + (int)*pppppppcVar33)" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "((int)local_dc + (int)*pppppppcVar33)" ( (binary_expression "(int)local_dc + (int)*pppppppcVar33" (cast_expression "(int)local_dc" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)*pppppppcVar33" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*pppppppcVar33" * identifier))) )))) ;) (expression_statement "pppppppcVar29 = (code *******)((int)local_dc + (int)pppppppcVar33[1]);" (assignment_expression "pppppppcVar29 = (code *******)((int)local_dc + (int)pppppppcVar33[1])" identifier = (cast_expression "(code *******)((int)local_dc + (int)pppppppcVar33[1])" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)local_dc + (int)pppppppcVar33[1])" ( (binary_expression "(int)local_dc + (int)pppppppcVar33[1]" (cast_expression "(int)local_dc" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)pppppppcVar33[1]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "pppppppcVar33[1]" identifier [ number_literal ]))) )))) ;) (expression_statement "pppppppcVar33[1] = (code ******)pppppppcVar29;" (assignment_expression "pppppppcVar33[1] = (code ******)pppppppcVar29" (subscript_expression "pppppppcVar33[1]" identifier [ number_literal ]) = (cast_expression "(code ******)pppppppcVar29" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) identifier)) ;) })) (expression_statement "pppppppcVar33 = pppppppcVar33 + 2;" (assignment_expression "pppppppcVar33 = pppppppcVar33 + 2" identifier = (binary_expression "pppppppcVar33 + 2" identifier + number_literal)) ;) }) while (parenthesized_expression "(pppppppcVar33 != param_8 + (int)pppppppcVar3 * 2)" ( (binary_expression "pppppppcVar33 != param_8 + (int)pppppppcVar3 * 2" identifier != (binary_expression "param_8 + (int)pppppppcVar3 * 2" identifier + (binary_expression "(int)pppppppcVar3 * 2" (cast_expression "(int)pppppppcVar3" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal))) )) ;) (if_statement "if (0 < local_118) {\n                  pppppppcVar33 = param_8 + (int)pppppppcVar3 * 2;\n                  do {\n                    *pppppppcVar33 = (code ******)0xffffffff;\n                    pppppppcVar33[1] = (code ******)0xffffffff;\n                    pppppppcVar33 = pppppppcVar33 + 2;\n                  } while (pppppppcVar33 != param_8 + (int)param_7 * 2);\n                }" if (parenthesized_expression "(0 < local_118)" ( (binary_expression "0 < local_118" number_literal < identifier) )) (compound_statement "{\n                  pppppppcVar33 = param_8 + (int)pppppppcVar3 * 2;\n                  do {\n                    *pppppppcVar33 = (code ******)0xffffffff;\n                    pppppppcVar33[1] = (code ******)0xffffffff;\n                    pppppppcVar33 = pppppppcVar33 + 2;\n                  } while (pppppppcVar33 != param_8 + (int)param_7 * 2);\n                }" { (expression_statement "pppppppcVar33 = param_8 + (int)pppppppcVar3 * 2;" (assignment_expression "pppppppcVar33 = param_8 + (int)pppppppcVar3 * 2" identifier = (binary_expression "param_8 + (int)pppppppcVar3 * 2" identifier + (binary_expression "(int)pppppppcVar3 * 2" (cast_expression "(int)pppppppcVar3" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal))) ;) (do_statement "do {\n                    *pppppppcVar33 = (code ******)0xffffffff;\n                    pppppppcVar33[1] = (code ******)0xffffffff;\n                    pppppppcVar33 = pppppppcVar33 + 2;\n                  } while (pppppppcVar33 != param_8 + (int)param_7 * 2);" do (compound_statement "{\n                    *pppppppcVar33 = (code ******)0xffffffff;\n                    pppppppcVar33[1] = (code ******)0xffffffff;\n                    pppppppcVar33 = pppppppcVar33 + 2;\n                  }" { (expression_statement "*pppppppcVar33 = (code ******)0xffffffff;" (assignment_expression "*pppppppcVar33 = (code ******)0xffffffff" (pointer_expression "*pppppppcVar33" * identifier) = (cast_expression "(code ******)0xffffffff" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) (expression_statement "pppppppcVar33[1] = (code ******)0xffffffff;" (assignment_expression "pppppppcVar33[1] = (code ******)0xffffffff" (subscript_expression "pppppppcVar33[1]" identifier [ number_literal ]) = (cast_expression "(code ******)0xffffffff" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) (expression_statement "pppppppcVar33 = pppppppcVar33 + 2;" (assignment_expression "pppppppcVar33 = pppppppcVar33 + 2" identifier = (binary_expression "pppppppcVar33 + 2" identifier + number_literal)) ;) }) while (parenthesized_expression "(pppppppcVar33 != param_8 + (int)param_7 * 2)" ( (binary_expression "pppppppcVar33 != param_8 + (int)param_7 * 2" identifier != (binary_expression "param_8 + (int)param_7 * 2" identifier + (binary_expression "(int)param_7 * 2" (cast_expression "(int)param_7" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal))) )) ;) })) (expression_statement "pppppppcVar30 = local_dc;" (assignment_expression "pppppppcVar30 = local_dc" identifier = identifier) ;) (expression_statement "pppppppcVar33 = param_8;" (assignment_expression "pppppppcVar33 = param_8" identifier = identifier) ;) (expression_statement "local_150 = pppppppcVar6;" (assignment_expression "local_150 = pppppppcVar6" identifier = identifier) ;) (if_statement "if (pppppppcVar38[0x21] != (code ******)0x0) {\n                  pppppppcVar30 = (code *******)((int)pppppppcVar3 + -1);\n                  pppppppcVar34 = (code *******)0x0;\n                  pppppppcVar3 = param_8;\n                  while( true ) {\n                    pppppppcVar29 = (code *******)((int)pppppppcVar34 * 4);\n                    if (pppppppcVar30 == pppppppcVar34) break;\n                    if (*(code ********)((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) !=\n                        pppppppcVar34) {\n                      pppppppcVar3[2] =\n                           param_8[(int)((int)*(code ********)\n                                               ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1)\n                                   * 2];\n                      pppppppcVar3[3] =\n                           param_8[((int)*(code ******)\n                                          ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1) * 2 +\n                                   1];\n                    }\n                    pppppppcVar34 = (code *******)((int)pppppppcVar34 + 1);\n                    pppppppcVar3 = pppppppcVar3 + 2;\n                  }\n                }" if (parenthesized_expression "(pppppppcVar38[0x21] != (code ******)0x0)" ( (binary_expression "pppppppcVar38[0x21] != (code ******)0x0" (subscript_expression "pppppppcVar38[0x21]" identifier [ number_literal ]) != (cast_expression "(code ******)0x0" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (compound_statement "{\n                  pppppppcVar30 = (code *******)((int)pppppppcVar3 + -1);\n                  pppppppcVar34 = (code *******)0x0;\n                  pppppppcVar3 = param_8;\n                  while( true ) {\n                    pppppppcVar29 = (code *******)((int)pppppppcVar34 * 4);\n                    if (pppppppcVar30 == pppppppcVar34) break;\n                    if (*(code ********)((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) !=\n                        pppppppcVar34) {\n                      pppppppcVar3[2] =\n                           param_8[(int)((int)*(code ********)\n                                               ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1)\n                                   * 2];\n                      pppppppcVar3[3] =\n                           param_8[((int)*(code ******)\n                                          ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1) * 2 +\n                                   1];\n                    }\n                    pppppppcVar34 = (code *******)((int)pppppppcVar34 + 1);\n                    pppppppcVar3 = pppppppcVar3 + 2;\n                  }\n                }" { (expression_statement "pppppppcVar30 = (code *******)((int)pppppppcVar3 + -1);" (assignment_expression "pppppppcVar30 = (code *******)((int)pppppppcVar3 + -1)" identifier = (cast_expression "(code *******)((int)pppppppcVar3 + -1)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)pppppppcVar3 + -1)" ( (binary_expression "(int)pppppppcVar3 + -1" (cast_expression "(int)pppppppcVar3" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "pppppppcVar34 = (code *******)0x0;" (assignment_expression "pppppppcVar34 = (code *******)0x0" identifier = (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "pppppppcVar3 = param_8;" (assignment_expression "pppppppcVar3 = param_8" identifier = identifier) ;) (while_statement "while( true ) {\n                    pppppppcVar29 = (code *******)((int)pppppppcVar34 * 4);\n                    if (pppppppcVar30 == pppppppcVar34) break;\n                    if (*(code ********)((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) !=\n                        pppppppcVar34) {\n                      pppppppcVar3[2] =\n                           param_8[(int)((int)*(code ********)\n                                               ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1)\n                                   * 2];\n                      pppppppcVar3[3] =\n                           param_8[((int)*(code ******)\n                                          ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1) * 2 +\n                                   1];\n                    }\n                    pppppppcVar34 = (code *******)((int)pppppppcVar34 + 1);\n                    pppppppcVar3 = pppppppcVar3 + 2;\n                  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                    pppppppcVar29 = (code *******)((int)pppppppcVar34 * 4);\n                    if (pppppppcVar30 == pppppppcVar34) break;\n                    if (*(code ********)((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) !=\n                        pppppppcVar34) {\n                      pppppppcVar3[2] =\n                           param_8[(int)((int)*(code ********)\n                                               ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1)\n                                   * 2];\n                      pppppppcVar3[3] =\n                           param_8[((int)*(code ******)\n                                          ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1) * 2 +\n                                   1];\n                    }\n                    pppppppcVar34 = (code *******)((int)pppppppcVar34 + 1);\n                    pppppppcVar3 = pppppppcVar3 + 2;\n                  }" { (expression_statement "pppppppcVar29 = (code *******)((int)pppppppcVar34 * 4);" (assignment_expression "pppppppcVar29 = (code *******)((int)pppppppcVar34 * 4)" identifier = (cast_expression "(code *******)((int)pppppppcVar34 * 4)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)pppppppcVar34 * 4)" ( (binary_expression "(int)pppppppcVar34 * 4" (cast_expression "(int)pppppppcVar34" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) )))) ;) (if_statement "if (pppppppcVar30 == pppppppcVar34) break;" if (parenthesized_expression "(pppppppcVar30 == pppppppcVar34)" ( (binary_expression "pppppppcVar30 == pppppppcVar34" identifier == identifier) )) (break_statement "break;" break ;)) (if_statement "if (*(code ********)((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) !=\n                        pppppppcVar34) {\n                      pppppppcVar3[2] =\n                           param_8[(int)((int)*(code ********)\n                                               ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1)\n                                   * 2];\n                      pppppppcVar3[3] =\n                           param_8[((int)*(code ******)\n                                          ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1) * 2 +\n                                   1];\n                    }" if (parenthesized_expression "(*(code ********)((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) !=\n                        pppppppcVar34)" ( (binary_expression "*(code ********)((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) !=\n                        pppppppcVar34" (pointer_expression "*(code ********)((int)pppppppcVar29 + (int)pppppppcVar38[0x21])" * (cast_expression "(code ********)((int)pppppppcVar29 + (int)pppppppcVar38[0x21])" ( (type_descriptor "code ********" type_identifier (abstract_pointer_declarator "********" * (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))))) ) (parenthesized_expression "((int)pppppppcVar29 + (int)pppppppcVar38[0x21])" ( (binary_expression "(int)pppppppcVar29 + (int)pppppppcVar38[0x21]" (cast_expression "(int)pppppppcVar29" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)pppppppcVar38[0x21]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "pppppppcVar38[0x21]" identifier [ number_literal ]))) )))) != identifier) )) (compound_statement "{\n                      pppppppcVar3[2] =\n                           param_8[(int)((int)*(code ********)\n                                               ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1)\n                                   * 2];\n                      pppppppcVar3[3] =\n                           param_8[((int)*(code ******)\n                                          ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1) * 2 +\n                                   1];\n                    }" { (expression_statement "pppppppcVar3[2] =\n                           param_8[(int)((int)*(code ********)\n                                               ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1)\n                                   * 2];" (assignment_expression "pppppppcVar3[2] =\n                           param_8[(int)((int)*(code ********)\n                                               ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1)\n                                   * 2]" (subscript_expression "pppppppcVar3[2]" identifier [ number_literal ]) = (subscript_expression "param_8[(int)((int)*(code ********)\n                                               ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1)\n                                   * 2]" identifier [ (binary_expression "(int)((int)*(code ********)\n                                               ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1)\n                                   * 2" (cast_expression "(int)((int)*(code ********)\n                                               ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)*(code ********)\n                                               ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1)" ( (binary_expression "(int)*(code ********)\n                                               ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1" (cast_expression "(int)*(code ********)\n                                               ((int)pppppppcVar29 + (int)pppppppcVar38[0x21])" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(code ********)\n                                               ((int)pppppppcVar29 + (int)pppppppcVar38[0x21])" * (cast_expression "(code ********)\n                                               ((int)pppppppcVar29 + (int)pppppppcVar38[0x21])" ( (type_descriptor "code ********" type_identifier (abstract_pointer_declarator "********" * (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))))) ) (parenthesized_expression "((int)pppppppcVar29 + (int)pppppppcVar38[0x21])" ( (binary_expression "(int)pppppppcVar29 + (int)pppppppcVar38[0x21]" (cast_expression "(int)pppppppcVar29" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)pppppppcVar38[0x21]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "pppppppcVar38[0x21]" identifier [ number_literal ]))) ))))) + number_literal) ))) * number_literal) ])) ;) (expression_statement "pppppppcVar3[3] =\n                           param_8[((int)*(code ******)\n                                          ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1) * 2 +\n                                   1];" (assignment_expression "pppppppcVar3[3] =\n                           param_8[((int)*(code ******)\n                                          ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1) * 2 +\n                                   1]" (subscript_expression "pppppppcVar3[3]" identifier [ number_literal ]) = (subscript_expression "param_8[((int)*(code ******)\n                                          ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1) * 2 +\n                                   1]" identifier [ (binary_expression "((int)*(code ******)\n                                          ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1) * 2 +\n                                   1" (binary_expression "((int)*(code ******)\n                                          ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1) * 2" (parenthesized_expression "((int)*(code ******)\n                                          ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1)" ( (binary_expression "(int)*(code ******)\n                                          ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1" (cast_expression "(int)*(code ******)\n                                          ((int)pppppppcVar29 + (int)pppppppcVar38[0x21])" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(code ******)\n                                          ((int)pppppppcVar29 + (int)pppppppcVar38[0x21])" * (cast_expression "(code ******)\n                                          ((int)pppppppcVar29 + (int)pppppppcVar38[0x21])" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "((int)pppppppcVar29 + (int)pppppppcVar38[0x21])" ( (binary_expression "(int)pppppppcVar29 + (int)pppppppcVar38[0x21]" (cast_expression "(int)pppppppcVar29" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)pppppppcVar38[0x21]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "pppppppcVar38[0x21]" identifier [ number_literal ]))) ))))) + number_literal) )) * number_literal) + number_literal) ])) ;) })) (expression_statement "pppppppcVar34 = (code *******)((int)pppppppcVar34 + 1);" (assignment_expression "pppppppcVar34 = (code *******)((int)pppppppcVar34 + 1)" identifier = (cast_expression "(code *******)((int)pppppppcVar34 + 1)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)pppppppcVar34 + 1)" ( (binary_expression "(int)pppppppcVar34 + 1" (cast_expression "(int)pppppppcVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "pppppppcVar3 = pppppppcVar3 + 2;" (assignment_expression "pppppppcVar3 = pppppppcVar3 + 2" identifier = (binary_expression "pppppppcVar3 + 2" identifier + number_literal)) ;) })) })) (goto_statement "goto LAB_000557e4;" goto statement_identifier ;) })) (if_statement "if ((char)*(code *)(pppppppcVar38 + 0x16) < '\0') {\n                local_168 = (uint)(0 < (int)pppppppcVar38[0x13]);\n              }\n              else {\n                local_168 = 0;\n              }" if (parenthesized_expression "((char)*(code *)(pppppppcVar38 + 0x16) < '\0')" ( (binary_expression "(char)*(code *)(pppppppcVar38 + 0x16) < '\0'" (cast_expression "(char)*(code *)(pppppppcVar38 + 0x16)" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(code *)(pppppppcVar38 + 0x16)" * (cast_expression "(code *)(pppppppcVar38 + 0x16)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pppppppcVar38 + 0x16)" ( (binary_expression "pppppppcVar38 + 0x16" identifier + number_literal) ))))) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                local_168 = (uint)(0 < (int)pppppppcVar38[0x13]);\n              }" { (expression_statement "local_168 = (uint)(0 < (int)pppppppcVar38[0x13]);" (assignment_expression "local_168 = (uint)(0 < (int)pppppppcVar38[0x13])" identifier = (call_expression "(uint)(0 < (int)pppppppcVar38[0x13])" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(0 < (int)pppppppcVar38[0x13])" ( (binary_expression "0 < (int)pppppppcVar38[0x13]" number_literal < (cast_expression "(int)pppppppcVar38[0x13]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "pppppppcVar38[0x13]" identifier [ number_literal ]))) )))) ;) }) (else_clause "else {\n                local_168 = 0;\n              }" else (compound_statement "{\n                local_168 = 0;\n              }" { (expression_statement "local_168 = 0;" (assignment_expression "local_168 = 0" identifier = number_literal) ;) }))) (expression_statement "pppppppcVar29 = &local_b4;" (assignment_expression "pppppppcVar29 = &local_b4" identifier = (pointer_expression "&local_b4" & identifier)) ;) (expression_statement "pppppppcVar30 = pppppppcVar3;" (assignment_expression "pppppppcVar30 = pppppppcVar3" identifier = identifier) ;) (expression_statement "pppppppcVar33 = param_8;" (assignment_expression "pppppppcVar33 = param_8" identifier = identifier) ;) (expression_statement "local_150 = (code *******)FUN_0004f4a0(param_1);" (assignment_expression "local_150 = (code *******)FUN_0004f4a0(param_1)" identifier = (cast_expression "(code *******)FUN_0004f4a0(param_1)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "FUN_0004f4a0(param_1)" identifier (argument_list "(param_1)" ( identifier ))))) ;) (if_statement "if (local_150 == (code *******)0x0) goto LAB_000555ac;" if (parenthesized_expression "(local_150 == (code *******)0x0)" ( (binary_expression "local_150 == (code *******)0x0" identifier == (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (goto_statement "goto LAB_000555ac;" goto statement_identifier ;)) }))))) }) (else_clause "else if (local_90 < 0x3fffffff) {\n            local_50 = (code *******)(*(code *)PTR_malloc_00079b54)((local_90 + 1) * 4);\n            if (local_50 != (code *******)0x0) goto LAB_00055a40;\n            local_150 = (code *******)0xc;\n            param_6 = pppppppcVar36;\n          }\n          else {\n            local_150 = (code *******)0xc;\n            param_6 = pppppppcVar36;\n          }" else (if_statement "if (local_90 < 0x3fffffff) {\n            local_50 = (code *******)(*(code *)PTR_malloc_00079b54)((local_90 + 1) * 4);\n            if (local_50 != (code *******)0x0) goto LAB_00055a40;\n            local_150 = (code *******)0xc;\n            param_6 = pppppppcVar36;\n          }\n          else {\n            local_150 = (code *******)0xc;\n            param_6 = pppppppcVar36;\n          }" if (parenthesized_expression "(local_90 < 0x3fffffff)" ( (binary_expression "local_90 < 0x3fffffff" identifier < number_literal) )) (compound_statement "{\n            local_50 = (code *******)(*(code *)PTR_malloc_00079b54)((local_90 + 1) * 4);\n            if (local_50 != (code *******)0x0) goto LAB_00055a40;\n            local_150 = (code *******)0xc;\n            param_6 = pppppppcVar36;\n          }" { (expression_statement "local_50 = (code *******)(*(code *)PTR_malloc_00079b54)((local_90 + 1) * 4);" (assignment_expression "local_50 = (code *******)(*(code *)PTR_malloc_00079b54)((local_90 + 1) * 4)" identifier = (cast_expression "(code *******)(*(code *)PTR_malloc_00079b54)((local_90 + 1) * 4)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "(*(code *)PTR_malloc_00079b54)((local_90 + 1) * 4)" (parenthesized_expression "(*(code *)PTR_malloc_00079b54)" ( (pointer_expression "*(code *)PTR_malloc_00079b54" * (cast_expression "(code *)PTR_malloc_00079b54" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "((local_90 + 1) * 4)" ( (binary_expression "(local_90 + 1) * 4" (parenthesized_expression "(local_90 + 1)" ( (binary_expression "local_90 + 1" identifier + number_literal) )) * number_literal) ))))) ;) (if_statement "if (local_50 != (code *******)0x0) goto LAB_00055a40;" if (parenthesized_expression "(local_50 != (code *******)0x0)" ( (binary_expression "local_50 != (code *******)0x0" identifier != (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (goto_statement "goto LAB_00055a40;" goto statement_identifier ;)) (expression_statement "local_150 = (code *******)0xc;" (assignment_expression "local_150 = (code *******)0xc" identifier = (cast_expression "(code *******)0xc" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "param_6 = pppppppcVar36;" (assignment_expression "param_6 = pppppppcVar36" identifier = identifier) ;) }) (else_clause "else {\n            local_150 = (code *******)0xc;\n            param_6 = pppppppcVar36;\n          }" else (compound_statement "{\n            local_150 = (code *******)0xc;\n            param_6 = pppppppcVar36;\n          }" { (expression_statement "local_150 = (code *******)0xc;" (assignment_expression "local_150 = (code *******)0xc" identifier = (cast_expression "(code *******)0xc" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "param_6 = pppppppcVar36;" (assignment_expression "param_6 = pppppppcVar36" identifier = identifier) ;) }))))) }) (else_clause "else {\n          unaff_s5 = (code *******)((int)ppppppcVar35 * 8);\n          if (pppppppcVar36 < (code *******)0xccccccd) {\n            unaff_s4 = (code *******)(*(code *)PTR_malloc_00079b54)((int)ppppppcVar35 * 0x28);\n            local_40 = unaff_s4;\n            local_30 = (*(code *)PTR_malloc_00079b54)(unaff_s5);\n            if ((unaff_s4 != (code *******)0x0) && (local_30 != 0)) goto LAB_000559f0;\n          }\n          local_150 = (code *******)0xc;\n          param_6 = pppppppcVar36;\n        }" else (compound_statement "{\n          unaff_s5 = (code *******)((int)ppppppcVar35 * 8);\n          if (pppppppcVar36 < (code *******)0xccccccd) {\n            unaff_s4 = (code *******)(*(code *)PTR_malloc_00079b54)((int)ppppppcVar35 * 0x28);\n            local_40 = unaff_s4;\n            local_30 = (*(code *)PTR_malloc_00079b54)(unaff_s5);\n            if ((unaff_s4 != (code *******)0x0) && (local_30 != 0)) goto LAB_000559f0;\n          }\n          local_150 = (code *******)0xc;\n          param_6 = pppppppcVar36;\n        }" { (expression_statement "unaff_s5 = (code *******)((int)ppppppcVar35 * 8);" (assignment_expression "unaff_s5 = (code *******)((int)ppppppcVar35 * 8)" identifier = (cast_expression "(code *******)((int)ppppppcVar35 * 8)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)ppppppcVar35 * 8)" ( (binary_expression "(int)ppppppcVar35 * 8" (cast_expression "(int)ppppppcVar35" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) )))) ;) (if_statement "if (pppppppcVar36 < (code *******)0xccccccd) {\n            unaff_s4 = (code *******)(*(code *)PTR_malloc_00079b54)((int)ppppppcVar35 * 0x28);\n            local_40 = unaff_s4;\n            local_30 = (*(code *)PTR_malloc_00079b54)(unaff_s5);\n            if ((unaff_s4 != (code *******)0x0) && (local_30 != 0)) goto LAB_000559f0;\n          }" if (parenthesized_expression "(pppppppcVar36 < (code *******)0xccccccd)" ( (binary_expression "pppppppcVar36 < (code *******)0xccccccd" identifier < (cast_expression "(code *******)0xccccccd" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\n            unaff_s4 = (code *******)(*(code *)PTR_malloc_00079b54)((int)ppppppcVar35 * 0x28);\n            local_40 = unaff_s4;\n            local_30 = (*(code *)PTR_malloc_00079b54)(unaff_s5);\n            if ((unaff_s4 != (code *******)0x0) && (local_30 != 0)) goto LAB_000559f0;\n          }" { (expression_statement "unaff_s4 = (code *******)(*(code *)PTR_malloc_00079b54)((int)ppppppcVar35 * 0x28);" (assignment_expression "unaff_s4 = (code *******)(*(code *)PTR_malloc_00079b54)((int)ppppppcVar35 * 0x28)" identifier = (cast_expression "(code *******)(*(code *)PTR_malloc_00079b54)((int)ppppppcVar35 * 0x28)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "(*(code *)PTR_malloc_00079b54)((int)ppppppcVar35 * 0x28)" (parenthesized_expression "(*(code *)PTR_malloc_00079b54)" ( (pointer_expression "*(code *)PTR_malloc_00079b54" * (cast_expression "(code *)PTR_malloc_00079b54" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "((int)ppppppcVar35 * 0x28)" ( (binary_expression "(int)ppppppcVar35 * 0x28" (cast_expression "(int)ppppppcVar35" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) ))))) ;) (expression_statement "local_40 = unaff_s4;" (assignment_expression "local_40 = unaff_s4" identifier = identifier) ;) (expression_statement "local_30 = (*(code *)PTR_malloc_00079b54)(unaff_s5);" (assignment_expression "local_30 = (*(code *)PTR_malloc_00079b54)(unaff_s5)" identifier = (call_expression "(*(code *)PTR_malloc_00079b54)(unaff_s5)" (parenthesized_expression "(*(code *)PTR_malloc_00079b54)" ( (pointer_expression "*(code *)PTR_malloc_00079b54" * (cast_expression "(code *)PTR_malloc_00079b54" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s5)" ( identifier )))) ;) (if_statement "if ((unaff_s4 != (code *******)0x0) && (local_30 != 0)) goto LAB_000559f0;" if (parenthesized_expression "((unaff_s4 != (code *******)0x0) && (local_30 != 0))" ( (binary_expression "(unaff_s4 != (code *******)0x0) && (local_30 != 0)" (parenthesized_expression "(unaff_s4 != (code *******)0x0)" ( (binary_expression "unaff_s4 != (code *******)0x0" identifier != (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) && (parenthesized_expression "(local_30 != 0)" ( (binary_expression "local_30 != 0" identifier != number_literal) ))) )) (goto_statement "goto LAB_000559f0;" goto statement_identifier ;)) })) (expression_statement "local_150 = (code *******)0xc;" (assignment_expression "local_150 = (code *******)0xc" identifier = (cast_expression "(code *******)0xc" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "param_6 = pppppppcVar36;" (assignment_expression "param_6 = pppppppcVar36" identifier = identifier) ;) }))) (labeled_statement "LAB_000557e4:\n        (*(code *)PTR_free_00079c24)(local_50);" statement_identifier : (expression_statement "(*(code *)PTR_free_00079c24)(local_50);" (call_expression "(*(code *)PTR_free_00079c24)(local_50)" (parenthesized_expression "(*(code *)PTR_free_00079c24)" ( (pointer_expression "*(code *)PTR_free_00079c24" * (cast_expression "(code *)PTR_free_00079c24" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_50)" ( identifier ))) ;)) (expression_statement "param_1 = pppppppcVar30;" (assignment_expression "param_1 = pppppppcVar30" identifier = identifier) ;) (if_statement "if (pppppppcVar38[0x13] != (code ******)0x0) {\n          FUN_0004b7e8(&local_b4);\n          (*(code *)PTR_free_00079c24)(local_30);\n          (*(code *)PTR_free_00079c24)(local_40);\n          param_1 = pppppppcVar30;\n        }" if (parenthesized_expression "(pppppppcVar38[0x13] != (code ******)0x0)" ( (binary_expression "pppppppcVar38[0x13] != (code ******)0x0" (subscript_expression "pppppppcVar38[0x13]" identifier [ number_literal ]) != (cast_expression "(code ******)0x0" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (compound_statement "{\n          FUN_0004b7e8(&local_b4);\n          (*(code *)PTR_free_00079c24)(local_30);\n          (*(code *)PTR_free_00079c24)(local_40);\n          param_1 = pppppppcVar30;\n        }" { (expression_statement "FUN_0004b7e8(&local_b4);" (call_expression "FUN_0004b7e8(&local_b4)" identifier (argument_list "(&local_b4)" ( (pointer_expression "&local_b4" & identifier) ))) ;) (expression_statement "(*(code *)PTR_free_00079c24)(local_30);" (call_expression "(*(code *)PTR_free_00079c24)(local_30)" (parenthesized_expression "(*(code *)PTR_free_00079c24)" ( (pointer_expression "*(code *)PTR_free_00079c24" * (cast_expression "(code *)PTR_free_00079c24" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_30)" ( identifier ))) ;) (expression_statement "(*(code *)PTR_free_00079c24)(local_40);" (call_expression "(*(code *)PTR_free_00079c24)(local_40)" (parenthesized_expression "(*(code *)PTR_free_00079c24)" ( (pointer_expression "*(code *)PTR_free_00079c24" * (cast_expression "(code *)PTR_free_00079c24" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_40)" ( identifier ))) ;) (expression_statement "param_1 = pppppppcVar30;" (assignment_expression "param_1 = pppppppcVar30" identifier = identifier) ;) })) (expression_statement "FUN_0004b2bc(&local_b4);" (call_expression "FUN_0004b2bc(&local_b4)" identifier (argument_list "(&local_b4)" ( (pointer_expression "&local_b4" & identifier) ))) ;) (expression_statement "pppppppcStack_1a0 = param_4;" (assignment_expression "pppppppcStack_1a0 = param_4" identifier = identifier) ;) (expression_statement "pppppppcStack_19c = pppppppcVar31;" (assignment_expression "pppppppcStack_19c = pppppppcVar31" identifier = identifier) ;) }))) }))) }))))))))) (if_statement "if (local_2c == *(code ********)PTR___stack_chk_guard_00079c10) {\n    return local_150;\n  }" if (parenthesized_expression "(local_2c == *(code ********)PTR___stack_chk_guard_00079c10)" ( (binary_expression "local_2c == *(code ********)PTR___stack_chk_guard_00079c10" identifier == (pointer_expression "*(code ********)PTR___stack_chk_guard_00079c10" * (cast_expression "(code ********)PTR___stack_chk_guard_00079c10" ( (type_descriptor "code ********" type_identifier (abstract_pointer_declarator "********" * (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))))) ) identifier))) )) (compound_statement "{\n    return local_150;\n  }" { (return_statement "return local_150;" return identifier ;) })) (expression_statement "pcVar4 = FUN_00055e64;" (assignment_expression "pcVar4 = FUN_00055e64" identifier = identifier) ;) (expression_statement "pppppppcVar3 = local_2c;" (assignment_expression "pppppppcVar3 = local_2c" identifier = identifier) ;) (expression_statement "puVar41 = PTR___stack_chk_fail_00079bd0;" (assignment_expression "puVar41 = PTR___stack_chk_fail_00079bd0" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_00079bd0)();" (call_expression "(*(code *)PTR___stack_chk_fail_00079bd0)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_00079bd0)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_00079bd0" * (cast_expression "(code *)PTR___stack_chk_fail_00079bd0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "iStack_1a4 = **(int **)(puVar41 + 0x23dac);" (assignment_expression "iStack_1a4 = **(int **)(puVar41 + 0x23dac)" identifier = (pointer_expression "**(int **)(puVar41 + 0x23dac)" * (pointer_expression "*(int **)(puVar41 + 0x23dac)" * (cast_expression "(int **)(puVar41 + 0x23dac)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar41 + 0x23dac)" ( (binary_expression "puVar41 + 0x23dac" identifier + number_literal) )))))) ;) (expression_statement "pppppppcStack_20c = (code *******)0x0;" (assignment_expression "pppppppcStack_20c = (code *******)0x0" identifier = (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "pppppppcVar3[3] = (code ******)pppppppcVar33;" (assignment_expression "pppppppcVar3[3] = (code ******)pppppppcVar33" (subscript_expression "pppppppcVar3[3]" identifier [ number_literal ]) = (cast_expression "(code ******)pppppppcVar33" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) identifier)) ;) (expression_statement "pppppppcVar3[2] = (code ******)0x0;" (assignment_expression "pppppppcVar3[2] = (code ******)0x0" (subscript_expression "pppppppcVar3[2]" identifier [ number_literal ]) = (cast_expression "(code ******)0x0" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) (expression_statement "pppppppcVar3[6] = (code ******)0x0;" (assignment_expression "pppppppcVar3[6] = (code ******)0x0" (subscript_expression "pppppppcVar3[6]" identifier [ number_literal ]) = (cast_expression "(code ******)0x0" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) (expression_statement "*(byte *)(pppppppcVar3 + 7) = (byte)*(code *)(pppppppcVar3 + 7) & 9;" (assignment_expression "*(byte *)(pppppppcVar3 + 7) = (byte)*(code *)(pppppppcVar3 + 7) & 9" (pointer_expression "*(byte *)(pppppppcVar3 + 7)" * (cast_expression "(byte *)(pppppppcVar3 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pppppppcVar3 + 7)" ( (binary_expression "pppppppcVar3 + 7" identifier + number_literal) )))) = (binary_expression "(byte)*(code *)(pppppppcVar3 + 7) & 9" (binary_expression "(byte)*(code *)(pppppppcVar3 + 7)" (parenthesized_expression "(byte)" ( identifier )) * (cast_expression "(code *)(pppppppcVar3 + 7)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pppppppcVar3 + 7)" ( (binary_expression "pppppppcVar3 + 7" identifier + number_literal) )))) & number_literal)) ;) (expression_statement "pppppppcVar34 = (code *******)*pppppppcVar3;" (assignment_expression "pppppppcVar34 = (code *******)*pppppppcVar3" identifier = (cast_expression "(code *******)*pppppppcVar3" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "*pppppppcVar3" * identifier))) ;) (expression_statement "pppppppcStack_198 = param_5;" (assignment_expression "pppppppcStack_198 = param_5" identifier = identifier) ;) (expression_statement "pppppppcStack_194 = param_6;" (assignment_expression "pppppppcStack_194 = param_6" identifier = identifier) ;) (expression_statement "pppppppcStack_190 = unaff_s4;" (assignment_expression "pppppppcStack_190 = unaff_s4" identifier = identifier) ;) (expression_statement "pppppppcStack_18c = unaff_s5;" (assignment_expression "pppppppcStack_18c = unaff_s5" identifier = identifier) ;) (expression_statement "pppppppcStack_188 = pppppppcVar38;" (assignment_expression "pppppppcStack_188 = pppppppcVar38" identifier = identifier) ;) (expression_statement "pppppppcStack_184 = unaff_s7;" (assignment_expression "pppppppcStack_184 = unaff_s7" identifier = identifier) ;) (expression_statement "pppppppcStack_180 = unaff_s8;" (assignment_expression "pppppppcStack_180 = unaff_s8" identifier = identifier) ;) (expression_statement "pcStack_17c = pcVar4;" (assignment_expression "pcStack_17c = pcVar4" identifier = identifier) ;) (if_statement "if (pppppppcVar3[1] < (code ******)0xa0) {\n    pppppppcVar38 = (code *******)0xa0;\n    pppppppcVar31 = param_1;\n    pppppppcVar34 = (code *******)(**(code **)(puVar41 + 0x23cf8))(pppppppcVar34,0xa0);\n    if (pppppppcVar34 == (code *******)0x0) {\n      pppppppcVar29 = (code *******)0xc;\n      goto LAB_00056cfc;\n    }\n    pppppppcVar3[1] = (code ******)0xa0;\n    *pppppppcVar3 = (code ******)pppppppcVar34;\n  }" if (parenthesized_expression "(pppppppcVar3[1] < (code ******)0xa0)" ( (binary_expression "pppppppcVar3[1] < (code ******)0xa0" (subscript_expression "pppppppcVar3[1]" identifier [ number_literal ]) < (cast_expression "(code ******)0xa0" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (compound_statement "{\n    pppppppcVar38 = (code *******)0xa0;\n    pppppppcVar31 = param_1;\n    pppppppcVar34 = (code *******)(**(code **)(puVar41 + 0x23cf8))(pppppppcVar34,0xa0);\n    if (pppppppcVar34 == (code *******)0x0) {\n      pppppppcVar29 = (code *******)0xc;\n      goto LAB_00056cfc;\n    }\n    pppppppcVar3[1] = (code ******)0xa0;\n    *pppppppcVar3 = (code ******)pppppppcVar34;\n  }" { (expression_statement "pppppppcVar38 = (code *******)0xa0;" (assignment_expression "pppppppcVar38 = (code *******)0xa0" identifier = (cast_expression "(code *******)0xa0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "pppppppcVar31 = param_1;" (assignment_expression "pppppppcVar31 = param_1" identifier = identifier) ;) (expression_statement "pppppppcVar34 = (code *******)(**(code **)(puVar41 + 0x23cf8))(pppppppcVar34,0xa0);" (assignment_expression "pppppppcVar34 = (code *******)(**(code **)(puVar41 + 0x23cf8))(pppppppcVar34,0xa0)" identifier = (cast_expression "(code *******)(**(code **)(puVar41 + 0x23cf8))(pppppppcVar34,0xa0)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "(**(code **)(puVar41 + 0x23cf8))(pppppppcVar34,0xa0)" (parenthesized_expression "(**(code **)(puVar41 + 0x23cf8))" ( (pointer_expression "**(code **)(puVar41 + 0x23cf8)" * (pointer_expression "*(code **)(puVar41 + 0x23cf8)" * (cast_expression "(code **)(puVar41 + 0x23cf8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar41 + 0x23cf8)" ( (binary_expression "puVar41 + 0x23cf8" identifier + number_literal) ))))) )) (argument_list "(pppppppcVar34,0xa0)" ( identifier , number_literal ))))) ;) (if_statement "if (pppppppcVar34 == (code *******)0x0) {\n      pppppppcVar29 = (code *******)0xc;\n      goto LAB_00056cfc;\n    }" if (parenthesized_expression "(pppppppcVar34 == (code *******)0x0)" ( (binary_expression "pppppppcVar34 == (code *******)0x0" identifier == (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\n      pppppppcVar29 = (code *******)0xc;\n      goto LAB_00056cfc;\n    }" { (expression_statement "pppppppcVar29 = (code *******)0xc;" (assignment_expression "pppppppcVar29 = (code *******)0xc" identifier = (cast_expression "(code *******)0xc" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (goto_statement "goto LAB_00056cfc;" goto statement_identifier ;) })) (expression_statement "pppppppcVar3[1] = (code ******)0xa0;" (assignment_expression "pppppppcVar3[1] = (code ******)0xa0" (subscript_expression "pppppppcVar3[1]" identifier [ number_literal ]) = (cast_expression "(code ******)0xa0" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) (expression_statement "*pppppppcVar3 = (code ******)pppppppcVar34;" (assignment_expression "*pppppppcVar3 = (code ******)pppppppcVar34" (pointer_expression "*pppppppcVar3" * identifier) = (cast_expression "(code ******)pppppppcVar34" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) identifier)) ;) })) (expression_statement "pppppppcVar3[2] = (code ******)0xa0;" (assignment_expression "pppppppcVar3[2] = (code ******)0xa0" (subscript_expression "pppppppcVar3[2]" identifier [ number_literal ]) = (cast_expression "(code ******)0xa0" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) (expression_statement "pppppppcVar31 = (code *******)0xa0;" (assignment_expression "pppppppcVar31 = (code *******)0xa0" identifier = (cast_expression "(code *******)0xa0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "pppppppcVar38 = (code *******)0x0;" (assignment_expression "pppppppcVar38 = (code *******)0x0" identifier = (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "(**(code **)(puVar41 + 0x23c9c))(pppppppcVar34,0);" (call_expression "(**(code **)(puVar41 + 0x23c9c))(pppppppcVar34,0)" (parenthesized_expression "(**(code **)(puVar41 + 0x23c9c))" ( (pointer_expression "**(code **)(puVar41 + 0x23c9c)" * (pointer_expression "*(code **)(puVar41 + 0x23c9c)" * (cast_expression "(code **)(puVar41 + 0x23c9c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar41 + 0x23c9c)" ( (binary_expression "puVar41 + 0x23c9c" identifier + number_literal) ))))) )) (argument_list "(pppppppcVar34,0)" ( identifier , number_literal ))) ;) (expression_statement "pppppppcVar34[0x10] = (code ******)0x1f;" (assignment_expression "pppppppcVar34[0x10] = (code ******)0x1f" (subscript_expression "pppppppcVar34[0x10]" identifier [ number_literal ]) = (cast_expression "(code ******)0x1f" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) (if_statement "if (param_1 < (code *******)0xaaaaaaa) {\n    pppppppcVar34[1] = (code ******)((int)param_1 + 1);\n    ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23cf0))(((int)param_1 + 1) * 8);\n    *pppppppcVar34 = ppppppcVar32;\n    if (param_1 == (code *******)0x0) {\n      pppppppcVar30 = (code *******)0x1;\n    }\n    else {\n      pppppppcVar30 = (code *******)0x1;\n      do {\n        pppppppcVar30 = (code *******)((int)pppppppcVar30 << 1);\n      } while (pppppppcVar30 <= param_1);\n    }\n    pppppppcVar38 = pppppppcVar30;\n    ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23b8c))(0xc,pppppppcVar30);\n    pppppppcVar34[8] = ppppppcVar32;\n    pppppppcVar34[0x11] = (code ******)((int)pppppppcVar30 + -1);\n    ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23d2c))();\n    pppppppcVar34[0x17] = ppppppcVar32;\n    pbVar17 = (byte *)(**(code **)(puVar41 + 0x23c2c))(0xe);\n    if ((((*pbVar17 & 0xdf) == 0x55) && ((pbVar17[1] & 0xdf) == 0x54)) &&\n       (pppppppcVar38 = (code *******)0x4, (pbVar17[2] & 0xdf) == 0x46)) {\n      iVar18 = 3;\n      if (pbVar17[3] == 0x2d) {\n        iVar18 = 4;\n      }\n      pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23754) + 0x71b4);\n      iVar18 = (**(code **)(puVar41 + 0x23dfc))(pbVar17 + iVar18,pppppppcVar38);\n      if (iVar18 == 0) {\n        *(byte *)(pppppppcVar34 + 0x16) = (byte)*(code *)(pppppppcVar34 + 0x16) & 0xdf | 0x20;\n      }\n    }\n    *(byte *)(pppppppcVar34 + 0x16) = (byte)*(code *)(pppppppcVar34 + 0x16) & 0xef;\n    if (1 < (int)pppppppcVar34[0x17]) {\n      if (((uint)pppppppcVar34[0x16] & 0x20000000) == 0) {\n        pppppppcVar38 = (code *******)0x1;\n        ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23b8c))(0x20,1);\n        pppppppcVar34[0xf] = ppppppcVar32;\n        if (ppppppcVar32 == (code ******)0x0) goto LAB_00056e5c;\n        iVar18 = 0;\n        do {\n          uVar16 = iVar18 << 3;\n          uVar7 = 0;\n          do {\n            uVar19 = (**(code **)(puVar41 + 0x23c88))(uVar16);\n            if (uVar19 != 0xffffffff) {\n              pppppppcVar38 = *(code ********)((int)pppppppcVar34[0xf] + iVar18);\n              *(uint *)((int)pppppppcVar34[0xf] + iVar18) =\n                   (uint)pppppppcVar38 | 1 << (uVar7 & 0x1f);\n            }\n            if (((uVar16 & 0xffffff80) == 0) && (uVar19 != uVar16)) {\n              *(byte *)(pppppppcVar34 + 0x16) = (byte)*(code *)(pppppppcVar34 + 0x16) & 0xef | 0x10;\n            }\n            uVar7 = uVar7 + 1;\n            uVar16 = uVar16 + 1;\n          } while (uVar7 != 0x20);\n          iVar18 = iVar18 + 4;\n        } while (iVar18 != 0x20);\n      }\n      else {\n        pppppppcVar34[0xf] = (code ******)(*(int *)(puVar41 + 0x23754) + 0x6ee4);\n      }\n    }\n    if ((*pppppppcVar34 == (code ******)0x0) || (pppppppcVar34[8] == (code ******)0x0))\n    goto LAB_00056e5c;\n    pppppppcStack_20c = (code *******)0x0;\n    if (*(int *)(puVar41 + 0x23c78) == 0) {\nLAB_00056054:\n      ppppppcVar32 = pppppppcVar3[5];\n      uVar16 = (uint)pppppppcVar33 & 0x400000;\n      bVar1 = uVar16 != 0;\n      pppppppcVar31 = (code *******)0x4c;\n      pppppppcVar38 = (code *******)0x0;\n      (**(code **)(puVar41 + 0x23c9c))(apppppppcStack_1f4,0);\n      cStack_1ad = ppppppcVar32 != (code ******)0x0 || bVar1;\n      ppppppcStack_1a8 = pppppppcVar34[0x17];\n      bStack_1af = (byte)((uint)((int)pppppppcVar34[0x16] << 2) >> 0x1f);\n      bStack_1ae = (byte)((uint)((int)pppppppcVar34[0x16] << 3) >> 0x1f);\n      pppppppcStack_1f8 = pppppppcVar29;\n      pppppppcStack_1cc = param_1;\n      pppppppcStack_1c8 = param_1;\n      pppppppcStack_1c4 = param_1;\n      pppppppcStack_1c0 = param_1;\n      ppppppcStack_1b8 = ppppppcVar32;\n      uStack_1b0 = bVar1;\n      if (0 < (int)param_1) {\n        pppppppcVar38 = (code *******)((int)param_1 + 1);\n        pppppppcVar30 = (code *******)FUN_00046d2c(&pppppppcStack_1f8,pppppppcVar38);\n        if (pppppppcVar30 == (code *******)0x0) goto LAB_000560cc;\n        goto LAB_00056168;\n      }\nLAB_000560cc:\n      if (cStack_1ad != '\0') {\n        pppppppcVar29 = apppppppcStack_1f4[0];\n      }\n      apppppppcStack_1f4[0] = pppppppcVar29;\n      if (uVar16 == 0) {\n        if ((int)pppppppcVar34[0x17] < 2) {\n          if (ppppppcVar32 != (code ******)0x0) {\n            FUN_00045dc8();\n          }\n        }\n        else {\n          FUN_00047cb0(&pppppppcStack_1f8);\n        }\n      }\n      else {\n        if (1 < (int)pppppppcVar34[0x17]) {\n          iVar18 = *(int *)(puVar41 + 0x23abc);\n          do {\n            pppppppcVar30 = (code *******)FUN_00048714(&pppppppcStack_1f8);\n            if (pppppppcVar30 != (code *******)0x0) break;\n            if (((int)param_1 <= iStack_1d8) ||\n               (pppppppcVar38 = (code *******)(iStack_1d4 << 1),\n               (int)pppppppcVar34[0x17] + iStack_1dc < iStack_1d4)) goto LAB_000563d0;\n            pppppppcVar30 =\n                 (code *******)(*(code *)(iVar18 + 0x6d2c))(&pppppppcStack_1f8,pppppppcVar38);\n          } while (pppppppcVar30 == (code *******)0x0);\n          goto LAB_00056168;\n        }\n        FUN_00047be4(&pppppppcStack_1f8);\n      }\nLAB_000563d0:\n      pppppppcStack_20c = (code *******)0x0;\n      pppppppcVar3[6] = (code ******)0x0;\n      ppppppcVar32 = *pppppppcVar3;\n      ppppppcVar32[0x20] = (code *****)pppppppcVar33;\n      FUN_00049e40(&ppppppcStack_204,&pppppppcStack_1f8,(uint)pppppppcVar33 | 0x800000);\n      pppppppcVar38 = pppppppcVar3;\n      pppppppcVar29 =\n           (code *******)\n           FUN_00051868(&pppppppcStack_1f8,pppppppcVar3,&ppppppcStack_204,pppppppcVar33,0,\n                        &pppppppcStack_20c);\n      if (pppppppcStack_20c == (code *******)0x0) {\n        pppppppcVar31 = (code *******)0x0;\n        pppppppcVar38 = (code *******)0x0;\n        pppppppcVar33 = (code *******)FUN_000470f0(ppppppcVar32,0,0,2);\n        pppppppcVar30 = pppppppcVar33;\n        if (pppppppcVar29 != (code *******)0x0) {\nLAB_000564b0:\n          pppppppcVar31 = pppppppcVar33;\n          pppppppcVar30 = (code *******)FUN_000470f0(ppppppcVar32,pppppppcVar29,pppppppcVar33,0x10);\n          pppppppcVar38 = pppppppcVar29;\n        }\n        if ((pppppppcVar33 == (code *******)0x0) ||\n           (pcVar4 = *(code **)(puVar41 + 0x23cf0), pppppppcVar30 == (code *******)0x0)) {\n          pppppppcStack_20c = (code *******)0xc;\n          goto LAB_000566f4;\n        }\n        pppppppcVar34[0xd] = (code ******)pppppppcVar30;\n        pppppppcVar29 = (code *******)*pppppppcVar3;\n        ppppppcVar39 = pppppppcVar29[1];\n        iVar18 = (int)ppppppcVar39 << 2;\n        ppppppcVar32 = (code ******)(*pcVar4)(iVar18);\n        pppppppcVar29[3] = ppppppcVar32;\n        ppppppcVar35 = (code ******)(**(code **)(puVar41 + 0x23cf0))(iVar18);\n        pppppppcVar29[4] = ppppppcVar35;\n        iVar18 = (int)ppppppcVar39 * 0xc;\n        ppppppcVar39 = (code ******)(**(code **)(puVar41 + 0x23cf0))(iVar18);\n        pppppppcVar29[5] = ppppppcVar39;\n        ppppppcVar20 = (code ******)(**(code **)(puVar41 + 0x23cf0))(iVar18);\n        pppppppcVar29[6] = ppppppcVar20;\n        if (ppppppcVar32 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else if (ppppppcVar35 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else if (ppppppcVar39 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else if (ppppppcVar20 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else {\n          ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23cf0))((int)pppppppcVar3[6] << 2);\n          pppppppcVar29[0x21] = ppppppcVar32;\n          if (ppppppcVar32 != (code ******)0x0) {\n            ppppppcVar32 = (code ******)0x0;\n            if (pppppppcVar3[6] != (code ******)0x0) {\n              do {\n                pppppppcVar29[0x21][(int)ppppppcVar32] = (code *****)ppppppcVar32;\n                ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n              } while (ppppppcVar32 < pppppppcVar3[6]);\n            }\n            FUN_00046050(pppppppcVar29[0xd],*(int *)(puVar41 + 0x23abc) + 0x60e8,pppppppcVar29);\n            ppppppcVar32 = pppppppcVar3[6];\n            if (ppppppcVar32 == (code ******)0x0) {\nLAB_00056704:\n              (**(code **)(puVar41 + 0x23dc0))(pppppppcVar29[0x21]);\n              pppppppcVar29[0x21] = (code ******)0x0;\n            }\n            else {\n              ppppppcVar35 = pppppppcVar29[0x21];\n              if (*ppppppcVar35 == (code *****)0x0) {\n                ppppppcVar39 = (code ******)0x0;\n                do {\n                  ppppppcVar35 = ppppppcVar35 + 1;\n                  ppppppcVar39 = (code ******)((int)ppppppcVar39 + 1);\n                  if (ppppppcVar32 == ppppppcVar39) {\n                    if (ppppppcVar32 == ppppppcVar39) goto LAB_00056704;\n                    break;\n                  }\n                } while ((code ******)*ppppppcVar35 == ppppppcVar39);\n              }\n            }\n          }\n          pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23abc) + 0x73a4);\n          pppppppcVar30 = (code *******)FUN_00045fb4(pppppppcVar29[0xd],pppppppcVar38,pppppppcVar3);\n          pppppppcVar31 = pppppppcVar29;\n          if (pppppppcVar30 == (code *******)0x0) {\n            pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23b40) + -0x5be4);\n            pppppppcVar30 = (code *******)FUN_00045fb4(pppppppcVar29[0xd],pppppppcVar38);\n            if (pppppppcVar30 == (code *******)0x0) {\n              FUN_00046050(pppppppcVar29[0xd],*(int *)(puVar41 + 0x23abc) + 0x61b4);\n              pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23b40) + -0x4614);\n              pppppppcVar30 = (code *******)FUN_00046050(pppppppcVar29[0xd],pppppppcVar38);\n              if (pppppppcVar30 == (code *******)0x0) {\n                uVar7 = 0;\n                iVar18 = *(int *)(puVar41 + 0x23b40);\n                pppppppcVar33 = (code *******)0x0;\nLAB_00056744:\n                if ((code *******)pppppppcVar29[2] != pppppppcVar33) {\nLAB_00056750:\n                  if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                    pppppppcVar38 = pppppppcVar29;\n                    pppppppcVar31 = pppppppcVar33;\n                    pppppppcVar30 =\n                         (code *******)\n                         (*(code *)(iVar18 + -0x561c))\n                                   (&ppppppcStack_204,pppppppcVar29,pppppppcVar33,1);\n                    if (pppppppcVar30 != (code *******)0x0) goto LAB_00056168;\n                    if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                      (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                      uVar7 = 1;\n                    }\n                  }\n                  pppppppcVar33 = (code *******)((int)pppppppcVar33 + 1);\n                  goto LAB_00056744;\n                }\n                if (uVar7 != 0) {\n                  uVar7 = 0;\n                  pppppppcVar33 = (code *******)0x0;\n                  goto LAB_00056750;\n                }\n                if (((((uint)pppppppcVar3[7] & 0x8000000) == 0) &&\n                    (pppppppcVar3[6] != (code ******)0x0)) &&\n                   ((char)*(code *)(pppppppcVar29 + 0x16) < '\0')) {\n                  ppppppcVar32 = pppppppcVar29[2];\n                }\n                else {\n                  if (pppppppcVar29[0x13] == (code ******)0x0) goto LAB_000568f0;\n                  ppppppcVar32 = pppppppcVar29[2];\n                }\n                ppppppcVar35 = (code ******)\n                               (**(code **)(puVar41 + 0x23cf0))((int)ppppppcVar32 * 0xc);\n                pppppppcVar29[7] = ppppppcVar35;\n                if (ppppppcVar35 == (code ******)0x0) {\n                  pppppppcVar30 = (code *******)0xc;\n                  goto LAB_00056168;\n                }\n                if (ppppppcVar32 != (code ******)0x0) {\n                  iVar18 = 0;\n                  ppppppcVar32 = (code ******)0x0;\n                  do {\n                    puVar21 = (undefined1 *)((int)pppppppcVar29[7] + iVar18);\n                    *puVar21 = 0;\n                    puVar21[1] = 0;\n                    puVar21[2] = 0;\n                    puVar21[3] = 0;\n                    puVar21[4] = 0;\n                    puVar21[5] = 0;\n                    puVar21[6] = 0;\n                    puVar21[7] = 0;\n                    puVar21[8] = 0;\n                    puVar21[9] = 0;\n                    puVar21[10] = 0;\n                    puVar21[0xb] = 0;\n                    ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                    iVar18 = iVar18 + 0xc;\n                  } while (ppppppcVar32 < pppppppcVar29[2]);\n                  iVar18 = *(int *)(puVar41 + 0x23abc);\n                  if (pppppppcVar29[2] != (code ******)0x0) {\n                    iVar43 = 0;\n                    pppppppcStack_218 = (code *******)0x0;\n                    do {\n                      piVar5 = *(int **)((int)pppppppcVar29[6] + iVar43 + 8);\n                      if (0 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4)) {\n                        iVar37 = 0;\n                        do {\n                          pppppppcVar38 = pppppppcStack_218;\n                          iVar22 = (*(code *)(iVar18 + 0x6e30))\n                                             (pppppppcVar29[7] + *piVar5 * 3,pppppppcStack_218);\n                          pppppppcVar30 = (code *******)0xc;\n                          if (iVar22 == 0) goto LAB_00056168;\n                          iVar37 = iVar37 + 1;\n                          piVar5 = piVar5 + 1;\n                        } while (iVar37 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4));\n                      }\n                      pppppppcStack_218 = (code *******)((int)pppppppcStack_218 + 1);\n                      iVar43 = iVar43 + 0xc;\n                    } while (pppppppcStack_218 < pppppppcVar29[2]);\n                  }\n                }\nLAB_000568f0:\n                pppppppcStack_20c = (code *******)0x0;\n                if (((((uint)pppppppcVar34[0x16] & 0x20000000) != 0) && (uVar16 == 0)) &&\n                   (pppppppcVar3[5] == (code ******)0x0)) {\n                  if (pppppppcVar34[2] != (code ******)0x0) {\n                    pppppppcVar31 = (code *******)(*(int *)(puVar41 + 0x23754) + 0x6e4c);\n                    if (*(byte *)(*pppppppcVar34 + 1) < 0xd) {\n                    \n                    \n                      pppppppcVar29 =\n                           (code *******)\n                           (*(code *)(puVar41 +\n                                     (int)(pppppppcVar31[*(byte *)(*pppppppcVar34 + 1)] + 0xadc7)))\n                                     ();\n                      return pppppppcVar29;\n                    }\n                    (**(code **)(puVar41 + 0x23bc4))(0);\n                    if (uVar7 != 0) {\n                      pppppppcVar31 = (code *******)&DAT_00000007;\n                      ppppppcVar32 = (code ******)0x0;\n                      do {\n                        ppppppcVar35 = *pppppppcVar34 + (int)ppppppcVar32 * 2;\n                        if (*(char *)(ppppppcVar35 + 1) == '\x01') {\n                          if (*(char *)ppppppcVar35 < '\0') {\n                            ppppppcVar35[1] = (code *****)((uint)ppppppcVar35[1] & 0xfffffbff);\n                          }\n                        }\n                        else if (*(char *)(ppppppcVar35 + 1) == '\x05') {\n                          *(char *)(ppppppcVar35 + 1) = '\a';\n                        }\n                        ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                      } while (ppppppcVar32 < pppppppcVar34[2]);\n                    }\n                  }\n                  pppppppcVar34[0x17] = (code ******)0x1;\n                  if (0 < (int)pppppppcVar34[0x13]) {\n                    uVar7 = 1;\n                  }\n                  *(byte *)(pppppppcVar34 + 0x16) =\n                       (byte)*(code *)(pppppppcVar34 + 0x16) & 0x9f | (byte)((uVar7 & 1) << 6);\n                }\n                ppppppcVar32 = (code ******)pppppppcVar34[0xd][3][7];\n                pppppppcVar34[0x12] = ppppppcVar32;\n                pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppppcVar32 * 3);\n                pppppppcVar33 = (code *******)FUN_000483e8(&ppppppcStack_204,pppppppcVar38);\n                pppppppcVar29 = pppppppcVar33;\n                pppppppcStack_208 = pppppppcVar33;\n                if (pppppppcVar33 == (code *******)0x0) {\n                  if ((0 < (int)pppppppcVar34[0x13]) && (0 < iStack_200)) {\n                    iVar18 = *(int *)(puVar41 + 0x23abc);\n                    iVar43 = *(int *)(puVar41 + 0x23abc);\n                    pppppppcVar29 = (code *******)0x0;\n                    do {\n                      pppppppcVar31 =\n                           (code *******)(*pppppppcVar34 + piStack_1fc[(int)pppppppcVar29] * 2);\n                      if (*(code *)(pppppppcVar31 + 1) == (code)0x4) {\n                        iVar37 = 0;\n                        piVar5 = piStack_1fc;\n                        if (iStack_200 < 1) {\nLAB_00056b8c:\n                          if (iStack_200 != iVar37) {\n                            ppppcVar40 = *pppppppcVar34[5][piStack_1fc[(int)pppppppcVar29] * 3 + 2];\n                            iVar37 = (*(code *)(iVar18 + 0x5ea8))(&ppppppcStack_204,ppppcVar40);\n                            if (iVar37 == 0) {\n                              pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppcVar40 * 3)\n                              ;\n                              pppppppcVar29 =\n                                   (code *******)\n                                   (*(code *)(iVar43 + 0x7f1c))(&ppppppcStack_204,pppppppcVar38);\n                              if (pppppppcVar29 != (code *******)0x0) goto LAB_00056cb8;\n                            }\n                          }\n                        }\n                        else {\n                          do {\n                            ppppppcVar32 = *pppppppcVar34 + *piVar5 * 2;\n                            if ((*(char *)(ppppppcVar32 + 1) == '\t') &&\n                               ((code ******)*ppppppcVar32 == *pppppppcVar31)) goto LAB_00056b8c;\n                            iVar37 = iVar37 + 1;\n                            piVar5 = piVar5 + 1;\n                          } while (iStack_200 != iVar37);\n                        }\n                      }\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1);\n                    } while ((int)pppppppcVar29 < iStack_200);\n                  }\n                  pppppppcVar31 = &ppppppcStack_204;\n                  pppppppcVar38 = pppppppcVar34;\n                  ppppppcVar32 = (code ******)\n                                 FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,0);\n                  pppppppcVar34[9] = ppppppcVar32;\n                  pppppppcVar29 = pppppppcStack_208;\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    if (((uint)ppppppcVar32[0xd] & 0x1000000) == 0) {\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar34[10] = ppppppcVar32;\n                    }\n                    else {\n                      pppppppcVar31 = &ppppppcStack_204;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,1);\n                      pppppppcVar34[10] = ppppppcVar32;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,2);\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar38 = pppppppcVar34;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,6);\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar29 = pppppppcStack_208;\n                      if (((pppppppcVar34[10] == (code ******)0x0) ||\n                          (pppppppcVar34[0xb] == (code ******)0x0)) ||\n                         (ppppppcVar32 == (code ******)0x0)) goto LAB_00056cb8;\n                    }\n                    (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                    pppppppcVar29 = pppppppcVar33;\n                  }\n                }\nLAB_00056cb8:\n                pppppppcStack_20c = pppppppcVar29;\n                FUN_0004b234(pppppppcVar3);\n                FUN_0004b2bc(&pppppppcStack_1f8);\n                pppppppcVar29 = pppppppcStack_20c;\n                if (pppppppcStack_20c != (code *******)0x0) {\n                  if (*(int *)(puVar41 + 0x23c78) != 0) {\n                    (**(code **)(puVar41 + 0x23df0))(pppppppcVar34 + 0x22);\n                  }\n                  FUN_0004b338(pppppppcVar34);\n                  *pppppppcVar3 = (code ******)0x0;\n                  pppppppcVar3[1] = (code ******)0x0;\n                  pppppppcVar29 = pppppppcStack_20c;\n                }\n                goto LAB_00056cfc;\n              }\n            }\n          }\n        }\n      }\n      else {\n        pppppppcVar31 = (code *******)0x0;\n        if (pppppppcVar29 != (code *******)0x0) {\n          pppppppcVar33 = (code *******)FUN_000470f0(ppppppcVar32,0,0,2);\n          goto LAB_000564b0;\n        }\nLAB_000566f4:\n        pppppppcVar34[0xd] = (code ******)0x0;\n        pppppppcVar30 = pppppppcStack_20c;\n      }\nLAB_00056168:\n      pppppppcStack_20c = pppppppcVar30;\n      FUN_0004b234(pppppppcVar3);\n      FUN_0004b2bc(&pppppppcStack_1f8);\n      if (*(int *)(puVar41 + 0x23c78) != 0) {\n        (**(code **)(puVar41 + 0x23df0))(pppppppcVar34 + 0x22);\n      }\n      FUN_0004b338(pppppppcVar34);\n      *pppppppcVar3 = (code ******)0x0;\n      pppppppcVar3[1] = (code ******)0x0;\n      pppppppcVar29 = pppppppcStack_20c;\n      goto LAB_00056cfc;\n    }\n    pppppppcVar38 = (code *******)0x0;\n    iVar18 = (**(code **)(puVar41 + 0x23d98))(pppppppcVar34 + 0x22,0);\n    if (iVar18 != 0) goto LAB_00056e5c;\n    if (pppppppcStack_20c == (code *******)0x0) goto LAB_00056054;\n  }\n  else {\nLAB_00056e5c:\n    pppppppcStack_20c = (code *******)0xc;\n  }" if (parenthesized_expression "(param_1 < (code *******)0xaaaaaaa)" ( (binary_expression "param_1 < (code *******)0xaaaaaaa" identifier < (cast_expression "(code *******)0xaaaaaaa" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\n    pppppppcVar34[1] = (code ******)((int)param_1 + 1);\n    ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23cf0))(((int)param_1 + 1) * 8);\n    *pppppppcVar34 = ppppppcVar32;\n    if (param_1 == (code *******)0x0) {\n      pppppppcVar30 = (code *******)0x1;\n    }\n    else {\n      pppppppcVar30 = (code *******)0x1;\n      do {\n        pppppppcVar30 = (code *******)((int)pppppppcVar30 << 1);\n      } while (pppppppcVar30 <= param_1);\n    }\n    pppppppcVar38 = pppppppcVar30;\n    ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23b8c))(0xc,pppppppcVar30);\n    pppppppcVar34[8] = ppppppcVar32;\n    pppppppcVar34[0x11] = (code ******)((int)pppppppcVar30 + -1);\n    ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23d2c))();\n    pppppppcVar34[0x17] = ppppppcVar32;\n    pbVar17 = (byte *)(**(code **)(puVar41 + 0x23c2c))(0xe);\n    if ((((*pbVar17 & 0xdf) == 0x55) && ((pbVar17[1] & 0xdf) == 0x54)) &&\n       (pppppppcVar38 = (code *******)0x4, (pbVar17[2] & 0xdf) == 0x46)) {\n      iVar18 = 3;\n      if (pbVar17[3] == 0x2d) {\n        iVar18 = 4;\n      }\n      pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23754) + 0x71b4);\n      iVar18 = (**(code **)(puVar41 + 0x23dfc))(pbVar17 + iVar18,pppppppcVar38);\n      if (iVar18 == 0) {\n        *(byte *)(pppppppcVar34 + 0x16) = (byte)*(code *)(pppppppcVar34 + 0x16) & 0xdf | 0x20;\n      }\n    }\n    *(byte *)(pppppppcVar34 + 0x16) = (byte)*(code *)(pppppppcVar34 + 0x16) & 0xef;\n    if (1 < (int)pppppppcVar34[0x17]) {\n      if (((uint)pppppppcVar34[0x16] & 0x20000000) == 0) {\n        pppppppcVar38 = (code *******)0x1;\n        ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23b8c))(0x20,1);\n        pppppppcVar34[0xf] = ppppppcVar32;\n        if (ppppppcVar32 == (code ******)0x0) goto LAB_00056e5c;\n        iVar18 = 0;\n        do {\n          uVar16 = iVar18 << 3;\n          uVar7 = 0;\n          do {\n            uVar19 = (**(code **)(puVar41 + 0x23c88))(uVar16);\n            if (uVar19 != 0xffffffff) {\n              pppppppcVar38 = *(code ********)((int)pppppppcVar34[0xf] + iVar18);\n              *(uint *)((int)pppppppcVar34[0xf] + iVar18) =\n                   (uint)pppppppcVar38 | 1 << (uVar7 & 0x1f);\n            }\n            if (((uVar16 & 0xffffff80) == 0) && (uVar19 != uVar16)) {\n              *(byte *)(pppppppcVar34 + 0x16) = (byte)*(code *)(pppppppcVar34 + 0x16) & 0xef | 0x10;\n            }\n            uVar7 = uVar7 + 1;\n            uVar16 = uVar16 + 1;\n          } while (uVar7 != 0x20);\n          iVar18 = iVar18 + 4;\n        } while (iVar18 != 0x20);\n      }\n      else {\n        pppppppcVar34[0xf] = (code ******)(*(int *)(puVar41 + 0x23754) + 0x6ee4);\n      }\n    }\n    if ((*pppppppcVar34 == (code ******)0x0) || (pppppppcVar34[8] == (code ******)0x0))\n    goto LAB_00056e5c;\n    pppppppcStack_20c = (code *******)0x0;\n    if (*(int *)(puVar41 + 0x23c78) == 0) {\nLAB_00056054:\n      ppppppcVar32 = pppppppcVar3[5];\n      uVar16 = (uint)pppppppcVar33 & 0x400000;\n      bVar1 = uVar16 != 0;\n      pppppppcVar31 = (code *******)0x4c;\n      pppppppcVar38 = (code *******)0x0;\n      (**(code **)(puVar41 + 0x23c9c))(apppppppcStack_1f4,0);\n      cStack_1ad = ppppppcVar32 != (code ******)0x0 || bVar1;\n      ppppppcStack_1a8 = pppppppcVar34[0x17];\n      bStack_1af = (byte)((uint)((int)pppppppcVar34[0x16] << 2) >> 0x1f);\n      bStack_1ae = (byte)((uint)((int)pppppppcVar34[0x16] << 3) >> 0x1f);\n      pppppppcStack_1f8 = pppppppcVar29;\n      pppppppcStack_1cc = param_1;\n      pppppppcStack_1c8 = param_1;\n      pppppppcStack_1c4 = param_1;\n      pppppppcStack_1c0 = param_1;\n      ppppppcStack_1b8 = ppppppcVar32;\n      uStack_1b0 = bVar1;\n      if (0 < (int)param_1) {\n        pppppppcVar38 = (code *******)((int)param_1 + 1);\n        pppppppcVar30 = (code *******)FUN_00046d2c(&pppppppcStack_1f8,pppppppcVar38);\n        if (pppppppcVar30 == (code *******)0x0) goto LAB_000560cc;\n        goto LAB_00056168;\n      }\nLAB_000560cc:\n      if (cStack_1ad != '\0') {\n        pppppppcVar29 = apppppppcStack_1f4[0];\n      }\n      apppppppcStack_1f4[0] = pppppppcVar29;\n      if (uVar16 == 0) {\n        if ((int)pppppppcVar34[0x17] < 2) {\n          if (ppppppcVar32 != (code ******)0x0) {\n            FUN_00045dc8();\n          }\n        }\n        else {\n          FUN_00047cb0(&pppppppcStack_1f8);\n        }\n      }\n      else {\n        if (1 < (int)pppppppcVar34[0x17]) {\n          iVar18 = *(int *)(puVar41 + 0x23abc);\n          do {\n            pppppppcVar30 = (code *******)FUN_00048714(&pppppppcStack_1f8);\n            if (pppppppcVar30 != (code *******)0x0) break;\n            if (((int)param_1 <= iStack_1d8) ||\n               (pppppppcVar38 = (code *******)(iStack_1d4 << 1),\n               (int)pppppppcVar34[0x17] + iStack_1dc < iStack_1d4)) goto LAB_000563d0;\n            pppppppcVar30 =\n                 (code *******)(*(code *)(iVar18 + 0x6d2c))(&pppppppcStack_1f8,pppppppcVar38);\n          } while (pppppppcVar30 == (code *******)0x0);\n          goto LAB_00056168;\n        }\n        FUN_00047be4(&pppppppcStack_1f8);\n      }\nLAB_000563d0:\n      pppppppcStack_20c = (code *******)0x0;\n      pppppppcVar3[6] = (code ******)0x0;\n      ppppppcVar32 = *pppppppcVar3;\n      ppppppcVar32[0x20] = (code *****)pppppppcVar33;\n      FUN_00049e40(&ppppppcStack_204,&pppppppcStack_1f8,(uint)pppppppcVar33 | 0x800000);\n      pppppppcVar38 = pppppppcVar3;\n      pppppppcVar29 =\n           (code *******)\n           FUN_00051868(&pppppppcStack_1f8,pppppppcVar3,&ppppppcStack_204,pppppppcVar33,0,\n                        &pppppppcStack_20c);\n      if (pppppppcStack_20c == (code *******)0x0) {\n        pppppppcVar31 = (code *******)0x0;\n        pppppppcVar38 = (code *******)0x0;\n        pppppppcVar33 = (code *******)FUN_000470f0(ppppppcVar32,0,0,2);\n        pppppppcVar30 = pppppppcVar33;\n        if (pppppppcVar29 != (code *******)0x0) {\nLAB_000564b0:\n          pppppppcVar31 = pppppppcVar33;\n          pppppppcVar30 = (code *******)FUN_000470f0(ppppppcVar32,pppppppcVar29,pppppppcVar33,0x10);\n          pppppppcVar38 = pppppppcVar29;\n        }\n        if ((pppppppcVar33 == (code *******)0x0) ||\n           (pcVar4 = *(code **)(puVar41 + 0x23cf0), pppppppcVar30 == (code *******)0x0)) {\n          pppppppcStack_20c = (code *******)0xc;\n          goto LAB_000566f4;\n        }\n        pppppppcVar34[0xd] = (code ******)pppppppcVar30;\n        pppppppcVar29 = (code *******)*pppppppcVar3;\n        ppppppcVar39 = pppppppcVar29[1];\n        iVar18 = (int)ppppppcVar39 << 2;\n        ppppppcVar32 = (code ******)(*pcVar4)(iVar18);\n        pppppppcVar29[3] = ppppppcVar32;\n        ppppppcVar35 = (code ******)(**(code **)(puVar41 + 0x23cf0))(iVar18);\n        pppppppcVar29[4] = ppppppcVar35;\n        iVar18 = (int)ppppppcVar39 * 0xc;\n        ppppppcVar39 = (code ******)(**(code **)(puVar41 + 0x23cf0))(iVar18);\n        pppppppcVar29[5] = ppppppcVar39;\n        ppppppcVar20 = (code ******)(**(code **)(puVar41 + 0x23cf0))(iVar18);\n        pppppppcVar29[6] = ppppppcVar20;\n        if (ppppppcVar32 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else if (ppppppcVar35 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else if (ppppppcVar39 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else if (ppppppcVar20 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else {\n          ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23cf0))((int)pppppppcVar3[6] << 2);\n          pppppppcVar29[0x21] = ppppppcVar32;\n          if (ppppppcVar32 != (code ******)0x0) {\n            ppppppcVar32 = (code ******)0x0;\n            if (pppppppcVar3[6] != (code ******)0x0) {\n              do {\n                pppppppcVar29[0x21][(int)ppppppcVar32] = (code *****)ppppppcVar32;\n                ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n              } while (ppppppcVar32 < pppppppcVar3[6]);\n            }\n            FUN_00046050(pppppppcVar29[0xd],*(int *)(puVar41 + 0x23abc) + 0x60e8,pppppppcVar29);\n            ppppppcVar32 = pppppppcVar3[6];\n            if (ppppppcVar32 == (code ******)0x0) {\nLAB_00056704:\n              (**(code **)(puVar41 + 0x23dc0))(pppppppcVar29[0x21]);\n              pppppppcVar29[0x21] = (code ******)0x0;\n            }\n            else {\n              ppppppcVar35 = pppppppcVar29[0x21];\n              if (*ppppppcVar35 == (code *****)0x0) {\n                ppppppcVar39 = (code ******)0x0;\n                do {\n                  ppppppcVar35 = ppppppcVar35 + 1;\n                  ppppppcVar39 = (code ******)((int)ppppppcVar39 + 1);\n                  if (ppppppcVar32 == ppppppcVar39) {\n                    if (ppppppcVar32 == ppppppcVar39) goto LAB_00056704;\n                    break;\n                  }\n                } while ((code ******)*ppppppcVar35 == ppppppcVar39);\n              }\n            }\n          }\n          pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23abc) + 0x73a4);\n          pppppppcVar30 = (code *******)FUN_00045fb4(pppppppcVar29[0xd],pppppppcVar38,pppppppcVar3);\n          pppppppcVar31 = pppppppcVar29;\n          if (pppppppcVar30 == (code *******)0x0) {\n            pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23b40) + -0x5be4);\n            pppppppcVar30 = (code *******)FUN_00045fb4(pppppppcVar29[0xd],pppppppcVar38);\n            if (pppppppcVar30 == (code *******)0x0) {\n              FUN_00046050(pppppppcVar29[0xd],*(int *)(puVar41 + 0x23abc) + 0x61b4);\n              pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23b40) + -0x4614);\n              pppppppcVar30 = (code *******)FUN_00046050(pppppppcVar29[0xd],pppppppcVar38);\n              if (pppppppcVar30 == (code *******)0x0) {\n                uVar7 = 0;\n                iVar18 = *(int *)(puVar41 + 0x23b40);\n                pppppppcVar33 = (code *******)0x0;\nLAB_00056744:\n                if ((code *******)pppppppcVar29[2] != pppppppcVar33) {\nLAB_00056750:\n                  if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                    pppppppcVar38 = pppppppcVar29;\n                    pppppppcVar31 = pppppppcVar33;\n                    pppppppcVar30 =\n                         (code *******)\n                         (*(code *)(iVar18 + -0x561c))\n                                   (&ppppppcStack_204,pppppppcVar29,pppppppcVar33,1);\n                    if (pppppppcVar30 != (code *******)0x0) goto LAB_00056168;\n                    if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                      (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                      uVar7 = 1;\n                    }\n                  }\n                  pppppppcVar33 = (code *******)((int)pppppppcVar33 + 1);\n                  goto LAB_00056744;\n                }\n                if (uVar7 != 0) {\n                  uVar7 = 0;\n                  pppppppcVar33 = (code *******)0x0;\n                  goto LAB_00056750;\n                }\n                if (((((uint)pppppppcVar3[7] & 0x8000000) == 0) &&\n                    (pppppppcVar3[6] != (code ******)0x0)) &&\n                   ((char)*(code *)(pppppppcVar29 + 0x16) < '\0')) {\n                  ppppppcVar32 = pppppppcVar29[2];\n                }\n                else {\n                  if (pppppppcVar29[0x13] == (code ******)0x0) goto LAB_000568f0;\n                  ppppppcVar32 = pppppppcVar29[2];\n                }\n                ppppppcVar35 = (code ******)\n                               (**(code **)(puVar41 + 0x23cf0))((int)ppppppcVar32 * 0xc);\n                pppppppcVar29[7] = ppppppcVar35;\n                if (ppppppcVar35 == (code ******)0x0) {\n                  pppppppcVar30 = (code *******)0xc;\n                  goto LAB_00056168;\n                }\n                if (ppppppcVar32 != (code ******)0x0) {\n                  iVar18 = 0;\n                  ppppppcVar32 = (code ******)0x0;\n                  do {\n                    puVar21 = (undefined1 *)((int)pppppppcVar29[7] + iVar18);\n                    *puVar21 = 0;\n                    puVar21[1] = 0;\n                    puVar21[2] = 0;\n                    puVar21[3] = 0;\n                    puVar21[4] = 0;\n                    puVar21[5] = 0;\n                    puVar21[6] = 0;\n                    puVar21[7] = 0;\n                    puVar21[8] = 0;\n                    puVar21[9] = 0;\n                    puVar21[10] = 0;\n                    puVar21[0xb] = 0;\n                    ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                    iVar18 = iVar18 + 0xc;\n                  } while (ppppppcVar32 < pppppppcVar29[2]);\n                  iVar18 = *(int *)(puVar41 + 0x23abc);\n                  if (pppppppcVar29[2] != (code ******)0x0) {\n                    iVar43 = 0;\n                    pppppppcStack_218 = (code *******)0x0;\n                    do {\n                      piVar5 = *(int **)((int)pppppppcVar29[6] + iVar43 + 8);\n                      if (0 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4)) {\n                        iVar37 = 0;\n                        do {\n                          pppppppcVar38 = pppppppcStack_218;\n                          iVar22 = (*(code *)(iVar18 + 0x6e30))\n                                             (pppppppcVar29[7] + *piVar5 * 3,pppppppcStack_218);\n                          pppppppcVar30 = (code *******)0xc;\n                          if (iVar22 == 0) goto LAB_00056168;\n                          iVar37 = iVar37 + 1;\n                          piVar5 = piVar5 + 1;\n                        } while (iVar37 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4));\n                      }\n                      pppppppcStack_218 = (code *******)((int)pppppppcStack_218 + 1);\n                      iVar43 = iVar43 + 0xc;\n                    } while (pppppppcStack_218 < pppppppcVar29[2]);\n                  }\n                }\nLAB_000568f0:\n                pppppppcStack_20c = (code *******)0x0;\n                if (((((uint)pppppppcVar34[0x16] & 0x20000000) != 0) && (uVar16 == 0)) &&\n                   (pppppppcVar3[5] == (code ******)0x0)) {\n                  if (pppppppcVar34[2] != (code ******)0x0) {\n                    pppppppcVar31 = (code *******)(*(int *)(puVar41 + 0x23754) + 0x6e4c);\n                    if (*(byte *)(*pppppppcVar34 + 1) < 0xd) {\n                    \n                    \n                      pppppppcVar29 =\n                           (code *******)\n                           (*(code *)(puVar41 +\n                                     (int)(pppppppcVar31[*(byte *)(*pppppppcVar34 + 1)] + 0xadc7)))\n                                     ();\n                      return pppppppcVar29;\n                    }\n                    (**(code **)(puVar41 + 0x23bc4))(0);\n                    if (uVar7 != 0) {\n                      pppppppcVar31 = (code *******)&DAT_00000007;\n                      ppppppcVar32 = (code ******)0x0;\n                      do {\n                        ppppppcVar35 = *pppppppcVar34 + (int)ppppppcVar32 * 2;\n                        if (*(char *)(ppppppcVar35 + 1) == '\x01') {\n                          if (*(char *)ppppppcVar35 < '\0') {\n                            ppppppcVar35[1] = (code *****)((uint)ppppppcVar35[1] & 0xfffffbff);\n                          }\n                        }\n                        else if (*(char *)(ppppppcVar35 + 1) == '\x05') {\n                          *(char *)(ppppppcVar35 + 1) = '\a';\n                        }\n                        ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                      } while (ppppppcVar32 < pppppppcVar34[2]);\n                    }\n                  }\n                  pppppppcVar34[0x17] = (code ******)0x1;\n                  if (0 < (int)pppppppcVar34[0x13]) {\n                    uVar7 = 1;\n                  }\n                  *(byte *)(pppppppcVar34 + 0x16) =\n                       (byte)*(code *)(pppppppcVar34 + 0x16) & 0x9f | (byte)((uVar7 & 1) << 6);\n                }\n                ppppppcVar32 = (code ******)pppppppcVar34[0xd][3][7];\n                pppppppcVar34[0x12] = ppppppcVar32;\n                pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppppcVar32 * 3);\n                pppppppcVar33 = (code *******)FUN_000483e8(&ppppppcStack_204,pppppppcVar38);\n                pppppppcVar29 = pppppppcVar33;\n                pppppppcStack_208 = pppppppcVar33;\n                if (pppppppcVar33 == (code *******)0x0) {\n                  if ((0 < (int)pppppppcVar34[0x13]) && (0 < iStack_200)) {\n                    iVar18 = *(int *)(puVar41 + 0x23abc);\n                    iVar43 = *(int *)(puVar41 + 0x23abc);\n                    pppppppcVar29 = (code *******)0x0;\n                    do {\n                      pppppppcVar31 =\n                           (code *******)(*pppppppcVar34 + piStack_1fc[(int)pppppppcVar29] * 2);\n                      if (*(code *)(pppppppcVar31 + 1) == (code)0x4) {\n                        iVar37 = 0;\n                        piVar5 = piStack_1fc;\n                        if (iStack_200 < 1) {\nLAB_00056b8c:\n                          if (iStack_200 != iVar37) {\n                            ppppcVar40 = *pppppppcVar34[5][piStack_1fc[(int)pppppppcVar29] * 3 + 2];\n                            iVar37 = (*(code *)(iVar18 + 0x5ea8))(&ppppppcStack_204,ppppcVar40);\n                            if (iVar37 == 0) {\n                              pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppcVar40 * 3)\n                              ;\n                              pppppppcVar29 =\n                                   (code *******)\n                                   (*(code *)(iVar43 + 0x7f1c))(&ppppppcStack_204,pppppppcVar38);\n                              if (pppppppcVar29 != (code *******)0x0) goto LAB_00056cb8;\n                            }\n                          }\n                        }\n                        else {\n                          do {\n                            ppppppcVar32 = *pppppppcVar34 + *piVar5 * 2;\n                            if ((*(char *)(ppppppcVar32 + 1) == '\t') &&\n                               ((code ******)*ppppppcVar32 == *pppppppcVar31)) goto LAB_00056b8c;\n                            iVar37 = iVar37 + 1;\n                            piVar5 = piVar5 + 1;\n                          } while (iStack_200 != iVar37);\n                        }\n                      }\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1);\n                    } while ((int)pppppppcVar29 < iStack_200);\n                  }\n                  pppppppcVar31 = &ppppppcStack_204;\n                  pppppppcVar38 = pppppppcVar34;\n                  ppppppcVar32 = (code ******)\n                                 FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,0);\n                  pppppppcVar34[9] = ppppppcVar32;\n                  pppppppcVar29 = pppppppcStack_208;\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    if (((uint)ppppppcVar32[0xd] & 0x1000000) == 0) {\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar34[10] = ppppppcVar32;\n                    }\n                    else {\n                      pppppppcVar31 = &ppppppcStack_204;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,1);\n                      pppppppcVar34[10] = ppppppcVar32;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,2);\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar38 = pppppppcVar34;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,6);\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar29 = pppppppcStack_208;\n                      if (((pppppppcVar34[10] == (code ******)0x0) ||\n                          (pppppppcVar34[0xb] == (code ******)0x0)) ||\n                         (ppppppcVar32 == (code ******)0x0)) goto LAB_00056cb8;\n                    }\n                    (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                    pppppppcVar29 = pppppppcVar33;\n                  }\n                }\nLAB_00056cb8:\n                pppppppcStack_20c = pppppppcVar29;\n                FUN_0004b234(pppppppcVar3);\n                FUN_0004b2bc(&pppppppcStack_1f8);\n                pppppppcVar29 = pppppppcStack_20c;\n                if (pppppppcStack_20c != (code *******)0x0) {\n                  if (*(int *)(puVar41 + 0x23c78) != 0) {\n                    (**(code **)(puVar41 + 0x23df0))(pppppppcVar34 + 0x22);\n                  }\n                  FUN_0004b338(pppppppcVar34);\n                  *pppppppcVar3 = (code ******)0x0;\n                  pppppppcVar3[1] = (code ******)0x0;\n                  pppppppcVar29 = pppppppcStack_20c;\n                }\n                goto LAB_00056cfc;\n              }\n            }\n          }\n        }\n      }\n      else {\n        pppppppcVar31 = (code *******)0x0;\n        if (pppppppcVar29 != (code *******)0x0) {\n          pppppppcVar33 = (code *******)FUN_000470f0(ppppppcVar32,0,0,2);\n          goto LAB_000564b0;\n        }\nLAB_000566f4:\n        pppppppcVar34[0xd] = (code ******)0x0;\n        pppppppcVar30 = pppppppcStack_20c;\n      }\nLAB_00056168:\n      pppppppcStack_20c = pppppppcVar30;\n      FUN_0004b234(pppppppcVar3);\n      FUN_0004b2bc(&pppppppcStack_1f8);\n      if (*(int *)(puVar41 + 0x23c78) != 0) {\n        (**(code **)(puVar41 + 0x23df0))(pppppppcVar34 + 0x22);\n      }\n      FUN_0004b338(pppppppcVar34);\n      *pppppppcVar3 = (code ******)0x0;\n      pppppppcVar3[1] = (code ******)0x0;\n      pppppppcVar29 = pppppppcStack_20c;\n      goto LAB_00056cfc;\n    }\n    pppppppcVar38 = (code *******)0x0;\n    iVar18 = (**(code **)(puVar41 + 0x23d98))(pppppppcVar34 + 0x22,0);\n    if (iVar18 != 0) goto LAB_00056e5c;\n    if (pppppppcStack_20c == (code *******)0x0) goto LAB_00056054;\n  }" { (expression_statement "pppppppcVar34[1] = (code ******)((int)param_1 + 1);" (assignment_expression "pppppppcVar34[1] = (code ******)((int)param_1 + 1)" (subscript_expression "pppppppcVar34[1]" identifier [ number_literal ]) = (cast_expression "(code ******)((int)param_1 + 1)" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "((int)param_1 + 1)" ( (binary_expression "(int)param_1 + 1" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23cf0))(((int)param_1 + 1) * 8);" (assignment_expression "ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23cf0))(((int)param_1 + 1) * 8)" identifier = (cast_expression "(code ******)(**(code **)(puVar41 + 0x23cf0))(((int)param_1 + 1) * 8)" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (call_expression "(**(code **)(puVar41 + 0x23cf0))(((int)param_1 + 1) * 8)" (parenthesized_expression "(**(code **)(puVar41 + 0x23cf0))" ( (pointer_expression "**(code **)(puVar41 + 0x23cf0)" * (pointer_expression "*(code **)(puVar41 + 0x23cf0)" * (cast_expression "(code **)(puVar41 + 0x23cf0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar41 + 0x23cf0)" ( (binary_expression "puVar41 + 0x23cf0" identifier + number_literal) ))))) )) (argument_list "(((int)param_1 + 1) * 8)" ( (binary_expression "((int)param_1 + 1) * 8" (parenthesized_expression "((int)param_1 + 1)" ( (binary_expression "(int)param_1 + 1" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )) * number_literal) ))))) ;) (expression_statement "*pppppppcVar34 = ppppppcVar32;" (assignment_expression "*pppppppcVar34 = ppppppcVar32" (pointer_expression "*pppppppcVar34" * identifier) = identifier) ;) (if_statement "if (param_1 == (code *******)0x0) {\n      pppppppcVar30 = (code *******)0x1;\n    }\n    else {\n      pppppppcVar30 = (code *******)0x1;\n      do {\n        pppppppcVar30 = (code *******)((int)pppppppcVar30 << 1);\n      } while (pppppppcVar30 <= param_1);\n    }" if (parenthesized_expression "(param_1 == (code *******)0x0)" ( (binary_expression "param_1 == (code *******)0x0" identifier == (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\n      pppppppcVar30 = (code *******)0x1;\n    }" { (expression_statement "pppppppcVar30 = (code *******)0x1;" (assignment_expression "pppppppcVar30 = (code *******)0x1" identifier = (cast_expression "(code *******)0x1" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) }) (else_clause "else {\n      pppppppcVar30 = (code *******)0x1;\n      do {\n        pppppppcVar30 = (code *******)((int)pppppppcVar30 << 1);\n      } while (pppppppcVar30 <= param_1);\n    }" else (compound_statement "{\n      pppppppcVar30 = (code *******)0x1;\n      do {\n        pppppppcVar30 = (code *******)((int)pppppppcVar30 << 1);\n      } while (pppppppcVar30 <= param_1);\n    }" { (expression_statement "pppppppcVar30 = (code *******)0x1;" (assignment_expression "pppppppcVar30 = (code *******)0x1" identifier = (cast_expression "(code *******)0x1" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (do_statement "do {\n        pppppppcVar30 = (code *******)((int)pppppppcVar30 << 1);\n      } while (pppppppcVar30 <= param_1);" do (compound_statement "{\n        pppppppcVar30 = (code *******)((int)pppppppcVar30 << 1);\n      }" { (expression_statement "pppppppcVar30 = (code *******)((int)pppppppcVar30 << 1);" (assignment_expression "pppppppcVar30 = (code *******)((int)pppppppcVar30 << 1)" identifier = (cast_expression "(code *******)((int)pppppppcVar30 << 1)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)pppppppcVar30 << 1)" ( (binary_expression "(int)pppppppcVar30 << 1" (cast_expression "(int)pppppppcVar30" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) )))) ;) }) while (parenthesized_expression "(pppppppcVar30 <= param_1)" ( (binary_expression "pppppppcVar30 <= param_1" identifier <= identifier) )) ;) }))) (expression_statement "pppppppcVar38 = pppppppcVar30;" (assignment_expression "pppppppcVar38 = pppppppcVar30" identifier = identifier) ;) (expression_statement "ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23b8c))(0xc,pppppppcVar30);" (assignment_expression "ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23b8c))(0xc,pppppppcVar30)" identifier = (cast_expression "(code ******)(**(code **)(puVar41 + 0x23b8c))(0xc,pppppppcVar30)" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (call_expression "(**(code **)(puVar41 + 0x23b8c))(0xc,pppppppcVar30)" (parenthesized_expression "(**(code **)(puVar41 + 0x23b8c))" ( (pointer_expression "**(code **)(puVar41 + 0x23b8c)" * (pointer_expression "*(code **)(puVar41 + 0x23b8c)" * (cast_expression "(code **)(puVar41 + 0x23b8c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar41 + 0x23b8c)" ( (binary_expression "puVar41 + 0x23b8c" identifier + number_literal) ))))) )) (argument_list "(0xc,pppppppcVar30)" ( number_literal , identifier ))))) ;) (expression_statement "pppppppcVar34[8] = ppppppcVar32;" (assignment_expression "pppppppcVar34[8] = ppppppcVar32" (subscript_expression "pppppppcVar34[8]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pppppppcVar34[0x11] = (code ******)((int)pppppppcVar30 + -1);" (assignment_expression "pppppppcVar34[0x11] = (code ******)((int)pppppppcVar30 + -1)" (subscript_expression "pppppppcVar34[0x11]" identifier [ number_literal ]) = (cast_expression "(code ******)((int)pppppppcVar30 + -1)" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "((int)pppppppcVar30 + -1)" ( (binary_expression "(int)pppppppcVar30 + -1" (cast_expression "(int)pppppppcVar30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23d2c))();" (assignment_expression "ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23d2c))()" identifier = (cast_expression "(code ******)(**(code **)(puVar41 + 0x23d2c))()" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (call_expression "(**(code **)(puVar41 + 0x23d2c))()" (parenthesized_expression "(**(code **)(puVar41 + 0x23d2c))" ( (pointer_expression "**(code **)(puVar41 + 0x23d2c)" * (pointer_expression "*(code **)(puVar41 + 0x23d2c)" * (cast_expression "(code **)(puVar41 + 0x23d2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar41 + 0x23d2c)" ( (binary_expression "puVar41 + 0x23d2c" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "pppppppcVar34[0x17] = ppppppcVar32;" (assignment_expression "pppppppcVar34[0x17] = ppppppcVar32" (subscript_expression "pppppppcVar34[0x17]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pbVar17 = (byte *)(**(code **)(puVar41 + 0x23c2c))(0xe);" (assignment_expression "pbVar17 = (byte *)(**(code **)(puVar41 + 0x23c2c))(0xe)" identifier = (cast_expression "(byte *)(**(code **)(puVar41 + 0x23c2c))(0xe)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar41 + 0x23c2c))(0xe)" (parenthesized_expression "(**(code **)(puVar41 + 0x23c2c))" ( (pointer_expression "**(code **)(puVar41 + 0x23c2c)" * (pointer_expression "*(code **)(puVar41 + 0x23c2c)" * (cast_expression "(code **)(puVar41 + 0x23c2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar41 + 0x23c2c)" ( (binary_expression "puVar41 + 0x23c2c" identifier + number_literal) ))))) )) (argument_list "(0xe)" ( number_literal ))))) ;) (if_statement "if ((((*pbVar17 & 0xdf) == 0x55) && ((pbVar17[1] & 0xdf) == 0x54)) &&\n       (pppppppcVar38 = (code *******)0x4, (pbVar17[2] & 0xdf) == 0x46)) {\n      iVar18 = 3;\n      if (pbVar17[3] == 0x2d) {\n        iVar18 = 4;\n      }\n      pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23754) + 0x71b4);\n      iVar18 = (**(code **)(puVar41 + 0x23dfc))(pbVar17 + iVar18,pppppppcVar38);\n      if (iVar18 == 0) {\n        *(byte *)(pppppppcVar34 + 0x16) = (byte)*(code *)(pppppppcVar34 + 0x16) & 0xdf | 0x20;\n      }\n    }" if (parenthesized_expression "((((*pbVar17 & 0xdf) == 0x55) && ((pbVar17[1] & 0xdf) == 0x54)) &&\n       (pppppppcVar38 = (code *******)0x4, (pbVar17[2] & 0xdf) == 0x46))" ( (binary_expression "(((*pbVar17 & 0xdf) == 0x55) && ((pbVar17[1] & 0xdf) == 0x54)) &&\n       (pppppppcVar38 = (code *******)0x4, (pbVar17[2] & 0xdf) == 0x46)" (parenthesized_expression "(((*pbVar17 & 0xdf) == 0x55) && ((pbVar17[1] & 0xdf) == 0x54))" ( (binary_expression "((*pbVar17 & 0xdf) == 0x55) && ((pbVar17[1] & 0xdf) == 0x54)" (parenthesized_expression "((*pbVar17 & 0xdf) == 0x55)" ( (binary_expression "(*pbVar17 & 0xdf) == 0x55" (parenthesized_expression "(*pbVar17 & 0xdf)" ( (binary_expression "*pbVar17 & 0xdf" (pointer_expression "*pbVar17" * identifier) & number_literal) )) == number_literal) )) && (parenthesized_expression "((pbVar17[1] & 0xdf) == 0x54)" ( (binary_expression "(pbVar17[1] & 0xdf) == 0x54" (parenthesized_expression "(pbVar17[1] & 0xdf)" ( (binary_expression "pbVar17[1] & 0xdf" (subscript_expression "pbVar17[1]" identifier [ number_literal ]) & number_literal) )) == number_literal) ))) )) && (parenthesized_expression "(pppppppcVar38 = (code *******)0x4, (pbVar17[2] & 0xdf) == 0x46)" ( (comma_expression "pppppppcVar38 = (code *******)0x4, (pbVar17[2] & 0xdf) == 0x46" (assignment_expression "pppppppcVar38 = (code *******)0x4" identifier = (cast_expression "(code *******)0x4" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) , (binary_expression "(pbVar17[2] & 0xdf) == 0x46" (parenthesized_expression "(pbVar17[2] & 0xdf)" ( (binary_expression "pbVar17[2] & 0xdf" (subscript_expression "pbVar17[2]" identifier [ number_literal ]) & number_literal) )) == number_literal)) ))) )) (compound_statement "{\n      iVar18 = 3;\n      if (pbVar17[3] == 0x2d) {\n        iVar18 = 4;\n      }\n      pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23754) + 0x71b4);\n      iVar18 = (**(code **)(puVar41 + 0x23dfc))(pbVar17 + iVar18,pppppppcVar38);\n      if (iVar18 == 0) {\n        *(byte *)(pppppppcVar34 + 0x16) = (byte)*(code *)(pppppppcVar34 + 0x16) & 0xdf | 0x20;\n      }\n    }" { (expression_statement "iVar18 = 3;" (assignment_expression "iVar18 = 3" identifier = number_literal) ;) (if_statement "if (pbVar17[3] == 0x2d) {\n        iVar18 = 4;\n      }" if (parenthesized_expression "(pbVar17[3] == 0x2d)" ( (binary_expression "pbVar17[3] == 0x2d" (subscript_expression "pbVar17[3]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n        iVar18 = 4;\n      }" { (expression_statement "iVar18 = 4;" (assignment_expression "iVar18 = 4" identifier = number_literal) ;) })) (expression_statement "pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23754) + 0x71b4);" (assignment_expression "pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23754) + 0x71b4)" identifier = (cast_expression "(code *******)(*(int *)(puVar41 + 0x23754) + 0x71b4)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(*(int *)(puVar41 + 0x23754) + 0x71b4)" ( (binary_expression "*(int *)(puVar41 + 0x23754) + 0x71b4" (pointer_expression "*(int *)(puVar41 + 0x23754)" * (cast_expression "(int *)(puVar41 + 0x23754)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar41 + 0x23754)" ( (binary_expression "puVar41 + 0x23754" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "iVar18 = (**(code **)(puVar41 + 0x23dfc))(pbVar17 + iVar18,pppppppcVar38);" (assignment_expression "iVar18 = (**(code **)(puVar41 + 0x23dfc))(pbVar17 + iVar18,pppppppcVar38)" identifier = (call_expression "(**(code **)(puVar41 + 0x23dfc))(pbVar17 + iVar18,pppppppcVar38)" (parenthesized_expression "(**(code **)(puVar41 + 0x23dfc))" ( (pointer_expression "**(code **)(puVar41 + 0x23dfc)" * (pointer_expression "*(code **)(puVar41 + 0x23dfc)" * (cast_expression "(code **)(puVar41 + 0x23dfc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar41 + 0x23dfc)" ( (binary_expression "puVar41 + 0x23dfc" identifier + number_literal) ))))) )) (argument_list "(pbVar17 + iVar18,pppppppcVar38)" ( (binary_expression "pbVar17 + iVar18" identifier + identifier) , identifier )))) ;) (if_statement "if (iVar18 == 0) {\n        *(byte *)(pppppppcVar34 + 0x16) = (byte)*(code *)(pppppppcVar34 + 0x16) & 0xdf | 0x20;\n      }" if (parenthesized_expression "(iVar18 == 0)" ( (binary_expression "iVar18 == 0" identifier == number_literal) )) (compound_statement "{\n        *(byte *)(pppppppcVar34 + 0x16) = (byte)*(code *)(pppppppcVar34 + 0x16) & 0xdf | 0x20;\n      }" { (expression_statement "*(byte *)(pppppppcVar34 + 0x16) = (byte)*(code *)(pppppppcVar34 + 0x16) & 0xdf | 0x20;" (assignment_expression "*(byte *)(pppppppcVar34 + 0x16) = (byte)*(code *)(pppppppcVar34 + 0x16) & 0xdf | 0x20" (pointer_expression "*(byte *)(pppppppcVar34 + 0x16)" * (cast_expression "(byte *)(pppppppcVar34 + 0x16)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pppppppcVar34 + 0x16)" ( (binary_expression "pppppppcVar34 + 0x16" identifier + number_literal) )))) = (binary_expression "(byte)*(code *)(pppppppcVar34 + 0x16) & 0xdf | 0x20" (binary_expression "(byte)*(code *)(pppppppcVar34 + 0x16) & 0xdf" (binary_expression "(byte)*(code *)(pppppppcVar34 + 0x16)" (parenthesized_expression "(byte)" ( identifier )) * (cast_expression "(code *)(pppppppcVar34 + 0x16)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pppppppcVar34 + 0x16)" ( (binary_expression "pppppppcVar34 + 0x16" identifier + number_literal) )))) & number_literal) | number_literal)) ;) })) })) (expression_statement "*(byte *)(pppppppcVar34 + 0x16) = (byte)*(code *)(pppppppcVar34 + 0x16) & 0xef;" (assignment_expression "*(byte *)(pppppppcVar34 + 0x16) = (byte)*(code *)(pppppppcVar34 + 0x16) & 0xef" (pointer_expression "*(byte *)(pppppppcVar34 + 0x16)" * (cast_expression "(byte *)(pppppppcVar34 + 0x16)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pppppppcVar34 + 0x16)" ( (binary_expression "pppppppcVar34 + 0x16" identifier + number_literal) )))) = (binary_expression "(byte)*(code *)(pppppppcVar34 + 0x16) & 0xef" (binary_expression "(byte)*(code *)(pppppppcVar34 + 0x16)" (parenthesized_expression "(byte)" ( identifier )) * (cast_expression "(code *)(pppppppcVar34 + 0x16)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pppppppcVar34 + 0x16)" ( (binary_expression "pppppppcVar34 + 0x16" identifier + number_literal) )))) & number_literal)) ;) (if_statement "if (1 < (int)pppppppcVar34[0x17]) {\n      if (((uint)pppppppcVar34[0x16] & 0x20000000) == 0) {\n        pppppppcVar38 = (code *******)0x1;\n        ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23b8c))(0x20,1);\n        pppppppcVar34[0xf] = ppppppcVar32;\n        if (ppppppcVar32 == (code ******)0x0) goto LAB_00056e5c;\n        iVar18 = 0;\n        do {\n          uVar16 = iVar18 << 3;\n          uVar7 = 0;\n          do {\n            uVar19 = (**(code **)(puVar41 + 0x23c88))(uVar16);\n            if (uVar19 != 0xffffffff) {\n              pppppppcVar38 = *(code ********)((int)pppppppcVar34[0xf] + iVar18);\n              *(uint *)((int)pppppppcVar34[0xf] + iVar18) =\n                   (uint)pppppppcVar38 | 1 << (uVar7 & 0x1f);\n            }\n            if (((uVar16 & 0xffffff80) == 0) && (uVar19 != uVar16)) {\n              *(byte *)(pppppppcVar34 + 0x16) = (byte)*(code *)(pppppppcVar34 + 0x16) & 0xef | 0x10;\n            }\n            uVar7 = uVar7 + 1;\n            uVar16 = uVar16 + 1;\n          } while (uVar7 != 0x20);\n          iVar18 = iVar18 + 4;\n        } while (iVar18 != 0x20);\n      }\n      else {\n        pppppppcVar34[0xf] = (code ******)(*(int *)(puVar41 + 0x23754) + 0x6ee4);\n      }\n    }" if (parenthesized_expression "(1 < (int)pppppppcVar34[0x17])" ( (binary_expression "1 < (int)pppppppcVar34[0x17]" number_literal < (cast_expression "(int)pppppppcVar34[0x17]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "pppppppcVar34[0x17]" identifier [ number_literal ]))) )) (compound_statement "{\n      if (((uint)pppppppcVar34[0x16] & 0x20000000) == 0) {\n        pppppppcVar38 = (code *******)0x1;\n        ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23b8c))(0x20,1);\n        pppppppcVar34[0xf] = ppppppcVar32;\n        if (ppppppcVar32 == (code ******)0x0) goto LAB_00056e5c;\n        iVar18 = 0;\n        do {\n          uVar16 = iVar18 << 3;\n          uVar7 = 0;\n          do {\n            uVar19 = (**(code **)(puVar41 + 0x23c88))(uVar16);\n            if (uVar19 != 0xffffffff) {\n              pppppppcVar38 = *(code ********)((int)pppppppcVar34[0xf] + iVar18);\n              *(uint *)((int)pppppppcVar34[0xf] + iVar18) =\n                   (uint)pppppppcVar38 | 1 << (uVar7 & 0x1f);\n            }\n            if (((uVar16 & 0xffffff80) == 0) && (uVar19 != uVar16)) {\n              *(byte *)(pppppppcVar34 + 0x16) = (byte)*(code *)(pppppppcVar34 + 0x16) & 0xef | 0x10;\n            }\n            uVar7 = uVar7 + 1;\n            uVar16 = uVar16 + 1;\n          } while (uVar7 != 0x20);\n          iVar18 = iVar18 + 4;\n        } while (iVar18 != 0x20);\n      }\n      else {\n        pppppppcVar34[0xf] = (code ******)(*(int *)(puVar41 + 0x23754) + 0x6ee4);\n      }\n    }" { (if_statement "if (((uint)pppppppcVar34[0x16] & 0x20000000) == 0) {\n        pppppppcVar38 = (code *******)0x1;\n        ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23b8c))(0x20,1);\n        pppppppcVar34[0xf] = ppppppcVar32;\n        if (ppppppcVar32 == (code ******)0x0) goto LAB_00056e5c;\n        iVar18 = 0;\n        do {\n          uVar16 = iVar18 << 3;\n          uVar7 = 0;\n          do {\n            uVar19 = (**(code **)(puVar41 + 0x23c88))(uVar16);\n            if (uVar19 != 0xffffffff) {\n              pppppppcVar38 = *(code ********)((int)pppppppcVar34[0xf] + iVar18);\n              *(uint *)((int)pppppppcVar34[0xf] + iVar18) =\n                   (uint)pppppppcVar38 | 1 << (uVar7 & 0x1f);\n            }\n            if (((uVar16 & 0xffffff80) == 0) && (uVar19 != uVar16)) {\n              *(byte *)(pppppppcVar34 + 0x16) = (byte)*(code *)(pppppppcVar34 + 0x16) & 0xef | 0x10;\n            }\n            uVar7 = uVar7 + 1;\n            uVar16 = uVar16 + 1;\n          } while (uVar7 != 0x20);\n          iVar18 = iVar18 + 4;\n        } while (iVar18 != 0x20);\n      }\n      else {\n        pppppppcVar34[0xf] = (code ******)(*(int *)(puVar41 + 0x23754) + 0x6ee4);\n      }" if (parenthesized_expression "(((uint)pppppppcVar34[0x16] & 0x20000000) == 0)" ( (binary_expression "((uint)pppppppcVar34[0x16] & 0x20000000) == 0" (parenthesized_expression "((uint)pppppppcVar34[0x16] & 0x20000000)" ( (binary_expression "(uint)pppppppcVar34[0x16] & 0x20000000" (cast_expression "(uint)pppppppcVar34[0x16]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pppppppcVar34[0x16]" identifier [ number_literal ])) & number_literal) )) == number_literal) )) (compound_statement "{\n        pppppppcVar38 = (code *******)0x1;\n        ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23b8c))(0x20,1);\n        pppppppcVar34[0xf] = ppppppcVar32;\n        if (ppppppcVar32 == (code ******)0x0) goto LAB_00056e5c;\n        iVar18 = 0;\n        do {\n          uVar16 = iVar18 << 3;\n          uVar7 = 0;\n          do {\n            uVar19 = (**(code **)(puVar41 + 0x23c88))(uVar16);\n            if (uVar19 != 0xffffffff) {\n              pppppppcVar38 = *(code ********)((int)pppppppcVar34[0xf] + iVar18);\n              *(uint *)((int)pppppppcVar34[0xf] + iVar18) =\n                   (uint)pppppppcVar38 | 1 << (uVar7 & 0x1f);\n            }\n            if (((uVar16 & 0xffffff80) == 0) && (uVar19 != uVar16)) {\n              *(byte *)(pppppppcVar34 + 0x16) = (byte)*(code *)(pppppppcVar34 + 0x16) & 0xef | 0x10;\n            }\n            uVar7 = uVar7 + 1;\n            uVar16 = uVar16 + 1;\n          } while (uVar7 != 0x20);\n          iVar18 = iVar18 + 4;\n        } while (iVar18 != 0x20);\n      }" { (expression_statement "pppppppcVar38 = (code *******)0x1;" (assignment_expression "pppppppcVar38 = (code *******)0x1" identifier = (cast_expression "(code *******)0x1" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23b8c))(0x20,1);" (assignment_expression "ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23b8c))(0x20,1)" identifier = (cast_expression "(code ******)(**(code **)(puVar41 + 0x23b8c))(0x20,1)" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (call_expression "(**(code **)(puVar41 + 0x23b8c))(0x20,1)" (parenthesized_expression "(**(code **)(puVar41 + 0x23b8c))" ( (pointer_expression "**(code **)(puVar41 + 0x23b8c)" * (pointer_expression "*(code **)(puVar41 + 0x23b8c)" * (cast_expression "(code **)(puVar41 + 0x23b8c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar41 + 0x23b8c)" ( (binary_expression "puVar41 + 0x23b8c" identifier + number_literal) ))))) )) (argument_list "(0x20,1)" ( number_literal , number_literal ))))) ;) (expression_statement "pppppppcVar34[0xf] = ppppppcVar32;" (assignment_expression "pppppppcVar34[0xf] = ppppppcVar32" (subscript_expression "pppppppcVar34[0xf]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (ppppppcVar32 == (code ******)0x0) goto LAB_00056e5c;" if (parenthesized_expression "(ppppppcVar32 == (code ******)0x0)" ( (binary_expression "ppppppcVar32 == (code ******)0x0" identifier == (cast_expression "(code ******)0x0" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (goto_statement "goto LAB_00056e5c;" goto statement_identifier ;)) (expression_statement "iVar18 = 0;" (assignment_expression "iVar18 = 0" identifier = number_literal) ;) (do_statement "do {\n          uVar16 = iVar18 << 3;\n          uVar7 = 0;\n          do {\n            uVar19 = (**(code **)(puVar41 + 0x23c88))(uVar16);\n            if (uVar19 != 0xffffffff) {\n              pppppppcVar38 = *(code ********)((int)pppppppcVar34[0xf] + iVar18);\n              *(uint *)((int)pppppppcVar34[0xf] + iVar18) =\n                   (uint)pppppppcVar38 | 1 << (uVar7 & 0x1f);\n            }\n            if (((uVar16 & 0xffffff80) == 0) && (uVar19 != uVar16)) {\n              *(byte *)(pppppppcVar34 + 0x16) = (byte)*(code *)(pppppppcVar34 + 0x16) & 0xef | 0x10;\n            }\n            uVar7 = uVar7 + 1;\n            uVar16 = uVar16 + 1;\n          } while (uVar7 != 0x20);\n          iVar18 = iVar18 + 4;\n        } while (iVar18 != 0x20);" do (compound_statement "{\n          uVar16 = iVar18 << 3;\n          uVar7 = 0;\n          do {\n            uVar19 = (**(code **)(puVar41 + 0x23c88))(uVar16);\n            if (uVar19 != 0xffffffff) {\n              pppppppcVar38 = *(code ********)((int)pppppppcVar34[0xf] + iVar18);\n              *(uint *)((int)pppppppcVar34[0xf] + iVar18) =\n                   (uint)pppppppcVar38 | 1 << (uVar7 & 0x1f);\n            }\n            if (((uVar16 & 0xffffff80) == 0) && (uVar19 != uVar16)) {\n              *(byte *)(pppppppcVar34 + 0x16) = (byte)*(code *)(pppppppcVar34 + 0x16) & 0xef | 0x10;\n            }\n            uVar7 = uVar7 + 1;\n            uVar16 = uVar16 + 1;\n          } while (uVar7 != 0x20);\n          iVar18 = iVar18 + 4;\n        }" { (expression_statement "uVar16 = iVar18 << 3;" (assignment_expression "uVar16 = iVar18 << 3" identifier = (binary_expression "iVar18 << 3" identifier << number_literal)) ;) (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" identifier = number_literal) ;) (do_statement "do {\n            uVar19 = (**(code **)(puVar41 + 0x23c88))(uVar16);\n            if (uVar19 != 0xffffffff) {\n              pppppppcVar38 = *(code ********)((int)pppppppcVar34[0xf] + iVar18);\n              *(uint *)((int)pppppppcVar34[0xf] + iVar18) =\n                   (uint)pppppppcVar38 | 1 << (uVar7 & 0x1f);\n            }\n            if (((uVar16 & 0xffffff80) == 0) && (uVar19 != uVar16)) {\n              *(byte *)(pppppppcVar34 + 0x16) = (byte)*(code *)(pppppppcVar34 + 0x16) & 0xef | 0x10;\n            }\n            uVar7 = uVar7 + 1;\n            uVar16 = uVar16 + 1;\n          } while (uVar7 != 0x20);" do (compound_statement "{\n            uVar19 = (**(code **)(puVar41 + 0x23c88))(uVar16);\n            if (uVar19 != 0xffffffff) {\n              pppppppcVar38 = *(code ********)((int)pppppppcVar34[0xf] + iVar18);\n              *(uint *)((int)pppppppcVar34[0xf] + iVar18) =\n                   (uint)pppppppcVar38 | 1 << (uVar7 & 0x1f);\n            }\n            if (((uVar16 & 0xffffff80) == 0) && (uVar19 != uVar16)) {\n              *(byte *)(pppppppcVar34 + 0x16) = (byte)*(code *)(pppppppcVar34 + 0x16) & 0xef | 0x10;\n            }\n            uVar7 = uVar7 + 1;\n            uVar16 = uVar16 + 1;\n          }" { (expression_statement "uVar19 = (**(code **)(puVar41 + 0x23c88))(uVar16);" (assignment_expression "uVar19 = (**(code **)(puVar41 + 0x23c88))(uVar16)" identifier = (call_expression "(**(code **)(puVar41 + 0x23c88))(uVar16)" (parenthesized_expression "(**(code **)(puVar41 + 0x23c88))" ( (pointer_expression "**(code **)(puVar41 + 0x23c88)" * (pointer_expression "*(code **)(puVar41 + 0x23c88)" * (cast_expression "(code **)(puVar41 + 0x23c88)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar41 + 0x23c88)" ( (binary_expression "puVar41 + 0x23c88" identifier + number_literal) ))))) )) (argument_list "(uVar16)" ( identifier )))) ;) (if_statement "if (uVar19 != 0xffffffff) {\n              pppppppcVar38 = *(code ********)((int)pppppppcVar34[0xf] + iVar18);\n              *(uint *)((int)pppppppcVar34[0xf] + iVar18) =\n                   (uint)pppppppcVar38 | 1 << (uVar7 & 0x1f);\n            }" if (parenthesized_expression "(uVar19 != 0xffffffff)" ( (binary_expression "uVar19 != 0xffffffff" identifier != number_literal) )) (compound_statement "{\n              pppppppcVar38 = *(code ********)((int)pppppppcVar34[0xf] + iVar18);\n              *(uint *)((int)pppppppcVar34[0xf] + iVar18) =\n                   (uint)pppppppcVar38 | 1 << (uVar7 & 0x1f);\n            }" { (expression_statement "pppppppcVar38 = *(code ********)((int)pppppppcVar34[0xf] + iVar18);" (assignment_expression "pppppppcVar38 = *(code ********)((int)pppppppcVar34[0xf] + iVar18)" identifier = (pointer_expression "*(code ********)((int)pppppppcVar34[0xf] + iVar18)" * (cast_expression "(code ********)((int)pppppppcVar34[0xf] + iVar18)" ( (type_descriptor "code ********" type_identifier (abstract_pointer_declarator "********" * (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))))) ) (parenthesized_expression "((int)pppppppcVar34[0xf] + iVar18)" ( (binary_expression "(int)pppppppcVar34[0xf] + iVar18" (cast_expression "(int)pppppppcVar34[0xf]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "pppppppcVar34[0xf]" identifier [ number_literal ])) + identifier) ))))) ;) (expression_statement "*(uint *)((int)pppppppcVar34[0xf] + iVar18) =\n                   (uint)pppppppcVar38 | 1 << (uVar7 & 0x1f);" (assignment_expression "*(uint *)((int)pppppppcVar34[0xf] + iVar18) =\n                   (uint)pppppppcVar38 | 1 << (uVar7 & 0x1f)" (pointer_expression "*(uint *)((int)pppppppcVar34[0xf] + iVar18)" * (cast_expression "(uint *)((int)pppppppcVar34[0xf] + iVar18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppppppcVar34[0xf] + iVar18)" ( (binary_expression "(int)pppppppcVar34[0xf] + iVar18" (cast_expression "(int)pppppppcVar34[0xf]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "pppppppcVar34[0xf]" identifier [ number_literal ])) + identifier) )))) = (binary_expression "(uint)pppppppcVar38 | 1 << (uVar7 & 0x1f)" (cast_expression "(uint)pppppppcVar38" ( (type_descriptor "uint" type_identifier) ) identifier) | (binary_expression "1 << (uVar7 & 0x1f)" number_literal << (parenthesized_expression "(uVar7 & 0x1f)" ( (binary_expression "uVar7 & 0x1f" identifier & number_literal) ))))) ;) })) (if_statement "if (((uVar16 & 0xffffff80) == 0) && (uVar19 != uVar16)) {\n              *(byte *)(pppppppcVar34 + 0x16) = (byte)*(code *)(pppppppcVar34 + 0x16) & 0xef | 0x10;\n            }" if (parenthesized_expression "(((uVar16 & 0xffffff80) == 0) && (uVar19 != uVar16))" ( (binary_expression "((uVar16 & 0xffffff80) == 0) && (uVar19 != uVar16)" (parenthesized_expression "((uVar16 & 0xffffff80) == 0)" ( (binary_expression "(uVar16 & 0xffffff80) == 0" (parenthesized_expression "(uVar16 & 0xffffff80)" ( (binary_expression "uVar16 & 0xffffff80" identifier & number_literal) )) == number_literal) )) && (parenthesized_expression "(uVar19 != uVar16)" ( (binary_expression "uVar19 != uVar16" identifier != identifier) ))) )) (compound_statement "{\n              *(byte *)(pppppppcVar34 + 0x16) = (byte)*(code *)(pppppppcVar34 + 0x16) & 0xef | 0x10;\n            }" { (expression_statement "*(byte *)(pppppppcVar34 + 0x16) = (byte)*(code *)(pppppppcVar34 + 0x16) & 0xef | 0x10;" (assignment_expression "*(byte *)(pppppppcVar34 + 0x16) = (byte)*(code *)(pppppppcVar34 + 0x16) & 0xef | 0x10" (pointer_expression "*(byte *)(pppppppcVar34 + 0x16)" * (cast_expression "(byte *)(pppppppcVar34 + 0x16)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pppppppcVar34 + 0x16)" ( (binary_expression "pppppppcVar34 + 0x16" identifier + number_literal) )))) = (binary_expression "(byte)*(code *)(pppppppcVar34 + 0x16) & 0xef | 0x10" (binary_expression "(byte)*(code *)(pppppppcVar34 + 0x16) & 0xef" (binary_expression "(byte)*(code *)(pppppppcVar34 + 0x16)" (parenthesized_expression "(byte)" ( identifier )) * (cast_expression "(code *)(pppppppcVar34 + 0x16)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pppppppcVar34 + 0x16)" ( (binary_expression "pppppppcVar34 + 0x16" identifier + number_literal) )))) & number_literal) | number_literal)) ;) })) (expression_statement "uVar7 = uVar7 + 1;" (assignment_expression "uVar7 = uVar7 + 1" identifier = (binary_expression "uVar7 + 1" identifier + number_literal)) ;) (expression_statement "uVar16 = uVar16 + 1;" (assignment_expression "uVar16 = uVar16 + 1" identifier = (binary_expression "uVar16 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar7 != 0x20)" ( (binary_expression "uVar7 != 0x20" identifier != number_literal) )) ;) (expression_statement "iVar18 = iVar18 + 4;" (assignment_expression "iVar18 = iVar18 + 4" identifier = (binary_expression "iVar18 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar18 != 0x20)" ( (binary_expression "iVar18 != 0x20" identifier != number_literal) )) ;) }) (else_clause "else {\n        pppppppcVar34[0xf] = (code ******)(*(int *)(puVar41 + 0x23754) + 0x6ee4);\n      }" else (compound_statement "{\n        pppppppcVar34[0xf] = (code ******)(*(int *)(puVar41 + 0x23754) + 0x6ee4);\n      }" { (expression_statement "pppppppcVar34[0xf] = (code ******)(*(int *)(puVar41 + 0x23754) + 0x6ee4);" (assignment_expression "pppppppcVar34[0xf] = (code ******)(*(int *)(puVar41 + 0x23754) + 0x6ee4)" (subscript_expression "pppppppcVar34[0xf]" identifier [ number_literal ]) = (cast_expression "(code ******)(*(int *)(puVar41 + 0x23754) + 0x6ee4)" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "(*(int *)(puVar41 + 0x23754) + 0x6ee4)" ( (binary_expression "*(int *)(puVar41 + 0x23754) + 0x6ee4" (pointer_expression "*(int *)(puVar41 + 0x23754)" * (cast_expression "(int *)(puVar41 + 0x23754)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar41 + 0x23754)" ( (binary_expression "puVar41 + 0x23754" identifier + number_literal) )))) + number_literal) )))) ;) }))) })) (if_statement "if ((*pppppppcVar34 == (code ******)0x0) || (pppppppcVar34[8] == (code ******)0x0))\n    goto LAB_00056e5c;" if (parenthesized_expression "((*pppppppcVar34 == (code ******)0x0) || (pppppppcVar34[8] == (code ******)0x0))" ( (binary_expression "(*pppppppcVar34 == (code ******)0x0) || (pppppppcVar34[8] == (code ******)0x0)" (parenthesized_expression "(*pppppppcVar34 == (code ******)0x0)" ( (binary_expression "*pppppppcVar34 == (code ******)0x0" (pointer_expression "*pppppppcVar34" * identifier) == (cast_expression "(code ******)0x0" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) || (parenthesized_expression "(pppppppcVar34[8] == (code ******)0x0)" ( (binary_expression "pppppppcVar34[8] == (code ******)0x0" (subscript_expression "pppppppcVar34[8]" identifier [ number_literal ]) == (cast_expression "(code ******)0x0" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ))) )) (goto_statement "goto LAB_00056e5c;" goto statement_identifier ;)) (expression_statement "pppppppcStack_20c = (code *******)0x0;" (assignment_expression "pppppppcStack_20c = (code *******)0x0" identifier = (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (if_statement "if (*(int *)(puVar41 + 0x23c78) == 0) {\nLAB_00056054:\n      ppppppcVar32 = pppppppcVar3[5];\n      uVar16 = (uint)pppppppcVar33 & 0x400000;\n      bVar1 = uVar16 != 0;\n      pppppppcVar31 = (code *******)0x4c;\n      pppppppcVar38 = (code *******)0x0;\n      (**(code **)(puVar41 + 0x23c9c))(apppppppcStack_1f4,0);\n      cStack_1ad = ppppppcVar32 != (code ******)0x0 || bVar1;\n      ppppppcStack_1a8 = pppppppcVar34[0x17];\n      bStack_1af = (byte)((uint)((int)pppppppcVar34[0x16] << 2) >> 0x1f);\n      bStack_1ae = (byte)((uint)((int)pppppppcVar34[0x16] << 3) >> 0x1f);\n      pppppppcStack_1f8 = pppppppcVar29;\n      pppppppcStack_1cc = param_1;\n      pppppppcStack_1c8 = param_1;\n      pppppppcStack_1c4 = param_1;\n      pppppppcStack_1c0 = param_1;\n      ppppppcStack_1b8 = ppppppcVar32;\n      uStack_1b0 = bVar1;\n      if (0 < (int)param_1) {\n        pppppppcVar38 = (code *******)((int)param_1 + 1);\n        pppppppcVar30 = (code *******)FUN_00046d2c(&pppppppcStack_1f8,pppppppcVar38);\n        if (pppppppcVar30 == (code *******)0x0) goto LAB_000560cc;\n        goto LAB_00056168;\n      }\nLAB_000560cc:\n      if (cStack_1ad != '\0') {\n        pppppppcVar29 = apppppppcStack_1f4[0];\n      }\n      apppppppcStack_1f4[0] = pppppppcVar29;\n      if (uVar16 == 0) {\n        if ((int)pppppppcVar34[0x17] < 2) {\n          if (ppppppcVar32 != (code ******)0x0) {\n            FUN_00045dc8();\n          }\n        }\n        else {\n          FUN_00047cb0(&pppppppcStack_1f8);\n        }\n      }\n      else {\n        if (1 < (int)pppppppcVar34[0x17]) {\n          iVar18 = *(int *)(puVar41 + 0x23abc);\n          do {\n            pppppppcVar30 = (code *******)FUN_00048714(&pppppppcStack_1f8);\n            if (pppppppcVar30 != (code *******)0x0) break;\n            if (((int)param_1 <= iStack_1d8) ||\n               (pppppppcVar38 = (code *******)(iStack_1d4 << 1),\n               (int)pppppppcVar34[0x17] + iStack_1dc < iStack_1d4)) goto LAB_000563d0;\n            pppppppcVar30 =\n                 (code *******)(*(code *)(iVar18 + 0x6d2c))(&pppppppcStack_1f8,pppppppcVar38);\n          } while (pppppppcVar30 == (code *******)0x0);\n          goto LAB_00056168;\n        }\n        FUN_00047be4(&pppppppcStack_1f8);\n      }\nLAB_000563d0:\n      pppppppcStack_20c = (code *******)0x0;\n      pppppppcVar3[6] = (code ******)0x0;\n      ppppppcVar32 = *pppppppcVar3;\n      ppppppcVar32[0x20] = (code *****)pppppppcVar33;\n      FUN_00049e40(&ppppppcStack_204,&pppppppcStack_1f8,(uint)pppppppcVar33 | 0x800000);\n      pppppppcVar38 = pppppppcVar3;\n      pppppppcVar29 =\n           (code *******)\n           FUN_00051868(&pppppppcStack_1f8,pppppppcVar3,&ppppppcStack_204,pppppppcVar33,0,\n                        &pppppppcStack_20c);\n      if (pppppppcStack_20c == (code *******)0x0) {\n        pppppppcVar31 = (code *******)0x0;\n        pppppppcVar38 = (code *******)0x0;\n        pppppppcVar33 = (code *******)FUN_000470f0(ppppppcVar32,0,0,2);\n        pppppppcVar30 = pppppppcVar33;\n        if (pppppppcVar29 != (code *******)0x0) {\nLAB_000564b0:\n          pppppppcVar31 = pppppppcVar33;\n          pppppppcVar30 = (code *******)FUN_000470f0(ppppppcVar32,pppppppcVar29,pppppppcVar33,0x10);\n          pppppppcVar38 = pppppppcVar29;\n        }\n        if ((pppppppcVar33 == (code *******)0x0) ||\n           (pcVar4 = *(code **)(puVar41 + 0x23cf0), pppppppcVar30 == (code *******)0x0)) {\n          pppppppcStack_20c = (code *******)0xc;\n          goto LAB_000566f4;\n        }\n        pppppppcVar34[0xd] = (code ******)pppppppcVar30;\n        pppppppcVar29 = (code *******)*pppppppcVar3;\n        ppppppcVar39 = pppppppcVar29[1];\n        iVar18 = (int)ppppppcVar39 << 2;\n        ppppppcVar32 = (code ******)(*pcVar4)(iVar18);\n        pppppppcVar29[3] = ppppppcVar32;\n        ppppppcVar35 = (code ******)(**(code **)(puVar41 + 0x23cf0))(iVar18);\n        pppppppcVar29[4] = ppppppcVar35;\n        iVar18 = (int)ppppppcVar39 * 0xc;\n        ppppppcVar39 = (code ******)(**(code **)(puVar41 + 0x23cf0))(iVar18);\n        pppppppcVar29[5] = ppppppcVar39;\n        ppppppcVar20 = (code ******)(**(code **)(puVar41 + 0x23cf0))(iVar18);\n        pppppppcVar29[6] = ppppppcVar20;\n        if (ppppppcVar32 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else if (ppppppcVar35 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else if (ppppppcVar39 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else if (ppppppcVar20 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else {\n          ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23cf0))((int)pppppppcVar3[6] << 2);\n          pppppppcVar29[0x21] = ppppppcVar32;\n          if (ppppppcVar32 != (code ******)0x0) {\n            ppppppcVar32 = (code ******)0x0;\n            if (pppppppcVar3[6] != (code ******)0x0) {\n              do {\n                pppppppcVar29[0x21][(int)ppppppcVar32] = (code *****)ppppppcVar32;\n                ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n              } while (ppppppcVar32 < pppppppcVar3[6]);\n            }\n            FUN_00046050(pppppppcVar29[0xd],*(int *)(puVar41 + 0x23abc) + 0x60e8,pppppppcVar29);\n            ppppppcVar32 = pppppppcVar3[6];\n            if (ppppppcVar32 == (code ******)0x0) {\nLAB_00056704:\n              (**(code **)(puVar41 + 0x23dc0))(pppppppcVar29[0x21]);\n              pppppppcVar29[0x21] = (code ******)0x0;\n            }\n            else {\n              ppppppcVar35 = pppppppcVar29[0x21];\n              if (*ppppppcVar35 == (code *****)0x0) {\n                ppppppcVar39 = (code ******)0x0;\n                do {\n                  ppppppcVar35 = ppppppcVar35 + 1;\n                  ppppppcVar39 = (code ******)((int)ppppppcVar39 + 1);\n                  if (ppppppcVar32 == ppppppcVar39) {\n                    if (ppppppcVar32 == ppppppcVar39) goto LAB_00056704;\n                    break;\n                  }\n                } while ((code ******)*ppppppcVar35 == ppppppcVar39);\n              }\n            }\n          }\n          pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23abc) + 0x73a4);\n          pppppppcVar30 = (code *******)FUN_00045fb4(pppppppcVar29[0xd],pppppppcVar38,pppppppcVar3);\n          pppppppcVar31 = pppppppcVar29;\n          if (pppppppcVar30 == (code *******)0x0) {\n            pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23b40) + -0x5be4);\n            pppppppcVar30 = (code *******)FUN_00045fb4(pppppppcVar29[0xd],pppppppcVar38);\n            if (pppppppcVar30 == (code *******)0x0) {\n              FUN_00046050(pppppppcVar29[0xd],*(int *)(puVar41 + 0x23abc) + 0x61b4);\n              pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23b40) + -0x4614);\n              pppppppcVar30 = (code *******)FUN_00046050(pppppppcVar29[0xd],pppppppcVar38);\n              if (pppppppcVar30 == (code *******)0x0) {\n                uVar7 = 0;\n                iVar18 = *(int *)(puVar41 + 0x23b40);\n                pppppppcVar33 = (code *******)0x0;\nLAB_00056744:\n                if ((code *******)pppppppcVar29[2] != pppppppcVar33) {\nLAB_00056750:\n                  if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                    pppppppcVar38 = pppppppcVar29;\n                    pppppppcVar31 = pppppppcVar33;\n                    pppppppcVar30 =\n                         (code *******)\n                         (*(code *)(iVar18 + -0x561c))\n                                   (&ppppppcStack_204,pppppppcVar29,pppppppcVar33,1);\n                    if (pppppppcVar30 != (code *******)0x0) goto LAB_00056168;\n                    if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                      (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                      uVar7 = 1;\n                    }\n                  }\n                  pppppppcVar33 = (code *******)((int)pppppppcVar33 + 1);\n                  goto LAB_00056744;\n                }\n                if (uVar7 != 0) {\n                  uVar7 = 0;\n                  pppppppcVar33 = (code *******)0x0;\n                  goto LAB_00056750;\n                }\n                if (((((uint)pppppppcVar3[7] & 0x8000000) == 0) &&\n                    (pppppppcVar3[6] != (code ******)0x0)) &&\n                   ((char)*(code *)(pppppppcVar29 + 0x16) < '\0')) {\n                  ppppppcVar32 = pppppppcVar29[2];\n                }\n                else {\n                  if (pppppppcVar29[0x13] == (code ******)0x0) goto LAB_000568f0;\n                  ppppppcVar32 = pppppppcVar29[2];\n                }\n                ppppppcVar35 = (code ******)\n                               (**(code **)(puVar41 + 0x23cf0))((int)ppppppcVar32 * 0xc);\n                pppppppcVar29[7] = ppppppcVar35;\n                if (ppppppcVar35 == (code ******)0x0) {\n                  pppppppcVar30 = (code *******)0xc;\n                  goto LAB_00056168;\n                }\n                if (ppppppcVar32 != (code ******)0x0) {\n                  iVar18 = 0;\n                  ppppppcVar32 = (code ******)0x0;\n                  do {\n                    puVar21 = (undefined1 *)((int)pppppppcVar29[7] + iVar18);\n                    *puVar21 = 0;\n                    puVar21[1] = 0;\n                    puVar21[2] = 0;\n                    puVar21[3] = 0;\n                    puVar21[4] = 0;\n                    puVar21[5] = 0;\n                    puVar21[6] = 0;\n                    puVar21[7] = 0;\n                    puVar21[8] = 0;\n                    puVar21[9] = 0;\n                    puVar21[10] = 0;\n                    puVar21[0xb] = 0;\n                    ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                    iVar18 = iVar18 + 0xc;\n                  } while (ppppppcVar32 < pppppppcVar29[2]);\n                  iVar18 = *(int *)(puVar41 + 0x23abc);\n                  if (pppppppcVar29[2] != (code ******)0x0) {\n                    iVar43 = 0;\n                    pppppppcStack_218 = (code *******)0x0;\n                    do {\n                      piVar5 = *(int **)((int)pppppppcVar29[6] + iVar43 + 8);\n                      if (0 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4)) {\n                        iVar37 = 0;\n                        do {\n                          pppppppcVar38 = pppppppcStack_218;\n                          iVar22 = (*(code *)(iVar18 + 0x6e30))\n                                             (pppppppcVar29[7] + *piVar5 * 3,pppppppcStack_218);\n                          pppppppcVar30 = (code *******)0xc;\n                          if (iVar22 == 0) goto LAB_00056168;\n                          iVar37 = iVar37 + 1;\n                          piVar5 = piVar5 + 1;\n                        } while (iVar37 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4));\n                      }\n                      pppppppcStack_218 = (code *******)((int)pppppppcStack_218 + 1);\n                      iVar43 = iVar43 + 0xc;\n                    } while (pppppppcStack_218 < pppppppcVar29[2]);\n                  }\n                }\nLAB_000568f0:\n                pppppppcStack_20c = (code *******)0x0;\n                if (((((uint)pppppppcVar34[0x16] & 0x20000000) != 0) && (uVar16 == 0)) &&\n                   (pppppppcVar3[5] == (code ******)0x0)) {\n                  if (pppppppcVar34[2] != (code ******)0x0) {\n                    pppppppcVar31 = (code *******)(*(int *)(puVar41 + 0x23754) + 0x6e4c);\n                    if (*(byte *)(*pppppppcVar34 + 1) < 0xd) {\n                    \n                    \n                      pppppppcVar29 =\n                           (code *******)\n                           (*(code *)(puVar41 +\n                                     (int)(pppppppcVar31[*(byte *)(*pppppppcVar34 + 1)] + 0xadc7)))\n                                     ();\n                      return pppppppcVar29;\n                    }\n                    (**(code **)(puVar41 + 0x23bc4))(0);\n                    if (uVar7 != 0) {\n                      pppppppcVar31 = (code *******)&DAT_00000007;\n                      ppppppcVar32 = (code ******)0x0;\n                      do {\n                        ppppppcVar35 = *pppppppcVar34 + (int)ppppppcVar32 * 2;\n                        if (*(char *)(ppppppcVar35 + 1) == '\x01') {\n                          if (*(char *)ppppppcVar35 < '\0') {\n                            ppppppcVar35[1] = (code *****)((uint)ppppppcVar35[1] & 0xfffffbff);\n                          }\n                        }\n                        else if (*(char *)(ppppppcVar35 + 1) == '\x05') {\n                          *(char *)(ppppppcVar35 + 1) = '\a';\n                        }\n                        ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                      } while (ppppppcVar32 < pppppppcVar34[2]);\n                    }\n                  }\n                  pppppppcVar34[0x17] = (code ******)0x1;\n                  if (0 < (int)pppppppcVar34[0x13]) {\n                    uVar7 = 1;\n                  }\n                  *(byte *)(pppppppcVar34 + 0x16) =\n                       (byte)*(code *)(pppppppcVar34 + 0x16) & 0x9f | (byte)((uVar7 & 1) << 6);\n                }\n                ppppppcVar32 = (code ******)pppppppcVar34[0xd][3][7];\n                pppppppcVar34[0x12] = ppppppcVar32;\n                pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppppcVar32 * 3);\n                pppppppcVar33 = (code *******)FUN_000483e8(&ppppppcStack_204,pppppppcVar38);\n                pppppppcVar29 = pppppppcVar33;\n                pppppppcStack_208 = pppppppcVar33;\n                if (pppppppcVar33 == (code *******)0x0) {\n                  if ((0 < (int)pppppppcVar34[0x13]) && (0 < iStack_200)) {\n                    iVar18 = *(int *)(puVar41 + 0x23abc);\n                    iVar43 = *(int *)(puVar41 + 0x23abc);\n                    pppppppcVar29 = (code *******)0x0;\n                    do {\n                      pppppppcVar31 =\n                           (code *******)(*pppppppcVar34 + piStack_1fc[(int)pppppppcVar29] * 2);\n                      if (*(code *)(pppppppcVar31 + 1) == (code)0x4) {\n                        iVar37 = 0;\n                        piVar5 = piStack_1fc;\n                        if (iStack_200 < 1) {\nLAB_00056b8c:\n                          if (iStack_200 != iVar37) {\n                            ppppcVar40 = *pppppppcVar34[5][piStack_1fc[(int)pppppppcVar29] * 3 + 2];\n                            iVar37 = (*(code *)(iVar18 + 0x5ea8))(&ppppppcStack_204,ppppcVar40);\n                            if (iVar37 == 0) {\n                              pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppcVar40 * 3)\n                              ;\n                              pppppppcVar29 =\n                                   (code *******)\n                                   (*(code *)(iVar43 + 0x7f1c))(&ppppppcStack_204,pppppppcVar38);\n                              if (pppppppcVar29 != (code *******)0x0) goto LAB_00056cb8;\n                            }\n                          }\n                        }\n                        else {\n                          do {\n                            ppppppcVar32 = *pppppppcVar34 + *piVar5 * 2;\n                            if ((*(char *)(ppppppcVar32 + 1) == '\t') &&\n                               ((code ******)*ppppppcVar32 == *pppppppcVar31)) goto LAB_00056b8c;\n                            iVar37 = iVar37 + 1;\n                            piVar5 = piVar5 + 1;\n                          } while (iStack_200 != iVar37);\n                        }\n                      }\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1);\n                    } while ((int)pppppppcVar29 < iStack_200);\n                  }\n                  pppppppcVar31 = &ppppppcStack_204;\n                  pppppppcVar38 = pppppppcVar34;\n                  ppppppcVar32 = (code ******)\n                                 FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,0);\n                  pppppppcVar34[9] = ppppppcVar32;\n                  pppppppcVar29 = pppppppcStack_208;\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    if (((uint)ppppppcVar32[0xd] & 0x1000000) == 0) {\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar34[10] = ppppppcVar32;\n                    }\n                    else {\n                      pppppppcVar31 = &ppppppcStack_204;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,1);\n                      pppppppcVar34[10] = ppppppcVar32;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,2);\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar38 = pppppppcVar34;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,6);\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar29 = pppppppcStack_208;\n                      if (((pppppppcVar34[10] == (code ******)0x0) ||\n                          (pppppppcVar34[0xb] == (code ******)0x0)) ||\n                         (ppppppcVar32 == (code ******)0x0)) goto LAB_00056cb8;\n                    }\n                    (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                    pppppppcVar29 = pppppppcVar33;\n                  }\n                }\nLAB_00056cb8:\n                pppppppcStack_20c = pppppppcVar29;\n                FUN_0004b234(pppppppcVar3);\n                FUN_0004b2bc(&pppppppcStack_1f8);\n                pppppppcVar29 = pppppppcStack_20c;\n                if (pppppppcStack_20c != (code *******)0x0) {\n                  if (*(int *)(puVar41 + 0x23c78) != 0) {\n                    (**(code **)(puVar41 + 0x23df0))(pppppppcVar34 + 0x22);\n                  }\n                  FUN_0004b338(pppppppcVar34);\n                  *pppppppcVar3 = (code ******)0x0;\n                  pppppppcVar3[1] = (code ******)0x0;\n                  pppppppcVar29 = pppppppcStack_20c;\n                }\n                goto LAB_00056cfc;\n              }\n            }\n          }\n        }\n      }\n      else {\n        pppppppcVar31 = (code *******)0x0;\n        if (pppppppcVar29 != (code *******)0x0) {\n          pppppppcVar33 = (code *******)FUN_000470f0(ppppppcVar32,0,0,2);\n          goto LAB_000564b0;\n        }\nLAB_000566f4:\n        pppppppcVar34[0xd] = (code ******)0x0;\n        pppppppcVar30 = pppppppcStack_20c;\n      }\nLAB_00056168:\n      pppppppcStack_20c = pppppppcVar30;\n      FUN_0004b234(pppppppcVar3);\n      FUN_0004b2bc(&pppppppcStack_1f8);\n      if (*(int *)(puVar41 + 0x23c78) != 0) {\n        (**(code **)(puVar41 + 0x23df0))(pppppppcVar34 + 0x22);\n      }\n      FUN_0004b338(pppppppcVar34);\n      *pppppppcVar3 = (code ******)0x0;\n      pppppppcVar3[1] = (code ******)0x0;\n      pppppppcVar29 = pppppppcStack_20c;\n      goto LAB_00056cfc;\n    }" if (parenthesized_expression "(*(int *)(puVar41 + 0x23c78) == 0)" ( (binary_expression "*(int *)(puVar41 + 0x23c78) == 0" (pointer_expression "*(int *)(puVar41 + 0x23c78)" * (cast_expression "(int *)(puVar41 + 0x23c78)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar41 + 0x23c78)" ( (binary_expression "puVar41 + 0x23c78" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\nLAB_00056054:\n      ppppppcVar32 = pppppppcVar3[5];\n      uVar16 = (uint)pppppppcVar33 & 0x400000;\n      bVar1 = uVar16 != 0;\n      pppppppcVar31 = (code *******)0x4c;\n      pppppppcVar38 = (code *******)0x0;\n      (**(code **)(puVar41 + 0x23c9c))(apppppppcStack_1f4,0);\n      cStack_1ad = ppppppcVar32 != (code ******)0x0 || bVar1;\n      ppppppcStack_1a8 = pppppppcVar34[0x17];\n      bStack_1af = (byte)((uint)((int)pppppppcVar34[0x16] << 2) >> 0x1f);\n      bStack_1ae = (byte)((uint)((int)pppppppcVar34[0x16] << 3) >> 0x1f);\n      pppppppcStack_1f8 = pppppppcVar29;\n      pppppppcStack_1cc = param_1;\n      pppppppcStack_1c8 = param_1;\n      pppppppcStack_1c4 = param_1;\n      pppppppcStack_1c0 = param_1;\n      ppppppcStack_1b8 = ppppppcVar32;\n      uStack_1b0 = bVar1;\n      if (0 < (int)param_1) {\n        pppppppcVar38 = (code *******)((int)param_1 + 1);\n        pppppppcVar30 = (code *******)FUN_00046d2c(&pppppppcStack_1f8,pppppppcVar38);\n        if (pppppppcVar30 == (code *******)0x0) goto LAB_000560cc;\n        goto LAB_00056168;\n      }\nLAB_000560cc:\n      if (cStack_1ad != '\0') {\n        pppppppcVar29 = apppppppcStack_1f4[0];\n      }\n      apppppppcStack_1f4[0] = pppppppcVar29;\n      if (uVar16 == 0) {\n        if ((int)pppppppcVar34[0x17] < 2) {\n          if (ppppppcVar32 != (code ******)0x0) {\n            FUN_00045dc8();\n          }\n        }\n        else {\n          FUN_00047cb0(&pppppppcStack_1f8);\n        }\n      }\n      else {\n        if (1 < (int)pppppppcVar34[0x17]) {\n          iVar18 = *(int *)(puVar41 + 0x23abc);\n          do {\n            pppppppcVar30 = (code *******)FUN_00048714(&pppppppcStack_1f8);\n            if (pppppppcVar30 != (code *******)0x0) break;\n            if (((int)param_1 <= iStack_1d8) ||\n               (pppppppcVar38 = (code *******)(iStack_1d4 << 1),\n               (int)pppppppcVar34[0x17] + iStack_1dc < iStack_1d4)) goto LAB_000563d0;\n            pppppppcVar30 =\n                 (code *******)(*(code *)(iVar18 + 0x6d2c))(&pppppppcStack_1f8,pppppppcVar38);\n          } while (pppppppcVar30 == (code *******)0x0);\n          goto LAB_00056168;\n        }\n        FUN_00047be4(&pppppppcStack_1f8);\n      }\nLAB_000563d0:\n      pppppppcStack_20c = (code *******)0x0;\n      pppppppcVar3[6] = (code ******)0x0;\n      ppppppcVar32 = *pppppppcVar3;\n      ppppppcVar32[0x20] = (code *****)pppppppcVar33;\n      FUN_00049e40(&ppppppcStack_204,&pppppppcStack_1f8,(uint)pppppppcVar33 | 0x800000);\n      pppppppcVar38 = pppppppcVar3;\n      pppppppcVar29 =\n           (code *******)\n           FUN_00051868(&pppppppcStack_1f8,pppppppcVar3,&ppppppcStack_204,pppppppcVar33,0,\n                        &pppppppcStack_20c);\n      if (pppppppcStack_20c == (code *******)0x0) {\n        pppppppcVar31 = (code *******)0x0;\n        pppppppcVar38 = (code *******)0x0;\n        pppppppcVar33 = (code *******)FUN_000470f0(ppppppcVar32,0,0,2);\n        pppppppcVar30 = pppppppcVar33;\n        if (pppppppcVar29 != (code *******)0x0) {\nLAB_000564b0:\n          pppppppcVar31 = pppppppcVar33;\n          pppppppcVar30 = (code *******)FUN_000470f0(ppppppcVar32,pppppppcVar29,pppppppcVar33,0x10);\n          pppppppcVar38 = pppppppcVar29;\n        }\n        if ((pppppppcVar33 == (code *******)0x0) ||\n           (pcVar4 = *(code **)(puVar41 + 0x23cf0), pppppppcVar30 == (code *******)0x0)) {\n          pppppppcStack_20c = (code *******)0xc;\n          goto LAB_000566f4;\n        }\n        pppppppcVar34[0xd] = (code ******)pppppppcVar30;\n        pppppppcVar29 = (code *******)*pppppppcVar3;\n        ppppppcVar39 = pppppppcVar29[1];\n        iVar18 = (int)ppppppcVar39 << 2;\n        ppppppcVar32 = (code ******)(*pcVar4)(iVar18);\n        pppppppcVar29[3] = ppppppcVar32;\n        ppppppcVar35 = (code ******)(**(code **)(puVar41 + 0x23cf0))(iVar18);\n        pppppppcVar29[4] = ppppppcVar35;\n        iVar18 = (int)ppppppcVar39 * 0xc;\n        ppppppcVar39 = (code ******)(**(code **)(puVar41 + 0x23cf0))(iVar18);\n        pppppppcVar29[5] = ppppppcVar39;\n        ppppppcVar20 = (code ******)(**(code **)(puVar41 + 0x23cf0))(iVar18);\n        pppppppcVar29[6] = ppppppcVar20;\n        if (ppppppcVar32 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else if (ppppppcVar35 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else if (ppppppcVar39 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else if (ppppppcVar20 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else {\n          ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23cf0))((int)pppppppcVar3[6] << 2);\n          pppppppcVar29[0x21] = ppppppcVar32;\n          if (ppppppcVar32 != (code ******)0x0) {\n            ppppppcVar32 = (code ******)0x0;\n            if (pppppppcVar3[6] != (code ******)0x0) {\n              do {\n                pppppppcVar29[0x21][(int)ppppppcVar32] = (code *****)ppppppcVar32;\n                ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n              } while (ppppppcVar32 < pppppppcVar3[6]);\n            }\n            FUN_00046050(pppppppcVar29[0xd],*(int *)(puVar41 + 0x23abc) + 0x60e8,pppppppcVar29);\n            ppppppcVar32 = pppppppcVar3[6];\n            if (ppppppcVar32 == (code ******)0x0) {\nLAB_00056704:\n              (**(code **)(puVar41 + 0x23dc0))(pppppppcVar29[0x21]);\n              pppppppcVar29[0x21] = (code ******)0x0;\n            }\n            else {\n              ppppppcVar35 = pppppppcVar29[0x21];\n              if (*ppppppcVar35 == (code *****)0x0) {\n                ppppppcVar39 = (code ******)0x0;\n                do {\n                  ppppppcVar35 = ppppppcVar35 + 1;\n                  ppppppcVar39 = (code ******)((int)ppppppcVar39 + 1);\n                  if (ppppppcVar32 == ppppppcVar39) {\n                    if (ppppppcVar32 == ppppppcVar39) goto LAB_00056704;\n                    break;\n                  }\n                } while ((code ******)*ppppppcVar35 == ppppppcVar39);\n              }\n            }\n          }\n          pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23abc) + 0x73a4);\n          pppppppcVar30 = (code *******)FUN_00045fb4(pppppppcVar29[0xd],pppppppcVar38,pppppppcVar3);\n          pppppppcVar31 = pppppppcVar29;\n          if (pppppppcVar30 == (code *******)0x0) {\n            pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23b40) + -0x5be4);\n            pppppppcVar30 = (code *******)FUN_00045fb4(pppppppcVar29[0xd],pppppppcVar38);\n            if (pppppppcVar30 == (code *******)0x0) {\n              FUN_00046050(pppppppcVar29[0xd],*(int *)(puVar41 + 0x23abc) + 0x61b4);\n              pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23b40) + -0x4614);\n              pppppppcVar30 = (code *******)FUN_00046050(pppppppcVar29[0xd],pppppppcVar38);\n              if (pppppppcVar30 == (code *******)0x0) {\n                uVar7 = 0;\n                iVar18 = *(int *)(puVar41 + 0x23b40);\n                pppppppcVar33 = (code *******)0x0;\nLAB_00056744:\n                if ((code *******)pppppppcVar29[2] != pppppppcVar33) {\nLAB_00056750:\n                  if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                    pppppppcVar38 = pppppppcVar29;\n                    pppppppcVar31 = pppppppcVar33;\n                    pppppppcVar30 =\n                         (code *******)\n                         (*(code *)(iVar18 + -0x561c))\n                                   (&ppppppcStack_204,pppppppcVar29,pppppppcVar33,1);\n                    if (pppppppcVar30 != (code *******)0x0) goto LAB_00056168;\n                    if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                      (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                      uVar7 = 1;\n                    }\n                  }\n                  pppppppcVar33 = (code *******)((int)pppppppcVar33 + 1);\n                  goto LAB_00056744;\n                }\n                if (uVar7 != 0) {\n                  uVar7 = 0;\n                  pppppppcVar33 = (code *******)0x0;\n                  goto LAB_00056750;\n                }\n                if (((((uint)pppppppcVar3[7] & 0x8000000) == 0) &&\n                    (pppppppcVar3[6] != (code ******)0x0)) &&\n                   ((char)*(code *)(pppppppcVar29 + 0x16) < '\0')) {\n                  ppppppcVar32 = pppppppcVar29[2];\n                }\n                else {\n                  if (pppppppcVar29[0x13] == (code ******)0x0) goto LAB_000568f0;\n                  ppppppcVar32 = pppppppcVar29[2];\n                }\n                ppppppcVar35 = (code ******)\n                               (**(code **)(puVar41 + 0x23cf0))((int)ppppppcVar32 * 0xc);\n                pppppppcVar29[7] = ppppppcVar35;\n                if (ppppppcVar35 == (code ******)0x0) {\n                  pppppppcVar30 = (code *******)0xc;\n                  goto LAB_00056168;\n                }\n                if (ppppppcVar32 != (code ******)0x0) {\n                  iVar18 = 0;\n                  ppppppcVar32 = (code ******)0x0;\n                  do {\n                    puVar21 = (undefined1 *)((int)pppppppcVar29[7] + iVar18);\n                    *puVar21 = 0;\n                    puVar21[1] = 0;\n                    puVar21[2] = 0;\n                    puVar21[3] = 0;\n                    puVar21[4] = 0;\n                    puVar21[5] = 0;\n                    puVar21[6] = 0;\n                    puVar21[7] = 0;\n                    puVar21[8] = 0;\n                    puVar21[9] = 0;\n                    puVar21[10] = 0;\n                    puVar21[0xb] = 0;\n                    ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                    iVar18 = iVar18 + 0xc;\n                  } while (ppppppcVar32 < pppppppcVar29[2]);\n                  iVar18 = *(int *)(puVar41 + 0x23abc);\n                  if (pppppppcVar29[2] != (code ******)0x0) {\n                    iVar43 = 0;\n                    pppppppcStack_218 = (code *******)0x0;\n                    do {\n                      piVar5 = *(int **)((int)pppppppcVar29[6] + iVar43 + 8);\n                      if (0 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4)) {\n                        iVar37 = 0;\n                        do {\n                          pppppppcVar38 = pppppppcStack_218;\n                          iVar22 = (*(code *)(iVar18 + 0x6e30))\n                                             (pppppppcVar29[7] + *piVar5 * 3,pppppppcStack_218);\n                          pppppppcVar30 = (code *******)0xc;\n                          if (iVar22 == 0) goto LAB_00056168;\n                          iVar37 = iVar37 + 1;\n                          piVar5 = piVar5 + 1;\n                        } while (iVar37 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4));\n                      }\n                      pppppppcStack_218 = (code *******)((int)pppppppcStack_218 + 1);\n                      iVar43 = iVar43 + 0xc;\n                    } while (pppppppcStack_218 < pppppppcVar29[2]);\n                  }\n                }\nLAB_000568f0:\n                pppppppcStack_20c = (code *******)0x0;\n                if (((((uint)pppppppcVar34[0x16] & 0x20000000) != 0) && (uVar16 == 0)) &&\n                   (pppppppcVar3[5] == (code ******)0x0)) {\n                  if (pppppppcVar34[2] != (code ******)0x0) {\n                    pppppppcVar31 = (code *******)(*(int *)(puVar41 + 0x23754) + 0x6e4c);\n                    if (*(byte *)(*pppppppcVar34 + 1) < 0xd) {\n                    \n                    \n                      pppppppcVar29 =\n                           (code *******)\n                           (*(code *)(puVar41 +\n                                     (int)(pppppppcVar31[*(byte *)(*pppppppcVar34 + 1)] + 0xadc7)))\n                                     ();\n                      return pppppppcVar29;\n                    }\n                    (**(code **)(puVar41 + 0x23bc4))(0);\n                    if (uVar7 != 0) {\n                      pppppppcVar31 = (code *******)&DAT_00000007;\n                      ppppppcVar32 = (code ******)0x0;\n                      do {\n                        ppppppcVar35 = *pppppppcVar34 + (int)ppppppcVar32 * 2;\n                        if (*(char *)(ppppppcVar35 + 1) == '\x01') {\n                          if (*(char *)ppppppcVar35 < '\0') {\n                            ppppppcVar35[1] = (code *****)((uint)ppppppcVar35[1] & 0xfffffbff);\n                          }\n                        }\n                        else if (*(char *)(ppppppcVar35 + 1) == '\x05') {\n                          *(char *)(ppppppcVar35 + 1) = '\a';\n                        }\n                        ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                      } while (ppppppcVar32 < pppppppcVar34[2]);\n                    }\n                  }\n                  pppppppcVar34[0x17] = (code ******)0x1;\n                  if (0 < (int)pppppppcVar34[0x13]) {\n                    uVar7 = 1;\n                  }\n                  *(byte *)(pppppppcVar34 + 0x16) =\n                       (byte)*(code *)(pppppppcVar34 + 0x16) & 0x9f | (byte)((uVar7 & 1) << 6);\n                }\n                ppppppcVar32 = (code ******)pppppppcVar34[0xd][3][7];\n                pppppppcVar34[0x12] = ppppppcVar32;\n                pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppppcVar32 * 3);\n                pppppppcVar33 = (code *******)FUN_000483e8(&ppppppcStack_204,pppppppcVar38);\n                pppppppcVar29 = pppppppcVar33;\n                pppppppcStack_208 = pppppppcVar33;\n                if (pppppppcVar33 == (code *******)0x0) {\n                  if ((0 < (int)pppppppcVar34[0x13]) && (0 < iStack_200)) {\n                    iVar18 = *(int *)(puVar41 + 0x23abc);\n                    iVar43 = *(int *)(puVar41 + 0x23abc);\n                    pppppppcVar29 = (code *******)0x0;\n                    do {\n                      pppppppcVar31 =\n                           (code *******)(*pppppppcVar34 + piStack_1fc[(int)pppppppcVar29] * 2);\n                      if (*(code *)(pppppppcVar31 + 1) == (code)0x4) {\n                        iVar37 = 0;\n                        piVar5 = piStack_1fc;\n                        if (iStack_200 < 1) {\nLAB_00056b8c:\n                          if (iStack_200 != iVar37) {\n                            ppppcVar40 = *pppppppcVar34[5][piStack_1fc[(int)pppppppcVar29] * 3 + 2];\n                            iVar37 = (*(code *)(iVar18 + 0x5ea8))(&ppppppcStack_204,ppppcVar40);\n                            if (iVar37 == 0) {\n                              pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppcVar40 * 3)\n                              ;\n                              pppppppcVar29 =\n                                   (code *******)\n                                   (*(code *)(iVar43 + 0x7f1c))(&ppppppcStack_204,pppppppcVar38);\n                              if (pppppppcVar29 != (code *******)0x0) goto LAB_00056cb8;\n                            }\n                          }\n                        }\n                        else {\n                          do {\n                            ppppppcVar32 = *pppppppcVar34 + *piVar5 * 2;\n                            if ((*(char *)(ppppppcVar32 + 1) == '\t') &&\n                               ((code ******)*ppppppcVar32 == *pppppppcVar31)) goto LAB_00056b8c;\n                            iVar37 = iVar37 + 1;\n                            piVar5 = piVar5 + 1;\n                          } while (iStack_200 != iVar37);\n                        }\n                      }\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1);\n                    } while ((int)pppppppcVar29 < iStack_200);\n                  }\n                  pppppppcVar31 = &ppppppcStack_204;\n                  pppppppcVar38 = pppppppcVar34;\n                  ppppppcVar32 = (code ******)\n                                 FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,0);\n                  pppppppcVar34[9] = ppppppcVar32;\n                  pppppppcVar29 = pppppppcStack_208;\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    if (((uint)ppppppcVar32[0xd] & 0x1000000) == 0) {\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar34[10] = ppppppcVar32;\n                    }\n                    else {\n                      pppppppcVar31 = &ppppppcStack_204;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,1);\n                      pppppppcVar34[10] = ppppppcVar32;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,2);\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar38 = pppppppcVar34;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,6);\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar29 = pppppppcStack_208;\n                      if (((pppppppcVar34[10] == (code ******)0x0) ||\n                          (pppppppcVar34[0xb] == (code ******)0x0)) ||\n                         (ppppppcVar32 == (code ******)0x0)) goto LAB_00056cb8;\n                    }\n                    (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                    pppppppcVar29 = pppppppcVar33;\n                  }\n                }\nLAB_00056cb8:\n                pppppppcStack_20c = pppppppcVar29;\n                FUN_0004b234(pppppppcVar3);\n                FUN_0004b2bc(&pppppppcStack_1f8);\n                pppppppcVar29 = pppppppcStack_20c;\n                if (pppppppcStack_20c != (code *******)0x0) {\n                  if (*(int *)(puVar41 + 0x23c78) != 0) {\n                    (**(code **)(puVar41 + 0x23df0))(pppppppcVar34 + 0x22);\n                  }\n                  FUN_0004b338(pppppppcVar34);\n                  *pppppppcVar3 = (code ******)0x0;\n                  pppppppcVar3[1] = (code ******)0x0;\n                  pppppppcVar29 = pppppppcStack_20c;\n                }\n                goto LAB_00056cfc;\n              }\n            }\n          }\n        }\n      }\n      else {\n        pppppppcVar31 = (code *******)0x0;\n        if (pppppppcVar29 != (code *******)0x0) {\n          pppppppcVar33 = (code *******)FUN_000470f0(ppppppcVar32,0,0,2);\n          goto LAB_000564b0;\n        }\nLAB_000566f4:\n        pppppppcVar34[0xd] = (code ******)0x0;\n        pppppppcVar30 = pppppppcStack_20c;\n      }\nLAB_00056168:\n      pppppppcStack_20c = pppppppcVar30;\n      FUN_0004b234(pppppppcVar3);\n      FUN_0004b2bc(&pppppppcStack_1f8);\n      if (*(int *)(puVar41 + 0x23c78) != 0) {\n        (**(code **)(puVar41 + 0x23df0))(pppppppcVar34 + 0x22);\n      }\n      FUN_0004b338(pppppppcVar34);\n      *pppppppcVar3 = (code ******)0x0;\n      pppppppcVar3[1] = (code ******)0x0;\n      pppppppcVar29 = pppppppcStack_20c;\n      goto LAB_00056cfc;\n    }" { (labeled_statement "LAB_00056054:\n      ppppppcVar32 = pppppppcVar3[5];" statement_identifier : (expression_statement "ppppppcVar32 = pppppppcVar3[5];" (assignment_expression "ppppppcVar32 = pppppppcVar3[5]" identifier = (subscript_expression "pppppppcVar3[5]" identifier [ number_literal ])) ;)) (expression_statement "uVar16 = (uint)pppppppcVar33 & 0x400000;" (assignment_expression "uVar16 = (uint)pppppppcVar33 & 0x400000" identifier = (binary_expression "(uint)pppppppcVar33 & 0x400000" (cast_expression "(uint)pppppppcVar33" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "bVar1 = uVar16 != 0;" (assignment_expression "bVar1 = uVar16 != 0" identifier = (binary_expression "uVar16 != 0" identifier != number_literal)) ;) (expression_statement "pppppppcVar31 = (code *******)0x4c;" (assignment_expression "pppppppcVar31 = (code *******)0x4c" identifier = (cast_expression "(code *******)0x4c" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "pppppppcVar38 = (code *******)0x0;" (assignment_expression "pppppppcVar38 = (code *******)0x0" identifier = (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "(**(code **)(puVar41 + 0x23c9c))(apppppppcStack_1f4,0);" (call_expression "(**(code **)(puVar41 + 0x23c9c))(apppppppcStack_1f4,0)" (parenthesized_expression "(**(code **)(puVar41 + 0x23c9c))" ( (pointer_expression "**(code **)(puVar41 + 0x23c9c)" * (pointer_expression "*(code **)(puVar41 + 0x23c9c)" * (cast_expression "(code **)(puVar41 + 0x23c9c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar41 + 0x23c9c)" ( (binary_expression "puVar41 + 0x23c9c" identifier + number_literal) ))))) )) (argument_list "(apppppppcStack_1f4,0)" ( identifier , number_literal ))) ;) (expression_statement "cStack_1ad = ppppppcVar32 != (code ******)0x0 || bVar1;" (assignment_expression "cStack_1ad = ppppppcVar32 != (code ******)0x0 || bVar1" identifier = (binary_expression "ppppppcVar32 != (code ******)0x0 || bVar1" (binary_expression "ppppppcVar32 != (code ******)0x0" identifier != (cast_expression "(code ******)0x0" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) || identifier)) ;) (expression_statement "ppppppcStack_1a8 = pppppppcVar34[0x17];" (assignment_expression "ppppppcStack_1a8 = pppppppcVar34[0x17]" identifier = (subscript_expression "pppppppcVar34[0x17]" identifier [ number_literal ])) ;) (expression_statement "bStack_1af = (byte)((uint)((int)pppppppcVar34[0x16] << 2) >> 0x1f);" (assignment_expression "bStack_1af = (byte)((uint)((int)pppppppcVar34[0x16] << 2) >> 0x1f)" identifier = (call_expression "(byte)((uint)((int)pppppppcVar34[0x16] << 2) >> 0x1f)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)((int)pppppppcVar34[0x16] << 2) >> 0x1f)" ( (binary_expression "(uint)((int)pppppppcVar34[0x16] << 2) >> 0x1f" (call_expression "(uint)((int)pppppppcVar34[0x16] << 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)pppppppcVar34[0x16] << 2)" ( (binary_expression "(int)pppppppcVar34[0x16] << 2" (cast_expression "(int)pppppppcVar34[0x16]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "pppppppcVar34[0x16]" identifier [ number_literal ])) << number_literal) ))) >> number_literal) )))) ;) (expression_statement "bStack_1ae = (byte)((uint)((int)pppppppcVar34[0x16] << 3) >> 0x1f);" (assignment_expression "bStack_1ae = (byte)((uint)((int)pppppppcVar34[0x16] << 3) >> 0x1f)" identifier = (call_expression "(byte)((uint)((int)pppppppcVar34[0x16] << 3) >> 0x1f)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)((int)pppppppcVar34[0x16] << 3) >> 0x1f)" ( (binary_expression "(uint)((int)pppppppcVar34[0x16] << 3) >> 0x1f" (call_expression "(uint)((int)pppppppcVar34[0x16] << 3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)pppppppcVar34[0x16] << 3)" ( (binary_expression "(int)pppppppcVar34[0x16] << 3" (cast_expression "(int)pppppppcVar34[0x16]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "pppppppcVar34[0x16]" identifier [ number_literal ])) << number_literal) ))) >> number_literal) )))) ;) (expression_statement "pppppppcStack_1f8 = pppppppcVar29;" (assignment_expression "pppppppcStack_1f8 = pppppppcVar29" identifier = identifier) ;) (expression_statement "pppppppcStack_1cc = param_1;" (assignment_expression "pppppppcStack_1cc = param_1" identifier = identifier) ;) (expression_statement "pppppppcStack_1c8 = param_1;" (assignment_expression "pppppppcStack_1c8 = param_1" identifier = identifier) ;) (expression_statement "pppppppcStack_1c4 = param_1;" (assignment_expression "pppppppcStack_1c4 = param_1" identifier = identifier) ;) (expression_statement "pppppppcStack_1c0 = param_1;" (assignment_expression "pppppppcStack_1c0 = param_1" identifier = identifier) ;) (expression_statement "ppppppcStack_1b8 = ppppppcVar32;" (assignment_expression "ppppppcStack_1b8 = ppppppcVar32" identifier = identifier) ;) (expression_statement "uStack_1b0 = bVar1;" (assignment_expression "uStack_1b0 = bVar1" identifier = identifier) ;) (if_statement "if (0 < (int)param_1) {\n        pppppppcVar38 = (code *******)((int)param_1 + 1);\n        pppppppcVar30 = (code *******)FUN_00046d2c(&pppppppcStack_1f8,pppppppcVar38);\n        if (pppppppcVar30 == (code *******)0x0) goto LAB_000560cc;\n        goto LAB_00056168;\n      }" if (parenthesized_expression "(0 < (int)param_1)" ( (binary_expression "0 < (int)param_1" number_literal < (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n        pppppppcVar38 = (code *******)((int)param_1 + 1);\n        pppppppcVar30 = (code *******)FUN_00046d2c(&pppppppcStack_1f8,pppppppcVar38);\n        if (pppppppcVar30 == (code *******)0x0) goto LAB_000560cc;\n        goto LAB_00056168;\n      }" { (expression_statement "pppppppcVar38 = (code *******)((int)param_1 + 1);" (assignment_expression "pppppppcVar38 = (code *******)((int)param_1 + 1)" identifier = (cast_expression "(code *******)((int)param_1 + 1)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)param_1 + 1)" ( (binary_expression "(int)param_1 + 1" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "pppppppcVar30 = (code *******)FUN_00046d2c(&pppppppcStack_1f8,pppppppcVar38);" (assignment_expression "pppppppcVar30 = (code *******)FUN_00046d2c(&pppppppcStack_1f8,pppppppcVar38)" identifier = (cast_expression "(code *******)FUN_00046d2c(&pppppppcStack_1f8,pppppppcVar38)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "FUN_00046d2c(&pppppppcStack_1f8,pppppppcVar38)" identifier (argument_list "(&pppppppcStack_1f8,pppppppcVar38)" ( (pointer_expression "&pppppppcStack_1f8" & identifier) , identifier ))))) ;) (if_statement "if (pppppppcVar30 == (code *******)0x0) goto LAB_000560cc;" if (parenthesized_expression "(pppppppcVar30 == (code *******)0x0)" ( (binary_expression "pppppppcVar30 == (code *******)0x0" identifier == (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (goto_statement "goto LAB_000560cc;" goto statement_identifier ;)) (goto_statement "goto LAB_00056168;" goto statement_identifier ;) })) (labeled_statement "LAB_000560cc:\n      if (cStack_1ad != '\0') {\n        pppppppcVar29 = apppppppcStack_1f4[0];\n      }" statement_identifier : (if_statement "if (cStack_1ad != '\0') {\n        pppppppcVar29 = apppppppcStack_1f4[0];\n      }" if (parenthesized_expression "(cStack_1ad != '\0')" ( (binary_expression "cStack_1ad != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        pppppppcVar29 = apppppppcStack_1f4[0];\n      }" { (expression_statement "pppppppcVar29 = apppppppcStack_1f4[0];" (assignment_expression "pppppppcVar29 = apppppppcStack_1f4[0]" identifier = (subscript_expression "apppppppcStack_1f4[0]" identifier [ number_literal ])) ;) }))) (expression_statement "apppppppcStack_1f4[0] = pppppppcVar29;" (assignment_expression "apppppppcStack_1f4[0] = pppppppcVar29" (subscript_expression "apppppppcStack_1f4[0]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (uVar16 == 0) {\n        if ((int)pppppppcVar34[0x17] < 2) {\n          if (ppppppcVar32 != (code ******)0x0) {\n            FUN_00045dc8();\n          }\n        }\n        else {\n          FUN_00047cb0(&pppppppcStack_1f8);\n        }\n      }\n      else {\n        if (1 < (int)pppppppcVar34[0x17]) {\n          iVar18 = *(int *)(puVar41 + 0x23abc);\n          do {\n            pppppppcVar30 = (code *******)FUN_00048714(&pppppppcStack_1f8);\n            if (pppppppcVar30 != (code *******)0x0) break;\n            if (((int)param_1 <= iStack_1d8) ||\n               (pppppppcVar38 = (code *******)(iStack_1d4 << 1),\n               (int)pppppppcVar34[0x17] + iStack_1dc < iStack_1d4)) goto LAB_000563d0;\n            pppppppcVar30 =\n                 (code *******)(*(code *)(iVar18 + 0x6d2c))(&pppppppcStack_1f8,pppppppcVar38);\n          } while (pppppppcVar30 == (code *******)0x0);\n          goto LAB_00056168;\n        }\n        FUN_00047be4(&pppppppcStack_1f8);\n      }" if (parenthesized_expression "(uVar16 == 0)" ( (binary_expression "uVar16 == 0" identifier == number_literal) )) (compound_statement "{\n        if ((int)pppppppcVar34[0x17] < 2) {\n          if (ppppppcVar32 != (code ******)0x0) {\n            FUN_00045dc8();\n          }\n        }\n        else {\n          FUN_00047cb0(&pppppppcStack_1f8);\n        }\n      }" { (if_statement "if ((int)pppppppcVar34[0x17] < 2) {\n          if (ppppppcVar32 != (code ******)0x0) {\n            FUN_00045dc8();\n          }\n        }\n        else {\n          FUN_00047cb0(&pppppppcStack_1f8);\n        }" if (parenthesized_expression "((int)pppppppcVar34[0x17] < 2)" ( (binary_expression "(int)pppppppcVar34[0x17] < 2" (cast_expression "(int)pppppppcVar34[0x17]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "pppppppcVar34[0x17]" identifier [ number_literal ])) < number_literal) )) (compound_statement "{\n          if (ppppppcVar32 != (code ******)0x0) {\n            FUN_00045dc8();\n          }\n        }" { (if_statement "if (ppppppcVar32 != (code ******)0x0) {\n            FUN_00045dc8();\n          }" if (parenthesized_expression "(ppppppcVar32 != (code ******)0x0)" ( (binary_expression "ppppppcVar32 != (code ******)0x0" identifier != (cast_expression "(code ******)0x0" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (compound_statement "{\n            FUN_00045dc8();\n          }" { (expression_statement "FUN_00045dc8();" (call_expression "FUN_00045dc8()" identifier (argument_list "()" ( ))) ;) })) }) (else_clause "else {\n          FUN_00047cb0(&pppppppcStack_1f8);\n        }" else (compound_statement "{\n          FUN_00047cb0(&pppppppcStack_1f8);\n        }" { (expression_statement "FUN_00047cb0(&pppppppcStack_1f8);" (call_expression "FUN_00047cb0(&pppppppcStack_1f8)" identifier (argument_list "(&pppppppcStack_1f8)" ( (pointer_expression "&pppppppcStack_1f8" & identifier) ))) ;) }))) }) (else_clause "else {\n        if (1 < (int)pppppppcVar34[0x17]) {\n          iVar18 = *(int *)(puVar41 + 0x23abc);\n          do {\n            pppppppcVar30 = (code *******)FUN_00048714(&pppppppcStack_1f8);\n            if (pppppppcVar30 != (code *******)0x0) break;\n            if (((int)param_1 <= iStack_1d8) ||\n               (pppppppcVar38 = (code *******)(iStack_1d4 << 1),\n               (int)pppppppcVar34[0x17] + iStack_1dc < iStack_1d4)) goto LAB_000563d0;\n            pppppppcVar30 =\n                 (code *******)(*(code *)(iVar18 + 0x6d2c))(&pppppppcStack_1f8,pppppppcVar38);\n          } while (pppppppcVar30 == (code *******)0x0);\n          goto LAB_00056168;\n        }\n        FUN_00047be4(&pppppppcStack_1f8);\n      }" else (compound_statement "{\n        if (1 < (int)pppppppcVar34[0x17]) {\n          iVar18 = *(int *)(puVar41 + 0x23abc);\n          do {\n            pppppppcVar30 = (code *******)FUN_00048714(&pppppppcStack_1f8);\n            if (pppppppcVar30 != (code *******)0x0) break;\n            if (((int)param_1 <= iStack_1d8) ||\n               (pppppppcVar38 = (code *******)(iStack_1d4 << 1),\n               (int)pppppppcVar34[0x17] + iStack_1dc < iStack_1d4)) goto LAB_000563d0;\n            pppppppcVar30 =\n                 (code *******)(*(code *)(iVar18 + 0x6d2c))(&pppppppcStack_1f8,pppppppcVar38);\n          } while (pppppppcVar30 == (code *******)0x0);\n          goto LAB_00056168;\n        }\n        FUN_00047be4(&pppppppcStack_1f8);\n      }" { (if_statement "if (1 < (int)pppppppcVar34[0x17]) {\n          iVar18 = *(int *)(puVar41 + 0x23abc);\n          do {\n            pppppppcVar30 = (code *******)FUN_00048714(&pppppppcStack_1f8);\n            if (pppppppcVar30 != (code *******)0x0) break;\n            if (((int)param_1 <= iStack_1d8) ||\n               (pppppppcVar38 = (code *******)(iStack_1d4 << 1),\n               (int)pppppppcVar34[0x17] + iStack_1dc < iStack_1d4)) goto LAB_000563d0;\n            pppppppcVar30 =\n                 (code *******)(*(code *)(iVar18 + 0x6d2c))(&pppppppcStack_1f8,pppppppcVar38);\n          } while (pppppppcVar30 == (code *******)0x0);\n          goto LAB_00056168;\n        }" if (parenthesized_expression "(1 < (int)pppppppcVar34[0x17])" ( (binary_expression "1 < (int)pppppppcVar34[0x17]" number_literal < (cast_expression "(int)pppppppcVar34[0x17]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "pppppppcVar34[0x17]" identifier [ number_literal ]))) )) (compound_statement "{\n          iVar18 = *(int *)(puVar41 + 0x23abc);\n          do {\n            pppppppcVar30 = (code *******)FUN_00048714(&pppppppcStack_1f8);\n            if (pppppppcVar30 != (code *******)0x0) break;\n            if (((int)param_1 <= iStack_1d8) ||\n               (pppppppcVar38 = (code *******)(iStack_1d4 << 1),\n               (int)pppppppcVar34[0x17] + iStack_1dc < iStack_1d4)) goto LAB_000563d0;\n            pppppppcVar30 =\n                 (code *******)(*(code *)(iVar18 + 0x6d2c))(&pppppppcStack_1f8,pppppppcVar38);\n          } while (pppppppcVar30 == (code *******)0x0);\n          goto LAB_00056168;\n        }" { (expression_statement "iVar18 = *(int *)(puVar41 + 0x23abc);" (assignment_expression "iVar18 = *(int *)(puVar41 + 0x23abc)" identifier = (pointer_expression "*(int *)(puVar41 + 0x23abc)" * (cast_expression "(int *)(puVar41 + 0x23abc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar41 + 0x23abc)" ( (binary_expression "puVar41 + 0x23abc" identifier + number_literal) ))))) ;) (do_statement "do {\n            pppppppcVar30 = (code *******)FUN_00048714(&pppppppcStack_1f8);\n            if (pppppppcVar30 != (code *******)0x0) break;\n            if (((int)param_1 <= iStack_1d8) ||\n               (pppppppcVar38 = (code *******)(iStack_1d4 << 1),\n               (int)pppppppcVar34[0x17] + iStack_1dc < iStack_1d4)) goto LAB_000563d0;\n            pppppppcVar30 =\n                 (code *******)(*(code *)(iVar18 + 0x6d2c))(&pppppppcStack_1f8,pppppppcVar38);\n          } while (pppppppcVar30 == (code *******)0x0);" do (compound_statement "{\n            pppppppcVar30 = (code *******)FUN_00048714(&pppppppcStack_1f8);\n            if (pppppppcVar30 != (code *******)0x0) break;\n            if (((int)param_1 <= iStack_1d8) ||\n               (pppppppcVar38 = (code *******)(iStack_1d4 << 1),\n               (int)pppppppcVar34[0x17] + iStack_1dc < iStack_1d4)) goto LAB_000563d0;\n            pppppppcVar30 =\n                 (code *******)(*(code *)(iVar18 + 0x6d2c))(&pppppppcStack_1f8,pppppppcVar38);\n          }" { (expression_statement "pppppppcVar30 = (code *******)FUN_00048714(&pppppppcStack_1f8);" (assignment_expression "pppppppcVar30 = (code *******)FUN_00048714(&pppppppcStack_1f8)" identifier = (cast_expression "(code *******)FUN_00048714(&pppppppcStack_1f8)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "FUN_00048714(&pppppppcStack_1f8)" identifier (argument_list "(&pppppppcStack_1f8)" ( (pointer_expression "&pppppppcStack_1f8" & identifier) ))))) ;) (if_statement "if (pppppppcVar30 != (code *******)0x0) break;" if (parenthesized_expression "(pppppppcVar30 != (code *******)0x0)" ( (binary_expression "pppppppcVar30 != (code *******)0x0" identifier != (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (break_statement "break;" break ;)) (if_statement "if (((int)param_1 <= iStack_1d8) ||\n               (pppppppcVar38 = (code *******)(iStack_1d4 << 1),\n               (int)pppppppcVar34[0x17] + iStack_1dc < iStack_1d4)) goto LAB_000563d0;" if (parenthesized_expression "(((int)param_1 <= iStack_1d8) ||\n               (pppppppcVar38 = (code *******)(iStack_1d4 << 1),\n               (int)pppppppcVar34[0x17] + iStack_1dc < iStack_1d4))" ( (binary_expression "((int)param_1 <= iStack_1d8) ||\n               (pppppppcVar38 = (code *******)(iStack_1d4 << 1),\n               (int)pppppppcVar34[0x17] + iStack_1dc < iStack_1d4)" (parenthesized_expression "((int)param_1 <= iStack_1d8)" ( (binary_expression "(int)param_1 <= iStack_1d8" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) <= identifier) )) || (parenthesized_expression "(pppppppcVar38 = (code *******)(iStack_1d4 << 1),\n               (int)pppppppcVar34[0x17] + iStack_1dc < iStack_1d4)" ( (comma_expression "pppppppcVar38 = (code *******)(iStack_1d4 << 1),\n               (int)pppppppcVar34[0x17] + iStack_1dc < iStack_1d4" (assignment_expression "pppppppcVar38 = (code *******)(iStack_1d4 << 1)" identifier = (cast_expression "(code *******)(iStack_1d4 << 1)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(iStack_1d4 << 1)" ( (binary_expression "iStack_1d4 << 1" identifier << number_literal) )))) , (binary_expression "(int)pppppppcVar34[0x17] + iStack_1dc < iStack_1d4" (binary_expression "(int)pppppppcVar34[0x17] + iStack_1dc" (cast_expression "(int)pppppppcVar34[0x17]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "pppppppcVar34[0x17]" identifier [ number_literal ])) + identifier) < identifier)) ))) )) (goto_statement "goto LAB_000563d0;" goto statement_identifier ;)) (expression_statement "pppppppcVar30 =\n                 (code *******)(*(code *)(iVar18 + 0x6d2c))(&pppppppcStack_1f8,pppppppcVar38);" (assignment_expression "pppppppcVar30 =\n                 (code *******)(*(code *)(iVar18 + 0x6d2c))(&pppppppcStack_1f8,pppppppcVar38)" identifier = (cast_expression "(code *******)(*(code *)(iVar18 + 0x6d2c))(&pppppppcStack_1f8,pppppppcVar38)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "(*(code *)(iVar18 + 0x6d2c))(&pppppppcStack_1f8,pppppppcVar38)" (parenthesized_expression "(*(code *)(iVar18 + 0x6d2c))" ( (pointer_expression "*(code *)(iVar18 + 0x6d2c)" * (cast_expression "(code *)(iVar18 + 0x6d2c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x6d2c)" ( (binary_expression "iVar18 + 0x6d2c" identifier + number_literal) )))) )) (argument_list "(&pppppppcStack_1f8,pppppppcVar38)" ( (pointer_expression "&pppppppcStack_1f8" & identifier) , identifier ))))) ;) }) while (parenthesized_expression "(pppppppcVar30 == (code *******)0x0)" ( (binary_expression "pppppppcVar30 == (code *******)0x0" identifier == (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) ;) (goto_statement "goto LAB_00056168;" goto statement_identifier ;) })) (expression_statement "FUN_00047be4(&pppppppcStack_1f8);" (call_expression "FUN_00047be4(&pppppppcStack_1f8)" identifier (argument_list "(&pppppppcStack_1f8)" ( (pointer_expression "&pppppppcStack_1f8" & identifier) ))) ;) }))) (labeled_statement "LAB_000563d0:\n      pppppppcStack_20c = (code *******)0x0;" statement_identifier : (expression_statement "pppppppcStack_20c = (code *******)0x0;" (assignment_expression "pppppppcStack_20c = (code *******)0x0" identifier = (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;)) (expression_statement "pppppppcVar3[6] = (code ******)0x0;" (assignment_expression "pppppppcVar3[6] = (code ******)0x0" (subscript_expression "pppppppcVar3[6]" identifier [ number_literal ]) = (cast_expression "(code ******)0x0" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) (expression_statement "ppppppcVar32 = *pppppppcVar3;" (assignment_expression "ppppppcVar32 = *pppppppcVar3" identifier = (pointer_expression "*pppppppcVar3" * identifier)) ;) (expression_statement "ppppppcVar32[0x20] = (code *****)pppppppcVar33;" (assignment_expression "ppppppcVar32[0x20] = (code *****)pppppppcVar33" (subscript_expression "ppppppcVar32[0x20]" identifier [ number_literal ]) = (cast_expression "(code *****)pppppppcVar33" ( (type_descriptor "code *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier)) ;) (expression_statement "FUN_00049e40(&ppppppcStack_204,&pppppppcStack_1f8,(uint)pppppppcVar33 | 0x800000);" (call_expression "FUN_00049e40(&ppppppcStack_204,&pppppppcStack_1f8,(uint)pppppppcVar33 | 0x800000)" identifier (argument_list "(&ppppppcStack_204,&pppppppcStack_1f8,(uint)pppppppcVar33 | 0x800000)" ( (pointer_expression "&ppppppcStack_204" & identifier) , (pointer_expression "&pppppppcStack_1f8" & identifier) , (binary_expression "(uint)pppppppcVar33 | 0x800000" (cast_expression "(uint)pppppppcVar33" ( (type_descriptor "uint" type_identifier) ) identifier) | number_literal) ))) ;) (expression_statement "pppppppcVar38 = pppppppcVar3;" (assignment_expression "pppppppcVar38 = pppppppcVar3" identifier = identifier) ;) (expression_statement "pppppppcVar29 =\n           (code *******)\n           FUN_00051868(&pppppppcStack_1f8,pppppppcVar3,&ppppppcStack_204,pppppppcVar33,0,\n                        &pppppppcStack_20c);" (assignment_expression "pppppppcVar29 =\n           (code *******)\n           FUN_00051868(&pppppppcStack_1f8,pppppppcVar3,&ppppppcStack_204,pppppppcVar33,0,\n                        &pppppppcStack_20c)" identifier = (cast_expression "(code *******)\n           FUN_00051868(&pppppppcStack_1f8,pppppppcVar3,&ppppppcStack_204,pppppppcVar33,0,\n                        &pppppppcStack_20c)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "FUN_00051868(&pppppppcStack_1f8,pppppppcVar3,&ppppppcStack_204,pppppppcVar33,0,\n                        &pppppppcStack_20c)" identifier (argument_list "(&pppppppcStack_1f8,pppppppcVar3,&ppppppcStack_204,pppppppcVar33,0,\n                        &pppppppcStack_20c)" ( (pointer_expression "&pppppppcStack_1f8" & identifier) , identifier , (pointer_expression "&ppppppcStack_204" & identifier) , identifier , number_literal , (pointer_expression "&pppppppcStack_20c" & identifier) ))))) ;) (if_statement "if (pppppppcStack_20c == (code *******)0x0) {\n        pppppppcVar31 = (code *******)0x0;\n        pppppppcVar38 = (code *******)0x0;\n        pppppppcVar33 = (code *******)FUN_000470f0(ppppppcVar32,0,0,2);\n        pppppppcVar30 = pppppppcVar33;\n        if (pppppppcVar29 != (code *******)0x0) {\nLAB_000564b0:\n          pppppppcVar31 = pppppppcVar33;\n          pppppppcVar30 = (code *******)FUN_000470f0(ppppppcVar32,pppppppcVar29,pppppppcVar33,0x10);\n          pppppppcVar38 = pppppppcVar29;\n        }\n        if ((pppppppcVar33 == (code *******)0x0) ||\n           (pcVar4 = *(code **)(puVar41 + 0x23cf0), pppppppcVar30 == (code *******)0x0)) {\n          pppppppcStack_20c = (code *******)0xc;\n          goto LAB_000566f4;\n        }\n        pppppppcVar34[0xd] = (code ******)pppppppcVar30;\n        pppppppcVar29 = (code *******)*pppppppcVar3;\n        ppppppcVar39 = pppppppcVar29[1];\n        iVar18 = (int)ppppppcVar39 << 2;\n        ppppppcVar32 = (code ******)(*pcVar4)(iVar18);\n        pppppppcVar29[3] = ppppppcVar32;\n        ppppppcVar35 = (code ******)(**(code **)(puVar41 + 0x23cf0))(iVar18);\n        pppppppcVar29[4] = ppppppcVar35;\n        iVar18 = (int)ppppppcVar39 * 0xc;\n        ppppppcVar39 = (code ******)(**(code **)(puVar41 + 0x23cf0))(iVar18);\n        pppppppcVar29[5] = ppppppcVar39;\n        ppppppcVar20 = (code ******)(**(code **)(puVar41 + 0x23cf0))(iVar18);\n        pppppppcVar29[6] = ppppppcVar20;\n        if (ppppppcVar32 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else if (ppppppcVar35 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else if (ppppppcVar39 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else if (ppppppcVar20 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else {\n          ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23cf0))((int)pppppppcVar3[6] << 2);\n          pppppppcVar29[0x21] = ppppppcVar32;\n          if (ppppppcVar32 != (code ******)0x0) {\n            ppppppcVar32 = (code ******)0x0;\n            if (pppppppcVar3[6] != (code ******)0x0) {\n              do {\n                pppppppcVar29[0x21][(int)ppppppcVar32] = (code *****)ppppppcVar32;\n                ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n              } while (ppppppcVar32 < pppppppcVar3[6]);\n            }\n            FUN_00046050(pppppppcVar29[0xd],*(int *)(puVar41 + 0x23abc) + 0x60e8,pppppppcVar29);\n            ppppppcVar32 = pppppppcVar3[6];\n            if (ppppppcVar32 == (code ******)0x0) {\nLAB_00056704:\n              (**(code **)(puVar41 + 0x23dc0))(pppppppcVar29[0x21]);\n              pppppppcVar29[0x21] = (code ******)0x0;\n            }\n            else {\n              ppppppcVar35 = pppppppcVar29[0x21];\n              if (*ppppppcVar35 == (code *****)0x0) {\n                ppppppcVar39 = (code ******)0x0;\n                do {\n                  ppppppcVar35 = ppppppcVar35 + 1;\n                  ppppppcVar39 = (code ******)((int)ppppppcVar39 + 1);\n                  if (ppppppcVar32 == ppppppcVar39) {\n                    if (ppppppcVar32 == ppppppcVar39) goto LAB_00056704;\n                    break;\n                  }\n                } while ((code ******)*ppppppcVar35 == ppppppcVar39);\n              }\n            }\n          }\n          pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23abc) + 0x73a4);\n          pppppppcVar30 = (code *******)FUN_00045fb4(pppppppcVar29[0xd],pppppppcVar38,pppppppcVar3);\n          pppppppcVar31 = pppppppcVar29;\n          if (pppppppcVar30 == (code *******)0x0) {\n            pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23b40) + -0x5be4);\n            pppppppcVar30 = (code *******)FUN_00045fb4(pppppppcVar29[0xd],pppppppcVar38);\n            if (pppppppcVar30 == (code *******)0x0) {\n              FUN_00046050(pppppppcVar29[0xd],*(int *)(puVar41 + 0x23abc) + 0x61b4);\n              pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23b40) + -0x4614);\n              pppppppcVar30 = (code *******)FUN_00046050(pppppppcVar29[0xd],pppppppcVar38);\n              if (pppppppcVar30 == (code *******)0x0) {\n                uVar7 = 0;\n                iVar18 = *(int *)(puVar41 + 0x23b40);\n                pppppppcVar33 = (code *******)0x0;\nLAB_00056744:\n                if ((code *******)pppppppcVar29[2] != pppppppcVar33) {\nLAB_00056750:\n                  if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                    pppppppcVar38 = pppppppcVar29;\n                    pppppppcVar31 = pppppppcVar33;\n                    pppppppcVar30 =\n                         (code *******)\n                         (*(code *)(iVar18 + -0x561c))\n                                   (&ppppppcStack_204,pppppppcVar29,pppppppcVar33,1);\n                    if (pppppppcVar30 != (code *******)0x0) goto LAB_00056168;\n                    if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                      (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                      uVar7 = 1;\n                    }\n                  }\n                  pppppppcVar33 = (code *******)((int)pppppppcVar33 + 1);\n                  goto LAB_00056744;\n                }\n                if (uVar7 != 0) {\n                  uVar7 = 0;\n                  pppppppcVar33 = (code *******)0x0;\n                  goto LAB_00056750;\n                }\n                if (((((uint)pppppppcVar3[7] & 0x8000000) == 0) &&\n                    (pppppppcVar3[6] != (code ******)0x0)) &&\n                   ((char)*(code *)(pppppppcVar29 + 0x16) < '\0')) {\n                  ppppppcVar32 = pppppppcVar29[2];\n                }\n                else {\n                  if (pppppppcVar29[0x13] == (code ******)0x0) goto LAB_000568f0;\n                  ppppppcVar32 = pppppppcVar29[2];\n                }\n                ppppppcVar35 = (code ******)\n                               (**(code **)(puVar41 + 0x23cf0))((int)ppppppcVar32 * 0xc);\n                pppppppcVar29[7] = ppppppcVar35;\n                if (ppppppcVar35 == (code ******)0x0) {\n                  pppppppcVar30 = (code *******)0xc;\n                  goto LAB_00056168;\n                }\n                if (ppppppcVar32 != (code ******)0x0) {\n                  iVar18 = 0;\n                  ppppppcVar32 = (code ******)0x0;\n                  do {\n                    puVar21 = (undefined1 *)((int)pppppppcVar29[7] + iVar18);\n                    *puVar21 = 0;\n                    puVar21[1] = 0;\n                    puVar21[2] = 0;\n                    puVar21[3] = 0;\n                    puVar21[4] = 0;\n                    puVar21[5] = 0;\n                    puVar21[6] = 0;\n                    puVar21[7] = 0;\n                    puVar21[8] = 0;\n                    puVar21[9] = 0;\n                    puVar21[10] = 0;\n                    puVar21[0xb] = 0;\n                    ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                    iVar18 = iVar18 + 0xc;\n                  } while (ppppppcVar32 < pppppppcVar29[2]);\n                  iVar18 = *(int *)(puVar41 + 0x23abc);\n                  if (pppppppcVar29[2] != (code ******)0x0) {\n                    iVar43 = 0;\n                    pppppppcStack_218 = (code *******)0x0;\n                    do {\n                      piVar5 = *(int **)((int)pppppppcVar29[6] + iVar43 + 8);\n                      if (0 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4)) {\n                        iVar37 = 0;\n                        do {\n                          pppppppcVar38 = pppppppcStack_218;\n                          iVar22 = (*(code *)(iVar18 + 0x6e30))\n                                             (pppppppcVar29[7] + *piVar5 * 3,pppppppcStack_218);\n                          pppppppcVar30 = (code *******)0xc;\n                          if (iVar22 == 0) goto LAB_00056168;\n                          iVar37 = iVar37 + 1;\n                          piVar5 = piVar5 + 1;\n                        } while (iVar37 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4));\n                      }\n                      pppppppcStack_218 = (code *******)((int)pppppppcStack_218 + 1);\n                      iVar43 = iVar43 + 0xc;\n                    } while (pppppppcStack_218 < pppppppcVar29[2]);\n                  }\n                }\nLAB_000568f0:\n                pppppppcStack_20c = (code *******)0x0;\n                if (((((uint)pppppppcVar34[0x16] & 0x20000000) != 0) && (uVar16 == 0)) &&\n                   (pppppppcVar3[5] == (code ******)0x0)) {\n                  if (pppppppcVar34[2] != (code ******)0x0) {\n                    pppppppcVar31 = (code *******)(*(int *)(puVar41 + 0x23754) + 0x6e4c);\n                    if (*(byte *)(*pppppppcVar34 + 1) < 0xd) {\n                    \n                    \n                      pppppppcVar29 =\n                           (code *******)\n                           (*(code *)(puVar41 +\n                                     (int)(pppppppcVar31[*(byte *)(*pppppppcVar34 + 1)] + 0xadc7)))\n                                     ();\n                      return pppppppcVar29;\n                    }\n                    (**(code **)(puVar41 + 0x23bc4))(0);\n                    if (uVar7 != 0) {\n                      pppppppcVar31 = (code *******)&DAT_00000007;\n                      ppppppcVar32 = (code ******)0x0;\n                      do {\n                        ppppppcVar35 = *pppppppcVar34 + (int)ppppppcVar32 * 2;\n                        if (*(char *)(ppppppcVar35 + 1) == '\x01') {\n                          if (*(char *)ppppppcVar35 < '\0') {\n                            ppppppcVar35[1] = (code *****)((uint)ppppppcVar35[1] & 0xfffffbff);\n                          }\n                        }\n                        else if (*(char *)(ppppppcVar35 + 1) == '\x05') {\n                          *(char *)(ppppppcVar35 + 1) = '\a';\n                        }\n                        ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                      } while (ppppppcVar32 < pppppppcVar34[2]);\n                    }\n                  }\n                  pppppppcVar34[0x17] = (code ******)0x1;\n                  if (0 < (int)pppppppcVar34[0x13]) {\n                    uVar7 = 1;\n                  }\n                  *(byte *)(pppppppcVar34 + 0x16) =\n                       (byte)*(code *)(pppppppcVar34 + 0x16) & 0x9f | (byte)((uVar7 & 1) << 6);\n                }\n                ppppppcVar32 = (code ******)pppppppcVar34[0xd][3][7];\n                pppppppcVar34[0x12] = ppppppcVar32;\n                pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppppcVar32 * 3);\n                pppppppcVar33 = (code *******)FUN_000483e8(&ppppppcStack_204,pppppppcVar38);\n                pppppppcVar29 = pppppppcVar33;\n                pppppppcStack_208 = pppppppcVar33;\n                if (pppppppcVar33 == (code *******)0x0) {\n                  if ((0 < (int)pppppppcVar34[0x13]) && (0 < iStack_200)) {\n                    iVar18 = *(int *)(puVar41 + 0x23abc);\n                    iVar43 = *(int *)(puVar41 + 0x23abc);\n                    pppppppcVar29 = (code *******)0x0;\n                    do {\n                      pppppppcVar31 =\n                           (code *******)(*pppppppcVar34 + piStack_1fc[(int)pppppppcVar29] * 2);\n                      if (*(code *)(pppppppcVar31 + 1) == (code)0x4) {\n                        iVar37 = 0;\n                        piVar5 = piStack_1fc;\n                        if (iStack_200 < 1) {\nLAB_00056b8c:\n                          if (iStack_200 != iVar37) {\n                            ppppcVar40 = *pppppppcVar34[5][piStack_1fc[(int)pppppppcVar29] * 3 + 2];\n                            iVar37 = (*(code *)(iVar18 + 0x5ea8))(&ppppppcStack_204,ppppcVar40);\n                            if (iVar37 == 0) {\n                              pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppcVar40 * 3)\n                              ;\n                              pppppppcVar29 =\n                                   (code *******)\n                                   (*(code *)(iVar43 + 0x7f1c))(&ppppppcStack_204,pppppppcVar38);\n                              if (pppppppcVar29 != (code *******)0x0) goto LAB_00056cb8;\n                            }\n                          }\n                        }\n                        else {\n                          do {\n                            ppppppcVar32 = *pppppppcVar34 + *piVar5 * 2;\n                            if ((*(char *)(ppppppcVar32 + 1) == '\t') &&\n                               ((code ******)*ppppppcVar32 == *pppppppcVar31)) goto LAB_00056b8c;\n                            iVar37 = iVar37 + 1;\n                            piVar5 = piVar5 + 1;\n                          } while (iStack_200 != iVar37);\n                        }\n                      }\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1);\n                    } while ((int)pppppppcVar29 < iStack_200);\n                  }\n                  pppppppcVar31 = &ppppppcStack_204;\n                  pppppppcVar38 = pppppppcVar34;\n                  ppppppcVar32 = (code ******)\n                                 FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,0);\n                  pppppppcVar34[9] = ppppppcVar32;\n                  pppppppcVar29 = pppppppcStack_208;\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    if (((uint)ppppppcVar32[0xd] & 0x1000000) == 0) {\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar34[10] = ppppppcVar32;\n                    }\n                    else {\n                      pppppppcVar31 = &ppppppcStack_204;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,1);\n                      pppppppcVar34[10] = ppppppcVar32;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,2);\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar38 = pppppppcVar34;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,6);\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar29 = pppppppcStack_208;\n                      if (((pppppppcVar34[10] == (code ******)0x0) ||\n                          (pppppppcVar34[0xb] == (code ******)0x0)) ||\n                         (ppppppcVar32 == (code ******)0x0)) goto LAB_00056cb8;\n                    }\n                    (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                    pppppppcVar29 = pppppppcVar33;\n                  }\n                }\nLAB_00056cb8:\n                pppppppcStack_20c = pppppppcVar29;\n                FUN_0004b234(pppppppcVar3);\n                FUN_0004b2bc(&pppppppcStack_1f8);\n                pppppppcVar29 = pppppppcStack_20c;\n                if (pppppppcStack_20c != (code *******)0x0) {\n                  if (*(int *)(puVar41 + 0x23c78) != 0) {\n                    (**(code **)(puVar41 + 0x23df0))(pppppppcVar34 + 0x22);\n                  }\n                  FUN_0004b338(pppppppcVar34);\n                  *pppppppcVar3 = (code ******)0x0;\n                  pppppppcVar3[1] = (code ******)0x0;\n                  pppppppcVar29 = pppppppcStack_20c;\n                }\n                goto LAB_00056cfc;\n              }\n            }\n          }\n        }\n      }\n      else {\n        pppppppcVar31 = (code *******)0x0;\n        if (pppppppcVar29 != (code *******)0x0) {\n          pppppppcVar33 = (code *******)FUN_000470f0(ppppppcVar32,0,0,2);\n          goto LAB_000564b0;\n        }\nLAB_000566f4:\n        pppppppcVar34[0xd] = (code ******)0x0;\n        pppppppcVar30 = pppppppcStack_20c;\n      }" if (parenthesized_expression "(pppppppcStack_20c == (code *******)0x0)" ( (binary_expression "pppppppcStack_20c == (code *******)0x0" identifier == (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\n        pppppppcVar31 = (code *******)0x0;\n        pppppppcVar38 = (code *******)0x0;\n        pppppppcVar33 = (code *******)FUN_000470f0(ppppppcVar32,0,0,2);\n        pppppppcVar30 = pppppppcVar33;\n        if (pppppppcVar29 != (code *******)0x0) {\nLAB_000564b0:\n          pppppppcVar31 = pppppppcVar33;\n          pppppppcVar30 = (code *******)FUN_000470f0(ppppppcVar32,pppppppcVar29,pppppppcVar33,0x10);\n          pppppppcVar38 = pppppppcVar29;\n        }\n        if ((pppppppcVar33 == (code *******)0x0) ||\n           (pcVar4 = *(code **)(puVar41 + 0x23cf0), pppppppcVar30 == (code *******)0x0)) {\n          pppppppcStack_20c = (code *******)0xc;\n          goto LAB_000566f4;\n        }\n        pppppppcVar34[0xd] = (code ******)pppppppcVar30;\n        pppppppcVar29 = (code *******)*pppppppcVar3;\n        ppppppcVar39 = pppppppcVar29[1];\n        iVar18 = (int)ppppppcVar39 << 2;\n        ppppppcVar32 = (code ******)(*pcVar4)(iVar18);\n        pppppppcVar29[3] = ppppppcVar32;\n        ppppppcVar35 = (code ******)(**(code **)(puVar41 + 0x23cf0))(iVar18);\n        pppppppcVar29[4] = ppppppcVar35;\n        iVar18 = (int)ppppppcVar39 * 0xc;\n        ppppppcVar39 = (code ******)(**(code **)(puVar41 + 0x23cf0))(iVar18);\n        pppppppcVar29[5] = ppppppcVar39;\n        ppppppcVar20 = (code ******)(**(code **)(puVar41 + 0x23cf0))(iVar18);\n        pppppppcVar29[6] = ppppppcVar20;\n        if (ppppppcVar32 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else if (ppppppcVar35 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else if (ppppppcVar39 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else if (ppppppcVar20 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else {\n          ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23cf0))((int)pppppppcVar3[6] << 2);\n          pppppppcVar29[0x21] = ppppppcVar32;\n          if (ppppppcVar32 != (code ******)0x0) {\n            ppppppcVar32 = (code ******)0x0;\n            if (pppppppcVar3[6] != (code ******)0x0) {\n              do {\n                pppppppcVar29[0x21][(int)ppppppcVar32] = (code *****)ppppppcVar32;\n                ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n              } while (ppppppcVar32 < pppppppcVar3[6]);\n            }\n            FUN_00046050(pppppppcVar29[0xd],*(int *)(puVar41 + 0x23abc) + 0x60e8,pppppppcVar29);\n            ppppppcVar32 = pppppppcVar3[6];\n            if (ppppppcVar32 == (code ******)0x0) {\nLAB_00056704:\n              (**(code **)(puVar41 + 0x23dc0))(pppppppcVar29[0x21]);\n              pppppppcVar29[0x21] = (code ******)0x0;\n            }\n            else {\n              ppppppcVar35 = pppppppcVar29[0x21];\n              if (*ppppppcVar35 == (code *****)0x0) {\n                ppppppcVar39 = (code ******)0x0;\n                do {\n                  ppppppcVar35 = ppppppcVar35 + 1;\n                  ppppppcVar39 = (code ******)((int)ppppppcVar39 + 1);\n                  if (ppppppcVar32 == ppppppcVar39) {\n                    if (ppppppcVar32 == ppppppcVar39) goto LAB_00056704;\n                    break;\n                  }\n                } while ((code ******)*ppppppcVar35 == ppppppcVar39);\n              }\n            }\n          }\n          pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23abc) + 0x73a4);\n          pppppppcVar30 = (code *******)FUN_00045fb4(pppppppcVar29[0xd],pppppppcVar38,pppppppcVar3);\n          pppppppcVar31 = pppppppcVar29;\n          if (pppppppcVar30 == (code *******)0x0) {\n            pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23b40) + -0x5be4);\n            pppppppcVar30 = (code *******)FUN_00045fb4(pppppppcVar29[0xd],pppppppcVar38);\n            if (pppppppcVar30 == (code *******)0x0) {\n              FUN_00046050(pppppppcVar29[0xd],*(int *)(puVar41 + 0x23abc) + 0x61b4);\n              pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23b40) + -0x4614);\n              pppppppcVar30 = (code *******)FUN_00046050(pppppppcVar29[0xd],pppppppcVar38);\n              if (pppppppcVar30 == (code *******)0x0) {\n                uVar7 = 0;\n                iVar18 = *(int *)(puVar41 + 0x23b40);\n                pppppppcVar33 = (code *******)0x0;\nLAB_00056744:\n                if ((code *******)pppppppcVar29[2] != pppppppcVar33) {\nLAB_00056750:\n                  if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                    pppppppcVar38 = pppppppcVar29;\n                    pppppppcVar31 = pppppppcVar33;\n                    pppppppcVar30 =\n                         (code *******)\n                         (*(code *)(iVar18 + -0x561c))\n                                   (&ppppppcStack_204,pppppppcVar29,pppppppcVar33,1);\n                    if (pppppppcVar30 != (code *******)0x0) goto LAB_00056168;\n                    if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                      (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                      uVar7 = 1;\n                    }\n                  }\n                  pppppppcVar33 = (code *******)((int)pppppppcVar33 + 1);\n                  goto LAB_00056744;\n                }\n                if (uVar7 != 0) {\n                  uVar7 = 0;\n                  pppppppcVar33 = (code *******)0x0;\n                  goto LAB_00056750;\n                }\n                if (((((uint)pppppppcVar3[7] & 0x8000000) == 0) &&\n                    (pppppppcVar3[6] != (code ******)0x0)) &&\n                   ((char)*(code *)(pppppppcVar29 + 0x16) < '\0')) {\n                  ppppppcVar32 = pppppppcVar29[2];\n                }\n                else {\n                  if (pppppppcVar29[0x13] == (code ******)0x0) goto LAB_000568f0;\n                  ppppppcVar32 = pppppppcVar29[2];\n                }\n                ppppppcVar35 = (code ******)\n                               (**(code **)(puVar41 + 0x23cf0))((int)ppppppcVar32 * 0xc);\n                pppppppcVar29[7] = ppppppcVar35;\n                if (ppppppcVar35 == (code ******)0x0) {\n                  pppppppcVar30 = (code *******)0xc;\n                  goto LAB_00056168;\n                }\n                if (ppppppcVar32 != (code ******)0x0) {\n                  iVar18 = 0;\n                  ppppppcVar32 = (code ******)0x0;\n                  do {\n                    puVar21 = (undefined1 *)((int)pppppppcVar29[7] + iVar18);\n                    *puVar21 = 0;\n                    puVar21[1] = 0;\n                    puVar21[2] = 0;\n                    puVar21[3] = 0;\n                    puVar21[4] = 0;\n                    puVar21[5] = 0;\n                    puVar21[6] = 0;\n                    puVar21[7] = 0;\n                    puVar21[8] = 0;\n                    puVar21[9] = 0;\n                    puVar21[10] = 0;\n                    puVar21[0xb] = 0;\n                    ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                    iVar18 = iVar18 + 0xc;\n                  } while (ppppppcVar32 < pppppppcVar29[2]);\n                  iVar18 = *(int *)(puVar41 + 0x23abc);\n                  if (pppppppcVar29[2] != (code ******)0x0) {\n                    iVar43 = 0;\n                    pppppppcStack_218 = (code *******)0x0;\n                    do {\n                      piVar5 = *(int **)((int)pppppppcVar29[6] + iVar43 + 8);\n                      if (0 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4)) {\n                        iVar37 = 0;\n                        do {\n                          pppppppcVar38 = pppppppcStack_218;\n                          iVar22 = (*(code *)(iVar18 + 0x6e30))\n                                             (pppppppcVar29[7] + *piVar5 * 3,pppppppcStack_218);\n                          pppppppcVar30 = (code *******)0xc;\n                          if (iVar22 == 0) goto LAB_00056168;\n                          iVar37 = iVar37 + 1;\n                          piVar5 = piVar5 + 1;\n                        } while (iVar37 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4));\n                      }\n                      pppppppcStack_218 = (code *******)((int)pppppppcStack_218 + 1);\n                      iVar43 = iVar43 + 0xc;\n                    } while (pppppppcStack_218 < pppppppcVar29[2]);\n                  }\n                }\nLAB_000568f0:\n                pppppppcStack_20c = (code *******)0x0;\n                if (((((uint)pppppppcVar34[0x16] & 0x20000000) != 0) && (uVar16 == 0)) &&\n                   (pppppppcVar3[5] == (code ******)0x0)) {\n                  if (pppppppcVar34[2] != (code ******)0x0) {\n                    pppppppcVar31 = (code *******)(*(int *)(puVar41 + 0x23754) + 0x6e4c);\n                    if (*(byte *)(*pppppppcVar34 + 1) < 0xd) {\n                    \n                    \n                      pppppppcVar29 =\n                           (code *******)\n                           (*(code *)(puVar41 +\n                                     (int)(pppppppcVar31[*(byte *)(*pppppppcVar34 + 1)] + 0xadc7)))\n                                     ();\n                      return pppppppcVar29;\n                    }\n                    (**(code **)(puVar41 + 0x23bc4))(0);\n                    if (uVar7 != 0) {\n                      pppppppcVar31 = (code *******)&DAT_00000007;\n                      ppppppcVar32 = (code ******)0x0;\n                      do {\n                        ppppppcVar35 = *pppppppcVar34 + (int)ppppppcVar32 * 2;\n                        if (*(char *)(ppppppcVar35 + 1) == '\x01') {\n                          if (*(char *)ppppppcVar35 < '\0') {\n                            ppppppcVar35[1] = (code *****)((uint)ppppppcVar35[1] & 0xfffffbff);\n                          }\n                        }\n                        else if (*(char *)(ppppppcVar35 + 1) == '\x05') {\n                          *(char *)(ppppppcVar35 + 1) = '\a';\n                        }\n                        ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                      } while (ppppppcVar32 < pppppppcVar34[2]);\n                    }\n                  }\n                  pppppppcVar34[0x17] = (code ******)0x1;\n                  if (0 < (int)pppppppcVar34[0x13]) {\n                    uVar7 = 1;\n                  }\n                  *(byte *)(pppppppcVar34 + 0x16) =\n                       (byte)*(code *)(pppppppcVar34 + 0x16) & 0x9f | (byte)((uVar7 & 1) << 6);\n                }\n                ppppppcVar32 = (code ******)pppppppcVar34[0xd][3][7];\n                pppppppcVar34[0x12] = ppppppcVar32;\n                pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppppcVar32 * 3);\n                pppppppcVar33 = (code *******)FUN_000483e8(&ppppppcStack_204,pppppppcVar38);\n                pppppppcVar29 = pppppppcVar33;\n                pppppppcStack_208 = pppppppcVar33;\n                if (pppppppcVar33 == (code *******)0x0) {\n                  if ((0 < (int)pppppppcVar34[0x13]) && (0 < iStack_200)) {\n                    iVar18 = *(int *)(puVar41 + 0x23abc);\n                    iVar43 = *(int *)(puVar41 + 0x23abc);\n                    pppppppcVar29 = (code *******)0x0;\n                    do {\n                      pppppppcVar31 =\n                           (code *******)(*pppppppcVar34 + piStack_1fc[(int)pppppppcVar29] * 2);\n                      if (*(code *)(pppppppcVar31 + 1) == (code)0x4) {\n                        iVar37 = 0;\n                        piVar5 = piStack_1fc;\n                        if (iStack_200 < 1) {\nLAB_00056b8c:\n                          if (iStack_200 != iVar37) {\n                            ppppcVar40 = *pppppppcVar34[5][piStack_1fc[(int)pppppppcVar29] * 3 + 2];\n                            iVar37 = (*(code *)(iVar18 + 0x5ea8))(&ppppppcStack_204,ppppcVar40);\n                            if (iVar37 == 0) {\n                              pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppcVar40 * 3)\n                              ;\n                              pppppppcVar29 =\n                                   (code *******)\n                                   (*(code *)(iVar43 + 0x7f1c))(&ppppppcStack_204,pppppppcVar38);\n                              if (pppppppcVar29 != (code *******)0x0) goto LAB_00056cb8;\n                            }\n                          }\n                        }\n                        else {\n                          do {\n                            ppppppcVar32 = *pppppppcVar34 + *piVar5 * 2;\n                            if ((*(char *)(ppppppcVar32 + 1) == '\t') &&\n                               ((code ******)*ppppppcVar32 == *pppppppcVar31)) goto LAB_00056b8c;\n                            iVar37 = iVar37 + 1;\n                            piVar5 = piVar5 + 1;\n                          } while (iStack_200 != iVar37);\n                        }\n                      }\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1);\n                    } while ((int)pppppppcVar29 < iStack_200);\n                  }\n                  pppppppcVar31 = &ppppppcStack_204;\n                  pppppppcVar38 = pppppppcVar34;\n                  ppppppcVar32 = (code ******)\n                                 FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,0);\n                  pppppppcVar34[9] = ppppppcVar32;\n                  pppppppcVar29 = pppppppcStack_208;\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    if (((uint)ppppppcVar32[0xd] & 0x1000000) == 0) {\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar34[10] = ppppppcVar32;\n                    }\n                    else {\n                      pppppppcVar31 = &ppppppcStack_204;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,1);\n                      pppppppcVar34[10] = ppppppcVar32;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,2);\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar38 = pppppppcVar34;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,6);\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar29 = pppppppcStack_208;\n                      if (((pppppppcVar34[10] == (code ******)0x0) ||\n                          (pppppppcVar34[0xb] == (code ******)0x0)) ||\n                         (ppppppcVar32 == (code ******)0x0)) goto LAB_00056cb8;\n                    }\n                    (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                    pppppppcVar29 = pppppppcVar33;\n                  }\n                }\nLAB_00056cb8:\n                pppppppcStack_20c = pppppppcVar29;\n                FUN_0004b234(pppppppcVar3);\n                FUN_0004b2bc(&pppppppcStack_1f8);\n                pppppppcVar29 = pppppppcStack_20c;\n                if (pppppppcStack_20c != (code *******)0x0) {\n                  if (*(int *)(puVar41 + 0x23c78) != 0) {\n                    (**(code **)(puVar41 + 0x23df0))(pppppppcVar34 + 0x22);\n                  }\n                  FUN_0004b338(pppppppcVar34);\n                  *pppppppcVar3 = (code ******)0x0;\n                  pppppppcVar3[1] = (code ******)0x0;\n                  pppppppcVar29 = pppppppcStack_20c;\n                }\n                goto LAB_00056cfc;\n              }\n            }\n          }\n        }\n      }" { (expression_statement "pppppppcVar31 = (code *******)0x0;" (assignment_expression "pppppppcVar31 = (code *******)0x0" identifier = (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "pppppppcVar38 = (code *******)0x0;" (assignment_expression "pppppppcVar38 = (code *******)0x0" identifier = (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "pppppppcVar33 = (code *******)FUN_000470f0(ppppppcVar32,0,0,2);" (assignment_expression "pppppppcVar33 = (code *******)FUN_000470f0(ppppppcVar32,0,0,2)" identifier = (cast_expression "(code *******)FUN_000470f0(ppppppcVar32,0,0,2)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "FUN_000470f0(ppppppcVar32,0,0,2)" identifier (argument_list "(ppppppcVar32,0,0,2)" ( identifier , number_literal , number_literal , number_literal ))))) ;) (expression_statement "pppppppcVar30 = pppppppcVar33;" (assignment_expression "pppppppcVar30 = pppppppcVar33" identifier = identifier) ;) (if_statement "if (pppppppcVar29 != (code *******)0x0) {\nLAB_000564b0:\n          pppppppcVar31 = pppppppcVar33;\n          pppppppcVar30 = (code *******)FUN_000470f0(ppppppcVar32,pppppppcVar29,pppppppcVar33,0x10);\n          pppppppcVar38 = pppppppcVar29;\n        }" if (parenthesized_expression "(pppppppcVar29 != (code *******)0x0)" ( (binary_expression "pppppppcVar29 != (code *******)0x0" identifier != (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\nLAB_000564b0:\n          pppppppcVar31 = pppppppcVar33;\n          pppppppcVar30 = (code *******)FUN_000470f0(ppppppcVar32,pppppppcVar29,pppppppcVar33,0x10);\n          pppppppcVar38 = pppppppcVar29;\n        }" { (labeled_statement "LAB_000564b0:\n          pppppppcVar31 = pppppppcVar33;" statement_identifier : (expression_statement "pppppppcVar31 = pppppppcVar33;" (assignment_expression "pppppppcVar31 = pppppppcVar33" identifier = identifier) ;)) (expression_statement "pppppppcVar30 = (code *******)FUN_000470f0(ppppppcVar32,pppppppcVar29,pppppppcVar33,0x10);" (assignment_expression "pppppppcVar30 = (code *******)FUN_000470f0(ppppppcVar32,pppppppcVar29,pppppppcVar33,0x10)" identifier = (cast_expression "(code *******)FUN_000470f0(ppppppcVar32,pppppppcVar29,pppppppcVar33,0x10)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "FUN_000470f0(ppppppcVar32,pppppppcVar29,pppppppcVar33,0x10)" identifier (argument_list "(ppppppcVar32,pppppppcVar29,pppppppcVar33,0x10)" ( identifier , identifier , identifier , number_literal ))))) ;) (expression_statement "pppppppcVar38 = pppppppcVar29;" (assignment_expression "pppppppcVar38 = pppppppcVar29" identifier = identifier) ;) })) (if_statement "if ((pppppppcVar33 == (code *******)0x0) ||\n           (pcVar4 = *(code **)(puVar41 + 0x23cf0), pppppppcVar30 == (code *******)0x0)) {\n          pppppppcStack_20c = (code *******)0xc;\n          goto LAB_000566f4;\n        }" if (parenthesized_expression "((pppppppcVar33 == (code *******)0x0) ||\n           (pcVar4 = *(code **)(puVar41 + 0x23cf0), pppppppcVar30 == (code *******)0x0))" ( (binary_expression "(pppppppcVar33 == (code *******)0x0) ||\n           (pcVar4 = *(code **)(puVar41 + 0x23cf0), pppppppcVar30 == (code *******)0x0)" (parenthesized_expression "(pppppppcVar33 == (code *******)0x0)" ( (binary_expression "pppppppcVar33 == (code *******)0x0" identifier == (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) || (parenthesized_expression "(pcVar4 = *(code **)(puVar41 + 0x23cf0), pppppppcVar30 == (code *******)0x0)" ( (comma_expression "pcVar4 = *(code **)(puVar41 + 0x23cf0), pppppppcVar30 == (code *******)0x0" (assignment_expression "pcVar4 = *(code **)(puVar41 + 0x23cf0)" identifier = (pointer_expression "*(code **)(puVar41 + 0x23cf0)" * (cast_expression "(code **)(puVar41 + 0x23cf0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar41 + 0x23cf0)" ( (binary_expression "puVar41 + 0x23cf0" identifier + number_literal) ))))) , (binary_expression "pppppppcVar30 == (code *******)0x0" identifier == (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal))) ))) )) (compound_statement "{\n          pppppppcStack_20c = (code *******)0xc;\n          goto LAB_000566f4;\n        }" { (expression_statement "pppppppcStack_20c = (code *******)0xc;" (assignment_expression "pppppppcStack_20c = (code *******)0xc" identifier = (cast_expression "(code *******)0xc" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (goto_statement "goto LAB_000566f4;" goto statement_identifier ;) })) (expression_statement "pppppppcVar34[0xd] = (code ******)pppppppcVar30;" (assignment_expression "pppppppcVar34[0xd] = (code ******)pppppppcVar30" (subscript_expression "pppppppcVar34[0xd]" identifier [ number_literal ]) = (cast_expression "(code ******)pppppppcVar30" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) identifier)) ;) (expression_statement "pppppppcVar29 = (code *******)*pppppppcVar3;" (assignment_expression "pppppppcVar29 = (code *******)*pppppppcVar3" identifier = (cast_expression "(code *******)*pppppppcVar3" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "*pppppppcVar3" * identifier))) ;) (expression_statement "ppppppcVar39 = pppppppcVar29[1];" (assignment_expression "ppppppcVar39 = pppppppcVar29[1]" identifier = (subscript_expression "pppppppcVar29[1]" identifier [ number_literal ])) ;) (expression_statement "iVar18 = (int)ppppppcVar39 << 2;" (assignment_expression "iVar18 = (int)ppppppcVar39 << 2" identifier = (binary_expression "(int)ppppppcVar39 << 2" (cast_expression "(int)ppppppcVar39" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal)) ;) (expression_statement "ppppppcVar32 = (code ******)(*pcVar4)(iVar18);" (assignment_expression "ppppppcVar32 = (code ******)(*pcVar4)(iVar18)" identifier = (cast_expression "(code ******)(*pcVar4)(iVar18)" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (call_expression "(*pcVar4)(iVar18)" (parenthesized_expression "(*pcVar4)" ( (pointer_expression "*pcVar4" * identifier) )) (argument_list "(iVar18)" ( identifier ))))) ;) (expression_statement "pppppppcVar29[3] = ppppppcVar32;" (assignment_expression "pppppppcVar29[3] = ppppppcVar32" (subscript_expression "pppppppcVar29[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "ppppppcVar35 = (code ******)(**(code **)(puVar41 + 0x23cf0))(iVar18);" (assignment_expression "ppppppcVar35 = (code ******)(**(code **)(puVar41 + 0x23cf0))(iVar18)" identifier = (cast_expression "(code ******)(**(code **)(puVar41 + 0x23cf0))(iVar18)" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (call_expression "(**(code **)(puVar41 + 0x23cf0))(iVar18)" (parenthesized_expression "(**(code **)(puVar41 + 0x23cf0))" ( (pointer_expression "**(code **)(puVar41 + 0x23cf0)" * (pointer_expression "*(code **)(puVar41 + 0x23cf0)" * (cast_expression "(code **)(puVar41 + 0x23cf0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar41 + 0x23cf0)" ( (binary_expression "puVar41 + 0x23cf0" identifier + number_literal) ))))) )) (argument_list "(iVar18)" ( identifier ))))) ;) (expression_statement "pppppppcVar29[4] = ppppppcVar35;" (assignment_expression "pppppppcVar29[4] = ppppppcVar35" (subscript_expression "pppppppcVar29[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar18 = (int)ppppppcVar39 * 0xc;" (assignment_expression "iVar18 = (int)ppppppcVar39 * 0xc" identifier = (binary_expression "(int)ppppppcVar39 * 0xc" (cast_expression "(int)ppppppcVar39" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ;) (expression_statement "ppppppcVar39 = (code ******)(**(code **)(puVar41 + 0x23cf0))(iVar18);" (assignment_expression "ppppppcVar39 = (code ******)(**(code **)(puVar41 + 0x23cf0))(iVar18)" identifier = (cast_expression "(code ******)(**(code **)(puVar41 + 0x23cf0))(iVar18)" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (call_expression "(**(code **)(puVar41 + 0x23cf0))(iVar18)" (parenthesized_expression "(**(code **)(puVar41 + 0x23cf0))" ( (pointer_expression "**(code **)(puVar41 + 0x23cf0)" * (pointer_expression "*(code **)(puVar41 + 0x23cf0)" * (cast_expression "(code **)(puVar41 + 0x23cf0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar41 + 0x23cf0)" ( (binary_expression "puVar41 + 0x23cf0" identifier + number_literal) ))))) )) (argument_list "(iVar18)" ( identifier ))))) ;) (expression_statement "pppppppcVar29[5] = ppppppcVar39;" (assignment_expression "pppppppcVar29[5] = ppppppcVar39" (subscript_expression "pppppppcVar29[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "ppppppcVar20 = (code ******)(**(code **)(puVar41 + 0x23cf0))(iVar18);" (assignment_expression "ppppppcVar20 = (code ******)(**(code **)(puVar41 + 0x23cf0))(iVar18)" identifier = (cast_expression "(code ******)(**(code **)(puVar41 + 0x23cf0))(iVar18)" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (call_expression "(**(code **)(puVar41 + 0x23cf0))(iVar18)" (parenthesized_expression "(**(code **)(puVar41 + 0x23cf0))" ( (pointer_expression "**(code **)(puVar41 + 0x23cf0)" * (pointer_expression "*(code **)(puVar41 + 0x23cf0)" * (cast_expression "(code **)(puVar41 + 0x23cf0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar41 + 0x23cf0)" ( (binary_expression "puVar41 + 0x23cf0" identifier + number_literal) ))))) )) (argument_list "(iVar18)" ( identifier ))))) ;) (expression_statement "pppppppcVar29[6] = ppppppcVar20;" (assignment_expression "pppppppcVar29[6] = ppppppcVar20" (subscript_expression "pppppppcVar29[6]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (ppppppcVar32 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else if (ppppppcVar35 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else if (ppppppcVar39 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else if (ppppppcVar20 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else {\n          ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23cf0))((int)pppppppcVar3[6] << 2);\n          pppppppcVar29[0x21] = ppppppcVar32;\n          if (ppppppcVar32 != (code ******)0x0) {\n            ppppppcVar32 = (code ******)0x0;\n            if (pppppppcVar3[6] != (code ******)0x0) {\n              do {\n                pppppppcVar29[0x21][(int)ppppppcVar32] = (code *****)ppppppcVar32;\n                ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n              } while (ppppppcVar32 < pppppppcVar3[6]);\n            }\n            FUN_00046050(pppppppcVar29[0xd],*(int *)(puVar41 + 0x23abc) + 0x60e8,pppppppcVar29);\n            ppppppcVar32 = pppppppcVar3[6];\n            if (ppppppcVar32 == (code ******)0x0) {\nLAB_00056704:\n              (**(code **)(puVar41 + 0x23dc0))(pppppppcVar29[0x21]);\n              pppppppcVar29[0x21] = (code ******)0x0;\n            }\n            else {\n              ppppppcVar35 = pppppppcVar29[0x21];\n              if (*ppppppcVar35 == (code *****)0x0) {\n                ppppppcVar39 = (code ******)0x0;\n                do {\n                  ppppppcVar35 = ppppppcVar35 + 1;\n                  ppppppcVar39 = (code ******)((int)ppppppcVar39 + 1);\n                  if (ppppppcVar32 == ppppppcVar39) {\n                    if (ppppppcVar32 == ppppppcVar39) goto LAB_00056704;\n                    break;\n                  }\n                } while ((code ******)*ppppppcVar35 == ppppppcVar39);\n              }\n            }\n          }\n          pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23abc) + 0x73a4);\n          pppppppcVar30 = (code *******)FUN_00045fb4(pppppppcVar29[0xd],pppppppcVar38,pppppppcVar3);\n          pppppppcVar31 = pppppppcVar29;\n          if (pppppppcVar30 == (code *******)0x0) {\n            pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23b40) + -0x5be4);\n            pppppppcVar30 = (code *******)FUN_00045fb4(pppppppcVar29[0xd],pppppppcVar38);\n            if (pppppppcVar30 == (code *******)0x0) {\n              FUN_00046050(pppppppcVar29[0xd],*(int *)(puVar41 + 0x23abc) + 0x61b4);\n              pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23b40) + -0x4614);\n              pppppppcVar30 = (code *******)FUN_00046050(pppppppcVar29[0xd],pppppppcVar38);\n              if (pppppppcVar30 == (code *******)0x0) {\n                uVar7 = 0;\n                iVar18 = *(int *)(puVar41 + 0x23b40);\n                pppppppcVar33 = (code *******)0x0;\nLAB_00056744:\n                if ((code *******)pppppppcVar29[2] != pppppppcVar33) {\nLAB_00056750:\n                  if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                    pppppppcVar38 = pppppppcVar29;\n                    pppppppcVar31 = pppppppcVar33;\n                    pppppppcVar30 =\n                         (code *******)\n                         (*(code *)(iVar18 + -0x561c))\n                                   (&ppppppcStack_204,pppppppcVar29,pppppppcVar33,1);\n                    if (pppppppcVar30 != (code *******)0x0) goto LAB_00056168;\n                    if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                      (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                      uVar7 = 1;\n                    }\n                  }\n                  pppppppcVar33 = (code *******)((int)pppppppcVar33 + 1);\n                  goto LAB_00056744;\n                }\n                if (uVar7 != 0) {\n                  uVar7 = 0;\n                  pppppppcVar33 = (code *******)0x0;\n                  goto LAB_00056750;\n                }\n                if (((((uint)pppppppcVar3[7] & 0x8000000) == 0) &&\n                    (pppppppcVar3[6] != (code ******)0x0)) &&\n                   ((char)*(code *)(pppppppcVar29 + 0x16) < '\0')) {\n                  ppppppcVar32 = pppppppcVar29[2];\n                }\n                else {\n                  if (pppppppcVar29[0x13] == (code ******)0x0) goto LAB_000568f0;\n                  ppppppcVar32 = pppppppcVar29[2];\n                }\n                ppppppcVar35 = (code ******)\n                               (**(code **)(puVar41 + 0x23cf0))((int)ppppppcVar32 * 0xc);\n                pppppppcVar29[7] = ppppppcVar35;\n                if (ppppppcVar35 == (code ******)0x0) {\n                  pppppppcVar30 = (code *******)0xc;\n                  goto LAB_00056168;\n                }\n                if (ppppppcVar32 != (code ******)0x0) {\n                  iVar18 = 0;\n                  ppppppcVar32 = (code ******)0x0;\n                  do {\n                    puVar21 = (undefined1 *)((int)pppppppcVar29[7] + iVar18);\n                    *puVar21 = 0;\n                    puVar21[1] = 0;\n                    puVar21[2] = 0;\n                    puVar21[3] = 0;\n                    puVar21[4] = 0;\n                    puVar21[5] = 0;\n                    puVar21[6] = 0;\n                    puVar21[7] = 0;\n                    puVar21[8] = 0;\n                    puVar21[9] = 0;\n                    puVar21[10] = 0;\n                    puVar21[0xb] = 0;\n                    ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                    iVar18 = iVar18 + 0xc;\n                  } while (ppppppcVar32 < pppppppcVar29[2]);\n                  iVar18 = *(int *)(puVar41 + 0x23abc);\n                  if (pppppppcVar29[2] != (code ******)0x0) {\n                    iVar43 = 0;\n                    pppppppcStack_218 = (code *******)0x0;\n                    do {\n                      piVar5 = *(int **)((int)pppppppcVar29[6] + iVar43 + 8);\n                      if (0 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4)) {\n                        iVar37 = 0;\n                        do {\n                          pppppppcVar38 = pppppppcStack_218;\n                          iVar22 = (*(code *)(iVar18 + 0x6e30))\n                                             (pppppppcVar29[7] + *piVar5 * 3,pppppppcStack_218);\n                          pppppppcVar30 = (code *******)0xc;\n                          if (iVar22 == 0) goto LAB_00056168;\n                          iVar37 = iVar37 + 1;\n                          piVar5 = piVar5 + 1;\n                        } while (iVar37 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4));\n                      }\n                      pppppppcStack_218 = (code *******)((int)pppppppcStack_218 + 1);\n                      iVar43 = iVar43 + 0xc;\n                    } while (pppppppcStack_218 < pppppppcVar29[2]);\n                  }\n                }\nLAB_000568f0:\n                pppppppcStack_20c = (code *******)0x0;\n                if (((((uint)pppppppcVar34[0x16] & 0x20000000) != 0) && (uVar16 == 0)) &&\n                   (pppppppcVar3[5] == (code ******)0x0)) {\n                  if (pppppppcVar34[2] != (code ******)0x0) {\n                    pppppppcVar31 = (code *******)(*(int *)(puVar41 + 0x23754) + 0x6e4c);\n                    if (*(byte *)(*pppppppcVar34 + 1) < 0xd) {\n                    \n                    \n                      pppppppcVar29 =\n                           (code *******)\n                           (*(code *)(puVar41 +\n                                     (int)(pppppppcVar31[*(byte *)(*pppppppcVar34 + 1)] + 0xadc7)))\n                                     ();\n                      return pppppppcVar29;\n                    }\n                    (**(code **)(puVar41 + 0x23bc4))(0);\n                    if (uVar7 != 0) {\n                      pppppppcVar31 = (code *******)&DAT_00000007;\n                      ppppppcVar32 = (code ******)0x0;\n                      do {\n                        ppppppcVar35 = *pppppppcVar34 + (int)ppppppcVar32 * 2;\n                        if (*(char *)(ppppppcVar35 + 1) == '\x01') {\n                          if (*(char *)ppppppcVar35 < '\0') {\n                            ppppppcVar35[1] = (code *****)((uint)ppppppcVar35[1] & 0xfffffbff);\n                          }\n                        }\n                        else if (*(char *)(ppppppcVar35 + 1) == '\x05') {\n                          *(char *)(ppppppcVar35 + 1) = '\a';\n                        }\n                        ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                      } while (ppppppcVar32 < pppppppcVar34[2]);\n                    }\n                  }\n                  pppppppcVar34[0x17] = (code ******)0x1;\n                  if (0 < (int)pppppppcVar34[0x13]) {\n                    uVar7 = 1;\n                  }\n                  *(byte *)(pppppppcVar34 + 0x16) =\n                       (byte)*(code *)(pppppppcVar34 + 0x16) & 0x9f | (byte)((uVar7 & 1) << 6);\n                }\n                ppppppcVar32 = (code ******)pppppppcVar34[0xd][3][7];\n                pppppppcVar34[0x12] = ppppppcVar32;\n                pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppppcVar32 * 3);\n                pppppppcVar33 = (code *******)FUN_000483e8(&ppppppcStack_204,pppppppcVar38);\n                pppppppcVar29 = pppppppcVar33;\n                pppppppcStack_208 = pppppppcVar33;\n                if (pppppppcVar33 == (code *******)0x0) {\n                  if ((0 < (int)pppppppcVar34[0x13]) && (0 < iStack_200)) {\n                    iVar18 = *(int *)(puVar41 + 0x23abc);\n                    iVar43 = *(int *)(puVar41 + 0x23abc);\n                    pppppppcVar29 = (code *******)0x0;\n                    do {\n                      pppppppcVar31 =\n                           (code *******)(*pppppppcVar34 + piStack_1fc[(int)pppppppcVar29] * 2);\n                      if (*(code *)(pppppppcVar31 + 1) == (code)0x4) {\n                        iVar37 = 0;\n                        piVar5 = piStack_1fc;\n                        if (iStack_200 < 1) {\nLAB_00056b8c:\n                          if (iStack_200 != iVar37) {\n                            ppppcVar40 = *pppppppcVar34[5][piStack_1fc[(int)pppppppcVar29] * 3 + 2];\n                            iVar37 = (*(code *)(iVar18 + 0x5ea8))(&ppppppcStack_204,ppppcVar40);\n                            if (iVar37 == 0) {\n                              pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppcVar40 * 3)\n                              ;\n                              pppppppcVar29 =\n                                   (code *******)\n                                   (*(code *)(iVar43 + 0x7f1c))(&ppppppcStack_204,pppppppcVar38);\n                              if (pppppppcVar29 != (code *******)0x0) goto LAB_00056cb8;\n                            }\n                          }\n                        }\n                        else {\n                          do {\n                            ppppppcVar32 = *pppppppcVar34 + *piVar5 * 2;\n                            if ((*(char *)(ppppppcVar32 + 1) == '\t') &&\n                               ((code ******)*ppppppcVar32 == *pppppppcVar31)) goto LAB_00056b8c;\n                            iVar37 = iVar37 + 1;\n                            piVar5 = piVar5 + 1;\n                          } while (iStack_200 != iVar37);\n                        }\n                      }\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1);\n                    } while ((int)pppppppcVar29 < iStack_200);\n                  }\n                  pppppppcVar31 = &ppppppcStack_204;\n                  pppppppcVar38 = pppppppcVar34;\n                  ppppppcVar32 = (code ******)\n                                 FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,0);\n                  pppppppcVar34[9] = ppppppcVar32;\n                  pppppppcVar29 = pppppppcStack_208;\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    if (((uint)ppppppcVar32[0xd] & 0x1000000) == 0) {\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar34[10] = ppppppcVar32;\n                    }\n                    else {\n                      pppppppcVar31 = &ppppppcStack_204;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,1);\n                      pppppppcVar34[10] = ppppppcVar32;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,2);\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar38 = pppppppcVar34;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,6);\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar29 = pppppppcStack_208;\n                      if (((pppppppcVar34[10] == (code ******)0x0) ||\n                          (pppppppcVar34[0xb] == (code ******)0x0)) ||\n                         (ppppppcVar32 == (code ******)0x0)) goto LAB_00056cb8;\n                    }\n                    (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                    pppppppcVar29 = pppppppcVar33;\n                  }\n                }\nLAB_00056cb8:\n                pppppppcStack_20c = pppppppcVar29;\n                FUN_0004b234(pppppppcVar3);\n                FUN_0004b2bc(&pppppppcStack_1f8);\n                pppppppcVar29 = pppppppcStack_20c;\n                if (pppppppcStack_20c != (code *******)0x0) {\n                  if (*(int *)(puVar41 + 0x23c78) != 0) {\n                    (**(code **)(puVar41 + 0x23df0))(pppppppcVar34 + 0x22);\n                  }\n                  FUN_0004b338(pppppppcVar34);\n                  *pppppppcVar3 = (code ******)0x0;\n                  pppppppcVar3[1] = (code ******)0x0;\n                  pppppppcVar29 = pppppppcStack_20c;\n                }\n                goto LAB_00056cfc;\n              }\n            }\n          }\n        }" if (parenthesized_expression "(ppppppcVar32 == (code ******)0x0)" ( (binary_expression "ppppppcVar32 == (code ******)0x0" identifier == (cast_expression "(code ******)0x0" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (compound_statement "{\n          pppppppcVar30 = (code *******)0xc;\n        }" { (expression_statement "pppppppcVar30 = (code *******)0xc;" (assignment_expression "pppppppcVar30 = (code *******)0xc" identifier = (cast_expression "(code *******)0xc" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) }) (else_clause "else if (ppppppcVar35 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else if (ppppppcVar39 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else if (ppppppcVar20 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else {\n          ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23cf0))((int)pppppppcVar3[6] << 2);\n          pppppppcVar29[0x21] = ppppppcVar32;\n          if (ppppppcVar32 != (code ******)0x0) {\n            ppppppcVar32 = (code ******)0x0;\n            if (pppppppcVar3[6] != (code ******)0x0) {\n              do {\n                pppppppcVar29[0x21][(int)ppppppcVar32] = (code *****)ppppppcVar32;\n                ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n              } while (ppppppcVar32 < pppppppcVar3[6]);\n            }\n            FUN_00046050(pppppppcVar29[0xd],*(int *)(puVar41 + 0x23abc) + 0x60e8,pppppppcVar29);\n            ppppppcVar32 = pppppppcVar3[6];\n            if (ppppppcVar32 == (code ******)0x0) {\nLAB_00056704:\n              (**(code **)(puVar41 + 0x23dc0))(pppppppcVar29[0x21]);\n              pppppppcVar29[0x21] = (code ******)0x0;\n            }\n            else {\n              ppppppcVar35 = pppppppcVar29[0x21];\n              if (*ppppppcVar35 == (code *****)0x0) {\n                ppppppcVar39 = (code ******)0x0;\n                do {\n                  ppppppcVar35 = ppppppcVar35 + 1;\n                  ppppppcVar39 = (code ******)((int)ppppppcVar39 + 1);\n                  if (ppppppcVar32 == ppppppcVar39) {\n                    if (ppppppcVar32 == ppppppcVar39) goto LAB_00056704;\n                    break;\n                  }\n                } while ((code ******)*ppppppcVar35 == ppppppcVar39);\n              }\n            }\n          }\n          pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23abc) + 0x73a4);\n          pppppppcVar30 = (code *******)FUN_00045fb4(pppppppcVar29[0xd],pppppppcVar38,pppppppcVar3);\n          pppppppcVar31 = pppppppcVar29;\n          if (pppppppcVar30 == (code *******)0x0) {\n            pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23b40) + -0x5be4);\n            pppppppcVar30 = (code *******)FUN_00045fb4(pppppppcVar29[0xd],pppppppcVar38);\n            if (pppppppcVar30 == (code *******)0x0) {\n              FUN_00046050(pppppppcVar29[0xd],*(int *)(puVar41 + 0x23abc) + 0x61b4);\n              pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23b40) + -0x4614);\n              pppppppcVar30 = (code *******)FUN_00046050(pppppppcVar29[0xd],pppppppcVar38);\n              if (pppppppcVar30 == (code *******)0x0) {\n                uVar7 = 0;\n                iVar18 = *(int *)(puVar41 + 0x23b40);\n                pppppppcVar33 = (code *******)0x0;\nLAB_00056744:\n                if ((code *******)pppppppcVar29[2] != pppppppcVar33) {\nLAB_00056750:\n                  if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                    pppppppcVar38 = pppppppcVar29;\n                    pppppppcVar31 = pppppppcVar33;\n                    pppppppcVar30 =\n                         (code *******)\n                         (*(code *)(iVar18 + -0x561c))\n                                   (&ppppppcStack_204,pppppppcVar29,pppppppcVar33,1);\n                    if (pppppppcVar30 != (code *******)0x0) goto LAB_00056168;\n                    if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                      (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                      uVar7 = 1;\n                    }\n                  }\n                  pppppppcVar33 = (code *******)((int)pppppppcVar33 + 1);\n                  goto LAB_00056744;\n                }\n                if (uVar7 != 0) {\n                  uVar7 = 0;\n                  pppppppcVar33 = (code *******)0x0;\n                  goto LAB_00056750;\n                }\n                if (((((uint)pppppppcVar3[7] & 0x8000000) == 0) &&\n                    (pppppppcVar3[6] != (code ******)0x0)) &&\n                   ((char)*(code *)(pppppppcVar29 + 0x16) < '\0')) {\n                  ppppppcVar32 = pppppppcVar29[2];\n                }\n                else {\n                  if (pppppppcVar29[0x13] == (code ******)0x0) goto LAB_000568f0;\n                  ppppppcVar32 = pppppppcVar29[2];\n                }\n                ppppppcVar35 = (code ******)\n                               (**(code **)(puVar41 + 0x23cf0))((int)ppppppcVar32 * 0xc);\n                pppppppcVar29[7] = ppppppcVar35;\n                if (ppppppcVar35 == (code ******)0x0) {\n                  pppppppcVar30 = (code *******)0xc;\n                  goto LAB_00056168;\n                }\n                if (ppppppcVar32 != (code ******)0x0) {\n                  iVar18 = 0;\n                  ppppppcVar32 = (code ******)0x0;\n                  do {\n                    puVar21 = (undefined1 *)((int)pppppppcVar29[7] + iVar18);\n                    *puVar21 = 0;\n                    puVar21[1] = 0;\n                    puVar21[2] = 0;\n                    puVar21[3] = 0;\n                    puVar21[4] = 0;\n                    puVar21[5] = 0;\n                    puVar21[6] = 0;\n                    puVar21[7] = 0;\n                    puVar21[8] = 0;\n                    puVar21[9] = 0;\n                    puVar21[10] = 0;\n                    puVar21[0xb] = 0;\n                    ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                    iVar18 = iVar18 + 0xc;\n                  } while (ppppppcVar32 < pppppppcVar29[2]);\n                  iVar18 = *(int *)(puVar41 + 0x23abc);\n                  if (pppppppcVar29[2] != (code ******)0x0) {\n                    iVar43 = 0;\n                    pppppppcStack_218 = (code *******)0x0;\n                    do {\n                      piVar5 = *(int **)((int)pppppppcVar29[6] + iVar43 + 8);\n                      if (0 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4)) {\n                        iVar37 = 0;\n                        do {\n                          pppppppcVar38 = pppppppcStack_218;\n                          iVar22 = (*(code *)(iVar18 + 0x6e30))\n                                             (pppppppcVar29[7] + *piVar5 * 3,pppppppcStack_218);\n                          pppppppcVar30 = (code *******)0xc;\n                          if (iVar22 == 0) goto LAB_00056168;\n                          iVar37 = iVar37 + 1;\n                          piVar5 = piVar5 + 1;\n                        } while (iVar37 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4));\n                      }\n                      pppppppcStack_218 = (code *******)((int)pppppppcStack_218 + 1);\n                      iVar43 = iVar43 + 0xc;\n                    } while (pppppppcStack_218 < pppppppcVar29[2]);\n                  }\n                }\nLAB_000568f0:\n                pppppppcStack_20c = (code *******)0x0;\n                if (((((uint)pppppppcVar34[0x16] & 0x20000000) != 0) && (uVar16 == 0)) &&\n                   (pppppppcVar3[5] == (code ******)0x0)) {\n                  if (pppppppcVar34[2] != (code ******)0x0) {\n                    pppppppcVar31 = (code *******)(*(int *)(puVar41 + 0x23754) + 0x6e4c);\n                    if (*(byte *)(*pppppppcVar34 + 1) < 0xd) {\n                    \n                    \n                      pppppppcVar29 =\n                           (code *******)\n                           (*(code *)(puVar41 +\n                                     (int)(pppppppcVar31[*(byte *)(*pppppppcVar34 + 1)] + 0xadc7)))\n                                     ();\n                      return pppppppcVar29;\n                    }\n                    (**(code **)(puVar41 + 0x23bc4))(0);\n                    if (uVar7 != 0) {\n                      pppppppcVar31 = (code *******)&DAT_00000007;\n                      ppppppcVar32 = (code ******)0x0;\n                      do {\n                        ppppppcVar35 = *pppppppcVar34 + (int)ppppppcVar32 * 2;\n                        if (*(char *)(ppppppcVar35 + 1) == '\x01') {\n                          if (*(char *)ppppppcVar35 < '\0') {\n                            ppppppcVar35[1] = (code *****)((uint)ppppppcVar35[1] & 0xfffffbff);\n                          }\n                        }\n                        else if (*(char *)(ppppppcVar35 + 1) == '\x05') {\n                          *(char *)(ppppppcVar35 + 1) = '\a';\n                        }\n                        ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                      } while (ppppppcVar32 < pppppppcVar34[2]);\n                    }\n                  }\n                  pppppppcVar34[0x17] = (code ******)0x1;\n                  if (0 < (int)pppppppcVar34[0x13]) {\n                    uVar7 = 1;\n                  }\n                  *(byte *)(pppppppcVar34 + 0x16) =\n                       (byte)*(code *)(pppppppcVar34 + 0x16) & 0x9f | (byte)((uVar7 & 1) << 6);\n                }\n                ppppppcVar32 = (code ******)pppppppcVar34[0xd][3][7];\n                pppppppcVar34[0x12] = ppppppcVar32;\n                pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppppcVar32 * 3);\n                pppppppcVar33 = (code *******)FUN_000483e8(&ppppppcStack_204,pppppppcVar38);\n                pppppppcVar29 = pppppppcVar33;\n                pppppppcStack_208 = pppppppcVar33;\n                if (pppppppcVar33 == (code *******)0x0) {\n                  if ((0 < (int)pppppppcVar34[0x13]) && (0 < iStack_200)) {\n                    iVar18 = *(int *)(puVar41 + 0x23abc);\n                    iVar43 = *(int *)(puVar41 + 0x23abc);\n                    pppppppcVar29 = (code *******)0x0;\n                    do {\n                      pppppppcVar31 =\n                           (code *******)(*pppppppcVar34 + piStack_1fc[(int)pppppppcVar29] * 2);\n                      if (*(code *)(pppppppcVar31 + 1) == (code)0x4) {\n                        iVar37 = 0;\n                        piVar5 = piStack_1fc;\n                        if (iStack_200 < 1) {\nLAB_00056b8c:\n                          if (iStack_200 != iVar37) {\n                            ppppcVar40 = *pppppppcVar34[5][piStack_1fc[(int)pppppppcVar29] * 3 + 2];\n                            iVar37 = (*(code *)(iVar18 + 0x5ea8))(&ppppppcStack_204,ppppcVar40);\n                            if (iVar37 == 0) {\n                              pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppcVar40 * 3)\n                              ;\n                              pppppppcVar29 =\n                                   (code *******)\n                                   (*(code *)(iVar43 + 0x7f1c))(&ppppppcStack_204,pppppppcVar38);\n                              if (pppppppcVar29 != (code *******)0x0) goto LAB_00056cb8;\n                            }\n                          }\n                        }\n                        else {\n                          do {\n                            ppppppcVar32 = *pppppppcVar34 + *piVar5 * 2;\n                            if ((*(char *)(ppppppcVar32 + 1) == '\t') &&\n                               ((code ******)*ppppppcVar32 == *pppppppcVar31)) goto LAB_00056b8c;\n                            iVar37 = iVar37 + 1;\n                            piVar5 = piVar5 + 1;\n                          } while (iStack_200 != iVar37);\n                        }\n                      }\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1);\n                    } while ((int)pppppppcVar29 < iStack_200);\n                  }\n                  pppppppcVar31 = &ppppppcStack_204;\n                  pppppppcVar38 = pppppppcVar34;\n                  ppppppcVar32 = (code ******)\n                                 FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,0);\n                  pppppppcVar34[9] = ppppppcVar32;\n                  pppppppcVar29 = pppppppcStack_208;\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    if (((uint)ppppppcVar32[0xd] & 0x1000000) == 0) {\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar34[10] = ppppppcVar32;\n                    }\n                    else {\n                      pppppppcVar31 = &ppppppcStack_204;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,1);\n                      pppppppcVar34[10] = ppppppcVar32;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,2);\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar38 = pppppppcVar34;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,6);\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar29 = pppppppcStack_208;\n                      if (((pppppppcVar34[10] == (code ******)0x0) ||\n                          (pppppppcVar34[0xb] == (code ******)0x0)) ||\n                         (ppppppcVar32 == (code ******)0x0)) goto LAB_00056cb8;\n                    }\n                    (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                    pppppppcVar29 = pppppppcVar33;\n                  }\n                }\nLAB_00056cb8:\n                pppppppcStack_20c = pppppppcVar29;\n                FUN_0004b234(pppppppcVar3);\n                FUN_0004b2bc(&pppppppcStack_1f8);\n                pppppppcVar29 = pppppppcStack_20c;\n                if (pppppppcStack_20c != (code *******)0x0) {\n                  if (*(int *)(puVar41 + 0x23c78) != 0) {\n                    (**(code **)(puVar41 + 0x23df0))(pppppppcVar34 + 0x22);\n                  }\n                  FUN_0004b338(pppppppcVar34);\n                  *pppppppcVar3 = (code ******)0x0;\n                  pppppppcVar3[1] = (code ******)0x0;\n                  pppppppcVar29 = pppppppcStack_20c;\n                }\n                goto LAB_00056cfc;\n              }\n            }\n          }\n        }" else (if_statement "if (ppppppcVar35 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else if (ppppppcVar39 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else if (ppppppcVar20 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else {\n          ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23cf0))((int)pppppppcVar3[6] << 2);\n          pppppppcVar29[0x21] = ppppppcVar32;\n          if (ppppppcVar32 != (code ******)0x0) {\n            ppppppcVar32 = (code ******)0x0;\n            if (pppppppcVar3[6] != (code ******)0x0) {\n              do {\n                pppppppcVar29[0x21][(int)ppppppcVar32] = (code *****)ppppppcVar32;\n                ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n              } while (ppppppcVar32 < pppppppcVar3[6]);\n            }\n            FUN_00046050(pppppppcVar29[0xd],*(int *)(puVar41 + 0x23abc) + 0x60e8,pppppppcVar29);\n            ppppppcVar32 = pppppppcVar3[6];\n            if (ppppppcVar32 == (code ******)0x0) {\nLAB_00056704:\n              (**(code **)(puVar41 + 0x23dc0))(pppppppcVar29[0x21]);\n              pppppppcVar29[0x21] = (code ******)0x0;\n            }\n            else {\n              ppppppcVar35 = pppppppcVar29[0x21];\n              if (*ppppppcVar35 == (code *****)0x0) {\n                ppppppcVar39 = (code ******)0x0;\n                do {\n                  ppppppcVar35 = ppppppcVar35 + 1;\n                  ppppppcVar39 = (code ******)((int)ppppppcVar39 + 1);\n                  if (ppppppcVar32 == ppppppcVar39) {\n                    if (ppppppcVar32 == ppppppcVar39) goto LAB_00056704;\n                    break;\n                  }\n                } while ((code ******)*ppppppcVar35 == ppppppcVar39);\n              }\n            }\n          }\n          pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23abc) + 0x73a4);\n          pppppppcVar30 = (code *******)FUN_00045fb4(pppppppcVar29[0xd],pppppppcVar38,pppppppcVar3);\n          pppppppcVar31 = pppppppcVar29;\n          if (pppppppcVar30 == (code *******)0x0) {\n            pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23b40) + -0x5be4);\n            pppppppcVar30 = (code *******)FUN_00045fb4(pppppppcVar29[0xd],pppppppcVar38);\n            if (pppppppcVar30 == (code *******)0x0) {\n              FUN_00046050(pppppppcVar29[0xd],*(int *)(puVar41 + 0x23abc) + 0x61b4);\n              pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23b40) + -0x4614);\n              pppppppcVar30 = (code *******)FUN_00046050(pppppppcVar29[0xd],pppppppcVar38);\n              if (pppppppcVar30 == (code *******)0x0) {\n                uVar7 = 0;\n                iVar18 = *(int *)(puVar41 + 0x23b40);\n                pppppppcVar33 = (code *******)0x0;\nLAB_00056744:\n                if ((code *******)pppppppcVar29[2] != pppppppcVar33) {\nLAB_00056750:\n                  if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                    pppppppcVar38 = pppppppcVar29;\n                    pppppppcVar31 = pppppppcVar33;\n                    pppppppcVar30 =\n                         (code *******)\n                         (*(code *)(iVar18 + -0x561c))\n                                   (&ppppppcStack_204,pppppppcVar29,pppppppcVar33,1);\n                    if (pppppppcVar30 != (code *******)0x0) goto LAB_00056168;\n                    if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                      (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                      uVar7 = 1;\n                    }\n                  }\n                  pppppppcVar33 = (code *******)((int)pppppppcVar33 + 1);\n                  goto LAB_00056744;\n                }\n                if (uVar7 != 0) {\n                  uVar7 = 0;\n                  pppppppcVar33 = (code *******)0x0;\n                  goto LAB_00056750;\n                }\n                if (((((uint)pppppppcVar3[7] & 0x8000000) == 0) &&\n                    (pppppppcVar3[6] != (code ******)0x0)) &&\n                   ((char)*(code *)(pppppppcVar29 + 0x16) < '\0')) {\n                  ppppppcVar32 = pppppppcVar29[2];\n                }\n                else {\n                  if (pppppppcVar29[0x13] == (code ******)0x0) goto LAB_000568f0;\n                  ppppppcVar32 = pppppppcVar29[2];\n                }\n                ppppppcVar35 = (code ******)\n                               (**(code **)(puVar41 + 0x23cf0))((int)ppppppcVar32 * 0xc);\n                pppppppcVar29[7] = ppppppcVar35;\n                if (ppppppcVar35 == (code ******)0x0) {\n                  pppppppcVar30 = (code *******)0xc;\n                  goto LAB_00056168;\n                }\n                if (ppppppcVar32 != (code ******)0x0) {\n                  iVar18 = 0;\n                  ppppppcVar32 = (code ******)0x0;\n                  do {\n                    puVar21 = (undefined1 *)((int)pppppppcVar29[7] + iVar18);\n                    *puVar21 = 0;\n                    puVar21[1] = 0;\n                    puVar21[2] = 0;\n                    puVar21[3] = 0;\n                    puVar21[4] = 0;\n                    puVar21[5] = 0;\n                    puVar21[6] = 0;\n                    puVar21[7] = 0;\n                    puVar21[8] = 0;\n                    puVar21[9] = 0;\n                    puVar21[10] = 0;\n                    puVar21[0xb] = 0;\n                    ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                    iVar18 = iVar18 + 0xc;\n                  } while (ppppppcVar32 < pppppppcVar29[2]);\n                  iVar18 = *(int *)(puVar41 + 0x23abc);\n                  if (pppppppcVar29[2] != (code ******)0x0) {\n                    iVar43 = 0;\n                    pppppppcStack_218 = (code *******)0x0;\n                    do {\n                      piVar5 = *(int **)((int)pppppppcVar29[6] + iVar43 + 8);\n                      if (0 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4)) {\n                        iVar37 = 0;\n                        do {\n                          pppppppcVar38 = pppppppcStack_218;\n                          iVar22 = (*(code *)(iVar18 + 0x6e30))\n                                             (pppppppcVar29[7] + *piVar5 * 3,pppppppcStack_218);\n                          pppppppcVar30 = (code *******)0xc;\n                          if (iVar22 == 0) goto LAB_00056168;\n                          iVar37 = iVar37 + 1;\n                          piVar5 = piVar5 + 1;\n                        } while (iVar37 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4));\n                      }\n                      pppppppcStack_218 = (code *******)((int)pppppppcStack_218 + 1);\n                      iVar43 = iVar43 + 0xc;\n                    } while (pppppppcStack_218 < pppppppcVar29[2]);\n                  }\n                }\nLAB_000568f0:\n                pppppppcStack_20c = (code *******)0x0;\n                if (((((uint)pppppppcVar34[0x16] & 0x20000000) != 0) && (uVar16 == 0)) &&\n                   (pppppppcVar3[5] == (code ******)0x0)) {\n                  if (pppppppcVar34[2] != (code ******)0x0) {\n                    pppppppcVar31 = (code *******)(*(int *)(puVar41 + 0x23754) + 0x6e4c);\n                    if (*(byte *)(*pppppppcVar34 + 1) < 0xd) {\n                    \n                    \n                      pppppppcVar29 =\n                           (code *******)\n                           (*(code *)(puVar41 +\n                                     (int)(pppppppcVar31[*(byte *)(*pppppppcVar34 + 1)] + 0xadc7)))\n                                     ();\n                      return pppppppcVar29;\n                    }\n                    (**(code **)(puVar41 + 0x23bc4))(0);\n                    if (uVar7 != 0) {\n                      pppppppcVar31 = (code *******)&DAT_00000007;\n                      ppppppcVar32 = (code ******)0x0;\n                      do {\n                        ppppppcVar35 = *pppppppcVar34 + (int)ppppppcVar32 * 2;\n                        if (*(char *)(ppppppcVar35 + 1) == '\x01') {\n                          if (*(char *)ppppppcVar35 < '\0') {\n                            ppppppcVar35[1] = (code *****)((uint)ppppppcVar35[1] & 0xfffffbff);\n                          }\n                        }\n                        else if (*(char *)(ppppppcVar35 + 1) == '\x05') {\n                          *(char *)(ppppppcVar35 + 1) = '\a';\n                        }\n                        ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                      } while (ppppppcVar32 < pppppppcVar34[2]);\n                    }\n                  }\n                  pppppppcVar34[0x17] = (code ******)0x1;\n                  if (0 < (int)pppppppcVar34[0x13]) {\n                    uVar7 = 1;\n                  }\n                  *(byte *)(pppppppcVar34 + 0x16) =\n                       (byte)*(code *)(pppppppcVar34 + 0x16) & 0x9f | (byte)((uVar7 & 1) << 6);\n                }\n                ppppppcVar32 = (code ******)pppppppcVar34[0xd][3][7];\n                pppppppcVar34[0x12] = ppppppcVar32;\n                pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppppcVar32 * 3);\n                pppppppcVar33 = (code *******)FUN_000483e8(&ppppppcStack_204,pppppppcVar38);\n                pppppppcVar29 = pppppppcVar33;\n                pppppppcStack_208 = pppppppcVar33;\n                if (pppppppcVar33 == (code *******)0x0) {\n                  if ((0 < (int)pppppppcVar34[0x13]) && (0 < iStack_200)) {\n                    iVar18 = *(int *)(puVar41 + 0x23abc);\n                    iVar43 = *(int *)(puVar41 + 0x23abc);\n                    pppppppcVar29 = (code *******)0x0;\n                    do {\n                      pppppppcVar31 =\n                           (code *******)(*pppppppcVar34 + piStack_1fc[(int)pppppppcVar29] * 2);\n                      if (*(code *)(pppppppcVar31 + 1) == (code)0x4) {\n                        iVar37 = 0;\n                        piVar5 = piStack_1fc;\n                        if (iStack_200 < 1) {\nLAB_00056b8c:\n                          if (iStack_200 != iVar37) {\n                            ppppcVar40 = *pppppppcVar34[5][piStack_1fc[(int)pppppppcVar29] * 3 + 2];\n                            iVar37 = (*(code *)(iVar18 + 0x5ea8))(&ppppppcStack_204,ppppcVar40);\n                            if (iVar37 == 0) {\n                              pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppcVar40 * 3)\n                              ;\n                              pppppppcVar29 =\n                                   (code *******)\n                                   (*(code *)(iVar43 + 0x7f1c))(&ppppppcStack_204,pppppppcVar38);\n                              if (pppppppcVar29 != (code *******)0x0) goto LAB_00056cb8;\n                            }\n                          }\n                        }\n                        else {\n                          do {\n                            ppppppcVar32 = *pppppppcVar34 + *piVar5 * 2;\n                            if ((*(char *)(ppppppcVar32 + 1) == '\t') &&\n                               ((code ******)*ppppppcVar32 == *pppppppcVar31)) goto LAB_00056b8c;\n                            iVar37 = iVar37 + 1;\n                            piVar5 = piVar5 + 1;\n                          } while (iStack_200 != iVar37);\n                        }\n                      }\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1);\n                    } while ((int)pppppppcVar29 < iStack_200);\n                  }\n                  pppppppcVar31 = &ppppppcStack_204;\n                  pppppppcVar38 = pppppppcVar34;\n                  ppppppcVar32 = (code ******)\n                                 FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,0);\n                  pppppppcVar34[9] = ppppppcVar32;\n                  pppppppcVar29 = pppppppcStack_208;\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    if (((uint)ppppppcVar32[0xd] & 0x1000000) == 0) {\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar34[10] = ppppppcVar32;\n                    }\n                    else {\n                      pppppppcVar31 = &ppppppcStack_204;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,1);\n                      pppppppcVar34[10] = ppppppcVar32;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,2);\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar38 = pppppppcVar34;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,6);\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar29 = pppppppcStack_208;\n                      if (((pppppppcVar34[10] == (code ******)0x0) ||\n                          (pppppppcVar34[0xb] == (code ******)0x0)) ||\n                         (ppppppcVar32 == (code ******)0x0)) goto LAB_00056cb8;\n                    }\n                    (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                    pppppppcVar29 = pppppppcVar33;\n                  }\n                }\nLAB_00056cb8:\n                pppppppcStack_20c = pppppppcVar29;\n                FUN_0004b234(pppppppcVar3);\n                FUN_0004b2bc(&pppppppcStack_1f8);\n                pppppppcVar29 = pppppppcStack_20c;\n                if (pppppppcStack_20c != (code *******)0x0) {\n                  if (*(int *)(puVar41 + 0x23c78) != 0) {\n                    (**(code **)(puVar41 + 0x23df0))(pppppppcVar34 + 0x22);\n                  }\n                  FUN_0004b338(pppppppcVar34);\n                  *pppppppcVar3 = (code ******)0x0;\n                  pppppppcVar3[1] = (code ******)0x0;\n                  pppppppcVar29 = pppppppcStack_20c;\n                }\n                goto LAB_00056cfc;\n              }\n            }\n          }\n        }" if (parenthesized_expression "(ppppppcVar35 == (code ******)0x0)" ( (binary_expression "ppppppcVar35 == (code ******)0x0" identifier == (cast_expression "(code ******)0x0" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (compound_statement "{\n          pppppppcVar30 = (code *******)0xc;\n        }" { (expression_statement "pppppppcVar30 = (code *******)0xc;" (assignment_expression "pppppppcVar30 = (code *******)0xc" identifier = (cast_expression "(code *******)0xc" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) }) (else_clause "else if (ppppppcVar39 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else if (ppppppcVar20 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else {\n          ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23cf0))((int)pppppppcVar3[6] << 2);\n          pppppppcVar29[0x21] = ppppppcVar32;\n          if (ppppppcVar32 != (code ******)0x0) {\n            ppppppcVar32 = (code ******)0x0;\n            if (pppppppcVar3[6] != (code ******)0x0) {\n              do {\n                pppppppcVar29[0x21][(int)ppppppcVar32] = (code *****)ppppppcVar32;\n                ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n              } while (ppppppcVar32 < pppppppcVar3[6]);\n            }\n            FUN_00046050(pppppppcVar29[0xd],*(int *)(puVar41 + 0x23abc) + 0x60e8,pppppppcVar29);\n            ppppppcVar32 = pppppppcVar3[6];\n            if (ppppppcVar32 == (code ******)0x0) {\nLAB_00056704:\n              (**(code **)(puVar41 + 0x23dc0))(pppppppcVar29[0x21]);\n              pppppppcVar29[0x21] = (code ******)0x0;\n            }\n            else {\n              ppppppcVar35 = pppppppcVar29[0x21];\n              if (*ppppppcVar35 == (code *****)0x0) {\n                ppppppcVar39 = (code ******)0x0;\n                do {\n                  ppppppcVar35 = ppppppcVar35 + 1;\n                  ppppppcVar39 = (code ******)((int)ppppppcVar39 + 1);\n                  if (ppppppcVar32 == ppppppcVar39) {\n                    if (ppppppcVar32 == ppppppcVar39) goto LAB_00056704;\n                    break;\n                  }\n                } while ((code ******)*ppppppcVar35 == ppppppcVar39);\n              }\n            }\n          }\n          pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23abc) + 0x73a4);\n          pppppppcVar30 = (code *******)FUN_00045fb4(pppppppcVar29[0xd],pppppppcVar38,pppppppcVar3);\n          pppppppcVar31 = pppppppcVar29;\n          if (pppppppcVar30 == (code *******)0x0) {\n            pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23b40) + -0x5be4);\n            pppppppcVar30 = (code *******)FUN_00045fb4(pppppppcVar29[0xd],pppppppcVar38);\n            if (pppppppcVar30 == (code *******)0x0) {\n              FUN_00046050(pppppppcVar29[0xd],*(int *)(puVar41 + 0x23abc) + 0x61b4);\n              pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23b40) + -0x4614);\n              pppppppcVar30 = (code *******)FUN_00046050(pppppppcVar29[0xd],pppppppcVar38);\n              if (pppppppcVar30 == (code *******)0x0) {\n                uVar7 = 0;\n                iVar18 = *(int *)(puVar41 + 0x23b40);\n                pppppppcVar33 = (code *******)0x0;\nLAB_00056744:\n                if ((code *******)pppppppcVar29[2] != pppppppcVar33) {\nLAB_00056750:\n                  if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                    pppppppcVar38 = pppppppcVar29;\n                    pppppppcVar31 = pppppppcVar33;\n                    pppppppcVar30 =\n                         (code *******)\n                         (*(code *)(iVar18 + -0x561c))\n                                   (&ppppppcStack_204,pppppppcVar29,pppppppcVar33,1);\n                    if (pppppppcVar30 != (code *******)0x0) goto LAB_00056168;\n                    if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                      (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                      uVar7 = 1;\n                    }\n                  }\n                  pppppppcVar33 = (code *******)((int)pppppppcVar33 + 1);\n                  goto LAB_00056744;\n                }\n                if (uVar7 != 0) {\n                  uVar7 = 0;\n                  pppppppcVar33 = (code *******)0x0;\n                  goto LAB_00056750;\n                }\n                if (((((uint)pppppppcVar3[7] & 0x8000000) == 0) &&\n                    (pppppppcVar3[6] != (code ******)0x0)) &&\n                   ((char)*(code *)(pppppppcVar29 + 0x16) < '\0')) {\n                  ppppppcVar32 = pppppppcVar29[2];\n                }\n                else {\n                  if (pppppppcVar29[0x13] == (code ******)0x0) goto LAB_000568f0;\n                  ppppppcVar32 = pppppppcVar29[2];\n                }\n                ppppppcVar35 = (code ******)\n                               (**(code **)(puVar41 + 0x23cf0))((int)ppppppcVar32 * 0xc);\n                pppppppcVar29[7] = ppppppcVar35;\n                if (ppppppcVar35 == (code ******)0x0) {\n                  pppppppcVar30 = (code *******)0xc;\n                  goto LAB_00056168;\n                }\n                if (ppppppcVar32 != (code ******)0x0) {\n                  iVar18 = 0;\n                  ppppppcVar32 = (code ******)0x0;\n                  do {\n                    puVar21 = (undefined1 *)((int)pppppppcVar29[7] + iVar18);\n                    *puVar21 = 0;\n                    puVar21[1] = 0;\n                    puVar21[2] = 0;\n                    puVar21[3] = 0;\n                    puVar21[4] = 0;\n                    puVar21[5] = 0;\n                    puVar21[6] = 0;\n                    puVar21[7] = 0;\n                    puVar21[8] = 0;\n                    puVar21[9] = 0;\n                    puVar21[10] = 0;\n                    puVar21[0xb] = 0;\n                    ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                    iVar18 = iVar18 + 0xc;\n                  } while (ppppppcVar32 < pppppppcVar29[2]);\n                  iVar18 = *(int *)(puVar41 + 0x23abc);\n                  if (pppppppcVar29[2] != (code ******)0x0) {\n                    iVar43 = 0;\n                    pppppppcStack_218 = (code *******)0x0;\n                    do {\n                      piVar5 = *(int **)((int)pppppppcVar29[6] + iVar43 + 8);\n                      if (0 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4)) {\n                        iVar37 = 0;\n                        do {\n                          pppppppcVar38 = pppppppcStack_218;\n                          iVar22 = (*(code *)(iVar18 + 0x6e30))\n                                             (pppppppcVar29[7] + *piVar5 * 3,pppppppcStack_218);\n                          pppppppcVar30 = (code *******)0xc;\n                          if (iVar22 == 0) goto LAB_00056168;\n                          iVar37 = iVar37 + 1;\n                          piVar5 = piVar5 + 1;\n                        } while (iVar37 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4));\n                      }\n                      pppppppcStack_218 = (code *******)((int)pppppppcStack_218 + 1);\n                      iVar43 = iVar43 + 0xc;\n                    } while (pppppppcStack_218 < pppppppcVar29[2]);\n                  }\n                }\nLAB_000568f0:\n                pppppppcStack_20c = (code *******)0x0;\n                if (((((uint)pppppppcVar34[0x16] & 0x20000000) != 0) && (uVar16 == 0)) &&\n                   (pppppppcVar3[5] == (code ******)0x0)) {\n                  if (pppppppcVar34[2] != (code ******)0x0) {\n                    pppppppcVar31 = (code *******)(*(int *)(puVar41 + 0x23754) + 0x6e4c);\n                    if (*(byte *)(*pppppppcVar34 + 1) < 0xd) {\n                    \n                    \n                      pppppppcVar29 =\n                           (code *******)\n                           (*(code *)(puVar41 +\n                                     (int)(pppppppcVar31[*(byte *)(*pppppppcVar34 + 1)] + 0xadc7)))\n                                     ();\n                      return pppppppcVar29;\n                    }\n                    (**(code **)(puVar41 + 0x23bc4))(0);\n                    if (uVar7 != 0) {\n                      pppppppcVar31 = (code *******)&DAT_00000007;\n                      ppppppcVar32 = (code ******)0x0;\n                      do {\n                        ppppppcVar35 = *pppppppcVar34 + (int)ppppppcVar32 * 2;\n                        if (*(char *)(ppppppcVar35 + 1) == '\x01') {\n                          if (*(char *)ppppppcVar35 < '\0') {\n                            ppppppcVar35[1] = (code *****)((uint)ppppppcVar35[1] & 0xfffffbff);\n                          }\n                        }\n                        else if (*(char *)(ppppppcVar35 + 1) == '\x05') {\n                          *(char *)(ppppppcVar35 + 1) = '\a';\n                        }\n                        ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                      } while (ppppppcVar32 < pppppppcVar34[2]);\n                    }\n                  }\n                  pppppppcVar34[0x17] = (code ******)0x1;\n                  if (0 < (int)pppppppcVar34[0x13]) {\n                    uVar7 = 1;\n                  }\n                  *(byte *)(pppppppcVar34 + 0x16) =\n                       (byte)*(code *)(pppppppcVar34 + 0x16) & 0x9f | (byte)((uVar7 & 1) << 6);\n                }\n                ppppppcVar32 = (code ******)pppppppcVar34[0xd][3][7];\n                pppppppcVar34[0x12] = ppppppcVar32;\n                pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppppcVar32 * 3);\n                pppppppcVar33 = (code *******)FUN_000483e8(&ppppppcStack_204,pppppppcVar38);\n                pppppppcVar29 = pppppppcVar33;\n                pppppppcStack_208 = pppppppcVar33;\n                if (pppppppcVar33 == (code *******)0x0) {\n                  if ((0 < (int)pppppppcVar34[0x13]) && (0 < iStack_200)) {\n                    iVar18 = *(int *)(puVar41 + 0x23abc);\n                    iVar43 = *(int *)(puVar41 + 0x23abc);\n                    pppppppcVar29 = (code *******)0x0;\n                    do {\n                      pppppppcVar31 =\n                           (code *******)(*pppppppcVar34 + piStack_1fc[(int)pppppppcVar29] * 2);\n                      if (*(code *)(pppppppcVar31 + 1) == (code)0x4) {\n                        iVar37 = 0;\n                        piVar5 = piStack_1fc;\n                        if (iStack_200 < 1) {\nLAB_00056b8c:\n                          if (iStack_200 != iVar37) {\n                            ppppcVar40 = *pppppppcVar34[5][piStack_1fc[(int)pppppppcVar29] * 3 + 2];\n                            iVar37 = (*(code *)(iVar18 + 0x5ea8))(&ppppppcStack_204,ppppcVar40);\n                            if (iVar37 == 0) {\n                              pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppcVar40 * 3)\n                              ;\n                              pppppppcVar29 =\n                                   (code *******)\n                                   (*(code *)(iVar43 + 0x7f1c))(&ppppppcStack_204,pppppppcVar38);\n                              if (pppppppcVar29 != (code *******)0x0) goto LAB_00056cb8;\n                            }\n                          }\n                        }\n                        else {\n                          do {\n                            ppppppcVar32 = *pppppppcVar34 + *piVar5 * 2;\n                            if ((*(char *)(ppppppcVar32 + 1) == '\t') &&\n                               ((code ******)*ppppppcVar32 == *pppppppcVar31)) goto LAB_00056b8c;\n                            iVar37 = iVar37 + 1;\n                            piVar5 = piVar5 + 1;\n                          } while (iStack_200 != iVar37);\n                        }\n                      }\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1);\n                    } while ((int)pppppppcVar29 < iStack_200);\n                  }\n                  pppppppcVar31 = &ppppppcStack_204;\n                  pppppppcVar38 = pppppppcVar34;\n                  ppppppcVar32 = (code ******)\n                                 FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,0);\n                  pppppppcVar34[9] = ppppppcVar32;\n                  pppppppcVar29 = pppppppcStack_208;\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    if (((uint)ppppppcVar32[0xd] & 0x1000000) == 0) {\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar34[10] = ppppppcVar32;\n                    }\n                    else {\n                      pppppppcVar31 = &ppppppcStack_204;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,1);\n                      pppppppcVar34[10] = ppppppcVar32;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,2);\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar38 = pppppppcVar34;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,6);\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar29 = pppppppcStack_208;\n                      if (((pppppppcVar34[10] == (code ******)0x0) ||\n                          (pppppppcVar34[0xb] == (code ******)0x0)) ||\n                         (ppppppcVar32 == (code ******)0x0)) goto LAB_00056cb8;\n                    }\n                    (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                    pppppppcVar29 = pppppppcVar33;\n                  }\n                }\nLAB_00056cb8:\n                pppppppcStack_20c = pppppppcVar29;\n                FUN_0004b234(pppppppcVar3);\n                FUN_0004b2bc(&pppppppcStack_1f8);\n                pppppppcVar29 = pppppppcStack_20c;\n                if (pppppppcStack_20c != (code *******)0x0) {\n                  if (*(int *)(puVar41 + 0x23c78) != 0) {\n                    (**(code **)(puVar41 + 0x23df0))(pppppppcVar34 + 0x22);\n                  }\n                  FUN_0004b338(pppppppcVar34);\n                  *pppppppcVar3 = (code ******)0x0;\n                  pppppppcVar3[1] = (code ******)0x0;\n                  pppppppcVar29 = pppppppcStack_20c;\n                }\n                goto LAB_00056cfc;\n              }\n            }\n          }\n        }" else (if_statement "if (ppppppcVar39 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else if (ppppppcVar20 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else {\n          ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23cf0))((int)pppppppcVar3[6] << 2);\n          pppppppcVar29[0x21] = ppppppcVar32;\n          if (ppppppcVar32 != (code ******)0x0) {\n            ppppppcVar32 = (code ******)0x0;\n            if (pppppppcVar3[6] != (code ******)0x0) {\n              do {\n                pppppppcVar29[0x21][(int)ppppppcVar32] = (code *****)ppppppcVar32;\n                ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n              } while (ppppppcVar32 < pppppppcVar3[6]);\n            }\n            FUN_00046050(pppppppcVar29[0xd],*(int *)(puVar41 + 0x23abc) + 0x60e8,pppppppcVar29);\n            ppppppcVar32 = pppppppcVar3[6];\n            if (ppppppcVar32 == (code ******)0x0) {\nLAB_00056704:\n              (**(code **)(puVar41 + 0x23dc0))(pppppppcVar29[0x21]);\n              pppppppcVar29[0x21] = (code ******)0x0;\n            }\n            else {\n              ppppppcVar35 = pppppppcVar29[0x21];\n              if (*ppppppcVar35 == (code *****)0x0) {\n                ppppppcVar39 = (code ******)0x0;\n                do {\n                  ppppppcVar35 = ppppppcVar35 + 1;\n                  ppppppcVar39 = (code ******)((int)ppppppcVar39 + 1);\n                  if (ppppppcVar32 == ppppppcVar39) {\n                    if (ppppppcVar32 == ppppppcVar39) goto LAB_00056704;\n                    break;\n                  }\n                } while ((code ******)*ppppppcVar35 == ppppppcVar39);\n              }\n            }\n          }\n          pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23abc) + 0x73a4);\n          pppppppcVar30 = (code *******)FUN_00045fb4(pppppppcVar29[0xd],pppppppcVar38,pppppppcVar3);\n          pppppppcVar31 = pppppppcVar29;\n          if (pppppppcVar30 == (code *******)0x0) {\n            pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23b40) + -0x5be4);\n            pppppppcVar30 = (code *******)FUN_00045fb4(pppppppcVar29[0xd],pppppppcVar38);\n            if (pppppppcVar30 == (code *******)0x0) {\n              FUN_00046050(pppppppcVar29[0xd],*(int *)(puVar41 + 0x23abc) + 0x61b4);\n              pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23b40) + -0x4614);\n              pppppppcVar30 = (code *******)FUN_00046050(pppppppcVar29[0xd],pppppppcVar38);\n              if (pppppppcVar30 == (code *******)0x0) {\n                uVar7 = 0;\n                iVar18 = *(int *)(puVar41 + 0x23b40);\n                pppppppcVar33 = (code *******)0x0;\nLAB_00056744:\n                if ((code *******)pppppppcVar29[2] != pppppppcVar33) {\nLAB_00056750:\n                  if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                    pppppppcVar38 = pppppppcVar29;\n                    pppppppcVar31 = pppppppcVar33;\n                    pppppppcVar30 =\n                         (code *******)\n                         (*(code *)(iVar18 + -0x561c))\n                                   (&ppppppcStack_204,pppppppcVar29,pppppppcVar33,1);\n                    if (pppppppcVar30 != (code *******)0x0) goto LAB_00056168;\n                    if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                      (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                      uVar7 = 1;\n                    }\n                  }\n                  pppppppcVar33 = (code *******)((int)pppppppcVar33 + 1);\n                  goto LAB_00056744;\n                }\n                if (uVar7 != 0) {\n                  uVar7 = 0;\n                  pppppppcVar33 = (code *******)0x0;\n                  goto LAB_00056750;\n                }\n                if (((((uint)pppppppcVar3[7] & 0x8000000) == 0) &&\n                    (pppppppcVar3[6] != (code ******)0x0)) &&\n                   ((char)*(code *)(pppppppcVar29 + 0x16) < '\0')) {\n                  ppppppcVar32 = pppppppcVar29[2];\n                }\n                else {\n                  if (pppppppcVar29[0x13] == (code ******)0x0) goto LAB_000568f0;\n                  ppppppcVar32 = pppppppcVar29[2];\n                }\n                ppppppcVar35 = (code ******)\n                               (**(code **)(puVar41 + 0x23cf0))((int)ppppppcVar32 * 0xc);\n                pppppppcVar29[7] = ppppppcVar35;\n                if (ppppppcVar35 == (code ******)0x0) {\n                  pppppppcVar30 = (code *******)0xc;\n                  goto LAB_00056168;\n                }\n                if (ppppppcVar32 != (code ******)0x0) {\n                  iVar18 = 0;\n                  ppppppcVar32 = (code ******)0x0;\n                  do {\n                    puVar21 = (undefined1 *)((int)pppppppcVar29[7] + iVar18);\n                    *puVar21 = 0;\n                    puVar21[1] = 0;\n                    puVar21[2] = 0;\n                    puVar21[3] = 0;\n                    puVar21[4] = 0;\n                    puVar21[5] = 0;\n                    puVar21[6] = 0;\n                    puVar21[7] = 0;\n                    puVar21[8] = 0;\n                    puVar21[9] = 0;\n                    puVar21[10] = 0;\n                    puVar21[0xb] = 0;\n                    ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                    iVar18 = iVar18 + 0xc;\n                  } while (ppppppcVar32 < pppppppcVar29[2]);\n                  iVar18 = *(int *)(puVar41 + 0x23abc);\n                  if (pppppppcVar29[2] != (code ******)0x0) {\n                    iVar43 = 0;\n                    pppppppcStack_218 = (code *******)0x0;\n                    do {\n                      piVar5 = *(int **)((int)pppppppcVar29[6] + iVar43 + 8);\n                      if (0 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4)) {\n                        iVar37 = 0;\n                        do {\n                          pppppppcVar38 = pppppppcStack_218;\n                          iVar22 = (*(code *)(iVar18 + 0x6e30))\n                                             (pppppppcVar29[7] + *piVar5 * 3,pppppppcStack_218);\n                          pppppppcVar30 = (code *******)0xc;\n                          if (iVar22 == 0) goto LAB_00056168;\n                          iVar37 = iVar37 + 1;\n                          piVar5 = piVar5 + 1;\n                        } while (iVar37 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4));\n                      }\n                      pppppppcStack_218 = (code *******)((int)pppppppcStack_218 + 1);\n                      iVar43 = iVar43 + 0xc;\n                    } while (pppppppcStack_218 < pppppppcVar29[2]);\n                  }\n                }\nLAB_000568f0:\n                pppppppcStack_20c = (code *******)0x0;\n                if (((((uint)pppppppcVar34[0x16] & 0x20000000) != 0) && (uVar16 == 0)) &&\n                   (pppppppcVar3[5] == (code ******)0x0)) {\n                  if (pppppppcVar34[2] != (code ******)0x0) {\n                    pppppppcVar31 = (code *******)(*(int *)(puVar41 + 0x23754) + 0x6e4c);\n                    if (*(byte *)(*pppppppcVar34 + 1) < 0xd) {\n                    \n                    \n                      pppppppcVar29 =\n                           (code *******)\n                           (*(code *)(puVar41 +\n                                     (int)(pppppppcVar31[*(byte *)(*pppppppcVar34 + 1)] + 0xadc7)))\n                                     ();\n                      return pppppppcVar29;\n                    }\n                    (**(code **)(puVar41 + 0x23bc4))(0);\n                    if (uVar7 != 0) {\n                      pppppppcVar31 = (code *******)&DAT_00000007;\n                      ppppppcVar32 = (code ******)0x0;\n                      do {\n                        ppppppcVar35 = *pppppppcVar34 + (int)ppppppcVar32 * 2;\n                        if (*(char *)(ppppppcVar35 + 1) == '\x01') {\n                          if (*(char *)ppppppcVar35 < '\0') {\n                            ppppppcVar35[1] = (code *****)((uint)ppppppcVar35[1] & 0xfffffbff);\n                          }\n                        }\n                        else if (*(char *)(ppppppcVar35 + 1) == '\x05') {\n                          *(char *)(ppppppcVar35 + 1) = '\a';\n                        }\n                        ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                      } while (ppppppcVar32 < pppppppcVar34[2]);\n                    }\n                  }\n                  pppppppcVar34[0x17] = (code ******)0x1;\n                  if (0 < (int)pppppppcVar34[0x13]) {\n                    uVar7 = 1;\n                  }\n                  *(byte *)(pppppppcVar34 + 0x16) =\n                       (byte)*(code *)(pppppppcVar34 + 0x16) & 0x9f | (byte)((uVar7 & 1) << 6);\n                }\n                ppppppcVar32 = (code ******)pppppppcVar34[0xd][3][7];\n                pppppppcVar34[0x12] = ppppppcVar32;\n                pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppppcVar32 * 3);\n                pppppppcVar33 = (code *******)FUN_000483e8(&ppppppcStack_204,pppppppcVar38);\n                pppppppcVar29 = pppppppcVar33;\n                pppppppcStack_208 = pppppppcVar33;\n                if (pppppppcVar33 == (code *******)0x0) {\n                  if ((0 < (int)pppppppcVar34[0x13]) && (0 < iStack_200)) {\n                    iVar18 = *(int *)(puVar41 + 0x23abc);\n                    iVar43 = *(int *)(puVar41 + 0x23abc);\n                    pppppppcVar29 = (code *******)0x0;\n                    do {\n                      pppppppcVar31 =\n                           (code *******)(*pppppppcVar34 + piStack_1fc[(int)pppppppcVar29] * 2);\n                      if (*(code *)(pppppppcVar31 + 1) == (code)0x4) {\n                        iVar37 = 0;\n                        piVar5 = piStack_1fc;\n                        if (iStack_200 < 1) {\nLAB_00056b8c:\n                          if (iStack_200 != iVar37) {\n                            ppppcVar40 = *pppppppcVar34[5][piStack_1fc[(int)pppppppcVar29] * 3 + 2];\n                            iVar37 = (*(code *)(iVar18 + 0x5ea8))(&ppppppcStack_204,ppppcVar40);\n                            if (iVar37 == 0) {\n                              pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppcVar40 * 3)\n                              ;\n                              pppppppcVar29 =\n                                   (code *******)\n                                   (*(code *)(iVar43 + 0x7f1c))(&ppppppcStack_204,pppppppcVar38);\n                              if (pppppppcVar29 != (code *******)0x0) goto LAB_00056cb8;\n                            }\n                          }\n                        }\n                        else {\n                          do {\n                            ppppppcVar32 = *pppppppcVar34 + *piVar5 * 2;\n                            if ((*(char *)(ppppppcVar32 + 1) == '\t') &&\n                               ((code ******)*ppppppcVar32 == *pppppppcVar31)) goto LAB_00056b8c;\n                            iVar37 = iVar37 + 1;\n                            piVar5 = piVar5 + 1;\n                          } while (iStack_200 != iVar37);\n                        }\n                      }\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1);\n                    } while ((int)pppppppcVar29 < iStack_200);\n                  }\n                  pppppppcVar31 = &ppppppcStack_204;\n                  pppppppcVar38 = pppppppcVar34;\n                  ppppppcVar32 = (code ******)\n                                 FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,0);\n                  pppppppcVar34[9] = ppppppcVar32;\n                  pppppppcVar29 = pppppppcStack_208;\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    if (((uint)ppppppcVar32[0xd] & 0x1000000) == 0) {\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar34[10] = ppppppcVar32;\n                    }\n                    else {\n                      pppppppcVar31 = &ppppppcStack_204;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,1);\n                      pppppppcVar34[10] = ppppppcVar32;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,2);\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar38 = pppppppcVar34;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,6);\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar29 = pppppppcStack_208;\n                      if (((pppppppcVar34[10] == (code ******)0x0) ||\n                          (pppppppcVar34[0xb] == (code ******)0x0)) ||\n                         (ppppppcVar32 == (code ******)0x0)) goto LAB_00056cb8;\n                    }\n                    (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                    pppppppcVar29 = pppppppcVar33;\n                  }\n                }\nLAB_00056cb8:\n                pppppppcStack_20c = pppppppcVar29;\n                FUN_0004b234(pppppppcVar3);\n                FUN_0004b2bc(&pppppppcStack_1f8);\n                pppppppcVar29 = pppppppcStack_20c;\n                if (pppppppcStack_20c != (code *******)0x0) {\n                  if (*(int *)(puVar41 + 0x23c78) != 0) {\n                    (**(code **)(puVar41 + 0x23df0))(pppppppcVar34 + 0x22);\n                  }\n                  FUN_0004b338(pppppppcVar34);\n                  *pppppppcVar3 = (code ******)0x0;\n                  pppppppcVar3[1] = (code ******)0x0;\n                  pppppppcVar29 = pppppppcStack_20c;\n                }\n                goto LAB_00056cfc;\n              }\n            }\n          }\n        }" if (parenthesized_expression "(ppppppcVar39 == (code ******)0x0)" ( (binary_expression "ppppppcVar39 == (code ******)0x0" identifier == (cast_expression "(code ******)0x0" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (compound_statement "{\n          pppppppcVar30 = (code *******)0xc;\n        }" { (expression_statement "pppppppcVar30 = (code *******)0xc;" (assignment_expression "pppppppcVar30 = (code *******)0xc" identifier = (cast_expression "(code *******)0xc" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) }) (else_clause "else if (ppppppcVar20 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else {\n          ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23cf0))((int)pppppppcVar3[6] << 2);\n          pppppppcVar29[0x21] = ppppppcVar32;\n          if (ppppppcVar32 != (code ******)0x0) {\n            ppppppcVar32 = (code ******)0x0;\n            if (pppppppcVar3[6] != (code ******)0x0) {\n              do {\n                pppppppcVar29[0x21][(int)ppppppcVar32] = (code *****)ppppppcVar32;\n                ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n              } while (ppppppcVar32 < pppppppcVar3[6]);\n            }\n            FUN_00046050(pppppppcVar29[0xd],*(int *)(puVar41 + 0x23abc) + 0x60e8,pppppppcVar29);\n            ppppppcVar32 = pppppppcVar3[6];\n            if (ppppppcVar32 == (code ******)0x0) {\nLAB_00056704:\n              (**(code **)(puVar41 + 0x23dc0))(pppppppcVar29[0x21]);\n              pppppppcVar29[0x21] = (code ******)0x0;\n            }\n            else {\n              ppppppcVar35 = pppppppcVar29[0x21];\n              if (*ppppppcVar35 == (code *****)0x0) {\n                ppppppcVar39 = (code ******)0x0;\n                do {\n                  ppppppcVar35 = ppppppcVar35 + 1;\n                  ppppppcVar39 = (code ******)((int)ppppppcVar39 + 1);\n                  if (ppppppcVar32 == ppppppcVar39) {\n                    if (ppppppcVar32 == ppppppcVar39) goto LAB_00056704;\n                    break;\n                  }\n                } while ((code ******)*ppppppcVar35 == ppppppcVar39);\n              }\n            }\n          }\n          pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23abc) + 0x73a4);\n          pppppppcVar30 = (code *******)FUN_00045fb4(pppppppcVar29[0xd],pppppppcVar38,pppppppcVar3);\n          pppppppcVar31 = pppppppcVar29;\n          if (pppppppcVar30 == (code *******)0x0) {\n            pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23b40) + -0x5be4);\n            pppppppcVar30 = (code *******)FUN_00045fb4(pppppppcVar29[0xd],pppppppcVar38);\n            if (pppppppcVar30 == (code *******)0x0) {\n              FUN_00046050(pppppppcVar29[0xd],*(int *)(puVar41 + 0x23abc) + 0x61b4);\n              pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23b40) + -0x4614);\n              pppppppcVar30 = (code *******)FUN_00046050(pppppppcVar29[0xd],pppppppcVar38);\n              if (pppppppcVar30 == (code *******)0x0) {\n                uVar7 = 0;\n                iVar18 = *(int *)(puVar41 + 0x23b40);\n                pppppppcVar33 = (code *******)0x0;\nLAB_00056744:\n                if ((code *******)pppppppcVar29[2] != pppppppcVar33) {\nLAB_00056750:\n                  if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                    pppppppcVar38 = pppppppcVar29;\n                    pppppppcVar31 = pppppppcVar33;\n                    pppppppcVar30 =\n                         (code *******)\n                         (*(code *)(iVar18 + -0x561c))\n                                   (&ppppppcStack_204,pppppppcVar29,pppppppcVar33,1);\n                    if (pppppppcVar30 != (code *******)0x0) goto LAB_00056168;\n                    if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                      (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                      uVar7 = 1;\n                    }\n                  }\n                  pppppppcVar33 = (code *******)((int)pppppppcVar33 + 1);\n                  goto LAB_00056744;\n                }\n                if (uVar7 != 0) {\n                  uVar7 = 0;\n                  pppppppcVar33 = (code *******)0x0;\n                  goto LAB_00056750;\n                }\n                if (((((uint)pppppppcVar3[7] & 0x8000000) == 0) &&\n                    (pppppppcVar3[6] != (code ******)0x0)) &&\n                   ((char)*(code *)(pppppppcVar29 + 0x16) < '\0')) {\n                  ppppppcVar32 = pppppppcVar29[2];\n                }\n                else {\n                  if (pppppppcVar29[0x13] == (code ******)0x0) goto LAB_000568f0;\n                  ppppppcVar32 = pppppppcVar29[2];\n                }\n                ppppppcVar35 = (code ******)\n                               (**(code **)(puVar41 + 0x23cf0))((int)ppppppcVar32 * 0xc);\n                pppppppcVar29[7] = ppppppcVar35;\n                if (ppppppcVar35 == (code ******)0x0) {\n                  pppppppcVar30 = (code *******)0xc;\n                  goto LAB_00056168;\n                }\n                if (ppppppcVar32 != (code ******)0x0) {\n                  iVar18 = 0;\n                  ppppppcVar32 = (code ******)0x0;\n                  do {\n                    puVar21 = (undefined1 *)((int)pppppppcVar29[7] + iVar18);\n                    *puVar21 = 0;\n                    puVar21[1] = 0;\n                    puVar21[2] = 0;\n                    puVar21[3] = 0;\n                    puVar21[4] = 0;\n                    puVar21[5] = 0;\n                    puVar21[6] = 0;\n                    puVar21[7] = 0;\n                    puVar21[8] = 0;\n                    puVar21[9] = 0;\n                    puVar21[10] = 0;\n                    puVar21[0xb] = 0;\n                    ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                    iVar18 = iVar18 + 0xc;\n                  } while (ppppppcVar32 < pppppppcVar29[2]);\n                  iVar18 = *(int *)(puVar41 + 0x23abc);\n                  if (pppppppcVar29[2] != (code ******)0x0) {\n                    iVar43 = 0;\n                    pppppppcStack_218 = (code *******)0x0;\n                    do {\n                      piVar5 = *(int **)((int)pppppppcVar29[6] + iVar43 + 8);\n                      if (0 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4)) {\n                        iVar37 = 0;\n                        do {\n                          pppppppcVar38 = pppppppcStack_218;\n                          iVar22 = (*(code *)(iVar18 + 0x6e30))\n                                             (pppppppcVar29[7] + *piVar5 * 3,pppppppcStack_218);\n                          pppppppcVar30 = (code *******)0xc;\n                          if (iVar22 == 0) goto LAB_00056168;\n                          iVar37 = iVar37 + 1;\n                          piVar5 = piVar5 + 1;\n                        } while (iVar37 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4));\n                      }\n                      pppppppcStack_218 = (code *******)((int)pppppppcStack_218 + 1);\n                      iVar43 = iVar43 + 0xc;\n                    } while (pppppppcStack_218 < pppppppcVar29[2]);\n                  }\n                }\nLAB_000568f0:\n                pppppppcStack_20c = (code *******)0x0;\n                if (((((uint)pppppppcVar34[0x16] & 0x20000000) != 0) && (uVar16 == 0)) &&\n                   (pppppppcVar3[5] == (code ******)0x0)) {\n                  if (pppppppcVar34[2] != (code ******)0x0) {\n                    pppppppcVar31 = (code *******)(*(int *)(puVar41 + 0x23754) + 0x6e4c);\n                    if (*(byte *)(*pppppppcVar34 + 1) < 0xd) {\n                    \n                    \n                      pppppppcVar29 =\n                           (code *******)\n                           (*(code *)(puVar41 +\n                                     (int)(pppppppcVar31[*(byte *)(*pppppppcVar34 + 1)] + 0xadc7)))\n                                     ();\n                      return pppppppcVar29;\n                    }\n                    (**(code **)(puVar41 + 0x23bc4))(0);\n                    if (uVar7 != 0) {\n                      pppppppcVar31 = (code *******)&DAT_00000007;\n                      ppppppcVar32 = (code ******)0x0;\n                      do {\n                        ppppppcVar35 = *pppppppcVar34 + (int)ppppppcVar32 * 2;\n                        if (*(char *)(ppppppcVar35 + 1) == '\x01') {\n                          if (*(char *)ppppppcVar35 < '\0') {\n                            ppppppcVar35[1] = (code *****)((uint)ppppppcVar35[1] & 0xfffffbff);\n                          }\n                        }\n                        else if (*(char *)(ppppppcVar35 + 1) == '\x05') {\n                          *(char *)(ppppppcVar35 + 1) = '\a';\n                        }\n                        ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                      } while (ppppppcVar32 < pppppppcVar34[2]);\n                    }\n                  }\n                  pppppppcVar34[0x17] = (code ******)0x1;\n                  if (0 < (int)pppppppcVar34[0x13]) {\n                    uVar7 = 1;\n                  }\n                  *(byte *)(pppppppcVar34 + 0x16) =\n                       (byte)*(code *)(pppppppcVar34 + 0x16) & 0x9f | (byte)((uVar7 & 1) << 6);\n                }\n                ppppppcVar32 = (code ******)pppppppcVar34[0xd][3][7];\n                pppppppcVar34[0x12] = ppppppcVar32;\n                pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppppcVar32 * 3);\n                pppppppcVar33 = (code *******)FUN_000483e8(&ppppppcStack_204,pppppppcVar38);\n                pppppppcVar29 = pppppppcVar33;\n                pppppppcStack_208 = pppppppcVar33;\n                if (pppppppcVar33 == (code *******)0x0) {\n                  if ((0 < (int)pppppppcVar34[0x13]) && (0 < iStack_200)) {\n                    iVar18 = *(int *)(puVar41 + 0x23abc);\n                    iVar43 = *(int *)(puVar41 + 0x23abc);\n                    pppppppcVar29 = (code *******)0x0;\n                    do {\n                      pppppppcVar31 =\n                           (code *******)(*pppppppcVar34 + piStack_1fc[(int)pppppppcVar29] * 2);\n                      if (*(code *)(pppppppcVar31 + 1) == (code)0x4) {\n                        iVar37 = 0;\n                        piVar5 = piStack_1fc;\n                        if (iStack_200 < 1) {\nLAB_00056b8c:\n                          if (iStack_200 != iVar37) {\n                            ppppcVar40 = *pppppppcVar34[5][piStack_1fc[(int)pppppppcVar29] * 3 + 2];\n                            iVar37 = (*(code *)(iVar18 + 0x5ea8))(&ppppppcStack_204,ppppcVar40);\n                            if (iVar37 == 0) {\n                              pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppcVar40 * 3)\n                              ;\n                              pppppppcVar29 =\n                                   (code *******)\n                                   (*(code *)(iVar43 + 0x7f1c))(&ppppppcStack_204,pppppppcVar38);\n                              if (pppppppcVar29 != (code *******)0x0) goto LAB_00056cb8;\n                            }\n                          }\n                        }\n                        else {\n                          do {\n                            ppppppcVar32 = *pppppppcVar34 + *piVar5 * 2;\n                            if ((*(char *)(ppppppcVar32 + 1) == '\t') &&\n                               ((code ******)*ppppppcVar32 == *pppppppcVar31)) goto LAB_00056b8c;\n                            iVar37 = iVar37 + 1;\n                            piVar5 = piVar5 + 1;\n                          } while (iStack_200 != iVar37);\n                        }\n                      }\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1);\n                    } while ((int)pppppppcVar29 < iStack_200);\n                  }\n                  pppppppcVar31 = &ppppppcStack_204;\n                  pppppppcVar38 = pppppppcVar34;\n                  ppppppcVar32 = (code ******)\n                                 FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,0);\n                  pppppppcVar34[9] = ppppppcVar32;\n                  pppppppcVar29 = pppppppcStack_208;\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    if (((uint)ppppppcVar32[0xd] & 0x1000000) == 0) {\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar34[10] = ppppppcVar32;\n                    }\n                    else {\n                      pppppppcVar31 = &ppppppcStack_204;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,1);\n                      pppppppcVar34[10] = ppppppcVar32;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,2);\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar38 = pppppppcVar34;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,6);\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar29 = pppppppcStack_208;\n                      if (((pppppppcVar34[10] == (code ******)0x0) ||\n                          (pppppppcVar34[0xb] == (code ******)0x0)) ||\n                         (ppppppcVar32 == (code ******)0x0)) goto LAB_00056cb8;\n                    }\n                    (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                    pppppppcVar29 = pppppppcVar33;\n                  }\n                }\nLAB_00056cb8:\n                pppppppcStack_20c = pppppppcVar29;\n                FUN_0004b234(pppppppcVar3);\n                FUN_0004b2bc(&pppppppcStack_1f8);\n                pppppppcVar29 = pppppppcStack_20c;\n                if (pppppppcStack_20c != (code *******)0x0) {\n                  if (*(int *)(puVar41 + 0x23c78) != 0) {\n                    (**(code **)(puVar41 + 0x23df0))(pppppppcVar34 + 0x22);\n                  }\n                  FUN_0004b338(pppppppcVar34);\n                  *pppppppcVar3 = (code ******)0x0;\n                  pppppppcVar3[1] = (code ******)0x0;\n                  pppppppcVar29 = pppppppcStack_20c;\n                }\n                goto LAB_00056cfc;\n              }\n            }\n          }\n        }" else (if_statement "if (ppppppcVar20 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else {\n          ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23cf0))((int)pppppppcVar3[6] << 2);\n          pppppppcVar29[0x21] = ppppppcVar32;\n          if (ppppppcVar32 != (code ******)0x0) {\n            ppppppcVar32 = (code ******)0x0;\n            if (pppppppcVar3[6] != (code ******)0x0) {\n              do {\n                pppppppcVar29[0x21][(int)ppppppcVar32] = (code *****)ppppppcVar32;\n                ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n              } while (ppppppcVar32 < pppppppcVar3[6]);\n            }\n            FUN_00046050(pppppppcVar29[0xd],*(int *)(puVar41 + 0x23abc) + 0x60e8,pppppppcVar29);\n            ppppppcVar32 = pppppppcVar3[6];\n            if (ppppppcVar32 == (code ******)0x0) {\nLAB_00056704:\n              (**(code **)(puVar41 + 0x23dc0))(pppppppcVar29[0x21]);\n              pppppppcVar29[0x21] = (code ******)0x0;\n            }\n            else {\n              ppppppcVar35 = pppppppcVar29[0x21];\n              if (*ppppppcVar35 == (code *****)0x0) {\n                ppppppcVar39 = (code ******)0x0;\n                do {\n                  ppppppcVar35 = ppppppcVar35 + 1;\n                  ppppppcVar39 = (code ******)((int)ppppppcVar39 + 1);\n                  if (ppppppcVar32 == ppppppcVar39) {\n                    if (ppppppcVar32 == ppppppcVar39) goto LAB_00056704;\n                    break;\n                  }\n                } while ((code ******)*ppppppcVar35 == ppppppcVar39);\n              }\n            }\n          }\n          pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23abc) + 0x73a4);\n          pppppppcVar30 = (code *******)FUN_00045fb4(pppppppcVar29[0xd],pppppppcVar38,pppppppcVar3);\n          pppppppcVar31 = pppppppcVar29;\n          if (pppppppcVar30 == (code *******)0x0) {\n            pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23b40) + -0x5be4);\n            pppppppcVar30 = (code *******)FUN_00045fb4(pppppppcVar29[0xd],pppppppcVar38);\n            if (pppppppcVar30 == (code *******)0x0) {\n              FUN_00046050(pppppppcVar29[0xd],*(int *)(puVar41 + 0x23abc) + 0x61b4);\n              pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23b40) + -0x4614);\n              pppppppcVar30 = (code *******)FUN_00046050(pppppppcVar29[0xd],pppppppcVar38);\n              if (pppppppcVar30 == (code *******)0x0) {\n                uVar7 = 0;\n                iVar18 = *(int *)(puVar41 + 0x23b40);\n                pppppppcVar33 = (code *******)0x0;\nLAB_00056744:\n                if ((code *******)pppppppcVar29[2] != pppppppcVar33) {\nLAB_00056750:\n                  if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                    pppppppcVar38 = pppppppcVar29;\n                    pppppppcVar31 = pppppppcVar33;\n                    pppppppcVar30 =\n                         (code *******)\n                         (*(code *)(iVar18 + -0x561c))\n                                   (&ppppppcStack_204,pppppppcVar29,pppppppcVar33,1);\n                    if (pppppppcVar30 != (code *******)0x0) goto LAB_00056168;\n                    if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                      (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                      uVar7 = 1;\n                    }\n                  }\n                  pppppppcVar33 = (code *******)((int)pppppppcVar33 + 1);\n                  goto LAB_00056744;\n                }\n                if (uVar7 != 0) {\n                  uVar7 = 0;\n                  pppppppcVar33 = (code *******)0x0;\n                  goto LAB_00056750;\n                }\n                if (((((uint)pppppppcVar3[7] & 0x8000000) == 0) &&\n                    (pppppppcVar3[6] != (code ******)0x0)) &&\n                   ((char)*(code *)(pppppppcVar29 + 0x16) < '\0')) {\n                  ppppppcVar32 = pppppppcVar29[2];\n                }\n                else {\n                  if (pppppppcVar29[0x13] == (code ******)0x0) goto LAB_000568f0;\n                  ppppppcVar32 = pppppppcVar29[2];\n                }\n                ppppppcVar35 = (code ******)\n                               (**(code **)(puVar41 + 0x23cf0))((int)ppppppcVar32 * 0xc);\n                pppppppcVar29[7] = ppppppcVar35;\n                if (ppppppcVar35 == (code ******)0x0) {\n                  pppppppcVar30 = (code *******)0xc;\n                  goto LAB_00056168;\n                }\n                if (ppppppcVar32 != (code ******)0x0) {\n                  iVar18 = 0;\n                  ppppppcVar32 = (code ******)0x0;\n                  do {\n                    puVar21 = (undefined1 *)((int)pppppppcVar29[7] + iVar18);\n                    *puVar21 = 0;\n                    puVar21[1] = 0;\n                    puVar21[2] = 0;\n                    puVar21[3] = 0;\n                    puVar21[4] = 0;\n                    puVar21[5] = 0;\n                    puVar21[6] = 0;\n                    puVar21[7] = 0;\n                    puVar21[8] = 0;\n                    puVar21[9] = 0;\n                    puVar21[10] = 0;\n                    puVar21[0xb] = 0;\n                    ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                    iVar18 = iVar18 + 0xc;\n                  } while (ppppppcVar32 < pppppppcVar29[2]);\n                  iVar18 = *(int *)(puVar41 + 0x23abc);\n                  if (pppppppcVar29[2] != (code ******)0x0) {\n                    iVar43 = 0;\n                    pppppppcStack_218 = (code *******)0x0;\n                    do {\n                      piVar5 = *(int **)((int)pppppppcVar29[6] + iVar43 + 8);\n                      if (0 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4)) {\n                        iVar37 = 0;\n                        do {\n                          pppppppcVar38 = pppppppcStack_218;\n                          iVar22 = (*(code *)(iVar18 + 0x6e30))\n                                             (pppppppcVar29[7] + *piVar5 * 3,pppppppcStack_218);\n                          pppppppcVar30 = (code *******)0xc;\n                          if (iVar22 == 0) goto LAB_00056168;\n                          iVar37 = iVar37 + 1;\n                          piVar5 = piVar5 + 1;\n                        } while (iVar37 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4));\n                      }\n                      pppppppcStack_218 = (code *******)((int)pppppppcStack_218 + 1);\n                      iVar43 = iVar43 + 0xc;\n                    } while (pppppppcStack_218 < pppppppcVar29[2]);\n                  }\n                }\nLAB_000568f0:\n                pppppppcStack_20c = (code *******)0x0;\n                if (((((uint)pppppppcVar34[0x16] & 0x20000000) != 0) && (uVar16 == 0)) &&\n                   (pppppppcVar3[5] == (code ******)0x0)) {\n                  if (pppppppcVar34[2] != (code ******)0x0) {\n                    pppppppcVar31 = (code *******)(*(int *)(puVar41 + 0x23754) + 0x6e4c);\n                    if (*(byte *)(*pppppppcVar34 + 1) < 0xd) {\n                    \n                    \n                      pppppppcVar29 =\n                           (code *******)\n                           (*(code *)(puVar41 +\n                                     (int)(pppppppcVar31[*(byte *)(*pppppppcVar34 + 1)] + 0xadc7)))\n                                     ();\n                      return pppppppcVar29;\n                    }\n                    (**(code **)(puVar41 + 0x23bc4))(0);\n                    if (uVar7 != 0) {\n                      pppppppcVar31 = (code *******)&DAT_00000007;\n                      ppppppcVar32 = (code ******)0x0;\n                      do {\n                        ppppppcVar35 = *pppppppcVar34 + (int)ppppppcVar32 * 2;\n                        if (*(char *)(ppppppcVar35 + 1) == '\x01') {\n                          if (*(char *)ppppppcVar35 < '\0') {\n                            ppppppcVar35[1] = (code *****)((uint)ppppppcVar35[1] & 0xfffffbff);\n                          }\n                        }\n                        else if (*(char *)(ppppppcVar35 + 1) == '\x05') {\n                          *(char *)(ppppppcVar35 + 1) = '\a';\n                        }\n                        ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                      } while (ppppppcVar32 < pppppppcVar34[2]);\n                    }\n                  }\n                  pppppppcVar34[0x17] = (code ******)0x1;\n                  if (0 < (int)pppppppcVar34[0x13]) {\n                    uVar7 = 1;\n                  }\n                  *(byte *)(pppppppcVar34 + 0x16) =\n                       (byte)*(code *)(pppppppcVar34 + 0x16) & 0x9f | (byte)((uVar7 & 1) << 6);\n                }\n                ppppppcVar32 = (code ******)pppppppcVar34[0xd][3][7];\n                pppppppcVar34[0x12] = ppppppcVar32;\n                pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppppcVar32 * 3);\n                pppppppcVar33 = (code *******)FUN_000483e8(&ppppppcStack_204,pppppppcVar38);\n                pppppppcVar29 = pppppppcVar33;\n                pppppppcStack_208 = pppppppcVar33;\n                if (pppppppcVar33 == (code *******)0x0) {\n                  if ((0 < (int)pppppppcVar34[0x13]) && (0 < iStack_200)) {\n                    iVar18 = *(int *)(puVar41 + 0x23abc);\n                    iVar43 = *(int *)(puVar41 + 0x23abc);\n                    pppppppcVar29 = (code *******)0x0;\n                    do {\n                      pppppppcVar31 =\n                           (code *******)(*pppppppcVar34 + piStack_1fc[(int)pppppppcVar29] * 2);\n                      if (*(code *)(pppppppcVar31 + 1) == (code)0x4) {\n                        iVar37 = 0;\n                        piVar5 = piStack_1fc;\n                        if (iStack_200 < 1) {\nLAB_00056b8c:\n                          if (iStack_200 != iVar37) {\n                            ppppcVar40 = *pppppppcVar34[5][piStack_1fc[(int)pppppppcVar29] * 3 + 2];\n                            iVar37 = (*(code *)(iVar18 + 0x5ea8))(&ppppppcStack_204,ppppcVar40);\n                            if (iVar37 == 0) {\n                              pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppcVar40 * 3)\n                              ;\n                              pppppppcVar29 =\n                                   (code *******)\n                                   (*(code *)(iVar43 + 0x7f1c))(&ppppppcStack_204,pppppppcVar38);\n                              if (pppppppcVar29 != (code *******)0x0) goto LAB_00056cb8;\n                            }\n                          }\n                        }\n                        else {\n                          do {\n                            ppppppcVar32 = *pppppppcVar34 + *piVar5 * 2;\n                            if ((*(char *)(ppppppcVar32 + 1) == '\t') &&\n                               ((code ******)*ppppppcVar32 == *pppppppcVar31)) goto LAB_00056b8c;\n                            iVar37 = iVar37 + 1;\n                            piVar5 = piVar5 + 1;\n                          } while (iStack_200 != iVar37);\n                        }\n                      }\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1);\n                    } while ((int)pppppppcVar29 < iStack_200);\n                  }\n                  pppppppcVar31 = &ppppppcStack_204;\n                  pppppppcVar38 = pppppppcVar34;\n                  ppppppcVar32 = (code ******)\n                                 FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,0);\n                  pppppppcVar34[9] = ppppppcVar32;\n                  pppppppcVar29 = pppppppcStack_208;\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    if (((uint)ppppppcVar32[0xd] & 0x1000000) == 0) {\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar34[10] = ppppppcVar32;\n                    }\n                    else {\n                      pppppppcVar31 = &ppppppcStack_204;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,1);\n                      pppppppcVar34[10] = ppppppcVar32;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,2);\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar38 = pppppppcVar34;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,6);\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar29 = pppppppcStack_208;\n                      if (((pppppppcVar34[10] == (code ******)0x0) ||\n                          (pppppppcVar34[0xb] == (code ******)0x0)) ||\n                         (ppppppcVar32 == (code ******)0x0)) goto LAB_00056cb8;\n                    }\n                    (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                    pppppppcVar29 = pppppppcVar33;\n                  }\n                }\nLAB_00056cb8:\n                pppppppcStack_20c = pppppppcVar29;\n                FUN_0004b234(pppppppcVar3);\n                FUN_0004b2bc(&pppppppcStack_1f8);\n                pppppppcVar29 = pppppppcStack_20c;\n                if (pppppppcStack_20c != (code *******)0x0) {\n                  if (*(int *)(puVar41 + 0x23c78) != 0) {\n                    (**(code **)(puVar41 + 0x23df0))(pppppppcVar34 + 0x22);\n                  }\n                  FUN_0004b338(pppppppcVar34);\n                  *pppppppcVar3 = (code ******)0x0;\n                  pppppppcVar3[1] = (code ******)0x0;\n                  pppppppcVar29 = pppppppcStack_20c;\n                }\n                goto LAB_00056cfc;\n              }\n            }\n          }\n        }" if (parenthesized_expression "(ppppppcVar20 == (code ******)0x0)" ( (binary_expression "ppppppcVar20 == (code ******)0x0" identifier == (cast_expression "(code ******)0x0" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (compound_statement "{\n          pppppppcVar30 = (code *******)0xc;\n        }" { (expression_statement "pppppppcVar30 = (code *******)0xc;" (assignment_expression "pppppppcVar30 = (code *******)0xc" identifier = (cast_expression "(code *******)0xc" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) }) (else_clause "else {\n          ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23cf0))((int)pppppppcVar3[6] << 2);\n          pppppppcVar29[0x21] = ppppppcVar32;\n          if (ppppppcVar32 != (code ******)0x0) {\n            ppppppcVar32 = (code ******)0x0;\n            if (pppppppcVar3[6] != (code ******)0x0) {\n              do {\n                pppppppcVar29[0x21][(int)ppppppcVar32] = (code *****)ppppppcVar32;\n                ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n              } while (ppppppcVar32 < pppppppcVar3[6]);\n            }\n            FUN_00046050(pppppppcVar29[0xd],*(int *)(puVar41 + 0x23abc) + 0x60e8,pppppppcVar29);\n            ppppppcVar32 = pppppppcVar3[6];\n            if (ppppppcVar32 == (code ******)0x0) {\nLAB_00056704:\n              (**(code **)(puVar41 + 0x23dc0))(pppppppcVar29[0x21]);\n              pppppppcVar29[0x21] = (code ******)0x0;\n            }\n            else {\n              ppppppcVar35 = pppppppcVar29[0x21];\n              if (*ppppppcVar35 == (code *****)0x0) {\n                ppppppcVar39 = (code ******)0x0;\n                do {\n                  ppppppcVar35 = ppppppcVar35 + 1;\n                  ppppppcVar39 = (code ******)((int)ppppppcVar39 + 1);\n                  if (ppppppcVar32 == ppppppcVar39) {\n                    if (ppppppcVar32 == ppppppcVar39) goto LAB_00056704;\n                    break;\n                  }\n                } while ((code ******)*ppppppcVar35 == ppppppcVar39);\n              }\n            }\n          }\n          pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23abc) + 0x73a4);\n          pppppppcVar30 = (code *******)FUN_00045fb4(pppppppcVar29[0xd],pppppppcVar38,pppppppcVar3);\n          pppppppcVar31 = pppppppcVar29;\n          if (pppppppcVar30 == (code *******)0x0) {\n            pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23b40) + -0x5be4);\n            pppppppcVar30 = (code *******)FUN_00045fb4(pppppppcVar29[0xd],pppppppcVar38);\n            if (pppppppcVar30 == (code *******)0x0) {\n              FUN_00046050(pppppppcVar29[0xd],*(int *)(puVar41 + 0x23abc) + 0x61b4);\n              pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23b40) + -0x4614);\n              pppppppcVar30 = (code *******)FUN_00046050(pppppppcVar29[0xd],pppppppcVar38);\n              if (pppppppcVar30 == (code *******)0x0) {\n                uVar7 = 0;\n                iVar18 = *(int *)(puVar41 + 0x23b40);\n                pppppppcVar33 = (code *******)0x0;\nLAB_00056744:\n                if ((code *******)pppppppcVar29[2] != pppppppcVar33) {\nLAB_00056750:\n                  if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                    pppppppcVar38 = pppppppcVar29;\n                    pppppppcVar31 = pppppppcVar33;\n                    pppppppcVar30 =\n                         (code *******)\n                         (*(code *)(iVar18 + -0x561c))\n                                   (&ppppppcStack_204,pppppppcVar29,pppppppcVar33,1);\n                    if (pppppppcVar30 != (code *******)0x0) goto LAB_00056168;\n                    if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                      (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                      uVar7 = 1;\n                    }\n                  }\n                  pppppppcVar33 = (code *******)((int)pppppppcVar33 + 1);\n                  goto LAB_00056744;\n                }\n                if (uVar7 != 0) {\n                  uVar7 = 0;\n                  pppppppcVar33 = (code *******)0x0;\n                  goto LAB_00056750;\n                }\n                if (((((uint)pppppppcVar3[7] & 0x8000000) == 0) &&\n                    (pppppppcVar3[6] != (code ******)0x0)) &&\n                   ((char)*(code *)(pppppppcVar29 + 0x16) < '\0')) {\n                  ppppppcVar32 = pppppppcVar29[2];\n                }\n                else {\n                  if (pppppppcVar29[0x13] == (code ******)0x0) goto LAB_000568f0;\n                  ppppppcVar32 = pppppppcVar29[2];\n                }\n                ppppppcVar35 = (code ******)\n                               (**(code **)(puVar41 + 0x23cf0))((int)ppppppcVar32 * 0xc);\n                pppppppcVar29[7] = ppppppcVar35;\n                if (ppppppcVar35 == (code ******)0x0) {\n                  pppppppcVar30 = (code *******)0xc;\n                  goto LAB_00056168;\n                }\n                if (ppppppcVar32 != (code ******)0x0) {\n                  iVar18 = 0;\n                  ppppppcVar32 = (code ******)0x0;\n                  do {\n                    puVar21 = (undefined1 *)((int)pppppppcVar29[7] + iVar18);\n                    *puVar21 = 0;\n                    puVar21[1] = 0;\n                    puVar21[2] = 0;\n                    puVar21[3] = 0;\n                    puVar21[4] = 0;\n                    puVar21[5] = 0;\n                    puVar21[6] = 0;\n                    puVar21[7] = 0;\n                    puVar21[8] = 0;\n                    puVar21[9] = 0;\n                    puVar21[10] = 0;\n                    puVar21[0xb] = 0;\n                    ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                    iVar18 = iVar18 + 0xc;\n                  } while (ppppppcVar32 < pppppppcVar29[2]);\n                  iVar18 = *(int *)(puVar41 + 0x23abc);\n                  if (pppppppcVar29[2] != (code ******)0x0) {\n                    iVar43 = 0;\n                    pppppppcStack_218 = (code *******)0x0;\n                    do {\n                      piVar5 = *(int **)((int)pppppppcVar29[6] + iVar43 + 8);\n                      if (0 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4)) {\n                        iVar37 = 0;\n                        do {\n                          pppppppcVar38 = pppppppcStack_218;\n                          iVar22 = (*(code *)(iVar18 + 0x6e30))\n                                             (pppppppcVar29[7] + *piVar5 * 3,pppppppcStack_218);\n                          pppppppcVar30 = (code *******)0xc;\n                          if (iVar22 == 0) goto LAB_00056168;\n                          iVar37 = iVar37 + 1;\n                          piVar5 = piVar5 + 1;\n                        } while (iVar37 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4));\n                      }\n                      pppppppcStack_218 = (code *******)((int)pppppppcStack_218 + 1);\n                      iVar43 = iVar43 + 0xc;\n                    } while (pppppppcStack_218 < pppppppcVar29[2]);\n                  }\n                }\nLAB_000568f0:\n                pppppppcStack_20c = (code *******)0x0;\n                if (((((uint)pppppppcVar34[0x16] & 0x20000000) != 0) && (uVar16 == 0)) &&\n                   (pppppppcVar3[5] == (code ******)0x0)) {\n                  if (pppppppcVar34[2] != (code ******)0x0) {\n                    pppppppcVar31 = (code *******)(*(int *)(puVar41 + 0x23754) + 0x6e4c);\n                    if (*(byte *)(*pppppppcVar34 + 1) < 0xd) {\n                    \n                    \n                      pppppppcVar29 =\n                           (code *******)\n                           (*(code *)(puVar41 +\n                                     (int)(pppppppcVar31[*(byte *)(*pppppppcVar34 + 1)] + 0xadc7)))\n                                     ();\n                      return pppppppcVar29;\n                    }\n                    (**(code **)(puVar41 + 0x23bc4))(0);\n                    if (uVar7 != 0) {\n                      pppppppcVar31 = (code *******)&DAT_00000007;\n                      ppppppcVar32 = (code ******)0x0;\n                      do {\n                        ppppppcVar35 = *pppppppcVar34 + (int)ppppppcVar32 * 2;\n                        if (*(char *)(ppppppcVar35 + 1) == '\x01') {\n                          if (*(char *)ppppppcVar35 < '\0') {\n                            ppppppcVar35[1] = (code *****)((uint)ppppppcVar35[1] & 0xfffffbff);\n                          }\n                        }\n                        else if (*(char *)(ppppppcVar35 + 1) == '\x05') {\n                          *(char *)(ppppppcVar35 + 1) = '\a';\n                        }\n                        ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                      } while (ppppppcVar32 < pppppppcVar34[2]);\n                    }\n                  }\n                  pppppppcVar34[0x17] = (code ******)0x1;\n                  if (0 < (int)pppppppcVar34[0x13]) {\n                    uVar7 = 1;\n                  }\n                  *(byte *)(pppppppcVar34 + 0x16) =\n                       (byte)*(code *)(pppppppcVar34 + 0x16) & 0x9f | (byte)((uVar7 & 1) << 6);\n                }\n                ppppppcVar32 = (code ******)pppppppcVar34[0xd][3][7];\n                pppppppcVar34[0x12] = ppppppcVar32;\n                pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppppcVar32 * 3);\n                pppppppcVar33 = (code *******)FUN_000483e8(&ppppppcStack_204,pppppppcVar38);\n                pppppppcVar29 = pppppppcVar33;\n                pppppppcStack_208 = pppppppcVar33;\n                if (pppppppcVar33 == (code *******)0x0) {\n                  if ((0 < (int)pppppppcVar34[0x13]) && (0 < iStack_200)) {\n                    iVar18 = *(int *)(puVar41 + 0x23abc);\n                    iVar43 = *(int *)(puVar41 + 0x23abc);\n                    pppppppcVar29 = (code *******)0x0;\n                    do {\n                      pppppppcVar31 =\n                           (code *******)(*pppppppcVar34 + piStack_1fc[(int)pppppppcVar29] * 2);\n                      if (*(code *)(pppppppcVar31 + 1) == (code)0x4) {\n                        iVar37 = 0;\n                        piVar5 = piStack_1fc;\n                        if (iStack_200 < 1) {\nLAB_00056b8c:\n                          if (iStack_200 != iVar37) {\n                            ppppcVar40 = *pppppppcVar34[5][piStack_1fc[(int)pppppppcVar29] * 3 + 2];\n                            iVar37 = (*(code *)(iVar18 + 0x5ea8))(&ppppppcStack_204,ppppcVar40);\n                            if (iVar37 == 0) {\n                              pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppcVar40 * 3)\n                              ;\n                              pppppppcVar29 =\n                                   (code *******)\n                                   (*(code *)(iVar43 + 0x7f1c))(&ppppppcStack_204,pppppppcVar38);\n                              if (pppppppcVar29 != (code *******)0x0) goto LAB_00056cb8;\n                            }\n                          }\n                        }\n                        else {\n                          do {\n                            ppppppcVar32 = *pppppppcVar34 + *piVar5 * 2;\n                            if ((*(char *)(ppppppcVar32 + 1) == '\t') &&\n                               ((code ******)*ppppppcVar32 == *pppppppcVar31)) goto LAB_00056b8c;\n                            iVar37 = iVar37 + 1;\n                            piVar5 = piVar5 + 1;\n                          } while (iStack_200 != iVar37);\n                        }\n                      }\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1);\n                    } while ((int)pppppppcVar29 < iStack_200);\n                  }\n                  pppppppcVar31 = &ppppppcStack_204;\n                  pppppppcVar38 = pppppppcVar34;\n                  ppppppcVar32 = (code ******)\n                                 FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,0);\n                  pppppppcVar34[9] = ppppppcVar32;\n                  pppppppcVar29 = pppppppcStack_208;\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    if (((uint)ppppppcVar32[0xd] & 0x1000000) == 0) {\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar34[10] = ppppppcVar32;\n                    }\n                    else {\n                      pppppppcVar31 = &ppppppcStack_204;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,1);\n                      pppppppcVar34[10] = ppppppcVar32;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,2);\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar38 = pppppppcVar34;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,6);\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar29 = pppppppcStack_208;\n                      if (((pppppppcVar34[10] == (code ******)0x0) ||\n                          (pppppppcVar34[0xb] == (code ******)0x0)) ||\n                         (ppppppcVar32 == (code ******)0x0)) goto LAB_00056cb8;\n                    }\n                    (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                    pppppppcVar29 = pppppppcVar33;\n                  }\n                }\nLAB_00056cb8:\n                pppppppcStack_20c = pppppppcVar29;\n                FUN_0004b234(pppppppcVar3);\n                FUN_0004b2bc(&pppppppcStack_1f8);\n                pppppppcVar29 = pppppppcStack_20c;\n                if (pppppppcStack_20c != (code *******)0x0) {\n                  if (*(int *)(puVar41 + 0x23c78) != 0) {\n                    (**(code **)(puVar41 + 0x23df0))(pppppppcVar34 + 0x22);\n                  }\n                  FUN_0004b338(pppppppcVar34);\n                  *pppppppcVar3 = (code ******)0x0;\n                  pppppppcVar3[1] = (code ******)0x0;\n                  pppppppcVar29 = pppppppcStack_20c;\n                }\n                goto LAB_00056cfc;\n              }\n            }\n          }\n        }" else (compound_statement "{\n          ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23cf0))((int)pppppppcVar3[6] << 2);\n          pppppppcVar29[0x21] = ppppppcVar32;\n          if (ppppppcVar32 != (code ******)0x0) {\n            ppppppcVar32 = (code ******)0x0;\n            if (pppppppcVar3[6] != (code ******)0x0) {\n              do {\n                pppppppcVar29[0x21][(int)ppppppcVar32] = (code *****)ppppppcVar32;\n                ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n              } while (ppppppcVar32 < pppppppcVar3[6]);\n            }\n            FUN_00046050(pppppppcVar29[0xd],*(int *)(puVar41 + 0x23abc) + 0x60e8,pppppppcVar29);\n            ppppppcVar32 = pppppppcVar3[6];\n            if (ppppppcVar32 == (code ******)0x0) {\nLAB_00056704:\n              (**(code **)(puVar41 + 0x23dc0))(pppppppcVar29[0x21]);\n              pppppppcVar29[0x21] = (code ******)0x0;\n            }\n            else {\n              ppppppcVar35 = pppppppcVar29[0x21];\n              if (*ppppppcVar35 == (code *****)0x0) {\n                ppppppcVar39 = (code ******)0x0;\n                do {\n                  ppppppcVar35 = ppppppcVar35 + 1;\n                  ppppppcVar39 = (code ******)((int)ppppppcVar39 + 1);\n                  if (ppppppcVar32 == ppppppcVar39) {\n                    if (ppppppcVar32 == ppppppcVar39) goto LAB_00056704;\n                    break;\n                  }\n                } while ((code ******)*ppppppcVar35 == ppppppcVar39);\n              }\n            }\n          }\n          pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23abc) + 0x73a4);\n          pppppppcVar30 = (code *******)FUN_00045fb4(pppppppcVar29[0xd],pppppppcVar38,pppppppcVar3);\n          pppppppcVar31 = pppppppcVar29;\n          if (pppppppcVar30 == (code *******)0x0) {\n            pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23b40) + -0x5be4);\n            pppppppcVar30 = (code *******)FUN_00045fb4(pppppppcVar29[0xd],pppppppcVar38);\n            if (pppppppcVar30 == (code *******)0x0) {\n              FUN_00046050(pppppppcVar29[0xd],*(int *)(puVar41 + 0x23abc) + 0x61b4);\n              pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23b40) + -0x4614);\n              pppppppcVar30 = (code *******)FUN_00046050(pppppppcVar29[0xd],pppppppcVar38);\n              if (pppppppcVar30 == (code *******)0x0) {\n                uVar7 = 0;\n                iVar18 = *(int *)(puVar41 + 0x23b40);\n                pppppppcVar33 = (code *******)0x0;\nLAB_00056744:\n                if ((code *******)pppppppcVar29[2] != pppppppcVar33) {\nLAB_00056750:\n                  if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                    pppppppcVar38 = pppppppcVar29;\n                    pppppppcVar31 = pppppppcVar33;\n                    pppppppcVar30 =\n                         (code *******)\n                         (*(code *)(iVar18 + -0x561c))\n                                   (&ppppppcStack_204,pppppppcVar29,pppppppcVar33,1);\n                    if (pppppppcVar30 != (code *******)0x0) goto LAB_00056168;\n                    if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                      (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                      uVar7 = 1;\n                    }\n                  }\n                  pppppppcVar33 = (code *******)((int)pppppppcVar33 + 1);\n                  goto LAB_00056744;\n                }\n                if (uVar7 != 0) {\n                  uVar7 = 0;\n                  pppppppcVar33 = (code *******)0x0;\n                  goto LAB_00056750;\n                }\n                if (((((uint)pppppppcVar3[7] & 0x8000000) == 0) &&\n                    (pppppppcVar3[6] != (code ******)0x0)) &&\n                   ((char)*(code *)(pppppppcVar29 + 0x16) < '\0')) {\n                  ppppppcVar32 = pppppppcVar29[2];\n                }\n                else {\n                  if (pppppppcVar29[0x13] == (code ******)0x0) goto LAB_000568f0;\n                  ppppppcVar32 = pppppppcVar29[2];\n                }\n                ppppppcVar35 = (code ******)\n                               (**(code **)(puVar41 + 0x23cf0))((int)ppppppcVar32 * 0xc);\n                pppppppcVar29[7] = ppppppcVar35;\n                if (ppppppcVar35 == (code ******)0x0) {\n                  pppppppcVar30 = (code *******)0xc;\n                  goto LAB_00056168;\n                }\n                if (ppppppcVar32 != (code ******)0x0) {\n                  iVar18 = 0;\n                  ppppppcVar32 = (code ******)0x0;\n                  do {\n                    puVar21 = (undefined1 *)((int)pppppppcVar29[7] + iVar18);\n                    *puVar21 = 0;\n                    puVar21[1] = 0;\n                    puVar21[2] = 0;\n                    puVar21[3] = 0;\n                    puVar21[4] = 0;\n                    puVar21[5] = 0;\n                    puVar21[6] = 0;\n                    puVar21[7] = 0;\n                    puVar21[8] = 0;\n                    puVar21[9] = 0;\n                    puVar21[10] = 0;\n                    puVar21[0xb] = 0;\n                    ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                    iVar18 = iVar18 + 0xc;\n                  } while (ppppppcVar32 < pppppppcVar29[2]);\n                  iVar18 = *(int *)(puVar41 + 0x23abc);\n                  if (pppppppcVar29[2] != (code ******)0x0) {\n                    iVar43 = 0;\n                    pppppppcStack_218 = (code *******)0x0;\n                    do {\n                      piVar5 = *(int **)((int)pppppppcVar29[6] + iVar43 + 8);\n                      if (0 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4)) {\n                        iVar37 = 0;\n                        do {\n                          pppppppcVar38 = pppppppcStack_218;\n                          iVar22 = (*(code *)(iVar18 + 0x6e30))\n                                             (pppppppcVar29[7] + *piVar5 * 3,pppppppcStack_218);\n                          pppppppcVar30 = (code *******)0xc;\n                          if (iVar22 == 0) goto LAB_00056168;\n                          iVar37 = iVar37 + 1;\n                          piVar5 = piVar5 + 1;\n                        } while (iVar37 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4));\n                      }\n                      pppppppcStack_218 = (code *******)((int)pppppppcStack_218 + 1);\n                      iVar43 = iVar43 + 0xc;\n                    } while (pppppppcStack_218 < pppppppcVar29[2]);\n                  }\n                }\nLAB_000568f0:\n                pppppppcStack_20c = (code *******)0x0;\n                if (((((uint)pppppppcVar34[0x16] & 0x20000000) != 0) && (uVar16 == 0)) &&\n                   (pppppppcVar3[5] == (code ******)0x0)) {\n                  if (pppppppcVar34[2] != (code ******)0x0) {\n                    pppppppcVar31 = (code *******)(*(int *)(puVar41 + 0x23754) + 0x6e4c);\n                    if (*(byte *)(*pppppppcVar34 + 1) < 0xd) {\n                    \n                    \n                      pppppppcVar29 =\n                           (code *******)\n                           (*(code *)(puVar41 +\n                                     (int)(pppppppcVar31[*(byte *)(*pppppppcVar34 + 1)] + 0xadc7)))\n                                     ();\n                      return pppppppcVar29;\n                    }\n                    (**(code **)(puVar41 + 0x23bc4))(0);\n                    if (uVar7 != 0) {\n                      pppppppcVar31 = (code *******)&DAT_00000007;\n                      ppppppcVar32 = (code ******)0x0;\n                      do {\n                        ppppppcVar35 = *pppppppcVar34 + (int)ppppppcVar32 * 2;\n                        if (*(char *)(ppppppcVar35 + 1) == '\x01') {\n                          if (*(char *)ppppppcVar35 < '\0') {\n                            ppppppcVar35[1] = (code *****)((uint)ppppppcVar35[1] & 0xfffffbff);\n                          }\n                        }\n                        else if (*(char *)(ppppppcVar35 + 1) == '\x05') {\n                          *(char *)(ppppppcVar35 + 1) = '\a';\n                        }\n                        ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                      } while (ppppppcVar32 < pppppppcVar34[2]);\n                    }\n                  }\n                  pppppppcVar34[0x17] = (code ******)0x1;\n                  if (0 < (int)pppppppcVar34[0x13]) {\n                    uVar7 = 1;\n                  }\n                  *(byte *)(pppppppcVar34 + 0x16) =\n                       (byte)*(code *)(pppppppcVar34 + 0x16) & 0x9f | (byte)((uVar7 & 1) << 6);\n                }\n                ppppppcVar32 = (code ******)pppppppcVar34[0xd][3][7];\n                pppppppcVar34[0x12] = ppppppcVar32;\n                pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppppcVar32 * 3);\n                pppppppcVar33 = (code *******)FUN_000483e8(&ppppppcStack_204,pppppppcVar38);\n                pppppppcVar29 = pppppppcVar33;\n                pppppppcStack_208 = pppppppcVar33;\n                if (pppppppcVar33 == (code *******)0x0) {\n                  if ((0 < (int)pppppppcVar34[0x13]) && (0 < iStack_200)) {\n                    iVar18 = *(int *)(puVar41 + 0x23abc);\n                    iVar43 = *(int *)(puVar41 + 0x23abc);\n                    pppppppcVar29 = (code *******)0x0;\n                    do {\n                      pppppppcVar31 =\n                           (code *******)(*pppppppcVar34 + piStack_1fc[(int)pppppppcVar29] * 2);\n                      if (*(code *)(pppppppcVar31 + 1) == (code)0x4) {\n                        iVar37 = 0;\n                        piVar5 = piStack_1fc;\n                        if (iStack_200 < 1) {\nLAB_00056b8c:\n                          if (iStack_200 != iVar37) {\n                            ppppcVar40 = *pppppppcVar34[5][piStack_1fc[(int)pppppppcVar29] * 3 + 2];\n                            iVar37 = (*(code *)(iVar18 + 0x5ea8))(&ppppppcStack_204,ppppcVar40);\n                            if (iVar37 == 0) {\n                              pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppcVar40 * 3)\n                              ;\n                              pppppppcVar29 =\n                                   (code *******)\n                                   (*(code *)(iVar43 + 0x7f1c))(&ppppppcStack_204,pppppppcVar38);\n                              if (pppppppcVar29 != (code *******)0x0) goto LAB_00056cb8;\n                            }\n                          }\n                        }\n                        else {\n                          do {\n                            ppppppcVar32 = *pppppppcVar34 + *piVar5 * 2;\n                            if ((*(char *)(ppppppcVar32 + 1) == '\t') &&\n                               ((code ******)*ppppppcVar32 == *pppppppcVar31)) goto LAB_00056b8c;\n                            iVar37 = iVar37 + 1;\n                            piVar5 = piVar5 + 1;\n                          } while (iStack_200 != iVar37);\n                        }\n                      }\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1);\n                    } while ((int)pppppppcVar29 < iStack_200);\n                  }\n                  pppppppcVar31 = &ppppppcStack_204;\n                  pppppppcVar38 = pppppppcVar34;\n                  ppppppcVar32 = (code ******)\n                                 FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,0);\n                  pppppppcVar34[9] = ppppppcVar32;\n                  pppppppcVar29 = pppppppcStack_208;\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    if (((uint)ppppppcVar32[0xd] & 0x1000000) == 0) {\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar34[10] = ppppppcVar32;\n                    }\n                    else {\n                      pppppppcVar31 = &ppppppcStack_204;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,1);\n                      pppppppcVar34[10] = ppppppcVar32;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,2);\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar38 = pppppppcVar34;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,6);\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar29 = pppppppcStack_208;\n                      if (((pppppppcVar34[10] == (code ******)0x0) ||\n                          (pppppppcVar34[0xb] == (code ******)0x0)) ||\n                         (ppppppcVar32 == (code ******)0x0)) goto LAB_00056cb8;\n                    }\n                    (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                    pppppppcVar29 = pppppppcVar33;\n                  }\n                }\nLAB_00056cb8:\n                pppppppcStack_20c = pppppppcVar29;\n                FUN_0004b234(pppppppcVar3);\n                FUN_0004b2bc(&pppppppcStack_1f8);\n                pppppppcVar29 = pppppppcStack_20c;\n                if (pppppppcStack_20c != (code *******)0x0) {\n                  if (*(int *)(puVar41 + 0x23c78) != 0) {\n                    (**(code **)(puVar41 + 0x23df0))(pppppppcVar34 + 0x22);\n                  }\n                  FUN_0004b338(pppppppcVar34);\n                  *pppppppcVar3 = (code ******)0x0;\n                  pppppppcVar3[1] = (code ******)0x0;\n                  pppppppcVar29 = pppppppcStack_20c;\n                }\n                goto LAB_00056cfc;\n              }\n            }\n          }\n        }" { (expression_statement "ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23cf0))((int)pppppppcVar3[6] << 2);" (assignment_expression "ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23cf0))((int)pppppppcVar3[6] << 2)" identifier = (cast_expression "(code ******)(**(code **)(puVar41 + 0x23cf0))((int)pppppppcVar3[6] << 2)" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (call_expression "(**(code **)(puVar41 + 0x23cf0))((int)pppppppcVar3[6] << 2)" (parenthesized_expression "(**(code **)(puVar41 + 0x23cf0))" ( (pointer_expression "**(code **)(puVar41 + 0x23cf0)" * (pointer_expression "*(code **)(puVar41 + 0x23cf0)" * (cast_expression "(code **)(puVar41 + 0x23cf0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar41 + 0x23cf0)" ( (binary_expression "puVar41 + 0x23cf0" identifier + number_literal) ))))) )) (argument_list "((int)pppppppcVar3[6] << 2)" ( (binary_expression "(int)pppppppcVar3[6] << 2" (cast_expression "(int)pppppppcVar3[6]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "pppppppcVar3[6]" identifier [ number_literal ])) << number_literal) ))))) ;) (expression_statement "pppppppcVar29[0x21] = ppppppcVar32;" (assignment_expression "pppppppcVar29[0x21] = ppppppcVar32" (subscript_expression "pppppppcVar29[0x21]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (ppppppcVar32 != (code ******)0x0) {\n            ppppppcVar32 = (code ******)0x0;\n            if (pppppppcVar3[6] != (code ******)0x0) {\n              do {\n                pppppppcVar29[0x21][(int)ppppppcVar32] = (code *****)ppppppcVar32;\n                ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n              } while (ppppppcVar32 < pppppppcVar3[6]);\n            }\n            FUN_00046050(pppppppcVar29[0xd],*(int *)(puVar41 + 0x23abc) + 0x60e8,pppppppcVar29);\n            ppppppcVar32 = pppppppcVar3[6];\n            if (ppppppcVar32 == (code ******)0x0) {\nLAB_00056704:\n              (**(code **)(puVar41 + 0x23dc0))(pppppppcVar29[0x21]);\n              pppppppcVar29[0x21] = (code ******)0x0;\n            }\n            else {\n              ppppppcVar35 = pppppppcVar29[0x21];\n              if (*ppppppcVar35 == (code *****)0x0) {\n                ppppppcVar39 = (code ******)0x0;\n                do {\n                  ppppppcVar35 = ppppppcVar35 + 1;\n                  ppppppcVar39 = (code ******)((int)ppppppcVar39 + 1);\n                  if (ppppppcVar32 == ppppppcVar39) {\n                    if (ppppppcVar32 == ppppppcVar39) goto LAB_00056704;\n                    break;\n                  }\n                } while ((code ******)*ppppppcVar35 == ppppppcVar39);\n              }\n            }\n          }" if (parenthesized_expression "(ppppppcVar32 != (code ******)0x0)" ( (binary_expression "ppppppcVar32 != (code ******)0x0" identifier != (cast_expression "(code ******)0x0" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (compound_statement "{\n            ppppppcVar32 = (code ******)0x0;\n            if (pppppppcVar3[6] != (code ******)0x0) {\n              do {\n                pppppppcVar29[0x21][(int)ppppppcVar32] = (code *****)ppppppcVar32;\n                ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n              } while (ppppppcVar32 < pppppppcVar3[6]);\n            }\n            FUN_00046050(pppppppcVar29[0xd],*(int *)(puVar41 + 0x23abc) + 0x60e8,pppppppcVar29);\n            ppppppcVar32 = pppppppcVar3[6];\n            if (ppppppcVar32 == (code ******)0x0) {\nLAB_00056704:\n              (**(code **)(puVar41 + 0x23dc0))(pppppppcVar29[0x21]);\n              pppppppcVar29[0x21] = (code ******)0x0;\n            }\n            else {\n              ppppppcVar35 = pppppppcVar29[0x21];\n              if (*ppppppcVar35 == (code *****)0x0) {\n                ppppppcVar39 = (code ******)0x0;\n                do {\n                  ppppppcVar35 = ppppppcVar35 + 1;\n                  ppppppcVar39 = (code ******)((int)ppppppcVar39 + 1);\n                  if (ppppppcVar32 == ppppppcVar39) {\n                    if (ppppppcVar32 == ppppppcVar39) goto LAB_00056704;\n                    break;\n                  }\n                } while ((code ******)*ppppppcVar35 == ppppppcVar39);\n              }\n            }\n          }" { (expression_statement "ppppppcVar32 = (code ******)0x0;" (assignment_expression "ppppppcVar32 = (code ******)0x0" identifier = (cast_expression "(code ******)0x0" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) (if_statement "if (pppppppcVar3[6] != (code ******)0x0) {\n              do {\n                pppppppcVar29[0x21][(int)ppppppcVar32] = (code *****)ppppppcVar32;\n                ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n              } while (ppppppcVar32 < pppppppcVar3[6]);\n            }" if (parenthesized_expression "(pppppppcVar3[6] != (code ******)0x0)" ( (binary_expression "pppppppcVar3[6] != (code ******)0x0" (subscript_expression "pppppppcVar3[6]" identifier [ number_literal ]) != (cast_expression "(code ******)0x0" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (compound_statement "{\n              do {\n                pppppppcVar29[0x21][(int)ppppppcVar32] = (code *****)ppppppcVar32;\n                ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n              } while (ppppppcVar32 < pppppppcVar3[6]);\n            }" { (do_statement "do {\n                pppppppcVar29[0x21][(int)ppppppcVar32] = (code *****)ppppppcVar32;\n                ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n              } while (ppppppcVar32 < pppppppcVar3[6]);" do (compound_statement "{\n                pppppppcVar29[0x21][(int)ppppppcVar32] = (code *****)ppppppcVar32;\n                ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n              }" { (expression_statement "pppppppcVar29[0x21][(int)ppppppcVar32] = (code *****)ppppppcVar32;" (assignment_expression "pppppppcVar29[0x21][(int)ppppppcVar32] = (code *****)ppppppcVar32" (subscript_expression "pppppppcVar29[0x21][(int)ppppppcVar32]" (subscript_expression "pppppppcVar29[0x21]" identifier [ number_literal ]) [ (cast_expression "(int)ppppppcVar32" ( (type_descriptor "int" primitive_type) ) identifier) ]) = (cast_expression "(code *****)ppppppcVar32" ( (type_descriptor "code *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier)) ;) (expression_statement "ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);" (assignment_expression "ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1)" identifier = (cast_expression "(code ******)((int)ppppppcVar32 + 1)" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "((int)ppppppcVar32 + 1)" ( (binary_expression "(int)ppppppcVar32 + 1" (cast_expression "(int)ppppppcVar32" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) }) while (parenthesized_expression "(ppppppcVar32 < pppppppcVar3[6])" ( (binary_expression "ppppppcVar32 < pppppppcVar3[6]" identifier < (subscript_expression "pppppppcVar3[6]" identifier [ number_literal ])) )) ;) })) (expression_statement "FUN_00046050(pppppppcVar29[0xd],*(int *)(puVar41 + 0x23abc) + 0x60e8,pppppppcVar29);" (call_expression "FUN_00046050(pppppppcVar29[0xd],*(int *)(puVar41 + 0x23abc) + 0x60e8,pppppppcVar29)" identifier (argument_list "(pppppppcVar29[0xd],*(int *)(puVar41 + 0x23abc) + 0x60e8,pppppppcVar29)" ( (subscript_expression "pppppppcVar29[0xd]" identifier [ number_literal ]) , (binary_expression "*(int *)(puVar41 + 0x23abc) + 0x60e8" (pointer_expression "*(int *)(puVar41 + 0x23abc)" * (cast_expression "(int *)(puVar41 + 0x23abc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar41 + 0x23abc)" ( (binary_expression "puVar41 + 0x23abc" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (expression_statement "ppppppcVar32 = pppppppcVar3[6];" (assignment_expression "ppppppcVar32 = pppppppcVar3[6]" identifier = (subscript_expression "pppppppcVar3[6]" identifier [ number_literal ])) ;) (if_statement "if (ppppppcVar32 == (code ******)0x0) {\nLAB_00056704:\n              (**(code **)(puVar41 + 0x23dc0))(pppppppcVar29[0x21]);\n              pppppppcVar29[0x21] = (code ******)0x0;\n            }\n            else {\n              ppppppcVar35 = pppppppcVar29[0x21];\n              if (*ppppppcVar35 == (code *****)0x0) {\n                ppppppcVar39 = (code ******)0x0;\n                do {\n                  ppppppcVar35 = ppppppcVar35 + 1;\n                  ppppppcVar39 = (code ******)((int)ppppppcVar39 + 1);\n                  if (ppppppcVar32 == ppppppcVar39) {\n                    if (ppppppcVar32 == ppppppcVar39) goto LAB_00056704;\n                    break;\n                  }\n                } while ((code ******)*ppppppcVar35 == ppppppcVar39);\n              }\n            }" if (parenthesized_expression "(ppppppcVar32 == (code ******)0x0)" ( (binary_expression "ppppppcVar32 == (code ******)0x0" identifier == (cast_expression "(code ******)0x0" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (compound_statement "{\nLAB_00056704:\n              (**(code **)(puVar41 + 0x23dc0))(pppppppcVar29[0x21]);\n              pppppppcVar29[0x21] = (code ******)0x0;\n            }" { (labeled_statement "LAB_00056704:\n              (**(code **)(puVar41 + 0x23dc0))(pppppppcVar29[0x21]);" statement_identifier : (expression_statement "(**(code **)(puVar41 + 0x23dc0))(pppppppcVar29[0x21]);" (call_expression "(**(code **)(puVar41 + 0x23dc0))(pppppppcVar29[0x21])" (parenthesized_expression "(**(code **)(puVar41 + 0x23dc0))" ( (pointer_expression "**(code **)(puVar41 + 0x23dc0)" * (pointer_expression "*(code **)(puVar41 + 0x23dc0)" * (cast_expression "(code **)(puVar41 + 0x23dc0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar41 + 0x23dc0)" ( (binary_expression "puVar41 + 0x23dc0" identifier + number_literal) ))))) )) (argument_list "(pppppppcVar29[0x21])" ( (subscript_expression "pppppppcVar29[0x21]" identifier [ number_literal ]) ))) ;)) (expression_statement "pppppppcVar29[0x21] = (code ******)0x0;" (assignment_expression "pppppppcVar29[0x21] = (code ******)0x0" (subscript_expression "pppppppcVar29[0x21]" identifier [ number_literal ]) = (cast_expression "(code ******)0x0" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) }) (else_clause "else {\n              ppppppcVar35 = pppppppcVar29[0x21];\n              if (*ppppppcVar35 == (code *****)0x0) {\n                ppppppcVar39 = (code ******)0x0;\n                do {\n                  ppppppcVar35 = ppppppcVar35 + 1;\n                  ppppppcVar39 = (code ******)((int)ppppppcVar39 + 1);\n                  if (ppppppcVar32 == ppppppcVar39) {\n                    if (ppppppcVar32 == ppppppcVar39) goto LAB_00056704;\n                    break;\n                  }\n                } while ((code ******)*ppppppcVar35 == ppppppcVar39);\n              }\n            }" else (compound_statement "{\n              ppppppcVar35 = pppppppcVar29[0x21];\n              if (*ppppppcVar35 == (code *****)0x0) {\n                ppppppcVar39 = (code ******)0x0;\n                do {\n                  ppppppcVar35 = ppppppcVar35 + 1;\n                  ppppppcVar39 = (code ******)((int)ppppppcVar39 + 1);\n                  if (ppppppcVar32 == ppppppcVar39) {\n                    if (ppppppcVar32 == ppppppcVar39) goto LAB_00056704;\n                    break;\n                  }\n                } while ((code ******)*ppppppcVar35 == ppppppcVar39);\n              }\n            }" { (expression_statement "ppppppcVar35 = pppppppcVar29[0x21];" (assignment_expression "ppppppcVar35 = pppppppcVar29[0x21]" identifier = (subscript_expression "pppppppcVar29[0x21]" identifier [ number_literal ])) ;) (if_statement "if (*ppppppcVar35 == (code *****)0x0) {\n                ppppppcVar39 = (code ******)0x0;\n                do {\n                  ppppppcVar35 = ppppppcVar35 + 1;\n                  ppppppcVar39 = (code ******)((int)ppppppcVar39 + 1);\n                  if (ppppppcVar32 == ppppppcVar39) {\n                    if (ppppppcVar32 == ppppppcVar39) goto LAB_00056704;\n                    break;\n                  }\n                } while ((code ******)*ppppppcVar35 == ppppppcVar39);\n              }" if (parenthesized_expression "(*ppppppcVar35 == (code *****)0x0)" ( (binary_expression "*ppppppcVar35 == (code *****)0x0" (pointer_expression "*ppppppcVar35" * identifier) == (cast_expression "(code *****)0x0" ( (type_descriptor "code *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) )) (compound_statement "{\n                ppppppcVar39 = (code ******)0x0;\n                do {\n                  ppppppcVar35 = ppppppcVar35 + 1;\n                  ppppppcVar39 = (code ******)((int)ppppppcVar39 + 1);\n                  if (ppppppcVar32 == ppppppcVar39) {\n                    if (ppppppcVar32 == ppppppcVar39) goto LAB_00056704;\n                    break;\n                  }\n                } while ((code ******)*ppppppcVar35 == ppppppcVar39);\n              }" { (expression_statement "ppppppcVar39 = (code ******)0x0;" (assignment_expression "ppppppcVar39 = (code ******)0x0" identifier = (cast_expression "(code ******)0x0" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) (do_statement "do {\n                  ppppppcVar35 = ppppppcVar35 + 1;\n                  ppppppcVar39 = (code ******)((int)ppppppcVar39 + 1);\n                  if (ppppppcVar32 == ppppppcVar39) {\n                    if (ppppppcVar32 == ppppppcVar39) goto LAB_00056704;\n                    break;\n                  }\n                } while ((code ******)*ppppppcVar35 == ppppppcVar39);" do (compound_statement "{\n                  ppppppcVar35 = ppppppcVar35 + 1;\n                  ppppppcVar39 = (code ******)((int)ppppppcVar39 + 1);\n                  if (ppppppcVar32 == ppppppcVar39) {\n                    if (ppppppcVar32 == ppppppcVar39) goto LAB_00056704;\n                    break;\n                  }\n                }" { (expression_statement "ppppppcVar35 = ppppppcVar35 + 1;" (assignment_expression "ppppppcVar35 = ppppppcVar35 + 1" identifier = (binary_expression "ppppppcVar35 + 1" identifier + number_literal)) ;) (expression_statement "ppppppcVar39 = (code ******)((int)ppppppcVar39 + 1);" (assignment_expression "ppppppcVar39 = (code ******)((int)ppppppcVar39 + 1)" identifier = (cast_expression "(code ******)((int)ppppppcVar39 + 1)" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "((int)ppppppcVar39 + 1)" ( (binary_expression "(int)ppppppcVar39 + 1" (cast_expression "(int)ppppppcVar39" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if (ppppppcVar32 == ppppppcVar39) {\n                    if (ppppppcVar32 == ppppppcVar39) goto LAB_00056704;\n                    break;\n                  }" if (parenthesized_expression "(ppppppcVar32 == ppppppcVar39)" ( (binary_expression "ppppppcVar32 == ppppppcVar39" identifier == identifier) )) (compound_statement "{\n                    if (ppppppcVar32 == ppppppcVar39) goto LAB_00056704;\n                    break;\n                  }" { (if_statement "if (ppppppcVar32 == ppppppcVar39) goto LAB_00056704;" if (parenthesized_expression "(ppppppcVar32 == ppppppcVar39)" ( (binary_expression "ppppppcVar32 == ppppppcVar39" identifier == identifier) )) (goto_statement "goto LAB_00056704;" goto statement_identifier ;)) (break_statement "break;" break ;) })) }) while (parenthesized_expression "((code ******)*ppppppcVar35 == ppppppcVar39)" ( (binary_expression "(code ******)*ppppppcVar35 == ppppppcVar39" (cast_expression "(code ******)*ppppppcVar35" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (pointer_expression "*ppppppcVar35" * identifier)) == identifier) )) ;) })) }))) })) (expression_statement "pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23abc) + 0x73a4);" (assignment_expression "pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23abc) + 0x73a4)" identifier = (cast_expression "(code *******)(*(int *)(puVar41 + 0x23abc) + 0x73a4)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(*(int *)(puVar41 + 0x23abc) + 0x73a4)" ( (binary_expression "*(int *)(puVar41 + 0x23abc) + 0x73a4" (pointer_expression "*(int *)(puVar41 + 0x23abc)" * (cast_expression "(int *)(puVar41 + 0x23abc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar41 + 0x23abc)" ( (binary_expression "puVar41 + 0x23abc" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "pppppppcVar30 = (code *******)FUN_00045fb4(pppppppcVar29[0xd],pppppppcVar38,pppppppcVar3);" (assignment_expression "pppppppcVar30 = (code *******)FUN_00045fb4(pppppppcVar29[0xd],pppppppcVar38,pppppppcVar3)" identifier = (cast_expression "(code *******)FUN_00045fb4(pppppppcVar29[0xd],pppppppcVar38,pppppppcVar3)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "FUN_00045fb4(pppppppcVar29[0xd],pppppppcVar38,pppppppcVar3)" identifier (argument_list "(pppppppcVar29[0xd],pppppppcVar38,pppppppcVar3)" ( (subscript_expression "pppppppcVar29[0xd]" identifier [ number_literal ]) , identifier , identifier ))))) ;) (expression_statement "pppppppcVar31 = pppppppcVar29;" (assignment_expression "pppppppcVar31 = pppppppcVar29" identifier = identifier) ;) (if_statement "if (pppppppcVar30 == (code *******)0x0) {\n            pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23b40) + -0x5be4);\n            pppppppcVar30 = (code *******)FUN_00045fb4(pppppppcVar29[0xd],pppppppcVar38);\n            if (pppppppcVar30 == (code *******)0x0) {\n              FUN_00046050(pppppppcVar29[0xd],*(int *)(puVar41 + 0x23abc) + 0x61b4);\n              pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23b40) + -0x4614);\n              pppppppcVar30 = (code *******)FUN_00046050(pppppppcVar29[0xd],pppppppcVar38);\n              if (pppppppcVar30 == (code *******)0x0) {\n                uVar7 = 0;\n                iVar18 = *(int *)(puVar41 + 0x23b40);\n                pppppppcVar33 = (code *******)0x0;\nLAB_00056744:\n                if ((code *******)pppppppcVar29[2] != pppppppcVar33) {\nLAB_00056750:\n                  if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                    pppppppcVar38 = pppppppcVar29;\n                    pppppppcVar31 = pppppppcVar33;\n                    pppppppcVar30 =\n                         (code *******)\n                         (*(code *)(iVar18 + -0x561c))\n                                   (&ppppppcStack_204,pppppppcVar29,pppppppcVar33,1);\n                    if (pppppppcVar30 != (code *******)0x0) goto LAB_00056168;\n                    if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                      (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                      uVar7 = 1;\n                    }\n                  }\n                  pppppppcVar33 = (code *******)((int)pppppppcVar33 + 1);\n                  goto LAB_00056744;\n                }\n                if (uVar7 != 0) {\n                  uVar7 = 0;\n                  pppppppcVar33 = (code *******)0x0;\n                  goto LAB_00056750;\n                }\n                if (((((uint)pppppppcVar3[7] & 0x8000000) == 0) &&\n                    (pppppppcVar3[6] != (code ******)0x0)) &&\n                   ((char)*(code *)(pppppppcVar29 + 0x16) < '\0')) {\n                  ppppppcVar32 = pppppppcVar29[2];\n                }\n                else {\n                  if (pppppppcVar29[0x13] == (code ******)0x0) goto LAB_000568f0;\n                  ppppppcVar32 = pppppppcVar29[2];\n                }\n                ppppppcVar35 = (code ******)\n                               (**(code **)(puVar41 + 0x23cf0))((int)ppppppcVar32 * 0xc);\n                pppppppcVar29[7] = ppppppcVar35;\n                if (ppppppcVar35 == (code ******)0x0) {\n                  pppppppcVar30 = (code *******)0xc;\n                  goto LAB_00056168;\n                }\n                if (ppppppcVar32 != (code ******)0x0) {\n                  iVar18 = 0;\n                  ppppppcVar32 = (code ******)0x0;\n                  do {\n                    puVar21 = (undefined1 *)((int)pppppppcVar29[7] + iVar18);\n                    *puVar21 = 0;\n                    puVar21[1] = 0;\n                    puVar21[2] = 0;\n                    puVar21[3] = 0;\n                    puVar21[4] = 0;\n                    puVar21[5] = 0;\n                    puVar21[6] = 0;\n                    puVar21[7] = 0;\n                    puVar21[8] = 0;\n                    puVar21[9] = 0;\n                    puVar21[10] = 0;\n                    puVar21[0xb] = 0;\n                    ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                    iVar18 = iVar18 + 0xc;\n                  } while (ppppppcVar32 < pppppppcVar29[2]);\n                  iVar18 = *(int *)(puVar41 + 0x23abc);\n                  if (pppppppcVar29[2] != (code ******)0x0) {\n                    iVar43 = 0;\n                    pppppppcStack_218 = (code *******)0x0;\n                    do {\n                      piVar5 = *(int **)((int)pppppppcVar29[6] + iVar43 + 8);\n                      if (0 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4)) {\n                        iVar37 = 0;\n                        do {\n                          pppppppcVar38 = pppppppcStack_218;\n                          iVar22 = (*(code *)(iVar18 + 0x6e30))\n                                             (pppppppcVar29[7] + *piVar5 * 3,pppppppcStack_218);\n                          pppppppcVar30 = (code *******)0xc;\n                          if (iVar22 == 0) goto LAB_00056168;\n                          iVar37 = iVar37 + 1;\n                          piVar5 = piVar5 + 1;\n                        } while (iVar37 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4));\n                      }\n                      pppppppcStack_218 = (code *******)((int)pppppppcStack_218 + 1);\n                      iVar43 = iVar43 + 0xc;\n                    } while (pppppppcStack_218 < pppppppcVar29[2]);\n                  }\n                }\nLAB_000568f0:\n                pppppppcStack_20c = (code *******)0x0;\n                if (((((uint)pppppppcVar34[0x16] & 0x20000000) != 0) && (uVar16 == 0)) &&\n                   (pppppppcVar3[5] == (code ******)0x0)) {\n                  if (pppppppcVar34[2] != (code ******)0x0) {\n                    pppppppcVar31 = (code *******)(*(int *)(puVar41 + 0x23754) + 0x6e4c);\n                    if (*(byte *)(*pppppppcVar34 + 1) < 0xd) {\n                    \n                    \n                      pppppppcVar29 =\n                           (code *******)\n                           (*(code *)(puVar41 +\n                                     (int)(pppppppcVar31[*(byte *)(*pppppppcVar34 + 1)] + 0xadc7)))\n                                     ();\n                      return pppppppcVar29;\n                    }\n                    (**(code **)(puVar41 + 0x23bc4))(0);\n                    if (uVar7 != 0) {\n                      pppppppcVar31 = (code *******)&DAT_00000007;\n                      ppppppcVar32 = (code ******)0x0;\n                      do {\n                        ppppppcVar35 = *pppppppcVar34 + (int)ppppppcVar32 * 2;\n                        if (*(char *)(ppppppcVar35 + 1) == '\x01') {\n                          if (*(char *)ppppppcVar35 < '\0') {\n                            ppppppcVar35[1] = (code *****)((uint)ppppppcVar35[1] & 0xfffffbff);\n                          }\n                        }\n                        else if (*(char *)(ppppppcVar35 + 1) == '\x05') {\n                          *(char *)(ppppppcVar35 + 1) = '\a';\n                        }\n                        ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                      } while (ppppppcVar32 < pppppppcVar34[2]);\n                    }\n                  }\n                  pppppppcVar34[0x17] = (code ******)0x1;\n                  if (0 < (int)pppppppcVar34[0x13]) {\n                    uVar7 = 1;\n                  }\n                  *(byte *)(pppppppcVar34 + 0x16) =\n                       (byte)*(code *)(pppppppcVar34 + 0x16) & 0x9f | (byte)((uVar7 & 1) << 6);\n                }\n                ppppppcVar32 = (code ******)pppppppcVar34[0xd][3][7];\n                pppppppcVar34[0x12] = ppppppcVar32;\n                pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppppcVar32 * 3);\n                pppppppcVar33 = (code *******)FUN_000483e8(&ppppppcStack_204,pppppppcVar38);\n                pppppppcVar29 = pppppppcVar33;\n                pppppppcStack_208 = pppppppcVar33;\n                if (pppppppcVar33 == (code *******)0x0) {\n                  if ((0 < (int)pppppppcVar34[0x13]) && (0 < iStack_200)) {\n                    iVar18 = *(int *)(puVar41 + 0x23abc);\n                    iVar43 = *(int *)(puVar41 + 0x23abc);\n                    pppppppcVar29 = (code *******)0x0;\n                    do {\n                      pppppppcVar31 =\n                           (code *******)(*pppppppcVar34 + piStack_1fc[(int)pppppppcVar29] * 2);\n                      if (*(code *)(pppppppcVar31 + 1) == (code)0x4) {\n                        iVar37 = 0;\n                        piVar5 = piStack_1fc;\n                        if (iStack_200 < 1) {\nLAB_00056b8c:\n                          if (iStack_200 != iVar37) {\n                            ppppcVar40 = *pppppppcVar34[5][piStack_1fc[(int)pppppppcVar29] * 3 + 2];\n                            iVar37 = (*(code *)(iVar18 + 0x5ea8))(&ppppppcStack_204,ppppcVar40);\n                            if (iVar37 == 0) {\n                              pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppcVar40 * 3)\n                              ;\n                              pppppppcVar29 =\n                                   (code *******)\n                                   (*(code *)(iVar43 + 0x7f1c))(&ppppppcStack_204,pppppppcVar38);\n                              if (pppppppcVar29 != (code *******)0x0) goto LAB_00056cb8;\n                            }\n                          }\n                        }\n                        else {\n                          do {\n                            ppppppcVar32 = *pppppppcVar34 + *piVar5 * 2;\n                            if ((*(char *)(ppppppcVar32 + 1) == '\t') &&\n                               ((code ******)*ppppppcVar32 == *pppppppcVar31)) goto LAB_00056b8c;\n                            iVar37 = iVar37 + 1;\n                            piVar5 = piVar5 + 1;\n                          } while (iStack_200 != iVar37);\n                        }\n                      }\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1);\n                    } while ((int)pppppppcVar29 < iStack_200);\n                  }\n                  pppppppcVar31 = &ppppppcStack_204;\n                  pppppppcVar38 = pppppppcVar34;\n                  ppppppcVar32 = (code ******)\n                                 FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,0);\n                  pppppppcVar34[9] = ppppppcVar32;\n                  pppppppcVar29 = pppppppcStack_208;\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    if (((uint)ppppppcVar32[0xd] & 0x1000000) == 0) {\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar34[10] = ppppppcVar32;\n                    }\n                    else {\n                      pppppppcVar31 = &ppppppcStack_204;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,1);\n                      pppppppcVar34[10] = ppppppcVar32;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,2);\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar38 = pppppppcVar34;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,6);\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar29 = pppppppcStack_208;\n                      if (((pppppppcVar34[10] == (code ******)0x0) ||\n                          (pppppppcVar34[0xb] == (code ******)0x0)) ||\n                         (ppppppcVar32 == (code ******)0x0)) goto LAB_00056cb8;\n                    }\n                    (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                    pppppppcVar29 = pppppppcVar33;\n                  }\n                }\nLAB_00056cb8:\n                pppppppcStack_20c = pppppppcVar29;\n                FUN_0004b234(pppppppcVar3);\n                FUN_0004b2bc(&pppppppcStack_1f8);\n                pppppppcVar29 = pppppppcStack_20c;\n                if (pppppppcStack_20c != (code *******)0x0) {\n                  if (*(int *)(puVar41 + 0x23c78) != 0) {\n                    (**(code **)(puVar41 + 0x23df0))(pppppppcVar34 + 0x22);\n                  }\n                  FUN_0004b338(pppppppcVar34);\n                  *pppppppcVar3 = (code ******)0x0;\n                  pppppppcVar3[1] = (code ******)0x0;\n                  pppppppcVar29 = pppppppcStack_20c;\n                }\n                goto LAB_00056cfc;\n              }\n            }\n          }" if (parenthesized_expression "(pppppppcVar30 == (code *******)0x0)" ( (binary_expression "pppppppcVar30 == (code *******)0x0" identifier == (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\n            pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23b40) + -0x5be4);\n            pppppppcVar30 = (code *******)FUN_00045fb4(pppppppcVar29[0xd],pppppppcVar38);\n            if (pppppppcVar30 == (code *******)0x0) {\n              FUN_00046050(pppppppcVar29[0xd],*(int *)(puVar41 + 0x23abc) + 0x61b4);\n              pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23b40) + -0x4614);\n              pppppppcVar30 = (code *******)FUN_00046050(pppppppcVar29[0xd],pppppppcVar38);\n              if (pppppppcVar30 == (code *******)0x0) {\n                uVar7 = 0;\n                iVar18 = *(int *)(puVar41 + 0x23b40);\n                pppppppcVar33 = (code *******)0x0;\nLAB_00056744:\n                if ((code *******)pppppppcVar29[2] != pppppppcVar33) {\nLAB_00056750:\n                  if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                    pppppppcVar38 = pppppppcVar29;\n                    pppppppcVar31 = pppppppcVar33;\n                    pppppppcVar30 =\n                         (code *******)\n                         (*(code *)(iVar18 + -0x561c))\n                                   (&ppppppcStack_204,pppppppcVar29,pppppppcVar33,1);\n                    if (pppppppcVar30 != (code *******)0x0) goto LAB_00056168;\n                    if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                      (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                      uVar7 = 1;\n                    }\n                  }\n                  pppppppcVar33 = (code *******)((int)pppppppcVar33 + 1);\n                  goto LAB_00056744;\n                }\n                if (uVar7 != 0) {\n                  uVar7 = 0;\n                  pppppppcVar33 = (code *******)0x0;\n                  goto LAB_00056750;\n                }\n                if (((((uint)pppppppcVar3[7] & 0x8000000) == 0) &&\n                    (pppppppcVar3[6] != (code ******)0x0)) &&\n                   ((char)*(code *)(pppppppcVar29 + 0x16) < '\0')) {\n                  ppppppcVar32 = pppppppcVar29[2];\n                }\n                else {\n                  if (pppppppcVar29[0x13] == (code ******)0x0) goto LAB_000568f0;\n                  ppppppcVar32 = pppppppcVar29[2];\n                }\n                ppppppcVar35 = (code ******)\n                               (**(code **)(puVar41 + 0x23cf0))((int)ppppppcVar32 * 0xc);\n                pppppppcVar29[7] = ppppppcVar35;\n                if (ppppppcVar35 == (code ******)0x0) {\n                  pppppppcVar30 = (code *******)0xc;\n                  goto LAB_00056168;\n                }\n                if (ppppppcVar32 != (code ******)0x0) {\n                  iVar18 = 0;\n                  ppppppcVar32 = (code ******)0x0;\n                  do {\n                    puVar21 = (undefined1 *)((int)pppppppcVar29[7] + iVar18);\n                    *puVar21 = 0;\n                    puVar21[1] = 0;\n                    puVar21[2] = 0;\n                    puVar21[3] = 0;\n                    puVar21[4] = 0;\n                    puVar21[5] = 0;\n                    puVar21[6] = 0;\n                    puVar21[7] = 0;\n                    puVar21[8] = 0;\n                    puVar21[9] = 0;\n                    puVar21[10] = 0;\n                    puVar21[0xb] = 0;\n                    ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                    iVar18 = iVar18 + 0xc;\n                  } while (ppppppcVar32 < pppppppcVar29[2]);\n                  iVar18 = *(int *)(puVar41 + 0x23abc);\n                  if (pppppppcVar29[2] != (code ******)0x0) {\n                    iVar43 = 0;\n                    pppppppcStack_218 = (code *******)0x0;\n                    do {\n                      piVar5 = *(int **)((int)pppppppcVar29[6] + iVar43 + 8);\n                      if (0 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4)) {\n                        iVar37 = 0;\n                        do {\n                          pppppppcVar38 = pppppppcStack_218;\n                          iVar22 = (*(code *)(iVar18 + 0x6e30))\n                                             (pppppppcVar29[7] + *piVar5 * 3,pppppppcStack_218);\n                          pppppppcVar30 = (code *******)0xc;\n                          if (iVar22 == 0) goto LAB_00056168;\n                          iVar37 = iVar37 + 1;\n                          piVar5 = piVar5 + 1;\n                        } while (iVar37 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4));\n                      }\n                      pppppppcStack_218 = (code *******)((int)pppppppcStack_218 + 1);\n                      iVar43 = iVar43 + 0xc;\n                    } while (pppppppcStack_218 < pppppppcVar29[2]);\n                  }\n                }\nLAB_000568f0:\n                pppppppcStack_20c = (code *******)0x0;\n                if (((((uint)pppppppcVar34[0x16] & 0x20000000) != 0) && (uVar16 == 0)) &&\n                   (pppppppcVar3[5] == (code ******)0x0)) {\n                  if (pppppppcVar34[2] != (code ******)0x0) {\n                    pppppppcVar31 = (code *******)(*(int *)(puVar41 + 0x23754) + 0x6e4c);\n                    if (*(byte *)(*pppppppcVar34 + 1) < 0xd) {\n                    \n                    \n                      pppppppcVar29 =\n                           (code *******)\n                           (*(code *)(puVar41 +\n                                     (int)(pppppppcVar31[*(byte *)(*pppppppcVar34 + 1)] + 0xadc7)))\n                                     ();\n                      return pppppppcVar29;\n                    }\n                    (**(code **)(puVar41 + 0x23bc4))(0);\n                    if (uVar7 != 0) {\n                      pppppppcVar31 = (code *******)&DAT_00000007;\n                      ppppppcVar32 = (code ******)0x0;\n                      do {\n                        ppppppcVar35 = *pppppppcVar34 + (int)ppppppcVar32 * 2;\n                        if (*(char *)(ppppppcVar35 + 1) == '\x01') {\n                          if (*(char *)ppppppcVar35 < '\0') {\n                            ppppppcVar35[1] = (code *****)((uint)ppppppcVar35[1] & 0xfffffbff);\n                          }\n                        }\n                        else if (*(char *)(ppppppcVar35 + 1) == '\x05') {\n                          *(char *)(ppppppcVar35 + 1) = '\a';\n                        }\n                        ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                      } while (ppppppcVar32 < pppppppcVar34[2]);\n                    }\n                  }\n                  pppppppcVar34[0x17] = (code ******)0x1;\n                  if (0 < (int)pppppppcVar34[0x13]) {\n                    uVar7 = 1;\n                  }\n                  *(byte *)(pppppppcVar34 + 0x16) =\n                       (byte)*(code *)(pppppppcVar34 + 0x16) & 0x9f | (byte)((uVar7 & 1) << 6);\n                }\n                ppppppcVar32 = (code ******)pppppppcVar34[0xd][3][7];\n                pppppppcVar34[0x12] = ppppppcVar32;\n                pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppppcVar32 * 3);\n                pppppppcVar33 = (code *******)FUN_000483e8(&ppppppcStack_204,pppppppcVar38);\n                pppppppcVar29 = pppppppcVar33;\n                pppppppcStack_208 = pppppppcVar33;\n                if (pppppppcVar33 == (code *******)0x0) {\n                  if ((0 < (int)pppppppcVar34[0x13]) && (0 < iStack_200)) {\n                    iVar18 = *(int *)(puVar41 + 0x23abc);\n                    iVar43 = *(int *)(puVar41 + 0x23abc);\n                    pppppppcVar29 = (code *******)0x0;\n                    do {\n                      pppppppcVar31 =\n                           (code *******)(*pppppppcVar34 + piStack_1fc[(int)pppppppcVar29] * 2);\n                      if (*(code *)(pppppppcVar31 + 1) == (code)0x4) {\n                        iVar37 = 0;\n                        piVar5 = piStack_1fc;\n                        if (iStack_200 < 1) {\nLAB_00056b8c:\n                          if (iStack_200 != iVar37) {\n                            ppppcVar40 = *pppppppcVar34[5][piStack_1fc[(int)pppppppcVar29] * 3 + 2];\n                            iVar37 = (*(code *)(iVar18 + 0x5ea8))(&ppppppcStack_204,ppppcVar40);\n                            if (iVar37 == 0) {\n                              pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppcVar40 * 3)\n                              ;\n                              pppppppcVar29 =\n                                   (code *******)\n                                   (*(code *)(iVar43 + 0x7f1c))(&ppppppcStack_204,pppppppcVar38);\n                              if (pppppppcVar29 != (code *******)0x0) goto LAB_00056cb8;\n                            }\n                          }\n                        }\n                        else {\n                          do {\n                            ppppppcVar32 = *pppppppcVar34 + *piVar5 * 2;\n                            if ((*(char *)(ppppppcVar32 + 1) == '\t') &&\n                               ((code ******)*ppppppcVar32 == *pppppppcVar31)) goto LAB_00056b8c;\n                            iVar37 = iVar37 + 1;\n                            piVar5 = piVar5 + 1;\n                          } while (iStack_200 != iVar37);\n                        }\n                      }\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1);\n                    } while ((int)pppppppcVar29 < iStack_200);\n                  }\n                  pppppppcVar31 = &ppppppcStack_204;\n                  pppppppcVar38 = pppppppcVar34;\n                  ppppppcVar32 = (code ******)\n                                 FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,0);\n                  pppppppcVar34[9] = ppppppcVar32;\n                  pppppppcVar29 = pppppppcStack_208;\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    if (((uint)ppppppcVar32[0xd] & 0x1000000) == 0) {\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar34[10] = ppppppcVar32;\n                    }\n                    else {\n                      pppppppcVar31 = &ppppppcStack_204;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,1);\n                      pppppppcVar34[10] = ppppppcVar32;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,2);\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar38 = pppppppcVar34;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,6);\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar29 = pppppppcStack_208;\n                      if (((pppppppcVar34[10] == (code ******)0x0) ||\n                          (pppppppcVar34[0xb] == (code ******)0x0)) ||\n                         (ppppppcVar32 == (code ******)0x0)) goto LAB_00056cb8;\n                    }\n                    (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                    pppppppcVar29 = pppppppcVar33;\n                  }\n                }\nLAB_00056cb8:\n                pppppppcStack_20c = pppppppcVar29;\n                FUN_0004b234(pppppppcVar3);\n                FUN_0004b2bc(&pppppppcStack_1f8);\n                pppppppcVar29 = pppppppcStack_20c;\n                if (pppppppcStack_20c != (code *******)0x0) {\n                  if (*(int *)(puVar41 + 0x23c78) != 0) {\n                    (**(code **)(puVar41 + 0x23df0))(pppppppcVar34 + 0x22);\n                  }\n                  FUN_0004b338(pppppppcVar34);\n                  *pppppppcVar3 = (code ******)0x0;\n                  pppppppcVar3[1] = (code ******)0x0;\n                  pppppppcVar29 = pppppppcStack_20c;\n                }\n                goto LAB_00056cfc;\n              }\n            }\n          }" { (expression_statement "pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23b40) + -0x5be4);" (assignment_expression "pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23b40) + -0x5be4)" identifier = (cast_expression "(code *******)(*(int *)(puVar41 + 0x23b40) + -0x5be4)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(*(int *)(puVar41 + 0x23b40) + -0x5be4)" ( (binary_expression "*(int *)(puVar41 + 0x23b40) + -0x5be4" (pointer_expression "*(int *)(puVar41 + 0x23b40)" * (cast_expression "(int *)(puVar41 + 0x23b40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar41 + 0x23b40)" ( (binary_expression "puVar41 + 0x23b40" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "pppppppcVar30 = (code *******)FUN_00045fb4(pppppppcVar29[0xd],pppppppcVar38);" (assignment_expression "pppppppcVar30 = (code *******)FUN_00045fb4(pppppppcVar29[0xd],pppppppcVar38)" identifier = (cast_expression "(code *******)FUN_00045fb4(pppppppcVar29[0xd],pppppppcVar38)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "FUN_00045fb4(pppppppcVar29[0xd],pppppppcVar38)" identifier (argument_list "(pppppppcVar29[0xd],pppppppcVar38)" ( (subscript_expression "pppppppcVar29[0xd]" identifier [ number_literal ]) , identifier ))))) ;) (if_statement "if (pppppppcVar30 == (code *******)0x0) {\n              FUN_00046050(pppppppcVar29[0xd],*(int *)(puVar41 + 0x23abc) + 0x61b4);\n              pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23b40) + -0x4614);\n              pppppppcVar30 = (code *******)FUN_00046050(pppppppcVar29[0xd],pppppppcVar38);\n              if (pppppppcVar30 == (code *******)0x0) {\n                uVar7 = 0;\n                iVar18 = *(int *)(puVar41 + 0x23b40);\n                pppppppcVar33 = (code *******)0x0;\nLAB_00056744:\n                if ((code *******)pppppppcVar29[2] != pppppppcVar33) {\nLAB_00056750:\n                  if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                    pppppppcVar38 = pppppppcVar29;\n                    pppppppcVar31 = pppppppcVar33;\n                    pppppppcVar30 =\n                         (code *******)\n                         (*(code *)(iVar18 + -0x561c))\n                                   (&ppppppcStack_204,pppppppcVar29,pppppppcVar33,1);\n                    if (pppppppcVar30 != (code *******)0x0) goto LAB_00056168;\n                    if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                      (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                      uVar7 = 1;\n                    }\n                  }\n                  pppppppcVar33 = (code *******)((int)pppppppcVar33 + 1);\n                  goto LAB_00056744;\n                }\n                if (uVar7 != 0) {\n                  uVar7 = 0;\n                  pppppppcVar33 = (code *******)0x0;\n                  goto LAB_00056750;\n                }\n                if (((((uint)pppppppcVar3[7] & 0x8000000) == 0) &&\n                    (pppppppcVar3[6] != (code ******)0x0)) &&\n                   ((char)*(code *)(pppppppcVar29 + 0x16) < '\0')) {\n                  ppppppcVar32 = pppppppcVar29[2];\n                }\n                else {\n                  if (pppppppcVar29[0x13] == (code ******)0x0) goto LAB_000568f0;\n                  ppppppcVar32 = pppppppcVar29[2];\n                }\n                ppppppcVar35 = (code ******)\n                               (**(code **)(puVar41 + 0x23cf0))((int)ppppppcVar32 * 0xc);\n                pppppppcVar29[7] = ppppppcVar35;\n                if (ppppppcVar35 == (code ******)0x0) {\n                  pppppppcVar30 = (code *******)0xc;\n                  goto LAB_00056168;\n                }\n                if (ppppppcVar32 != (code ******)0x0) {\n                  iVar18 = 0;\n                  ppppppcVar32 = (code ******)0x0;\n                  do {\n                    puVar21 = (undefined1 *)((int)pppppppcVar29[7] + iVar18);\n                    *puVar21 = 0;\n                    puVar21[1] = 0;\n                    puVar21[2] = 0;\n                    puVar21[3] = 0;\n                    puVar21[4] = 0;\n                    puVar21[5] = 0;\n                    puVar21[6] = 0;\n                    puVar21[7] = 0;\n                    puVar21[8] = 0;\n                    puVar21[9] = 0;\n                    puVar21[10] = 0;\n                    puVar21[0xb] = 0;\n                    ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                    iVar18 = iVar18 + 0xc;\n                  } while (ppppppcVar32 < pppppppcVar29[2]);\n                  iVar18 = *(int *)(puVar41 + 0x23abc);\n                  if (pppppppcVar29[2] != (code ******)0x0) {\n                    iVar43 = 0;\n                    pppppppcStack_218 = (code *******)0x0;\n                    do {\n                      piVar5 = *(int **)((int)pppppppcVar29[6] + iVar43 + 8);\n                      if (0 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4)) {\n                        iVar37 = 0;\n                        do {\n                          pppppppcVar38 = pppppppcStack_218;\n                          iVar22 = (*(code *)(iVar18 + 0x6e30))\n                                             (pppppppcVar29[7] + *piVar5 * 3,pppppppcStack_218);\n                          pppppppcVar30 = (code *******)0xc;\n                          if (iVar22 == 0) goto LAB_00056168;\n                          iVar37 = iVar37 + 1;\n                          piVar5 = piVar5 + 1;\n                        } while (iVar37 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4));\n                      }\n                      pppppppcStack_218 = (code *******)((int)pppppppcStack_218 + 1);\n                      iVar43 = iVar43 + 0xc;\n                    } while (pppppppcStack_218 < pppppppcVar29[2]);\n                  }\n                }\nLAB_000568f0:\n                pppppppcStack_20c = (code *******)0x0;\n                if (((((uint)pppppppcVar34[0x16] & 0x20000000) != 0) && (uVar16 == 0)) &&\n                   (pppppppcVar3[5] == (code ******)0x0)) {\n                  if (pppppppcVar34[2] != (code ******)0x0) {\n                    pppppppcVar31 = (code *******)(*(int *)(puVar41 + 0x23754) + 0x6e4c);\n                    if (*(byte *)(*pppppppcVar34 + 1) < 0xd) {\n                    \n                    \n                      pppppppcVar29 =\n                           (code *******)\n                           (*(code *)(puVar41 +\n                                     (int)(pppppppcVar31[*(byte *)(*pppppppcVar34 + 1)] + 0xadc7)))\n                                     ();\n                      return pppppppcVar29;\n                    }\n                    (**(code **)(puVar41 + 0x23bc4))(0);\n                    if (uVar7 != 0) {\n                      pppppppcVar31 = (code *******)&DAT_00000007;\n                      ppppppcVar32 = (code ******)0x0;\n                      do {\n                        ppppppcVar35 = *pppppppcVar34 + (int)ppppppcVar32 * 2;\n                        if (*(char *)(ppppppcVar35 + 1) == '\x01') {\n                          if (*(char *)ppppppcVar35 < '\0') {\n                            ppppppcVar35[1] = (code *****)((uint)ppppppcVar35[1] & 0xfffffbff);\n                          }\n                        }\n                        else if (*(char *)(ppppppcVar35 + 1) == '\x05') {\n                          *(char *)(ppppppcVar35 + 1) = '\a';\n                        }\n                        ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                      } while (ppppppcVar32 < pppppppcVar34[2]);\n                    }\n                  }\n                  pppppppcVar34[0x17] = (code ******)0x1;\n                  if (0 < (int)pppppppcVar34[0x13]) {\n                    uVar7 = 1;\n                  }\n                  *(byte *)(pppppppcVar34 + 0x16) =\n                       (byte)*(code *)(pppppppcVar34 + 0x16) & 0x9f | (byte)((uVar7 & 1) << 6);\n                }\n                ppppppcVar32 = (code ******)pppppppcVar34[0xd][3][7];\n                pppppppcVar34[0x12] = ppppppcVar32;\n                pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppppcVar32 * 3);\n                pppppppcVar33 = (code *******)FUN_000483e8(&ppppppcStack_204,pppppppcVar38);\n                pppppppcVar29 = pppppppcVar33;\n                pppppppcStack_208 = pppppppcVar33;\n                if (pppppppcVar33 == (code *******)0x0) {\n                  if ((0 < (int)pppppppcVar34[0x13]) && (0 < iStack_200)) {\n                    iVar18 = *(int *)(puVar41 + 0x23abc);\n                    iVar43 = *(int *)(puVar41 + 0x23abc);\n                    pppppppcVar29 = (code *******)0x0;\n                    do {\n                      pppppppcVar31 =\n                           (code *******)(*pppppppcVar34 + piStack_1fc[(int)pppppppcVar29] * 2);\n                      if (*(code *)(pppppppcVar31 + 1) == (code)0x4) {\n                        iVar37 = 0;\n                        piVar5 = piStack_1fc;\n                        if (iStack_200 < 1) {\nLAB_00056b8c:\n                          if (iStack_200 != iVar37) {\n                            ppppcVar40 = *pppppppcVar34[5][piStack_1fc[(int)pppppppcVar29] * 3 + 2];\n                            iVar37 = (*(code *)(iVar18 + 0x5ea8))(&ppppppcStack_204,ppppcVar40);\n                            if (iVar37 == 0) {\n                              pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppcVar40 * 3)\n                              ;\n                              pppppppcVar29 =\n                                   (code *******)\n                                   (*(code *)(iVar43 + 0x7f1c))(&ppppppcStack_204,pppppppcVar38);\n                              if (pppppppcVar29 != (code *******)0x0) goto LAB_00056cb8;\n                            }\n                          }\n                        }\n                        else {\n                          do {\n                            ppppppcVar32 = *pppppppcVar34 + *piVar5 * 2;\n                            if ((*(char *)(ppppppcVar32 + 1) == '\t') &&\n                               ((code ******)*ppppppcVar32 == *pppppppcVar31)) goto LAB_00056b8c;\n                            iVar37 = iVar37 + 1;\n                            piVar5 = piVar5 + 1;\n                          } while (iStack_200 != iVar37);\n                        }\n                      }\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1);\n                    } while ((int)pppppppcVar29 < iStack_200);\n                  }\n                  pppppppcVar31 = &ppppppcStack_204;\n                  pppppppcVar38 = pppppppcVar34;\n                  ppppppcVar32 = (code ******)\n                                 FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,0);\n                  pppppppcVar34[9] = ppppppcVar32;\n                  pppppppcVar29 = pppppppcStack_208;\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    if (((uint)ppppppcVar32[0xd] & 0x1000000) == 0) {\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar34[10] = ppppppcVar32;\n                    }\n                    else {\n                      pppppppcVar31 = &ppppppcStack_204;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,1);\n                      pppppppcVar34[10] = ppppppcVar32;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,2);\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar38 = pppppppcVar34;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,6);\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar29 = pppppppcStack_208;\n                      if (((pppppppcVar34[10] == (code ******)0x0) ||\n                          (pppppppcVar34[0xb] == (code ******)0x0)) ||\n                         (ppppppcVar32 == (code ******)0x0)) goto LAB_00056cb8;\n                    }\n                    (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                    pppppppcVar29 = pppppppcVar33;\n                  }\n                }\nLAB_00056cb8:\n                pppppppcStack_20c = pppppppcVar29;\n                FUN_0004b234(pppppppcVar3);\n                FUN_0004b2bc(&pppppppcStack_1f8);\n                pppppppcVar29 = pppppppcStack_20c;\n                if (pppppppcStack_20c != (code *******)0x0) {\n                  if (*(int *)(puVar41 + 0x23c78) != 0) {\n                    (**(code **)(puVar41 + 0x23df0))(pppppppcVar34 + 0x22);\n                  }\n                  FUN_0004b338(pppppppcVar34);\n                  *pppppppcVar3 = (code ******)0x0;\n                  pppppppcVar3[1] = (code ******)0x0;\n                  pppppppcVar29 = pppppppcStack_20c;\n                }\n                goto LAB_00056cfc;\n              }\n            }" if (parenthesized_expression "(pppppppcVar30 == (code *******)0x0)" ( (binary_expression "pppppppcVar30 == (code *******)0x0" identifier == (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\n              FUN_00046050(pppppppcVar29[0xd],*(int *)(puVar41 + 0x23abc) + 0x61b4);\n              pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23b40) + -0x4614);\n              pppppppcVar30 = (code *******)FUN_00046050(pppppppcVar29[0xd],pppppppcVar38);\n              if (pppppppcVar30 == (code *******)0x0) {\n                uVar7 = 0;\n                iVar18 = *(int *)(puVar41 + 0x23b40);\n                pppppppcVar33 = (code *******)0x0;\nLAB_00056744:\n                if ((code *******)pppppppcVar29[2] != pppppppcVar33) {\nLAB_00056750:\n                  if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                    pppppppcVar38 = pppppppcVar29;\n                    pppppppcVar31 = pppppppcVar33;\n                    pppppppcVar30 =\n                         (code *******)\n                         (*(code *)(iVar18 + -0x561c))\n                                   (&ppppppcStack_204,pppppppcVar29,pppppppcVar33,1);\n                    if (pppppppcVar30 != (code *******)0x0) goto LAB_00056168;\n                    if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                      (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                      uVar7 = 1;\n                    }\n                  }\n                  pppppppcVar33 = (code *******)((int)pppppppcVar33 + 1);\n                  goto LAB_00056744;\n                }\n                if (uVar7 != 0) {\n                  uVar7 = 0;\n                  pppppppcVar33 = (code *******)0x0;\n                  goto LAB_00056750;\n                }\n                if (((((uint)pppppppcVar3[7] & 0x8000000) == 0) &&\n                    (pppppppcVar3[6] != (code ******)0x0)) &&\n                   ((char)*(code *)(pppppppcVar29 + 0x16) < '\0')) {\n                  ppppppcVar32 = pppppppcVar29[2];\n                }\n                else {\n                  if (pppppppcVar29[0x13] == (code ******)0x0) goto LAB_000568f0;\n                  ppppppcVar32 = pppppppcVar29[2];\n                }\n                ppppppcVar35 = (code ******)\n                               (**(code **)(puVar41 + 0x23cf0))((int)ppppppcVar32 * 0xc);\n                pppppppcVar29[7] = ppppppcVar35;\n                if (ppppppcVar35 == (code ******)0x0) {\n                  pppppppcVar30 = (code *******)0xc;\n                  goto LAB_00056168;\n                }\n                if (ppppppcVar32 != (code ******)0x0) {\n                  iVar18 = 0;\n                  ppppppcVar32 = (code ******)0x0;\n                  do {\n                    puVar21 = (undefined1 *)((int)pppppppcVar29[7] + iVar18);\n                    *puVar21 = 0;\n                    puVar21[1] = 0;\n                    puVar21[2] = 0;\n                    puVar21[3] = 0;\n                    puVar21[4] = 0;\n                    puVar21[5] = 0;\n                    puVar21[6] = 0;\n                    puVar21[7] = 0;\n                    puVar21[8] = 0;\n                    puVar21[9] = 0;\n                    puVar21[10] = 0;\n                    puVar21[0xb] = 0;\n                    ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                    iVar18 = iVar18 + 0xc;\n                  } while (ppppppcVar32 < pppppppcVar29[2]);\n                  iVar18 = *(int *)(puVar41 + 0x23abc);\n                  if (pppppppcVar29[2] != (code ******)0x0) {\n                    iVar43 = 0;\n                    pppppppcStack_218 = (code *******)0x0;\n                    do {\n                      piVar5 = *(int **)((int)pppppppcVar29[6] + iVar43 + 8);\n                      if (0 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4)) {\n                        iVar37 = 0;\n                        do {\n                          pppppppcVar38 = pppppppcStack_218;\n                          iVar22 = (*(code *)(iVar18 + 0x6e30))\n                                             (pppppppcVar29[7] + *piVar5 * 3,pppppppcStack_218);\n                          pppppppcVar30 = (code *******)0xc;\n                          if (iVar22 == 0) goto LAB_00056168;\n                          iVar37 = iVar37 + 1;\n                          piVar5 = piVar5 + 1;\n                        } while (iVar37 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4));\n                      }\n                      pppppppcStack_218 = (code *******)((int)pppppppcStack_218 + 1);\n                      iVar43 = iVar43 + 0xc;\n                    } while (pppppppcStack_218 < pppppppcVar29[2]);\n                  }\n                }\nLAB_000568f0:\n                pppppppcStack_20c = (code *******)0x0;\n                if (((((uint)pppppppcVar34[0x16] & 0x20000000) != 0) && (uVar16 == 0)) &&\n                   (pppppppcVar3[5] == (code ******)0x0)) {\n                  if (pppppppcVar34[2] != (code ******)0x0) {\n                    pppppppcVar31 = (code *******)(*(int *)(puVar41 + 0x23754) + 0x6e4c);\n                    if (*(byte *)(*pppppppcVar34 + 1) < 0xd) {\n                    \n                    \n                      pppppppcVar29 =\n                           (code *******)\n                           (*(code *)(puVar41 +\n                                     (int)(pppppppcVar31[*(byte *)(*pppppppcVar34 + 1)] + 0xadc7)))\n                                     ();\n                      return pppppppcVar29;\n                    }\n                    (**(code **)(puVar41 + 0x23bc4))(0);\n                    if (uVar7 != 0) {\n                      pppppppcVar31 = (code *******)&DAT_00000007;\n                      ppppppcVar32 = (code ******)0x0;\n                      do {\n                        ppppppcVar35 = *pppppppcVar34 + (int)ppppppcVar32 * 2;\n                        if (*(char *)(ppppppcVar35 + 1) == '\x01') {\n                          if (*(char *)ppppppcVar35 < '\0') {\n                            ppppppcVar35[1] = (code *****)((uint)ppppppcVar35[1] & 0xfffffbff);\n                          }\n                        }\n                        else if (*(char *)(ppppppcVar35 + 1) == '\x05') {\n                          *(char *)(ppppppcVar35 + 1) = '\a';\n                        }\n                        ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                      } while (ppppppcVar32 < pppppppcVar34[2]);\n                    }\n                  }\n                  pppppppcVar34[0x17] = (code ******)0x1;\n                  if (0 < (int)pppppppcVar34[0x13]) {\n                    uVar7 = 1;\n                  }\n                  *(byte *)(pppppppcVar34 + 0x16) =\n                       (byte)*(code *)(pppppppcVar34 + 0x16) & 0x9f | (byte)((uVar7 & 1) << 6);\n                }\n                ppppppcVar32 = (code ******)pppppppcVar34[0xd][3][7];\n                pppppppcVar34[0x12] = ppppppcVar32;\n                pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppppcVar32 * 3);\n                pppppppcVar33 = (code *******)FUN_000483e8(&ppppppcStack_204,pppppppcVar38);\n                pppppppcVar29 = pppppppcVar33;\n                pppppppcStack_208 = pppppppcVar33;\n                if (pppppppcVar33 == (code *******)0x0) {\n                  if ((0 < (int)pppppppcVar34[0x13]) && (0 < iStack_200)) {\n                    iVar18 = *(int *)(puVar41 + 0x23abc);\n                    iVar43 = *(int *)(puVar41 + 0x23abc);\n                    pppppppcVar29 = (code *******)0x0;\n                    do {\n                      pppppppcVar31 =\n                           (code *******)(*pppppppcVar34 + piStack_1fc[(int)pppppppcVar29] * 2);\n                      if (*(code *)(pppppppcVar31 + 1) == (code)0x4) {\n                        iVar37 = 0;\n                        piVar5 = piStack_1fc;\n                        if (iStack_200 < 1) {\nLAB_00056b8c:\n                          if (iStack_200 != iVar37) {\n                            ppppcVar40 = *pppppppcVar34[5][piStack_1fc[(int)pppppppcVar29] * 3 + 2];\n                            iVar37 = (*(code *)(iVar18 + 0x5ea8))(&ppppppcStack_204,ppppcVar40);\n                            if (iVar37 == 0) {\n                              pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppcVar40 * 3)\n                              ;\n                              pppppppcVar29 =\n                                   (code *******)\n                                   (*(code *)(iVar43 + 0x7f1c))(&ppppppcStack_204,pppppppcVar38);\n                              if (pppppppcVar29 != (code *******)0x0) goto LAB_00056cb8;\n                            }\n                          }\n                        }\n                        else {\n                          do {\n                            ppppppcVar32 = *pppppppcVar34 + *piVar5 * 2;\n                            if ((*(char *)(ppppppcVar32 + 1) == '\t') &&\n                               ((code ******)*ppppppcVar32 == *pppppppcVar31)) goto LAB_00056b8c;\n                            iVar37 = iVar37 + 1;\n                            piVar5 = piVar5 + 1;\n                          } while (iStack_200 != iVar37);\n                        }\n                      }\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1);\n                    } while ((int)pppppppcVar29 < iStack_200);\n                  }\n                  pppppppcVar31 = &ppppppcStack_204;\n                  pppppppcVar38 = pppppppcVar34;\n                  ppppppcVar32 = (code ******)\n                                 FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,0);\n                  pppppppcVar34[9] = ppppppcVar32;\n                  pppppppcVar29 = pppppppcStack_208;\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    if (((uint)ppppppcVar32[0xd] & 0x1000000) == 0) {\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar34[10] = ppppppcVar32;\n                    }\n                    else {\n                      pppppppcVar31 = &ppppppcStack_204;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,1);\n                      pppppppcVar34[10] = ppppppcVar32;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,2);\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar38 = pppppppcVar34;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,6);\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar29 = pppppppcStack_208;\n                      if (((pppppppcVar34[10] == (code ******)0x0) ||\n                          (pppppppcVar34[0xb] == (code ******)0x0)) ||\n                         (ppppppcVar32 == (code ******)0x0)) goto LAB_00056cb8;\n                    }\n                    (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                    pppppppcVar29 = pppppppcVar33;\n                  }\n                }\nLAB_00056cb8:\n                pppppppcStack_20c = pppppppcVar29;\n                FUN_0004b234(pppppppcVar3);\n                FUN_0004b2bc(&pppppppcStack_1f8);\n                pppppppcVar29 = pppppppcStack_20c;\n                if (pppppppcStack_20c != (code *******)0x0) {\n                  if (*(int *)(puVar41 + 0x23c78) != 0) {\n                    (**(code **)(puVar41 + 0x23df0))(pppppppcVar34 + 0x22);\n                  }\n                  FUN_0004b338(pppppppcVar34);\n                  *pppppppcVar3 = (code ******)0x0;\n                  pppppppcVar3[1] = (code ******)0x0;\n                  pppppppcVar29 = pppppppcStack_20c;\n                }\n                goto LAB_00056cfc;\n              }\n            }" { (expression_statement "FUN_00046050(pppppppcVar29[0xd],*(int *)(puVar41 + 0x23abc) + 0x61b4);" (call_expression "FUN_00046050(pppppppcVar29[0xd],*(int *)(puVar41 + 0x23abc) + 0x61b4)" identifier (argument_list "(pppppppcVar29[0xd],*(int *)(puVar41 + 0x23abc) + 0x61b4)" ( (subscript_expression "pppppppcVar29[0xd]" identifier [ number_literal ]) , (binary_expression "*(int *)(puVar41 + 0x23abc) + 0x61b4" (pointer_expression "*(int *)(puVar41 + 0x23abc)" * (cast_expression "(int *)(puVar41 + 0x23abc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar41 + 0x23abc)" ( (binary_expression "puVar41 + 0x23abc" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23b40) + -0x4614);" (assignment_expression "pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23b40) + -0x4614)" identifier = (cast_expression "(code *******)(*(int *)(puVar41 + 0x23b40) + -0x4614)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(*(int *)(puVar41 + 0x23b40) + -0x4614)" ( (binary_expression "*(int *)(puVar41 + 0x23b40) + -0x4614" (pointer_expression "*(int *)(puVar41 + 0x23b40)" * (cast_expression "(int *)(puVar41 + 0x23b40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar41 + 0x23b40)" ( (binary_expression "puVar41 + 0x23b40" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "pppppppcVar30 = (code *******)FUN_00046050(pppppppcVar29[0xd],pppppppcVar38);" (assignment_expression "pppppppcVar30 = (code *******)FUN_00046050(pppppppcVar29[0xd],pppppppcVar38)" identifier = (cast_expression "(code *******)FUN_00046050(pppppppcVar29[0xd],pppppppcVar38)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "FUN_00046050(pppppppcVar29[0xd],pppppppcVar38)" identifier (argument_list "(pppppppcVar29[0xd],pppppppcVar38)" ( (subscript_expression "pppppppcVar29[0xd]" identifier [ number_literal ]) , identifier ))))) ;) (if_statement "if (pppppppcVar30 == (code *******)0x0) {\n                uVar7 = 0;\n                iVar18 = *(int *)(puVar41 + 0x23b40);\n                pppppppcVar33 = (code *******)0x0;\nLAB_00056744:\n                if ((code *******)pppppppcVar29[2] != pppppppcVar33) {\nLAB_00056750:\n                  if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                    pppppppcVar38 = pppppppcVar29;\n                    pppppppcVar31 = pppppppcVar33;\n                    pppppppcVar30 =\n                         (code *******)\n                         (*(code *)(iVar18 + -0x561c))\n                                   (&ppppppcStack_204,pppppppcVar29,pppppppcVar33,1);\n                    if (pppppppcVar30 != (code *******)0x0) goto LAB_00056168;\n                    if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                      (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                      uVar7 = 1;\n                    }\n                  }\n                  pppppppcVar33 = (code *******)((int)pppppppcVar33 + 1);\n                  goto LAB_00056744;\n                }\n                if (uVar7 != 0) {\n                  uVar7 = 0;\n                  pppppppcVar33 = (code *******)0x0;\n                  goto LAB_00056750;\n                }\n                if (((((uint)pppppppcVar3[7] & 0x8000000) == 0) &&\n                    (pppppppcVar3[6] != (code ******)0x0)) &&\n                   ((char)*(code *)(pppppppcVar29 + 0x16) < '\0')) {\n                  ppppppcVar32 = pppppppcVar29[2];\n                }\n                else {\n                  if (pppppppcVar29[0x13] == (code ******)0x0) goto LAB_000568f0;\n                  ppppppcVar32 = pppppppcVar29[2];\n                }\n                ppppppcVar35 = (code ******)\n                               (**(code **)(puVar41 + 0x23cf0))((int)ppppppcVar32 * 0xc);\n                pppppppcVar29[7] = ppppppcVar35;\n                if (ppppppcVar35 == (code ******)0x0) {\n                  pppppppcVar30 = (code *******)0xc;\n                  goto LAB_00056168;\n                }\n                if (ppppppcVar32 != (code ******)0x0) {\n                  iVar18 = 0;\n                  ppppppcVar32 = (code ******)0x0;\n                  do {\n                    puVar21 = (undefined1 *)((int)pppppppcVar29[7] + iVar18);\n                    *puVar21 = 0;\n                    puVar21[1] = 0;\n                    puVar21[2] = 0;\n                    puVar21[3] = 0;\n                    puVar21[4] = 0;\n                    puVar21[5] = 0;\n                    puVar21[6] = 0;\n                    puVar21[7] = 0;\n                    puVar21[8] = 0;\n                    puVar21[9] = 0;\n                    puVar21[10] = 0;\n                    puVar21[0xb] = 0;\n                    ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                    iVar18 = iVar18 + 0xc;\n                  } while (ppppppcVar32 < pppppppcVar29[2]);\n                  iVar18 = *(int *)(puVar41 + 0x23abc);\n                  if (pppppppcVar29[2] != (code ******)0x0) {\n                    iVar43 = 0;\n                    pppppppcStack_218 = (code *******)0x0;\n                    do {\n                      piVar5 = *(int **)((int)pppppppcVar29[6] + iVar43 + 8);\n                      if (0 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4)) {\n                        iVar37 = 0;\n                        do {\n                          pppppppcVar38 = pppppppcStack_218;\n                          iVar22 = (*(code *)(iVar18 + 0x6e30))\n                                             (pppppppcVar29[7] + *piVar5 * 3,pppppppcStack_218);\n                          pppppppcVar30 = (code *******)0xc;\n                          if (iVar22 == 0) goto LAB_00056168;\n                          iVar37 = iVar37 + 1;\n                          piVar5 = piVar5 + 1;\n                        } while (iVar37 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4));\n                      }\n                      pppppppcStack_218 = (code *******)((int)pppppppcStack_218 + 1);\n                      iVar43 = iVar43 + 0xc;\n                    } while (pppppppcStack_218 < pppppppcVar29[2]);\n                  }\n                }\nLAB_000568f0:\n                pppppppcStack_20c = (code *******)0x0;\n                if (((((uint)pppppppcVar34[0x16] & 0x20000000) != 0) && (uVar16 == 0)) &&\n                   (pppppppcVar3[5] == (code ******)0x0)) {\n                  if (pppppppcVar34[2] != (code ******)0x0) {\n                    pppppppcVar31 = (code *******)(*(int *)(puVar41 + 0x23754) + 0x6e4c);\n                    if (*(byte *)(*pppppppcVar34 + 1) < 0xd) {\n                    \n                    \n                      pppppppcVar29 =\n                           (code *******)\n                           (*(code *)(puVar41 +\n                                     (int)(pppppppcVar31[*(byte *)(*pppppppcVar34 + 1)] + 0xadc7)))\n                                     ();\n                      return pppppppcVar29;\n                    }\n                    (**(code **)(puVar41 + 0x23bc4))(0);\n                    if (uVar7 != 0) {\n                      pppppppcVar31 = (code *******)&DAT_00000007;\n                      ppppppcVar32 = (code ******)0x0;\n                      do {\n                        ppppppcVar35 = *pppppppcVar34 + (int)ppppppcVar32 * 2;\n                        if (*(char *)(ppppppcVar35 + 1) == '\x01') {\n                          if (*(char *)ppppppcVar35 < '\0') {\n                            ppppppcVar35[1] = (code *****)((uint)ppppppcVar35[1] & 0xfffffbff);\n                          }\n                        }\n                        else if (*(char *)(ppppppcVar35 + 1) == '\x05') {\n                          *(char *)(ppppppcVar35 + 1) = '\a';\n                        }\n                        ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                      } while (ppppppcVar32 < pppppppcVar34[2]);\n                    }\n                  }\n                  pppppppcVar34[0x17] = (code ******)0x1;\n                  if (0 < (int)pppppppcVar34[0x13]) {\n                    uVar7 = 1;\n                  }\n                  *(byte *)(pppppppcVar34 + 0x16) =\n                       (byte)*(code *)(pppppppcVar34 + 0x16) & 0x9f | (byte)((uVar7 & 1) << 6);\n                }\n                ppppppcVar32 = (code ******)pppppppcVar34[0xd][3][7];\n                pppppppcVar34[0x12] = ppppppcVar32;\n                pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppppcVar32 * 3);\n                pppppppcVar33 = (code *******)FUN_000483e8(&ppppppcStack_204,pppppppcVar38);\n                pppppppcVar29 = pppppppcVar33;\n                pppppppcStack_208 = pppppppcVar33;\n                if (pppppppcVar33 == (code *******)0x0) {\n                  if ((0 < (int)pppppppcVar34[0x13]) && (0 < iStack_200)) {\n                    iVar18 = *(int *)(puVar41 + 0x23abc);\n                    iVar43 = *(int *)(puVar41 + 0x23abc);\n                    pppppppcVar29 = (code *******)0x0;\n                    do {\n                      pppppppcVar31 =\n                           (code *******)(*pppppppcVar34 + piStack_1fc[(int)pppppppcVar29] * 2);\n                      if (*(code *)(pppppppcVar31 + 1) == (code)0x4) {\n                        iVar37 = 0;\n                        piVar5 = piStack_1fc;\n                        if (iStack_200 < 1) {\nLAB_00056b8c:\n                          if (iStack_200 != iVar37) {\n                            ppppcVar40 = *pppppppcVar34[5][piStack_1fc[(int)pppppppcVar29] * 3 + 2];\n                            iVar37 = (*(code *)(iVar18 + 0x5ea8))(&ppppppcStack_204,ppppcVar40);\n                            if (iVar37 == 0) {\n                              pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppcVar40 * 3)\n                              ;\n                              pppppppcVar29 =\n                                   (code *******)\n                                   (*(code *)(iVar43 + 0x7f1c))(&ppppppcStack_204,pppppppcVar38);\n                              if (pppppppcVar29 != (code *******)0x0) goto LAB_00056cb8;\n                            }\n                          }\n                        }\n                        else {\n                          do {\n                            ppppppcVar32 = *pppppppcVar34 + *piVar5 * 2;\n                            if ((*(char *)(ppppppcVar32 + 1) == '\t') &&\n                               ((code ******)*ppppppcVar32 == *pppppppcVar31)) goto LAB_00056b8c;\n                            iVar37 = iVar37 + 1;\n                            piVar5 = piVar5 + 1;\n                          } while (iStack_200 != iVar37);\n                        }\n                      }\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1);\n                    } while ((int)pppppppcVar29 < iStack_200);\n                  }\n                  pppppppcVar31 = &ppppppcStack_204;\n                  pppppppcVar38 = pppppppcVar34;\n                  ppppppcVar32 = (code ******)\n                                 FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,0);\n                  pppppppcVar34[9] = ppppppcVar32;\n                  pppppppcVar29 = pppppppcStack_208;\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    if (((uint)ppppppcVar32[0xd] & 0x1000000) == 0) {\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar34[10] = ppppppcVar32;\n                    }\n                    else {\n                      pppppppcVar31 = &ppppppcStack_204;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,1);\n                      pppppppcVar34[10] = ppppppcVar32;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,2);\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar38 = pppppppcVar34;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,6);\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar29 = pppppppcStack_208;\n                      if (((pppppppcVar34[10] == (code ******)0x0) ||\n                          (pppppppcVar34[0xb] == (code ******)0x0)) ||\n                         (ppppppcVar32 == (code ******)0x0)) goto LAB_00056cb8;\n                    }\n                    (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                    pppppppcVar29 = pppppppcVar33;\n                  }\n                }\nLAB_00056cb8:\n                pppppppcStack_20c = pppppppcVar29;\n                FUN_0004b234(pppppppcVar3);\n                FUN_0004b2bc(&pppppppcStack_1f8);\n                pppppppcVar29 = pppppppcStack_20c;\n                if (pppppppcStack_20c != (code *******)0x0) {\n                  if (*(int *)(puVar41 + 0x23c78) != 0) {\n                    (**(code **)(puVar41 + 0x23df0))(pppppppcVar34 + 0x22);\n                  }\n                  FUN_0004b338(pppppppcVar34);\n                  *pppppppcVar3 = (code ******)0x0;\n                  pppppppcVar3[1] = (code ******)0x0;\n                  pppppppcVar29 = pppppppcStack_20c;\n                }\n                goto LAB_00056cfc;\n              }" if (parenthesized_expression "(pppppppcVar30 == (code *******)0x0)" ( (binary_expression "pppppppcVar30 == (code *******)0x0" identifier == (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\n                uVar7 = 0;\n                iVar18 = *(int *)(puVar41 + 0x23b40);\n                pppppppcVar33 = (code *******)0x0;\nLAB_00056744:\n                if ((code *******)pppppppcVar29[2] != pppppppcVar33) {\nLAB_00056750:\n                  if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                    pppppppcVar38 = pppppppcVar29;\n                    pppppppcVar31 = pppppppcVar33;\n                    pppppppcVar30 =\n                         (code *******)\n                         (*(code *)(iVar18 + -0x561c))\n                                   (&ppppppcStack_204,pppppppcVar29,pppppppcVar33,1);\n                    if (pppppppcVar30 != (code *******)0x0) goto LAB_00056168;\n                    if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                      (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                      uVar7 = 1;\n                    }\n                  }\n                  pppppppcVar33 = (code *******)((int)pppppppcVar33 + 1);\n                  goto LAB_00056744;\n                }\n                if (uVar7 != 0) {\n                  uVar7 = 0;\n                  pppppppcVar33 = (code *******)0x0;\n                  goto LAB_00056750;\n                }\n                if (((((uint)pppppppcVar3[7] & 0x8000000) == 0) &&\n                    (pppppppcVar3[6] != (code ******)0x0)) &&\n                   ((char)*(code *)(pppppppcVar29 + 0x16) < '\0')) {\n                  ppppppcVar32 = pppppppcVar29[2];\n                }\n                else {\n                  if (pppppppcVar29[0x13] == (code ******)0x0) goto LAB_000568f0;\n                  ppppppcVar32 = pppppppcVar29[2];\n                }\n                ppppppcVar35 = (code ******)\n                               (**(code **)(puVar41 + 0x23cf0))((int)ppppppcVar32 * 0xc);\n                pppppppcVar29[7] = ppppppcVar35;\n                if (ppppppcVar35 == (code ******)0x0) {\n                  pppppppcVar30 = (code *******)0xc;\n                  goto LAB_00056168;\n                }\n                if (ppppppcVar32 != (code ******)0x0) {\n                  iVar18 = 0;\n                  ppppppcVar32 = (code ******)0x0;\n                  do {\n                    puVar21 = (undefined1 *)((int)pppppppcVar29[7] + iVar18);\n                    *puVar21 = 0;\n                    puVar21[1] = 0;\n                    puVar21[2] = 0;\n                    puVar21[3] = 0;\n                    puVar21[4] = 0;\n                    puVar21[5] = 0;\n                    puVar21[6] = 0;\n                    puVar21[7] = 0;\n                    puVar21[8] = 0;\n                    puVar21[9] = 0;\n                    puVar21[10] = 0;\n                    puVar21[0xb] = 0;\n                    ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                    iVar18 = iVar18 + 0xc;\n                  } while (ppppppcVar32 < pppppppcVar29[2]);\n                  iVar18 = *(int *)(puVar41 + 0x23abc);\n                  if (pppppppcVar29[2] != (code ******)0x0) {\n                    iVar43 = 0;\n                    pppppppcStack_218 = (code *******)0x0;\n                    do {\n                      piVar5 = *(int **)((int)pppppppcVar29[6] + iVar43 + 8);\n                      if (0 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4)) {\n                        iVar37 = 0;\n                        do {\n                          pppppppcVar38 = pppppppcStack_218;\n                          iVar22 = (*(code *)(iVar18 + 0x6e30))\n                                             (pppppppcVar29[7] + *piVar5 * 3,pppppppcStack_218);\n                          pppppppcVar30 = (code *******)0xc;\n                          if (iVar22 == 0) goto LAB_00056168;\n                          iVar37 = iVar37 + 1;\n                          piVar5 = piVar5 + 1;\n                        } while (iVar37 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4));\n                      }\n                      pppppppcStack_218 = (code *******)((int)pppppppcStack_218 + 1);\n                      iVar43 = iVar43 + 0xc;\n                    } while (pppppppcStack_218 < pppppppcVar29[2]);\n                  }\n                }\nLAB_000568f0:\n                pppppppcStack_20c = (code *******)0x0;\n                if (((((uint)pppppppcVar34[0x16] & 0x20000000) != 0) && (uVar16 == 0)) &&\n                   (pppppppcVar3[5] == (code ******)0x0)) {\n                  if (pppppppcVar34[2] != (code ******)0x0) {\n                    pppppppcVar31 = (code *******)(*(int *)(puVar41 + 0x23754) + 0x6e4c);\n                    if (*(byte *)(*pppppppcVar34 + 1) < 0xd) {\n                    \n                    \n                      pppppppcVar29 =\n                           (code *******)\n                           (*(code *)(puVar41 +\n                                     (int)(pppppppcVar31[*(byte *)(*pppppppcVar34 + 1)] + 0xadc7)))\n                                     ();\n                      return pppppppcVar29;\n                    }\n                    (**(code **)(puVar41 + 0x23bc4))(0);\n                    if (uVar7 != 0) {\n                      pppppppcVar31 = (code *******)&DAT_00000007;\n                      ppppppcVar32 = (code ******)0x0;\n                      do {\n                        ppppppcVar35 = *pppppppcVar34 + (int)ppppppcVar32 * 2;\n                        if (*(char *)(ppppppcVar35 + 1) == '\x01') {\n                          if (*(char *)ppppppcVar35 < '\0') {\n                            ppppppcVar35[1] = (code *****)((uint)ppppppcVar35[1] & 0xfffffbff);\n                          }\n                        }\n                        else if (*(char *)(ppppppcVar35 + 1) == '\x05') {\n                          *(char *)(ppppppcVar35 + 1) = '\a';\n                        }\n                        ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                      } while (ppppppcVar32 < pppppppcVar34[2]);\n                    }\n                  }\n                  pppppppcVar34[0x17] = (code ******)0x1;\n                  if (0 < (int)pppppppcVar34[0x13]) {\n                    uVar7 = 1;\n                  }\n                  *(byte *)(pppppppcVar34 + 0x16) =\n                       (byte)*(code *)(pppppppcVar34 + 0x16) & 0x9f | (byte)((uVar7 & 1) << 6);\n                }\n                ppppppcVar32 = (code ******)pppppppcVar34[0xd][3][7];\n                pppppppcVar34[0x12] = ppppppcVar32;\n                pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppppcVar32 * 3);\n                pppppppcVar33 = (code *******)FUN_000483e8(&ppppppcStack_204,pppppppcVar38);\n                pppppppcVar29 = pppppppcVar33;\n                pppppppcStack_208 = pppppppcVar33;\n                if (pppppppcVar33 == (code *******)0x0) {\n                  if ((0 < (int)pppppppcVar34[0x13]) && (0 < iStack_200)) {\n                    iVar18 = *(int *)(puVar41 + 0x23abc);\n                    iVar43 = *(int *)(puVar41 + 0x23abc);\n                    pppppppcVar29 = (code *******)0x0;\n                    do {\n                      pppppppcVar31 =\n                           (code *******)(*pppppppcVar34 + piStack_1fc[(int)pppppppcVar29] * 2);\n                      if (*(code *)(pppppppcVar31 + 1) == (code)0x4) {\n                        iVar37 = 0;\n                        piVar5 = piStack_1fc;\n                        if (iStack_200 < 1) {\nLAB_00056b8c:\n                          if (iStack_200 != iVar37) {\n                            ppppcVar40 = *pppppppcVar34[5][piStack_1fc[(int)pppppppcVar29] * 3 + 2];\n                            iVar37 = (*(code *)(iVar18 + 0x5ea8))(&ppppppcStack_204,ppppcVar40);\n                            if (iVar37 == 0) {\n                              pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppcVar40 * 3)\n                              ;\n                              pppppppcVar29 =\n                                   (code *******)\n                                   (*(code *)(iVar43 + 0x7f1c))(&ppppppcStack_204,pppppppcVar38);\n                              if (pppppppcVar29 != (code *******)0x0) goto LAB_00056cb8;\n                            }\n                          }\n                        }\n                        else {\n                          do {\n                            ppppppcVar32 = *pppppppcVar34 + *piVar5 * 2;\n                            if ((*(char *)(ppppppcVar32 + 1) == '\t') &&\n                               ((code ******)*ppppppcVar32 == *pppppppcVar31)) goto LAB_00056b8c;\n                            iVar37 = iVar37 + 1;\n                            piVar5 = piVar5 + 1;\n                          } while (iStack_200 != iVar37);\n                        }\n                      }\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1);\n                    } while ((int)pppppppcVar29 < iStack_200);\n                  }\n                  pppppppcVar31 = &ppppppcStack_204;\n                  pppppppcVar38 = pppppppcVar34;\n                  ppppppcVar32 = (code ******)\n                                 FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,0);\n                  pppppppcVar34[9] = ppppppcVar32;\n                  pppppppcVar29 = pppppppcStack_208;\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    if (((uint)ppppppcVar32[0xd] & 0x1000000) == 0) {\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar34[10] = ppppppcVar32;\n                    }\n                    else {\n                      pppppppcVar31 = &ppppppcStack_204;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,1);\n                      pppppppcVar34[10] = ppppppcVar32;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,2);\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar38 = pppppppcVar34;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,6);\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar29 = pppppppcStack_208;\n                      if (((pppppppcVar34[10] == (code ******)0x0) ||\n                          (pppppppcVar34[0xb] == (code ******)0x0)) ||\n                         (ppppppcVar32 == (code ******)0x0)) goto LAB_00056cb8;\n                    }\n                    (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                    pppppppcVar29 = pppppppcVar33;\n                  }\n                }\nLAB_00056cb8:\n                pppppppcStack_20c = pppppppcVar29;\n                FUN_0004b234(pppppppcVar3);\n                FUN_0004b2bc(&pppppppcStack_1f8);\n                pppppppcVar29 = pppppppcStack_20c;\n                if (pppppppcStack_20c != (code *******)0x0) {\n                  if (*(int *)(puVar41 + 0x23c78) != 0) {\n                    (**(code **)(puVar41 + 0x23df0))(pppppppcVar34 + 0x22);\n                  }\n                  FUN_0004b338(pppppppcVar34);\n                  *pppppppcVar3 = (code ******)0x0;\n                  pppppppcVar3[1] = (code ******)0x0;\n                  pppppppcVar29 = pppppppcStack_20c;\n                }\n                goto LAB_00056cfc;\n              }" { (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" identifier = number_literal) ;) (expression_statement "iVar18 = *(int *)(puVar41 + 0x23b40);" (assignment_expression "iVar18 = *(int *)(puVar41 + 0x23b40)" identifier = (pointer_expression "*(int *)(puVar41 + 0x23b40)" * (cast_expression "(int *)(puVar41 + 0x23b40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar41 + 0x23b40)" ( (binary_expression "puVar41 + 0x23b40" identifier + number_literal) ))))) ;) (expression_statement "pppppppcVar33 = (code *******)0x0;" (assignment_expression "pppppppcVar33 = (code *******)0x0" identifier = (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (labeled_statement "LAB_00056744:\n                if ((code *******)pppppppcVar29[2] != pppppppcVar33) {\nLAB_00056750:\n                  if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                    pppppppcVar38 = pppppppcVar29;\n                    pppppppcVar31 = pppppppcVar33;\n                    pppppppcVar30 =\n                         (code *******)\n                         (*(code *)(iVar18 + -0x561c))\n                                   (&ppppppcStack_204,pppppppcVar29,pppppppcVar33,1);\n                    if (pppppppcVar30 != (code *******)0x0) goto LAB_00056168;\n                    if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                      (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                      uVar7 = 1;\n                    }\n                  }\n                  pppppppcVar33 = (code *******)((int)pppppppcVar33 + 1);\n                  goto LAB_00056744;\n                }" statement_identifier : (if_statement "if ((code *******)pppppppcVar29[2] != pppppppcVar33) {\nLAB_00056750:\n                  if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                    pppppppcVar38 = pppppppcVar29;\n                    pppppppcVar31 = pppppppcVar33;\n                    pppppppcVar30 =\n                         (code *******)\n                         (*(code *)(iVar18 + -0x561c))\n                                   (&ppppppcStack_204,pppppppcVar29,pppppppcVar33,1);\n                    if (pppppppcVar30 != (code *******)0x0) goto LAB_00056168;\n                    if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                      (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                      uVar7 = 1;\n                    }\n                  }\n                  pppppppcVar33 = (code *******)((int)pppppppcVar33 + 1);\n                  goto LAB_00056744;\n                }" if (parenthesized_expression "((code *******)pppppppcVar29[2] != pppppppcVar33)" ( (binary_expression "(code *******)pppppppcVar29[2] != pppppppcVar33" (cast_expression "(code *******)pppppppcVar29[2]" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (subscript_expression "pppppppcVar29[2]" identifier [ number_literal ])) != identifier) )) (compound_statement "{\nLAB_00056750:\n                  if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                    pppppppcVar38 = pppppppcVar29;\n                    pppppppcVar31 = pppppppcVar33;\n                    pppppppcVar30 =\n                         (code *******)\n                         (*(code *)(iVar18 + -0x561c))\n                                   (&ppppppcStack_204,pppppppcVar29,pppppppcVar33,1);\n                    if (pppppppcVar30 != (code *******)0x0) goto LAB_00056168;\n                    if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                      (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                      uVar7 = 1;\n                    }\n                  }\n                  pppppppcVar33 = (code *******)((int)pppppppcVar33 + 1);\n                  goto LAB_00056744;\n                }" { (labeled_statement "LAB_00056750:\n                  if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                    pppppppcVar38 = pppppppcVar29;\n                    pppppppcVar31 = pppppppcVar33;\n                    pppppppcVar30 =\n                         (code *******)\n                         (*(code *)(iVar18 + -0x561c))\n                                   (&ppppppcStack_204,pppppppcVar29,pppppppcVar33,1);\n                    if (pppppppcVar30 != (code *******)0x0) goto LAB_00056168;\n                    if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                      (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                      uVar7 = 1;\n                    }\n                  }" statement_identifier : (if_statement "if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                    pppppppcVar38 = pppppppcVar29;\n                    pppppppcVar31 = pppppppcVar33;\n                    pppppppcVar30 =\n                         (code *******)\n                         (*(code *)(iVar18 + -0x561c))\n                                   (&ppppppcStack_204,pppppppcVar29,pppppppcVar33,1);\n                    if (pppppppcVar30 != (code *******)0x0) goto LAB_00056168;\n                    if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                      (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                      uVar7 = 1;\n                    }\n                  }" if (parenthesized_expression "(pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0)" ( (binary_expression "pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0" (subscript_expression "pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1]" (subscript_expression "pppppppcVar29[6]" identifier [ number_literal ]) [ (binary_expression "(int)pppppppcVar33 * 3 + 1" (binary_expression "(int)pppppppcVar33 * 3" (cast_expression "(int)pppppppcVar33" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal) ]) == (cast_expression "(code *****)0x0" ( (type_descriptor "code *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) )) (compound_statement "{\n                    pppppppcVar38 = pppppppcVar29;\n                    pppppppcVar31 = pppppppcVar33;\n                    pppppppcVar30 =\n                         (code *******)\n                         (*(code *)(iVar18 + -0x561c))\n                                   (&ppppppcStack_204,pppppppcVar29,pppppppcVar33,1);\n                    if (pppppppcVar30 != (code *******)0x0) goto LAB_00056168;\n                    if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                      (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                      uVar7 = 1;\n                    }\n                  }" { (expression_statement "pppppppcVar38 = pppppppcVar29;" (assignment_expression "pppppppcVar38 = pppppppcVar29" identifier = identifier) ;) (expression_statement "pppppppcVar31 = pppppppcVar33;" (assignment_expression "pppppppcVar31 = pppppppcVar33" identifier = identifier) ;) (expression_statement "pppppppcVar30 =\n                         (code *******)\n                         (*(code *)(iVar18 + -0x561c))\n                                   (&ppppppcStack_204,pppppppcVar29,pppppppcVar33,1);" (assignment_expression "pppppppcVar30 =\n                         (code *******)\n                         (*(code *)(iVar18 + -0x561c))\n                                   (&ppppppcStack_204,pppppppcVar29,pppppppcVar33,1)" identifier = (cast_expression "(code *******)\n                         (*(code *)(iVar18 + -0x561c))\n                                   (&ppppppcStack_204,pppppppcVar29,pppppppcVar33,1)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "(*(code *)(iVar18 + -0x561c))\n                                   (&ppppppcStack_204,pppppppcVar29,pppppppcVar33,1)" (parenthesized_expression "(*(code *)(iVar18 + -0x561c))" ( (pointer_expression "*(code *)(iVar18 + -0x561c)" * (cast_expression "(code *)(iVar18 + -0x561c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + -0x561c)" ( (binary_expression "iVar18 + -0x561c" identifier + number_literal) )))) )) (argument_list "(&ppppppcStack_204,pppppppcVar29,pppppppcVar33,1)" ( (pointer_expression "&ppppppcStack_204" & identifier) , identifier , identifier , number_literal ))))) ;) (if_statement "if (pppppppcVar30 != (code *******)0x0) goto LAB_00056168;" if (parenthesized_expression "(pppppppcVar30 != (code *******)0x0)" ( (binary_expression "pppppppcVar30 != (code *******)0x0" identifier != (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (goto_statement "goto LAB_00056168;" goto statement_identifier ;)) (if_statement "if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                      (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                      uVar7 = 1;\n                    }" if (parenthesized_expression "(pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0)" ( (binary_expression "pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0" (subscript_expression "pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1]" (subscript_expression "pppppppcVar29[6]" identifier [ number_literal ]) [ (binary_expression "(int)pppppppcVar33 * 3 + 1" (binary_expression "(int)pppppppcVar33 * 3" (cast_expression "(int)pppppppcVar33" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal) ]) == (cast_expression "(code *****)0x0" ( (type_descriptor "code *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) )) (compound_statement "{\n                      (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                      uVar7 = 1;\n                    }" { (expression_statement "(**(code **)(puVar41 + 0x23dc0))(piStack_1fc);" (call_expression "(**(code **)(puVar41 + 0x23dc0))(piStack_1fc)" (parenthesized_expression "(**(code **)(puVar41 + 0x23dc0))" ( (pointer_expression "**(code **)(puVar41 + 0x23dc0)" * (pointer_expression "*(code **)(puVar41 + 0x23dc0)" * (cast_expression "(code **)(puVar41 + 0x23dc0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar41 + 0x23dc0)" ( (binary_expression "puVar41 + 0x23dc0" identifier + number_literal) ))))) )) (argument_list "(piStack_1fc)" ( identifier ))) ;) (expression_statement "uVar7 = 1;" (assignment_expression "uVar7 = 1" identifier = number_literal) ;) })) }))) (expression_statement "pppppppcVar33 = (code *******)((int)pppppppcVar33 + 1);" (assignment_expression "pppppppcVar33 = (code *******)((int)pppppppcVar33 + 1)" identifier = (cast_expression "(code *******)((int)pppppppcVar33 + 1)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)pppppppcVar33 + 1)" ( (binary_expression "(int)pppppppcVar33 + 1" (cast_expression "(int)pppppppcVar33" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (goto_statement "goto LAB_00056744;" goto statement_identifier ;) }))) (if_statement "if (uVar7 != 0) {\n                  uVar7 = 0;\n                  pppppppcVar33 = (code *******)0x0;\n                  goto LAB_00056750;\n                }" if (parenthesized_expression "(uVar7 != 0)" ( (binary_expression "uVar7 != 0" identifier != number_literal) )) (compound_statement "{\n                  uVar7 = 0;\n                  pppppppcVar33 = (code *******)0x0;\n                  goto LAB_00056750;\n                }" { (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" identifier = number_literal) ;) (expression_statement "pppppppcVar33 = (code *******)0x0;" (assignment_expression "pppppppcVar33 = (code *******)0x0" identifier = (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (goto_statement "goto LAB_00056750;" goto statement_identifier ;) })) (if_statement "if (((((uint)pppppppcVar3[7] & 0x8000000) == 0) &&\n                    (pppppppcVar3[6] != (code ******)0x0)) &&\n                   ((char)*(code *)(pppppppcVar29 + 0x16) < '\0')) {\n                  ppppppcVar32 = pppppppcVar29[2];\n                }\n                else {\n                  if (pppppppcVar29[0x13] == (code ******)0x0) goto LAB_000568f0;\n                  ppppppcVar32 = pppppppcVar29[2];\n                }" if (parenthesized_expression "(((((uint)pppppppcVar3[7] & 0x8000000) == 0) &&\n                    (pppppppcVar3[6] != (code ******)0x0)) &&\n                   ((char)*(code *)(pppppppcVar29 + 0x16) < '\0'))" ( (binary_expression "((((uint)pppppppcVar3[7] & 0x8000000) == 0) &&\n                    (pppppppcVar3[6] != (code ******)0x0)) &&\n                   ((char)*(code *)(pppppppcVar29 + 0x16) < '\0')" (parenthesized_expression "((((uint)pppppppcVar3[7] & 0x8000000) == 0) &&\n                    (pppppppcVar3[6] != (code ******)0x0))" ( (binary_expression "(((uint)pppppppcVar3[7] & 0x8000000) == 0) &&\n                    (pppppppcVar3[6] != (code ******)0x0)" (parenthesized_expression "(((uint)pppppppcVar3[7] & 0x8000000) == 0)" ( (binary_expression "((uint)pppppppcVar3[7] & 0x8000000) == 0" (parenthesized_expression "((uint)pppppppcVar3[7] & 0x8000000)" ( (binary_expression "(uint)pppppppcVar3[7] & 0x8000000" (cast_expression "(uint)pppppppcVar3[7]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pppppppcVar3[7]" identifier [ number_literal ])) & number_literal) )) == number_literal) )) && (parenthesized_expression "(pppppppcVar3[6] != (code ******)0x0)" ( (binary_expression "pppppppcVar3[6] != (code ******)0x0" (subscript_expression "pppppppcVar3[6]" identifier [ number_literal ]) != (cast_expression "(code ******)0x0" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ))) )) && (parenthesized_expression "((char)*(code *)(pppppppcVar29 + 0x16) < '\0')" ( (binary_expression "(char)*(code *)(pppppppcVar29 + 0x16) < '\0'" (cast_expression "(char)*(code *)(pppppppcVar29 + 0x16)" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(code *)(pppppppcVar29 + 0x16)" * (cast_expression "(code *)(pppppppcVar29 + 0x16)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pppppppcVar29 + 0x16)" ( (binary_expression "pppppppcVar29 + 0x16" identifier + number_literal) ))))) < (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n                  ppppppcVar32 = pppppppcVar29[2];\n                }" { (expression_statement "ppppppcVar32 = pppppppcVar29[2];" (assignment_expression "ppppppcVar32 = pppppppcVar29[2]" identifier = (subscript_expression "pppppppcVar29[2]" identifier [ number_literal ])) ;) }) (else_clause "else {\n                  if (pppppppcVar29[0x13] == (code ******)0x0) goto LAB_000568f0;\n                  ppppppcVar32 = pppppppcVar29[2];\n                }" else (compound_statement "{\n                  if (pppppppcVar29[0x13] == (code ******)0x0) goto LAB_000568f0;\n                  ppppppcVar32 = pppppppcVar29[2];\n                }" { (if_statement "if (pppppppcVar29[0x13] == (code ******)0x0) goto LAB_000568f0;" if (parenthesized_expression "(pppppppcVar29[0x13] == (code ******)0x0)" ( (binary_expression "pppppppcVar29[0x13] == (code ******)0x0" (subscript_expression "pppppppcVar29[0x13]" identifier [ number_literal ]) == (cast_expression "(code ******)0x0" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (goto_statement "goto LAB_000568f0;" goto statement_identifier ;)) (expression_statement "ppppppcVar32 = pppppppcVar29[2];" (assignment_expression "ppppppcVar32 = pppppppcVar29[2]" identifier = (subscript_expression "pppppppcVar29[2]" identifier [ number_literal ])) ;) }))) (expression_statement "ppppppcVar35 = (code ******)\n                               (**(code **)(puVar41 + 0x23cf0))((int)ppppppcVar32 * 0xc);" (assignment_expression "ppppppcVar35 = (code ******)\n                               (**(code **)(puVar41 + 0x23cf0))((int)ppppppcVar32 * 0xc)" identifier = (cast_expression "(code ******)\n                               (**(code **)(puVar41 + 0x23cf0))((int)ppppppcVar32 * 0xc)" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (call_expression "(**(code **)(puVar41 + 0x23cf0))((int)ppppppcVar32 * 0xc)" (parenthesized_expression "(**(code **)(puVar41 + 0x23cf0))" ( (pointer_expression "**(code **)(puVar41 + 0x23cf0)" * (pointer_expression "*(code **)(puVar41 + 0x23cf0)" * (cast_expression "(code **)(puVar41 + 0x23cf0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar41 + 0x23cf0)" ( (binary_expression "puVar41 + 0x23cf0" identifier + number_literal) ))))) )) (argument_list "((int)ppppppcVar32 * 0xc)" ( (binary_expression "(int)ppppppcVar32 * 0xc" (cast_expression "(int)ppppppcVar32" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) ))))) ;) (expression_statement "pppppppcVar29[7] = ppppppcVar35;" (assignment_expression "pppppppcVar29[7] = ppppppcVar35" (subscript_expression "pppppppcVar29[7]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (ppppppcVar35 == (code ******)0x0) {\n                  pppppppcVar30 = (code *******)0xc;\n                  goto LAB_00056168;\n                }" if (parenthesized_expression "(ppppppcVar35 == (code ******)0x0)" ( (binary_expression "ppppppcVar35 == (code ******)0x0" identifier == (cast_expression "(code ******)0x0" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (compound_statement "{\n                  pppppppcVar30 = (code *******)0xc;\n                  goto LAB_00056168;\n                }" { (expression_statement "pppppppcVar30 = (code *******)0xc;" (assignment_expression "pppppppcVar30 = (code *******)0xc" identifier = (cast_expression "(code *******)0xc" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (goto_statement "goto LAB_00056168;" goto statement_identifier ;) })) (if_statement "if (ppppppcVar32 != (code ******)0x0) {\n                  iVar18 = 0;\n                  ppppppcVar32 = (code ******)0x0;\n                  do {\n                    puVar21 = (undefined1 *)((int)pppppppcVar29[7] + iVar18);\n                    *puVar21 = 0;\n                    puVar21[1] = 0;\n                    puVar21[2] = 0;\n                    puVar21[3] = 0;\n                    puVar21[4] = 0;\n                    puVar21[5] = 0;\n                    puVar21[6] = 0;\n                    puVar21[7] = 0;\n                    puVar21[8] = 0;\n                    puVar21[9] = 0;\n                    puVar21[10] = 0;\n                    puVar21[0xb] = 0;\n                    ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                    iVar18 = iVar18 + 0xc;\n                  } while (ppppppcVar32 < pppppppcVar29[2]);\n                  iVar18 = *(int *)(puVar41 + 0x23abc);\n                  if (pppppppcVar29[2] != (code ******)0x0) {\n                    iVar43 = 0;\n                    pppppppcStack_218 = (code *******)0x0;\n                    do {\n                      piVar5 = *(int **)((int)pppppppcVar29[6] + iVar43 + 8);\n                      if (0 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4)) {\n                        iVar37 = 0;\n                        do {\n                          pppppppcVar38 = pppppppcStack_218;\n                          iVar22 = (*(code *)(iVar18 + 0x6e30))\n                                             (pppppppcVar29[7] + *piVar5 * 3,pppppppcStack_218);\n                          pppppppcVar30 = (code *******)0xc;\n                          if (iVar22 == 0) goto LAB_00056168;\n                          iVar37 = iVar37 + 1;\n                          piVar5 = piVar5 + 1;\n                        } while (iVar37 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4));\n                      }\n                      pppppppcStack_218 = (code *******)((int)pppppppcStack_218 + 1);\n                      iVar43 = iVar43 + 0xc;\n                    } while (pppppppcStack_218 < pppppppcVar29[2]);\n                  }\n                }" if (parenthesized_expression "(ppppppcVar32 != (code ******)0x0)" ( (binary_expression "ppppppcVar32 != (code ******)0x0" identifier != (cast_expression "(code ******)0x0" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (compound_statement "{\n                  iVar18 = 0;\n                  ppppppcVar32 = (code ******)0x0;\n                  do {\n                    puVar21 = (undefined1 *)((int)pppppppcVar29[7] + iVar18);\n                    *puVar21 = 0;\n                    puVar21[1] = 0;\n                    puVar21[2] = 0;\n                    puVar21[3] = 0;\n                    puVar21[4] = 0;\n                    puVar21[5] = 0;\n                    puVar21[6] = 0;\n                    puVar21[7] = 0;\n                    puVar21[8] = 0;\n                    puVar21[9] = 0;\n                    puVar21[10] = 0;\n                    puVar21[0xb] = 0;\n                    ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                    iVar18 = iVar18 + 0xc;\n                  } while (ppppppcVar32 < pppppppcVar29[2]);\n                  iVar18 = *(int *)(puVar41 + 0x23abc);\n                  if (pppppppcVar29[2] != (code ******)0x0) {\n                    iVar43 = 0;\n                    pppppppcStack_218 = (code *******)0x0;\n                    do {\n                      piVar5 = *(int **)((int)pppppppcVar29[6] + iVar43 + 8);\n                      if (0 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4)) {\n                        iVar37 = 0;\n                        do {\n                          pppppppcVar38 = pppppppcStack_218;\n                          iVar22 = (*(code *)(iVar18 + 0x6e30))\n                                             (pppppppcVar29[7] + *piVar5 * 3,pppppppcStack_218);\n                          pppppppcVar30 = (code *******)0xc;\n                          if (iVar22 == 0) goto LAB_00056168;\n                          iVar37 = iVar37 + 1;\n                          piVar5 = piVar5 + 1;\n                        } while (iVar37 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4));\n                      }\n                      pppppppcStack_218 = (code *******)((int)pppppppcStack_218 + 1);\n                      iVar43 = iVar43 + 0xc;\n                    } while (pppppppcStack_218 < pppppppcVar29[2]);\n                  }\n                }" { (expression_statement "iVar18 = 0;" (assignment_expression "iVar18 = 0" identifier = number_literal) ;) (expression_statement "ppppppcVar32 = (code ******)0x0;" (assignment_expression "ppppppcVar32 = (code ******)0x0" identifier = (cast_expression "(code ******)0x0" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) (do_statement "do {\n                    puVar21 = (undefined1 *)((int)pppppppcVar29[7] + iVar18);\n                    *puVar21 = 0;\n                    puVar21[1] = 0;\n                    puVar21[2] = 0;\n                    puVar21[3] = 0;\n                    puVar21[4] = 0;\n                    puVar21[5] = 0;\n                    puVar21[6] = 0;\n                    puVar21[7] = 0;\n                    puVar21[8] = 0;\n                    puVar21[9] = 0;\n                    puVar21[10] = 0;\n                    puVar21[0xb] = 0;\n                    ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                    iVar18 = iVar18 + 0xc;\n                  } while (ppppppcVar32 < pppppppcVar29[2]);" do (compound_statement "{\n                    puVar21 = (undefined1 *)((int)pppppppcVar29[7] + iVar18);\n                    *puVar21 = 0;\n                    puVar21[1] = 0;\n                    puVar21[2] = 0;\n                    puVar21[3] = 0;\n                    puVar21[4] = 0;\n                    puVar21[5] = 0;\n                    puVar21[6] = 0;\n                    puVar21[7] = 0;\n                    puVar21[8] = 0;\n                    puVar21[9] = 0;\n                    puVar21[10] = 0;\n                    puVar21[0xb] = 0;\n                    ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                    iVar18 = iVar18 + 0xc;\n                  }" { (expression_statement "puVar21 = (undefined1 *)((int)pppppppcVar29[7] + iVar18);" (assignment_expression "puVar21 = (undefined1 *)((int)pppppppcVar29[7] + iVar18)" identifier = (cast_expression "(undefined1 *)((int)pppppppcVar29[7] + iVar18)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppppppcVar29[7] + iVar18)" ( (binary_expression "(int)pppppppcVar29[7] + iVar18" (cast_expression "(int)pppppppcVar29[7]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "pppppppcVar29[7]" identifier [ number_literal ])) + identifier) )))) ;) (expression_statement "*puVar21 = 0;" (assignment_expression "*puVar21 = 0" (pointer_expression "*puVar21" * identifier) = number_literal) ;) (expression_statement "puVar21[1] = 0;" (assignment_expression "puVar21[1] = 0" (subscript_expression "puVar21[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar21[2] = 0;" (assignment_expression "puVar21[2] = 0" (subscript_expression "puVar21[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar21[3] = 0;" (assignment_expression "puVar21[3] = 0" (subscript_expression "puVar21[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar21[4] = 0;" (assignment_expression "puVar21[4] = 0" (subscript_expression "puVar21[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar21[5] = 0;" (assignment_expression "puVar21[5] = 0" (subscript_expression "puVar21[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar21[6] = 0;" (assignment_expression "puVar21[6] = 0" (subscript_expression "puVar21[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar21[7] = 0;" (assignment_expression "puVar21[7] = 0" (subscript_expression "puVar21[7]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar21[8] = 0;" (assignment_expression "puVar21[8] = 0" (subscript_expression "puVar21[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar21[9] = 0;" (assignment_expression "puVar21[9] = 0" (subscript_expression "puVar21[9]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar21[10] = 0;" (assignment_expression "puVar21[10] = 0" (subscript_expression "puVar21[10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar21[0xb] = 0;" (assignment_expression "puVar21[0xb] = 0" (subscript_expression "puVar21[0xb]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);" (assignment_expression "ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1)" identifier = (cast_expression "(code ******)((int)ppppppcVar32 + 1)" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "((int)ppppppcVar32 + 1)" ( (binary_expression "(int)ppppppcVar32 + 1" (cast_expression "(int)ppppppcVar32" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "iVar18 = iVar18 + 0xc;" (assignment_expression "iVar18 = iVar18 + 0xc" identifier = (binary_expression "iVar18 + 0xc" identifier + number_literal)) ;) }) while (parenthesized_expression "(ppppppcVar32 < pppppppcVar29[2])" ( (binary_expression "ppppppcVar32 < pppppppcVar29[2]" identifier < (subscript_expression "pppppppcVar29[2]" identifier [ number_literal ])) )) ;) (expression_statement "iVar18 = *(int *)(puVar41 + 0x23abc);" (assignment_expression "iVar18 = *(int *)(puVar41 + 0x23abc)" identifier = (pointer_expression "*(int *)(puVar41 + 0x23abc)" * (cast_expression "(int *)(puVar41 + 0x23abc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar41 + 0x23abc)" ( (binary_expression "puVar41 + 0x23abc" identifier + number_literal) ))))) ;) (if_statement "if (pppppppcVar29[2] != (code ******)0x0) {\n                    iVar43 = 0;\n                    pppppppcStack_218 = (code *******)0x0;\n                    do {\n                      piVar5 = *(int **)((int)pppppppcVar29[6] + iVar43 + 8);\n                      if (0 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4)) {\n                        iVar37 = 0;\n                        do {\n                          pppppppcVar38 = pppppppcStack_218;\n                          iVar22 = (*(code *)(iVar18 + 0x6e30))\n                                             (pppppppcVar29[7] + *piVar5 * 3,pppppppcStack_218);\n                          pppppppcVar30 = (code *******)0xc;\n                          if (iVar22 == 0) goto LAB_00056168;\n                          iVar37 = iVar37 + 1;\n                          piVar5 = piVar5 + 1;\n                        } while (iVar37 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4));\n                      }\n                      pppppppcStack_218 = (code *******)((int)pppppppcStack_218 + 1);\n                      iVar43 = iVar43 + 0xc;\n                    } while (pppppppcStack_218 < pppppppcVar29[2]);\n                  }" if (parenthesized_expression "(pppppppcVar29[2] != (code ******)0x0)" ( (binary_expression "pppppppcVar29[2] != (code ******)0x0" (subscript_expression "pppppppcVar29[2]" identifier [ number_literal ]) != (cast_expression "(code ******)0x0" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (compound_statement "{\n                    iVar43 = 0;\n                    pppppppcStack_218 = (code *******)0x0;\n                    do {\n                      piVar5 = *(int **)((int)pppppppcVar29[6] + iVar43 + 8);\n                      if (0 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4)) {\n                        iVar37 = 0;\n                        do {\n                          pppppppcVar38 = pppppppcStack_218;\n                          iVar22 = (*(code *)(iVar18 + 0x6e30))\n                                             (pppppppcVar29[7] + *piVar5 * 3,pppppppcStack_218);\n                          pppppppcVar30 = (code *******)0xc;\n                          if (iVar22 == 0) goto LAB_00056168;\n                          iVar37 = iVar37 + 1;\n                          piVar5 = piVar5 + 1;\n                        } while (iVar37 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4));\n                      }\n                      pppppppcStack_218 = (code *******)((int)pppppppcStack_218 + 1);\n                      iVar43 = iVar43 + 0xc;\n                    } while (pppppppcStack_218 < pppppppcVar29[2]);\n                  }" { (expression_statement "iVar43 = 0;" (assignment_expression "iVar43 = 0" identifier = number_literal) ;) (expression_statement "pppppppcStack_218 = (code *******)0x0;" (assignment_expression "pppppppcStack_218 = (code *******)0x0" identifier = (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (do_statement "do {\n                      piVar5 = *(int **)((int)pppppppcVar29[6] + iVar43 + 8);\n                      if (0 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4)) {\n                        iVar37 = 0;\n                        do {\n                          pppppppcVar38 = pppppppcStack_218;\n                          iVar22 = (*(code *)(iVar18 + 0x6e30))\n                                             (pppppppcVar29[7] + *piVar5 * 3,pppppppcStack_218);\n                          pppppppcVar30 = (code *******)0xc;\n                          if (iVar22 == 0) goto LAB_00056168;\n                          iVar37 = iVar37 + 1;\n                          piVar5 = piVar5 + 1;\n                        } while (iVar37 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4));\n                      }\n                      pppppppcStack_218 = (code *******)((int)pppppppcStack_218 + 1);\n                      iVar43 = iVar43 + 0xc;\n                    } while (pppppppcStack_218 < pppppppcVar29[2]);" do (compound_statement "{\n                      piVar5 = *(int **)((int)pppppppcVar29[6] + iVar43 + 8);\n                      if (0 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4)) {\n                        iVar37 = 0;\n                        do {\n                          pppppppcVar38 = pppppppcStack_218;\n                          iVar22 = (*(code *)(iVar18 + 0x6e30))\n                                             (pppppppcVar29[7] + *piVar5 * 3,pppppppcStack_218);\n                          pppppppcVar30 = (code *******)0xc;\n                          if (iVar22 == 0) goto LAB_00056168;\n                          iVar37 = iVar37 + 1;\n                          piVar5 = piVar5 + 1;\n                        } while (iVar37 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4));\n                      }\n                      pppppppcStack_218 = (code *******)((int)pppppppcStack_218 + 1);\n                      iVar43 = iVar43 + 0xc;\n                    }" { (expression_statement "piVar5 = *(int **)((int)pppppppcVar29[6] + iVar43 + 8);" (assignment_expression "piVar5 = *(int **)((int)pppppppcVar29[6] + iVar43 + 8)" identifier = (pointer_expression "*(int **)((int)pppppppcVar29[6] + iVar43 + 8)" * (cast_expression "(int **)((int)pppppppcVar29[6] + iVar43 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppppppcVar29[6] + iVar43 + 8)" ( (binary_expression "(int)pppppppcVar29[6] + iVar43 + 8" (binary_expression "(int)pppppppcVar29[6] + iVar43" (cast_expression "(int)pppppppcVar29[6]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "pppppppcVar29[6]" identifier [ number_literal ])) + identifier) + number_literal) ))))) ;) (if_statement "if (0 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4)) {\n                        iVar37 = 0;\n                        do {\n                          pppppppcVar38 = pppppppcStack_218;\n                          iVar22 = (*(code *)(iVar18 + 0x6e30))\n                                             (pppppppcVar29[7] + *piVar5 * 3,pppppppcStack_218);\n                          pppppppcVar30 = (code *******)0xc;\n                          if (iVar22 == 0) goto LAB_00056168;\n                          iVar37 = iVar37 + 1;\n                          piVar5 = piVar5 + 1;\n                        } while (iVar37 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4));\n                      }" if (parenthesized_expression "(0 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4))" ( (binary_expression "0 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4)" number_literal < (pointer_expression "*(int *)((int)pppppppcVar29[6] + iVar43 + 4)" * (cast_expression "(int *)((int)pppppppcVar29[6] + iVar43 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppppppcVar29[6] + iVar43 + 4)" ( (binary_expression "(int)pppppppcVar29[6] + iVar43 + 4" (binary_expression "(int)pppppppcVar29[6] + iVar43" (cast_expression "(int)pppppppcVar29[6]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "pppppppcVar29[6]" identifier [ number_literal ])) + identifier) + number_literal) ))))) )) (compound_statement "{\n                        iVar37 = 0;\n                        do {\n                          pppppppcVar38 = pppppppcStack_218;\n                          iVar22 = (*(code *)(iVar18 + 0x6e30))\n                                             (pppppppcVar29[7] + *piVar5 * 3,pppppppcStack_218);\n                          pppppppcVar30 = (code *******)0xc;\n                          if (iVar22 == 0) goto LAB_00056168;\n                          iVar37 = iVar37 + 1;\n                          piVar5 = piVar5 + 1;\n                        } while (iVar37 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4));\n                      }" { (expression_statement "iVar37 = 0;" (assignment_expression "iVar37 = 0" identifier = number_literal) ;) (do_statement "do {\n                          pppppppcVar38 = pppppppcStack_218;\n                          iVar22 = (*(code *)(iVar18 + 0x6e30))\n                                             (pppppppcVar29[7] + *piVar5 * 3,pppppppcStack_218);\n                          pppppppcVar30 = (code *******)0xc;\n                          if (iVar22 == 0) goto LAB_00056168;\n                          iVar37 = iVar37 + 1;\n                          piVar5 = piVar5 + 1;\n                        } while (iVar37 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4));" do (compound_statement "{\n                          pppppppcVar38 = pppppppcStack_218;\n                          iVar22 = (*(code *)(iVar18 + 0x6e30))\n                                             (pppppppcVar29[7] + *piVar5 * 3,pppppppcStack_218);\n                          pppppppcVar30 = (code *******)0xc;\n                          if (iVar22 == 0) goto LAB_00056168;\n                          iVar37 = iVar37 + 1;\n                          piVar5 = piVar5 + 1;\n                        }" { (expression_statement "pppppppcVar38 = pppppppcStack_218;" (assignment_expression "pppppppcVar38 = pppppppcStack_218" identifier = identifier) ;) (expression_statement "iVar22 = (*(code *)(iVar18 + 0x6e30))\n                                             (pppppppcVar29[7] + *piVar5 * 3,pppppppcStack_218);" (assignment_expression "iVar22 = (*(code *)(iVar18 + 0x6e30))\n                                             (pppppppcVar29[7] + *piVar5 * 3,pppppppcStack_218)" identifier = (call_expression "(*(code *)(iVar18 + 0x6e30))\n                                             (pppppppcVar29[7] + *piVar5 * 3,pppppppcStack_218)" (parenthesized_expression "(*(code *)(iVar18 + 0x6e30))" ( (pointer_expression "*(code *)(iVar18 + 0x6e30)" * (cast_expression "(code *)(iVar18 + 0x6e30)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x6e30)" ( (binary_expression "iVar18 + 0x6e30" identifier + number_literal) )))) )) (argument_list "(pppppppcVar29[7] + *piVar5 * 3,pppppppcStack_218)" ( (binary_expression "pppppppcVar29[7] + *piVar5 * 3" (subscript_expression "pppppppcVar29[7]" identifier [ number_literal ]) + (binary_expression "*piVar5 * 3" (pointer_expression "*piVar5" * identifier) * number_literal)) , identifier )))) ;) (expression_statement "pppppppcVar30 = (code *******)0xc;" (assignment_expression "pppppppcVar30 = (code *******)0xc" identifier = (cast_expression "(code *******)0xc" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (if_statement "if (iVar22 == 0) goto LAB_00056168;" if (parenthesized_expression "(iVar22 == 0)" ( (binary_expression "iVar22 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00056168;" goto statement_identifier ;)) (expression_statement "iVar37 = iVar37 + 1;" (assignment_expression "iVar37 = iVar37 + 1" identifier = (binary_expression "iVar37 + 1" identifier + number_literal)) ;) (expression_statement "piVar5 = piVar5 + 1;" (assignment_expression "piVar5 = piVar5 + 1" identifier = (binary_expression "piVar5 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar37 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4))" ( (binary_expression "iVar37 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4)" identifier < (pointer_expression "*(int *)((int)pppppppcVar29[6] + iVar43 + 4)" * (cast_expression "(int *)((int)pppppppcVar29[6] + iVar43 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppppppcVar29[6] + iVar43 + 4)" ( (binary_expression "(int)pppppppcVar29[6] + iVar43 + 4" (binary_expression "(int)pppppppcVar29[6] + iVar43" (cast_expression "(int)pppppppcVar29[6]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "pppppppcVar29[6]" identifier [ number_literal ])) + identifier) + number_literal) ))))) )) ;) })) (expression_statement "pppppppcStack_218 = (code *******)((int)pppppppcStack_218 + 1);" (assignment_expression "pppppppcStack_218 = (code *******)((int)pppppppcStack_218 + 1)" identifier = (cast_expression "(code *******)((int)pppppppcStack_218 + 1)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)pppppppcStack_218 + 1)" ( (binary_expression "(int)pppppppcStack_218 + 1" (cast_expression "(int)pppppppcStack_218" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "iVar43 = iVar43 + 0xc;" (assignment_expression "iVar43 = iVar43 + 0xc" identifier = (binary_expression "iVar43 + 0xc" identifier + number_literal)) ;) }) while (parenthesized_expression "(pppppppcStack_218 < pppppppcVar29[2])" ( (binary_expression "pppppppcStack_218 < pppppppcVar29[2]" identifier < (subscript_expression "pppppppcVar29[2]" identifier [ number_literal ])) )) ;) })) })) (labeled_statement "LAB_000568f0:\n                pppppppcStack_20c = (code *******)0x0;" statement_identifier : (expression_statement "pppppppcStack_20c = (code *******)0x0;" (assignment_expression "pppppppcStack_20c = (code *******)0x0" identifier = (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;)) (if_statement "if (((((uint)pppppppcVar34[0x16] & 0x20000000) != 0) && (uVar16 == 0)) &&\n                   (pppppppcVar3[5] == (code ******)0x0)) {\n                  if (pppppppcVar34[2] != (code ******)0x0) {\n                    pppppppcVar31 = (code *******)(*(int *)(puVar41 + 0x23754) + 0x6e4c);\n                    if (*(byte *)(*pppppppcVar34 + 1) < 0xd) {\n                    \n                    \n                      pppppppcVar29 =\n                           (code *******)\n                           (*(code *)(puVar41 +\n                                     (int)(pppppppcVar31[*(byte *)(*pppppppcVar34 + 1)] + 0xadc7)))\n                                     ();\n                      return pppppppcVar29;\n                    }\n                    (**(code **)(puVar41 + 0x23bc4))(0);\n                    if (uVar7 != 0) {\n                      pppppppcVar31 = (code *******)&DAT_00000007;\n                      ppppppcVar32 = (code ******)0x0;\n                      do {\n                        ppppppcVar35 = *pppppppcVar34 + (int)ppppppcVar32 * 2;\n                        if (*(char *)(ppppppcVar35 + 1) == '\x01') {\n                          if (*(char *)ppppppcVar35 < '\0') {\n                            ppppppcVar35[1] = (code *****)((uint)ppppppcVar35[1] & 0xfffffbff);\n                          }\n                        }\n                        else if (*(char *)(ppppppcVar35 + 1) == '\x05') {\n                          *(char *)(ppppppcVar35 + 1) = '\a';\n                        }\n                        ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                      } while (ppppppcVar32 < pppppppcVar34[2]);\n                    }\n                  }\n                  pppppppcVar34[0x17] = (code ******)0x1;\n                  if (0 < (int)pppppppcVar34[0x13]) {\n                    uVar7 = 1;\n                  }\n                  *(byte *)(pppppppcVar34 + 0x16) =\n                       (byte)*(code *)(pppppppcVar34 + 0x16) & 0x9f | (byte)((uVar7 & 1) << 6);\n                }" if (parenthesized_expression "(((((uint)pppppppcVar34[0x16] & 0x20000000) != 0) && (uVar16 == 0)) &&\n                   (pppppppcVar3[5] == (code ******)0x0))" ( (binary_expression "((((uint)pppppppcVar34[0x16] & 0x20000000) != 0) && (uVar16 == 0)) &&\n                   (pppppppcVar3[5] == (code ******)0x0)" (parenthesized_expression "((((uint)pppppppcVar34[0x16] & 0x20000000) != 0) && (uVar16 == 0))" ( (binary_expression "(((uint)pppppppcVar34[0x16] & 0x20000000) != 0) && (uVar16 == 0)" (parenthesized_expression "(((uint)pppppppcVar34[0x16] & 0x20000000) != 0)" ( (binary_expression "((uint)pppppppcVar34[0x16] & 0x20000000) != 0" (parenthesized_expression "((uint)pppppppcVar34[0x16] & 0x20000000)" ( (binary_expression "(uint)pppppppcVar34[0x16] & 0x20000000" (cast_expression "(uint)pppppppcVar34[0x16]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pppppppcVar34[0x16]" identifier [ number_literal ])) & number_literal) )) != number_literal) )) && (parenthesized_expression "(uVar16 == 0)" ( (binary_expression "uVar16 == 0" identifier == number_literal) ))) )) && (parenthesized_expression "(pppppppcVar3[5] == (code ******)0x0)" ( (binary_expression "pppppppcVar3[5] == (code ******)0x0" (subscript_expression "pppppppcVar3[5]" identifier [ number_literal ]) == (cast_expression "(code ******)0x0" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ))) )) (compound_statement "{\n                  if (pppppppcVar34[2] != (code ******)0x0) {\n                    pppppppcVar31 = (code *******)(*(int *)(puVar41 + 0x23754) + 0x6e4c);\n                    if (*(byte *)(*pppppppcVar34 + 1) < 0xd) {\n                    \n                    \n                      pppppppcVar29 =\n                           (code *******)\n                           (*(code *)(puVar41 +\n                                     (int)(pppppppcVar31[*(byte *)(*pppppppcVar34 + 1)] + 0xadc7)))\n                                     ();\n                      return pppppppcVar29;\n                    }\n                    (**(code **)(puVar41 + 0x23bc4))(0);\n                    if (uVar7 != 0) {\n                      pppppppcVar31 = (code *******)&DAT_00000007;\n                      ppppppcVar32 = (code ******)0x0;\n                      do {\n                        ppppppcVar35 = *pppppppcVar34 + (int)ppppppcVar32 * 2;\n                        if (*(char *)(ppppppcVar35 + 1) == '\x01') {\n                          if (*(char *)ppppppcVar35 < '\0') {\n                            ppppppcVar35[1] = (code *****)((uint)ppppppcVar35[1] & 0xfffffbff);\n                          }\n                        }\n                        else if (*(char *)(ppppppcVar35 + 1) == '\x05') {\n                          *(char *)(ppppppcVar35 + 1) = '\a';\n                        }\n                        ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                      } while (ppppppcVar32 < pppppppcVar34[2]);\n                    }\n                  }\n                  pppppppcVar34[0x17] = (code ******)0x1;\n                  if (0 < (int)pppppppcVar34[0x13]) {\n                    uVar7 = 1;\n                  }\n                  *(byte *)(pppppppcVar34 + 0x16) =\n                       (byte)*(code *)(pppppppcVar34 + 0x16) & 0x9f | (byte)((uVar7 & 1) << 6);\n                }" { (if_statement "if (pppppppcVar34[2] != (code ******)0x0) {\n                    pppppppcVar31 = (code *******)(*(int *)(puVar41 + 0x23754) + 0x6e4c);\n                    if (*(byte *)(*pppppppcVar34 + 1) < 0xd) {\n                    \n                    \n                      pppppppcVar29 =\n                           (code *******)\n                           (*(code *)(puVar41 +\n                                     (int)(pppppppcVar31[*(byte *)(*pppppppcVar34 + 1)] + 0xadc7)))\n                                     ();\n                      return pppppppcVar29;\n                    }\n                    (**(code **)(puVar41 + 0x23bc4))(0);\n                    if (uVar7 != 0) {\n                      pppppppcVar31 = (code *******)&DAT_00000007;\n                      ppppppcVar32 = (code ******)0x0;\n                      do {\n                        ppppppcVar35 = *pppppppcVar34 + (int)ppppppcVar32 * 2;\n                        if (*(char *)(ppppppcVar35 + 1) == '\x01') {\n                          if (*(char *)ppppppcVar35 < '\0') {\n                            ppppppcVar35[1] = (code *****)((uint)ppppppcVar35[1] & 0xfffffbff);\n                          }\n                        }\n                        else if (*(char *)(ppppppcVar35 + 1) == '\x05') {\n                          *(char *)(ppppppcVar35 + 1) = '\a';\n                        }\n                        ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                      } while (ppppppcVar32 < pppppppcVar34[2]);\n                    }\n                  }" if (parenthesized_expression "(pppppppcVar34[2] != (code ******)0x0)" ( (binary_expression "pppppppcVar34[2] != (code ******)0x0" (subscript_expression "pppppppcVar34[2]" identifier [ number_literal ]) != (cast_expression "(code ******)0x0" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (compound_statement "{\n                    pppppppcVar31 = (code *******)(*(int *)(puVar41 + 0x23754) + 0x6e4c);\n                    if (*(byte *)(*pppppppcVar34 + 1) < 0xd) {\n                    \n                    \n                      pppppppcVar29 =\n                           (code *******)\n                           (*(code *)(puVar41 +\n                                     (int)(pppppppcVar31[*(byte *)(*pppppppcVar34 + 1)] + 0xadc7)))\n                                     ();\n                      return pppppppcVar29;\n                    }\n                    (**(code **)(puVar41 + 0x23bc4))(0);\n                    if (uVar7 != 0) {\n                      pppppppcVar31 = (code *******)&DAT_00000007;\n                      ppppppcVar32 = (code ******)0x0;\n                      do {\n                        ppppppcVar35 = *pppppppcVar34 + (int)ppppppcVar32 * 2;\n                        if (*(char *)(ppppppcVar35 + 1) == '\x01') {\n                          if (*(char *)ppppppcVar35 < '\0') {\n                            ppppppcVar35[1] = (code *****)((uint)ppppppcVar35[1] & 0xfffffbff);\n                          }\n                        }\n                        else if (*(char *)(ppppppcVar35 + 1) == '\x05') {\n                          *(char *)(ppppppcVar35 + 1) = '\a';\n                        }\n                        ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                      } while (ppppppcVar32 < pppppppcVar34[2]);\n                    }\n                  }" { (expression_statement "pppppppcVar31 = (code *******)(*(int *)(puVar41 + 0x23754) + 0x6e4c);" (assignment_expression "pppppppcVar31 = (code *******)(*(int *)(puVar41 + 0x23754) + 0x6e4c)" identifier = (cast_expression "(code *******)(*(int *)(puVar41 + 0x23754) + 0x6e4c)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(*(int *)(puVar41 + 0x23754) + 0x6e4c)" ( (binary_expression "*(int *)(puVar41 + 0x23754) + 0x6e4c" (pointer_expression "*(int *)(puVar41 + 0x23754)" * (cast_expression "(int *)(puVar41 + 0x23754)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar41 + 0x23754)" ( (binary_expression "puVar41 + 0x23754" identifier + number_literal) )))) + number_literal) )))) ;) (if_statement "if (*(byte *)(*pppppppcVar34 + 1) < 0xd) {\n                    \n                    \n                      pppppppcVar29 =\n                           (code *******)\n                           (*(code *)(puVar41 +\n                                     (int)(pppppppcVar31[*(byte *)(*pppppppcVar34 + 1)] + 0xadc7)))\n                                     ();\n                      return pppppppcVar29;\n                    }" if (parenthesized_expression "(*(byte *)(*pppppppcVar34 + 1) < 0xd)" ( (binary_expression "*(byte *)(*pppppppcVar34 + 1) < 0xd" (pointer_expression "*(byte *)(*pppppppcVar34 + 1)" * (cast_expression "(byte *)(*pppppppcVar34 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*pppppppcVar34 + 1)" ( (binary_expression "*pppppppcVar34 + 1" (pointer_expression "*pppppppcVar34" * identifier) + number_literal) )))) < number_literal) )) (compound_statement "{\n                    \n                    \n                      pppppppcVar29 =\n                           (code *******)\n                           (*(code *)(puVar41 +\n                                     (int)(pppppppcVar31[*(byte *)(*pppppppcVar34 + 1)] + 0xadc7)))\n                                     ();\n                      return pppppppcVar29;\n                    }" { (expression_statement "pppppppcVar29 =\n                           (code *******)\n                           (*(code *)(puVar41 +\n                                     (int)(pppppppcVar31[*(byte *)(*pppppppcVar34 + 1)] + 0xadc7)))\n                                     ();" (assignment_expression "pppppppcVar29 =\n                           (code *******)\n                           (*(code *)(puVar41 +\n                                     (int)(pppppppcVar31[*(byte *)(*pppppppcVar34 + 1)] + 0xadc7)))\n                                     ()" identifier = (cast_expression "(code *******)\n                           (*(code *)(puVar41 +\n                                     (int)(pppppppcVar31[*(byte *)(*pppppppcVar34 + 1)] + 0xadc7)))\n                                     ()" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "(*(code *)(puVar41 +\n                                     (int)(pppppppcVar31[*(byte *)(*pppppppcVar34 + 1)] + 0xadc7)))\n                                     ()" (parenthesized_expression "(*(code *)(puVar41 +\n                                     (int)(pppppppcVar31[*(byte *)(*pppppppcVar34 + 1)] + 0xadc7)))" ( (pointer_expression "*(code *)(puVar41 +\n                                     (int)(pppppppcVar31[*(byte *)(*pppppppcVar34 + 1)] + 0xadc7))" * (cast_expression "(code *)(puVar41 +\n                                     (int)(pppppppcVar31[*(byte *)(*pppppppcVar34 + 1)] + 0xadc7))" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar41 +\n                                     (int)(pppppppcVar31[*(byte *)(*pppppppcVar34 + 1)] + 0xadc7))" ( (binary_expression "puVar41 +\n                                     (int)(pppppppcVar31[*(byte *)(*pppppppcVar34 + 1)] + 0xadc7)" identifier + (cast_expression "(int)(pppppppcVar31[*(byte *)(*pppppppcVar34 + 1)] + 0xadc7)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pppppppcVar31[*(byte *)(*pppppppcVar34 + 1)] + 0xadc7)" ( (binary_expression "pppppppcVar31[*(byte *)(*pppppppcVar34 + 1)] + 0xadc7" (subscript_expression "pppppppcVar31[*(byte *)(*pppppppcVar34 + 1)]" identifier [ (pointer_expression "*(byte *)(*pppppppcVar34 + 1)" * (cast_expression "(byte *)(*pppppppcVar34 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*pppppppcVar34 + 1)" ( (binary_expression "*pppppppcVar34 + 1" (pointer_expression "*pppppppcVar34" * identifier) + number_literal) )))) ]) + number_literal) )))) )))) )) (argument_list "()" ( ))))) ;) (return_statement "return pppppppcVar29;" return identifier ;) })) (expression_statement "(**(code **)(puVar41 + 0x23bc4))(0);" (call_expression "(**(code **)(puVar41 + 0x23bc4))(0)" (parenthesized_expression "(**(code **)(puVar41 + 0x23bc4))" ( (pointer_expression "**(code **)(puVar41 + 0x23bc4)" * (pointer_expression "*(code **)(puVar41 + 0x23bc4)" * (cast_expression "(code **)(puVar41 + 0x23bc4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar41 + 0x23bc4)" ( (binary_expression "puVar41 + 0x23bc4" identifier + number_literal) ))))) )) (argument_list "(0)" ( number_literal ))) ;) (if_statement "if (uVar7 != 0) {\n                      pppppppcVar31 = (code *******)&DAT_00000007;\n                      ppppppcVar32 = (code ******)0x0;\n                      do {\n                        ppppppcVar35 = *pppppppcVar34 + (int)ppppppcVar32 * 2;\n                        if (*(char *)(ppppppcVar35 + 1) == '\x01') {\n                          if (*(char *)ppppppcVar35 < '\0') {\n                            ppppppcVar35[1] = (code *****)((uint)ppppppcVar35[1] & 0xfffffbff);\n                          }\n                        }\n                        else if (*(char *)(ppppppcVar35 + 1) == '\x05') {\n                          *(char *)(ppppppcVar35 + 1) = '\a';\n                        }\n                        ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                      } while (ppppppcVar32 < pppppppcVar34[2]);\n                    }" if (parenthesized_expression "(uVar7 != 0)" ( (binary_expression "uVar7 != 0" identifier != number_literal) )) (compound_statement "{\n                      pppppppcVar31 = (code *******)&DAT_00000007;\n                      ppppppcVar32 = (code ******)0x0;\n                      do {\n                        ppppppcVar35 = *pppppppcVar34 + (int)ppppppcVar32 * 2;\n                        if (*(char *)(ppppppcVar35 + 1) == '\x01') {\n                          if (*(char *)ppppppcVar35 < '\0') {\n                            ppppppcVar35[1] = (code *****)((uint)ppppppcVar35[1] & 0xfffffbff);\n                          }\n                        }\n                        else if (*(char *)(ppppppcVar35 + 1) == '\x05') {\n                          *(char *)(ppppppcVar35 + 1) = '\a';\n                        }\n                        ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                      } while (ppppppcVar32 < pppppppcVar34[2]);\n                    }" { (expression_statement "pppppppcVar31 = (code *******)&DAT_00000007;" (assignment_expression "pppppppcVar31 = (code *******)&DAT_00000007" identifier = (cast_expression "(code *******)&DAT_00000007" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "&DAT_00000007" & identifier))) ;) (expression_statement "ppppppcVar32 = (code ******)0x0;" (assignment_expression "ppppppcVar32 = (code ******)0x0" identifier = (cast_expression "(code ******)0x0" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) (do_statement "do {\n                        ppppppcVar35 = *pppppppcVar34 + (int)ppppppcVar32 * 2;\n                        if (*(char *)(ppppppcVar35 + 1) == '\x01') {\n                          if (*(char *)ppppppcVar35 < '\0') {\n                            ppppppcVar35[1] = (code *****)((uint)ppppppcVar35[1] & 0xfffffbff);\n                          }\n                        }\n                        else if (*(char *)(ppppppcVar35 + 1) == '\x05') {\n                          *(char *)(ppppppcVar35 + 1) = '\a';\n                        }\n                        ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                      } while (ppppppcVar32 < pppppppcVar34[2]);" do (compound_statement "{\n                        ppppppcVar35 = *pppppppcVar34 + (int)ppppppcVar32 * 2;\n                        if (*(char *)(ppppppcVar35 + 1) == '\x01') {\n                          if (*(char *)ppppppcVar35 < '\0') {\n                            ppppppcVar35[1] = (code *****)((uint)ppppppcVar35[1] & 0xfffffbff);\n                          }\n                        }\n                        else if (*(char *)(ppppppcVar35 + 1) == '\x05') {\n                          *(char *)(ppppppcVar35 + 1) = '\a';\n                        }\n                        ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                      }" { (expression_statement "ppppppcVar35 = *pppppppcVar34 + (int)ppppppcVar32 * 2;" (assignment_expression "ppppppcVar35 = *pppppppcVar34 + (int)ppppppcVar32 * 2" identifier = (binary_expression "*pppppppcVar34 + (int)ppppppcVar32 * 2" (pointer_expression "*pppppppcVar34" * identifier) + (binary_expression "(int)ppppppcVar32 * 2" (cast_expression "(int)ppppppcVar32" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal))) ;) (if_statement "if (*(char *)(ppppppcVar35 + 1) == '\x01') {\n                          if (*(char *)ppppppcVar35 < '\0') {\n                            ppppppcVar35[1] = (code *****)((uint)ppppppcVar35[1] & 0xfffffbff);\n                          }\n                        }\n                        else if (*(char *)(ppppppcVar35 + 1) == '\x05') {\n                          *(char *)(ppppppcVar35 + 1) = '\a';\n                        }" if (parenthesized_expression "(*(char *)(ppppppcVar35 + 1) == '\x01')" ( (binary_expression "*(char *)(ppppppcVar35 + 1) == '\x01'" (pointer_expression "*(char *)(ppppppcVar35 + 1)" * (cast_expression "(char *)(ppppppcVar35 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppppppcVar35 + 1)" ( (binary_expression "ppppppcVar35 + 1" identifier + number_literal) )))) == (char_literal "'\x01'" ' escape_sequence ')) )) (compound_statement "{\n                          if (*(char *)ppppppcVar35 < '\0') {\n                            ppppppcVar35[1] = (code *****)((uint)ppppppcVar35[1] & 0xfffffbff);\n                          }\n                        }" { (if_statement "if (*(char *)ppppppcVar35 < '\0') {\n                            ppppppcVar35[1] = (code *****)((uint)ppppppcVar35[1] & 0xfffffbff);\n                          }" if (parenthesized_expression "(*(char *)ppppppcVar35 < '\0')" ( (binary_expression "*(char *)ppppppcVar35 < '\0'" (pointer_expression "*(char *)ppppppcVar35" * (cast_expression "(char *)ppppppcVar35" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                            ppppppcVar35[1] = (code *****)((uint)ppppppcVar35[1] & 0xfffffbff);\n                          }" { (expression_statement "ppppppcVar35[1] = (code *****)((uint)ppppppcVar35[1] & 0xfffffbff);" (assignment_expression "ppppppcVar35[1] = (code *****)((uint)ppppppcVar35[1] & 0xfffffbff)" (subscript_expression "ppppppcVar35[1]" identifier [ number_literal ]) = (cast_expression "(code *****)((uint)ppppppcVar35[1] & 0xfffffbff)" ( (type_descriptor "code *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "((uint)ppppppcVar35[1] & 0xfffffbff)" ( (binary_expression "(uint)ppppppcVar35[1] & 0xfffffbff" (cast_expression "(uint)ppppppcVar35[1]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "ppppppcVar35[1]" identifier [ number_literal ])) & number_literal) )))) ;) })) }) (else_clause "else if (*(char *)(ppppppcVar35 + 1) == '\x05') {\n                          *(char *)(ppppppcVar35 + 1) = '\a';\n                        }" else (if_statement "if (*(char *)(ppppppcVar35 + 1) == '\x05') {\n                          *(char *)(ppppppcVar35 + 1) = '\a';\n                        }" if (parenthesized_expression "(*(char *)(ppppppcVar35 + 1) == '\x05')" ( (binary_expression "*(char *)(ppppppcVar35 + 1) == '\x05'" (pointer_expression "*(char *)(ppppppcVar35 + 1)" * (cast_expression "(char *)(ppppppcVar35 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppppppcVar35 + 1)" ( (binary_expression "ppppppcVar35 + 1" identifier + number_literal) )))) == (char_literal "'\x05'" ' escape_sequence ')) )) (compound_statement "{\n                          *(char *)(ppppppcVar35 + 1) = '\a';\n                        }" { (expression_statement "*(char *)(ppppppcVar35 + 1) = '\a';" (assignment_expression "*(char *)(ppppppcVar35 + 1) = '\a'" (pointer_expression "*(char *)(ppppppcVar35 + 1)" * (cast_expression "(char *)(ppppppcVar35 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppppppcVar35 + 1)" ( (binary_expression "ppppppcVar35 + 1" identifier + number_literal) )))) = (char_literal "'\a'" ' escape_sequence ')) ;) })))) (expression_statement "ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);" (assignment_expression "ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1)" identifier = (cast_expression "(code ******)((int)ppppppcVar32 + 1)" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "((int)ppppppcVar32 + 1)" ( (binary_expression "(int)ppppppcVar32 + 1" (cast_expression "(int)ppppppcVar32" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) }) while (parenthesized_expression "(ppppppcVar32 < pppppppcVar34[2])" ( (binary_expression "ppppppcVar32 < pppppppcVar34[2]" identifier < (subscript_expression "pppppppcVar34[2]" identifier [ number_literal ])) )) ;) })) })) (expression_statement "pppppppcVar34[0x17] = (code ******)0x1;" (assignment_expression "pppppppcVar34[0x17] = (code ******)0x1" (subscript_expression "pppppppcVar34[0x17]" identifier [ number_literal ]) = (cast_expression "(code ******)0x1" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) (if_statement "if (0 < (int)pppppppcVar34[0x13]) {\n                    uVar7 = 1;\n                  }" if (parenthesized_expression "(0 < (int)pppppppcVar34[0x13])" ( (binary_expression "0 < (int)pppppppcVar34[0x13]" number_literal < (cast_expression "(int)pppppppcVar34[0x13]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "pppppppcVar34[0x13]" identifier [ number_literal ]))) )) (compound_statement "{\n                    uVar7 = 1;\n                  }" { (expression_statement "uVar7 = 1;" (assignment_expression "uVar7 = 1" identifier = number_literal) ;) })) (expression_statement "*(byte *)(pppppppcVar34 + 0x16) =\n                       (byte)*(code *)(pppppppcVar34 + 0x16) & 0x9f | (byte)((uVar7 & 1) << 6);" (assignment_expression "*(byte *)(pppppppcVar34 + 0x16) =\n                       (byte)*(code *)(pppppppcVar34 + 0x16) & 0x9f | (byte)((uVar7 & 1) << 6)" (pointer_expression "*(byte *)(pppppppcVar34 + 0x16)" * (cast_expression "(byte *)(pppppppcVar34 + 0x16)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pppppppcVar34 + 0x16)" ( (binary_expression "pppppppcVar34 + 0x16" identifier + number_literal) )))) = (binary_expression "(byte)*(code *)(pppppppcVar34 + 0x16) & 0x9f | (byte)((uVar7 & 1) << 6)" (binary_expression "(byte)*(code *)(pppppppcVar34 + 0x16) & 0x9f" (binary_expression "(byte)*(code *)(pppppppcVar34 + 0x16)" (parenthesized_expression "(byte)" ( identifier )) * (cast_expression "(code *)(pppppppcVar34 + 0x16)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pppppppcVar34 + 0x16)" ( (binary_expression "pppppppcVar34 + 0x16" identifier + number_literal) )))) & number_literal) | (call_expression "(byte)((uVar7 & 1) << 6)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uVar7 & 1) << 6)" ( (binary_expression "(uVar7 & 1) << 6" (parenthesized_expression "(uVar7 & 1)" ( (binary_expression "uVar7 & 1" identifier & number_literal) )) << number_literal) ))))) ;) })) (expression_statement "ppppppcVar32 = (code ******)pppppppcVar34[0xd][3][7];" (assignment_expression "ppppppcVar32 = (code ******)pppppppcVar34[0xd][3][7]" identifier = (cast_expression "(code ******)pppppppcVar34[0xd][3][7]" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (subscript_expression "pppppppcVar34[0xd][3][7]" (subscript_expression "pppppppcVar34[0xd][3]" (subscript_expression "pppppppcVar34[0xd]" identifier [ number_literal ]) [ number_literal ]) [ number_literal ]))) ;) (expression_statement "pppppppcVar34[0x12] = ppppppcVar32;" (assignment_expression "pppppppcVar34[0x12] = ppppppcVar32" (subscript_expression "pppppppcVar34[0x12]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppppcVar32 * 3);" (assignment_expression "pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppppcVar32 * 3)" identifier = (cast_expression "(code *******)(pppppppcVar34[6] + (int)ppppppcVar32 * 3)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(pppppppcVar34[6] + (int)ppppppcVar32 * 3)" ( (binary_expression "pppppppcVar34[6] + (int)ppppppcVar32 * 3" (subscript_expression "pppppppcVar34[6]" identifier [ number_literal ]) + (binary_expression "(int)ppppppcVar32 * 3" (cast_expression "(int)ppppppcVar32" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) )))) ;) (expression_statement "pppppppcVar33 = (code *******)FUN_000483e8(&ppppppcStack_204,pppppppcVar38);" (assignment_expression "pppppppcVar33 = (code *******)FUN_000483e8(&ppppppcStack_204,pppppppcVar38)" identifier = (cast_expression "(code *******)FUN_000483e8(&ppppppcStack_204,pppppppcVar38)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "FUN_000483e8(&ppppppcStack_204,pppppppcVar38)" identifier (argument_list "(&ppppppcStack_204,pppppppcVar38)" ( (pointer_expression "&ppppppcStack_204" & identifier) , identifier ))))) ;) (expression_statement "pppppppcVar29 = pppppppcVar33;" (assignment_expression "pppppppcVar29 = pppppppcVar33" identifier = identifier) ;) (expression_statement "pppppppcStack_208 = pppppppcVar33;" (assignment_expression "pppppppcStack_208 = pppppppcVar33" identifier = identifier) ;) (if_statement "if (pppppppcVar33 == (code *******)0x0) {\n                  if ((0 < (int)pppppppcVar34[0x13]) && (0 < iStack_200)) {\n                    iVar18 = *(int *)(puVar41 + 0x23abc);\n                    iVar43 = *(int *)(puVar41 + 0x23abc);\n                    pppppppcVar29 = (code *******)0x0;\n                    do {\n                      pppppppcVar31 =\n                           (code *******)(*pppppppcVar34 + piStack_1fc[(int)pppppppcVar29] * 2);\n                      if (*(code *)(pppppppcVar31 + 1) == (code)0x4) {\n                        iVar37 = 0;\n                        piVar5 = piStack_1fc;\n                        if (iStack_200 < 1) {\nLAB_00056b8c:\n                          if (iStack_200 != iVar37) {\n                            ppppcVar40 = *pppppppcVar34[5][piStack_1fc[(int)pppppppcVar29] * 3 + 2];\n                            iVar37 = (*(code *)(iVar18 + 0x5ea8))(&ppppppcStack_204,ppppcVar40);\n                            if (iVar37 == 0) {\n                              pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppcVar40 * 3)\n                              ;\n                              pppppppcVar29 =\n                                   (code *******)\n                                   (*(code *)(iVar43 + 0x7f1c))(&ppppppcStack_204,pppppppcVar38);\n                              if (pppppppcVar29 != (code *******)0x0) goto LAB_00056cb8;\n                            }\n                          }\n                        }\n                        else {\n                          do {\n                            ppppppcVar32 = *pppppppcVar34 + *piVar5 * 2;\n                            if ((*(char *)(ppppppcVar32 + 1) == '\t') &&\n                               ((code ******)*ppppppcVar32 == *pppppppcVar31)) goto LAB_00056b8c;\n                            iVar37 = iVar37 + 1;\n                            piVar5 = piVar5 + 1;\n                          } while (iStack_200 != iVar37);\n                        }\n                      }\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1);\n                    } while ((int)pppppppcVar29 < iStack_200);\n                  }\n                  pppppppcVar31 = &ppppppcStack_204;\n                  pppppppcVar38 = pppppppcVar34;\n                  ppppppcVar32 = (code ******)\n                                 FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,0);\n                  pppppppcVar34[9] = ppppppcVar32;\n                  pppppppcVar29 = pppppppcStack_208;\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    if (((uint)ppppppcVar32[0xd] & 0x1000000) == 0) {\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar34[10] = ppppppcVar32;\n                    }\n                    else {\n                      pppppppcVar31 = &ppppppcStack_204;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,1);\n                      pppppppcVar34[10] = ppppppcVar32;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,2);\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar38 = pppppppcVar34;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,6);\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar29 = pppppppcStack_208;\n                      if (((pppppppcVar34[10] == (code ******)0x0) ||\n                          (pppppppcVar34[0xb] == (code ******)0x0)) ||\n                         (ppppppcVar32 == (code ******)0x0)) goto LAB_00056cb8;\n                    }\n                    (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                    pppppppcVar29 = pppppppcVar33;\n                  }\n                }" if (parenthesized_expression "(pppppppcVar33 == (code *******)0x0)" ( (binary_expression "pppppppcVar33 == (code *******)0x0" identifier == (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\n                  if ((0 < (int)pppppppcVar34[0x13]) && (0 < iStack_200)) {\n                    iVar18 = *(int *)(puVar41 + 0x23abc);\n                    iVar43 = *(int *)(puVar41 + 0x23abc);\n                    pppppppcVar29 = (code *******)0x0;\n                    do {\n                      pppppppcVar31 =\n                           (code *******)(*pppppppcVar34 + piStack_1fc[(int)pppppppcVar29] * 2);\n                      if (*(code *)(pppppppcVar31 + 1) == (code)0x4) {\n                        iVar37 = 0;\n                        piVar5 = piStack_1fc;\n                        if (iStack_200 < 1) {\nLAB_00056b8c:\n                          if (iStack_200 != iVar37) {\n                            ppppcVar40 = *pppppppcVar34[5][piStack_1fc[(int)pppppppcVar29] * 3 + 2];\n                            iVar37 = (*(code *)(iVar18 + 0x5ea8))(&ppppppcStack_204,ppppcVar40);\n                            if (iVar37 == 0) {\n                              pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppcVar40 * 3)\n                              ;\n                              pppppppcVar29 =\n                                   (code *******)\n                                   (*(code *)(iVar43 + 0x7f1c))(&ppppppcStack_204,pppppppcVar38);\n                              if (pppppppcVar29 != (code *******)0x0) goto LAB_00056cb8;\n                            }\n                          }\n                        }\n                        else {\n                          do {\n                            ppppppcVar32 = *pppppppcVar34 + *piVar5 * 2;\n                            if ((*(char *)(ppppppcVar32 + 1) == '\t') &&\n                               ((code ******)*ppppppcVar32 == *pppppppcVar31)) goto LAB_00056b8c;\n                            iVar37 = iVar37 + 1;\n                            piVar5 = piVar5 + 1;\n                          } while (iStack_200 != iVar37);\n                        }\n                      }\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1);\n                    } while ((int)pppppppcVar29 < iStack_200);\n                  }\n                  pppppppcVar31 = &ppppppcStack_204;\n                  pppppppcVar38 = pppppppcVar34;\n                  ppppppcVar32 = (code ******)\n                                 FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,0);\n                  pppppppcVar34[9] = ppppppcVar32;\n                  pppppppcVar29 = pppppppcStack_208;\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    if (((uint)ppppppcVar32[0xd] & 0x1000000) == 0) {\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar34[10] = ppppppcVar32;\n                    }\n                    else {\n                      pppppppcVar31 = &ppppppcStack_204;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,1);\n                      pppppppcVar34[10] = ppppppcVar32;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,2);\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar38 = pppppppcVar34;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,6);\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar29 = pppppppcStack_208;\n                      if (((pppppppcVar34[10] == (code ******)0x0) ||\n                          (pppppppcVar34[0xb] == (code ******)0x0)) ||\n                         (ppppppcVar32 == (code ******)0x0)) goto LAB_00056cb8;\n                    }\n                    (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                    pppppppcVar29 = pppppppcVar33;\n                  }\n                }" { (if_statement "if ((0 < (int)pppppppcVar34[0x13]) && (0 < iStack_200)) {\n                    iVar18 = *(int *)(puVar41 + 0x23abc);\n                    iVar43 = *(int *)(puVar41 + 0x23abc);\n                    pppppppcVar29 = (code *******)0x0;\n                    do {\n                      pppppppcVar31 =\n                           (code *******)(*pppppppcVar34 + piStack_1fc[(int)pppppppcVar29] * 2);\n                      if (*(code *)(pppppppcVar31 + 1) == (code)0x4) {\n                        iVar37 = 0;\n                        piVar5 = piStack_1fc;\n                        if (iStack_200 < 1) {\nLAB_00056b8c:\n                          if (iStack_200 != iVar37) {\n                            ppppcVar40 = *pppppppcVar34[5][piStack_1fc[(int)pppppppcVar29] * 3 + 2];\n                            iVar37 = (*(code *)(iVar18 + 0x5ea8))(&ppppppcStack_204,ppppcVar40);\n                            if (iVar37 == 0) {\n                              pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppcVar40 * 3)\n                              ;\n                              pppppppcVar29 =\n                                   (code *******)\n                                   (*(code *)(iVar43 + 0x7f1c))(&ppppppcStack_204,pppppppcVar38);\n                              if (pppppppcVar29 != (code *******)0x0) goto LAB_00056cb8;\n                            }\n                          }\n                        }\n                        else {\n                          do {\n                            ppppppcVar32 = *pppppppcVar34 + *piVar5 * 2;\n                            if ((*(char *)(ppppppcVar32 + 1) == '\t') &&\n                               ((code ******)*ppppppcVar32 == *pppppppcVar31)) goto LAB_00056b8c;\n                            iVar37 = iVar37 + 1;\n                            piVar5 = piVar5 + 1;\n                          } while (iStack_200 != iVar37);\n                        }\n                      }\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1);\n                    } while ((int)pppppppcVar29 < iStack_200);\n                  }" if (parenthesized_expression "((0 < (int)pppppppcVar34[0x13]) && (0 < iStack_200))" ( (binary_expression "(0 < (int)pppppppcVar34[0x13]) && (0 < iStack_200)" (parenthesized_expression "(0 < (int)pppppppcVar34[0x13])" ( (binary_expression "0 < (int)pppppppcVar34[0x13]" number_literal < (cast_expression "(int)pppppppcVar34[0x13]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "pppppppcVar34[0x13]" identifier [ number_literal ]))) )) && (parenthesized_expression "(0 < iStack_200)" ( (binary_expression "0 < iStack_200" number_literal < identifier) ))) )) (compound_statement "{\n                    iVar18 = *(int *)(puVar41 + 0x23abc);\n                    iVar43 = *(int *)(puVar41 + 0x23abc);\n                    pppppppcVar29 = (code *******)0x0;\n                    do {\n                      pppppppcVar31 =\n                           (code *******)(*pppppppcVar34 + piStack_1fc[(int)pppppppcVar29] * 2);\n                      if (*(code *)(pppppppcVar31 + 1) == (code)0x4) {\n                        iVar37 = 0;\n                        piVar5 = piStack_1fc;\n                        if (iStack_200 < 1) {\nLAB_00056b8c:\n                          if (iStack_200 != iVar37) {\n                            ppppcVar40 = *pppppppcVar34[5][piStack_1fc[(int)pppppppcVar29] * 3 + 2];\n                            iVar37 = (*(code *)(iVar18 + 0x5ea8))(&ppppppcStack_204,ppppcVar40);\n                            if (iVar37 == 0) {\n                              pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppcVar40 * 3)\n                              ;\n                              pppppppcVar29 =\n                                   (code *******)\n                                   (*(code *)(iVar43 + 0x7f1c))(&ppppppcStack_204,pppppppcVar38);\n                              if (pppppppcVar29 != (code *******)0x0) goto LAB_00056cb8;\n                            }\n                          }\n                        }\n                        else {\n                          do {\n                            ppppppcVar32 = *pppppppcVar34 + *piVar5 * 2;\n                            if ((*(char *)(ppppppcVar32 + 1) == '\t') &&\n                               ((code ******)*ppppppcVar32 == *pppppppcVar31)) goto LAB_00056b8c;\n                            iVar37 = iVar37 + 1;\n                            piVar5 = piVar5 + 1;\n                          } while (iStack_200 != iVar37);\n                        }\n                      }\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1);\n                    } while ((int)pppppppcVar29 < iStack_200);\n                  }" { (expression_statement "iVar18 = *(int *)(puVar41 + 0x23abc);" (assignment_expression "iVar18 = *(int *)(puVar41 + 0x23abc)" identifier = (pointer_expression "*(int *)(puVar41 + 0x23abc)" * (cast_expression "(int *)(puVar41 + 0x23abc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar41 + 0x23abc)" ( (binary_expression "puVar41 + 0x23abc" identifier + number_literal) ))))) ;) (expression_statement "iVar43 = *(int *)(puVar41 + 0x23abc);" (assignment_expression "iVar43 = *(int *)(puVar41 + 0x23abc)" identifier = (pointer_expression "*(int *)(puVar41 + 0x23abc)" * (cast_expression "(int *)(puVar41 + 0x23abc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar41 + 0x23abc)" ( (binary_expression "puVar41 + 0x23abc" identifier + number_literal) ))))) ;) (expression_statement "pppppppcVar29 = (code *******)0x0;" (assignment_expression "pppppppcVar29 = (code *******)0x0" identifier = (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (do_statement "do {\n                      pppppppcVar31 =\n                           (code *******)(*pppppppcVar34 + piStack_1fc[(int)pppppppcVar29] * 2);\n                      if (*(code *)(pppppppcVar31 + 1) == (code)0x4) {\n                        iVar37 = 0;\n                        piVar5 = piStack_1fc;\n                        if (iStack_200 < 1) {\nLAB_00056b8c:\n                          if (iStack_200 != iVar37) {\n                            ppppcVar40 = *pppppppcVar34[5][piStack_1fc[(int)pppppppcVar29] * 3 + 2];\n                            iVar37 = (*(code *)(iVar18 + 0x5ea8))(&ppppppcStack_204,ppppcVar40);\n                            if (iVar37 == 0) {\n                              pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppcVar40 * 3)\n                              ;\n                              pppppppcVar29 =\n                                   (code *******)\n                                   (*(code *)(iVar43 + 0x7f1c))(&ppppppcStack_204,pppppppcVar38);\n                              if (pppppppcVar29 != (code *******)0x0) goto LAB_00056cb8;\n                            }\n                          }\n                        }\n                        else {\n                          do {\n                            ppppppcVar32 = *pppppppcVar34 + *piVar5 * 2;\n                            if ((*(char *)(ppppppcVar32 + 1) == '\t') &&\n                               ((code ******)*ppppppcVar32 == *pppppppcVar31)) goto LAB_00056b8c;\n                            iVar37 = iVar37 + 1;\n                            piVar5 = piVar5 + 1;\n                          } while (iStack_200 != iVar37);\n                        }\n                      }\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1);\n                    } while ((int)pppppppcVar29 < iStack_200);" do (compound_statement "{\n                      pppppppcVar31 =\n                           (code *******)(*pppppppcVar34 + piStack_1fc[(int)pppppppcVar29] * 2);\n                      if (*(code *)(pppppppcVar31 + 1) == (code)0x4) {\n                        iVar37 = 0;\n                        piVar5 = piStack_1fc;\n                        if (iStack_200 < 1) {\nLAB_00056b8c:\n                          if (iStack_200 != iVar37) {\n                            ppppcVar40 = *pppppppcVar34[5][piStack_1fc[(int)pppppppcVar29] * 3 + 2];\n                            iVar37 = (*(code *)(iVar18 + 0x5ea8))(&ppppppcStack_204,ppppcVar40);\n                            if (iVar37 == 0) {\n                              pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppcVar40 * 3)\n                              ;\n                              pppppppcVar29 =\n                                   (code *******)\n                                   (*(code *)(iVar43 + 0x7f1c))(&ppppppcStack_204,pppppppcVar38);\n                              if (pppppppcVar29 != (code *******)0x0) goto LAB_00056cb8;\n                            }\n                          }\n                        }\n                        else {\n                          do {\n                            ppppppcVar32 = *pppppppcVar34 + *piVar5 * 2;\n                            if ((*(char *)(ppppppcVar32 + 1) == '\t') &&\n                               ((code ******)*ppppppcVar32 == *pppppppcVar31)) goto LAB_00056b8c;\n                            iVar37 = iVar37 + 1;\n                            piVar5 = piVar5 + 1;\n                          } while (iStack_200 != iVar37);\n                        }\n                      }\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1);\n                    }" { (expression_statement "pppppppcVar31 =\n                           (code *******)(*pppppppcVar34 + piStack_1fc[(int)pppppppcVar29] * 2);" (assignment_expression "pppppppcVar31 =\n                           (code *******)(*pppppppcVar34 + piStack_1fc[(int)pppppppcVar29] * 2)" identifier = (cast_expression "(code *******)(*pppppppcVar34 + piStack_1fc[(int)pppppppcVar29] * 2)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(*pppppppcVar34 + piStack_1fc[(int)pppppppcVar29] * 2)" ( (binary_expression "*pppppppcVar34 + piStack_1fc[(int)pppppppcVar29] * 2" (pointer_expression "*pppppppcVar34" * identifier) + (binary_expression "piStack_1fc[(int)pppppppcVar29] * 2" (subscript_expression "piStack_1fc[(int)pppppppcVar29]" identifier [ (cast_expression "(int)pppppppcVar29" ( (type_descriptor "int" primitive_type) ) identifier) ]) * number_literal)) )))) ;) (if_statement "if (*(code *)(pppppppcVar31 + 1) == (code)0x4) {\n                        iVar37 = 0;\n                        piVar5 = piStack_1fc;\n                        if (iStack_200 < 1) {\nLAB_00056b8c:\n                          if (iStack_200 != iVar37) {\n                            ppppcVar40 = *pppppppcVar34[5][piStack_1fc[(int)pppppppcVar29] * 3 + 2];\n                            iVar37 = (*(code *)(iVar18 + 0x5ea8))(&ppppppcStack_204,ppppcVar40);\n                            if (iVar37 == 0) {\n                              pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppcVar40 * 3)\n                              ;\n                              pppppppcVar29 =\n                                   (code *******)\n                                   (*(code *)(iVar43 + 0x7f1c))(&ppppppcStack_204,pppppppcVar38);\n                              if (pppppppcVar29 != (code *******)0x0) goto LAB_00056cb8;\n                            }\n                          }\n                        }\n                        else {\n                          do {\n                            ppppppcVar32 = *pppppppcVar34 + *piVar5 * 2;\n                            if ((*(char *)(ppppppcVar32 + 1) == '\t') &&\n                               ((code ******)*ppppppcVar32 == *pppppppcVar31)) goto LAB_00056b8c;\n                            iVar37 = iVar37 + 1;\n                            piVar5 = piVar5 + 1;\n                          } while (iStack_200 != iVar37);\n                        }\n                      }" if (parenthesized_expression "(*(code *)(pppppppcVar31 + 1) == (code)0x4)" ( (binary_expression "*(code *)(pppppppcVar31 + 1) == (code)0x4" (pointer_expression "*(code *)(pppppppcVar31 + 1)" * (cast_expression "(code *)(pppppppcVar31 + 1)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pppppppcVar31 + 1)" ( (binary_expression "pppppppcVar31 + 1" identifier + number_literal) )))) == (cast_expression "(code)0x4" ( (type_descriptor "code" type_identifier) ) number_literal)) )) (compound_statement "{\n                        iVar37 = 0;\n                        piVar5 = piStack_1fc;\n                        if (iStack_200 < 1) {\nLAB_00056b8c:\n                          if (iStack_200 != iVar37) {\n                            ppppcVar40 = *pppppppcVar34[5][piStack_1fc[(int)pppppppcVar29] * 3 + 2];\n                            iVar37 = (*(code *)(iVar18 + 0x5ea8))(&ppppppcStack_204,ppppcVar40);\n                            if (iVar37 == 0) {\n                              pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppcVar40 * 3)\n                              ;\n                              pppppppcVar29 =\n                                   (code *******)\n                                   (*(code *)(iVar43 + 0x7f1c))(&ppppppcStack_204,pppppppcVar38);\n                              if (pppppppcVar29 != (code *******)0x0) goto LAB_00056cb8;\n                            }\n                          }\n                        }\n                        else {\n                          do {\n                            ppppppcVar32 = *pppppppcVar34 + *piVar5 * 2;\n                            if ((*(char *)(ppppppcVar32 + 1) == '\t') &&\n                               ((code ******)*ppppppcVar32 == *pppppppcVar31)) goto LAB_00056b8c;\n                            iVar37 = iVar37 + 1;\n                            piVar5 = piVar5 + 1;\n                          } while (iStack_200 != iVar37);\n                        }\n                      }" { (expression_statement "iVar37 = 0;" (assignment_expression "iVar37 = 0" identifier = number_literal) ;) (expression_statement "piVar5 = piStack_1fc;" (assignment_expression "piVar5 = piStack_1fc" identifier = identifier) ;) (if_statement "if (iStack_200 < 1) {\nLAB_00056b8c:\n                          if (iStack_200 != iVar37) {\n                            ppppcVar40 = *pppppppcVar34[5][piStack_1fc[(int)pppppppcVar29] * 3 + 2];\n                            iVar37 = (*(code *)(iVar18 + 0x5ea8))(&ppppppcStack_204,ppppcVar40);\n                            if (iVar37 == 0) {\n                              pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppcVar40 * 3)\n                              ;\n                              pppppppcVar29 =\n                                   (code *******)\n                                   (*(code *)(iVar43 + 0x7f1c))(&ppppppcStack_204,pppppppcVar38);\n                              if (pppppppcVar29 != (code *******)0x0) goto LAB_00056cb8;\n                            }\n                          }\n                        }\n                        else {\n                          do {\n                            ppppppcVar32 = *pppppppcVar34 + *piVar5 * 2;\n                            if ((*(char *)(ppppppcVar32 + 1) == '\t') &&\n                               ((code ******)*ppppppcVar32 == *pppppppcVar31)) goto LAB_00056b8c;\n                            iVar37 = iVar37 + 1;\n                            piVar5 = piVar5 + 1;\n                          } while (iStack_200 != iVar37);\n                        }" if (parenthesized_expression "(iStack_200 < 1)" ( (binary_expression "iStack_200 < 1" identifier < number_literal) )) (compound_statement "{\nLAB_00056b8c:\n                          if (iStack_200 != iVar37) {\n                            ppppcVar40 = *pppppppcVar34[5][piStack_1fc[(int)pppppppcVar29] * 3 + 2];\n                            iVar37 = (*(code *)(iVar18 + 0x5ea8))(&ppppppcStack_204,ppppcVar40);\n                            if (iVar37 == 0) {\n                              pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppcVar40 * 3)\n                              ;\n                              pppppppcVar29 =\n                                   (code *******)\n                                   (*(code *)(iVar43 + 0x7f1c))(&ppppppcStack_204,pppppppcVar38);\n                              if (pppppppcVar29 != (code *******)0x0) goto LAB_00056cb8;\n                            }\n                          }\n                        }" { (labeled_statement "LAB_00056b8c:\n                          if (iStack_200 != iVar37) {\n                            ppppcVar40 = *pppppppcVar34[5][piStack_1fc[(int)pppppppcVar29] * 3 + 2];\n                            iVar37 = (*(code *)(iVar18 + 0x5ea8))(&ppppppcStack_204,ppppcVar40);\n                            if (iVar37 == 0) {\n                              pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppcVar40 * 3)\n                              ;\n                              pppppppcVar29 =\n                                   (code *******)\n                                   (*(code *)(iVar43 + 0x7f1c))(&ppppppcStack_204,pppppppcVar38);\n                              if (pppppppcVar29 != (code *******)0x0) goto LAB_00056cb8;\n                            }\n                          }" statement_identifier : (if_statement "if (iStack_200 != iVar37) {\n                            ppppcVar40 = *pppppppcVar34[5][piStack_1fc[(int)pppppppcVar29] * 3 + 2];\n                            iVar37 = (*(code *)(iVar18 + 0x5ea8))(&ppppppcStack_204,ppppcVar40);\n                            if (iVar37 == 0) {\n                              pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppcVar40 * 3)\n                              ;\n                              pppppppcVar29 =\n                                   (code *******)\n                                   (*(code *)(iVar43 + 0x7f1c))(&ppppppcStack_204,pppppppcVar38);\n                              if (pppppppcVar29 != (code *******)0x0) goto LAB_00056cb8;\n                            }\n                          }" if (parenthesized_expression "(iStack_200 != iVar37)" ( (binary_expression "iStack_200 != iVar37" identifier != identifier) )) (compound_statement "{\n                            ppppcVar40 = *pppppppcVar34[5][piStack_1fc[(int)pppppppcVar29] * 3 + 2];\n                            iVar37 = (*(code *)(iVar18 + 0x5ea8))(&ppppppcStack_204,ppppcVar40);\n                            if (iVar37 == 0) {\n                              pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppcVar40 * 3)\n                              ;\n                              pppppppcVar29 =\n                                   (code *******)\n                                   (*(code *)(iVar43 + 0x7f1c))(&ppppppcStack_204,pppppppcVar38);\n                              if (pppppppcVar29 != (code *******)0x0) goto LAB_00056cb8;\n                            }\n                          }" { (expression_statement "ppppcVar40 = *pppppppcVar34[5][piStack_1fc[(int)pppppppcVar29] * 3 + 2];" (assignment_expression "ppppcVar40 = *pppppppcVar34[5][piStack_1fc[(int)pppppppcVar29] * 3 + 2]" identifier = (pointer_expression "*pppppppcVar34[5][piStack_1fc[(int)pppppppcVar29] * 3 + 2]" * (subscript_expression "pppppppcVar34[5][piStack_1fc[(int)pppppppcVar29] * 3 + 2]" (subscript_expression "pppppppcVar34[5]" identifier [ number_literal ]) [ (binary_expression "piStack_1fc[(int)pppppppcVar29] * 3 + 2" (binary_expression "piStack_1fc[(int)pppppppcVar29] * 3" (subscript_expression "piStack_1fc[(int)pppppppcVar29]" identifier [ (cast_expression "(int)pppppppcVar29" ( (type_descriptor "int" primitive_type) ) identifier) ]) * number_literal) + number_literal) ]))) ;) (expression_statement "iVar37 = (*(code *)(iVar18 + 0x5ea8))(&ppppppcStack_204,ppppcVar40);" (assignment_expression "iVar37 = (*(code *)(iVar18 + 0x5ea8))(&ppppppcStack_204,ppppcVar40)" identifier = (call_expression "(*(code *)(iVar18 + 0x5ea8))(&ppppppcStack_204,ppppcVar40)" (parenthesized_expression "(*(code *)(iVar18 + 0x5ea8))" ( (pointer_expression "*(code *)(iVar18 + 0x5ea8)" * (cast_expression "(code *)(iVar18 + 0x5ea8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x5ea8)" ( (binary_expression "iVar18 + 0x5ea8" identifier + number_literal) )))) )) (argument_list "(&ppppppcStack_204,ppppcVar40)" ( (pointer_expression "&ppppppcStack_204" & identifier) , identifier )))) ;) (if_statement "if (iVar37 == 0) {\n                              pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppcVar40 * 3)\n                              ;\n                              pppppppcVar29 =\n                                   (code *******)\n                                   (*(code *)(iVar43 + 0x7f1c))(&ppppppcStack_204,pppppppcVar38);\n                              if (pppppppcVar29 != (code *******)0x0) goto LAB_00056cb8;\n                            }" if (parenthesized_expression "(iVar37 == 0)" ( (binary_expression "iVar37 == 0" identifier == number_literal) )) (compound_statement "{\n                              pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppcVar40 * 3)\n                              ;\n                              pppppppcVar29 =\n                                   (code *******)\n                                   (*(code *)(iVar43 + 0x7f1c))(&ppppppcStack_204,pppppppcVar38);\n                              if (pppppppcVar29 != (code *******)0x0) goto LAB_00056cb8;\n                            }" { (expression_statement "pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppcVar40 * 3)\n                              ;" (assignment_expression "pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppcVar40 * 3)" identifier = (cast_expression "(code *******)(pppppppcVar34[6] + (int)ppppcVar40 * 3)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(pppppppcVar34[6] + (int)ppppcVar40 * 3)" ( (binary_expression "pppppppcVar34[6] + (int)ppppcVar40 * 3" (subscript_expression "pppppppcVar34[6]" identifier [ number_literal ]) + (binary_expression "(int)ppppcVar40 * 3" (cast_expression "(int)ppppcVar40" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) )))) ;) (expression_statement "pppppppcVar29 =\n                                   (code *******)\n                                   (*(code *)(iVar43 + 0x7f1c))(&ppppppcStack_204,pppppppcVar38);" (assignment_expression "pppppppcVar29 =\n                                   (code *******)\n                                   (*(code *)(iVar43 + 0x7f1c))(&ppppppcStack_204,pppppppcVar38)" identifier = (cast_expression "(code *******)\n                                   (*(code *)(iVar43 + 0x7f1c))(&ppppppcStack_204,pppppppcVar38)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "(*(code *)(iVar43 + 0x7f1c))(&ppppppcStack_204,pppppppcVar38)" (parenthesized_expression "(*(code *)(iVar43 + 0x7f1c))" ( (pointer_expression "*(code *)(iVar43 + 0x7f1c)" * (cast_expression "(code *)(iVar43 + 0x7f1c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar43 + 0x7f1c)" ( (binary_expression "iVar43 + 0x7f1c" identifier + number_literal) )))) )) (argument_list "(&ppppppcStack_204,pppppppcVar38)" ( (pointer_expression "&ppppppcStack_204" & identifier) , identifier ))))) ;) (if_statement "if (pppppppcVar29 != (code *******)0x0) goto LAB_00056cb8;" if (parenthesized_expression "(pppppppcVar29 != (code *******)0x0)" ( (binary_expression "pppppppcVar29 != (code *******)0x0" identifier != (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (goto_statement "goto LAB_00056cb8;" goto statement_identifier ;)) })) }))) }) (else_clause "else {\n                          do {\n                            ppppppcVar32 = *pppppppcVar34 + *piVar5 * 2;\n                            if ((*(char *)(ppppppcVar32 + 1) == '\t') &&\n                               ((code ******)*ppppppcVar32 == *pppppppcVar31)) goto LAB_00056b8c;\n                            iVar37 = iVar37 + 1;\n                            piVar5 = piVar5 + 1;\n                          } while (iStack_200 != iVar37);\n                        }" else (compound_statement "{\n                          do {\n                            ppppppcVar32 = *pppppppcVar34 + *piVar5 * 2;\n                            if ((*(char *)(ppppppcVar32 + 1) == '\t') &&\n                               ((code ******)*ppppppcVar32 == *pppppppcVar31)) goto LAB_00056b8c;\n                            iVar37 = iVar37 + 1;\n                            piVar5 = piVar5 + 1;\n                          } while (iStack_200 != iVar37);\n                        }" { (do_statement "do {\n                            ppppppcVar32 = *pppppppcVar34 + *piVar5 * 2;\n                            if ((*(char *)(ppppppcVar32 + 1) == '\t') &&\n                               ((code ******)*ppppppcVar32 == *pppppppcVar31)) goto LAB_00056b8c;\n                            iVar37 = iVar37 + 1;\n                            piVar5 = piVar5 + 1;\n                          } while (iStack_200 != iVar37);" do (compound_statement "{\n                            ppppppcVar32 = *pppppppcVar34 + *piVar5 * 2;\n                            if ((*(char *)(ppppppcVar32 + 1) == '\t') &&\n                               ((code ******)*ppppppcVar32 == *pppppppcVar31)) goto LAB_00056b8c;\n                            iVar37 = iVar37 + 1;\n                            piVar5 = piVar5 + 1;\n                          }" { (expression_statement "ppppppcVar32 = *pppppppcVar34 + *piVar5 * 2;" (assignment_expression "ppppppcVar32 = *pppppppcVar34 + *piVar5 * 2" identifier = (binary_expression "*pppppppcVar34 + *piVar5 * 2" (pointer_expression "*pppppppcVar34" * identifier) + (binary_expression "*piVar5 * 2" (pointer_expression "*piVar5" * identifier) * number_literal))) ;) (if_statement "if ((*(char *)(ppppppcVar32 + 1) == '\t') &&\n                               ((code ******)*ppppppcVar32 == *pppppppcVar31)) goto LAB_00056b8c;" if (parenthesized_expression "((*(char *)(ppppppcVar32 + 1) == '\t') &&\n                               ((code ******)*ppppppcVar32 == *pppppppcVar31))" ( (binary_expression "(*(char *)(ppppppcVar32 + 1) == '\t') &&\n                               ((code ******)*ppppppcVar32 == *pppppppcVar31)" (parenthesized_expression "(*(char *)(ppppppcVar32 + 1) == '\t')" ( (binary_expression "*(char *)(ppppppcVar32 + 1) == '\t'" (pointer_expression "*(char *)(ppppppcVar32 + 1)" * (cast_expression "(char *)(ppppppcVar32 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppppppcVar32 + 1)" ( (binary_expression "ppppppcVar32 + 1" identifier + number_literal) )))) == (char_literal "'\t'" ' escape_sequence ')) )) && (parenthesized_expression "((code ******)*ppppppcVar32 == *pppppppcVar31)" ( (binary_expression "(code ******)*ppppppcVar32 == *pppppppcVar31" (cast_expression "(code ******)*ppppppcVar32" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (pointer_expression "*ppppppcVar32" * identifier)) == (pointer_expression "*pppppppcVar31" * identifier)) ))) )) (goto_statement "goto LAB_00056b8c;" goto statement_identifier ;)) (expression_statement "iVar37 = iVar37 + 1;" (assignment_expression "iVar37 = iVar37 + 1" identifier = (binary_expression "iVar37 + 1" identifier + number_literal)) ;) (expression_statement "piVar5 = piVar5 + 1;" (assignment_expression "piVar5 = piVar5 + 1" identifier = (binary_expression "piVar5 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iStack_200 != iVar37)" ( (binary_expression "iStack_200 != iVar37" identifier != identifier) )) ;) }))) })) (expression_statement "pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1);" (assignment_expression "pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1)" identifier = (cast_expression "(code *******)((int)pppppppcVar29 + 1)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)pppppppcVar29 + 1)" ( (binary_expression "(int)pppppppcVar29 + 1" (cast_expression "(int)pppppppcVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) }) while (parenthesized_expression "((int)pppppppcVar29 < iStack_200)" ( (binary_expression "(int)pppppppcVar29 < iStack_200" (cast_expression "(int)pppppppcVar29" ( (type_descriptor "int" primitive_type) ) identifier) < identifier) )) ;) })) (expression_statement "pppppppcVar31 = &ppppppcStack_204;" (assignment_expression "pppppppcVar31 = &ppppppcStack_204" identifier = (pointer_expression "&ppppppcStack_204" & identifier)) ;) (expression_statement "pppppppcVar38 = pppppppcVar34;" (assignment_expression "pppppppcVar38 = pppppppcVar34" identifier = identifier) ;) (expression_statement "ppppppcVar32 = (code ******)\n                                 FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,0);" (assignment_expression "ppppppcVar32 = (code ******)\n                                 FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,0)" identifier = (cast_expression "(code ******)\n                                 FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,0)" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (call_expression "FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,0)" identifier (argument_list "(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,0)" ( (pointer_expression "&pppppppcStack_208" & identifier) , identifier , identifier , number_literal ))))) ;) (expression_statement "pppppppcVar34[9] = ppppppcVar32;" (assignment_expression "pppppppcVar34[9] = ppppppcVar32" (subscript_expression "pppppppcVar34[9]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pppppppcVar29 = pppppppcStack_208;" (assignment_expression "pppppppcVar29 = pppppppcStack_208" identifier = identifier) ;) (if_statement "if (ppppppcVar32 != (code ******)0x0) {\n                    if (((uint)ppppppcVar32[0xd] & 0x1000000) == 0) {\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar34[10] = ppppppcVar32;\n                    }\n                    else {\n                      pppppppcVar31 = &ppppppcStack_204;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,1);\n                      pppppppcVar34[10] = ppppppcVar32;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,2);\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar38 = pppppppcVar34;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,6);\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar29 = pppppppcStack_208;\n                      if (((pppppppcVar34[10] == (code ******)0x0) ||\n                          (pppppppcVar34[0xb] == (code ******)0x0)) ||\n                         (ppppppcVar32 == (code ******)0x0)) goto LAB_00056cb8;\n                    }\n                    (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                    pppppppcVar29 = pppppppcVar33;\n                  }" if (parenthesized_expression "(ppppppcVar32 != (code ******)0x0)" ( (binary_expression "ppppppcVar32 != (code ******)0x0" identifier != (cast_expression "(code ******)0x0" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) (compound_statement "{\n                    if (((uint)ppppppcVar32[0xd] & 0x1000000) == 0) {\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar34[10] = ppppppcVar32;\n                    }\n                    else {\n                      pppppppcVar31 = &ppppppcStack_204;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,1);\n                      pppppppcVar34[10] = ppppppcVar32;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,2);\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar38 = pppppppcVar34;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,6);\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar29 = pppppppcStack_208;\n                      if (((pppppppcVar34[10] == (code ******)0x0) ||\n                          (pppppppcVar34[0xb] == (code ******)0x0)) ||\n                         (ppppppcVar32 == (code ******)0x0)) goto LAB_00056cb8;\n                    }\n                    (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                    pppppppcVar29 = pppppppcVar33;\n                  }" { (if_statement "if (((uint)ppppppcVar32[0xd] & 0x1000000) == 0) {\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar34[10] = ppppppcVar32;\n                    }\n                    else {\n                      pppppppcVar31 = &ppppppcStack_204;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,1);\n                      pppppppcVar34[10] = ppppppcVar32;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,2);\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar38 = pppppppcVar34;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,6);\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar29 = pppppppcStack_208;\n                      if (((pppppppcVar34[10] == (code ******)0x0) ||\n                          (pppppppcVar34[0xb] == (code ******)0x0)) ||\n                         (ppppppcVar32 == (code ******)0x0)) goto LAB_00056cb8;\n                    }" if (parenthesized_expression "(((uint)ppppppcVar32[0xd] & 0x1000000) == 0)" ( (binary_expression "((uint)ppppppcVar32[0xd] & 0x1000000) == 0" (parenthesized_expression "((uint)ppppppcVar32[0xd] & 0x1000000)" ( (binary_expression "(uint)ppppppcVar32[0xd] & 0x1000000" (cast_expression "(uint)ppppppcVar32[0xd]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "ppppppcVar32[0xd]" identifier [ number_literal ])) & number_literal) )) == number_literal) )) (compound_statement "{\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar34[10] = ppppppcVar32;\n                    }" { (expression_statement "pppppppcVar34[0xc] = ppppppcVar32;" (assignment_expression "pppppppcVar34[0xc] = ppppppcVar32" (subscript_expression "pppppppcVar34[0xc]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pppppppcVar34[0xb] = ppppppcVar32;" (assignment_expression "pppppppcVar34[0xb] = ppppppcVar32" (subscript_expression "pppppppcVar34[0xb]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pppppppcVar34[10] = ppppppcVar32;" (assignment_expression "pppppppcVar34[10] = ppppppcVar32" (subscript_expression "pppppppcVar34[10]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n                      pppppppcVar31 = &ppppppcStack_204;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,1);\n                      pppppppcVar34[10] = ppppppcVar32;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,2);\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar38 = pppppppcVar34;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,6);\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar29 = pppppppcStack_208;\n                      if (((pppppppcVar34[10] == (code ******)0x0) ||\n                          (pppppppcVar34[0xb] == (code ******)0x0)) ||\n                         (ppppppcVar32 == (code ******)0x0)) goto LAB_00056cb8;\n                    }" else (compound_statement "{\n                      pppppppcVar31 = &ppppppcStack_204;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,1);\n                      pppppppcVar34[10] = ppppppcVar32;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,2);\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar38 = pppppppcVar34;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,6);\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar29 = pppppppcStack_208;\n                      if (((pppppppcVar34[10] == (code ******)0x0) ||\n                          (pppppppcVar34[0xb] == (code ******)0x0)) ||\n                         (ppppppcVar32 == (code ******)0x0)) goto LAB_00056cb8;\n                    }" { (expression_statement "pppppppcVar31 = &ppppppcStack_204;" (assignment_expression "pppppppcVar31 = &ppppppcStack_204" identifier = (pointer_expression "&ppppppcStack_204" & identifier)) ;) (expression_statement "ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,1);" (assignment_expression "ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,1)" identifier = (cast_expression "(code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,1)" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (call_expression "FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,1)" identifier (argument_list "(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,1)" ( (pointer_expression "&pppppppcStack_208" & identifier) , identifier , identifier , number_literal ))))) ;) (expression_statement "pppppppcVar34[10] = ppppppcVar32;" (assignment_expression "pppppppcVar34[10] = ppppppcVar32" (subscript_expression "pppppppcVar34[10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,2);" (assignment_expression "ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,2)" identifier = (cast_expression "(code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,2)" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (call_expression "FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,2)" identifier (argument_list "(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,2)" ( (pointer_expression "&pppppppcStack_208" & identifier) , identifier , identifier , number_literal ))))) ;) (expression_statement "pppppppcVar34[0xb] = ppppppcVar32;" (assignment_expression "pppppppcVar34[0xb] = ppppppcVar32" (subscript_expression "pppppppcVar34[0xb]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pppppppcVar38 = pppppppcVar34;" (assignment_expression "pppppppcVar38 = pppppppcVar34" identifier = identifier) ;) (expression_statement "ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,6);" (assignment_expression "ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,6)" identifier = (cast_expression "(code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,6)" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (call_expression "FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,6)" identifier (argument_list "(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,6)" ( (pointer_expression "&pppppppcStack_208" & identifier) , identifier , identifier , number_literal ))))) ;) (expression_statement "pppppppcVar34[0xc] = ppppppcVar32;" (assignment_expression "pppppppcVar34[0xc] = ppppppcVar32" (subscript_expression "pppppppcVar34[0xc]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pppppppcVar29 = pppppppcStack_208;" (assignment_expression "pppppppcVar29 = pppppppcStack_208" identifier = identifier) ;) (if_statement "if (((pppppppcVar34[10] == (code ******)0x0) ||\n                          (pppppppcVar34[0xb] == (code ******)0x0)) ||\n                         (ppppppcVar32 == (code ******)0x0)) goto LAB_00056cb8;" if (parenthesized_expression "(((pppppppcVar34[10] == (code ******)0x0) ||\n                          (pppppppcVar34[0xb] == (code ******)0x0)) ||\n                         (ppppppcVar32 == (code ******)0x0))" ( (binary_expression "((pppppppcVar34[10] == (code ******)0x0) ||\n                          (pppppppcVar34[0xb] == (code ******)0x0)) ||\n                         (ppppppcVar32 == (code ******)0x0)" (parenthesized_expression "((pppppppcVar34[10] == (code ******)0x0) ||\n                          (pppppppcVar34[0xb] == (code ******)0x0))" ( (binary_expression "(pppppppcVar34[10] == (code ******)0x0) ||\n                          (pppppppcVar34[0xb] == (code ******)0x0)" (parenthesized_expression "(pppppppcVar34[10] == (code ******)0x0)" ( (binary_expression "pppppppcVar34[10] == (code ******)0x0" (subscript_expression "pppppppcVar34[10]" identifier [ number_literal ]) == (cast_expression "(code ******)0x0" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) )) || (parenthesized_expression "(pppppppcVar34[0xb] == (code ******)0x0)" ( (binary_expression "pppppppcVar34[0xb] == (code ******)0x0" (subscript_expression "pppppppcVar34[0xb]" identifier [ number_literal ]) == (cast_expression "(code ******)0x0" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ))) )) || (parenthesized_expression "(ppppppcVar32 == (code ******)0x0)" ( (binary_expression "ppppppcVar32 == (code ******)0x0" identifier == (cast_expression "(code ******)0x0" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ))) )) (goto_statement "goto LAB_00056cb8;" goto statement_identifier ;)) }))) (expression_statement "(**(code **)(puVar41 + 0x23dc0))(piStack_1fc);" (call_expression "(**(code **)(puVar41 + 0x23dc0))(piStack_1fc)" (parenthesized_expression "(**(code **)(puVar41 + 0x23dc0))" ( (pointer_expression "**(code **)(puVar41 + 0x23dc0)" * (pointer_expression "*(code **)(puVar41 + 0x23dc0)" * (cast_expression "(code **)(puVar41 + 0x23dc0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar41 + 0x23dc0)" ( (binary_expression "puVar41 + 0x23dc0" identifier + number_literal) ))))) )) (argument_list "(piStack_1fc)" ( identifier ))) ;) (expression_statement "pppppppcVar29 = pppppppcVar33;" (assignment_expression "pppppppcVar29 = pppppppcVar33" identifier = identifier) ;) })) })) (labeled_statement "LAB_00056cb8:\n                pppppppcStack_20c = pppppppcVar29;" statement_identifier : (expression_statement "pppppppcStack_20c = pppppppcVar29;" (assignment_expression "pppppppcStack_20c = pppppppcVar29" identifier = identifier) ;)) (expression_statement "FUN_0004b234(pppppppcVar3);" (call_expression "FUN_0004b234(pppppppcVar3)" identifier (argument_list "(pppppppcVar3)" ( identifier ))) ;) (expression_statement "FUN_0004b2bc(&pppppppcStack_1f8);" (call_expression "FUN_0004b2bc(&pppppppcStack_1f8)" identifier (argument_list "(&pppppppcStack_1f8)" ( (pointer_expression "&pppppppcStack_1f8" & identifier) ))) ;) (expression_statement "pppppppcVar29 = pppppppcStack_20c;" (assignment_expression "pppppppcVar29 = pppppppcStack_20c" identifier = identifier) ;) (if_statement "if (pppppppcStack_20c != (code *******)0x0) {\n                  if (*(int *)(puVar41 + 0x23c78) != 0) {\n                    (**(code **)(puVar41 + 0x23df0))(pppppppcVar34 + 0x22);\n                  }\n                  FUN_0004b338(pppppppcVar34);\n                  *pppppppcVar3 = (code ******)0x0;\n                  pppppppcVar3[1] = (code ******)0x0;\n                  pppppppcVar29 = pppppppcStack_20c;\n                }" if (parenthesized_expression "(pppppppcStack_20c != (code *******)0x0)" ( (binary_expression "pppppppcStack_20c != (code *******)0x0" identifier != (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\n                  if (*(int *)(puVar41 + 0x23c78) != 0) {\n                    (**(code **)(puVar41 + 0x23df0))(pppppppcVar34 + 0x22);\n                  }\n                  FUN_0004b338(pppppppcVar34);\n                  *pppppppcVar3 = (code ******)0x0;\n                  pppppppcVar3[1] = (code ******)0x0;\n                  pppppppcVar29 = pppppppcStack_20c;\n                }" { (if_statement "if (*(int *)(puVar41 + 0x23c78) != 0) {\n                    (**(code **)(puVar41 + 0x23df0))(pppppppcVar34 + 0x22);\n                  }" if (parenthesized_expression "(*(int *)(puVar41 + 0x23c78) != 0)" ( (binary_expression "*(int *)(puVar41 + 0x23c78) != 0" (pointer_expression "*(int *)(puVar41 + 0x23c78)" * (cast_expression "(int *)(puVar41 + 0x23c78)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar41 + 0x23c78)" ( (binary_expression "puVar41 + 0x23c78" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                    (**(code **)(puVar41 + 0x23df0))(pppppppcVar34 + 0x22);\n                  }" { (expression_statement "(**(code **)(puVar41 + 0x23df0))(pppppppcVar34 + 0x22);" (call_expression "(**(code **)(puVar41 + 0x23df0))(pppppppcVar34 + 0x22)" (parenthesized_expression "(**(code **)(puVar41 + 0x23df0))" ( (pointer_expression "**(code **)(puVar41 + 0x23df0)" * (pointer_expression "*(code **)(puVar41 + 0x23df0)" * (cast_expression "(code **)(puVar41 + 0x23df0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar41 + 0x23df0)" ( (binary_expression "puVar41 + 0x23df0" identifier + number_literal) ))))) )) (argument_list "(pppppppcVar34 + 0x22)" ( (binary_expression "pppppppcVar34 + 0x22" identifier + number_literal) ))) ;) })) (expression_statement "FUN_0004b338(pppppppcVar34);" (call_expression "FUN_0004b338(pppppppcVar34)" identifier (argument_list "(pppppppcVar34)" ( identifier ))) ;) (expression_statement "*pppppppcVar3 = (code ******)0x0;" (assignment_expression "*pppppppcVar3 = (code ******)0x0" (pointer_expression "*pppppppcVar3" * identifier) = (cast_expression "(code ******)0x0" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) (expression_statement "pppppppcVar3[1] = (code ******)0x0;" (assignment_expression "pppppppcVar3[1] = (code ******)0x0" (subscript_expression "pppppppcVar3[1]" identifier [ number_literal ]) = (cast_expression "(code ******)0x0" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) (expression_statement "pppppppcVar29 = pppppppcStack_20c;" (assignment_expression "pppppppcVar29 = pppppppcStack_20c" identifier = identifier) ;) })) (goto_statement "goto LAB_00056cfc;" goto statement_identifier ;) })) })) })) }))))))))) }) (else_clause "else {\n        pppppppcVar31 = (code *******)0x0;\n        if (pppppppcVar29 != (code *******)0x0) {\n          pppppppcVar33 = (code *******)FUN_000470f0(ppppppcVar32,0,0,2);\n          goto LAB_000564b0;\n        }\nLAB_000566f4:\n        pppppppcVar34[0xd] = (code ******)0x0;\n        pppppppcVar30 = pppppppcStack_20c;\n      }" else (compound_statement "{\n        pppppppcVar31 = (code *******)0x0;\n        if (pppppppcVar29 != (code *******)0x0) {\n          pppppppcVar33 = (code *******)FUN_000470f0(ppppppcVar32,0,0,2);\n          goto LAB_000564b0;\n        }\nLAB_000566f4:\n        pppppppcVar34[0xd] = (code ******)0x0;\n        pppppppcVar30 = pppppppcStack_20c;\n      }" { (expression_statement "pppppppcVar31 = (code *******)0x0;" (assignment_expression "pppppppcVar31 = (code *******)0x0" identifier = (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (if_statement "if (pppppppcVar29 != (code *******)0x0) {\n          pppppppcVar33 = (code *******)FUN_000470f0(ppppppcVar32,0,0,2);\n          goto LAB_000564b0;\n        }" if (parenthesized_expression "(pppppppcVar29 != (code *******)0x0)" ( (binary_expression "pppppppcVar29 != (code *******)0x0" identifier != (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\n          pppppppcVar33 = (code *******)FUN_000470f0(ppppppcVar32,0,0,2);\n          goto LAB_000564b0;\n        }" { (expression_statement "pppppppcVar33 = (code *******)FUN_000470f0(ppppppcVar32,0,0,2);" (assignment_expression "pppppppcVar33 = (code *******)FUN_000470f0(ppppppcVar32,0,0,2)" identifier = (cast_expression "(code *******)FUN_000470f0(ppppppcVar32,0,0,2)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "FUN_000470f0(ppppppcVar32,0,0,2)" identifier (argument_list "(ppppppcVar32,0,0,2)" ( identifier , number_literal , number_literal , number_literal ))))) ;) (goto_statement "goto LAB_000564b0;" goto statement_identifier ;) })) (labeled_statement "LAB_000566f4:\n        pppppppcVar34[0xd] = (code ******)0x0;" statement_identifier : (expression_statement "pppppppcVar34[0xd] = (code ******)0x0;" (assignment_expression "pppppppcVar34[0xd] = (code ******)0x0" (subscript_expression "pppppppcVar34[0xd]" identifier [ number_literal ]) = (cast_expression "(code ******)0x0" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;)) (expression_statement "pppppppcVar30 = pppppppcStack_20c;" (assignment_expression "pppppppcVar30 = pppppppcStack_20c" identifier = identifier) ;) }))) (labeled_statement "LAB_00056168:\n      pppppppcStack_20c = pppppppcVar30;" statement_identifier : (expression_statement "pppppppcStack_20c = pppppppcVar30;" (assignment_expression "pppppppcStack_20c = pppppppcVar30" identifier = identifier) ;)) (expression_statement "FUN_0004b234(pppppppcVar3);" (call_expression "FUN_0004b234(pppppppcVar3)" identifier (argument_list "(pppppppcVar3)" ( identifier ))) ;) (expression_statement "FUN_0004b2bc(&pppppppcStack_1f8);" (call_expression "FUN_0004b2bc(&pppppppcStack_1f8)" identifier (argument_list "(&pppppppcStack_1f8)" ( (pointer_expression "&pppppppcStack_1f8" & identifier) ))) ;) (if_statement "if (*(int *)(puVar41 + 0x23c78) != 0) {\n        (**(code **)(puVar41 + 0x23df0))(pppppppcVar34 + 0x22);\n      }" if (parenthesized_expression "(*(int *)(puVar41 + 0x23c78) != 0)" ( (binary_expression "*(int *)(puVar41 + 0x23c78) != 0" (pointer_expression "*(int *)(puVar41 + 0x23c78)" * (cast_expression "(int *)(puVar41 + 0x23c78)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar41 + 0x23c78)" ( (binary_expression "puVar41 + 0x23c78" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n        (**(code **)(puVar41 + 0x23df0))(pppppppcVar34 + 0x22);\n      }" { (expression_statement "(**(code **)(puVar41 + 0x23df0))(pppppppcVar34 + 0x22);" (call_expression "(**(code **)(puVar41 + 0x23df0))(pppppppcVar34 + 0x22)" (parenthesized_expression "(**(code **)(puVar41 + 0x23df0))" ( (pointer_expression "**(code **)(puVar41 + 0x23df0)" * (pointer_expression "*(code **)(puVar41 + 0x23df0)" * (cast_expression "(code **)(puVar41 + 0x23df0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar41 + 0x23df0)" ( (binary_expression "puVar41 + 0x23df0" identifier + number_literal) ))))) )) (argument_list "(pppppppcVar34 + 0x22)" ( (binary_expression "pppppppcVar34 + 0x22" identifier + number_literal) ))) ;) })) (expression_statement "FUN_0004b338(pppppppcVar34);" (call_expression "FUN_0004b338(pppppppcVar34)" identifier (argument_list "(pppppppcVar34)" ( identifier ))) ;) (expression_statement "*pppppppcVar3 = (code ******)0x0;" (assignment_expression "*pppppppcVar3 = (code ******)0x0" (pointer_expression "*pppppppcVar3" * identifier) = (cast_expression "(code ******)0x0" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) (expression_statement "pppppppcVar3[1] = (code ******)0x0;" (assignment_expression "pppppppcVar3[1] = (code ******)0x0" (subscript_expression "pppppppcVar3[1]" identifier [ number_literal ]) = (cast_expression "(code ******)0x0" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) (expression_statement "pppppppcVar29 = pppppppcStack_20c;" (assignment_expression "pppppppcVar29 = pppppppcStack_20c" identifier = identifier) ;) (goto_statement "goto LAB_00056cfc;" goto statement_identifier ;) })) (expression_statement "pppppppcVar38 = (code *******)0x0;" (assignment_expression "pppppppcVar38 = (code *******)0x0" identifier = (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "iVar18 = (**(code **)(puVar41 + 0x23d98))(pppppppcVar34 + 0x22,0);" (assignment_expression "iVar18 = (**(code **)(puVar41 + 0x23d98))(pppppppcVar34 + 0x22,0)" identifier = (call_expression "(**(code **)(puVar41 + 0x23d98))(pppppppcVar34 + 0x22,0)" (parenthesized_expression "(**(code **)(puVar41 + 0x23d98))" ( (pointer_expression "**(code **)(puVar41 + 0x23d98)" * (pointer_expression "*(code **)(puVar41 + 0x23d98)" * (cast_expression "(code **)(puVar41 + 0x23d98)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar41 + 0x23d98)" ( (binary_expression "puVar41 + 0x23d98" identifier + number_literal) ))))) )) (argument_list "(pppppppcVar34 + 0x22,0)" ( (binary_expression "pppppppcVar34 + 0x22" identifier + number_literal) , number_literal )))) ;) (if_statement "if (iVar18 != 0) goto LAB_00056e5c;" if (parenthesized_expression "(iVar18 != 0)" ( (binary_expression "iVar18 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00056e5c;" goto statement_identifier ;)) (if_statement "if (pppppppcStack_20c == (code *******)0x0) goto LAB_00056054;" if (parenthesized_expression "(pppppppcStack_20c == (code *******)0x0)" ( (binary_expression "pppppppcStack_20c == (code *******)0x0" identifier == (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (goto_statement "goto LAB_00056054;" goto statement_identifier ;)) }) (else_clause "else {\nLAB_00056e5c:\n    pppppppcStack_20c = (code *******)0xc;\n  }" else (compound_statement "{\nLAB_00056e5c:\n    pppppppcStack_20c = (code *******)0xc;\n  }" { (labeled_statement "LAB_00056e5c:\n    pppppppcStack_20c = (code *******)0xc;" statement_identifier : (expression_statement "pppppppcStack_20c = (code *******)0xc;" (assignment_expression "pppppppcStack_20c = (code *******)0xc" identifier = (cast_expression "(code *******)0xc" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;)) }))) (expression_statement "FUN_0004b338(pppppppcVar34);" (call_expression "FUN_0004b338(pppppppcVar34)" identifier (argument_list "(pppppppcVar34)" ( identifier ))) ;) (expression_statement "*pppppppcVar3 = (code ******)0x0;" (assignment_expression "*pppppppcVar3 = (code ******)0x0" (pointer_expression "*pppppppcVar3" * identifier) = (cast_expression "(code ******)0x0" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) (expression_statement "pppppppcVar3[1] = (code ******)0x0;" (assignment_expression "pppppppcVar3[1] = (code ******)0x0" (subscript_expression "pppppppcVar3[1]" identifier [ number_literal ]) = (cast_expression "(code ******)0x0" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) (expression_statement "pppppppcVar29 = pppppppcStack_20c;" (assignment_expression "pppppppcVar29 = pppppppcStack_20c" identifier = identifier) ;) (labeled_statement "LAB_00056cfc:\n  if (iStack_1a4 == **(int **)(puVar41 + 0x23dac)) {\n    return pppppppcVar29;\n  }" statement_identifier : (if_statement "if (iStack_1a4 == **(int **)(puVar41 + 0x23dac)) {\n    return pppppppcVar29;\n  }" if (parenthesized_expression "(iStack_1a4 == **(int **)(puVar41 + 0x23dac))" ( (binary_expression "iStack_1a4 == **(int **)(puVar41 + 0x23dac)" identifier == (pointer_expression "**(int **)(puVar41 + 0x23dac)" * (pointer_expression "*(int **)(puVar41 + 0x23dac)" * (cast_expression "(int **)(puVar41 + 0x23dac)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar41 + 0x23dac)" ( (binary_expression "puVar41 + 0x23dac" identifier + number_literal) )))))) )) (compound_statement "{\n    return pppppppcVar29;\n  }" { (return_statement "return pppppppcVar29;" return identifier ;) }))) (expression_statement "pcVar4 = *(code **)(puVar41 + 0x23d6c);" (assignment_expression "pcVar4 = *(code **)(puVar41 + 0x23d6c)" identifier = (pointer_expression "*(code **)(puVar41 + 0x23d6c)" * (cast_expression "(code **)(puVar41 + 0x23d6c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar41 + 0x23d6c)" ( (binary_expression "puVar41 + 0x23d6c" identifier + number_literal) ))))) ;) (expression_statement "iVar18 = iStack_1a4;" (assignment_expression "iVar18 = iStack_1a4" identifier = identifier) ;) (expression_statement "(*pcVar4)();" (call_expression "(*pcVar4)()" (parenthesized_expression "(*pcVar4)" ( (pointer_expression "*pcVar4" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "*(byte *)(pppppppcVar31 + 7) =\n       (byte)*(code *)(pppppppcVar31 + 7) & 0xf6 |\n       (byte)(((uint)(**(int **)(pcVar4 + 0x22b18) << 6) >> 0x1f) << 3) | 1;" (assignment_expression "*(byte *)(pppppppcVar31 + 7) =\n       (byte)*(code *)(pppppppcVar31 + 7) & 0xf6 |\n       (byte)(((uint)(**(int **)(pcVar4 + 0x22b18) << 6) >> 0x1f) << 3) | 1" (pointer_expression "*(byte *)(pppppppcVar31 + 7)" * (cast_expression "(byte *)(pppppppcVar31 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pppppppcVar31 + 7)" ( (binary_expression "pppppppcVar31 + 7" identifier + number_literal) )))) = (binary_expression "(byte)*(code *)(pppppppcVar31 + 7) & 0xf6 |\n       (byte)(((uint)(**(int **)(pcVar4 + 0x22b18) << 6) >> 0x1f) << 3) | 1" (binary_expression "(byte)*(code *)(pppppppcVar31 + 7) & 0xf6 |\n       (byte)(((uint)(**(int **)(pcVar4 + 0x22b18) << 6) >> 0x1f) << 3)" (binary_expression "(byte)*(code *)(pppppppcVar31 + 7) & 0xf6" (binary_expression "(byte)*(code *)(pppppppcVar31 + 7)" (parenthesized_expression "(byte)" ( identifier )) * (cast_expression "(code *)(pppppppcVar31 + 7)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pppppppcVar31 + 7)" ( (binary_expression "pppppppcVar31 + 7" identifier + number_literal) )))) & number_literal) | (call_expression "(byte)(((uint)(**(int **)(pcVar4 + 0x22b18) << 6) >> 0x1f) << 3)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(((uint)(**(int **)(pcVar4 + 0x22b18) << 6) >> 0x1f) << 3)" ( (binary_expression "((uint)(**(int **)(pcVar4 + 0x22b18) << 6) >> 0x1f) << 3" (parenthesized_expression "((uint)(**(int **)(pcVar4 + 0x22b18) << 6) >> 0x1f)" ( (binary_expression "(uint)(**(int **)(pcVar4 + 0x22b18) << 6) >> 0x1f" (call_expression "(uint)(**(int **)(pcVar4 + 0x22b18) << 6)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(**(int **)(pcVar4 + 0x22b18) << 6)" ( (binary_expression "**(int **)(pcVar4 + 0x22b18) << 6" (pointer_expression "**(int **)(pcVar4 + 0x22b18)" * (pointer_expression "*(int **)(pcVar4 + 0x22b18)" * (cast_expression "(int **)(pcVar4 + 0x22b18)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0x22b18)" ( (binary_expression "pcVar4 + 0x22b18" identifier + number_literal) ))))) << number_literal) ))) >> number_literal) )) << number_literal) )))) | number_literal)) ;) (expression_statement "iVar18 = FUN_00055e64(pppppppcVar31,iVar18,pppppppcVar38);" (assignment_expression "iVar18 = FUN_00055e64(pppppppcVar31,iVar18,pppppppcVar38)" identifier = (call_expression "FUN_00055e64(pppppppcVar31,iVar18,pppppppcVar38)" identifier (argument_list "(pppppppcVar31,iVar18,pppppppcVar38)" ( identifier , identifier , identifier )))) ;) (if_statement "if (iVar18 == 0) {\n    pppppppcVar29 = (code *******)0x0;\n  }\n  else {\n    pppppppcVar29 =\n         (code *******)\n         (**(code **)(pcVar4 + 0x22d48))\n                   (0,*(int *)(pcVar4 + 0x22728) + 0x6f48 +\n                      *(int *)(iVar18 * 4 + *(int *)(pcVar4 + 0x22728) + 0x6f04),5);\n  }" if (parenthesized_expression "(iVar18 == 0)" ( (binary_expression "iVar18 == 0" identifier == number_literal) )) (compound_statement "{\n    pppppppcVar29 = (code *******)0x0;\n  }" { (expression_statement "pppppppcVar29 = (code *******)0x0;" (assignment_expression "pppppppcVar29 = (code *******)0x0" identifier = (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) }) (else_clause "else {\n    pppppppcVar29 =\n         (code *******)\n         (**(code **)(pcVar4 + 0x22d48))\n                   (0,*(int *)(pcVar4 + 0x22728) + 0x6f48 +\n                      *(int *)(iVar18 * 4 + *(int *)(pcVar4 + 0x22728) + 0x6f04),5);\n  }" else (compound_statement "{\n    pppppppcVar29 =\n         (code *******)\n         (**(code **)(pcVar4 + 0x22d48))\n                   (0,*(int *)(pcVar4 + 0x22728) + 0x6f48 +\n                      *(int *)(iVar18 * 4 + *(int *)(pcVar4 + 0x22728) + 0x6f04),5);\n  }" { (expression_statement "pppppppcVar29 =\n         (code *******)\n         (**(code **)(pcVar4 + 0x22d48))\n                   (0,*(int *)(pcVar4 + 0x22728) + 0x6f48 +\n                      *(int *)(iVar18 * 4 + *(int *)(pcVar4 + 0x22728) + 0x6f04),5);" (assignment_expression "pppppppcVar29 =\n         (code *******)\n         (**(code **)(pcVar4 + 0x22d48))\n                   (0,*(int *)(pcVar4 + 0x22728) + 0x6f48 +\n                      *(int *)(iVar18 * 4 + *(int *)(pcVar4 + 0x22728) + 0x6f04),5)" identifier = (cast_expression "(code *******)\n         (**(code **)(pcVar4 + 0x22d48))\n                   (0,*(int *)(pcVar4 + 0x22728) + 0x6f48 +\n                      *(int *)(iVar18 * 4 + *(int *)(pcVar4 + 0x22728) + 0x6f04),5)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "(**(code **)(pcVar4 + 0x22d48))\n                   (0,*(int *)(pcVar4 + 0x22728) + 0x6f48 +\n                      *(int *)(iVar18 * 4 + *(int *)(pcVar4 + 0x22728) + 0x6f04),5)" (parenthesized_expression "(**(code **)(pcVar4 + 0x22d48))" ( (pointer_expression "**(code **)(pcVar4 + 0x22d48)" * (pointer_expression "*(code **)(pcVar4 + 0x22d48)" * (cast_expression "(code **)(pcVar4 + 0x22d48)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0x22d48)" ( (binary_expression "pcVar4 + 0x22d48" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(pcVar4 + 0x22728) + 0x6f48 +\n                      *(int *)(iVar18 * 4 + *(int *)(pcVar4 + 0x22728) + 0x6f04),5)" ( number_literal , (binary_expression "*(int *)(pcVar4 + 0x22728) + 0x6f48 +\n                      *(int *)(iVar18 * 4 + *(int *)(pcVar4 + 0x22728) + 0x6f04)" (binary_expression "*(int *)(pcVar4 + 0x22728) + 0x6f48" (pointer_expression "*(int *)(pcVar4 + 0x22728)" * (cast_expression "(int *)(pcVar4 + 0x22728)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar4 + 0x22728)" ( (binary_expression "pcVar4 + 0x22728" identifier + number_literal) )))) + number_literal) + (pointer_expression "*(int *)(iVar18 * 4 + *(int *)(pcVar4 + 0x22728) + 0x6f04)" * (cast_expression "(int *)(iVar18 * 4 + *(int *)(pcVar4 + 0x22728) + 0x6f04)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 * 4 + *(int *)(pcVar4 + 0x22728) + 0x6f04)" ( (binary_expression "iVar18 * 4 + *(int *)(pcVar4 + 0x22728) + 0x6f04" (binary_expression "iVar18 * 4 + *(int *)(pcVar4 + 0x22728)" (binary_expression "iVar18 * 4" identifier * number_literal) + (pointer_expression "*(int *)(pcVar4 + 0x22728)" * (cast_expression "(int *)(pcVar4 + 0x22728)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar4 + 0x22728)" ( (binary_expression "pcVar4 + 0x22728" identifier + number_literal) ))))) + number_literal) ))))) , number_literal ))))) ;) }))) (return_statement "return pppppppcVar29;" return identifier ;) (labeled_statement "code_r0x00055b38:\n  if ((int)pppppppcVar26 < (int)local_dc) goto LAB_000557a8;" statement_identifier : (if_statement "if ((int)pppppppcVar26 < (int)local_dc) goto LAB_000557a8;" if (parenthesized_expression "((int)pppppppcVar26 < (int)local_dc)" ( (binary_expression "(int)pppppppcVar26 < (int)local_dc" (cast_expression "(int)pppppppcVar26" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)local_dc" ( (type_descriptor "int" primitive_type) ) identifier)) )) (goto_statement "goto LAB_000557a8;" goto statement_identifier ;))) (goto_statement "goto LAB_00055b44;" goto statement_identifier ;) (labeled_statement "LAB_000557a8:\n  local_150 = (code *******)0x1;" statement_identifier : (expression_statement "local_150 = (code *******)0x1;" (assignment_expression "local_150 = (code *******)0x1" identifier = (cast_expression "(code *******)0x1" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;)) (goto_statement "goto LAB_000557e4;" goto statement_identifier ;) (labeled_statement "LAB_00055914:\n  local_150 = (code *******)0xc;" statement_identifier : (expression_statement "local_150 = (code *******)0xc;" (assignment_expression "local_150 = (code *******)0xc" identifier = (cast_expression "(code *******)0xc" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;)) (expression_statement "param_4 = pppppppcVar14;" (assignment_expression "param_4 = pppppppcVar14" identifier = identifier) ;) (goto_statement "goto LAB_000557e4;" goto statement_identifier ;) })))
(translation_unit (function_definition TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))))))) , (parameter_declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) , (parameter_declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))))))) , (parameter_declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))))))) , (parameter_declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))))))) , (parameter_declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))))))) , (parameter_declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) , (parameter_declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))))))) , (parameter_declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))))))) )))))))))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))))) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))))) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (array_declarator IDENT [ LIT ])))))))) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))))) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))))) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))))) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))))) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) 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 ( (pointer_expression & IDENT) , LIT , LIT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) }) (else_clause else (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 * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) })))))) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (parenthesized_expression ( (binary_expression LIT - (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_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 (subscript_expression IDENT [ LIT ]) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression (subscript_expression IDENT [ LIT ]) [ LIT ]) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) LIT)) )) && (parenthesized_expression ( (binary_expression (subscript_expression (subscript_expression IDENT [ LIT ]) [ LIT ]) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) LIT)) ))) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression (subscript_expression IDENT [ LIT ]) [ LIT ]) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) LIT)) || (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) & LIT) )) == LIT) ))) )) ))) )) && (parenthesized_expression ( (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)))) )))) )) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (subscript_expression IDENT [ LIT ]) != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) }))) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) + LIT) < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_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 * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (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 = (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (compound_statement { (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (call_expression IDENT (argument_list ( (pointer_expression & IDENT) ))))) ;) (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 * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) < LIT)) ))) )) (compound_statement { (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) & LIT) )) == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) 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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (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) ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) << LIT)) )) && (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) })) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) <= (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) ))) | (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (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) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (pointer_expression & IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) 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 (binary_expression IDENT + (binary_expression (parenthesized_expression ( (binary_expression IDENT - LIT) )) * LIT)) + LIT) )))) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + (pointer_expression * IDENT)) )))) )) (argument_list ( ))))) ;) (return_statement return IDENT ;) }))) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - IDENT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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 = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( 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 = LIT) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) )))) != (cast_expression ( (type_descriptor TYPE) ) LIT)) )) (break_statement break ;)) (expression_statement (assignment_expression 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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))))) ;) (goto_statement goto statement_identifier ;) })) })) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (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 != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) )) && (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ))) )) && (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (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) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (call_expression IDENT (argument_list ( (pointer_expression & 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 IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (break_statement break ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (subscript_expression IDENT [ LIT ]))) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (subscript_expression IDENT [ LIT ]))) ;) (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) ) IDENT) & LIT) )) == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (call_expression IDENT (argument_list ( (pointer_expression & IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (break_statement break ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (subscript_expression IDENT [ LIT ]))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) IDENT)) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (break_statement break ;)) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , IDENT , LIT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (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 = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( 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 = LIT) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) )))) == (cast_expression ( (type_descriptor TYPE) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) })) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) || (parenthesized_expression ( (comma_expression (assignment_expression (subscript_expression IDENT [ (cast_expression ( (type_descriptor TYPE) ) IDENT) ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) IDENT)) , (binary_expression (subscript_expression IDENT [ LIT ]) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT))) ))) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) << LIT) < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) & LIT) )) == LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (comma_expression (assignment_expression IDENT = IDENT) , (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) )))) , (binary_expression IDENT != LIT)))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) })))) (expression_statement (assignment_expression IDENT = (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) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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)) )) (break_statement break ;)) (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 ;)) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) <= (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (while_statement while (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (pointer_expression & IDENT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) << LIT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (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 *)) ) (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 * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (subscript_expression (subscript_expression IDENT [ LIT ]) [ (cast_expression ( (type_descriptor TYPE) ) IDENT) ]))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) + LIT) ])) ;) (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 (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (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 (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) + LIT) ])) << 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 ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT)) ))) )) ))) )) (goto_statement goto statement_identifier ;)) })) (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 = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (pointer_expression & IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression (subscript_expression IDENT [ LIT ]) [ (cast_expression ( (type_descriptor TYPE) ) IDENT) ])) * LIT)) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (pointer_expression & IDENT) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))) , IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (pointer_expression & IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (call_expression IDENT (argument_list ( (pointer_expression & IDENT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (subscript_expression (parenthesized_expression ( (pointer_expression * IDENT) )) [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (call_expression IDENT (argument_list ( (pointer_expression & IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (pointer_expression & IDENT) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))) , IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (pointer_expression & IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (call_expression IDENT (argument_list ( (pointer_expression & IDENT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (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 = (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT))) ))) )) (goto_statement goto statement_identifier ;)) })) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;)) }) while (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) )) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( 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)) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (subscript_expression (subscript_expression IDENT [ LIT ]) [ 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 * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (subscript_expression IDENT [ IDENT ]))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + IDENT) + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (pointer_expression * IDENT))) ;) }))) (goto_statement goto statement_identifier ;) })) (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 )))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (goto_statement goto statement_identifier ;)) (break_statement break ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (call_expression IDENT (argument_list ( (pointer_expression & 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 * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) 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 * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) && (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ))) )) ))) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (pointer_expression & IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression 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)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) )) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (goto_statement goto statement_identifier ;)) (break_statement break ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) ^ (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( IDENT )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) (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 (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) & LIT) )) != LIT) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) & LIT) )) == LIT) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (comma_expression (assignment_expression IDENT = IDENT) , (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) )))) , (binary_expression IDENT != LIT)))) ))) )) ))) )) (compound_statement { (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 * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * IDENT))) )))) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (call_expression IDENT (argument_list ( (pointer_expression & IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (call_expression IDENT (argument_list ( (pointer_expression & IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = BOOL) ;) }))) (goto_statement goto statement_identifier ;) })) }))) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) ))) ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;)) (if_statement if (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (goto_statement goto statement_identifier ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (pointer_expression & IDENT))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (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 ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (subscript_expression IDENT [ (cast_expression ( (type_descriptor TYPE) ) IDENT) ]))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (call_expression IDENT (argument_list ( (pointer_expression & IDENT) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (subscript_expression IDENT [ (cast_expression ( (type_descriptor TYPE) ) IDENT) ]))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (call_expression IDENT (argument_list ( (pointer_expression & IDENT) ))))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (goto_statement goto statement_identifier ;)) }))) (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 < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))) * LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (compound_statement { (labeled_statement statement_identifier : (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (pointer_expression & IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = 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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (call_expression IDENT (argument_list ( (pointer_expression & IDENT) ))))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;)) (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 = IDENT) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (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 = 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) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (pointer_expression & 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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * 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 ( 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 = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (pointer_expression & IDENT) ))))) ;) (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 = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (break_statement break ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression IDENT + LIT)) , (binary_expression (pointer_expression * IDENT) != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (do_statement do (compound_statement { (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) & LIT) )) == LIT) )) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (pointer_expression & IDENT) , 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 ( IDENT ))) ;) (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 = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (goto_statement goto statement_identifier ;)) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (subscript_expression IDENT [ (cast_expression ( (type_descriptor TYPE) ) IDENT) ]))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (call_expression IDENT (argument_list ( (pointer_expression & IDENT) ))))) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) & LIT) )) == LIT) )) && (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT) < IDENT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (goto_statement goto statement_identifier ;) }))) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (goto_statement goto statement_identifier ;))) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) IDENT)) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT))) )) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) 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 { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (compound_statement { (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 * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (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 (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (subscript_expression IDENT [ LIT ]))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))))) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) * LIT)) ))))) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) IDENT)) ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * IDENT))) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT))) )) ;) (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) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (binary_expression IDENT + (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 = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (break_statement break ;)) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) )))) != IDENT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ))))) + LIT) ))) * LIT) ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ))))) + LIT) )) * LIT) + LIT) ])) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) })) (goto_statement goto statement_identifier ;) })) (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 = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (goto_statement goto statement_identifier ;)) }))))) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression IDENT + LIT) )) * LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) ))))) ;) (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 *)) ) IDENT)) )) (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) && (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (labeled_statement statement_identifier : (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 = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (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 = IDENT) ;) })) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) }))) }))))))))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))))) ) IDENT))) )) (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 = (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (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) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , LIT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) IDENT)) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (expression_statement (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 ))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )) * LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) << LIT) )))) ;) }) while (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) ;) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( LIT , IDENT ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( LIT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) & LIT) )) == LIT) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) & LIT) )) == LIT) ))) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) , (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) & LIT) )) == LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression IDENT + IDENT) , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (binary_expression (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) | LIT)) ;) })) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( LIT , LIT ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT << LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) + IDENT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) + IDENT) )))) = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) | (binary_expression LIT << (parenthesized_expression ( (binary_expression IDENT & LIT) ))))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) && (parenthesized_expression ( (binary_expression IDENT != IDENT) ))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (binary_expression (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) | LIT)) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) }))) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) )) || (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;)) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT != LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (expression_statement (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 ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) || IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (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 = (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 = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }))) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) ))) ;) }))) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (call_expression IDENT (argument_list ( (pointer_expression & IDENT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (break_statement break ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) <= IDENT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression IDENT << LIT) )))) , (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) + IDENT) < IDENT)) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (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 ))))) ;) }) while (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) ))) ;) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (pointer_expression & IDENT) , (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) | LIT) ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , IDENT , (pointer_expression & IDENT) , IDENT , LIT , (pointer_expression & IDENT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (call_expression IDENT (argument_list ( IDENT , LIT , LIT , LIT ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , LIT ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) , (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) << LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (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 (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (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 (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (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 (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) << LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression (subscript_expression (subscript_expression IDENT [ LIT ]) [ (cast_expression ( (type_descriptor TYPE) ) IDENT) ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) }) while (parenthesized_expression ( (binary_expression IDENT < (subscript_expression IDENT [ LIT ])) )) ;) })) (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (subscript_expression IDENT [ LIT ]) ))) ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (goto_statement goto statement_identifier ;)) (break_statement break ;) })) }) while (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (pointer_expression * IDENT)) == IDENT) )) ;) })) }))) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , IDENT , IDENT ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = 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 * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (subscript_expression IDENT [ LIT ])) != IDENT) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression (subscript_expression IDENT [ LIT ]) [ (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) + LIT) ]) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (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 , IDENT , LIT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression (subscript_expression IDENT [ LIT ]) [ (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) + LIT) ]) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) LIT)) )) (compound_statement { (expression_statement (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (goto_statement goto statement_identifier ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) 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 (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) & LIT) )) == LIT) )) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) ))) )) && (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 = (subscript_expression IDENT [ LIT ])) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) ;) (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) ) (subscript_expression IDENT [ LIT ])) + IDENT) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT < (subscript_expression IDENT [ LIT ])) )) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (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 (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) + IDENT) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) + IDENT) + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (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 ( (binary_expression (subscript_expression IDENT [ LIT ]) + (binary_expression (pointer_expression * IDENT) * LIT)) , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) + IDENT) + LIT) ))))) )) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT < (subscript_expression IDENT [ LIT ])) )) ;) })) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) & LIT) )) != LIT) )) && (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) ]) + LIT) )))) )))) )) (argument_list ( ))))) ;) (return_statement return IDENT ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( 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 * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (pointer_expression & IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) + (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 IDENT + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) < (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) & LIT) )))) ;) })) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (char_literal ' escape_sequence ')) ;) })))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) }) while (parenthesized_expression ( (binary_expression IDENT < (subscript_expression IDENT [ LIT ])) )) ;) })) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (binary_expression (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) | (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT) ))))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (subscript_expression (subscript_expression (subscript_expression IDENT [ LIT ]) [ LIT ]) [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , IDENT ))))) ;) (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 * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) )) && (parenthesized_expression ( (binary_expression LIT < 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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + (binary_expression (subscript_expression IDENT [ (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 IDENT + LIT) )))) == (cast_expression ( (type_descriptor TYPE) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (subscript_expression (subscript_expression IDENT [ LIT ]) [ (binary_expression (binary_expression (subscript_expression IDENT [ (cast_expression ( (type_descriptor TYPE) ) IDENT) ]) * LIT) + LIT) ]))) ;) (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 )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (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 ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (goto_statement goto statement_identifier ;)) })) }))) }) (else_clause else (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) + (binary_expression (pointer_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) )))) == (char_literal ' escape_sequence ')) )) && (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (pointer_expression * IDENT)) == (pointer_expression * IDENT)) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) }))) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (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 = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , IDENT , IDENT , LIT ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , IDENT , IDENT , LIT ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , IDENT , IDENT , LIT ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , IDENT , IDENT , LIT ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) )) || (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) ))) )) || (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) ))) )) (goto_statement goto statement_identifier ;)) }))) (expression_statement (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) ;) })) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression IDENT + LIT) ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (goto_statement goto statement_identifier ;) })) })) })) }))))))))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (call_expression IDENT (argument_list ( IDENT , LIT , LIT , LIT ))))) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression IDENT + LIT) ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (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) , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;)) }))) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) )) (compound_statement { (return_statement return 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 = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (binary_expression (binary_expression (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) | (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) << LIT) ))) >> LIT) )) << LIT) )))) | LIT)) ;) (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( LIT , (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (binary_expression IDENT * LIT) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + LIT) ))))) , LIT ))))) ;) }))) (return_statement return IDENT ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (goto_statement goto statement_identifier ;))) (goto_statement goto statement_identifier ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;)) (goto_statement goto statement_identifier ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })))
(function_definition "code *******\nFUN_00054610(code *******param_1,code ******param_2,code *******param_3,code *******param_4,\n            code *******param_5,code *******param_6,code ******param_7,code *******param_8,\n            code *******param_9)\n\n{\n  bool bVar1;\n  code *******pppppppcVar2;\n  code *******pppppppcVar3;\n  code *pcVar4;\n  int *piVar5;\n  code *******pppppppcVar6;\n  uint uVar7;\n  code *pcVar8;\n  code *pcVar9;\n  code *pcVar10;\n  code *pcVar11;\n  code *pcVar12;\n  code *****pppppcVar13;\n  code *******pppppppcVar14;\n  code *******pppppppcVar15;\n  uint uVar16;\n  code cVar23;\n  byte *pbVar17;\n  int iVar18;\n  uint uVar19;\n  code ******ppppppcVar20;\n  undefined1 *puVar21;\n  int iVar22;\n  code *******pppppppcVar24;\n  code *******pppppppcVar25;\n  code *******pppppppcVar26;\n  uint uVar27;\n  code *******pppppppcVar28;\n  code *******pppppppcVar29;\n  code *******pppppppcVar30;\n  code *******pppppppcVar31;\n  code ******ppppppcVar32;\n  code *******pppppppcVar33;\n  code *******pppppppcVar34;\n  code ******ppppppcVar35;\n  code *******pppppppcVar36;\n  code *******unaff_s4;\n  int iVar37;\n  code *******unaff_s5;\n  code *******pppppppcVar38;\n  code *******unaff_s7;\n  code ******ppppppcVar39;\n  code ****ppppcVar40;\n  undefined *puVar41;\n  code *******unaff_s8;\n  code *******pppppppcVar42;\n  int iVar43;\n  undefined8 uVar44;\n  code *******pppppppcStack_218;\n  code *******pppppppcStack_20c;\n  code *******pppppppcStack_208;\n  code ******ppppppcStack_204;\n  int iStack_200;\n  int *piStack_1fc;\n  code *******pppppppcStack_1f8;\n  code *******apppppppcStack_1f4 [6];\n  int iStack_1dc;\n  int iStack_1d8;\n  int iStack_1d4;\n  code *******pppppppcStack_1cc;\n  code *******pppppppcStack_1c8;\n  code *******pppppppcStack_1c4;\n  code *******pppppppcStack_1c0;\n  code ******ppppppcStack_1b8;\n  undefined1 uStack_1b0;\n  byte bStack_1af;\n  byte bStack_1ae;\n  char cStack_1ad;\n  code ******ppppppcStack_1a8;\n  int iStack_1a4;\n  code *******pppppppcStack_1a0;\n  code *******pppppppcStack_19c;\n  code *******pppppppcStack_198;\n  code *******pppppppcStack_194;\n  code *******pppppppcStack_190;\n  code *******pppppppcStack_18c;\n  code *******pppppppcStack_188;\n  code *******pppppppcStack_184;\n  code *******pppppppcStack_180;\n  code *pcStack_17c;\n  uint local_168;\n  code *******local_150;\n  code *******local_148;\n  code *******local_144;\n  code *******local_138;\n  int local_118;\n  code *******local_dc;\n  code *******local_d8;\n  code *******local_d4;\n  code *******local_d0;\n  code *******local_cc;\n  code *******local_c8;\n  code *******local_c4;\n  undefined4 local_c0;\n  undefined4 local_bc;\n  undefined4 local_b8;\n  code ******local_b4;\n  code ******local_b0;\n  int *local_ac;\n  int local_a8;\n  int local_9c;\n  code *******local_98;\n  code *******local_94;\n  uint local_90;\n  code *******local_8c;\n  code *******local_88;\n  code *******local_84;\n  code *******local_80;\n  code *******local_7c;\n  undefined4 local_78;\n  code ******local_74;\n  code *******local_70;\n  byte local_6c;\n  byte local_6b;\n  byte local_6a;\n  byte local_69;\n  char local_68;\n  byte local_67;\n  byte local_66;\n  code *******local_64;\n  code *******local_60;\n  code *******local_5c;\n  code *******local_58;\n  code *******local_54;\n  code *******local_50;\n  code *******local_4c;\n  undefined4 local_48;\n  code *******local_44;\n  code *******local_40;\n  int local_3c;\n  code *******local_34;\n  int local_30;\n  code *******local_2c;\n  \n  local_2c = *(code ********)PTR___stack_chk_guard_00079c10;\n  pppppppcVar38 = (code *******)*param_1;\n  pppppppcVar29 = (code *******)0x0;\n  pppppppcVar33 = param_4;\n  (*(code *)PTR_memset_00079b00)(&local_b4,0,0x88);\n  local_148 = (code *******)param_1[4];\n  if (local_148 != (code *******)0x0) {\n    if (((byte)*(code *)(param_1 + 7) & 0x10) == 0) {\n      local_148 = (code *******)0x0;\n    }\n    else if (param_4 == param_5) {\n      local_148 = (code *******)0x0;\n    }\n    else if ((char)*(code *)(param_1 + 7) < '\0') {\n      local_148 = (code *******)0x0;\n    }\n  }\n  if (param_1[6] < param_7) {\n    local_118 = (int)param_7 + (-1 - (int)param_1[6]);\n  }\n  else {\n    local_118 = 0;\n  }\n  pppppppcStack_1a0 = param_4;\n  pppppppcStack_19c = param_1;\n  local_60 = pppppppcVar38;\n  if (param_1[2] == (code ******)0x0) {\n    local_150 = (code *******)0x1;\n  }\n  else if (pppppppcVar38[9] == (code ******)0x0) {\n    local_150 = (code *******)0x1;\n  }\n  else if (pppppppcVar38[10] == (code ******)0x0) {\n    local_150 = (code *******)0x1;\n  }\n  else if (pppppppcVar38[0xb] == (code ******)0x0) {\n    local_150 = (code *******)0x1;\n  }\n  else {\n    pppppppcVar29 = (code *******)pppppppcVar38[0xc];\n    if (pppppppcVar29 == (code *******)0x0) {\n      local_150 = (code *******)0x1;\n    }\n    else {\n      pppppppcVar3 = param_5;\n      if ((((pppppppcVar38[9][2] == (code *****)0x0) && (pppppppcVar38[10][2] == (code *****)0x0))\n          && ((pppppppcVar38[0xb][2] == (code *****)0x0 || (((uint)param_1[7] & 0x1000000) == 0))))\n         && ((pppppppcVar3 = param_4, param_4 != (code *******)0x0 &&\n             (param_4 = param_5, pppppppcVar3 = param_5, param_5 != (code *******)0x0)))) {\n        local_150 = (code *******)0x1;\n        pppppppcStack_1a0 = param_5;\n      }\n      else {\n        param_5 = pppppppcVar3;\n        pppppppcVar3 = (code *******)((int)param_7 - local_118);\n        if (pppppppcVar3 == (code *******)0x0) {\n          pppppppcVar34 = (code *******)(uint)(pppppppcVar38[0x13] != (code ******)0x0);\n        }\n        else {\n          pppppppcVar34 = (code *******)0x1;\n        }\n        ppppppcVar32 = param_1[5];\n        local_6c = (byte)((uint)((int)param_1[3] << 9) >> 0x1f);\n        local_64 = (code *******)pppppppcVar38[0x17];\n        pppppppcVar31 = (code *******)((int)pppppppcVar38[2] + 1);\n        if ((int)pppppppcVar38[2] + 1 < (int)local_64) {\n          pppppppcVar31 = local_64;\n        }\n        pppppppcVar30 = (code *******)(uint)((int)param_3 + 1 < (int)pppppppcVar31);\n        pppppppcVar33 = (code *******)0x1;\n        local_69 = local_6c;\n        if (ppppppcVar32 != (code ******)0x0) {\n          local_69 = 1;\n        }\n        local_6b = (byte)((uint)((int)pppppppcVar38[0x16] << 2) >> 0x1f);\n        local_6a = (byte)((uint)((int)pppppppcVar38[0x16] << 3) >> 0x1f);\n        pppppppcVar29 = (code *******)((int)param_3 + 1);\n        if (pppppppcVar30 == (code *******)0x0) {\n          pppppppcVar29 = pppppppcVar31;\n        }\n        local_b4 = param_2;\n        local_88 = param_3;\n        local_84 = param_3;\n        local_80 = param_3;\n        local_7c = param_3;\n        local_74 = ppppppcVar32;\n        local_150 = (code *******)FUN_00046d2c(&local_b4);\n        pppppppcVar31 = pppppppcVar34;\n        param_6 = param_6;\n        if (local_150 != (code *******)0x0) goto LAB_000557e4;\n        local_70 = pppppppcVar38 + 0x18;\n        local_66 = (byte)((uint)((int)pppppppcVar38[0x16] << 4) >> 0x1f);\n        pppppppcVar2 = (code *******)0x0;\n        local_98 = pppppppcVar2;\n        if ((local_69 == 0) && (local_b0 = param_2, (int)pppppppcVar38[0x17] < 2)) {\n          local_98 = param_3;\n        }\n        local_7c = param_6;\n        local_80 = param_6;\n        local_67 = (byte)((uint)((int)param_1[7] << 7) >> 0x1f);\n        ppppppcVar35 = pppppppcVar38[0x13];\n        pppppppcVar36 = (code *******)((int)ppppppcVar35 * 2);\n        local_5c = param_9;\n        local_58 = (code *******)0xffffffff;\n        local_94 = local_98;\n        if ((int)pppppppcVar36 < 1) {\nLAB_000559f0:\n          local_3c = 1;\n          local_44 = pppppppcVar36;\n          local_34 = pppppppcVar36;\n          if ((pppppppcVar3 < (code *******)0x2) && (((uint)pppppppcVar38[0x16] & 0x40000000) == 0))\n          {\n            local_50 = (code *******)0x0;\nLAB_00055a40:\n            local_78 = 6;\n            if (((uint)param_9 & 1) != 0) {\n              local_78 = 4;\n            }\n            pppppppcVar24 = (code *******)0x1;\n            pppppppcVar25 = param_4;\n            if ((int)param_5 < (int)param_4) {\n              pppppppcVar24 = (code *******)0xffffffff;\n              pppppppcVar25 = param_5;\n            }\n            pppppppcVar26 = param_5;\n            if ((int)param_5 <= (int)param_4) {\n              pppppppcVar26 = param_4;\n            }\n            ppppppcVar35 = pppppppcVar38[0x17];\n            uVar16 = 8;\n            if (local_148 != (code *******)0x0) {\n              if (ppppppcVar35 == (code ******)0x1) {\n                pppppppcVar28 = (code *******)0x4;\n              }\n              else {\n                pppppppcVar28 = pppppppcVar2;\n                if ((-1 < (int)param_1[3] << 9) && (ppppppcVar32 == (code ******)0x0)) {\n                  pppppppcVar28 = (code *******)0x4;\n                }\n              }\n              pppppppcVar29 = (code *******)0x0;\n              if ((int)param_4 <= (int)param_5) {\n                pppppppcVar29 = (code *******)0x2;\n              }\n              uVar16 = (uint)(ppppppcVar32 != (code ******)0x0) | (uint)pppppppcVar28 |\n                       (uint)pppppppcVar29;\n            }\n            local_dc = param_4;\n            if ((int)param_4 < (int)pppppppcVar25) {\n              local_150 = (code *******)0x1;\n              param_6 = pppppppcVar36;\n            }\n            else if ((int)pppppppcVar26 < (int)param_4) {\n              local_150 = (code *******)0x1;\n              param_4 = (code *******)(uint)((int)param_5 < (int)param_4);\n              param_6 = pppppppcVar36;\n            }\n            else {\n              pppppppcVar36 = (code *******)&local_dc;\n              if ((code *******)(uint)((int)param_5 < (int)param_4) != (code *******)0x0) {\n                pppppppcVar36 = (code *******)0x0;\n              }\n              pcVar4 = (code *)(PTR_DAT_000799a4 + -0x2b7c);\n              piVar5 = (int *)(PTR_s_nt0_000795b8 + (uVar16 - 4) * 4 + 0x6e38);\nLAB_00055b44:\n              if (uVar16 - 4 < 5) {\n                    \n                    \n                pppppppcVar29 = (code *******)(*(code *)(&_gp_1 + *piVar5))();\n                return pppppppcVar29;\n              }\n              param_5 = &local_b4;\n              pppppppcVar28 = pppppppcVar33;\n              while( true ) {\n                param_4 = local_dc;\n                pppppppcVar33 = (code *******)((int)local_dc - local_9c);\n                pppppppcVar30 = param_9;\n                pppppppcVar31 = pppppppcVar2;\n                param_6 = local_148;\n                unaff_s4 = param_3;\n                unaff_s5 = pppppppcVar24;\n                unaff_s7 = pppppppcVar26;\n                if (local_94 <= pppppppcVar33) {\n                  pppppppcVar29 = local_dc;\n                  local_150 = (code *******)(*pcVar4)(param_5);\n                  pppppppcVar33 = pppppppcVar28;\n                  if (local_150 != (code *******)0x0) goto LAB_000557e4;\n                  pppppppcVar33 = (code *******)((int)param_4 - local_9c);\n                }\n                if ((int)param_4 < (int)param_3) {\n                  uVar7 = (uint)(byte)*(code *)((int)pppppppcVar33 + (int)local_b0);\n                }\n                else {\n                  uVar7 = 0;\n                }\n                param_4 = (code *******)((int)param_4 + (int)pppppppcVar24);\n                if (*(code *)((int)local_148 + uVar7) != (code)0x0) break;\n                pppppppcVar33 = pppppppcVar28;\n                local_dc = param_4;\n                if ((int)param_4 < (int)pppppppcVar25) {\n                  local_150 = (code *******)0x1;\n                  goto LAB_000557e4;\n                }\n                if ((code *******)(uint)((int)pppppppcVar26 < (int)param_4) != (code *******)0x0) {\n                  local_150 = (code *******)0x1;\n                  param_4 = (code *******)(uint)((int)pppppppcVar26 < (int)param_4);\n                  goto LAB_000557e4;\n                }\n              }\n              while( true ) {\n                pppppppcVar29 = local_dc;\n                pppppppcVar30 = param_9;\n                pppppppcVar6 = (code *******)(*pcVar4)(&local_b4);\n                pppppppcVar14 = local_60;\n                pppppppcVar42 = local_8c;\n                pppppppcVar33 = pppppppcVar28;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar6 != (code *******)0x0) goto LAB_000557e4;\n                if (((ppppppcVar35 != (code ******)0x1) && (local_98 != (code *******)0x0)) &&\n                   (*local_ac == -1)) goto LAB_00055b1c;\n                local_3c = 0;\n                local_48 = 0;\n                local_4c = (code *******)0x0;\n                local_138 = local_8c;\n                local_d8 = (code *******)0x0;\n                unaff_s7 = (code *******)local_60[9];\n                pppppppcVar30 = local_5c;\n                param_4 = pppppppcVar14;\n                if (((uint)unaff_s7[0xd] & 0x1000000) == 0) break;\n                pppppppcVar29 = (code *******)((int)local_8c + -1);\n                pppppppcVar33 = (code *******)FUN_00049110(&local_b4);\n                if (((uint)pppppppcVar33 & 1) == 0) {\n                  if (pppppppcVar33 == (code *******)0x0) break;\n                  if (((uint)pppppppcVar33 & 6) == 6) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xc];\n                    goto LAB_00054d1c;\n                  }\n                  if (((uint)pppppppcVar33 & 2) != 0) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xb];\n                    goto LAB_00054d1c;\n                  }\n                  pppppppcVar28 = pppppppcVar33;\n                  if (((uint)pppppppcVar33 & 4) == 0) break;\n                  pppppppcVar30 = (code *******)unaff_s7[10];\n                  pppppppcVar29 = pppppppcVar14;\n                  unaff_s7 = (code *******)FUN_0004ae34(&local_d8);\n                  pppppppcVar28 = pppppppcVar33;\n                  if (unaff_s7 != (code *******)0x0) break;\n                  if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                }\n                else {\n                  unaff_s7 = (code *******)pppppppcVar14[10];\nLAB_00054d1c:\n                  pppppppcVar28 = (code *******)PTR_s_nt0_000795b8;\n                  if (unaff_s7 != (code *******)0x0) break;\n                }\n                pppppppcVar28 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                local_dc = (code *******)\n                           (*(code *)PTR___assert_fail_000799f8)\n                                     (PTR_s_nt0_000795b8 + 0x71a0,pppppppcVar29,0x435);\n                if (local_dc == pppppppcVar26) {\n                  if ((int)local_dc < (int)param_3) {\n                    uVar7 = (uint)(byte)*(code *)((int)local_dc + (int)param_2);\n                  }\n                  else {\n                    uVar7 = 0;\n                  }\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    uVar7 = (uint)*(byte *)((int)ppppppcVar32 + uVar7);\n                  }\n                  if (*(code *)((int)local_148 + uVar7) == (code)0x0) {\n                    local_150 = (code *******)0x1;\n                    pppppppcVar30 = param_9;\n                    pppppppcVar33 = pppppppcVar28;\n                    goto LAB_000557e4;\n                  }\n                }\n              }\n              pppppppcVar33 = pppppppcVar28;\n              bVar1 = pppppppcVar36 != (code *******)0x0;\n              if ((local_50 == (code *******)0x0) ||\n                 (local_50[(int)pppppppcVar42] = (code ******)unaff_s7,\n                 pppppppcVar14[0x13] == (code ******)0x0)) {\nLAB_00054d50:\n                if ((int)unaff_s7[0xd] << 4 < 0) {\n                  if ((((uint)unaff_s7[0xd] & 0x1000000) == 0) ||\n                     (pppppppcVar29 = unaff_s7, pppppppcVar30 = pppppppcVar42,\n                     iVar18 = FUN_00049440(&local_b4), iVar18 != 0)) {\n                    unaff_s8 = pppppppcVar42;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                  }\n                  else {\n                    pppppppcVar42 = (code *******)0xffffffff;\n                    pppppppcVar28 = (code *******)0x0;\n                  }\n                }\n                else {\n                  pppppppcVar42 = (code *******)0xffffffff;\n                  pppppppcVar28 = (code *******)0x0;\n                }\n                pcVar8 = (code *)(PTR_DAT_000799a4 + -0x7144);\n                pcVar9 = (code *)(PTR_DAT_000799a4 + -0x1980);\n                pcVar10 = (code *)(PTR_DAT_000799a4 + -0x2f9c);\n                unaff_s8 = pppppppcVar42;\n                local_144 = pppppppcVar36;\n                while( true ) {\n                  uVar44 = CONCAT44(local_98,local_84);\n                  unaff_s5 = (code *******)((int)local_8c + 1);\n                  pppppppcVar29 = local_8c;\n                  if ((int)local_7c <= (int)local_8c) break;\n                  if (((int)local_90 <= (int)unaff_s5) && ((int)local_90 < (int)local_84))\n                  goto LAB_00054e94;\n                  if ((int)local_98 <= (int)unaff_s5) {\n                    while ((int)((ulonglong)uVar44 >> 0x20) < (int)uVar44) {\nLAB_00054e94:\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 2);\n                      local_d8 = (code *******)(*pcVar8)(&local_b4);\n                      if (local_d8 == (code *******)0x0) break;\n                      pppppppcVar14 = param_4;\n                      if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                      pppppppcVar33 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                      pppppppcVar30 = (code *******)0x46c;\n                      pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                      uVar44 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0);\n                      pppppppcVar28 = pppppppcVar38;\n                    }\n                  }\n                  pppppppcVar42 = local_60;\n                  if ((int)unaff_s7[0xd] << 5 < 0) {\n                    pppppppcVar31 = pppppppcVar42;\n                    if (0 < (int)unaff_s7[2]) {\n                      pcVar11 = (code *)(PTR_DAT_000799a4 + -0x6fdc);\n                      pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6ef0);\n                      param_6 = (code *******)0x0;\n                      do {\n                        param_5 = (code *******)unaff_s7[3][(int)param_6];\n                        ppppppcVar39 = *pppppppcVar42;\n                        pppppcVar13 = ppppppcVar39[(int)param_5 * 2 + 1];\n                        if (((uint)pppppcVar13 & 0x800) != 0) {\n                          if (((uint)pppppcVar13 & 0xffc000) != 0) {\n                            pppppppcVar29 = local_8c;\n                            uVar19 = (*pcVar12)(&local_b4,local_8c,local_5c);\n                            uVar7 = (uint)((int)ppppppcVar39[(int)param_5 * 2 + 1] << 8) >> 0x16;\n                            if ((uVar7 & 4) == 0) {\n                              uVar27 = uVar19 & 1;\n                              if ((uVar7 & 8) != 0) goto joined_r0x00054f40;\n                            }\n                            else {\n                              uVar27 = uVar7 & 8;\n                              if ((uVar19 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                              if (uVar27 != 0) goto LAB_000550a4;\n                            }\n                            if ((((uVar7 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                               (((uVar7 & 0x80) != 0 &&\n                                (pppppppcVar33 = local_8c, (uVar19 & 8) == 0)))) goto LAB_000550a4;\n                          }\n                          pppppppcVar30 = &local_b4;\n                          pppppppcVar29 = param_5;\n                          pppppppcVar33 = local_8c;\n                          iVar18 = (*pcVar10)(pppppppcVar42);\n                          if (iVar18 != 0) {\n                            pppppppcVar14 = (code *******)((int)local_8c + iVar18);\n                            if (iVar18 <= local_3c) {\n                              iVar18 = local_3c;\n                            }\n                            pppppppcVar29 = pppppppcVar14;\n                            local_3c = iVar18;\n                            local_d4 = (code *******)(*pcVar11)(&local_b4);\n                            pppppppcVar15 = local_d4;\n                            if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                            pppppppcVar30 =\n                                 (code *******)\n                                 (pppppppcVar42[6] + (int)pppppppcVar42[3][(int)param_5] * 3);\n                            unaff_s4 = (code *******)((int)pppppppcVar14 * 4);\n                            param_5 = local_50 + (int)pppppppcVar14;\n                            if (*param_5 == (code ******)0x0) {\n                              local_d0 = (code *******)*pppppppcVar30;\n                              local_cc = (code *******)pppppppcVar30[1];\n                              local_c8 = (code *******)pppppppcVar30[2];\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *param_5 = ppppppcVar39;\n                            }\n                            else {\n                              pppppppcVar29 = (code *******)(*param_5)[10];\n                              local_d4 = (code *******)FUN_000484bc(&local_d0);\n                              pppppppcVar15 = local_d4;\n                              if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar15 = local_50 + (int)pppppppcVar14;\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *pppppppcVar15 = ppppppcVar39;\n                              (*(code *)PTR_free_00079c24)(local_c8);\n                            }\n                            unaff_s4 = local_50 + (int)pppppppcVar14;\n                            if ((*unaff_s4 == (code ******)0x0) &&\n                               (pppppppcVar15 = local_d4, local_d4 != (code *******)0x0))\n                            goto LAB_00055e44;\n                          }\n                        }\nLAB_000550a4:\n                        param_6 = (code *******)((int)param_6 + 1);\n                      } while ((int)param_6 < (int)unaff_s7[2]);\n                    }\n                    local_d8 = (code *******)0x0;\n                  }\n                  uVar7 = (uint)(byte)*(code *)((int)local_8c + (int)local_b0);\n                  local_8c = (code *******)((int)local_8c + 1);\n                  do {\n                    if (unaff_s7[0xb] != (code ******)0x0) {\n                      pppppppcVar30 = (code *******)unaff_s7[0xb][uVar7];\nLAB_000553a0:\n                      pppppppcVar14 = pppppppcVar30;\n                      if (local_50 != (code *******)0x0) goto LAB_000553ac;\n                      goto LAB_000553cc;\n                    }\n                    pppppppcVar31 = (code *******)unaff_s7[0xc];\n                    if (pppppppcVar31 != (code *******)0x0) {\n                      pppppppcVar29 = (code *******)((int)local_8c + -1);\n                      uVar19 = FUN_00049110(&local_b4);\n                      if ((uVar19 & 1) == 0) {\n                        pppppppcVar30 = (code *******)pppppppcVar31[uVar7];\n                      }\n                      else {\n                        pppppppcVar31 = pppppppcVar31 + uVar7 + 0x100;\n                        pppppppcVar30 = (code *******)*pppppppcVar31;\n                      }\n                      goto LAB_000553a0;\n                    }\n                    pppppppcVar29 = unaff_s7;\n                    pppppppcVar30 = local_5c;\n                    iVar18 = (*pcVar9)(local_60);\n                  } while (iVar18 != 0);\n                  local_d8 = (code *******)0xc;\n                  pppppppcVar15 = local_d8;\nLAB_00055e44:\n                  local_d8 = pppppppcVar15;\n                  param_4 = (code *******)0x0;\n                  if (local_50 == (code *******)0x0) {\n                    pppppppcVar14 = param_4;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    break;\n                  }\n                  pppppppcVar30 = (code *******)0x0;\nLAB_000553ac:\n                  pppppppcVar29 = &local_b4;\n                  pppppppcVar14 = (code *******)FUN_00053684(&local_d8);\nLAB_000553cc:\n                  param_4 = pppppppcVar14;\n                  if (pppppppcVar14 == (code *******)0x0) {\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    if ((local_50 == (code *******)0x0) ||\n                       ((pppppppcVar28 != (code *******)0x0 && (pppppppcVar34 == (code *******)0x0))\n                       )) break;\n                    param_6 = &local_b4;\n                    param_5 = (code *******)&local_d8;\n                    pppppppcVar31 = (code *******)(PTR_DAT_000799a4 + 0x3684);\n                    do {\n                      pppppppcVar15 = local_50 + (int)local_8c;\n                      pppppppcVar42 = local_8c;\n                      do {\n                        pppppppcVar42 = (code *******)((int)pppppppcVar42 + 1);\n                        pppppppcVar29 = local_4c;\n                        param_4 = pppppppcVar14;\n                        if ((int)local_4c < (int)pppppppcVar42) goto LAB_00055da8;\n                        local_8c = (code *******)((int)local_8c + 1);\n                        pppppppcVar15 = pppppppcVar15 + 1;\n                      } while (*pppppppcVar15 == (code ******)0x0);\n                      pppppppcVar30 = (code *******)0x0;\n                      pppppppcVar29 = param_6;\n                      param_4 = (code *******)(*(code *)pppppppcVar31)(param_5);\n                      if (local_d8 != (code *******)0x0) {\n                        if (param_4 == (code *******)0x0) goto LAB_00055da8;\n                        break;\n                      }\n                      pppppppcVar29 = local_4c;\n                    } while (param_4 == (code *******)0x0);\n                  }\n                  pppppppcVar15 = (code *******)((uint)unaff_s7 ^ (uint)param_4);\n                  pppppppcVar42 = unaff_s7;\n                  pppppppcVar14 = local_138;\n                  if ((bVar1) &&\n                     (pppppppcVar42 = pppppppcVar15, pppppppcVar14 = unaff_s5,\n                     pppppppcVar15 != (code *******)0x0)) {\n                    bVar1 = false;\n                    pppppppcVar14 = local_138;\n                  }\n                  local_138 = pppppppcVar14;\n                  unaff_s7 = param_4;\n                  if ((((uint)param_4[0xd] & 0x8000000) != 0) &&\n                     ((((uint)param_4[0xd] & 0x1000000) == 0 ||\n                      (pppppppcVar29 = param_4, pppppppcVar30 = local_8c,\n                      iVar18 = FUN_00049440(&local_b4), iVar18 != 0)))) {\n                    unaff_s7 = pppppppcVar42;\n                    unaff_s8 = local_8c;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                    local_144 = (code *******)0x0;\n                    unaff_s7 = param_4;\n                  }\n                }\nLAB_00055da8:\n                if (local_144 != (code *******)0x0) {\n                  *local_144 = (code ******)((int)local_138 + (int)*local_144);\n                }\n              }\n              else {\n                param_4 = unaff_s7 + 1;\n                pppppppcVar30 = (code *******)0x0;\n                pppppppcVar29 = param_4;\n                local_d8 = (code *******)FUN_00047a44(&local_b4);\n                unaff_s8 = local_d8;\n                if (local_d8 == (code *******)0x0) {\n                  if (((uint)unaff_s7[0xd] & 0x2000000) == 0) {\n                    pppppppcVar29 = param_4;\n                    bVar1 = false;\n                  }\n                  else {\n                    pppppppcVar29 = param_4;\n                    local_d8 = (code *******)FUN_00052d84(&local_b4);\n                    unaff_s8 = local_d8;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055dbc;\n                    bVar1 = false;\n                  }\n                  goto LAB_00054d50;\n                }\n              }\nLAB_00055dbc:\n              if (unaff_s8 == (code *******)0xffffffff) {\nLAB_00055b04:\n                FUN_0004b7e8(&local_b4);\nLAB_00055b1c:\n                local_dc = (code *******)((int)pppppppcVar24 + (int)local_dc);\n                if ((int)pppppppcVar25 <= (int)local_dc) goto code_r0x00055b38;\n                local_150 = (code *******)0x1;\n                goto LAB_000557e4;\n              }\n              if (unaff_s8 == (code *******)&SUB_fffffffe) {\n                local_150 = (code *******)0xc;\n                goto LAB_000557e4;\n              }\n              local_58 = unaff_s8;\n              if (((uint)param_1[7] & 0x8000000) == 0) {\n                if (pppppppcVar3 < (code *******)0x2) {\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055c08;\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                else {\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                if (pppppppcVar3 < (code *******)0x2) {\nLAB_00055c6c:\n                  pppppppcVar28 = pppppppcVar33;\n                  unaff_s4 = local_60;\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055548;\n                }\n                else {\n                  cVar23 = *(code *)(pppppppcVar38 + 0x16);\nLAB_00055c20:\n                  pppppppcVar28 = pppppppcVar33;\n                  if (-1 < (char)cVar23) goto LAB_00055c6c;\n                }\n                pppppppcVar31 = local_54;\n                pppppppcVar42 = local_60;\n                unaff_s4 = pppppppcVar42;\n                if (unaff_s8 < (code *******)0x3fffffff) {\n                  param_4 = (code *******)((int)((int)unaff_s8 + 1) * 4);\n                  unaff_s5 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                  if (unaff_s5 == (code *******)0x0) {\nLAB_00055b9c:\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    local_150 = (code *******)0xc;\n                    pppppppcVar33 = pppppppcVar28;\n                  }\n                  else {\n                    pppppppcVar29 = (code *******)&local_d0;\n                    if (pppppppcVar42[0x13] == (code ******)0x0) {\n                      local_cc = (code *******)0x0;\n                      local_c8 = pppppppcVar31;\n                      local_c0 = 0;\n                      local_bc = 0;\n                      local_b8 = 0;\n                      local_d0 = unaff_s5;\n                      local_c4 = unaff_s8;\n                      param_5 = (code *******)FUN_0005421c(&local_b4);\n                      (*(code *)PTR_free_00079c24)(local_b8);\n                      if (param_5 == (code *******)0x0) {\n                        param_4 = (code *******)*unaff_s5;\n                        if (param_4 == (code *******)0x0) {\nLAB_00055b70:\n                          (*(code *)PTR_free_00079c24)(unaff_s5);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          pppppppcVar33 = pppppppcVar28;\n                          goto LAB_00055b04;\n                        }\nLAB_00055528:\n                        (*(code *)PTR_free_00079c24)(local_50);\n                        pppppppcVar33 = pppppppcVar28;\n                        unaff_s4 = pppppppcVar42;\n                        local_58 = unaff_s8;\n                        local_54 = pppppppcVar31;\n                        local_50 = unaff_s5;\n                        goto LAB_00055548;\n                      }\nLAB_00055acc:\n                      param_4 = (code *******)0x0;\n                      pppppppcVar33 = pppppppcVar28;\n                      unaff_s4 = pppppppcVar42;\n                    }\n                    else {\n                      param_4 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                      if (param_4 == (code *******)0x0) goto LAB_00055b9c;\n                      unaff_s7 = (code *******)&local_d0;\n                      pcVar8 = (code *)(PTR_DAT_000799a4 + 0x421c);\n                      pcVar9 = (code *)(PTR_DAT_000799a4 + -0x6bc0);\n                      pppppppcVar33 = pppppppcVar28;\n                      while( true ) {\n                        pppppppcVar28 = (code *******)((int)unaff_s8 + 1);\n                        param_6 = (code *******)((int)pppppppcVar28 * 4);\n                        pppppppcVar30 = param_6;\n                        (*(code *)PTR_memset_00079b00)(param_4,0);\n                        local_c0 = 0;\n                        local_bc = 0;\n                        local_b8 = 0;\n                        pppppppcVar29 = unaff_s7;\n                        local_d0 = unaff_s5;\n                        local_cc = param_4;\n                        local_c8 = pppppppcVar31;\n                        local_c4 = unaff_s8;\n                        param_5 = (code *******)(*pcVar8)(&local_b4);\n                        (*(code *)PTR_free_00079c24)(local_b8);\n                        unaff_s4 = pppppppcVar28;\n                        if (param_5 != (code *******)0x0) break;\n                        if ((*unaff_s5 != (code ******)0x0) ||\n                           (param_6 = param_6 + -1, *param_4 != (code ******)0x0)) {\n                          pppppppcVar29 = unaff_s5;\n                          pppppppcVar30 = param_4;\n                          param_5 = (code *******)FUN_000520d0(pppppppcVar42);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          if (param_5 != (code *******)0x0) goto LAB_00055acc;\n                          goto LAB_00055528;\n                        }\n                        param_6 = (code *******)((int)local_50 + (int)param_6);\n                        do {\n                          while( true ) {\n                            unaff_s8 = (code *******)((int)unaff_s8 + -1);\n                            if ((int)unaff_s8 < 0) goto LAB_00055b70;\n                            pppppppcVar29 = (code *******)param_6[-1];\n                            if (pppppppcVar29 != (code *******)0x0) break;\n                            param_6 = param_6 + -1;\n                          }\n                          param_6 = param_6 + -1;\n                        } while (((uint)pppppppcVar29[0xd] & 0x8000000) == 0);\n                        pppppppcVar31 = (code *******)(*pcVar9)(&local_b4,pppppppcVar29,unaff_s8);\n                        pppppppcVar33 = pppppppcVar28;\n                      }\n                    }\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    (*(code *)PTR_free_00079c24)(param_4);\n                    local_150 = param_5;\n                    if (param_5 == (code *******)0x1) goto LAB_00055b04;\n                  }\n                }\n                else {\n                  local_150 = (code *******)0xc;\n                  pppppppcVar33 = pppppppcVar28;\n                }\n                goto LAB_000557e4;\n              }\n              if (pppppppcVar38[0x13] != (code ******)0x0) {\n                pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                pppppppcVar30 = unaff_s8;\n                local_54 = (code *******)FUN_00049440(&local_b4);\n                goto LAB_00055c6c;\n              }\nLAB_00055c08:\n              if ((((uint)param_1[7] & 0x8000000) == 0) && ((code *******)0x1 < pppppppcVar3)) {\n                cVar23 = *(code *)(pppppppcVar38 + 0x16);\n                goto LAB_00055c20;\n              }\nLAB_00055548:\n              if (pppppppcVar3 == (code *******)0x0) goto LAB_000557e4;\n              if (pppppppcVar3 < (code *******)0x2) {\n                *param_8 = (code ******)0x0;\n                param_8[1] = (code ******)local_58;\n                goto LAB_000555ac;\n              }\n              pppppppcVar29 = param_8 + 2;\n              do {\n                pppppppcVar29[1] = (code ******)0xffffffff;\n                *pppppppcVar29 = (code ******)0xffffffff;\n                pppppppcVar29 = pppppppcVar29 + 2;\n              } while (pppppppcVar29 != param_8 + (int)pppppppcVar3 * 2);\n              *param_8 = (code ******)0x0;\n              param_8[1] = (code ******)local_58;\n              if (((uint)param_1[7] & 0x8000000) != 0) {\nLAB_000555ac:\n                pppppppcVar33 = param_8;\n                do {\n                  pppppppcVar29 = (code *******)*pppppppcVar33;\n                  if (pppppppcVar29 != (code *******)0xffffffff) {\n                    if (local_68 != '\0') {\n                      pppppppcVar34 = local_94;\n                      if (pppppppcVar29 != local_98) {\n                        pppppppcVar34 = *(code ********)(local_a8 + (int)pppppppcVar29 * 4);\n                      }\n                      *pppppppcVar33 = (code ******)pppppppcVar34;\n                      pppppppcVar29 = local_94;\n                      if (local_98 != (code *******)pppppppcVar33[1]) {\n                        pppppppcVar29 = *(code ********)(local_a8 + (int)pppppppcVar33[1] * 4);\n                      }\n                      pppppppcVar33[1] = (code ******)pppppppcVar29;\n                    }\n                    *pppppppcVar33 = (code ******)((int)local_dc + (int)*pppppppcVar33);\n                    pppppppcVar29 = (code *******)((int)local_dc + (int)pppppppcVar33[1]);\n                    pppppppcVar33[1] = (code ******)pppppppcVar29;\n                  }\n                  pppppppcVar33 = pppppppcVar33 + 2;\n                } while (pppppppcVar33 != param_8 + (int)pppppppcVar3 * 2);\n                if (0 < local_118) {\n                  pppppppcVar33 = param_8 + (int)pppppppcVar3 * 2;\n                  do {\n                    *pppppppcVar33 = (code ******)0xffffffff;\n                    pppppppcVar33[1] = (code ******)0xffffffff;\n                    pppppppcVar33 = pppppppcVar33 + 2;\n                  } while (pppppppcVar33 != param_8 + (int)param_7 * 2);\n                }\n                pppppppcVar30 = local_dc;\n                pppppppcVar33 = param_8;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar38[0x21] != (code ******)0x0) {\n                  pppppppcVar30 = (code *******)((int)pppppppcVar3 + -1);\n                  pppppppcVar34 = (code *******)0x0;\n                  pppppppcVar3 = param_8;\n                  while( true ) {\n                    pppppppcVar29 = (code *******)((int)pppppppcVar34 * 4);\n                    if (pppppppcVar30 == pppppppcVar34) break;\n                    if (*(code ********)((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) !=\n                        pppppppcVar34) {\n                      pppppppcVar3[2] =\n                           param_8[(int)((int)*(code ********)\n                                               ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1)\n                                   * 2];\n                      pppppppcVar3[3] =\n                           param_8[((int)*(code ******)\n                                          ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1) * 2 +\n                                   1];\n                    }\n                    pppppppcVar34 = (code *******)((int)pppppppcVar34 + 1);\n                    pppppppcVar3 = pppppppcVar3 + 2;\n                  }\n                }\n                goto LAB_000557e4;\n              }\n              if ((char)*(code *)(pppppppcVar38 + 0x16) < '\0') {\n                local_168 = (uint)(0 < (int)pppppppcVar38[0x13]);\n              }\n              else {\n                local_168 = 0;\n              }\n              pppppppcVar29 = &local_b4;\n              pppppppcVar30 = pppppppcVar3;\n              pppppppcVar33 = param_8;\n              local_150 = (code *******)FUN_0004f4a0(param_1);\n              if (local_150 == (code *******)0x0) goto LAB_000555ac;\n            }\n          }\n          else if (local_90 < 0x3fffffff) {\n            local_50 = (code *******)(*(code *)PTR_malloc_00079b54)((local_90 + 1) * 4);\n            if (local_50 != (code *******)0x0) goto LAB_00055a40;\n            local_150 = (code *******)0xc;\n            param_6 = pppppppcVar36;\n          }\n          else {\n            local_150 = (code *******)0xc;\n            param_6 = pppppppcVar36;\n          }\n        }\n        else {\n          unaff_s5 = (code *******)((int)ppppppcVar35 * 8);\n          if (pppppppcVar36 < (code *******)0xccccccd) {\n            unaff_s4 = (code *******)(*(code *)PTR_malloc_00079b54)((int)ppppppcVar35 * 0x28);\n            local_40 = unaff_s4;\n            local_30 = (*(code *)PTR_malloc_00079b54)(unaff_s5);\n            if ((unaff_s4 != (code *******)0x0) && (local_30 != 0)) goto LAB_000559f0;\n          }\n          local_150 = (code *******)0xc;\n          param_6 = pppppppcVar36;\n        }\nLAB_000557e4:\n        (*(code *)PTR_free_00079c24)(local_50);\n        param_1 = pppppppcVar30;\n        if (pppppppcVar38[0x13] != (code ******)0x0) {\n          FUN_0004b7e8(&local_b4);\n          (*(code *)PTR_free_00079c24)(local_30);\n          (*(code *)PTR_free_00079c24)(local_40);\n          param_1 = pppppppcVar30;\n        }\n        FUN_0004b2bc(&local_b4);\n        pppppppcStack_1a0 = param_4;\n        pppppppcStack_19c = pppppppcVar31;\n      }\n    }\n  }\n  if (local_2c == *(code ********)PTR___stack_chk_guard_00079c10) {\n    return local_150;\n  }\n  pcVar4 = FUN_00055e64;\n  pppppppcVar3 = local_2c;\n  puVar41 = PTR___stack_chk_fail_00079bd0;\n  (*(code *)PTR___stack_chk_fail_00079bd0)();\n  iStack_1a4 = **(int **)(puVar41 + 0x23dac);\n  pppppppcStack_20c = (code *******)0x0;\n  pppppppcVar3[3] = (code ******)pppppppcVar33;\n  pppppppcVar3[2] = (code ******)0x0;\n  pppppppcVar3[6] = (code ******)0x0;\n  *(byte *)(pppppppcVar3 + 7) = (byte)*(code *)(pppppppcVar3 + 7) & 9;\n  pppppppcVar34 = (code *******)*pppppppcVar3;\n  pppppppcStack_198 = param_5;\n  pppppppcStack_194 = param_6;\n  pppppppcStack_190 = unaff_s4;\n  pppppppcStack_18c = unaff_s5;\n  pppppppcStack_188 = pppppppcVar38;\n  pppppppcStack_184 = unaff_s7;\n  pppppppcStack_180 = unaff_s8;\n  pcStack_17c = pcVar4;\n  if (pppppppcVar3[1] < (code ******)0xa0) {\n    pppppppcVar38 = (code *******)0xa0;\n    pppppppcVar31 = param_1;\n    pppppppcVar34 = (code *******)(**(code **)(puVar41 + 0x23cf8))(pppppppcVar34,0xa0);\n    if (pppppppcVar34 == (code *******)0x0) {\n      pppppppcVar29 = (code *******)0xc;\n      goto LAB_00056cfc;\n    }\n    pppppppcVar3[1] = (code ******)0xa0;\n    *pppppppcVar3 = (code ******)pppppppcVar34;\n  }\n  pppppppcVar3[2] = (code ******)0xa0;\n  pppppppcVar31 = (code *******)0xa0;\n  pppppppcVar38 = (code *******)0x0;\n  (**(code **)(puVar41 + 0x23c9c))(pppppppcVar34,0);\n  pppppppcVar34[0x10] = (code ******)0x1f;\n  if (param_1 < (code *******)0xaaaaaaa) {\n    pppppppcVar34[1] = (code ******)((int)param_1 + 1);\n    ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23cf0))(((int)param_1 + 1) * 8);\n    *pppppppcVar34 = ppppppcVar32;\n    if (param_1 == (code *******)0x0) {\n      pppppppcVar30 = (code *******)0x1;\n    }\n    else {\n      pppppppcVar30 = (code *******)0x1;\n      do {\n        pppppppcVar30 = (code *******)((int)pppppppcVar30 << 1);\n      } while (pppppppcVar30 <= param_1);\n    }\n    pppppppcVar38 = pppppppcVar30;\n    ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23b8c))(0xc,pppppppcVar30);\n    pppppppcVar34[8] = ppppppcVar32;\n    pppppppcVar34[0x11] = (code ******)((int)pppppppcVar30 + -1);\n    ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23d2c))();\n    pppppppcVar34[0x17] = ppppppcVar32;\n    pbVar17 = (byte *)(**(code **)(puVar41 + 0x23c2c))(0xe);\n    if ((((*pbVar17 & 0xdf) == 0x55) && ((pbVar17[1] & 0xdf) == 0x54)) &&\n       (pppppppcVar38 = (code *******)0x4, (pbVar17[2] & 0xdf) == 0x46)) {\n      iVar18 = 3;\n      if (pbVar17[3] == 0x2d) {\n        iVar18 = 4;\n      }\n      pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23754) + 0x71b4);\n      iVar18 = (**(code **)(puVar41 + 0x23dfc))(pbVar17 + iVar18,pppppppcVar38);\n      if (iVar18 == 0) {\n        *(byte *)(pppppppcVar34 + 0x16) = (byte)*(code *)(pppppppcVar34 + 0x16) & 0xdf | 0x20;\n      }\n    }\n    *(byte *)(pppppppcVar34 + 0x16) = (byte)*(code *)(pppppppcVar34 + 0x16) & 0xef;\n    if (1 < (int)pppppppcVar34[0x17]) {\n      if (((uint)pppppppcVar34[0x16] & 0x20000000) == 0) {\n        pppppppcVar38 = (code *******)0x1;\n        ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23b8c))(0x20,1);\n        pppppppcVar34[0xf] = ppppppcVar32;\n        if (ppppppcVar32 == (code ******)0x0) goto LAB_00056e5c;\n        iVar18 = 0;\n        do {\n          uVar16 = iVar18 << 3;\n          uVar7 = 0;\n          do {\n            uVar19 = (**(code **)(puVar41 + 0x23c88))(uVar16);\n            if (uVar19 != 0xffffffff) {\n              pppppppcVar38 = *(code ********)((int)pppppppcVar34[0xf] + iVar18);\n              *(uint *)((int)pppppppcVar34[0xf] + iVar18) =\n                   (uint)pppppppcVar38 | 1 << (uVar7 & 0x1f);\n            }\n            if (((uVar16 & 0xffffff80) == 0) && (uVar19 != uVar16)) {\n              *(byte *)(pppppppcVar34 + 0x16) = (byte)*(code *)(pppppppcVar34 + 0x16) & 0xef | 0x10;\n            }\n            uVar7 = uVar7 + 1;\n            uVar16 = uVar16 + 1;\n          } while (uVar7 != 0x20);\n          iVar18 = iVar18 + 4;\n        } while (iVar18 != 0x20);\n      }\n      else {\n        pppppppcVar34[0xf] = (code ******)(*(int *)(puVar41 + 0x23754) + 0x6ee4);\n      }\n    }\n    if ((*pppppppcVar34 == (code ******)0x0) || (pppppppcVar34[8] == (code ******)0x0))\n    goto LAB_00056e5c;\n    pppppppcStack_20c = (code *******)0x0;\n    if (*(int *)(puVar41 + 0x23c78) == 0) {\nLAB_00056054:\n      ppppppcVar32 = pppppppcVar3[5];\n      uVar16 = (uint)pppppppcVar33 & 0x400000;\n      bVar1 = uVar16 != 0;\n      pppppppcVar31 = (code *******)0x4c;\n      pppppppcVar38 = (code *******)0x0;\n      (**(code **)(puVar41 + 0x23c9c))(apppppppcStack_1f4,0);\n      cStack_1ad = ppppppcVar32 != (code ******)0x0 || bVar1;\n      ppppppcStack_1a8 = pppppppcVar34[0x17];\n      bStack_1af = (byte)((uint)((int)pppppppcVar34[0x16] << 2) >> 0x1f);\n      bStack_1ae = (byte)((uint)((int)pppppppcVar34[0x16] << 3) >> 0x1f);\n      pppppppcStack_1f8 = pppppppcVar29;\n      pppppppcStack_1cc = param_1;\n      pppppppcStack_1c8 = param_1;\n      pppppppcStack_1c4 = param_1;\n      pppppppcStack_1c0 = param_1;\n      ppppppcStack_1b8 = ppppppcVar32;\n      uStack_1b0 = bVar1;\n      if (0 < (int)param_1) {\n        pppppppcVar38 = (code *******)((int)param_1 + 1);\n        pppppppcVar30 = (code *******)FUN_00046d2c(&pppppppcStack_1f8,pppppppcVar38);\n        if (pppppppcVar30 == (code *******)0x0) goto LAB_000560cc;\n        goto LAB_00056168;\n      }\nLAB_000560cc:\n      if (cStack_1ad != '\0') {\n        pppppppcVar29 = apppppppcStack_1f4[0];\n      }\n      apppppppcStack_1f4[0] = pppppppcVar29;\n      if (uVar16 == 0) {\n        if ((int)pppppppcVar34[0x17] < 2) {\n          if (ppppppcVar32 != (code ******)0x0) {\n            FUN_00045dc8();\n          }\n        }\n        else {\n          FUN_00047cb0(&pppppppcStack_1f8);\n        }\n      }\n      else {\n        if (1 < (int)pppppppcVar34[0x17]) {\n          iVar18 = *(int *)(puVar41 + 0x23abc);\n          do {\n            pppppppcVar30 = (code *******)FUN_00048714(&pppppppcStack_1f8);\n            if (pppppppcVar30 != (code *******)0x0) break;\n            if (((int)param_1 <= iStack_1d8) ||\n               (pppppppcVar38 = (code *******)(iStack_1d4 << 1),\n               (int)pppppppcVar34[0x17] + iStack_1dc < iStack_1d4)) goto LAB_000563d0;\n            pppppppcVar30 =\n                 (code *******)(*(code *)(iVar18 + 0x6d2c))(&pppppppcStack_1f8,pppppppcVar38);\n          } while (pppppppcVar30 == (code *******)0x0);\n          goto LAB_00056168;\n        }\n        FUN_00047be4(&pppppppcStack_1f8);\n      }\nLAB_000563d0:\n      pppppppcStack_20c = (code *******)0x0;\n      pppppppcVar3[6] = (code ******)0x0;\n      ppppppcVar32 = *pppppppcVar3;\n      ppppppcVar32[0x20] = (code *****)pppppppcVar33;\n      FUN_00049e40(&ppppppcStack_204,&pppppppcStack_1f8,(uint)pppppppcVar33 | 0x800000);\n      pppppppcVar38 = pppppppcVar3;\n      pppppppcVar29 =\n           (code *******)\n           FUN_00051868(&pppppppcStack_1f8,pppppppcVar3,&ppppppcStack_204,pppppppcVar33,0,\n                        &pppppppcStack_20c);\n      if (pppppppcStack_20c == (code *******)0x0) {\n        pppppppcVar31 = (code *******)0x0;\n        pppppppcVar38 = (code *******)0x0;\n        pppppppcVar33 = (code *******)FUN_000470f0(ppppppcVar32,0,0,2);\n        pppppppcVar30 = pppppppcVar33;\n        if (pppppppcVar29 != (code *******)0x0) {\nLAB_000564b0:\n          pppppppcVar31 = pppppppcVar33;\n          pppppppcVar30 = (code *******)FUN_000470f0(ppppppcVar32,pppppppcVar29,pppppppcVar33,0x10);\n          pppppppcVar38 = pppppppcVar29;\n        }\n        if ((pppppppcVar33 == (code *******)0x0) ||\n           (pcVar4 = *(code **)(puVar41 + 0x23cf0), pppppppcVar30 == (code *******)0x0)) {\n          pppppppcStack_20c = (code *******)0xc;\n          goto LAB_000566f4;\n        }\n        pppppppcVar34[0xd] = (code ******)pppppppcVar30;\n        pppppppcVar29 = (code *******)*pppppppcVar3;\n        ppppppcVar39 = pppppppcVar29[1];\n        iVar18 = (int)ppppppcVar39 << 2;\n        ppppppcVar32 = (code ******)(*pcVar4)(iVar18);\n        pppppppcVar29[3] = ppppppcVar32;\n        ppppppcVar35 = (code ******)(**(code **)(puVar41 + 0x23cf0))(iVar18);\n        pppppppcVar29[4] = ppppppcVar35;\n        iVar18 = (int)ppppppcVar39 * 0xc;\n        ppppppcVar39 = (code ******)(**(code **)(puVar41 + 0x23cf0))(iVar18);\n        pppppppcVar29[5] = ppppppcVar39;\n        ppppppcVar20 = (code ******)(**(code **)(puVar41 + 0x23cf0))(iVar18);\n        pppppppcVar29[6] = ppppppcVar20;\n        if (ppppppcVar32 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else if (ppppppcVar35 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else if (ppppppcVar39 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else if (ppppppcVar20 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else {\n          ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23cf0))((int)pppppppcVar3[6] << 2);\n          pppppppcVar29[0x21] = ppppppcVar32;\n          if (ppppppcVar32 != (code ******)0x0) {\n            ppppppcVar32 = (code ******)0x0;\n            if (pppppppcVar3[6] != (code ******)0x0) {\n              do {\n                pppppppcVar29[0x21][(int)ppppppcVar32] = (code *****)ppppppcVar32;\n                ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n              } while (ppppppcVar32 < pppppppcVar3[6]);\n            }\n            FUN_00046050(pppppppcVar29[0xd],*(int *)(puVar41 + 0x23abc) + 0x60e8,pppppppcVar29);\n            ppppppcVar32 = pppppppcVar3[6];\n            if (ppppppcVar32 == (code ******)0x0) {\nLAB_00056704:\n              (**(code **)(puVar41 + 0x23dc0))(pppppppcVar29[0x21]);\n              pppppppcVar29[0x21] = (code ******)0x0;\n            }\n            else {\n              ppppppcVar35 = pppppppcVar29[0x21];\n              if (*ppppppcVar35 == (code *****)0x0) {\n                ppppppcVar39 = (code ******)0x0;\n                do {\n                  ppppppcVar35 = ppppppcVar35 + 1;\n                  ppppppcVar39 = (code ******)((int)ppppppcVar39 + 1);\n                  if (ppppppcVar32 == ppppppcVar39) {\n                    if (ppppppcVar32 == ppppppcVar39) goto LAB_00056704;\n                    break;\n                  }\n                } while ((code ******)*ppppppcVar35 == ppppppcVar39);\n              }\n            }\n          }\n          pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23abc) + 0x73a4);\n          pppppppcVar30 = (code *******)FUN_00045fb4(pppppppcVar29[0xd],pppppppcVar38,pppppppcVar3);\n          pppppppcVar31 = pppppppcVar29;\n          if (pppppppcVar30 == (code *******)0x0) {\n            pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23b40) + -0x5be4);\n            pppppppcVar30 = (code *******)FUN_00045fb4(pppppppcVar29[0xd],pppppppcVar38);\n            if (pppppppcVar30 == (code *******)0x0) {\n              FUN_00046050(pppppppcVar29[0xd],*(int *)(puVar41 + 0x23abc) + 0x61b4);\n              pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23b40) + -0x4614);\n              pppppppcVar30 = (code *******)FUN_00046050(pppppppcVar29[0xd],pppppppcVar38);\n              if (pppppppcVar30 == (code *******)0x0) {\n                uVar7 = 0;\n                iVar18 = *(int *)(puVar41 + 0x23b40);\n                pppppppcVar33 = (code *******)0x0;\nLAB_00056744:\n                if ((code *******)pppppppcVar29[2] != pppppppcVar33) {\nLAB_00056750:\n                  if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                    pppppppcVar38 = pppppppcVar29;\n                    pppppppcVar31 = pppppppcVar33;\n                    pppppppcVar30 =\n                         (code *******)\n                         (*(code *)(iVar18 + -0x561c))\n                                   (&ppppppcStack_204,pppppppcVar29,pppppppcVar33,1);\n                    if (pppppppcVar30 != (code *******)0x0) goto LAB_00056168;\n                    if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                      (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                      uVar7 = 1;\n                    }\n                  }\n                  pppppppcVar33 = (code *******)((int)pppppppcVar33 + 1);\n                  goto LAB_00056744;\n                }\n                if (uVar7 != 0) {\n                  uVar7 = 0;\n                  pppppppcVar33 = (code *******)0x0;\n                  goto LAB_00056750;\n                }\n                if (((((uint)pppppppcVar3[7] & 0x8000000) == 0) &&\n                    (pppppppcVar3[6] != (code ******)0x0)) &&\n                   ((char)*(code *)(pppppppcVar29 + 0x16) < '\0')) {\n                  ppppppcVar32 = pppppppcVar29[2];\n                }\n                else {\n                  if (pppppppcVar29[0x13] == (code ******)0x0) goto LAB_000568f0;\n                  ppppppcVar32 = pppppppcVar29[2];\n                }\n                ppppppcVar35 = (code ******)\n                               (**(code **)(puVar41 + 0x23cf0))((int)ppppppcVar32 * 0xc);\n                pppppppcVar29[7] = ppppppcVar35;\n                if (ppppppcVar35 == (code ******)0x0) {\n                  pppppppcVar30 = (code *******)0xc;\n                  goto LAB_00056168;\n                }\n                if (ppppppcVar32 != (code ******)0x0) {\n                  iVar18 = 0;\n                  ppppppcVar32 = (code ******)0x0;\n                  do {\n                    puVar21 = (undefined1 *)((int)pppppppcVar29[7] + iVar18);\n                    *puVar21 = 0;\n                    puVar21[1] = 0;\n                    puVar21[2] = 0;\n                    puVar21[3] = 0;\n                    puVar21[4] = 0;\n                    puVar21[5] = 0;\n                    puVar21[6] = 0;\n                    puVar21[7] = 0;\n                    puVar21[8] = 0;\n                    puVar21[9] = 0;\n                    puVar21[10] = 0;\n                    puVar21[0xb] = 0;\n                    ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                    iVar18 = iVar18 + 0xc;\n                  } while (ppppppcVar32 < pppppppcVar29[2]);\n                  iVar18 = *(int *)(puVar41 + 0x23abc);\n                  if (pppppppcVar29[2] != (code ******)0x0) {\n                    iVar43 = 0;\n                    pppppppcStack_218 = (code *******)0x0;\n                    do {\n                      piVar5 = *(int **)((int)pppppppcVar29[6] + iVar43 + 8);\n                      if (0 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4)) {\n                        iVar37 = 0;\n                        do {\n                          pppppppcVar38 = pppppppcStack_218;\n                          iVar22 = (*(code *)(iVar18 + 0x6e30))\n                                             (pppppppcVar29[7] + *piVar5 * 3,pppppppcStack_218);\n                          pppppppcVar30 = (code *******)0xc;\n                          if (iVar22 == 0) goto LAB_00056168;\n                          iVar37 = iVar37 + 1;\n                          piVar5 = piVar5 + 1;\n                        } while (iVar37 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4));\n                      }\n                      pppppppcStack_218 = (code *******)((int)pppppppcStack_218 + 1);\n                      iVar43 = iVar43 + 0xc;\n                    } while (pppppppcStack_218 < pppppppcVar29[2]);\n                  }\n                }\nLAB_000568f0:\n                pppppppcStack_20c = (code *******)0x0;\n                if (((((uint)pppppppcVar34[0x16] & 0x20000000) != 0) && (uVar16 == 0)) &&\n                   (pppppppcVar3[5] == (code ******)0x0)) {\n                  if (pppppppcVar34[2] != (code ******)0x0) {\n                    pppppppcVar31 = (code *******)(*(int *)(puVar41 + 0x23754) + 0x6e4c);\n                    if (*(byte *)(*pppppppcVar34 + 1) < 0xd) {\n                    \n                    \n                      pppppppcVar29 =\n                           (code *******)\n                           (*(code *)(puVar41 +\n                                     (int)(pppppppcVar31[*(byte *)(*pppppppcVar34 + 1)] + 0xadc7)))\n                                     ();\n                      return pppppppcVar29;\n                    }\n                    (**(code **)(puVar41 + 0x23bc4))(0);\n                    if (uVar7 != 0) {\n                      pppppppcVar31 = (code *******)&DAT_00000007;\n                      ppppppcVar32 = (code ******)0x0;\n                      do {\n                        ppppppcVar35 = *pppppppcVar34 + (int)ppppppcVar32 * 2;\n                        if (*(char *)(ppppppcVar35 + 1) == '\x01') {\n                          if (*(char *)ppppppcVar35 < '\0') {\n                            ppppppcVar35[1] = (code *****)((uint)ppppppcVar35[1] & 0xfffffbff);\n                          }\n                        }\n                        else if (*(char *)(ppppppcVar35 + 1) == '\x05') {\n                          *(char *)(ppppppcVar35 + 1) = '\a';\n                        }\n                        ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                      } while (ppppppcVar32 < pppppppcVar34[2]);\n                    }\n                  }\n                  pppppppcVar34[0x17] = (code ******)0x1;\n                  if (0 < (int)pppppppcVar34[0x13]) {\n                    uVar7 = 1;\n                  }\n                  *(byte *)(pppppppcVar34 + 0x16) =\n                       (byte)*(code *)(pppppppcVar34 + 0x16) & 0x9f | (byte)((uVar7 & 1) << 6);\n                }\n                ppppppcVar32 = (code ******)pppppppcVar34[0xd][3][7];\n                pppppppcVar34[0x12] = ppppppcVar32;\n                pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppppcVar32 * 3);\n                pppppppcVar33 = (code *******)FUN_000483e8(&ppppppcStack_204,pppppppcVar38);\n                pppppppcVar29 = pppppppcVar33;\n                pppppppcStack_208 = pppppppcVar33;\n                if (pppppppcVar33 == (code *******)0x0) {\n                  if ((0 < (int)pppppppcVar34[0x13]) && (0 < iStack_200)) {\n                    iVar18 = *(int *)(puVar41 + 0x23abc);\n                    iVar43 = *(int *)(puVar41 + 0x23abc);\n                    pppppppcVar29 = (code *******)0x0;\n                    do {\n                      pppppppcVar31 =\n                           (code *******)(*pppppppcVar34 + piStack_1fc[(int)pppppppcVar29] * 2);\n                      if (*(code *)(pppppppcVar31 + 1) == (code)0x4) {\n                        iVar37 = 0;\n                        piVar5 = piStack_1fc;\n                        if (iStack_200 < 1) {\nLAB_00056b8c:\n                          if (iStack_200 != iVar37) {\n                            ppppcVar40 = *pppppppcVar34[5][piStack_1fc[(int)pppppppcVar29] * 3 + 2];\n                            iVar37 = (*(code *)(iVar18 + 0x5ea8))(&ppppppcStack_204,ppppcVar40);\n                            if (iVar37 == 0) {\n                              pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppcVar40 * 3)\n                              ;\n                              pppppppcVar29 =\n                                   (code *******)\n                                   (*(code *)(iVar43 + 0x7f1c))(&ppppppcStack_204,pppppppcVar38);\n                              if (pppppppcVar29 != (code *******)0x0) goto LAB_00056cb8;\n                            }\n                          }\n                        }\n                        else {\n                          do {\n                            ppppppcVar32 = *pppppppcVar34 + *piVar5 * 2;\n                            if ((*(char *)(ppppppcVar32 + 1) == '\t') &&\n                               ((code ******)*ppppppcVar32 == *pppppppcVar31)) goto LAB_00056b8c;\n                            iVar37 = iVar37 + 1;\n                            piVar5 = piVar5 + 1;\n                          } while (iStack_200 != iVar37);\n                        }\n                      }\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1);\n                    } while ((int)pppppppcVar29 < iStack_200);\n                  }\n                  pppppppcVar31 = &ppppppcStack_204;\n                  pppppppcVar38 = pppppppcVar34;\n                  ppppppcVar32 = (code ******)\n                                 FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,0);\n                  pppppppcVar34[9] = ppppppcVar32;\n                  pppppppcVar29 = pppppppcStack_208;\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    if (((uint)ppppppcVar32[0xd] & 0x1000000) == 0) {\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar34[10] = ppppppcVar32;\n                    }\n                    else {\n                      pppppppcVar31 = &ppppppcStack_204;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,1);\n                      pppppppcVar34[10] = ppppppcVar32;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,2);\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar38 = pppppppcVar34;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,6);\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar29 = pppppppcStack_208;\n                      if (((pppppppcVar34[10] == (code ******)0x0) ||\n                          (pppppppcVar34[0xb] == (code ******)0x0)) ||\n                         (ppppppcVar32 == (code ******)0x0)) goto LAB_00056cb8;\n                    }\n                    (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                    pppppppcVar29 = pppppppcVar33;\n                  }\n                }\nLAB_00056cb8:\n                pppppppcStack_20c = pppppppcVar29;\n                FUN_0004b234(pppppppcVar3);\n                FUN_0004b2bc(&pppppppcStack_1f8);\n                pppppppcVar29 = pppppppcStack_20c;\n                if (pppppppcStack_20c != (code *******)0x0) {\n                  if (*(int *)(puVar41 + 0x23c78) != 0) {\n                    (**(code **)(puVar41 + 0x23df0))(pppppppcVar34 + 0x22);\n                  }\n                  FUN_0004b338(pppppppcVar34);\n                  *pppppppcVar3 = (code ******)0x0;\n                  pppppppcVar3[1] = (code ******)0x0;\n                  pppppppcVar29 = pppppppcStack_20c;\n                }\n                goto LAB_00056cfc;\n              }\n            }\n          }\n        }\n      }\n      else {\n        pppppppcVar31 = (code *******)0x0;\n        if (pppppppcVar29 != (code *******)0x0) {\n          pppppppcVar33 = (code *******)FUN_000470f0(ppppppcVar32,0,0,2);\n          goto LAB_000564b0;\n        }\nLAB_000566f4:\n        pppppppcVar34[0xd] = (code ******)0x0;\n        pppppppcVar30 = pppppppcStack_20c;\n      }\nLAB_00056168:\n      pppppppcStack_20c = pppppppcVar30;\n      FUN_0004b234(pppppppcVar3);\n      FUN_0004b2bc(&pppppppcStack_1f8);\n      if (*(int *)(puVar41 + 0x23c78) != 0) {\n        (**(code **)(puVar41 + 0x23df0))(pppppppcVar34 + 0x22);\n      }\n      FUN_0004b338(pppppppcVar34);\n      *pppppppcVar3 = (code ******)0x0;\n      pppppppcVar3[1] = (code ******)0x0;\n      pppppppcVar29 = pppppppcStack_20c;\n      goto LAB_00056cfc;\n    }\n    pppppppcVar38 = (code *******)0x0;\n    iVar18 = (**(code **)(puVar41 + 0x23d98))(pppppppcVar34 + 0x22,0);\n    if (iVar18 != 0) goto LAB_00056e5c;\n    if (pppppppcStack_20c == (code *******)0x0) goto LAB_00056054;\n  }\n  else {\nLAB_00056e5c:\n    pppppppcStack_20c = (code *******)0xc;\n  }\n  FUN_0004b338(pppppppcVar34);\n  *pppppppcVar3 = (code ******)0x0;\n  pppppppcVar3[1] = (code ******)0x0;\n  pppppppcVar29 = pppppppcStack_20c;\nLAB_00056cfc:\n  if (iStack_1a4 == **(int **)(puVar41 + 0x23dac)) {\n    return pppppppcVar29;\n  }\n  pcVar4 = *(code **)(puVar41 + 0x23d6c);\n  iVar18 = iStack_1a4;\n  (*pcVar4)();\n  *(byte *)(pppppppcVar31 + 7) =\n       (byte)*(code *)(pppppppcVar31 + 7) & 0xf6 |\n       (byte)(((uint)(**(int **)(pcVar4 + 0x22b18) << 6) >> 0x1f) << 3) | 1;\n  iVar18 = FUN_00055e64(pppppppcVar31,iVar18,pppppppcVar38);\n  if (iVar18 == 0) {\n    pppppppcVar29 = (code *******)0x0;\n  }\n  else {\n    pppppppcVar29 =\n         (code *******)\n         (**(code **)(pcVar4 + 0x22d48))\n                   (0,*(int *)(pcVar4 + 0x22728) + 0x6f48 +\n                      *(int *)(iVar18 * 4 + *(int *)(pcVar4 + 0x22728) + 0x6f04),5);\n  }\n  return pppppppcVar29;\ncode_r0x00055b38:\n  if ((int)pppppppcVar26 < (int)local_dc) goto LAB_000557a8;\n  goto LAB_00055b44;\nLAB_000557a8:\n  local_150 = (code *******)0x1;\n  goto LAB_000557e4;\nLAB_00055914:\n  local_150 = (code *******)0xc;\n  param_4 = pppppppcVar14;\n  goto LAB_000557e4;\n}" (type_identifier "code") (pointer_declarator "*******\nFUN_00054610(code *******param_1,code ******param_2,code *******param_3,code *******param_4,\n            code *******param_5,code *******param_6,code ******param_7,code *******param_8,\n            code *******param_9)" (* "*") (pointer_declarator "******\nFUN_00054610(code *******param_1,code ******param_2,code *******param_3,code *******param_4,\n            code *******param_5,code *******param_6,code ******param_7,code *******param_8,\n            code *******param_9)" (* "*") (pointer_declarator "*****\nFUN_00054610(code *******param_1,code ******param_2,code *******param_3,code *******param_4,\n            code *******param_5,code *******param_6,code ******param_7,code *******param_8,\n            code *******param_9)" (* "*") (pointer_declarator "****\nFUN_00054610(code *******param_1,code ******param_2,code *******param_3,code *******param_4,\n            code *******param_5,code *******param_6,code ******param_7,code *******param_8,\n            code *******param_9)" (* "*") (pointer_declarator "***\nFUN_00054610(code *******param_1,code ******param_2,code *******param_3,code *******param_4,\n            code *******param_5,code *******param_6,code ******param_7,code *******param_8,\n            code *******param_9)" (* "*") (pointer_declarator "**\nFUN_00054610(code *******param_1,code ******param_2,code *******param_3,code *******param_4,\n            code *******param_5,code *******param_6,code ******param_7,code *******param_8,\n            code *******param_9)" (* "*") (pointer_declarator "*\nFUN_00054610(code *******param_1,code ******param_2,code *******param_3,code *******param_4,\n            code *******param_5,code *******param_6,code ******param_7,code *******param_8,\n            code *******param_9)" (* "*") (function_declarator "FUN_00054610(code *******param_1,code ******param_2,code *******param_3,code *******param_4,\n            code *******param_5,code *******param_6,code ******param_7,code *******param_8,\n            code *******param_9)" (identifier "FUN_00054610") (parameter_list "(code *******param_1,code ******param_2,code *******param_3,code *******param_4,\n            code *******param_5,code *******param_6,code ******param_7,code *******param_8,\n            code *******param_9)" (( "(") (parameter_declaration "code *******param_1" (type_identifier "code") (pointer_declarator "*******param_1" (* "*") (pointer_declarator "******param_1" (* "*") (pointer_declarator "*****param_1" (* "*") (pointer_declarator "****param_1" (* "*") (pointer_declarator "***param_1" (* "*") (pointer_declarator "**param_1" (* "*") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))))))))) (, ",") (parameter_declaration "code ******param_2" (type_identifier "code") (pointer_declarator "******param_2" (* "*") (pointer_declarator "*****param_2" (* "*") (pointer_declarator "****param_2" (* "*") (pointer_declarator "***param_2" (* "*") (pointer_declarator "**param_2" (* "*") (pointer_declarator "*param_2" (* "*") (identifier "param_2")))))))) (, ",") (parameter_declaration "code *******param_3" (type_identifier "code") (pointer_declarator "*******param_3" (* "*") (pointer_declarator "******param_3" (* "*") (pointer_declarator "*****param_3" (* "*") (pointer_declarator "****param_3" (* "*") (pointer_declarator "***param_3" (* "*") (pointer_declarator "**param_3" (* "*") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))))))))) (, ",") (parameter_declaration "code *******param_4" (type_identifier "code") (pointer_declarator "*******param_4" (* "*") (pointer_declarator "******param_4" (* "*") (pointer_declarator "*****param_4" (* "*") (pointer_declarator "****param_4" (* "*") (pointer_declarator "***param_4" (* "*") (pointer_declarator "**param_4" (* "*") (pointer_declarator "*param_4" (* "*") (identifier "param_4"))))))))) (, ",") (parameter_declaration "code *******param_5" (type_identifier "code") (pointer_declarator "*******param_5" (* "*") (pointer_declarator "******param_5" (* "*") (pointer_declarator "*****param_5" (* "*") (pointer_declarator "****param_5" (* "*") (pointer_declarator "***param_5" (* "*") (pointer_declarator "**param_5" (* "*") (pointer_declarator "*param_5" (* "*") (identifier "param_5"))))))))) (, ",") (parameter_declaration "code *******param_6" (type_identifier "code") (pointer_declarator "*******param_6" (* "*") (pointer_declarator "******param_6" (* "*") (pointer_declarator "*****param_6" (* "*") (pointer_declarator "****param_6" (* "*") (pointer_declarator "***param_6" (* "*") (pointer_declarator "**param_6" (* "*") (pointer_declarator "*param_6" (* "*") (identifier "param_6"))))))))) (, ",") (parameter_declaration "code ******param_7" (type_identifier "code") (pointer_declarator "******param_7" (* "*") (pointer_declarator "*****param_7" (* "*") (pointer_declarator "****param_7" (* "*") (pointer_declarator "***param_7" (* "*") (pointer_declarator "**param_7" (* "*") (pointer_declarator "*param_7" (* "*") (identifier "param_7")))))))) (, ",") (parameter_declaration "code *******param_8" (type_identifier "code") (pointer_declarator "*******param_8" (* "*") (pointer_declarator "******param_8" (* "*") (pointer_declarator "*****param_8" (* "*") (pointer_declarator "****param_8" (* "*") (pointer_declarator "***param_8" (* "*") (pointer_declarator "**param_8" (* "*") (pointer_declarator "*param_8" (* "*") (identifier "param_8"))))))))) (, ",") (parameter_declaration "code *******param_9" (type_identifier "code") (pointer_declarator "*******param_9" (* "*") (pointer_declarator "******param_9" (* "*") (pointer_declarator "*****param_9" (* "*") (pointer_declarator "****param_9" (* "*") (pointer_declarator "***param_9" (* "*") (pointer_declarator "**param_9" (* "*") (pointer_declarator "*param_9" (* "*") (identifier "param_9"))))))))) () ")")))))))))) (compound_statement "{\n  bool bVar1;\n  code *******pppppppcVar2;\n  code *******pppppppcVar3;\n  code *pcVar4;\n  int *piVar5;\n  code *******pppppppcVar6;\n  uint uVar7;\n  code *pcVar8;\n  code *pcVar9;\n  code *pcVar10;\n  code *pcVar11;\n  code *pcVar12;\n  code *****pppppcVar13;\n  code *******pppppppcVar14;\n  code *******pppppppcVar15;\n  uint uVar16;\n  code cVar23;\n  byte *pbVar17;\n  int iVar18;\n  uint uVar19;\n  code ******ppppppcVar20;\n  undefined1 *puVar21;\n  int iVar22;\n  code *******pppppppcVar24;\n  code *******pppppppcVar25;\n  code *******pppppppcVar26;\n  uint uVar27;\n  code *******pppppppcVar28;\n  code *******pppppppcVar29;\n  code *******pppppppcVar30;\n  code *******pppppppcVar31;\n  code ******ppppppcVar32;\n  code *******pppppppcVar33;\n  code *******pppppppcVar34;\n  code ******ppppppcVar35;\n  code *******pppppppcVar36;\n  code *******unaff_s4;\n  int iVar37;\n  code *******unaff_s5;\n  code *******pppppppcVar38;\n  code *******unaff_s7;\n  code ******ppppppcVar39;\n  code ****ppppcVar40;\n  undefined *puVar41;\n  code *******unaff_s8;\n  code *******pppppppcVar42;\n  int iVar43;\n  undefined8 uVar44;\n  code *******pppppppcStack_218;\n  code *******pppppppcStack_20c;\n  code *******pppppppcStack_208;\n  code ******ppppppcStack_204;\n  int iStack_200;\n  int *piStack_1fc;\n  code *******pppppppcStack_1f8;\n  code *******apppppppcStack_1f4 [6];\n  int iStack_1dc;\n  int iStack_1d8;\n  int iStack_1d4;\n  code *******pppppppcStack_1cc;\n  code *******pppppppcStack_1c8;\n  code *******pppppppcStack_1c4;\n  code *******pppppppcStack_1c0;\n  code ******ppppppcStack_1b8;\n  undefined1 uStack_1b0;\n  byte bStack_1af;\n  byte bStack_1ae;\n  char cStack_1ad;\n  code ******ppppppcStack_1a8;\n  int iStack_1a4;\n  code *******pppppppcStack_1a0;\n  code *******pppppppcStack_19c;\n  code *******pppppppcStack_198;\n  code *******pppppppcStack_194;\n  code *******pppppppcStack_190;\n  code *******pppppppcStack_18c;\n  code *******pppppppcStack_188;\n  code *******pppppppcStack_184;\n  code *******pppppppcStack_180;\n  code *pcStack_17c;\n  uint local_168;\n  code *******local_150;\n  code *******local_148;\n  code *******local_144;\n  code *******local_138;\n  int local_118;\n  code *******local_dc;\n  code *******local_d8;\n  code *******local_d4;\n  code *******local_d0;\n  code *******local_cc;\n  code *******local_c8;\n  code *******local_c4;\n  undefined4 local_c0;\n  undefined4 local_bc;\n  undefined4 local_b8;\n  code ******local_b4;\n  code ******local_b0;\n  int *local_ac;\n  int local_a8;\n  int local_9c;\n  code *******local_98;\n  code *******local_94;\n  uint local_90;\n  code *******local_8c;\n  code *******local_88;\n  code *******local_84;\n  code *******local_80;\n  code *******local_7c;\n  undefined4 local_78;\n  code ******local_74;\n  code *******local_70;\n  byte local_6c;\n  byte local_6b;\n  byte local_6a;\n  byte local_69;\n  char local_68;\n  byte local_67;\n  byte local_66;\n  code *******local_64;\n  code *******local_60;\n  code *******local_5c;\n  code *******local_58;\n  code *******local_54;\n  code *******local_50;\n  code *******local_4c;\n  undefined4 local_48;\n  code *******local_44;\n  code *******local_40;\n  int local_3c;\n  code *******local_34;\n  int local_30;\n  code *******local_2c;\n  \n  local_2c = *(code ********)PTR___stack_chk_guard_00079c10;\n  pppppppcVar38 = (code *******)*param_1;\n  pppppppcVar29 = (code *******)0x0;\n  pppppppcVar33 = param_4;\n  (*(code *)PTR_memset_00079b00)(&local_b4,0,0x88);\n  local_148 = (code *******)param_1[4];\n  if (local_148 != (code *******)0x0) {\n    if (((byte)*(code *)(param_1 + 7) & 0x10) == 0) {\n      local_148 = (code *******)0x0;\n    }\n    else if (param_4 == param_5) {\n      local_148 = (code *******)0x0;\n    }\n    else if ((char)*(code *)(param_1 + 7) < '\0') {\n      local_148 = (code *******)0x0;\n    }\n  }\n  if (param_1[6] < param_7) {\n    local_118 = (int)param_7 + (-1 - (int)param_1[6]);\n  }\n  else {\n    local_118 = 0;\n  }\n  pppppppcStack_1a0 = param_4;\n  pppppppcStack_19c = param_1;\n  local_60 = pppppppcVar38;\n  if (param_1[2] == (code ******)0x0) {\n    local_150 = (code *******)0x1;\n  }\n  else if (pppppppcVar38[9] == (code ******)0x0) {\n    local_150 = (code *******)0x1;\n  }\n  else if (pppppppcVar38[10] == (code ******)0x0) {\n    local_150 = (code *******)0x1;\n  }\n  else if (pppppppcVar38[0xb] == (code ******)0x0) {\n    local_150 = (code *******)0x1;\n  }\n  else {\n    pppppppcVar29 = (code *******)pppppppcVar38[0xc];\n    if (pppppppcVar29 == (code *******)0x0) {\n      local_150 = (code *******)0x1;\n    }\n    else {\n      pppppppcVar3 = param_5;\n      if ((((pppppppcVar38[9][2] == (code *****)0x0) && (pppppppcVar38[10][2] == (code *****)0x0))\n          && ((pppppppcVar38[0xb][2] == (code *****)0x0 || (((uint)param_1[7] & 0x1000000) == 0))))\n         && ((pppppppcVar3 = param_4, param_4 != (code *******)0x0 &&\n             (param_4 = param_5, pppppppcVar3 = param_5, param_5 != (code *******)0x0)))) {\n        local_150 = (code *******)0x1;\n        pppppppcStack_1a0 = param_5;\n      }\n      else {\n        param_5 = pppppppcVar3;\n        pppppppcVar3 = (code *******)((int)param_7 - local_118);\n        if (pppppppcVar3 == (code *******)0x0) {\n          pppppppcVar34 = (code *******)(uint)(pppppppcVar38[0x13] != (code ******)0x0);\n        }\n        else {\n          pppppppcVar34 = (code *******)0x1;\n        }\n        ppppppcVar32 = param_1[5];\n        local_6c = (byte)((uint)((int)param_1[3] << 9) >> 0x1f);\n        local_64 = (code *******)pppppppcVar38[0x17];\n        pppppppcVar31 = (code *******)((int)pppppppcVar38[2] + 1);\n        if ((int)pppppppcVar38[2] + 1 < (int)local_64) {\n          pppppppcVar31 = local_64;\n        }\n        pppppppcVar30 = (code *******)(uint)((int)param_3 + 1 < (int)pppppppcVar31);\n        pppppppcVar33 = (code *******)0x1;\n        local_69 = local_6c;\n        if (ppppppcVar32 != (code ******)0x0) {\n          local_69 = 1;\n        }\n        local_6b = (byte)((uint)((int)pppppppcVar38[0x16] << 2) >> 0x1f);\n        local_6a = (byte)((uint)((int)pppppppcVar38[0x16] << 3) >> 0x1f);\n        pppppppcVar29 = (code *******)((int)param_3 + 1);\n        if (pppppppcVar30 == (code *******)0x0) {\n          pppppppcVar29 = pppppppcVar31;\n        }\n        local_b4 = param_2;\n        local_88 = param_3;\n        local_84 = param_3;\n        local_80 = param_3;\n        local_7c = param_3;\n        local_74 = ppppppcVar32;\n        local_150 = (code *******)FUN_00046d2c(&local_b4);\n        pppppppcVar31 = pppppppcVar34;\n        param_6 = param_6;\n        if (local_150 != (code *******)0x0) goto LAB_000557e4;\n        local_70 = pppppppcVar38 + 0x18;\n        local_66 = (byte)((uint)((int)pppppppcVar38[0x16] << 4) >> 0x1f);\n        pppppppcVar2 = (code *******)0x0;\n        local_98 = pppppppcVar2;\n        if ((local_69 == 0) && (local_b0 = param_2, (int)pppppppcVar38[0x17] < 2)) {\n          local_98 = param_3;\n        }\n        local_7c = param_6;\n        local_80 = param_6;\n        local_67 = (byte)((uint)((int)param_1[7] << 7) >> 0x1f);\n        ppppppcVar35 = pppppppcVar38[0x13];\n        pppppppcVar36 = (code *******)((int)ppppppcVar35 * 2);\n        local_5c = param_9;\n        local_58 = (code *******)0xffffffff;\n        local_94 = local_98;\n        if ((int)pppppppcVar36 < 1) {\nLAB_000559f0:\n          local_3c = 1;\n          local_44 = pppppppcVar36;\n          local_34 = pppppppcVar36;\n          if ((pppppppcVar3 < (code *******)0x2) && (((uint)pppppppcVar38[0x16] & 0x40000000) == 0))\n          {\n            local_50 = (code *******)0x0;\nLAB_00055a40:\n            local_78 = 6;\n            if (((uint)param_9 & 1) != 0) {\n              local_78 = 4;\n            }\n            pppppppcVar24 = (code *******)0x1;\n            pppppppcVar25 = param_4;\n            if ((int)param_5 < (int)param_4) {\n              pppppppcVar24 = (code *******)0xffffffff;\n              pppppppcVar25 = param_5;\n            }\n            pppppppcVar26 = param_5;\n            if ((int)param_5 <= (int)param_4) {\n              pppppppcVar26 = param_4;\n            }\n            ppppppcVar35 = pppppppcVar38[0x17];\n            uVar16 = 8;\n            if (local_148 != (code *******)0x0) {\n              if (ppppppcVar35 == (code ******)0x1) {\n                pppppppcVar28 = (code *******)0x4;\n              }\n              else {\n                pppppppcVar28 = pppppppcVar2;\n                if ((-1 < (int)param_1[3] << 9) && (ppppppcVar32 == (code ******)0x0)) {\n                  pppppppcVar28 = (code *******)0x4;\n                }\n              }\n              pppppppcVar29 = (code *******)0x0;\n              if ((int)param_4 <= (int)param_5) {\n                pppppppcVar29 = (code *******)0x2;\n              }\n              uVar16 = (uint)(ppppppcVar32 != (code ******)0x0) | (uint)pppppppcVar28 |\n                       (uint)pppppppcVar29;\n            }\n            local_dc = param_4;\n            if ((int)param_4 < (int)pppppppcVar25) {\n              local_150 = (code *******)0x1;\n              param_6 = pppppppcVar36;\n            }\n            else if ((int)pppppppcVar26 < (int)param_4) {\n              local_150 = (code *******)0x1;\n              param_4 = (code *******)(uint)((int)param_5 < (int)param_4);\n              param_6 = pppppppcVar36;\n            }\n            else {\n              pppppppcVar36 = (code *******)&local_dc;\n              if ((code *******)(uint)((int)param_5 < (int)param_4) != (code *******)0x0) {\n                pppppppcVar36 = (code *******)0x0;\n              }\n              pcVar4 = (code *)(PTR_DAT_000799a4 + -0x2b7c);\n              piVar5 = (int *)(PTR_s_nt0_000795b8 + (uVar16 - 4) * 4 + 0x6e38);\nLAB_00055b44:\n              if (uVar16 - 4 < 5) {\n                    \n                    \n                pppppppcVar29 = (code *******)(*(code *)(&_gp_1 + *piVar5))();\n                return pppppppcVar29;\n              }\n              param_5 = &local_b4;\n              pppppppcVar28 = pppppppcVar33;\n              while( true ) {\n                param_4 = local_dc;\n                pppppppcVar33 = (code *******)((int)local_dc - local_9c);\n                pppppppcVar30 = param_9;\n                pppppppcVar31 = pppppppcVar2;\n                param_6 = local_148;\n                unaff_s4 = param_3;\n                unaff_s5 = pppppppcVar24;\n                unaff_s7 = pppppppcVar26;\n                if (local_94 <= pppppppcVar33) {\n                  pppppppcVar29 = local_dc;\n                  local_150 = (code *******)(*pcVar4)(param_5);\n                  pppppppcVar33 = pppppppcVar28;\n                  if (local_150 != (code *******)0x0) goto LAB_000557e4;\n                  pppppppcVar33 = (code *******)((int)param_4 - local_9c);\n                }\n                if ((int)param_4 < (int)param_3) {\n                  uVar7 = (uint)(byte)*(code *)((int)pppppppcVar33 + (int)local_b0);\n                }\n                else {\n                  uVar7 = 0;\n                }\n                param_4 = (code *******)((int)param_4 + (int)pppppppcVar24);\n                if (*(code *)((int)local_148 + uVar7) != (code)0x0) break;\n                pppppppcVar33 = pppppppcVar28;\n                local_dc = param_4;\n                if ((int)param_4 < (int)pppppppcVar25) {\n                  local_150 = (code *******)0x1;\n                  goto LAB_000557e4;\n                }\n                if ((code *******)(uint)((int)pppppppcVar26 < (int)param_4) != (code *******)0x0) {\n                  local_150 = (code *******)0x1;\n                  param_4 = (code *******)(uint)((int)pppppppcVar26 < (int)param_4);\n                  goto LAB_000557e4;\n                }\n              }\n              while( true ) {\n                pppppppcVar29 = local_dc;\n                pppppppcVar30 = param_9;\n                pppppppcVar6 = (code *******)(*pcVar4)(&local_b4);\n                pppppppcVar14 = local_60;\n                pppppppcVar42 = local_8c;\n                pppppppcVar33 = pppppppcVar28;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar6 != (code *******)0x0) goto LAB_000557e4;\n                if (((ppppppcVar35 != (code ******)0x1) && (local_98 != (code *******)0x0)) &&\n                   (*local_ac == -1)) goto LAB_00055b1c;\n                local_3c = 0;\n                local_48 = 0;\n                local_4c = (code *******)0x0;\n                local_138 = local_8c;\n                local_d8 = (code *******)0x0;\n                unaff_s7 = (code *******)local_60[9];\n                pppppppcVar30 = local_5c;\n                param_4 = pppppppcVar14;\n                if (((uint)unaff_s7[0xd] & 0x1000000) == 0) break;\n                pppppppcVar29 = (code *******)((int)local_8c + -1);\n                pppppppcVar33 = (code *******)FUN_00049110(&local_b4);\n                if (((uint)pppppppcVar33 & 1) == 0) {\n                  if (pppppppcVar33 == (code *******)0x0) break;\n                  if (((uint)pppppppcVar33 & 6) == 6) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xc];\n                    goto LAB_00054d1c;\n                  }\n                  if (((uint)pppppppcVar33 & 2) != 0) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xb];\n                    goto LAB_00054d1c;\n                  }\n                  pppppppcVar28 = pppppppcVar33;\n                  if (((uint)pppppppcVar33 & 4) == 0) break;\n                  pppppppcVar30 = (code *******)unaff_s7[10];\n                  pppppppcVar29 = pppppppcVar14;\n                  unaff_s7 = (code *******)FUN_0004ae34(&local_d8);\n                  pppppppcVar28 = pppppppcVar33;\n                  if (unaff_s7 != (code *******)0x0) break;\n                  if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                }\n                else {\n                  unaff_s7 = (code *******)pppppppcVar14[10];\nLAB_00054d1c:\n                  pppppppcVar28 = (code *******)PTR_s_nt0_000795b8;\n                  if (unaff_s7 != (code *******)0x0) break;\n                }\n                pppppppcVar28 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                local_dc = (code *******)\n                           (*(code *)PTR___assert_fail_000799f8)\n                                     (PTR_s_nt0_000795b8 + 0x71a0,pppppppcVar29,0x435);\n                if (local_dc == pppppppcVar26) {\n                  if ((int)local_dc < (int)param_3) {\n                    uVar7 = (uint)(byte)*(code *)((int)local_dc + (int)param_2);\n                  }\n                  else {\n                    uVar7 = 0;\n                  }\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    uVar7 = (uint)*(byte *)((int)ppppppcVar32 + uVar7);\n                  }\n                  if (*(code *)((int)local_148 + uVar7) == (code)0x0) {\n                    local_150 = (code *******)0x1;\n                    pppppppcVar30 = param_9;\n                    pppppppcVar33 = pppppppcVar28;\n                    goto LAB_000557e4;\n                  }\n                }\n              }\n              pppppppcVar33 = pppppppcVar28;\n              bVar1 = pppppppcVar36 != (code *******)0x0;\n              if ((local_50 == (code *******)0x0) ||\n                 (local_50[(int)pppppppcVar42] = (code ******)unaff_s7,\n                 pppppppcVar14[0x13] == (code ******)0x0)) {\nLAB_00054d50:\n                if ((int)unaff_s7[0xd] << 4 < 0) {\n                  if ((((uint)unaff_s7[0xd] & 0x1000000) == 0) ||\n                     (pppppppcVar29 = unaff_s7, pppppppcVar30 = pppppppcVar42,\n                     iVar18 = FUN_00049440(&local_b4), iVar18 != 0)) {\n                    unaff_s8 = pppppppcVar42;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                  }\n                  else {\n                    pppppppcVar42 = (code *******)0xffffffff;\n                    pppppppcVar28 = (code *******)0x0;\n                  }\n                }\n                else {\n                  pppppppcVar42 = (code *******)0xffffffff;\n                  pppppppcVar28 = (code *******)0x0;\n                }\n                pcVar8 = (code *)(PTR_DAT_000799a4 + -0x7144);\n                pcVar9 = (code *)(PTR_DAT_000799a4 + -0x1980);\n                pcVar10 = (code *)(PTR_DAT_000799a4 + -0x2f9c);\n                unaff_s8 = pppppppcVar42;\n                local_144 = pppppppcVar36;\n                while( true ) {\n                  uVar44 = CONCAT44(local_98,local_84);\n                  unaff_s5 = (code *******)((int)local_8c + 1);\n                  pppppppcVar29 = local_8c;\n                  if ((int)local_7c <= (int)local_8c) break;\n                  if (((int)local_90 <= (int)unaff_s5) && ((int)local_90 < (int)local_84))\n                  goto LAB_00054e94;\n                  if ((int)local_98 <= (int)unaff_s5) {\n                    while ((int)((ulonglong)uVar44 >> 0x20) < (int)uVar44) {\nLAB_00054e94:\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 2);\n                      local_d8 = (code *******)(*pcVar8)(&local_b4);\n                      if (local_d8 == (code *******)0x0) break;\n                      pppppppcVar14 = param_4;\n                      if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                      pppppppcVar33 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                      pppppppcVar30 = (code *******)0x46c;\n                      pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                      uVar44 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0);\n                      pppppppcVar28 = pppppppcVar38;\n                    }\n                  }\n                  pppppppcVar42 = local_60;\n                  if ((int)unaff_s7[0xd] << 5 < 0) {\n                    pppppppcVar31 = pppppppcVar42;\n                    if (0 < (int)unaff_s7[2]) {\n                      pcVar11 = (code *)(PTR_DAT_000799a4 + -0x6fdc);\n                      pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6ef0);\n                      param_6 = (code *******)0x0;\n                      do {\n                        param_5 = (code *******)unaff_s7[3][(int)param_6];\n                        ppppppcVar39 = *pppppppcVar42;\n                        pppppcVar13 = ppppppcVar39[(int)param_5 * 2 + 1];\n                        if (((uint)pppppcVar13 & 0x800) != 0) {\n                          if (((uint)pppppcVar13 & 0xffc000) != 0) {\n                            pppppppcVar29 = local_8c;\n                            uVar19 = (*pcVar12)(&local_b4,local_8c,local_5c);\n                            uVar7 = (uint)((int)ppppppcVar39[(int)param_5 * 2 + 1] << 8) >> 0x16;\n                            if ((uVar7 & 4) == 0) {\n                              uVar27 = uVar19 & 1;\n                              if ((uVar7 & 8) != 0) goto joined_r0x00054f40;\n                            }\n                            else {\n                              uVar27 = uVar7 & 8;\n                              if ((uVar19 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                              if (uVar27 != 0) goto LAB_000550a4;\n                            }\n                            if ((((uVar7 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                               (((uVar7 & 0x80) != 0 &&\n                                (pppppppcVar33 = local_8c, (uVar19 & 8) == 0)))) goto LAB_000550a4;\n                          }\n                          pppppppcVar30 = &local_b4;\n                          pppppppcVar29 = param_5;\n                          pppppppcVar33 = local_8c;\n                          iVar18 = (*pcVar10)(pppppppcVar42);\n                          if (iVar18 != 0) {\n                            pppppppcVar14 = (code *******)((int)local_8c + iVar18);\n                            if (iVar18 <= local_3c) {\n                              iVar18 = local_3c;\n                            }\n                            pppppppcVar29 = pppppppcVar14;\n                            local_3c = iVar18;\n                            local_d4 = (code *******)(*pcVar11)(&local_b4);\n                            pppppppcVar15 = local_d4;\n                            if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                            pppppppcVar30 =\n                                 (code *******)\n                                 (pppppppcVar42[6] + (int)pppppppcVar42[3][(int)param_5] * 3);\n                            unaff_s4 = (code *******)((int)pppppppcVar14 * 4);\n                            param_5 = local_50 + (int)pppppppcVar14;\n                            if (*param_5 == (code ******)0x0) {\n                              local_d0 = (code *******)*pppppppcVar30;\n                              local_cc = (code *******)pppppppcVar30[1];\n                              local_c8 = (code *******)pppppppcVar30[2];\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *param_5 = ppppppcVar39;\n                            }\n                            else {\n                              pppppppcVar29 = (code *******)(*param_5)[10];\n                              local_d4 = (code *******)FUN_000484bc(&local_d0);\n                              pppppppcVar15 = local_d4;\n                              if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar15 = local_50 + (int)pppppppcVar14;\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *pppppppcVar15 = ppppppcVar39;\n                              (*(code *)PTR_free_00079c24)(local_c8);\n                            }\n                            unaff_s4 = local_50 + (int)pppppppcVar14;\n                            if ((*unaff_s4 == (code ******)0x0) &&\n                               (pppppppcVar15 = local_d4, local_d4 != (code *******)0x0))\n                            goto LAB_00055e44;\n                          }\n                        }\nLAB_000550a4:\n                        param_6 = (code *******)((int)param_6 + 1);\n                      } while ((int)param_6 < (int)unaff_s7[2]);\n                    }\n                    local_d8 = (code *******)0x0;\n                  }\n                  uVar7 = (uint)(byte)*(code *)((int)local_8c + (int)local_b0);\n                  local_8c = (code *******)((int)local_8c + 1);\n                  do {\n                    if (unaff_s7[0xb] != (code ******)0x0) {\n                      pppppppcVar30 = (code *******)unaff_s7[0xb][uVar7];\nLAB_000553a0:\n                      pppppppcVar14 = pppppppcVar30;\n                      if (local_50 != (code *******)0x0) goto LAB_000553ac;\n                      goto LAB_000553cc;\n                    }\n                    pppppppcVar31 = (code *******)unaff_s7[0xc];\n                    if (pppppppcVar31 != (code *******)0x0) {\n                      pppppppcVar29 = (code *******)((int)local_8c + -1);\n                      uVar19 = FUN_00049110(&local_b4);\n                      if ((uVar19 & 1) == 0) {\n                        pppppppcVar30 = (code *******)pppppppcVar31[uVar7];\n                      }\n                      else {\n                        pppppppcVar31 = pppppppcVar31 + uVar7 + 0x100;\n                        pppppppcVar30 = (code *******)*pppppppcVar31;\n                      }\n                      goto LAB_000553a0;\n                    }\n                    pppppppcVar29 = unaff_s7;\n                    pppppppcVar30 = local_5c;\n                    iVar18 = (*pcVar9)(local_60);\n                  } while (iVar18 != 0);\n                  local_d8 = (code *******)0xc;\n                  pppppppcVar15 = local_d8;\nLAB_00055e44:\n                  local_d8 = pppppppcVar15;\n                  param_4 = (code *******)0x0;\n                  if (local_50 == (code *******)0x0) {\n                    pppppppcVar14 = param_4;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    break;\n                  }\n                  pppppppcVar30 = (code *******)0x0;\nLAB_000553ac:\n                  pppppppcVar29 = &local_b4;\n                  pppppppcVar14 = (code *******)FUN_00053684(&local_d8);\nLAB_000553cc:\n                  param_4 = pppppppcVar14;\n                  if (pppppppcVar14 == (code *******)0x0) {\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    if ((local_50 == (code *******)0x0) ||\n                       ((pppppppcVar28 != (code *******)0x0 && (pppppppcVar34 == (code *******)0x0))\n                       )) break;\n                    param_6 = &local_b4;\n                    param_5 = (code *******)&local_d8;\n                    pppppppcVar31 = (code *******)(PTR_DAT_000799a4 + 0x3684);\n                    do {\n                      pppppppcVar15 = local_50 + (int)local_8c;\n                      pppppppcVar42 = local_8c;\n                      do {\n                        pppppppcVar42 = (code *******)((int)pppppppcVar42 + 1);\n                        pppppppcVar29 = local_4c;\n                        param_4 = pppppppcVar14;\n                        if ((int)local_4c < (int)pppppppcVar42) goto LAB_00055da8;\n                        local_8c = (code *******)((int)local_8c + 1);\n                        pppppppcVar15 = pppppppcVar15 + 1;\n                      } while (*pppppppcVar15 == (code ******)0x0);\n                      pppppppcVar30 = (code *******)0x0;\n                      pppppppcVar29 = param_6;\n                      param_4 = (code *******)(*(code *)pppppppcVar31)(param_5);\n                      if (local_d8 != (code *******)0x0) {\n                        if (param_4 == (code *******)0x0) goto LAB_00055da8;\n                        break;\n                      }\n                      pppppppcVar29 = local_4c;\n                    } while (param_4 == (code *******)0x0);\n                  }\n                  pppppppcVar15 = (code *******)((uint)unaff_s7 ^ (uint)param_4);\n                  pppppppcVar42 = unaff_s7;\n                  pppppppcVar14 = local_138;\n                  if ((bVar1) &&\n                     (pppppppcVar42 = pppppppcVar15, pppppppcVar14 = unaff_s5,\n                     pppppppcVar15 != (code *******)0x0)) {\n                    bVar1 = false;\n                    pppppppcVar14 = local_138;\n                  }\n                  local_138 = pppppppcVar14;\n                  unaff_s7 = param_4;\n                  if ((((uint)param_4[0xd] & 0x8000000) != 0) &&\n                     ((((uint)param_4[0xd] & 0x1000000) == 0 ||\n                      (pppppppcVar29 = param_4, pppppppcVar30 = local_8c,\n                      iVar18 = FUN_00049440(&local_b4), iVar18 != 0)))) {\n                    unaff_s7 = pppppppcVar42;\n                    unaff_s8 = local_8c;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                    local_144 = (code *******)0x0;\n                    unaff_s7 = param_4;\n                  }\n                }\nLAB_00055da8:\n                if (local_144 != (code *******)0x0) {\n                  *local_144 = (code ******)((int)local_138 + (int)*local_144);\n                }\n              }\n              else {\n                param_4 = unaff_s7 + 1;\n                pppppppcVar30 = (code *******)0x0;\n                pppppppcVar29 = param_4;\n                local_d8 = (code *******)FUN_00047a44(&local_b4);\n                unaff_s8 = local_d8;\n                if (local_d8 == (code *******)0x0) {\n                  if (((uint)unaff_s7[0xd] & 0x2000000) == 0) {\n                    pppppppcVar29 = param_4;\n                    bVar1 = false;\n                  }\n                  else {\n                    pppppppcVar29 = param_4;\n                    local_d8 = (code *******)FUN_00052d84(&local_b4);\n                    unaff_s8 = local_d8;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055dbc;\n                    bVar1 = false;\n                  }\n                  goto LAB_00054d50;\n                }\n              }\nLAB_00055dbc:\n              if (unaff_s8 == (code *******)0xffffffff) {\nLAB_00055b04:\n                FUN_0004b7e8(&local_b4);\nLAB_00055b1c:\n                local_dc = (code *******)((int)pppppppcVar24 + (int)local_dc);\n                if ((int)pppppppcVar25 <= (int)local_dc) goto code_r0x00055b38;\n                local_150 = (code *******)0x1;\n                goto LAB_000557e4;\n              }\n              if (unaff_s8 == (code *******)&SUB_fffffffe) {\n                local_150 = (code *******)0xc;\n                goto LAB_000557e4;\n              }\n              local_58 = unaff_s8;\n              if (((uint)param_1[7] & 0x8000000) == 0) {\n                if (pppppppcVar3 < (code *******)0x2) {\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055c08;\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                else {\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                if (pppppppcVar3 < (code *******)0x2) {\nLAB_00055c6c:\n                  pppppppcVar28 = pppppppcVar33;\n                  unaff_s4 = local_60;\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055548;\n                }\n                else {\n                  cVar23 = *(code *)(pppppppcVar38 + 0x16);\nLAB_00055c20:\n                  pppppppcVar28 = pppppppcVar33;\n                  if (-1 < (char)cVar23) goto LAB_00055c6c;\n                }\n                pppppppcVar31 = local_54;\n                pppppppcVar42 = local_60;\n                unaff_s4 = pppppppcVar42;\n                if (unaff_s8 < (code *******)0x3fffffff) {\n                  param_4 = (code *******)((int)((int)unaff_s8 + 1) * 4);\n                  unaff_s5 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                  if (unaff_s5 == (code *******)0x0) {\nLAB_00055b9c:\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    local_150 = (code *******)0xc;\n                    pppppppcVar33 = pppppppcVar28;\n                  }\n                  else {\n                    pppppppcVar29 = (code *******)&local_d0;\n                    if (pppppppcVar42[0x13] == (code ******)0x0) {\n                      local_cc = (code *******)0x0;\n                      local_c8 = pppppppcVar31;\n                      local_c0 = 0;\n                      local_bc = 0;\n                      local_b8 = 0;\n                      local_d0 = unaff_s5;\n                      local_c4 = unaff_s8;\n                      param_5 = (code *******)FUN_0005421c(&local_b4);\n                      (*(code *)PTR_free_00079c24)(local_b8);\n                      if (param_5 == (code *******)0x0) {\n                        param_4 = (code *******)*unaff_s5;\n                        if (param_4 == (code *******)0x0) {\nLAB_00055b70:\n                          (*(code *)PTR_free_00079c24)(unaff_s5);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          pppppppcVar33 = pppppppcVar28;\n                          goto LAB_00055b04;\n                        }\nLAB_00055528:\n                        (*(code *)PTR_free_00079c24)(local_50);\n                        pppppppcVar33 = pppppppcVar28;\n                        unaff_s4 = pppppppcVar42;\n                        local_58 = unaff_s8;\n                        local_54 = pppppppcVar31;\n                        local_50 = unaff_s5;\n                        goto LAB_00055548;\n                      }\nLAB_00055acc:\n                      param_4 = (code *******)0x0;\n                      pppppppcVar33 = pppppppcVar28;\n                      unaff_s4 = pppppppcVar42;\n                    }\n                    else {\n                      param_4 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                      if (param_4 == (code *******)0x0) goto LAB_00055b9c;\n                      unaff_s7 = (code *******)&local_d0;\n                      pcVar8 = (code *)(PTR_DAT_000799a4 + 0x421c);\n                      pcVar9 = (code *)(PTR_DAT_000799a4 + -0x6bc0);\n                      pppppppcVar33 = pppppppcVar28;\n                      while( true ) {\n                        pppppppcVar28 = (code *******)((int)unaff_s8 + 1);\n                        param_6 = (code *******)((int)pppppppcVar28 * 4);\n                        pppppppcVar30 = param_6;\n                        (*(code *)PTR_memset_00079b00)(param_4,0);\n                        local_c0 = 0;\n                        local_bc = 0;\n                        local_b8 = 0;\n                        pppppppcVar29 = unaff_s7;\n                        local_d0 = unaff_s5;\n                        local_cc = param_4;\n                        local_c8 = pppppppcVar31;\n                        local_c4 = unaff_s8;\n                        param_5 = (code *******)(*pcVar8)(&local_b4);\n                        (*(code *)PTR_free_00079c24)(local_b8);\n                        unaff_s4 = pppppppcVar28;\n                        if (param_5 != (code *******)0x0) break;\n                        if ((*unaff_s5 != (code ******)0x0) ||\n                           (param_6 = param_6 + -1, *param_4 != (code ******)0x0)) {\n                          pppppppcVar29 = unaff_s5;\n                          pppppppcVar30 = param_4;\n                          param_5 = (code *******)FUN_000520d0(pppppppcVar42);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          if (param_5 != (code *******)0x0) goto LAB_00055acc;\n                          goto LAB_00055528;\n                        }\n                        param_6 = (code *******)((int)local_50 + (int)param_6);\n                        do {\n                          while( true ) {\n                            unaff_s8 = (code *******)((int)unaff_s8 + -1);\n                            if ((int)unaff_s8 < 0) goto LAB_00055b70;\n                            pppppppcVar29 = (code *******)param_6[-1];\n                            if (pppppppcVar29 != (code *******)0x0) break;\n                            param_6 = param_6 + -1;\n                          }\n                          param_6 = param_6 + -1;\n                        } while (((uint)pppppppcVar29[0xd] & 0x8000000) == 0);\n                        pppppppcVar31 = (code *******)(*pcVar9)(&local_b4,pppppppcVar29,unaff_s8);\n                        pppppppcVar33 = pppppppcVar28;\n                      }\n                    }\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    (*(code *)PTR_free_00079c24)(param_4);\n                    local_150 = param_5;\n                    if (param_5 == (code *******)0x1) goto LAB_00055b04;\n                  }\n                }\n                else {\n                  local_150 = (code *******)0xc;\n                  pppppppcVar33 = pppppppcVar28;\n                }\n                goto LAB_000557e4;\n              }\n              if (pppppppcVar38[0x13] != (code ******)0x0) {\n                pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                pppppppcVar30 = unaff_s8;\n                local_54 = (code *******)FUN_00049440(&local_b4);\n                goto LAB_00055c6c;\n              }\nLAB_00055c08:\n              if ((((uint)param_1[7] & 0x8000000) == 0) && ((code *******)0x1 < pppppppcVar3)) {\n                cVar23 = *(code *)(pppppppcVar38 + 0x16);\n                goto LAB_00055c20;\n              }\nLAB_00055548:\n              if (pppppppcVar3 == (code *******)0x0) goto LAB_000557e4;\n              if (pppppppcVar3 < (code *******)0x2) {\n                *param_8 = (code ******)0x0;\n                param_8[1] = (code ******)local_58;\n                goto LAB_000555ac;\n              }\n              pppppppcVar29 = param_8 + 2;\n              do {\n                pppppppcVar29[1] = (code ******)0xffffffff;\n                *pppppppcVar29 = (code ******)0xffffffff;\n                pppppppcVar29 = pppppppcVar29 + 2;\n              } while (pppppppcVar29 != param_8 + (int)pppppppcVar3 * 2);\n              *param_8 = (code ******)0x0;\n              param_8[1] = (code ******)local_58;\n              if (((uint)param_1[7] & 0x8000000) != 0) {\nLAB_000555ac:\n                pppppppcVar33 = param_8;\n                do {\n                  pppppppcVar29 = (code *******)*pppppppcVar33;\n                  if (pppppppcVar29 != (code *******)0xffffffff) {\n                    if (local_68 != '\0') {\n                      pppppppcVar34 = local_94;\n                      if (pppppppcVar29 != local_98) {\n                        pppppppcVar34 = *(code ********)(local_a8 + (int)pppppppcVar29 * 4);\n                      }\n                      *pppppppcVar33 = (code ******)pppppppcVar34;\n                      pppppppcVar29 = local_94;\n                      if (local_98 != (code *******)pppppppcVar33[1]) {\n                        pppppppcVar29 = *(code ********)(local_a8 + (int)pppppppcVar33[1] * 4);\n                      }\n                      pppppppcVar33[1] = (code ******)pppppppcVar29;\n                    }\n                    *pppppppcVar33 = (code ******)((int)local_dc + (int)*pppppppcVar33);\n                    pppppppcVar29 = (code *******)((int)local_dc + (int)pppppppcVar33[1]);\n                    pppppppcVar33[1] = (code ******)pppppppcVar29;\n                  }\n                  pppppppcVar33 = pppppppcVar33 + 2;\n                } while (pppppppcVar33 != param_8 + (int)pppppppcVar3 * 2);\n                if (0 < local_118) {\n                  pppppppcVar33 = param_8 + (int)pppppppcVar3 * 2;\n                  do {\n                    *pppppppcVar33 = (code ******)0xffffffff;\n                    pppppppcVar33[1] = (code ******)0xffffffff;\n                    pppppppcVar33 = pppppppcVar33 + 2;\n                  } while (pppppppcVar33 != param_8 + (int)param_7 * 2);\n                }\n                pppppppcVar30 = local_dc;\n                pppppppcVar33 = param_8;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar38[0x21] != (code ******)0x0) {\n                  pppppppcVar30 = (code *******)((int)pppppppcVar3 + -1);\n                  pppppppcVar34 = (code *******)0x0;\n                  pppppppcVar3 = param_8;\n                  while( true ) {\n                    pppppppcVar29 = (code *******)((int)pppppppcVar34 * 4);\n                    if (pppppppcVar30 == pppppppcVar34) break;\n                    if (*(code ********)((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) !=\n                        pppppppcVar34) {\n                      pppppppcVar3[2] =\n                           param_8[(int)((int)*(code ********)\n                                               ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1)\n                                   * 2];\n                      pppppppcVar3[3] =\n                           param_8[((int)*(code ******)\n                                          ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1) * 2 +\n                                   1];\n                    }\n                    pppppppcVar34 = (code *******)((int)pppppppcVar34 + 1);\n                    pppppppcVar3 = pppppppcVar3 + 2;\n                  }\n                }\n                goto LAB_000557e4;\n              }\n              if ((char)*(code *)(pppppppcVar38 + 0x16) < '\0') {\n                local_168 = (uint)(0 < (int)pppppppcVar38[0x13]);\n              }\n              else {\n                local_168 = 0;\n              }\n              pppppppcVar29 = &local_b4;\n              pppppppcVar30 = pppppppcVar3;\n              pppppppcVar33 = param_8;\n              local_150 = (code *******)FUN_0004f4a0(param_1);\n              if (local_150 == (code *******)0x0) goto LAB_000555ac;\n            }\n          }\n          else if (local_90 < 0x3fffffff) {\n            local_50 = (code *******)(*(code *)PTR_malloc_00079b54)((local_90 + 1) * 4);\n            if (local_50 != (code *******)0x0) goto LAB_00055a40;\n            local_150 = (code *******)0xc;\n            param_6 = pppppppcVar36;\n          }\n          else {\n            local_150 = (code *******)0xc;\n            param_6 = pppppppcVar36;\n          }\n        }\n        else {\n          unaff_s5 = (code *******)((int)ppppppcVar35 * 8);\n          if (pppppppcVar36 < (code *******)0xccccccd) {\n            unaff_s4 = (code *******)(*(code *)PTR_malloc_00079b54)((int)ppppppcVar35 * 0x28);\n            local_40 = unaff_s4;\n            local_30 = (*(code *)PTR_malloc_00079b54)(unaff_s5);\n            if ((unaff_s4 != (code *******)0x0) && (local_30 != 0)) goto LAB_000559f0;\n          }\n          local_150 = (code *******)0xc;\n          param_6 = pppppppcVar36;\n        }\nLAB_000557e4:\n        (*(code *)PTR_free_00079c24)(local_50);\n        param_1 = pppppppcVar30;\n        if (pppppppcVar38[0x13] != (code ******)0x0) {\n          FUN_0004b7e8(&local_b4);\n          (*(code *)PTR_free_00079c24)(local_30);\n          (*(code *)PTR_free_00079c24)(local_40);\n          param_1 = pppppppcVar30;\n        }\n        FUN_0004b2bc(&local_b4);\n        pppppppcStack_1a0 = param_4;\n        pppppppcStack_19c = pppppppcVar31;\n      }\n    }\n  }\n  if (local_2c == *(code ********)PTR___stack_chk_guard_00079c10) {\n    return local_150;\n  }\n  pcVar4 = FUN_00055e64;\n  pppppppcVar3 = local_2c;\n  puVar41 = PTR___stack_chk_fail_00079bd0;\n  (*(code *)PTR___stack_chk_fail_00079bd0)();\n  iStack_1a4 = **(int **)(puVar41 + 0x23dac);\n  pppppppcStack_20c = (code *******)0x0;\n  pppppppcVar3[3] = (code ******)pppppppcVar33;\n  pppppppcVar3[2] = (code ******)0x0;\n  pppppppcVar3[6] = (code ******)0x0;\n  *(byte *)(pppppppcVar3 + 7) = (byte)*(code *)(pppppppcVar3 + 7) & 9;\n  pppppppcVar34 = (code *******)*pppppppcVar3;\n  pppppppcStack_198 = param_5;\n  pppppppcStack_194 = param_6;\n  pppppppcStack_190 = unaff_s4;\n  pppppppcStack_18c = unaff_s5;\n  pppppppcStack_188 = pppppppcVar38;\n  pppppppcStack_184 = unaff_s7;\n  pppppppcStack_180 = unaff_s8;\n  pcStack_17c = pcVar4;\n  if (pppppppcVar3[1] < (code ******)0xa0) {\n    pppppppcVar38 = (code *******)0xa0;\n    pppppppcVar31 = param_1;\n    pppppppcVar34 = (code *******)(**(code **)(puVar41 + 0x23cf8))(pppppppcVar34,0xa0);\n    if (pppppppcVar34 == (code *******)0x0) {\n      pppppppcVar29 = (code *******)0xc;\n      goto LAB_00056cfc;\n    }\n    pppppppcVar3[1] = (code ******)0xa0;\n    *pppppppcVar3 = (code ******)pppppppcVar34;\n  }\n  pppppppcVar3[2] = (code ******)0xa0;\n  pppppppcVar31 = (code *******)0xa0;\n  pppppppcVar38 = (code *******)0x0;\n  (**(code **)(puVar41 + 0x23c9c))(pppppppcVar34,0);\n  pppppppcVar34[0x10] = (code ******)0x1f;\n  if (param_1 < (code *******)0xaaaaaaa) {\n    pppppppcVar34[1] = (code ******)((int)param_1 + 1);\n    ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23cf0))(((int)param_1 + 1) * 8);\n    *pppppppcVar34 = ppppppcVar32;\n    if (param_1 == (code *******)0x0) {\n      pppppppcVar30 = (code *******)0x1;\n    }\n    else {\n      pppppppcVar30 = (code *******)0x1;\n      do {\n        pppppppcVar30 = (code *******)((int)pppppppcVar30 << 1);\n      } while (pppppppcVar30 <= param_1);\n    }\n    pppppppcVar38 = pppppppcVar30;\n    ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23b8c))(0xc,pppppppcVar30);\n    pppppppcVar34[8] = ppppppcVar32;\n    pppppppcVar34[0x11] = (code ******)((int)pppppppcVar30 + -1);\n    ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23d2c))();\n    pppppppcVar34[0x17] = ppppppcVar32;\n    pbVar17 = (byte *)(**(code **)(puVar41 + 0x23c2c))(0xe);\n    if ((((*pbVar17 & 0xdf) == 0x55) && ((pbVar17[1] & 0xdf) == 0x54)) &&\n       (pppppppcVar38 = (code *******)0x4, (pbVar17[2] & 0xdf) == 0x46)) {\n      iVar18 = 3;\n      if (pbVar17[3] == 0x2d) {\n        iVar18 = 4;\n      }\n      pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23754) + 0x71b4);\n      iVar18 = (**(code **)(puVar41 + 0x23dfc))(pbVar17 + iVar18,pppppppcVar38);\n      if (iVar18 == 0) {\n        *(byte *)(pppppppcVar34 + 0x16) = (byte)*(code *)(pppppppcVar34 + 0x16) & 0xdf | 0x20;\n      }\n    }\n    *(byte *)(pppppppcVar34 + 0x16) = (byte)*(code *)(pppppppcVar34 + 0x16) & 0xef;\n    if (1 < (int)pppppppcVar34[0x17]) {\n      if (((uint)pppppppcVar34[0x16] & 0x20000000) == 0) {\n        pppppppcVar38 = (code *******)0x1;\n        ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23b8c))(0x20,1);\n        pppppppcVar34[0xf] = ppppppcVar32;\n        if (ppppppcVar32 == (code ******)0x0) goto LAB_00056e5c;\n        iVar18 = 0;\n        do {\n          uVar16 = iVar18 << 3;\n          uVar7 = 0;\n          do {\n            uVar19 = (**(code **)(puVar41 + 0x23c88))(uVar16);\n            if (uVar19 != 0xffffffff) {\n              pppppppcVar38 = *(code ********)((int)pppppppcVar34[0xf] + iVar18);\n              *(uint *)((int)pppppppcVar34[0xf] + iVar18) =\n                   (uint)pppppppcVar38 | 1 << (uVar7 & 0x1f);\n            }\n            if (((uVar16 & 0xffffff80) == 0) && (uVar19 != uVar16)) {\n              *(byte *)(pppppppcVar34 + 0x16) = (byte)*(code *)(pppppppcVar34 + 0x16) & 0xef | 0x10;\n            }\n            uVar7 = uVar7 + 1;\n            uVar16 = uVar16 + 1;\n          } while (uVar7 != 0x20);\n          iVar18 = iVar18 + 4;\n        } while (iVar18 != 0x20);\n      }\n      else {\n        pppppppcVar34[0xf] = (code ******)(*(int *)(puVar41 + 0x23754) + 0x6ee4);\n      }\n    }\n    if ((*pppppppcVar34 == (code ******)0x0) || (pppppppcVar34[8] == (code ******)0x0))\n    goto LAB_00056e5c;\n    pppppppcStack_20c = (code *******)0x0;\n    if (*(int *)(puVar41 + 0x23c78) == 0) {\nLAB_00056054:\n      ppppppcVar32 = pppppppcVar3[5];\n      uVar16 = (uint)pppppppcVar33 & 0x400000;\n      bVar1 = uVar16 != 0;\n      pppppppcVar31 = (code *******)0x4c;\n      pppppppcVar38 = (code *******)0x0;\n      (**(code **)(puVar41 + 0x23c9c))(apppppppcStack_1f4,0);\n      cStack_1ad = ppppppcVar32 != (code ******)0x0 || bVar1;\n      ppppppcStack_1a8 = pppppppcVar34[0x17];\n      bStack_1af = (byte)((uint)((int)pppppppcVar34[0x16] << 2) >> 0x1f);\n      bStack_1ae = (byte)((uint)((int)pppppppcVar34[0x16] << 3) >> 0x1f);\n      pppppppcStack_1f8 = pppppppcVar29;\n      pppppppcStack_1cc = param_1;\n      pppppppcStack_1c8 = param_1;\n      pppppppcStack_1c4 = param_1;\n      pppppppcStack_1c0 = param_1;\n      ppppppcStack_1b8 = ppppppcVar32;\n      uStack_1b0 = bVar1;\n      if (0 < (int)param_1) {\n        pppppppcVar38 = (code *******)((int)param_1 + 1);\n        pppppppcVar30 = (code *******)FUN_00046d2c(&pppppppcStack_1f8,pppppppcVar38);\n        if (pppppppcVar30 == (code *******)0x0) goto LAB_000560cc;\n        goto LAB_00056168;\n      }\nLAB_000560cc:\n      if (cStack_1ad != '\0') {\n        pppppppcVar29 = apppppppcStack_1f4[0];\n      }\n      apppppppcStack_1f4[0] = pppppppcVar29;\n      if (uVar16 == 0) {\n        if ((int)pppppppcVar34[0x17] < 2) {\n          if (ppppppcVar32 != (code ******)0x0) {\n            FUN_00045dc8();\n          }\n        }\n        else {\n          FUN_00047cb0(&pppppppcStack_1f8);\n        }\n      }\n      else {\n        if (1 < (int)pppppppcVar34[0x17]) {\n          iVar18 = *(int *)(puVar41 + 0x23abc);\n          do {\n            pppppppcVar30 = (code *******)FUN_00048714(&pppppppcStack_1f8);\n            if (pppppppcVar30 != (code *******)0x0) break;\n            if (((int)param_1 <= iStack_1d8) ||\n               (pppppppcVar38 = (code *******)(iStack_1d4 << 1),\n               (int)pppppppcVar34[0x17] + iStack_1dc < iStack_1d4)) goto LAB_000563d0;\n            pppppppcVar30 =\n                 (code *******)(*(code *)(iVar18 + 0x6d2c))(&pppppppcStack_1f8,pppppppcVar38);\n          } while (pppppppcVar30 == (code *******)0x0);\n          goto LAB_00056168;\n        }\n        FUN_00047be4(&pppppppcStack_1f8);\n      }\nLAB_000563d0:\n      pppppppcStack_20c = (code *******)0x0;\n      pppppppcVar3[6] = (code ******)0x0;\n      ppppppcVar32 = *pppppppcVar3;\n      ppppppcVar32[0x20] = (code *****)pppppppcVar33;\n      FUN_00049e40(&ppppppcStack_204,&pppppppcStack_1f8,(uint)pppppppcVar33 | 0x800000);\n      pppppppcVar38 = pppppppcVar3;\n      pppppppcVar29 =\n           (code *******)\n           FUN_00051868(&pppppppcStack_1f8,pppppppcVar3,&ppppppcStack_204,pppppppcVar33,0,\n                        &pppppppcStack_20c);\n      if (pppppppcStack_20c == (code *******)0x0) {\n        pppppppcVar31 = (code *******)0x0;\n        pppppppcVar38 = (code *******)0x0;\n        pppppppcVar33 = (code *******)FUN_000470f0(ppppppcVar32,0,0,2);\n        pppppppcVar30 = pppppppcVar33;\n        if (pppppppcVar29 != (code *******)0x0) {\nLAB_000564b0:\n          pppppppcVar31 = pppppppcVar33;\n          pppppppcVar30 = (code *******)FUN_000470f0(ppppppcVar32,pppppppcVar29,pppppppcVar33,0x10);\n          pppppppcVar38 = pppppppcVar29;\n        }\n        if ((pppppppcVar33 == (code *******)0x0) ||\n           (pcVar4 = *(code **)(puVar41 + 0x23cf0), pppppppcVar30 == (code *******)0x0)) {\n          pppppppcStack_20c = (code *******)0xc;\n          goto LAB_000566f4;\n        }\n        pppppppcVar34[0xd] = (code ******)pppppppcVar30;\n        pppppppcVar29 = (code *******)*pppppppcVar3;\n        ppppppcVar39 = pppppppcVar29[1];\n        iVar18 = (int)ppppppcVar39 << 2;\n        ppppppcVar32 = (code ******)(*pcVar4)(iVar18);\n        pppppppcVar29[3] = ppppppcVar32;\n        ppppppcVar35 = (code ******)(**(code **)(puVar41 + 0x23cf0))(iVar18);\n        pppppppcVar29[4] = ppppppcVar35;\n        iVar18 = (int)ppppppcVar39 * 0xc;\n        ppppppcVar39 = (code ******)(**(code **)(puVar41 + 0x23cf0))(iVar18);\n        pppppppcVar29[5] = ppppppcVar39;\n        ppppppcVar20 = (code ******)(**(code **)(puVar41 + 0x23cf0))(iVar18);\n        pppppppcVar29[6] = ppppppcVar20;\n        if (ppppppcVar32 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else if (ppppppcVar35 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else if (ppppppcVar39 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else if (ppppppcVar20 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else {\n          ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23cf0))((int)pppppppcVar3[6] << 2);\n          pppppppcVar29[0x21] = ppppppcVar32;\n          if (ppppppcVar32 != (code ******)0x0) {\n            ppppppcVar32 = (code ******)0x0;\n            if (pppppppcVar3[6] != (code ******)0x0) {\n              do {\n                pppppppcVar29[0x21][(int)ppppppcVar32] = (code *****)ppppppcVar32;\n                ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n              } while (ppppppcVar32 < pppppppcVar3[6]);\n            }\n            FUN_00046050(pppppppcVar29[0xd],*(int *)(puVar41 + 0x23abc) + 0x60e8,pppppppcVar29);\n            ppppppcVar32 = pppppppcVar3[6];\n            if (ppppppcVar32 == (code ******)0x0) {\nLAB_00056704:\n              (**(code **)(puVar41 + 0x23dc0))(pppppppcVar29[0x21]);\n              pppppppcVar29[0x21] = (code ******)0x0;\n            }\n            else {\n              ppppppcVar35 = pppppppcVar29[0x21];\n              if (*ppppppcVar35 == (code *****)0x0) {\n                ppppppcVar39 = (code ******)0x0;\n                do {\n                  ppppppcVar35 = ppppppcVar35 + 1;\n                  ppppppcVar39 = (code ******)((int)ppppppcVar39 + 1);\n                  if (ppppppcVar32 == ppppppcVar39) {\n                    if (ppppppcVar32 == ppppppcVar39) goto LAB_00056704;\n                    break;\n                  }\n                } while ((code ******)*ppppppcVar35 == ppppppcVar39);\n              }\n            }\n          }\n          pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23abc) + 0x73a4);\n          pppppppcVar30 = (code *******)FUN_00045fb4(pppppppcVar29[0xd],pppppppcVar38,pppppppcVar3);\n          pppppppcVar31 = pppppppcVar29;\n          if (pppppppcVar30 == (code *******)0x0) {\n            pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23b40) + -0x5be4);\n            pppppppcVar30 = (code *******)FUN_00045fb4(pppppppcVar29[0xd],pppppppcVar38);\n            if (pppppppcVar30 == (code *******)0x0) {\n              FUN_00046050(pppppppcVar29[0xd],*(int *)(puVar41 + 0x23abc) + 0x61b4);\n              pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23b40) + -0x4614);\n              pppppppcVar30 = (code *******)FUN_00046050(pppppppcVar29[0xd],pppppppcVar38);\n              if (pppppppcVar30 == (code *******)0x0) {\n                uVar7 = 0;\n                iVar18 = *(int *)(puVar41 + 0x23b40);\n                pppppppcVar33 = (code *******)0x0;\nLAB_00056744:\n                if ((code *******)pppppppcVar29[2] != pppppppcVar33) {\nLAB_00056750:\n                  if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                    pppppppcVar38 = pppppppcVar29;\n                    pppppppcVar31 = pppppppcVar33;\n                    pppppppcVar30 =\n                         (code *******)\n                         (*(code *)(iVar18 + -0x561c))\n                                   (&ppppppcStack_204,pppppppcVar29,pppppppcVar33,1);\n                    if (pppppppcVar30 != (code *******)0x0) goto LAB_00056168;\n                    if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                      (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                      uVar7 = 1;\n                    }\n                  }\n                  pppppppcVar33 = (code *******)((int)pppppppcVar33 + 1);\n                  goto LAB_00056744;\n                }\n                if (uVar7 != 0) {\n                  uVar7 = 0;\n                  pppppppcVar33 = (code *******)0x0;\n                  goto LAB_00056750;\n                }\n                if (((((uint)pppppppcVar3[7] & 0x8000000) == 0) &&\n                    (pppppppcVar3[6] != (code ******)0x0)) &&\n                   ((char)*(code *)(pppppppcVar29 + 0x16) < '\0')) {\n                  ppppppcVar32 = pppppppcVar29[2];\n                }\n                else {\n                  if (pppppppcVar29[0x13] == (code ******)0x0) goto LAB_000568f0;\n                  ppppppcVar32 = pppppppcVar29[2];\n                }\n                ppppppcVar35 = (code ******)\n                               (**(code **)(puVar41 + 0x23cf0))((int)ppppppcVar32 * 0xc);\n                pppppppcVar29[7] = ppppppcVar35;\n                if (ppppppcVar35 == (code ******)0x0) {\n                  pppppppcVar30 = (code *******)0xc;\n                  goto LAB_00056168;\n                }\n                if (ppppppcVar32 != (code ******)0x0) {\n                  iVar18 = 0;\n                  ppppppcVar32 = (code ******)0x0;\n                  do {\n                    puVar21 = (undefined1 *)((int)pppppppcVar29[7] + iVar18);\n                    *puVar21 = 0;\n                    puVar21[1] = 0;\n                    puVar21[2] = 0;\n                    puVar21[3] = 0;\n                    puVar21[4] = 0;\n                    puVar21[5] = 0;\n                    puVar21[6] = 0;\n                    puVar21[7] = 0;\n                    puVar21[8] = 0;\n                    puVar21[9] = 0;\n                    puVar21[10] = 0;\n                    puVar21[0xb] = 0;\n                    ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                    iVar18 = iVar18 + 0xc;\n                  } while (ppppppcVar32 < pppppppcVar29[2]);\n                  iVar18 = *(int *)(puVar41 + 0x23abc);\n                  if (pppppppcVar29[2] != (code ******)0x0) {\n                    iVar43 = 0;\n                    pppppppcStack_218 = (code *******)0x0;\n                    do {\n                      piVar5 = *(int **)((int)pppppppcVar29[6] + iVar43 + 8);\n                      if (0 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4)) {\n                        iVar37 = 0;\n                        do {\n                          pppppppcVar38 = pppppppcStack_218;\n                          iVar22 = (*(code *)(iVar18 + 0x6e30))\n                                             (pppppppcVar29[7] + *piVar5 * 3,pppppppcStack_218);\n                          pppppppcVar30 = (code *******)0xc;\n                          if (iVar22 == 0) goto LAB_00056168;\n                          iVar37 = iVar37 + 1;\n                          piVar5 = piVar5 + 1;\n                        } while (iVar37 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4));\n                      }\n                      pppppppcStack_218 = (code *******)((int)pppppppcStack_218 + 1);\n                      iVar43 = iVar43 + 0xc;\n                    } while (pppppppcStack_218 < pppppppcVar29[2]);\n                  }\n                }\nLAB_000568f0:\n                pppppppcStack_20c = (code *******)0x0;\n                if (((((uint)pppppppcVar34[0x16] & 0x20000000) != 0) && (uVar16 == 0)) &&\n                   (pppppppcVar3[5] == (code ******)0x0)) {\n                  if (pppppppcVar34[2] != (code ******)0x0) {\n                    pppppppcVar31 = (code *******)(*(int *)(puVar41 + 0x23754) + 0x6e4c);\n                    if (*(byte *)(*pppppppcVar34 + 1) < 0xd) {\n                    \n                    \n                      pppppppcVar29 =\n                           (code *******)\n                           (*(code *)(puVar41 +\n                                     (int)(pppppppcVar31[*(byte *)(*pppppppcVar34 + 1)] + 0xadc7)))\n                                     ();\n                      return pppppppcVar29;\n                    }\n                    (**(code **)(puVar41 + 0x23bc4))(0);\n                    if (uVar7 != 0) {\n                      pppppppcVar31 = (code *******)&DAT_00000007;\n                      ppppppcVar32 = (code ******)0x0;\n                      do {\n                        ppppppcVar35 = *pppppppcVar34 + (int)ppppppcVar32 * 2;\n                        if (*(char *)(ppppppcVar35 + 1) == '\x01') {\n                          if (*(char *)ppppppcVar35 < '\0') {\n                            ppppppcVar35[1] = (code *****)((uint)ppppppcVar35[1] & 0xfffffbff);\n                          }\n                        }\n                        else if (*(char *)(ppppppcVar35 + 1) == '\x05') {\n                          *(char *)(ppppppcVar35 + 1) = '\a';\n                        }\n                        ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                      } while (ppppppcVar32 < pppppppcVar34[2]);\n                    }\n                  }\n                  pppppppcVar34[0x17] = (code ******)0x1;\n                  if (0 < (int)pppppppcVar34[0x13]) {\n                    uVar7 = 1;\n                  }\n                  *(byte *)(pppppppcVar34 + 0x16) =\n                       (byte)*(code *)(pppppppcVar34 + 0x16) & 0x9f | (byte)((uVar7 & 1) << 6);\n                }\n                ppppppcVar32 = (code ******)pppppppcVar34[0xd][3][7];\n                pppppppcVar34[0x12] = ppppppcVar32;\n                pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppppcVar32 * 3);\n                pppppppcVar33 = (code *******)FUN_000483e8(&ppppppcStack_204,pppppppcVar38);\n                pppppppcVar29 = pppppppcVar33;\n                pppppppcStack_208 = pppppppcVar33;\n                if (pppppppcVar33 == (code *******)0x0) {\n                  if ((0 < (int)pppppppcVar34[0x13]) && (0 < iStack_200)) {\n                    iVar18 = *(int *)(puVar41 + 0x23abc);\n                    iVar43 = *(int *)(puVar41 + 0x23abc);\n                    pppppppcVar29 = (code *******)0x0;\n                    do {\n                      pppppppcVar31 =\n                           (code *******)(*pppppppcVar34 + piStack_1fc[(int)pppppppcVar29] * 2);\n                      if (*(code *)(pppppppcVar31 + 1) == (code)0x4) {\n                        iVar37 = 0;\n                        piVar5 = piStack_1fc;\n                        if (iStack_200 < 1) {\nLAB_00056b8c:\n                          if (iStack_200 != iVar37) {\n                            ppppcVar40 = *pppppppcVar34[5][piStack_1fc[(int)pppppppcVar29] * 3 + 2];\n                            iVar37 = (*(code *)(iVar18 + 0x5ea8))(&ppppppcStack_204,ppppcVar40);\n                            if (iVar37 == 0) {\n                              pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppcVar40 * 3)\n                              ;\n                              pppppppcVar29 =\n                                   (code *******)\n                                   (*(code *)(iVar43 + 0x7f1c))(&ppppppcStack_204,pppppppcVar38);\n                              if (pppppppcVar29 != (code *******)0x0) goto LAB_00056cb8;\n                            }\n                          }\n                        }\n                        else {\n                          do {\n                            ppppppcVar32 = *pppppppcVar34 + *piVar5 * 2;\n                            if ((*(char *)(ppppppcVar32 + 1) == '\t') &&\n                               ((code ******)*ppppppcVar32 == *pppppppcVar31)) goto LAB_00056b8c;\n                            iVar37 = iVar37 + 1;\n                            piVar5 = piVar5 + 1;\n                          } while (iStack_200 != iVar37);\n                        }\n                      }\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1);\n                    } while ((int)pppppppcVar29 < iStack_200);\n                  }\n                  pppppppcVar31 = &ppppppcStack_204;\n                  pppppppcVar38 = pppppppcVar34;\n                  ppppppcVar32 = (code ******)\n                                 FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,0);\n                  pppppppcVar34[9] = ppppppcVar32;\n                  pppppppcVar29 = pppppppcStack_208;\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    if (((uint)ppppppcVar32[0xd] & 0x1000000) == 0) {\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar34[10] = ppppppcVar32;\n                    }\n                    else {\n                      pppppppcVar31 = &ppppppcStack_204;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,1);\n                      pppppppcVar34[10] = ppppppcVar32;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,2);\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar38 = pppppppcVar34;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,6);\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar29 = pppppppcStack_208;\n                      if (((pppppppcVar34[10] == (code ******)0x0) ||\n                          (pppppppcVar34[0xb] == (code ******)0x0)) ||\n                         (ppppppcVar32 == (code ******)0x0)) goto LAB_00056cb8;\n                    }\n                    (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                    pppppppcVar29 = pppppppcVar33;\n                  }\n                }\nLAB_00056cb8:\n                pppppppcStack_20c = pppppppcVar29;\n                FUN_0004b234(pppppppcVar3);\n                FUN_0004b2bc(&pppppppcStack_1f8);\n                pppppppcVar29 = pppppppcStack_20c;\n                if (pppppppcStack_20c != (code *******)0x0) {\n                  if (*(int *)(puVar41 + 0x23c78) != 0) {\n                    (**(code **)(puVar41 + 0x23df0))(pppppppcVar34 + 0x22);\n                  }\n                  FUN_0004b338(pppppppcVar34);\n                  *pppppppcVar3 = (code ******)0x0;\n                  pppppppcVar3[1] = (code ******)0x0;\n                  pppppppcVar29 = pppppppcStack_20c;\n                }\n                goto LAB_00056cfc;\n              }\n            }\n          }\n        }\n      }\n      else {\n        pppppppcVar31 = (code *******)0x0;\n        if (pppppppcVar29 != (code *******)0x0) {\n          pppppppcVar33 = (code *******)FUN_000470f0(ppppppcVar32,0,0,2);\n          goto LAB_000564b0;\n        }\nLAB_000566f4:\n        pppppppcVar34[0xd] = (code ******)0x0;\n        pppppppcVar30 = pppppppcStack_20c;\n      }\nLAB_00056168:\n      pppppppcStack_20c = pppppppcVar30;\n      FUN_0004b234(pppppppcVar3);\n      FUN_0004b2bc(&pppppppcStack_1f8);\n      if (*(int *)(puVar41 + 0x23c78) != 0) {\n        (**(code **)(puVar41 + 0x23df0))(pppppppcVar34 + 0x22);\n      }\n      FUN_0004b338(pppppppcVar34);\n      *pppppppcVar3 = (code ******)0x0;\n      pppppppcVar3[1] = (code ******)0x0;\n      pppppppcVar29 = pppppppcStack_20c;\n      goto LAB_00056cfc;\n    }\n    pppppppcVar38 = (code *******)0x0;\n    iVar18 = (**(code **)(puVar41 + 0x23d98))(pppppppcVar34 + 0x22,0);\n    if (iVar18 != 0) goto LAB_00056e5c;\n    if (pppppppcStack_20c == (code *******)0x0) goto LAB_00056054;\n  }\n  else {\nLAB_00056e5c:\n    pppppppcStack_20c = (code *******)0xc;\n  }\n  FUN_0004b338(pppppppcVar34);\n  *pppppppcVar3 = (code ******)0x0;\n  pppppppcVar3[1] = (code ******)0x0;\n  pppppppcVar29 = pppppppcStack_20c;\nLAB_00056cfc:\n  if (iStack_1a4 == **(int **)(puVar41 + 0x23dac)) {\n    return pppppppcVar29;\n  }\n  pcVar4 = *(code **)(puVar41 + 0x23d6c);\n  iVar18 = iStack_1a4;\n  (*pcVar4)();\n  *(byte *)(pppppppcVar31 + 7) =\n       (byte)*(code *)(pppppppcVar31 + 7) & 0xf6 |\n       (byte)(((uint)(**(int **)(pcVar4 + 0x22b18) << 6) >> 0x1f) << 3) | 1;\n  iVar18 = FUN_00055e64(pppppppcVar31,iVar18,pppppppcVar38);\n  if (iVar18 == 0) {\n    pppppppcVar29 = (code *******)0x0;\n  }\n  else {\n    pppppppcVar29 =\n         (code *******)\n         (**(code **)(pcVar4 + 0x22d48))\n                   (0,*(int *)(pcVar4 + 0x22728) + 0x6f48 +\n                      *(int *)(iVar18 * 4 + *(int *)(pcVar4 + 0x22728) + 0x6f04),5);\n  }\n  return pppppppcVar29;\ncode_r0x00055b38:\n  if ((int)pppppppcVar26 < (int)local_dc) goto LAB_000557a8;\n  goto LAB_00055b44;\nLAB_000557a8:\n  local_150 = (code *******)0x1;\n  goto LAB_000557e4;\nLAB_00055914:\n  local_150 = (code *******)0xc;\n  param_4 = pppppppcVar14;\n  goto LAB_000557e4;\n}" ({ "{") (declaration "bool bVar1;" (primitive_type "bool") (identifier "bVar1") (; ";")) (declaration "code *******pppppppcVar2;" (type_identifier "code") (pointer_declarator "*******pppppppcVar2" (* "*") (pointer_declarator "******pppppppcVar2" (* "*") (pointer_declarator "*****pppppppcVar2" (* "*") (pointer_declarator "****pppppppcVar2" (* "*") (pointer_declarator "***pppppppcVar2" (* "*") (pointer_declarator "**pppppppcVar2" (* "*") (pointer_declarator "*pppppppcVar2" (* "*") (identifier "pppppppcVar2")))))))) (; ";")) (declaration "code *******pppppppcVar3;" (type_identifier "code") (pointer_declarator "*******pppppppcVar3" (* "*") (pointer_declarator "******pppppppcVar3" (* "*") (pointer_declarator "*****pppppppcVar3" (* "*") (pointer_declarator "****pppppppcVar3" (* "*") (pointer_declarator "***pppppppcVar3" (* "*") (pointer_declarator "**pppppppcVar3" (* "*") (pointer_declarator "*pppppppcVar3" (* "*") (identifier "pppppppcVar3")))))))) (; ";")) (declaration "code *pcVar4;" (type_identifier "code") (pointer_declarator "*pcVar4" (* "*") (identifier "pcVar4")) (; ";")) (declaration "int *piVar5;" (primitive_type "int") (pointer_declarator "*piVar5" (* "*") (identifier "piVar5")) (; ";")) (declaration "code *******pppppppcVar6;" (type_identifier "code") (pointer_declarator "*******pppppppcVar6" (* "*") (pointer_declarator "******pppppppcVar6" (* "*") (pointer_declarator "*****pppppppcVar6" (* "*") (pointer_declarator "****pppppppcVar6" (* "*") (pointer_declarator "***pppppppcVar6" (* "*") (pointer_declarator "**pppppppcVar6" (* "*") (pointer_declarator "*pppppppcVar6" (* "*") (identifier "pppppppcVar6")))))))) (; ";")) (declaration "uint uVar7;" (type_identifier "uint") (identifier "uVar7") (; ";")) (declaration "code *pcVar8;" (type_identifier "code") (pointer_declarator "*pcVar8" (* "*") (identifier "pcVar8")) (; ";")) (declaration "code *pcVar9;" (type_identifier "code") (pointer_declarator "*pcVar9" (* "*") (identifier "pcVar9")) (; ";")) (declaration "code *pcVar10;" (type_identifier "code") (pointer_declarator "*pcVar10" (* "*") (identifier "pcVar10")) (; ";")) (declaration "code *pcVar11;" (type_identifier "code") (pointer_declarator "*pcVar11" (* "*") (identifier "pcVar11")) (; ";")) (declaration "code *pcVar12;" (type_identifier "code") (pointer_declarator "*pcVar12" (* "*") (identifier "pcVar12")) (; ";")) (declaration "code *****pppppcVar13;" (type_identifier "code") (pointer_declarator "*****pppppcVar13" (* "*") (pointer_declarator "****pppppcVar13" (* "*") (pointer_declarator "***pppppcVar13" (* "*") (pointer_declarator "**pppppcVar13" (* "*") (pointer_declarator "*pppppcVar13" (* "*") (identifier "pppppcVar13")))))) (; ";")) (declaration "code *******pppppppcVar14;" (type_identifier "code") (pointer_declarator "*******pppppppcVar14" (* "*") (pointer_declarator "******pppppppcVar14" (* "*") (pointer_declarator "*****pppppppcVar14" (* "*") (pointer_declarator "****pppppppcVar14" (* "*") (pointer_declarator "***pppppppcVar14" (* "*") (pointer_declarator "**pppppppcVar14" (* "*") (pointer_declarator "*pppppppcVar14" (* "*") (identifier "pppppppcVar14")))))))) (; ";")) (declaration "code *******pppppppcVar15;" (type_identifier "code") (pointer_declarator "*******pppppppcVar15" (* "*") (pointer_declarator "******pppppppcVar15" (* "*") (pointer_declarator "*****pppppppcVar15" (* "*") (pointer_declarator "****pppppppcVar15" (* "*") (pointer_declarator "***pppppppcVar15" (* "*") (pointer_declarator "**pppppppcVar15" (* "*") (pointer_declarator "*pppppppcVar15" (* "*") (identifier "pppppppcVar15")))))))) (; ";")) (declaration "uint uVar16;" (type_identifier "uint") (identifier "uVar16") (; ";")) (declaration "code cVar23;" (type_identifier "code") (identifier "cVar23") (; ";")) (declaration "byte *pbVar17;" (type_identifier "byte") (pointer_declarator "*pbVar17" (* "*") (identifier "pbVar17")) (; ";")) (declaration "int iVar18;" (primitive_type "int") (identifier "iVar18") (; ";")) (declaration "uint uVar19;" (type_identifier "uint") (identifier "uVar19") (; ";")) (declaration "code ******ppppppcVar20;" (type_identifier "code") (pointer_declarator "******ppppppcVar20" (* "*") (pointer_declarator "*****ppppppcVar20" (* "*") (pointer_declarator "****ppppppcVar20" (* "*") (pointer_declarator "***ppppppcVar20" (* "*") (pointer_declarator "**ppppppcVar20" (* "*") (pointer_declarator "*ppppppcVar20" (* "*") (identifier "ppppppcVar20"))))))) (; ";")) (declaration "undefined1 *puVar21;" (type_identifier "undefined1") (pointer_declarator "*puVar21" (* "*") (identifier "puVar21")) (; ";")) (declaration "int iVar22;" (primitive_type "int") (identifier "iVar22") (; ";")) (declaration "code *******pppppppcVar24;" (type_identifier "code") (pointer_declarator "*******pppppppcVar24" (* "*") (pointer_declarator "******pppppppcVar24" (* "*") (pointer_declarator "*****pppppppcVar24" (* "*") (pointer_declarator "****pppppppcVar24" (* "*") (pointer_declarator "***pppppppcVar24" (* "*") (pointer_declarator "**pppppppcVar24" (* "*") (pointer_declarator "*pppppppcVar24" (* "*") (identifier "pppppppcVar24")))))))) (; ";")) (declaration "code *******pppppppcVar25;" (type_identifier "code") (pointer_declarator "*******pppppppcVar25" (* "*") (pointer_declarator "******pppppppcVar25" (* "*") (pointer_declarator "*****pppppppcVar25" (* "*") (pointer_declarator "****pppppppcVar25" (* "*") (pointer_declarator "***pppppppcVar25" (* "*") (pointer_declarator "**pppppppcVar25" (* "*") (pointer_declarator "*pppppppcVar25" (* "*") (identifier "pppppppcVar25")))))))) (; ";")) (declaration "code *******pppppppcVar26;" (type_identifier "code") (pointer_declarator "*******pppppppcVar26" (* "*") (pointer_declarator "******pppppppcVar26" (* "*") (pointer_declarator "*****pppppppcVar26" (* "*") (pointer_declarator "****pppppppcVar26" (* "*") (pointer_declarator "***pppppppcVar26" (* "*") (pointer_declarator "**pppppppcVar26" (* "*") (pointer_declarator "*pppppppcVar26" (* "*") (identifier "pppppppcVar26")))))))) (; ";")) (declaration "uint uVar27;" (type_identifier "uint") (identifier "uVar27") (; ";")) (declaration "code *******pppppppcVar28;" (type_identifier "code") (pointer_declarator "*******pppppppcVar28" (* "*") (pointer_declarator "******pppppppcVar28" (* "*") (pointer_declarator "*****pppppppcVar28" (* "*") (pointer_declarator "****pppppppcVar28" (* "*") (pointer_declarator "***pppppppcVar28" (* "*") (pointer_declarator "**pppppppcVar28" (* "*") (pointer_declarator "*pppppppcVar28" (* "*") (identifier "pppppppcVar28")))))))) (; ";")) (declaration "code *******pppppppcVar29;" (type_identifier "code") (pointer_declarator "*******pppppppcVar29" (* "*") (pointer_declarator "******pppppppcVar29" (* "*") (pointer_declarator "*****pppppppcVar29" (* "*") (pointer_declarator "****pppppppcVar29" (* "*") (pointer_declarator "***pppppppcVar29" (* "*") (pointer_declarator "**pppppppcVar29" (* "*") (pointer_declarator "*pppppppcVar29" (* "*") (identifier "pppppppcVar29")))))))) (; ";")) (declaration "code *******pppppppcVar30;" (type_identifier "code") (pointer_declarator "*******pppppppcVar30" (* "*") (pointer_declarator "******pppppppcVar30" (* "*") (pointer_declarator "*****pppppppcVar30" (* "*") (pointer_declarator "****pppppppcVar30" (* "*") (pointer_declarator "***pppppppcVar30" (* "*") (pointer_declarator "**pppppppcVar30" (* "*") (pointer_declarator "*pppppppcVar30" (* "*") (identifier "pppppppcVar30")))))))) (; ";")) (declaration "code *******pppppppcVar31;" (type_identifier "code") (pointer_declarator "*******pppppppcVar31" (* "*") (pointer_declarator "******pppppppcVar31" (* "*") (pointer_declarator "*****pppppppcVar31" (* "*") (pointer_declarator "****pppppppcVar31" (* "*") (pointer_declarator "***pppppppcVar31" (* "*") (pointer_declarator "**pppppppcVar31" (* "*") (pointer_declarator "*pppppppcVar31" (* "*") (identifier "pppppppcVar31")))))))) (; ";")) (declaration "code ******ppppppcVar32;" (type_identifier "code") (pointer_declarator "******ppppppcVar32" (* "*") (pointer_declarator "*****ppppppcVar32" (* "*") (pointer_declarator "****ppppppcVar32" (* "*") (pointer_declarator "***ppppppcVar32" (* "*") (pointer_declarator "**ppppppcVar32" (* "*") (pointer_declarator "*ppppppcVar32" (* "*") (identifier "ppppppcVar32"))))))) (; ";")) (declaration "code *******pppppppcVar33;" (type_identifier "code") (pointer_declarator "*******pppppppcVar33" (* "*") (pointer_declarator "******pppppppcVar33" (* "*") (pointer_declarator "*****pppppppcVar33" (* "*") (pointer_declarator "****pppppppcVar33" (* "*") (pointer_declarator "***pppppppcVar33" (* "*") (pointer_declarator "**pppppppcVar33" (* "*") (pointer_declarator "*pppppppcVar33" (* "*") (identifier "pppppppcVar33")))))))) (; ";")) (declaration "code *******pppppppcVar34;" (type_identifier "code") (pointer_declarator "*******pppppppcVar34" (* "*") (pointer_declarator "******pppppppcVar34" (* "*") (pointer_declarator "*****pppppppcVar34" (* "*") (pointer_declarator "****pppppppcVar34" (* "*") (pointer_declarator "***pppppppcVar34" (* "*") (pointer_declarator "**pppppppcVar34" (* "*") (pointer_declarator "*pppppppcVar34" (* "*") (identifier "pppppppcVar34")))))))) (; ";")) (declaration "code ******ppppppcVar35;" (type_identifier "code") (pointer_declarator "******ppppppcVar35" (* "*") (pointer_declarator "*****ppppppcVar35" (* "*") (pointer_declarator "****ppppppcVar35" (* "*") (pointer_declarator "***ppppppcVar35" (* "*") (pointer_declarator "**ppppppcVar35" (* "*") (pointer_declarator "*ppppppcVar35" (* "*") (identifier "ppppppcVar35"))))))) (; ";")) (declaration "code *******pppppppcVar36;" (type_identifier "code") (pointer_declarator "*******pppppppcVar36" (* "*") (pointer_declarator "******pppppppcVar36" (* "*") (pointer_declarator "*****pppppppcVar36" (* "*") (pointer_declarator "****pppppppcVar36" (* "*") (pointer_declarator "***pppppppcVar36" (* "*") (pointer_declarator "**pppppppcVar36" (* "*") (pointer_declarator "*pppppppcVar36" (* "*") (identifier "pppppppcVar36")))))))) (; ";")) (declaration "code *******unaff_s4;" (type_identifier "code") (pointer_declarator "*******unaff_s4" (* "*") (pointer_declarator "******unaff_s4" (* "*") (pointer_declarator "*****unaff_s4" (* "*") (pointer_declarator "****unaff_s4" (* "*") (pointer_declarator "***unaff_s4" (* "*") (pointer_declarator "**unaff_s4" (* "*") (pointer_declarator "*unaff_s4" (* "*") (identifier "unaff_s4")))))))) (; ";")) (declaration "int iVar37;" (primitive_type "int") (identifier "iVar37") (; ";")) (declaration "code *******unaff_s5;" (type_identifier "code") (pointer_declarator "*******unaff_s5" (* "*") (pointer_declarator "******unaff_s5" (* "*") (pointer_declarator "*****unaff_s5" (* "*") (pointer_declarator "****unaff_s5" (* "*") (pointer_declarator "***unaff_s5" (* "*") (pointer_declarator "**unaff_s5" (* "*") (pointer_declarator "*unaff_s5" (* "*") (identifier "unaff_s5")))))))) (; ";")) (declaration "code *******pppppppcVar38;" (type_identifier "code") (pointer_declarator "*******pppppppcVar38" (* "*") (pointer_declarator "******pppppppcVar38" (* "*") (pointer_declarator "*****pppppppcVar38" (* "*") (pointer_declarator "****pppppppcVar38" (* "*") (pointer_declarator "***pppppppcVar38" (* "*") (pointer_declarator "**pppppppcVar38" (* "*") (pointer_declarator "*pppppppcVar38" (* "*") (identifier "pppppppcVar38")))))))) (; ";")) (declaration "code *******unaff_s7;" (type_identifier "code") (pointer_declarator "*******unaff_s7" (* "*") (pointer_declarator "******unaff_s7" (* "*") (pointer_declarator "*****unaff_s7" (* "*") (pointer_declarator "****unaff_s7" (* "*") (pointer_declarator "***unaff_s7" (* "*") (pointer_declarator "**unaff_s7" (* "*") (pointer_declarator "*unaff_s7" (* "*") (identifier "unaff_s7")))))))) (; ";")) (declaration "code ******ppppppcVar39;" (type_identifier "code") (pointer_declarator "******ppppppcVar39" (* "*") (pointer_declarator "*****ppppppcVar39" (* "*") (pointer_declarator "****ppppppcVar39" (* "*") (pointer_declarator "***ppppppcVar39" (* "*") (pointer_declarator "**ppppppcVar39" (* "*") (pointer_declarator "*ppppppcVar39" (* "*") (identifier "ppppppcVar39"))))))) (; ";")) (declaration "code ****ppppcVar40;" (type_identifier "code") (pointer_declarator "****ppppcVar40" (* "*") (pointer_declarator "***ppppcVar40" (* "*") (pointer_declarator "**ppppcVar40" (* "*") (pointer_declarator "*ppppcVar40" (* "*") (identifier "ppppcVar40"))))) (; ";")) (declaration "undefined *puVar41;" (type_identifier "undefined") (pointer_declarator "*puVar41" (* "*") (identifier "puVar41")) (; ";")) (declaration "code *******unaff_s8;" (type_identifier "code") (pointer_declarator "*******unaff_s8" (* "*") (pointer_declarator "******unaff_s8" (* "*") (pointer_declarator "*****unaff_s8" (* "*") (pointer_declarator "****unaff_s8" (* "*") (pointer_declarator "***unaff_s8" (* "*") (pointer_declarator "**unaff_s8" (* "*") (pointer_declarator "*unaff_s8" (* "*") (identifier "unaff_s8")))))))) (; ";")) (declaration "code *******pppppppcVar42;" (type_identifier "code") (pointer_declarator "*******pppppppcVar42" (* "*") (pointer_declarator "******pppppppcVar42" (* "*") (pointer_declarator "*****pppppppcVar42" (* "*") (pointer_declarator "****pppppppcVar42" (* "*") (pointer_declarator "***pppppppcVar42" (* "*") (pointer_declarator "**pppppppcVar42" (* "*") (pointer_declarator "*pppppppcVar42" (* "*") (identifier "pppppppcVar42")))))))) (; ";")) (declaration "int iVar43;" (primitive_type "int") (identifier "iVar43") (; ";")) (declaration "undefined8 uVar44;" (type_identifier "undefined8") (identifier "uVar44") (; ";")) (declaration "code *******pppppppcStack_218;" (type_identifier "code") (pointer_declarator "*******pppppppcStack_218" (* "*") (pointer_declarator "******pppppppcStack_218" (* "*") (pointer_declarator "*****pppppppcStack_218" (* "*") (pointer_declarator "****pppppppcStack_218" (* "*") (pointer_declarator "***pppppppcStack_218" (* "*") (pointer_declarator "**pppppppcStack_218" (* "*") (pointer_declarator "*pppppppcStack_218" (* "*") (identifier "pppppppcStack_218")))))))) (; ";")) (declaration "code *******pppppppcStack_20c;" (type_identifier "code") (pointer_declarator "*******pppppppcStack_20c" (* "*") (pointer_declarator "******pppppppcStack_20c" (* "*") (pointer_declarator "*****pppppppcStack_20c" (* "*") (pointer_declarator "****pppppppcStack_20c" (* "*") (pointer_declarator "***pppppppcStack_20c" (* "*") (pointer_declarator "**pppppppcStack_20c" (* "*") (pointer_declarator "*pppppppcStack_20c" (* "*") (identifier "pppppppcStack_20c")))))))) (; ";")) (declaration "code *******pppppppcStack_208;" (type_identifier "code") (pointer_declarator "*******pppppppcStack_208" (* "*") (pointer_declarator "******pppppppcStack_208" (* "*") (pointer_declarator "*****pppppppcStack_208" (* "*") (pointer_declarator "****pppppppcStack_208" (* "*") (pointer_declarator "***pppppppcStack_208" (* "*") (pointer_declarator "**pppppppcStack_208" (* "*") (pointer_declarator "*pppppppcStack_208" (* "*") (identifier "pppppppcStack_208")))))))) (; ";")) (declaration "code ******ppppppcStack_204;" (type_identifier "code") (pointer_declarator "******ppppppcStack_204" (* "*") (pointer_declarator "*****ppppppcStack_204" (* "*") (pointer_declarator "****ppppppcStack_204" (* "*") (pointer_declarator "***ppppppcStack_204" (* "*") (pointer_declarator "**ppppppcStack_204" (* "*") (pointer_declarator "*ppppppcStack_204" (* "*") (identifier "ppppppcStack_204"))))))) (; ";")) (declaration "int iStack_200;" (primitive_type "int") (identifier "iStack_200") (; ";")) (declaration "int *piStack_1fc;" (primitive_type "int") (pointer_declarator "*piStack_1fc" (* "*") (identifier "piStack_1fc")) (; ";")) (declaration "code *******pppppppcStack_1f8;" (type_identifier "code") (pointer_declarator "*******pppppppcStack_1f8" (* "*") (pointer_declarator "******pppppppcStack_1f8" (* "*") (pointer_declarator "*****pppppppcStack_1f8" (* "*") (pointer_declarator "****pppppppcStack_1f8" (* "*") (pointer_declarator "***pppppppcStack_1f8" (* "*") (pointer_declarator "**pppppppcStack_1f8" (* "*") (pointer_declarator "*pppppppcStack_1f8" (* "*") (identifier "pppppppcStack_1f8")))))))) (; ";")) (declaration "code *******apppppppcStack_1f4 [6];" (type_identifier "code") (pointer_declarator "*******apppppppcStack_1f4 [6]" (* "*") (pointer_declarator "******apppppppcStack_1f4 [6]" (* "*") (pointer_declarator "*****apppppppcStack_1f4 [6]" (* "*") (pointer_declarator "****apppppppcStack_1f4 [6]" (* "*") (pointer_declarator "***apppppppcStack_1f4 [6]" (* "*") (pointer_declarator "**apppppppcStack_1f4 [6]" (* "*") (pointer_declarator "*apppppppcStack_1f4 [6]" (* "*") (array_declarator "apppppppcStack_1f4 [6]" (identifier "apppppppcStack_1f4") ([ "[") (number_literal "6") (] "]"))))))))) (; ";")) (declaration "int iStack_1dc;" (primitive_type "int") (identifier "iStack_1dc") (; ";")) (declaration "int iStack_1d8;" (primitive_type "int") (identifier "iStack_1d8") (; ";")) (declaration "int iStack_1d4;" (primitive_type "int") (identifier "iStack_1d4") (; ";")) (declaration "code *******pppppppcStack_1cc;" (type_identifier "code") (pointer_declarator "*******pppppppcStack_1cc" (* "*") (pointer_declarator "******pppppppcStack_1cc" (* "*") (pointer_declarator "*****pppppppcStack_1cc" (* "*") (pointer_declarator "****pppppppcStack_1cc" (* "*") (pointer_declarator "***pppppppcStack_1cc" (* "*") (pointer_declarator "**pppppppcStack_1cc" (* "*") (pointer_declarator "*pppppppcStack_1cc" (* "*") (identifier "pppppppcStack_1cc")))))))) (; ";")) (declaration "code *******pppppppcStack_1c8;" (type_identifier "code") (pointer_declarator "*******pppppppcStack_1c8" (* "*") (pointer_declarator "******pppppppcStack_1c8" (* "*") (pointer_declarator "*****pppppppcStack_1c8" (* "*") (pointer_declarator "****pppppppcStack_1c8" (* "*") (pointer_declarator "***pppppppcStack_1c8" (* "*") (pointer_declarator "**pppppppcStack_1c8" (* "*") (pointer_declarator "*pppppppcStack_1c8" (* "*") (identifier "pppppppcStack_1c8")))))))) (; ";")) (declaration "code *******pppppppcStack_1c4;" (type_identifier "code") (pointer_declarator "*******pppppppcStack_1c4" (* "*") (pointer_declarator "******pppppppcStack_1c4" (* "*") (pointer_declarator "*****pppppppcStack_1c4" (* "*") (pointer_declarator "****pppppppcStack_1c4" (* "*") (pointer_declarator "***pppppppcStack_1c4" (* "*") (pointer_declarator "**pppppppcStack_1c4" (* "*") (pointer_declarator "*pppppppcStack_1c4" (* "*") (identifier "pppppppcStack_1c4")))))))) (; ";")) (declaration "code *******pppppppcStack_1c0;" (type_identifier "code") (pointer_declarator "*******pppppppcStack_1c0" (* "*") (pointer_declarator "******pppppppcStack_1c0" (* "*") (pointer_declarator "*****pppppppcStack_1c0" (* "*") (pointer_declarator "****pppppppcStack_1c0" (* "*") (pointer_declarator "***pppppppcStack_1c0" (* "*") (pointer_declarator "**pppppppcStack_1c0" (* "*") (pointer_declarator "*pppppppcStack_1c0" (* "*") (identifier "pppppppcStack_1c0")))))))) (; ";")) (declaration "code ******ppppppcStack_1b8;" (type_identifier "code") (pointer_declarator "******ppppppcStack_1b8" (* "*") (pointer_declarator "*****ppppppcStack_1b8" (* "*") (pointer_declarator "****ppppppcStack_1b8" (* "*") (pointer_declarator "***ppppppcStack_1b8" (* "*") (pointer_declarator "**ppppppcStack_1b8" (* "*") (pointer_declarator "*ppppppcStack_1b8" (* "*") (identifier "ppppppcStack_1b8"))))))) (; ";")) (declaration "undefined1 uStack_1b0;" (type_identifier "undefined1") (identifier "uStack_1b0") (; ";")) (declaration "byte bStack_1af;" (type_identifier "byte") (identifier "bStack_1af") (; ";")) (declaration "byte bStack_1ae;" (type_identifier "byte") (identifier "bStack_1ae") (; ";")) (declaration "char cStack_1ad;" (primitive_type "char") (identifier "cStack_1ad") (; ";")) (declaration "code ******ppppppcStack_1a8;" (type_identifier "code") (pointer_declarator "******ppppppcStack_1a8" (* "*") (pointer_declarator "*****ppppppcStack_1a8" (* "*") (pointer_declarator "****ppppppcStack_1a8" (* "*") (pointer_declarator "***ppppppcStack_1a8" (* "*") (pointer_declarator "**ppppppcStack_1a8" (* "*") (pointer_declarator "*ppppppcStack_1a8" (* "*") (identifier "ppppppcStack_1a8"))))))) (; ";")) (declaration "int iStack_1a4;" (primitive_type "int") (identifier "iStack_1a4") (; ";")) (declaration "code *******pppppppcStack_1a0;" (type_identifier "code") (pointer_declarator "*******pppppppcStack_1a0" (* "*") (pointer_declarator "******pppppppcStack_1a0" (* "*") (pointer_declarator "*****pppppppcStack_1a0" (* "*") (pointer_declarator "****pppppppcStack_1a0" (* "*") (pointer_declarator "***pppppppcStack_1a0" (* "*") (pointer_declarator "**pppppppcStack_1a0" (* "*") (pointer_declarator "*pppppppcStack_1a0" (* "*") (identifier "pppppppcStack_1a0")))))))) (; ";")) (declaration "code *******pppppppcStack_19c;" (type_identifier "code") (pointer_declarator "*******pppppppcStack_19c" (* "*") (pointer_declarator "******pppppppcStack_19c" (* "*") (pointer_declarator "*****pppppppcStack_19c" (* "*") (pointer_declarator "****pppppppcStack_19c" (* "*") (pointer_declarator "***pppppppcStack_19c" (* "*") (pointer_declarator "**pppppppcStack_19c" (* "*") (pointer_declarator "*pppppppcStack_19c" (* "*") (identifier "pppppppcStack_19c")))))))) (; ";")) (declaration "code *******pppppppcStack_198;" (type_identifier "code") (pointer_declarator "*******pppppppcStack_198" (* "*") (pointer_declarator "******pppppppcStack_198" (* "*") (pointer_declarator "*****pppppppcStack_198" (* "*") (pointer_declarator "****pppppppcStack_198" (* "*") (pointer_declarator "***pppppppcStack_198" (* "*") (pointer_declarator "**pppppppcStack_198" (* "*") (pointer_declarator "*pppppppcStack_198" (* "*") (identifier "pppppppcStack_198")))))))) (; ";")) (declaration "code *******pppppppcStack_194;" (type_identifier "code") (pointer_declarator "*******pppppppcStack_194" (* "*") (pointer_declarator "******pppppppcStack_194" (* "*") (pointer_declarator "*****pppppppcStack_194" (* "*") (pointer_declarator "****pppppppcStack_194" (* "*") (pointer_declarator "***pppppppcStack_194" (* "*") (pointer_declarator "**pppppppcStack_194" (* "*") (pointer_declarator "*pppppppcStack_194" (* "*") (identifier "pppppppcStack_194")))))))) (; ";")) (declaration "code *******pppppppcStack_190;" (type_identifier "code") (pointer_declarator "*******pppppppcStack_190" (* "*") (pointer_declarator "******pppppppcStack_190" (* "*") (pointer_declarator "*****pppppppcStack_190" (* "*") (pointer_declarator "****pppppppcStack_190" (* "*") (pointer_declarator "***pppppppcStack_190" (* "*") (pointer_declarator "**pppppppcStack_190" (* "*") (pointer_declarator "*pppppppcStack_190" (* "*") (identifier "pppppppcStack_190")))))))) (; ";")) (declaration "code *******pppppppcStack_18c;" (type_identifier "code") (pointer_declarator "*******pppppppcStack_18c" (* "*") (pointer_declarator "******pppppppcStack_18c" (* "*") (pointer_declarator "*****pppppppcStack_18c" (* "*") (pointer_declarator "****pppppppcStack_18c" (* "*") (pointer_declarator "***pppppppcStack_18c" (* "*") (pointer_declarator "**pppppppcStack_18c" (* "*") (pointer_declarator "*pppppppcStack_18c" (* "*") (identifier "pppppppcStack_18c")))))))) (; ";")) (declaration "code *******pppppppcStack_188;" (type_identifier "code") (pointer_declarator "*******pppppppcStack_188" (* "*") (pointer_declarator "******pppppppcStack_188" (* "*") (pointer_declarator "*****pppppppcStack_188" (* "*") (pointer_declarator "****pppppppcStack_188" (* "*") (pointer_declarator "***pppppppcStack_188" (* "*") (pointer_declarator "**pppppppcStack_188" (* "*") (pointer_declarator "*pppppppcStack_188" (* "*") (identifier "pppppppcStack_188")))))))) (; ";")) (declaration "code *******pppppppcStack_184;" (type_identifier "code") (pointer_declarator "*******pppppppcStack_184" (* "*") (pointer_declarator "******pppppppcStack_184" (* "*") (pointer_declarator "*****pppppppcStack_184" (* "*") (pointer_declarator "****pppppppcStack_184" (* "*") (pointer_declarator "***pppppppcStack_184" (* "*") (pointer_declarator "**pppppppcStack_184" (* "*") (pointer_declarator "*pppppppcStack_184" (* "*") (identifier "pppppppcStack_184")))))))) (; ";")) (declaration "code *******pppppppcStack_180;" (type_identifier "code") (pointer_declarator "*******pppppppcStack_180" (* "*") (pointer_declarator "******pppppppcStack_180" (* "*") (pointer_declarator "*****pppppppcStack_180" (* "*") (pointer_declarator "****pppppppcStack_180" (* "*") (pointer_declarator "***pppppppcStack_180" (* "*") (pointer_declarator "**pppppppcStack_180" (* "*") (pointer_declarator "*pppppppcStack_180" (* "*") (identifier "pppppppcStack_180")))))))) (; ";")) (declaration "code *pcStack_17c;" (type_identifier "code") (pointer_declarator "*pcStack_17c" (* "*") (identifier "pcStack_17c")) (; ";")) (declaration "uint local_168;" (type_identifier "uint") (identifier "local_168") (; ";")) (declaration "code *******local_150;" (type_identifier "code") (pointer_declarator "*******local_150" (* "*") (pointer_declarator "******local_150" (* "*") (pointer_declarator "*****local_150" (* "*") (pointer_declarator "****local_150" (* "*") (pointer_declarator "***local_150" (* "*") (pointer_declarator "**local_150" (* "*") (pointer_declarator "*local_150" (* "*") (identifier "local_150")))))))) (; ";")) (declaration "code *******local_148;" (type_identifier "code") (pointer_declarator "*******local_148" (* "*") (pointer_declarator "******local_148" (* "*") (pointer_declarator "*****local_148" (* "*") (pointer_declarator "****local_148" (* "*") (pointer_declarator "***local_148" (* "*") (pointer_declarator "**local_148" (* "*") (pointer_declarator "*local_148" (* "*") (identifier "local_148")))))))) (; ";")) (declaration "code *******local_144;" (type_identifier "code") (pointer_declarator "*******local_144" (* "*") (pointer_declarator "******local_144" (* "*") (pointer_declarator "*****local_144" (* "*") (pointer_declarator "****local_144" (* "*") (pointer_declarator "***local_144" (* "*") (pointer_declarator "**local_144" (* "*") (pointer_declarator "*local_144" (* "*") (identifier "local_144")))))))) (; ";")) (declaration "code *******local_138;" (type_identifier "code") (pointer_declarator "*******local_138" (* "*") (pointer_declarator "******local_138" (* "*") (pointer_declarator "*****local_138" (* "*") (pointer_declarator "****local_138" (* "*") (pointer_declarator "***local_138" (* "*") (pointer_declarator "**local_138" (* "*") (pointer_declarator "*local_138" (* "*") (identifier "local_138")))))))) (; ";")) (declaration "int local_118;" (primitive_type "int") (identifier "local_118") (; ";")) (declaration "code *******local_dc;" (type_identifier "code") (pointer_declarator "*******local_dc" (* "*") (pointer_declarator "******local_dc" (* "*") (pointer_declarator "*****local_dc" (* "*") (pointer_declarator "****local_dc" (* "*") (pointer_declarator "***local_dc" (* "*") (pointer_declarator "**local_dc" (* "*") (pointer_declarator "*local_dc" (* "*") (identifier "local_dc")))))))) (; ";")) (declaration "code *******local_d8;" (type_identifier "code") (pointer_declarator "*******local_d8" (* "*") (pointer_declarator "******local_d8" (* "*") (pointer_declarator "*****local_d8" (* "*") (pointer_declarator "****local_d8" (* "*") (pointer_declarator "***local_d8" (* "*") (pointer_declarator "**local_d8" (* "*") (pointer_declarator "*local_d8" (* "*") (identifier "local_d8")))))))) (; ";")) (declaration "code *******local_d4;" (type_identifier "code") (pointer_declarator "*******local_d4" (* "*") (pointer_declarator "******local_d4" (* "*") (pointer_declarator "*****local_d4" (* "*") (pointer_declarator "****local_d4" (* "*") (pointer_declarator "***local_d4" (* "*") (pointer_declarator "**local_d4" (* "*") (pointer_declarator "*local_d4" (* "*") (identifier "local_d4")))))))) (; ";")) (declaration "code *******local_d0;" (type_identifier "code") (pointer_declarator "*******local_d0" (* "*") (pointer_declarator "******local_d0" (* "*") (pointer_declarator "*****local_d0" (* "*") (pointer_declarator "****local_d0" (* "*") (pointer_declarator "***local_d0" (* "*") (pointer_declarator "**local_d0" (* "*") (pointer_declarator "*local_d0" (* "*") (identifier "local_d0")))))))) (; ";")) (declaration "code *******local_cc;" (type_identifier "code") (pointer_declarator "*******local_cc" (* "*") (pointer_declarator "******local_cc" (* "*") (pointer_declarator "*****local_cc" (* "*") (pointer_declarator "****local_cc" (* "*") (pointer_declarator "***local_cc" (* "*") (pointer_declarator "**local_cc" (* "*") (pointer_declarator "*local_cc" (* "*") (identifier "local_cc")))))))) (; ";")) (declaration "code *******local_c8;" (type_identifier "code") (pointer_declarator "*******local_c8" (* "*") (pointer_declarator "******local_c8" (* "*") (pointer_declarator "*****local_c8" (* "*") (pointer_declarator "****local_c8" (* "*") (pointer_declarator "***local_c8" (* "*") (pointer_declarator "**local_c8" (* "*") (pointer_declarator "*local_c8" (* "*") (identifier "local_c8")))))))) (; ";")) (declaration "code *******local_c4;" (type_identifier "code") (pointer_declarator "*******local_c4" (* "*") (pointer_declarator "******local_c4" (* "*") (pointer_declarator "*****local_c4" (* "*") (pointer_declarator "****local_c4" (* "*") (pointer_declarator "***local_c4" (* "*") (pointer_declarator "**local_c4" (* "*") (pointer_declarator "*local_c4" (* "*") (identifier "local_c4")))))))) (; ";")) (declaration "undefined4 local_c0;" (type_identifier "undefined4") (identifier "local_c0") (; ";")) (declaration "undefined4 local_bc;" (type_identifier "undefined4") (identifier "local_bc") (; ";")) (declaration "undefined4 local_b8;" (type_identifier "undefined4") (identifier "local_b8") (; ";")) (declaration "code ******local_b4;" (type_identifier "code") (pointer_declarator "******local_b4" (* "*") (pointer_declarator "*****local_b4" (* "*") (pointer_declarator "****local_b4" (* "*") (pointer_declarator "***local_b4" (* "*") (pointer_declarator "**local_b4" (* "*") (pointer_declarator "*local_b4" (* "*") (identifier "local_b4"))))))) (; ";")) (declaration "code ******local_b0;" (type_identifier "code") (pointer_declarator "******local_b0" (* "*") (pointer_declarator "*****local_b0" (* "*") (pointer_declarator "****local_b0" (* "*") (pointer_declarator "***local_b0" (* "*") (pointer_declarator "**local_b0" (* "*") (pointer_declarator "*local_b0" (* "*") (identifier "local_b0"))))))) (; ";")) (declaration "int *local_ac;" (primitive_type "int") (pointer_declarator "*local_ac" (* "*") (identifier "local_ac")) (; ";")) (declaration "int local_a8;" (primitive_type "int") (identifier "local_a8") (; ";")) (declaration "int local_9c;" (primitive_type "int") (identifier "local_9c") (; ";")) (declaration "code *******local_98;" (type_identifier "code") (pointer_declarator "*******local_98" (* "*") (pointer_declarator "******local_98" (* "*") (pointer_declarator "*****local_98" (* "*") (pointer_declarator "****local_98" (* "*") (pointer_declarator "***local_98" (* "*") (pointer_declarator "**local_98" (* "*") (pointer_declarator "*local_98" (* "*") (identifier "local_98")))))))) (; ";")) (declaration "code *******local_94;" (type_identifier "code") (pointer_declarator "*******local_94" (* "*") (pointer_declarator "******local_94" (* "*") (pointer_declarator "*****local_94" (* "*") (pointer_declarator "****local_94" (* "*") (pointer_declarator "***local_94" (* "*") (pointer_declarator "**local_94" (* "*") (pointer_declarator "*local_94" (* "*") (identifier "local_94")))))))) (; ";")) (declaration "uint local_90;" (type_identifier "uint") (identifier "local_90") (; ";")) (declaration "code *******local_8c;" (type_identifier "code") (pointer_declarator "*******local_8c" (* "*") (pointer_declarator "******local_8c" (* "*") (pointer_declarator "*****local_8c" (* "*") (pointer_declarator "****local_8c" (* "*") (pointer_declarator "***local_8c" (* "*") (pointer_declarator "**local_8c" (* "*") (pointer_declarator "*local_8c" (* "*") (identifier "local_8c")))))))) (; ";")) (declaration "code *******local_88;" (type_identifier "code") (pointer_declarator "*******local_88" (* "*") (pointer_declarator "******local_88" (* "*") (pointer_declarator "*****local_88" (* "*") (pointer_declarator "****local_88" (* "*") (pointer_declarator "***local_88" (* "*") (pointer_declarator "**local_88" (* "*") (pointer_declarator "*local_88" (* "*") (identifier "local_88")))))))) (; ";")) (declaration "code *******local_84;" (type_identifier "code") (pointer_declarator "*******local_84" (* "*") (pointer_declarator "******local_84" (* "*") (pointer_declarator "*****local_84" (* "*") (pointer_declarator "****local_84" (* "*") (pointer_declarator "***local_84" (* "*") (pointer_declarator "**local_84" (* "*") (pointer_declarator "*local_84" (* "*") (identifier "local_84")))))))) (; ";")) (declaration "code *******local_80;" (type_identifier "code") (pointer_declarator "*******local_80" (* "*") (pointer_declarator "******local_80" (* "*") (pointer_declarator "*****local_80" (* "*") (pointer_declarator "****local_80" (* "*") (pointer_declarator "***local_80" (* "*") (pointer_declarator "**local_80" (* "*") (pointer_declarator "*local_80" (* "*") (identifier "local_80")))))))) (; ";")) (declaration "code *******local_7c;" (type_identifier "code") (pointer_declarator "*******local_7c" (* "*") (pointer_declarator "******local_7c" (* "*") (pointer_declarator "*****local_7c" (* "*") (pointer_declarator "****local_7c" (* "*") (pointer_declarator "***local_7c" (* "*") (pointer_declarator "**local_7c" (* "*") (pointer_declarator "*local_7c" (* "*") (identifier "local_7c")))))))) (; ";")) (declaration "undefined4 local_78;" (type_identifier "undefined4") (identifier "local_78") (; ";")) (declaration "code ******local_74;" (type_identifier "code") (pointer_declarator "******local_74" (* "*") (pointer_declarator "*****local_74" (* "*") (pointer_declarator "****local_74" (* "*") (pointer_declarator "***local_74" (* "*") (pointer_declarator "**local_74" (* "*") (pointer_declarator "*local_74" (* "*") (identifier "local_74"))))))) (; ";")) (declaration "code *******local_70;" (type_identifier "code") (pointer_declarator "*******local_70" (* "*") (pointer_declarator "******local_70" (* "*") (pointer_declarator "*****local_70" (* "*") (pointer_declarator "****local_70" (* "*") (pointer_declarator "***local_70" (* "*") (pointer_declarator "**local_70" (* "*") (pointer_declarator "*local_70" (* "*") (identifier "local_70")))))))) (; ";")) (declaration "byte local_6c;" (type_identifier "byte") (identifier "local_6c") (; ";")) (declaration "byte local_6b;" (type_identifier "byte") (identifier "local_6b") (; ";")) (declaration "byte local_6a;" (type_identifier "byte") (identifier "local_6a") (; ";")) (declaration "byte local_69;" (type_identifier "byte") (identifier "local_69") (; ";")) (declaration "char local_68;" (primitive_type "char") (identifier "local_68") (; ";")) (declaration "byte local_67;" (type_identifier "byte") (identifier "local_67") (; ";")) (declaration "byte local_66;" (type_identifier "byte") (identifier "local_66") (; ";")) (declaration "code *******local_64;" (type_identifier "code") (pointer_declarator "*******local_64" (* "*") (pointer_declarator "******local_64" (* "*") (pointer_declarator "*****local_64" (* "*") (pointer_declarator "****local_64" (* "*") (pointer_declarator "***local_64" (* "*") (pointer_declarator "**local_64" (* "*") (pointer_declarator "*local_64" (* "*") (identifier "local_64")))))))) (; ";")) (declaration "code *******local_60;" (type_identifier "code") (pointer_declarator "*******local_60" (* "*") (pointer_declarator "******local_60" (* "*") (pointer_declarator "*****local_60" (* "*") (pointer_declarator "****local_60" (* "*") (pointer_declarator "***local_60" (* "*") (pointer_declarator "**local_60" (* "*") (pointer_declarator "*local_60" (* "*") (identifier "local_60")))))))) (; ";")) (declaration "code *******local_5c;" (type_identifier "code") (pointer_declarator "*******local_5c" (* "*") (pointer_declarator "******local_5c" (* "*") (pointer_declarator "*****local_5c" (* "*") (pointer_declarator "****local_5c" (* "*") (pointer_declarator "***local_5c" (* "*") (pointer_declarator "**local_5c" (* "*") (pointer_declarator "*local_5c" (* "*") (identifier "local_5c")))))))) (; ";")) (declaration "code *******local_58;" (type_identifier "code") (pointer_declarator "*******local_58" (* "*") (pointer_declarator "******local_58" (* "*") (pointer_declarator "*****local_58" (* "*") (pointer_declarator "****local_58" (* "*") (pointer_declarator "***local_58" (* "*") (pointer_declarator "**local_58" (* "*") (pointer_declarator "*local_58" (* "*") (identifier "local_58")))))))) (; ";")) (declaration "code *******local_54;" (type_identifier "code") (pointer_declarator "*******local_54" (* "*") (pointer_declarator "******local_54" (* "*") (pointer_declarator "*****local_54" (* "*") (pointer_declarator "****local_54" (* "*") (pointer_declarator "***local_54" (* "*") (pointer_declarator "**local_54" (* "*") (pointer_declarator "*local_54" (* "*") (identifier "local_54")))))))) (; ";")) (declaration "code *******local_50;" (type_identifier "code") (pointer_declarator "*******local_50" (* "*") (pointer_declarator "******local_50" (* "*") (pointer_declarator "*****local_50" (* "*") (pointer_declarator "****local_50" (* "*") (pointer_declarator "***local_50" (* "*") (pointer_declarator "**local_50" (* "*") (pointer_declarator "*local_50" (* "*") (identifier "local_50")))))))) (; ";")) (declaration "code *******local_4c;" (type_identifier "code") (pointer_declarator "*******local_4c" (* "*") (pointer_declarator "******local_4c" (* "*") (pointer_declarator "*****local_4c" (* "*") (pointer_declarator "****local_4c" (* "*") (pointer_declarator "***local_4c" (* "*") (pointer_declarator "**local_4c" (* "*") (pointer_declarator "*local_4c" (* "*") (identifier "local_4c")))))))) (; ";")) (declaration "undefined4 local_48;" (type_identifier "undefined4") (identifier "local_48") (; ";")) (declaration "code *******local_44;" (type_identifier "code") (pointer_declarator "*******local_44" (* "*") (pointer_declarator "******local_44" (* "*") (pointer_declarator "*****local_44" (* "*") (pointer_declarator "****local_44" (* "*") (pointer_declarator "***local_44" (* "*") (pointer_declarator "**local_44" (* "*") (pointer_declarator "*local_44" (* "*") (identifier "local_44")))))))) (; ";")) (declaration "code *******local_40;" (type_identifier "code") (pointer_declarator "*******local_40" (* "*") (pointer_declarator "******local_40" (* "*") (pointer_declarator "*****local_40" (* "*") (pointer_declarator "****local_40" (* "*") (pointer_declarator "***local_40" (* "*") (pointer_declarator "**local_40" (* "*") (pointer_declarator "*local_40" (* "*") (identifier "local_40")))))))) (; ";")) (declaration "int local_3c;" (primitive_type "int") (identifier "local_3c") (; ";")) (declaration "code *******local_34;" (type_identifier "code") (pointer_declarator "*******local_34" (* "*") (pointer_declarator "******local_34" (* "*") (pointer_declarator "*****local_34" (* "*") (pointer_declarator "****local_34" (* "*") (pointer_declarator "***local_34" (* "*") (pointer_declarator "**local_34" (* "*") (pointer_declarator "*local_34" (* "*") (identifier "local_34")))))))) (; ";")) (declaration "int local_30;" (primitive_type "int") (identifier "local_30") (; ";")) (declaration "code *******local_2c;" (type_identifier "code") (pointer_declarator "*******local_2c" (* "*") (pointer_declarator "******local_2c" (* "*") (pointer_declarator "*****local_2c" (* "*") (pointer_declarator "****local_2c" (* "*") (pointer_declarator "***local_2c" (* "*") (pointer_declarator "**local_2c" (* "*") (pointer_declarator "*local_2c" (* "*") (identifier "local_2c")))))))) (; ";")) (expression_statement "local_2c = *(code ********)PTR___stack_chk_guard_00079c10;" (assignment_expression "local_2c = *(code ********)PTR___stack_chk_guard_00079c10" (identifier "local_2c") (= "=") (pointer_expression "*(code ********)PTR___stack_chk_guard_00079c10" (* "*") (cast_expression "(code ********)PTR___stack_chk_guard_00079c10" (( "(") (type_descriptor "code ********" (type_identifier "code") (abstract_pointer_declarator "********" (* "*") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))))) () ")") (identifier "PTR___stack_chk_guard_00079c10")))) (; ";")) (expression_statement "pppppppcVar38 = (code *******)*param_1;" (assignment_expression "pppppppcVar38 = (code *******)*param_1" (identifier "pppppppcVar38") (= "=") (cast_expression "(code *******)*param_1" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (pointer_expression "*param_1" (* "*") (identifier "param_1")))) (; ";")) (expression_statement "pppppppcVar29 = (code *******)0x0;" (assignment_expression "pppppppcVar29 = (code *******)0x0" (identifier "pppppppcVar29") (= "=") (cast_expression "(code *******)0x0" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "pppppppcVar33 = param_4;" (assignment_expression "pppppppcVar33 = param_4" (identifier "pppppppcVar33") (= "=") (identifier "param_4")) (; ";")) (expression_statement "(*(code *)PTR_memset_00079b00)(&local_b4,0,0x88);" (call_expression "(*(code *)PTR_memset_00079b00)(&local_b4,0,0x88)" (parenthesized_expression "(*(code *)PTR_memset_00079b00)" (( "(") (pointer_expression "*(code *)PTR_memset_00079b00" (* "*") (cast_expression "(code *)PTR_memset_00079b00" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_memset_00079b00"))) () ")")) (argument_list "(&local_b4,0,0x88)" (( "(") (pointer_expression "&local_b4" (& "&") (identifier "local_b4")) (, ",") (number_literal "0") (, ",") (number_literal "0x88") () ")"))) (; ";")) (expression_statement "local_148 = (code *******)param_1[4];" (assignment_expression "local_148 = (code *******)param_1[4]" (identifier "local_148") (= "=") (cast_expression "(code *******)param_1[4]" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]")))) (; ";")) (if_statement "if (local_148 != (code *******)0x0) {\n    if (((byte)*(code *)(param_1 + 7) & 0x10) == 0) {\n      local_148 = (code *******)0x0;\n    }\n    else if (param_4 == param_5) {\n      local_148 = (code *******)0x0;\n    }\n    else if ((char)*(code *)(param_1 + 7) < '\0') {\n      local_148 = (code *******)0x0;\n    }\n  }" (if "if") (parenthesized_expression "(local_148 != (code *******)0x0)" (( "(") (binary_expression "local_148 != (code *******)0x0" (identifier "local_148") (!= "!=") (cast_expression "(code *******)0x0" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    if (((byte)*(code *)(param_1 + 7) & 0x10) == 0) {\n      local_148 = (code *******)0x0;\n    }\n    else if (param_4 == param_5) {\n      local_148 = (code *******)0x0;\n    }\n    else if ((char)*(code *)(param_1 + 7) < '\0') {\n      local_148 = (code *******)0x0;\n    }\n  }" ({ "{") (if_statement "if (((byte)*(code *)(param_1 + 7) & 0x10) == 0) {\n      local_148 = (code *******)0x0;\n    }\n    else if (param_4 == param_5) {\n      local_148 = (code *******)0x0;\n    }\n    else if ((char)*(code *)(param_1 + 7) < '\0') {\n      local_148 = (code *******)0x0;\n    }" (if "if") (parenthesized_expression "(((byte)*(code *)(param_1 + 7) & 0x10) == 0)" (( "(") (binary_expression "((byte)*(code *)(param_1 + 7) & 0x10) == 0" (parenthesized_expression "((byte)*(code *)(param_1 + 7) & 0x10)" (( "(") (binary_expression "(byte)*(code *)(param_1 + 7) & 0x10" (binary_expression "(byte)*(code *)(param_1 + 7)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (* "*") (cast_expression "(code *)(param_1 + 7)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 7)" (( "(") (binary_expression "param_1 + 7" (identifier "param_1") (+ "+") (number_literal "7")) () ")")))) (& "&") (number_literal "0x10")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      local_148 = (code *******)0x0;\n    }" ({ "{") (expression_statement "local_148 = (code *******)0x0;" (assignment_expression "local_148 = (code *******)0x0" (identifier "local_148") (= "=") (cast_expression "(code *******)0x0" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) (; ";")) (} "}")) (else_clause "else if (param_4 == param_5) {\n      local_148 = (code *******)0x0;\n    }\n    else if ((char)*(code *)(param_1 + 7) < '\0') {\n      local_148 = (code *******)0x0;\n    }" (else "else") (if_statement "if (param_4 == param_5) {\n      local_148 = (code *******)0x0;\n    }\n    else if ((char)*(code *)(param_1 + 7) < '\0') {\n      local_148 = (code *******)0x0;\n    }" (if "if") (parenthesized_expression "(param_4 == param_5)" (( "(") (binary_expression "param_4 == param_5" (identifier "param_4") (== "==") (identifier "param_5")) () ")")) (compound_statement "{\n      local_148 = (code *******)0x0;\n    }" ({ "{") (expression_statement "local_148 = (code *******)0x0;" (assignment_expression "local_148 = (code *******)0x0" (identifier "local_148") (= "=") (cast_expression "(code *******)0x0" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) (; ";")) (} "}")) (else_clause "else if ((char)*(code *)(param_1 + 7) < '\0') {\n      local_148 = (code *******)0x0;\n    }" (else "else") (if_statement "if ((char)*(code *)(param_1 + 7) < '\0') {\n      local_148 = (code *******)0x0;\n    }" (if "if") (parenthesized_expression "((char)*(code *)(param_1 + 7) < '\0')" (( "(") (binary_expression "(char)*(code *)(param_1 + 7) < '\0'" (cast_expression "(char)*(code *)(param_1 + 7)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (pointer_expression "*(code *)(param_1 + 7)" (* "*") (cast_expression "(code *)(param_1 + 7)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 7)" (( "(") (binary_expression "param_1 + 7" (identifier "param_1") (+ "+") (number_literal "7")) () ")"))))) (< "<") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      local_148 = (code *******)0x0;\n    }" ({ "{") (expression_statement "local_148 = (code *******)0x0;" (assignment_expression "local_148 = (code *******)0x0" (identifier "local_148") (= "=") (cast_expression "(code *******)0x0" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) (; ";")) (} "}"))))))) (} "}"))) (if_statement "if (param_1[6] < param_7) {\n    local_118 = (int)param_7 + (-1 - (int)param_1[6]);\n  }\n  else {\n    local_118 = 0;\n  }" (if "if") (parenthesized_expression "(param_1[6] < param_7)" (( "(") (binary_expression "param_1[6] < param_7" (subscript_expression "param_1[6]" (identifier "param_1") ([ "[") (number_literal "6") (] "]")) (< "<") (identifier "param_7")) () ")")) (compound_statement "{\n    local_118 = (int)param_7 + (-1 - (int)param_1[6]);\n  }" ({ "{") (expression_statement "local_118 = (int)param_7 + (-1 - (int)param_1[6]);" (assignment_expression "local_118 = (int)param_7 + (-1 - (int)param_1[6])" (identifier "local_118") (= "=") (binary_expression "(int)param_7 + (-1 - (int)param_1[6])" (cast_expression "(int)param_7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_7")) (+ "+") (parenthesized_expression "(-1 - (int)param_1[6])" (( "(") (binary_expression "-1 - (int)param_1[6]" (number_literal "-1") (- "-") (cast_expression "(int)param_1[6]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "param_1[6]" (identifier "param_1") ([ "[") (number_literal "6") (] "]")))) () ")")))) (; ";")) (} "}")) (else_clause "else {\n    local_118 = 0;\n  }" (else "else") (compound_statement "{\n    local_118 = 0;\n  }" ({ "{") (expression_statement "local_118 = 0;" (assignment_expression "local_118 = 0" (identifier "local_118") (= "=") (number_literal "0")) (; ";")) (} "}")))) (expression_statement "pppppppcStack_1a0 = param_4;" (assignment_expression "pppppppcStack_1a0 = param_4" (identifier "pppppppcStack_1a0") (= "=") (identifier "param_4")) (; ";")) (expression_statement "pppppppcStack_19c = param_1;" (assignment_expression "pppppppcStack_19c = param_1" (identifier "pppppppcStack_19c") (= "=") (identifier "param_1")) (; ";")) (expression_statement "local_60 = pppppppcVar38;" (assignment_expression "local_60 = pppppppcVar38" (identifier "local_60") (= "=") (identifier "pppppppcVar38")) (; ";")) (if_statement "if (param_1[2] == (code ******)0x0) {\n    local_150 = (code *******)0x1;\n  }\n  else if (pppppppcVar38[9] == (code ******)0x0) {\n    local_150 = (code *******)0x1;\n  }\n  else if (pppppppcVar38[10] == (code ******)0x0) {\n    local_150 = (code *******)0x1;\n  }\n  else if (pppppppcVar38[0xb] == (code ******)0x0) {\n    local_150 = (code *******)0x1;\n  }\n  else {\n    pppppppcVar29 = (code *******)pppppppcVar38[0xc];\n    if (pppppppcVar29 == (code *******)0x0) {\n      local_150 = (code *******)0x1;\n    }\n    else {\n      pppppppcVar3 = param_5;\n      if ((((pppppppcVar38[9][2] == (code *****)0x0) && (pppppppcVar38[10][2] == (code *****)0x0))\n          && ((pppppppcVar38[0xb][2] == (code *****)0x0 || (((uint)param_1[7] & 0x1000000) == 0))))\n         && ((pppppppcVar3 = param_4, param_4 != (code *******)0x0 &&\n             (param_4 = param_5, pppppppcVar3 = param_5, param_5 != (code *******)0x0)))) {\n        local_150 = (code *******)0x1;\n        pppppppcStack_1a0 = param_5;\n      }\n      else {\n        param_5 = pppppppcVar3;\n        pppppppcVar3 = (code *******)((int)param_7 - local_118);\n        if (pppppppcVar3 == (code *******)0x0) {\n          pppppppcVar34 = (code *******)(uint)(pppppppcVar38[0x13] != (code ******)0x0);\n        }\n        else {\n          pppppppcVar34 = (code *******)0x1;\n        }\n        ppppppcVar32 = param_1[5];\n        local_6c = (byte)((uint)((int)param_1[3] << 9) >> 0x1f);\n        local_64 = (code *******)pppppppcVar38[0x17];\n        pppppppcVar31 = (code *******)((int)pppppppcVar38[2] + 1);\n        if ((int)pppppppcVar38[2] + 1 < (int)local_64) {\n          pppppppcVar31 = local_64;\n        }\n        pppppppcVar30 = (code *******)(uint)((int)param_3 + 1 < (int)pppppppcVar31);\n        pppppppcVar33 = (code *******)0x1;\n        local_69 = local_6c;\n        if (ppppppcVar32 != (code ******)0x0) {\n          local_69 = 1;\n        }\n        local_6b = (byte)((uint)((int)pppppppcVar38[0x16] << 2) >> 0x1f);\n        local_6a = (byte)((uint)((int)pppppppcVar38[0x16] << 3) >> 0x1f);\n        pppppppcVar29 = (code *******)((int)param_3 + 1);\n        if (pppppppcVar30 == (code *******)0x0) {\n          pppppppcVar29 = pppppppcVar31;\n        }\n        local_b4 = param_2;\n        local_88 = param_3;\n        local_84 = param_3;\n        local_80 = param_3;\n        local_7c = param_3;\n        local_74 = ppppppcVar32;\n        local_150 = (code *******)FUN_00046d2c(&local_b4);\n        pppppppcVar31 = pppppppcVar34;\n        param_6 = param_6;\n        if (local_150 != (code *******)0x0) goto LAB_000557e4;\n        local_70 = pppppppcVar38 + 0x18;\n        local_66 = (byte)((uint)((int)pppppppcVar38[0x16] << 4) >> 0x1f);\n        pppppppcVar2 = (code *******)0x0;\n        local_98 = pppppppcVar2;\n        if ((local_69 == 0) && (local_b0 = param_2, (int)pppppppcVar38[0x17] < 2)) {\n          local_98 = param_3;\n        }\n        local_7c = param_6;\n        local_80 = param_6;\n        local_67 = (byte)((uint)((int)param_1[7] << 7) >> 0x1f);\n        ppppppcVar35 = pppppppcVar38[0x13];\n        pppppppcVar36 = (code *******)((int)ppppppcVar35 * 2);\n        local_5c = param_9;\n        local_58 = (code *******)0xffffffff;\n        local_94 = local_98;\n        if ((int)pppppppcVar36 < 1) {\nLAB_000559f0:\n          local_3c = 1;\n          local_44 = pppppppcVar36;\n          local_34 = pppppppcVar36;\n          if ((pppppppcVar3 < (code *******)0x2) && (((uint)pppppppcVar38[0x16] & 0x40000000) == 0))\n          {\n            local_50 = (code *******)0x0;\nLAB_00055a40:\n            local_78 = 6;\n            if (((uint)param_9 & 1) != 0) {\n              local_78 = 4;\n            }\n            pppppppcVar24 = (code *******)0x1;\n            pppppppcVar25 = param_4;\n            if ((int)param_5 < (int)param_4) {\n              pppppppcVar24 = (code *******)0xffffffff;\n              pppppppcVar25 = param_5;\n            }\n            pppppppcVar26 = param_5;\n            if ((int)param_5 <= (int)param_4) {\n              pppppppcVar26 = param_4;\n            }\n            ppppppcVar35 = pppppppcVar38[0x17];\n            uVar16 = 8;\n            if (local_148 != (code *******)0x0) {\n              if (ppppppcVar35 == (code ******)0x1) {\n                pppppppcVar28 = (code *******)0x4;\n              }\n              else {\n                pppppppcVar28 = pppppppcVar2;\n                if ((-1 < (int)param_1[3] << 9) && (ppppppcVar32 == (code ******)0x0)) {\n                  pppppppcVar28 = (code *******)0x4;\n                }\n              }\n              pppppppcVar29 = (code *******)0x0;\n              if ((int)param_4 <= (int)param_5) {\n                pppppppcVar29 = (code *******)0x2;\n              }\n              uVar16 = (uint)(ppppppcVar32 != (code ******)0x0) | (uint)pppppppcVar28 |\n                       (uint)pppppppcVar29;\n            }\n            local_dc = param_4;\n            if ((int)param_4 < (int)pppppppcVar25) {\n              local_150 = (code *******)0x1;\n              param_6 = pppppppcVar36;\n            }\n            else if ((int)pppppppcVar26 < (int)param_4) {\n              local_150 = (code *******)0x1;\n              param_4 = (code *******)(uint)((int)param_5 < (int)param_4);\n              param_6 = pppppppcVar36;\n            }\n            else {\n              pppppppcVar36 = (code *******)&local_dc;\n              if ((code *******)(uint)((int)param_5 < (int)param_4) != (code *******)0x0) {\n                pppppppcVar36 = (code *******)0x0;\n              }\n              pcVar4 = (code *)(PTR_DAT_000799a4 + -0x2b7c);\n              piVar5 = (int *)(PTR_s_nt0_000795b8 + (uVar16 - 4) * 4 + 0x6e38);\nLAB_00055b44:\n              if (uVar16 - 4 < 5) {\n                    \n                    \n                pppppppcVar29 = (code *******)(*(code *)(&_gp_1 + *piVar5))();\n                return pppppppcVar29;\n              }\n              param_5 = &local_b4;\n              pppppppcVar28 = pppppppcVar33;\n              while( true ) {\n                param_4 = local_dc;\n                pppppppcVar33 = (code *******)((int)local_dc - local_9c);\n                pppppppcVar30 = param_9;\n                pppppppcVar31 = pppppppcVar2;\n                param_6 = local_148;\n                unaff_s4 = param_3;\n                unaff_s5 = pppppppcVar24;\n                unaff_s7 = pppppppcVar26;\n                if (local_94 <= pppppppcVar33) {\n                  pppppppcVar29 = local_dc;\n                  local_150 = (code *******)(*pcVar4)(param_5);\n                  pppppppcVar33 = pppppppcVar28;\n                  if (local_150 != (code *******)0x0) goto LAB_000557e4;\n                  pppppppcVar33 = (code *******)((int)param_4 - local_9c);\n                }\n                if ((int)param_4 < (int)param_3) {\n                  uVar7 = (uint)(byte)*(code *)((int)pppppppcVar33 + (int)local_b0);\n                }\n                else {\n                  uVar7 = 0;\n                }\n                param_4 = (code *******)((int)param_4 + (int)pppppppcVar24);\n                if (*(code *)((int)local_148 + uVar7) != (code)0x0) break;\n                pppppppcVar33 = pppppppcVar28;\n                local_dc = param_4;\n                if ((int)param_4 < (int)pppppppcVar25) {\n                  local_150 = (code *******)0x1;\n                  goto LAB_000557e4;\n                }\n                if ((code *******)(uint)((int)pppppppcVar26 < (int)param_4) != (code *******)0x0) {\n                  local_150 = (code *******)0x1;\n                  param_4 = (code *******)(uint)((int)pppppppcVar26 < (int)param_4);\n                  goto LAB_000557e4;\n                }\n              }\n              while( true ) {\n                pppppppcVar29 = local_dc;\n                pppppppcVar30 = param_9;\n                pppppppcVar6 = (code *******)(*pcVar4)(&local_b4);\n                pppppppcVar14 = local_60;\n                pppppppcVar42 = local_8c;\n                pppppppcVar33 = pppppppcVar28;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar6 != (code *******)0x0) goto LAB_000557e4;\n                if (((ppppppcVar35 != (code ******)0x1) && (local_98 != (code *******)0x0)) &&\n                   (*local_ac == -1)) goto LAB_00055b1c;\n                local_3c = 0;\n                local_48 = 0;\n                local_4c = (code *******)0x0;\n                local_138 = local_8c;\n                local_d8 = (code *******)0x0;\n                unaff_s7 = (code *******)local_60[9];\n                pppppppcVar30 = local_5c;\n                param_4 = pppppppcVar14;\n                if (((uint)unaff_s7[0xd] & 0x1000000) == 0) break;\n                pppppppcVar29 = (code *******)((int)local_8c + -1);\n                pppppppcVar33 = (code *******)FUN_00049110(&local_b4);\n                if (((uint)pppppppcVar33 & 1) == 0) {\n                  if (pppppppcVar33 == (code *******)0x0) break;\n                  if (((uint)pppppppcVar33 & 6) == 6) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xc];\n                    goto LAB_00054d1c;\n                  }\n                  if (((uint)pppppppcVar33 & 2) != 0) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xb];\n                    goto LAB_00054d1c;\n                  }\n                  pppppppcVar28 = pppppppcVar33;\n                  if (((uint)pppppppcVar33 & 4) == 0) break;\n                  pppppppcVar30 = (code *******)unaff_s7[10];\n                  pppppppcVar29 = pppppppcVar14;\n                  unaff_s7 = (code *******)FUN_0004ae34(&local_d8);\n                  pppppppcVar28 = pppppppcVar33;\n                  if (unaff_s7 != (code *******)0x0) break;\n                  if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                }\n                else {\n                  unaff_s7 = (code *******)pppppppcVar14[10];\nLAB_00054d1c:\n                  pppppppcVar28 = (code *******)PTR_s_nt0_000795b8;\n                  if (unaff_s7 != (code *******)0x0) break;\n                }\n                pppppppcVar28 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                local_dc = (code *******)\n                           (*(code *)PTR___assert_fail_000799f8)\n                                     (PTR_s_nt0_000795b8 + 0x71a0,pppppppcVar29,0x435);\n                if (local_dc == pppppppcVar26) {\n                  if ((int)local_dc < (int)param_3) {\n                    uVar7 = (uint)(byte)*(code *)((int)local_dc + (int)param_2);\n                  }\n                  else {\n                    uVar7 = 0;\n                  }\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    uVar7 = (uint)*(byte *)((int)ppppppcVar32 + uVar7);\n                  }\n                  if (*(code *)((int)local_148 + uVar7) == (code)0x0) {\n                    local_150 = (code *******)0x1;\n                    pppppppcVar30 = param_9;\n                    pppppppcVar33 = pppppppcVar28;\n                    goto LAB_000557e4;\n                  }\n                }\n              }\n              pppppppcVar33 = pppppppcVar28;\n              bVar1 = pppppppcVar36 != (code *******)0x0;\n              if ((local_50 == (code *******)0x0) ||\n                 (local_50[(int)pppppppcVar42] = (code ******)unaff_s7,\n                 pppppppcVar14[0x13] == (code ******)0x0)) {\nLAB_00054d50:\n                if ((int)unaff_s7[0xd] << 4 < 0) {\n                  if ((((uint)unaff_s7[0xd] & 0x1000000) == 0) ||\n                     (pppppppcVar29 = unaff_s7, pppppppcVar30 = pppppppcVar42,\n                     iVar18 = FUN_00049440(&local_b4), iVar18 != 0)) {\n                    unaff_s8 = pppppppcVar42;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                  }\n                  else {\n                    pppppppcVar42 = (code *******)0xffffffff;\n                    pppppppcVar28 = (code *******)0x0;\n                  }\n                }\n                else {\n                  pppppppcVar42 = (code *******)0xffffffff;\n                  pppppppcVar28 = (code *******)0x0;\n                }\n                pcVar8 = (code *)(PTR_DAT_000799a4 + -0x7144);\n                pcVar9 = (code *)(PTR_DAT_000799a4 + -0x1980);\n                pcVar10 = (code *)(PTR_DAT_000799a4 + -0x2f9c);\n                unaff_s8 = pppppppcVar42;\n                local_144 = pppppppcVar36;\n                while( true ) {\n                  uVar44 = CONCAT44(local_98,local_84);\n                  unaff_s5 = (code *******)((int)local_8c + 1);\n                  pppppppcVar29 = local_8c;\n                  if ((int)local_7c <= (int)local_8c) break;\n                  if (((int)local_90 <= (int)unaff_s5) && ((int)local_90 < (int)local_84))\n                  goto LAB_00054e94;\n                  if ((int)local_98 <= (int)unaff_s5) {\n                    while ((int)((ulonglong)uVar44 >> 0x20) < (int)uVar44) {\nLAB_00054e94:\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 2);\n                      local_d8 = (code *******)(*pcVar8)(&local_b4);\n                      if (local_d8 == (code *******)0x0) break;\n                      pppppppcVar14 = param_4;\n                      if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                      pppppppcVar33 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                      pppppppcVar30 = (code *******)0x46c;\n                      pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                      uVar44 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0);\n                      pppppppcVar28 = pppppppcVar38;\n                    }\n                  }\n                  pppppppcVar42 = local_60;\n                  if ((int)unaff_s7[0xd] << 5 < 0) {\n                    pppppppcVar31 = pppppppcVar42;\n                    if (0 < (int)unaff_s7[2]) {\n                      pcVar11 = (code *)(PTR_DAT_000799a4 + -0x6fdc);\n                      pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6ef0);\n                      param_6 = (code *******)0x0;\n                      do {\n                        param_5 = (code *******)unaff_s7[3][(int)param_6];\n                        ppppppcVar39 = *pppppppcVar42;\n                        pppppcVar13 = ppppppcVar39[(int)param_5 * 2 + 1];\n                        if (((uint)pppppcVar13 & 0x800) != 0) {\n                          if (((uint)pppppcVar13 & 0xffc000) != 0) {\n                            pppppppcVar29 = local_8c;\n                            uVar19 = (*pcVar12)(&local_b4,local_8c,local_5c);\n                            uVar7 = (uint)((int)ppppppcVar39[(int)param_5 * 2 + 1] << 8) >> 0x16;\n                            if ((uVar7 & 4) == 0) {\n                              uVar27 = uVar19 & 1;\n                              if ((uVar7 & 8) != 0) goto joined_r0x00054f40;\n                            }\n                            else {\n                              uVar27 = uVar7 & 8;\n                              if ((uVar19 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                              if (uVar27 != 0) goto LAB_000550a4;\n                            }\n                            if ((((uVar7 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                               (((uVar7 & 0x80) != 0 &&\n                                (pppppppcVar33 = local_8c, (uVar19 & 8) == 0)))) goto LAB_000550a4;\n                          }\n                          pppppppcVar30 = &local_b4;\n                          pppppppcVar29 = param_5;\n                          pppppppcVar33 = local_8c;\n                          iVar18 = (*pcVar10)(pppppppcVar42);\n                          if (iVar18 != 0) {\n                            pppppppcVar14 = (code *******)((int)local_8c + iVar18);\n                            if (iVar18 <= local_3c) {\n                              iVar18 = local_3c;\n                            }\n                            pppppppcVar29 = pppppppcVar14;\n                            local_3c = iVar18;\n                            local_d4 = (code *******)(*pcVar11)(&local_b4);\n                            pppppppcVar15 = local_d4;\n                            if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                            pppppppcVar30 =\n                                 (code *******)\n                                 (pppppppcVar42[6] + (int)pppppppcVar42[3][(int)param_5] * 3);\n                            unaff_s4 = (code *******)((int)pppppppcVar14 * 4);\n                            param_5 = local_50 + (int)pppppppcVar14;\n                            if (*param_5 == (code ******)0x0) {\n                              local_d0 = (code *******)*pppppppcVar30;\n                              local_cc = (code *******)pppppppcVar30[1];\n                              local_c8 = (code *******)pppppppcVar30[2];\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *param_5 = ppppppcVar39;\n                            }\n                            else {\n                              pppppppcVar29 = (code *******)(*param_5)[10];\n                              local_d4 = (code *******)FUN_000484bc(&local_d0);\n                              pppppppcVar15 = local_d4;\n                              if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar15 = local_50 + (int)pppppppcVar14;\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *pppppppcVar15 = ppppppcVar39;\n                              (*(code *)PTR_free_00079c24)(local_c8);\n                            }\n                            unaff_s4 = local_50 + (int)pppppppcVar14;\n                            if ((*unaff_s4 == (code ******)0x0) &&\n                               (pppppppcVar15 = local_d4, local_d4 != (code *******)0x0))\n                            goto LAB_00055e44;\n                          }\n                        }\nLAB_000550a4:\n                        param_6 = (code *******)((int)param_6 + 1);\n                      } while ((int)param_6 < (int)unaff_s7[2]);\n                    }\n                    local_d8 = (code *******)0x0;\n                  }\n                  uVar7 = (uint)(byte)*(code *)((int)local_8c + (int)local_b0);\n                  local_8c = (code *******)((int)local_8c + 1);\n                  do {\n                    if (unaff_s7[0xb] != (code ******)0x0) {\n                      pppppppcVar30 = (code *******)unaff_s7[0xb][uVar7];\nLAB_000553a0:\n                      pppppppcVar14 = pppppppcVar30;\n                      if (local_50 != (code *******)0x0) goto LAB_000553ac;\n                      goto LAB_000553cc;\n                    }\n                    pppppppcVar31 = (code *******)unaff_s7[0xc];\n                    if (pppppppcVar31 != (code *******)0x0) {\n                      pppppppcVar29 = (code *******)((int)local_8c + -1);\n                      uVar19 = FUN_00049110(&local_b4);\n                      if ((uVar19 & 1) == 0) {\n                        pppppppcVar30 = (code *******)pppppppcVar31[uVar7];\n                      }\n                      else {\n                        pppppppcVar31 = pppppppcVar31 + uVar7 + 0x100;\n                        pppppppcVar30 = (code *******)*pppppppcVar31;\n                      }\n                      goto LAB_000553a0;\n                    }\n                    pppppppcVar29 = unaff_s7;\n                    pppppppcVar30 = local_5c;\n                    iVar18 = (*pcVar9)(local_60);\n                  } while (iVar18 != 0);\n                  local_d8 = (code *******)0xc;\n                  pppppppcVar15 = local_d8;\nLAB_00055e44:\n                  local_d8 = pppppppcVar15;\n                  param_4 = (code *******)0x0;\n                  if (local_50 == (code *******)0x0) {\n                    pppppppcVar14 = param_4;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    break;\n                  }\n                  pppppppcVar30 = (code *******)0x0;\nLAB_000553ac:\n                  pppppppcVar29 = &local_b4;\n                  pppppppcVar14 = (code *******)FUN_00053684(&local_d8);\nLAB_000553cc:\n                  param_4 = pppppppcVar14;\n                  if (pppppppcVar14 == (code *******)0x0) {\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    if ((local_50 == (code *******)0x0) ||\n                       ((pppppppcVar28 != (code *******)0x0 && (pppppppcVar34 == (code *******)0x0))\n                       )) break;\n                    param_6 = &local_b4;\n                    param_5 = (code *******)&local_d8;\n                    pppppppcVar31 = (code *******)(PTR_DAT_000799a4 + 0x3684);\n                    do {\n                      pppppppcVar15 = local_50 + (int)local_8c;\n                      pppppppcVar42 = local_8c;\n                      do {\n                        pppppppcVar42 = (code *******)((int)pppppppcVar42 + 1);\n                        pppppppcVar29 = local_4c;\n                        param_4 = pppppppcVar14;\n                        if ((int)local_4c < (int)pppppppcVar42) goto LAB_00055da8;\n                        local_8c = (code *******)((int)local_8c + 1);\n                        pppppppcVar15 = pppppppcVar15 + 1;\n                      } while (*pppppppcVar15 == (code ******)0x0);\n                      pppppppcVar30 = (code *******)0x0;\n                      pppppppcVar29 = param_6;\n                      param_4 = (code *******)(*(code *)pppppppcVar31)(param_5);\n                      if (local_d8 != (code *******)0x0) {\n                        if (param_4 == (code *******)0x0) goto LAB_00055da8;\n                        break;\n                      }\n                      pppppppcVar29 = local_4c;\n                    } while (param_4 == (code *******)0x0);\n                  }\n                  pppppppcVar15 = (code *******)((uint)unaff_s7 ^ (uint)param_4);\n                  pppppppcVar42 = unaff_s7;\n                  pppppppcVar14 = local_138;\n                  if ((bVar1) &&\n                     (pppppppcVar42 = pppppppcVar15, pppppppcVar14 = unaff_s5,\n                     pppppppcVar15 != (code *******)0x0)) {\n                    bVar1 = false;\n                    pppppppcVar14 = local_138;\n                  }\n                  local_138 = pppppppcVar14;\n                  unaff_s7 = param_4;\n                  if ((((uint)param_4[0xd] & 0x8000000) != 0) &&\n                     ((((uint)param_4[0xd] & 0x1000000) == 0 ||\n                      (pppppppcVar29 = param_4, pppppppcVar30 = local_8c,\n                      iVar18 = FUN_00049440(&local_b4), iVar18 != 0)))) {\n                    unaff_s7 = pppppppcVar42;\n                    unaff_s8 = local_8c;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                    local_144 = (code *******)0x0;\n                    unaff_s7 = param_4;\n                  }\n                }\nLAB_00055da8:\n                if (local_144 != (code *******)0x0) {\n                  *local_144 = (code ******)((int)local_138 + (int)*local_144);\n                }\n              }\n              else {\n                param_4 = unaff_s7 + 1;\n                pppppppcVar30 = (code *******)0x0;\n                pppppppcVar29 = param_4;\n                local_d8 = (code *******)FUN_00047a44(&local_b4);\n                unaff_s8 = local_d8;\n                if (local_d8 == (code *******)0x0) {\n                  if (((uint)unaff_s7[0xd] & 0x2000000) == 0) {\n                    pppppppcVar29 = param_4;\n                    bVar1 = false;\n                  }\n                  else {\n                    pppppppcVar29 = param_4;\n                    local_d8 = (code *******)FUN_00052d84(&local_b4);\n                    unaff_s8 = local_d8;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055dbc;\n                    bVar1 = false;\n                  }\n                  goto LAB_00054d50;\n                }\n              }\nLAB_00055dbc:\n              if (unaff_s8 == (code *******)0xffffffff) {\nLAB_00055b04:\n                FUN_0004b7e8(&local_b4);\nLAB_00055b1c:\n                local_dc = (code *******)((int)pppppppcVar24 + (int)local_dc);\n                if ((int)pppppppcVar25 <= (int)local_dc) goto code_r0x00055b38;\n                local_150 = (code *******)0x1;\n                goto LAB_000557e4;\n              }\n              if (unaff_s8 == (code *******)&SUB_fffffffe) {\n                local_150 = (code *******)0xc;\n                goto LAB_000557e4;\n              }\n              local_58 = unaff_s8;\n              if (((uint)param_1[7] & 0x8000000) == 0) {\n                if (pppppppcVar3 < (code *******)0x2) {\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055c08;\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                else {\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                if (pppppppcVar3 < (code *******)0x2) {\nLAB_00055c6c:\n                  pppppppcVar28 = pppppppcVar33;\n                  unaff_s4 = local_60;\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055548;\n                }\n                else {\n                  cVar23 = *(code *)(pppppppcVar38 + 0x16);\nLAB_00055c20:\n                  pppppppcVar28 = pppppppcVar33;\n                  if (-1 < (char)cVar23) goto LAB_00055c6c;\n                }\n                pppppppcVar31 = local_54;\n                pppppppcVar42 = local_60;\n                unaff_s4 = pppppppcVar42;\n                if (unaff_s8 < (code *******)0x3fffffff) {\n                  param_4 = (code *******)((int)((int)unaff_s8 + 1) * 4);\n                  unaff_s5 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                  if (unaff_s5 == (code *******)0x0) {\nLAB_00055b9c:\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    local_150 = (code *******)0xc;\n                    pppppppcVar33 = pppppppcVar28;\n                  }\n                  else {\n                    pppppppcVar29 = (code *******)&local_d0;\n                    if (pppppppcVar42[0x13] == (code ******)0x0) {\n                      local_cc = (code *******)0x0;\n                      local_c8 = pppppppcVar31;\n                      local_c0 = 0;\n                      local_bc = 0;\n                      local_b8 = 0;\n                      local_d0 = unaff_s5;\n                      local_c4 = unaff_s8;\n                      param_5 = (code *******)FUN_0005421c(&local_b4);\n                      (*(code *)PTR_free_00079c24)(local_b8);\n                      if (param_5 == (code *******)0x0) {\n                        param_4 = (code *******)*unaff_s5;\n                        if (param_4 == (code *******)0x0) {\nLAB_00055b70:\n                          (*(code *)PTR_free_00079c24)(unaff_s5);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          pppppppcVar33 = pppppppcVar28;\n                          goto LAB_00055b04;\n                        }\nLAB_00055528:\n                        (*(code *)PTR_free_00079c24)(local_50);\n                        pppppppcVar33 = pppppppcVar28;\n                        unaff_s4 = pppppppcVar42;\n                        local_58 = unaff_s8;\n                        local_54 = pppppppcVar31;\n                        local_50 = unaff_s5;\n                        goto LAB_00055548;\n                      }\nLAB_00055acc:\n                      param_4 = (code *******)0x0;\n                      pppppppcVar33 = pppppppcVar28;\n                      unaff_s4 = pppppppcVar42;\n                    }\n                    else {\n                      param_4 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                      if (param_4 == (code *******)0x0) goto LAB_00055b9c;\n                      unaff_s7 = (code *******)&local_d0;\n                      pcVar8 = (code *)(PTR_DAT_000799a4 + 0x421c);\n                      pcVar9 = (code *)(PTR_DAT_000799a4 + -0x6bc0);\n                      pppppppcVar33 = pppppppcVar28;\n                      while( true ) {\n                        pppppppcVar28 = (code *******)((int)unaff_s8 + 1);\n                        param_6 = (code *******)((int)pppppppcVar28 * 4);\n                        pppppppcVar30 = param_6;\n                        (*(code *)PTR_memset_00079b00)(param_4,0);\n                        local_c0 = 0;\n                        local_bc = 0;\n                        local_b8 = 0;\n                        pppppppcVar29 = unaff_s7;\n                        local_d0 = unaff_s5;\n                        local_cc = param_4;\n                        local_c8 = pppppppcVar31;\n                        local_c4 = unaff_s8;\n                        param_5 = (code *******)(*pcVar8)(&local_b4);\n                        (*(code *)PTR_free_00079c24)(local_b8);\n                        unaff_s4 = pppppppcVar28;\n                        if (param_5 != (code *******)0x0) break;\n                        if ((*unaff_s5 != (code ******)0x0) ||\n                           (param_6 = param_6 + -1, *param_4 != (code ******)0x0)) {\n                          pppppppcVar29 = unaff_s5;\n                          pppppppcVar30 = param_4;\n                          param_5 = (code *******)FUN_000520d0(pppppppcVar42);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          if (param_5 != (code *******)0x0) goto LAB_00055acc;\n                          goto LAB_00055528;\n                        }\n                        param_6 = (code *******)((int)local_50 + (int)param_6);\n                        do {\n                          while( true ) {\n                            unaff_s8 = (code *******)((int)unaff_s8 + -1);\n                            if ((int)unaff_s8 < 0) goto LAB_00055b70;\n                            pppppppcVar29 = (code *******)param_6[-1];\n                            if (pppppppcVar29 != (code *******)0x0) break;\n                            param_6 = param_6 + -1;\n                          }\n                          param_6 = param_6 + -1;\n                        } while (((uint)pppppppcVar29[0xd] & 0x8000000) == 0);\n                        pppppppcVar31 = (code *******)(*pcVar9)(&local_b4,pppppppcVar29,unaff_s8);\n                        pppppppcVar33 = pppppppcVar28;\n                      }\n                    }\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    (*(code *)PTR_free_00079c24)(param_4);\n                    local_150 = param_5;\n                    if (param_5 == (code *******)0x1) goto LAB_00055b04;\n                  }\n                }\n                else {\n                  local_150 = (code *******)0xc;\n                  pppppppcVar33 = pppppppcVar28;\n                }\n                goto LAB_000557e4;\n              }\n              if (pppppppcVar38[0x13] != (code ******)0x0) {\n                pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                pppppppcVar30 = unaff_s8;\n                local_54 = (code *******)FUN_00049440(&local_b4);\n                goto LAB_00055c6c;\n              }\nLAB_00055c08:\n              if ((((uint)param_1[7] & 0x8000000) == 0) && ((code *******)0x1 < pppppppcVar3)) {\n                cVar23 = *(code *)(pppppppcVar38 + 0x16);\n                goto LAB_00055c20;\n              }\nLAB_00055548:\n              if (pppppppcVar3 == (code *******)0x0) goto LAB_000557e4;\n              if (pppppppcVar3 < (code *******)0x2) {\n                *param_8 = (code ******)0x0;\n                param_8[1] = (code ******)local_58;\n                goto LAB_000555ac;\n              }\n              pppppppcVar29 = param_8 + 2;\n              do {\n                pppppppcVar29[1] = (code ******)0xffffffff;\n                *pppppppcVar29 = (code ******)0xffffffff;\n                pppppppcVar29 = pppppppcVar29 + 2;\n              } while (pppppppcVar29 != param_8 + (int)pppppppcVar3 * 2);\n              *param_8 = (code ******)0x0;\n              param_8[1] = (code ******)local_58;\n              if (((uint)param_1[7] & 0x8000000) != 0) {\nLAB_000555ac:\n                pppppppcVar33 = param_8;\n                do {\n                  pppppppcVar29 = (code *******)*pppppppcVar33;\n                  if (pppppppcVar29 != (code *******)0xffffffff) {\n                    if (local_68 != '\0') {\n                      pppppppcVar34 = local_94;\n                      if (pppppppcVar29 != local_98) {\n                        pppppppcVar34 = *(code ********)(local_a8 + (int)pppppppcVar29 * 4);\n                      }\n                      *pppppppcVar33 = (code ******)pppppppcVar34;\n                      pppppppcVar29 = local_94;\n                      if (local_98 != (code *******)pppppppcVar33[1]) {\n                        pppppppcVar29 = *(code ********)(local_a8 + (int)pppppppcVar33[1] * 4);\n                      }\n                      pppppppcVar33[1] = (code ******)pppppppcVar29;\n                    }\n                    *pppppppcVar33 = (code ******)((int)local_dc + (int)*pppppppcVar33);\n                    pppppppcVar29 = (code *******)((int)local_dc + (int)pppppppcVar33[1]);\n                    pppppppcVar33[1] = (code ******)pppppppcVar29;\n                  }\n                  pppppppcVar33 = pppppppcVar33 + 2;\n                } while (pppppppcVar33 != param_8 + (int)pppppppcVar3 * 2);\n                if (0 < local_118) {\n                  pppppppcVar33 = param_8 + (int)pppppppcVar3 * 2;\n                  do {\n                    *pppppppcVar33 = (code ******)0xffffffff;\n                    pppppppcVar33[1] = (code ******)0xffffffff;\n                    pppppppcVar33 = pppppppcVar33 + 2;\n                  } while (pppppppcVar33 != param_8 + (int)param_7 * 2);\n                }\n                pppppppcVar30 = local_dc;\n                pppppppcVar33 = param_8;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar38[0x21] != (code ******)0x0) {\n                  pppppppcVar30 = (code *******)((int)pppppppcVar3 + -1);\n                  pppppppcVar34 = (code *******)0x0;\n                  pppppppcVar3 = param_8;\n                  while( true ) {\n                    pppppppcVar29 = (code *******)((int)pppppppcVar34 * 4);\n                    if (pppppppcVar30 == pppppppcVar34) break;\n                    if (*(code ********)((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) !=\n                        pppppppcVar34) {\n                      pppppppcVar3[2] =\n                           param_8[(int)((int)*(code ********)\n                                               ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1)\n                                   * 2];\n                      pppppppcVar3[3] =\n                           param_8[((int)*(code ******)\n                                          ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1) * 2 +\n                                   1];\n                    }\n                    pppppppcVar34 = (code *******)((int)pppppppcVar34 + 1);\n                    pppppppcVar3 = pppppppcVar3 + 2;\n                  }\n                }\n                goto LAB_000557e4;\n              }\n              if ((char)*(code *)(pppppppcVar38 + 0x16) < '\0') {\n                local_168 = (uint)(0 < (int)pppppppcVar38[0x13]);\n              }\n              else {\n                local_168 = 0;\n              }\n              pppppppcVar29 = &local_b4;\n              pppppppcVar30 = pppppppcVar3;\n              pppppppcVar33 = param_8;\n              local_150 = (code *******)FUN_0004f4a0(param_1);\n              if (local_150 == (code *******)0x0) goto LAB_000555ac;\n            }\n          }\n          else if (local_90 < 0x3fffffff) {\n            local_50 = (code *******)(*(code *)PTR_malloc_00079b54)((local_90 + 1) * 4);\n            if (local_50 != (code *******)0x0) goto LAB_00055a40;\n            local_150 = (code *******)0xc;\n            param_6 = pppppppcVar36;\n          }\n          else {\n            local_150 = (code *******)0xc;\n            param_6 = pppppppcVar36;\n          }\n        }\n        else {\n          unaff_s5 = (code *******)((int)ppppppcVar35 * 8);\n          if (pppppppcVar36 < (code *******)0xccccccd) {\n            unaff_s4 = (code *******)(*(code *)PTR_malloc_00079b54)((int)ppppppcVar35 * 0x28);\n            local_40 = unaff_s4;\n            local_30 = (*(code *)PTR_malloc_00079b54)(unaff_s5);\n            if ((unaff_s4 != (code *******)0x0) && (local_30 != 0)) goto LAB_000559f0;\n          }\n          local_150 = (code *******)0xc;\n          param_6 = pppppppcVar36;\n        }\nLAB_000557e4:\n        (*(code *)PTR_free_00079c24)(local_50);\n        param_1 = pppppppcVar30;\n        if (pppppppcVar38[0x13] != (code ******)0x0) {\n          FUN_0004b7e8(&local_b4);\n          (*(code *)PTR_free_00079c24)(local_30);\n          (*(code *)PTR_free_00079c24)(local_40);\n          param_1 = pppppppcVar30;\n        }\n        FUN_0004b2bc(&local_b4);\n        pppppppcStack_1a0 = param_4;\n        pppppppcStack_19c = pppppppcVar31;\n      }\n    }\n  }" (if "if") (parenthesized_expression "(param_1[2] == (code ******)0x0)" (( "(") (binary_expression "param_1[2] == (code ******)0x0" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (== "==") (cast_expression "(code ******)0x0" (( "(") (type_descriptor "code ******" (type_identifier "code") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    local_150 = (code *******)0x1;\n  }" ({ "{") (expression_statement "local_150 = (code *******)0x1;" (assignment_expression "local_150 = (code *******)0x1" (identifier "local_150") (= "=") (cast_expression "(code *******)0x1" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x1"))) (; ";")) (} "}")) (else_clause "else if (pppppppcVar38[9] == (code ******)0x0) {\n    local_150 = (code *******)0x1;\n  }\n  else if (pppppppcVar38[10] == (code ******)0x0) {\n    local_150 = (code *******)0x1;\n  }\n  else if (pppppppcVar38[0xb] == (code ******)0x0) {\n    local_150 = (code *******)0x1;\n  }\n  else {\n    pppppppcVar29 = (code *******)pppppppcVar38[0xc];\n    if (pppppppcVar29 == (code *******)0x0) {\n      local_150 = (code *******)0x1;\n    }\n    else {\n      pppppppcVar3 = param_5;\n      if ((((pppppppcVar38[9][2] == (code *****)0x0) && (pppppppcVar38[10][2] == (code *****)0x0))\n          && ((pppppppcVar38[0xb][2] == (code *****)0x0 || (((uint)param_1[7] & 0x1000000) == 0))))\n         && ((pppppppcVar3 = param_4, param_4 != (code *******)0x0 &&\n             (param_4 = param_5, pppppppcVar3 = param_5, param_5 != (code *******)0x0)))) {\n        local_150 = (code *******)0x1;\n        pppppppcStack_1a0 = param_5;\n      }\n      else {\n        param_5 = pppppppcVar3;\n        pppppppcVar3 = (code *******)((int)param_7 - local_118);\n        if (pppppppcVar3 == (code *******)0x0) {\n          pppppppcVar34 = (code *******)(uint)(pppppppcVar38[0x13] != (code ******)0x0);\n        }\n        else {\n          pppppppcVar34 = (code *******)0x1;\n        }\n        ppppppcVar32 = param_1[5];\n        local_6c = (byte)((uint)((int)param_1[3] << 9) >> 0x1f);\n        local_64 = (code *******)pppppppcVar38[0x17];\n        pppppppcVar31 = (code *******)((int)pppppppcVar38[2] + 1);\n        if ((int)pppppppcVar38[2] + 1 < (int)local_64) {\n          pppppppcVar31 = local_64;\n        }\n        pppppppcVar30 = (code *******)(uint)((int)param_3 + 1 < (int)pppppppcVar31);\n        pppppppcVar33 = (code *******)0x1;\n        local_69 = local_6c;\n        if (ppppppcVar32 != (code ******)0x0) {\n          local_69 = 1;\n        }\n        local_6b = (byte)((uint)((int)pppppppcVar38[0x16] << 2) >> 0x1f);\n        local_6a = (byte)((uint)((int)pppppppcVar38[0x16] << 3) >> 0x1f);\n        pppppppcVar29 = (code *******)((int)param_3 + 1);\n        if (pppppppcVar30 == (code *******)0x0) {\n          pppppppcVar29 = pppppppcVar31;\n        }\n        local_b4 = param_2;\n        local_88 = param_3;\n        local_84 = param_3;\n        local_80 = param_3;\n        local_7c = param_3;\n        local_74 = ppppppcVar32;\n        local_150 = (code *******)FUN_00046d2c(&local_b4);\n        pppppppcVar31 = pppppppcVar34;\n        param_6 = param_6;\n        if (local_150 != (code *******)0x0) goto LAB_000557e4;\n        local_70 = pppppppcVar38 + 0x18;\n        local_66 = (byte)((uint)((int)pppppppcVar38[0x16] << 4) >> 0x1f);\n        pppppppcVar2 = (code *******)0x0;\n        local_98 = pppppppcVar2;\n        if ((local_69 == 0) && (local_b0 = param_2, (int)pppppppcVar38[0x17] < 2)) {\n          local_98 = param_3;\n        }\n        local_7c = param_6;\n        local_80 = param_6;\n        local_67 = (byte)((uint)((int)param_1[7] << 7) >> 0x1f);\n        ppppppcVar35 = pppppppcVar38[0x13];\n        pppppppcVar36 = (code *******)((int)ppppppcVar35 * 2);\n        local_5c = param_9;\n        local_58 = (code *******)0xffffffff;\n        local_94 = local_98;\n        if ((int)pppppppcVar36 < 1) {\nLAB_000559f0:\n          local_3c = 1;\n          local_44 = pppppppcVar36;\n          local_34 = pppppppcVar36;\n          if ((pppppppcVar3 < (code *******)0x2) && (((uint)pppppppcVar38[0x16] & 0x40000000) == 0))\n          {\n            local_50 = (code *******)0x0;\nLAB_00055a40:\n            local_78 = 6;\n            if (((uint)param_9 & 1) != 0) {\n              local_78 = 4;\n            }\n            pppppppcVar24 = (code *******)0x1;\n            pppppppcVar25 = param_4;\n            if ((int)param_5 < (int)param_4) {\n              pppppppcVar24 = (code *******)0xffffffff;\n              pppppppcVar25 = param_5;\n            }\n            pppppppcVar26 = param_5;\n            if ((int)param_5 <= (int)param_4) {\n              pppppppcVar26 = param_4;\n            }\n            ppppppcVar35 = pppppppcVar38[0x17];\n            uVar16 = 8;\n            if (local_148 != (code *******)0x0) {\n              if (ppppppcVar35 == (code ******)0x1) {\n                pppppppcVar28 = (code *******)0x4;\n              }\n              else {\n                pppppppcVar28 = pppppppcVar2;\n                if ((-1 < (int)param_1[3] << 9) && (ppppppcVar32 == (code ******)0x0)) {\n                  pppppppcVar28 = (code *******)0x4;\n                }\n              }\n              pppppppcVar29 = (code *******)0x0;\n              if ((int)param_4 <= (int)param_5) {\n                pppppppcVar29 = (code *******)0x2;\n              }\n              uVar16 = (uint)(ppppppcVar32 != (code ******)0x0) | (uint)pppppppcVar28 |\n                       (uint)pppppppcVar29;\n            }\n            local_dc = param_4;\n            if ((int)param_4 < (int)pppppppcVar25) {\n              local_150 = (code *******)0x1;\n              param_6 = pppppppcVar36;\n            }\n            else if ((int)pppppppcVar26 < (int)param_4) {\n              local_150 = (code *******)0x1;\n              param_4 = (code *******)(uint)((int)param_5 < (int)param_4);\n              param_6 = pppppppcVar36;\n            }\n            else {\n              pppppppcVar36 = (code *******)&local_dc;\n              if ((code *******)(uint)((int)param_5 < (int)param_4) != (code *******)0x0) {\n                pppppppcVar36 = (code *******)0x0;\n              }\n              pcVar4 = (code *)(PTR_DAT_000799a4 + -0x2b7c);\n              piVar5 = (int *)(PTR_s_nt0_000795b8 + (uVar16 - 4) * 4 + 0x6e38);\nLAB_00055b44:\n              if (uVar16 - 4 < 5) {\n                    \n                    \n                pppppppcVar29 = (code *******)(*(code *)(&_gp_1 + *piVar5))();\n                return pppppppcVar29;\n              }\n              param_5 = &local_b4;\n              pppppppcVar28 = pppppppcVar33;\n              while( true ) {\n                param_4 = local_dc;\n                pppppppcVar33 = (code *******)((int)local_dc - local_9c);\n                pppppppcVar30 = param_9;\n                pppppppcVar31 = pppppppcVar2;\n                param_6 = local_148;\n                unaff_s4 = param_3;\n                unaff_s5 = pppppppcVar24;\n                unaff_s7 = pppppppcVar26;\n                if (local_94 <= pppppppcVar33) {\n                  pppppppcVar29 = local_dc;\n                  local_150 = (code *******)(*pcVar4)(param_5);\n                  pppppppcVar33 = pppppppcVar28;\n                  if (local_150 != (code *******)0x0) goto LAB_000557e4;\n                  pppppppcVar33 = (code *******)((int)param_4 - local_9c);\n                }\n                if ((int)param_4 < (int)param_3) {\n                  uVar7 = (uint)(byte)*(code *)((int)pppppppcVar33 + (int)local_b0);\n                }\n                else {\n                  uVar7 = 0;\n                }\n                param_4 = (code *******)((int)param_4 + (int)pppppppcVar24);\n                if (*(code *)((int)local_148 + uVar7) != (code)0x0) break;\n                pppppppcVar33 = pppppppcVar28;\n                local_dc = param_4;\n                if ((int)param_4 < (int)pppppppcVar25) {\n                  local_150 = (code *******)0x1;\n                  goto LAB_000557e4;\n                }\n                if ((code *******)(uint)((int)pppppppcVar26 < (int)param_4) != (code *******)0x0) {\n                  local_150 = (code *******)0x1;\n                  param_4 = (code *******)(uint)((int)pppppppcVar26 < (int)param_4);\n                  goto LAB_000557e4;\n                }\n              }\n              while( true ) {\n                pppppppcVar29 = local_dc;\n                pppppppcVar30 = param_9;\n                pppppppcVar6 = (code *******)(*pcVar4)(&local_b4);\n                pppppppcVar14 = local_60;\n                pppppppcVar42 = local_8c;\n                pppppppcVar33 = pppppppcVar28;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar6 != (code *******)0x0) goto LAB_000557e4;\n                if (((ppppppcVar35 != (code ******)0x1) && (local_98 != (code *******)0x0)) &&\n                   (*local_ac == -1)) goto LAB_00055b1c;\n                local_3c = 0;\n                local_48 = 0;\n                local_4c = (code *******)0x0;\n                local_138 = local_8c;\n                local_d8 = (code *******)0x0;\n                unaff_s7 = (code *******)local_60[9];\n                pppppppcVar30 = local_5c;\n                param_4 = pppppppcVar14;\n                if (((uint)unaff_s7[0xd] & 0x1000000) == 0) break;\n                pppppppcVar29 = (code *******)((int)local_8c + -1);\n                pppppppcVar33 = (code *******)FUN_00049110(&local_b4);\n                if (((uint)pppppppcVar33 & 1) == 0) {\n                  if (pppppppcVar33 == (code *******)0x0) break;\n                  if (((uint)pppppppcVar33 & 6) == 6) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xc];\n                    goto LAB_00054d1c;\n                  }\n                  if (((uint)pppppppcVar33 & 2) != 0) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xb];\n                    goto LAB_00054d1c;\n                  }\n                  pppppppcVar28 = pppppppcVar33;\n                  if (((uint)pppppppcVar33 & 4) == 0) break;\n                  pppppppcVar30 = (code *******)unaff_s7[10];\n                  pppppppcVar29 = pppppppcVar14;\n                  unaff_s7 = (code *******)FUN_0004ae34(&local_d8);\n                  pppppppcVar28 = pppppppcVar33;\n                  if (unaff_s7 != (code *******)0x0) break;\n                  if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                }\n                else {\n                  unaff_s7 = (code *******)pppppppcVar14[10];\nLAB_00054d1c:\n                  pppppppcVar28 = (code *******)PTR_s_nt0_000795b8;\n                  if (unaff_s7 != (code *******)0x0) break;\n                }\n                pppppppcVar28 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                local_dc = (code *******)\n                           (*(code *)PTR___assert_fail_000799f8)\n                                     (PTR_s_nt0_000795b8 + 0x71a0,pppppppcVar29,0x435);\n                if (local_dc == pppppppcVar26) {\n                  if ((int)local_dc < (int)param_3) {\n                    uVar7 = (uint)(byte)*(code *)((int)local_dc + (int)param_2);\n                  }\n                  else {\n                    uVar7 = 0;\n                  }\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    uVar7 = (uint)*(byte *)((int)ppppppcVar32 + uVar7);\n                  }\n                  if (*(code *)((int)local_148 + uVar7) == (code)0x0) {\n                    local_150 = (code *******)0x1;\n                    pppppppcVar30 = param_9;\n                    pppppppcVar33 = pppppppcVar28;\n                    goto LAB_000557e4;\n                  }\n                }\n              }\n              pppppppcVar33 = pppppppcVar28;\n              bVar1 = pppppppcVar36 != (code *******)0x0;\n              if ((local_50 == (code *******)0x0) ||\n                 (local_50[(int)pppppppcVar42] = (code ******)unaff_s7,\n                 pppppppcVar14[0x13] == (code ******)0x0)) {\nLAB_00054d50:\n                if ((int)unaff_s7[0xd] << 4 < 0) {\n                  if ((((uint)unaff_s7[0xd] & 0x1000000) == 0) ||\n                     (pppppppcVar29 = unaff_s7, pppppppcVar30 = pppppppcVar42,\n                     iVar18 = FUN_00049440(&local_b4), iVar18 != 0)) {\n                    unaff_s8 = pppppppcVar42;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                  }\n                  else {\n                    pppppppcVar42 = (code *******)0xffffffff;\n                    pppppppcVar28 = (code *******)0x0;\n                  }\n                }\n                else {\n                  pppppppcVar42 = (code *******)0xffffffff;\n                  pppppppcVar28 = (code *******)0x0;\n                }\n                pcVar8 = (code *)(PTR_DAT_000799a4 + -0x7144);\n                pcVar9 = (code *)(PTR_DAT_000799a4 + -0x1980);\n                pcVar10 = (code *)(PTR_DAT_000799a4 + -0x2f9c);\n                unaff_s8 = pppppppcVar42;\n                local_144 = pppppppcVar36;\n                while( true ) {\n                  uVar44 = CONCAT44(local_98,local_84);\n                  unaff_s5 = (code *******)((int)local_8c + 1);\n                  pppppppcVar29 = local_8c;\n                  if ((int)local_7c <= (int)local_8c) break;\n                  if (((int)local_90 <= (int)unaff_s5) && ((int)local_90 < (int)local_84))\n                  goto LAB_00054e94;\n                  if ((int)local_98 <= (int)unaff_s5) {\n                    while ((int)((ulonglong)uVar44 >> 0x20) < (int)uVar44) {\nLAB_00054e94:\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 2);\n                      local_d8 = (code *******)(*pcVar8)(&local_b4);\n                      if (local_d8 == (code *******)0x0) break;\n                      pppppppcVar14 = param_4;\n                      if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                      pppppppcVar33 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                      pppppppcVar30 = (code *******)0x46c;\n                      pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                      uVar44 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0);\n                      pppppppcVar28 = pppppppcVar38;\n                    }\n                  }\n                  pppppppcVar42 = local_60;\n                  if ((int)unaff_s7[0xd] << 5 < 0) {\n                    pppppppcVar31 = pppppppcVar42;\n                    if (0 < (int)unaff_s7[2]) {\n                      pcVar11 = (code *)(PTR_DAT_000799a4 + -0x6fdc);\n                      pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6ef0);\n                      param_6 = (code *******)0x0;\n                      do {\n                        param_5 = (code *******)unaff_s7[3][(int)param_6];\n                        ppppppcVar39 = *pppppppcVar42;\n                        pppppcVar13 = ppppppcVar39[(int)param_5 * 2 + 1];\n                        if (((uint)pppppcVar13 & 0x800) != 0) {\n                          if (((uint)pppppcVar13 & 0xffc000) != 0) {\n                            pppppppcVar29 = local_8c;\n                            uVar19 = (*pcVar12)(&local_b4,local_8c,local_5c);\n                            uVar7 = (uint)((int)ppppppcVar39[(int)param_5 * 2 + 1] << 8) >> 0x16;\n                            if ((uVar7 & 4) == 0) {\n                              uVar27 = uVar19 & 1;\n                              if ((uVar7 & 8) != 0) goto joined_r0x00054f40;\n                            }\n                            else {\n                              uVar27 = uVar7 & 8;\n                              if ((uVar19 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                              if (uVar27 != 0) goto LAB_000550a4;\n                            }\n                            if ((((uVar7 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                               (((uVar7 & 0x80) != 0 &&\n                                (pppppppcVar33 = local_8c, (uVar19 & 8) == 0)))) goto LAB_000550a4;\n                          }\n                          pppppppcVar30 = &local_b4;\n                          pppppppcVar29 = param_5;\n                          pppppppcVar33 = local_8c;\n                          iVar18 = (*pcVar10)(pppppppcVar42);\n                          if (iVar18 != 0) {\n                            pppppppcVar14 = (code *******)((int)local_8c + iVar18);\n                            if (iVar18 <= local_3c) {\n                              iVar18 = local_3c;\n                            }\n                            pppppppcVar29 = pppppppcVar14;\n                            local_3c = iVar18;\n                            local_d4 = (code *******)(*pcVar11)(&local_b4);\n                            pppppppcVar15 = local_d4;\n                            if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                            pppppppcVar30 =\n                                 (code *******)\n                                 (pppppppcVar42[6] + (int)pppppppcVar42[3][(int)param_5] * 3);\n                            unaff_s4 = (code *******)((int)pppppppcVar14 * 4);\n                            param_5 = local_50 + (int)pppppppcVar14;\n                            if (*param_5 == (code ******)0x0) {\n                              local_d0 = (code *******)*pppppppcVar30;\n                              local_cc = (code *******)pppppppcVar30[1];\n                              local_c8 = (code *******)pppppppcVar30[2];\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *param_5 = ppppppcVar39;\n                            }\n                            else {\n                              pppppppcVar29 = (code *******)(*param_5)[10];\n                              local_d4 = (code *******)FUN_000484bc(&local_d0);\n                              pppppppcVar15 = local_d4;\n                              if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar15 = local_50 + (int)pppppppcVar14;\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *pppppppcVar15 = ppppppcVar39;\n                              (*(code *)PTR_free_00079c24)(local_c8);\n                            }\n                            unaff_s4 = local_50 + (int)pppppppcVar14;\n                            if ((*unaff_s4 == (code ******)0x0) &&\n                               (pppppppcVar15 = local_d4, local_d4 != (code *******)0x0))\n                            goto LAB_00055e44;\n                          }\n                        }\nLAB_000550a4:\n                        param_6 = (code *******)((int)param_6 + 1);\n                      } while ((int)param_6 < (int)unaff_s7[2]);\n                    }\n                    local_d8 = (code *******)0x0;\n                  }\n                  uVar7 = (uint)(byte)*(code *)((int)local_8c + (int)local_b0);\n                  local_8c = (code *******)((int)local_8c + 1);\n                  do {\n                    if (unaff_s7[0xb] != (code ******)0x0) {\n                      pppppppcVar30 = (code *******)unaff_s7[0xb][uVar7];\nLAB_000553a0:\n                      pppppppcVar14 = pppppppcVar30;\n                      if (local_50 != (code *******)0x0) goto LAB_000553ac;\n                      goto LAB_000553cc;\n                    }\n                    pppppppcVar31 = (code *******)unaff_s7[0xc];\n                    if (pppppppcVar31 != (code *******)0x0) {\n                      pppppppcVar29 = (code *******)((int)local_8c + -1);\n                      uVar19 = FUN_00049110(&local_b4);\n                      if ((uVar19 & 1) == 0) {\n                        pppppppcVar30 = (code *******)pppppppcVar31[uVar7];\n                      }\n                      else {\n                        pppppppcVar31 = pppppppcVar31 + uVar7 + 0x100;\n                        pppppppcVar30 = (code *******)*pppppppcVar31;\n                      }\n                      goto LAB_000553a0;\n                    }\n                    pppppppcVar29 = unaff_s7;\n                    pppppppcVar30 = local_5c;\n                    iVar18 = (*pcVar9)(local_60);\n                  } while (iVar18 != 0);\n                  local_d8 = (code *******)0xc;\n                  pppppppcVar15 = local_d8;\nLAB_00055e44:\n                  local_d8 = pppppppcVar15;\n                  param_4 = (code *******)0x0;\n                  if (local_50 == (code *******)0x0) {\n                    pppppppcVar14 = param_4;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    break;\n                  }\n                  pppppppcVar30 = (code *******)0x0;\nLAB_000553ac:\n                  pppppppcVar29 = &local_b4;\n                  pppppppcVar14 = (code *******)FUN_00053684(&local_d8);\nLAB_000553cc:\n                  param_4 = pppppppcVar14;\n                  if (pppppppcVar14 == (code *******)0x0) {\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    if ((local_50 == (code *******)0x0) ||\n                       ((pppppppcVar28 != (code *******)0x0 && (pppppppcVar34 == (code *******)0x0))\n                       )) break;\n                    param_6 = &local_b4;\n                    param_5 = (code *******)&local_d8;\n                    pppppppcVar31 = (code *******)(PTR_DAT_000799a4 + 0x3684);\n                    do {\n                      pppppppcVar15 = local_50 + (int)local_8c;\n                      pppppppcVar42 = local_8c;\n                      do {\n                        pppppppcVar42 = (code *******)((int)pppppppcVar42 + 1);\n                        pppppppcVar29 = local_4c;\n                        param_4 = pppppppcVar14;\n                        if ((int)local_4c < (int)pppppppcVar42) goto LAB_00055da8;\n                        local_8c = (code *******)((int)local_8c + 1);\n                        pppppppcVar15 = pppppppcVar15 + 1;\n                      } while (*pppppppcVar15 == (code ******)0x0);\n                      pppppppcVar30 = (code *******)0x0;\n                      pppppppcVar29 = param_6;\n                      param_4 = (code *******)(*(code *)pppppppcVar31)(param_5);\n                      if (local_d8 != (code *******)0x0) {\n                        if (param_4 == (code *******)0x0) goto LAB_00055da8;\n                        break;\n                      }\n                      pppppppcVar29 = local_4c;\n                    } while (param_4 == (code *******)0x0);\n                  }\n                  pppppppcVar15 = (code *******)((uint)unaff_s7 ^ (uint)param_4);\n                  pppppppcVar42 = unaff_s7;\n                  pppppppcVar14 = local_138;\n                  if ((bVar1) &&\n                     (pppppppcVar42 = pppppppcVar15, pppppppcVar14 = unaff_s5,\n                     pppppppcVar15 != (code *******)0x0)) {\n                    bVar1 = false;\n                    pppppppcVar14 = local_138;\n                  }\n                  local_138 = pppppppcVar14;\n                  unaff_s7 = param_4;\n                  if ((((uint)param_4[0xd] & 0x8000000) != 0) &&\n                     ((((uint)param_4[0xd] & 0x1000000) == 0 ||\n                      (pppppppcVar29 = param_4, pppppppcVar30 = local_8c,\n                      iVar18 = FUN_00049440(&local_b4), iVar18 != 0)))) {\n                    unaff_s7 = pppppppcVar42;\n                    unaff_s8 = local_8c;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                    local_144 = (code *******)0x0;\n                    unaff_s7 = param_4;\n                  }\n                }\nLAB_00055da8:\n                if (local_144 != (code *******)0x0) {\n                  *local_144 = (code ******)((int)local_138 + (int)*local_144);\n                }\n              }\n              else {\n                param_4 = unaff_s7 + 1;\n                pppppppcVar30 = (code *******)0x0;\n                pppppppcVar29 = param_4;\n                local_d8 = (code *******)FUN_00047a44(&local_b4);\n                unaff_s8 = local_d8;\n                if (local_d8 == (code *******)0x0) {\n                  if (((uint)unaff_s7[0xd] & 0x2000000) == 0) {\n                    pppppppcVar29 = param_4;\n                    bVar1 = false;\n                  }\n                  else {\n                    pppppppcVar29 = param_4;\n                    local_d8 = (code *******)FUN_00052d84(&local_b4);\n                    unaff_s8 = local_d8;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055dbc;\n                    bVar1 = false;\n                  }\n                  goto LAB_00054d50;\n                }\n              }\nLAB_00055dbc:\n              if (unaff_s8 == (code *******)0xffffffff) {\nLAB_00055b04:\n                FUN_0004b7e8(&local_b4);\nLAB_00055b1c:\n                local_dc = (code *******)((int)pppppppcVar24 + (int)local_dc);\n                if ((int)pppppppcVar25 <= (int)local_dc) goto code_r0x00055b38;\n                local_150 = (code *******)0x1;\n                goto LAB_000557e4;\n              }\n              if (unaff_s8 == (code *******)&SUB_fffffffe) {\n                local_150 = (code *******)0xc;\n                goto LAB_000557e4;\n              }\n              local_58 = unaff_s8;\n              if (((uint)param_1[7] & 0x8000000) == 0) {\n                if (pppppppcVar3 < (code *******)0x2) {\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055c08;\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                else {\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                if (pppppppcVar3 < (code *******)0x2) {\nLAB_00055c6c:\n                  pppppppcVar28 = pppppppcVar33;\n                  unaff_s4 = local_60;\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055548;\n                }\n                else {\n                  cVar23 = *(code *)(pppppppcVar38 + 0x16);\nLAB_00055c20:\n                  pppppppcVar28 = pppppppcVar33;\n                  if (-1 < (char)cVar23) goto LAB_00055c6c;\n                }\n                pppppppcVar31 = local_54;\n                pppppppcVar42 = local_60;\n                unaff_s4 = pppppppcVar42;\n                if (unaff_s8 < (code *******)0x3fffffff) {\n                  param_4 = (code *******)((int)((int)unaff_s8 + 1) * 4);\n                  unaff_s5 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                  if (unaff_s5 == (code *******)0x0) {\nLAB_00055b9c:\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    local_150 = (code *******)0xc;\n                    pppppppcVar33 = pppppppcVar28;\n                  }\n                  else {\n                    pppppppcVar29 = (code *******)&local_d0;\n                    if (pppppppcVar42[0x13] == (code ******)0x0) {\n                      local_cc = (code *******)0x0;\n                      local_c8 = pppppppcVar31;\n                      local_c0 = 0;\n                      local_bc = 0;\n                      local_b8 = 0;\n                      local_d0 = unaff_s5;\n                      local_c4 = unaff_s8;\n                      param_5 = (code *******)FUN_0005421c(&local_b4);\n                      (*(code *)PTR_free_00079c24)(local_b8);\n                      if (param_5 == (code *******)0x0) {\n                        param_4 = (code *******)*unaff_s5;\n                        if (param_4 == (code *******)0x0) {\nLAB_00055b70:\n                          (*(code *)PTR_free_00079c24)(unaff_s5);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          pppppppcVar33 = pppppppcVar28;\n                          goto LAB_00055b04;\n                        }\nLAB_00055528:\n                        (*(code *)PTR_free_00079c24)(local_50);\n                        pppppppcVar33 = pppppppcVar28;\n                        unaff_s4 = pppppppcVar42;\n                        local_58 = unaff_s8;\n                        local_54 = pppppppcVar31;\n                        local_50 = unaff_s5;\n                        goto LAB_00055548;\n                      }\nLAB_00055acc:\n                      param_4 = (code *******)0x0;\n                      pppppppcVar33 = pppppppcVar28;\n                      unaff_s4 = pppppppcVar42;\n                    }\n                    else {\n                      param_4 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                      if (param_4 == (code *******)0x0) goto LAB_00055b9c;\n                      unaff_s7 = (code *******)&local_d0;\n                      pcVar8 = (code *)(PTR_DAT_000799a4 + 0x421c);\n                      pcVar9 = (code *)(PTR_DAT_000799a4 + -0x6bc0);\n                      pppppppcVar33 = pppppppcVar28;\n                      while( true ) {\n                        pppppppcVar28 = (code *******)((int)unaff_s8 + 1);\n                        param_6 = (code *******)((int)pppppppcVar28 * 4);\n                        pppppppcVar30 = param_6;\n                        (*(code *)PTR_memset_00079b00)(param_4,0);\n                        local_c0 = 0;\n                        local_bc = 0;\n                        local_b8 = 0;\n                        pppppppcVar29 = unaff_s7;\n                        local_d0 = unaff_s5;\n                        local_cc = param_4;\n                        local_c8 = pppppppcVar31;\n                        local_c4 = unaff_s8;\n                        param_5 = (code *******)(*pcVar8)(&local_b4);\n                        (*(code *)PTR_free_00079c24)(local_b8);\n                        unaff_s4 = pppppppcVar28;\n                        if (param_5 != (code *******)0x0) break;\n                        if ((*unaff_s5 != (code ******)0x0) ||\n                           (param_6 = param_6 + -1, *param_4 != (code ******)0x0)) {\n                          pppppppcVar29 = unaff_s5;\n                          pppppppcVar30 = param_4;\n                          param_5 = (code *******)FUN_000520d0(pppppppcVar42);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          if (param_5 != (code *******)0x0) goto LAB_00055acc;\n                          goto LAB_00055528;\n                        }\n                        param_6 = (code *******)((int)local_50 + (int)param_6);\n                        do {\n                          while( true ) {\n                            unaff_s8 = (code *******)((int)unaff_s8 + -1);\n                            if ((int)unaff_s8 < 0) goto LAB_00055b70;\n                            pppppppcVar29 = (code *******)param_6[-1];\n                            if (pppppppcVar29 != (code *******)0x0) break;\n                            param_6 = param_6 + -1;\n                          }\n                          param_6 = param_6 + -1;\n                        } while (((uint)pppppppcVar29[0xd] & 0x8000000) == 0);\n                        pppppppcVar31 = (code *******)(*pcVar9)(&local_b4,pppppppcVar29,unaff_s8);\n                        pppppppcVar33 = pppppppcVar28;\n                      }\n                    }\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    (*(code *)PTR_free_00079c24)(param_4);\n                    local_150 = param_5;\n                    if (param_5 == (code *******)0x1) goto LAB_00055b04;\n                  }\n                }\n                else {\n                  local_150 = (code *******)0xc;\n                  pppppppcVar33 = pppppppcVar28;\n                }\n                goto LAB_000557e4;\n              }\n              if (pppppppcVar38[0x13] != (code ******)0x0) {\n                pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                pppppppcVar30 = unaff_s8;\n                local_54 = (code *******)FUN_00049440(&local_b4);\n                goto LAB_00055c6c;\n              }\nLAB_00055c08:\n              if ((((uint)param_1[7] & 0x8000000) == 0) && ((code *******)0x1 < pppppppcVar3)) {\n                cVar23 = *(code *)(pppppppcVar38 + 0x16);\n                goto LAB_00055c20;\n              }\nLAB_00055548:\n              if (pppppppcVar3 == (code *******)0x0) goto LAB_000557e4;\n              if (pppppppcVar3 < (code *******)0x2) {\n                *param_8 = (code ******)0x0;\n                param_8[1] = (code ******)local_58;\n                goto LAB_000555ac;\n              }\n              pppppppcVar29 = param_8 + 2;\n              do {\n                pppppppcVar29[1] = (code ******)0xffffffff;\n                *pppppppcVar29 = (code ******)0xffffffff;\n                pppppppcVar29 = pppppppcVar29 + 2;\n              } while (pppppppcVar29 != param_8 + (int)pppppppcVar3 * 2);\n              *param_8 = (code ******)0x0;\n              param_8[1] = (code ******)local_58;\n              if (((uint)param_1[7] & 0x8000000) != 0) {\nLAB_000555ac:\n                pppppppcVar33 = param_8;\n                do {\n                  pppppppcVar29 = (code *******)*pppppppcVar33;\n                  if (pppppppcVar29 != (code *******)0xffffffff) {\n                    if (local_68 != '\0') {\n                      pppppppcVar34 = local_94;\n                      if (pppppppcVar29 != local_98) {\n                        pppppppcVar34 = *(code ********)(local_a8 + (int)pppppppcVar29 * 4);\n                      }\n                      *pppppppcVar33 = (code ******)pppppppcVar34;\n                      pppppppcVar29 = local_94;\n                      if (local_98 != (code *******)pppppppcVar33[1]) {\n                        pppppppcVar29 = *(code ********)(local_a8 + (int)pppppppcVar33[1] * 4);\n                      }\n                      pppppppcVar33[1] = (code ******)pppppppcVar29;\n                    }\n                    *pppppppcVar33 = (code ******)((int)local_dc + (int)*pppppppcVar33);\n                    pppppppcVar29 = (code *******)((int)local_dc + (int)pppppppcVar33[1]);\n                    pppppppcVar33[1] = (code ******)pppppppcVar29;\n                  }\n                  pppppppcVar33 = pppppppcVar33 + 2;\n                } while (pppppppcVar33 != param_8 + (int)pppppppcVar3 * 2);\n                if (0 < local_118) {\n                  pppppppcVar33 = param_8 + (int)pppppppcVar3 * 2;\n                  do {\n                    *pppppppcVar33 = (code ******)0xffffffff;\n                    pppppppcVar33[1] = (code ******)0xffffffff;\n                    pppppppcVar33 = pppppppcVar33 + 2;\n                  } while (pppppppcVar33 != param_8 + (int)param_7 * 2);\n                }\n                pppppppcVar30 = local_dc;\n                pppppppcVar33 = param_8;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar38[0x21] != (code ******)0x0) {\n                  pppppppcVar30 = (code *******)((int)pppppppcVar3 + -1);\n                  pppppppcVar34 = (code *******)0x0;\n                  pppppppcVar3 = param_8;\n                  while( true ) {\n                    pppppppcVar29 = (code *******)((int)pppppppcVar34 * 4);\n                    if (pppppppcVar30 == pppppppcVar34) break;\n                    if (*(code ********)((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) !=\n                        pppppppcVar34) {\n                      pppppppcVar3[2] =\n                           param_8[(int)((int)*(code ********)\n                                               ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1)\n                                   * 2];\n                      pppppppcVar3[3] =\n                           param_8[((int)*(code ******)\n                                          ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1) * 2 +\n                                   1];\n                    }\n                    pppppppcVar34 = (code *******)((int)pppppppcVar34 + 1);\n                    pppppppcVar3 = pppppppcVar3 + 2;\n                  }\n                }\n                goto LAB_000557e4;\n              }\n              if ((char)*(code *)(pppppppcVar38 + 0x16) < '\0') {\n                local_168 = (uint)(0 < (int)pppppppcVar38[0x13]);\n              }\n              else {\n                local_168 = 0;\n              }\n              pppppppcVar29 = &local_b4;\n              pppppppcVar30 = pppppppcVar3;\n              pppppppcVar33 = param_8;\n              local_150 = (code *******)FUN_0004f4a0(param_1);\n              if (local_150 == (code *******)0x0) goto LAB_000555ac;\n            }\n          }\n          else if (local_90 < 0x3fffffff) {\n            local_50 = (code *******)(*(code *)PTR_malloc_00079b54)((local_90 + 1) * 4);\n            if (local_50 != (code *******)0x0) goto LAB_00055a40;\n            local_150 = (code *******)0xc;\n            param_6 = pppppppcVar36;\n          }\n          else {\n            local_150 = (code *******)0xc;\n            param_6 = pppppppcVar36;\n          }\n        }\n        else {\n          unaff_s5 = (code *******)((int)ppppppcVar35 * 8);\n          if (pppppppcVar36 < (code *******)0xccccccd) {\n            unaff_s4 = (code *******)(*(code *)PTR_malloc_00079b54)((int)ppppppcVar35 * 0x28);\n            local_40 = unaff_s4;\n            local_30 = (*(code *)PTR_malloc_00079b54)(unaff_s5);\n            if ((unaff_s4 != (code *******)0x0) && (local_30 != 0)) goto LAB_000559f0;\n          }\n          local_150 = (code *******)0xc;\n          param_6 = pppppppcVar36;\n        }\nLAB_000557e4:\n        (*(code *)PTR_free_00079c24)(local_50);\n        param_1 = pppppppcVar30;\n        if (pppppppcVar38[0x13] != (code ******)0x0) {\n          FUN_0004b7e8(&local_b4);\n          (*(code *)PTR_free_00079c24)(local_30);\n          (*(code *)PTR_free_00079c24)(local_40);\n          param_1 = pppppppcVar30;\n        }\n        FUN_0004b2bc(&local_b4);\n        pppppppcStack_1a0 = param_4;\n        pppppppcStack_19c = pppppppcVar31;\n      }\n    }\n  }" (else "else") (if_statement "if (pppppppcVar38[9] == (code ******)0x0) {\n    local_150 = (code *******)0x1;\n  }\n  else if (pppppppcVar38[10] == (code ******)0x0) {\n    local_150 = (code *******)0x1;\n  }\n  else if (pppppppcVar38[0xb] == (code ******)0x0) {\n    local_150 = (code *******)0x1;\n  }\n  else {\n    pppppppcVar29 = (code *******)pppppppcVar38[0xc];\n    if (pppppppcVar29 == (code *******)0x0) {\n      local_150 = (code *******)0x1;\n    }\n    else {\n      pppppppcVar3 = param_5;\n      if ((((pppppppcVar38[9][2] == (code *****)0x0) && (pppppppcVar38[10][2] == (code *****)0x0))\n          && ((pppppppcVar38[0xb][2] == (code *****)0x0 || (((uint)param_1[7] & 0x1000000) == 0))))\n         && ((pppppppcVar3 = param_4, param_4 != (code *******)0x0 &&\n             (param_4 = param_5, pppppppcVar3 = param_5, param_5 != (code *******)0x0)))) {\n        local_150 = (code *******)0x1;\n        pppppppcStack_1a0 = param_5;\n      }\n      else {\n        param_5 = pppppppcVar3;\n        pppppppcVar3 = (code *******)((int)param_7 - local_118);\n        if (pppppppcVar3 == (code *******)0x0) {\n          pppppppcVar34 = (code *******)(uint)(pppppppcVar38[0x13] != (code ******)0x0);\n        }\n        else {\n          pppppppcVar34 = (code *******)0x1;\n        }\n        ppppppcVar32 = param_1[5];\n        local_6c = (byte)((uint)((int)param_1[3] << 9) >> 0x1f);\n        local_64 = (code *******)pppppppcVar38[0x17];\n        pppppppcVar31 = (code *******)((int)pppppppcVar38[2] + 1);\n        if ((int)pppppppcVar38[2] + 1 < (int)local_64) {\n          pppppppcVar31 = local_64;\n        }\n        pppppppcVar30 = (code *******)(uint)((int)param_3 + 1 < (int)pppppppcVar31);\n        pppppppcVar33 = (code *******)0x1;\n        local_69 = local_6c;\n        if (ppppppcVar32 != (code ******)0x0) {\n          local_69 = 1;\n        }\n        local_6b = (byte)((uint)((int)pppppppcVar38[0x16] << 2) >> 0x1f);\n        local_6a = (byte)((uint)((int)pppppppcVar38[0x16] << 3) >> 0x1f);\n        pppppppcVar29 = (code *******)((int)param_3 + 1);\n        if (pppppppcVar30 == (code *******)0x0) {\n          pppppppcVar29 = pppppppcVar31;\n        }\n        local_b4 = param_2;\n        local_88 = param_3;\n        local_84 = param_3;\n        local_80 = param_3;\n        local_7c = param_3;\n        local_74 = ppppppcVar32;\n        local_150 = (code *******)FUN_00046d2c(&local_b4);\n        pppppppcVar31 = pppppppcVar34;\n        param_6 = param_6;\n        if (local_150 != (code *******)0x0) goto LAB_000557e4;\n        local_70 = pppppppcVar38 + 0x18;\n        local_66 = (byte)((uint)((int)pppppppcVar38[0x16] << 4) >> 0x1f);\n        pppppppcVar2 = (code *******)0x0;\n        local_98 = pppppppcVar2;\n        if ((local_69 == 0) && (local_b0 = param_2, (int)pppppppcVar38[0x17] < 2)) {\n          local_98 = param_3;\n        }\n        local_7c = param_6;\n        local_80 = param_6;\n        local_67 = (byte)((uint)((int)param_1[7] << 7) >> 0x1f);\n        ppppppcVar35 = pppppppcVar38[0x13];\n        pppppppcVar36 = (code *******)((int)ppppppcVar35 * 2);\n        local_5c = param_9;\n        local_58 = (code *******)0xffffffff;\n        local_94 = local_98;\n        if ((int)pppppppcVar36 < 1) {\nLAB_000559f0:\n          local_3c = 1;\n          local_44 = pppppppcVar36;\n          local_34 = pppppppcVar36;\n          if ((pppppppcVar3 < (code *******)0x2) && (((uint)pppppppcVar38[0x16] & 0x40000000) == 0))\n          {\n            local_50 = (code *******)0x0;\nLAB_00055a40:\n            local_78 = 6;\n            if (((uint)param_9 & 1) != 0) {\n              local_78 = 4;\n            }\n            pppppppcVar24 = (code *******)0x1;\n            pppppppcVar25 = param_4;\n            if ((int)param_5 < (int)param_4) {\n              pppppppcVar24 = (code *******)0xffffffff;\n              pppppppcVar25 = param_5;\n            }\n            pppppppcVar26 = param_5;\n            if ((int)param_5 <= (int)param_4) {\n              pppppppcVar26 = param_4;\n            }\n            ppppppcVar35 = pppppppcVar38[0x17];\n            uVar16 = 8;\n            if (local_148 != (code *******)0x0) {\n              if (ppppppcVar35 == (code ******)0x1) {\n                pppppppcVar28 = (code *******)0x4;\n              }\n              else {\n                pppppppcVar28 = pppppppcVar2;\n                if ((-1 < (int)param_1[3] << 9) && (ppppppcVar32 == (code ******)0x0)) {\n                  pppppppcVar28 = (code *******)0x4;\n                }\n              }\n              pppppppcVar29 = (code *******)0x0;\n              if ((int)param_4 <= (int)param_5) {\n                pppppppcVar29 = (code *******)0x2;\n              }\n              uVar16 = (uint)(ppppppcVar32 != (code ******)0x0) | (uint)pppppppcVar28 |\n                       (uint)pppppppcVar29;\n            }\n            local_dc = param_4;\n            if ((int)param_4 < (int)pppppppcVar25) {\n              local_150 = (code *******)0x1;\n              param_6 = pppppppcVar36;\n            }\n            else if ((int)pppppppcVar26 < (int)param_4) {\n              local_150 = (code *******)0x1;\n              param_4 = (code *******)(uint)((int)param_5 < (int)param_4);\n              param_6 = pppppppcVar36;\n            }\n            else {\n              pppppppcVar36 = (code *******)&local_dc;\n              if ((code *******)(uint)((int)param_5 < (int)param_4) != (code *******)0x0) {\n                pppppppcVar36 = (code *******)0x0;\n              }\n              pcVar4 = (code *)(PTR_DAT_000799a4 + -0x2b7c);\n              piVar5 = (int *)(PTR_s_nt0_000795b8 + (uVar16 - 4) * 4 + 0x6e38);\nLAB_00055b44:\n              if (uVar16 - 4 < 5) {\n                    \n                    \n                pppppppcVar29 = (code *******)(*(code *)(&_gp_1 + *piVar5))();\n                return pppppppcVar29;\n              }\n              param_5 = &local_b4;\n              pppppppcVar28 = pppppppcVar33;\n              while( true ) {\n                param_4 = local_dc;\n                pppppppcVar33 = (code *******)((int)local_dc - local_9c);\n                pppppppcVar30 = param_9;\n                pppppppcVar31 = pppppppcVar2;\n                param_6 = local_148;\n                unaff_s4 = param_3;\n                unaff_s5 = pppppppcVar24;\n                unaff_s7 = pppppppcVar26;\n                if (local_94 <= pppppppcVar33) {\n                  pppppppcVar29 = local_dc;\n                  local_150 = (code *******)(*pcVar4)(param_5);\n                  pppppppcVar33 = pppppppcVar28;\n                  if (local_150 != (code *******)0x0) goto LAB_000557e4;\n                  pppppppcVar33 = (code *******)((int)param_4 - local_9c);\n                }\n                if ((int)param_4 < (int)param_3) {\n                  uVar7 = (uint)(byte)*(code *)((int)pppppppcVar33 + (int)local_b0);\n                }\n                else {\n                  uVar7 = 0;\n                }\n                param_4 = (code *******)((int)param_4 + (int)pppppppcVar24);\n                if (*(code *)((int)local_148 + uVar7) != (code)0x0) break;\n                pppppppcVar33 = pppppppcVar28;\n                local_dc = param_4;\n                if ((int)param_4 < (int)pppppppcVar25) {\n                  local_150 = (code *******)0x1;\n                  goto LAB_000557e4;\n                }\n                if ((code *******)(uint)((int)pppppppcVar26 < (int)param_4) != (code *******)0x0) {\n                  local_150 = (code *******)0x1;\n                  param_4 = (code *******)(uint)((int)pppppppcVar26 < (int)param_4);\n                  goto LAB_000557e4;\n                }\n              }\n              while( true ) {\n                pppppppcVar29 = local_dc;\n                pppppppcVar30 = param_9;\n                pppppppcVar6 = (code *******)(*pcVar4)(&local_b4);\n                pppppppcVar14 = local_60;\n                pppppppcVar42 = local_8c;\n                pppppppcVar33 = pppppppcVar28;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar6 != (code *******)0x0) goto LAB_000557e4;\n                if (((ppppppcVar35 != (code ******)0x1) && (local_98 != (code *******)0x0)) &&\n                   (*local_ac == -1)) goto LAB_00055b1c;\n                local_3c = 0;\n                local_48 = 0;\n                local_4c = (code *******)0x0;\n                local_138 = local_8c;\n                local_d8 = (code *******)0x0;\n                unaff_s7 = (code *******)local_60[9];\n                pppppppcVar30 = local_5c;\n                param_4 = pppppppcVar14;\n                if (((uint)unaff_s7[0xd] & 0x1000000) == 0) break;\n                pppppppcVar29 = (code *******)((int)local_8c + -1);\n                pppppppcVar33 = (code *******)FUN_00049110(&local_b4);\n                if (((uint)pppppppcVar33 & 1) == 0) {\n                  if (pppppppcVar33 == (code *******)0x0) break;\n                  if (((uint)pppppppcVar33 & 6) == 6) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xc];\n                    goto LAB_00054d1c;\n                  }\n                  if (((uint)pppppppcVar33 & 2) != 0) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xb];\n                    goto LAB_00054d1c;\n                  }\n                  pppppppcVar28 = pppppppcVar33;\n                  if (((uint)pppppppcVar33 & 4) == 0) break;\n                  pppppppcVar30 = (code *******)unaff_s7[10];\n                  pppppppcVar29 = pppppppcVar14;\n                  unaff_s7 = (code *******)FUN_0004ae34(&local_d8);\n                  pppppppcVar28 = pppppppcVar33;\n                  if (unaff_s7 != (code *******)0x0) break;\n                  if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                }\n                else {\n                  unaff_s7 = (code *******)pppppppcVar14[10];\nLAB_00054d1c:\n                  pppppppcVar28 = (code *******)PTR_s_nt0_000795b8;\n                  if (unaff_s7 != (code *******)0x0) break;\n                }\n                pppppppcVar28 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                local_dc = (code *******)\n                           (*(code *)PTR___assert_fail_000799f8)\n                                     (PTR_s_nt0_000795b8 + 0x71a0,pppppppcVar29,0x435);\n                if (local_dc == pppppppcVar26) {\n                  if ((int)local_dc < (int)param_3) {\n                    uVar7 = (uint)(byte)*(code *)((int)local_dc + (int)param_2);\n                  }\n                  else {\n                    uVar7 = 0;\n                  }\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    uVar7 = (uint)*(byte *)((int)ppppppcVar32 + uVar7);\n                  }\n                  if (*(code *)((int)local_148 + uVar7) == (code)0x0) {\n                    local_150 = (code *******)0x1;\n                    pppppppcVar30 = param_9;\n                    pppppppcVar33 = pppppppcVar28;\n                    goto LAB_000557e4;\n                  }\n                }\n              }\n              pppppppcVar33 = pppppppcVar28;\n              bVar1 = pppppppcVar36 != (code *******)0x0;\n              if ((local_50 == (code *******)0x0) ||\n                 (local_50[(int)pppppppcVar42] = (code ******)unaff_s7,\n                 pppppppcVar14[0x13] == (code ******)0x0)) {\nLAB_00054d50:\n                if ((int)unaff_s7[0xd] << 4 < 0) {\n                  if ((((uint)unaff_s7[0xd] & 0x1000000) == 0) ||\n                     (pppppppcVar29 = unaff_s7, pppppppcVar30 = pppppppcVar42,\n                     iVar18 = FUN_00049440(&local_b4), iVar18 != 0)) {\n                    unaff_s8 = pppppppcVar42;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                  }\n                  else {\n                    pppppppcVar42 = (code *******)0xffffffff;\n                    pppppppcVar28 = (code *******)0x0;\n                  }\n                }\n                else {\n                  pppppppcVar42 = (code *******)0xffffffff;\n                  pppppppcVar28 = (code *******)0x0;\n                }\n                pcVar8 = (code *)(PTR_DAT_000799a4 + -0x7144);\n                pcVar9 = (code *)(PTR_DAT_000799a4 + -0x1980);\n                pcVar10 = (code *)(PTR_DAT_000799a4 + -0x2f9c);\n                unaff_s8 = pppppppcVar42;\n                local_144 = pppppppcVar36;\n                while( true ) {\n                  uVar44 = CONCAT44(local_98,local_84);\n                  unaff_s5 = (code *******)((int)local_8c + 1);\n                  pppppppcVar29 = local_8c;\n                  if ((int)local_7c <= (int)local_8c) break;\n                  if (((int)local_90 <= (int)unaff_s5) && ((int)local_90 < (int)local_84))\n                  goto LAB_00054e94;\n                  if ((int)local_98 <= (int)unaff_s5) {\n                    while ((int)((ulonglong)uVar44 >> 0x20) < (int)uVar44) {\nLAB_00054e94:\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 2);\n                      local_d8 = (code *******)(*pcVar8)(&local_b4);\n                      if (local_d8 == (code *******)0x0) break;\n                      pppppppcVar14 = param_4;\n                      if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                      pppppppcVar33 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                      pppppppcVar30 = (code *******)0x46c;\n                      pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                      uVar44 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0);\n                      pppppppcVar28 = pppppppcVar38;\n                    }\n                  }\n                  pppppppcVar42 = local_60;\n                  if ((int)unaff_s7[0xd] << 5 < 0) {\n                    pppppppcVar31 = pppppppcVar42;\n                    if (0 < (int)unaff_s7[2]) {\n                      pcVar11 = (code *)(PTR_DAT_000799a4 + -0x6fdc);\n                      pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6ef0);\n                      param_6 = (code *******)0x0;\n                      do {\n                        param_5 = (code *******)unaff_s7[3][(int)param_6];\n                        ppppppcVar39 = *pppppppcVar42;\n                        pppppcVar13 = ppppppcVar39[(int)param_5 * 2 + 1];\n                        if (((uint)pppppcVar13 & 0x800) != 0) {\n                          if (((uint)pppppcVar13 & 0xffc000) != 0) {\n                            pppppppcVar29 = local_8c;\n                            uVar19 = (*pcVar12)(&local_b4,local_8c,local_5c);\n                            uVar7 = (uint)((int)ppppppcVar39[(int)param_5 * 2 + 1] << 8) >> 0x16;\n                            if ((uVar7 & 4) == 0) {\n                              uVar27 = uVar19 & 1;\n                              if ((uVar7 & 8) != 0) goto joined_r0x00054f40;\n                            }\n                            else {\n                              uVar27 = uVar7 & 8;\n                              if ((uVar19 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                              if (uVar27 != 0) goto LAB_000550a4;\n                            }\n                            if ((((uVar7 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                               (((uVar7 & 0x80) != 0 &&\n                                (pppppppcVar33 = local_8c, (uVar19 & 8) == 0)))) goto LAB_000550a4;\n                          }\n                          pppppppcVar30 = &local_b4;\n                          pppppppcVar29 = param_5;\n                          pppppppcVar33 = local_8c;\n                          iVar18 = (*pcVar10)(pppppppcVar42);\n                          if (iVar18 != 0) {\n                            pppppppcVar14 = (code *******)((int)local_8c + iVar18);\n                            if (iVar18 <= local_3c) {\n                              iVar18 = local_3c;\n                            }\n                            pppppppcVar29 = pppppppcVar14;\n                            local_3c = iVar18;\n                            local_d4 = (code *******)(*pcVar11)(&local_b4);\n                            pppppppcVar15 = local_d4;\n                            if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                            pppppppcVar30 =\n                                 (code *******)\n                                 (pppppppcVar42[6] + (int)pppppppcVar42[3][(int)param_5] * 3);\n                            unaff_s4 = (code *******)((int)pppppppcVar14 * 4);\n                            param_5 = local_50 + (int)pppppppcVar14;\n                            if (*param_5 == (code ******)0x0) {\n                              local_d0 = (code *******)*pppppppcVar30;\n                              local_cc = (code *******)pppppppcVar30[1];\n                              local_c8 = (code *******)pppppppcVar30[2];\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *param_5 = ppppppcVar39;\n                            }\n                            else {\n                              pppppppcVar29 = (code *******)(*param_5)[10];\n                              local_d4 = (code *******)FUN_000484bc(&local_d0);\n                              pppppppcVar15 = local_d4;\n                              if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar15 = local_50 + (int)pppppppcVar14;\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *pppppppcVar15 = ppppppcVar39;\n                              (*(code *)PTR_free_00079c24)(local_c8);\n                            }\n                            unaff_s4 = local_50 + (int)pppppppcVar14;\n                            if ((*unaff_s4 == (code ******)0x0) &&\n                               (pppppppcVar15 = local_d4, local_d4 != (code *******)0x0))\n                            goto LAB_00055e44;\n                          }\n                        }\nLAB_000550a4:\n                        param_6 = (code *******)((int)param_6 + 1);\n                      } while ((int)param_6 < (int)unaff_s7[2]);\n                    }\n                    local_d8 = (code *******)0x0;\n                  }\n                  uVar7 = (uint)(byte)*(code *)((int)local_8c + (int)local_b0);\n                  local_8c = (code *******)((int)local_8c + 1);\n                  do {\n                    if (unaff_s7[0xb] != (code ******)0x0) {\n                      pppppppcVar30 = (code *******)unaff_s7[0xb][uVar7];\nLAB_000553a0:\n                      pppppppcVar14 = pppppppcVar30;\n                      if (local_50 != (code *******)0x0) goto LAB_000553ac;\n                      goto LAB_000553cc;\n                    }\n                    pppppppcVar31 = (code *******)unaff_s7[0xc];\n                    if (pppppppcVar31 != (code *******)0x0) {\n                      pppppppcVar29 = (code *******)((int)local_8c + -1);\n                      uVar19 = FUN_00049110(&local_b4);\n                      if ((uVar19 & 1) == 0) {\n                        pppppppcVar30 = (code *******)pppppppcVar31[uVar7];\n                      }\n                      else {\n                        pppppppcVar31 = pppppppcVar31 + uVar7 + 0x100;\n                        pppppppcVar30 = (code *******)*pppppppcVar31;\n                      }\n                      goto LAB_000553a0;\n                    }\n                    pppppppcVar29 = unaff_s7;\n                    pppppppcVar30 = local_5c;\n                    iVar18 = (*pcVar9)(local_60);\n                  } while (iVar18 != 0);\n                  local_d8 = (code *******)0xc;\n                  pppppppcVar15 = local_d8;\nLAB_00055e44:\n                  local_d8 = pppppppcVar15;\n                  param_4 = (code *******)0x0;\n                  if (local_50 == (code *******)0x0) {\n                    pppppppcVar14 = param_4;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    break;\n                  }\n                  pppppppcVar30 = (code *******)0x0;\nLAB_000553ac:\n                  pppppppcVar29 = &local_b4;\n                  pppppppcVar14 = (code *******)FUN_00053684(&local_d8);\nLAB_000553cc:\n                  param_4 = pppppppcVar14;\n                  if (pppppppcVar14 == (code *******)0x0) {\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    if ((local_50 == (code *******)0x0) ||\n                       ((pppppppcVar28 != (code *******)0x0 && (pppppppcVar34 == (code *******)0x0))\n                       )) break;\n                    param_6 = &local_b4;\n                    param_5 = (code *******)&local_d8;\n                    pppppppcVar31 = (code *******)(PTR_DAT_000799a4 + 0x3684);\n                    do {\n                      pppppppcVar15 = local_50 + (int)local_8c;\n                      pppppppcVar42 = local_8c;\n                      do {\n                        pppppppcVar42 = (code *******)((int)pppppppcVar42 + 1);\n                        pppppppcVar29 = local_4c;\n                        param_4 = pppppppcVar14;\n                        if ((int)local_4c < (int)pppppppcVar42) goto LAB_00055da8;\n                        local_8c = (code *******)((int)local_8c + 1);\n                        pppppppcVar15 = pppppppcVar15 + 1;\n                      } while (*pppppppcVar15 == (code ******)0x0);\n                      pppppppcVar30 = (code *******)0x0;\n                      pppppppcVar29 = param_6;\n                      param_4 = (code *******)(*(code *)pppppppcVar31)(param_5);\n                      if (local_d8 != (code *******)0x0) {\n                        if (param_4 == (code *******)0x0) goto LAB_00055da8;\n                        break;\n                      }\n                      pppppppcVar29 = local_4c;\n                    } while (param_4 == (code *******)0x0);\n                  }\n                  pppppppcVar15 = (code *******)((uint)unaff_s7 ^ (uint)param_4);\n                  pppppppcVar42 = unaff_s7;\n                  pppppppcVar14 = local_138;\n                  if ((bVar1) &&\n                     (pppppppcVar42 = pppppppcVar15, pppppppcVar14 = unaff_s5,\n                     pppppppcVar15 != (code *******)0x0)) {\n                    bVar1 = false;\n                    pppppppcVar14 = local_138;\n                  }\n                  local_138 = pppppppcVar14;\n                  unaff_s7 = param_4;\n                  if ((((uint)param_4[0xd] & 0x8000000) != 0) &&\n                     ((((uint)param_4[0xd] & 0x1000000) == 0 ||\n                      (pppppppcVar29 = param_4, pppppppcVar30 = local_8c,\n                      iVar18 = FUN_00049440(&local_b4), iVar18 != 0)))) {\n                    unaff_s7 = pppppppcVar42;\n                    unaff_s8 = local_8c;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                    local_144 = (code *******)0x0;\n                    unaff_s7 = param_4;\n                  }\n                }\nLAB_00055da8:\n                if (local_144 != (code *******)0x0) {\n                  *local_144 = (code ******)((int)local_138 + (int)*local_144);\n                }\n              }\n              else {\n                param_4 = unaff_s7 + 1;\n                pppppppcVar30 = (code *******)0x0;\n                pppppppcVar29 = param_4;\n                local_d8 = (code *******)FUN_00047a44(&local_b4);\n                unaff_s8 = local_d8;\n                if (local_d8 == (code *******)0x0) {\n                  if (((uint)unaff_s7[0xd] & 0x2000000) == 0) {\n                    pppppppcVar29 = param_4;\n                    bVar1 = false;\n                  }\n                  else {\n                    pppppppcVar29 = param_4;\n                    local_d8 = (code *******)FUN_00052d84(&local_b4);\n                    unaff_s8 = local_d8;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055dbc;\n                    bVar1 = false;\n                  }\n                  goto LAB_00054d50;\n                }\n              }\nLAB_00055dbc:\n              if (unaff_s8 == (code *******)0xffffffff) {\nLAB_00055b04:\n                FUN_0004b7e8(&local_b4);\nLAB_00055b1c:\n                local_dc = (code *******)((int)pppppppcVar24 + (int)local_dc);\n                if ((int)pppppppcVar25 <= (int)local_dc) goto code_r0x00055b38;\n                local_150 = (code *******)0x1;\n                goto LAB_000557e4;\n              }\n              if (unaff_s8 == (code *******)&SUB_fffffffe) {\n                local_150 = (code *******)0xc;\n                goto LAB_000557e4;\n              }\n              local_58 = unaff_s8;\n              if (((uint)param_1[7] & 0x8000000) == 0) {\n                if (pppppppcVar3 < (code *******)0x2) {\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055c08;\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                else {\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                if (pppppppcVar3 < (code *******)0x2) {\nLAB_00055c6c:\n                  pppppppcVar28 = pppppppcVar33;\n                  unaff_s4 = local_60;\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055548;\n                }\n                else {\n                  cVar23 = *(code *)(pppppppcVar38 + 0x16);\nLAB_00055c20:\n                  pppppppcVar28 = pppppppcVar33;\n                  if (-1 < (char)cVar23) goto LAB_00055c6c;\n                }\n                pppppppcVar31 = local_54;\n                pppppppcVar42 = local_60;\n                unaff_s4 = pppppppcVar42;\n                if (unaff_s8 < (code *******)0x3fffffff) {\n                  param_4 = (code *******)((int)((int)unaff_s8 + 1) * 4);\n                  unaff_s5 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                  if (unaff_s5 == (code *******)0x0) {\nLAB_00055b9c:\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    local_150 = (code *******)0xc;\n                    pppppppcVar33 = pppppppcVar28;\n                  }\n                  else {\n                    pppppppcVar29 = (code *******)&local_d0;\n                    if (pppppppcVar42[0x13] == (code ******)0x0) {\n                      local_cc = (code *******)0x0;\n                      local_c8 = pppppppcVar31;\n                      local_c0 = 0;\n                      local_bc = 0;\n                      local_b8 = 0;\n                      local_d0 = unaff_s5;\n                      local_c4 = unaff_s8;\n                      param_5 = (code *******)FUN_0005421c(&local_b4);\n                      (*(code *)PTR_free_00079c24)(local_b8);\n                      if (param_5 == (code *******)0x0) {\n                        param_4 = (code *******)*unaff_s5;\n                        if (param_4 == (code *******)0x0) {\nLAB_00055b70:\n                          (*(code *)PTR_free_00079c24)(unaff_s5);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          pppppppcVar33 = pppppppcVar28;\n                          goto LAB_00055b04;\n                        }\nLAB_00055528:\n                        (*(code *)PTR_free_00079c24)(local_50);\n                        pppppppcVar33 = pppppppcVar28;\n                        unaff_s4 = pppppppcVar42;\n                        local_58 = unaff_s8;\n                        local_54 = pppppppcVar31;\n                        local_50 = unaff_s5;\n                        goto LAB_00055548;\n                      }\nLAB_00055acc:\n                      param_4 = (code *******)0x0;\n                      pppppppcVar33 = pppppppcVar28;\n                      unaff_s4 = pppppppcVar42;\n                    }\n                    else {\n                      param_4 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                      if (param_4 == (code *******)0x0) goto LAB_00055b9c;\n                      unaff_s7 = (code *******)&local_d0;\n                      pcVar8 = (code *)(PTR_DAT_000799a4 + 0x421c);\n                      pcVar9 = (code *)(PTR_DAT_000799a4 + -0x6bc0);\n                      pppppppcVar33 = pppppppcVar28;\n                      while( true ) {\n                        pppppppcVar28 = (code *******)((int)unaff_s8 + 1);\n                        param_6 = (code *******)((int)pppppppcVar28 * 4);\n                        pppppppcVar30 = param_6;\n                        (*(code *)PTR_memset_00079b00)(param_4,0);\n                        local_c0 = 0;\n                        local_bc = 0;\n                        local_b8 = 0;\n                        pppppppcVar29 = unaff_s7;\n                        local_d0 = unaff_s5;\n                        local_cc = param_4;\n                        local_c8 = pppppppcVar31;\n                        local_c4 = unaff_s8;\n                        param_5 = (code *******)(*pcVar8)(&local_b4);\n                        (*(code *)PTR_free_00079c24)(local_b8);\n                        unaff_s4 = pppppppcVar28;\n                        if (param_5 != (code *******)0x0) break;\n                        if ((*unaff_s5 != (code ******)0x0) ||\n                           (param_6 = param_6 + -1, *param_4 != (code ******)0x0)) {\n                          pppppppcVar29 = unaff_s5;\n                          pppppppcVar30 = param_4;\n                          param_5 = (code *******)FUN_000520d0(pppppppcVar42);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          if (param_5 != (code *******)0x0) goto LAB_00055acc;\n                          goto LAB_00055528;\n                        }\n                        param_6 = (code *******)((int)local_50 + (int)param_6);\n                        do {\n                          while( true ) {\n                            unaff_s8 = (code *******)((int)unaff_s8 + -1);\n                            if ((int)unaff_s8 < 0) goto LAB_00055b70;\n                            pppppppcVar29 = (code *******)param_6[-1];\n                            if (pppppppcVar29 != (code *******)0x0) break;\n                            param_6 = param_6 + -1;\n                          }\n                          param_6 = param_6 + -1;\n                        } while (((uint)pppppppcVar29[0xd] & 0x8000000) == 0);\n                        pppppppcVar31 = (code *******)(*pcVar9)(&local_b4,pppppppcVar29,unaff_s8);\n                        pppppppcVar33 = pppppppcVar28;\n                      }\n                    }\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    (*(code *)PTR_free_00079c24)(param_4);\n                    local_150 = param_5;\n                    if (param_5 == (code *******)0x1) goto LAB_00055b04;\n                  }\n                }\n                else {\n                  local_150 = (code *******)0xc;\n                  pppppppcVar33 = pppppppcVar28;\n                }\n                goto LAB_000557e4;\n              }\n              if (pppppppcVar38[0x13] != (code ******)0x0) {\n                pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                pppppppcVar30 = unaff_s8;\n                local_54 = (code *******)FUN_00049440(&local_b4);\n                goto LAB_00055c6c;\n              }\nLAB_00055c08:\n              if ((((uint)param_1[7] & 0x8000000) == 0) && ((code *******)0x1 < pppppppcVar3)) {\n                cVar23 = *(code *)(pppppppcVar38 + 0x16);\n                goto LAB_00055c20;\n              }\nLAB_00055548:\n              if (pppppppcVar3 == (code *******)0x0) goto LAB_000557e4;\n              if (pppppppcVar3 < (code *******)0x2) {\n                *param_8 = (code ******)0x0;\n                param_8[1] = (code ******)local_58;\n                goto LAB_000555ac;\n              }\n              pppppppcVar29 = param_8 + 2;\n              do {\n                pppppppcVar29[1] = (code ******)0xffffffff;\n                *pppppppcVar29 = (code ******)0xffffffff;\n                pppppppcVar29 = pppppppcVar29 + 2;\n              } while (pppppppcVar29 != param_8 + (int)pppppppcVar3 * 2);\n              *param_8 = (code ******)0x0;\n              param_8[1] = (code ******)local_58;\n              if (((uint)param_1[7] & 0x8000000) != 0) {\nLAB_000555ac:\n                pppppppcVar33 = param_8;\n                do {\n                  pppppppcVar29 = (code *******)*pppppppcVar33;\n                  if (pppppppcVar29 != (code *******)0xffffffff) {\n                    if (local_68 != '\0') {\n                      pppppppcVar34 = local_94;\n                      if (pppppppcVar29 != local_98) {\n                        pppppppcVar34 = *(code ********)(local_a8 + (int)pppppppcVar29 * 4);\n                      }\n                      *pppppppcVar33 = (code ******)pppppppcVar34;\n                      pppppppcVar29 = local_94;\n                      if (local_98 != (code *******)pppppppcVar33[1]) {\n                        pppppppcVar29 = *(code ********)(local_a8 + (int)pppppppcVar33[1] * 4);\n                      }\n                      pppppppcVar33[1] = (code ******)pppppppcVar29;\n                    }\n                    *pppppppcVar33 = (code ******)((int)local_dc + (int)*pppppppcVar33);\n                    pppppppcVar29 = (code *******)((int)local_dc + (int)pppppppcVar33[1]);\n                    pppppppcVar33[1] = (code ******)pppppppcVar29;\n                  }\n                  pppppppcVar33 = pppppppcVar33 + 2;\n                } while (pppppppcVar33 != param_8 + (int)pppppppcVar3 * 2);\n                if (0 < local_118) {\n                  pppppppcVar33 = param_8 + (int)pppppppcVar3 * 2;\n                  do {\n                    *pppppppcVar33 = (code ******)0xffffffff;\n                    pppppppcVar33[1] = (code ******)0xffffffff;\n                    pppppppcVar33 = pppppppcVar33 + 2;\n                  } while (pppppppcVar33 != param_8 + (int)param_7 * 2);\n                }\n                pppppppcVar30 = local_dc;\n                pppppppcVar33 = param_8;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar38[0x21] != (code ******)0x0) {\n                  pppppppcVar30 = (code *******)((int)pppppppcVar3 + -1);\n                  pppppppcVar34 = (code *******)0x0;\n                  pppppppcVar3 = param_8;\n                  while( true ) {\n                    pppppppcVar29 = (code *******)((int)pppppppcVar34 * 4);\n                    if (pppppppcVar30 == pppppppcVar34) break;\n                    if (*(code ********)((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) !=\n                        pppppppcVar34) {\n                      pppppppcVar3[2] =\n                           param_8[(int)((int)*(code ********)\n                                               ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1)\n                                   * 2];\n                      pppppppcVar3[3] =\n                           param_8[((int)*(code ******)\n                                          ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1) * 2 +\n                                   1];\n                    }\n                    pppppppcVar34 = (code *******)((int)pppppppcVar34 + 1);\n                    pppppppcVar3 = pppppppcVar3 + 2;\n                  }\n                }\n                goto LAB_000557e4;\n              }\n              if ((char)*(code *)(pppppppcVar38 + 0x16) < '\0') {\n                local_168 = (uint)(0 < (int)pppppppcVar38[0x13]);\n              }\n              else {\n                local_168 = 0;\n              }\n              pppppppcVar29 = &local_b4;\n              pppppppcVar30 = pppppppcVar3;\n              pppppppcVar33 = param_8;\n              local_150 = (code *******)FUN_0004f4a0(param_1);\n              if (local_150 == (code *******)0x0) goto LAB_000555ac;\n            }\n          }\n          else if (local_90 < 0x3fffffff) {\n            local_50 = (code *******)(*(code *)PTR_malloc_00079b54)((local_90 + 1) * 4);\n            if (local_50 != (code *******)0x0) goto LAB_00055a40;\n            local_150 = (code *******)0xc;\n            param_6 = pppppppcVar36;\n          }\n          else {\n            local_150 = (code *******)0xc;\n            param_6 = pppppppcVar36;\n          }\n        }\n        else {\n          unaff_s5 = (code *******)((int)ppppppcVar35 * 8);\n          if (pppppppcVar36 < (code *******)0xccccccd) {\n            unaff_s4 = (code *******)(*(code *)PTR_malloc_00079b54)((int)ppppppcVar35 * 0x28);\n            local_40 = unaff_s4;\n            local_30 = (*(code *)PTR_malloc_00079b54)(unaff_s5);\n            if ((unaff_s4 != (code *******)0x0) && (local_30 != 0)) goto LAB_000559f0;\n          }\n          local_150 = (code *******)0xc;\n          param_6 = pppppppcVar36;\n        }\nLAB_000557e4:\n        (*(code *)PTR_free_00079c24)(local_50);\n        param_1 = pppppppcVar30;\n        if (pppppppcVar38[0x13] != (code ******)0x0) {\n          FUN_0004b7e8(&local_b4);\n          (*(code *)PTR_free_00079c24)(local_30);\n          (*(code *)PTR_free_00079c24)(local_40);\n          param_1 = pppppppcVar30;\n        }\n        FUN_0004b2bc(&local_b4);\n        pppppppcStack_1a0 = param_4;\n        pppppppcStack_19c = pppppppcVar31;\n      }\n    }\n  }" (if "if") (parenthesized_expression "(pppppppcVar38[9] == (code ******)0x0)" (( "(") (binary_expression "pppppppcVar38[9] == (code ******)0x0" (subscript_expression "pppppppcVar38[9]" (identifier "pppppppcVar38") ([ "[") (number_literal "9") (] "]")) (== "==") (cast_expression "(code ******)0x0" (( "(") (type_descriptor "code ******" (type_identifier "code") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    local_150 = (code *******)0x1;\n  }" ({ "{") (expression_statement "local_150 = (code *******)0x1;" (assignment_expression "local_150 = (code *******)0x1" (identifier "local_150") (= "=") (cast_expression "(code *******)0x1" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x1"))) (; ";")) (} "}")) (else_clause "else if (pppppppcVar38[10] == (code ******)0x0) {\n    local_150 = (code *******)0x1;\n  }\n  else if (pppppppcVar38[0xb] == (code ******)0x0) {\n    local_150 = (code *******)0x1;\n  }\n  else {\n    pppppppcVar29 = (code *******)pppppppcVar38[0xc];\n    if (pppppppcVar29 == (code *******)0x0) {\n      local_150 = (code *******)0x1;\n    }\n    else {\n      pppppppcVar3 = param_5;\n      if ((((pppppppcVar38[9][2] == (code *****)0x0) && (pppppppcVar38[10][2] == (code *****)0x0))\n          && ((pppppppcVar38[0xb][2] == (code *****)0x0 || (((uint)param_1[7] & 0x1000000) == 0))))\n         && ((pppppppcVar3 = param_4, param_4 != (code *******)0x0 &&\n             (param_4 = param_5, pppppppcVar3 = param_5, param_5 != (code *******)0x0)))) {\n        local_150 = (code *******)0x1;\n        pppppppcStack_1a0 = param_5;\n      }\n      else {\n        param_5 = pppppppcVar3;\n        pppppppcVar3 = (code *******)((int)param_7 - local_118);\n        if (pppppppcVar3 == (code *******)0x0) {\n          pppppppcVar34 = (code *******)(uint)(pppppppcVar38[0x13] != (code ******)0x0);\n        }\n        else {\n          pppppppcVar34 = (code *******)0x1;\n        }\n        ppppppcVar32 = param_1[5];\n        local_6c = (byte)((uint)((int)param_1[3] << 9) >> 0x1f);\n        local_64 = (code *******)pppppppcVar38[0x17];\n        pppppppcVar31 = (code *******)((int)pppppppcVar38[2] + 1);\n        if ((int)pppppppcVar38[2] + 1 < (int)local_64) {\n          pppppppcVar31 = local_64;\n        }\n        pppppppcVar30 = (code *******)(uint)((int)param_3 + 1 < (int)pppppppcVar31);\n        pppppppcVar33 = (code *******)0x1;\n        local_69 = local_6c;\n        if (ppppppcVar32 != (code ******)0x0) {\n          local_69 = 1;\n        }\n        local_6b = (byte)((uint)((int)pppppppcVar38[0x16] << 2) >> 0x1f);\n        local_6a = (byte)((uint)((int)pppppppcVar38[0x16] << 3) >> 0x1f);\n        pppppppcVar29 = (code *******)((int)param_3 + 1);\n        if (pppppppcVar30 == (code *******)0x0) {\n          pppppppcVar29 = pppppppcVar31;\n        }\n        local_b4 = param_2;\n        local_88 = param_3;\n        local_84 = param_3;\n        local_80 = param_3;\n        local_7c = param_3;\n        local_74 = ppppppcVar32;\n        local_150 = (code *******)FUN_00046d2c(&local_b4);\n        pppppppcVar31 = pppppppcVar34;\n        param_6 = param_6;\n        if (local_150 != (code *******)0x0) goto LAB_000557e4;\n        local_70 = pppppppcVar38 + 0x18;\n        local_66 = (byte)((uint)((int)pppppppcVar38[0x16] << 4) >> 0x1f);\n        pppppppcVar2 = (code *******)0x0;\n        local_98 = pppppppcVar2;\n        if ((local_69 == 0) && (local_b0 = param_2, (int)pppppppcVar38[0x17] < 2)) {\n          local_98 = param_3;\n        }\n        local_7c = param_6;\n        local_80 = param_6;\n        local_67 = (byte)((uint)((int)param_1[7] << 7) >> 0x1f);\n        ppppppcVar35 = pppppppcVar38[0x13];\n        pppppppcVar36 = (code *******)((int)ppppppcVar35 * 2);\n        local_5c = param_9;\n        local_58 = (code *******)0xffffffff;\n        local_94 = local_98;\n        if ((int)pppppppcVar36 < 1) {\nLAB_000559f0:\n          local_3c = 1;\n          local_44 = pppppppcVar36;\n          local_34 = pppppppcVar36;\n          if ((pppppppcVar3 < (code *******)0x2) && (((uint)pppppppcVar38[0x16] & 0x40000000) == 0))\n          {\n            local_50 = (code *******)0x0;\nLAB_00055a40:\n            local_78 = 6;\n            if (((uint)param_9 & 1) != 0) {\n              local_78 = 4;\n            }\n            pppppppcVar24 = (code *******)0x1;\n            pppppppcVar25 = param_4;\n            if ((int)param_5 < (int)param_4) {\n              pppppppcVar24 = (code *******)0xffffffff;\n              pppppppcVar25 = param_5;\n            }\n            pppppppcVar26 = param_5;\n            if ((int)param_5 <= (int)param_4) {\n              pppppppcVar26 = param_4;\n            }\n            ppppppcVar35 = pppppppcVar38[0x17];\n            uVar16 = 8;\n            if (local_148 != (code *******)0x0) {\n              if (ppppppcVar35 == (code ******)0x1) {\n                pppppppcVar28 = (code *******)0x4;\n              }\n              else {\n                pppppppcVar28 = pppppppcVar2;\n                if ((-1 < (int)param_1[3] << 9) && (ppppppcVar32 == (code ******)0x0)) {\n                  pppppppcVar28 = (code *******)0x4;\n                }\n              }\n              pppppppcVar29 = (code *******)0x0;\n              if ((int)param_4 <= (int)param_5) {\n                pppppppcVar29 = (code *******)0x2;\n              }\n              uVar16 = (uint)(ppppppcVar32 != (code ******)0x0) | (uint)pppppppcVar28 |\n                       (uint)pppppppcVar29;\n            }\n            local_dc = param_4;\n            if ((int)param_4 < (int)pppppppcVar25) {\n              local_150 = (code *******)0x1;\n              param_6 = pppppppcVar36;\n            }\n            else if ((int)pppppppcVar26 < (int)param_4) {\n              local_150 = (code *******)0x1;\n              param_4 = (code *******)(uint)((int)param_5 < (int)param_4);\n              param_6 = pppppppcVar36;\n            }\n            else {\n              pppppppcVar36 = (code *******)&local_dc;\n              if ((code *******)(uint)((int)param_5 < (int)param_4) != (code *******)0x0) {\n                pppppppcVar36 = (code *******)0x0;\n              }\n              pcVar4 = (code *)(PTR_DAT_000799a4 + -0x2b7c);\n              piVar5 = (int *)(PTR_s_nt0_000795b8 + (uVar16 - 4) * 4 + 0x6e38);\nLAB_00055b44:\n              if (uVar16 - 4 < 5) {\n                    \n                    \n                pppppppcVar29 = (code *******)(*(code *)(&_gp_1 + *piVar5))();\n                return pppppppcVar29;\n              }\n              param_5 = &local_b4;\n              pppppppcVar28 = pppppppcVar33;\n              while( true ) {\n                param_4 = local_dc;\n                pppppppcVar33 = (code *******)((int)local_dc - local_9c);\n                pppppppcVar30 = param_9;\n                pppppppcVar31 = pppppppcVar2;\n                param_6 = local_148;\n                unaff_s4 = param_3;\n                unaff_s5 = pppppppcVar24;\n                unaff_s7 = pppppppcVar26;\n                if (local_94 <= pppppppcVar33) {\n                  pppppppcVar29 = local_dc;\n                  local_150 = (code *******)(*pcVar4)(param_5);\n                  pppppppcVar33 = pppppppcVar28;\n                  if (local_150 != (code *******)0x0) goto LAB_000557e4;\n                  pppppppcVar33 = (code *******)((int)param_4 - local_9c);\n                }\n                if ((int)param_4 < (int)param_3) {\n                  uVar7 = (uint)(byte)*(code *)((int)pppppppcVar33 + (int)local_b0);\n                }\n                else {\n                  uVar7 = 0;\n                }\n                param_4 = (code *******)((int)param_4 + (int)pppppppcVar24);\n                if (*(code *)((int)local_148 + uVar7) != (code)0x0) break;\n                pppppppcVar33 = pppppppcVar28;\n                local_dc = param_4;\n                if ((int)param_4 < (int)pppppppcVar25) {\n                  local_150 = (code *******)0x1;\n                  goto LAB_000557e4;\n                }\n                if ((code *******)(uint)((int)pppppppcVar26 < (int)param_4) != (code *******)0x0) {\n                  local_150 = (code *******)0x1;\n                  param_4 = (code *******)(uint)((int)pppppppcVar26 < (int)param_4);\n                  goto LAB_000557e4;\n                }\n              }\n              while( true ) {\n                pppppppcVar29 = local_dc;\n                pppppppcVar30 = param_9;\n                pppppppcVar6 = (code *******)(*pcVar4)(&local_b4);\n                pppppppcVar14 = local_60;\n                pppppppcVar42 = local_8c;\n                pppppppcVar33 = pppppppcVar28;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar6 != (code *******)0x0) goto LAB_000557e4;\n                if (((ppppppcVar35 != (code ******)0x1) && (local_98 != (code *******)0x0)) &&\n                   (*local_ac == -1)) goto LAB_00055b1c;\n                local_3c = 0;\n                local_48 = 0;\n                local_4c = (code *******)0x0;\n                local_138 = local_8c;\n                local_d8 = (code *******)0x0;\n                unaff_s7 = (code *******)local_60[9];\n                pppppppcVar30 = local_5c;\n                param_4 = pppppppcVar14;\n                if (((uint)unaff_s7[0xd] & 0x1000000) == 0) break;\n                pppppppcVar29 = (code *******)((int)local_8c + -1);\n                pppppppcVar33 = (code *******)FUN_00049110(&local_b4);\n                if (((uint)pppppppcVar33 & 1) == 0) {\n                  if (pppppppcVar33 == (code *******)0x0) break;\n                  if (((uint)pppppppcVar33 & 6) == 6) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xc];\n                    goto LAB_00054d1c;\n                  }\n                  if (((uint)pppppppcVar33 & 2) != 0) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xb];\n                    goto LAB_00054d1c;\n                  }\n                  pppppppcVar28 = pppppppcVar33;\n                  if (((uint)pppppppcVar33 & 4) == 0) break;\n                  pppppppcVar30 = (code *******)unaff_s7[10];\n                  pppppppcVar29 = pppppppcVar14;\n                  unaff_s7 = (code *******)FUN_0004ae34(&local_d8);\n                  pppppppcVar28 = pppppppcVar33;\n                  if (unaff_s7 != (code *******)0x0) break;\n                  if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                }\n                else {\n                  unaff_s7 = (code *******)pppppppcVar14[10];\nLAB_00054d1c:\n                  pppppppcVar28 = (code *******)PTR_s_nt0_000795b8;\n                  if (unaff_s7 != (code *******)0x0) break;\n                }\n                pppppppcVar28 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                local_dc = (code *******)\n                           (*(code *)PTR___assert_fail_000799f8)\n                                     (PTR_s_nt0_000795b8 + 0x71a0,pppppppcVar29,0x435);\n                if (local_dc == pppppppcVar26) {\n                  if ((int)local_dc < (int)param_3) {\n                    uVar7 = (uint)(byte)*(code *)((int)local_dc + (int)param_2);\n                  }\n                  else {\n                    uVar7 = 0;\n                  }\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    uVar7 = (uint)*(byte *)((int)ppppppcVar32 + uVar7);\n                  }\n                  if (*(code *)((int)local_148 + uVar7) == (code)0x0) {\n                    local_150 = (code *******)0x1;\n                    pppppppcVar30 = param_9;\n                    pppppppcVar33 = pppppppcVar28;\n                    goto LAB_000557e4;\n                  }\n                }\n              }\n              pppppppcVar33 = pppppppcVar28;\n              bVar1 = pppppppcVar36 != (code *******)0x0;\n              if ((local_50 == (code *******)0x0) ||\n                 (local_50[(int)pppppppcVar42] = (code ******)unaff_s7,\n                 pppppppcVar14[0x13] == (code ******)0x0)) {\nLAB_00054d50:\n                if ((int)unaff_s7[0xd] << 4 < 0) {\n                  if ((((uint)unaff_s7[0xd] & 0x1000000) == 0) ||\n                     (pppppppcVar29 = unaff_s7, pppppppcVar30 = pppppppcVar42,\n                     iVar18 = FUN_00049440(&local_b4), iVar18 != 0)) {\n                    unaff_s8 = pppppppcVar42;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                  }\n                  else {\n                    pppppppcVar42 = (code *******)0xffffffff;\n                    pppppppcVar28 = (code *******)0x0;\n                  }\n                }\n                else {\n                  pppppppcVar42 = (code *******)0xffffffff;\n                  pppppppcVar28 = (code *******)0x0;\n                }\n                pcVar8 = (code *)(PTR_DAT_000799a4 + -0x7144);\n                pcVar9 = (code *)(PTR_DAT_000799a4 + -0x1980);\n                pcVar10 = (code *)(PTR_DAT_000799a4 + -0x2f9c);\n                unaff_s8 = pppppppcVar42;\n                local_144 = pppppppcVar36;\n                while( true ) {\n                  uVar44 = CONCAT44(local_98,local_84);\n                  unaff_s5 = (code *******)((int)local_8c + 1);\n                  pppppppcVar29 = local_8c;\n                  if ((int)local_7c <= (int)local_8c) break;\n                  if (((int)local_90 <= (int)unaff_s5) && ((int)local_90 < (int)local_84))\n                  goto LAB_00054e94;\n                  if ((int)local_98 <= (int)unaff_s5) {\n                    while ((int)((ulonglong)uVar44 >> 0x20) < (int)uVar44) {\nLAB_00054e94:\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 2);\n                      local_d8 = (code *******)(*pcVar8)(&local_b4);\n                      if (local_d8 == (code *******)0x0) break;\n                      pppppppcVar14 = param_4;\n                      if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                      pppppppcVar33 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                      pppppppcVar30 = (code *******)0x46c;\n                      pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                      uVar44 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0);\n                      pppppppcVar28 = pppppppcVar38;\n                    }\n                  }\n                  pppppppcVar42 = local_60;\n                  if ((int)unaff_s7[0xd] << 5 < 0) {\n                    pppppppcVar31 = pppppppcVar42;\n                    if (0 < (int)unaff_s7[2]) {\n                      pcVar11 = (code *)(PTR_DAT_000799a4 + -0x6fdc);\n                      pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6ef0);\n                      param_6 = (code *******)0x0;\n                      do {\n                        param_5 = (code *******)unaff_s7[3][(int)param_6];\n                        ppppppcVar39 = *pppppppcVar42;\n                        pppppcVar13 = ppppppcVar39[(int)param_5 * 2 + 1];\n                        if (((uint)pppppcVar13 & 0x800) != 0) {\n                          if (((uint)pppppcVar13 & 0xffc000) != 0) {\n                            pppppppcVar29 = local_8c;\n                            uVar19 = (*pcVar12)(&local_b4,local_8c,local_5c);\n                            uVar7 = (uint)((int)ppppppcVar39[(int)param_5 * 2 + 1] << 8) >> 0x16;\n                            if ((uVar7 & 4) == 0) {\n                              uVar27 = uVar19 & 1;\n                              if ((uVar7 & 8) != 0) goto joined_r0x00054f40;\n                            }\n                            else {\n                              uVar27 = uVar7 & 8;\n                              if ((uVar19 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                              if (uVar27 != 0) goto LAB_000550a4;\n                            }\n                            if ((((uVar7 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                               (((uVar7 & 0x80) != 0 &&\n                                (pppppppcVar33 = local_8c, (uVar19 & 8) == 0)))) goto LAB_000550a4;\n                          }\n                          pppppppcVar30 = &local_b4;\n                          pppppppcVar29 = param_5;\n                          pppppppcVar33 = local_8c;\n                          iVar18 = (*pcVar10)(pppppppcVar42);\n                          if (iVar18 != 0) {\n                            pppppppcVar14 = (code *******)((int)local_8c + iVar18);\n                            if (iVar18 <= local_3c) {\n                              iVar18 = local_3c;\n                            }\n                            pppppppcVar29 = pppppppcVar14;\n                            local_3c = iVar18;\n                            local_d4 = (code *******)(*pcVar11)(&local_b4);\n                            pppppppcVar15 = local_d4;\n                            if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                            pppppppcVar30 =\n                                 (code *******)\n                                 (pppppppcVar42[6] + (int)pppppppcVar42[3][(int)param_5] * 3);\n                            unaff_s4 = (code *******)((int)pppppppcVar14 * 4);\n                            param_5 = local_50 + (int)pppppppcVar14;\n                            if (*param_5 == (code ******)0x0) {\n                              local_d0 = (code *******)*pppppppcVar30;\n                              local_cc = (code *******)pppppppcVar30[1];\n                              local_c8 = (code *******)pppppppcVar30[2];\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *param_5 = ppppppcVar39;\n                            }\n                            else {\n                              pppppppcVar29 = (code *******)(*param_5)[10];\n                              local_d4 = (code *******)FUN_000484bc(&local_d0);\n                              pppppppcVar15 = local_d4;\n                              if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar15 = local_50 + (int)pppppppcVar14;\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *pppppppcVar15 = ppppppcVar39;\n                              (*(code *)PTR_free_00079c24)(local_c8);\n                            }\n                            unaff_s4 = local_50 + (int)pppppppcVar14;\n                            if ((*unaff_s4 == (code ******)0x0) &&\n                               (pppppppcVar15 = local_d4, local_d4 != (code *******)0x0))\n                            goto LAB_00055e44;\n                          }\n                        }\nLAB_000550a4:\n                        param_6 = (code *******)((int)param_6 + 1);\n                      } while ((int)param_6 < (int)unaff_s7[2]);\n                    }\n                    local_d8 = (code *******)0x0;\n                  }\n                  uVar7 = (uint)(byte)*(code *)((int)local_8c + (int)local_b0);\n                  local_8c = (code *******)((int)local_8c + 1);\n                  do {\n                    if (unaff_s7[0xb] != (code ******)0x0) {\n                      pppppppcVar30 = (code *******)unaff_s7[0xb][uVar7];\nLAB_000553a0:\n                      pppppppcVar14 = pppppppcVar30;\n                      if (local_50 != (code *******)0x0) goto LAB_000553ac;\n                      goto LAB_000553cc;\n                    }\n                    pppppppcVar31 = (code *******)unaff_s7[0xc];\n                    if (pppppppcVar31 != (code *******)0x0) {\n                      pppppppcVar29 = (code *******)((int)local_8c + -1);\n                      uVar19 = FUN_00049110(&local_b4);\n                      if ((uVar19 & 1) == 0) {\n                        pppppppcVar30 = (code *******)pppppppcVar31[uVar7];\n                      }\n                      else {\n                        pppppppcVar31 = pppppppcVar31 + uVar7 + 0x100;\n                        pppppppcVar30 = (code *******)*pppppppcVar31;\n                      }\n                      goto LAB_000553a0;\n                    }\n                    pppppppcVar29 = unaff_s7;\n                    pppppppcVar30 = local_5c;\n                    iVar18 = (*pcVar9)(local_60);\n                  } while (iVar18 != 0);\n                  local_d8 = (code *******)0xc;\n                  pppppppcVar15 = local_d8;\nLAB_00055e44:\n                  local_d8 = pppppppcVar15;\n                  param_4 = (code *******)0x0;\n                  if (local_50 == (code *******)0x0) {\n                    pppppppcVar14 = param_4;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    break;\n                  }\n                  pppppppcVar30 = (code *******)0x0;\nLAB_000553ac:\n                  pppppppcVar29 = &local_b4;\n                  pppppppcVar14 = (code *******)FUN_00053684(&local_d8);\nLAB_000553cc:\n                  param_4 = pppppppcVar14;\n                  if (pppppppcVar14 == (code *******)0x0) {\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    if ((local_50 == (code *******)0x0) ||\n                       ((pppppppcVar28 != (code *******)0x0 && (pppppppcVar34 == (code *******)0x0))\n                       )) break;\n                    param_6 = &local_b4;\n                    param_5 = (code *******)&local_d8;\n                    pppppppcVar31 = (code *******)(PTR_DAT_000799a4 + 0x3684);\n                    do {\n                      pppppppcVar15 = local_50 + (int)local_8c;\n                      pppppppcVar42 = local_8c;\n                      do {\n                        pppppppcVar42 = (code *******)((int)pppppppcVar42 + 1);\n                        pppppppcVar29 = local_4c;\n                        param_4 = pppppppcVar14;\n                        if ((int)local_4c < (int)pppppppcVar42) goto LAB_00055da8;\n                        local_8c = (code *******)((int)local_8c + 1);\n                        pppppppcVar15 = pppppppcVar15 + 1;\n                      } while (*pppppppcVar15 == (code ******)0x0);\n                      pppppppcVar30 = (code *******)0x0;\n                      pppppppcVar29 = param_6;\n                      param_4 = (code *******)(*(code *)pppppppcVar31)(param_5);\n                      if (local_d8 != (code *******)0x0) {\n                        if (param_4 == (code *******)0x0) goto LAB_00055da8;\n                        break;\n                      }\n                      pppppppcVar29 = local_4c;\n                    } while (param_4 == (code *******)0x0);\n                  }\n                  pppppppcVar15 = (code *******)((uint)unaff_s7 ^ (uint)param_4);\n                  pppppppcVar42 = unaff_s7;\n                  pppppppcVar14 = local_138;\n                  if ((bVar1) &&\n                     (pppppppcVar42 = pppppppcVar15, pppppppcVar14 = unaff_s5,\n                     pppppppcVar15 != (code *******)0x0)) {\n                    bVar1 = false;\n                    pppppppcVar14 = local_138;\n                  }\n                  local_138 = pppppppcVar14;\n                  unaff_s7 = param_4;\n                  if ((((uint)param_4[0xd] & 0x8000000) != 0) &&\n                     ((((uint)param_4[0xd] & 0x1000000) == 0 ||\n                      (pppppppcVar29 = param_4, pppppppcVar30 = local_8c,\n                      iVar18 = FUN_00049440(&local_b4), iVar18 != 0)))) {\n                    unaff_s7 = pppppppcVar42;\n                    unaff_s8 = local_8c;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                    local_144 = (code *******)0x0;\n                    unaff_s7 = param_4;\n                  }\n                }\nLAB_00055da8:\n                if (local_144 != (code *******)0x0) {\n                  *local_144 = (code ******)((int)local_138 + (int)*local_144);\n                }\n              }\n              else {\n                param_4 = unaff_s7 + 1;\n                pppppppcVar30 = (code *******)0x0;\n                pppppppcVar29 = param_4;\n                local_d8 = (code *******)FUN_00047a44(&local_b4);\n                unaff_s8 = local_d8;\n                if (local_d8 == (code *******)0x0) {\n                  if (((uint)unaff_s7[0xd] & 0x2000000) == 0) {\n                    pppppppcVar29 = param_4;\n                    bVar1 = false;\n                  }\n                  else {\n                    pppppppcVar29 = param_4;\n                    local_d8 = (code *******)FUN_00052d84(&local_b4);\n                    unaff_s8 = local_d8;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055dbc;\n                    bVar1 = false;\n                  }\n                  goto LAB_00054d50;\n                }\n              }\nLAB_00055dbc:\n              if (unaff_s8 == (code *******)0xffffffff) {\nLAB_00055b04:\n                FUN_0004b7e8(&local_b4);\nLAB_00055b1c:\n                local_dc = (code *******)((int)pppppppcVar24 + (int)local_dc);\n                if ((int)pppppppcVar25 <= (int)local_dc) goto code_r0x00055b38;\n                local_150 = (code *******)0x1;\n                goto LAB_000557e4;\n              }\n              if (unaff_s8 == (code *******)&SUB_fffffffe) {\n                local_150 = (code *******)0xc;\n                goto LAB_000557e4;\n              }\n              local_58 = unaff_s8;\n              if (((uint)param_1[7] & 0x8000000) == 0) {\n                if (pppppppcVar3 < (code *******)0x2) {\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055c08;\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                else {\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                if (pppppppcVar3 < (code *******)0x2) {\nLAB_00055c6c:\n                  pppppppcVar28 = pppppppcVar33;\n                  unaff_s4 = local_60;\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055548;\n                }\n                else {\n                  cVar23 = *(code *)(pppppppcVar38 + 0x16);\nLAB_00055c20:\n                  pppppppcVar28 = pppppppcVar33;\n                  if (-1 < (char)cVar23) goto LAB_00055c6c;\n                }\n                pppppppcVar31 = local_54;\n                pppppppcVar42 = local_60;\n                unaff_s4 = pppppppcVar42;\n                if (unaff_s8 < (code *******)0x3fffffff) {\n                  param_4 = (code *******)((int)((int)unaff_s8 + 1) * 4);\n                  unaff_s5 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                  if (unaff_s5 == (code *******)0x0) {\nLAB_00055b9c:\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    local_150 = (code *******)0xc;\n                    pppppppcVar33 = pppppppcVar28;\n                  }\n                  else {\n                    pppppppcVar29 = (code *******)&local_d0;\n                    if (pppppppcVar42[0x13] == (code ******)0x0) {\n                      local_cc = (code *******)0x0;\n                      local_c8 = pppppppcVar31;\n                      local_c0 = 0;\n                      local_bc = 0;\n                      local_b8 = 0;\n                      local_d0 = unaff_s5;\n                      local_c4 = unaff_s8;\n                      param_5 = (code *******)FUN_0005421c(&local_b4);\n                      (*(code *)PTR_free_00079c24)(local_b8);\n                      if (param_5 == (code *******)0x0) {\n                        param_4 = (code *******)*unaff_s5;\n                        if (param_4 == (code *******)0x0) {\nLAB_00055b70:\n                          (*(code *)PTR_free_00079c24)(unaff_s5);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          pppppppcVar33 = pppppppcVar28;\n                          goto LAB_00055b04;\n                        }\nLAB_00055528:\n                        (*(code *)PTR_free_00079c24)(local_50);\n                        pppppppcVar33 = pppppppcVar28;\n                        unaff_s4 = pppppppcVar42;\n                        local_58 = unaff_s8;\n                        local_54 = pppppppcVar31;\n                        local_50 = unaff_s5;\n                        goto LAB_00055548;\n                      }\nLAB_00055acc:\n                      param_4 = (code *******)0x0;\n                      pppppppcVar33 = pppppppcVar28;\n                      unaff_s4 = pppppppcVar42;\n                    }\n                    else {\n                      param_4 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                      if (param_4 == (code *******)0x0) goto LAB_00055b9c;\n                      unaff_s7 = (code *******)&local_d0;\n                      pcVar8 = (code *)(PTR_DAT_000799a4 + 0x421c);\n                      pcVar9 = (code *)(PTR_DAT_000799a4 + -0x6bc0);\n                      pppppppcVar33 = pppppppcVar28;\n                      while( true ) {\n                        pppppppcVar28 = (code *******)((int)unaff_s8 + 1);\n                        param_6 = (code *******)((int)pppppppcVar28 * 4);\n                        pppppppcVar30 = param_6;\n                        (*(code *)PTR_memset_00079b00)(param_4,0);\n                        local_c0 = 0;\n                        local_bc = 0;\n                        local_b8 = 0;\n                        pppppppcVar29 = unaff_s7;\n                        local_d0 = unaff_s5;\n                        local_cc = param_4;\n                        local_c8 = pppppppcVar31;\n                        local_c4 = unaff_s8;\n                        param_5 = (code *******)(*pcVar8)(&local_b4);\n                        (*(code *)PTR_free_00079c24)(local_b8);\n                        unaff_s4 = pppppppcVar28;\n                        if (param_5 != (code *******)0x0) break;\n                        if ((*unaff_s5 != (code ******)0x0) ||\n                           (param_6 = param_6 + -1, *param_4 != (code ******)0x0)) {\n                          pppppppcVar29 = unaff_s5;\n                          pppppppcVar30 = param_4;\n                          param_5 = (code *******)FUN_000520d0(pppppppcVar42);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          if (param_5 != (code *******)0x0) goto LAB_00055acc;\n                          goto LAB_00055528;\n                        }\n                        param_6 = (code *******)((int)local_50 + (int)param_6);\n                        do {\n                          while( true ) {\n                            unaff_s8 = (code *******)((int)unaff_s8 + -1);\n                            if ((int)unaff_s8 < 0) goto LAB_00055b70;\n                            pppppppcVar29 = (code *******)param_6[-1];\n                            if (pppppppcVar29 != (code *******)0x0) break;\n                            param_6 = param_6 + -1;\n                          }\n                          param_6 = param_6 + -1;\n                        } while (((uint)pppppppcVar29[0xd] & 0x8000000) == 0);\n                        pppppppcVar31 = (code *******)(*pcVar9)(&local_b4,pppppppcVar29,unaff_s8);\n                        pppppppcVar33 = pppppppcVar28;\n                      }\n                    }\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    (*(code *)PTR_free_00079c24)(param_4);\n                    local_150 = param_5;\n                    if (param_5 == (code *******)0x1) goto LAB_00055b04;\n                  }\n                }\n                else {\n                  local_150 = (code *******)0xc;\n                  pppppppcVar33 = pppppppcVar28;\n                }\n                goto LAB_000557e4;\n              }\n              if (pppppppcVar38[0x13] != (code ******)0x0) {\n                pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                pppppppcVar30 = unaff_s8;\n                local_54 = (code *******)FUN_00049440(&local_b4);\n                goto LAB_00055c6c;\n              }\nLAB_00055c08:\n              if ((((uint)param_1[7] & 0x8000000) == 0) && ((code *******)0x1 < pppppppcVar3)) {\n                cVar23 = *(code *)(pppppppcVar38 + 0x16);\n                goto LAB_00055c20;\n              }\nLAB_00055548:\n              if (pppppppcVar3 == (code *******)0x0) goto LAB_000557e4;\n              if (pppppppcVar3 < (code *******)0x2) {\n                *param_8 = (code ******)0x0;\n                param_8[1] = (code ******)local_58;\n                goto LAB_000555ac;\n              }\n              pppppppcVar29 = param_8 + 2;\n              do {\n                pppppppcVar29[1] = (code ******)0xffffffff;\n                *pppppppcVar29 = (code ******)0xffffffff;\n                pppppppcVar29 = pppppppcVar29 + 2;\n              } while (pppppppcVar29 != param_8 + (int)pppppppcVar3 * 2);\n              *param_8 = (code ******)0x0;\n              param_8[1] = (code ******)local_58;\n              if (((uint)param_1[7] & 0x8000000) != 0) {\nLAB_000555ac:\n                pppppppcVar33 = param_8;\n                do {\n                  pppppppcVar29 = (code *******)*pppppppcVar33;\n                  if (pppppppcVar29 != (code *******)0xffffffff) {\n                    if (local_68 != '\0') {\n                      pppppppcVar34 = local_94;\n                      if (pppppppcVar29 != local_98) {\n                        pppppppcVar34 = *(code ********)(local_a8 + (int)pppppppcVar29 * 4);\n                      }\n                      *pppppppcVar33 = (code ******)pppppppcVar34;\n                      pppppppcVar29 = local_94;\n                      if (local_98 != (code *******)pppppppcVar33[1]) {\n                        pppppppcVar29 = *(code ********)(local_a8 + (int)pppppppcVar33[1] * 4);\n                      }\n                      pppppppcVar33[1] = (code ******)pppppppcVar29;\n                    }\n                    *pppppppcVar33 = (code ******)((int)local_dc + (int)*pppppppcVar33);\n                    pppppppcVar29 = (code *******)((int)local_dc + (int)pppppppcVar33[1]);\n                    pppppppcVar33[1] = (code ******)pppppppcVar29;\n                  }\n                  pppppppcVar33 = pppppppcVar33 + 2;\n                } while (pppppppcVar33 != param_8 + (int)pppppppcVar3 * 2);\n                if (0 < local_118) {\n                  pppppppcVar33 = param_8 + (int)pppppppcVar3 * 2;\n                  do {\n                    *pppppppcVar33 = (code ******)0xffffffff;\n                    pppppppcVar33[1] = (code ******)0xffffffff;\n                    pppppppcVar33 = pppppppcVar33 + 2;\n                  } while (pppppppcVar33 != param_8 + (int)param_7 * 2);\n                }\n                pppppppcVar30 = local_dc;\n                pppppppcVar33 = param_8;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar38[0x21] != (code ******)0x0) {\n                  pppppppcVar30 = (code *******)((int)pppppppcVar3 + -1);\n                  pppppppcVar34 = (code *******)0x0;\n                  pppppppcVar3 = param_8;\n                  while( true ) {\n                    pppppppcVar29 = (code *******)((int)pppppppcVar34 * 4);\n                    if (pppppppcVar30 == pppppppcVar34) break;\n                    if (*(code ********)((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) !=\n                        pppppppcVar34) {\n                      pppppppcVar3[2] =\n                           param_8[(int)((int)*(code ********)\n                                               ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1)\n                                   * 2];\n                      pppppppcVar3[3] =\n                           param_8[((int)*(code ******)\n                                          ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1) * 2 +\n                                   1];\n                    }\n                    pppppppcVar34 = (code *******)((int)pppppppcVar34 + 1);\n                    pppppppcVar3 = pppppppcVar3 + 2;\n                  }\n                }\n                goto LAB_000557e4;\n              }\n              if ((char)*(code *)(pppppppcVar38 + 0x16) < '\0') {\n                local_168 = (uint)(0 < (int)pppppppcVar38[0x13]);\n              }\n              else {\n                local_168 = 0;\n              }\n              pppppppcVar29 = &local_b4;\n              pppppppcVar30 = pppppppcVar3;\n              pppppppcVar33 = param_8;\n              local_150 = (code *******)FUN_0004f4a0(param_1);\n              if (local_150 == (code *******)0x0) goto LAB_000555ac;\n            }\n          }\n          else if (local_90 < 0x3fffffff) {\n            local_50 = (code *******)(*(code *)PTR_malloc_00079b54)((local_90 + 1) * 4);\n            if (local_50 != (code *******)0x0) goto LAB_00055a40;\n            local_150 = (code *******)0xc;\n            param_6 = pppppppcVar36;\n          }\n          else {\n            local_150 = (code *******)0xc;\n            param_6 = pppppppcVar36;\n          }\n        }\n        else {\n          unaff_s5 = (code *******)((int)ppppppcVar35 * 8);\n          if (pppppppcVar36 < (code *******)0xccccccd) {\n            unaff_s4 = (code *******)(*(code *)PTR_malloc_00079b54)((int)ppppppcVar35 * 0x28);\n            local_40 = unaff_s4;\n            local_30 = (*(code *)PTR_malloc_00079b54)(unaff_s5);\n            if ((unaff_s4 != (code *******)0x0) && (local_30 != 0)) goto LAB_000559f0;\n          }\n          local_150 = (code *******)0xc;\n          param_6 = pppppppcVar36;\n        }\nLAB_000557e4:\n        (*(code *)PTR_free_00079c24)(local_50);\n        param_1 = pppppppcVar30;\n        if (pppppppcVar38[0x13] != (code ******)0x0) {\n          FUN_0004b7e8(&local_b4);\n          (*(code *)PTR_free_00079c24)(local_30);\n          (*(code *)PTR_free_00079c24)(local_40);\n          param_1 = pppppppcVar30;\n        }\n        FUN_0004b2bc(&local_b4);\n        pppppppcStack_1a0 = param_4;\n        pppppppcStack_19c = pppppppcVar31;\n      }\n    }\n  }" (else "else") (if_statement "if (pppppppcVar38[10] == (code ******)0x0) {\n    local_150 = (code *******)0x1;\n  }\n  else if (pppppppcVar38[0xb] == (code ******)0x0) {\n    local_150 = (code *******)0x1;\n  }\n  else {\n    pppppppcVar29 = (code *******)pppppppcVar38[0xc];\n    if (pppppppcVar29 == (code *******)0x0) {\n      local_150 = (code *******)0x1;\n    }\n    else {\n      pppppppcVar3 = param_5;\n      if ((((pppppppcVar38[9][2] == (code *****)0x0) && (pppppppcVar38[10][2] == (code *****)0x0))\n          && ((pppppppcVar38[0xb][2] == (code *****)0x0 || (((uint)param_1[7] & 0x1000000) == 0))))\n         && ((pppppppcVar3 = param_4, param_4 != (code *******)0x0 &&\n             (param_4 = param_5, pppppppcVar3 = param_5, param_5 != (code *******)0x0)))) {\n        local_150 = (code *******)0x1;\n        pppppppcStack_1a0 = param_5;\n      }\n      else {\n        param_5 = pppppppcVar3;\n        pppppppcVar3 = (code *******)((int)param_7 - local_118);\n        if (pppppppcVar3 == (code *******)0x0) {\n          pppppppcVar34 = (code *******)(uint)(pppppppcVar38[0x13] != (code ******)0x0);\n        }\n        else {\n          pppppppcVar34 = (code *******)0x1;\n        }\n        ppppppcVar32 = param_1[5];\n        local_6c = (byte)((uint)((int)param_1[3] << 9) >> 0x1f);\n        local_64 = (code *******)pppppppcVar38[0x17];\n        pppppppcVar31 = (code *******)((int)pppppppcVar38[2] + 1);\n        if ((int)pppppppcVar38[2] + 1 < (int)local_64) {\n          pppppppcVar31 = local_64;\n        }\n        pppppppcVar30 = (code *******)(uint)((int)param_3 + 1 < (int)pppppppcVar31);\n        pppppppcVar33 = (code *******)0x1;\n        local_69 = local_6c;\n        if (ppppppcVar32 != (code ******)0x0) {\n          local_69 = 1;\n        }\n        local_6b = (byte)((uint)((int)pppppppcVar38[0x16] << 2) >> 0x1f);\n        local_6a = (byte)((uint)((int)pppppppcVar38[0x16] << 3) >> 0x1f);\n        pppppppcVar29 = (code *******)((int)param_3 + 1);\n        if (pppppppcVar30 == (code *******)0x0) {\n          pppppppcVar29 = pppppppcVar31;\n        }\n        local_b4 = param_2;\n        local_88 = param_3;\n        local_84 = param_3;\n        local_80 = param_3;\n        local_7c = param_3;\n        local_74 = ppppppcVar32;\n        local_150 = (code *******)FUN_00046d2c(&local_b4);\n        pppppppcVar31 = pppppppcVar34;\n        param_6 = param_6;\n        if (local_150 != (code *******)0x0) goto LAB_000557e4;\n        local_70 = pppppppcVar38 + 0x18;\n        local_66 = (byte)((uint)((int)pppppppcVar38[0x16] << 4) >> 0x1f);\n        pppppppcVar2 = (code *******)0x0;\n        local_98 = pppppppcVar2;\n        if ((local_69 == 0) && (local_b0 = param_2, (int)pppppppcVar38[0x17] < 2)) {\n          local_98 = param_3;\n        }\n        local_7c = param_6;\n        local_80 = param_6;\n        local_67 = (byte)((uint)((int)param_1[7] << 7) >> 0x1f);\n        ppppppcVar35 = pppppppcVar38[0x13];\n        pppppppcVar36 = (code *******)((int)ppppppcVar35 * 2);\n        local_5c = param_9;\n        local_58 = (code *******)0xffffffff;\n        local_94 = local_98;\n        if ((int)pppppppcVar36 < 1) {\nLAB_000559f0:\n          local_3c = 1;\n          local_44 = pppppppcVar36;\n          local_34 = pppppppcVar36;\n          if ((pppppppcVar3 < (code *******)0x2) && (((uint)pppppppcVar38[0x16] & 0x40000000) == 0))\n          {\n            local_50 = (code *******)0x0;\nLAB_00055a40:\n            local_78 = 6;\n            if (((uint)param_9 & 1) != 0) {\n              local_78 = 4;\n            }\n            pppppppcVar24 = (code *******)0x1;\n            pppppppcVar25 = param_4;\n            if ((int)param_5 < (int)param_4) {\n              pppppppcVar24 = (code *******)0xffffffff;\n              pppppppcVar25 = param_5;\n            }\n            pppppppcVar26 = param_5;\n            if ((int)param_5 <= (int)param_4) {\n              pppppppcVar26 = param_4;\n            }\n            ppppppcVar35 = pppppppcVar38[0x17];\n            uVar16 = 8;\n            if (local_148 != (code *******)0x0) {\n              if (ppppppcVar35 == (code ******)0x1) {\n                pppppppcVar28 = (code *******)0x4;\n              }\n              else {\n                pppppppcVar28 = pppppppcVar2;\n                if ((-1 < (int)param_1[3] << 9) && (ppppppcVar32 == (code ******)0x0)) {\n                  pppppppcVar28 = (code *******)0x4;\n                }\n              }\n              pppppppcVar29 = (code *******)0x0;\n              if ((int)param_4 <= (int)param_5) {\n                pppppppcVar29 = (code *******)0x2;\n              }\n              uVar16 = (uint)(ppppppcVar32 != (code ******)0x0) | (uint)pppppppcVar28 |\n                       (uint)pppppppcVar29;\n            }\n            local_dc = param_4;\n            if ((int)param_4 < (int)pppppppcVar25) {\n              local_150 = (code *******)0x1;\n              param_6 = pppppppcVar36;\n            }\n            else if ((int)pppppppcVar26 < (int)param_4) {\n              local_150 = (code *******)0x1;\n              param_4 = (code *******)(uint)((int)param_5 < (int)param_4);\n              param_6 = pppppppcVar36;\n            }\n            else {\n              pppppppcVar36 = (code *******)&local_dc;\n              if ((code *******)(uint)((int)param_5 < (int)param_4) != (code *******)0x0) {\n                pppppppcVar36 = (code *******)0x0;\n              }\n              pcVar4 = (code *)(PTR_DAT_000799a4 + -0x2b7c);\n              piVar5 = (int *)(PTR_s_nt0_000795b8 + (uVar16 - 4) * 4 + 0x6e38);\nLAB_00055b44:\n              if (uVar16 - 4 < 5) {\n                    \n                    \n                pppppppcVar29 = (code *******)(*(code *)(&_gp_1 + *piVar5))();\n                return pppppppcVar29;\n              }\n              param_5 = &local_b4;\n              pppppppcVar28 = pppppppcVar33;\n              while( true ) {\n                param_4 = local_dc;\n                pppppppcVar33 = (code *******)((int)local_dc - local_9c);\n                pppppppcVar30 = param_9;\n                pppppppcVar31 = pppppppcVar2;\n                param_6 = local_148;\n                unaff_s4 = param_3;\n                unaff_s5 = pppppppcVar24;\n                unaff_s7 = pppppppcVar26;\n                if (local_94 <= pppppppcVar33) {\n                  pppppppcVar29 = local_dc;\n                  local_150 = (code *******)(*pcVar4)(param_5);\n                  pppppppcVar33 = pppppppcVar28;\n                  if (local_150 != (code *******)0x0) goto LAB_000557e4;\n                  pppppppcVar33 = (code *******)((int)param_4 - local_9c);\n                }\n                if ((int)param_4 < (int)param_3) {\n                  uVar7 = (uint)(byte)*(code *)((int)pppppppcVar33 + (int)local_b0);\n                }\n                else {\n                  uVar7 = 0;\n                }\n                param_4 = (code *******)((int)param_4 + (int)pppppppcVar24);\n                if (*(code *)((int)local_148 + uVar7) != (code)0x0) break;\n                pppppppcVar33 = pppppppcVar28;\n                local_dc = param_4;\n                if ((int)param_4 < (int)pppppppcVar25) {\n                  local_150 = (code *******)0x1;\n                  goto LAB_000557e4;\n                }\n                if ((code *******)(uint)((int)pppppppcVar26 < (int)param_4) != (code *******)0x0) {\n                  local_150 = (code *******)0x1;\n                  param_4 = (code *******)(uint)((int)pppppppcVar26 < (int)param_4);\n                  goto LAB_000557e4;\n                }\n              }\n              while( true ) {\n                pppppppcVar29 = local_dc;\n                pppppppcVar30 = param_9;\n                pppppppcVar6 = (code *******)(*pcVar4)(&local_b4);\n                pppppppcVar14 = local_60;\n                pppppppcVar42 = local_8c;\n                pppppppcVar33 = pppppppcVar28;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar6 != (code *******)0x0) goto LAB_000557e4;\n                if (((ppppppcVar35 != (code ******)0x1) && (local_98 != (code *******)0x0)) &&\n                   (*local_ac == -1)) goto LAB_00055b1c;\n                local_3c = 0;\n                local_48 = 0;\n                local_4c = (code *******)0x0;\n                local_138 = local_8c;\n                local_d8 = (code *******)0x0;\n                unaff_s7 = (code *******)local_60[9];\n                pppppppcVar30 = local_5c;\n                param_4 = pppppppcVar14;\n                if (((uint)unaff_s7[0xd] & 0x1000000) == 0) break;\n                pppppppcVar29 = (code *******)((int)local_8c + -1);\n                pppppppcVar33 = (code *******)FUN_00049110(&local_b4);\n                if (((uint)pppppppcVar33 & 1) == 0) {\n                  if (pppppppcVar33 == (code *******)0x0) break;\n                  if (((uint)pppppppcVar33 & 6) == 6) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xc];\n                    goto LAB_00054d1c;\n                  }\n                  if (((uint)pppppppcVar33 & 2) != 0) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xb];\n                    goto LAB_00054d1c;\n                  }\n                  pppppppcVar28 = pppppppcVar33;\n                  if (((uint)pppppppcVar33 & 4) == 0) break;\n                  pppppppcVar30 = (code *******)unaff_s7[10];\n                  pppppppcVar29 = pppppppcVar14;\n                  unaff_s7 = (code *******)FUN_0004ae34(&local_d8);\n                  pppppppcVar28 = pppppppcVar33;\n                  if (unaff_s7 != (code *******)0x0) break;\n                  if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                }\n                else {\n                  unaff_s7 = (code *******)pppppppcVar14[10];\nLAB_00054d1c:\n                  pppppppcVar28 = (code *******)PTR_s_nt0_000795b8;\n                  if (unaff_s7 != (code *******)0x0) break;\n                }\n                pppppppcVar28 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                local_dc = (code *******)\n                           (*(code *)PTR___assert_fail_000799f8)\n                                     (PTR_s_nt0_000795b8 + 0x71a0,pppppppcVar29,0x435);\n                if (local_dc == pppppppcVar26) {\n                  if ((int)local_dc < (int)param_3) {\n                    uVar7 = (uint)(byte)*(code *)((int)local_dc + (int)param_2);\n                  }\n                  else {\n                    uVar7 = 0;\n                  }\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    uVar7 = (uint)*(byte *)((int)ppppppcVar32 + uVar7);\n                  }\n                  if (*(code *)((int)local_148 + uVar7) == (code)0x0) {\n                    local_150 = (code *******)0x1;\n                    pppppppcVar30 = param_9;\n                    pppppppcVar33 = pppppppcVar28;\n                    goto LAB_000557e4;\n                  }\n                }\n              }\n              pppppppcVar33 = pppppppcVar28;\n              bVar1 = pppppppcVar36 != (code *******)0x0;\n              if ((local_50 == (code *******)0x0) ||\n                 (local_50[(int)pppppppcVar42] = (code ******)unaff_s7,\n                 pppppppcVar14[0x13] == (code ******)0x0)) {\nLAB_00054d50:\n                if ((int)unaff_s7[0xd] << 4 < 0) {\n                  if ((((uint)unaff_s7[0xd] & 0x1000000) == 0) ||\n                     (pppppppcVar29 = unaff_s7, pppppppcVar30 = pppppppcVar42,\n                     iVar18 = FUN_00049440(&local_b4), iVar18 != 0)) {\n                    unaff_s8 = pppppppcVar42;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                  }\n                  else {\n                    pppppppcVar42 = (code *******)0xffffffff;\n                    pppppppcVar28 = (code *******)0x0;\n                  }\n                }\n                else {\n                  pppppppcVar42 = (code *******)0xffffffff;\n                  pppppppcVar28 = (code *******)0x0;\n                }\n                pcVar8 = (code *)(PTR_DAT_000799a4 + -0x7144);\n                pcVar9 = (code *)(PTR_DAT_000799a4 + -0x1980);\n                pcVar10 = (code *)(PTR_DAT_000799a4 + -0x2f9c);\n                unaff_s8 = pppppppcVar42;\n                local_144 = pppppppcVar36;\n                while( true ) {\n                  uVar44 = CONCAT44(local_98,local_84);\n                  unaff_s5 = (code *******)((int)local_8c + 1);\n                  pppppppcVar29 = local_8c;\n                  if ((int)local_7c <= (int)local_8c) break;\n                  if (((int)local_90 <= (int)unaff_s5) && ((int)local_90 < (int)local_84))\n                  goto LAB_00054e94;\n                  if ((int)local_98 <= (int)unaff_s5) {\n                    while ((int)((ulonglong)uVar44 >> 0x20) < (int)uVar44) {\nLAB_00054e94:\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 2);\n                      local_d8 = (code *******)(*pcVar8)(&local_b4);\n                      if (local_d8 == (code *******)0x0) break;\n                      pppppppcVar14 = param_4;\n                      if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                      pppppppcVar33 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                      pppppppcVar30 = (code *******)0x46c;\n                      pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                      uVar44 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0);\n                      pppppppcVar28 = pppppppcVar38;\n                    }\n                  }\n                  pppppppcVar42 = local_60;\n                  if ((int)unaff_s7[0xd] << 5 < 0) {\n                    pppppppcVar31 = pppppppcVar42;\n                    if (0 < (int)unaff_s7[2]) {\n                      pcVar11 = (code *)(PTR_DAT_000799a4 + -0x6fdc);\n                      pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6ef0);\n                      param_6 = (code *******)0x0;\n                      do {\n                        param_5 = (code *******)unaff_s7[3][(int)param_6];\n                        ppppppcVar39 = *pppppppcVar42;\n                        pppppcVar13 = ppppppcVar39[(int)param_5 * 2 + 1];\n                        if (((uint)pppppcVar13 & 0x800) != 0) {\n                          if (((uint)pppppcVar13 & 0xffc000) != 0) {\n                            pppppppcVar29 = local_8c;\n                            uVar19 = (*pcVar12)(&local_b4,local_8c,local_5c);\n                            uVar7 = (uint)((int)ppppppcVar39[(int)param_5 * 2 + 1] << 8) >> 0x16;\n                            if ((uVar7 & 4) == 0) {\n                              uVar27 = uVar19 & 1;\n                              if ((uVar7 & 8) != 0) goto joined_r0x00054f40;\n                            }\n                            else {\n                              uVar27 = uVar7 & 8;\n                              if ((uVar19 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                              if (uVar27 != 0) goto LAB_000550a4;\n                            }\n                            if ((((uVar7 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                               (((uVar7 & 0x80) != 0 &&\n                                (pppppppcVar33 = local_8c, (uVar19 & 8) == 0)))) goto LAB_000550a4;\n                          }\n                          pppppppcVar30 = &local_b4;\n                          pppppppcVar29 = param_5;\n                          pppppppcVar33 = local_8c;\n                          iVar18 = (*pcVar10)(pppppppcVar42);\n                          if (iVar18 != 0) {\n                            pppppppcVar14 = (code *******)((int)local_8c + iVar18);\n                            if (iVar18 <= local_3c) {\n                              iVar18 = local_3c;\n                            }\n                            pppppppcVar29 = pppppppcVar14;\n                            local_3c = iVar18;\n                            local_d4 = (code *******)(*pcVar11)(&local_b4);\n                            pppppppcVar15 = local_d4;\n                            if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                            pppppppcVar30 =\n                                 (code *******)\n                                 (pppppppcVar42[6] + (int)pppppppcVar42[3][(int)param_5] * 3);\n                            unaff_s4 = (code *******)((int)pppppppcVar14 * 4);\n                            param_5 = local_50 + (int)pppppppcVar14;\n                            if (*param_5 == (code ******)0x0) {\n                              local_d0 = (code *******)*pppppppcVar30;\n                              local_cc = (code *******)pppppppcVar30[1];\n                              local_c8 = (code *******)pppppppcVar30[2];\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *param_5 = ppppppcVar39;\n                            }\n                            else {\n                              pppppppcVar29 = (code *******)(*param_5)[10];\n                              local_d4 = (code *******)FUN_000484bc(&local_d0);\n                              pppppppcVar15 = local_d4;\n                              if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar15 = local_50 + (int)pppppppcVar14;\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *pppppppcVar15 = ppppppcVar39;\n                              (*(code *)PTR_free_00079c24)(local_c8);\n                            }\n                            unaff_s4 = local_50 + (int)pppppppcVar14;\n                            if ((*unaff_s4 == (code ******)0x0) &&\n                               (pppppppcVar15 = local_d4, local_d4 != (code *******)0x0))\n                            goto LAB_00055e44;\n                          }\n                        }\nLAB_000550a4:\n                        param_6 = (code *******)((int)param_6 + 1);\n                      } while ((int)param_6 < (int)unaff_s7[2]);\n                    }\n                    local_d8 = (code *******)0x0;\n                  }\n                  uVar7 = (uint)(byte)*(code *)((int)local_8c + (int)local_b0);\n                  local_8c = (code *******)((int)local_8c + 1);\n                  do {\n                    if (unaff_s7[0xb] != (code ******)0x0) {\n                      pppppppcVar30 = (code *******)unaff_s7[0xb][uVar7];\nLAB_000553a0:\n                      pppppppcVar14 = pppppppcVar30;\n                      if (local_50 != (code *******)0x0) goto LAB_000553ac;\n                      goto LAB_000553cc;\n                    }\n                    pppppppcVar31 = (code *******)unaff_s7[0xc];\n                    if (pppppppcVar31 != (code *******)0x0) {\n                      pppppppcVar29 = (code *******)((int)local_8c + -1);\n                      uVar19 = FUN_00049110(&local_b4);\n                      if ((uVar19 & 1) == 0) {\n                        pppppppcVar30 = (code *******)pppppppcVar31[uVar7];\n                      }\n                      else {\n                        pppppppcVar31 = pppppppcVar31 + uVar7 + 0x100;\n                        pppppppcVar30 = (code *******)*pppppppcVar31;\n                      }\n                      goto LAB_000553a0;\n                    }\n                    pppppppcVar29 = unaff_s7;\n                    pppppppcVar30 = local_5c;\n                    iVar18 = (*pcVar9)(local_60);\n                  } while (iVar18 != 0);\n                  local_d8 = (code *******)0xc;\n                  pppppppcVar15 = local_d8;\nLAB_00055e44:\n                  local_d8 = pppppppcVar15;\n                  param_4 = (code *******)0x0;\n                  if (local_50 == (code *******)0x0) {\n                    pppppppcVar14 = param_4;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    break;\n                  }\n                  pppppppcVar30 = (code *******)0x0;\nLAB_000553ac:\n                  pppppppcVar29 = &local_b4;\n                  pppppppcVar14 = (code *******)FUN_00053684(&local_d8);\nLAB_000553cc:\n                  param_4 = pppppppcVar14;\n                  if (pppppppcVar14 == (code *******)0x0) {\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    if ((local_50 == (code *******)0x0) ||\n                       ((pppppppcVar28 != (code *******)0x0 && (pppppppcVar34 == (code *******)0x0))\n                       )) break;\n                    param_6 = &local_b4;\n                    param_5 = (code *******)&local_d8;\n                    pppppppcVar31 = (code *******)(PTR_DAT_000799a4 + 0x3684);\n                    do {\n                      pppppppcVar15 = local_50 + (int)local_8c;\n                      pppppppcVar42 = local_8c;\n                      do {\n                        pppppppcVar42 = (code *******)((int)pppppppcVar42 + 1);\n                        pppppppcVar29 = local_4c;\n                        param_4 = pppppppcVar14;\n                        if ((int)local_4c < (int)pppppppcVar42) goto LAB_00055da8;\n                        local_8c = (code *******)((int)local_8c + 1);\n                        pppppppcVar15 = pppppppcVar15 + 1;\n                      } while (*pppppppcVar15 == (code ******)0x0);\n                      pppppppcVar30 = (code *******)0x0;\n                      pppppppcVar29 = param_6;\n                      param_4 = (code *******)(*(code *)pppppppcVar31)(param_5);\n                      if (local_d8 != (code *******)0x0) {\n                        if (param_4 == (code *******)0x0) goto LAB_00055da8;\n                        break;\n                      }\n                      pppppppcVar29 = local_4c;\n                    } while (param_4 == (code *******)0x0);\n                  }\n                  pppppppcVar15 = (code *******)((uint)unaff_s7 ^ (uint)param_4);\n                  pppppppcVar42 = unaff_s7;\n                  pppppppcVar14 = local_138;\n                  if ((bVar1) &&\n                     (pppppppcVar42 = pppppppcVar15, pppppppcVar14 = unaff_s5,\n                     pppppppcVar15 != (code *******)0x0)) {\n                    bVar1 = false;\n                    pppppppcVar14 = local_138;\n                  }\n                  local_138 = pppppppcVar14;\n                  unaff_s7 = param_4;\n                  if ((((uint)param_4[0xd] & 0x8000000) != 0) &&\n                     ((((uint)param_4[0xd] & 0x1000000) == 0 ||\n                      (pppppppcVar29 = param_4, pppppppcVar30 = local_8c,\n                      iVar18 = FUN_00049440(&local_b4), iVar18 != 0)))) {\n                    unaff_s7 = pppppppcVar42;\n                    unaff_s8 = local_8c;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                    local_144 = (code *******)0x0;\n                    unaff_s7 = param_4;\n                  }\n                }\nLAB_00055da8:\n                if (local_144 != (code *******)0x0) {\n                  *local_144 = (code ******)((int)local_138 + (int)*local_144);\n                }\n              }\n              else {\n                param_4 = unaff_s7 + 1;\n                pppppppcVar30 = (code *******)0x0;\n                pppppppcVar29 = param_4;\n                local_d8 = (code *******)FUN_00047a44(&local_b4);\n                unaff_s8 = local_d8;\n                if (local_d8 == (code *******)0x0) {\n                  if (((uint)unaff_s7[0xd] & 0x2000000) == 0) {\n                    pppppppcVar29 = param_4;\n                    bVar1 = false;\n                  }\n                  else {\n                    pppppppcVar29 = param_4;\n                    local_d8 = (code *******)FUN_00052d84(&local_b4);\n                    unaff_s8 = local_d8;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055dbc;\n                    bVar1 = false;\n                  }\n                  goto LAB_00054d50;\n                }\n              }\nLAB_00055dbc:\n              if (unaff_s8 == (code *******)0xffffffff) {\nLAB_00055b04:\n                FUN_0004b7e8(&local_b4);\nLAB_00055b1c:\n                local_dc = (code *******)((int)pppppppcVar24 + (int)local_dc);\n                if ((int)pppppppcVar25 <= (int)local_dc) goto code_r0x00055b38;\n                local_150 = (code *******)0x1;\n                goto LAB_000557e4;\n              }\n              if (unaff_s8 == (code *******)&SUB_fffffffe) {\n                local_150 = (code *******)0xc;\n                goto LAB_000557e4;\n              }\n              local_58 = unaff_s8;\n              if (((uint)param_1[7] & 0x8000000) == 0) {\n                if (pppppppcVar3 < (code *******)0x2) {\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055c08;\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                else {\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                if (pppppppcVar3 < (code *******)0x2) {\nLAB_00055c6c:\n                  pppppppcVar28 = pppppppcVar33;\n                  unaff_s4 = local_60;\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055548;\n                }\n                else {\n                  cVar23 = *(code *)(pppppppcVar38 + 0x16);\nLAB_00055c20:\n                  pppppppcVar28 = pppppppcVar33;\n                  if (-1 < (char)cVar23) goto LAB_00055c6c;\n                }\n                pppppppcVar31 = local_54;\n                pppppppcVar42 = local_60;\n                unaff_s4 = pppppppcVar42;\n                if (unaff_s8 < (code *******)0x3fffffff) {\n                  param_4 = (code *******)((int)((int)unaff_s8 + 1) * 4);\n                  unaff_s5 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                  if (unaff_s5 == (code *******)0x0) {\nLAB_00055b9c:\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    local_150 = (code *******)0xc;\n                    pppppppcVar33 = pppppppcVar28;\n                  }\n                  else {\n                    pppppppcVar29 = (code *******)&local_d0;\n                    if (pppppppcVar42[0x13] == (code ******)0x0) {\n                      local_cc = (code *******)0x0;\n                      local_c8 = pppppppcVar31;\n                      local_c0 = 0;\n                      local_bc = 0;\n                      local_b8 = 0;\n                      local_d0 = unaff_s5;\n                      local_c4 = unaff_s8;\n                      param_5 = (code *******)FUN_0005421c(&local_b4);\n                      (*(code *)PTR_free_00079c24)(local_b8);\n                      if (param_5 == (code *******)0x0) {\n                        param_4 = (code *******)*unaff_s5;\n                        if (param_4 == (code *******)0x0) {\nLAB_00055b70:\n                          (*(code *)PTR_free_00079c24)(unaff_s5);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          pppppppcVar33 = pppppppcVar28;\n                          goto LAB_00055b04;\n                        }\nLAB_00055528:\n                        (*(code *)PTR_free_00079c24)(local_50);\n                        pppppppcVar33 = pppppppcVar28;\n                        unaff_s4 = pppppppcVar42;\n                        local_58 = unaff_s8;\n                        local_54 = pppppppcVar31;\n                        local_50 = unaff_s5;\n                        goto LAB_00055548;\n                      }\nLAB_00055acc:\n                      param_4 = (code *******)0x0;\n                      pppppppcVar33 = pppppppcVar28;\n                      unaff_s4 = pppppppcVar42;\n                    }\n                    else {\n                      param_4 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                      if (param_4 == (code *******)0x0) goto LAB_00055b9c;\n                      unaff_s7 = (code *******)&local_d0;\n                      pcVar8 = (code *)(PTR_DAT_000799a4 + 0x421c);\n                      pcVar9 = (code *)(PTR_DAT_000799a4 + -0x6bc0);\n                      pppppppcVar33 = pppppppcVar28;\n                      while( true ) {\n                        pppppppcVar28 = (code *******)((int)unaff_s8 + 1);\n                        param_6 = (code *******)((int)pppppppcVar28 * 4);\n                        pppppppcVar30 = param_6;\n                        (*(code *)PTR_memset_00079b00)(param_4,0);\n                        local_c0 = 0;\n                        local_bc = 0;\n                        local_b8 = 0;\n                        pppppppcVar29 = unaff_s7;\n                        local_d0 = unaff_s5;\n                        local_cc = param_4;\n                        local_c8 = pppppppcVar31;\n                        local_c4 = unaff_s8;\n                        param_5 = (code *******)(*pcVar8)(&local_b4);\n                        (*(code *)PTR_free_00079c24)(local_b8);\n                        unaff_s4 = pppppppcVar28;\n                        if (param_5 != (code *******)0x0) break;\n                        if ((*unaff_s5 != (code ******)0x0) ||\n                           (param_6 = param_6 + -1, *param_4 != (code ******)0x0)) {\n                          pppppppcVar29 = unaff_s5;\n                          pppppppcVar30 = param_4;\n                          param_5 = (code *******)FUN_000520d0(pppppppcVar42);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          if (param_5 != (code *******)0x0) goto LAB_00055acc;\n                          goto LAB_00055528;\n                        }\n                        param_6 = (code *******)((int)local_50 + (int)param_6);\n                        do {\n                          while( true ) {\n                            unaff_s8 = (code *******)((int)unaff_s8 + -1);\n                            if ((int)unaff_s8 < 0) goto LAB_00055b70;\n                            pppppppcVar29 = (code *******)param_6[-1];\n                            if (pppppppcVar29 != (code *******)0x0) break;\n                            param_6 = param_6 + -1;\n                          }\n                          param_6 = param_6 + -1;\n                        } while (((uint)pppppppcVar29[0xd] & 0x8000000) == 0);\n                        pppppppcVar31 = (code *******)(*pcVar9)(&local_b4,pppppppcVar29,unaff_s8);\n                        pppppppcVar33 = pppppppcVar28;\n                      }\n                    }\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    (*(code *)PTR_free_00079c24)(param_4);\n                    local_150 = param_5;\n                    if (param_5 == (code *******)0x1) goto LAB_00055b04;\n                  }\n                }\n                else {\n                  local_150 = (code *******)0xc;\n                  pppppppcVar33 = pppppppcVar28;\n                }\n                goto LAB_000557e4;\n              }\n              if (pppppppcVar38[0x13] != (code ******)0x0) {\n                pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                pppppppcVar30 = unaff_s8;\n                local_54 = (code *******)FUN_00049440(&local_b4);\n                goto LAB_00055c6c;\n              }\nLAB_00055c08:\n              if ((((uint)param_1[7] & 0x8000000) == 0) && ((code *******)0x1 < pppppppcVar3)) {\n                cVar23 = *(code *)(pppppppcVar38 + 0x16);\n                goto LAB_00055c20;\n              }\nLAB_00055548:\n              if (pppppppcVar3 == (code *******)0x0) goto LAB_000557e4;\n              if (pppppppcVar3 < (code *******)0x2) {\n                *param_8 = (code ******)0x0;\n                param_8[1] = (code ******)local_58;\n                goto LAB_000555ac;\n              }\n              pppppppcVar29 = param_8 + 2;\n              do {\n                pppppppcVar29[1] = (code ******)0xffffffff;\n                *pppppppcVar29 = (code ******)0xffffffff;\n                pppppppcVar29 = pppppppcVar29 + 2;\n              } while (pppppppcVar29 != param_8 + (int)pppppppcVar3 * 2);\n              *param_8 = (code ******)0x0;\n              param_8[1] = (code ******)local_58;\n              if (((uint)param_1[7] & 0x8000000) != 0) {\nLAB_000555ac:\n                pppppppcVar33 = param_8;\n                do {\n                  pppppppcVar29 = (code *******)*pppppppcVar33;\n                  if (pppppppcVar29 != (code *******)0xffffffff) {\n                    if (local_68 != '\0') {\n                      pppppppcVar34 = local_94;\n                      if (pppppppcVar29 != local_98) {\n                        pppppppcVar34 = *(code ********)(local_a8 + (int)pppppppcVar29 * 4);\n                      }\n                      *pppppppcVar33 = (code ******)pppppppcVar34;\n                      pppppppcVar29 = local_94;\n                      if (local_98 != (code *******)pppppppcVar33[1]) {\n                        pppppppcVar29 = *(code ********)(local_a8 + (int)pppppppcVar33[1] * 4);\n                      }\n                      pppppppcVar33[1] = (code ******)pppppppcVar29;\n                    }\n                    *pppppppcVar33 = (code ******)((int)local_dc + (int)*pppppppcVar33);\n                    pppppppcVar29 = (code *******)((int)local_dc + (int)pppppppcVar33[1]);\n                    pppppppcVar33[1] = (code ******)pppppppcVar29;\n                  }\n                  pppppppcVar33 = pppppppcVar33 + 2;\n                } while (pppppppcVar33 != param_8 + (int)pppppppcVar3 * 2);\n                if (0 < local_118) {\n                  pppppppcVar33 = param_8 + (int)pppppppcVar3 * 2;\n                  do {\n                    *pppppppcVar33 = (code ******)0xffffffff;\n                    pppppppcVar33[1] = (code ******)0xffffffff;\n                    pppppppcVar33 = pppppppcVar33 + 2;\n                  } while (pppppppcVar33 != param_8 + (int)param_7 * 2);\n                }\n                pppppppcVar30 = local_dc;\n                pppppppcVar33 = param_8;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar38[0x21] != (code ******)0x0) {\n                  pppppppcVar30 = (code *******)((int)pppppppcVar3 + -1);\n                  pppppppcVar34 = (code *******)0x0;\n                  pppppppcVar3 = param_8;\n                  while( true ) {\n                    pppppppcVar29 = (code *******)((int)pppppppcVar34 * 4);\n                    if (pppppppcVar30 == pppppppcVar34) break;\n                    if (*(code ********)((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) !=\n                        pppppppcVar34) {\n                      pppppppcVar3[2] =\n                           param_8[(int)((int)*(code ********)\n                                               ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1)\n                                   * 2];\n                      pppppppcVar3[3] =\n                           param_8[((int)*(code ******)\n                                          ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1) * 2 +\n                                   1];\n                    }\n                    pppppppcVar34 = (code *******)((int)pppppppcVar34 + 1);\n                    pppppppcVar3 = pppppppcVar3 + 2;\n                  }\n                }\n                goto LAB_000557e4;\n              }\n              if ((char)*(code *)(pppppppcVar38 + 0x16) < '\0') {\n                local_168 = (uint)(0 < (int)pppppppcVar38[0x13]);\n              }\n              else {\n                local_168 = 0;\n              }\n              pppppppcVar29 = &local_b4;\n              pppppppcVar30 = pppppppcVar3;\n              pppppppcVar33 = param_8;\n              local_150 = (code *******)FUN_0004f4a0(param_1);\n              if (local_150 == (code *******)0x0) goto LAB_000555ac;\n            }\n          }\n          else if (local_90 < 0x3fffffff) {\n            local_50 = (code *******)(*(code *)PTR_malloc_00079b54)((local_90 + 1) * 4);\n            if (local_50 != (code *******)0x0) goto LAB_00055a40;\n            local_150 = (code *******)0xc;\n            param_6 = pppppppcVar36;\n          }\n          else {\n            local_150 = (code *******)0xc;\n            param_6 = pppppppcVar36;\n          }\n        }\n        else {\n          unaff_s5 = (code *******)((int)ppppppcVar35 * 8);\n          if (pppppppcVar36 < (code *******)0xccccccd) {\n            unaff_s4 = (code *******)(*(code *)PTR_malloc_00079b54)((int)ppppppcVar35 * 0x28);\n            local_40 = unaff_s4;\n            local_30 = (*(code *)PTR_malloc_00079b54)(unaff_s5);\n            if ((unaff_s4 != (code *******)0x0) && (local_30 != 0)) goto LAB_000559f0;\n          }\n          local_150 = (code *******)0xc;\n          param_6 = pppppppcVar36;\n        }\nLAB_000557e4:\n        (*(code *)PTR_free_00079c24)(local_50);\n        param_1 = pppppppcVar30;\n        if (pppppppcVar38[0x13] != (code ******)0x0) {\n          FUN_0004b7e8(&local_b4);\n          (*(code *)PTR_free_00079c24)(local_30);\n          (*(code *)PTR_free_00079c24)(local_40);\n          param_1 = pppppppcVar30;\n        }\n        FUN_0004b2bc(&local_b4);\n        pppppppcStack_1a0 = param_4;\n        pppppppcStack_19c = pppppppcVar31;\n      }\n    }\n  }" (if "if") (parenthesized_expression "(pppppppcVar38[10] == (code ******)0x0)" (( "(") (binary_expression "pppppppcVar38[10] == (code ******)0x0" (subscript_expression "pppppppcVar38[10]" (identifier "pppppppcVar38") ([ "[") (number_literal "10") (] "]")) (== "==") (cast_expression "(code ******)0x0" (( "(") (type_descriptor "code ******" (type_identifier "code") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    local_150 = (code *******)0x1;\n  }" ({ "{") (expression_statement "local_150 = (code *******)0x1;" (assignment_expression "local_150 = (code *******)0x1" (identifier "local_150") (= "=") (cast_expression "(code *******)0x1" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x1"))) (; ";")) (} "}")) (else_clause "else if (pppppppcVar38[0xb] == (code ******)0x0) {\n    local_150 = (code *******)0x1;\n  }\n  else {\n    pppppppcVar29 = (code *******)pppppppcVar38[0xc];\n    if (pppppppcVar29 == (code *******)0x0) {\n      local_150 = (code *******)0x1;\n    }\n    else {\n      pppppppcVar3 = param_5;\n      if ((((pppppppcVar38[9][2] == (code *****)0x0) && (pppppppcVar38[10][2] == (code *****)0x0))\n          && ((pppppppcVar38[0xb][2] == (code *****)0x0 || (((uint)param_1[7] & 0x1000000) == 0))))\n         && ((pppppppcVar3 = param_4, param_4 != (code *******)0x0 &&\n             (param_4 = param_5, pppppppcVar3 = param_5, param_5 != (code *******)0x0)))) {\n        local_150 = (code *******)0x1;\n        pppppppcStack_1a0 = param_5;\n      }\n      else {\n        param_5 = pppppppcVar3;\n        pppppppcVar3 = (code *******)((int)param_7 - local_118);\n        if (pppppppcVar3 == (code *******)0x0) {\n          pppppppcVar34 = (code *******)(uint)(pppppppcVar38[0x13] != (code ******)0x0);\n        }\n        else {\n          pppppppcVar34 = (code *******)0x1;\n        }\n        ppppppcVar32 = param_1[5];\n        local_6c = (byte)((uint)((int)param_1[3] << 9) >> 0x1f);\n        local_64 = (code *******)pppppppcVar38[0x17];\n        pppppppcVar31 = (code *******)((int)pppppppcVar38[2] + 1);\n        if ((int)pppppppcVar38[2] + 1 < (int)local_64) {\n          pppppppcVar31 = local_64;\n        }\n        pppppppcVar30 = (code *******)(uint)((int)param_3 + 1 < (int)pppppppcVar31);\n        pppppppcVar33 = (code *******)0x1;\n        local_69 = local_6c;\n        if (ppppppcVar32 != (code ******)0x0) {\n          local_69 = 1;\n        }\n        local_6b = (byte)((uint)((int)pppppppcVar38[0x16] << 2) >> 0x1f);\n        local_6a = (byte)((uint)((int)pppppppcVar38[0x16] << 3) >> 0x1f);\n        pppppppcVar29 = (code *******)((int)param_3 + 1);\n        if (pppppppcVar30 == (code *******)0x0) {\n          pppppppcVar29 = pppppppcVar31;\n        }\n        local_b4 = param_2;\n        local_88 = param_3;\n        local_84 = param_3;\n        local_80 = param_3;\n        local_7c = param_3;\n        local_74 = ppppppcVar32;\n        local_150 = (code *******)FUN_00046d2c(&local_b4);\n        pppppppcVar31 = pppppppcVar34;\n        param_6 = param_6;\n        if (local_150 != (code *******)0x0) goto LAB_000557e4;\n        local_70 = pppppppcVar38 + 0x18;\n        local_66 = (byte)((uint)((int)pppppppcVar38[0x16] << 4) >> 0x1f);\n        pppppppcVar2 = (code *******)0x0;\n        local_98 = pppppppcVar2;\n        if ((local_69 == 0) && (local_b0 = param_2, (int)pppppppcVar38[0x17] < 2)) {\n          local_98 = param_3;\n        }\n        local_7c = param_6;\n        local_80 = param_6;\n        local_67 = (byte)((uint)((int)param_1[7] << 7) >> 0x1f);\n        ppppppcVar35 = pppppppcVar38[0x13];\n        pppppppcVar36 = (code *******)((int)ppppppcVar35 * 2);\n        local_5c = param_9;\n        local_58 = (code *******)0xffffffff;\n        local_94 = local_98;\n        if ((int)pppppppcVar36 < 1) {\nLAB_000559f0:\n          local_3c = 1;\n          local_44 = pppppppcVar36;\n          local_34 = pppppppcVar36;\n          if ((pppppppcVar3 < (code *******)0x2) && (((uint)pppppppcVar38[0x16] & 0x40000000) == 0))\n          {\n            local_50 = (code *******)0x0;\nLAB_00055a40:\n            local_78 = 6;\n            if (((uint)param_9 & 1) != 0) {\n              local_78 = 4;\n            }\n            pppppppcVar24 = (code *******)0x1;\n            pppppppcVar25 = param_4;\n            if ((int)param_5 < (int)param_4) {\n              pppppppcVar24 = (code *******)0xffffffff;\n              pppppppcVar25 = param_5;\n            }\n            pppppppcVar26 = param_5;\n            if ((int)param_5 <= (int)param_4) {\n              pppppppcVar26 = param_4;\n            }\n            ppppppcVar35 = pppppppcVar38[0x17];\n            uVar16 = 8;\n            if (local_148 != (code *******)0x0) {\n              if (ppppppcVar35 == (code ******)0x1) {\n                pppppppcVar28 = (code *******)0x4;\n              }\n              else {\n                pppppppcVar28 = pppppppcVar2;\n                if ((-1 < (int)param_1[3] << 9) && (ppppppcVar32 == (code ******)0x0)) {\n                  pppppppcVar28 = (code *******)0x4;\n                }\n              }\n              pppppppcVar29 = (code *******)0x0;\n              if ((int)param_4 <= (int)param_5) {\n                pppppppcVar29 = (code *******)0x2;\n              }\n              uVar16 = (uint)(ppppppcVar32 != (code ******)0x0) | (uint)pppppppcVar28 |\n                       (uint)pppppppcVar29;\n            }\n            local_dc = param_4;\n            if ((int)param_4 < (int)pppppppcVar25) {\n              local_150 = (code *******)0x1;\n              param_6 = pppppppcVar36;\n            }\n            else if ((int)pppppppcVar26 < (int)param_4) {\n              local_150 = (code *******)0x1;\n              param_4 = (code *******)(uint)((int)param_5 < (int)param_4);\n              param_6 = pppppppcVar36;\n            }\n            else {\n              pppppppcVar36 = (code *******)&local_dc;\n              if ((code *******)(uint)((int)param_5 < (int)param_4) != (code *******)0x0) {\n                pppppppcVar36 = (code *******)0x0;\n              }\n              pcVar4 = (code *)(PTR_DAT_000799a4 + -0x2b7c);\n              piVar5 = (int *)(PTR_s_nt0_000795b8 + (uVar16 - 4) * 4 + 0x6e38);\nLAB_00055b44:\n              if (uVar16 - 4 < 5) {\n                    \n                    \n                pppppppcVar29 = (code *******)(*(code *)(&_gp_1 + *piVar5))();\n                return pppppppcVar29;\n              }\n              param_5 = &local_b4;\n              pppppppcVar28 = pppppppcVar33;\n              while( true ) {\n                param_4 = local_dc;\n                pppppppcVar33 = (code *******)((int)local_dc - local_9c);\n                pppppppcVar30 = param_9;\n                pppppppcVar31 = pppppppcVar2;\n                param_6 = local_148;\n                unaff_s4 = param_3;\n                unaff_s5 = pppppppcVar24;\n                unaff_s7 = pppppppcVar26;\n                if (local_94 <= pppppppcVar33) {\n                  pppppppcVar29 = local_dc;\n                  local_150 = (code *******)(*pcVar4)(param_5);\n                  pppppppcVar33 = pppppppcVar28;\n                  if (local_150 != (code *******)0x0) goto LAB_000557e4;\n                  pppppppcVar33 = (code *******)((int)param_4 - local_9c);\n                }\n                if ((int)param_4 < (int)param_3) {\n                  uVar7 = (uint)(byte)*(code *)((int)pppppppcVar33 + (int)local_b0);\n                }\n                else {\n                  uVar7 = 0;\n                }\n                param_4 = (code *******)((int)param_4 + (int)pppppppcVar24);\n                if (*(code *)((int)local_148 + uVar7) != (code)0x0) break;\n                pppppppcVar33 = pppppppcVar28;\n                local_dc = param_4;\n                if ((int)param_4 < (int)pppppppcVar25) {\n                  local_150 = (code *******)0x1;\n                  goto LAB_000557e4;\n                }\n                if ((code *******)(uint)((int)pppppppcVar26 < (int)param_4) != (code *******)0x0) {\n                  local_150 = (code *******)0x1;\n                  param_4 = (code *******)(uint)((int)pppppppcVar26 < (int)param_4);\n                  goto LAB_000557e4;\n                }\n              }\n              while( true ) {\n                pppppppcVar29 = local_dc;\n                pppppppcVar30 = param_9;\n                pppppppcVar6 = (code *******)(*pcVar4)(&local_b4);\n                pppppppcVar14 = local_60;\n                pppppppcVar42 = local_8c;\n                pppppppcVar33 = pppppppcVar28;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar6 != (code *******)0x0) goto LAB_000557e4;\n                if (((ppppppcVar35 != (code ******)0x1) && (local_98 != (code *******)0x0)) &&\n                   (*local_ac == -1)) goto LAB_00055b1c;\n                local_3c = 0;\n                local_48 = 0;\n                local_4c = (code *******)0x0;\n                local_138 = local_8c;\n                local_d8 = (code *******)0x0;\n                unaff_s7 = (code *******)local_60[9];\n                pppppppcVar30 = local_5c;\n                param_4 = pppppppcVar14;\n                if (((uint)unaff_s7[0xd] & 0x1000000) == 0) break;\n                pppppppcVar29 = (code *******)((int)local_8c + -1);\n                pppppppcVar33 = (code *******)FUN_00049110(&local_b4);\n                if (((uint)pppppppcVar33 & 1) == 0) {\n                  if (pppppppcVar33 == (code *******)0x0) break;\n                  if (((uint)pppppppcVar33 & 6) == 6) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xc];\n                    goto LAB_00054d1c;\n                  }\n                  if (((uint)pppppppcVar33 & 2) != 0) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xb];\n                    goto LAB_00054d1c;\n                  }\n                  pppppppcVar28 = pppppppcVar33;\n                  if (((uint)pppppppcVar33 & 4) == 0) break;\n                  pppppppcVar30 = (code *******)unaff_s7[10];\n                  pppppppcVar29 = pppppppcVar14;\n                  unaff_s7 = (code *******)FUN_0004ae34(&local_d8);\n                  pppppppcVar28 = pppppppcVar33;\n                  if (unaff_s7 != (code *******)0x0) break;\n                  if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                }\n                else {\n                  unaff_s7 = (code *******)pppppppcVar14[10];\nLAB_00054d1c:\n                  pppppppcVar28 = (code *******)PTR_s_nt0_000795b8;\n                  if (unaff_s7 != (code *******)0x0) break;\n                }\n                pppppppcVar28 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                local_dc = (code *******)\n                           (*(code *)PTR___assert_fail_000799f8)\n                                     (PTR_s_nt0_000795b8 + 0x71a0,pppppppcVar29,0x435);\n                if (local_dc == pppppppcVar26) {\n                  if ((int)local_dc < (int)param_3) {\n                    uVar7 = (uint)(byte)*(code *)((int)local_dc + (int)param_2);\n                  }\n                  else {\n                    uVar7 = 0;\n                  }\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    uVar7 = (uint)*(byte *)((int)ppppppcVar32 + uVar7);\n                  }\n                  if (*(code *)((int)local_148 + uVar7) == (code)0x0) {\n                    local_150 = (code *******)0x1;\n                    pppppppcVar30 = param_9;\n                    pppppppcVar33 = pppppppcVar28;\n                    goto LAB_000557e4;\n                  }\n                }\n              }\n              pppppppcVar33 = pppppppcVar28;\n              bVar1 = pppppppcVar36 != (code *******)0x0;\n              if ((local_50 == (code *******)0x0) ||\n                 (local_50[(int)pppppppcVar42] = (code ******)unaff_s7,\n                 pppppppcVar14[0x13] == (code ******)0x0)) {\nLAB_00054d50:\n                if ((int)unaff_s7[0xd] << 4 < 0) {\n                  if ((((uint)unaff_s7[0xd] & 0x1000000) == 0) ||\n                     (pppppppcVar29 = unaff_s7, pppppppcVar30 = pppppppcVar42,\n                     iVar18 = FUN_00049440(&local_b4), iVar18 != 0)) {\n                    unaff_s8 = pppppppcVar42;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                  }\n                  else {\n                    pppppppcVar42 = (code *******)0xffffffff;\n                    pppppppcVar28 = (code *******)0x0;\n                  }\n                }\n                else {\n                  pppppppcVar42 = (code *******)0xffffffff;\n                  pppppppcVar28 = (code *******)0x0;\n                }\n                pcVar8 = (code *)(PTR_DAT_000799a4 + -0x7144);\n                pcVar9 = (code *)(PTR_DAT_000799a4 + -0x1980);\n                pcVar10 = (code *)(PTR_DAT_000799a4 + -0x2f9c);\n                unaff_s8 = pppppppcVar42;\n                local_144 = pppppppcVar36;\n                while( true ) {\n                  uVar44 = CONCAT44(local_98,local_84);\n                  unaff_s5 = (code *******)((int)local_8c + 1);\n                  pppppppcVar29 = local_8c;\n                  if ((int)local_7c <= (int)local_8c) break;\n                  if (((int)local_90 <= (int)unaff_s5) && ((int)local_90 < (int)local_84))\n                  goto LAB_00054e94;\n                  if ((int)local_98 <= (int)unaff_s5) {\n                    while ((int)((ulonglong)uVar44 >> 0x20) < (int)uVar44) {\nLAB_00054e94:\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 2);\n                      local_d8 = (code *******)(*pcVar8)(&local_b4);\n                      if (local_d8 == (code *******)0x0) break;\n                      pppppppcVar14 = param_4;\n                      if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                      pppppppcVar33 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                      pppppppcVar30 = (code *******)0x46c;\n                      pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                      uVar44 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0);\n                      pppppppcVar28 = pppppppcVar38;\n                    }\n                  }\n                  pppppppcVar42 = local_60;\n                  if ((int)unaff_s7[0xd] << 5 < 0) {\n                    pppppppcVar31 = pppppppcVar42;\n                    if (0 < (int)unaff_s7[2]) {\n                      pcVar11 = (code *)(PTR_DAT_000799a4 + -0x6fdc);\n                      pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6ef0);\n                      param_6 = (code *******)0x0;\n                      do {\n                        param_5 = (code *******)unaff_s7[3][(int)param_6];\n                        ppppppcVar39 = *pppppppcVar42;\n                        pppppcVar13 = ppppppcVar39[(int)param_5 * 2 + 1];\n                        if (((uint)pppppcVar13 & 0x800) != 0) {\n                          if (((uint)pppppcVar13 & 0xffc000) != 0) {\n                            pppppppcVar29 = local_8c;\n                            uVar19 = (*pcVar12)(&local_b4,local_8c,local_5c);\n                            uVar7 = (uint)((int)ppppppcVar39[(int)param_5 * 2 + 1] << 8) >> 0x16;\n                            if ((uVar7 & 4) == 0) {\n                              uVar27 = uVar19 & 1;\n                              if ((uVar7 & 8) != 0) goto joined_r0x00054f40;\n                            }\n                            else {\n                              uVar27 = uVar7 & 8;\n                              if ((uVar19 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                              if (uVar27 != 0) goto LAB_000550a4;\n                            }\n                            if ((((uVar7 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                               (((uVar7 & 0x80) != 0 &&\n                                (pppppppcVar33 = local_8c, (uVar19 & 8) == 0)))) goto LAB_000550a4;\n                          }\n                          pppppppcVar30 = &local_b4;\n                          pppppppcVar29 = param_5;\n                          pppppppcVar33 = local_8c;\n                          iVar18 = (*pcVar10)(pppppppcVar42);\n                          if (iVar18 != 0) {\n                            pppppppcVar14 = (code *******)((int)local_8c + iVar18);\n                            if (iVar18 <= local_3c) {\n                              iVar18 = local_3c;\n                            }\n                            pppppppcVar29 = pppppppcVar14;\n                            local_3c = iVar18;\n                            local_d4 = (code *******)(*pcVar11)(&local_b4);\n                            pppppppcVar15 = local_d4;\n                            if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                            pppppppcVar30 =\n                                 (code *******)\n                                 (pppppppcVar42[6] + (int)pppppppcVar42[3][(int)param_5] * 3);\n                            unaff_s4 = (code *******)((int)pppppppcVar14 * 4);\n                            param_5 = local_50 + (int)pppppppcVar14;\n                            if (*param_5 == (code ******)0x0) {\n                              local_d0 = (code *******)*pppppppcVar30;\n                              local_cc = (code *******)pppppppcVar30[1];\n                              local_c8 = (code *******)pppppppcVar30[2];\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *param_5 = ppppppcVar39;\n                            }\n                            else {\n                              pppppppcVar29 = (code *******)(*param_5)[10];\n                              local_d4 = (code *******)FUN_000484bc(&local_d0);\n                              pppppppcVar15 = local_d4;\n                              if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar15 = local_50 + (int)pppppppcVar14;\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *pppppppcVar15 = ppppppcVar39;\n                              (*(code *)PTR_free_00079c24)(local_c8);\n                            }\n                            unaff_s4 = local_50 + (int)pppppppcVar14;\n                            if ((*unaff_s4 == (code ******)0x0) &&\n                               (pppppppcVar15 = local_d4, local_d4 != (code *******)0x0))\n                            goto LAB_00055e44;\n                          }\n                        }\nLAB_000550a4:\n                        param_6 = (code *******)((int)param_6 + 1);\n                      } while ((int)param_6 < (int)unaff_s7[2]);\n                    }\n                    local_d8 = (code *******)0x0;\n                  }\n                  uVar7 = (uint)(byte)*(code *)((int)local_8c + (int)local_b0);\n                  local_8c = (code *******)((int)local_8c + 1);\n                  do {\n                    if (unaff_s7[0xb] != (code ******)0x0) {\n                      pppppppcVar30 = (code *******)unaff_s7[0xb][uVar7];\nLAB_000553a0:\n                      pppppppcVar14 = pppppppcVar30;\n                      if (local_50 != (code *******)0x0) goto LAB_000553ac;\n                      goto LAB_000553cc;\n                    }\n                    pppppppcVar31 = (code *******)unaff_s7[0xc];\n                    if (pppppppcVar31 != (code *******)0x0) {\n                      pppppppcVar29 = (code *******)((int)local_8c + -1);\n                      uVar19 = FUN_00049110(&local_b4);\n                      if ((uVar19 & 1) == 0) {\n                        pppppppcVar30 = (code *******)pppppppcVar31[uVar7];\n                      }\n                      else {\n                        pppppppcVar31 = pppppppcVar31 + uVar7 + 0x100;\n                        pppppppcVar30 = (code *******)*pppppppcVar31;\n                      }\n                      goto LAB_000553a0;\n                    }\n                    pppppppcVar29 = unaff_s7;\n                    pppppppcVar30 = local_5c;\n                    iVar18 = (*pcVar9)(local_60);\n                  } while (iVar18 != 0);\n                  local_d8 = (code *******)0xc;\n                  pppppppcVar15 = local_d8;\nLAB_00055e44:\n                  local_d8 = pppppppcVar15;\n                  param_4 = (code *******)0x0;\n                  if (local_50 == (code *******)0x0) {\n                    pppppppcVar14 = param_4;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    break;\n                  }\n                  pppppppcVar30 = (code *******)0x0;\nLAB_000553ac:\n                  pppppppcVar29 = &local_b4;\n                  pppppppcVar14 = (code *******)FUN_00053684(&local_d8);\nLAB_000553cc:\n                  param_4 = pppppppcVar14;\n                  if (pppppppcVar14 == (code *******)0x0) {\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    if ((local_50 == (code *******)0x0) ||\n                       ((pppppppcVar28 != (code *******)0x0 && (pppppppcVar34 == (code *******)0x0))\n                       )) break;\n                    param_6 = &local_b4;\n                    param_5 = (code *******)&local_d8;\n                    pppppppcVar31 = (code *******)(PTR_DAT_000799a4 + 0x3684);\n                    do {\n                      pppppppcVar15 = local_50 + (int)local_8c;\n                      pppppppcVar42 = local_8c;\n                      do {\n                        pppppppcVar42 = (code *******)((int)pppppppcVar42 + 1);\n                        pppppppcVar29 = local_4c;\n                        param_4 = pppppppcVar14;\n                        if ((int)local_4c < (int)pppppppcVar42) goto LAB_00055da8;\n                        local_8c = (code *******)((int)local_8c + 1);\n                        pppppppcVar15 = pppppppcVar15 + 1;\n                      } while (*pppppppcVar15 == (code ******)0x0);\n                      pppppppcVar30 = (code *******)0x0;\n                      pppppppcVar29 = param_6;\n                      param_4 = (code *******)(*(code *)pppppppcVar31)(param_5);\n                      if (local_d8 != (code *******)0x0) {\n                        if (param_4 == (code *******)0x0) goto LAB_00055da8;\n                        break;\n                      }\n                      pppppppcVar29 = local_4c;\n                    } while (param_4 == (code *******)0x0);\n                  }\n                  pppppppcVar15 = (code *******)((uint)unaff_s7 ^ (uint)param_4);\n                  pppppppcVar42 = unaff_s7;\n                  pppppppcVar14 = local_138;\n                  if ((bVar1) &&\n                     (pppppppcVar42 = pppppppcVar15, pppppppcVar14 = unaff_s5,\n                     pppppppcVar15 != (code *******)0x0)) {\n                    bVar1 = false;\n                    pppppppcVar14 = local_138;\n                  }\n                  local_138 = pppppppcVar14;\n                  unaff_s7 = param_4;\n                  if ((((uint)param_4[0xd] & 0x8000000) != 0) &&\n                     ((((uint)param_4[0xd] & 0x1000000) == 0 ||\n                      (pppppppcVar29 = param_4, pppppppcVar30 = local_8c,\n                      iVar18 = FUN_00049440(&local_b4), iVar18 != 0)))) {\n                    unaff_s7 = pppppppcVar42;\n                    unaff_s8 = local_8c;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                    local_144 = (code *******)0x0;\n                    unaff_s7 = param_4;\n                  }\n                }\nLAB_00055da8:\n                if (local_144 != (code *******)0x0) {\n                  *local_144 = (code ******)((int)local_138 + (int)*local_144);\n                }\n              }\n              else {\n                param_4 = unaff_s7 + 1;\n                pppppppcVar30 = (code *******)0x0;\n                pppppppcVar29 = param_4;\n                local_d8 = (code *******)FUN_00047a44(&local_b4);\n                unaff_s8 = local_d8;\n                if (local_d8 == (code *******)0x0) {\n                  if (((uint)unaff_s7[0xd] & 0x2000000) == 0) {\n                    pppppppcVar29 = param_4;\n                    bVar1 = false;\n                  }\n                  else {\n                    pppppppcVar29 = param_4;\n                    local_d8 = (code *******)FUN_00052d84(&local_b4);\n                    unaff_s8 = local_d8;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055dbc;\n                    bVar1 = false;\n                  }\n                  goto LAB_00054d50;\n                }\n              }\nLAB_00055dbc:\n              if (unaff_s8 == (code *******)0xffffffff) {\nLAB_00055b04:\n                FUN_0004b7e8(&local_b4);\nLAB_00055b1c:\n                local_dc = (code *******)((int)pppppppcVar24 + (int)local_dc);\n                if ((int)pppppppcVar25 <= (int)local_dc) goto code_r0x00055b38;\n                local_150 = (code *******)0x1;\n                goto LAB_000557e4;\n              }\n              if (unaff_s8 == (code *******)&SUB_fffffffe) {\n                local_150 = (code *******)0xc;\n                goto LAB_000557e4;\n              }\n              local_58 = unaff_s8;\n              if (((uint)param_1[7] & 0x8000000) == 0) {\n                if (pppppppcVar3 < (code *******)0x2) {\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055c08;\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                else {\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                if (pppppppcVar3 < (code *******)0x2) {\nLAB_00055c6c:\n                  pppppppcVar28 = pppppppcVar33;\n                  unaff_s4 = local_60;\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055548;\n                }\n                else {\n                  cVar23 = *(code *)(pppppppcVar38 + 0x16);\nLAB_00055c20:\n                  pppppppcVar28 = pppppppcVar33;\n                  if (-1 < (char)cVar23) goto LAB_00055c6c;\n                }\n                pppppppcVar31 = local_54;\n                pppppppcVar42 = local_60;\n                unaff_s4 = pppppppcVar42;\n                if (unaff_s8 < (code *******)0x3fffffff) {\n                  param_4 = (code *******)((int)((int)unaff_s8 + 1) * 4);\n                  unaff_s5 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                  if (unaff_s5 == (code *******)0x0) {\nLAB_00055b9c:\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    local_150 = (code *******)0xc;\n                    pppppppcVar33 = pppppppcVar28;\n                  }\n                  else {\n                    pppppppcVar29 = (code *******)&local_d0;\n                    if (pppppppcVar42[0x13] == (code ******)0x0) {\n                      local_cc = (code *******)0x0;\n                      local_c8 = pppppppcVar31;\n                      local_c0 = 0;\n                      local_bc = 0;\n                      local_b8 = 0;\n                      local_d0 = unaff_s5;\n                      local_c4 = unaff_s8;\n                      param_5 = (code *******)FUN_0005421c(&local_b4);\n                      (*(code *)PTR_free_00079c24)(local_b8);\n                      if (param_5 == (code *******)0x0) {\n                        param_4 = (code *******)*unaff_s5;\n                        if (param_4 == (code *******)0x0) {\nLAB_00055b70:\n                          (*(code *)PTR_free_00079c24)(unaff_s5);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          pppppppcVar33 = pppppppcVar28;\n                          goto LAB_00055b04;\n                        }\nLAB_00055528:\n                        (*(code *)PTR_free_00079c24)(local_50);\n                        pppppppcVar33 = pppppppcVar28;\n                        unaff_s4 = pppppppcVar42;\n                        local_58 = unaff_s8;\n                        local_54 = pppppppcVar31;\n                        local_50 = unaff_s5;\n                        goto LAB_00055548;\n                      }\nLAB_00055acc:\n                      param_4 = (code *******)0x0;\n                      pppppppcVar33 = pppppppcVar28;\n                      unaff_s4 = pppppppcVar42;\n                    }\n                    else {\n                      param_4 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                      if (param_4 == (code *******)0x0) goto LAB_00055b9c;\n                      unaff_s7 = (code *******)&local_d0;\n                      pcVar8 = (code *)(PTR_DAT_000799a4 + 0x421c);\n                      pcVar9 = (code *)(PTR_DAT_000799a4 + -0x6bc0);\n                      pppppppcVar33 = pppppppcVar28;\n                      while( true ) {\n                        pppppppcVar28 = (code *******)((int)unaff_s8 + 1);\n                        param_6 = (code *******)((int)pppppppcVar28 * 4);\n                        pppppppcVar30 = param_6;\n                        (*(code *)PTR_memset_00079b00)(param_4,0);\n                        local_c0 = 0;\n                        local_bc = 0;\n                        local_b8 = 0;\n                        pppppppcVar29 = unaff_s7;\n                        local_d0 = unaff_s5;\n                        local_cc = param_4;\n                        local_c8 = pppppppcVar31;\n                        local_c4 = unaff_s8;\n                        param_5 = (code *******)(*pcVar8)(&local_b4);\n                        (*(code *)PTR_free_00079c24)(local_b8);\n                        unaff_s4 = pppppppcVar28;\n                        if (param_5 != (code *******)0x0) break;\n                        if ((*unaff_s5 != (code ******)0x0) ||\n                           (param_6 = param_6 + -1, *param_4 != (code ******)0x0)) {\n                          pppppppcVar29 = unaff_s5;\n                          pppppppcVar30 = param_4;\n                          param_5 = (code *******)FUN_000520d0(pppppppcVar42);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          if (param_5 != (code *******)0x0) goto LAB_00055acc;\n                          goto LAB_00055528;\n                        }\n                        param_6 = (code *******)((int)local_50 + (int)param_6);\n                        do {\n                          while( true ) {\n                            unaff_s8 = (code *******)((int)unaff_s8 + -1);\n                            if ((int)unaff_s8 < 0) goto LAB_00055b70;\n                            pppppppcVar29 = (code *******)param_6[-1];\n                            if (pppppppcVar29 != (code *******)0x0) break;\n                            param_6 = param_6 + -1;\n                          }\n                          param_6 = param_6 + -1;\n                        } while (((uint)pppppppcVar29[0xd] & 0x8000000) == 0);\n                        pppppppcVar31 = (code *******)(*pcVar9)(&local_b4,pppppppcVar29,unaff_s8);\n                        pppppppcVar33 = pppppppcVar28;\n                      }\n                    }\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    (*(code *)PTR_free_00079c24)(param_4);\n                    local_150 = param_5;\n                    if (param_5 == (code *******)0x1) goto LAB_00055b04;\n                  }\n                }\n                else {\n                  local_150 = (code *******)0xc;\n                  pppppppcVar33 = pppppppcVar28;\n                }\n                goto LAB_000557e4;\n              }\n              if (pppppppcVar38[0x13] != (code ******)0x0) {\n                pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                pppppppcVar30 = unaff_s8;\n                local_54 = (code *******)FUN_00049440(&local_b4);\n                goto LAB_00055c6c;\n              }\nLAB_00055c08:\n              if ((((uint)param_1[7] & 0x8000000) == 0) && ((code *******)0x1 < pppppppcVar3)) {\n                cVar23 = *(code *)(pppppppcVar38 + 0x16);\n                goto LAB_00055c20;\n              }\nLAB_00055548:\n              if (pppppppcVar3 == (code *******)0x0) goto LAB_000557e4;\n              if (pppppppcVar3 < (code *******)0x2) {\n                *param_8 = (code ******)0x0;\n                param_8[1] = (code ******)local_58;\n                goto LAB_000555ac;\n              }\n              pppppppcVar29 = param_8 + 2;\n              do {\n                pppppppcVar29[1] = (code ******)0xffffffff;\n                *pppppppcVar29 = (code ******)0xffffffff;\n                pppppppcVar29 = pppppppcVar29 + 2;\n              } while (pppppppcVar29 != param_8 + (int)pppppppcVar3 * 2);\n              *param_8 = (code ******)0x0;\n              param_8[1] = (code ******)local_58;\n              if (((uint)param_1[7] & 0x8000000) != 0) {\nLAB_000555ac:\n                pppppppcVar33 = param_8;\n                do {\n                  pppppppcVar29 = (code *******)*pppppppcVar33;\n                  if (pppppppcVar29 != (code *******)0xffffffff) {\n                    if (local_68 != '\0') {\n                      pppppppcVar34 = local_94;\n                      if (pppppppcVar29 != local_98) {\n                        pppppppcVar34 = *(code ********)(local_a8 + (int)pppppppcVar29 * 4);\n                      }\n                      *pppppppcVar33 = (code ******)pppppppcVar34;\n                      pppppppcVar29 = local_94;\n                      if (local_98 != (code *******)pppppppcVar33[1]) {\n                        pppppppcVar29 = *(code ********)(local_a8 + (int)pppppppcVar33[1] * 4);\n                      }\n                      pppppppcVar33[1] = (code ******)pppppppcVar29;\n                    }\n                    *pppppppcVar33 = (code ******)((int)local_dc + (int)*pppppppcVar33);\n                    pppppppcVar29 = (code *******)((int)local_dc + (int)pppppppcVar33[1]);\n                    pppppppcVar33[1] = (code ******)pppppppcVar29;\n                  }\n                  pppppppcVar33 = pppppppcVar33 + 2;\n                } while (pppppppcVar33 != param_8 + (int)pppppppcVar3 * 2);\n                if (0 < local_118) {\n                  pppppppcVar33 = param_8 + (int)pppppppcVar3 * 2;\n                  do {\n                    *pppppppcVar33 = (code ******)0xffffffff;\n                    pppppppcVar33[1] = (code ******)0xffffffff;\n                    pppppppcVar33 = pppppppcVar33 + 2;\n                  } while (pppppppcVar33 != param_8 + (int)param_7 * 2);\n                }\n                pppppppcVar30 = local_dc;\n                pppppppcVar33 = param_8;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar38[0x21] != (code ******)0x0) {\n                  pppppppcVar30 = (code *******)((int)pppppppcVar3 + -1);\n                  pppppppcVar34 = (code *******)0x0;\n                  pppppppcVar3 = param_8;\n                  while( true ) {\n                    pppppppcVar29 = (code *******)((int)pppppppcVar34 * 4);\n                    if (pppppppcVar30 == pppppppcVar34) break;\n                    if (*(code ********)((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) !=\n                        pppppppcVar34) {\n                      pppppppcVar3[2] =\n                           param_8[(int)((int)*(code ********)\n                                               ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1)\n                                   * 2];\n                      pppppppcVar3[3] =\n                           param_8[((int)*(code ******)\n                                          ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1) * 2 +\n                                   1];\n                    }\n                    pppppppcVar34 = (code *******)((int)pppppppcVar34 + 1);\n                    pppppppcVar3 = pppppppcVar3 + 2;\n                  }\n                }\n                goto LAB_000557e4;\n              }\n              if ((char)*(code *)(pppppppcVar38 + 0x16) < '\0') {\n                local_168 = (uint)(0 < (int)pppppppcVar38[0x13]);\n              }\n              else {\n                local_168 = 0;\n              }\n              pppppppcVar29 = &local_b4;\n              pppppppcVar30 = pppppppcVar3;\n              pppppppcVar33 = param_8;\n              local_150 = (code *******)FUN_0004f4a0(param_1);\n              if (local_150 == (code *******)0x0) goto LAB_000555ac;\n            }\n          }\n          else if (local_90 < 0x3fffffff) {\n            local_50 = (code *******)(*(code *)PTR_malloc_00079b54)((local_90 + 1) * 4);\n            if (local_50 != (code *******)0x0) goto LAB_00055a40;\n            local_150 = (code *******)0xc;\n            param_6 = pppppppcVar36;\n          }\n          else {\n            local_150 = (code *******)0xc;\n            param_6 = pppppppcVar36;\n          }\n        }\n        else {\n          unaff_s5 = (code *******)((int)ppppppcVar35 * 8);\n          if (pppppppcVar36 < (code *******)0xccccccd) {\n            unaff_s4 = (code *******)(*(code *)PTR_malloc_00079b54)((int)ppppppcVar35 * 0x28);\n            local_40 = unaff_s4;\n            local_30 = (*(code *)PTR_malloc_00079b54)(unaff_s5);\n            if ((unaff_s4 != (code *******)0x0) && (local_30 != 0)) goto LAB_000559f0;\n          }\n          local_150 = (code *******)0xc;\n          param_6 = pppppppcVar36;\n        }\nLAB_000557e4:\n        (*(code *)PTR_free_00079c24)(local_50);\n        param_1 = pppppppcVar30;\n        if (pppppppcVar38[0x13] != (code ******)0x0) {\n          FUN_0004b7e8(&local_b4);\n          (*(code *)PTR_free_00079c24)(local_30);\n          (*(code *)PTR_free_00079c24)(local_40);\n          param_1 = pppppppcVar30;\n        }\n        FUN_0004b2bc(&local_b4);\n        pppppppcStack_1a0 = param_4;\n        pppppppcStack_19c = pppppppcVar31;\n      }\n    }\n  }" (else "else") (if_statement "if (pppppppcVar38[0xb] == (code ******)0x0) {\n    local_150 = (code *******)0x1;\n  }\n  else {\n    pppppppcVar29 = (code *******)pppppppcVar38[0xc];\n    if (pppppppcVar29 == (code *******)0x0) {\n      local_150 = (code *******)0x1;\n    }\n    else {\n      pppppppcVar3 = param_5;\n      if ((((pppppppcVar38[9][2] == (code *****)0x0) && (pppppppcVar38[10][2] == (code *****)0x0))\n          && ((pppppppcVar38[0xb][2] == (code *****)0x0 || (((uint)param_1[7] & 0x1000000) == 0))))\n         && ((pppppppcVar3 = param_4, param_4 != (code *******)0x0 &&\n             (param_4 = param_5, pppppppcVar3 = param_5, param_5 != (code *******)0x0)))) {\n        local_150 = (code *******)0x1;\n        pppppppcStack_1a0 = param_5;\n      }\n      else {\n        param_5 = pppppppcVar3;\n        pppppppcVar3 = (code *******)((int)param_7 - local_118);\n        if (pppppppcVar3 == (code *******)0x0) {\n          pppppppcVar34 = (code *******)(uint)(pppppppcVar38[0x13] != (code ******)0x0);\n        }\n        else {\n          pppppppcVar34 = (code *******)0x1;\n        }\n        ppppppcVar32 = param_1[5];\n        local_6c = (byte)((uint)((int)param_1[3] << 9) >> 0x1f);\n        local_64 = (code *******)pppppppcVar38[0x17];\n        pppppppcVar31 = (code *******)((int)pppppppcVar38[2] + 1);\n        if ((int)pppppppcVar38[2] + 1 < (int)local_64) {\n          pppppppcVar31 = local_64;\n        }\n        pppppppcVar30 = (code *******)(uint)((int)param_3 + 1 < (int)pppppppcVar31);\n        pppppppcVar33 = (code *******)0x1;\n        local_69 = local_6c;\n        if (ppppppcVar32 != (code ******)0x0) {\n          local_69 = 1;\n        }\n        local_6b = (byte)((uint)((int)pppppppcVar38[0x16] << 2) >> 0x1f);\n        local_6a = (byte)((uint)((int)pppppppcVar38[0x16] << 3) >> 0x1f);\n        pppppppcVar29 = (code *******)((int)param_3 + 1);\n        if (pppppppcVar30 == (code *******)0x0) {\n          pppppppcVar29 = pppppppcVar31;\n        }\n        local_b4 = param_2;\n        local_88 = param_3;\n        local_84 = param_3;\n        local_80 = param_3;\n        local_7c = param_3;\n        local_74 = ppppppcVar32;\n        local_150 = (code *******)FUN_00046d2c(&local_b4);\n        pppppppcVar31 = pppppppcVar34;\n        param_6 = param_6;\n        if (local_150 != (code *******)0x0) goto LAB_000557e4;\n        local_70 = pppppppcVar38 + 0x18;\n        local_66 = (byte)((uint)((int)pppppppcVar38[0x16] << 4) >> 0x1f);\n        pppppppcVar2 = (code *******)0x0;\n        local_98 = pppppppcVar2;\n        if ((local_69 == 0) && (local_b0 = param_2, (int)pppppppcVar38[0x17] < 2)) {\n          local_98 = param_3;\n        }\n        local_7c = param_6;\n        local_80 = param_6;\n        local_67 = (byte)((uint)((int)param_1[7] << 7) >> 0x1f);\n        ppppppcVar35 = pppppppcVar38[0x13];\n        pppppppcVar36 = (code *******)((int)ppppppcVar35 * 2);\n        local_5c = param_9;\n        local_58 = (code *******)0xffffffff;\n        local_94 = local_98;\n        if ((int)pppppppcVar36 < 1) {\nLAB_000559f0:\n          local_3c = 1;\n          local_44 = pppppppcVar36;\n          local_34 = pppppppcVar36;\n          if ((pppppppcVar3 < (code *******)0x2) && (((uint)pppppppcVar38[0x16] & 0x40000000) == 0))\n          {\n            local_50 = (code *******)0x0;\nLAB_00055a40:\n            local_78 = 6;\n            if (((uint)param_9 & 1) != 0) {\n              local_78 = 4;\n            }\n            pppppppcVar24 = (code *******)0x1;\n            pppppppcVar25 = param_4;\n            if ((int)param_5 < (int)param_4) {\n              pppppppcVar24 = (code *******)0xffffffff;\n              pppppppcVar25 = param_5;\n            }\n            pppppppcVar26 = param_5;\n            if ((int)param_5 <= (int)param_4) {\n              pppppppcVar26 = param_4;\n            }\n            ppppppcVar35 = pppppppcVar38[0x17];\n            uVar16 = 8;\n            if (local_148 != (code *******)0x0) {\n              if (ppppppcVar35 == (code ******)0x1) {\n                pppppppcVar28 = (code *******)0x4;\n              }\n              else {\n                pppppppcVar28 = pppppppcVar2;\n                if ((-1 < (int)param_1[3] << 9) && (ppppppcVar32 == (code ******)0x0)) {\n                  pppppppcVar28 = (code *******)0x4;\n                }\n              }\n              pppppppcVar29 = (code *******)0x0;\n              if ((int)param_4 <= (int)param_5) {\n                pppppppcVar29 = (code *******)0x2;\n              }\n              uVar16 = (uint)(ppppppcVar32 != (code ******)0x0) | (uint)pppppppcVar28 |\n                       (uint)pppppppcVar29;\n            }\n            local_dc = param_4;\n            if ((int)param_4 < (int)pppppppcVar25) {\n              local_150 = (code *******)0x1;\n              param_6 = pppppppcVar36;\n            }\n            else if ((int)pppppppcVar26 < (int)param_4) {\n              local_150 = (code *******)0x1;\n              param_4 = (code *******)(uint)((int)param_5 < (int)param_4);\n              param_6 = pppppppcVar36;\n            }\n            else {\n              pppppppcVar36 = (code *******)&local_dc;\n              if ((code *******)(uint)((int)param_5 < (int)param_4) != (code *******)0x0) {\n                pppppppcVar36 = (code *******)0x0;\n              }\n              pcVar4 = (code *)(PTR_DAT_000799a4 + -0x2b7c);\n              piVar5 = (int *)(PTR_s_nt0_000795b8 + (uVar16 - 4) * 4 + 0x6e38);\nLAB_00055b44:\n              if (uVar16 - 4 < 5) {\n                    \n                    \n                pppppppcVar29 = (code *******)(*(code *)(&_gp_1 + *piVar5))();\n                return pppppppcVar29;\n              }\n              param_5 = &local_b4;\n              pppppppcVar28 = pppppppcVar33;\n              while( true ) {\n                param_4 = local_dc;\n                pppppppcVar33 = (code *******)((int)local_dc - local_9c);\n                pppppppcVar30 = param_9;\n                pppppppcVar31 = pppppppcVar2;\n                param_6 = local_148;\n                unaff_s4 = param_3;\n                unaff_s5 = pppppppcVar24;\n                unaff_s7 = pppppppcVar26;\n                if (local_94 <= pppppppcVar33) {\n                  pppppppcVar29 = local_dc;\n                  local_150 = (code *******)(*pcVar4)(param_5);\n                  pppppppcVar33 = pppppppcVar28;\n                  if (local_150 != (code *******)0x0) goto LAB_000557e4;\n                  pppppppcVar33 = (code *******)((int)param_4 - local_9c);\n                }\n                if ((int)param_4 < (int)param_3) {\n                  uVar7 = (uint)(byte)*(code *)((int)pppppppcVar33 + (int)local_b0);\n                }\n                else {\n                  uVar7 = 0;\n                }\n                param_4 = (code *******)((int)param_4 + (int)pppppppcVar24);\n                if (*(code *)((int)local_148 + uVar7) != (code)0x0) break;\n                pppppppcVar33 = pppppppcVar28;\n                local_dc = param_4;\n                if ((int)param_4 < (int)pppppppcVar25) {\n                  local_150 = (code *******)0x1;\n                  goto LAB_000557e4;\n                }\n                if ((code *******)(uint)((int)pppppppcVar26 < (int)param_4) != (code *******)0x0) {\n                  local_150 = (code *******)0x1;\n                  param_4 = (code *******)(uint)((int)pppppppcVar26 < (int)param_4);\n                  goto LAB_000557e4;\n                }\n              }\n              while( true ) {\n                pppppppcVar29 = local_dc;\n                pppppppcVar30 = param_9;\n                pppppppcVar6 = (code *******)(*pcVar4)(&local_b4);\n                pppppppcVar14 = local_60;\n                pppppppcVar42 = local_8c;\n                pppppppcVar33 = pppppppcVar28;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar6 != (code *******)0x0) goto LAB_000557e4;\n                if (((ppppppcVar35 != (code ******)0x1) && (local_98 != (code *******)0x0)) &&\n                   (*local_ac == -1)) goto LAB_00055b1c;\n                local_3c = 0;\n                local_48 = 0;\n                local_4c = (code *******)0x0;\n                local_138 = local_8c;\n                local_d8 = (code *******)0x0;\n                unaff_s7 = (code *******)local_60[9];\n                pppppppcVar30 = local_5c;\n                param_4 = pppppppcVar14;\n                if (((uint)unaff_s7[0xd] & 0x1000000) == 0) break;\n                pppppppcVar29 = (code *******)((int)local_8c + -1);\n                pppppppcVar33 = (code *******)FUN_00049110(&local_b4);\n                if (((uint)pppppppcVar33 & 1) == 0) {\n                  if (pppppppcVar33 == (code *******)0x0) break;\n                  if (((uint)pppppppcVar33 & 6) == 6) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xc];\n                    goto LAB_00054d1c;\n                  }\n                  if (((uint)pppppppcVar33 & 2) != 0) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xb];\n                    goto LAB_00054d1c;\n                  }\n                  pppppppcVar28 = pppppppcVar33;\n                  if (((uint)pppppppcVar33 & 4) == 0) break;\n                  pppppppcVar30 = (code *******)unaff_s7[10];\n                  pppppppcVar29 = pppppppcVar14;\n                  unaff_s7 = (code *******)FUN_0004ae34(&local_d8);\n                  pppppppcVar28 = pppppppcVar33;\n                  if (unaff_s7 != (code *******)0x0) break;\n                  if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                }\n                else {\n                  unaff_s7 = (code *******)pppppppcVar14[10];\nLAB_00054d1c:\n                  pppppppcVar28 = (code *******)PTR_s_nt0_000795b8;\n                  if (unaff_s7 != (code *******)0x0) break;\n                }\n                pppppppcVar28 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                local_dc = (code *******)\n                           (*(code *)PTR___assert_fail_000799f8)\n                                     (PTR_s_nt0_000795b8 + 0x71a0,pppppppcVar29,0x435);\n                if (local_dc == pppppppcVar26) {\n                  if ((int)local_dc < (int)param_3) {\n                    uVar7 = (uint)(byte)*(code *)((int)local_dc + (int)param_2);\n                  }\n                  else {\n                    uVar7 = 0;\n                  }\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    uVar7 = (uint)*(byte *)((int)ppppppcVar32 + uVar7);\n                  }\n                  if (*(code *)((int)local_148 + uVar7) == (code)0x0) {\n                    local_150 = (code *******)0x1;\n                    pppppppcVar30 = param_9;\n                    pppppppcVar33 = pppppppcVar28;\n                    goto LAB_000557e4;\n                  }\n                }\n              }\n              pppppppcVar33 = pppppppcVar28;\n              bVar1 = pppppppcVar36 != (code *******)0x0;\n              if ((local_50 == (code *******)0x0) ||\n                 (local_50[(int)pppppppcVar42] = (code ******)unaff_s7,\n                 pppppppcVar14[0x13] == (code ******)0x0)) {\nLAB_00054d50:\n                if ((int)unaff_s7[0xd] << 4 < 0) {\n                  if ((((uint)unaff_s7[0xd] & 0x1000000) == 0) ||\n                     (pppppppcVar29 = unaff_s7, pppppppcVar30 = pppppppcVar42,\n                     iVar18 = FUN_00049440(&local_b4), iVar18 != 0)) {\n                    unaff_s8 = pppppppcVar42;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                  }\n                  else {\n                    pppppppcVar42 = (code *******)0xffffffff;\n                    pppppppcVar28 = (code *******)0x0;\n                  }\n                }\n                else {\n                  pppppppcVar42 = (code *******)0xffffffff;\n                  pppppppcVar28 = (code *******)0x0;\n                }\n                pcVar8 = (code *)(PTR_DAT_000799a4 + -0x7144);\n                pcVar9 = (code *)(PTR_DAT_000799a4 + -0x1980);\n                pcVar10 = (code *)(PTR_DAT_000799a4 + -0x2f9c);\n                unaff_s8 = pppppppcVar42;\n                local_144 = pppppppcVar36;\n                while( true ) {\n                  uVar44 = CONCAT44(local_98,local_84);\n                  unaff_s5 = (code *******)((int)local_8c + 1);\n                  pppppppcVar29 = local_8c;\n                  if ((int)local_7c <= (int)local_8c) break;\n                  if (((int)local_90 <= (int)unaff_s5) && ((int)local_90 < (int)local_84))\n                  goto LAB_00054e94;\n                  if ((int)local_98 <= (int)unaff_s5) {\n                    while ((int)((ulonglong)uVar44 >> 0x20) < (int)uVar44) {\nLAB_00054e94:\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 2);\n                      local_d8 = (code *******)(*pcVar8)(&local_b4);\n                      if (local_d8 == (code *******)0x0) break;\n                      pppppppcVar14 = param_4;\n                      if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                      pppppppcVar33 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                      pppppppcVar30 = (code *******)0x46c;\n                      pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                      uVar44 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0);\n                      pppppppcVar28 = pppppppcVar38;\n                    }\n                  }\n                  pppppppcVar42 = local_60;\n                  if ((int)unaff_s7[0xd] << 5 < 0) {\n                    pppppppcVar31 = pppppppcVar42;\n                    if (0 < (int)unaff_s7[2]) {\n                      pcVar11 = (code *)(PTR_DAT_000799a4 + -0x6fdc);\n                      pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6ef0);\n                      param_6 = (code *******)0x0;\n                      do {\n                        param_5 = (code *******)unaff_s7[3][(int)param_6];\n                        ppppppcVar39 = *pppppppcVar42;\n                        pppppcVar13 = ppppppcVar39[(int)param_5 * 2 + 1];\n                        if (((uint)pppppcVar13 & 0x800) != 0) {\n                          if (((uint)pppppcVar13 & 0xffc000) != 0) {\n                            pppppppcVar29 = local_8c;\n                            uVar19 = (*pcVar12)(&local_b4,local_8c,local_5c);\n                            uVar7 = (uint)((int)ppppppcVar39[(int)param_5 * 2 + 1] << 8) >> 0x16;\n                            if ((uVar7 & 4) == 0) {\n                              uVar27 = uVar19 & 1;\n                              if ((uVar7 & 8) != 0) goto joined_r0x00054f40;\n                            }\n                            else {\n                              uVar27 = uVar7 & 8;\n                              if ((uVar19 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                              if (uVar27 != 0) goto LAB_000550a4;\n                            }\n                            if ((((uVar7 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                               (((uVar7 & 0x80) != 0 &&\n                                (pppppppcVar33 = local_8c, (uVar19 & 8) == 0)))) goto LAB_000550a4;\n                          }\n                          pppppppcVar30 = &local_b4;\n                          pppppppcVar29 = param_5;\n                          pppppppcVar33 = local_8c;\n                          iVar18 = (*pcVar10)(pppppppcVar42);\n                          if (iVar18 != 0) {\n                            pppppppcVar14 = (code *******)((int)local_8c + iVar18);\n                            if (iVar18 <= local_3c) {\n                              iVar18 = local_3c;\n                            }\n                            pppppppcVar29 = pppppppcVar14;\n                            local_3c = iVar18;\n                            local_d4 = (code *******)(*pcVar11)(&local_b4);\n                            pppppppcVar15 = local_d4;\n                            if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                            pppppppcVar30 =\n                                 (code *******)\n                                 (pppppppcVar42[6] + (int)pppppppcVar42[3][(int)param_5] * 3);\n                            unaff_s4 = (code *******)((int)pppppppcVar14 * 4);\n                            param_5 = local_50 + (int)pppppppcVar14;\n                            if (*param_5 == (code ******)0x0) {\n                              local_d0 = (code *******)*pppppppcVar30;\n                              local_cc = (code *******)pppppppcVar30[1];\n                              local_c8 = (code *******)pppppppcVar30[2];\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *param_5 = ppppppcVar39;\n                            }\n                            else {\n                              pppppppcVar29 = (code *******)(*param_5)[10];\n                              local_d4 = (code *******)FUN_000484bc(&local_d0);\n                              pppppppcVar15 = local_d4;\n                              if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar15 = local_50 + (int)pppppppcVar14;\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *pppppppcVar15 = ppppppcVar39;\n                              (*(code *)PTR_free_00079c24)(local_c8);\n                            }\n                            unaff_s4 = local_50 + (int)pppppppcVar14;\n                            if ((*unaff_s4 == (code ******)0x0) &&\n                               (pppppppcVar15 = local_d4, local_d4 != (code *******)0x0))\n                            goto LAB_00055e44;\n                          }\n                        }\nLAB_000550a4:\n                        param_6 = (code *******)((int)param_6 + 1);\n                      } while ((int)param_6 < (int)unaff_s7[2]);\n                    }\n                    local_d8 = (code *******)0x0;\n                  }\n                  uVar7 = (uint)(byte)*(code *)((int)local_8c + (int)local_b0);\n                  local_8c = (code *******)((int)local_8c + 1);\n                  do {\n                    if (unaff_s7[0xb] != (code ******)0x0) {\n                      pppppppcVar30 = (code *******)unaff_s7[0xb][uVar7];\nLAB_000553a0:\n                      pppppppcVar14 = pppppppcVar30;\n                      if (local_50 != (code *******)0x0) goto LAB_000553ac;\n                      goto LAB_000553cc;\n                    }\n                    pppppppcVar31 = (code *******)unaff_s7[0xc];\n                    if (pppppppcVar31 != (code *******)0x0) {\n                      pppppppcVar29 = (code *******)((int)local_8c + -1);\n                      uVar19 = FUN_00049110(&local_b4);\n                      if ((uVar19 & 1) == 0) {\n                        pppppppcVar30 = (code *******)pppppppcVar31[uVar7];\n                      }\n                      else {\n                        pppppppcVar31 = pppppppcVar31 + uVar7 + 0x100;\n                        pppppppcVar30 = (code *******)*pppppppcVar31;\n                      }\n                      goto LAB_000553a0;\n                    }\n                    pppppppcVar29 = unaff_s7;\n                    pppppppcVar30 = local_5c;\n                    iVar18 = (*pcVar9)(local_60);\n                  } while (iVar18 != 0);\n                  local_d8 = (code *******)0xc;\n                  pppppppcVar15 = local_d8;\nLAB_00055e44:\n                  local_d8 = pppppppcVar15;\n                  param_4 = (code *******)0x0;\n                  if (local_50 == (code *******)0x0) {\n                    pppppppcVar14 = param_4;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    break;\n                  }\n                  pppppppcVar30 = (code *******)0x0;\nLAB_000553ac:\n                  pppppppcVar29 = &local_b4;\n                  pppppppcVar14 = (code *******)FUN_00053684(&local_d8);\nLAB_000553cc:\n                  param_4 = pppppppcVar14;\n                  if (pppppppcVar14 == (code *******)0x0) {\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    if ((local_50 == (code *******)0x0) ||\n                       ((pppppppcVar28 != (code *******)0x0 && (pppppppcVar34 == (code *******)0x0))\n                       )) break;\n                    param_6 = &local_b4;\n                    param_5 = (code *******)&local_d8;\n                    pppppppcVar31 = (code *******)(PTR_DAT_000799a4 + 0x3684);\n                    do {\n                      pppppppcVar15 = local_50 + (int)local_8c;\n                      pppppppcVar42 = local_8c;\n                      do {\n                        pppppppcVar42 = (code *******)((int)pppppppcVar42 + 1);\n                        pppppppcVar29 = local_4c;\n                        param_4 = pppppppcVar14;\n                        if ((int)local_4c < (int)pppppppcVar42) goto LAB_00055da8;\n                        local_8c = (code *******)((int)local_8c + 1);\n                        pppppppcVar15 = pppppppcVar15 + 1;\n                      } while (*pppppppcVar15 == (code ******)0x0);\n                      pppppppcVar30 = (code *******)0x0;\n                      pppppppcVar29 = param_6;\n                      param_4 = (code *******)(*(code *)pppppppcVar31)(param_5);\n                      if (local_d8 != (code *******)0x0) {\n                        if (param_4 == (code *******)0x0) goto LAB_00055da8;\n                        break;\n                      }\n                      pppppppcVar29 = local_4c;\n                    } while (param_4 == (code *******)0x0);\n                  }\n                  pppppppcVar15 = (code *******)((uint)unaff_s7 ^ (uint)param_4);\n                  pppppppcVar42 = unaff_s7;\n                  pppppppcVar14 = local_138;\n                  if ((bVar1) &&\n                     (pppppppcVar42 = pppppppcVar15, pppppppcVar14 = unaff_s5,\n                     pppppppcVar15 != (code *******)0x0)) {\n                    bVar1 = false;\n                    pppppppcVar14 = local_138;\n                  }\n                  local_138 = pppppppcVar14;\n                  unaff_s7 = param_4;\n                  if ((((uint)param_4[0xd] & 0x8000000) != 0) &&\n                     ((((uint)param_4[0xd] & 0x1000000) == 0 ||\n                      (pppppppcVar29 = param_4, pppppppcVar30 = local_8c,\n                      iVar18 = FUN_00049440(&local_b4), iVar18 != 0)))) {\n                    unaff_s7 = pppppppcVar42;\n                    unaff_s8 = local_8c;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                    local_144 = (code *******)0x0;\n                    unaff_s7 = param_4;\n                  }\n                }\nLAB_00055da8:\n                if (local_144 != (code *******)0x0) {\n                  *local_144 = (code ******)((int)local_138 + (int)*local_144);\n                }\n              }\n              else {\n                param_4 = unaff_s7 + 1;\n                pppppppcVar30 = (code *******)0x0;\n                pppppppcVar29 = param_4;\n                local_d8 = (code *******)FUN_00047a44(&local_b4);\n                unaff_s8 = local_d8;\n                if (local_d8 == (code *******)0x0) {\n                  if (((uint)unaff_s7[0xd] & 0x2000000) == 0) {\n                    pppppppcVar29 = param_4;\n                    bVar1 = false;\n                  }\n                  else {\n                    pppppppcVar29 = param_4;\n                    local_d8 = (code *******)FUN_00052d84(&local_b4);\n                    unaff_s8 = local_d8;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055dbc;\n                    bVar1 = false;\n                  }\n                  goto LAB_00054d50;\n                }\n              }\nLAB_00055dbc:\n              if (unaff_s8 == (code *******)0xffffffff) {\nLAB_00055b04:\n                FUN_0004b7e8(&local_b4);\nLAB_00055b1c:\n                local_dc = (code *******)((int)pppppppcVar24 + (int)local_dc);\n                if ((int)pppppppcVar25 <= (int)local_dc) goto code_r0x00055b38;\n                local_150 = (code *******)0x1;\n                goto LAB_000557e4;\n              }\n              if (unaff_s8 == (code *******)&SUB_fffffffe) {\n                local_150 = (code *******)0xc;\n                goto LAB_000557e4;\n              }\n              local_58 = unaff_s8;\n              if (((uint)param_1[7] & 0x8000000) == 0) {\n                if (pppppppcVar3 < (code *******)0x2) {\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055c08;\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                else {\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                if (pppppppcVar3 < (code *******)0x2) {\nLAB_00055c6c:\n                  pppppppcVar28 = pppppppcVar33;\n                  unaff_s4 = local_60;\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055548;\n                }\n                else {\n                  cVar23 = *(code *)(pppppppcVar38 + 0x16);\nLAB_00055c20:\n                  pppppppcVar28 = pppppppcVar33;\n                  if (-1 < (char)cVar23) goto LAB_00055c6c;\n                }\n                pppppppcVar31 = local_54;\n                pppppppcVar42 = local_60;\n                unaff_s4 = pppppppcVar42;\n                if (unaff_s8 < (code *******)0x3fffffff) {\n                  param_4 = (code *******)((int)((int)unaff_s8 + 1) * 4);\n                  unaff_s5 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                  if (unaff_s5 == (code *******)0x0) {\nLAB_00055b9c:\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    local_150 = (code *******)0xc;\n                    pppppppcVar33 = pppppppcVar28;\n                  }\n                  else {\n                    pppppppcVar29 = (code *******)&local_d0;\n                    if (pppppppcVar42[0x13] == (code ******)0x0) {\n                      local_cc = (code *******)0x0;\n                      local_c8 = pppppppcVar31;\n                      local_c0 = 0;\n                      local_bc = 0;\n                      local_b8 = 0;\n                      local_d0 = unaff_s5;\n                      local_c4 = unaff_s8;\n                      param_5 = (code *******)FUN_0005421c(&local_b4);\n                      (*(code *)PTR_free_00079c24)(local_b8);\n                      if (param_5 == (code *******)0x0) {\n                        param_4 = (code *******)*unaff_s5;\n                        if (param_4 == (code *******)0x0) {\nLAB_00055b70:\n                          (*(code *)PTR_free_00079c24)(unaff_s5);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          pppppppcVar33 = pppppppcVar28;\n                          goto LAB_00055b04;\n                        }\nLAB_00055528:\n                        (*(code *)PTR_free_00079c24)(local_50);\n                        pppppppcVar33 = pppppppcVar28;\n                        unaff_s4 = pppppppcVar42;\n                        local_58 = unaff_s8;\n                        local_54 = pppppppcVar31;\n                        local_50 = unaff_s5;\n                        goto LAB_00055548;\n                      }\nLAB_00055acc:\n                      param_4 = (code *******)0x0;\n                      pppppppcVar33 = pppppppcVar28;\n                      unaff_s4 = pppppppcVar42;\n                    }\n                    else {\n                      param_4 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                      if (param_4 == (code *******)0x0) goto LAB_00055b9c;\n                      unaff_s7 = (code *******)&local_d0;\n                      pcVar8 = (code *)(PTR_DAT_000799a4 + 0x421c);\n                      pcVar9 = (code *)(PTR_DAT_000799a4 + -0x6bc0);\n                      pppppppcVar33 = pppppppcVar28;\n                      while( true ) {\n                        pppppppcVar28 = (code *******)((int)unaff_s8 + 1);\n                        param_6 = (code *******)((int)pppppppcVar28 * 4);\n                        pppppppcVar30 = param_6;\n                        (*(code *)PTR_memset_00079b00)(param_4,0);\n                        local_c0 = 0;\n                        local_bc = 0;\n                        local_b8 = 0;\n                        pppppppcVar29 = unaff_s7;\n                        local_d0 = unaff_s5;\n                        local_cc = param_4;\n                        local_c8 = pppppppcVar31;\n                        local_c4 = unaff_s8;\n                        param_5 = (code *******)(*pcVar8)(&local_b4);\n                        (*(code *)PTR_free_00079c24)(local_b8);\n                        unaff_s4 = pppppppcVar28;\n                        if (param_5 != (code *******)0x0) break;\n                        if ((*unaff_s5 != (code ******)0x0) ||\n                           (param_6 = param_6 + -1, *param_4 != (code ******)0x0)) {\n                          pppppppcVar29 = unaff_s5;\n                          pppppppcVar30 = param_4;\n                          param_5 = (code *******)FUN_000520d0(pppppppcVar42);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          if (param_5 != (code *******)0x0) goto LAB_00055acc;\n                          goto LAB_00055528;\n                        }\n                        param_6 = (code *******)((int)local_50 + (int)param_6);\n                        do {\n                          while( true ) {\n                            unaff_s8 = (code *******)((int)unaff_s8 + -1);\n                            if ((int)unaff_s8 < 0) goto LAB_00055b70;\n                            pppppppcVar29 = (code *******)param_6[-1];\n                            if (pppppppcVar29 != (code *******)0x0) break;\n                            param_6 = param_6 + -1;\n                          }\n                          param_6 = param_6 + -1;\n                        } while (((uint)pppppppcVar29[0xd] & 0x8000000) == 0);\n                        pppppppcVar31 = (code *******)(*pcVar9)(&local_b4,pppppppcVar29,unaff_s8);\n                        pppppppcVar33 = pppppppcVar28;\n                      }\n                    }\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    (*(code *)PTR_free_00079c24)(param_4);\n                    local_150 = param_5;\n                    if (param_5 == (code *******)0x1) goto LAB_00055b04;\n                  }\n                }\n                else {\n                  local_150 = (code *******)0xc;\n                  pppppppcVar33 = pppppppcVar28;\n                }\n                goto LAB_000557e4;\n              }\n              if (pppppppcVar38[0x13] != (code ******)0x0) {\n                pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                pppppppcVar30 = unaff_s8;\n                local_54 = (code *******)FUN_00049440(&local_b4);\n                goto LAB_00055c6c;\n              }\nLAB_00055c08:\n              if ((((uint)param_1[7] & 0x8000000) == 0) && ((code *******)0x1 < pppppppcVar3)) {\n                cVar23 = *(code *)(pppppppcVar38 + 0x16);\n                goto LAB_00055c20;\n              }\nLAB_00055548:\n              if (pppppppcVar3 == (code *******)0x0) goto LAB_000557e4;\n              if (pppppppcVar3 < (code *******)0x2) {\n                *param_8 = (code ******)0x0;\n                param_8[1] = (code ******)local_58;\n                goto LAB_000555ac;\n              }\n              pppppppcVar29 = param_8 + 2;\n              do {\n                pppppppcVar29[1] = (code ******)0xffffffff;\n                *pppppppcVar29 = (code ******)0xffffffff;\n                pppppppcVar29 = pppppppcVar29 + 2;\n              } while (pppppppcVar29 != param_8 + (int)pppppppcVar3 * 2);\n              *param_8 = (code ******)0x0;\n              param_8[1] = (code ******)local_58;\n              if (((uint)param_1[7] & 0x8000000) != 0) {\nLAB_000555ac:\n                pppppppcVar33 = param_8;\n                do {\n                  pppppppcVar29 = (code *******)*pppppppcVar33;\n                  if (pppppppcVar29 != (code *******)0xffffffff) {\n                    if (local_68 != '\0') {\n                      pppppppcVar34 = local_94;\n                      if (pppppppcVar29 != local_98) {\n                        pppppppcVar34 = *(code ********)(local_a8 + (int)pppppppcVar29 * 4);\n                      }\n                      *pppppppcVar33 = (code ******)pppppppcVar34;\n                      pppppppcVar29 = local_94;\n                      if (local_98 != (code *******)pppppppcVar33[1]) {\n                        pppppppcVar29 = *(code ********)(local_a8 + (int)pppppppcVar33[1] * 4);\n                      }\n                      pppppppcVar33[1] = (code ******)pppppppcVar29;\n                    }\n                    *pppppppcVar33 = (code ******)((int)local_dc + (int)*pppppppcVar33);\n                    pppppppcVar29 = (code *******)((int)local_dc + (int)pppppppcVar33[1]);\n                    pppppppcVar33[1] = (code ******)pppppppcVar29;\n                  }\n                  pppppppcVar33 = pppppppcVar33 + 2;\n                } while (pppppppcVar33 != param_8 + (int)pppppppcVar3 * 2);\n                if (0 < local_118) {\n                  pppppppcVar33 = param_8 + (int)pppppppcVar3 * 2;\n                  do {\n                    *pppppppcVar33 = (code ******)0xffffffff;\n                    pppppppcVar33[1] = (code ******)0xffffffff;\n                    pppppppcVar33 = pppppppcVar33 + 2;\n                  } while (pppppppcVar33 != param_8 + (int)param_7 * 2);\n                }\n                pppppppcVar30 = local_dc;\n                pppppppcVar33 = param_8;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar38[0x21] != (code ******)0x0) {\n                  pppppppcVar30 = (code *******)((int)pppppppcVar3 + -1);\n                  pppppppcVar34 = (code *******)0x0;\n                  pppppppcVar3 = param_8;\n                  while( true ) {\n                    pppppppcVar29 = (code *******)((int)pppppppcVar34 * 4);\n                    if (pppppppcVar30 == pppppppcVar34) break;\n                    if (*(code ********)((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) !=\n                        pppppppcVar34) {\n                      pppppppcVar3[2] =\n                           param_8[(int)((int)*(code ********)\n                                               ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1)\n                                   * 2];\n                      pppppppcVar3[3] =\n                           param_8[((int)*(code ******)\n                                          ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1) * 2 +\n                                   1];\n                    }\n                    pppppppcVar34 = (code *******)((int)pppppppcVar34 + 1);\n                    pppppppcVar3 = pppppppcVar3 + 2;\n                  }\n                }\n                goto LAB_000557e4;\n              }\n              if ((char)*(code *)(pppppppcVar38 + 0x16) < '\0') {\n                local_168 = (uint)(0 < (int)pppppppcVar38[0x13]);\n              }\n              else {\n                local_168 = 0;\n              }\n              pppppppcVar29 = &local_b4;\n              pppppppcVar30 = pppppppcVar3;\n              pppppppcVar33 = param_8;\n              local_150 = (code *******)FUN_0004f4a0(param_1);\n              if (local_150 == (code *******)0x0) goto LAB_000555ac;\n            }\n          }\n          else if (local_90 < 0x3fffffff) {\n            local_50 = (code *******)(*(code *)PTR_malloc_00079b54)((local_90 + 1) * 4);\n            if (local_50 != (code *******)0x0) goto LAB_00055a40;\n            local_150 = (code *******)0xc;\n            param_6 = pppppppcVar36;\n          }\n          else {\n            local_150 = (code *******)0xc;\n            param_6 = pppppppcVar36;\n          }\n        }\n        else {\n          unaff_s5 = (code *******)((int)ppppppcVar35 * 8);\n          if (pppppppcVar36 < (code *******)0xccccccd) {\n            unaff_s4 = (code *******)(*(code *)PTR_malloc_00079b54)((int)ppppppcVar35 * 0x28);\n            local_40 = unaff_s4;\n            local_30 = (*(code *)PTR_malloc_00079b54)(unaff_s5);\n            if ((unaff_s4 != (code *******)0x0) && (local_30 != 0)) goto LAB_000559f0;\n          }\n          local_150 = (code *******)0xc;\n          param_6 = pppppppcVar36;\n        }\nLAB_000557e4:\n        (*(code *)PTR_free_00079c24)(local_50);\n        param_1 = pppppppcVar30;\n        if (pppppppcVar38[0x13] != (code ******)0x0) {\n          FUN_0004b7e8(&local_b4);\n          (*(code *)PTR_free_00079c24)(local_30);\n          (*(code *)PTR_free_00079c24)(local_40);\n          param_1 = pppppppcVar30;\n        }\n        FUN_0004b2bc(&local_b4);\n        pppppppcStack_1a0 = param_4;\n        pppppppcStack_19c = pppppppcVar31;\n      }\n    }\n  }" (if "if") (parenthesized_expression "(pppppppcVar38[0xb] == (code ******)0x0)" (( "(") (binary_expression "pppppppcVar38[0xb] == (code ******)0x0" (subscript_expression "pppppppcVar38[0xb]" (identifier "pppppppcVar38") ([ "[") (number_literal "0xb") (] "]")) (== "==") (cast_expression "(code ******)0x0" (( "(") (type_descriptor "code ******" (type_identifier "code") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    local_150 = (code *******)0x1;\n  }" ({ "{") (expression_statement "local_150 = (code *******)0x1;" (assignment_expression "local_150 = (code *******)0x1" (identifier "local_150") (= "=") (cast_expression "(code *******)0x1" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x1"))) (; ";")) (} "}")) (else_clause "else {\n    pppppppcVar29 = (code *******)pppppppcVar38[0xc];\n    if (pppppppcVar29 == (code *******)0x0) {\n      local_150 = (code *******)0x1;\n    }\n    else {\n      pppppppcVar3 = param_5;\n      if ((((pppppppcVar38[9][2] == (code *****)0x0) && (pppppppcVar38[10][2] == (code *****)0x0))\n          && ((pppppppcVar38[0xb][2] == (code *****)0x0 || (((uint)param_1[7] & 0x1000000) == 0))))\n         && ((pppppppcVar3 = param_4, param_4 != (code *******)0x0 &&\n             (param_4 = param_5, pppppppcVar3 = param_5, param_5 != (code *******)0x0)))) {\n        local_150 = (code *******)0x1;\n        pppppppcStack_1a0 = param_5;\n      }\n      else {\n        param_5 = pppppppcVar3;\n        pppppppcVar3 = (code *******)((int)param_7 - local_118);\n        if (pppppppcVar3 == (code *******)0x0) {\n          pppppppcVar34 = (code *******)(uint)(pppppppcVar38[0x13] != (code ******)0x0);\n        }\n        else {\n          pppppppcVar34 = (code *******)0x1;\n        }\n        ppppppcVar32 = param_1[5];\n        local_6c = (byte)((uint)((int)param_1[3] << 9) >> 0x1f);\n        local_64 = (code *******)pppppppcVar38[0x17];\n        pppppppcVar31 = (code *******)((int)pppppppcVar38[2] + 1);\n        if ((int)pppppppcVar38[2] + 1 < (int)local_64) {\n          pppppppcVar31 = local_64;\n        }\n        pppppppcVar30 = (code *******)(uint)((int)param_3 + 1 < (int)pppppppcVar31);\n        pppppppcVar33 = (code *******)0x1;\n        local_69 = local_6c;\n        if (ppppppcVar32 != (code ******)0x0) {\n          local_69 = 1;\n        }\n        local_6b = (byte)((uint)((int)pppppppcVar38[0x16] << 2) >> 0x1f);\n        local_6a = (byte)((uint)((int)pppppppcVar38[0x16] << 3) >> 0x1f);\n        pppppppcVar29 = (code *******)((int)param_3 + 1);\n        if (pppppppcVar30 == (code *******)0x0) {\n          pppppppcVar29 = pppppppcVar31;\n        }\n        local_b4 = param_2;\n        local_88 = param_3;\n        local_84 = param_3;\n        local_80 = param_3;\n        local_7c = param_3;\n        local_74 = ppppppcVar32;\n        local_150 = (code *******)FUN_00046d2c(&local_b4);\n        pppppppcVar31 = pppppppcVar34;\n        param_6 = param_6;\n        if (local_150 != (code *******)0x0) goto LAB_000557e4;\n        local_70 = pppppppcVar38 + 0x18;\n        local_66 = (byte)((uint)((int)pppppppcVar38[0x16] << 4) >> 0x1f);\n        pppppppcVar2 = (code *******)0x0;\n        local_98 = pppppppcVar2;\n        if ((local_69 == 0) && (local_b0 = param_2, (int)pppppppcVar38[0x17] < 2)) {\n          local_98 = param_3;\n        }\n        local_7c = param_6;\n        local_80 = param_6;\n        local_67 = (byte)((uint)((int)param_1[7] << 7) >> 0x1f);\n        ppppppcVar35 = pppppppcVar38[0x13];\n        pppppppcVar36 = (code *******)((int)ppppppcVar35 * 2);\n        local_5c = param_9;\n        local_58 = (code *******)0xffffffff;\n        local_94 = local_98;\n        if ((int)pppppppcVar36 < 1) {\nLAB_000559f0:\n          local_3c = 1;\n          local_44 = pppppppcVar36;\n          local_34 = pppppppcVar36;\n          if ((pppppppcVar3 < (code *******)0x2) && (((uint)pppppppcVar38[0x16] & 0x40000000) == 0))\n          {\n            local_50 = (code *******)0x0;\nLAB_00055a40:\n            local_78 = 6;\n            if (((uint)param_9 & 1) != 0) {\n              local_78 = 4;\n            }\n            pppppppcVar24 = (code *******)0x1;\n            pppppppcVar25 = param_4;\n            if ((int)param_5 < (int)param_4) {\n              pppppppcVar24 = (code *******)0xffffffff;\n              pppppppcVar25 = param_5;\n            }\n            pppppppcVar26 = param_5;\n            if ((int)param_5 <= (int)param_4) {\n              pppppppcVar26 = param_4;\n            }\n            ppppppcVar35 = pppppppcVar38[0x17];\n            uVar16 = 8;\n            if (local_148 != (code *******)0x0) {\n              if (ppppppcVar35 == (code ******)0x1) {\n                pppppppcVar28 = (code *******)0x4;\n              }\n              else {\n                pppppppcVar28 = pppppppcVar2;\n                if ((-1 < (int)param_1[3] << 9) && (ppppppcVar32 == (code ******)0x0)) {\n                  pppppppcVar28 = (code *******)0x4;\n                }\n              }\n              pppppppcVar29 = (code *******)0x0;\n              if ((int)param_4 <= (int)param_5) {\n                pppppppcVar29 = (code *******)0x2;\n              }\n              uVar16 = (uint)(ppppppcVar32 != (code ******)0x0) | (uint)pppppppcVar28 |\n                       (uint)pppppppcVar29;\n            }\n            local_dc = param_4;\n            if ((int)param_4 < (int)pppppppcVar25) {\n              local_150 = (code *******)0x1;\n              param_6 = pppppppcVar36;\n            }\n            else if ((int)pppppppcVar26 < (int)param_4) {\n              local_150 = (code *******)0x1;\n              param_4 = (code *******)(uint)((int)param_5 < (int)param_4);\n              param_6 = pppppppcVar36;\n            }\n            else {\n              pppppppcVar36 = (code *******)&local_dc;\n              if ((code *******)(uint)((int)param_5 < (int)param_4) != (code *******)0x0) {\n                pppppppcVar36 = (code *******)0x0;\n              }\n              pcVar4 = (code *)(PTR_DAT_000799a4 + -0x2b7c);\n              piVar5 = (int *)(PTR_s_nt0_000795b8 + (uVar16 - 4) * 4 + 0x6e38);\nLAB_00055b44:\n              if (uVar16 - 4 < 5) {\n                    \n                    \n                pppppppcVar29 = (code *******)(*(code *)(&_gp_1 + *piVar5))();\n                return pppppppcVar29;\n              }\n              param_5 = &local_b4;\n              pppppppcVar28 = pppppppcVar33;\n              while( true ) {\n                param_4 = local_dc;\n                pppppppcVar33 = (code *******)((int)local_dc - local_9c);\n                pppppppcVar30 = param_9;\n                pppppppcVar31 = pppppppcVar2;\n                param_6 = local_148;\n                unaff_s4 = param_3;\n                unaff_s5 = pppppppcVar24;\n                unaff_s7 = pppppppcVar26;\n                if (local_94 <= pppppppcVar33) {\n                  pppppppcVar29 = local_dc;\n                  local_150 = (code *******)(*pcVar4)(param_5);\n                  pppppppcVar33 = pppppppcVar28;\n                  if (local_150 != (code *******)0x0) goto LAB_000557e4;\n                  pppppppcVar33 = (code *******)((int)param_4 - local_9c);\n                }\n                if ((int)param_4 < (int)param_3) {\n                  uVar7 = (uint)(byte)*(code *)((int)pppppppcVar33 + (int)local_b0);\n                }\n                else {\n                  uVar7 = 0;\n                }\n                param_4 = (code *******)((int)param_4 + (int)pppppppcVar24);\n                if (*(code *)((int)local_148 + uVar7) != (code)0x0) break;\n                pppppppcVar33 = pppppppcVar28;\n                local_dc = param_4;\n                if ((int)param_4 < (int)pppppppcVar25) {\n                  local_150 = (code *******)0x1;\n                  goto LAB_000557e4;\n                }\n                if ((code *******)(uint)((int)pppppppcVar26 < (int)param_4) != (code *******)0x0) {\n                  local_150 = (code *******)0x1;\n                  param_4 = (code *******)(uint)((int)pppppppcVar26 < (int)param_4);\n                  goto LAB_000557e4;\n                }\n              }\n              while( true ) {\n                pppppppcVar29 = local_dc;\n                pppppppcVar30 = param_9;\n                pppppppcVar6 = (code *******)(*pcVar4)(&local_b4);\n                pppppppcVar14 = local_60;\n                pppppppcVar42 = local_8c;\n                pppppppcVar33 = pppppppcVar28;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar6 != (code *******)0x0) goto LAB_000557e4;\n                if (((ppppppcVar35 != (code ******)0x1) && (local_98 != (code *******)0x0)) &&\n                   (*local_ac == -1)) goto LAB_00055b1c;\n                local_3c = 0;\n                local_48 = 0;\n                local_4c = (code *******)0x0;\n                local_138 = local_8c;\n                local_d8 = (code *******)0x0;\n                unaff_s7 = (code *******)local_60[9];\n                pppppppcVar30 = local_5c;\n                param_4 = pppppppcVar14;\n                if (((uint)unaff_s7[0xd] & 0x1000000) == 0) break;\n                pppppppcVar29 = (code *******)((int)local_8c + -1);\n                pppppppcVar33 = (code *******)FUN_00049110(&local_b4);\n                if (((uint)pppppppcVar33 & 1) == 0) {\n                  if (pppppppcVar33 == (code *******)0x0) break;\n                  if (((uint)pppppppcVar33 & 6) == 6) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xc];\n                    goto LAB_00054d1c;\n                  }\n                  if (((uint)pppppppcVar33 & 2) != 0) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xb];\n                    goto LAB_00054d1c;\n                  }\n                  pppppppcVar28 = pppppppcVar33;\n                  if (((uint)pppppppcVar33 & 4) == 0) break;\n                  pppppppcVar30 = (code *******)unaff_s7[10];\n                  pppppppcVar29 = pppppppcVar14;\n                  unaff_s7 = (code *******)FUN_0004ae34(&local_d8);\n                  pppppppcVar28 = pppppppcVar33;\n                  if (unaff_s7 != (code *******)0x0) break;\n                  if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                }\n                else {\n                  unaff_s7 = (code *******)pppppppcVar14[10];\nLAB_00054d1c:\n                  pppppppcVar28 = (code *******)PTR_s_nt0_000795b8;\n                  if (unaff_s7 != (code *******)0x0) break;\n                }\n                pppppppcVar28 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                local_dc = (code *******)\n                           (*(code *)PTR___assert_fail_000799f8)\n                                     (PTR_s_nt0_000795b8 + 0x71a0,pppppppcVar29,0x435);\n                if (local_dc == pppppppcVar26) {\n                  if ((int)local_dc < (int)param_3) {\n                    uVar7 = (uint)(byte)*(code *)((int)local_dc + (int)param_2);\n                  }\n                  else {\n                    uVar7 = 0;\n                  }\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    uVar7 = (uint)*(byte *)((int)ppppppcVar32 + uVar7);\n                  }\n                  if (*(code *)((int)local_148 + uVar7) == (code)0x0) {\n                    local_150 = (code *******)0x1;\n                    pppppppcVar30 = param_9;\n                    pppppppcVar33 = pppppppcVar28;\n                    goto LAB_000557e4;\n                  }\n                }\n              }\n              pppppppcVar33 = pppppppcVar28;\n              bVar1 = pppppppcVar36 != (code *******)0x0;\n              if ((local_50 == (code *******)0x0) ||\n                 (local_50[(int)pppppppcVar42] = (code ******)unaff_s7,\n                 pppppppcVar14[0x13] == (code ******)0x0)) {\nLAB_00054d50:\n                if ((int)unaff_s7[0xd] << 4 < 0) {\n                  if ((((uint)unaff_s7[0xd] & 0x1000000) == 0) ||\n                     (pppppppcVar29 = unaff_s7, pppppppcVar30 = pppppppcVar42,\n                     iVar18 = FUN_00049440(&local_b4), iVar18 != 0)) {\n                    unaff_s8 = pppppppcVar42;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                  }\n                  else {\n                    pppppppcVar42 = (code *******)0xffffffff;\n                    pppppppcVar28 = (code *******)0x0;\n                  }\n                }\n                else {\n                  pppppppcVar42 = (code *******)0xffffffff;\n                  pppppppcVar28 = (code *******)0x0;\n                }\n                pcVar8 = (code *)(PTR_DAT_000799a4 + -0x7144);\n                pcVar9 = (code *)(PTR_DAT_000799a4 + -0x1980);\n                pcVar10 = (code *)(PTR_DAT_000799a4 + -0x2f9c);\n                unaff_s8 = pppppppcVar42;\n                local_144 = pppppppcVar36;\n                while( true ) {\n                  uVar44 = CONCAT44(local_98,local_84);\n                  unaff_s5 = (code *******)((int)local_8c + 1);\n                  pppppppcVar29 = local_8c;\n                  if ((int)local_7c <= (int)local_8c) break;\n                  if (((int)local_90 <= (int)unaff_s5) && ((int)local_90 < (int)local_84))\n                  goto LAB_00054e94;\n                  if ((int)local_98 <= (int)unaff_s5) {\n                    while ((int)((ulonglong)uVar44 >> 0x20) < (int)uVar44) {\nLAB_00054e94:\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 2);\n                      local_d8 = (code *******)(*pcVar8)(&local_b4);\n                      if (local_d8 == (code *******)0x0) break;\n                      pppppppcVar14 = param_4;\n                      if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                      pppppppcVar33 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                      pppppppcVar30 = (code *******)0x46c;\n                      pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                      uVar44 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0);\n                      pppppppcVar28 = pppppppcVar38;\n                    }\n                  }\n                  pppppppcVar42 = local_60;\n                  if ((int)unaff_s7[0xd] << 5 < 0) {\n                    pppppppcVar31 = pppppppcVar42;\n                    if (0 < (int)unaff_s7[2]) {\n                      pcVar11 = (code *)(PTR_DAT_000799a4 + -0x6fdc);\n                      pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6ef0);\n                      param_6 = (code *******)0x0;\n                      do {\n                        param_5 = (code *******)unaff_s7[3][(int)param_6];\n                        ppppppcVar39 = *pppppppcVar42;\n                        pppppcVar13 = ppppppcVar39[(int)param_5 * 2 + 1];\n                        if (((uint)pppppcVar13 & 0x800) != 0) {\n                          if (((uint)pppppcVar13 & 0xffc000) != 0) {\n                            pppppppcVar29 = local_8c;\n                            uVar19 = (*pcVar12)(&local_b4,local_8c,local_5c);\n                            uVar7 = (uint)((int)ppppppcVar39[(int)param_5 * 2 + 1] << 8) >> 0x16;\n                            if ((uVar7 & 4) == 0) {\n                              uVar27 = uVar19 & 1;\n                              if ((uVar7 & 8) != 0) goto joined_r0x00054f40;\n                            }\n                            else {\n                              uVar27 = uVar7 & 8;\n                              if ((uVar19 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                              if (uVar27 != 0) goto LAB_000550a4;\n                            }\n                            if ((((uVar7 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                               (((uVar7 & 0x80) != 0 &&\n                                (pppppppcVar33 = local_8c, (uVar19 & 8) == 0)))) goto LAB_000550a4;\n                          }\n                          pppppppcVar30 = &local_b4;\n                          pppppppcVar29 = param_5;\n                          pppppppcVar33 = local_8c;\n                          iVar18 = (*pcVar10)(pppppppcVar42);\n                          if (iVar18 != 0) {\n                            pppppppcVar14 = (code *******)((int)local_8c + iVar18);\n                            if (iVar18 <= local_3c) {\n                              iVar18 = local_3c;\n                            }\n                            pppppppcVar29 = pppppppcVar14;\n                            local_3c = iVar18;\n                            local_d4 = (code *******)(*pcVar11)(&local_b4);\n                            pppppppcVar15 = local_d4;\n                            if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                            pppppppcVar30 =\n                                 (code *******)\n                                 (pppppppcVar42[6] + (int)pppppppcVar42[3][(int)param_5] * 3);\n                            unaff_s4 = (code *******)((int)pppppppcVar14 * 4);\n                            param_5 = local_50 + (int)pppppppcVar14;\n                            if (*param_5 == (code ******)0x0) {\n                              local_d0 = (code *******)*pppppppcVar30;\n                              local_cc = (code *******)pppppppcVar30[1];\n                              local_c8 = (code *******)pppppppcVar30[2];\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *param_5 = ppppppcVar39;\n                            }\n                            else {\n                              pppppppcVar29 = (code *******)(*param_5)[10];\n                              local_d4 = (code *******)FUN_000484bc(&local_d0);\n                              pppppppcVar15 = local_d4;\n                              if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar15 = local_50 + (int)pppppppcVar14;\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *pppppppcVar15 = ppppppcVar39;\n                              (*(code *)PTR_free_00079c24)(local_c8);\n                            }\n                            unaff_s4 = local_50 + (int)pppppppcVar14;\n                            if ((*unaff_s4 == (code ******)0x0) &&\n                               (pppppppcVar15 = local_d4, local_d4 != (code *******)0x0))\n                            goto LAB_00055e44;\n                          }\n                        }\nLAB_000550a4:\n                        param_6 = (code *******)((int)param_6 + 1);\n                      } while ((int)param_6 < (int)unaff_s7[2]);\n                    }\n                    local_d8 = (code *******)0x0;\n                  }\n                  uVar7 = (uint)(byte)*(code *)((int)local_8c + (int)local_b0);\n                  local_8c = (code *******)((int)local_8c + 1);\n                  do {\n                    if (unaff_s7[0xb] != (code ******)0x0) {\n                      pppppppcVar30 = (code *******)unaff_s7[0xb][uVar7];\nLAB_000553a0:\n                      pppppppcVar14 = pppppppcVar30;\n                      if (local_50 != (code *******)0x0) goto LAB_000553ac;\n                      goto LAB_000553cc;\n                    }\n                    pppppppcVar31 = (code *******)unaff_s7[0xc];\n                    if (pppppppcVar31 != (code *******)0x0) {\n                      pppppppcVar29 = (code *******)((int)local_8c + -1);\n                      uVar19 = FUN_00049110(&local_b4);\n                      if ((uVar19 & 1) == 0) {\n                        pppppppcVar30 = (code *******)pppppppcVar31[uVar7];\n                      }\n                      else {\n                        pppppppcVar31 = pppppppcVar31 + uVar7 + 0x100;\n                        pppppppcVar30 = (code *******)*pppppppcVar31;\n                      }\n                      goto LAB_000553a0;\n                    }\n                    pppppppcVar29 = unaff_s7;\n                    pppppppcVar30 = local_5c;\n                    iVar18 = (*pcVar9)(local_60);\n                  } while (iVar18 != 0);\n                  local_d8 = (code *******)0xc;\n                  pppppppcVar15 = local_d8;\nLAB_00055e44:\n                  local_d8 = pppppppcVar15;\n                  param_4 = (code *******)0x0;\n                  if (local_50 == (code *******)0x0) {\n                    pppppppcVar14 = param_4;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    break;\n                  }\n                  pppppppcVar30 = (code *******)0x0;\nLAB_000553ac:\n                  pppppppcVar29 = &local_b4;\n                  pppppppcVar14 = (code *******)FUN_00053684(&local_d8);\nLAB_000553cc:\n                  param_4 = pppppppcVar14;\n                  if (pppppppcVar14 == (code *******)0x0) {\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    if ((local_50 == (code *******)0x0) ||\n                       ((pppppppcVar28 != (code *******)0x0 && (pppppppcVar34 == (code *******)0x0))\n                       )) break;\n                    param_6 = &local_b4;\n                    param_5 = (code *******)&local_d8;\n                    pppppppcVar31 = (code *******)(PTR_DAT_000799a4 + 0x3684);\n                    do {\n                      pppppppcVar15 = local_50 + (int)local_8c;\n                      pppppppcVar42 = local_8c;\n                      do {\n                        pppppppcVar42 = (code *******)((int)pppppppcVar42 + 1);\n                        pppppppcVar29 = local_4c;\n                        param_4 = pppppppcVar14;\n                        if ((int)local_4c < (int)pppppppcVar42) goto LAB_00055da8;\n                        local_8c = (code *******)((int)local_8c + 1);\n                        pppppppcVar15 = pppppppcVar15 + 1;\n                      } while (*pppppppcVar15 == (code ******)0x0);\n                      pppppppcVar30 = (code *******)0x0;\n                      pppppppcVar29 = param_6;\n                      param_4 = (code *******)(*(code *)pppppppcVar31)(param_5);\n                      if (local_d8 != (code *******)0x0) {\n                        if (param_4 == (code *******)0x0) goto LAB_00055da8;\n                        break;\n                      }\n                      pppppppcVar29 = local_4c;\n                    } while (param_4 == (code *******)0x0);\n                  }\n                  pppppppcVar15 = (code *******)((uint)unaff_s7 ^ (uint)param_4);\n                  pppppppcVar42 = unaff_s7;\n                  pppppppcVar14 = local_138;\n                  if ((bVar1) &&\n                     (pppppppcVar42 = pppppppcVar15, pppppppcVar14 = unaff_s5,\n                     pppppppcVar15 != (code *******)0x0)) {\n                    bVar1 = false;\n                    pppppppcVar14 = local_138;\n                  }\n                  local_138 = pppppppcVar14;\n                  unaff_s7 = param_4;\n                  if ((((uint)param_4[0xd] & 0x8000000) != 0) &&\n                     ((((uint)param_4[0xd] & 0x1000000) == 0 ||\n                      (pppppppcVar29 = param_4, pppppppcVar30 = local_8c,\n                      iVar18 = FUN_00049440(&local_b4), iVar18 != 0)))) {\n                    unaff_s7 = pppppppcVar42;\n                    unaff_s8 = local_8c;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                    local_144 = (code *******)0x0;\n                    unaff_s7 = param_4;\n                  }\n                }\nLAB_00055da8:\n                if (local_144 != (code *******)0x0) {\n                  *local_144 = (code ******)((int)local_138 + (int)*local_144);\n                }\n              }\n              else {\n                param_4 = unaff_s7 + 1;\n                pppppppcVar30 = (code *******)0x0;\n                pppppppcVar29 = param_4;\n                local_d8 = (code *******)FUN_00047a44(&local_b4);\n                unaff_s8 = local_d8;\n                if (local_d8 == (code *******)0x0) {\n                  if (((uint)unaff_s7[0xd] & 0x2000000) == 0) {\n                    pppppppcVar29 = param_4;\n                    bVar1 = false;\n                  }\n                  else {\n                    pppppppcVar29 = param_4;\n                    local_d8 = (code *******)FUN_00052d84(&local_b4);\n                    unaff_s8 = local_d8;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055dbc;\n                    bVar1 = false;\n                  }\n                  goto LAB_00054d50;\n                }\n              }\nLAB_00055dbc:\n              if (unaff_s8 == (code *******)0xffffffff) {\nLAB_00055b04:\n                FUN_0004b7e8(&local_b4);\nLAB_00055b1c:\n                local_dc = (code *******)((int)pppppppcVar24 + (int)local_dc);\n                if ((int)pppppppcVar25 <= (int)local_dc) goto code_r0x00055b38;\n                local_150 = (code *******)0x1;\n                goto LAB_000557e4;\n              }\n              if (unaff_s8 == (code *******)&SUB_fffffffe) {\n                local_150 = (code *******)0xc;\n                goto LAB_000557e4;\n              }\n              local_58 = unaff_s8;\n              if (((uint)param_1[7] & 0x8000000) == 0) {\n                if (pppppppcVar3 < (code *******)0x2) {\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055c08;\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                else {\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                if (pppppppcVar3 < (code *******)0x2) {\nLAB_00055c6c:\n                  pppppppcVar28 = pppppppcVar33;\n                  unaff_s4 = local_60;\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055548;\n                }\n                else {\n                  cVar23 = *(code *)(pppppppcVar38 + 0x16);\nLAB_00055c20:\n                  pppppppcVar28 = pppppppcVar33;\n                  if (-1 < (char)cVar23) goto LAB_00055c6c;\n                }\n                pppppppcVar31 = local_54;\n                pppppppcVar42 = local_60;\n                unaff_s4 = pppppppcVar42;\n                if (unaff_s8 < (code *******)0x3fffffff) {\n                  param_4 = (code *******)((int)((int)unaff_s8 + 1) * 4);\n                  unaff_s5 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                  if (unaff_s5 == (code *******)0x0) {\nLAB_00055b9c:\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    local_150 = (code *******)0xc;\n                    pppppppcVar33 = pppppppcVar28;\n                  }\n                  else {\n                    pppppppcVar29 = (code *******)&local_d0;\n                    if (pppppppcVar42[0x13] == (code ******)0x0) {\n                      local_cc = (code *******)0x0;\n                      local_c8 = pppppppcVar31;\n                      local_c0 = 0;\n                      local_bc = 0;\n                      local_b8 = 0;\n                      local_d0 = unaff_s5;\n                      local_c4 = unaff_s8;\n                      param_5 = (code *******)FUN_0005421c(&local_b4);\n                      (*(code *)PTR_free_00079c24)(local_b8);\n                      if (param_5 == (code *******)0x0) {\n                        param_4 = (code *******)*unaff_s5;\n                        if (param_4 == (code *******)0x0) {\nLAB_00055b70:\n                          (*(code *)PTR_free_00079c24)(unaff_s5);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          pppppppcVar33 = pppppppcVar28;\n                          goto LAB_00055b04;\n                        }\nLAB_00055528:\n                        (*(code *)PTR_free_00079c24)(local_50);\n                        pppppppcVar33 = pppppppcVar28;\n                        unaff_s4 = pppppppcVar42;\n                        local_58 = unaff_s8;\n                        local_54 = pppppppcVar31;\n                        local_50 = unaff_s5;\n                        goto LAB_00055548;\n                      }\nLAB_00055acc:\n                      param_4 = (code *******)0x0;\n                      pppppppcVar33 = pppppppcVar28;\n                      unaff_s4 = pppppppcVar42;\n                    }\n                    else {\n                      param_4 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                      if (param_4 == (code *******)0x0) goto LAB_00055b9c;\n                      unaff_s7 = (code *******)&local_d0;\n                      pcVar8 = (code *)(PTR_DAT_000799a4 + 0x421c);\n                      pcVar9 = (code *)(PTR_DAT_000799a4 + -0x6bc0);\n                      pppppppcVar33 = pppppppcVar28;\n                      while( true ) {\n                        pppppppcVar28 = (code *******)((int)unaff_s8 + 1);\n                        param_6 = (code *******)((int)pppppppcVar28 * 4);\n                        pppppppcVar30 = param_6;\n                        (*(code *)PTR_memset_00079b00)(param_4,0);\n                        local_c0 = 0;\n                        local_bc = 0;\n                        local_b8 = 0;\n                        pppppppcVar29 = unaff_s7;\n                        local_d0 = unaff_s5;\n                        local_cc = param_4;\n                        local_c8 = pppppppcVar31;\n                        local_c4 = unaff_s8;\n                        param_5 = (code *******)(*pcVar8)(&local_b4);\n                        (*(code *)PTR_free_00079c24)(local_b8);\n                        unaff_s4 = pppppppcVar28;\n                        if (param_5 != (code *******)0x0) break;\n                        if ((*unaff_s5 != (code ******)0x0) ||\n                           (param_6 = param_6 + -1, *param_4 != (code ******)0x0)) {\n                          pppppppcVar29 = unaff_s5;\n                          pppppppcVar30 = param_4;\n                          param_5 = (code *******)FUN_000520d0(pppppppcVar42);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          if (param_5 != (code *******)0x0) goto LAB_00055acc;\n                          goto LAB_00055528;\n                        }\n                        param_6 = (code *******)((int)local_50 + (int)param_6);\n                        do {\n                          while( true ) {\n                            unaff_s8 = (code *******)((int)unaff_s8 + -1);\n                            if ((int)unaff_s8 < 0) goto LAB_00055b70;\n                            pppppppcVar29 = (code *******)param_6[-1];\n                            if (pppppppcVar29 != (code *******)0x0) break;\n                            param_6 = param_6 + -1;\n                          }\n                          param_6 = param_6 + -1;\n                        } while (((uint)pppppppcVar29[0xd] & 0x8000000) == 0);\n                        pppppppcVar31 = (code *******)(*pcVar9)(&local_b4,pppppppcVar29,unaff_s8);\n                        pppppppcVar33 = pppppppcVar28;\n                      }\n                    }\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    (*(code *)PTR_free_00079c24)(param_4);\n                    local_150 = param_5;\n                    if (param_5 == (code *******)0x1) goto LAB_00055b04;\n                  }\n                }\n                else {\n                  local_150 = (code *******)0xc;\n                  pppppppcVar33 = pppppppcVar28;\n                }\n                goto LAB_000557e4;\n              }\n              if (pppppppcVar38[0x13] != (code ******)0x0) {\n                pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                pppppppcVar30 = unaff_s8;\n                local_54 = (code *******)FUN_00049440(&local_b4);\n                goto LAB_00055c6c;\n              }\nLAB_00055c08:\n              if ((((uint)param_1[7] & 0x8000000) == 0) && ((code *******)0x1 < pppppppcVar3)) {\n                cVar23 = *(code *)(pppppppcVar38 + 0x16);\n                goto LAB_00055c20;\n              }\nLAB_00055548:\n              if (pppppppcVar3 == (code *******)0x0) goto LAB_000557e4;\n              if (pppppppcVar3 < (code *******)0x2) {\n                *param_8 = (code ******)0x0;\n                param_8[1] = (code ******)local_58;\n                goto LAB_000555ac;\n              }\n              pppppppcVar29 = param_8 + 2;\n              do {\n                pppppppcVar29[1] = (code ******)0xffffffff;\n                *pppppppcVar29 = (code ******)0xffffffff;\n                pppppppcVar29 = pppppppcVar29 + 2;\n              } while (pppppppcVar29 != param_8 + (int)pppppppcVar3 * 2);\n              *param_8 = (code ******)0x0;\n              param_8[1] = (code ******)local_58;\n              if (((uint)param_1[7] & 0x8000000) != 0) {\nLAB_000555ac:\n                pppppppcVar33 = param_8;\n                do {\n                  pppppppcVar29 = (code *******)*pppppppcVar33;\n                  if (pppppppcVar29 != (code *******)0xffffffff) {\n                    if (local_68 != '\0') {\n                      pppppppcVar34 = local_94;\n                      if (pppppppcVar29 != local_98) {\n                        pppppppcVar34 = *(code ********)(local_a8 + (int)pppppppcVar29 * 4);\n                      }\n                      *pppppppcVar33 = (code ******)pppppppcVar34;\n                      pppppppcVar29 = local_94;\n                      if (local_98 != (code *******)pppppppcVar33[1]) {\n                        pppppppcVar29 = *(code ********)(local_a8 + (int)pppppppcVar33[1] * 4);\n                      }\n                      pppppppcVar33[1] = (code ******)pppppppcVar29;\n                    }\n                    *pppppppcVar33 = (code ******)((int)local_dc + (int)*pppppppcVar33);\n                    pppppppcVar29 = (code *******)((int)local_dc + (int)pppppppcVar33[1]);\n                    pppppppcVar33[1] = (code ******)pppppppcVar29;\n                  }\n                  pppppppcVar33 = pppppppcVar33 + 2;\n                } while (pppppppcVar33 != param_8 + (int)pppppppcVar3 * 2);\n                if (0 < local_118) {\n                  pppppppcVar33 = param_8 + (int)pppppppcVar3 * 2;\n                  do {\n                    *pppppppcVar33 = (code ******)0xffffffff;\n                    pppppppcVar33[1] = (code ******)0xffffffff;\n                    pppppppcVar33 = pppppppcVar33 + 2;\n                  } while (pppppppcVar33 != param_8 + (int)param_7 * 2);\n                }\n                pppppppcVar30 = local_dc;\n                pppppppcVar33 = param_8;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar38[0x21] != (code ******)0x0) {\n                  pppppppcVar30 = (code *******)((int)pppppppcVar3 + -1);\n                  pppppppcVar34 = (code *******)0x0;\n                  pppppppcVar3 = param_8;\n                  while( true ) {\n                    pppppppcVar29 = (code *******)((int)pppppppcVar34 * 4);\n                    if (pppppppcVar30 == pppppppcVar34) break;\n                    if (*(code ********)((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) !=\n                        pppppppcVar34) {\n                      pppppppcVar3[2] =\n                           param_8[(int)((int)*(code ********)\n                                               ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1)\n                                   * 2];\n                      pppppppcVar3[3] =\n                           param_8[((int)*(code ******)\n                                          ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1) * 2 +\n                                   1];\n                    }\n                    pppppppcVar34 = (code *******)((int)pppppppcVar34 + 1);\n                    pppppppcVar3 = pppppppcVar3 + 2;\n                  }\n                }\n                goto LAB_000557e4;\n              }\n              if ((char)*(code *)(pppppppcVar38 + 0x16) < '\0') {\n                local_168 = (uint)(0 < (int)pppppppcVar38[0x13]);\n              }\n              else {\n                local_168 = 0;\n              }\n              pppppppcVar29 = &local_b4;\n              pppppppcVar30 = pppppppcVar3;\n              pppppppcVar33 = param_8;\n              local_150 = (code *******)FUN_0004f4a0(param_1);\n              if (local_150 == (code *******)0x0) goto LAB_000555ac;\n            }\n          }\n          else if (local_90 < 0x3fffffff) {\n            local_50 = (code *******)(*(code *)PTR_malloc_00079b54)((local_90 + 1) * 4);\n            if (local_50 != (code *******)0x0) goto LAB_00055a40;\n            local_150 = (code *******)0xc;\n            param_6 = pppppppcVar36;\n          }\n          else {\n            local_150 = (code *******)0xc;\n            param_6 = pppppppcVar36;\n          }\n        }\n        else {\n          unaff_s5 = (code *******)((int)ppppppcVar35 * 8);\n          if (pppppppcVar36 < (code *******)0xccccccd) {\n            unaff_s4 = (code *******)(*(code *)PTR_malloc_00079b54)((int)ppppppcVar35 * 0x28);\n            local_40 = unaff_s4;\n            local_30 = (*(code *)PTR_malloc_00079b54)(unaff_s5);\n            if ((unaff_s4 != (code *******)0x0) && (local_30 != 0)) goto LAB_000559f0;\n          }\n          local_150 = (code *******)0xc;\n          param_6 = pppppppcVar36;\n        }\nLAB_000557e4:\n        (*(code *)PTR_free_00079c24)(local_50);\n        param_1 = pppppppcVar30;\n        if (pppppppcVar38[0x13] != (code ******)0x0) {\n          FUN_0004b7e8(&local_b4);\n          (*(code *)PTR_free_00079c24)(local_30);\n          (*(code *)PTR_free_00079c24)(local_40);\n          param_1 = pppppppcVar30;\n        }\n        FUN_0004b2bc(&local_b4);\n        pppppppcStack_1a0 = param_4;\n        pppppppcStack_19c = pppppppcVar31;\n      }\n    }\n  }" (else "else") (compound_statement "{\n    pppppppcVar29 = (code *******)pppppppcVar38[0xc];\n    if (pppppppcVar29 == (code *******)0x0) {\n      local_150 = (code *******)0x1;\n    }\n    else {\n      pppppppcVar3 = param_5;\n      if ((((pppppppcVar38[9][2] == (code *****)0x0) && (pppppppcVar38[10][2] == (code *****)0x0))\n          && ((pppppppcVar38[0xb][2] == (code *****)0x0 || (((uint)param_1[7] & 0x1000000) == 0))))\n         && ((pppppppcVar3 = param_4, param_4 != (code *******)0x0 &&\n             (param_4 = param_5, pppppppcVar3 = param_5, param_5 != (code *******)0x0)))) {\n        local_150 = (code *******)0x1;\n        pppppppcStack_1a0 = param_5;\n      }\n      else {\n        param_5 = pppppppcVar3;\n        pppppppcVar3 = (code *******)((int)param_7 - local_118);\n        if (pppppppcVar3 == (code *******)0x0) {\n          pppppppcVar34 = (code *******)(uint)(pppppppcVar38[0x13] != (code ******)0x0);\n        }\n        else {\n          pppppppcVar34 = (code *******)0x1;\n        }\n        ppppppcVar32 = param_1[5];\n        local_6c = (byte)((uint)((int)param_1[3] << 9) >> 0x1f);\n        local_64 = (code *******)pppppppcVar38[0x17];\n        pppppppcVar31 = (code *******)((int)pppppppcVar38[2] + 1);\n        if ((int)pppppppcVar38[2] + 1 < (int)local_64) {\n          pppppppcVar31 = local_64;\n        }\n        pppppppcVar30 = (code *******)(uint)((int)param_3 + 1 < (int)pppppppcVar31);\n        pppppppcVar33 = (code *******)0x1;\n        local_69 = local_6c;\n        if (ppppppcVar32 != (code ******)0x0) {\n          local_69 = 1;\n        }\n        local_6b = (byte)((uint)((int)pppppppcVar38[0x16] << 2) >> 0x1f);\n        local_6a = (byte)((uint)((int)pppppppcVar38[0x16] << 3) >> 0x1f);\n        pppppppcVar29 = (code *******)((int)param_3 + 1);\n        if (pppppppcVar30 == (code *******)0x0) {\n          pppppppcVar29 = pppppppcVar31;\n        }\n        local_b4 = param_2;\n        local_88 = param_3;\n        local_84 = param_3;\n        local_80 = param_3;\n        local_7c = param_3;\n        local_74 = ppppppcVar32;\n        local_150 = (code *******)FUN_00046d2c(&local_b4);\n        pppppppcVar31 = pppppppcVar34;\n        param_6 = param_6;\n        if (local_150 != (code *******)0x0) goto LAB_000557e4;\n        local_70 = pppppppcVar38 + 0x18;\n        local_66 = (byte)((uint)((int)pppppppcVar38[0x16] << 4) >> 0x1f);\n        pppppppcVar2 = (code *******)0x0;\n        local_98 = pppppppcVar2;\n        if ((local_69 == 0) && (local_b0 = param_2, (int)pppppppcVar38[0x17] < 2)) {\n          local_98 = param_3;\n        }\n        local_7c = param_6;\n        local_80 = param_6;\n        local_67 = (byte)((uint)((int)param_1[7] << 7) >> 0x1f);\n        ppppppcVar35 = pppppppcVar38[0x13];\n        pppppppcVar36 = (code *******)((int)ppppppcVar35 * 2);\n        local_5c = param_9;\n        local_58 = (code *******)0xffffffff;\n        local_94 = local_98;\n        if ((int)pppppppcVar36 < 1) {\nLAB_000559f0:\n          local_3c = 1;\n          local_44 = pppppppcVar36;\n          local_34 = pppppppcVar36;\n          if ((pppppppcVar3 < (code *******)0x2) && (((uint)pppppppcVar38[0x16] & 0x40000000) == 0))\n          {\n            local_50 = (code *******)0x0;\nLAB_00055a40:\n            local_78 = 6;\n            if (((uint)param_9 & 1) != 0) {\n              local_78 = 4;\n            }\n            pppppppcVar24 = (code *******)0x1;\n            pppppppcVar25 = param_4;\n            if ((int)param_5 < (int)param_4) {\n              pppppppcVar24 = (code *******)0xffffffff;\n              pppppppcVar25 = param_5;\n            }\n            pppppppcVar26 = param_5;\n            if ((int)param_5 <= (int)param_4) {\n              pppppppcVar26 = param_4;\n            }\n            ppppppcVar35 = pppppppcVar38[0x17];\n            uVar16 = 8;\n            if (local_148 != (code *******)0x0) {\n              if (ppppppcVar35 == (code ******)0x1) {\n                pppppppcVar28 = (code *******)0x4;\n              }\n              else {\n                pppppppcVar28 = pppppppcVar2;\n                if ((-1 < (int)param_1[3] << 9) && (ppppppcVar32 == (code ******)0x0)) {\n                  pppppppcVar28 = (code *******)0x4;\n                }\n              }\n              pppppppcVar29 = (code *******)0x0;\n              if ((int)param_4 <= (int)param_5) {\n                pppppppcVar29 = (code *******)0x2;\n              }\n              uVar16 = (uint)(ppppppcVar32 != (code ******)0x0) | (uint)pppppppcVar28 |\n                       (uint)pppppppcVar29;\n            }\n            local_dc = param_4;\n            if ((int)param_4 < (int)pppppppcVar25) {\n              local_150 = (code *******)0x1;\n              param_6 = pppppppcVar36;\n            }\n            else if ((int)pppppppcVar26 < (int)param_4) {\n              local_150 = (code *******)0x1;\n              param_4 = (code *******)(uint)((int)param_5 < (int)param_4);\n              param_6 = pppppppcVar36;\n            }\n            else {\n              pppppppcVar36 = (code *******)&local_dc;\n              if ((code *******)(uint)((int)param_5 < (int)param_4) != (code *******)0x0) {\n                pppppppcVar36 = (code *******)0x0;\n              }\n              pcVar4 = (code *)(PTR_DAT_000799a4 + -0x2b7c);\n              piVar5 = (int *)(PTR_s_nt0_000795b8 + (uVar16 - 4) * 4 + 0x6e38);\nLAB_00055b44:\n              if (uVar16 - 4 < 5) {\n                    \n                    \n                pppppppcVar29 = (code *******)(*(code *)(&_gp_1 + *piVar5))();\n                return pppppppcVar29;\n              }\n              param_5 = &local_b4;\n              pppppppcVar28 = pppppppcVar33;\n              while( true ) {\n                param_4 = local_dc;\n                pppppppcVar33 = (code *******)((int)local_dc - local_9c);\n                pppppppcVar30 = param_9;\n                pppppppcVar31 = pppppppcVar2;\n                param_6 = local_148;\n                unaff_s4 = param_3;\n                unaff_s5 = pppppppcVar24;\n                unaff_s7 = pppppppcVar26;\n                if (local_94 <= pppppppcVar33) {\n                  pppppppcVar29 = local_dc;\n                  local_150 = (code *******)(*pcVar4)(param_5);\n                  pppppppcVar33 = pppppppcVar28;\n                  if (local_150 != (code *******)0x0) goto LAB_000557e4;\n                  pppppppcVar33 = (code *******)((int)param_4 - local_9c);\n                }\n                if ((int)param_4 < (int)param_3) {\n                  uVar7 = (uint)(byte)*(code *)((int)pppppppcVar33 + (int)local_b0);\n                }\n                else {\n                  uVar7 = 0;\n                }\n                param_4 = (code *******)((int)param_4 + (int)pppppppcVar24);\n                if (*(code *)((int)local_148 + uVar7) != (code)0x0) break;\n                pppppppcVar33 = pppppppcVar28;\n                local_dc = param_4;\n                if ((int)param_4 < (int)pppppppcVar25) {\n                  local_150 = (code *******)0x1;\n                  goto LAB_000557e4;\n                }\n                if ((code *******)(uint)((int)pppppppcVar26 < (int)param_4) != (code *******)0x0) {\n                  local_150 = (code *******)0x1;\n                  param_4 = (code *******)(uint)((int)pppppppcVar26 < (int)param_4);\n                  goto LAB_000557e4;\n                }\n              }\n              while( true ) {\n                pppppppcVar29 = local_dc;\n                pppppppcVar30 = param_9;\n                pppppppcVar6 = (code *******)(*pcVar4)(&local_b4);\n                pppppppcVar14 = local_60;\n                pppppppcVar42 = local_8c;\n                pppppppcVar33 = pppppppcVar28;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar6 != (code *******)0x0) goto LAB_000557e4;\n                if (((ppppppcVar35 != (code ******)0x1) && (local_98 != (code *******)0x0)) &&\n                   (*local_ac == -1)) goto LAB_00055b1c;\n                local_3c = 0;\n                local_48 = 0;\n                local_4c = (code *******)0x0;\n                local_138 = local_8c;\n                local_d8 = (code *******)0x0;\n                unaff_s7 = (code *******)local_60[9];\n                pppppppcVar30 = local_5c;\n                param_4 = pppppppcVar14;\n                if (((uint)unaff_s7[0xd] & 0x1000000) == 0) break;\n                pppppppcVar29 = (code *******)((int)local_8c + -1);\n                pppppppcVar33 = (code *******)FUN_00049110(&local_b4);\n                if (((uint)pppppppcVar33 & 1) == 0) {\n                  if (pppppppcVar33 == (code *******)0x0) break;\n                  if (((uint)pppppppcVar33 & 6) == 6) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xc];\n                    goto LAB_00054d1c;\n                  }\n                  if (((uint)pppppppcVar33 & 2) != 0) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xb];\n                    goto LAB_00054d1c;\n                  }\n                  pppppppcVar28 = pppppppcVar33;\n                  if (((uint)pppppppcVar33 & 4) == 0) break;\n                  pppppppcVar30 = (code *******)unaff_s7[10];\n                  pppppppcVar29 = pppppppcVar14;\n                  unaff_s7 = (code *******)FUN_0004ae34(&local_d8);\n                  pppppppcVar28 = pppppppcVar33;\n                  if (unaff_s7 != (code *******)0x0) break;\n                  if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                }\n                else {\n                  unaff_s7 = (code *******)pppppppcVar14[10];\nLAB_00054d1c:\n                  pppppppcVar28 = (code *******)PTR_s_nt0_000795b8;\n                  if (unaff_s7 != (code *******)0x0) break;\n                }\n                pppppppcVar28 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                local_dc = (code *******)\n                           (*(code *)PTR___assert_fail_000799f8)\n                                     (PTR_s_nt0_000795b8 + 0x71a0,pppppppcVar29,0x435);\n                if (local_dc == pppppppcVar26) {\n                  if ((int)local_dc < (int)param_3) {\n                    uVar7 = (uint)(byte)*(code *)((int)local_dc + (int)param_2);\n                  }\n                  else {\n                    uVar7 = 0;\n                  }\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    uVar7 = (uint)*(byte *)((int)ppppppcVar32 + uVar7);\n                  }\n                  if (*(code *)((int)local_148 + uVar7) == (code)0x0) {\n                    local_150 = (code *******)0x1;\n                    pppppppcVar30 = param_9;\n                    pppppppcVar33 = pppppppcVar28;\n                    goto LAB_000557e4;\n                  }\n                }\n              }\n              pppppppcVar33 = pppppppcVar28;\n              bVar1 = pppppppcVar36 != (code *******)0x0;\n              if ((local_50 == (code *******)0x0) ||\n                 (local_50[(int)pppppppcVar42] = (code ******)unaff_s7,\n                 pppppppcVar14[0x13] == (code ******)0x0)) {\nLAB_00054d50:\n                if ((int)unaff_s7[0xd] << 4 < 0) {\n                  if ((((uint)unaff_s7[0xd] & 0x1000000) == 0) ||\n                     (pppppppcVar29 = unaff_s7, pppppppcVar30 = pppppppcVar42,\n                     iVar18 = FUN_00049440(&local_b4), iVar18 != 0)) {\n                    unaff_s8 = pppppppcVar42;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                  }\n                  else {\n                    pppppppcVar42 = (code *******)0xffffffff;\n                    pppppppcVar28 = (code *******)0x0;\n                  }\n                }\n                else {\n                  pppppppcVar42 = (code *******)0xffffffff;\n                  pppppppcVar28 = (code *******)0x0;\n                }\n                pcVar8 = (code *)(PTR_DAT_000799a4 + -0x7144);\n                pcVar9 = (code *)(PTR_DAT_000799a4 + -0x1980);\n                pcVar10 = (code *)(PTR_DAT_000799a4 + -0x2f9c);\n                unaff_s8 = pppppppcVar42;\n                local_144 = pppppppcVar36;\n                while( true ) {\n                  uVar44 = CONCAT44(local_98,local_84);\n                  unaff_s5 = (code *******)((int)local_8c + 1);\n                  pppppppcVar29 = local_8c;\n                  if ((int)local_7c <= (int)local_8c) break;\n                  if (((int)local_90 <= (int)unaff_s5) && ((int)local_90 < (int)local_84))\n                  goto LAB_00054e94;\n                  if ((int)local_98 <= (int)unaff_s5) {\n                    while ((int)((ulonglong)uVar44 >> 0x20) < (int)uVar44) {\nLAB_00054e94:\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 2);\n                      local_d8 = (code *******)(*pcVar8)(&local_b4);\n                      if (local_d8 == (code *******)0x0) break;\n                      pppppppcVar14 = param_4;\n                      if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                      pppppppcVar33 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                      pppppppcVar30 = (code *******)0x46c;\n                      pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                      uVar44 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0);\n                      pppppppcVar28 = pppppppcVar38;\n                    }\n                  }\n                  pppppppcVar42 = local_60;\n                  if ((int)unaff_s7[0xd] << 5 < 0) {\n                    pppppppcVar31 = pppppppcVar42;\n                    if (0 < (int)unaff_s7[2]) {\n                      pcVar11 = (code *)(PTR_DAT_000799a4 + -0x6fdc);\n                      pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6ef0);\n                      param_6 = (code *******)0x0;\n                      do {\n                        param_5 = (code *******)unaff_s7[3][(int)param_6];\n                        ppppppcVar39 = *pppppppcVar42;\n                        pppppcVar13 = ppppppcVar39[(int)param_5 * 2 + 1];\n                        if (((uint)pppppcVar13 & 0x800) != 0) {\n                          if (((uint)pppppcVar13 & 0xffc000) != 0) {\n                            pppppppcVar29 = local_8c;\n                            uVar19 = (*pcVar12)(&local_b4,local_8c,local_5c);\n                            uVar7 = (uint)((int)ppppppcVar39[(int)param_5 * 2 + 1] << 8) >> 0x16;\n                            if ((uVar7 & 4) == 0) {\n                              uVar27 = uVar19 & 1;\n                              if ((uVar7 & 8) != 0) goto joined_r0x00054f40;\n                            }\n                            else {\n                              uVar27 = uVar7 & 8;\n                              if ((uVar19 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                              if (uVar27 != 0) goto LAB_000550a4;\n                            }\n                            if ((((uVar7 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                               (((uVar7 & 0x80) != 0 &&\n                                (pppppppcVar33 = local_8c, (uVar19 & 8) == 0)))) goto LAB_000550a4;\n                          }\n                          pppppppcVar30 = &local_b4;\n                          pppppppcVar29 = param_5;\n                          pppppppcVar33 = local_8c;\n                          iVar18 = (*pcVar10)(pppppppcVar42);\n                          if (iVar18 != 0) {\n                            pppppppcVar14 = (code *******)((int)local_8c + iVar18);\n                            if (iVar18 <= local_3c) {\n                              iVar18 = local_3c;\n                            }\n                            pppppppcVar29 = pppppppcVar14;\n                            local_3c = iVar18;\n                            local_d4 = (code *******)(*pcVar11)(&local_b4);\n                            pppppppcVar15 = local_d4;\n                            if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                            pppppppcVar30 =\n                                 (code *******)\n                                 (pppppppcVar42[6] + (int)pppppppcVar42[3][(int)param_5] * 3);\n                            unaff_s4 = (code *******)((int)pppppppcVar14 * 4);\n                            param_5 = local_50 + (int)pppppppcVar14;\n                            if (*param_5 == (code ******)0x0) {\n                              local_d0 = (code *******)*pppppppcVar30;\n                              local_cc = (code *******)pppppppcVar30[1];\n                              local_c8 = (code *******)pppppppcVar30[2];\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *param_5 = ppppppcVar39;\n                            }\n                            else {\n                              pppppppcVar29 = (code *******)(*param_5)[10];\n                              local_d4 = (code *******)FUN_000484bc(&local_d0);\n                              pppppppcVar15 = local_d4;\n                              if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar15 = local_50 + (int)pppppppcVar14;\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *pppppppcVar15 = ppppppcVar39;\n                              (*(code *)PTR_free_00079c24)(local_c8);\n                            }\n                            unaff_s4 = local_50 + (int)pppppppcVar14;\n                            if ((*unaff_s4 == (code ******)0x0) &&\n                               (pppppppcVar15 = local_d4, local_d4 != (code *******)0x0))\n                            goto LAB_00055e44;\n                          }\n                        }\nLAB_000550a4:\n                        param_6 = (code *******)((int)param_6 + 1);\n                      } while ((int)param_6 < (int)unaff_s7[2]);\n                    }\n                    local_d8 = (code *******)0x0;\n                  }\n                  uVar7 = (uint)(byte)*(code *)((int)local_8c + (int)local_b0);\n                  local_8c = (code *******)((int)local_8c + 1);\n                  do {\n                    if (unaff_s7[0xb] != (code ******)0x0) {\n                      pppppppcVar30 = (code *******)unaff_s7[0xb][uVar7];\nLAB_000553a0:\n                      pppppppcVar14 = pppppppcVar30;\n                      if (local_50 != (code *******)0x0) goto LAB_000553ac;\n                      goto LAB_000553cc;\n                    }\n                    pppppppcVar31 = (code *******)unaff_s7[0xc];\n                    if (pppppppcVar31 != (code *******)0x0) {\n                      pppppppcVar29 = (code *******)((int)local_8c + -1);\n                      uVar19 = FUN_00049110(&local_b4);\n                      if ((uVar19 & 1) == 0) {\n                        pppppppcVar30 = (code *******)pppppppcVar31[uVar7];\n                      }\n                      else {\n                        pppppppcVar31 = pppppppcVar31 + uVar7 + 0x100;\n                        pppppppcVar30 = (code *******)*pppppppcVar31;\n                      }\n                      goto LAB_000553a0;\n                    }\n                    pppppppcVar29 = unaff_s7;\n                    pppppppcVar30 = local_5c;\n                    iVar18 = (*pcVar9)(local_60);\n                  } while (iVar18 != 0);\n                  local_d8 = (code *******)0xc;\n                  pppppppcVar15 = local_d8;\nLAB_00055e44:\n                  local_d8 = pppppppcVar15;\n                  param_4 = (code *******)0x0;\n                  if (local_50 == (code *******)0x0) {\n                    pppppppcVar14 = param_4;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    break;\n                  }\n                  pppppppcVar30 = (code *******)0x0;\nLAB_000553ac:\n                  pppppppcVar29 = &local_b4;\n                  pppppppcVar14 = (code *******)FUN_00053684(&local_d8);\nLAB_000553cc:\n                  param_4 = pppppppcVar14;\n                  if (pppppppcVar14 == (code *******)0x0) {\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    if ((local_50 == (code *******)0x0) ||\n                       ((pppppppcVar28 != (code *******)0x0 && (pppppppcVar34 == (code *******)0x0))\n                       )) break;\n                    param_6 = &local_b4;\n                    param_5 = (code *******)&local_d8;\n                    pppppppcVar31 = (code *******)(PTR_DAT_000799a4 + 0x3684);\n                    do {\n                      pppppppcVar15 = local_50 + (int)local_8c;\n                      pppppppcVar42 = local_8c;\n                      do {\n                        pppppppcVar42 = (code *******)((int)pppppppcVar42 + 1);\n                        pppppppcVar29 = local_4c;\n                        param_4 = pppppppcVar14;\n                        if ((int)local_4c < (int)pppppppcVar42) goto LAB_00055da8;\n                        local_8c = (code *******)((int)local_8c + 1);\n                        pppppppcVar15 = pppppppcVar15 + 1;\n                      } while (*pppppppcVar15 == (code ******)0x0);\n                      pppppppcVar30 = (code *******)0x0;\n                      pppppppcVar29 = param_6;\n                      param_4 = (code *******)(*(code *)pppppppcVar31)(param_5);\n                      if (local_d8 != (code *******)0x0) {\n                        if (param_4 == (code *******)0x0) goto LAB_00055da8;\n                        break;\n                      }\n                      pppppppcVar29 = local_4c;\n                    } while (param_4 == (code *******)0x0);\n                  }\n                  pppppppcVar15 = (code *******)((uint)unaff_s7 ^ (uint)param_4);\n                  pppppppcVar42 = unaff_s7;\n                  pppppppcVar14 = local_138;\n                  if ((bVar1) &&\n                     (pppppppcVar42 = pppppppcVar15, pppppppcVar14 = unaff_s5,\n                     pppppppcVar15 != (code *******)0x0)) {\n                    bVar1 = false;\n                    pppppppcVar14 = local_138;\n                  }\n                  local_138 = pppppppcVar14;\n                  unaff_s7 = param_4;\n                  if ((((uint)param_4[0xd] & 0x8000000) != 0) &&\n                     ((((uint)param_4[0xd] & 0x1000000) == 0 ||\n                      (pppppppcVar29 = param_4, pppppppcVar30 = local_8c,\n                      iVar18 = FUN_00049440(&local_b4), iVar18 != 0)))) {\n                    unaff_s7 = pppppppcVar42;\n                    unaff_s8 = local_8c;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                    local_144 = (code *******)0x0;\n                    unaff_s7 = param_4;\n                  }\n                }\nLAB_00055da8:\n                if (local_144 != (code *******)0x0) {\n                  *local_144 = (code ******)((int)local_138 + (int)*local_144);\n                }\n              }\n              else {\n                param_4 = unaff_s7 + 1;\n                pppppppcVar30 = (code *******)0x0;\n                pppppppcVar29 = param_4;\n                local_d8 = (code *******)FUN_00047a44(&local_b4);\n                unaff_s8 = local_d8;\n                if (local_d8 == (code *******)0x0) {\n                  if (((uint)unaff_s7[0xd] & 0x2000000) == 0) {\n                    pppppppcVar29 = param_4;\n                    bVar1 = false;\n                  }\n                  else {\n                    pppppppcVar29 = param_4;\n                    local_d8 = (code *******)FUN_00052d84(&local_b4);\n                    unaff_s8 = local_d8;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055dbc;\n                    bVar1 = false;\n                  }\n                  goto LAB_00054d50;\n                }\n              }\nLAB_00055dbc:\n              if (unaff_s8 == (code *******)0xffffffff) {\nLAB_00055b04:\n                FUN_0004b7e8(&local_b4);\nLAB_00055b1c:\n                local_dc = (code *******)((int)pppppppcVar24 + (int)local_dc);\n                if ((int)pppppppcVar25 <= (int)local_dc) goto code_r0x00055b38;\n                local_150 = (code *******)0x1;\n                goto LAB_000557e4;\n              }\n              if (unaff_s8 == (code *******)&SUB_fffffffe) {\n                local_150 = (code *******)0xc;\n                goto LAB_000557e4;\n              }\n              local_58 = unaff_s8;\n              if (((uint)param_1[7] & 0x8000000) == 0) {\n                if (pppppppcVar3 < (code *******)0x2) {\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055c08;\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                else {\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                if (pppppppcVar3 < (code *******)0x2) {\nLAB_00055c6c:\n                  pppppppcVar28 = pppppppcVar33;\n                  unaff_s4 = local_60;\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055548;\n                }\n                else {\n                  cVar23 = *(code *)(pppppppcVar38 + 0x16);\nLAB_00055c20:\n                  pppppppcVar28 = pppppppcVar33;\n                  if (-1 < (char)cVar23) goto LAB_00055c6c;\n                }\n                pppppppcVar31 = local_54;\n                pppppppcVar42 = local_60;\n                unaff_s4 = pppppppcVar42;\n                if (unaff_s8 < (code *******)0x3fffffff) {\n                  param_4 = (code *******)((int)((int)unaff_s8 + 1) * 4);\n                  unaff_s5 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                  if (unaff_s5 == (code *******)0x0) {\nLAB_00055b9c:\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    local_150 = (code *******)0xc;\n                    pppppppcVar33 = pppppppcVar28;\n                  }\n                  else {\n                    pppppppcVar29 = (code *******)&local_d0;\n                    if (pppppppcVar42[0x13] == (code ******)0x0) {\n                      local_cc = (code *******)0x0;\n                      local_c8 = pppppppcVar31;\n                      local_c0 = 0;\n                      local_bc = 0;\n                      local_b8 = 0;\n                      local_d0 = unaff_s5;\n                      local_c4 = unaff_s8;\n                      param_5 = (code *******)FUN_0005421c(&local_b4);\n                      (*(code *)PTR_free_00079c24)(local_b8);\n                      if (param_5 == (code *******)0x0) {\n                        param_4 = (code *******)*unaff_s5;\n                        if (param_4 == (code *******)0x0) {\nLAB_00055b70:\n                          (*(code *)PTR_free_00079c24)(unaff_s5);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          pppppppcVar33 = pppppppcVar28;\n                          goto LAB_00055b04;\n                        }\nLAB_00055528:\n                        (*(code *)PTR_free_00079c24)(local_50);\n                        pppppppcVar33 = pppppppcVar28;\n                        unaff_s4 = pppppppcVar42;\n                        local_58 = unaff_s8;\n                        local_54 = pppppppcVar31;\n                        local_50 = unaff_s5;\n                        goto LAB_00055548;\n                      }\nLAB_00055acc:\n                      param_4 = (code *******)0x0;\n                      pppppppcVar33 = pppppppcVar28;\n                      unaff_s4 = pppppppcVar42;\n                    }\n                    else {\n                      param_4 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                      if (param_4 == (code *******)0x0) goto LAB_00055b9c;\n                      unaff_s7 = (code *******)&local_d0;\n                      pcVar8 = (code *)(PTR_DAT_000799a4 + 0x421c);\n                      pcVar9 = (code *)(PTR_DAT_000799a4 + -0x6bc0);\n                      pppppppcVar33 = pppppppcVar28;\n                      while( true ) {\n                        pppppppcVar28 = (code *******)((int)unaff_s8 + 1);\n                        param_6 = (code *******)((int)pppppppcVar28 * 4);\n                        pppppppcVar30 = param_6;\n                        (*(code *)PTR_memset_00079b00)(param_4,0);\n                        local_c0 = 0;\n                        local_bc = 0;\n                        local_b8 = 0;\n                        pppppppcVar29 = unaff_s7;\n                        local_d0 = unaff_s5;\n                        local_cc = param_4;\n                        local_c8 = pppppppcVar31;\n                        local_c4 = unaff_s8;\n                        param_5 = (code *******)(*pcVar8)(&local_b4);\n                        (*(code *)PTR_free_00079c24)(local_b8);\n                        unaff_s4 = pppppppcVar28;\n                        if (param_5 != (code *******)0x0) break;\n                        if ((*unaff_s5 != (code ******)0x0) ||\n                           (param_6 = param_6 + -1, *param_4 != (code ******)0x0)) {\n                          pppppppcVar29 = unaff_s5;\n                          pppppppcVar30 = param_4;\n                          param_5 = (code *******)FUN_000520d0(pppppppcVar42);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          if (param_5 != (code *******)0x0) goto LAB_00055acc;\n                          goto LAB_00055528;\n                        }\n                        param_6 = (code *******)((int)local_50 + (int)param_6);\n                        do {\n                          while( true ) {\n                            unaff_s8 = (code *******)((int)unaff_s8 + -1);\n                            if ((int)unaff_s8 < 0) goto LAB_00055b70;\n                            pppppppcVar29 = (code *******)param_6[-1];\n                            if (pppppppcVar29 != (code *******)0x0) break;\n                            param_6 = param_6 + -1;\n                          }\n                          param_6 = param_6 + -1;\n                        } while (((uint)pppppppcVar29[0xd] & 0x8000000) == 0);\n                        pppppppcVar31 = (code *******)(*pcVar9)(&local_b4,pppppppcVar29,unaff_s8);\n                        pppppppcVar33 = pppppppcVar28;\n                      }\n                    }\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    (*(code *)PTR_free_00079c24)(param_4);\n                    local_150 = param_5;\n                    if (param_5 == (code *******)0x1) goto LAB_00055b04;\n                  }\n                }\n                else {\n                  local_150 = (code *******)0xc;\n                  pppppppcVar33 = pppppppcVar28;\n                }\n                goto LAB_000557e4;\n              }\n              if (pppppppcVar38[0x13] != (code ******)0x0) {\n                pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                pppppppcVar30 = unaff_s8;\n                local_54 = (code *******)FUN_00049440(&local_b4);\n                goto LAB_00055c6c;\n              }\nLAB_00055c08:\n              if ((((uint)param_1[7] & 0x8000000) == 0) && ((code *******)0x1 < pppppppcVar3)) {\n                cVar23 = *(code *)(pppppppcVar38 + 0x16);\n                goto LAB_00055c20;\n              }\nLAB_00055548:\n              if (pppppppcVar3 == (code *******)0x0) goto LAB_000557e4;\n              if (pppppppcVar3 < (code *******)0x2) {\n                *param_8 = (code ******)0x0;\n                param_8[1] = (code ******)local_58;\n                goto LAB_000555ac;\n              }\n              pppppppcVar29 = param_8 + 2;\n              do {\n                pppppppcVar29[1] = (code ******)0xffffffff;\n                *pppppppcVar29 = (code ******)0xffffffff;\n                pppppppcVar29 = pppppppcVar29 + 2;\n              } while (pppppppcVar29 != param_8 + (int)pppppppcVar3 * 2);\n              *param_8 = (code ******)0x0;\n              param_8[1] = (code ******)local_58;\n              if (((uint)param_1[7] & 0x8000000) != 0) {\nLAB_000555ac:\n                pppppppcVar33 = param_8;\n                do {\n                  pppppppcVar29 = (code *******)*pppppppcVar33;\n                  if (pppppppcVar29 != (code *******)0xffffffff) {\n                    if (local_68 != '\0') {\n                      pppppppcVar34 = local_94;\n                      if (pppppppcVar29 != local_98) {\n                        pppppppcVar34 = *(code ********)(local_a8 + (int)pppppppcVar29 * 4);\n                      }\n                      *pppppppcVar33 = (code ******)pppppppcVar34;\n                      pppppppcVar29 = local_94;\n                      if (local_98 != (code *******)pppppppcVar33[1]) {\n                        pppppppcVar29 = *(code ********)(local_a8 + (int)pppppppcVar33[1] * 4);\n                      }\n                      pppppppcVar33[1] = (code ******)pppppppcVar29;\n                    }\n                    *pppppppcVar33 = (code ******)((int)local_dc + (int)*pppppppcVar33);\n                    pppppppcVar29 = (code *******)((int)local_dc + (int)pppppppcVar33[1]);\n                    pppppppcVar33[1] = (code ******)pppppppcVar29;\n                  }\n                  pppppppcVar33 = pppppppcVar33 + 2;\n                } while (pppppppcVar33 != param_8 + (int)pppppppcVar3 * 2);\n                if (0 < local_118) {\n                  pppppppcVar33 = param_8 + (int)pppppppcVar3 * 2;\n                  do {\n                    *pppppppcVar33 = (code ******)0xffffffff;\n                    pppppppcVar33[1] = (code ******)0xffffffff;\n                    pppppppcVar33 = pppppppcVar33 + 2;\n                  } while (pppppppcVar33 != param_8 + (int)param_7 * 2);\n                }\n                pppppppcVar30 = local_dc;\n                pppppppcVar33 = param_8;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar38[0x21] != (code ******)0x0) {\n                  pppppppcVar30 = (code *******)((int)pppppppcVar3 + -1);\n                  pppppppcVar34 = (code *******)0x0;\n                  pppppppcVar3 = param_8;\n                  while( true ) {\n                    pppppppcVar29 = (code *******)((int)pppppppcVar34 * 4);\n                    if (pppppppcVar30 == pppppppcVar34) break;\n                    if (*(code ********)((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) !=\n                        pppppppcVar34) {\n                      pppppppcVar3[2] =\n                           param_8[(int)((int)*(code ********)\n                                               ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1)\n                                   * 2];\n                      pppppppcVar3[3] =\n                           param_8[((int)*(code ******)\n                                          ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1) * 2 +\n                                   1];\n                    }\n                    pppppppcVar34 = (code *******)((int)pppppppcVar34 + 1);\n                    pppppppcVar3 = pppppppcVar3 + 2;\n                  }\n                }\n                goto LAB_000557e4;\n              }\n              if ((char)*(code *)(pppppppcVar38 + 0x16) < '\0') {\n                local_168 = (uint)(0 < (int)pppppppcVar38[0x13]);\n              }\n              else {\n                local_168 = 0;\n              }\n              pppppppcVar29 = &local_b4;\n              pppppppcVar30 = pppppppcVar3;\n              pppppppcVar33 = param_8;\n              local_150 = (code *******)FUN_0004f4a0(param_1);\n              if (local_150 == (code *******)0x0) goto LAB_000555ac;\n            }\n          }\n          else if (local_90 < 0x3fffffff) {\n            local_50 = (code *******)(*(code *)PTR_malloc_00079b54)((local_90 + 1) * 4);\n            if (local_50 != (code *******)0x0) goto LAB_00055a40;\n            local_150 = (code *******)0xc;\n            param_6 = pppppppcVar36;\n          }\n          else {\n            local_150 = (code *******)0xc;\n            param_6 = pppppppcVar36;\n          }\n        }\n        else {\n          unaff_s5 = (code *******)((int)ppppppcVar35 * 8);\n          if (pppppppcVar36 < (code *******)0xccccccd) {\n            unaff_s4 = (code *******)(*(code *)PTR_malloc_00079b54)((int)ppppppcVar35 * 0x28);\n            local_40 = unaff_s4;\n            local_30 = (*(code *)PTR_malloc_00079b54)(unaff_s5);\n            if ((unaff_s4 != (code *******)0x0) && (local_30 != 0)) goto LAB_000559f0;\n          }\n          local_150 = (code *******)0xc;\n          param_6 = pppppppcVar36;\n        }\nLAB_000557e4:\n        (*(code *)PTR_free_00079c24)(local_50);\n        param_1 = pppppppcVar30;\n        if (pppppppcVar38[0x13] != (code ******)0x0) {\n          FUN_0004b7e8(&local_b4);\n          (*(code *)PTR_free_00079c24)(local_30);\n          (*(code *)PTR_free_00079c24)(local_40);\n          param_1 = pppppppcVar30;\n        }\n        FUN_0004b2bc(&local_b4);\n        pppppppcStack_1a0 = param_4;\n        pppppppcStack_19c = pppppppcVar31;\n      }\n    }\n  }" ({ "{") (expression_statement "pppppppcVar29 = (code *******)pppppppcVar38[0xc];" (assignment_expression "pppppppcVar29 = (code *******)pppppppcVar38[0xc]" (identifier "pppppppcVar29") (= "=") (cast_expression "(code *******)pppppppcVar38[0xc]" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (subscript_expression "pppppppcVar38[0xc]" (identifier "pppppppcVar38") ([ "[") (number_literal "0xc") (] "]")))) (; ";")) (if_statement "if (pppppppcVar29 == (code *******)0x0) {\n      local_150 = (code *******)0x1;\n    }\n    else {\n      pppppppcVar3 = param_5;\n      if ((((pppppppcVar38[9][2] == (code *****)0x0) && (pppppppcVar38[10][2] == (code *****)0x0))\n          && ((pppppppcVar38[0xb][2] == (code *****)0x0 || (((uint)param_1[7] & 0x1000000) == 0))))\n         && ((pppppppcVar3 = param_4, param_4 != (code *******)0x0 &&\n             (param_4 = param_5, pppppppcVar3 = param_5, param_5 != (code *******)0x0)))) {\n        local_150 = (code *******)0x1;\n        pppppppcStack_1a0 = param_5;\n      }\n      else {\n        param_5 = pppppppcVar3;\n        pppppppcVar3 = (code *******)((int)param_7 - local_118);\n        if (pppppppcVar3 == (code *******)0x0) {\n          pppppppcVar34 = (code *******)(uint)(pppppppcVar38[0x13] != (code ******)0x0);\n        }\n        else {\n          pppppppcVar34 = (code *******)0x1;\n        }\n        ppppppcVar32 = param_1[5];\n        local_6c = (byte)((uint)((int)param_1[3] << 9) >> 0x1f);\n        local_64 = (code *******)pppppppcVar38[0x17];\n        pppppppcVar31 = (code *******)((int)pppppppcVar38[2] + 1);\n        if ((int)pppppppcVar38[2] + 1 < (int)local_64) {\n          pppppppcVar31 = local_64;\n        }\n        pppppppcVar30 = (code *******)(uint)((int)param_3 + 1 < (int)pppppppcVar31);\n        pppppppcVar33 = (code *******)0x1;\n        local_69 = local_6c;\n        if (ppppppcVar32 != (code ******)0x0) {\n          local_69 = 1;\n        }\n        local_6b = (byte)((uint)((int)pppppppcVar38[0x16] << 2) >> 0x1f);\n        local_6a = (byte)((uint)((int)pppppppcVar38[0x16] << 3) >> 0x1f);\n        pppppppcVar29 = (code *******)((int)param_3 + 1);\n        if (pppppppcVar30 == (code *******)0x0) {\n          pppppppcVar29 = pppppppcVar31;\n        }\n        local_b4 = param_2;\n        local_88 = param_3;\n        local_84 = param_3;\n        local_80 = param_3;\n        local_7c = param_3;\n        local_74 = ppppppcVar32;\n        local_150 = (code *******)FUN_00046d2c(&local_b4);\n        pppppppcVar31 = pppppppcVar34;\n        param_6 = param_6;\n        if (local_150 != (code *******)0x0) goto LAB_000557e4;\n        local_70 = pppppppcVar38 + 0x18;\n        local_66 = (byte)((uint)((int)pppppppcVar38[0x16] << 4) >> 0x1f);\n        pppppppcVar2 = (code *******)0x0;\n        local_98 = pppppppcVar2;\n        if ((local_69 == 0) && (local_b0 = param_2, (int)pppppppcVar38[0x17] < 2)) {\n          local_98 = param_3;\n        }\n        local_7c = param_6;\n        local_80 = param_6;\n        local_67 = (byte)((uint)((int)param_1[7] << 7) >> 0x1f);\n        ppppppcVar35 = pppppppcVar38[0x13];\n        pppppppcVar36 = (code *******)((int)ppppppcVar35 * 2);\n        local_5c = param_9;\n        local_58 = (code *******)0xffffffff;\n        local_94 = local_98;\n        if ((int)pppppppcVar36 < 1) {\nLAB_000559f0:\n          local_3c = 1;\n          local_44 = pppppppcVar36;\n          local_34 = pppppppcVar36;\n          if ((pppppppcVar3 < (code *******)0x2) && (((uint)pppppppcVar38[0x16] & 0x40000000) == 0))\n          {\n            local_50 = (code *******)0x0;\nLAB_00055a40:\n            local_78 = 6;\n            if (((uint)param_9 & 1) != 0) {\n              local_78 = 4;\n            }\n            pppppppcVar24 = (code *******)0x1;\n            pppppppcVar25 = param_4;\n            if ((int)param_5 < (int)param_4) {\n              pppppppcVar24 = (code *******)0xffffffff;\n              pppppppcVar25 = param_5;\n            }\n            pppppppcVar26 = param_5;\n            if ((int)param_5 <= (int)param_4) {\n              pppppppcVar26 = param_4;\n            }\n            ppppppcVar35 = pppppppcVar38[0x17];\n            uVar16 = 8;\n            if (local_148 != (code *******)0x0) {\n              if (ppppppcVar35 == (code ******)0x1) {\n                pppppppcVar28 = (code *******)0x4;\n              }\n              else {\n                pppppppcVar28 = pppppppcVar2;\n                if ((-1 < (int)param_1[3] << 9) && (ppppppcVar32 == (code ******)0x0)) {\n                  pppppppcVar28 = (code *******)0x4;\n                }\n              }\n              pppppppcVar29 = (code *******)0x0;\n              if ((int)param_4 <= (int)param_5) {\n                pppppppcVar29 = (code *******)0x2;\n              }\n              uVar16 = (uint)(ppppppcVar32 != (code ******)0x0) | (uint)pppppppcVar28 |\n                       (uint)pppppppcVar29;\n            }\n            local_dc = param_4;\n            if ((int)param_4 < (int)pppppppcVar25) {\n              local_150 = (code *******)0x1;\n              param_6 = pppppppcVar36;\n            }\n            else if ((int)pppppppcVar26 < (int)param_4) {\n              local_150 = (code *******)0x1;\n              param_4 = (code *******)(uint)((int)param_5 < (int)param_4);\n              param_6 = pppppppcVar36;\n            }\n            else {\n              pppppppcVar36 = (code *******)&local_dc;\n              if ((code *******)(uint)((int)param_5 < (int)param_4) != (code *******)0x0) {\n                pppppppcVar36 = (code *******)0x0;\n              }\n              pcVar4 = (code *)(PTR_DAT_000799a4 + -0x2b7c);\n              piVar5 = (int *)(PTR_s_nt0_000795b8 + (uVar16 - 4) * 4 + 0x6e38);\nLAB_00055b44:\n              if (uVar16 - 4 < 5) {\n                    \n                    \n                pppppppcVar29 = (code *******)(*(code *)(&_gp_1 + *piVar5))();\n                return pppppppcVar29;\n              }\n              param_5 = &local_b4;\n              pppppppcVar28 = pppppppcVar33;\n              while( true ) {\n                param_4 = local_dc;\n                pppppppcVar33 = (code *******)((int)local_dc - local_9c);\n                pppppppcVar30 = param_9;\n                pppppppcVar31 = pppppppcVar2;\n                param_6 = local_148;\n                unaff_s4 = param_3;\n                unaff_s5 = pppppppcVar24;\n                unaff_s7 = pppppppcVar26;\n                if (local_94 <= pppppppcVar33) {\n                  pppppppcVar29 = local_dc;\n                  local_150 = (code *******)(*pcVar4)(param_5);\n                  pppppppcVar33 = pppppppcVar28;\n                  if (local_150 != (code *******)0x0) goto LAB_000557e4;\n                  pppppppcVar33 = (code *******)((int)param_4 - local_9c);\n                }\n                if ((int)param_4 < (int)param_3) {\n                  uVar7 = (uint)(byte)*(code *)((int)pppppppcVar33 + (int)local_b0);\n                }\n                else {\n                  uVar7 = 0;\n                }\n                param_4 = (code *******)((int)param_4 + (int)pppppppcVar24);\n                if (*(code *)((int)local_148 + uVar7) != (code)0x0) break;\n                pppppppcVar33 = pppppppcVar28;\n                local_dc = param_4;\n                if ((int)param_4 < (int)pppppppcVar25) {\n                  local_150 = (code *******)0x1;\n                  goto LAB_000557e4;\n                }\n                if ((code *******)(uint)((int)pppppppcVar26 < (int)param_4) != (code *******)0x0) {\n                  local_150 = (code *******)0x1;\n                  param_4 = (code *******)(uint)((int)pppppppcVar26 < (int)param_4);\n                  goto LAB_000557e4;\n                }\n              }\n              while( true ) {\n                pppppppcVar29 = local_dc;\n                pppppppcVar30 = param_9;\n                pppppppcVar6 = (code *******)(*pcVar4)(&local_b4);\n                pppppppcVar14 = local_60;\n                pppppppcVar42 = local_8c;\n                pppppppcVar33 = pppppppcVar28;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar6 != (code *******)0x0) goto LAB_000557e4;\n                if (((ppppppcVar35 != (code ******)0x1) && (local_98 != (code *******)0x0)) &&\n                   (*local_ac == -1)) goto LAB_00055b1c;\n                local_3c = 0;\n                local_48 = 0;\n                local_4c = (code *******)0x0;\n                local_138 = local_8c;\n                local_d8 = (code *******)0x0;\n                unaff_s7 = (code *******)local_60[9];\n                pppppppcVar30 = local_5c;\n                param_4 = pppppppcVar14;\n                if (((uint)unaff_s7[0xd] & 0x1000000) == 0) break;\n                pppppppcVar29 = (code *******)((int)local_8c + -1);\n                pppppppcVar33 = (code *******)FUN_00049110(&local_b4);\n                if (((uint)pppppppcVar33 & 1) == 0) {\n                  if (pppppppcVar33 == (code *******)0x0) break;\n                  if (((uint)pppppppcVar33 & 6) == 6) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xc];\n                    goto LAB_00054d1c;\n                  }\n                  if (((uint)pppppppcVar33 & 2) != 0) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xb];\n                    goto LAB_00054d1c;\n                  }\n                  pppppppcVar28 = pppppppcVar33;\n                  if (((uint)pppppppcVar33 & 4) == 0) break;\n                  pppppppcVar30 = (code *******)unaff_s7[10];\n                  pppppppcVar29 = pppppppcVar14;\n                  unaff_s7 = (code *******)FUN_0004ae34(&local_d8);\n                  pppppppcVar28 = pppppppcVar33;\n                  if (unaff_s7 != (code *******)0x0) break;\n                  if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                }\n                else {\n                  unaff_s7 = (code *******)pppppppcVar14[10];\nLAB_00054d1c:\n                  pppppppcVar28 = (code *******)PTR_s_nt0_000795b8;\n                  if (unaff_s7 != (code *******)0x0) break;\n                }\n                pppppppcVar28 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                local_dc = (code *******)\n                           (*(code *)PTR___assert_fail_000799f8)\n                                     (PTR_s_nt0_000795b8 + 0x71a0,pppppppcVar29,0x435);\n                if (local_dc == pppppppcVar26) {\n                  if ((int)local_dc < (int)param_3) {\n                    uVar7 = (uint)(byte)*(code *)((int)local_dc + (int)param_2);\n                  }\n                  else {\n                    uVar7 = 0;\n                  }\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    uVar7 = (uint)*(byte *)((int)ppppppcVar32 + uVar7);\n                  }\n                  if (*(code *)((int)local_148 + uVar7) == (code)0x0) {\n                    local_150 = (code *******)0x1;\n                    pppppppcVar30 = param_9;\n                    pppppppcVar33 = pppppppcVar28;\n                    goto LAB_000557e4;\n                  }\n                }\n              }\n              pppppppcVar33 = pppppppcVar28;\n              bVar1 = pppppppcVar36 != (code *******)0x0;\n              if ((local_50 == (code *******)0x0) ||\n                 (local_50[(int)pppppppcVar42] = (code ******)unaff_s7,\n                 pppppppcVar14[0x13] == (code ******)0x0)) {\nLAB_00054d50:\n                if ((int)unaff_s7[0xd] << 4 < 0) {\n                  if ((((uint)unaff_s7[0xd] & 0x1000000) == 0) ||\n                     (pppppppcVar29 = unaff_s7, pppppppcVar30 = pppppppcVar42,\n                     iVar18 = FUN_00049440(&local_b4), iVar18 != 0)) {\n                    unaff_s8 = pppppppcVar42;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                  }\n                  else {\n                    pppppppcVar42 = (code *******)0xffffffff;\n                    pppppppcVar28 = (code *******)0x0;\n                  }\n                }\n                else {\n                  pppppppcVar42 = (code *******)0xffffffff;\n                  pppppppcVar28 = (code *******)0x0;\n                }\n                pcVar8 = (code *)(PTR_DAT_000799a4 + -0x7144);\n                pcVar9 = (code *)(PTR_DAT_000799a4 + -0x1980);\n                pcVar10 = (code *)(PTR_DAT_000799a4 + -0x2f9c);\n                unaff_s8 = pppppppcVar42;\n                local_144 = pppppppcVar36;\n                while( true ) {\n                  uVar44 = CONCAT44(local_98,local_84);\n                  unaff_s5 = (code *******)((int)local_8c + 1);\n                  pppppppcVar29 = local_8c;\n                  if ((int)local_7c <= (int)local_8c) break;\n                  if (((int)local_90 <= (int)unaff_s5) && ((int)local_90 < (int)local_84))\n                  goto LAB_00054e94;\n                  if ((int)local_98 <= (int)unaff_s5) {\n                    while ((int)((ulonglong)uVar44 >> 0x20) < (int)uVar44) {\nLAB_00054e94:\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 2);\n                      local_d8 = (code *******)(*pcVar8)(&local_b4);\n                      if (local_d8 == (code *******)0x0) break;\n                      pppppppcVar14 = param_4;\n                      if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                      pppppppcVar33 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                      pppppppcVar30 = (code *******)0x46c;\n                      pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                      uVar44 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0);\n                      pppppppcVar28 = pppppppcVar38;\n                    }\n                  }\n                  pppppppcVar42 = local_60;\n                  if ((int)unaff_s7[0xd] << 5 < 0) {\n                    pppppppcVar31 = pppppppcVar42;\n                    if (0 < (int)unaff_s7[2]) {\n                      pcVar11 = (code *)(PTR_DAT_000799a4 + -0x6fdc);\n                      pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6ef0);\n                      param_6 = (code *******)0x0;\n                      do {\n                        param_5 = (code *******)unaff_s7[3][(int)param_6];\n                        ppppppcVar39 = *pppppppcVar42;\n                        pppppcVar13 = ppppppcVar39[(int)param_5 * 2 + 1];\n                        if (((uint)pppppcVar13 & 0x800) != 0) {\n                          if (((uint)pppppcVar13 & 0xffc000) != 0) {\n                            pppppppcVar29 = local_8c;\n                            uVar19 = (*pcVar12)(&local_b4,local_8c,local_5c);\n                            uVar7 = (uint)((int)ppppppcVar39[(int)param_5 * 2 + 1] << 8) >> 0x16;\n                            if ((uVar7 & 4) == 0) {\n                              uVar27 = uVar19 & 1;\n                              if ((uVar7 & 8) != 0) goto joined_r0x00054f40;\n                            }\n                            else {\n                              uVar27 = uVar7 & 8;\n                              if ((uVar19 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                              if (uVar27 != 0) goto LAB_000550a4;\n                            }\n                            if ((((uVar7 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                               (((uVar7 & 0x80) != 0 &&\n                                (pppppppcVar33 = local_8c, (uVar19 & 8) == 0)))) goto LAB_000550a4;\n                          }\n                          pppppppcVar30 = &local_b4;\n                          pppppppcVar29 = param_5;\n                          pppppppcVar33 = local_8c;\n                          iVar18 = (*pcVar10)(pppppppcVar42);\n                          if (iVar18 != 0) {\n                            pppppppcVar14 = (code *******)((int)local_8c + iVar18);\n                            if (iVar18 <= local_3c) {\n                              iVar18 = local_3c;\n                            }\n                            pppppppcVar29 = pppppppcVar14;\n                            local_3c = iVar18;\n                            local_d4 = (code *******)(*pcVar11)(&local_b4);\n                            pppppppcVar15 = local_d4;\n                            if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                            pppppppcVar30 =\n                                 (code *******)\n                                 (pppppppcVar42[6] + (int)pppppppcVar42[3][(int)param_5] * 3);\n                            unaff_s4 = (code *******)((int)pppppppcVar14 * 4);\n                            param_5 = local_50 + (int)pppppppcVar14;\n                            if (*param_5 == (code ******)0x0) {\n                              local_d0 = (code *******)*pppppppcVar30;\n                              local_cc = (code *******)pppppppcVar30[1];\n                              local_c8 = (code *******)pppppppcVar30[2];\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *param_5 = ppppppcVar39;\n                            }\n                            else {\n                              pppppppcVar29 = (code *******)(*param_5)[10];\n                              local_d4 = (code *******)FUN_000484bc(&local_d0);\n                              pppppppcVar15 = local_d4;\n                              if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar15 = local_50 + (int)pppppppcVar14;\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *pppppppcVar15 = ppppppcVar39;\n                              (*(code *)PTR_free_00079c24)(local_c8);\n                            }\n                            unaff_s4 = local_50 + (int)pppppppcVar14;\n                            if ((*unaff_s4 == (code ******)0x0) &&\n                               (pppppppcVar15 = local_d4, local_d4 != (code *******)0x0))\n                            goto LAB_00055e44;\n                          }\n                        }\nLAB_000550a4:\n                        param_6 = (code *******)((int)param_6 + 1);\n                      } while ((int)param_6 < (int)unaff_s7[2]);\n                    }\n                    local_d8 = (code *******)0x0;\n                  }\n                  uVar7 = (uint)(byte)*(code *)((int)local_8c + (int)local_b0);\n                  local_8c = (code *******)((int)local_8c + 1);\n                  do {\n                    if (unaff_s7[0xb] != (code ******)0x0) {\n                      pppppppcVar30 = (code *******)unaff_s7[0xb][uVar7];\nLAB_000553a0:\n                      pppppppcVar14 = pppppppcVar30;\n                      if (local_50 != (code *******)0x0) goto LAB_000553ac;\n                      goto LAB_000553cc;\n                    }\n                    pppppppcVar31 = (code *******)unaff_s7[0xc];\n                    if (pppppppcVar31 != (code *******)0x0) {\n                      pppppppcVar29 = (code *******)((int)local_8c + -1);\n                      uVar19 = FUN_00049110(&local_b4);\n                      if ((uVar19 & 1) == 0) {\n                        pppppppcVar30 = (code *******)pppppppcVar31[uVar7];\n                      }\n                      else {\n                        pppppppcVar31 = pppppppcVar31 + uVar7 + 0x100;\n                        pppppppcVar30 = (code *******)*pppppppcVar31;\n                      }\n                      goto LAB_000553a0;\n                    }\n                    pppppppcVar29 = unaff_s7;\n                    pppppppcVar30 = local_5c;\n                    iVar18 = (*pcVar9)(local_60);\n                  } while (iVar18 != 0);\n                  local_d8 = (code *******)0xc;\n                  pppppppcVar15 = local_d8;\nLAB_00055e44:\n                  local_d8 = pppppppcVar15;\n                  param_4 = (code *******)0x0;\n                  if (local_50 == (code *******)0x0) {\n                    pppppppcVar14 = param_4;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    break;\n                  }\n                  pppppppcVar30 = (code *******)0x0;\nLAB_000553ac:\n                  pppppppcVar29 = &local_b4;\n                  pppppppcVar14 = (code *******)FUN_00053684(&local_d8);\nLAB_000553cc:\n                  param_4 = pppppppcVar14;\n                  if (pppppppcVar14 == (code *******)0x0) {\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    if ((local_50 == (code *******)0x0) ||\n                       ((pppppppcVar28 != (code *******)0x0 && (pppppppcVar34 == (code *******)0x0))\n                       )) break;\n                    param_6 = &local_b4;\n                    param_5 = (code *******)&local_d8;\n                    pppppppcVar31 = (code *******)(PTR_DAT_000799a4 + 0x3684);\n                    do {\n                      pppppppcVar15 = local_50 + (int)local_8c;\n                      pppppppcVar42 = local_8c;\n                      do {\n                        pppppppcVar42 = (code *******)((int)pppppppcVar42 + 1);\n                        pppppppcVar29 = local_4c;\n                        param_4 = pppppppcVar14;\n                        if ((int)local_4c < (int)pppppppcVar42) goto LAB_00055da8;\n                        local_8c = (code *******)((int)local_8c + 1);\n                        pppppppcVar15 = pppppppcVar15 + 1;\n                      } while (*pppppppcVar15 == (code ******)0x0);\n                      pppppppcVar30 = (code *******)0x0;\n                      pppppppcVar29 = param_6;\n                      param_4 = (code *******)(*(code *)pppppppcVar31)(param_5);\n                      if (local_d8 != (code *******)0x0) {\n                        if (param_4 == (code *******)0x0) goto LAB_00055da8;\n                        break;\n                      }\n                      pppppppcVar29 = local_4c;\n                    } while (param_4 == (code *******)0x0);\n                  }\n                  pppppppcVar15 = (code *******)((uint)unaff_s7 ^ (uint)param_4);\n                  pppppppcVar42 = unaff_s7;\n                  pppppppcVar14 = local_138;\n                  if ((bVar1) &&\n                     (pppppppcVar42 = pppppppcVar15, pppppppcVar14 = unaff_s5,\n                     pppppppcVar15 != (code *******)0x0)) {\n                    bVar1 = false;\n                    pppppppcVar14 = local_138;\n                  }\n                  local_138 = pppppppcVar14;\n                  unaff_s7 = param_4;\n                  if ((((uint)param_4[0xd] & 0x8000000) != 0) &&\n                     ((((uint)param_4[0xd] & 0x1000000) == 0 ||\n                      (pppppppcVar29 = param_4, pppppppcVar30 = local_8c,\n                      iVar18 = FUN_00049440(&local_b4), iVar18 != 0)))) {\n                    unaff_s7 = pppppppcVar42;\n                    unaff_s8 = local_8c;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                    local_144 = (code *******)0x0;\n                    unaff_s7 = param_4;\n                  }\n                }\nLAB_00055da8:\n                if (local_144 != (code *******)0x0) {\n                  *local_144 = (code ******)((int)local_138 + (int)*local_144);\n                }\n              }\n              else {\n                param_4 = unaff_s7 + 1;\n                pppppppcVar30 = (code *******)0x0;\n                pppppppcVar29 = param_4;\n                local_d8 = (code *******)FUN_00047a44(&local_b4);\n                unaff_s8 = local_d8;\n                if (local_d8 == (code *******)0x0) {\n                  if (((uint)unaff_s7[0xd] & 0x2000000) == 0) {\n                    pppppppcVar29 = param_4;\n                    bVar1 = false;\n                  }\n                  else {\n                    pppppppcVar29 = param_4;\n                    local_d8 = (code *******)FUN_00052d84(&local_b4);\n                    unaff_s8 = local_d8;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055dbc;\n                    bVar1 = false;\n                  }\n                  goto LAB_00054d50;\n                }\n              }\nLAB_00055dbc:\n              if (unaff_s8 == (code *******)0xffffffff) {\nLAB_00055b04:\n                FUN_0004b7e8(&local_b4);\nLAB_00055b1c:\n                local_dc = (code *******)((int)pppppppcVar24 + (int)local_dc);\n                if ((int)pppppppcVar25 <= (int)local_dc) goto code_r0x00055b38;\n                local_150 = (code *******)0x1;\n                goto LAB_000557e4;\n              }\n              if (unaff_s8 == (code *******)&SUB_fffffffe) {\n                local_150 = (code *******)0xc;\n                goto LAB_000557e4;\n              }\n              local_58 = unaff_s8;\n              if (((uint)param_1[7] & 0x8000000) == 0) {\n                if (pppppppcVar3 < (code *******)0x2) {\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055c08;\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                else {\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                if (pppppppcVar3 < (code *******)0x2) {\nLAB_00055c6c:\n                  pppppppcVar28 = pppppppcVar33;\n                  unaff_s4 = local_60;\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055548;\n                }\n                else {\n                  cVar23 = *(code *)(pppppppcVar38 + 0x16);\nLAB_00055c20:\n                  pppppppcVar28 = pppppppcVar33;\n                  if (-1 < (char)cVar23) goto LAB_00055c6c;\n                }\n                pppppppcVar31 = local_54;\n                pppppppcVar42 = local_60;\n                unaff_s4 = pppppppcVar42;\n                if (unaff_s8 < (code *******)0x3fffffff) {\n                  param_4 = (code *******)((int)((int)unaff_s8 + 1) * 4);\n                  unaff_s5 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                  if (unaff_s5 == (code *******)0x0) {\nLAB_00055b9c:\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    local_150 = (code *******)0xc;\n                    pppppppcVar33 = pppppppcVar28;\n                  }\n                  else {\n                    pppppppcVar29 = (code *******)&local_d0;\n                    if (pppppppcVar42[0x13] == (code ******)0x0) {\n                      local_cc = (code *******)0x0;\n                      local_c8 = pppppppcVar31;\n                      local_c0 = 0;\n                      local_bc = 0;\n                      local_b8 = 0;\n                      local_d0 = unaff_s5;\n                      local_c4 = unaff_s8;\n                      param_5 = (code *******)FUN_0005421c(&local_b4);\n                      (*(code *)PTR_free_00079c24)(local_b8);\n                      if (param_5 == (code *******)0x0) {\n                        param_4 = (code *******)*unaff_s5;\n                        if (param_4 == (code *******)0x0) {\nLAB_00055b70:\n                          (*(code *)PTR_free_00079c24)(unaff_s5);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          pppppppcVar33 = pppppppcVar28;\n                          goto LAB_00055b04;\n                        }\nLAB_00055528:\n                        (*(code *)PTR_free_00079c24)(local_50);\n                        pppppppcVar33 = pppppppcVar28;\n                        unaff_s4 = pppppppcVar42;\n                        local_58 = unaff_s8;\n                        local_54 = pppppppcVar31;\n                        local_50 = unaff_s5;\n                        goto LAB_00055548;\n                      }\nLAB_00055acc:\n                      param_4 = (code *******)0x0;\n                      pppppppcVar33 = pppppppcVar28;\n                      unaff_s4 = pppppppcVar42;\n                    }\n                    else {\n                      param_4 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                      if (param_4 == (code *******)0x0) goto LAB_00055b9c;\n                      unaff_s7 = (code *******)&local_d0;\n                      pcVar8 = (code *)(PTR_DAT_000799a4 + 0x421c);\n                      pcVar9 = (code *)(PTR_DAT_000799a4 + -0x6bc0);\n                      pppppppcVar33 = pppppppcVar28;\n                      while( true ) {\n                        pppppppcVar28 = (code *******)((int)unaff_s8 + 1);\n                        param_6 = (code *******)((int)pppppppcVar28 * 4);\n                        pppppppcVar30 = param_6;\n                        (*(code *)PTR_memset_00079b00)(param_4,0);\n                        local_c0 = 0;\n                        local_bc = 0;\n                        local_b8 = 0;\n                        pppppppcVar29 = unaff_s7;\n                        local_d0 = unaff_s5;\n                        local_cc = param_4;\n                        local_c8 = pppppppcVar31;\n                        local_c4 = unaff_s8;\n                        param_5 = (code *******)(*pcVar8)(&local_b4);\n                        (*(code *)PTR_free_00079c24)(local_b8);\n                        unaff_s4 = pppppppcVar28;\n                        if (param_5 != (code *******)0x0) break;\n                        if ((*unaff_s5 != (code ******)0x0) ||\n                           (param_6 = param_6 + -1, *param_4 != (code ******)0x0)) {\n                          pppppppcVar29 = unaff_s5;\n                          pppppppcVar30 = param_4;\n                          param_5 = (code *******)FUN_000520d0(pppppppcVar42);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          if (param_5 != (code *******)0x0) goto LAB_00055acc;\n                          goto LAB_00055528;\n                        }\n                        param_6 = (code *******)((int)local_50 + (int)param_6);\n                        do {\n                          while( true ) {\n                            unaff_s8 = (code *******)((int)unaff_s8 + -1);\n                            if ((int)unaff_s8 < 0) goto LAB_00055b70;\n                            pppppppcVar29 = (code *******)param_6[-1];\n                            if (pppppppcVar29 != (code *******)0x0) break;\n                            param_6 = param_6 + -1;\n                          }\n                          param_6 = param_6 + -1;\n                        } while (((uint)pppppppcVar29[0xd] & 0x8000000) == 0);\n                        pppppppcVar31 = (code *******)(*pcVar9)(&local_b4,pppppppcVar29,unaff_s8);\n                        pppppppcVar33 = pppppppcVar28;\n                      }\n                    }\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    (*(code *)PTR_free_00079c24)(param_4);\n                    local_150 = param_5;\n                    if (param_5 == (code *******)0x1) goto LAB_00055b04;\n                  }\n                }\n                else {\n                  local_150 = (code *******)0xc;\n                  pppppppcVar33 = pppppppcVar28;\n                }\n                goto LAB_000557e4;\n              }\n              if (pppppppcVar38[0x13] != (code ******)0x0) {\n                pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                pppppppcVar30 = unaff_s8;\n                local_54 = (code *******)FUN_00049440(&local_b4);\n                goto LAB_00055c6c;\n              }\nLAB_00055c08:\n              if ((((uint)param_1[7] & 0x8000000) == 0) && ((code *******)0x1 < pppppppcVar3)) {\n                cVar23 = *(code *)(pppppppcVar38 + 0x16);\n                goto LAB_00055c20;\n              }\nLAB_00055548:\n              if (pppppppcVar3 == (code *******)0x0) goto LAB_000557e4;\n              if (pppppppcVar3 < (code *******)0x2) {\n                *param_8 = (code ******)0x0;\n                param_8[1] = (code ******)local_58;\n                goto LAB_000555ac;\n              }\n              pppppppcVar29 = param_8 + 2;\n              do {\n                pppppppcVar29[1] = (code ******)0xffffffff;\n                *pppppppcVar29 = (code ******)0xffffffff;\n                pppppppcVar29 = pppppppcVar29 + 2;\n              } while (pppppppcVar29 != param_8 + (int)pppppppcVar3 * 2);\n              *param_8 = (code ******)0x0;\n              param_8[1] = (code ******)local_58;\n              if (((uint)param_1[7] & 0x8000000) != 0) {\nLAB_000555ac:\n                pppppppcVar33 = param_8;\n                do {\n                  pppppppcVar29 = (code *******)*pppppppcVar33;\n                  if (pppppppcVar29 != (code *******)0xffffffff) {\n                    if (local_68 != '\0') {\n                      pppppppcVar34 = local_94;\n                      if (pppppppcVar29 != local_98) {\n                        pppppppcVar34 = *(code ********)(local_a8 + (int)pppppppcVar29 * 4);\n                      }\n                      *pppppppcVar33 = (code ******)pppppppcVar34;\n                      pppppppcVar29 = local_94;\n                      if (local_98 != (code *******)pppppppcVar33[1]) {\n                        pppppppcVar29 = *(code ********)(local_a8 + (int)pppppppcVar33[1] * 4);\n                      }\n                      pppppppcVar33[1] = (code ******)pppppppcVar29;\n                    }\n                    *pppppppcVar33 = (code ******)((int)local_dc + (int)*pppppppcVar33);\n                    pppppppcVar29 = (code *******)((int)local_dc + (int)pppppppcVar33[1]);\n                    pppppppcVar33[1] = (code ******)pppppppcVar29;\n                  }\n                  pppppppcVar33 = pppppppcVar33 + 2;\n                } while (pppppppcVar33 != param_8 + (int)pppppppcVar3 * 2);\n                if (0 < local_118) {\n                  pppppppcVar33 = param_8 + (int)pppppppcVar3 * 2;\n                  do {\n                    *pppppppcVar33 = (code ******)0xffffffff;\n                    pppppppcVar33[1] = (code ******)0xffffffff;\n                    pppppppcVar33 = pppppppcVar33 + 2;\n                  } while (pppppppcVar33 != param_8 + (int)param_7 * 2);\n                }\n                pppppppcVar30 = local_dc;\n                pppppppcVar33 = param_8;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar38[0x21] != (code ******)0x0) {\n                  pppppppcVar30 = (code *******)((int)pppppppcVar3 + -1);\n                  pppppppcVar34 = (code *******)0x0;\n                  pppppppcVar3 = param_8;\n                  while( true ) {\n                    pppppppcVar29 = (code *******)((int)pppppppcVar34 * 4);\n                    if (pppppppcVar30 == pppppppcVar34) break;\n                    if (*(code ********)((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) !=\n                        pppppppcVar34) {\n                      pppppppcVar3[2] =\n                           param_8[(int)((int)*(code ********)\n                                               ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1)\n                                   * 2];\n                      pppppppcVar3[3] =\n                           param_8[((int)*(code ******)\n                                          ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1) * 2 +\n                                   1];\n                    }\n                    pppppppcVar34 = (code *******)((int)pppppppcVar34 + 1);\n                    pppppppcVar3 = pppppppcVar3 + 2;\n                  }\n                }\n                goto LAB_000557e4;\n              }\n              if ((char)*(code *)(pppppppcVar38 + 0x16) < '\0') {\n                local_168 = (uint)(0 < (int)pppppppcVar38[0x13]);\n              }\n              else {\n                local_168 = 0;\n              }\n              pppppppcVar29 = &local_b4;\n              pppppppcVar30 = pppppppcVar3;\n              pppppppcVar33 = param_8;\n              local_150 = (code *******)FUN_0004f4a0(param_1);\n              if (local_150 == (code *******)0x0) goto LAB_000555ac;\n            }\n          }\n          else if (local_90 < 0x3fffffff) {\n            local_50 = (code *******)(*(code *)PTR_malloc_00079b54)((local_90 + 1) * 4);\n            if (local_50 != (code *******)0x0) goto LAB_00055a40;\n            local_150 = (code *******)0xc;\n            param_6 = pppppppcVar36;\n          }\n          else {\n            local_150 = (code *******)0xc;\n            param_6 = pppppppcVar36;\n          }\n        }\n        else {\n          unaff_s5 = (code *******)((int)ppppppcVar35 * 8);\n          if (pppppppcVar36 < (code *******)0xccccccd) {\n            unaff_s4 = (code *******)(*(code *)PTR_malloc_00079b54)((int)ppppppcVar35 * 0x28);\n            local_40 = unaff_s4;\n            local_30 = (*(code *)PTR_malloc_00079b54)(unaff_s5);\n            if ((unaff_s4 != (code *******)0x0) && (local_30 != 0)) goto LAB_000559f0;\n          }\n          local_150 = (code *******)0xc;\n          param_6 = pppppppcVar36;\n        }\nLAB_000557e4:\n        (*(code *)PTR_free_00079c24)(local_50);\n        param_1 = pppppppcVar30;\n        if (pppppppcVar38[0x13] != (code ******)0x0) {\n          FUN_0004b7e8(&local_b4);\n          (*(code *)PTR_free_00079c24)(local_30);\n          (*(code *)PTR_free_00079c24)(local_40);\n          param_1 = pppppppcVar30;\n        }\n        FUN_0004b2bc(&local_b4);\n        pppppppcStack_1a0 = param_4;\n        pppppppcStack_19c = pppppppcVar31;\n      }\n    }" (if "if") (parenthesized_expression "(pppppppcVar29 == (code *******)0x0)" (( "(") (binary_expression "pppppppcVar29 == (code *******)0x0" (identifier "pppppppcVar29") (== "==") (cast_expression "(code *******)0x0" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      local_150 = (code *******)0x1;\n    }" ({ "{") (expression_statement "local_150 = (code *******)0x1;" (assignment_expression "local_150 = (code *******)0x1" (identifier "local_150") (= "=") (cast_expression "(code *******)0x1" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x1"))) (; ";")) (} "}")) (else_clause "else {\n      pppppppcVar3 = param_5;\n      if ((((pppppppcVar38[9][2] == (code *****)0x0) && (pppppppcVar38[10][2] == (code *****)0x0))\n          && ((pppppppcVar38[0xb][2] == (code *****)0x0 || (((uint)param_1[7] & 0x1000000) == 0))))\n         && ((pppppppcVar3 = param_4, param_4 != (code *******)0x0 &&\n             (param_4 = param_5, pppppppcVar3 = param_5, param_5 != (code *******)0x0)))) {\n        local_150 = (code *******)0x1;\n        pppppppcStack_1a0 = param_5;\n      }\n      else {\n        param_5 = pppppppcVar3;\n        pppppppcVar3 = (code *******)((int)param_7 - local_118);\n        if (pppppppcVar3 == (code *******)0x0) {\n          pppppppcVar34 = (code *******)(uint)(pppppppcVar38[0x13] != (code ******)0x0);\n        }\n        else {\n          pppppppcVar34 = (code *******)0x1;\n        }\n        ppppppcVar32 = param_1[5];\n        local_6c = (byte)((uint)((int)param_1[3] << 9) >> 0x1f);\n        local_64 = (code *******)pppppppcVar38[0x17];\n        pppppppcVar31 = (code *******)((int)pppppppcVar38[2] + 1);\n        if ((int)pppppppcVar38[2] + 1 < (int)local_64) {\n          pppppppcVar31 = local_64;\n        }\n        pppppppcVar30 = (code *******)(uint)((int)param_3 + 1 < (int)pppppppcVar31);\n        pppppppcVar33 = (code *******)0x1;\n        local_69 = local_6c;\n        if (ppppppcVar32 != (code ******)0x0) {\n          local_69 = 1;\n        }\n        local_6b = (byte)((uint)((int)pppppppcVar38[0x16] << 2) >> 0x1f);\n        local_6a = (byte)((uint)((int)pppppppcVar38[0x16] << 3) >> 0x1f);\n        pppppppcVar29 = (code *******)((int)param_3 + 1);\n        if (pppppppcVar30 == (code *******)0x0) {\n          pppppppcVar29 = pppppppcVar31;\n        }\n        local_b4 = param_2;\n        local_88 = param_3;\n        local_84 = param_3;\n        local_80 = param_3;\n        local_7c = param_3;\n        local_74 = ppppppcVar32;\n        local_150 = (code *******)FUN_00046d2c(&local_b4);\n        pppppppcVar31 = pppppppcVar34;\n        param_6 = param_6;\n        if (local_150 != (code *******)0x0) goto LAB_000557e4;\n        local_70 = pppppppcVar38 + 0x18;\n        local_66 = (byte)((uint)((int)pppppppcVar38[0x16] << 4) >> 0x1f);\n        pppppppcVar2 = (code *******)0x0;\n        local_98 = pppppppcVar2;\n        if ((local_69 == 0) && (local_b0 = param_2, (int)pppppppcVar38[0x17] < 2)) {\n          local_98 = param_3;\n        }\n        local_7c = param_6;\n        local_80 = param_6;\n        local_67 = (byte)((uint)((int)param_1[7] << 7) >> 0x1f);\n        ppppppcVar35 = pppppppcVar38[0x13];\n        pppppppcVar36 = (code *******)((int)ppppppcVar35 * 2);\n        local_5c = param_9;\n        local_58 = (code *******)0xffffffff;\n        local_94 = local_98;\n        if ((int)pppppppcVar36 < 1) {\nLAB_000559f0:\n          local_3c = 1;\n          local_44 = pppppppcVar36;\n          local_34 = pppppppcVar36;\n          if ((pppppppcVar3 < (code *******)0x2) && (((uint)pppppppcVar38[0x16] & 0x40000000) == 0))\n          {\n            local_50 = (code *******)0x0;\nLAB_00055a40:\n            local_78 = 6;\n            if (((uint)param_9 & 1) != 0) {\n              local_78 = 4;\n            }\n            pppppppcVar24 = (code *******)0x1;\n            pppppppcVar25 = param_4;\n            if ((int)param_5 < (int)param_4) {\n              pppppppcVar24 = (code *******)0xffffffff;\n              pppppppcVar25 = param_5;\n            }\n            pppppppcVar26 = param_5;\n            if ((int)param_5 <= (int)param_4) {\n              pppppppcVar26 = param_4;\n            }\n            ppppppcVar35 = pppppppcVar38[0x17];\n            uVar16 = 8;\n            if (local_148 != (code *******)0x0) {\n              if (ppppppcVar35 == (code ******)0x1) {\n                pppppppcVar28 = (code *******)0x4;\n              }\n              else {\n                pppppppcVar28 = pppppppcVar2;\n                if ((-1 < (int)param_1[3] << 9) && (ppppppcVar32 == (code ******)0x0)) {\n                  pppppppcVar28 = (code *******)0x4;\n                }\n              }\n              pppppppcVar29 = (code *******)0x0;\n              if ((int)param_4 <= (int)param_5) {\n                pppppppcVar29 = (code *******)0x2;\n              }\n              uVar16 = (uint)(ppppppcVar32 != (code ******)0x0) | (uint)pppppppcVar28 |\n                       (uint)pppppppcVar29;\n            }\n            local_dc = param_4;\n            if ((int)param_4 < (int)pppppppcVar25) {\n              local_150 = (code *******)0x1;\n              param_6 = pppppppcVar36;\n            }\n            else if ((int)pppppppcVar26 < (int)param_4) {\n              local_150 = (code *******)0x1;\n              param_4 = (code *******)(uint)((int)param_5 < (int)param_4);\n              param_6 = pppppppcVar36;\n            }\n            else {\n              pppppppcVar36 = (code *******)&local_dc;\n              if ((code *******)(uint)((int)param_5 < (int)param_4) != (code *******)0x0) {\n                pppppppcVar36 = (code *******)0x0;\n              }\n              pcVar4 = (code *)(PTR_DAT_000799a4 + -0x2b7c);\n              piVar5 = (int *)(PTR_s_nt0_000795b8 + (uVar16 - 4) * 4 + 0x6e38);\nLAB_00055b44:\n              if (uVar16 - 4 < 5) {\n                    \n                    \n                pppppppcVar29 = (code *******)(*(code *)(&_gp_1 + *piVar5))();\n                return pppppppcVar29;\n              }\n              param_5 = &local_b4;\n              pppppppcVar28 = pppppppcVar33;\n              while( true ) {\n                param_4 = local_dc;\n                pppppppcVar33 = (code *******)((int)local_dc - local_9c);\n                pppppppcVar30 = param_9;\n                pppppppcVar31 = pppppppcVar2;\n                param_6 = local_148;\n                unaff_s4 = param_3;\n                unaff_s5 = pppppppcVar24;\n                unaff_s7 = pppppppcVar26;\n                if (local_94 <= pppppppcVar33) {\n                  pppppppcVar29 = local_dc;\n                  local_150 = (code *******)(*pcVar4)(param_5);\n                  pppppppcVar33 = pppppppcVar28;\n                  if (local_150 != (code *******)0x0) goto LAB_000557e4;\n                  pppppppcVar33 = (code *******)((int)param_4 - local_9c);\n                }\n                if ((int)param_4 < (int)param_3) {\n                  uVar7 = (uint)(byte)*(code *)((int)pppppppcVar33 + (int)local_b0);\n                }\n                else {\n                  uVar7 = 0;\n                }\n                param_4 = (code *******)((int)param_4 + (int)pppppppcVar24);\n                if (*(code *)((int)local_148 + uVar7) != (code)0x0) break;\n                pppppppcVar33 = pppppppcVar28;\n                local_dc = param_4;\n                if ((int)param_4 < (int)pppppppcVar25) {\n                  local_150 = (code *******)0x1;\n                  goto LAB_000557e4;\n                }\n                if ((code *******)(uint)((int)pppppppcVar26 < (int)param_4) != (code *******)0x0) {\n                  local_150 = (code *******)0x1;\n                  param_4 = (code *******)(uint)((int)pppppppcVar26 < (int)param_4);\n                  goto LAB_000557e4;\n                }\n              }\n              while( true ) {\n                pppppppcVar29 = local_dc;\n                pppppppcVar30 = param_9;\n                pppppppcVar6 = (code *******)(*pcVar4)(&local_b4);\n                pppppppcVar14 = local_60;\n                pppppppcVar42 = local_8c;\n                pppppppcVar33 = pppppppcVar28;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar6 != (code *******)0x0) goto LAB_000557e4;\n                if (((ppppppcVar35 != (code ******)0x1) && (local_98 != (code *******)0x0)) &&\n                   (*local_ac == -1)) goto LAB_00055b1c;\n                local_3c = 0;\n                local_48 = 0;\n                local_4c = (code *******)0x0;\n                local_138 = local_8c;\n                local_d8 = (code *******)0x0;\n                unaff_s7 = (code *******)local_60[9];\n                pppppppcVar30 = local_5c;\n                param_4 = pppppppcVar14;\n                if (((uint)unaff_s7[0xd] & 0x1000000) == 0) break;\n                pppppppcVar29 = (code *******)((int)local_8c + -1);\n                pppppppcVar33 = (code *******)FUN_00049110(&local_b4);\n                if (((uint)pppppppcVar33 & 1) == 0) {\n                  if (pppppppcVar33 == (code *******)0x0) break;\n                  if (((uint)pppppppcVar33 & 6) == 6) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xc];\n                    goto LAB_00054d1c;\n                  }\n                  if (((uint)pppppppcVar33 & 2) != 0) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xb];\n                    goto LAB_00054d1c;\n                  }\n                  pppppppcVar28 = pppppppcVar33;\n                  if (((uint)pppppppcVar33 & 4) == 0) break;\n                  pppppppcVar30 = (code *******)unaff_s7[10];\n                  pppppppcVar29 = pppppppcVar14;\n                  unaff_s7 = (code *******)FUN_0004ae34(&local_d8);\n                  pppppppcVar28 = pppppppcVar33;\n                  if (unaff_s7 != (code *******)0x0) break;\n                  if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                }\n                else {\n                  unaff_s7 = (code *******)pppppppcVar14[10];\nLAB_00054d1c:\n                  pppppppcVar28 = (code *******)PTR_s_nt0_000795b8;\n                  if (unaff_s7 != (code *******)0x0) break;\n                }\n                pppppppcVar28 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                local_dc = (code *******)\n                           (*(code *)PTR___assert_fail_000799f8)\n                                     (PTR_s_nt0_000795b8 + 0x71a0,pppppppcVar29,0x435);\n                if (local_dc == pppppppcVar26) {\n                  if ((int)local_dc < (int)param_3) {\n                    uVar7 = (uint)(byte)*(code *)((int)local_dc + (int)param_2);\n                  }\n                  else {\n                    uVar7 = 0;\n                  }\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    uVar7 = (uint)*(byte *)((int)ppppppcVar32 + uVar7);\n                  }\n                  if (*(code *)((int)local_148 + uVar7) == (code)0x0) {\n                    local_150 = (code *******)0x1;\n                    pppppppcVar30 = param_9;\n                    pppppppcVar33 = pppppppcVar28;\n                    goto LAB_000557e4;\n                  }\n                }\n              }\n              pppppppcVar33 = pppppppcVar28;\n              bVar1 = pppppppcVar36 != (code *******)0x0;\n              if ((local_50 == (code *******)0x0) ||\n                 (local_50[(int)pppppppcVar42] = (code ******)unaff_s7,\n                 pppppppcVar14[0x13] == (code ******)0x0)) {\nLAB_00054d50:\n                if ((int)unaff_s7[0xd] << 4 < 0) {\n                  if ((((uint)unaff_s7[0xd] & 0x1000000) == 0) ||\n                     (pppppppcVar29 = unaff_s7, pppppppcVar30 = pppppppcVar42,\n                     iVar18 = FUN_00049440(&local_b4), iVar18 != 0)) {\n                    unaff_s8 = pppppppcVar42;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                  }\n                  else {\n                    pppppppcVar42 = (code *******)0xffffffff;\n                    pppppppcVar28 = (code *******)0x0;\n                  }\n                }\n                else {\n                  pppppppcVar42 = (code *******)0xffffffff;\n                  pppppppcVar28 = (code *******)0x0;\n                }\n                pcVar8 = (code *)(PTR_DAT_000799a4 + -0x7144);\n                pcVar9 = (code *)(PTR_DAT_000799a4 + -0x1980);\n                pcVar10 = (code *)(PTR_DAT_000799a4 + -0x2f9c);\n                unaff_s8 = pppppppcVar42;\n                local_144 = pppppppcVar36;\n                while( true ) {\n                  uVar44 = CONCAT44(local_98,local_84);\n                  unaff_s5 = (code *******)((int)local_8c + 1);\n                  pppppppcVar29 = local_8c;\n                  if ((int)local_7c <= (int)local_8c) break;\n                  if (((int)local_90 <= (int)unaff_s5) && ((int)local_90 < (int)local_84))\n                  goto LAB_00054e94;\n                  if ((int)local_98 <= (int)unaff_s5) {\n                    while ((int)((ulonglong)uVar44 >> 0x20) < (int)uVar44) {\nLAB_00054e94:\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 2);\n                      local_d8 = (code *******)(*pcVar8)(&local_b4);\n                      if (local_d8 == (code *******)0x0) break;\n                      pppppppcVar14 = param_4;\n                      if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                      pppppppcVar33 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                      pppppppcVar30 = (code *******)0x46c;\n                      pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                      uVar44 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0);\n                      pppppppcVar28 = pppppppcVar38;\n                    }\n                  }\n                  pppppppcVar42 = local_60;\n                  if ((int)unaff_s7[0xd] << 5 < 0) {\n                    pppppppcVar31 = pppppppcVar42;\n                    if (0 < (int)unaff_s7[2]) {\n                      pcVar11 = (code *)(PTR_DAT_000799a4 + -0x6fdc);\n                      pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6ef0);\n                      param_6 = (code *******)0x0;\n                      do {\n                        param_5 = (code *******)unaff_s7[3][(int)param_6];\n                        ppppppcVar39 = *pppppppcVar42;\n                        pppppcVar13 = ppppppcVar39[(int)param_5 * 2 + 1];\n                        if (((uint)pppppcVar13 & 0x800) != 0) {\n                          if (((uint)pppppcVar13 & 0xffc000) != 0) {\n                            pppppppcVar29 = local_8c;\n                            uVar19 = (*pcVar12)(&local_b4,local_8c,local_5c);\n                            uVar7 = (uint)((int)ppppppcVar39[(int)param_5 * 2 + 1] << 8) >> 0x16;\n                            if ((uVar7 & 4) == 0) {\n                              uVar27 = uVar19 & 1;\n                              if ((uVar7 & 8) != 0) goto joined_r0x00054f40;\n                            }\n                            else {\n                              uVar27 = uVar7 & 8;\n                              if ((uVar19 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                              if (uVar27 != 0) goto LAB_000550a4;\n                            }\n                            if ((((uVar7 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                               (((uVar7 & 0x80) != 0 &&\n                                (pppppppcVar33 = local_8c, (uVar19 & 8) == 0)))) goto LAB_000550a4;\n                          }\n                          pppppppcVar30 = &local_b4;\n                          pppppppcVar29 = param_5;\n                          pppppppcVar33 = local_8c;\n                          iVar18 = (*pcVar10)(pppppppcVar42);\n                          if (iVar18 != 0) {\n                            pppppppcVar14 = (code *******)((int)local_8c + iVar18);\n                            if (iVar18 <= local_3c) {\n                              iVar18 = local_3c;\n                            }\n                            pppppppcVar29 = pppppppcVar14;\n                            local_3c = iVar18;\n                            local_d4 = (code *******)(*pcVar11)(&local_b4);\n                            pppppppcVar15 = local_d4;\n                            if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                            pppppppcVar30 =\n                                 (code *******)\n                                 (pppppppcVar42[6] + (int)pppppppcVar42[3][(int)param_5] * 3);\n                            unaff_s4 = (code *******)((int)pppppppcVar14 * 4);\n                            param_5 = local_50 + (int)pppppppcVar14;\n                            if (*param_5 == (code ******)0x0) {\n                              local_d0 = (code *******)*pppppppcVar30;\n                              local_cc = (code *******)pppppppcVar30[1];\n                              local_c8 = (code *******)pppppppcVar30[2];\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *param_5 = ppppppcVar39;\n                            }\n                            else {\n                              pppppppcVar29 = (code *******)(*param_5)[10];\n                              local_d4 = (code *******)FUN_000484bc(&local_d0);\n                              pppppppcVar15 = local_d4;\n                              if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar15 = local_50 + (int)pppppppcVar14;\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *pppppppcVar15 = ppppppcVar39;\n                              (*(code *)PTR_free_00079c24)(local_c8);\n                            }\n                            unaff_s4 = local_50 + (int)pppppppcVar14;\n                            if ((*unaff_s4 == (code ******)0x0) &&\n                               (pppppppcVar15 = local_d4, local_d4 != (code *******)0x0))\n                            goto LAB_00055e44;\n                          }\n                        }\nLAB_000550a4:\n                        param_6 = (code *******)((int)param_6 + 1);\n                      } while ((int)param_6 < (int)unaff_s7[2]);\n                    }\n                    local_d8 = (code *******)0x0;\n                  }\n                  uVar7 = (uint)(byte)*(code *)((int)local_8c + (int)local_b0);\n                  local_8c = (code *******)((int)local_8c + 1);\n                  do {\n                    if (unaff_s7[0xb] != (code ******)0x0) {\n                      pppppppcVar30 = (code *******)unaff_s7[0xb][uVar7];\nLAB_000553a0:\n                      pppppppcVar14 = pppppppcVar30;\n                      if (local_50 != (code *******)0x0) goto LAB_000553ac;\n                      goto LAB_000553cc;\n                    }\n                    pppppppcVar31 = (code *******)unaff_s7[0xc];\n                    if (pppppppcVar31 != (code *******)0x0) {\n                      pppppppcVar29 = (code *******)((int)local_8c + -1);\n                      uVar19 = FUN_00049110(&local_b4);\n                      if ((uVar19 & 1) == 0) {\n                        pppppppcVar30 = (code *******)pppppppcVar31[uVar7];\n                      }\n                      else {\n                        pppppppcVar31 = pppppppcVar31 + uVar7 + 0x100;\n                        pppppppcVar30 = (code *******)*pppppppcVar31;\n                      }\n                      goto LAB_000553a0;\n                    }\n                    pppppppcVar29 = unaff_s7;\n                    pppppppcVar30 = local_5c;\n                    iVar18 = (*pcVar9)(local_60);\n                  } while (iVar18 != 0);\n                  local_d8 = (code *******)0xc;\n                  pppppppcVar15 = local_d8;\nLAB_00055e44:\n                  local_d8 = pppppppcVar15;\n                  param_4 = (code *******)0x0;\n                  if (local_50 == (code *******)0x0) {\n                    pppppppcVar14 = param_4;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    break;\n                  }\n                  pppppppcVar30 = (code *******)0x0;\nLAB_000553ac:\n                  pppppppcVar29 = &local_b4;\n                  pppppppcVar14 = (code *******)FUN_00053684(&local_d8);\nLAB_000553cc:\n                  param_4 = pppppppcVar14;\n                  if (pppppppcVar14 == (code *******)0x0) {\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    if ((local_50 == (code *******)0x0) ||\n                       ((pppppppcVar28 != (code *******)0x0 && (pppppppcVar34 == (code *******)0x0))\n                       )) break;\n                    param_6 = &local_b4;\n                    param_5 = (code *******)&local_d8;\n                    pppppppcVar31 = (code *******)(PTR_DAT_000799a4 + 0x3684);\n                    do {\n                      pppppppcVar15 = local_50 + (int)local_8c;\n                      pppppppcVar42 = local_8c;\n                      do {\n                        pppppppcVar42 = (code *******)((int)pppppppcVar42 + 1);\n                        pppppppcVar29 = local_4c;\n                        param_4 = pppppppcVar14;\n                        if ((int)local_4c < (int)pppppppcVar42) goto LAB_00055da8;\n                        local_8c = (code *******)((int)local_8c + 1);\n                        pppppppcVar15 = pppppppcVar15 + 1;\n                      } while (*pppppppcVar15 == (code ******)0x0);\n                      pppppppcVar30 = (code *******)0x0;\n                      pppppppcVar29 = param_6;\n                      param_4 = (code *******)(*(code *)pppppppcVar31)(param_5);\n                      if (local_d8 != (code *******)0x0) {\n                        if (param_4 == (code *******)0x0) goto LAB_00055da8;\n                        break;\n                      }\n                      pppppppcVar29 = local_4c;\n                    } while (param_4 == (code *******)0x0);\n                  }\n                  pppppppcVar15 = (code *******)((uint)unaff_s7 ^ (uint)param_4);\n                  pppppppcVar42 = unaff_s7;\n                  pppppppcVar14 = local_138;\n                  if ((bVar1) &&\n                     (pppppppcVar42 = pppppppcVar15, pppppppcVar14 = unaff_s5,\n                     pppppppcVar15 != (code *******)0x0)) {\n                    bVar1 = false;\n                    pppppppcVar14 = local_138;\n                  }\n                  local_138 = pppppppcVar14;\n                  unaff_s7 = param_4;\n                  if ((((uint)param_4[0xd] & 0x8000000) != 0) &&\n                     ((((uint)param_4[0xd] & 0x1000000) == 0 ||\n                      (pppppppcVar29 = param_4, pppppppcVar30 = local_8c,\n                      iVar18 = FUN_00049440(&local_b4), iVar18 != 0)))) {\n                    unaff_s7 = pppppppcVar42;\n                    unaff_s8 = local_8c;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                    local_144 = (code *******)0x0;\n                    unaff_s7 = param_4;\n                  }\n                }\nLAB_00055da8:\n                if (local_144 != (code *******)0x0) {\n                  *local_144 = (code ******)((int)local_138 + (int)*local_144);\n                }\n              }\n              else {\n                param_4 = unaff_s7 + 1;\n                pppppppcVar30 = (code *******)0x0;\n                pppppppcVar29 = param_4;\n                local_d8 = (code *******)FUN_00047a44(&local_b4);\n                unaff_s8 = local_d8;\n                if (local_d8 == (code *******)0x0) {\n                  if (((uint)unaff_s7[0xd] & 0x2000000) == 0) {\n                    pppppppcVar29 = param_4;\n                    bVar1 = false;\n                  }\n                  else {\n                    pppppppcVar29 = param_4;\n                    local_d8 = (code *******)FUN_00052d84(&local_b4);\n                    unaff_s8 = local_d8;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055dbc;\n                    bVar1 = false;\n                  }\n                  goto LAB_00054d50;\n                }\n              }\nLAB_00055dbc:\n              if (unaff_s8 == (code *******)0xffffffff) {\nLAB_00055b04:\n                FUN_0004b7e8(&local_b4);\nLAB_00055b1c:\n                local_dc = (code *******)((int)pppppppcVar24 + (int)local_dc);\n                if ((int)pppppppcVar25 <= (int)local_dc) goto code_r0x00055b38;\n                local_150 = (code *******)0x1;\n                goto LAB_000557e4;\n              }\n              if (unaff_s8 == (code *******)&SUB_fffffffe) {\n                local_150 = (code *******)0xc;\n                goto LAB_000557e4;\n              }\n              local_58 = unaff_s8;\n              if (((uint)param_1[7] & 0x8000000) == 0) {\n                if (pppppppcVar3 < (code *******)0x2) {\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055c08;\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                else {\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                if (pppppppcVar3 < (code *******)0x2) {\nLAB_00055c6c:\n                  pppppppcVar28 = pppppppcVar33;\n                  unaff_s4 = local_60;\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055548;\n                }\n                else {\n                  cVar23 = *(code *)(pppppppcVar38 + 0x16);\nLAB_00055c20:\n                  pppppppcVar28 = pppppppcVar33;\n                  if (-1 < (char)cVar23) goto LAB_00055c6c;\n                }\n                pppppppcVar31 = local_54;\n                pppppppcVar42 = local_60;\n                unaff_s4 = pppppppcVar42;\n                if (unaff_s8 < (code *******)0x3fffffff) {\n                  param_4 = (code *******)((int)((int)unaff_s8 + 1) * 4);\n                  unaff_s5 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                  if (unaff_s5 == (code *******)0x0) {\nLAB_00055b9c:\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    local_150 = (code *******)0xc;\n                    pppppppcVar33 = pppppppcVar28;\n                  }\n                  else {\n                    pppppppcVar29 = (code *******)&local_d0;\n                    if (pppppppcVar42[0x13] == (code ******)0x0) {\n                      local_cc = (code *******)0x0;\n                      local_c8 = pppppppcVar31;\n                      local_c0 = 0;\n                      local_bc = 0;\n                      local_b8 = 0;\n                      local_d0 = unaff_s5;\n                      local_c4 = unaff_s8;\n                      param_5 = (code *******)FUN_0005421c(&local_b4);\n                      (*(code *)PTR_free_00079c24)(local_b8);\n                      if (param_5 == (code *******)0x0) {\n                        param_4 = (code *******)*unaff_s5;\n                        if (param_4 == (code *******)0x0) {\nLAB_00055b70:\n                          (*(code *)PTR_free_00079c24)(unaff_s5);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          pppppppcVar33 = pppppppcVar28;\n                          goto LAB_00055b04;\n                        }\nLAB_00055528:\n                        (*(code *)PTR_free_00079c24)(local_50);\n                        pppppppcVar33 = pppppppcVar28;\n                        unaff_s4 = pppppppcVar42;\n                        local_58 = unaff_s8;\n                        local_54 = pppppppcVar31;\n                        local_50 = unaff_s5;\n                        goto LAB_00055548;\n                      }\nLAB_00055acc:\n                      param_4 = (code *******)0x0;\n                      pppppppcVar33 = pppppppcVar28;\n                      unaff_s4 = pppppppcVar42;\n                    }\n                    else {\n                      param_4 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                      if (param_4 == (code *******)0x0) goto LAB_00055b9c;\n                      unaff_s7 = (code *******)&local_d0;\n                      pcVar8 = (code *)(PTR_DAT_000799a4 + 0x421c);\n                      pcVar9 = (code *)(PTR_DAT_000799a4 + -0x6bc0);\n                      pppppppcVar33 = pppppppcVar28;\n                      while( true ) {\n                        pppppppcVar28 = (code *******)((int)unaff_s8 + 1);\n                        param_6 = (code *******)((int)pppppppcVar28 * 4);\n                        pppppppcVar30 = param_6;\n                        (*(code *)PTR_memset_00079b00)(param_4,0);\n                        local_c0 = 0;\n                        local_bc = 0;\n                        local_b8 = 0;\n                        pppppppcVar29 = unaff_s7;\n                        local_d0 = unaff_s5;\n                        local_cc = param_4;\n                        local_c8 = pppppppcVar31;\n                        local_c4 = unaff_s8;\n                        param_5 = (code *******)(*pcVar8)(&local_b4);\n                        (*(code *)PTR_free_00079c24)(local_b8);\n                        unaff_s4 = pppppppcVar28;\n                        if (param_5 != (code *******)0x0) break;\n                        if ((*unaff_s5 != (code ******)0x0) ||\n                           (param_6 = param_6 + -1, *param_4 != (code ******)0x0)) {\n                          pppppppcVar29 = unaff_s5;\n                          pppppppcVar30 = param_4;\n                          param_5 = (code *******)FUN_000520d0(pppppppcVar42);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          if (param_5 != (code *******)0x0) goto LAB_00055acc;\n                          goto LAB_00055528;\n                        }\n                        param_6 = (code *******)((int)local_50 + (int)param_6);\n                        do {\n                          while( true ) {\n                            unaff_s8 = (code *******)((int)unaff_s8 + -1);\n                            if ((int)unaff_s8 < 0) goto LAB_00055b70;\n                            pppppppcVar29 = (code *******)param_6[-1];\n                            if (pppppppcVar29 != (code *******)0x0) break;\n                            param_6 = param_6 + -1;\n                          }\n                          param_6 = param_6 + -1;\n                        } while (((uint)pppppppcVar29[0xd] & 0x8000000) == 0);\n                        pppppppcVar31 = (code *******)(*pcVar9)(&local_b4,pppppppcVar29,unaff_s8);\n                        pppppppcVar33 = pppppppcVar28;\n                      }\n                    }\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    (*(code *)PTR_free_00079c24)(param_4);\n                    local_150 = param_5;\n                    if (param_5 == (code *******)0x1) goto LAB_00055b04;\n                  }\n                }\n                else {\n                  local_150 = (code *******)0xc;\n                  pppppppcVar33 = pppppppcVar28;\n                }\n                goto LAB_000557e4;\n              }\n              if (pppppppcVar38[0x13] != (code ******)0x0) {\n                pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                pppppppcVar30 = unaff_s8;\n                local_54 = (code *******)FUN_00049440(&local_b4);\n                goto LAB_00055c6c;\n              }\nLAB_00055c08:\n              if ((((uint)param_1[7] & 0x8000000) == 0) && ((code *******)0x1 < pppppppcVar3)) {\n                cVar23 = *(code *)(pppppppcVar38 + 0x16);\n                goto LAB_00055c20;\n              }\nLAB_00055548:\n              if (pppppppcVar3 == (code *******)0x0) goto LAB_000557e4;\n              if (pppppppcVar3 < (code *******)0x2) {\n                *param_8 = (code ******)0x0;\n                param_8[1] = (code ******)local_58;\n                goto LAB_000555ac;\n              }\n              pppppppcVar29 = param_8 + 2;\n              do {\n                pppppppcVar29[1] = (code ******)0xffffffff;\n                *pppppppcVar29 = (code ******)0xffffffff;\n                pppppppcVar29 = pppppppcVar29 + 2;\n              } while (pppppppcVar29 != param_8 + (int)pppppppcVar3 * 2);\n              *param_8 = (code ******)0x0;\n              param_8[1] = (code ******)local_58;\n              if (((uint)param_1[7] & 0x8000000) != 0) {\nLAB_000555ac:\n                pppppppcVar33 = param_8;\n                do {\n                  pppppppcVar29 = (code *******)*pppppppcVar33;\n                  if (pppppppcVar29 != (code *******)0xffffffff) {\n                    if (local_68 != '\0') {\n                      pppppppcVar34 = local_94;\n                      if (pppppppcVar29 != local_98) {\n                        pppppppcVar34 = *(code ********)(local_a8 + (int)pppppppcVar29 * 4);\n                      }\n                      *pppppppcVar33 = (code ******)pppppppcVar34;\n                      pppppppcVar29 = local_94;\n                      if (local_98 != (code *******)pppppppcVar33[1]) {\n                        pppppppcVar29 = *(code ********)(local_a8 + (int)pppppppcVar33[1] * 4);\n                      }\n                      pppppppcVar33[1] = (code ******)pppppppcVar29;\n                    }\n                    *pppppppcVar33 = (code ******)((int)local_dc + (int)*pppppppcVar33);\n                    pppppppcVar29 = (code *******)((int)local_dc + (int)pppppppcVar33[1]);\n                    pppppppcVar33[1] = (code ******)pppppppcVar29;\n                  }\n                  pppppppcVar33 = pppppppcVar33 + 2;\n                } while (pppppppcVar33 != param_8 + (int)pppppppcVar3 * 2);\n                if (0 < local_118) {\n                  pppppppcVar33 = param_8 + (int)pppppppcVar3 * 2;\n                  do {\n                    *pppppppcVar33 = (code ******)0xffffffff;\n                    pppppppcVar33[1] = (code ******)0xffffffff;\n                    pppppppcVar33 = pppppppcVar33 + 2;\n                  } while (pppppppcVar33 != param_8 + (int)param_7 * 2);\n                }\n                pppppppcVar30 = local_dc;\n                pppppppcVar33 = param_8;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar38[0x21] != (code ******)0x0) {\n                  pppppppcVar30 = (code *******)((int)pppppppcVar3 + -1);\n                  pppppppcVar34 = (code *******)0x0;\n                  pppppppcVar3 = param_8;\n                  while( true ) {\n                    pppppppcVar29 = (code *******)((int)pppppppcVar34 * 4);\n                    if (pppppppcVar30 == pppppppcVar34) break;\n                    if (*(code ********)((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) !=\n                        pppppppcVar34) {\n                      pppppppcVar3[2] =\n                           param_8[(int)((int)*(code ********)\n                                               ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1)\n                                   * 2];\n                      pppppppcVar3[3] =\n                           param_8[((int)*(code ******)\n                                          ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1) * 2 +\n                                   1];\n                    }\n                    pppppppcVar34 = (code *******)((int)pppppppcVar34 + 1);\n                    pppppppcVar3 = pppppppcVar3 + 2;\n                  }\n                }\n                goto LAB_000557e4;\n              }\n              if ((char)*(code *)(pppppppcVar38 + 0x16) < '\0') {\n                local_168 = (uint)(0 < (int)pppppppcVar38[0x13]);\n              }\n              else {\n                local_168 = 0;\n              }\n              pppppppcVar29 = &local_b4;\n              pppppppcVar30 = pppppppcVar3;\n              pppppppcVar33 = param_8;\n              local_150 = (code *******)FUN_0004f4a0(param_1);\n              if (local_150 == (code *******)0x0) goto LAB_000555ac;\n            }\n          }\n          else if (local_90 < 0x3fffffff) {\n            local_50 = (code *******)(*(code *)PTR_malloc_00079b54)((local_90 + 1) * 4);\n            if (local_50 != (code *******)0x0) goto LAB_00055a40;\n            local_150 = (code *******)0xc;\n            param_6 = pppppppcVar36;\n          }\n          else {\n            local_150 = (code *******)0xc;\n            param_6 = pppppppcVar36;\n          }\n        }\n        else {\n          unaff_s5 = (code *******)((int)ppppppcVar35 * 8);\n          if (pppppppcVar36 < (code *******)0xccccccd) {\n            unaff_s4 = (code *******)(*(code *)PTR_malloc_00079b54)((int)ppppppcVar35 * 0x28);\n            local_40 = unaff_s4;\n            local_30 = (*(code *)PTR_malloc_00079b54)(unaff_s5);\n            if ((unaff_s4 != (code *******)0x0) && (local_30 != 0)) goto LAB_000559f0;\n          }\n          local_150 = (code *******)0xc;\n          param_6 = pppppppcVar36;\n        }\nLAB_000557e4:\n        (*(code *)PTR_free_00079c24)(local_50);\n        param_1 = pppppppcVar30;\n        if (pppppppcVar38[0x13] != (code ******)0x0) {\n          FUN_0004b7e8(&local_b4);\n          (*(code *)PTR_free_00079c24)(local_30);\n          (*(code *)PTR_free_00079c24)(local_40);\n          param_1 = pppppppcVar30;\n        }\n        FUN_0004b2bc(&local_b4);\n        pppppppcStack_1a0 = param_4;\n        pppppppcStack_19c = pppppppcVar31;\n      }\n    }" (else "else") (compound_statement "{\n      pppppppcVar3 = param_5;\n      if ((((pppppppcVar38[9][2] == (code *****)0x0) && (pppppppcVar38[10][2] == (code *****)0x0))\n          && ((pppppppcVar38[0xb][2] == (code *****)0x0 || (((uint)param_1[7] & 0x1000000) == 0))))\n         && ((pppppppcVar3 = param_4, param_4 != (code *******)0x0 &&\n             (param_4 = param_5, pppppppcVar3 = param_5, param_5 != (code *******)0x0)))) {\n        local_150 = (code *******)0x1;\n        pppppppcStack_1a0 = param_5;\n      }\n      else {\n        param_5 = pppppppcVar3;\n        pppppppcVar3 = (code *******)((int)param_7 - local_118);\n        if (pppppppcVar3 == (code *******)0x0) {\n          pppppppcVar34 = (code *******)(uint)(pppppppcVar38[0x13] != (code ******)0x0);\n        }\n        else {\n          pppppppcVar34 = (code *******)0x1;\n        }\n        ppppppcVar32 = param_1[5];\n        local_6c = (byte)((uint)((int)param_1[3] << 9) >> 0x1f);\n        local_64 = (code *******)pppppppcVar38[0x17];\n        pppppppcVar31 = (code *******)((int)pppppppcVar38[2] + 1);\n        if ((int)pppppppcVar38[2] + 1 < (int)local_64) {\n          pppppppcVar31 = local_64;\n        }\n        pppppppcVar30 = (code *******)(uint)((int)param_3 + 1 < (int)pppppppcVar31);\n        pppppppcVar33 = (code *******)0x1;\n        local_69 = local_6c;\n        if (ppppppcVar32 != (code ******)0x0) {\n          local_69 = 1;\n        }\n        local_6b = (byte)((uint)((int)pppppppcVar38[0x16] << 2) >> 0x1f);\n        local_6a = (byte)((uint)((int)pppppppcVar38[0x16] << 3) >> 0x1f);\n        pppppppcVar29 = (code *******)((int)param_3 + 1);\n        if (pppppppcVar30 == (code *******)0x0) {\n          pppppppcVar29 = pppppppcVar31;\n        }\n        local_b4 = param_2;\n        local_88 = param_3;\n        local_84 = param_3;\n        local_80 = param_3;\n        local_7c = param_3;\n        local_74 = ppppppcVar32;\n        local_150 = (code *******)FUN_00046d2c(&local_b4);\n        pppppppcVar31 = pppppppcVar34;\n        param_6 = param_6;\n        if (local_150 != (code *******)0x0) goto LAB_000557e4;\n        local_70 = pppppppcVar38 + 0x18;\n        local_66 = (byte)((uint)((int)pppppppcVar38[0x16] << 4) >> 0x1f);\n        pppppppcVar2 = (code *******)0x0;\n        local_98 = pppppppcVar2;\n        if ((local_69 == 0) && (local_b0 = param_2, (int)pppppppcVar38[0x17] < 2)) {\n          local_98 = param_3;\n        }\n        local_7c = param_6;\n        local_80 = param_6;\n        local_67 = (byte)((uint)((int)param_1[7] << 7) >> 0x1f);\n        ppppppcVar35 = pppppppcVar38[0x13];\n        pppppppcVar36 = (code *******)((int)ppppppcVar35 * 2);\n        local_5c = param_9;\n        local_58 = (code *******)0xffffffff;\n        local_94 = local_98;\n        if ((int)pppppppcVar36 < 1) {\nLAB_000559f0:\n          local_3c = 1;\n          local_44 = pppppppcVar36;\n          local_34 = pppppppcVar36;\n          if ((pppppppcVar3 < (code *******)0x2) && (((uint)pppppppcVar38[0x16] & 0x40000000) == 0))\n          {\n            local_50 = (code *******)0x0;\nLAB_00055a40:\n            local_78 = 6;\n            if (((uint)param_9 & 1) != 0) {\n              local_78 = 4;\n            }\n            pppppppcVar24 = (code *******)0x1;\n            pppppppcVar25 = param_4;\n            if ((int)param_5 < (int)param_4) {\n              pppppppcVar24 = (code *******)0xffffffff;\n              pppppppcVar25 = param_5;\n            }\n            pppppppcVar26 = param_5;\n            if ((int)param_5 <= (int)param_4) {\n              pppppppcVar26 = param_4;\n            }\n            ppppppcVar35 = pppppppcVar38[0x17];\n            uVar16 = 8;\n            if (local_148 != (code *******)0x0) {\n              if (ppppppcVar35 == (code ******)0x1) {\n                pppppppcVar28 = (code *******)0x4;\n              }\n              else {\n                pppppppcVar28 = pppppppcVar2;\n                if ((-1 < (int)param_1[3] << 9) && (ppppppcVar32 == (code ******)0x0)) {\n                  pppppppcVar28 = (code *******)0x4;\n                }\n              }\n              pppppppcVar29 = (code *******)0x0;\n              if ((int)param_4 <= (int)param_5) {\n                pppppppcVar29 = (code *******)0x2;\n              }\n              uVar16 = (uint)(ppppppcVar32 != (code ******)0x0) | (uint)pppppppcVar28 |\n                       (uint)pppppppcVar29;\n            }\n            local_dc = param_4;\n            if ((int)param_4 < (int)pppppppcVar25) {\n              local_150 = (code *******)0x1;\n              param_6 = pppppppcVar36;\n            }\n            else if ((int)pppppppcVar26 < (int)param_4) {\n              local_150 = (code *******)0x1;\n              param_4 = (code *******)(uint)((int)param_5 < (int)param_4);\n              param_6 = pppppppcVar36;\n            }\n            else {\n              pppppppcVar36 = (code *******)&local_dc;\n              if ((code *******)(uint)((int)param_5 < (int)param_4) != (code *******)0x0) {\n                pppppppcVar36 = (code *******)0x0;\n              }\n              pcVar4 = (code *)(PTR_DAT_000799a4 + -0x2b7c);\n              piVar5 = (int *)(PTR_s_nt0_000795b8 + (uVar16 - 4) * 4 + 0x6e38);\nLAB_00055b44:\n              if (uVar16 - 4 < 5) {\n                    \n                    \n                pppppppcVar29 = (code *******)(*(code *)(&_gp_1 + *piVar5))();\n                return pppppppcVar29;\n              }\n              param_5 = &local_b4;\n              pppppppcVar28 = pppppppcVar33;\n              while( true ) {\n                param_4 = local_dc;\n                pppppppcVar33 = (code *******)((int)local_dc - local_9c);\n                pppppppcVar30 = param_9;\n                pppppppcVar31 = pppppppcVar2;\n                param_6 = local_148;\n                unaff_s4 = param_3;\n                unaff_s5 = pppppppcVar24;\n                unaff_s7 = pppppppcVar26;\n                if (local_94 <= pppppppcVar33) {\n                  pppppppcVar29 = local_dc;\n                  local_150 = (code *******)(*pcVar4)(param_5);\n                  pppppppcVar33 = pppppppcVar28;\n                  if (local_150 != (code *******)0x0) goto LAB_000557e4;\n                  pppppppcVar33 = (code *******)((int)param_4 - local_9c);\n                }\n                if ((int)param_4 < (int)param_3) {\n                  uVar7 = (uint)(byte)*(code *)((int)pppppppcVar33 + (int)local_b0);\n                }\n                else {\n                  uVar7 = 0;\n                }\n                param_4 = (code *******)((int)param_4 + (int)pppppppcVar24);\n                if (*(code *)((int)local_148 + uVar7) != (code)0x0) break;\n                pppppppcVar33 = pppppppcVar28;\n                local_dc = param_4;\n                if ((int)param_4 < (int)pppppppcVar25) {\n                  local_150 = (code *******)0x1;\n                  goto LAB_000557e4;\n                }\n                if ((code *******)(uint)((int)pppppppcVar26 < (int)param_4) != (code *******)0x0) {\n                  local_150 = (code *******)0x1;\n                  param_4 = (code *******)(uint)((int)pppppppcVar26 < (int)param_4);\n                  goto LAB_000557e4;\n                }\n              }\n              while( true ) {\n                pppppppcVar29 = local_dc;\n                pppppppcVar30 = param_9;\n                pppppppcVar6 = (code *******)(*pcVar4)(&local_b4);\n                pppppppcVar14 = local_60;\n                pppppppcVar42 = local_8c;\n                pppppppcVar33 = pppppppcVar28;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar6 != (code *******)0x0) goto LAB_000557e4;\n                if (((ppppppcVar35 != (code ******)0x1) && (local_98 != (code *******)0x0)) &&\n                   (*local_ac == -1)) goto LAB_00055b1c;\n                local_3c = 0;\n                local_48 = 0;\n                local_4c = (code *******)0x0;\n                local_138 = local_8c;\n                local_d8 = (code *******)0x0;\n                unaff_s7 = (code *******)local_60[9];\n                pppppppcVar30 = local_5c;\n                param_4 = pppppppcVar14;\n                if (((uint)unaff_s7[0xd] & 0x1000000) == 0) break;\n                pppppppcVar29 = (code *******)((int)local_8c + -1);\n                pppppppcVar33 = (code *******)FUN_00049110(&local_b4);\n                if (((uint)pppppppcVar33 & 1) == 0) {\n                  if (pppppppcVar33 == (code *******)0x0) break;\n                  if (((uint)pppppppcVar33 & 6) == 6) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xc];\n                    goto LAB_00054d1c;\n                  }\n                  if (((uint)pppppppcVar33 & 2) != 0) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xb];\n                    goto LAB_00054d1c;\n                  }\n                  pppppppcVar28 = pppppppcVar33;\n                  if (((uint)pppppppcVar33 & 4) == 0) break;\n                  pppppppcVar30 = (code *******)unaff_s7[10];\n                  pppppppcVar29 = pppppppcVar14;\n                  unaff_s7 = (code *******)FUN_0004ae34(&local_d8);\n                  pppppppcVar28 = pppppppcVar33;\n                  if (unaff_s7 != (code *******)0x0) break;\n                  if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                }\n                else {\n                  unaff_s7 = (code *******)pppppppcVar14[10];\nLAB_00054d1c:\n                  pppppppcVar28 = (code *******)PTR_s_nt0_000795b8;\n                  if (unaff_s7 != (code *******)0x0) break;\n                }\n                pppppppcVar28 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                local_dc = (code *******)\n                           (*(code *)PTR___assert_fail_000799f8)\n                                     (PTR_s_nt0_000795b8 + 0x71a0,pppppppcVar29,0x435);\n                if (local_dc == pppppppcVar26) {\n                  if ((int)local_dc < (int)param_3) {\n                    uVar7 = (uint)(byte)*(code *)((int)local_dc + (int)param_2);\n                  }\n                  else {\n                    uVar7 = 0;\n                  }\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    uVar7 = (uint)*(byte *)((int)ppppppcVar32 + uVar7);\n                  }\n                  if (*(code *)((int)local_148 + uVar7) == (code)0x0) {\n                    local_150 = (code *******)0x1;\n                    pppppppcVar30 = param_9;\n                    pppppppcVar33 = pppppppcVar28;\n                    goto LAB_000557e4;\n                  }\n                }\n              }\n              pppppppcVar33 = pppppppcVar28;\n              bVar1 = pppppppcVar36 != (code *******)0x0;\n              if ((local_50 == (code *******)0x0) ||\n                 (local_50[(int)pppppppcVar42] = (code ******)unaff_s7,\n                 pppppppcVar14[0x13] == (code ******)0x0)) {\nLAB_00054d50:\n                if ((int)unaff_s7[0xd] << 4 < 0) {\n                  if ((((uint)unaff_s7[0xd] & 0x1000000) == 0) ||\n                     (pppppppcVar29 = unaff_s7, pppppppcVar30 = pppppppcVar42,\n                     iVar18 = FUN_00049440(&local_b4), iVar18 != 0)) {\n                    unaff_s8 = pppppppcVar42;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                  }\n                  else {\n                    pppppppcVar42 = (code *******)0xffffffff;\n                    pppppppcVar28 = (code *******)0x0;\n                  }\n                }\n                else {\n                  pppppppcVar42 = (code *******)0xffffffff;\n                  pppppppcVar28 = (code *******)0x0;\n                }\n                pcVar8 = (code *)(PTR_DAT_000799a4 + -0x7144);\n                pcVar9 = (code *)(PTR_DAT_000799a4 + -0x1980);\n                pcVar10 = (code *)(PTR_DAT_000799a4 + -0x2f9c);\n                unaff_s8 = pppppppcVar42;\n                local_144 = pppppppcVar36;\n                while( true ) {\n                  uVar44 = CONCAT44(local_98,local_84);\n                  unaff_s5 = (code *******)((int)local_8c + 1);\n                  pppppppcVar29 = local_8c;\n                  if ((int)local_7c <= (int)local_8c) break;\n                  if (((int)local_90 <= (int)unaff_s5) && ((int)local_90 < (int)local_84))\n                  goto LAB_00054e94;\n                  if ((int)local_98 <= (int)unaff_s5) {\n                    while ((int)((ulonglong)uVar44 >> 0x20) < (int)uVar44) {\nLAB_00054e94:\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 2);\n                      local_d8 = (code *******)(*pcVar8)(&local_b4);\n                      if (local_d8 == (code *******)0x0) break;\n                      pppppppcVar14 = param_4;\n                      if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                      pppppppcVar33 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                      pppppppcVar30 = (code *******)0x46c;\n                      pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                      uVar44 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0);\n                      pppppppcVar28 = pppppppcVar38;\n                    }\n                  }\n                  pppppppcVar42 = local_60;\n                  if ((int)unaff_s7[0xd] << 5 < 0) {\n                    pppppppcVar31 = pppppppcVar42;\n                    if (0 < (int)unaff_s7[2]) {\n                      pcVar11 = (code *)(PTR_DAT_000799a4 + -0x6fdc);\n                      pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6ef0);\n                      param_6 = (code *******)0x0;\n                      do {\n                        param_5 = (code *******)unaff_s7[3][(int)param_6];\n                        ppppppcVar39 = *pppppppcVar42;\n                        pppppcVar13 = ppppppcVar39[(int)param_5 * 2 + 1];\n                        if (((uint)pppppcVar13 & 0x800) != 0) {\n                          if (((uint)pppppcVar13 & 0xffc000) != 0) {\n                            pppppppcVar29 = local_8c;\n                            uVar19 = (*pcVar12)(&local_b4,local_8c,local_5c);\n                            uVar7 = (uint)((int)ppppppcVar39[(int)param_5 * 2 + 1] << 8) >> 0x16;\n                            if ((uVar7 & 4) == 0) {\n                              uVar27 = uVar19 & 1;\n                              if ((uVar7 & 8) != 0) goto joined_r0x00054f40;\n                            }\n                            else {\n                              uVar27 = uVar7 & 8;\n                              if ((uVar19 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                              if (uVar27 != 0) goto LAB_000550a4;\n                            }\n                            if ((((uVar7 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                               (((uVar7 & 0x80) != 0 &&\n                                (pppppppcVar33 = local_8c, (uVar19 & 8) == 0)))) goto LAB_000550a4;\n                          }\n                          pppppppcVar30 = &local_b4;\n                          pppppppcVar29 = param_5;\n                          pppppppcVar33 = local_8c;\n                          iVar18 = (*pcVar10)(pppppppcVar42);\n                          if (iVar18 != 0) {\n                            pppppppcVar14 = (code *******)((int)local_8c + iVar18);\n                            if (iVar18 <= local_3c) {\n                              iVar18 = local_3c;\n                            }\n                            pppppppcVar29 = pppppppcVar14;\n                            local_3c = iVar18;\n                            local_d4 = (code *******)(*pcVar11)(&local_b4);\n                            pppppppcVar15 = local_d4;\n                            if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                            pppppppcVar30 =\n                                 (code *******)\n                                 (pppppppcVar42[6] + (int)pppppppcVar42[3][(int)param_5] * 3);\n                            unaff_s4 = (code *******)((int)pppppppcVar14 * 4);\n                            param_5 = local_50 + (int)pppppppcVar14;\n                            if (*param_5 == (code ******)0x0) {\n                              local_d0 = (code *******)*pppppppcVar30;\n                              local_cc = (code *******)pppppppcVar30[1];\n                              local_c8 = (code *******)pppppppcVar30[2];\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *param_5 = ppppppcVar39;\n                            }\n                            else {\n                              pppppppcVar29 = (code *******)(*param_5)[10];\n                              local_d4 = (code *******)FUN_000484bc(&local_d0);\n                              pppppppcVar15 = local_d4;\n                              if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar15 = local_50 + (int)pppppppcVar14;\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *pppppppcVar15 = ppppppcVar39;\n                              (*(code *)PTR_free_00079c24)(local_c8);\n                            }\n                            unaff_s4 = local_50 + (int)pppppppcVar14;\n                            if ((*unaff_s4 == (code ******)0x0) &&\n                               (pppppppcVar15 = local_d4, local_d4 != (code *******)0x0))\n                            goto LAB_00055e44;\n                          }\n                        }\nLAB_000550a4:\n                        param_6 = (code *******)((int)param_6 + 1);\n                      } while ((int)param_6 < (int)unaff_s7[2]);\n                    }\n                    local_d8 = (code *******)0x0;\n                  }\n                  uVar7 = (uint)(byte)*(code *)((int)local_8c + (int)local_b0);\n                  local_8c = (code *******)((int)local_8c + 1);\n                  do {\n                    if (unaff_s7[0xb] != (code ******)0x0) {\n                      pppppppcVar30 = (code *******)unaff_s7[0xb][uVar7];\nLAB_000553a0:\n                      pppppppcVar14 = pppppppcVar30;\n                      if (local_50 != (code *******)0x0) goto LAB_000553ac;\n                      goto LAB_000553cc;\n                    }\n                    pppppppcVar31 = (code *******)unaff_s7[0xc];\n                    if (pppppppcVar31 != (code *******)0x0) {\n                      pppppppcVar29 = (code *******)((int)local_8c + -1);\n                      uVar19 = FUN_00049110(&local_b4);\n                      if ((uVar19 & 1) == 0) {\n                        pppppppcVar30 = (code *******)pppppppcVar31[uVar7];\n                      }\n                      else {\n                        pppppppcVar31 = pppppppcVar31 + uVar7 + 0x100;\n                        pppppppcVar30 = (code *******)*pppppppcVar31;\n                      }\n                      goto LAB_000553a0;\n                    }\n                    pppppppcVar29 = unaff_s7;\n                    pppppppcVar30 = local_5c;\n                    iVar18 = (*pcVar9)(local_60);\n                  } while (iVar18 != 0);\n                  local_d8 = (code *******)0xc;\n                  pppppppcVar15 = local_d8;\nLAB_00055e44:\n                  local_d8 = pppppppcVar15;\n                  param_4 = (code *******)0x0;\n                  if (local_50 == (code *******)0x0) {\n                    pppppppcVar14 = param_4;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    break;\n                  }\n                  pppppppcVar30 = (code *******)0x0;\nLAB_000553ac:\n                  pppppppcVar29 = &local_b4;\n                  pppppppcVar14 = (code *******)FUN_00053684(&local_d8);\nLAB_000553cc:\n                  param_4 = pppppppcVar14;\n                  if (pppppppcVar14 == (code *******)0x0) {\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    if ((local_50 == (code *******)0x0) ||\n                       ((pppppppcVar28 != (code *******)0x0 && (pppppppcVar34 == (code *******)0x0))\n                       )) break;\n                    param_6 = &local_b4;\n                    param_5 = (code *******)&local_d8;\n                    pppppppcVar31 = (code *******)(PTR_DAT_000799a4 + 0x3684);\n                    do {\n                      pppppppcVar15 = local_50 + (int)local_8c;\n                      pppppppcVar42 = local_8c;\n                      do {\n                        pppppppcVar42 = (code *******)((int)pppppppcVar42 + 1);\n                        pppppppcVar29 = local_4c;\n                        param_4 = pppppppcVar14;\n                        if ((int)local_4c < (int)pppppppcVar42) goto LAB_00055da8;\n                        local_8c = (code *******)((int)local_8c + 1);\n                        pppppppcVar15 = pppppppcVar15 + 1;\n                      } while (*pppppppcVar15 == (code ******)0x0);\n                      pppppppcVar30 = (code *******)0x0;\n                      pppppppcVar29 = param_6;\n                      param_4 = (code *******)(*(code *)pppppppcVar31)(param_5);\n                      if (local_d8 != (code *******)0x0) {\n                        if (param_4 == (code *******)0x0) goto LAB_00055da8;\n                        break;\n                      }\n                      pppppppcVar29 = local_4c;\n                    } while (param_4 == (code *******)0x0);\n                  }\n                  pppppppcVar15 = (code *******)((uint)unaff_s7 ^ (uint)param_4);\n                  pppppppcVar42 = unaff_s7;\n                  pppppppcVar14 = local_138;\n                  if ((bVar1) &&\n                     (pppppppcVar42 = pppppppcVar15, pppppppcVar14 = unaff_s5,\n                     pppppppcVar15 != (code *******)0x0)) {\n                    bVar1 = false;\n                    pppppppcVar14 = local_138;\n                  }\n                  local_138 = pppppppcVar14;\n                  unaff_s7 = param_4;\n                  if ((((uint)param_4[0xd] & 0x8000000) != 0) &&\n                     ((((uint)param_4[0xd] & 0x1000000) == 0 ||\n                      (pppppppcVar29 = param_4, pppppppcVar30 = local_8c,\n                      iVar18 = FUN_00049440(&local_b4), iVar18 != 0)))) {\n                    unaff_s7 = pppppppcVar42;\n                    unaff_s8 = local_8c;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                    local_144 = (code *******)0x0;\n                    unaff_s7 = param_4;\n                  }\n                }\nLAB_00055da8:\n                if (local_144 != (code *******)0x0) {\n                  *local_144 = (code ******)((int)local_138 + (int)*local_144);\n                }\n              }\n              else {\n                param_4 = unaff_s7 + 1;\n                pppppppcVar30 = (code *******)0x0;\n                pppppppcVar29 = param_4;\n                local_d8 = (code *******)FUN_00047a44(&local_b4);\n                unaff_s8 = local_d8;\n                if (local_d8 == (code *******)0x0) {\n                  if (((uint)unaff_s7[0xd] & 0x2000000) == 0) {\n                    pppppppcVar29 = param_4;\n                    bVar1 = false;\n                  }\n                  else {\n                    pppppppcVar29 = param_4;\n                    local_d8 = (code *******)FUN_00052d84(&local_b4);\n                    unaff_s8 = local_d8;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055dbc;\n                    bVar1 = false;\n                  }\n                  goto LAB_00054d50;\n                }\n              }\nLAB_00055dbc:\n              if (unaff_s8 == (code *******)0xffffffff) {\nLAB_00055b04:\n                FUN_0004b7e8(&local_b4);\nLAB_00055b1c:\n                local_dc = (code *******)((int)pppppppcVar24 + (int)local_dc);\n                if ((int)pppppppcVar25 <= (int)local_dc) goto code_r0x00055b38;\n                local_150 = (code *******)0x1;\n                goto LAB_000557e4;\n              }\n              if (unaff_s8 == (code *******)&SUB_fffffffe) {\n                local_150 = (code *******)0xc;\n                goto LAB_000557e4;\n              }\n              local_58 = unaff_s8;\n              if (((uint)param_1[7] & 0x8000000) == 0) {\n                if (pppppppcVar3 < (code *******)0x2) {\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055c08;\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                else {\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                if (pppppppcVar3 < (code *******)0x2) {\nLAB_00055c6c:\n                  pppppppcVar28 = pppppppcVar33;\n                  unaff_s4 = local_60;\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055548;\n                }\n                else {\n                  cVar23 = *(code *)(pppppppcVar38 + 0x16);\nLAB_00055c20:\n                  pppppppcVar28 = pppppppcVar33;\n                  if (-1 < (char)cVar23) goto LAB_00055c6c;\n                }\n                pppppppcVar31 = local_54;\n                pppppppcVar42 = local_60;\n                unaff_s4 = pppppppcVar42;\n                if (unaff_s8 < (code *******)0x3fffffff) {\n                  param_4 = (code *******)((int)((int)unaff_s8 + 1) * 4);\n                  unaff_s5 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                  if (unaff_s5 == (code *******)0x0) {\nLAB_00055b9c:\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    local_150 = (code *******)0xc;\n                    pppppppcVar33 = pppppppcVar28;\n                  }\n                  else {\n                    pppppppcVar29 = (code *******)&local_d0;\n                    if (pppppppcVar42[0x13] == (code ******)0x0) {\n                      local_cc = (code *******)0x0;\n                      local_c8 = pppppppcVar31;\n                      local_c0 = 0;\n                      local_bc = 0;\n                      local_b8 = 0;\n                      local_d0 = unaff_s5;\n                      local_c4 = unaff_s8;\n                      param_5 = (code *******)FUN_0005421c(&local_b4);\n                      (*(code *)PTR_free_00079c24)(local_b8);\n                      if (param_5 == (code *******)0x0) {\n                        param_4 = (code *******)*unaff_s5;\n                        if (param_4 == (code *******)0x0) {\nLAB_00055b70:\n                          (*(code *)PTR_free_00079c24)(unaff_s5);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          pppppppcVar33 = pppppppcVar28;\n                          goto LAB_00055b04;\n                        }\nLAB_00055528:\n                        (*(code *)PTR_free_00079c24)(local_50);\n                        pppppppcVar33 = pppppppcVar28;\n                        unaff_s4 = pppppppcVar42;\n                        local_58 = unaff_s8;\n                        local_54 = pppppppcVar31;\n                        local_50 = unaff_s5;\n                        goto LAB_00055548;\n                      }\nLAB_00055acc:\n                      param_4 = (code *******)0x0;\n                      pppppppcVar33 = pppppppcVar28;\n                      unaff_s4 = pppppppcVar42;\n                    }\n                    else {\n                      param_4 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                      if (param_4 == (code *******)0x0) goto LAB_00055b9c;\n                      unaff_s7 = (code *******)&local_d0;\n                      pcVar8 = (code *)(PTR_DAT_000799a4 + 0x421c);\n                      pcVar9 = (code *)(PTR_DAT_000799a4 + -0x6bc0);\n                      pppppppcVar33 = pppppppcVar28;\n                      while( true ) {\n                        pppppppcVar28 = (code *******)((int)unaff_s8 + 1);\n                        param_6 = (code *******)((int)pppppppcVar28 * 4);\n                        pppppppcVar30 = param_6;\n                        (*(code *)PTR_memset_00079b00)(param_4,0);\n                        local_c0 = 0;\n                        local_bc = 0;\n                        local_b8 = 0;\n                        pppppppcVar29 = unaff_s7;\n                        local_d0 = unaff_s5;\n                        local_cc = param_4;\n                        local_c8 = pppppppcVar31;\n                        local_c4 = unaff_s8;\n                        param_5 = (code *******)(*pcVar8)(&local_b4);\n                        (*(code *)PTR_free_00079c24)(local_b8);\n                        unaff_s4 = pppppppcVar28;\n                        if (param_5 != (code *******)0x0) break;\n                        if ((*unaff_s5 != (code ******)0x0) ||\n                           (param_6 = param_6 + -1, *param_4 != (code ******)0x0)) {\n                          pppppppcVar29 = unaff_s5;\n                          pppppppcVar30 = param_4;\n                          param_5 = (code *******)FUN_000520d0(pppppppcVar42);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          if (param_5 != (code *******)0x0) goto LAB_00055acc;\n                          goto LAB_00055528;\n                        }\n                        param_6 = (code *******)((int)local_50 + (int)param_6);\n                        do {\n                          while( true ) {\n                            unaff_s8 = (code *******)((int)unaff_s8 + -1);\n                            if ((int)unaff_s8 < 0) goto LAB_00055b70;\n                            pppppppcVar29 = (code *******)param_6[-1];\n                            if (pppppppcVar29 != (code *******)0x0) break;\n                            param_6 = param_6 + -1;\n                          }\n                          param_6 = param_6 + -1;\n                        } while (((uint)pppppppcVar29[0xd] & 0x8000000) == 0);\n                        pppppppcVar31 = (code *******)(*pcVar9)(&local_b4,pppppppcVar29,unaff_s8);\n                        pppppppcVar33 = pppppppcVar28;\n                      }\n                    }\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    (*(code *)PTR_free_00079c24)(param_4);\n                    local_150 = param_5;\n                    if (param_5 == (code *******)0x1) goto LAB_00055b04;\n                  }\n                }\n                else {\n                  local_150 = (code *******)0xc;\n                  pppppppcVar33 = pppppppcVar28;\n                }\n                goto LAB_000557e4;\n              }\n              if (pppppppcVar38[0x13] != (code ******)0x0) {\n                pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                pppppppcVar30 = unaff_s8;\n                local_54 = (code *******)FUN_00049440(&local_b4);\n                goto LAB_00055c6c;\n              }\nLAB_00055c08:\n              if ((((uint)param_1[7] & 0x8000000) == 0) && ((code *******)0x1 < pppppppcVar3)) {\n                cVar23 = *(code *)(pppppppcVar38 + 0x16);\n                goto LAB_00055c20;\n              }\nLAB_00055548:\n              if (pppppppcVar3 == (code *******)0x0) goto LAB_000557e4;\n              if (pppppppcVar3 < (code *******)0x2) {\n                *param_8 = (code ******)0x0;\n                param_8[1] = (code ******)local_58;\n                goto LAB_000555ac;\n              }\n              pppppppcVar29 = param_8 + 2;\n              do {\n                pppppppcVar29[1] = (code ******)0xffffffff;\n                *pppppppcVar29 = (code ******)0xffffffff;\n                pppppppcVar29 = pppppppcVar29 + 2;\n              } while (pppppppcVar29 != param_8 + (int)pppppppcVar3 * 2);\n              *param_8 = (code ******)0x0;\n              param_8[1] = (code ******)local_58;\n              if (((uint)param_1[7] & 0x8000000) != 0) {\nLAB_000555ac:\n                pppppppcVar33 = param_8;\n                do {\n                  pppppppcVar29 = (code *******)*pppppppcVar33;\n                  if (pppppppcVar29 != (code *******)0xffffffff) {\n                    if (local_68 != '\0') {\n                      pppppppcVar34 = local_94;\n                      if (pppppppcVar29 != local_98) {\n                        pppppppcVar34 = *(code ********)(local_a8 + (int)pppppppcVar29 * 4);\n                      }\n                      *pppppppcVar33 = (code ******)pppppppcVar34;\n                      pppppppcVar29 = local_94;\n                      if (local_98 != (code *******)pppppppcVar33[1]) {\n                        pppppppcVar29 = *(code ********)(local_a8 + (int)pppppppcVar33[1] * 4);\n                      }\n                      pppppppcVar33[1] = (code ******)pppppppcVar29;\n                    }\n                    *pppppppcVar33 = (code ******)((int)local_dc + (int)*pppppppcVar33);\n                    pppppppcVar29 = (code *******)((int)local_dc + (int)pppppppcVar33[1]);\n                    pppppppcVar33[1] = (code ******)pppppppcVar29;\n                  }\n                  pppppppcVar33 = pppppppcVar33 + 2;\n                } while (pppppppcVar33 != param_8 + (int)pppppppcVar3 * 2);\n                if (0 < local_118) {\n                  pppppppcVar33 = param_8 + (int)pppppppcVar3 * 2;\n                  do {\n                    *pppppppcVar33 = (code ******)0xffffffff;\n                    pppppppcVar33[1] = (code ******)0xffffffff;\n                    pppppppcVar33 = pppppppcVar33 + 2;\n                  } while (pppppppcVar33 != param_8 + (int)param_7 * 2);\n                }\n                pppppppcVar30 = local_dc;\n                pppppppcVar33 = param_8;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar38[0x21] != (code ******)0x0) {\n                  pppppppcVar30 = (code *******)((int)pppppppcVar3 + -1);\n                  pppppppcVar34 = (code *******)0x0;\n                  pppppppcVar3 = param_8;\n                  while( true ) {\n                    pppppppcVar29 = (code *******)((int)pppppppcVar34 * 4);\n                    if (pppppppcVar30 == pppppppcVar34) break;\n                    if (*(code ********)((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) !=\n                        pppppppcVar34) {\n                      pppppppcVar3[2] =\n                           param_8[(int)((int)*(code ********)\n                                               ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1)\n                                   * 2];\n                      pppppppcVar3[3] =\n                           param_8[((int)*(code ******)\n                                          ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1) * 2 +\n                                   1];\n                    }\n                    pppppppcVar34 = (code *******)((int)pppppppcVar34 + 1);\n                    pppppppcVar3 = pppppppcVar3 + 2;\n                  }\n                }\n                goto LAB_000557e4;\n              }\n              if ((char)*(code *)(pppppppcVar38 + 0x16) < '\0') {\n                local_168 = (uint)(0 < (int)pppppppcVar38[0x13]);\n              }\n              else {\n                local_168 = 0;\n              }\n              pppppppcVar29 = &local_b4;\n              pppppppcVar30 = pppppppcVar3;\n              pppppppcVar33 = param_8;\n              local_150 = (code *******)FUN_0004f4a0(param_1);\n              if (local_150 == (code *******)0x0) goto LAB_000555ac;\n            }\n          }\n          else if (local_90 < 0x3fffffff) {\n            local_50 = (code *******)(*(code *)PTR_malloc_00079b54)((local_90 + 1) * 4);\n            if (local_50 != (code *******)0x0) goto LAB_00055a40;\n            local_150 = (code *******)0xc;\n            param_6 = pppppppcVar36;\n          }\n          else {\n            local_150 = (code *******)0xc;\n            param_6 = pppppppcVar36;\n          }\n        }\n        else {\n          unaff_s5 = (code *******)((int)ppppppcVar35 * 8);\n          if (pppppppcVar36 < (code *******)0xccccccd) {\n            unaff_s4 = (code *******)(*(code *)PTR_malloc_00079b54)((int)ppppppcVar35 * 0x28);\n            local_40 = unaff_s4;\n            local_30 = (*(code *)PTR_malloc_00079b54)(unaff_s5);\n            if ((unaff_s4 != (code *******)0x0) && (local_30 != 0)) goto LAB_000559f0;\n          }\n          local_150 = (code *******)0xc;\n          param_6 = pppppppcVar36;\n        }\nLAB_000557e4:\n        (*(code *)PTR_free_00079c24)(local_50);\n        param_1 = pppppppcVar30;\n        if (pppppppcVar38[0x13] != (code ******)0x0) {\n          FUN_0004b7e8(&local_b4);\n          (*(code *)PTR_free_00079c24)(local_30);\n          (*(code *)PTR_free_00079c24)(local_40);\n          param_1 = pppppppcVar30;\n        }\n        FUN_0004b2bc(&local_b4);\n        pppppppcStack_1a0 = param_4;\n        pppppppcStack_19c = pppppppcVar31;\n      }\n    }" ({ "{") (expression_statement "pppppppcVar3 = param_5;" (assignment_expression "pppppppcVar3 = param_5" (identifier "pppppppcVar3") (= "=") (identifier "param_5")) (; ";")) (if_statement "if ((((pppppppcVar38[9][2] == (code *****)0x0) && (pppppppcVar38[10][2] == (code *****)0x0))\n          && ((pppppppcVar38[0xb][2] == (code *****)0x0 || (((uint)param_1[7] & 0x1000000) == 0))))\n         && ((pppppppcVar3 = param_4, param_4 != (code *******)0x0 &&\n             (param_4 = param_5, pppppppcVar3 = param_5, param_5 != (code *******)0x0)))) {\n        local_150 = (code *******)0x1;\n        pppppppcStack_1a0 = param_5;\n      }\n      else {\n        param_5 = pppppppcVar3;\n        pppppppcVar3 = (code *******)((int)param_7 - local_118);\n        if (pppppppcVar3 == (code *******)0x0) {\n          pppppppcVar34 = (code *******)(uint)(pppppppcVar38[0x13] != (code ******)0x0);\n        }\n        else {\n          pppppppcVar34 = (code *******)0x1;\n        }\n        ppppppcVar32 = param_1[5];\n        local_6c = (byte)((uint)((int)param_1[3] << 9) >> 0x1f);\n        local_64 = (code *******)pppppppcVar38[0x17];\n        pppppppcVar31 = (code *******)((int)pppppppcVar38[2] + 1);\n        if ((int)pppppppcVar38[2] + 1 < (int)local_64) {\n          pppppppcVar31 = local_64;\n        }\n        pppppppcVar30 = (code *******)(uint)((int)param_3 + 1 < (int)pppppppcVar31);\n        pppppppcVar33 = (code *******)0x1;\n        local_69 = local_6c;\n        if (ppppppcVar32 != (code ******)0x0) {\n          local_69 = 1;\n        }\n        local_6b = (byte)((uint)((int)pppppppcVar38[0x16] << 2) >> 0x1f);\n        local_6a = (byte)((uint)((int)pppppppcVar38[0x16] << 3) >> 0x1f);\n        pppppppcVar29 = (code *******)((int)param_3 + 1);\n        if (pppppppcVar30 == (code *******)0x0) {\n          pppppppcVar29 = pppppppcVar31;\n        }\n        local_b4 = param_2;\n        local_88 = param_3;\n        local_84 = param_3;\n        local_80 = param_3;\n        local_7c = param_3;\n        local_74 = ppppppcVar32;\n        local_150 = (code *******)FUN_00046d2c(&local_b4);\n        pppppppcVar31 = pppppppcVar34;\n        param_6 = param_6;\n        if (local_150 != (code *******)0x0) goto LAB_000557e4;\n        local_70 = pppppppcVar38 + 0x18;\n        local_66 = (byte)((uint)((int)pppppppcVar38[0x16] << 4) >> 0x1f);\n        pppppppcVar2 = (code *******)0x0;\n        local_98 = pppppppcVar2;\n        if ((local_69 == 0) && (local_b0 = param_2, (int)pppppppcVar38[0x17] < 2)) {\n          local_98 = param_3;\n        }\n        local_7c = param_6;\n        local_80 = param_6;\n        local_67 = (byte)((uint)((int)param_1[7] << 7) >> 0x1f);\n        ppppppcVar35 = pppppppcVar38[0x13];\n        pppppppcVar36 = (code *******)((int)ppppppcVar35 * 2);\n        local_5c = param_9;\n        local_58 = (code *******)0xffffffff;\n        local_94 = local_98;\n        if ((int)pppppppcVar36 < 1) {\nLAB_000559f0:\n          local_3c = 1;\n          local_44 = pppppppcVar36;\n          local_34 = pppppppcVar36;\n          if ((pppppppcVar3 < (code *******)0x2) && (((uint)pppppppcVar38[0x16] & 0x40000000) == 0))\n          {\n            local_50 = (code *******)0x0;\nLAB_00055a40:\n            local_78 = 6;\n            if (((uint)param_9 & 1) != 0) {\n              local_78 = 4;\n            }\n            pppppppcVar24 = (code *******)0x1;\n            pppppppcVar25 = param_4;\n            if ((int)param_5 < (int)param_4) {\n              pppppppcVar24 = (code *******)0xffffffff;\n              pppppppcVar25 = param_5;\n            }\n            pppppppcVar26 = param_5;\n            if ((int)param_5 <= (int)param_4) {\n              pppppppcVar26 = param_4;\n            }\n            ppppppcVar35 = pppppppcVar38[0x17];\n            uVar16 = 8;\n            if (local_148 != (code *******)0x0) {\n              if (ppppppcVar35 == (code ******)0x1) {\n                pppppppcVar28 = (code *******)0x4;\n              }\n              else {\n                pppppppcVar28 = pppppppcVar2;\n                if ((-1 < (int)param_1[3] << 9) && (ppppppcVar32 == (code ******)0x0)) {\n                  pppppppcVar28 = (code *******)0x4;\n                }\n              }\n              pppppppcVar29 = (code *******)0x0;\n              if ((int)param_4 <= (int)param_5) {\n                pppppppcVar29 = (code *******)0x2;\n              }\n              uVar16 = (uint)(ppppppcVar32 != (code ******)0x0) | (uint)pppppppcVar28 |\n                       (uint)pppppppcVar29;\n            }\n            local_dc = param_4;\n            if ((int)param_4 < (int)pppppppcVar25) {\n              local_150 = (code *******)0x1;\n              param_6 = pppppppcVar36;\n            }\n            else if ((int)pppppppcVar26 < (int)param_4) {\n              local_150 = (code *******)0x1;\n              param_4 = (code *******)(uint)((int)param_5 < (int)param_4);\n              param_6 = pppppppcVar36;\n            }\n            else {\n              pppppppcVar36 = (code *******)&local_dc;\n              if ((code *******)(uint)((int)param_5 < (int)param_4) != (code *******)0x0) {\n                pppppppcVar36 = (code *******)0x0;\n              }\n              pcVar4 = (code *)(PTR_DAT_000799a4 + -0x2b7c);\n              piVar5 = (int *)(PTR_s_nt0_000795b8 + (uVar16 - 4) * 4 + 0x6e38);\nLAB_00055b44:\n              if (uVar16 - 4 < 5) {\n                    \n                    \n                pppppppcVar29 = (code *******)(*(code *)(&_gp_1 + *piVar5))();\n                return pppppppcVar29;\n              }\n              param_5 = &local_b4;\n              pppppppcVar28 = pppppppcVar33;\n              while( true ) {\n                param_4 = local_dc;\n                pppppppcVar33 = (code *******)((int)local_dc - local_9c);\n                pppppppcVar30 = param_9;\n                pppppppcVar31 = pppppppcVar2;\n                param_6 = local_148;\n                unaff_s4 = param_3;\n                unaff_s5 = pppppppcVar24;\n                unaff_s7 = pppppppcVar26;\n                if (local_94 <= pppppppcVar33) {\n                  pppppppcVar29 = local_dc;\n                  local_150 = (code *******)(*pcVar4)(param_5);\n                  pppppppcVar33 = pppppppcVar28;\n                  if (local_150 != (code *******)0x0) goto LAB_000557e4;\n                  pppppppcVar33 = (code *******)((int)param_4 - local_9c);\n                }\n                if ((int)param_4 < (int)param_3) {\n                  uVar7 = (uint)(byte)*(code *)((int)pppppppcVar33 + (int)local_b0);\n                }\n                else {\n                  uVar7 = 0;\n                }\n                param_4 = (code *******)((int)param_4 + (int)pppppppcVar24);\n                if (*(code *)((int)local_148 + uVar7) != (code)0x0) break;\n                pppppppcVar33 = pppppppcVar28;\n                local_dc = param_4;\n                if ((int)param_4 < (int)pppppppcVar25) {\n                  local_150 = (code *******)0x1;\n                  goto LAB_000557e4;\n                }\n                if ((code *******)(uint)((int)pppppppcVar26 < (int)param_4) != (code *******)0x0) {\n                  local_150 = (code *******)0x1;\n                  param_4 = (code *******)(uint)((int)pppppppcVar26 < (int)param_4);\n                  goto LAB_000557e4;\n                }\n              }\n              while( true ) {\n                pppppppcVar29 = local_dc;\n                pppppppcVar30 = param_9;\n                pppppppcVar6 = (code *******)(*pcVar4)(&local_b4);\n                pppppppcVar14 = local_60;\n                pppppppcVar42 = local_8c;\n                pppppppcVar33 = pppppppcVar28;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar6 != (code *******)0x0) goto LAB_000557e4;\n                if (((ppppppcVar35 != (code ******)0x1) && (local_98 != (code *******)0x0)) &&\n                   (*local_ac == -1)) goto LAB_00055b1c;\n                local_3c = 0;\n                local_48 = 0;\n                local_4c = (code *******)0x0;\n                local_138 = local_8c;\n                local_d8 = (code *******)0x0;\n                unaff_s7 = (code *******)local_60[9];\n                pppppppcVar30 = local_5c;\n                param_4 = pppppppcVar14;\n                if (((uint)unaff_s7[0xd] & 0x1000000) == 0) break;\n                pppppppcVar29 = (code *******)((int)local_8c + -1);\n                pppppppcVar33 = (code *******)FUN_00049110(&local_b4);\n                if (((uint)pppppppcVar33 & 1) == 0) {\n                  if (pppppppcVar33 == (code *******)0x0) break;\n                  if (((uint)pppppppcVar33 & 6) == 6) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xc];\n                    goto LAB_00054d1c;\n                  }\n                  if (((uint)pppppppcVar33 & 2) != 0) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xb];\n                    goto LAB_00054d1c;\n                  }\n                  pppppppcVar28 = pppppppcVar33;\n                  if (((uint)pppppppcVar33 & 4) == 0) break;\n                  pppppppcVar30 = (code *******)unaff_s7[10];\n                  pppppppcVar29 = pppppppcVar14;\n                  unaff_s7 = (code *******)FUN_0004ae34(&local_d8);\n                  pppppppcVar28 = pppppppcVar33;\n                  if (unaff_s7 != (code *******)0x0) break;\n                  if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                }\n                else {\n                  unaff_s7 = (code *******)pppppppcVar14[10];\nLAB_00054d1c:\n                  pppppppcVar28 = (code *******)PTR_s_nt0_000795b8;\n                  if (unaff_s7 != (code *******)0x0) break;\n                }\n                pppppppcVar28 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                local_dc = (code *******)\n                           (*(code *)PTR___assert_fail_000799f8)\n                                     (PTR_s_nt0_000795b8 + 0x71a0,pppppppcVar29,0x435);\n                if (local_dc == pppppppcVar26) {\n                  if ((int)local_dc < (int)param_3) {\n                    uVar7 = (uint)(byte)*(code *)((int)local_dc + (int)param_2);\n                  }\n                  else {\n                    uVar7 = 0;\n                  }\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    uVar7 = (uint)*(byte *)((int)ppppppcVar32 + uVar7);\n                  }\n                  if (*(code *)((int)local_148 + uVar7) == (code)0x0) {\n                    local_150 = (code *******)0x1;\n                    pppppppcVar30 = param_9;\n                    pppppppcVar33 = pppppppcVar28;\n                    goto LAB_000557e4;\n                  }\n                }\n              }\n              pppppppcVar33 = pppppppcVar28;\n              bVar1 = pppppppcVar36 != (code *******)0x0;\n              if ((local_50 == (code *******)0x0) ||\n                 (local_50[(int)pppppppcVar42] = (code ******)unaff_s7,\n                 pppppppcVar14[0x13] == (code ******)0x0)) {\nLAB_00054d50:\n                if ((int)unaff_s7[0xd] << 4 < 0) {\n                  if ((((uint)unaff_s7[0xd] & 0x1000000) == 0) ||\n                     (pppppppcVar29 = unaff_s7, pppppppcVar30 = pppppppcVar42,\n                     iVar18 = FUN_00049440(&local_b4), iVar18 != 0)) {\n                    unaff_s8 = pppppppcVar42;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                  }\n                  else {\n                    pppppppcVar42 = (code *******)0xffffffff;\n                    pppppppcVar28 = (code *******)0x0;\n                  }\n                }\n                else {\n                  pppppppcVar42 = (code *******)0xffffffff;\n                  pppppppcVar28 = (code *******)0x0;\n                }\n                pcVar8 = (code *)(PTR_DAT_000799a4 + -0x7144);\n                pcVar9 = (code *)(PTR_DAT_000799a4 + -0x1980);\n                pcVar10 = (code *)(PTR_DAT_000799a4 + -0x2f9c);\n                unaff_s8 = pppppppcVar42;\n                local_144 = pppppppcVar36;\n                while( true ) {\n                  uVar44 = CONCAT44(local_98,local_84);\n                  unaff_s5 = (code *******)((int)local_8c + 1);\n                  pppppppcVar29 = local_8c;\n                  if ((int)local_7c <= (int)local_8c) break;\n                  if (((int)local_90 <= (int)unaff_s5) && ((int)local_90 < (int)local_84))\n                  goto LAB_00054e94;\n                  if ((int)local_98 <= (int)unaff_s5) {\n                    while ((int)((ulonglong)uVar44 >> 0x20) < (int)uVar44) {\nLAB_00054e94:\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 2);\n                      local_d8 = (code *******)(*pcVar8)(&local_b4);\n                      if (local_d8 == (code *******)0x0) break;\n                      pppppppcVar14 = param_4;\n                      if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                      pppppppcVar33 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                      pppppppcVar30 = (code *******)0x46c;\n                      pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                      uVar44 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0);\n                      pppppppcVar28 = pppppppcVar38;\n                    }\n                  }\n                  pppppppcVar42 = local_60;\n                  if ((int)unaff_s7[0xd] << 5 < 0) {\n                    pppppppcVar31 = pppppppcVar42;\n                    if (0 < (int)unaff_s7[2]) {\n                      pcVar11 = (code *)(PTR_DAT_000799a4 + -0x6fdc);\n                      pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6ef0);\n                      param_6 = (code *******)0x0;\n                      do {\n                        param_5 = (code *******)unaff_s7[3][(int)param_6];\n                        ppppppcVar39 = *pppppppcVar42;\n                        pppppcVar13 = ppppppcVar39[(int)param_5 * 2 + 1];\n                        if (((uint)pppppcVar13 & 0x800) != 0) {\n                          if (((uint)pppppcVar13 & 0xffc000) != 0) {\n                            pppppppcVar29 = local_8c;\n                            uVar19 = (*pcVar12)(&local_b4,local_8c,local_5c);\n                            uVar7 = (uint)((int)ppppppcVar39[(int)param_5 * 2 + 1] << 8) >> 0x16;\n                            if ((uVar7 & 4) == 0) {\n                              uVar27 = uVar19 & 1;\n                              if ((uVar7 & 8) != 0) goto joined_r0x00054f40;\n                            }\n                            else {\n                              uVar27 = uVar7 & 8;\n                              if ((uVar19 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                              if (uVar27 != 0) goto LAB_000550a4;\n                            }\n                            if ((((uVar7 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                               (((uVar7 & 0x80) != 0 &&\n                                (pppppppcVar33 = local_8c, (uVar19 & 8) == 0)))) goto LAB_000550a4;\n                          }\n                          pppppppcVar30 = &local_b4;\n                          pppppppcVar29 = param_5;\n                          pppppppcVar33 = local_8c;\n                          iVar18 = (*pcVar10)(pppppppcVar42);\n                          if (iVar18 != 0) {\n                            pppppppcVar14 = (code *******)((int)local_8c + iVar18);\n                            if (iVar18 <= local_3c) {\n                              iVar18 = local_3c;\n                            }\n                            pppppppcVar29 = pppppppcVar14;\n                            local_3c = iVar18;\n                            local_d4 = (code *******)(*pcVar11)(&local_b4);\n                            pppppppcVar15 = local_d4;\n                            if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                            pppppppcVar30 =\n                                 (code *******)\n                                 (pppppppcVar42[6] + (int)pppppppcVar42[3][(int)param_5] * 3);\n                            unaff_s4 = (code *******)((int)pppppppcVar14 * 4);\n                            param_5 = local_50 + (int)pppppppcVar14;\n                            if (*param_5 == (code ******)0x0) {\n                              local_d0 = (code *******)*pppppppcVar30;\n                              local_cc = (code *******)pppppppcVar30[1];\n                              local_c8 = (code *******)pppppppcVar30[2];\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *param_5 = ppppppcVar39;\n                            }\n                            else {\n                              pppppppcVar29 = (code *******)(*param_5)[10];\n                              local_d4 = (code *******)FUN_000484bc(&local_d0);\n                              pppppppcVar15 = local_d4;\n                              if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar15 = local_50 + (int)pppppppcVar14;\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *pppppppcVar15 = ppppppcVar39;\n                              (*(code *)PTR_free_00079c24)(local_c8);\n                            }\n                            unaff_s4 = local_50 + (int)pppppppcVar14;\n                            if ((*unaff_s4 == (code ******)0x0) &&\n                               (pppppppcVar15 = local_d4, local_d4 != (code *******)0x0))\n                            goto LAB_00055e44;\n                          }\n                        }\nLAB_000550a4:\n                        param_6 = (code *******)((int)param_6 + 1);\n                      } while ((int)param_6 < (int)unaff_s7[2]);\n                    }\n                    local_d8 = (code *******)0x0;\n                  }\n                  uVar7 = (uint)(byte)*(code *)((int)local_8c + (int)local_b0);\n                  local_8c = (code *******)((int)local_8c + 1);\n                  do {\n                    if (unaff_s7[0xb] != (code ******)0x0) {\n                      pppppppcVar30 = (code *******)unaff_s7[0xb][uVar7];\nLAB_000553a0:\n                      pppppppcVar14 = pppppppcVar30;\n                      if (local_50 != (code *******)0x0) goto LAB_000553ac;\n                      goto LAB_000553cc;\n                    }\n                    pppppppcVar31 = (code *******)unaff_s7[0xc];\n                    if (pppppppcVar31 != (code *******)0x0) {\n                      pppppppcVar29 = (code *******)((int)local_8c + -1);\n                      uVar19 = FUN_00049110(&local_b4);\n                      if ((uVar19 & 1) == 0) {\n                        pppppppcVar30 = (code *******)pppppppcVar31[uVar7];\n                      }\n                      else {\n                        pppppppcVar31 = pppppppcVar31 + uVar7 + 0x100;\n                        pppppppcVar30 = (code *******)*pppppppcVar31;\n                      }\n                      goto LAB_000553a0;\n                    }\n                    pppppppcVar29 = unaff_s7;\n                    pppppppcVar30 = local_5c;\n                    iVar18 = (*pcVar9)(local_60);\n                  } while (iVar18 != 0);\n                  local_d8 = (code *******)0xc;\n                  pppppppcVar15 = local_d8;\nLAB_00055e44:\n                  local_d8 = pppppppcVar15;\n                  param_4 = (code *******)0x0;\n                  if (local_50 == (code *******)0x0) {\n                    pppppppcVar14 = param_4;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    break;\n                  }\n                  pppppppcVar30 = (code *******)0x0;\nLAB_000553ac:\n                  pppppppcVar29 = &local_b4;\n                  pppppppcVar14 = (code *******)FUN_00053684(&local_d8);\nLAB_000553cc:\n                  param_4 = pppppppcVar14;\n                  if (pppppppcVar14 == (code *******)0x0) {\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    if ((local_50 == (code *******)0x0) ||\n                       ((pppppppcVar28 != (code *******)0x0 && (pppppppcVar34 == (code *******)0x0))\n                       )) break;\n                    param_6 = &local_b4;\n                    param_5 = (code *******)&local_d8;\n                    pppppppcVar31 = (code *******)(PTR_DAT_000799a4 + 0x3684);\n                    do {\n                      pppppppcVar15 = local_50 + (int)local_8c;\n                      pppppppcVar42 = local_8c;\n                      do {\n                        pppppppcVar42 = (code *******)((int)pppppppcVar42 + 1);\n                        pppppppcVar29 = local_4c;\n                        param_4 = pppppppcVar14;\n                        if ((int)local_4c < (int)pppppppcVar42) goto LAB_00055da8;\n                        local_8c = (code *******)((int)local_8c + 1);\n                        pppppppcVar15 = pppppppcVar15 + 1;\n                      } while (*pppppppcVar15 == (code ******)0x0);\n                      pppppppcVar30 = (code *******)0x0;\n                      pppppppcVar29 = param_6;\n                      param_4 = (code *******)(*(code *)pppppppcVar31)(param_5);\n                      if (local_d8 != (code *******)0x0) {\n                        if (param_4 == (code *******)0x0) goto LAB_00055da8;\n                        break;\n                      }\n                      pppppppcVar29 = local_4c;\n                    } while (param_4 == (code *******)0x0);\n                  }\n                  pppppppcVar15 = (code *******)((uint)unaff_s7 ^ (uint)param_4);\n                  pppppppcVar42 = unaff_s7;\n                  pppppppcVar14 = local_138;\n                  if ((bVar1) &&\n                     (pppppppcVar42 = pppppppcVar15, pppppppcVar14 = unaff_s5,\n                     pppppppcVar15 != (code *******)0x0)) {\n                    bVar1 = false;\n                    pppppppcVar14 = local_138;\n                  }\n                  local_138 = pppppppcVar14;\n                  unaff_s7 = param_4;\n                  if ((((uint)param_4[0xd] & 0x8000000) != 0) &&\n                     ((((uint)param_4[0xd] & 0x1000000) == 0 ||\n                      (pppppppcVar29 = param_4, pppppppcVar30 = local_8c,\n                      iVar18 = FUN_00049440(&local_b4), iVar18 != 0)))) {\n                    unaff_s7 = pppppppcVar42;\n                    unaff_s8 = local_8c;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                    local_144 = (code *******)0x0;\n                    unaff_s7 = param_4;\n                  }\n                }\nLAB_00055da8:\n                if (local_144 != (code *******)0x0) {\n                  *local_144 = (code ******)((int)local_138 + (int)*local_144);\n                }\n              }\n              else {\n                param_4 = unaff_s7 + 1;\n                pppppppcVar30 = (code *******)0x0;\n                pppppppcVar29 = param_4;\n                local_d8 = (code *******)FUN_00047a44(&local_b4);\n                unaff_s8 = local_d8;\n                if (local_d8 == (code *******)0x0) {\n                  if (((uint)unaff_s7[0xd] & 0x2000000) == 0) {\n                    pppppppcVar29 = param_4;\n                    bVar1 = false;\n                  }\n                  else {\n                    pppppppcVar29 = param_4;\n                    local_d8 = (code *******)FUN_00052d84(&local_b4);\n                    unaff_s8 = local_d8;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055dbc;\n                    bVar1 = false;\n                  }\n                  goto LAB_00054d50;\n                }\n              }\nLAB_00055dbc:\n              if (unaff_s8 == (code *******)0xffffffff) {\nLAB_00055b04:\n                FUN_0004b7e8(&local_b4);\nLAB_00055b1c:\n                local_dc = (code *******)((int)pppppppcVar24 + (int)local_dc);\n                if ((int)pppppppcVar25 <= (int)local_dc) goto code_r0x00055b38;\n                local_150 = (code *******)0x1;\n                goto LAB_000557e4;\n              }\n              if (unaff_s8 == (code *******)&SUB_fffffffe) {\n                local_150 = (code *******)0xc;\n                goto LAB_000557e4;\n              }\n              local_58 = unaff_s8;\n              if (((uint)param_1[7] & 0x8000000) == 0) {\n                if (pppppppcVar3 < (code *******)0x2) {\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055c08;\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                else {\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                if (pppppppcVar3 < (code *******)0x2) {\nLAB_00055c6c:\n                  pppppppcVar28 = pppppppcVar33;\n                  unaff_s4 = local_60;\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055548;\n                }\n                else {\n                  cVar23 = *(code *)(pppppppcVar38 + 0x16);\nLAB_00055c20:\n                  pppppppcVar28 = pppppppcVar33;\n                  if (-1 < (char)cVar23) goto LAB_00055c6c;\n                }\n                pppppppcVar31 = local_54;\n                pppppppcVar42 = local_60;\n                unaff_s4 = pppppppcVar42;\n                if (unaff_s8 < (code *******)0x3fffffff) {\n                  param_4 = (code *******)((int)((int)unaff_s8 + 1) * 4);\n                  unaff_s5 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                  if (unaff_s5 == (code *******)0x0) {\nLAB_00055b9c:\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    local_150 = (code *******)0xc;\n                    pppppppcVar33 = pppppppcVar28;\n                  }\n                  else {\n                    pppppppcVar29 = (code *******)&local_d0;\n                    if (pppppppcVar42[0x13] == (code ******)0x0) {\n                      local_cc = (code *******)0x0;\n                      local_c8 = pppppppcVar31;\n                      local_c0 = 0;\n                      local_bc = 0;\n                      local_b8 = 0;\n                      local_d0 = unaff_s5;\n                      local_c4 = unaff_s8;\n                      param_5 = (code *******)FUN_0005421c(&local_b4);\n                      (*(code *)PTR_free_00079c24)(local_b8);\n                      if (param_5 == (code *******)0x0) {\n                        param_4 = (code *******)*unaff_s5;\n                        if (param_4 == (code *******)0x0) {\nLAB_00055b70:\n                          (*(code *)PTR_free_00079c24)(unaff_s5);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          pppppppcVar33 = pppppppcVar28;\n                          goto LAB_00055b04;\n                        }\nLAB_00055528:\n                        (*(code *)PTR_free_00079c24)(local_50);\n                        pppppppcVar33 = pppppppcVar28;\n                        unaff_s4 = pppppppcVar42;\n                        local_58 = unaff_s8;\n                        local_54 = pppppppcVar31;\n                        local_50 = unaff_s5;\n                        goto LAB_00055548;\n                      }\nLAB_00055acc:\n                      param_4 = (code *******)0x0;\n                      pppppppcVar33 = pppppppcVar28;\n                      unaff_s4 = pppppppcVar42;\n                    }\n                    else {\n                      param_4 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                      if (param_4 == (code *******)0x0) goto LAB_00055b9c;\n                      unaff_s7 = (code *******)&local_d0;\n                      pcVar8 = (code *)(PTR_DAT_000799a4 + 0x421c);\n                      pcVar9 = (code *)(PTR_DAT_000799a4 + -0x6bc0);\n                      pppppppcVar33 = pppppppcVar28;\n                      while( true ) {\n                        pppppppcVar28 = (code *******)((int)unaff_s8 + 1);\n                        param_6 = (code *******)((int)pppppppcVar28 * 4);\n                        pppppppcVar30 = param_6;\n                        (*(code *)PTR_memset_00079b00)(param_4,0);\n                        local_c0 = 0;\n                        local_bc = 0;\n                        local_b8 = 0;\n                        pppppppcVar29 = unaff_s7;\n                        local_d0 = unaff_s5;\n                        local_cc = param_4;\n                        local_c8 = pppppppcVar31;\n                        local_c4 = unaff_s8;\n                        param_5 = (code *******)(*pcVar8)(&local_b4);\n                        (*(code *)PTR_free_00079c24)(local_b8);\n                        unaff_s4 = pppppppcVar28;\n                        if (param_5 != (code *******)0x0) break;\n                        if ((*unaff_s5 != (code ******)0x0) ||\n                           (param_6 = param_6 + -1, *param_4 != (code ******)0x0)) {\n                          pppppppcVar29 = unaff_s5;\n                          pppppppcVar30 = param_4;\n                          param_5 = (code *******)FUN_000520d0(pppppppcVar42);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          if (param_5 != (code *******)0x0) goto LAB_00055acc;\n                          goto LAB_00055528;\n                        }\n                        param_6 = (code *******)((int)local_50 + (int)param_6);\n                        do {\n                          while( true ) {\n                            unaff_s8 = (code *******)((int)unaff_s8 + -1);\n                            if ((int)unaff_s8 < 0) goto LAB_00055b70;\n                            pppppppcVar29 = (code *******)param_6[-1];\n                            if (pppppppcVar29 != (code *******)0x0) break;\n                            param_6 = param_6 + -1;\n                          }\n                          param_6 = param_6 + -1;\n                        } while (((uint)pppppppcVar29[0xd] & 0x8000000) == 0);\n                        pppppppcVar31 = (code *******)(*pcVar9)(&local_b4,pppppppcVar29,unaff_s8);\n                        pppppppcVar33 = pppppppcVar28;\n                      }\n                    }\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    (*(code *)PTR_free_00079c24)(param_4);\n                    local_150 = param_5;\n                    if (param_5 == (code *******)0x1) goto LAB_00055b04;\n                  }\n                }\n                else {\n                  local_150 = (code *******)0xc;\n                  pppppppcVar33 = pppppppcVar28;\n                }\n                goto LAB_000557e4;\n              }\n              if (pppppppcVar38[0x13] != (code ******)0x0) {\n                pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                pppppppcVar30 = unaff_s8;\n                local_54 = (code *******)FUN_00049440(&local_b4);\n                goto LAB_00055c6c;\n              }\nLAB_00055c08:\n              if ((((uint)param_1[7] & 0x8000000) == 0) && ((code *******)0x1 < pppppppcVar3)) {\n                cVar23 = *(code *)(pppppppcVar38 + 0x16);\n                goto LAB_00055c20;\n              }\nLAB_00055548:\n              if (pppppppcVar3 == (code *******)0x0) goto LAB_000557e4;\n              if (pppppppcVar3 < (code *******)0x2) {\n                *param_8 = (code ******)0x0;\n                param_8[1] = (code ******)local_58;\n                goto LAB_000555ac;\n              }\n              pppppppcVar29 = param_8 + 2;\n              do {\n                pppppppcVar29[1] = (code ******)0xffffffff;\n                *pppppppcVar29 = (code ******)0xffffffff;\n                pppppppcVar29 = pppppppcVar29 + 2;\n              } while (pppppppcVar29 != param_8 + (int)pppppppcVar3 * 2);\n              *param_8 = (code ******)0x0;\n              param_8[1] = (code ******)local_58;\n              if (((uint)param_1[7] & 0x8000000) != 0) {\nLAB_000555ac:\n                pppppppcVar33 = param_8;\n                do {\n                  pppppppcVar29 = (code *******)*pppppppcVar33;\n                  if (pppppppcVar29 != (code *******)0xffffffff) {\n                    if (local_68 != '\0') {\n                      pppppppcVar34 = local_94;\n                      if (pppppppcVar29 != local_98) {\n                        pppppppcVar34 = *(code ********)(local_a8 + (int)pppppppcVar29 * 4);\n                      }\n                      *pppppppcVar33 = (code ******)pppppppcVar34;\n                      pppppppcVar29 = local_94;\n                      if (local_98 != (code *******)pppppppcVar33[1]) {\n                        pppppppcVar29 = *(code ********)(local_a8 + (int)pppppppcVar33[1] * 4);\n                      }\n                      pppppppcVar33[1] = (code ******)pppppppcVar29;\n                    }\n                    *pppppppcVar33 = (code ******)((int)local_dc + (int)*pppppppcVar33);\n                    pppppppcVar29 = (code *******)((int)local_dc + (int)pppppppcVar33[1]);\n                    pppppppcVar33[1] = (code ******)pppppppcVar29;\n                  }\n                  pppppppcVar33 = pppppppcVar33 + 2;\n                } while (pppppppcVar33 != param_8 + (int)pppppppcVar3 * 2);\n                if (0 < local_118) {\n                  pppppppcVar33 = param_8 + (int)pppppppcVar3 * 2;\n                  do {\n                    *pppppppcVar33 = (code ******)0xffffffff;\n                    pppppppcVar33[1] = (code ******)0xffffffff;\n                    pppppppcVar33 = pppppppcVar33 + 2;\n                  } while (pppppppcVar33 != param_8 + (int)param_7 * 2);\n                }\n                pppppppcVar30 = local_dc;\n                pppppppcVar33 = param_8;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar38[0x21] != (code ******)0x0) {\n                  pppppppcVar30 = (code *******)((int)pppppppcVar3 + -1);\n                  pppppppcVar34 = (code *******)0x0;\n                  pppppppcVar3 = param_8;\n                  while( true ) {\n                    pppppppcVar29 = (code *******)((int)pppppppcVar34 * 4);\n                    if (pppppppcVar30 == pppppppcVar34) break;\n                    if (*(code ********)((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) !=\n                        pppppppcVar34) {\n                      pppppppcVar3[2] =\n                           param_8[(int)((int)*(code ********)\n                                               ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1)\n                                   * 2];\n                      pppppppcVar3[3] =\n                           param_8[((int)*(code ******)\n                                          ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1) * 2 +\n                                   1];\n                    }\n                    pppppppcVar34 = (code *******)((int)pppppppcVar34 + 1);\n                    pppppppcVar3 = pppppppcVar3 + 2;\n                  }\n                }\n                goto LAB_000557e4;\n              }\n              if ((char)*(code *)(pppppppcVar38 + 0x16) < '\0') {\n                local_168 = (uint)(0 < (int)pppppppcVar38[0x13]);\n              }\n              else {\n                local_168 = 0;\n              }\n              pppppppcVar29 = &local_b4;\n              pppppppcVar30 = pppppppcVar3;\n              pppppppcVar33 = param_8;\n              local_150 = (code *******)FUN_0004f4a0(param_1);\n              if (local_150 == (code *******)0x0) goto LAB_000555ac;\n            }\n          }\n          else if (local_90 < 0x3fffffff) {\n            local_50 = (code *******)(*(code *)PTR_malloc_00079b54)((local_90 + 1) * 4);\n            if (local_50 != (code *******)0x0) goto LAB_00055a40;\n            local_150 = (code *******)0xc;\n            param_6 = pppppppcVar36;\n          }\n          else {\n            local_150 = (code *******)0xc;\n            param_6 = pppppppcVar36;\n          }\n        }\n        else {\n          unaff_s5 = (code *******)((int)ppppppcVar35 * 8);\n          if (pppppppcVar36 < (code *******)0xccccccd) {\n            unaff_s4 = (code *******)(*(code *)PTR_malloc_00079b54)((int)ppppppcVar35 * 0x28);\n            local_40 = unaff_s4;\n            local_30 = (*(code *)PTR_malloc_00079b54)(unaff_s5);\n            if ((unaff_s4 != (code *******)0x0) && (local_30 != 0)) goto LAB_000559f0;\n          }\n          local_150 = (code *******)0xc;\n          param_6 = pppppppcVar36;\n        }\nLAB_000557e4:\n        (*(code *)PTR_free_00079c24)(local_50);\n        param_1 = pppppppcVar30;\n        if (pppppppcVar38[0x13] != (code ******)0x0) {\n          FUN_0004b7e8(&local_b4);\n          (*(code *)PTR_free_00079c24)(local_30);\n          (*(code *)PTR_free_00079c24)(local_40);\n          param_1 = pppppppcVar30;\n        }\n        FUN_0004b2bc(&local_b4);\n        pppppppcStack_1a0 = param_4;\n        pppppppcStack_19c = pppppppcVar31;\n      }" (if "if") (parenthesized_expression "((((pppppppcVar38[9][2] == (code *****)0x0) && (pppppppcVar38[10][2] == (code *****)0x0))\n          && ((pppppppcVar38[0xb][2] == (code *****)0x0 || (((uint)param_1[7] & 0x1000000) == 0))))\n         && ((pppppppcVar3 = param_4, param_4 != (code *******)0x0 &&\n             (param_4 = param_5, pppppppcVar3 = param_5, param_5 != (code *******)0x0))))" (( "(") (binary_expression "(((pppppppcVar38[9][2] == (code *****)0x0) && (pppppppcVar38[10][2] == (code *****)0x0))\n          && ((pppppppcVar38[0xb][2] == (code *****)0x0 || (((uint)param_1[7] & 0x1000000) == 0))))\n         && ((pppppppcVar3 = param_4, param_4 != (code *******)0x0 &&\n             (param_4 = param_5, pppppppcVar3 = param_5, param_5 != (code *******)0x0)))" (parenthesized_expression "(((pppppppcVar38[9][2] == (code *****)0x0) && (pppppppcVar38[10][2] == (code *****)0x0))\n          && ((pppppppcVar38[0xb][2] == (code *****)0x0 || (((uint)param_1[7] & 0x1000000) == 0))))" (( "(") (binary_expression "((pppppppcVar38[9][2] == (code *****)0x0) && (pppppppcVar38[10][2] == (code *****)0x0))\n          && ((pppppppcVar38[0xb][2] == (code *****)0x0 || (((uint)param_1[7] & 0x1000000) == 0)))" (parenthesized_expression "((pppppppcVar38[9][2] == (code *****)0x0) && (pppppppcVar38[10][2] == (code *****)0x0))" (( "(") (binary_expression "(pppppppcVar38[9][2] == (code *****)0x0) && (pppppppcVar38[10][2] == (code *****)0x0)" (parenthesized_expression "(pppppppcVar38[9][2] == (code *****)0x0)" (( "(") (binary_expression "pppppppcVar38[9][2] == (code *****)0x0" (subscript_expression "pppppppcVar38[9][2]" (subscript_expression "pppppppcVar38[9]" (identifier "pppppppcVar38") ([ "[") (number_literal "9") (] "]")) ([ "[") (number_literal "2") (] "]")) (== "==") (cast_expression "(code *****)0x0" (( "(") (type_descriptor "code *****" (type_identifier "code") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(pppppppcVar38[10][2] == (code *****)0x0)" (( "(") (binary_expression "pppppppcVar38[10][2] == (code *****)0x0" (subscript_expression "pppppppcVar38[10][2]" (subscript_expression "pppppppcVar38[10]" (identifier "pppppppcVar38") ([ "[") (number_literal "10") (] "]")) ([ "[") (number_literal "2") (] "]")) (== "==") (cast_expression "(code *****)0x0" (( "(") (type_descriptor "code *****" (type_identifier "code") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (number_literal "0x0"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((pppppppcVar38[0xb][2] == (code *****)0x0 || (((uint)param_1[7] & 0x1000000) == 0)))" (( "(") (parenthesized_expression "(pppppppcVar38[0xb][2] == (code *****)0x0 || (((uint)param_1[7] & 0x1000000) == 0))" (( "(") (binary_expression "pppppppcVar38[0xb][2] == (code *****)0x0 || (((uint)param_1[7] & 0x1000000) == 0)" (binary_expression "pppppppcVar38[0xb][2] == (code *****)0x0" (subscript_expression "pppppppcVar38[0xb][2]" (subscript_expression "pppppppcVar38[0xb]" (identifier "pppppppcVar38") ([ "[") (number_literal "0xb") (] "]")) ([ "[") (number_literal "2") (] "]")) (== "==") (cast_expression "(code *****)0x0" (( "(") (type_descriptor "code *****" (type_identifier "code") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (number_literal "0x0"))) (|| "||") (parenthesized_expression "(((uint)param_1[7] & 0x1000000) == 0)" (( "(") (binary_expression "((uint)param_1[7] & 0x1000000) == 0" (parenthesized_expression "((uint)param_1[7] & 0x1000000)" (( "(") (binary_expression "(uint)param_1[7] & 0x1000000" (cast_expression "(uint)param_1[7]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "param_1[7]" (identifier "param_1") ([ "[") (number_literal "7") (] "]"))) (& "&") (number_literal "0x1000000")) () ")")) (== "==") (number_literal "0")) () ")"))) () ")")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((pppppppcVar3 = param_4, param_4 != (code *******)0x0 &&\n             (param_4 = param_5, pppppppcVar3 = param_5, param_5 != (code *******)0x0)))" (( "(") (parenthesized_expression "(pppppppcVar3 = param_4, param_4 != (code *******)0x0 &&\n             (param_4 = param_5, pppppppcVar3 = param_5, param_5 != (code *******)0x0))" (( "(") (comma_expression "pppppppcVar3 = param_4, param_4 != (code *******)0x0 &&\n             (param_4 = param_5, pppppppcVar3 = param_5, param_5 != (code *******)0x0)" (assignment_expression "pppppppcVar3 = param_4" (identifier "pppppppcVar3") (= "=") (identifier "param_4")) (, ",") (binary_expression "param_4 != (code *******)0x0 &&\n             (param_4 = param_5, pppppppcVar3 = param_5, param_5 != (code *******)0x0)" (binary_expression "param_4 != (code *******)0x0" (identifier "param_4") (!= "!=") (cast_expression "(code *******)0x0" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) (&& "&&") (parenthesized_expression "(param_4 = param_5, pppppppcVar3 = param_5, param_5 != (code *******)0x0)" (( "(") (comma_expression "param_4 = param_5, pppppppcVar3 = param_5, param_5 != (code *******)0x0" (assignment_expression "param_4 = param_5" (identifier "param_4") (= "=") (identifier "param_5")) (, ",") (comma_expression "pppppppcVar3 = param_5, param_5 != (code *******)0x0" (assignment_expression "pppppppcVar3 = param_5" (identifier "pppppppcVar3") (= "=") (identifier "param_5")) (, ",") (binary_expression "param_5 != (code *******)0x0" (identifier "param_5") (!= "!=") (cast_expression "(code *******)0x0" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))))) () ")")))) () ")")) () ")"))) () ")")) (compound_statement "{\n        local_150 = (code *******)0x1;\n        pppppppcStack_1a0 = param_5;\n      }" ({ "{") (expression_statement "local_150 = (code *******)0x1;" (assignment_expression "local_150 = (code *******)0x1" (identifier "local_150") (= "=") (cast_expression "(code *******)0x1" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x1"))) (; ";")) (expression_statement "pppppppcStack_1a0 = param_5;" (assignment_expression "pppppppcStack_1a0 = param_5" (identifier "pppppppcStack_1a0") (= "=") (identifier "param_5")) (; ";")) (} "}")) (else_clause "else {\n        param_5 = pppppppcVar3;\n        pppppppcVar3 = (code *******)((int)param_7 - local_118);\n        if (pppppppcVar3 == (code *******)0x0) {\n          pppppppcVar34 = (code *******)(uint)(pppppppcVar38[0x13] != (code ******)0x0);\n        }\n        else {\n          pppppppcVar34 = (code *******)0x1;\n        }\n        ppppppcVar32 = param_1[5];\n        local_6c = (byte)((uint)((int)param_1[3] << 9) >> 0x1f);\n        local_64 = (code *******)pppppppcVar38[0x17];\n        pppppppcVar31 = (code *******)((int)pppppppcVar38[2] + 1);\n        if ((int)pppppppcVar38[2] + 1 < (int)local_64) {\n          pppppppcVar31 = local_64;\n        }\n        pppppppcVar30 = (code *******)(uint)((int)param_3 + 1 < (int)pppppppcVar31);\n        pppppppcVar33 = (code *******)0x1;\n        local_69 = local_6c;\n        if (ppppppcVar32 != (code ******)0x0) {\n          local_69 = 1;\n        }\n        local_6b = (byte)((uint)((int)pppppppcVar38[0x16] << 2) >> 0x1f);\n        local_6a = (byte)((uint)((int)pppppppcVar38[0x16] << 3) >> 0x1f);\n        pppppppcVar29 = (code *******)((int)param_3 + 1);\n        if (pppppppcVar30 == (code *******)0x0) {\n          pppppppcVar29 = pppppppcVar31;\n        }\n        local_b4 = param_2;\n        local_88 = param_3;\n        local_84 = param_3;\n        local_80 = param_3;\n        local_7c = param_3;\n        local_74 = ppppppcVar32;\n        local_150 = (code *******)FUN_00046d2c(&local_b4);\n        pppppppcVar31 = pppppppcVar34;\n        param_6 = param_6;\n        if (local_150 != (code *******)0x0) goto LAB_000557e4;\n        local_70 = pppppppcVar38 + 0x18;\n        local_66 = (byte)((uint)((int)pppppppcVar38[0x16] << 4) >> 0x1f);\n        pppppppcVar2 = (code *******)0x0;\n        local_98 = pppppppcVar2;\n        if ((local_69 == 0) && (local_b0 = param_2, (int)pppppppcVar38[0x17] < 2)) {\n          local_98 = param_3;\n        }\n        local_7c = param_6;\n        local_80 = param_6;\n        local_67 = (byte)((uint)((int)param_1[7] << 7) >> 0x1f);\n        ppppppcVar35 = pppppppcVar38[0x13];\n        pppppppcVar36 = (code *******)((int)ppppppcVar35 * 2);\n        local_5c = param_9;\n        local_58 = (code *******)0xffffffff;\n        local_94 = local_98;\n        if ((int)pppppppcVar36 < 1) {\nLAB_000559f0:\n          local_3c = 1;\n          local_44 = pppppppcVar36;\n          local_34 = pppppppcVar36;\n          if ((pppppppcVar3 < (code *******)0x2) && (((uint)pppppppcVar38[0x16] & 0x40000000) == 0))\n          {\n            local_50 = (code *******)0x0;\nLAB_00055a40:\n            local_78 = 6;\n            if (((uint)param_9 & 1) != 0) {\n              local_78 = 4;\n            }\n            pppppppcVar24 = (code *******)0x1;\n            pppppppcVar25 = param_4;\n            if ((int)param_5 < (int)param_4) {\n              pppppppcVar24 = (code *******)0xffffffff;\n              pppppppcVar25 = param_5;\n            }\n            pppppppcVar26 = param_5;\n            if ((int)param_5 <= (int)param_4) {\n              pppppppcVar26 = param_4;\n            }\n            ppppppcVar35 = pppppppcVar38[0x17];\n            uVar16 = 8;\n            if (local_148 != (code *******)0x0) {\n              if (ppppppcVar35 == (code ******)0x1) {\n                pppppppcVar28 = (code *******)0x4;\n              }\n              else {\n                pppppppcVar28 = pppppppcVar2;\n                if ((-1 < (int)param_1[3] << 9) && (ppppppcVar32 == (code ******)0x0)) {\n                  pppppppcVar28 = (code *******)0x4;\n                }\n              }\n              pppppppcVar29 = (code *******)0x0;\n              if ((int)param_4 <= (int)param_5) {\n                pppppppcVar29 = (code *******)0x2;\n              }\n              uVar16 = (uint)(ppppppcVar32 != (code ******)0x0) | (uint)pppppppcVar28 |\n                       (uint)pppppppcVar29;\n            }\n            local_dc = param_4;\n            if ((int)param_4 < (int)pppppppcVar25) {\n              local_150 = (code *******)0x1;\n              param_6 = pppppppcVar36;\n            }\n            else if ((int)pppppppcVar26 < (int)param_4) {\n              local_150 = (code *******)0x1;\n              param_4 = (code *******)(uint)((int)param_5 < (int)param_4);\n              param_6 = pppppppcVar36;\n            }\n            else {\n              pppppppcVar36 = (code *******)&local_dc;\n              if ((code *******)(uint)((int)param_5 < (int)param_4) != (code *******)0x0) {\n                pppppppcVar36 = (code *******)0x0;\n              }\n              pcVar4 = (code *)(PTR_DAT_000799a4 + -0x2b7c);\n              piVar5 = (int *)(PTR_s_nt0_000795b8 + (uVar16 - 4) * 4 + 0x6e38);\nLAB_00055b44:\n              if (uVar16 - 4 < 5) {\n                    \n                    \n                pppppppcVar29 = (code *******)(*(code *)(&_gp_1 + *piVar5))();\n                return pppppppcVar29;\n              }\n              param_5 = &local_b4;\n              pppppppcVar28 = pppppppcVar33;\n              while( true ) {\n                param_4 = local_dc;\n                pppppppcVar33 = (code *******)((int)local_dc - local_9c);\n                pppppppcVar30 = param_9;\n                pppppppcVar31 = pppppppcVar2;\n                param_6 = local_148;\n                unaff_s4 = param_3;\n                unaff_s5 = pppppppcVar24;\n                unaff_s7 = pppppppcVar26;\n                if (local_94 <= pppppppcVar33) {\n                  pppppppcVar29 = local_dc;\n                  local_150 = (code *******)(*pcVar4)(param_5);\n                  pppppppcVar33 = pppppppcVar28;\n                  if (local_150 != (code *******)0x0) goto LAB_000557e4;\n                  pppppppcVar33 = (code *******)((int)param_4 - local_9c);\n                }\n                if ((int)param_4 < (int)param_3) {\n                  uVar7 = (uint)(byte)*(code *)((int)pppppppcVar33 + (int)local_b0);\n                }\n                else {\n                  uVar7 = 0;\n                }\n                param_4 = (code *******)((int)param_4 + (int)pppppppcVar24);\n                if (*(code *)((int)local_148 + uVar7) != (code)0x0) break;\n                pppppppcVar33 = pppppppcVar28;\n                local_dc = param_4;\n                if ((int)param_4 < (int)pppppppcVar25) {\n                  local_150 = (code *******)0x1;\n                  goto LAB_000557e4;\n                }\n                if ((code *******)(uint)((int)pppppppcVar26 < (int)param_4) != (code *******)0x0) {\n                  local_150 = (code *******)0x1;\n                  param_4 = (code *******)(uint)((int)pppppppcVar26 < (int)param_4);\n                  goto LAB_000557e4;\n                }\n              }\n              while( true ) {\n                pppppppcVar29 = local_dc;\n                pppppppcVar30 = param_9;\n                pppppppcVar6 = (code *******)(*pcVar4)(&local_b4);\n                pppppppcVar14 = local_60;\n                pppppppcVar42 = local_8c;\n                pppppppcVar33 = pppppppcVar28;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar6 != (code *******)0x0) goto LAB_000557e4;\n                if (((ppppppcVar35 != (code ******)0x1) && (local_98 != (code *******)0x0)) &&\n                   (*local_ac == -1)) goto LAB_00055b1c;\n                local_3c = 0;\n                local_48 = 0;\n                local_4c = (code *******)0x0;\n                local_138 = local_8c;\n                local_d8 = (code *******)0x0;\n                unaff_s7 = (code *******)local_60[9];\n                pppppppcVar30 = local_5c;\n                param_4 = pppppppcVar14;\n                if (((uint)unaff_s7[0xd] & 0x1000000) == 0) break;\n                pppppppcVar29 = (code *******)((int)local_8c + -1);\n                pppppppcVar33 = (code *******)FUN_00049110(&local_b4);\n                if (((uint)pppppppcVar33 & 1) == 0) {\n                  if (pppppppcVar33 == (code *******)0x0) break;\n                  if (((uint)pppppppcVar33 & 6) == 6) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xc];\n                    goto LAB_00054d1c;\n                  }\n                  if (((uint)pppppppcVar33 & 2) != 0) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xb];\n                    goto LAB_00054d1c;\n                  }\n                  pppppppcVar28 = pppppppcVar33;\n                  if (((uint)pppppppcVar33 & 4) == 0) break;\n                  pppppppcVar30 = (code *******)unaff_s7[10];\n                  pppppppcVar29 = pppppppcVar14;\n                  unaff_s7 = (code *******)FUN_0004ae34(&local_d8);\n                  pppppppcVar28 = pppppppcVar33;\n                  if (unaff_s7 != (code *******)0x0) break;\n                  if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                }\n                else {\n                  unaff_s7 = (code *******)pppppppcVar14[10];\nLAB_00054d1c:\n                  pppppppcVar28 = (code *******)PTR_s_nt0_000795b8;\n                  if (unaff_s7 != (code *******)0x0) break;\n                }\n                pppppppcVar28 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                local_dc = (code *******)\n                           (*(code *)PTR___assert_fail_000799f8)\n                                     (PTR_s_nt0_000795b8 + 0x71a0,pppppppcVar29,0x435);\n                if (local_dc == pppppppcVar26) {\n                  if ((int)local_dc < (int)param_3) {\n                    uVar7 = (uint)(byte)*(code *)((int)local_dc + (int)param_2);\n                  }\n                  else {\n                    uVar7 = 0;\n                  }\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    uVar7 = (uint)*(byte *)((int)ppppppcVar32 + uVar7);\n                  }\n                  if (*(code *)((int)local_148 + uVar7) == (code)0x0) {\n                    local_150 = (code *******)0x1;\n                    pppppppcVar30 = param_9;\n                    pppppppcVar33 = pppppppcVar28;\n                    goto LAB_000557e4;\n                  }\n                }\n              }\n              pppppppcVar33 = pppppppcVar28;\n              bVar1 = pppppppcVar36 != (code *******)0x0;\n              if ((local_50 == (code *******)0x0) ||\n                 (local_50[(int)pppppppcVar42] = (code ******)unaff_s7,\n                 pppppppcVar14[0x13] == (code ******)0x0)) {\nLAB_00054d50:\n                if ((int)unaff_s7[0xd] << 4 < 0) {\n                  if ((((uint)unaff_s7[0xd] & 0x1000000) == 0) ||\n                     (pppppppcVar29 = unaff_s7, pppppppcVar30 = pppppppcVar42,\n                     iVar18 = FUN_00049440(&local_b4), iVar18 != 0)) {\n                    unaff_s8 = pppppppcVar42;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                  }\n                  else {\n                    pppppppcVar42 = (code *******)0xffffffff;\n                    pppppppcVar28 = (code *******)0x0;\n                  }\n                }\n                else {\n                  pppppppcVar42 = (code *******)0xffffffff;\n                  pppppppcVar28 = (code *******)0x0;\n                }\n                pcVar8 = (code *)(PTR_DAT_000799a4 + -0x7144);\n                pcVar9 = (code *)(PTR_DAT_000799a4 + -0x1980);\n                pcVar10 = (code *)(PTR_DAT_000799a4 + -0x2f9c);\n                unaff_s8 = pppppppcVar42;\n                local_144 = pppppppcVar36;\n                while( true ) {\n                  uVar44 = CONCAT44(local_98,local_84);\n                  unaff_s5 = (code *******)((int)local_8c + 1);\n                  pppppppcVar29 = local_8c;\n                  if ((int)local_7c <= (int)local_8c) break;\n                  if (((int)local_90 <= (int)unaff_s5) && ((int)local_90 < (int)local_84))\n                  goto LAB_00054e94;\n                  if ((int)local_98 <= (int)unaff_s5) {\n                    while ((int)((ulonglong)uVar44 >> 0x20) < (int)uVar44) {\nLAB_00054e94:\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 2);\n                      local_d8 = (code *******)(*pcVar8)(&local_b4);\n                      if (local_d8 == (code *******)0x0) break;\n                      pppppppcVar14 = param_4;\n                      if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                      pppppppcVar33 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                      pppppppcVar30 = (code *******)0x46c;\n                      pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                      uVar44 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0);\n                      pppppppcVar28 = pppppppcVar38;\n                    }\n                  }\n                  pppppppcVar42 = local_60;\n                  if ((int)unaff_s7[0xd] << 5 < 0) {\n                    pppppppcVar31 = pppppppcVar42;\n                    if (0 < (int)unaff_s7[2]) {\n                      pcVar11 = (code *)(PTR_DAT_000799a4 + -0x6fdc);\n                      pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6ef0);\n                      param_6 = (code *******)0x0;\n                      do {\n                        param_5 = (code *******)unaff_s7[3][(int)param_6];\n                        ppppppcVar39 = *pppppppcVar42;\n                        pppppcVar13 = ppppppcVar39[(int)param_5 * 2 + 1];\n                        if (((uint)pppppcVar13 & 0x800) != 0) {\n                          if (((uint)pppppcVar13 & 0xffc000) != 0) {\n                            pppppppcVar29 = local_8c;\n                            uVar19 = (*pcVar12)(&local_b4,local_8c,local_5c);\n                            uVar7 = (uint)((int)ppppppcVar39[(int)param_5 * 2 + 1] << 8) >> 0x16;\n                            if ((uVar7 & 4) == 0) {\n                              uVar27 = uVar19 & 1;\n                              if ((uVar7 & 8) != 0) goto joined_r0x00054f40;\n                            }\n                            else {\n                              uVar27 = uVar7 & 8;\n                              if ((uVar19 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                              if (uVar27 != 0) goto LAB_000550a4;\n                            }\n                            if ((((uVar7 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                               (((uVar7 & 0x80) != 0 &&\n                                (pppppppcVar33 = local_8c, (uVar19 & 8) == 0)))) goto LAB_000550a4;\n                          }\n                          pppppppcVar30 = &local_b4;\n                          pppppppcVar29 = param_5;\n                          pppppppcVar33 = local_8c;\n                          iVar18 = (*pcVar10)(pppppppcVar42);\n                          if (iVar18 != 0) {\n                            pppppppcVar14 = (code *******)((int)local_8c + iVar18);\n                            if (iVar18 <= local_3c) {\n                              iVar18 = local_3c;\n                            }\n                            pppppppcVar29 = pppppppcVar14;\n                            local_3c = iVar18;\n                            local_d4 = (code *******)(*pcVar11)(&local_b4);\n                            pppppppcVar15 = local_d4;\n                            if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                            pppppppcVar30 =\n                                 (code *******)\n                                 (pppppppcVar42[6] + (int)pppppppcVar42[3][(int)param_5] * 3);\n                            unaff_s4 = (code *******)((int)pppppppcVar14 * 4);\n                            param_5 = local_50 + (int)pppppppcVar14;\n                            if (*param_5 == (code ******)0x0) {\n                              local_d0 = (code *******)*pppppppcVar30;\n                              local_cc = (code *******)pppppppcVar30[1];\n                              local_c8 = (code *******)pppppppcVar30[2];\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *param_5 = ppppppcVar39;\n                            }\n                            else {\n                              pppppppcVar29 = (code *******)(*param_5)[10];\n                              local_d4 = (code *******)FUN_000484bc(&local_d0);\n                              pppppppcVar15 = local_d4;\n                              if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar15 = local_50 + (int)pppppppcVar14;\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *pppppppcVar15 = ppppppcVar39;\n                              (*(code *)PTR_free_00079c24)(local_c8);\n                            }\n                            unaff_s4 = local_50 + (int)pppppppcVar14;\n                            if ((*unaff_s4 == (code ******)0x0) &&\n                               (pppppppcVar15 = local_d4, local_d4 != (code *******)0x0))\n                            goto LAB_00055e44;\n                          }\n                        }\nLAB_000550a4:\n                        param_6 = (code *******)((int)param_6 + 1);\n                      } while ((int)param_6 < (int)unaff_s7[2]);\n                    }\n                    local_d8 = (code *******)0x0;\n                  }\n                  uVar7 = (uint)(byte)*(code *)((int)local_8c + (int)local_b0);\n                  local_8c = (code *******)((int)local_8c + 1);\n                  do {\n                    if (unaff_s7[0xb] != (code ******)0x0) {\n                      pppppppcVar30 = (code *******)unaff_s7[0xb][uVar7];\nLAB_000553a0:\n                      pppppppcVar14 = pppppppcVar30;\n                      if (local_50 != (code *******)0x0) goto LAB_000553ac;\n                      goto LAB_000553cc;\n                    }\n                    pppppppcVar31 = (code *******)unaff_s7[0xc];\n                    if (pppppppcVar31 != (code *******)0x0) {\n                      pppppppcVar29 = (code *******)((int)local_8c + -1);\n                      uVar19 = FUN_00049110(&local_b4);\n                      if ((uVar19 & 1) == 0) {\n                        pppppppcVar30 = (code *******)pppppppcVar31[uVar7];\n                      }\n                      else {\n                        pppppppcVar31 = pppppppcVar31 + uVar7 + 0x100;\n                        pppppppcVar30 = (code *******)*pppppppcVar31;\n                      }\n                      goto LAB_000553a0;\n                    }\n                    pppppppcVar29 = unaff_s7;\n                    pppppppcVar30 = local_5c;\n                    iVar18 = (*pcVar9)(local_60);\n                  } while (iVar18 != 0);\n                  local_d8 = (code *******)0xc;\n                  pppppppcVar15 = local_d8;\nLAB_00055e44:\n                  local_d8 = pppppppcVar15;\n                  param_4 = (code *******)0x0;\n                  if (local_50 == (code *******)0x0) {\n                    pppppppcVar14 = param_4;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    break;\n                  }\n                  pppppppcVar30 = (code *******)0x0;\nLAB_000553ac:\n                  pppppppcVar29 = &local_b4;\n                  pppppppcVar14 = (code *******)FUN_00053684(&local_d8);\nLAB_000553cc:\n                  param_4 = pppppppcVar14;\n                  if (pppppppcVar14 == (code *******)0x0) {\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    if ((local_50 == (code *******)0x0) ||\n                       ((pppppppcVar28 != (code *******)0x0 && (pppppppcVar34 == (code *******)0x0))\n                       )) break;\n                    param_6 = &local_b4;\n                    param_5 = (code *******)&local_d8;\n                    pppppppcVar31 = (code *******)(PTR_DAT_000799a4 + 0x3684);\n                    do {\n                      pppppppcVar15 = local_50 + (int)local_8c;\n                      pppppppcVar42 = local_8c;\n                      do {\n                        pppppppcVar42 = (code *******)((int)pppppppcVar42 + 1);\n                        pppppppcVar29 = local_4c;\n                        param_4 = pppppppcVar14;\n                        if ((int)local_4c < (int)pppppppcVar42) goto LAB_00055da8;\n                        local_8c = (code *******)((int)local_8c + 1);\n                        pppppppcVar15 = pppppppcVar15 + 1;\n                      } while (*pppppppcVar15 == (code ******)0x0);\n                      pppppppcVar30 = (code *******)0x0;\n                      pppppppcVar29 = param_6;\n                      param_4 = (code *******)(*(code *)pppppppcVar31)(param_5);\n                      if (local_d8 != (code *******)0x0) {\n                        if (param_4 == (code *******)0x0) goto LAB_00055da8;\n                        break;\n                      }\n                      pppppppcVar29 = local_4c;\n                    } while (param_4 == (code *******)0x0);\n                  }\n                  pppppppcVar15 = (code *******)((uint)unaff_s7 ^ (uint)param_4);\n                  pppppppcVar42 = unaff_s7;\n                  pppppppcVar14 = local_138;\n                  if ((bVar1) &&\n                     (pppppppcVar42 = pppppppcVar15, pppppppcVar14 = unaff_s5,\n                     pppppppcVar15 != (code *******)0x0)) {\n                    bVar1 = false;\n                    pppppppcVar14 = local_138;\n                  }\n                  local_138 = pppppppcVar14;\n                  unaff_s7 = param_4;\n                  if ((((uint)param_4[0xd] & 0x8000000) != 0) &&\n                     ((((uint)param_4[0xd] & 0x1000000) == 0 ||\n                      (pppppppcVar29 = param_4, pppppppcVar30 = local_8c,\n                      iVar18 = FUN_00049440(&local_b4), iVar18 != 0)))) {\n                    unaff_s7 = pppppppcVar42;\n                    unaff_s8 = local_8c;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                    local_144 = (code *******)0x0;\n                    unaff_s7 = param_4;\n                  }\n                }\nLAB_00055da8:\n                if (local_144 != (code *******)0x0) {\n                  *local_144 = (code ******)((int)local_138 + (int)*local_144);\n                }\n              }\n              else {\n                param_4 = unaff_s7 + 1;\n                pppppppcVar30 = (code *******)0x0;\n                pppppppcVar29 = param_4;\n                local_d8 = (code *******)FUN_00047a44(&local_b4);\n                unaff_s8 = local_d8;\n                if (local_d8 == (code *******)0x0) {\n                  if (((uint)unaff_s7[0xd] & 0x2000000) == 0) {\n                    pppppppcVar29 = param_4;\n                    bVar1 = false;\n                  }\n                  else {\n                    pppppppcVar29 = param_4;\n                    local_d8 = (code *******)FUN_00052d84(&local_b4);\n                    unaff_s8 = local_d8;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055dbc;\n                    bVar1 = false;\n                  }\n                  goto LAB_00054d50;\n                }\n              }\nLAB_00055dbc:\n              if (unaff_s8 == (code *******)0xffffffff) {\nLAB_00055b04:\n                FUN_0004b7e8(&local_b4);\nLAB_00055b1c:\n                local_dc = (code *******)((int)pppppppcVar24 + (int)local_dc);\n                if ((int)pppppppcVar25 <= (int)local_dc) goto code_r0x00055b38;\n                local_150 = (code *******)0x1;\n                goto LAB_000557e4;\n              }\n              if (unaff_s8 == (code *******)&SUB_fffffffe) {\n                local_150 = (code *******)0xc;\n                goto LAB_000557e4;\n              }\n              local_58 = unaff_s8;\n              if (((uint)param_1[7] & 0x8000000) == 0) {\n                if (pppppppcVar3 < (code *******)0x2) {\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055c08;\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                else {\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                if (pppppppcVar3 < (code *******)0x2) {\nLAB_00055c6c:\n                  pppppppcVar28 = pppppppcVar33;\n                  unaff_s4 = local_60;\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055548;\n                }\n                else {\n                  cVar23 = *(code *)(pppppppcVar38 + 0x16);\nLAB_00055c20:\n                  pppppppcVar28 = pppppppcVar33;\n                  if (-1 < (char)cVar23) goto LAB_00055c6c;\n                }\n                pppppppcVar31 = local_54;\n                pppppppcVar42 = local_60;\n                unaff_s4 = pppppppcVar42;\n                if (unaff_s8 < (code *******)0x3fffffff) {\n                  param_4 = (code *******)((int)((int)unaff_s8 + 1) * 4);\n                  unaff_s5 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                  if (unaff_s5 == (code *******)0x0) {\nLAB_00055b9c:\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    local_150 = (code *******)0xc;\n                    pppppppcVar33 = pppppppcVar28;\n                  }\n                  else {\n                    pppppppcVar29 = (code *******)&local_d0;\n                    if (pppppppcVar42[0x13] == (code ******)0x0) {\n                      local_cc = (code *******)0x0;\n                      local_c8 = pppppppcVar31;\n                      local_c0 = 0;\n                      local_bc = 0;\n                      local_b8 = 0;\n                      local_d0 = unaff_s5;\n                      local_c4 = unaff_s8;\n                      param_5 = (code *******)FUN_0005421c(&local_b4);\n                      (*(code *)PTR_free_00079c24)(local_b8);\n                      if (param_5 == (code *******)0x0) {\n                        param_4 = (code *******)*unaff_s5;\n                        if (param_4 == (code *******)0x0) {\nLAB_00055b70:\n                          (*(code *)PTR_free_00079c24)(unaff_s5);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          pppppppcVar33 = pppppppcVar28;\n                          goto LAB_00055b04;\n                        }\nLAB_00055528:\n                        (*(code *)PTR_free_00079c24)(local_50);\n                        pppppppcVar33 = pppppppcVar28;\n                        unaff_s4 = pppppppcVar42;\n                        local_58 = unaff_s8;\n                        local_54 = pppppppcVar31;\n                        local_50 = unaff_s5;\n                        goto LAB_00055548;\n                      }\nLAB_00055acc:\n                      param_4 = (code *******)0x0;\n                      pppppppcVar33 = pppppppcVar28;\n                      unaff_s4 = pppppppcVar42;\n                    }\n                    else {\n                      param_4 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                      if (param_4 == (code *******)0x0) goto LAB_00055b9c;\n                      unaff_s7 = (code *******)&local_d0;\n                      pcVar8 = (code *)(PTR_DAT_000799a4 + 0x421c);\n                      pcVar9 = (code *)(PTR_DAT_000799a4 + -0x6bc0);\n                      pppppppcVar33 = pppppppcVar28;\n                      while( true ) {\n                        pppppppcVar28 = (code *******)((int)unaff_s8 + 1);\n                        param_6 = (code *******)((int)pppppppcVar28 * 4);\n                        pppppppcVar30 = param_6;\n                        (*(code *)PTR_memset_00079b00)(param_4,0);\n                        local_c0 = 0;\n                        local_bc = 0;\n                        local_b8 = 0;\n                        pppppppcVar29 = unaff_s7;\n                        local_d0 = unaff_s5;\n                        local_cc = param_4;\n                        local_c8 = pppppppcVar31;\n                        local_c4 = unaff_s8;\n                        param_5 = (code *******)(*pcVar8)(&local_b4);\n                        (*(code *)PTR_free_00079c24)(local_b8);\n                        unaff_s4 = pppppppcVar28;\n                        if (param_5 != (code *******)0x0) break;\n                        if ((*unaff_s5 != (code ******)0x0) ||\n                           (param_6 = param_6 + -1, *param_4 != (code ******)0x0)) {\n                          pppppppcVar29 = unaff_s5;\n                          pppppppcVar30 = param_4;\n                          param_5 = (code *******)FUN_000520d0(pppppppcVar42);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          if (param_5 != (code *******)0x0) goto LAB_00055acc;\n                          goto LAB_00055528;\n                        }\n                        param_6 = (code *******)((int)local_50 + (int)param_6);\n                        do {\n                          while( true ) {\n                            unaff_s8 = (code *******)((int)unaff_s8 + -1);\n                            if ((int)unaff_s8 < 0) goto LAB_00055b70;\n                            pppppppcVar29 = (code *******)param_6[-1];\n                            if (pppppppcVar29 != (code *******)0x0) break;\n                            param_6 = param_6 + -1;\n                          }\n                          param_6 = param_6 + -1;\n                        } while (((uint)pppppppcVar29[0xd] & 0x8000000) == 0);\n                        pppppppcVar31 = (code *******)(*pcVar9)(&local_b4,pppppppcVar29,unaff_s8);\n                        pppppppcVar33 = pppppppcVar28;\n                      }\n                    }\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    (*(code *)PTR_free_00079c24)(param_4);\n                    local_150 = param_5;\n                    if (param_5 == (code *******)0x1) goto LAB_00055b04;\n                  }\n                }\n                else {\n                  local_150 = (code *******)0xc;\n                  pppppppcVar33 = pppppppcVar28;\n                }\n                goto LAB_000557e4;\n              }\n              if (pppppppcVar38[0x13] != (code ******)0x0) {\n                pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                pppppppcVar30 = unaff_s8;\n                local_54 = (code *******)FUN_00049440(&local_b4);\n                goto LAB_00055c6c;\n              }\nLAB_00055c08:\n              if ((((uint)param_1[7] & 0x8000000) == 0) && ((code *******)0x1 < pppppppcVar3)) {\n                cVar23 = *(code *)(pppppppcVar38 + 0x16);\n                goto LAB_00055c20;\n              }\nLAB_00055548:\n              if (pppppppcVar3 == (code *******)0x0) goto LAB_000557e4;\n              if (pppppppcVar3 < (code *******)0x2) {\n                *param_8 = (code ******)0x0;\n                param_8[1] = (code ******)local_58;\n                goto LAB_000555ac;\n              }\n              pppppppcVar29 = param_8 + 2;\n              do {\n                pppppppcVar29[1] = (code ******)0xffffffff;\n                *pppppppcVar29 = (code ******)0xffffffff;\n                pppppppcVar29 = pppppppcVar29 + 2;\n              } while (pppppppcVar29 != param_8 + (int)pppppppcVar3 * 2);\n              *param_8 = (code ******)0x0;\n              param_8[1] = (code ******)local_58;\n              if (((uint)param_1[7] & 0x8000000) != 0) {\nLAB_000555ac:\n                pppppppcVar33 = param_8;\n                do {\n                  pppppppcVar29 = (code *******)*pppppppcVar33;\n                  if (pppppppcVar29 != (code *******)0xffffffff) {\n                    if (local_68 != '\0') {\n                      pppppppcVar34 = local_94;\n                      if (pppppppcVar29 != local_98) {\n                        pppppppcVar34 = *(code ********)(local_a8 + (int)pppppppcVar29 * 4);\n                      }\n                      *pppppppcVar33 = (code ******)pppppppcVar34;\n                      pppppppcVar29 = local_94;\n                      if (local_98 != (code *******)pppppppcVar33[1]) {\n                        pppppppcVar29 = *(code ********)(local_a8 + (int)pppppppcVar33[1] * 4);\n                      }\n                      pppppppcVar33[1] = (code ******)pppppppcVar29;\n                    }\n                    *pppppppcVar33 = (code ******)((int)local_dc + (int)*pppppppcVar33);\n                    pppppppcVar29 = (code *******)((int)local_dc + (int)pppppppcVar33[1]);\n                    pppppppcVar33[1] = (code ******)pppppppcVar29;\n                  }\n                  pppppppcVar33 = pppppppcVar33 + 2;\n                } while (pppppppcVar33 != param_8 + (int)pppppppcVar3 * 2);\n                if (0 < local_118) {\n                  pppppppcVar33 = param_8 + (int)pppppppcVar3 * 2;\n                  do {\n                    *pppppppcVar33 = (code ******)0xffffffff;\n                    pppppppcVar33[1] = (code ******)0xffffffff;\n                    pppppppcVar33 = pppppppcVar33 + 2;\n                  } while (pppppppcVar33 != param_8 + (int)param_7 * 2);\n                }\n                pppppppcVar30 = local_dc;\n                pppppppcVar33 = param_8;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar38[0x21] != (code ******)0x0) {\n                  pppppppcVar30 = (code *******)((int)pppppppcVar3 + -1);\n                  pppppppcVar34 = (code *******)0x0;\n                  pppppppcVar3 = param_8;\n                  while( true ) {\n                    pppppppcVar29 = (code *******)((int)pppppppcVar34 * 4);\n                    if (pppppppcVar30 == pppppppcVar34) break;\n                    if (*(code ********)((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) !=\n                        pppppppcVar34) {\n                      pppppppcVar3[2] =\n                           param_8[(int)((int)*(code ********)\n                                               ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1)\n                                   * 2];\n                      pppppppcVar3[3] =\n                           param_8[((int)*(code ******)\n                                          ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1) * 2 +\n                                   1];\n                    }\n                    pppppppcVar34 = (code *******)((int)pppppppcVar34 + 1);\n                    pppppppcVar3 = pppppppcVar3 + 2;\n                  }\n                }\n                goto LAB_000557e4;\n              }\n              if ((char)*(code *)(pppppppcVar38 + 0x16) < '\0') {\n                local_168 = (uint)(0 < (int)pppppppcVar38[0x13]);\n              }\n              else {\n                local_168 = 0;\n              }\n              pppppppcVar29 = &local_b4;\n              pppppppcVar30 = pppppppcVar3;\n              pppppppcVar33 = param_8;\n              local_150 = (code *******)FUN_0004f4a0(param_1);\n              if (local_150 == (code *******)0x0) goto LAB_000555ac;\n            }\n          }\n          else if (local_90 < 0x3fffffff) {\n            local_50 = (code *******)(*(code *)PTR_malloc_00079b54)((local_90 + 1) * 4);\n            if (local_50 != (code *******)0x0) goto LAB_00055a40;\n            local_150 = (code *******)0xc;\n            param_6 = pppppppcVar36;\n          }\n          else {\n            local_150 = (code *******)0xc;\n            param_6 = pppppppcVar36;\n          }\n        }\n        else {\n          unaff_s5 = (code *******)((int)ppppppcVar35 * 8);\n          if (pppppppcVar36 < (code *******)0xccccccd) {\n            unaff_s4 = (code *******)(*(code *)PTR_malloc_00079b54)((int)ppppppcVar35 * 0x28);\n            local_40 = unaff_s4;\n            local_30 = (*(code *)PTR_malloc_00079b54)(unaff_s5);\n            if ((unaff_s4 != (code *******)0x0) && (local_30 != 0)) goto LAB_000559f0;\n          }\n          local_150 = (code *******)0xc;\n          param_6 = pppppppcVar36;\n        }\nLAB_000557e4:\n        (*(code *)PTR_free_00079c24)(local_50);\n        param_1 = pppppppcVar30;\n        if (pppppppcVar38[0x13] != (code ******)0x0) {\n          FUN_0004b7e8(&local_b4);\n          (*(code *)PTR_free_00079c24)(local_30);\n          (*(code *)PTR_free_00079c24)(local_40);\n          param_1 = pppppppcVar30;\n        }\n        FUN_0004b2bc(&local_b4);\n        pppppppcStack_1a0 = param_4;\n        pppppppcStack_19c = pppppppcVar31;\n      }" (else "else") (compound_statement "{\n        param_5 = pppppppcVar3;\n        pppppppcVar3 = (code *******)((int)param_7 - local_118);\n        if (pppppppcVar3 == (code *******)0x0) {\n          pppppppcVar34 = (code *******)(uint)(pppppppcVar38[0x13] != (code ******)0x0);\n        }\n        else {\n          pppppppcVar34 = (code *******)0x1;\n        }\n        ppppppcVar32 = param_1[5];\n        local_6c = (byte)((uint)((int)param_1[3] << 9) >> 0x1f);\n        local_64 = (code *******)pppppppcVar38[0x17];\n        pppppppcVar31 = (code *******)((int)pppppppcVar38[2] + 1);\n        if ((int)pppppppcVar38[2] + 1 < (int)local_64) {\n          pppppppcVar31 = local_64;\n        }\n        pppppppcVar30 = (code *******)(uint)((int)param_3 + 1 < (int)pppppppcVar31);\n        pppppppcVar33 = (code *******)0x1;\n        local_69 = local_6c;\n        if (ppppppcVar32 != (code ******)0x0) {\n          local_69 = 1;\n        }\n        local_6b = (byte)((uint)((int)pppppppcVar38[0x16] << 2) >> 0x1f);\n        local_6a = (byte)((uint)((int)pppppppcVar38[0x16] << 3) >> 0x1f);\n        pppppppcVar29 = (code *******)((int)param_3 + 1);\n        if (pppppppcVar30 == (code *******)0x0) {\n          pppppppcVar29 = pppppppcVar31;\n        }\n        local_b4 = param_2;\n        local_88 = param_3;\n        local_84 = param_3;\n        local_80 = param_3;\n        local_7c = param_3;\n        local_74 = ppppppcVar32;\n        local_150 = (code *******)FUN_00046d2c(&local_b4);\n        pppppppcVar31 = pppppppcVar34;\n        param_6 = param_6;\n        if (local_150 != (code *******)0x0) goto LAB_000557e4;\n        local_70 = pppppppcVar38 + 0x18;\n        local_66 = (byte)((uint)((int)pppppppcVar38[0x16] << 4) >> 0x1f);\n        pppppppcVar2 = (code *******)0x0;\n        local_98 = pppppppcVar2;\n        if ((local_69 == 0) && (local_b0 = param_2, (int)pppppppcVar38[0x17] < 2)) {\n          local_98 = param_3;\n        }\n        local_7c = param_6;\n        local_80 = param_6;\n        local_67 = (byte)((uint)((int)param_1[7] << 7) >> 0x1f);\n        ppppppcVar35 = pppppppcVar38[0x13];\n        pppppppcVar36 = (code *******)((int)ppppppcVar35 * 2);\n        local_5c = param_9;\n        local_58 = (code *******)0xffffffff;\n        local_94 = local_98;\n        if ((int)pppppppcVar36 < 1) {\nLAB_000559f0:\n          local_3c = 1;\n          local_44 = pppppppcVar36;\n          local_34 = pppppppcVar36;\n          if ((pppppppcVar3 < (code *******)0x2) && (((uint)pppppppcVar38[0x16] & 0x40000000) == 0))\n          {\n            local_50 = (code *******)0x0;\nLAB_00055a40:\n            local_78 = 6;\n            if (((uint)param_9 & 1) != 0) {\n              local_78 = 4;\n            }\n            pppppppcVar24 = (code *******)0x1;\n            pppppppcVar25 = param_4;\n            if ((int)param_5 < (int)param_4) {\n              pppppppcVar24 = (code *******)0xffffffff;\n              pppppppcVar25 = param_5;\n            }\n            pppppppcVar26 = param_5;\n            if ((int)param_5 <= (int)param_4) {\n              pppppppcVar26 = param_4;\n            }\n            ppppppcVar35 = pppppppcVar38[0x17];\n            uVar16 = 8;\n            if (local_148 != (code *******)0x0) {\n              if (ppppppcVar35 == (code ******)0x1) {\n                pppppppcVar28 = (code *******)0x4;\n              }\n              else {\n                pppppppcVar28 = pppppppcVar2;\n                if ((-1 < (int)param_1[3] << 9) && (ppppppcVar32 == (code ******)0x0)) {\n                  pppppppcVar28 = (code *******)0x4;\n                }\n              }\n              pppppppcVar29 = (code *******)0x0;\n              if ((int)param_4 <= (int)param_5) {\n                pppppppcVar29 = (code *******)0x2;\n              }\n              uVar16 = (uint)(ppppppcVar32 != (code ******)0x0) | (uint)pppppppcVar28 |\n                       (uint)pppppppcVar29;\n            }\n            local_dc = param_4;\n            if ((int)param_4 < (int)pppppppcVar25) {\n              local_150 = (code *******)0x1;\n              param_6 = pppppppcVar36;\n            }\n            else if ((int)pppppppcVar26 < (int)param_4) {\n              local_150 = (code *******)0x1;\n              param_4 = (code *******)(uint)((int)param_5 < (int)param_4);\n              param_6 = pppppppcVar36;\n            }\n            else {\n              pppppppcVar36 = (code *******)&local_dc;\n              if ((code *******)(uint)((int)param_5 < (int)param_4) != (code *******)0x0) {\n                pppppppcVar36 = (code *******)0x0;\n              }\n              pcVar4 = (code *)(PTR_DAT_000799a4 + -0x2b7c);\n              piVar5 = (int *)(PTR_s_nt0_000795b8 + (uVar16 - 4) * 4 + 0x6e38);\nLAB_00055b44:\n              if (uVar16 - 4 < 5) {\n                    \n                    \n                pppppppcVar29 = (code *******)(*(code *)(&_gp_1 + *piVar5))();\n                return pppppppcVar29;\n              }\n              param_5 = &local_b4;\n              pppppppcVar28 = pppppppcVar33;\n              while( true ) {\n                param_4 = local_dc;\n                pppppppcVar33 = (code *******)((int)local_dc - local_9c);\n                pppppppcVar30 = param_9;\n                pppppppcVar31 = pppppppcVar2;\n                param_6 = local_148;\n                unaff_s4 = param_3;\n                unaff_s5 = pppppppcVar24;\n                unaff_s7 = pppppppcVar26;\n                if (local_94 <= pppppppcVar33) {\n                  pppppppcVar29 = local_dc;\n                  local_150 = (code *******)(*pcVar4)(param_5);\n                  pppppppcVar33 = pppppppcVar28;\n                  if (local_150 != (code *******)0x0) goto LAB_000557e4;\n                  pppppppcVar33 = (code *******)((int)param_4 - local_9c);\n                }\n                if ((int)param_4 < (int)param_3) {\n                  uVar7 = (uint)(byte)*(code *)((int)pppppppcVar33 + (int)local_b0);\n                }\n                else {\n                  uVar7 = 0;\n                }\n                param_4 = (code *******)((int)param_4 + (int)pppppppcVar24);\n                if (*(code *)((int)local_148 + uVar7) != (code)0x0) break;\n                pppppppcVar33 = pppppppcVar28;\n                local_dc = param_4;\n                if ((int)param_4 < (int)pppppppcVar25) {\n                  local_150 = (code *******)0x1;\n                  goto LAB_000557e4;\n                }\n                if ((code *******)(uint)((int)pppppppcVar26 < (int)param_4) != (code *******)0x0) {\n                  local_150 = (code *******)0x1;\n                  param_4 = (code *******)(uint)((int)pppppppcVar26 < (int)param_4);\n                  goto LAB_000557e4;\n                }\n              }\n              while( true ) {\n                pppppppcVar29 = local_dc;\n                pppppppcVar30 = param_9;\n                pppppppcVar6 = (code *******)(*pcVar4)(&local_b4);\n                pppppppcVar14 = local_60;\n                pppppppcVar42 = local_8c;\n                pppppppcVar33 = pppppppcVar28;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar6 != (code *******)0x0) goto LAB_000557e4;\n                if (((ppppppcVar35 != (code ******)0x1) && (local_98 != (code *******)0x0)) &&\n                   (*local_ac == -1)) goto LAB_00055b1c;\n                local_3c = 0;\n                local_48 = 0;\n                local_4c = (code *******)0x0;\n                local_138 = local_8c;\n                local_d8 = (code *******)0x0;\n                unaff_s7 = (code *******)local_60[9];\n                pppppppcVar30 = local_5c;\n                param_4 = pppppppcVar14;\n                if (((uint)unaff_s7[0xd] & 0x1000000) == 0) break;\n                pppppppcVar29 = (code *******)((int)local_8c + -1);\n                pppppppcVar33 = (code *******)FUN_00049110(&local_b4);\n                if (((uint)pppppppcVar33 & 1) == 0) {\n                  if (pppppppcVar33 == (code *******)0x0) break;\n                  if (((uint)pppppppcVar33 & 6) == 6) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xc];\n                    goto LAB_00054d1c;\n                  }\n                  if (((uint)pppppppcVar33 & 2) != 0) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xb];\n                    goto LAB_00054d1c;\n                  }\n                  pppppppcVar28 = pppppppcVar33;\n                  if (((uint)pppppppcVar33 & 4) == 0) break;\n                  pppppppcVar30 = (code *******)unaff_s7[10];\n                  pppppppcVar29 = pppppppcVar14;\n                  unaff_s7 = (code *******)FUN_0004ae34(&local_d8);\n                  pppppppcVar28 = pppppppcVar33;\n                  if (unaff_s7 != (code *******)0x0) break;\n                  if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                }\n                else {\n                  unaff_s7 = (code *******)pppppppcVar14[10];\nLAB_00054d1c:\n                  pppppppcVar28 = (code *******)PTR_s_nt0_000795b8;\n                  if (unaff_s7 != (code *******)0x0) break;\n                }\n                pppppppcVar28 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                local_dc = (code *******)\n                           (*(code *)PTR___assert_fail_000799f8)\n                                     (PTR_s_nt0_000795b8 + 0x71a0,pppppppcVar29,0x435);\n                if (local_dc == pppppppcVar26) {\n                  if ((int)local_dc < (int)param_3) {\n                    uVar7 = (uint)(byte)*(code *)((int)local_dc + (int)param_2);\n                  }\n                  else {\n                    uVar7 = 0;\n                  }\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    uVar7 = (uint)*(byte *)((int)ppppppcVar32 + uVar7);\n                  }\n                  if (*(code *)((int)local_148 + uVar7) == (code)0x0) {\n                    local_150 = (code *******)0x1;\n                    pppppppcVar30 = param_9;\n                    pppppppcVar33 = pppppppcVar28;\n                    goto LAB_000557e4;\n                  }\n                }\n              }\n              pppppppcVar33 = pppppppcVar28;\n              bVar1 = pppppppcVar36 != (code *******)0x0;\n              if ((local_50 == (code *******)0x0) ||\n                 (local_50[(int)pppppppcVar42] = (code ******)unaff_s7,\n                 pppppppcVar14[0x13] == (code ******)0x0)) {\nLAB_00054d50:\n                if ((int)unaff_s7[0xd] << 4 < 0) {\n                  if ((((uint)unaff_s7[0xd] & 0x1000000) == 0) ||\n                     (pppppppcVar29 = unaff_s7, pppppppcVar30 = pppppppcVar42,\n                     iVar18 = FUN_00049440(&local_b4), iVar18 != 0)) {\n                    unaff_s8 = pppppppcVar42;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                  }\n                  else {\n                    pppppppcVar42 = (code *******)0xffffffff;\n                    pppppppcVar28 = (code *******)0x0;\n                  }\n                }\n                else {\n                  pppppppcVar42 = (code *******)0xffffffff;\n                  pppppppcVar28 = (code *******)0x0;\n                }\n                pcVar8 = (code *)(PTR_DAT_000799a4 + -0x7144);\n                pcVar9 = (code *)(PTR_DAT_000799a4 + -0x1980);\n                pcVar10 = (code *)(PTR_DAT_000799a4 + -0x2f9c);\n                unaff_s8 = pppppppcVar42;\n                local_144 = pppppppcVar36;\n                while( true ) {\n                  uVar44 = CONCAT44(local_98,local_84);\n                  unaff_s5 = (code *******)((int)local_8c + 1);\n                  pppppppcVar29 = local_8c;\n                  if ((int)local_7c <= (int)local_8c) break;\n                  if (((int)local_90 <= (int)unaff_s5) && ((int)local_90 < (int)local_84))\n                  goto LAB_00054e94;\n                  if ((int)local_98 <= (int)unaff_s5) {\n                    while ((int)((ulonglong)uVar44 >> 0x20) < (int)uVar44) {\nLAB_00054e94:\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 2);\n                      local_d8 = (code *******)(*pcVar8)(&local_b4);\n                      if (local_d8 == (code *******)0x0) break;\n                      pppppppcVar14 = param_4;\n                      if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                      pppppppcVar33 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                      pppppppcVar30 = (code *******)0x46c;\n                      pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                      uVar44 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0);\n                      pppppppcVar28 = pppppppcVar38;\n                    }\n                  }\n                  pppppppcVar42 = local_60;\n                  if ((int)unaff_s7[0xd] << 5 < 0) {\n                    pppppppcVar31 = pppppppcVar42;\n                    if (0 < (int)unaff_s7[2]) {\n                      pcVar11 = (code *)(PTR_DAT_000799a4 + -0x6fdc);\n                      pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6ef0);\n                      param_6 = (code *******)0x0;\n                      do {\n                        param_5 = (code *******)unaff_s7[3][(int)param_6];\n                        ppppppcVar39 = *pppppppcVar42;\n                        pppppcVar13 = ppppppcVar39[(int)param_5 * 2 + 1];\n                        if (((uint)pppppcVar13 & 0x800) != 0) {\n                          if (((uint)pppppcVar13 & 0xffc000) != 0) {\n                            pppppppcVar29 = local_8c;\n                            uVar19 = (*pcVar12)(&local_b4,local_8c,local_5c);\n                            uVar7 = (uint)((int)ppppppcVar39[(int)param_5 * 2 + 1] << 8) >> 0x16;\n                            if ((uVar7 & 4) == 0) {\n                              uVar27 = uVar19 & 1;\n                              if ((uVar7 & 8) != 0) goto joined_r0x00054f40;\n                            }\n                            else {\n                              uVar27 = uVar7 & 8;\n                              if ((uVar19 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                              if (uVar27 != 0) goto LAB_000550a4;\n                            }\n                            if ((((uVar7 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                               (((uVar7 & 0x80) != 0 &&\n                                (pppppppcVar33 = local_8c, (uVar19 & 8) == 0)))) goto LAB_000550a4;\n                          }\n                          pppppppcVar30 = &local_b4;\n                          pppppppcVar29 = param_5;\n                          pppppppcVar33 = local_8c;\n                          iVar18 = (*pcVar10)(pppppppcVar42);\n                          if (iVar18 != 0) {\n                            pppppppcVar14 = (code *******)((int)local_8c + iVar18);\n                            if (iVar18 <= local_3c) {\n                              iVar18 = local_3c;\n                            }\n                            pppppppcVar29 = pppppppcVar14;\n                            local_3c = iVar18;\n                            local_d4 = (code *******)(*pcVar11)(&local_b4);\n                            pppppppcVar15 = local_d4;\n                            if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                            pppppppcVar30 =\n                                 (code *******)\n                                 (pppppppcVar42[6] + (int)pppppppcVar42[3][(int)param_5] * 3);\n                            unaff_s4 = (code *******)((int)pppppppcVar14 * 4);\n                            param_5 = local_50 + (int)pppppppcVar14;\n                            if (*param_5 == (code ******)0x0) {\n                              local_d0 = (code *******)*pppppppcVar30;\n                              local_cc = (code *******)pppppppcVar30[1];\n                              local_c8 = (code *******)pppppppcVar30[2];\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *param_5 = ppppppcVar39;\n                            }\n                            else {\n                              pppppppcVar29 = (code *******)(*param_5)[10];\n                              local_d4 = (code *******)FUN_000484bc(&local_d0);\n                              pppppppcVar15 = local_d4;\n                              if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar15 = local_50 + (int)pppppppcVar14;\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *pppppppcVar15 = ppppppcVar39;\n                              (*(code *)PTR_free_00079c24)(local_c8);\n                            }\n                            unaff_s4 = local_50 + (int)pppppppcVar14;\n                            if ((*unaff_s4 == (code ******)0x0) &&\n                               (pppppppcVar15 = local_d4, local_d4 != (code *******)0x0))\n                            goto LAB_00055e44;\n                          }\n                        }\nLAB_000550a4:\n                        param_6 = (code *******)((int)param_6 + 1);\n                      } while ((int)param_6 < (int)unaff_s7[2]);\n                    }\n                    local_d8 = (code *******)0x0;\n                  }\n                  uVar7 = (uint)(byte)*(code *)((int)local_8c + (int)local_b0);\n                  local_8c = (code *******)((int)local_8c + 1);\n                  do {\n                    if (unaff_s7[0xb] != (code ******)0x0) {\n                      pppppppcVar30 = (code *******)unaff_s7[0xb][uVar7];\nLAB_000553a0:\n                      pppppppcVar14 = pppppppcVar30;\n                      if (local_50 != (code *******)0x0) goto LAB_000553ac;\n                      goto LAB_000553cc;\n                    }\n                    pppppppcVar31 = (code *******)unaff_s7[0xc];\n                    if (pppppppcVar31 != (code *******)0x0) {\n                      pppppppcVar29 = (code *******)((int)local_8c + -1);\n                      uVar19 = FUN_00049110(&local_b4);\n                      if ((uVar19 & 1) == 0) {\n                        pppppppcVar30 = (code *******)pppppppcVar31[uVar7];\n                      }\n                      else {\n                        pppppppcVar31 = pppppppcVar31 + uVar7 + 0x100;\n                        pppppppcVar30 = (code *******)*pppppppcVar31;\n                      }\n                      goto LAB_000553a0;\n                    }\n                    pppppppcVar29 = unaff_s7;\n                    pppppppcVar30 = local_5c;\n                    iVar18 = (*pcVar9)(local_60);\n                  } while (iVar18 != 0);\n                  local_d8 = (code *******)0xc;\n                  pppppppcVar15 = local_d8;\nLAB_00055e44:\n                  local_d8 = pppppppcVar15;\n                  param_4 = (code *******)0x0;\n                  if (local_50 == (code *******)0x0) {\n                    pppppppcVar14 = param_4;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    break;\n                  }\n                  pppppppcVar30 = (code *******)0x0;\nLAB_000553ac:\n                  pppppppcVar29 = &local_b4;\n                  pppppppcVar14 = (code *******)FUN_00053684(&local_d8);\nLAB_000553cc:\n                  param_4 = pppppppcVar14;\n                  if (pppppppcVar14 == (code *******)0x0) {\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    if ((local_50 == (code *******)0x0) ||\n                       ((pppppppcVar28 != (code *******)0x0 && (pppppppcVar34 == (code *******)0x0))\n                       )) break;\n                    param_6 = &local_b4;\n                    param_5 = (code *******)&local_d8;\n                    pppppppcVar31 = (code *******)(PTR_DAT_000799a4 + 0x3684);\n                    do {\n                      pppppppcVar15 = local_50 + (int)local_8c;\n                      pppppppcVar42 = local_8c;\n                      do {\n                        pppppppcVar42 = (code *******)((int)pppppppcVar42 + 1);\n                        pppppppcVar29 = local_4c;\n                        param_4 = pppppppcVar14;\n                        if ((int)local_4c < (int)pppppppcVar42) goto LAB_00055da8;\n                        local_8c = (code *******)((int)local_8c + 1);\n                        pppppppcVar15 = pppppppcVar15 + 1;\n                      } while (*pppppppcVar15 == (code ******)0x0);\n                      pppppppcVar30 = (code *******)0x0;\n                      pppppppcVar29 = param_6;\n                      param_4 = (code *******)(*(code *)pppppppcVar31)(param_5);\n                      if (local_d8 != (code *******)0x0) {\n                        if (param_4 == (code *******)0x0) goto LAB_00055da8;\n                        break;\n                      }\n                      pppppppcVar29 = local_4c;\n                    } while (param_4 == (code *******)0x0);\n                  }\n                  pppppppcVar15 = (code *******)((uint)unaff_s7 ^ (uint)param_4);\n                  pppppppcVar42 = unaff_s7;\n                  pppppppcVar14 = local_138;\n                  if ((bVar1) &&\n                     (pppppppcVar42 = pppppppcVar15, pppppppcVar14 = unaff_s5,\n                     pppppppcVar15 != (code *******)0x0)) {\n                    bVar1 = false;\n                    pppppppcVar14 = local_138;\n                  }\n                  local_138 = pppppppcVar14;\n                  unaff_s7 = param_4;\n                  if ((((uint)param_4[0xd] & 0x8000000) != 0) &&\n                     ((((uint)param_4[0xd] & 0x1000000) == 0 ||\n                      (pppppppcVar29 = param_4, pppppppcVar30 = local_8c,\n                      iVar18 = FUN_00049440(&local_b4), iVar18 != 0)))) {\n                    unaff_s7 = pppppppcVar42;\n                    unaff_s8 = local_8c;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                    local_144 = (code *******)0x0;\n                    unaff_s7 = param_4;\n                  }\n                }\nLAB_00055da8:\n                if (local_144 != (code *******)0x0) {\n                  *local_144 = (code ******)((int)local_138 + (int)*local_144);\n                }\n              }\n              else {\n                param_4 = unaff_s7 + 1;\n                pppppppcVar30 = (code *******)0x0;\n                pppppppcVar29 = param_4;\n                local_d8 = (code *******)FUN_00047a44(&local_b4);\n                unaff_s8 = local_d8;\n                if (local_d8 == (code *******)0x0) {\n                  if (((uint)unaff_s7[0xd] & 0x2000000) == 0) {\n                    pppppppcVar29 = param_4;\n                    bVar1 = false;\n                  }\n                  else {\n                    pppppppcVar29 = param_4;\n                    local_d8 = (code *******)FUN_00052d84(&local_b4);\n                    unaff_s8 = local_d8;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055dbc;\n                    bVar1 = false;\n                  }\n                  goto LAB_00054d50;\n                }\n              }\nLAB_00055dbc:\n              if (unaff_s8 == (code *******)0xffffffff) {\nLAB_00055b04:\n                FUN_0004b7e8(&local_b4);\nLAB_00055b1c:\n                local_dc = (code *******)((int)pppppppcVar24 + (int)local_dc);\n                if ((int)pppppppcVar25 <= (int)local_dc) goto code_r0x00055b38;\n                local_150 = (code *******)0x1;\n                goto LAB_000557e4;\n              }\n              if (unaff_s8 == (code *******)&SUB_fffffffe) {\n                local_150 = (code *******)0xc;\n                goto LAB_000557e4;\n              }\n              local_58 = unaff_s8;\n              if (((uint)param_1[7] & 0x8000000) == 0) {\n                if (pppppppcVar3 < (code *******)0x2) {\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055c08;\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                else {\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                if (pppppppcVar3 < (code *******)0x2) {\nLAB_00055c6c:\n                  pppppppcVar28 = pppppppcVar33;\n                  unaff_s4 = local_60;\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055548;\n                }\n                else {\n                  cVar23 = *(code *)(pppppppcVar38 + 0x16);\nLAB_00055c20:\n                  pppppppcVar28 = pppppppcVar33;\n                  if (-1 < (char)cVar23) goto LAB_00055c6c;\n                }\n                pppppppcVar31 = local_54;\n                pppppppcVar42 = local_60;\n                unaff_s4 = pppppppcVar42;\n                if (unaff_s8 < (code *******)0x3fffffff) {\n                  param_4 = (code *******)((int)((int)unaff_s8 + 1) * 4);\n                  unaff_s5 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                  if (unaff_s5 == (code *******)0x0) {\nLAB_00055b9c:\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    local_150 = (code *******)0xc;\n                    pppppppcVar33 = pppppppcVar28;\n                  }\n                  else {\n                    pppppppcVar29 = (code *******)&local_d0;\n                    if (pppppppcVar42[0x13] == (code ******)0x0) {\n                      local_cc = (code *******)0x0;\n                      local_c8 = pppppppcVar31;\n                      local_c0 = 0;\n                      local_bc = 0;\n                      local_b8 = 0;\n                      local_d0 = unaff_s5;\n                      local_c4 = unaff_s8;\n                      param_5 = (code *******)FUN_0005421c(&local_b4);\n                      (*(code *)PTR_free_00079c24)(local_b8);\n                      if (param_5 == (code *******)0x0) {\n                        param_4 = (code *******)*unaff_s5;\n                        if (param_4 == (code *******)0x0) {\nLAB_00055b70:\n                          (*(code *)PTR_free_00079c24)(unaff_s5);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          pppppppcVar33 = pppppppcVar28;\n                          goto LAB_00055b04;\n                        }\nLAB_00055528:\n                        (*(code *)PTR_free_00079c24)(local_50);\n                        pppppppcVar33 = pppppppcVar28;\n                        unaff_s4 = pppppppcVar42;\n                        local_58 = unaff_s8;\n                        local_54 = pppppppcVar31;\n                        local_50 = unaff_s5;\n                        goto LAB_00055548;\n                      }\nLAB_00055acc:\n                      param_4 = (code *******)0x0;\n                      pppppppcVar33 = pppppppcVar28;\n                      unaff_s4 = pppppppcVar42;\n                    }\n                    else {\n                      param_4 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                      if (param_4 == (code *******)0x0) goto LAB_00055b9c;\n                      unaff_s7 = (code *******)&local_d0;\n                      pcVar8 = (code *)(PTR_DAT_000799a4 + 0x421c);\n                      pcVar9 = (code *)(PTR_DAT_000799a4 + -0x6bc0);\n                      pppppppcVar33 = pppppppcVar28;\n                      while( true ) {\n                        pppppppcVar28 = (code *******)((int)unaff_s8 + 1);\n                        param_6 = (code *******)((int)pppppppcVar28 * 4);\n                        pppppppcVar30 = param_6;\n                        (*(code *)PTR_memset_00079b00)(param_4,0);\n                        local_c0 = 0;\n                        local_bc = 0;\n                        local_b8 = 0;\n                        pppppppcVar29 = unaff_s7;\n                        local_d0 = unaff_s5;\n                        local_cc = param_4;\n                        local_c8 = pppppppcVar31;\n                        local_c4 = unaff_s8;\n                        param_5 = (code *******)(*pcVar8)(&local_b4);\n                        (*(code *)PTR_free_00079c24)(local_b8);\n                        unaff_s4 = pppppppcVar28;\n                        if (param_5 != (code *******)0x0) break;\n                        if ((*unaff_s5 != (code ******)0x0) ||\n                           (param_6 = param_6 + -1, *param_4 != (code ******)0x0)) {\n                          pppppppcVar29 = unaff_s5;\n                          pppppppcVar30 = param_4;\n                          param_5 = (code *******)FUN_000520d0(pppppppcVar42);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          if (param_5 != (code *******)0x0) goto LAB_00055acc;\n                          goto LAB_00055528;\n                        }\n                        param_6 = (code *******)((int)local_50 + (int)param_6);\n                        do {\n                          while( true ) {\n                            unaff_s8 = (code *******)((int)unaff_s8 + -1);\n                            if ((int)unaff_s8 < 0) goto LAB_00055b70;\n                            pppppppcVar29 = (code *******)param_6[-1];\n                            if (pppppppcVar29 != (code *******)0x0) break;\n                            param_6 = param_6 + -1;\n                          }\n                          param_6 = param_6 + -1;\n                        } while (((uint)pppppppcVar29[0xd] & 0x8000000) == 0);\n                        pppppppcVar31 = (code *******)(*pcVar9)(&local_b4,pppppppcVar29,unaff_s8);\n                        pppppppcVar33 = pppppppcVar28;\n                      }\n                    }\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    (*(code *)PTR_free_00079c24)(param_4);\n                    local_150 = param_5;\n                    if (param_5 == (code *******)0x1) goto LAB_00055b04;\n                  }\n                }\n                else {\n                  local_150 = (code *******)0xc;\n                  pppppppcVar33 = pppppppcVar28;\n                }\n                goto LAB_000557e4;\n              }\n              if (pppppppcVar38[0x13] != (code ******)0x0) {\n                pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                pppppppcVar30 = unaff_s8;\n                local_54 = (code *******)FUN_00049440(&local_b4);\n                goto LAB_00055c6c;\n              }\nLAB_00055c08:\n              if ((((uint)param_1[7] & 0x8000000) == 0) && ((code *******)0x1 < pppppppcVar3)) {\n                cVar23 = *(code *)(pppppppcVar38 + 0x16);\n                goto LAB_00055c20;\n              }\nLAB_00055548:\n              if (pppppppcVar3 == (code *******)0x0) goto LAB_000557e4;\n              if (pppppppcVar3 < (code *******)0x2) {\n                *param_8 = (code ******)0x0;\n                param_8[1] = (code ******)local_58;\n                goto LAB_000555ac;\n              }\n              pppppppcVar29 = param_8 + 2;\n              do {\n                pppppppcVar29[1] = (code ******)0xffffffff;\n                *pppppppcVar29 = (code ******)0xffffffff;\n                pppppppcVar29 = pppppppcVar29 + 2;\n              } while (pppppppcVar29 != param_8 + (int)pppppppcVar3 * 2);\n              *param_8 = (code ******)0x0;\n              param_8[1] = (code ******)local_58;\n              if (((uint)param_1[7] & 0x8000000) != 0) {\nLAB_000555ac:\n                pppppppcVar33 = param_8;\n                do {\n                  pppppppcVar29 = (code *******)*pppppppcVar33;\n                  if (pppppppcVar29 != (code *******)0xffffffff) {\n                    if (local_68 != '\0') {\n                      pppppppcVar34 = local_94;\n                      if (pppppppcVar29 != local_98) {\n                        pppppppcVar34 = *(code ********)(local_a8 + (int)pppppppcVar29 * 4);\n                      }\n                      *pppppppcVar33 = (code ******)pppppppcVar34;\n                      pppppppcVar29 = local_94;\n                      if (local_98 != (code *******)pppppppcVar33[1]) {\n                        pppppppcVar29 = *(code ********)(local_a8 + (int)pppppppcVar33[1] * 4);\n                      }\n                      pppppppcVar33[1] = (code ******)pppppppcVar29;\n                    }\n                    *pppppppcVar33 = (code ******)((int)local_dc + (int)*pppppppcVar33);\n                    pppppppcVar29 = (code *******)((int)local_dc + (int)pppppppcVar33[1]);\n                    pppppppcVar33[1] = (code ******)pppppppcVar29;\n                  }\n                  pppppppcVar33 = pppppppcVar33 + 2;\n                } while (pppppppcVar33 != param_8 + (int)pppppppcVar3 * 2);\n                if (0 < local_118) {\n                  pppppppcVar33 = param_8 + (int)pppppppcVar3 * 2;\n                  do {\n                    *pppppppcVar33 = (code ******)0xffffffff;\n                    pppppppcVar33[1] = (code ******)0xffffffff;\n                    pppppppcVar33 = pppppppcVar33 + 2;\n                  } while (pppppppcVar33 != param_8 + (int)param_7 * 2);\n                }\n                pppppppcVar30 = local_dc;\n                pppppppcVar33 = param_8;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar38[0x21] != (code ******)0x0) {\n                  pppppppcVar30 = (code *******)((int)pppppppcVar3 + -1);\n                  pppppppcVar34 = (code *******)0x0;\n                  pppppppcVar3 = param_8;\n                  while( true ) {\n                    pppppppcVar29 = (code *******)((int)pppppppcVar34 * 4);\n                    if (pppppppcVar30 == pppppppcVar34) break;\n                    if (*(code ********)((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) !=\n                        pppppppcVar34) {\n                      pppppppcVar3[2] =\n                           param_8[(int)((int)*(code ********)\n                                               ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1)\n                                   * 2];\n                      pppppppcVar3[3] =\n                           param_8[((int)*(code ******)\n                                          ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1) * 2 +\n                                   1];\n                    }\n                    pppppppcVar34 = (code *******)((int)pppppppcVar34 + 1);\n                    pppppppcVar3 = pppppppcVar3 + 2;\n                  }\n                }\n                goto LAB_000557e4;\n              }\n              if ((char)*(code *)(pppppppcVar38 + 0x16) < '\0') {\n                local_168 = (uint)(0 < (int)pppppppcVar38[0x13]);\n              }\n              else {\n                local_168 = 0;\n              }\n              pppppppcVar29 = &local_b4;\n              pppppppcVar30 = pppppppcVar3;\n              pppppppcVar33 = param_8;\n              local_150 = (code *******)FUN_0004f4a0(param_1);\n              if (local_150 == (code *******)0x0) goto LAB_000555ac;\n            }\n          }\n          else if (local_90 < 0x3fffffff) {\n            local_50 = (code *******)(*(code *)PTR_malloc_00079b54)((local_90 + 1) * 4);\n            if (local_50 != (code *******)0x0) goto LAB_00055a40;\n            local_150 = (code *******)0xc;\n            param_6 = pppppppcVar36;\n          }\n          else {\n            local_150 = (code *******)0xc;\n            param_6 = pppppppcVar36;\n          }\n        }\n        else {\n          unaff_s5 = (code *******)((int)ppppppcVar35 * 8);\n          if (pppppppcVar36 < (code *******)0xccccccd) {\n            unaff_s4 = (code *******)(*(code *)PTR_malloc_00079b54)((int)ppppppcVar35 * 0x28);\n            local_40 = unaff_s4;\n            local_30 = (*(code *)PTR_malloc_00079b54)(unaff_s5);\n            if ((unaff_s4 != (code *******)0x0) && (local_30 != 0)) goto LAB_000559f0;\n          }\n          local_150 = (code *******)0xc;\n          param_6 = pppppppcVar36;\n        }\nLAB_000557e4:\n        (*(code *)PTR_free_00079c24)(local_50);\n        param_1 = pppppppcVar30;\n        if (pppppppcVar38[0x13] != (code ******)0x0) {\n          FUN_0004b7e8(&local_b4);\n          (*(code *)PTR_free_00079c24)(local_30);\n          (*(code *)PTR_free_00079c24)(local_40);\n          param_1 = pppppppcVar30;\n        }\n        FUN_0004b2bc(&local_b4);\n        pppppppcStack_1a0 = param_4;\n        pppppppcStack_19c = pppppppcVar31;\n      }" ({ "{") (expression_statement "param_5 = pppppppcVar3;" (assignment_expression "param_5 = pppppppcVar3" (identifier "param_5") (= "=") (identifier "pppppppcVar3")) (; ";")) (expression_statement "pppppppcVar3 = (code *******)((int)param_7 - local_118);" (assignment_expression "pppppppcVar3 = (code *******)((int)param_7 - local_118)" (identifier "pppppppcVar3") (= "=") (cast_expression "(code *******)((int)param_7 - local_118)" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "((int)param_7 - local_118)" (( "(") (binary_expression "(int)param_7 - local_118" (cast_expression "(int)param_7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_7")) (- "-") (identifier "local_118")) () ")")))) (; ";")) (if_statement "if (pppppppcVar3 == (code *******)0x0) {\n          pppppppcVar34 = (code *******)(uint)(pppppppcVar38[0x13] != (code ******)0x0);\n        }\n        else {\n          pppppppcVar34 = (code *******)0x1;\n        }" (if "if") (parenthesized_expression "(pppppppcVar3 == (code *******)0x0)" (( "(") (binary_expression "pppppppcVar3 == (code *******)0x0" (identifier "pppppppcVar3") (== "==") (cast_expression "(code *******)0x0" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          pppppppcVar34 = (code *******)(uint)(pppppppcVar38[0x13] != (code ******)0x0);\n        }" ({ "{") (expression_statement "pppppppcVar34 = (code *******)(uint)(pppppppcVar38[0x13] != (code ******)0x0);" (assignment_expression "pppppppcVar34 = (code *******)(uint)(pppppppcVar38[0x13] != (code ******)0x0)" (identifier "pppppppcVar34") (= "=") (cast_expression "(code *******)(uint)(pppppppcVar38[0x13] != (code ******)0x0)" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (call_expression "(uint)(pppppppcVar38[0x13] != (code ******)0x0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(pppppppcVar38[0x13] != (code ******)0x0)" (( "(") (binary_expression "pppppppcVar38[0x13] != (code ******)0x0" (subscript_expression "pppppppcVar38[0x13]" (identifier "pppppppcVar38") ([ "[") (number_literal "0x13") (] "]")) (!= "!=") (cast_expression "(code ******)0x0" (( "(") (type_descriptor "code ******" (type_identifier "code") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n          pppppppcVar34 = (code *******)0x1;\n        }" (else "else") (compound_statement "{\n          pppppppcVar34 = (code *******)0x1;\n        }" ({ "{") (expression_statement "pppppppcVar34 = (code *******)0x1;" (assignment_expression "pppppppcVar34 = (code *******)0x1" (identifier "pppppppcVar34") (= "=") (cast_expression "(code *******)0x1" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x1"))) (; ";")) (} "}")))) (expression_statement "ppppppcVar32 = param_1[5];" (assignment_expression "ppppppcVar32 = param_1[5]" (identifier "ppppppcVar32") (= "=") (subscript_expression "param_1[5]" (identifier "param_1") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "local_6c = (byte)((uint)((int)param_1[3] << 9) >> 0x1f);" (assignment_expression "local_6c = (byte)((uint)((int)param_1[3] << 9) >> 0x1f)" (identifier "local_6c") (= "=") (call_expression "(byte)((uint)((int)param_1[3] << 9) >> 0x1f)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((uint)((int)param_1[3] << 9) >> 0x1f)" (( "(") (binary_expression "(uint)((int)param_1[3] << 9) >> 0x1f" (call_expression "(uint)((int)param_1[3] << 9)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int)param_1[3] << 9)" (( "(") (binary_expression "(int)param_1[3] << 9" (cast_expression "(int)param_1[3]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]"))) (<< "<<") (number_literal "9")) () ")"))) (>> ">>") (number_literal "0x1f")) () ")")))) (; ";")) (expression_statement "local_64 = (code *******)pppppppcVar38[0x17];" (assignment_expression "local_64 = (code *******)pppppppcVar38[0x17]" (identifier "local_64") (= "=") (cast_expression "(code *******)pppppppcVar38[0x17]" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (subscript_expression "pppppppcVar38[0x17]" (identifier "pppppppcVar38") ([ "[") (number_literal "0x17") (] "]")))) (; ";")) (expression_statement "pppppppcVar31 = (code *******)((int)pppppppcVar38[2] + 1);" (assignment_expression "pppppppcVar31 = (code *******)((int)pppppppcVar38[2] + 1)" (identifier "pppppppcVar31") (= "=") (cast_expression "(code *******)((int)pppppppcVar38[2] + 1)" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "((int)pppppppcVar38[2] + 1)" (( "(") (binary_expression "(int)pppppppcVar38[2] + 1" (cast_expression "(int)pppppppcVar38[2]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "pppppppcVar38[2]" (identifier "pppppppcVar38") ([ "[") (number_literal "2") (] "]"))) (+ "+") (number_literal "1")) () ")")))) (; ";")) (if_statement "if ((int)pppppppcVar38[2] + 1 < (int)local_64) {\n          pppppppcVar31 = local_64;\n        }" (if "if") (parenthesized_expression "((int)pppppppcVar38[2] + 1 < (int)local_64)" (( "(") (binary_expression "(int)pppppppcVar38[2] + 1 < (int)local_64" (binary_expression "(int)pppppppcVar38[2] + 1" (cast_expression "(int)pppppppcVar38[2]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "pppppppcVar38[2]" (identifier "pppppppcVar38") ([ "[") (number_literal "2") (] "]"))) (+ "+") (number_literal "1")) (< "<") (cast_expression "(int)local_64" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_64"))) () ")")) (compound_statement "{\n          pppppppcVar31 = local_64;\n        }" ({ "{") (expression_statement "pppppppcVar31 = local_64;" (assignment_expression "pppppppcVar31 = local_64" (identifier "pppppppcVar31") (= "=") (identifier "local_64")) (; ";")) (} "}"))) (expression_statement "pppppppcVar30 = (code *******)(uint)((int)param_3 + 1 < (int)pppppppcVar31);" (assignment_expression "pppppppcVar30 = (code *******)(uint)((int)param_3 + 1 < (int)pppppppcVar31)" (identifier "pppppppcVar30") (= "=") (cast_expression "(code *******)(uint)((int)param_3 + 1 < (int)pppppppcVar31)" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (call_expression "(uint)((int)param_3 + 1 < (int)pppppppcVar31)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int)param_3 + 1 < (int)pppppppcVar31)" (( "(") (binary_expression "(int)param_3 + 1 < (int)pppppppcVar31" (binary_expression "(int)param_3 + 1" (cast_expression "(int)param_3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_3")) (+ "+") (number_literal "1")) (< "<") (cast_expression "(int)pppppppcVar31" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppcVar31"))) () ")"))))) (; ";")) (expression_statement "pppppppcVar33 = (code *******)0x1;" (assignment_expression "pppppppcVar33 = (code *******)0x1" (identifier "pppppppcVar33") (= "=") (cast_expression "(code *******)0x1" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x1"))) (; ";")) (expression_statement "local_69 = local_6c;" (assignment_expression "local_69 = local_6c" (identifier "local_69") (= "=") (identifier "local_6c")) (; ";")) (if_statement "if (ppppppcVar32 != (code ******)0x0) {\n          local_69 = 1;\n        }" (if "if") (parenthesized_expression "(ppppppcVar32 != (code ******)0x0)" (( "(") (binary_expression "ppppppcVar32 != (code ******)0x0" (identifier "ppppppcVar32") (!= "!=") (cast_expression "(code ******)0x0" (( "(") (type_descriptor "code ******" (type_identifier "code") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          local_69 = 1;\n        }" ({ "{") (expression_statement "local_69 = 1;" (assignment_expression "local_69 = 1" (identifier "local_69") (= "=") (number_literal "1")) (; ";")) (} "}"))) (expression_statement "local_6b = (byte)((uint)((int)pppppppcVar38[0x16] << 2) >> 0x1f);" (assignment_expression "local_6b = (byte)((uint)((int)pppppppcVar38[0x16] << 2) >> 0x1f)" (identifier "local_6b") (= "=") (call_expression "(byte)((uint)((int)pppppppcVar38[0x16] << 2) >> 0x1f)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((uint)((int)pppppppcVar38[0x16] << 2) >> 0x1f)" (( "(") (binary_expression "(uint)((int)pppppppcVar38[0x16] << 2) >> 0x1f" (call_expression "(uint)((int)pppppppcVar38[0x16] << 2)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int)pppppppcVar38[0x16] << 2)" (( "(") (binary_expression "(int)pppppppcVar38[0x16] << 2" (cast_expression "(int)pppppppcVar38[0x16]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "pppppppcVar38[0x16]" (identifier "pppppppcVar38") ([ "[") (number_literal "0x16") (] "]"))) (<< "<<") (number_literal "2")) () ")"))) (>> ">>") (number_literal "0x1f")) () ")")))) (; ";")) (expression_statement "local_6a = (byte)((uint)((int)pppppppcVar38[0x16] << 3) >> 0x1f);" (assignment_expression "local_6a = (byte)((uint)((int)pppppppcVar38[0x16] << 3) >> 0x1f)" (identifier "local_6a") (= "=") (call_expression "(byte)((uint)((int)pppppppcVar38[0x16] << 3) >> 0x1f)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((uint)((int)pppppppcVar38[0x16] << 3) >> 0x1f)" (( "(") (binary_expression "(uint)((int)pppppppcVar38[0x16] << 3) >> 0x1f" (call_expression "(uint)((int)pppppppcVar38[0x16] << 3)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int)pppppppcVar38[0x16] << 3)" (( "(") (binary_expression "(int)pppppppcVar38[0x16] << 3" (cast_expression "(int)pppppppcVar38[0x16]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "pppppppcVar38[0x16]" (identifier "pppppppcVar38") ([ "[") (number_literal "0x16") (] "]"))) (<< "<<") (number_literal "3")) () ")"))) (>> ">>") (number_literal "0x1f")) () ")")))) (; ";")) (expression_statement "pppppppcVar29 = (code *******)((int)param_3 + 1);" (assignment_expression "pppppppcVar29 = (code *******)((int)param_3 + 1)" (identifier "pppppppcVar29") (= "=") (cast_expression "(code *******)((int)param_3 + 1)" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "((int)param_3 + 1)" (( "(") (binary_expression "(int)param_3 + 1" (cast_expression "(int)param_3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_3")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (if_statement "if (pppppppcVar30 == (code *******)0x0) {\n          pppppppcVar29 = pppppppcVar31;\n        }" (if "if") (parenthesized_expression "(pppppppcVar30 == (code *******)0x0)" (( "(") (binary_expression "pppppppcVar30 == (code *******)0x0" (identifier "pppppppcVar30") (== "==") (cast_expression "(code *******)0x0" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          pppppppcVar29 = pppppppcVar31;\n        }" ({ "{") (expression_statement "pppppppcVar29 = pppppppcVar31;" (assignment_expression "pppppppcVar29 = pppppppcVar31" (identifier "pppppppcVar29") (= "=") (identifier "pppppppcVar31")) (; ";")) (} "}"))) (expression_statement "local_b4 = param_2;" (assignment_expression "local_b4 = param_2" (identifier "local_b4") (= "=") (identifier "param_2")) (; ";")) (expression_statement "local_88 = param_3;" (assignment_expression "local_88 = param_3" (identifier "local_88") (= "=") (identifier "param_3")) (; ";")) (expression_statement "local_84 = param_3;" (assignment_expression "local_84 = param_3" (identifier "local_84") (= "=") (identifier "param_3")) (; ";")) (expression_statement "local_80 = param_3;" (assignment_expression "local_80 = param_3" (identifier "local_80") (= "=") (identifier "param_3")) (; ";")) (expression_statement "local_7c = param_3;" (assignment_expression "local_7c = param_3" (identifier "local_7c") (= "=") (identifier "param_3")) (; ";")) (expression_statement "local_74 = ppppppcVar32;" (assignment_expression "local_74 = ppppppcVar32" (identifier "local_74") (= "=") (identifier "ppppppcVar32")) (; ";")) (expression_statement "local_150 = (code *******)FUN_00046d2c(&local_b4);" (assignment_expression "local_150 = (code *******)FUN_00046d2c(&local_b4)" (identifier "local_150") (= "=") (cast_expression "(code *******)FUN_00046d2c(&local_b4)" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (call_expression "FUN_00046d2c(&local_b4)" (identifier "FUN_00046d2c") (argument_list "(&local_b4)" (( "(") (pointer_expression "&local_b4" (& "&") (identifier "local_b4")) () ")"))))) (; ";")) (expression_statement "pppppppcVar31 = pppppppcVar34;" (assignment_expression "pppppppcVar31 = pppppppcVar34" (identifier "pppppppcVar31") (= "=") (identifier "pppppppcVar34")) (; ";")) (expression_statement "param_6 = param_6;" (assignment_expression "param_6 = param_6" (identifier "param_6") (= "=") (identifier "param_6")) (; ";")) (if_statement "if (local_150 != (code *******)0x0) goto LAB_000557e4;" (if "if") (parenthesized_expression "(local_150 != (code *******)0x0)" (( "(") (binary_expression "local_150 != (code *******)0x0" (identifier "local_150") (!= "!=") (cast_expression "(code *******)0x0" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_000557e4;" (goto "goto") (statement_identifier "LAB_000557e4") (; ";"))) (expression_statement "local_70 = pppppppcVar38 + 0x18;" (assignment_expression "local_70 = pppppppcVar38 + 0x18" (identifier "local_70") (= "=") (binary_expression "pppppppcVar38 + 0x18" (identifier "pppppppcVar38") (+ "+") (number_literal "0x18"))) (; ";")) (expression_statement "local_66 = (byte)((uint)((int)pppppppcVar38[0x16] << 4) >> 0x1f);" (assignment_expression "local_66 = (byte)((uint)((int)pppppppcVar38[0x16] << 4) >> 0x1f)" (identifier "local_66") (= "=") (call_expression "(byte)((uint)((int)pppppppcVar38[0x16] << 4) >> 0x1f)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((uint)((int)pppppppcVar38[0x16] << 4) >> 0x1f)" (( "(") (binary_expression "(uint)((int)pppppppcVar38[0x16] << 4) >> 0x1f" (call_expression "(uint)((int)pppppppcVar38[0x16] << 4)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int)pppppppcVar38[0x16] << 4)" (( "(") (binary_expression "(int)pppppppcVar38[0x16] << 4" (cast_expression "(int)pppppppcVar38[0x16]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "pppppppcVar38[0x16]" (identifier "pppppppcVar38") ([ "[") (number_literal "0x16") (] "]"))) (<< "<<") (number_literal "4")) () ")"))) (>> ">>") (number_literal "0x1f")) () ")")))) (; ";")) (expression_statement "pppppppcVar2 = (code *******)0x0;" (assignment_expression "pppppppcVar2 = (code *******)0x0" (identifier "pppppppcVar2") (= "=") (cast_expression "(code *******)0x0" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_98 = pppppppcVar2;" (assignment_expression "local_98 = pppppppcVar2" (identifier "local_98") (= "=") (identifier "pppppppcVar2")) (; ";")) (if_statement "if ((local_69 == 0) && (local_b0 = param_2, (int)pppppppcVar38[0x17] < 2)) {\n          local_98 = param_3;\n        }" (if "if") (parenthesized_expression "((local_69 == 0) && (local_b0 = param_2, (int)pppppppcVar38[0x17] < 2))" (( "(") (binary_expression "(local_69 == 0) && (local_b0 = param_2, (int)pppppppcVar38[0x17] < 2)" (parenthesized_expression "(local_69 == 0)" (( "(") (binary_expression "local_69 == 0" (identifier "local_69") (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(local_b0 = param_2, (int)pppppppcVar38[0x17] < 2)" (( "(") (comma_expression "local_b0 = param_2, (int)pppppppcVar38[0x17] < 2" (assignment_expression "local_b0 = param_2" (identifier "local_b0") (= "=") (identifier "param_2")) (, ",") (binary_expression "(int)pppppppcVar38[0x17] < 2" (cast_expression "(int)pppppppcVar38[0x17]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "pppppppcVar38[0x17]" (identifier "pppppppcVar38") ([ "[") (number_literal "0x17") (] "]"))) (< "<") (number_literal "2"))) () ")"))) () ")")) (compound_statement "{\n          local_98 = param_3;\n        }" ({ "{") (expression_statement "local_98 = param_3;" (assignment_expression "local_98 = param_3" (identifier "local_98") (= "=") (identifier "param_3")) (; ";")) (} "}"))) (expression_statement "local_7c = param_6;" (assignment_expression "local_7c = param_6" (identifier "local_7c") (= "=") (identifier "param_6")) (; ";")) (expression_statement "local_80 = param_6;" (assignment_expression "local_80 = param_6" (identifier "local_80") (= "=") (identifier "param_6")) (; ";")) (expression_statement "local_67 = (byte)((uint)((int)param_1[7] << 7) >> 0x1f);" (assignment_expression "local_67 = (byte)((uint)((int)param_1[7] << 7) >> 0x1f)" (identifier "local_67") (= "=") (call_expression "(byte)((uint)((int)param_1[7] << 7) >> 0x1f)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((uint)((int)param_1[7] << 7) >> 0x1f)" (( "(") (binary_expression "(uint)((int)param_1[7] << 7) >> 0x1f" (call_expression "(uint)((int)param_1[7] << 7)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int)param_1[7] << 7)" (( "(") (binary_expression "(int)param_1[7] << 7" (cast_expression "(int)param_1[7]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "param_1[7]" (identifier "param_1") ([ "[") (number_literal "7") (] "]"))) (<< "<<") (number_literal "7")) () ")"))) (>> ">>") (number_literal "0x1f")) () ")")))) (; ";")) (expression_statement "ppppppcVar35 = pppppppcVar38[0x13];" (assignment_expression "ppppppcVar35 = pppppppcVar38[0x13]" (identifier "ppppppcVar35") (= "=") (subscript_expression "pppppppcVar38[0x13]" (identifier "pppppppcVar38") ([ "[") (number_literal "0x13") (] "]"))) (; ";")) (expression_statement "pppppppcVar36 = (code *******)((int)ppppppcVar35 * 2);" (assignment_expression "pppppppcVar36 = (code *******)((int)ppppppcVar35 * 2)" (identifier "pppppppcVar36") (= "=") (cast_expression "(code *******)((int)ppppppcVar35 * 2)" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "((int)ppppppcVar35 * 2)" (( "(") (binary_expression "(int)ppppppcVar35 * 2" (cast_expression "(int)ppppppcVar35" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppppppcVar35")) (* "*") (number_literal "2")) () ")")))) (; ";")) (expression_statement "local_5c = param_9;" (assignment_expression "local_5c = param_9" (identifier "local_5c") (= "=") (identifier "param_9")) (; ";")) (expression_statement "local_58 = (code *******)0xffffffff;" (assignment_expression "local_58 = (code *******)0xffffffff" (identifier "local_58") (= "=") (cast_expression "(code *******)0xffffffff" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0xffffffff"))) (; ";")) (expression_statement "local_94 = local_98;" (assignment_expression "local_94 = local_98" (identifier "local_94") (= "=") (identifier "local_98")) (; ";")) (if_statement "if ((int)pppppppcVar36 < 1) {\nLAB_000559f0:\n          local_3c = 1;\n          local_44 = pppppppcVar36;\n          local_34 = pppppppcVar36;\n          if ((pppppppcVar3 < (code *******)0x2) && (((uint)pppppppcVar38[0x16] & 0x40000000) == 0))\n          {\n            local_50 = (code *******)0x0;\nLAB_00055a40:\n            local_78 = 6;\n            if (((uint)param_9 & 1) != 0) {\n              local_78 = 4;\n            }\n            pppppppcVar24 = (code *******)0x1;\n            pppppppcVar25 = param_4;\n            if ((int)param_5 < (int)param_4) {\n              pppppppcVar24 = (code *******)0xffffffff;\n              pppppppcVar25 = param_5;\n            }\n            pppppppcVar26 = param_5;\n            if ((int)param_5 <= (int)param_4) {\n              pppppppcVar26 = param_4;\n            }\n            ppppppcVar35 = pppppppcVar38[0x17];\n            uVar16 = 8;\n            if (local_148 != (code *******)0x0) {\n              if (ppppppcVar35 == (code ******)0x1) {\n                pppppppcVar28 = (code *******)0x4;\n              }\n              else {\n                pppppppcVar28 = pppppppcVar2;\n                if ((-1 < (int)param_1[3] << 9) && (ppppppcVar32 == (code ******)0x0)) {\n                  pppppppcVar28 = (code *******)0x4;\n                }\n              }\n              pppppppcVar29 = (code *******)0x0;\n              if ((int)param_4 <= (int)param_5) {\n                pppppppcVar29 = (code *******)0x2;\n              }\n              uVar16 = (uint)(ppppppcVar32 != (code ******)0x0) | (uint)pppppppcVar28 |\n                       (uint)pppppppcVar29;\n            }\n            local_dc = param_4;\n            if ((int)param_4 < (int)pppppppcVar25) {\n              local_150 = (code *******)0x1;\n              param_6 = pppppppcVar36;\n            }\n            else if ((int)pppppppcVar26 < (int)param_4) {\n              local_150 = (code *******)0x1;\n              param_4 = (code *******)(uint)((int)param_5 < (int)param_4);\n              param_6 = pppppppcVar36;\n            }\n            else {\n              pppppppcVar36 = (code *******)&local_dc;\n              if ((code *******)(uint)((int)param_5 < (int)param_4) != (code *******)0x0) {\n                pppppppcVar36 = (code *******)0x0;\n              }\n              pcVar4 = (code *)(PTR_DAT_000799a4 + -0x2b7c);\n              piVar5 = (int *)(PTR_s_nt0_000795b8 + (uVar16 - 4) * 4 + 0x6e38);\nLAB_00055b44:\n              if (uVar16 - 4 < 5) {\n                    \n                    \n                pppppppcVar29 = (code *******)(*(code *)(&_gp_1 + *piVar5))();\n                return pppppppcVar29;\n              }\n              param_5 = &local_b4;\n              pppppppcVar28 = pppppppcVar33;\n              while( true ) {\n                param_4 = local_dc;\n                pppppppcVar33 = (code *******)((int)local_dc - local_9c);\n                pppppppcVar30 = param_9;\n                pppppppcVar31 = pppppppcVar2;\n                param_6 = local_148;\n                unaff_s4 = param_3;\n                unaff_s5 = pppppppcVar24;\n                unaff_s7 = pppppppcVar26;\n                if (local_94 <= pppppppcVar33) {\n                  pppppppcVar29 = local_dc;\n                  local_150 = (code *******)(*pcVar4)(param_5);\n                  pppppppcVar33 = pppppppcVar28;\n                  if (local_150 != (code *******)0x0) goto LAB_000557e4;\n                  pppppppcVar33 = (code *******)((int)param_4 - local_9c);\n                }\n                if ((int)param_4 < (int)param_3) {\n                  uVar7 = (uint)(byte)*(code *)((int)pppppppcVar33 + (int)local_b0);\n                }\n                else {\n                  uVar7 = 0;\n                }\n                param_4 = (code *******)((int)param_4 + (int)pppppppcVar24);\n                if (*(code *)((int)local_148 + uVar7) != (code)0x0) break;\n                pppppppcVar33 = pppppppcVar28;\n                local_dc = param_4;\n                if ((int)param_4 < (int)pppppppcVar25) {\n                  local_150 = (code *******)0x1;\n                  goto LAB_000557e4;\n                }\n                if ((code *******)(uint)((int)pppppppcVar26 < (int)param_4) != (code *******)0x0) {\n                  local_150 = (code *******)0x1;\n                  param_4 = (code *******)(uint)((int)pppppppcVar26 < (int)param_4);\n                  goto LAB_000557e4;\n                }\n              }\n              while( true ) {\n                pppppppcVar29 = local_dc;\n                pppppppcVar30 = param_9;\n                pppppppcVar6 = (code *******)(*pcVar4)(&local_b4);\n                pppppppcVar14 = local_60;\n                pppppppcVar42 = local_8c;\n                pppppppcVar33 = pppppppcVar28;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar6 != (code *******)0x0) goto LAB_000557e4;\n                if (((ppppppcVar35 != (code ******)0x1) && (local_98 != (code *******)0x0)) &&\n                   (*local_ac == -1)) goto LAB_00055b1c;\n                local_3c = 0;\n                local_48 = 0;\n                local_4c = (code *******)0x0;\n                local_138 = local_8c;\n                local_d8 = (code *******)0x0;\n                unaff_s7 = (code *******)local_60[9];\n                pppppppcVar30 = local_5c;\n                param_4 = pppppppcVar14;\n                if (((uint)unaff_s7[0xd] & 0x1000000) == 0) break;\n                pppppppcVar29 = (code *******)((int)local_8c + -1);\n                pppppppcVar33 = (code *******)FUN_00049110(&local_b4);\n                if (((uint)pppppppcVar33 & 1) == 0) {\n                  if (pppppppcVar33 == (code *******)0x0) break;\n                  if (((uint)pppppppcVar33 & 6) == 6) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xc];\n                    goto LAB_00054d1c;\n                  }\n                  if (((uint)pppppppcVar33 & 2) != 0) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xb];\n                    goto LAB_00054d1c;\n                  }\n                  pppppppcVar28 = pppppppcVar33;\n                  if (((uint)pppppppcVar33 & 4) == 0) break;\n                  pppppppcVar30 = (code *******)unaff_s7[10];\n                  pppppppcVar29 = pppppppcVar14;\n                  unaff_s7 = (code *******)FUN_0004ae34(&local_d8);\n                  pppppppcVar28 = pppppppcVar33;\n                  if (unaff_s7 != (code *******)0x0) break;\n                  if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                }\n                else {\n                  unaff_s7 = (code *******)pppppppcVar14[10];\nLAB_00054d1c:\n                  pppppppcVar28 = (code *******)PTR_s_nt0_000795b8;\n                  if (unaff_s7 != (code *******)0x0) break;\n                }\n                pppppppcVar28 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                local_dc = (code *******)\n                           (*(code *)PTR___assert_fail_000799f8)\n                                     (PTR_s_nt0_000795b8 + 0x71a0,pppppppcVar29,0x435);\n                if (local_dc == pppppppcVar26) {\n                  if ((int)local_dc < (int)param_3) {\n                    uVar7 = (uint)(byte)*(code *)((int)local_dc + (int)param_2);\n                  }\n                  else {\n                    uVar7 = 0;\n                  }\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    uVar7 = (uint)*(byte *)((int)ppppppcVar32 + uVar7);\n                  }\n                  if (*(code *)((int)local_148 + uVar7) == (code)0x0) {\n                    local_150 = (code *******)0x1;\n                    pppppppcVar30 = param_9;\n                    pppppppcVar33 = pppppppcVar28;\n                    goto LAB_000557e4;\n                  }\n                }\n              }\n              pppppppcVar33 = pppppppcVar28;\n              bVar1 = pppppppcVar36 != (code *******)0x0;\n              if ((local_50 == (code *******)0x0) ||\n                 (local_50[(int)pppppppcVar42] = (code ******)unaff_s7,\n                 pppppppcVar14[0x13] == (code ******)0x0)) {\nLAB_00054d50:\n                if ((int)unaff_s7[0xd] << 4 < 0) {\n                  if ((((uint)unaff_s7[0xd] & 0x1000000) == 0) ||\n                     (pppppppcVar29 = unaff_s7, pppppppcVar30 = pppppppcVar42,\n                     iVar18 = FUN_00049440(&local_b4), iVar18 != 0)) {\n                    unaff_s8 = pppppppcVar42;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                  }\n                  else {\n                    pppppppcVar42 = (code *******)0xffffffff;\n                    pppppppcVar28 = (code *******)0x0;\n                  }\n                }\n                else {\n                  pppppppcVar42 = (code *******)0xffffffff;\n                  pppppppcVar28 = (code *******)0x0;\n                }\n                pcVar8 = (code *)(PTR_DAT_000799a4 + -0x7144);\n                pcVar9 = (code *)(PTR_DAT_000799a4 + -0x1980);\n                pcVar10 = (code *)(PTR_DAT_000799a4 + -0x2f9c);\n                unaff_s8 = pppppppcVar42;\n                local_144 = pppppppcVar36;\n                while( true ) {\n                  uVar44 = CONCAT44(local_98,local_84);\n                  unaff_s5 = (code *******)((int)local_8c + 1);\n                  pppppppcVar29 = local_8c;\n                  if ((int)local_7c <= (int)local_8c) break;\n                  if (((int)local_90 <= (int)unaff_s5) && ((int)local_90 < (int)local_84))\n                  goto LAB_00054e94;\n                  if ((int)local_98 <= (int)unaff_s5) {\n                    while ((int)((ulonglong)uVar44 >> 0x20) < (int)uVar44) {\nLAB_00054e94:\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 2);\n                      local_d8 = (code *******)(*pcVar8)(&local_b4);\n                      if (local_d8 == (code *******)0x0) break;\n                      pppppppcVar14 = param_4;\n                      if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                      pppppppcVar33 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                      pppppppcVar30 = (code *******)0x46c;\n                      pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                      uVar44 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0);\n                      pppppppcVar28 = pppppppcVar38;\n                    }\n                  }\n                  pppppppcVar42 = local_60;\n                  if ((int)unaff_s7[0xd] << 5 < 0) {\n                    pppppppcVar31 = pppppppcVar42;\n                    if (0 < (int)unaff_s7[2]) {\n                      pcVar11 = (code *)(PTR_DAT_000799a4 + -0x6fdc);\n                      pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6ef0);\n                      param_6 = (code *******)0x0;\n                      do {\n                        param_5 = (code *******)unaff_s7[3][(int)param_6];\n                        ppppppcVar39 = *pppppppcVar42;\n                        pppppcVar13 = ppppppcVar39[(int)param_5 * 2 + 1];\n                        if (((uint)pppppcVar13 & 0x800) != 0) {\n                          if (((uint)pppppcVar13 & 0xffc000) != 0) {\n                            pppppppcVar29 = local_8c;\n                            uVar19 = (*pcVar12)(&local_b4,local_8c,local_5c);\n                            uVar7 = (uint)((int)ppppppcVar39[(int)param_5 * 2 + 1] << 8) >> 0x16;\n                            if ((uVar7 & 4) == 0) {\n                              uVar27 = uVar19 & 1;\n                              if ((uVar7 & 8) != 0) goto joined_r0x00054f40;\n                            }\n                            else {\n                              uVar27 = uVar7 & 8;\n                              if ((uVar19 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                              if (uVar27 != 0) goto LAB_000550a4;\n                            }\n                            if ((((uVar7 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                               (((uVar7 & 0x80) != 0 &&\n                                (pppppppcVar33 = local_8c, (uVar19 & 8) == 0)))) goto LAB_000550a4;\n                          }\n                          pppppppcVar30 = &local_b4;\n                          pppppppcVar29 = param_5;\n                          pppppppcVar33 = local_8c;\n                          iVar18 = (*pcVar10)(pppppppcVar42);\n                          if (iVar18 != 0) {\n                            pppppppcVar14 = (code *******)((int)local_8c + iVar18);\n                            if (iVar18 <= local_3c) {\n                              iVar18 = local_3c;\n                            }\n                            pppppppcVar29 = pppppppcVar14;\n                            local_3c = iVar18;\n                            local_d4 = (code *******)(*pcVar11)(&local_b4);\n                            pppppppcVar15 = local_d4;\n                            if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                            pppppppcVar30 =\n                                 (code *******)\n                                 (pppppppcVar42[6] + (int)pppppppcVar42[3][(int)param_5] * 3);\n                            unaff_s4 = (code *******)((int)pppppppcVar14 * 4);\n                            param_5 = local_50 + (int)pppppppcVar14;\n                            if (*param_5 == (code ******)0x0) {\n                              local_d0 = (code *******)*pppppppcVar30;\n                              local_cc = (code *******)pppppppcVar30[1];\n                              local_c8 = (code *******)pppppppcVar30[2];\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *param_5 = ppppppcVar39;\n                            }\n                            else {\n                              pppppppcVar29 = (code *******)(*param_5)[10];\n                              local_d4 = (code *******)FUN_000484bc(&local_d0);\n                              pppppppcVar15 = local_d4;\n                              if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar15 = local_50 + (int)pppppppcVar14;\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *pppppppcVar15 = ppppppcVar39;\n                              (*(code *)PTR_free_00079c24)(local_c8);\n                            }\n                            unaff_s4 = local_50 + (int)pppppppcVar14;\n                            if ((*unaff_s4 == (code ******)0x0) &&\n                               (pppppppcVar15 = local_d4, local_d4 != (code *******)0x0))\n                            goto LAB_00055e44;\n                          }\n                        }\nLAB_000550a4:\n                        param_6 = (code *******)((int)param_6 + 1);\n                      } while ((int)param_6 < (int)unaff_s7[2]);\n                    }\n                    local_d8 = (code *******)0x0;\n                  }\n                  uVar7 = (uint)(byte)*(code *)((int)local_8c + (int)local_b0);\n                  local_8c = (code *******)((int)local_8c + 1);\n                  do {\n                    if (unaff_s7[0xb] != (code ******)0x0) {\n                      pppppppcVar30 = (code *******)unaff_s7[0xb][uVar7];\nLAB_000553a0:\n                      pppppppcVar14 = pppppppcVar30;\n                      if (local_50 != (code *******)0x0) goto LAB_000553ac;\n                      goto LAB_000553cc;\n                    }\n                    pppppppcVar31 = (code *******)unaff_s7[0xc];\n                    if (pppppppcVar31 != (code *******)0x0) {\n                      pppppppcVar29 = (code *******)((int)local_8c + -1);\n                      uVar19 = FUN_00049110(&local_b4);\n                      if ((uVar19 & 1) == 0) {\n                        pppppppcVar30 = (code *******)pppppppcVar31[uVar7];\n                      }\n                      else {\n                        pppppppcVar31 = pppppppcVar31 + uVar7 + 0x100;\n                        pppppppcVar30 = (code *******)*pppppppcVar31;\n                      }\n                      goto LAB_000553a0;\n                    }\n                    pppppppcVar29 = unaff_s7;\n                    pppppppcVar30 = local_5c;\n                    iVar18 = (*pcVar9)(local_60);\n                  } while (iVar18 != 0);\n                  local_d8 = (code *******)0xc;\n                  pppppppcVar15 = local_d8;\nLAB_00055e44:\n                  local_d8 = pppppppcVar15;\n                  param_4 = (code *******)0x0;\n                  if (local_50 == (code *******)0x0) {\n                    pppppppcVar14 = param_4;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    break;\n                  }\n                  pppppppcVar30 = (code *******)0x0;\nLAB_000553ac:\n                  pppppppcVar29 = &local_b4;\n                  pppppppcVar14 = (code *******)FUN_00053684(&local_d8);\nLAB_000553cc:\n                  param_4 = pppppppcVar14;\n                  if (pppppppcVar14 == (code *******)0x0) {\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    if ((local_50 == (code *******)0x0) ||\n                       ((pppppppcVar28 != (code *******)0x0 && (pppppppcVar34 == (code *******)0x0))\n                       )) break;\n                    param_6 = &local_b4;\n                    param_5 = (code *******)&local_d8;\n                    pppppppcVar31 = (code *******)(PTR_DAT_000799a4 + 0x3684);\n                    do {\n                      pppppppcVar15 = local_50 + (int)local_8c;\n                      pppppppcVar42 = local_8c;\n                      do {\n                        pppppppcVar42 = (code *******)((int)pppppppcVar42 + 1);\n                        pppppppcVar29 = local_4c;\n                        param_4 = pppppppcVar14;\n                        if ((int)local_4c < (int)pppppppcVar42) goto LAB_00055da8;\n                        local_8c = (code *******)((int)local_8c + 1);\n                        pppppppcVar15 = pppppppcVar15 + 1;\n                      } while (*pppppppcVar15 == (code ******)0x0);\n                      pppppppcVar30 = (code *******)0x0;\n                      pppppppcVar29 = param_6;\n                      param_4 = (code *******)(*(code *)pppppppcVar31)(param_5);\n                      if (local_d8 != (code *******)0x0) {\n                        if (param_4 == (code *******)0x0) goto LAB_00055da8;\n                        break;\n                      }\n                      pppppppcVar29 = local_4c;\n                    } while (param_4 == (code *******)0x0);\n                  }\n                  pppppppcVar15 = (code *******)((uint)unaff_s7 ^ (uint)param_4);\n                  pppppppcVar42 = unaff_s7;\n                  pppppppcVar14 = local_138;\n                  if ((bVar1) &&\n                     (pppppppcVar42 = pppppppcVar15, pppppppcVar14 = unaff_s5,\n                     pppppppcVar15 != (code *******)0x0)) {\n                    bVar1 = false;\n                    pppppppcVar14 = local_138;\n                  }\n                  local_138 = pppppppcVar14;\n                  unaff_s7 = param_4;\n                  if ((((uint)param_4[0xd] & 0x8000000) != 0) &&\n                     ((((uint)param_4[0xd] & 0x1000000) == 0 ||\n                      (pppppppcVar29 = param_4, pppppppcVar30 = local_8c,\n                      iVar18 = FUN_00049440(&local_b4), iVar18 != 0)))) {\n                    unaff_s7 = pppppppcVar42;\n                    unaff_s8 = local_8c;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                    local_144 = (code *******)0x0;\n                    unaff_s7 = param_4;\n                  }\n                }\nLAB_00055da8:\n                if (local_144 != (code *******)0x0) {\n                  *local_144 = (code ******)((int)local_138 + (int)*local_144);\n                }\n              }\n              else {\n                param_4 = unaff_s7 + 1;\n                pppppppcVar30 = (code *******)0x0;\n                pppppppcVar29 = param_4;\n                local_d8 = (code *******)FUN_00047a44(&local_b4);\n                unaff_s8 = local_d8;\n                if (local_d8 == (code *******)0x0) {\n                  if (((uint)unaff_s7[0xd] & 0x2000000) == 0) {\n                    pppppppcVar29 = param_4;\n                    bVar1 = false;\n                  }\n                  else {\n                    pppppppcVar29 = param_4;\n                    local_d8 = (code *******)FUN_00052d84(&local_b4);\n                    unaff_s8 = local_d8;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055dbc;\n                    bVar1 = false;\n                  }\n                  goto LAB_00054d50;\n                }\n              }\nLAB_00055dbc:\n              if (unaff_s8 == (code *******)0xffffffff) {\nLAB_00055b04:\n                FUN_0004b7e8(&local_b4);\nLAB_00055b1c:\n                local_dc = (code *******)((int)pppppppcVar24 + (int)local_dc);\n                if ((int)pppppppcVar25 <= (int)local_dc) goto code_r0x00055b38;\n                local_150 = (code *******)0x1;\n                goto LAB_000557e4;\n              }\n              if (unaff_s8 == (code *******)&SUB_fffffffe) {\n                local_150 = (code *******)0xc;\n                goto LAB_000557e4;\n              }\n              local_58 = unaff_s8;\n              if (((uint)param_1[7] & 0x8000000) == 0) {\n                if (pppppppcVar3 < (code *******)0x2) {\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055c08;\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                else {\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                if (pppppppcVar3 < (code *******)0x2) {\nLAB_00055c6c:\n                  pppppppcVar28 = pppppppcVar33;\n                  unaff_s4 = local_60;\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055548;\n                }\n                else {\n                  cVar23 = *(code *)(pppppppcVar38 + 0x16);\nLAB_00055c20:\n                  pppppppcVar28 = pppppppcVar33;\n                  if (-1 < (char)cVar23) goto LAB_00055c6c;\n                }\n                pppppppcVar31 = local_54;\n                pppppppcVar42 = local_60;\n                unaff_s4 = pppppppcVar42;\n                if (unaff_s8 < (code *******)0x3fffffff) {\n                  param_4 = (code *******)((int)((int)unaff_s8 + 1) * 4);\n                  unaff_s5 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                  if (unaff_s5 == (code *******)0x0) {\nLAB_00055b9c:\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    local_150 = (code *******)0xc;\n                    pppppppcVar33 = pppppppcVar28;\n                  }\n                  else {\n                    pppppppcVar29 = (code *******)&local_d0;\n                    if (pppppppcVar42[0x13] == (code ******)0x0) {\n                      local_cc = (code *******)0x0;\n                      local_c8 = pppppppcVar31;\n                      local_c0 = 0;\n                      local_bc = 0;\n                      local_b8 = 0;\n                      local_d0 = unaff_s5;\n                      local_c4 = unaff_s8;\n                      param_5 = (code *******)FUN_0005421c(&local_b4);\n                      (*(code *)PTR_free_00079c24)(local_b8);\n                      if (param_5 == (code *******)0x0) {\n                        param_4 = (code *******)*unaff_s5;\n                        if (param_4 == (code *******)0x0) {\nLAB_00055b70:\n                          (*(code *)PTR_free_00079c24)(unaff_s5);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          pppppppcVar33 = pppppppcVar28;\n                          goto LAB_00055b04;\n                        }\nLAB_00055528:\n                        (*(code *)PTR_free_00079c24)(local_50);\n                        pppppppcVar33 = pppppppcVar28;\n                        unaff_s4 = pppppppcVar42;\n                        local_58 = unaff_s8;\n                        local_54 = pppppppcVar31;\n                        local_50 = unaff_s5;\n                        goto LAB_00055548;\n                      }\nLAB_00055acc:\n                      param_4 = (code *******)0x0;\n                      pppppppcVar33 = pppppppcVar28;\n                      unaff_s4 = pppppppcVar42;\n                    }\n                    else {\n                      param_4 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                      if (param_4 == (code *******)0x0) goto LAB_00055b9c;\n                      unaff_s7 = (code *******)&local_d0;\n                      pcVar8 = (code *)(PTR_DAT_000799a4 + 0x421c);\n                      pcVar9 = (code *)(PTR_DAT_000799a4 + -0x6bc0);\n                      pppppppcVar33 = pppppppcVar28;\n                      while( true ) {\n                        pppppppcVar28 = (code *******)((int)unaff_s8 + 1);\n                        param_6 = (code *******)((int)pppppppcVar28 * 4);\n                        pppppppcVar30 = param_6;\n                        (*(code *)PTR_memset_00079b00)(param_4,0);\n                        local_c0 = 0;\n                        local_bc = 0;\n                        local_b8 = 0;\n                        pppppppcVar29 = unaff_s7;\n                        local_d0 = unaff_s5;\n                        local_cc = param_4;\n                        local_c8 = pppppppcVar31;\n                        local_c4 = unaff_s8;\n                        param_5 = (code *******)(*pcVar8)(&local_b4);\n                        (*(code *)PTR_free_00079c24)(local_b8);\n                        unaff_s4 = pppppppcVar28;\n                        if (param_5 != (code *******)0x0) break;\n                        if ((*unaff_s5 != (code ******)0x0) ||\n                           (param_6 = param_6 + -1, *param_4 != (code ******)0x0)) {\n                          pppppppcVar29 = unaff_s5;\n                          pppppppcVar30 = param_4;\n                          param_5 = (code *******)FUN_000520d0(pppppppcVar42);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          if (param_5 != (code *******)0x0) goto LAB_00055acc;\n                          goto LAB_00055528;\n                        }\n                        param_6 = (code *******)((int)local_50 + (int)param_6);\n                        do {\n                          while( true ) {\n                            unaff_s8 = (code *******)((int)unaff_s8 + -1);\n                            if ((int)unaff_s8 < 0) goto LAB_00055b70;\n                            pppppppcVar29 = (code *******)param_6[-1];\n                            if (pppppppcVar29 != (code *******)0x0) break;\n                            param_6 = param_6 + -1;\n                          }\n                          param_6 = param_6 + -1;\n                        } while (((uint)pppppppcVar29[0xd] & 0x8000000) == 0);\n                        pppppppcVar31 = (code *******)(*pcVar9)(&local_b4,pppppppcVar29,unaff_s8);\n                        pppppppcVar33 = pppppppcVar28;\n                      }\n                    }\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    (*(code *)PTR_free_00079c24)(param_4);\n                    local_150 = param_5;\n                    if (param_5 == (code *******)0x1) goto LAB_00055b04;\n                  }\n                }\n                else {\n                  local_150 = (code *******)0xc;\n                  pppppppcVar33 = pppppppcVar28;\n                }\n                goto LAB_000557e4;\n              }\n              if (pppppppcVar38[0x13] != (code ******)0x0) {\n                pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                pppppppcVar30 = unaff_s8;\n                local_54 = (code *******)FUN_00049440(&local_b4);\n                goto LAB_00055c6c;\n              }\nLAB_00055c08:\n              if ((((uint)param_1[7] & 0x8000000) == 0) && ((code *******)0x1 < pppppppcVar3)) {\n                cVar23 = *(code *)(pppppppcVar38 + 0x16);\n                goto LAB_00055c20;\n              }\nLAB_00055548:\n              if (pppppppcVar3 == (code *******)0x0) goto LAB_000557e4;\n              if (pppppppcVar3 < (code *******)0x2) {\n                *param_8 = (code ******)0x0;\n                param_8[1] = (code ******)local_58;\n                goto LAB_000555ac;\n              }\n              pppppppcVar29 = param_8 + 2;\n              do {\n                pppppppcVar29[1] = (code ******)0xffffffff;\n                *pppppppcVar29 = (code ******)0xffffffff;\n                pppppppcVar29 = pppppppcVar29 + 2;\n              } while (pppppppcVar29 != param_8 + (int)pppppppcVar3 * 2);\n              *param_8 = (code ******)0x0;\n              param_8[1] = (code ******)local_58;\n              if (((uint)param_1[7] & 0x8000000) != 0) {\nLAB_000555ac:\n                pppppppcVar33 = param_8;\n                do {\n                  pppppppcVar29 = (code *******)*pppppppcVar33;\n                  if (pppppppcVar29 != (code *******)0xffffffff) {\n                    if (local_68 != '\0') {\n                      pppppppcVar34 = local_94;\n                      if (pppppppcVar29 != local_98) {\n                        pppppppcVar34 = *(code ********)(local_a8 + (int)pppppppcVar29 * 4);\n                      }\n                      *pppppppcVar33 = (code ******)pppppppcVar34;\n                      pppppppcVar29 = local_94;\n                      if (local_98 != (code *******)pppppppcVar33[1]) {\n                        pppppppcVar29 = *(code ********)(local_a8 + (int)pppppppcVar33[1] * 4);\n                      }\n                      pppppppcVar33[1] = (code ******)pppppppcVar29;\n                    }\n                    *pppppppcVar33 = (code ******)((int)local_dc + (int)*pppppppcVar33);\n                    pppppppcVar29 = (code *******)((int)local_dc + (int)pppppppcVar33[1]);\n                    pppppppcVar33[1] = (code ******)pppppppcVar29;\n                  }\n                  pppppppcVar33 = pppppppcVar33 + 2;\n                } while (pppppppcVar33 != param_8 + (int)pppppppcVar3 * 2);\n                if (0 < local_118) {\n                  pppppppcVar33 = param_8 + (int)pppppppcVar3 * 2;\n                  do {\n                    *pppppppcVar33 = (code ******)0xffffffff;\n                    pppppppcVar33[1] = (code ******)0xffffffff;\n                    pppppppcVar33 = pppppppcVar33 + 2;\n                  } while (pppppppcVar33 != param_8 + (int)param_7 * 2);\n                }\n                pppppppcVar30 = local_dc;\n                pppppppcVar33 = param_8;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar38[0x21] != (code ******)0x0) {\n                  pppppppcVar30 = (code *******)((int)pppppppcVar3 + -1);\n                  pppppppcVar34 = (code *******)0x0;\n                  pppppppcVar3 = param_8;\n                  while( true ) {\n                    pppppppcVar29 = (code *******)((int)pppppppcVar34 * 4);\n                    if (pppppppcVar30 == pppppppcVar34) break;\n                    if (*(code ********)((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) !=\n                        pppppppcVar34) {\n                      pppppppcVar3[2] =\n                           param_8[(int)((int)*(code ********)\n                                               ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1)\n                                   * 2];\n                      pppppppcVar3[3] =\n                           param_8[((int)*(code ******)\n                                          ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1) * 2 +\n                                   1];\n                    }\n                    pppppppcVar34 = (code *******)((int)pppppppcVar34 + 1);\n                    pppppppcVar3 = pppppppcVar3 + 2;\n                  }\n                }\n                goto LAB_000557e4;\n              }\n              if ((char)*(code *)(pppppppcVar38 + 0x16) < '\0') {\n                local_168 = (uint)(0 < (int)pppppppcVar38[0x13]);\n              }\n              else {\n                local_168 = 0;\n              }\n              pppppppcVar29 = &local_b4;\n              pppppppcVar30 = pppppppcVar3;\n              pppppppcVar33 = param_8;\n              local_150 = (code *******)FUN_0004f4a0(param_1);\n              if (local_150 == (code *******)0x0) goto LAB_000555ac;\n            }\n          }\n          else if (local_90 < 0x3fffffff) {\n            local_50 = (code *******)(*(code *)PTR_malloc_00079b54)((local_90 + 1) * 4);\n            if (local_50 != (code *******)0x0) goto LAB_00055a40;\n            local_150 = (code *******)0xc;\n            param_6 = pppppppcVar36;\n          }\n          else {\n            local_150 = (code *******)0xc;\n            param_6 = pppppppcVar36;\n          }\n        }\n        else {\n          unaff_s5 = (code *******)((int)ppppppcVar35 * 8);\n          if (pppppppcVar36 < (code *******)0xccccccd) {\n            unaff_s4 = (code *******)(*(code *)PTR_malloc_00079b54)((int)ppppppcVar35 * 0x28);\n            local_40 = unaff_s4;\n            local_30 = (*(code *)PTR_malloc_00079b54)(unaff_s5);\n            if ((unaff_s4 != (code *******)0x0) && (local_30 != 0)) goto LAB_000559f0;\n          }\n          local_150 = (code *******)0xc;\n          param_6 = pppppppcVar36;\n        }" (if "if") (parenthesized_expression "((int)pppppppcVar36 < 1)" (( "(") (binary_expression "(int)pppppppcVar36 < 1" (cast_expression "(int)pppppppcVar36" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppcVar36")) (< "<") (number_literal "1")) () ")")) (compound_statement "{\nLAB_000559f0:\n          local_3c = 1;\n          local_44 = pppppppcVar36;\n          local_34 = pppppppcVar36;\n          if ((pppppppcVar3 < (code *******)0x2) && (((uint)pppppppcVar38[0x16] & 0x40000000) == 0))\n          {\n            local_50 = (code *******)0x0;\nLAB_00055a40:\n            local_78 = 6;\n            if (((uint)param_9 & 1) != 0) {\n              local_78 = 4;\n            }\n            pppppppcVar24 = (code *******)0x1;\n            pppppppcVar25 = param_4;\n            if ((int)param_5 < (int)param_4) {\n              pppppppcVar24 = (code *******)0xffffffff;\n              pppppppcVar25 = param_5;\n            }\n            pppppppcVar26 = param_5;\n            if ((int)param_5 <= (int)param_4) {\n              pppppppcVar26 = param_4;\n            }\n            ppppppcVar35 = pppppppcVar38[0x17];\n            uVar16 = 8;\n            if (local_148 != (code *******)0x0) {\n              if (ppppppcVar35 == (code ******)0x1) {\n                pppppppcVar28 = (code *******)0x4;\n              }\n              else {\n                pppppppcVar28 = pppppppcVar2;\n                if ((-1 < (int)param_1[3] << 9) && (ppppppcVar32 == (code ******)0x0)) {\n                  pppppppcVar28 = (code *******)0x4;\n                }\n              }\n              pppppppcVar29 = (code *******)0x0;\n              if ((int)param_4 <= (int)param_5) {\n                pppppppcVar29 = (code *******)0x2;\n              }\n              uVar16 = (uint)(ppppppcVar32 != (code ******)0x0) | (uint)pppppppcVar28 |\n                       (uint)pppppppcVar29;\n            }\n            local_dc = param_4;\n            if ((int)param_4 < (int)pppppppcVar25) {\n              local_150 = (code *******)0x1;\n              param_6 = pppppppcVar36;\n            }\n            else if ((int)pppppppcVar26 < (int)param_4) {\n              local_150 = (code *******)0x1;\n              param_4 = (code *******)(uint)((int)param_5 < (int)param_4);\n              param_6 = pppppppcVar36;\n            }\n            else {\n              pppppppcVar36 = (code *******)&local_dc;\n              if ((code *******)(uint)((int)param_5 < (int)param_4) != (code *******)0x0) {\n                pppppppcVar36 = (code *******)0x0;\n              }\n              pcVar4 = (code *)(PTR_DAT_000799a4 + -0x2b7c);\n              piVar5 = (int *)(PTR_s_nt0_000795b8 + (uVar16 - 4) * 4 + 0x6e38);\nLAB_00055b44:\n              if (uVar16 - 4 < 5) {\n                    \n                    \n                pppppppcVar29 = (code *******)(*(code *)(&_gp_1 + *piVar5))();\n                return pppppppcVar29;\n              }\n              param_5 = &local_b4;\n              pppppppcVar28 = pppppppcVar33;\n              while( true ) {\n                param_4 = local_dc;\n                pppppppcVar33 = (code *******)((int)local_dc - local_9c);\n                pppppppcVar30 = param_9;\n                pppppppcVar31 = pppppppcVar2;\n                param_6 = local_148;\n                unaff_s4 = param_3;\n                unaff_s5 = pppppppcVar24;\n                unaff_s7 = pppppppcVar26;\n                if (local_94 <= pppppppcVar33) {\n                  pppppppcVar29 = local_dc;\n                  local_150 = (code *******)(*pcVar4)(param_5);\n                  pppppppcVar33 = pppppppcVar28;\n                  if (local_150 != (code *******)0x0) goto LAB_000557e4;\n                  pppppppcVar33 = (code *******)((int)param_4 - local_9c);\n                }\n                if ((int)param_4 < (int)param_3) {\n                  uVar7 = (uint)(byte)*(code *)((int)pppppppcVar33 + (int)local_b0);\n                }\n                else {\n                  uVar7 = 0;\n                }\n                param_4 = (code *******)((int)param_4 + (int)pppppppcVar24);\n                if (*(code *)((int)local_148 + uVar7) != (code)0x0) break;\n                pppppppcVar33 = pppppppcVar28;\n                local_dc = param_4;\n                if ((int)param_4 < (int)pppppppcVar25) {\n                  local_150 = (code *******)0x1;\n                  goto LAB_000557e4;\n                }\n                if ((code *******)(uint)((int)pppppppcVar26 < (int)param_4) != (code *******)0x0) {\n                  local_150 = (code *******)0x1;\n                  param_4 = (code *******)(uint)((int)pppppppcVar26 < (int)param_4);\n                  goto LAB_000557e4;\n                }\n              }\n              while( true ) {\n                pppppppcVar29 = local_dc;\n                pppppppcVar30 = param_9;\n                pppppppcVar6 = (code *******)(*pcVar4)(&local_b4);\n                pppppppcVar14 = local_60;\n                pppppppcVar42 = local_8c;\n                pppppppcVar33 = pppppppcVar28;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar6 != (code *******)0x0) goto LAB_000557e4;\n                if (((ppppppcVar35 != (code ******)0x1) && (local_98 != (code *******)0x0)) &&\n                   (*local_ac == -1)) goto LAB_00055b1c;\n                local_3c = 0;\n                local_48 = 0;\n                local_4c = (code *******)0x0;\n                local_138 = local_8c;\n                local_d8 = (code *******)0x0;\n                unaff_s7 = (code *******)local_60[9];\n                pppppppcVar30 = local_5c;\n                param_4 = pppppppcVar14;\n                if (((uint)unaff_s7[0xd] & 0x1000000) == 0) break;\n                pppppppcVar29 = (code *******)((int)local_8c + -1);\n                pppppppcVar33 = (code *******)FUN_00049110(&local_b4);\n                if (((uint)pppppppcVar33 & 1) == 0) {\n                  if (pppppppcVar33 == (code *******)0x0) break;\n                  if (((uint)pppppppcVar33 & 6) == 6) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xc];\n                    goto LAB_00054d1c;\n                  }\n                  if (((uint)pppppppcVar33 & 2) != 0) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xb];\n                    goto LAB_00054d1c;\n                  }\n                  pppppppcVar28 = pppppppcVar33;\n                  if (((uint)pppppppcVar33 & 4) == 0) break;\n                  pppppppcVar30 = (code *******)unaff_s7[10];\n                  pppppppcVar29 = pppppppcVar14;\n                  unaff_s7 = (code *******)FUN_0004ae34(&local_d8);\n                  pppppppcVar28 = pppppppcVar33;\n                  if (unaff_s7 != (code *******)0x0) break;\n                  if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                }\n                else {\n                  unaff_s7 = (code *******)pppppppcVar14[10];\nLAB_00054d1c:\n                  pppppppcVar28 = (code *******)PTR_s_nt0_000795b8;\n                  if (unaff_s7 != (code *******)0x0) break;\n                }\n                pppppppcVar28 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                local_dc = (code *******)\n                           (*(code *)PTR___assert_fail_000799f8)\n                                     (PTR_s_nt0_000795b8 + 0x71a0,pppppppcVar29,0x435);\n                if (local_dc == pppppppcVar26) {\n                  if ((int)local_dc < (int)param_3) {\n                    uVar7 = (uint)(byte)*(code *)((int)local_dc + (int)param_2);\n                  }\n                  else {\n                    uVar7 = 0;\n                  }\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    uVar7 = (uint)*(byte *)((int)ppppppcVar32 + uVar7);\n                  }\n                  if (*(code *)((int)local_148 + uVar7) == (code)0x0) {\n                    local_150 = (code *******)0x1;\n                    pppppppcVar30 = param_9;\n                    pppppppcVar33 = pppppppcVar28;\n                    goto LAB_000557e4;\n                  }\n                }\n              }\n              pppppppcVar33 = pppppppcVar28;\n              bVar1 = pppppppcVar36 != (code *******)0x0;\n              if ((local_50 == (code *******)0x0) ||\n                 (local_50[(int)pppppppcVar42] = (code ******)unaff_s7,\n                 pppppppcVar14[0x13] == (code ******)0x0)) {\nLAB_00054d50:\n                if ((int)unaff_s7[0xd] << 4 < 0) {\n                  if ((((uint)unaff_s7[0xd] & 0x1000000) == 0) ||\n                     (pppppppcVar29 = unaff_s7, pppppppcVar30 = pppppppcVar42,\n                     iVar18 = FUN_00049440(&local_b4), iVar18 != 0)) {\n                    unaff_s8 = pppppppcVar42;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                  }\n                  else {\n                    pppppppcVar42 = (code *******)0xffffffff;\n                    pppppppcVar28 = (code *******)0x0;\n                  }\n                }\n                else {\n                  pppppppcVar42 = (code *******)0xffffffff;\n                  pppppppcVar28 = (code *******)0x0;\n                }\n                pcVar8 = (code *)(PTR_DAT_000799a4 + -0x7144);\n                pcVar9 = (code *)(PTR_DAT_000799a4 + -0x1980);\n                pcVar10 = (code *)(PTR_DAT_000799a4 + -0x2f9c);\n                unaff_s8 = pppppppcVar42;\n                local_144 = pppppppcVar36;\n                while( true ) {\n                  uVar44 = CONCAT44(local_98,local_84);\n                  unaff_s5 = (code *******)((int)local_8c + 1);\n                  pppppppcVar29 = local_8c;\n                  if ((int)local_7c <= (int)local_8c) break;\n                  if (((int)local_90 <= (int)unaff_s5) && ((int)local_90 < (int)local_84))\n                  goto LAB_00054e94;\n                  if ((int)local_98 <= (int)unaff_s5) {\n                    while ((int)((ulonglong)uVar44 >> 0x20) < (int)uVar44) {\nLAB_00054e94:\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 2);\n                      local_d8 = (code *******)(*pcVar8)(&local_b4);\n                      if (local_d8 == (code *******)0x0) break;\n                      pppppppcVar14 = param_4;\n                      if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                      pppppppcVar33 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                      pppppppcVar30 = (code *******)0x46c;\n                      pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                      uVar44 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0);\n                      pppppppcVar28 = pppppppcVar38;\n                    }\n                  }\n                  pppppppcVar42 = local_60;\n                  if ((int)unaff_s7[0xd] << 5 < 0) {\n                    pppppppcVar31 = pppppppcVar42;\n                    if (0 < (int)unaff_s7[2]) {\n                      pcVar11 = (code *)(PTR_DAT_000799a4 + -0x6fdc);\n                      pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6ef0);\n                      param_6 = (code *******)0x0;\n                      do {\n                        param_5 = (code *******)unaff_s7[3][(int)param_6];\n                        ppppppcVar39 = *pppppppcVar42;\n                        pppppcVar13 = ppppppcVar39[(int)param_5 * 2 + 1];\n                        if (((uint)pppppcVar13 & 0x800) != 0) {\n                          if (((uint)pppppcVar13 & 0xffc000) != 0) {\n                            pppppppcVar29 = local_8c;\n                            uVar19 = (*pcVar12)(&local_b4,local_8c,local_5c);\n                            uVar7 = (uint)((int)ppppppcVar39[(int)param_5 * 2 + 1] << 8) >> 0x16;\n                            if ((uVar7 & 4) == 0) {\n                              uVar27 = uVar19 & 1;\n                              if ((uVar7 & 8) != 0) goto joined_r0x00054f40;\n                            }\n                            else {\n                              uVar27 = uVar7 & 8;\n                              if ((uVar19 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                              if (uVar27 != 0) goto LAB_000550a4;\n                            }\n                            if ((((uVar7 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                               (((uVar7 & 0x80) != 0 &&\n                                (pppppppcVar33 = local_8c, (uVar19 & 8) == 0)))) goto LAB_000550a4;\n                          }\n                          pppppppcVar30 = &local_b4;\n                          pppppppcVar29 = param_5;\n                          pppppppcVar33 = local_8c;\n                          iVar18 = (*pcVar10)(pppppppcVar42);\n                          if (iVar18 != 0) {\n                            pppppppcVar14 = (code *******)((int)local_8c + iVar18);\n                            if (iVar18 <= local_3c) {\n                              iVar18 = local_3c;\n                            }\n                            pppppppcVar29 = pppppppcVar14;\n                            local_3c = iVar18;\n                            local_d4 = (code *******)(*pcVar11)(&local_b4);\n                            pppppppcVar15 = local_d4;\n                            if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                            pppppppcVar30 =\n                                 (code *******)\n                                 (pppppppcVar42[6] + (int)pppppppcVar42[3][(int)param_5] * 3);\n                            unaff_s4 = (code *******)((int)pppppppcVar14 * 4);\n                            param_5 = local_50 + (int)pppppppcVar14;\n                            if (*param_5 == (code ******)0x0) {\n                              local_d0 = (code *******)*pppppppcVar30;\n                              local_cc = (code *******)pppppppcVar30[1];\n                              local_c8 = (code *******)pppppppcVar30[2];\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *param_5 = ppppppcVar39;\n                            }\n                            else {\n                              pppppppcVar29 = (code *******)(*param_5)[10];\n                              local_d4 = (code *******)FUN_000484bc(&local_d0);\n                              pppppppcVar15 = local_d4;\n                              if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar15 = local_50 + (int)pppppppcVar14;\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *pppppppcVar15 = ppppppcVar39;\n                              (*(code *)PTR_free_00079c24)(local_c8);\n                            }\n                            unaff_s4 = local_50 + (int)pppppppcVar14;\n                            if ((*unaff_s4 == (code ******)0x0) &&\n                               (pppppppcVar15 = local_d4, local_d4 != (code *******)0x0))\n                            goto LAB_00055e44;\n                          }\n                        }\nLAB_000550a4:\n                        param_6 = (code *******)((int)param_6 + 1);\n                      } while ((int)param_6 < (int)unaff_s7[2]);\n                    }\n                    local_d8 = (code *******)0x0;\n                  }\n                  uVar7 = (uint)(byte)*(code *)((int)local_8c + (int)local_b0);\n                  local_8c = (code *******)((int)local_8c + 1);\n                  do {\n                    if (unaff_s7[0xb] != (code ******)0x0) {\n                      pppppppcVar30 = (code *******)unaff_s7[0xb][uVar7];\nLAB_000553a0:\n                      pppppppcVar14 = pppppppcVar30;\n                      if (local_50 != (code *******)0x0) goto LAB_000553ac;\n                      goto LAB_000553cc;\n                    }\n                    pppppppcVar31 = (code *******)unaff_s7[0xc];\n                    if (pppppppcVar31 != (code *******)0x0) {\n                      pppppppcVar29 = (code *******)((int)local_8c + -1);\n                      uVar19 = FUN_00049110(&local_b4);\n                      if ((uVar19 & 1) == 0) {\n                        pppppppcVar30 = (code *******)pppppppcVar31[uVar7];\n                      }\n                      else {\n                        pppppppcVar31 = pppppppcVar31 + uVar7 + 0x100;\n                        pppppppcVar30 = (code *******)*pppppppcVar31;\n                      }\n                      goto LAB_000553a0;\n                    }\n                    pppppppcVar29 = unaff_s7;\n                    pppppppcVar30 = local_5c;\n                    iVar18 = (*pcVar9)(local_60);\n                  } while (iVar18 != 0);\n                  local_d8 = (code *******)0xc;\n                  pppppppcVar15 = local_d8;\nLAB_00055e44:\n                  local_d8 = pppppppcVar15;\n                  param_4 = (code *******)0x0;\n                  if (local_50 == (code *******)0x0) {\n                    pppppppcVar14 = param_4;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    break;\n                  }\n                  pppppppcVar30 = (code *******)0x0;\nLAB_000553ac:\n                  pppppppcVar29 = &local_b4;\n                  pppppppcVar14 = (code *******)FUN_00053684(&local_d8);\nLAB_000553cc:\n                  param_4 = pppppppcVar14;\n                  if (pppppppcVar14 == (code *******)0x0) {\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    if ((local_50 == (code *******)0x0) ||\n                       ((pppppppcVar28 != (code *******)0x0 && (pppppppcVar34 == (code *******)0x0))\n                       )) break;\n                    param_6 = &local_b4;\n                    param_5 = (code *******)&local_d8;\n                    pppppppcVar31 = (code *******)(PTR_DAT_000799a4 + 0x3684);\n                    do {\n                      pppppppcVar15 = local_50 + (int)local_8c;\n                      pppppppcVar42 = local_8c;\n                      do {\n                        pppppppcVar42 = (code *******)((int)pppppppcVar42 + 1);\n                        pppppppcVar29 = local_4c;\n                        param_4 = pppppppcVar14;\n                        if ((int)local_4c < (int)pppppppcVar42) goto LAB_00055da8;\n                        local_8c = (code *******)((int)local_8c + 1);\n                        pppppppcVar15 = pppppppcVar15 + 1;\n                      } while (*pppppppcVar15 == (code ******)0x0);\n                      pppppppcVar30 = (code *******)0x0;\n                      pppppppcVar29 = param_6;\n                      param_4 = (code *******)(*(code *)pppppppcVar31)(param_5);\n                      if (local_d8 != (code *******)0x0) {\n                        if (param_4 == (code *******)0x0) goto LAB_00055da8;\n                        break;\n                      }\n                      pppppppcVar29 = local_4c;\n                    } while (param_4 == (code *******)0x0);\n                  }\n                  pppppppcVar15 = (code *******)((uint)unaff_s7 ^ (uint)param_4);\n                  pppppppcVar42 = unaff_s7;\n                  pppppppcVar14 = local_138;\n                  if ((bVar1) &&\n                     (pppppppcVar42 = pppppppcVar15, pppppppcVar14 = unaff_s5,\n                     pppppppcVar15 != (code *******)0x0)) {\n                    bVar1 = false;\n                    pppppppcVar14 = local_138;\n                  }\n                  local_138 = pppppppcVar14;\n                  unaff_s7 = param_4;\n                  if ((((uint)param_4[0xd] & 0x8000000) != 0) &&\n                     ((((uint)param_4[0xd] & 0x1000000) == 0 ||\n                      (pppppppcVar29 = param_4, pppppppcVar30 = local_8c,\n                      iVar18 = FUN_00049440(&local_b4), iVar18 != 0)))) {\n                    unaff_s7 = pppppppcVar42;\n                    unaff_s8 = local_8c;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                    local_144 = (code *******)0x0;\n                    unaff_s7 = param_4;\n                  }\n                }\nLAB_00055da8:\n                if (local_144 != (code *******)0x0) {\n                  *local_144 = (code ******)((int)local_138 + (int)*local_144);\n                }\n              }\n              else {\n                param_4 = unaff_s7 + 1;\n                pppppppcVar30 = (code *******)0x0;\n                pppppppcVar29 = param_4;\n                local_d8 = (code *******)FUN_00047a44(&local_b4);\n                unaff_s8 = local_d8;\n                if (local_d8 == (code *******)0x0) {\n                  if (((uint)unaff_s7[0xd] & 0x2000000) == 0) {\n                    pppppppcVar29 = param_4;\n                    bVar1 = false;\n                  }\n                  else {\n                    pppppppcVar29 = param_4;\n                    local_d8 = (code *******)FUN_00052d84(&local_b4);\n                    unaff_s8 = local_d8;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055dbc;\n                    bVar1 = false;\n                  }\n                  goto LAB_00054d50;\n                }\n              }\nLAB_00055dbc:\n              if (unaff_s8 == (code *******)0xffffffff) {\nLAB_00055b04:\n                FUN_0004b7e8(&local_b4);\nLAB_00055b1c:\n                local_dc = (code *******)((int)pppppppcVar24 + (int)local_dc);\n                if ((int)pppppppcVar25 <= (int)local_dc) goto code_r0x00055b38;\n                local_150 = (code *******)0x1;\n                goto LAB_000557e4;\n              }\n              if (unaff_s8 == (code *******)&SUB_fffffffe) {\n                local_150 = (code *******)0xc;\n                goto LAB_000557e4;\n              }\n              local_58 = unaff_s8;\n              if (((uint)param_1[7] & 0x8000000) == 0) {\n                if (pppppppcVar3 < (code *******)0x2) {\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055c08;\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                else {\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                if (pppppppcVar3 < (code *******)0x2) {\nLAB_00055c6c:\n                  pppppppcVar28 = pppppppcVar33;\n                  unaff_s4 = local_60;\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055548;\n                }\n                else {\n                  cVar23 = *(code *)(pppppppcVar38 + 0x16);\nLAB_00055c20:\n                  pppppppcVar28 = pppppppcVar33;\n                  if (-1 < (char)cVar23) goto LAB_00055c6c;\n                }\n                pppppppcVar31 = local_54;\n                pppppppcVar42 = local_60;\n                unaff_s4 = pppppppcVar42;\n                if (unaff_s8 < (code *******)0x3fffffff) {\n                  param_4 = (code *******)((int)((int)unaff_s8 + 1) * 4);\n                  unaff_s5 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                  if (unaff_s5 == (code *******)0x0) {\nLAB_00055b9c:\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    local_150 = (code *******)0xc;\n                    pppppppcVar33 = pppppppcVar28;\n                  }\n                  else {\n                    pppppppcVar29 = (code *******)&local_d0;\n                    if (pppppppcVar42[0x13] == (code ******)0x0) {\n                      local_cc = (code *******)0x0;\n                      local_c8 = pppppppcVar31;\n                      local_c0 = 0;\n                      local_bc = 0;\n                      local_b8 = 0;\n                      local_d0 = unaff_s5;\n                      local_c4 = unaff_s8;\n                      param_5 = (code *******)FUN_0005421c(&local_b4);\n                      (*(code *)PTR_free_00079c24)(local_b8);\n                      if (param_5 == (code *******)0x0) {\n                        param_4 = (code *******)*unaff_s5;\n                        if (param_4 == (code *******)0x0) {\nLAB_00055b70:\n                          (*(code *)PTR_free_00079c24)(unaff_s5);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          pppppppcVar33 = pppppppcVar28;\n                          goto LAB_00055b04;\n                        }\nLAB_00055528:\n                        (*(code *)PTR_free_00079c24)(local_50);\n                        pppppppcVar33 = pppppppcVar28;\n                        unaff_s4 = pppppppcVar42;\n                        local_58 = unaff_s8;\n                        local_54 = pppppppcVar31;\n                        local_50 = unaff_s5;\n                        goto LAB_00055548;\n                      }\nLAB_00055acc:\n                      param_4 = (code *******)0x0;\n                      pppppppcVar33 = pppppppcVar28;\n                      unaff_s4 = pppppppcVar42;\n                    }\n                    else {\n                      param_4 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                      if (param_4 == (code *******)0x0) goto LAB_00055b9c;\n                      unaff_s7 = (code *******)&local_d0;\n                      pcVar8 = (code *)(PTR_DAT_000799a4 + 0x421c);\n                      pcVar9 = (code *)(PTR_DAT_000799a4 + -0x6bc0);\n                      pppppppcVar33 = pppppppcVar28;\n                      while( true ) {\n                        pppppppcVar28 = (code *******)((int)unaff_s8 + 1);\n                        param_6 = (code *******)((int)pppppppcVar28 * 4);\n                        pppppppcVar30 = param_6;\n                        (*(code *)PTR_memset_00079b00)(param_4,0);\n                        local_c0 = 0;\n                        local_bc = 0;\n                        local_b8 = 0;\n                        pppppppcVar29 = unaff_s7;\n                        local_d0 = unaff_s5;\n                        local_cc = param_4;\n                        local_c8 = pppppppcVar31;\n                        local_c4 = unaff_s8;\n                        param_5 = (code *******)(*pcVar8)(&local_b4);\n                        (*(code *)PTR_free_00079c24)(local_b8);\n                        unaff_s4 = pppppppcVar28;\n                        if (param_5 != (code *******)0x0) break;\n                        if ((*unaff_s5 != (code ******)0x0) ||\n                           (param_6 = param_6 + -1, *param_4 != (code ******)0x0)) {\n                          pppppppcVar29 = unaff_s5;\n                          pppppppcVar30 = param_4;\n                          param_5 = (code *******)FUN_000520d0(pppppppcVar42);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          if (param_5 != (code *******)0x0) goto LAB_00055acc;\n                          goto LAB_00055528;\n                        }\n                        param_6 = (code *******)((int)local_50 + (int)param_6);\n                        do {\n                          while( true ) {\n                            unaff_s8 = (code *******)((int)unaff_s8 + -1);\n                            if ((int)unaff_s8 < 0) goto LAB_00055b70;\n                            pppppppcVar29 = (code *******)param_6[-1];\n                            if (pppppppcVar29 != (code *******)0x0) break;\n                            param_6 = param_6 + -1;\n                          }\n                          param_6 = param_6 + -1;\n                        } while (((uint)pppppppcVar29[0xd] & 0x8000000) == 0);\n                        pppppppcVar31 = (code *******)(*pcVar9)(&local_b4,pppppppcVar29,unaff_s8);\n                        pppppppcVar33 = pppppppcVar28;\n                      }\n                    }\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    (*(code *)PTR_free_00079c24)(param_4);\n                    local_150 = param_5;\n                    if (param_5 == (code *******)0x1) goto LAB_00055b04;\n                  }\n                }\n                else {\n                  local_150 = (code *******)0xc;\n                  pppppppcVar33 = pppppppcVar28;\n                }\n                goto LAB_000557e4;\n              }\n              if (pppppppcVar38[0x13] != (code ******)0x0) {\n                pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                pppppppcVar30 = unaff_s8;\n                local_54 = (code *******)FUN_00049440(&local_b4);\n                goto LAB_00055c6c;\n              }\nLAB_00055c08:\n              if ((((uint)param_1[7] & 0x8000000) == 0) && ((code *******)0x1 < pppppppcVar3)) {\n                cVar23 = *(code *)(pppppppcVar38 + 0x16);\n                goto LAB_00055c20;\n              }\nLAB_00055548:\n              if (pppppppcVar3 == (code *******)0x0) goto LAB_000557e4;\n              if (pppppppcVar3 < (code *******)0x2) {\n                *param_8 = (code ******)0x0;\n                param_8[1] = (code ******)local_58;\n                goto LAB_000555ac;\n              }\n              pppppppcVar29 = param_8 + 2;\n              do {\n                pppppppcVar29[1] = (code ******)0xffffffff;\n                *pppppppcVar29 = (code ******)0xffffffff;\n                pppppppcVar29 = pppppppcVar29 + 2;\n              } while (pppppppcVar29 != param_8 + (int)pppppppcVar3 * 2);\n              *param_8 = (code ******)0x0;\n              param_8[1] = (code ******)local_58;\n              if (((uint)param_1[7] & 0x8000000) != 0) {\nLAB_000555ac:\n                pppppppcVar33 = param_8;\n                do {\n                  pppppppcVar29 = (code *******)*pppppppcVar33;\n                  if (pppppppcVar29 != (code *******)0xffffffff) {\n                    if (local_68 != '\0') {\n                      pppppppcVar34 = local_94;\n                      if (pppppppcVar29 != local_98) {\n                        pppppppcVar34 = *(code ********)(local_a8 + (int)pppppppcVar29 * 4);\n                      }\n                      *pppppppcVar33 = (code ******)pppppppcVar34;\n                      pppppppcVar29 = local_94;\n                      if (local_98 != (code *******)pppppppcVar33[1]) {\n                        pppppppcVar29 = *(code ********)(local_a8 + (int)pppppppcVar33[1] * 4);\n                      }\n                      pppppppcVar33[1] = (code ******)pppppppcVar29;\n                    }\n                    *pppppppcVar33 = (code ******)((int)local_dc + (int)*pppppppcVar33);\n                    pppppppcVar29 = (code *******)((int)local_dc + (int)pppppppcVar33[1]);\n                    pppppppcVar33[1] = (code ******)pppppppcVar29;\n                  }\n                  pppppppcVar33 = pppppppcVar33 + 2;\n                } while (pppppppcVar33 != param_8 + (int)pppppppcVar3 * 2);\n                if (0 < local_118) {\n                  pppppppcVar33 = param_8 + (int)pppppppcVar3 * 2;\n                  do {\n                    *pppppppcVar33 = (code ******)0xffffffff;\n                    pppppppcVar33[1] = (code ******)0xffffffff;\n                    pppppppcVar33 = pppppppcVar33 + 2;\n                  } while (pppppppcVar33 != param_8 + (int)param_7 * 2);\n                }\n                pppppppcVar30 = local_dc;\n                pppppppcVar33 = param_8;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar38[0x21] != (code ******)0x0) {\n                  pppppppcVar30 = (code *******)((int)pppppppcVar3 + -1);\n                  pppppppcVar34 = (code *******)0x0;\n                  pppppppcVar3 = param_8;\n                  while( true ) {\n                    pppppppcVar29 = (code *******)((int)pppppppcVar34 * 4);\n                    if (pppppppcVar30 == pppppppcVar34) break;\n                    if (*(code ********)((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) !=\n                        pppppppcVar34) {\n                      pppppppcVar3[2] =\n                           param_8[(int)((int)*(code ********)\n                                               ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1)\n                                   * 2];\n                      pppppppcVar3[3] =\n                           param_8[((int)*(code ******)\n                                          ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1) * 2 +\n                                   1];\n                    }\n                    pppppppcVar34 = (code *******)((int)pppppppcVar34 + 1);\n                    pppppppcVar3 = pppppppcVar3 + 2;\n                  }\n                }\n                goto LAB_000557e4;\n              }\n              if ((char)*(code *)(pppppppcVar38 + 0x16) < '\0') {\n                local_168 = (uint)(0 < (int)pppppppcVar38[0x13]);\n              }\n              else {\n                local_168 = 0;\n              }\n              pppppppcVar29 = &local_b4;\n              pppppppcVar30 = pppppppcVar3;\n              pppppppcVar33 = param_8;\n              local_150 = (code *******)FUN_0004f4a0(param_1);\n              if (local_150 == (code *******)0x0) goto LAB_000555ac;\n            }\n          }\n          else if (local_90 < 0x3fffffff) {\n            local_50 = (code *******)(*(code *)PTR_malloc_00079b54)((local_90 + 1) * 4);\n            if (local_50 != (code *******)0x0) goto LAB_00055a40;\n            local_150 = (code *******)0xc;\n            param_6 = pppppppcVar36;\n          }\n          else {\n            local_150 = (code *******)0xc;\n            param_6 = pppppppcVar36;\n          }\n        }" ({ "{") (labeled_statement "LAB_000559f0:\n          local_3c = 1;" (statement_identifier "LAB_000559f0") (: ":") (expression_statement "local_3c = 1;" (assignment_expression "local_3c = 1" (identifier "local_3c") (= "=") (number_literal "1")) (; ";"))) (expression_statement "local_44 = pppppppcVar36;" (assignment_expression "local_44 = pppppppcVar36" (identifier "local_44") (= "=") (identifier "pppppppcVar36")) (; ";")) (expression_statement "local_34 = pppppppcVar36;" (assignment_expression "local_34 = pppppppcVar36" (identifier "local_34") (= "=") (identifier "pppppppcVar36")) (; ";")) (if_statement "if ((pppppppcVar3 < (code *******)0x2) && (((uint)pppppppcVar38[0x16] & 0x40000000) == 0))\n          {\n            local_50 = (code *******)0x0;\nLAB_00055a40:\n            local_78 = 6;\n            if (((uint)param_9 & 1) != 0) {\n              local_78 = 4;\n            }\n            pppppppcVar24 = (code *******)0x1;\n            pppppppcVar25 = param_4;\n            if ((int)param_5 < (int)param_4) {\n              pppppppcVar24 = (code *******)0xffffffff;\n              pppppppcVar25 = param_5;\n            }\n            pppppppcVar26 = param_5;\n            if ((int)param_5 <= (int)param_4) {\n              pppppppcVar26 = param_4;\n            }\n            ppppppcVar35 = pppppppcVar38[0x17];\n            uVar16 = 8;\n            if (local_148 != (code *******)0x0) {\n              if (ppppppcVar35 == (code ******)0x1) {\n                pppppppcVar28 = (code *******)0x4;\n              }\n              else {\n                pppppppcVar28 = pppppppcVar2;\n                if ((-1 < (int)param_1[3] << 9) && (ppppppcVar32 == (code ******)0x0)) {\n                  pppppppcVar28 = (code *******)0x4;\n                }\n              }\n              pppppppcVar29 = (code *******)0x0;\n              if ((int)param_4 <= (int)param_5) {\n                pppppppcVar29 = (code *******)0x2;\n              }\n              uVar16 = (uint)(ppppppcVar32 != (code ******)0x0) | (uint)pppppppcVar28 |\n                       (uint)pppppppcVar29;\n            }\n            local_dc = param_4;\n            if ((int)param_4 < (int)pppppppcVar25) {\n              local_150 = (code *******)0x1;\n              param_6 = pppppppcVar36;\n            }\n            else if ((int)pppppppcVar26 < (int)param_4) {\n              local_150 = (code *******)0x1;\n              param_4 = (code *******)(uint)((int)param_5 < (int)param_4);\n              param_6 = pppppppcVar36;\n            }\n            else {\n              pppppppcVar36 = (code *******)&local_dc;\n              if ((code *******)(uint)((int)param_5 < (int)param_4) != (code *******)0x0) {\n                pppppppcVar36 = (code *******)0x0;\n              }\n              pcVar4 = (code *)(PTR_DAT_000799a4 + -0x2b7c);\n              piVar5 = (int *)(PTR_s_nt0_000795b8 + (uVar16 - 4) * 4 + 0x6e38);\nLAB_00055b44:\n              if (uVar16 - 4 < 5) {\n                    \n                    \n                pppppppcVar29 = (code *******)(*(code *)(&_gp_1 + *piVar5))();\n                return pppppppcVar29;\n              }\n              param_5 = &local_b4;\n              pppppppcVar28 = pppppppcVar33;\n              while( true ) {\n                param_4 = local_dc;\n                pppppppcVar33 = (code *******)((int)local_dc - local_9c);\n                pppppppcVar30 = param_9;\n                pppppppcVar31 = pppppppcVar2;\n                param_6 = local_148;\n                unaff_s4 = param_3;\n                unaff_s5 = pppppppcVar24;\n                unaff_s7 = pppppppcVar26;\n                if (local_94 <= pppppppcVar33) {\n                  pppppppcVar29 = local_dc;\n                  local_150 = (code *******)(*pcVar4)(param_5);\n                  pppppppcVar33 = pppppppcVar28;\n                  if (local_150 != (code *******)0x0) goto LAB_000557e4;\n                  pppppppcVar33 = (code *******)((int)param_4 - local_9c);\n                }\n                if ((int)param_4 < (int)param_3) {\n                  uVar7 = (uint)(byte)*(code *)((int)pppppppcVar33 + (int)local_b0);\n                }\n                else {\n                  uVar7 = 0;\n                }\n                param_4 = (code *******)((int)param_4 + (int)pppppppcVar24);\n                if (*(code *)((int)local_148 + uVar7) != (code)0x0) break;\n                pppppppcVar33 = pppppppcVar28;\n                local_dc = param_4;\n                if ((int)param_4 < (int)pppppppcVar25) {\n                  local_150 = (code *******)0x1;\n                  goto LAB_000557e4;\n                }\n                if ((code *******)(uint)((int)pppppppcVar26 < (int)param_4) != (code *******)0x0) {\n                  local_150 = (code *******)0x1;\n                  param_4 = (code *******)(uint)((int)pppppppcVar26 < (int)param_4);\n                  goto LAB_000557e4;\n                }\n              }\n              while( true ) {\n                pppppppcVar29 = local_dc;\n                pppppppcVar30 = param_9;\n                pppppppcVar6 = (code *******)(*pcVar4)(&local_b4);\n                pppppppcVar14 = local_60;\n                pppppppcVar42 = local_8c;\n                pppppppcVar33 = pppppppcVar28;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar6 != (code *******)0x0) goto LAB_000557e4;\n                if (((ppppppcVar35 != (code ******)0x1) && (local_98 != (code *******)0x0)) &&\n                   (*local_ac == -1)) goto LAB_00055b1c;\n                local_3c = 0;\n                local_48 = 0;\n                local_4c = (code *******)0x0;\n                local_138 = local_8c;\n                local_d8 = (code *******)0x0;\n                unaff_s7 = (code *******)local_60[9];\n                pppppppcVar30 = local_5c;\n                param_4 = pppppppcVar14;\n                if (((uint)unaff_s7[0xd] & 0x1000000) == 0) break;\n                pppppppcVar29 = (code *******)((int)local_8c + -1);\n                pppppppcVar33 = (code *******)FUN_00049110(&local_b4);\n                if (((uint)pppppppcVar33 & 1) == 0) {\n                  if (pppppppcVar33 == (code *******)0x0) break;\n                  if (((uint)pppppppcVar33 & 6) == 6) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xc];\n                    goto LAB_00054d1c;\n                  }\n                  if (((uint)pppppppcVar33 & 2) != 0) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xb];\n                    goto LAB_00054d1c;\n                  }\n                  pppppppcVar28 = pppppppcVar33;\n                  if (((uint)pppppppcVar33 & 4) == 0) break;\n                  pppppppcVar30 = (code *******)unaff_s7[10];\n                  pppppppcVar29 = pppppppcVar14;\n                  unaff_s7 = (code *******)FUN_0004ae34(&local_d8);\n                  pppppppcVar28 = pppppppcVar33;\n                  if (unaff_s7 != (code *******)0x0) break;\n                  if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                }\n                else {\n                  unaff_s7 = (code *******)pppppppcVar14[10];\nLAB_00054d1c:\n                  pppppppcVar28 = (code *******)PTR_s_nt0_000795b8;\n                  if (unaff_s7 != (code *******)0x0) break;\n                }\n                pppppppcVar28 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                local_dc = (code *******)\n                           (*(code *)PTR___assert_fail_000799f8)\n                                     (PTR_s_nt0_000795b8 + 0x71a0,pppppppcVar29,0x435);\n                if (local_dc == pppppppcVar26) {\n                  if ((int)local_dc < (int)param_3) {\n                    uVar7 = (uint)(byte)*(code *)((int)local_dc + (int)param_2);\n                  }\n                  else {\n                    uVar7 = 0;\n                  }\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    uVar7 = (uint)*(byte *)((int)ppppppcVar32 + uVar7);\n                  }\n                  if (*(code *)((int)local_148 + uVar7) == (code)0x0) {\n                    local_150 = (code *******)0x1;\n                    pppppppcVar30 = param_9;\n                    pppppppcVar33 = pppppppcVar28;\n                    goto LAB_000557e4;\n                  }\n                }\n              }\n              pppppppcVar33 = pppppppcVar28;\n              bVar1 = pppppppcVar36 != (code *******)0x0;\n              if ((local_50 == (code *******)0x0) ||\n                 (local_50[(int)pppppppcVar42] = (code ******)unaff_s7,\n                 pppppppcVar14[0x13] == (code ******)0x0)) {\nLAB_00054d50:\n                if ((int)unaff_s7[0xd] << 4 < 0) {\n                  if ((((uint)unaff_s7[0xd] & 0x1000000) == 0) ||\n                     (pppppppcVar29 = unaff_s7, pppppppcVar30 = pppppppcVar42,\n                     iVar18 = FUN_00049440(&local_b4), iVar18 != 0)) {\n                    unaff_s8 = pppppppcVar42;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                  }\n                  else {\n                    pppppppcVar42 = (code *******)0xffffffff;\n                    pppppppcVar28 = (code *******)0x0;\n                  }\n                }\n                else {\n                  pppppppcVar42 = (code *******)0xffffffff;\n                  pppppppcVar28 = (code *******)0x0;\n                }\n                pcVar8 = (code *)(PTR_DAT_000799a4 + -0x7144);\n                pcVar9 = (code *)(PTR_DAT_000799a4 + -0x1980);\n                pcVar10 = (code *)(PTR_DAT_000799a4 + -0x2f9c);\n                unaff_s8 = pppppppcVar42;\n                local_144 = pppppppcVar36;\n                while( true ) {\n                  uVar44 = CONCAT44(local_98,local_84);\n                  unaff_s5 = (code *******)((int)local_8c + 1);\n                  pppppppcVar29 = local_8c;\n                  if ((int)local_7c <= (int)local_8c) break;\n                  if (((int)local_90 <= (int)unaff_s5) && ((int)local_90 < (int)local_84))\n                  goto LAB_00054e94;\n                  if ((int)local_98 <= (int)unaff_s5) {\n                    while ((int)((ulonglong)uVar44 >> 0x20) < (int)uVar44) {\nLAB_00054e94:\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 2);\n                      local_d8 = (code *******)(*pcVar8)(&local_b4);\n                      if (local_d8 == (code *******)0x0) break;\n                      pppppppcVar14 = param_4;\n                      if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                      pppppppcVar33 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                      pppppppcVar30 = (code *******)0x46c;\n                      pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                      uVar44 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0);\n                      pppppppcVar28 = pppppppcVar38;\n                    }\n                  }\n                  pppppppcVar42 = local_60;\n                  if ((int)unaff_s7[0xd] << 5 < 0) {\n                    pppppppcVar31 = pppppppcVar42;\n                    if (0 < (int)unaff_s7[2]) {\n                      pcVar11 = (code *)(PTR_DAT_000799a4 + -0x6fdc);\n                      pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6ef0);\n                      param_6 = (code *******)0x0;\n                      do {\n                        param_5 = (code *******)unaff_s7[3][(int)param_6];\n                        ppppppcVar39 = *pppppppcVar42;\n                        pppppcVar13 = ppppppcVar39[(int)param_5 * 2 + 1];\n                        if (((uint)pppppcVar13 & 0x800) != 0) {\n                          if (((uint)pppppcVar13 & 0xffc000) != 0) {\n                            pppppppcVar29 = local_8c;\n                            uVar19 = (*pcVar12)(&local_b4,local_8c,local_5c);\n                            uVar7 = (uint)((int)ppppppcVar39[(int)param_5 * 2 + 1] << 8) >> 0x16;\n                            if ((uVar7 & 4) == 0) {\n                              uVar27 = uVar19 & 1;\n                              if ((uVar7 & 8) != 0) goto joined_r0x00054f40;\n                            }\n                            else {\n                              uVar27 = uVar7 & 8;\n                              if ((uVar19 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                              if (uVar27 != 0) goto LAB_000550a4;\n                            }\n                            if ((((uVar7 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                               (((uVar7 & 0x80) != 0 &&\n                                (pppppppcVar33 = local_8c, (uVar19 & 8) == 0)))) goto LAB_000550a4;\n                          }\n                          pppppppcVar30 = &local_b4;\n                          pppppppcVar29 = param_5;\n                          pppppppcVar33 = local_8c;\n                          iVar18 = (*pcVar10)(pppppppcVar42);\n                          if (iVar18 != 0) {\n                            pppppppcVar14 = (code *******)((int)local_8c + iVar18);\n                            if (iVar18 <= local_3c) {\n                              iVar18 = local_3c;\n                            }\n                            pppppppcVar29 = pppppppcVar14;\n                            local_3c = iVar18;\n                            local_d4 = (code *******)(*pcVar11)(&local_b4);\n                            pppppppcVar15 = local_d4;\n                            if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                            pppppppcVar30 =\n                                 (code *******)\n                                 (pppppppcVar42[6] + (int)pppppppcVar42[3][(int)param_5] * 3);\n                            unaff_s4 = (code *******)((int)pppppppcVar14 * 4);\n                            param_5 = local_50 + (int)pppppppcVar14;\n                            if (*param_5 == (code ******)0x0) {\n                              local_d0 = (code *******)*pppppppcVar30;\n                              local_cc = (code *******)pppppppcVar30[1];\n                              local_c8 = (code *******)pppppppcVar30[2];\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *param_5 = ppppppcVar39;\n                            }\n                            else {\n                              pppppppcVar29 = (code *******)(*param_5)[10];\n                              local_d4 = (code *******)FUN_000484bc(&local_d0);\n                              pppppppcVar15 = local_d4;\n                              if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar15 = local_50 + (int)pppppppcVar14;\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *pppppppcVar15 = ppppppcVar39;\n                              (*(code *)PTR_free_00079c24)(local_c8);\n                            }\n                            unaff_s4 = local_50 + (int)pppppppcVar14;\n                            if ((*unaff_s4 == (code ******)0x0) &&\n                               (pppppppcVar15 = local_d4, local_d4 != (code *******)0x0))\n                            goto LAB_00055e44;\n                          }\n                        }\nLAB_000550a4:\n                        param_6 = (code *******)((int)param_6 + 1);\n                      } while ((int)param_6 < (int)unaff_s7[2]);\n                    }\n                    local_d8 = (code *******)0x0;\n                  }\n                  uVar7 = (uint)(byte)*(code *)((int)local_8c + (int)local_b0);\n                  local_8c = (code *******)((int)local_8c + 1);\n                  do {\n                    if (unaff_s7[0xb] != (code ******)0x0) {\n                      pppppppcVar30 = (code *******)unaff_s7[0xb][uVar7];\nLAB_000553a0:\n                      pppppppcVar14 = pppppppcVar30;\n                      if (local_50 != (code *******)0x0) goto LAB_000553ac;\n                      goto LAB_000553cc;\n                    }\n                    pppppppcVar31 = (code *******)unaff_s7[0xc];\n                    if (pppppppcVar31 != (code *******)0x0) {\n                      pppppppcVar29 = (code *******)((int)local_8c + -1);\n                      uVar19 = FUN_00049110(&local_b4);\n                      if ((uVar19 & 1) == 0) {\n                        pppppppcVar30 = (code *******)pppppppcVar31[uVar7];\n                      }\n                      else {\n                        pppppppcVar31 = pppppppcVar31 + uVar7 + 0x100;\n                        pppppppcVar30 = (code *******)*pppppppcVar31;\n                      }\n                      goto LAB_000553a0;\n                    }\n                    pppppppcVar29 = unaff_s7;\n                    pppppppcVar30 = local_5c;\n                    iVar18 = (*pcVar9)(local_60);\n                  } while (iVar18 != 0);\n                  local_d8 = (code *******)0xc;\n                  pppppppcVar15 = local_d8;\nLAB_00055e44:\n                  local_d8 = pppppppcVar15;\n                  param_4 = (code *******)0x0;\n                  if (local_50 == (code *******)0x0) {\n                    pppppppcVar14 = param_4;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    break;\n                  }\n                  pppppppcVar30 = (code *******)0x0;\nLAB_000553ac:\n                  pppppppcVar29 = &local_b4;\n                  pppppppcVar14 = (code *******)FUN_00053684(&local_d8);\nLAB_000553cc:\n                  param_4 = pppppppcVar14;\n                  if (pppppppcVar14 == (code *******)0x0) {\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    if ((local_50 == (code *******)0x0) ||\n                       ((pppppppcVar28 != (code *******)0x0 && (pppppppcVar34 == (code *******)0x0))\n                       )) break;\n                    param_6 = &local_b4;\n                    param_5 = (code *******)&local_d8;\n                    pppppppcVar31 = (code *******)(PTR_DAT_000799a4 + 0x3684);\n                    do {\n                      pppppppcVar15 = local_50 + (int)local_8c;\n                      pppppppcVar42 = local_8c;\n                      do {\n                        pppppppcVar42 = (code *******)((int)pppppppcVar42 + 1);\n                        pppppppcVar29 = local_4c;\n                        param_4 = pppppppcVar14;\n                        if ((int)local_4c < (int)pppppppcVar42) goto LAB_00055da8;\n                        local_8c = (code *******)((int)local_8c + 1);\n                        pppppppcVar15 = pppppppcVar15 + 1;\n                      } while (*pppppppcVar15 == (code ******)0x0);\n                      pppppppcVar30 = (code *******)0x0;\n                      pppppppcVar29 = param_6;\n                      param_4 = (code *******)(*(code *)pppppppcVar31)(param_5);\n                      if (local_d8 != (code *******)0x0) {\n                        if (param_4 == (code *******)0x0) goto LAB_00055da8;\n                        break;\n                      }\n                      pppppppcVar29 = local_4c;\n                    } while (param_4 == (code *******)0x0);\n                  }\n                  pppppppcVar15 = (code *******)((uint)unaff_s7 ^ (uint)param_4);\n                  pppppppcVar42 = unaff_s7;\n                  pppppppcVar14 = local_138;\n                  if ((bVar1) &&\n                     (pppppppcVar42 = pppppppcVar15, pppppppcVar14 = unaff_s5,\n                     pppppppcVar15 != (code *******)0x0)) {\n                    bVar1 = false;\n                    pppppppcVar14 = local_138;\n                  }\n                  local_138 = pppppppcVar14;\n                  unaff_s7 = param_4;\n                  if ((((uint)param_4[0xd] & 0x8000000) != 0) &&\n                     ((((uint)param_4[0xd] & 0x1000000) == 0 ||\n                      (pppppppcVar29 = param_4, pppppppcVar30 = local_8c,\n                      iVar18 = FUN_00049440(&local_b4), iVar18 != 0)))) {\n                    unaff_s7 = pppppppcVar42;\n                    unaff_s8 = local_8c;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                    local_144 = (code *******)0x0;\n                    unaff_s7 = param_4;\n                  }\n                }\nLAB_00055da8:\n                if (local_144 != (code *******)0x0) {\n                  *local_144 = (code ******)((int)local_138 + (int)*local_144);\n                }\n              }\n              else {\n                param_4 = unaff_s7 + 1;\n                pppppppcVar30 = (code *******)0x0;\n                pppppppcVar29 = param_4;\n                local_d8 = (code *******)FUN_00047a44(&local_b4);\n                unaff_s8 = local_d8;\n                if (local_d8 == (code *******)0x0) {\n                  if (((uint)unaff_s7[0xd] & 0x2000000) == 0) {\n                    pppppppcVar29 = param_4;\n                    bVar1 = false;\n                  }\n                  else {\n                    pppppppcVar29 = param_4;\n                    local_d8 = (code *******)FUN_00052d84(&local_b4);\n                    unaff_s8 = local_d8;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055dbc;\n                    bVar1 = false;\n                  }\n                  goto LAB_00054d50;\n                }\n              }\nLAB_00055dbc:\n              if (unaff_s8 == (code *******)0xffffffff) {\nLAB_00055b04:\n                FUN_0004b7e8(&local_b4);\nLAB_00055b1c:\n                local_dc = (code *******)((int)pppppppcVar24 + (int)local_dc);\n                if ((int)pppppppcVar25 <= (int)local_dc) goto code_r0x00055b38;\n                local_150 = (code *******)0x1;\n                goto LAB_000557e4;\n              }\n              if (unaff_s8 == (code *******)&SUB_fffffffe) {\n                local_150 = (code *******)0xc;\n                goto LAB_000557e4;\n              }\n              local_58 = unaff_s8;\n              if (((uint)param_1[7] & 0x8000000) == 0) {\n                if (pppppppcVar3 < (code *******)0x2) {\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055c08;\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                else {\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                if (pppppppcVar3 < (code *******)0x2) {\nLAB_00055c6c:\n                  pppppppcVar28 = pppppppcVar33;\n                  unaff_s4 = local_60;\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055548;\n                }\n                else {\n                  cVar23 = *(code *)(pppppppcVar38 + 0x16);\nLAB_00055c20:\n                  pppppppcVar28 = pppppppcVar33;\n                  if (-1 < (char)cVar23) goto LAB_00055c6c;\n                }\n                pppppppcVar31 = local_54;\n                pppppppcVar42 = local_60;\n                unaff_s4 = pppppppcVar42;\n                if (unaff_s8 < (code *******)0x3fffffff) {\n                  param_4 = (code *******)((int)((int)unaff_s8 + 1) * 4);\n                  unaff_s5 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                  if (unaff_s5 == (code *******)0x0) {\nLAB_00055b9c:\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    local_150 = (code *******)0xc;\n                    pppppppcVar33 = pppppppcVar28;\n                  }\n                  else {\n                    pppppppcVar29 = (code *******)&local_d0;\n                    if (pppppppcVar42[0x13] == (code ******)0x0) {\n                      local_cc = (code *******)0x0;\n                      local_c8 = pppppppcVar31;\n                      local_c0 = 0;\n                      local_bc = 0;\n                      local_b8 = 0;\n                      local_d0 = unaff_s5;\n                      local_c4 = unaff_s8;\n                      param_5 = (code *******)FUN_0005421c(&local_b4);\n                      (*(code *)PTR_free_00079c24)(local_b8);\n                      if (param_5 == (code *******)0x0) {\n                        param_4 = (code *******)*unaff_s5;\n                        if (param_4 == (code *******)0x0) {\nLAB_00055b70:\n                          (*(code *)PTR_free_00079c24)(unaff_s5);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          pppppppcVar33 = pppppppcVar28;\n                          goto LAB_00055b04;\n                        }\nLAB_00055528:\n                        (*(code *)PTR_free_00079c24)(local_50);\n                        pppppppcVar33 = pppppppcVar28;\n                        unaff_s4 = pppppppcVar42;\n                        local_58 = unaff_s8;\n                        local_54 = pppppppcVar31;\n                        local_50 = unaff_s5;\n                        goto LAB_00055548;\n                      }\nLAB_00055acc:\n                      param_4 = (code *******)0x0;\n                      pppppppcVar33 = pppppppcVar28;\n                      unaff_s4 = pppppppcVar42;\n                    }\n                    else {\n                      param_4 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                      if (param_4 == (code *******)0x0) goto LAB_00055b9c;\n                      unaff_s7 = (code *******)&local_d0;\n                      pcVar8 = (code *)(PTR_DAT_000799a4 + 0x421c);\n                      pcVar9 = (code *)(PTR_DAT_000799a4 + -0x6bc0);\n                      pppppppcVar33 = pppppppcVar28;\n                      while( true ) {\n                        pppppppcVar28 = (code *******)((int)unaff_s8 + 1);\n                        param_6 = (code *******)((int)pppppppcVar28 * 4);\n                        pppppppcVar30 = param_6;\n                        (*(code *)PTR_memset_00079b00)(param_4,0);\n                        local_c0 = 0;\n                        local_bc = 0;\n                        local_b8 = 0;\n                        pppppppcVar29 = unaff_s7;\n                        local_d0 = unaff_s5;\n                        local_cc = param_4;\n                        local_c8 = pppppppcVar31;\n                        local_c4 = unaff_s8;\n                        param_5 = (code *******)(*pcVar8)(&local_b4);\n                        (*(code *)PTR_free_00079c24)(local_b8);\n                        unaff_s4 = pppppppcVar28;\n                        if (param_5 != (code *******)0x0) break;\n                        if ((*unaff_s5 != (code ******)0x0) ||\n                           (param_6 = param_6 + -1, *param_4 != (code ******)0x0)) {\n                          pppppppcVar29 = unaff_s5;\n                          pppppppcVar30 = param_4;\n                          param_5 = (code *******)FUN_000520d0(pppppppcVar42);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          if (param_5 != (code *******)0x0) goto LAB_00055acc;\n                          goto LAB_00055528;\n                        }\n                        param_6 = (code *******)((int)local_50 + (int)param_6);\n                        do {\n                          while( true ) {\n                            unaff_s8 = (code *******)((int)unaff_s8 + -1);\n                            if ((int)unaff_s8 < 0) goto LAB_00055b70;\n                            pppppppcVar29 = (code *******)param_6[-1];\n                            if (pppppppcVar29 != (code *******)0x0) break;\n                            param_6 = param_6 + -1;\n                          }\n                          param_6 = param_6 + -1;\n                        } while (((uint)pppppppcVar29[0xd] & 0x8000000) == 0);\n                        pppppppcVar31 = (code *******)(*pcVar9)(&local_b4,pppppppcVar29,unaff_s8);\n                        pppppppcVar33 = pppppppcVar28;\n                      }\n                    }\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    (*(code *)PTR_free_00079c24)(param_4);\n                    local_150 = param_5;\n                    if (param_5 == (code *******)0x1) goto LAB_00055b04;\n                  }\n                }\n                else {\n                  local_150 = (code *******)0xc;\n                  pppppppcVar33 = pppppppcVar28;\n                }\n                goto LAB_000557e4;\n              }\n              if (pppppppcVar38[0x13] != (code ******)0x0) {\n                pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                pppppppcVar30 = unaff_s8;\n                local_54 = (code *******)FUN_00049440(&local_b4);\n                goto LAB_00055c6c;\n              }\nLAB_00055c08:\n              if ((((uint)param_1[7] & 0x8000000) == 0) && ((code *******)0x1 < pppppppcVar3)) {\n                cVar23 = *(code *)(pppppppcVar38 + 0x16);\n                goto LAB_00055c20;\n              }\nLAB_00055548:\n              if (pppppppcVar3 == (code *******)0x0) goto LAB_000557e4;\n              if (pppppppcVar3 < (code *******)0x2) {\n                *param_8 = (code ******)0x0;\n                param_8[1] = (code ******)local_58;\n                goto LAB_000555ac;\n              }\n              pppppppcVar29 = param_8 + 2;\n              do {\n                pppppppcVar29[1] = (code ******)0xffffffff;\n                *pppppppcVar29 = (code ******)0xffffffff;\n                pppppppcVar29 = pppppppcVar29 + 2;\n              } while (pppppppcVar29 != param_8 + (int)pppppppcVar3 * 2);\n              *param_8 = (code ******)0x0;\n              param_8[1] = (code ******)local_58;\n              if (((uint)param_1[7] & 0x8000000) != 0) {\nLAB_000555ac:\n                pppppppcVar33 = param_8;\n                do {\n                  pppppppcVar29 = (code *******)*pppppppcVar33;\n                  if (pppppppcVar29 != (code *******)0xffffffff) {\n                    if (local_68 != '\0') {\n                      pppppppcVar34 = local_94;\n                      if (pppppppcVar29 != local_98) {\n                        pppppppcVar34 = *(code ********)(local_a8 + (int)pppppppcVar29 * 4);\n                      }\n                      *pppppppcVar33 = (code ******)pppppppcVar34;\n                      pppppppcVar29 = local_94;\n                      if (local_98 != (code *******)pppppppcVar33[1]) {\n                        pppppppcVar29 = *(code ********)(local_a8 + (int)pppppppcVar33[1] * 4);\n                      }\n                      pppppppcVar33[1] = (code ******)pppppppcVar29;\n                    }\n                    *pppppppcVar33 = (code ******)((int)local_dc + (int)*pppppppcVar33);\n                    pppppppcVar29 = (code *******)((int)local_dc + (int)pppppppcVar33[1]);\n                    pppppppcVar33[1] = (code ******)pppppppcVar29;\n                  }\n                  pppppppcVar33 = pppppppcVar33 + 2;\n                } while (pppppppcVar33 != param_8 + (int)pppppppcVar3 * 2);\n                if (0 < local_118) {\n                  pppppppcVar33 = param_8 + (int)pppppppcVar3 * 2;\n                  do {\n                    *pppppppcVar33 = (code ******)0xffffffff;\n                    pppppppcVar33[1] = (code ******)0xffffffff;\n                    pppppppcVar33 = pppppppcVar33 + 2;\n                  } while (pppppppcVar33 != param_8 + (int)param_7 * 2);\n                }\n                pppppppcVar30 = local_dc;\n                pppppppcVar33 = param_8;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar38[0x21] != (code ******)0x0) {\n                  pppppppcVar30 = (code *******)((int)pppppppcVar3 + -1);\n                  pppppppcVar34 = (code *******)0x0;\n                  pppppppcVar3 = param_8;\n                  while( true ) {\n                    pppppppcVar29 = (code *******)((int)pppppppcVar34 * 4);\n                    if (pppppppcVar30 == pppppppcVar34) break;\n                    if (*(code ********)((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) !=\n                        pppppppcVar34) {\n                      pppppppcVar3[2] =\n                           param_8[(int)((int)*(code ********)\n                                               ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1)\n                                   * 2];\n                      pppppppcVar3[3] =\n                           param_8[((int)*(code ******)\n                                          ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1) * 2 +\n                                   1];\n                    }\n                    pppppppcVar34 = (code *******)((int)pppppppcVar34 + 1);\n                    pppppppcVar3 = pppppppcVar3 + 2;\n                  }\n                }\n                goto LAB_000557e4;\n              }\n              if ((char)*(code *)(pppppppcVar38 + 0x16) < '\0') {\n                local_168 = (uint)(0 < (int)pppppppcVar38[0x13]);\n              }\n              else {\n                local_168 = 0;\n              }\n              pppppppcVar29 = &local_b4;\n              pppppppcVar30 = pppppppcVar3;\n              pppppppcVar33 = param_8;\n              local_150 = (code *******)FUN_0004f4a0(param_1);\n              if (local_150 == (code *******)0x0) goto LAB_000555ac;\n            }\n          }\n          else if (local_90 < 0x3fffffff) {\n            local_50 = (code *******)(*(code *)PTR_malloc_00079b54)((local_90 + 1) * 4);\n            if (local_50 != (code *******)0x0) goto LAB_00055a40;\n            local_150 = (code *******)0xc;\n            param_6 = pppppppcVar36;\n          }\n          else {\n            local_150 = (code *******)0xc;\n            param_6 = pppppppcVar36;\n          }" (if "if") (parenthesized_expression "((pppppppcVar3 < (code *******)0x2) && (((uint)pppppppcVar38[0x16] & 0x40000000) == 0))" (( "(") (binary_expression "(pppppppcVar3 < (code *******)0x2) && (((uint)pppppppcVar38[0x16] & 0x40000000) == 0)" (parenthesized_expression "(pppppppcVar3 < (code *******)0x2)" (( "(") (binary_expression "pppppppcVar3 < (code *******)0x2" (identifier "pppppppcVar3") (< "<") (cast_expression "(code *******)0x2" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x2"))) () ")")) (&& "&&") (parenthesized_expression "(((uint)pppppppcVar38[0x16] & 0x40000000) == 0)" (( "(") (binary_expression "((uint)pppppppcVar38[0x16] & 0x40000000) == 0" (parenthesized_expression "((uint)pppppppcVar38[0x16] & 0x40000000)" (( "(") (binary_expression "(uint)pppppppcVar38[0x16] & 0x40000000" (cast_expression "(uint)pppppppcVar38[0x16]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "pppppppcVar38[0x16]" (identifier "pppppppcVar38") ([ "[") (number_literal "0x16") (] "]"))) (& "&") (number_literal "0x40000000")) () ")")) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n            local_50 = (code *******)0x0;\nLAB_00055a40:\n            local_78 = 6;\n            if (((uint)param_9 & 1) != 0) {\n              local_78 = 4;\n            }\n            pppppppcVar24 = (code *******)0x1;\n            pppppppcVar25 = param_4;\n            if ((int)param_5 < (int)param_4) {\n              pppppppcVar24 = (code *******)0xffffffff;\n              pppppppcVar25 = param_5;\n            }\n            pppppppcVar26 = param_5;\n            if ((int)param_5 <= (int)param_4) {\n              pppppppcVar26 = param_4;\n            }\n            ppppppcVar35 = pppppppcVar38[0x17];\n            uVar16 = 8;\n            if (local_148 != (code *******)0x0) {\n              if (ppppppcVar35 == (code ******)0x1) {\n                pppppppcVar28 = (code *******)0x4;\n              }\n              else {\n                pppppppcVar28 = pppppppcVar2;\n                if ((-1 < (int)param_1[3] << 9) && (ppppppcVar32 == (code ******)0x0)) {\n                  pppppppcVar28 = (code *******)0x4;\n                }\n              }\n              pppppppcVar29 = (code *******)0x0;\n              if ((int)param_4 <= (int)param_5) {\n                pppppppcVar29 = (code *******)0x2;\n              }\n              uVar16 = (uint)(ppppppcVar32 != (code ******)0x0) | (uint)pppppppcVar28 |\n                       (uint)pppppppcVar29;\n            }\n            local_dc = param_4;\n            if ((int)param_4 < (int)pppppppcVar25) {\n              local_150 = (code *******)0x1;\n              param_6 = pppppppcVar36;\n            }\n            else if ((int)pppppppcVar26 < (int)param_4) {\n              local_150 = (code *******)0x1;\n              param_4 = (code *******)(uint)((int)param_5 < (int)param_4);\n              param_6 = pppppppcVar36;\n            }\n            else {\n              pppppppcVar36 = (code *******)&local_dc;\n              if ((code *******)(uint)((int)param_5 < (int)param_4) != (code *******)0x0) {\n                pppppppcVar36 = (code *******)0x0;\n              }\n              pcVar4 = (code *)(PTR_DAT_000799a4 + -0x2b7c);\n              piVar5 = (int *)(PTR_s_nt0_000795b8 + (uVar16 - 4) * 4 + 0x6e38);\nLAB_00055b44:\n              if (uVar16 - 4 < 5) {\n                    \n                    \n                pppppppcVar29 = (code *******)(*(code *)(&_gp_1 + *piVar5))();\n                return pppppppcVar29;\n              }\n              param_5 = &local_b4;\n              pppppppcVar28 = pppppppcVar33;\n              while( true ) {\n                param_4 = local_dc;\n                pppppppcVar33 = (code *******)((int)local_dc - local_9c);\n                pppppppcVar30 = param_9;\n                pppppppcVar31 = pppppppcVar2;\n                param_6 = local_148;\n                unaff_s4 = param_3;\n                unaff_s5 = pppppppcVar24;\n                unaff_s7 = pppppppcVar26;\n                if (local_94 <= pppppppcVar33) {\n                  pppppppcVar29 = local_dc;\n                  local_150 = (code *******)(*pcVar4)(param_5);\n                  pppppppcVar33 = pppppppcVar28;\n                  if (local_150 != (code *******)0x0) goto LAB_000557e4;\n                  pppppppcVar33 = (code *******)((int)param_4 - local_9c);\n                }\n                if ((int)param_4 < (int)param_3) {\n                  uVar7 = (uint)(byte)*(code *)((int)pppppppcVar33 + (int)local_b0);\n                }\n                else {\n                  uVar7 = 0;\n                }\n                param_4 = (code *******)((int)param_4 + (int)pppppppcVar24);\n                if (*(code *)((int)local_148 + uVar7) != (code)0x0) break;\n                pppppppcVar33 = pppppppcVar28;\n                local_dc = param_4;\n                if ((int)param_4 < (int)pppppppcVar25) {\n                  local_150 = (code *******)0x1;\n                  goto LAB_000557e4;\n                }\n                if ((code *******)(uint)((int)pppppppcVar26 < (int)param_4) != (code *******)0x0) {\n                  local_150 = (code *******)0x1;\n                  param_4 = (code *******)(uint)((int)pppppppcVar26 < (int)param_4);\n                  goto LAB_000557e4;\n                }\n              }\n              while( true ) {\n                pppppppcVar29 = local_dc;\n                pppppppcVar30 = param_9;\n                pppppppcVar6 = (code *******)(*pcVar4)(&local_b4);\n                pppppppcVar14 = local_60;\n                pppppppcVar42 = local_8c;\n                pppppppcVar33 = pppppppcVar28;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar6 != (code *******)0x0) goto LAB_000557e4;\n                if (((ppppppcVar35 != (code ******)0x1) && (local_98 != (code *******)0x0)) &&\n                   (*local_ac == -1)) goto LAB_00055b1c;\n                local_3c = 0;\n                local_48 = 0;\n                local_4c = (code *******)0x0;\n                local_138 = local_8c;\n                local_d8 = (code *******)0x0;\n                unaff_s7 = (code *******)local_60[9];\n                pppppppcVar30 = local_5c;\n                param_4 = pppppppcVar14;\n                if (((uint)unaff_s7[0xd] & 0x1000000) == 0) break;\n                pppppppcVar29 = (code *******)((int)local_8c + -1);\n                pppppppcVar33 = (code *******)FUN_00049110(&local_b4);\n                if (((uint)pppppppcVar33 & 1) == 0) {\n                  if (pppppppcVar33 == (code *******)0x0) break;\n                  if (((uint)pppppppcVar33 & 6) == 6) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xc];\n                    goto LAB_00054d1c;\n                  }\n                  if (((uint)pppppppcVar33 & 2) != 0) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xb];\n                    goto LAB_00054d1c;\n                  }\n                  pppppppcVar28 = pppppppcVar33;\n                  if (((uint)pppppppcVar33 & 4) == 0) break;\n                  pppppppcVar30 = (code *******)unaff_s7[10];\n                  pppppppcVar29 = pppppppcVar14;\n                  unaff_s7 = (code *******)FUN_0004ae34(&local_d8);\n                  pppppppcVar28 = pppppppcVar33;\n                  if (unaff_s7 != (code *******)0x0) break;\n                  if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                }\n                else {\n                  unaff_s7 = (code *******)pppppppcVar14[10];\nLAB_00054d1c:\n                  pppppppcVar28 = (code *******)PTR_s_nt0_000795b8;\n                  if (unaff_s7 != (code *******)0x0) break;\n                }\n                pppppppcVar28 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                local_dc = (code *******)\n                           (*(code *)PTR___assert_fail_000799f8)\n                                     (PTR_s_nt0_000795b8 + 0x71a0,pppppppcVar29,0x435);\n                if (local_dc == pppppppcVar26) {\n                  if ((int)local_dc < (int)param_3) {\n                    uVar7 = (uint)(byte)*(code *)((int)local_dc + (int)param_2);\n                  }\n                  else {\n                    uVar7 = 0;\n                  }\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    uVar7 = (uint)*(byte *)((int)ppppppcVar32 + uVar7);\n                  }\n                  if (*(code *)((int)local_148 + uVar7) == (code)0x0) {\n                    local_150 = (code *******)0x1;\n                    pppppppcVar30 = param_9;\n                    pppppppcVar33 = pppppppcVar28;\n                    goto LAB_000557e4;\n                  }\n                }\n              }\n              pppppppcVar33 = pppppppcVar28;\n              bVar1 = pppppppcVar36 != (code *******)0x0;\n              if ((local_50 == (code *******)0x0) ||\n                 (local_50[(int)pppppppcVar42] = (code ******)unaff_s7,\n                 pppppppcVar14[0x13] == (code ******)0x0)) {\nLAB_00054d50:\n                if ((int)unaff_s7[0xd] << 4 < 0) {\n                  if ((((uint)unaff_s7[0xd] & 0x1000000) == 0) ||\n                     (pppppppcVar29 = unaff_s7, pppppppcVar30 = pppppppcVar42,\n                     iVar18 = FUN_00049440(&local_b4), iVar18 != 0)) {\n                    unaff_s8 = pppppppcVar42;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                  }\n                  else {\n                    pppppppcVar42 = (code *******)0xffffffff;\n                    pppppppcVar28 = (code *******)0x0;\n                  }\n                }\n                else {\n                  pppppppcVar42 = (code *******)0xffffffff;\n                  pppppppcVar28 = (code *******)0x0;\n                }\n                pcVar8 = (code *)(PTR_DAT_000799a4 + -0x7144);\n                pcVar9 = (code *)(PTR_DAT_000799a4 + -0x1980);\n                pcVar10 = (code *)(PTR_DAT_000799a4 + -0x2f9c);\n                unaff_s8 = pppppppcVar42;\n                local_144 = pppppppcVar36;\n                while( true ) {\n                  uVar44 = CONCAT44(local_98,local_84);\n                  unaff_s5 = (code *******)((int)local_8c + 1);\n                  pppppppcVar29 = local_8c;\n                  if ((int)local_7c <= (int)local_8c) break;\n                  if (((int)local_90 <= (int)unaff_s5) && ((int)local_90 < (int)local_84))\n                  goto LAB_00054e94;\n                  if ((int)local_98 <= (int)unaff_s5) {\n                    while ((int)((ulonglong)uVar44 >> 0x20) < (int)uVar44) {\nLAB_00054e94:\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 2);\n                      local_d8 = (code *******)(*pcVar8)(&local_b4);\n                      if (local_d8 == (code *******)0x0) break;\n                      pppppppcVar14 = param_4;\n                      if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                      pppppppcVar33 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                      pppppppcVar30 = (code *******)0x46c;\n                      pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                      uVar44 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0);\n                      pppppppcVar28 = pppppppcVar38;\n                    }\n                  }\n                  pppppppcVar42 = local_60;\n                  if ((int)unaff_s7[0xd] << 5 < 0) {\n                    pppppppcVar31 = pppppppcVar42;\n                    if (0 < (int)unaff_s7[2]) {\n                      pcVar11 = (code *)(PTR_DAT_000799a4 + -0x6fdc);\n                      pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6ef0);\n                      param_6 = (code *******)0x0;\n                      do {\n                        param_5 = (code *******)unaff_s7[3][(int)param_6];\n                        ppppppcVar39 = *pppppppcVar42;\n                        pppppcVar13 = ppppppcVar39[(int)param_5 * 2 + 1];\n                        if (((uint)pppppcVar13 & 0x800) != 0) {\n                          if (((uint)pppppcVar13 & 0xffc000) != 0) {\n                            pppppppcVar29 = local_8c;\n                            uVar19 = (*pcVar12)(&local_b4,local_8c,local_5c);\n                            uVar7 = (uint)((int)ppppppcVar39[(int)param_5 * 2 + 1] << 8) >> 0x16;\n                            if ((uVar7 & 4) == 0) {\n                              uVar27 = uVar19 & 1;\n                              if ((uVar7 & 8) != 0) goto joined_r0x00054f40;\n                            }\n                            else {\n                              uVar27 = uVar7 & 8;\n                              if ((uVar19 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                              if (uVar27 != 0) goto LAB_000550a4;\n                            }\n                            if ((((uVar7 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                               (((uVar7 & 0x80) != 0 &&\n                                (pppppppcVar33 = local_8c, (uVar19 & 8) == 0)))) goto LAB_000550a4;\n                          }\n                          pppppppcVar30 = &local_b4;\n                          pppppppcVar29 = param_5;\n                          pppppppcVar33 = local_8c;\n                          iVar18 = (*pcVar10)(pppppppcVar42);\n                          if (iVar18 != 0) {\n                            pppppppcVar14 = (code *******)((int)local_8c + iVar18);\n                            if (iVar18 <= local_3c) {\n                              iVar18 = local_3c;\n                            }\n                            pppppppcVar29 = pppppppcVar14;\n                            local_3c = iVar18;\n                            local_d4 = (code *******)(*pcVar11)(&local_b4);\n                            pppppppcVar15 = local_d4;\n                            if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                            pppppppcVar30 =\n                                 (code *******)\n                                 (pppppppcVar42[6] + (int)pppppppcVar42[3][(int)param_5] * 3);\n                            unaff_s4 = (code *******)((int)pppppppcVar14 * 4);\n                            param_5 = local_50 + (int)pppppppcVar14;\n                            if (*param_5 == (code ******)0x0) {\n                              local_d0 = (code *******)*pppppppcVar30;\n                              local_cc = (code *******)pppppppcVar30[1];\n                              local_c8 = (code *******)pppppppcVar30[2];\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *param_5 = ppppppcVar39;\n                            }\n                            else {\n                              pppppppcVar29 = (code *******)(*param_5)[10];\n                              local_d4 = (code *******)FUN_000484bc(&local_d0);\n                              pppppppcVar15 = local_d4;\n                              if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar15 = local_50 + (int)pppppppcVar14;\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *pppppppcVar15 = ppppppcVar39;\n                              (*(code *)PTR_free_00079c24)(local_c8);\n                            }\n                            unaff_s4 = local_50 + (int)pppppppcVar14;\n                            if ((*unaff_s4 == (code ******)0x0) &&\n                               (pppppppcVar15 = local_d4, local_d4 != (code *******)0x0))\n                            goto LAB_00055e44;\n                          }\n                        }\nLAB_000550a4:\n                        param_6 = (code *******)((int)param_6 + 1);\n                      } while ((int)param_6 < (int)unaff_s7[2]);\n                    }\n                    local_d8 = (code *******)0x0;\n                  }\n                  uVar7 = (uint)(byte)*(code *)((int)local_8c + (int)local_b0);\n                  local_8c = (code *******)((int)local_8c + 1);\n                  do {\n                    if (unaff_s7[0xb] != (code ******)0x0) {\n                      pppppppcVar30 = (code *******)unaff_s7[0xb][uVar7];\nLAB_000553a0:\n                      pppppppcVar14 = pppppppcVar30;\n                      if (local_50 != (code *******)0x0) goto LAB_000553ac;\n                      goto LAB_000553cc;\n                    }\n                    pppppppcVar31 = (code *******)unaff_s7[0xc];\n                    if (pppppppcVar31 != (code *******)0x0) {\n                      pppppppcVar29 = (code *******)((int)local_8c + -1);\n                      uVar19 = FUN_00049110(&local_b4);\n                      if ((uVar19 & 1) == 0) {\n                        pppppppcVar30 = (code *******)pppppppcVar31[uVar7];\n                      }\n                      else {\n                        pppppppcVar31 = pppppppcVar31 + uVar7 + 0x100;\n                        pppppppcVar30 = (code *******)*pppppppcVar31;\n                      }\n                      goto LAB_000553a0;\n                    }\n                    pppppppcVar29 = unaff_s7;\n                    pppppppcVar30 = local_5c;\n                    iVar18 = (*pcVar9)(local_60);\n                  } while (iVar18 != 0);\n                  local_d8 = (code *******)0xc;\n                  pppppppcVar15 = local_d8;\nLAB_00055e44:\n                  local_d8 = pppppppcVar15;\n                  param_4 = (code *******)0x0;\n                  if (local_50 == (code *******)0x0) {\n                    pppppppcVar14 = param_4;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    break;\n                  }\n                  pppppppcVar30 = (code *******)0x0;\nLAB_000553ac:\n                  pppppppcVar29 = &local_b4;\n                  pppppppcVar14 = (code *******)FUN_00053684(&local_d8);\nLAB_000553cc:\n                  param_4 = pppppppcVar14;\n                  if (pppppppcVar14 == (code *******)0x0) {\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    if ((local_50 == (code *******)0x0) ||\n                       ((pppppppcVar28 != (code *******)0x0 && (pppppppcVar34 == (code *******)0x0))\n                       )) break;\n                    param_6 = &local_b4;\n                    param_5 = (code *******)&local_d8;\n                    pppppppcVar31 = (code *******)(PTR_DAT_000799a4 + 0x3684);\n                    do {\n                      pppppppcVar15 = local_50 + (int)local_8c;\n                      pppppppcVar42 = local_8c;\n                      do {\n                        pppppppcVar42 = (code *******)((int)pppppppcVar42 + 1);\n                        pppppppcVar29 = local_4c;\n                        param_4 = pppppppcVar14;\n                        if ((int)local_4c < (int)pppppppcVar42) goto LAB_00055da8;\n                        local_8c = (code *******)((int)local_8c + 1);\n                        pppppppcVar15 = pppppppcVar15 + 1;\n                      } while (*pppppppcVar15 == (code ******)0x0);\n                      pppppppcVar30 = (code *******)0x0;\n                      pppppppcVar29 = param_6;\n                      param_4 = (code *******)(*(code *)pppppppcVar31)(param_5);\n                      if (local_d8 != (code *******)0x0) {\n                        if (param_4 == (code *******)0x0) goto LAB_00055da8;\n                        break;\n                      }\n                      pppppppcVar29 = local_4c;\n                    } while (param_4 == (code *******)0x0);\n                  }\n                  pppppppcVar15 = (code *******)((uint)unaff_s7 ^ (uint)param_4);\n                  pppppppcVar42 = unaff_s7;\n                  pppppppcVar14 = local_138;\n                  if ((bVar1) &&\n                     (pppppppcVar42 = pppppppcVar15, pppppppcVar14 = unaff_s5,\n                     pppppppcVar15 != (code *******)0x0)) {\n                    bVar1 = false;\n                    pppppppcVar14 = local_138;\n                  }\n                  local_138 = pppppppcVar14;\n                  unaff_s7 = param_4;\n                  if ((((uint)param_4[0xd] & 0x8000000) != 0) &&\n                     ((((uint)param_4[0xd] & 0x1000000) == 0 ||\n                      (pppppppcVar29 = param_4, pppppppcVar30 = local_8c,\n                      iVar18 = FUN_00049440(&local_b4), iVar18 != 0)))) {\n                    unaff_s7 = pppppppcVar42;\n                    unaff_s8 = local_8c;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                    local_144 = (code *******)0x0;\n                    unaff_s7 = param_4;\n                  }\n                }\nLAB_00055da8:\n                if (local_144 != (code *******)0x0) {\n                  *local_144 = (code ******)((int)local_138 + (int)*local_144);\n                }\n              }\n              else {\n                param_4 = unaff_s7 + 1;\n                pppppppcVar30 = (code *******)0x0;\n                pppppppcVar29 = param_4;\n                local_d8 = (code *******)FUN_00047a44(&local_b4);\n                unaff_s8 = local_d8;\n                if (local_d8 == (code *******)0x0) {\n                  if (((uint)unaff_s7[0xd] & 0x2000000) == 0) {\n                    pppppppcVar29 = param_4;\n                    bVar1 = false;\n                  }\n                  else {\n                    pppppppcVar29 = param_4;\n                    local_d8 = (code *******)FUN_00052d84(&local_b4);\n                    unaff_s8 = local_d8;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055dbc;\n                    bVar1 = false;\n                  }\n                  goto LAB_00054d50;\n                }\n              }\nLAB_00055dbc:\n              if (unaff_s8 == (code *******)0xffffffff) {\nLAB_00055b04:\n                FUN_0004b7e8(&local_b4);\nLAB_00055b1c:\n                local_dc = (code *******)((int)pppppppcVar24 + (int)local_dc);\n                if ((int)pppppppcVar25 <= (int)local_dc) goto code_r0x00055b38;\n                local_150 = (code *******)0x1;\n                goto LAB_000557e4;\n              }\n              if (unaff_s8 == (code *******)&SUB_fffffffe) {\n                local_150 = (code *******)0xc;\n                goto LAB_000557e4;\n              }\n              local_58 = unaff_s8;\n              if (((uint)param_1[7] & 0x8000000) == 0) {\n                if (pppppppcVar3 < (code *******)0x2) {\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055c08;\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                else {\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                if (pppppppcVar3 < (code *******)0x2) {\nLAB_00055c6c:\n                  pppppppcVar28 = pppppppcVar33;\n                  unaff_s4 = local_60;\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055548;\n                }\n                else {\n                  cVar23 = *(code *)(pppppppcVar38 + 0x16);\nLAB_00055c20:\n                  pppppppcVar28 = pppppppcVar33;\n                  if (-1 < (char)cVar23) goto LAB_00055c6c;\n                }\n                pppppppcVar31 = local_54;\n                pppppppcVar42 = local_60;\n                unaff_s4 = pppppppcVar42;\n                if (unaff_s8 < (code *******)0x3fffffff) {\n                  param_4 = (code *******)((int)((int)unaff_s8 + 1) * 4);\n                  unaff_s5 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                  if (unaff_s5 == (code *******)0x0) {\nLAB_00055b9c:\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    local_150 = (code *******)0xc;\n                    pppppppcVar33 = pppppppcVar28;\n                  }\n                  else {\n                    pppppppcVar29 = (code *******)&local_d0;\n                    if (pppppppcVar42[0x13] == (code ******)0x0) {\n                      local_cc = (code *******)0x0;\n                      local_c8 = pppppppcVar31;\n                      local_c0 = 0;\n                      local_bc = 0;\n                      local_b8 = 0;\n                      local_d0 = unaff_s5;\n                      local_c4 = unaff_s8;\n                      param_5 = (code *******)FUN_0005421c(&local_b4);\n                      (*(code *)PTR_free_00079c24)(local_b8);\n                      if (param_5 == (code *******)0x0) {\n                        param_4 = (code *******)*unaff_s5;\n                        if (param_4 == (code *******)0x0) {\nLAB_00055b70:\n                          (*(code *)PTR_free_00079c24)(unaff_s5);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          pppppppcVar33 = pppppppcVar28;\n                          goto LAB_00055b04;\n                        }\nLAB_00055528:\n                        (*(code *)PTR_free_00079c24)(local_50);\n                        pppppppcVar33 = pppppppcVar28;\n                        unaff_s4 = pppppppcVar42;\n                        local_58 = unaff_s8;\n                        local_54 = pppppppcVar31;\n                        local_50 = unaff_s5;\n                        goto LAB_00055548;\n                      }\nLAB_00055acc:\n                      param_4 = (code *******)0x0;\n                      pppppppcVar33 = pppppppcVar28;\n                      unaff_s4 = pppppppcVar42;\n                    }\n                    else {\n                      param_4 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                      if (param_4 == (code *******)0x0) goto LAB_00055b9c;\n                      unaff_s7 = (code *******)&local_d0;\n                      pcVar8 = (code *)(PTR_DAT_000799a4 + 0x421c);\n                      pcVar9 = (code *)(PTR_DAT_000799a4 + -0x6bc0);\n                      pppppppcVar33 = pppppppcVar28;\n                      while( true ) {\n                        pppppppcVar28 = (code *******)((int)unaff_s8 + 1);\n                        param_6 = (code *******)((int)pppppppcVar28 * 4);\n                        pppppppcVar30 = param_6;\n                        (*(code *)PTR_memset_00079b00)(param_4,0);\n                        local_c0 = 0;\n                        local_bc = 0;\n                        local_b8 = 0;\n                        pppppppcVar29 = unaff_s7;\n                        local_d0 = unaff_s5;\n                        local_cc = param_4;\n                        local_c8 = pppppppcVar31;\n                        local_c4 = unaff_s8;\n                        param_5 = (code *******)(*pcVar8)(&local_b4);\n                        (*(code *)PTR_free_00079c24)(local_b8);\n                        unaff_s4 = pppppppcVar28;\n                        if (param_5 != (code *******)0x0) break;\n                        if ((*unaff_s5 != (code ******)0x0) ||\n                           (param_6 = param_6 + -1, *param_4 != (code ******)0x0)) {\n                          pppppppcVar29 = unaff_s5;\n                          pppppppcVar30 = param_4;\n                          param_5 = (code *******)FUN_000520d0(pppppppcVar42);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          if (param_5 != (code *******)0x0) goto LAB_00055acc;\n                          goto LAB_00055528;\n                        }\n                        param_6 = (code *******)((int)local_50 + (int)param_6);\n                        do {\n                          while( true ) {\n                            unaff_s8 = (code *******)((int)unaff_s8 + -1);\n                            if ((int)unaff_s8 < 0) goto LAB_00055b70;\n                            pppppppcVar29 = (code *******)param_6[-1];\n                            if (pppppppcVar29 != (code *******)0x0) break;\n                            param_6 = param_6 + -1;\n                          }\n                          param_6 = param_6 + -1;\n                        } while (((uint)pppppppcVar29[0xd] & 0x8000000) == 0);\n                        pppppppcVar31 = (code *******)(*pcVar9)(&local_b4,pppppppcVar29,unaff_s8);\n                        pppppppcVar33 = pppppppcVar28;\n                      }\n                    }\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    (*(code *)PTR_free_00079c24)(param_4);\n                    local_150 = param_5;\n                    if (param_5 == (code *******)0x1) goto LAB_00055b04;\n                  }\n                }\n                else {\n                  local_150 = (code *******)0xc;\n                  pppppppcVar33 = pppppppcVar28;\n                }\n                goto LAB_000557e4;\n              }\n              if (pppppppcVar38[0x13] != (code ******)0x0) {\n                pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                pppppppcVar30 = unaff_s8;\n                local_54 = (code *******)FUN_00049440(&local_b4);\n                goto LAB_00055c6c;\n              }\nLAB_00055c08:\n              if ((((uint)param_1[7] & 0x8000000) == 0) && ((code *******)0x1 < pppppppcVar3)) {\n                cVar23 = *(code *)(pppppppcVar38 + 0x16);\n                goto LAB_00055c20;\n              }\nLAB_00055548:\n              if (pppppppcVar3 == (code *******)0x0) goto LAB_000557e4;\n              if (pppppppcVar3 < (code *******)0x2) {\n                *param_8 = (code ******)0x0;\n                param_8[1] = (code ******)local_58;\n                goto LAB_000555ac;\n              }\n              pppppppcVar29 = param_8 + 2;\n              do {\n                pppppppcVar29[1] = (code ******)0xffffffff;\n                *pppppppcVar29 = (code ******)0xffffffff;\n                pppppppcVar29 = pppppppcVar29 + 2;\n              } while (pppppppcVar29 != param_8 + (int)pppppppcVar3 * 2);\n              *param_8 = (code ******)0x0;\n              param_8[1] = (code ******)local_58;\n              if (((uint)param_1[7] & 0x8000000) != 0) {\nLAB_000555ac:\n                pppppppcVar33 = param_8;\n                do {\n                  pppppppcVar29 = (code *******)*pppppppcVar33;\n                  if (pppppppcVar29 != (code *******)0xffffffff) {\n                    if (local_68 != '\0') {\n                      pppppppcVar34 = local_94;\n                      if (pppppppcVar29 != local_98) {\n                        pppppppcVar34 = *(code ********)(local_a8 + (int)pppppppcVar29 * 4);\n                      }\n                      *pppppppcVar33 = (code ******)pppppppcVar34;\n                      pppppppcVar29 = local_94;\n                      if (local_98 != (code *******)pppppppcVar33[1]) {\n                        pppppppcVar29 = *(code ********)(local_a8 + (int)pppppppcVar33[1] * 4);\n                      }\n                      pppppppcVar33[1] = (code ******)pppppppcVar29;\n                    }\n                    *pppppppcVar33 = (code ******)((int)local_dc + (int)*pppppppcVar33);\n                    pppppppcVar29 = (code *******)((int)local_dc + (int)pppppppcVar33[1]);\n                    pppppppcVar33[1] = (code ******)pppppppcVar29;\n                  }\n                  pppppppcVar33 = pppppppcVar33 + 2;\n                } while (pppppppcVar33 != param_8 + (int)pppppppcVar3 * 2);\n                if (0 < local_118) {\n                  pppppppcVar33 = param_8 + (int)pppppppcVar3 * 2;\n                  do {\n                    *pppppppcVar33 = (code ******)0xffffffff;\n                    pppppppcVar33[1] = (code ******)0xffffffff;\n                    pppppppcVar33 = pppppppcVar33 + 2;\n                  } while (pppppppcVar33 != param_8 + (int)param_7 * 2);\n                }\n                pppppppcVar30 = local_dc;\n                pppppppcVar33 = param_8;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar38[0x21] != (code ******)0x0) {\n                  pppppppcVar30 = (code *******)((int)pppppppcVar3 + -1);\n                  pppppppcVar34 = (code *******)0x0;\n                  pppppppcVar3 = param_8;\n                  while( true ) {\n                    pppppppcVar29 = (code *******)((int)pppppppcVar34 * 4);\n                    if (pppppppcVar30 == pppppppcVar34) break;\n                    if (*(code ********)((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) !=\n                        pppppppcVar34) {\n                      pppppppcVar3[2] =\n                           param_8[(int)((int)*(code ********)\n                                               ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1)\n                                   * 2];\n                      pppppppcVar3[3] =\n                           param_8[((int)*(code ******)\n                                          ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1) * 2 +\n                                   1];\n                    }\n                    pppppppcVar34 = (code *******)((int)pppppppcVar34 + 1);\n                    pppppppcVar3 = pppppppcVar3 + 2;\n                  }\n                }\n                goto LAB_000557e4;\n              }\n              if ((char)*(code *)(pppppppcVar38 + 0x16) < '\0') {\n                local_168 = (uint)(0 < (int)pppppppcVar38[0x13]);\n              }\n              else {\n                local_168 = 0;\n              }\n              pppppppcVar29 = &local_b4;\n              pppppppcVar30 = pppppppcVar3;\n              pppppppcVar33 = param_8;\n              local_150 = (code *******)FUN_0004f4a0(param_1);\n              if (local_150 == (code *******)0x0) goto LAB_000555ac;\n            }\n          }" ({ "{") (expression_statement "local_50 = (code *******)0x0;" (assignment_expression "local_50 = (code *******)0x0" (identifier "local_50") (= "=") (cast_expression "(code *******)0x0" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) (; ";")) (labeled_statement "LAB_00055a40:\n            local_78 = 6;" (statement_identifier "LAB_00055a40") (: ":") (expression_statement "local_78 = 6;" (assignment_expression "local_78 = 6" (identifier "local_78") (= "=") (number_literal "6")) (; ";"))) (if_statement "if (((uint)param_9 & 1) != 0) {\n              local_78 = 4;\n            }" (if "if") (parenthesized_expression "(((uint)param_9 & 1) != 0)" (( "(") (binary_expression "((uint)param_9 & 1) != 0" (parenthesized_expression "((uint)param_9 & 1)" (( "(") (binary_expression "(uint)param_9 & 1" (cast_expression "(uint)param_9" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "param_9")) (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              local_78 = 4;\n            }" ({ "{") (expression_statement "local_78 = 4;" (assignment_expression "local_78 = 4" (identifier "local_78") (= "=") (number_literal "4")) (; ";")) (} "}"))) (expression_statement "pppppppcVar24 = (code *******)0x1;" (assignment_expression "pppppppcVar24 = (code *******)0x1" (identifier "pppppppcVar24") (= "=") (cast_expression "(code *******)0x1" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x1"))) (; ";")) (expression_statement "pppppppcVar25 = param_4;" (assignment_expression "pppppppcVar25 = param_4" (identifier "pppppppcVar25") (= "=") (identifier "param_4")) (; ";")) (if_statement "if ((int)param_5 < (int)param_4) {\n              pppppppcVar24 = (code *******)0xffffffff;\n              pppppppcVar25 = param_5;\n            }" (if "if") (parenthesized_expression "((int)param_5 < (int)param_4)" (( "(") (binary_expression "(int)param_5 < (int)param_4" (cast_expression "(int)param_5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_5")) (< "<") (cast_expression "(int)param_4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_4"))) () ")")) (compound_statement "{\n              pppppppcVar24 = (code *******)0xffffffff;\n              pppppppcVar25 = param_5;\n            }" ({ "{") (expression_statement "pppppppcVar24 = (code *******)0xffffffff;" (assignment_expression "pppppppcVar24 = (code *******)0xffffffff" (identifier "pppppppcVar24") (= "=") (cast_expression "(code *******)0xffffffff" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0xffffffff"))) (; ";")) (expression_statement "pppppppcVar25 = param_5;" (assignment_expression "pppppppcVar25 = param_5" (identifier "pppppppcVar25") (= "=") (identifier "param_5")) (; ";")) (} "}"))) (expression_statement "pppppppcVar26 = param_5;" (assignment_expression "pppppppcVar26 = param_5" (identifier "pppppppcVar26") (= "=") (identifier "param_5")) (; ";")) (if_statement "if ((int)param_5 <= (int)param_4) {\n              pppppppcVar26 = param_4;\n            }" (if "if") (parenthesized_expression "((int)param_5 <= (int)param_4)" (( "(") (binary_expression "(int)param_5 <= (int)param_4" (cast_expression "(int)param_5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_5")) (<= "<=") (cast_expression "(int)param_4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_4"))) () ")")) (compound_statement "{\n              pppppppcVar26 = param_4;\n            }" ({ "{") (expression_statement "pppppppcVar26 = param_4;" (assignment_expression "pppppppcVar26 = param_4" (identifier "pppppppcVar26") (= "=") (identifier "param_4")) (; ";")) (} "}"))) (expression_statement "ppppppcVar35 = pppppppcVar38[0x17];" (assignment_expression "ppppppcVar35 = pppppppcVar38[0x17]" (identifier "ppppppcVar35") (= "=") (subscript_expression "pppppppcVar38[0x17]" (identifier "pppppppcVar38") ([ "[") (number_literal "0x17") (] "]"))) (; ";")) (expression_statement "uVar16 = 8;" (assignment_expression "uVar16 = 8" (identifier "uVar16") (= "=") (number_literal "8")) (; ";")) (if_statement "if (local_148 != (code *******)0x0) {\n              if (ppppppcVar35 == (code ******)0x1) {\n                pppppppcVar28 = (code *******)0x4;\n              }\n              else {\n                pppppppcVar28 = pppppppcVar2;\n                if ((-1 < (int)param_1[3] << 9) && (ppppppcVar32 == (code ******)0x0)) {\n                  pppppppcVar28 = (code *******)0x4;\n                }\n              }\n              pppppppcVar29 = (code *******)0x0;\n              if ((int)param_4 <= (int)param_5) {\n                pppppppcVar29 = (code *******)0x2;\n              }\n              uVar16 = (uint)(ppppppcVar32 != (code ******)0x0) | (uint)pppppppcVar28 |\n                       (uint)pppppppcVar29;\n            }" (if "if") (parenthesized_expression "(local_148 != (code *******)0x0)" (( "(") (binary_expression "local_148 != (code *******)0x0" (identifier "local_148") (!= "!=") (cast_expression "(code *******)0x0" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n              if (ppppppcVar35 == (code ******)0x1) {\n                pppppppcVar28 = (code *******)0x4;\n              }\n              else {\n                pppppppcVar28 = pppppppcVar2;\n                if ((-1 < (int)param_1[3] << 9) && (ppppppcVar32 == (code ******)0x0)) {\n                  pppppppcVar28 = (code *******)0x4;\n                }\n              }\n              pppppppcVar29 = (code *******)0x0;\n              if ((int)param_4 <= (int)param_5) {\n                pppppppcVar29 = (code *******)0x2;\n              }\n              uVar16 = (uint)(ppppppcVar32 != (code ******)0x0) | (uint)pppppppcVar28 |\n                       (uint)pppppppcVar29;\n            }" ({ "{") (if_statement "if (ppppppcVar35 == (code ******)0x1) {\n                pppppppcVar28 = (code *******)0x4;\n              }\n              else {\n                pppppppcVar28 = pppppppcVar2;\n                if ((-1 < (int)param_1[3] << 9) && (ppppppcVar32 == (code ******)0x0)) {\n                  pppppppcVar28 = (code *******)0x4;\n                }\n              }" (if "if") (parenthesized_expression "(ppppppcVar35 == (code ******)0x1)" (( "(") (binary_expression "ppppppcVar35 == (code ******)0x1" (identifier "ppppppcVar35") (== "==") (cast_expression "(code ******)0x1" (( "(") (type_descriptor "code ******" (type_identifier "code") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x1"))) () ")")) (compound_statement "{\n                pppppppcVar28 = (code *******)0x4;\n              }" ({ "{") (expression_statement "pppppppcVar28 = (code *******)0x4;" (assignment_expression "pppppppcVar28 = (code *******)0x4" (identifier "pppppppcVar28") (= "=") (cast_expression "(code *******)0x4" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x4"))) (; ";")) (} "}")) (else_clause "else {\n                pppppppcVar28 = pppppppcVar2;\n                if ((-1 < (int)param_1[3] << 9) && (ppppppcVar32 == (code ******)0x0)) {\n                  pppppppcVar28 = (code *******)0x4;\n                }\n              }" (else "else") (compound_statement "{\n                pppppppcVar28 = pppppppcVar2;\n                if ((-1 < (int)param_1[3] << 9) && (ppppppcVar32 == (code ******)0x0)) {\n                  pppppppcVar28 = (code *******)0x4;\n                }\n              }" ({ "{") (expression_statement "pppppppcVar28 = pppppppcVar2;" (assignment_expression "pppppppcVar28 = pppppppcVar2" (identifier "pppppppcVar28") (= "=") (identifier "pppppppcVar2")) (; ";")) (if_statement "if ((-1 < (int)param_1[3] << 9) && (ppppppcVar32 == (code ******)0x0)) {\n                  pppppppcVar28 = (code *******)0x4;\n                }" (if "if") (parenthesized_expression "((-1 < (int)param_1[3] << 9) && (ppppppcVar32 == (code ******)0x0))" (( "(") (binary_expression "(-1 < (int)param_1[3] << 9) && (ppppppcVar32 == (code ******)0x0)" (parenthesized_expression "(-1 < (int)param_1[3] << 9)" (( "(") (binary_expression "-1 < (int)param_1[3] << 9" (number_literal "-1") (< "<") (binary_expression "(int)param_1[3] << 9" (cast_expression "(int)param_1[3]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]"))) (<< "<<") (number_literal "9"))) () ")")) (&& "&&") (parenthesized_expression "(ppppppcVar32 == (code ******)0x0)" (( "(") (binary_expression "ppppppcVar32 == (code ******)0x0" (identifier "ppppppcVar32") (== "==") (cast_expression "(code ******)0x0" (( "(") (type_descriptor "code ******" (type_identifier "code") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) () ")"))) () ")")) (compound_statement "{\n                  pppppppcVar28 = (code *******)0x4;\n                }" ({ "{") (expression_statement "pppppppcVar28 = (code *******)0x4;" (assignment_expression "pppppppcVar28 = (code *******)0x4" (identifier "pppppppcVar28") (= "=") (cast_expression "(code *******)0x4" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x4"))) (; ";")) (} "}"))) (} "}")))) (expression_statement "pppppppcVar29 = (code *******)0x0;" (assignment_expression "pppppppcVar29 = (code *******)0x0" (identifier "pppppppcVar29") (= "=") (cast_expression "(code *******)0x0" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) (; ";")) (if_statement "if ((int)param_4 <= (int)param_5) {\n                pppppppcVar29 = (code *******)0x2;\n              }" (if "if") (parenthesized_expression "((int)param_4 <= (int)param_5)" (( "(") (binary_expression "(int)param_4 <= (int)param_5" (cast_expression "(int)param_4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_4")) (<= "<=") (cast_expression "(int)param_5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_5"))) () ")")) (compound_statement "{\n                pppppppcVar29 = (code *******)0x2;\n              }" ({ "{") (expression_statement "pppppppcVar29 = (code *******)0x2;" (assignment_expression "pppppppcVar29 = (code *******)0x2" (identifier "pppppppcVar29") (= "=") (cast_expression "(code *******)0x2" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x2"))) (; ";")) (} "}"))) (expression_statement "uVar16 = (uint)(ppppppcVar32 != (code ******)0x0) | (uint)pppppppcVar28 |\n                       (uint)pppppppcVar29;" (assignment_expression "uVar16 = (uint)(ppppppcVar32 != (code ******)0x0) | (uint)pppppppcVar28 |\n                       (uint)pppppppcVar29" (identifier "uVar16") (= "=") (binary_expression "(uint)(ppppppcVar32 != (code ******)0x0) | (uint)pppppppcVar28 |\n                       (uint)pppppppcVar29" (binary_expression "(uint)(ppppppcVar32 != (code ******)0x0) | (uint)pppppppcVar28" (call_expression "(uint)(ppppppcVar32 != (code ******)0x0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(ppppppcVar32 != (code ******)0x0)" (( "(") (binary_expression "ppppppcVar32 != (code ******)0x0" (identifier "ppppppcVar32") (!= "!=") (cast_expression "(code ******)0x0" (( "(") (type_descriptor "code ******" (type_identifier "code") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) () ")"))) (| "|") (cast_expression "(uint)pppppppcVar28" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pppppppcVar28"))) (| "|") (cast_expression "(uint)pppppppcVar29" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pppppppcVar29")))) (; ";")) (} "}"))) (expression_statement "local_dc = param_4;" (assignment_expression "local_dc = param_4" (identifier "local_dc") (= "=") (identifier "param_4")) (; ";")) (if_statement "if ((int)param_4 < (int)pppppppcVar25) {\n              local_150 = (code *******)0x1;\n              param_6 = pppppppcVar36;\n            }\n            else if ((int)pppppppcVar26 < (int)param_4) {\n              local_150 = (code *******)0x1;\n              param_4 = (code *******)(uint)((int)param_5 < (int)param_4);\n              param_6 = pppppppcVar36;\n            }\n            else {\n              pppppppcVar36 = (code *******)&local_dc;\n              if ((code *******)(uint)((int)param_5 < (int)param_4) != (code *******)0x0) {\n                pppppppcVar36 = (code *******)0x0;\n              }\n              pcVar4 = (code *)(PTR_DAT_000799a4 + -0x2b7c);\n              piVar5 = (int *)(PTR_s_nt0_000795b8 + (uVar16 - 4) * 4 + 0x6e38);\nLAB_00055b44:\n              if (uVar16 - 4 < 5) {\n                    \n                    \n                pppppppcVar29 = (code *******)(*(code *)(&_gp_1 + *piVar5))();\n                return pppppppcVar29;\n              }\n              param_5 = &local_b4;\n              pppppppcVar28 = pppppppcVar33;\n              while( true ) {\n                param_4 = local_dc;\n                pppppppcVar33 = (code *******)((int)local_dc - local_9c);\n                pppppppcVar30 = param_9;\n                pppppppcVar31 = pppppppcVar2;\n                param_6 = local_148;\n                unaff_s4 = param_3;\n                unaff_s5 = pppppppcVar24;\n                unaff_s7 = pppppppcVar26;\n                if (local_94 <= pppppppcVar33) {\n                  pppppppcVar29 = local_dc;\n                  local_150 = (code *******)(*pcVar4)(param_5);\n                  pppppppcVar33 = pppppppcVar28;\n                  if (local_150 != (code *******)0x0) goto LAB_000557e4;\n                  pppppppcVar33 = (code *******)((int)param_4 - local_9c);\n                }\n                if ((int)param_4 < (int)param_3) {\n                  uVar7 = (uint)(byte)*(code *)((int)pppppppcVar33 + (int)local_b0);\n                }\n                else {\n                  uVar7 = 0;\n                }\n                param_4 = (code *******)((int)param_4 + (int)pppppppcVar24);\n                if (*(code *)((int)local_148 + uVar7) != (code)0x0) break;\n                pppppppcVar33 = pppppppcVar28;\n                local_dc = param_4;\n                if ((int)param_4 < (int)pppppppcVar25) {\n                  local_150 = (code *******)0x1;\n                  goto LAB_000557e4;\n                }\n                if ((code *******)(uint)((int)pppppppcVar26 < (int)param_4) != (code *******)0x0) {\n                  local_150 = (code *******)0x1;\n                  param_4 = (code *******)(uint)((int)pppppppcVar26 < (int)param_4);\n                  goto LAB_000557e4;\n                }\n              }\n              while( true ) {\n                pppppppcVar29 = local_dc;\n                pppppppcVar30 = param_9;\n                pppppppcVar6 = (code *******)(*pcVar4)(&local_b4);\n                pppppppcVar14 = local_60;\n                pppppppcVar42 = local_8c;\n                pppppppcVar33 = pppppppcVar28;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar6 != (code *******)0x0) goto LAB_000557e4;\n                if (((ppppppcVar35 != (code ******)0x1) && (local_98 != (code *******)0x0)) &&\n                   (*local_ac == -1)) goto LAB_00055b1c;\n                local_3c = 0;\n                local_48 = 0;\n                local_4c = (code *******)0x0;\n                local_138 = local_8c;\n                local_d8 = (code *******)0x0;\n                unaff_s7 = (code *******)local_60[9];\n                pppppppcVar30 = local_5c;\n                param_4 = pppppppcVar14;\n                if (((uint)unaff_s7[0xd] & 0x1000000) == 0) break;\n                pppppppcVar29 = (code *******)((int)local_8c + -1);\n                pppppppcVar33 = (code *******)FUN_00049110(&local_b4);\n                if (((uint)pppppppcVar33 & 1) == 0) {\n                  if (pppppppcVar33 == (code *******)0x0) break;\n                  if (((uint)pppppppcVar33 & 6) == 6) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xc];\n                    goto LAB_00054d1c;\n                  }\n                  if (((uint)pppppppcVar33 & 2) != 0) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xb];\n                    goto LAB_00054d1c;\n                  }\n                  pppppppcVar28 = pppppppcVar33;\n                  if (((uint)pppppppcVar33 & 4) == 0) break;\n                  pppppppcVar30 = (code *******)unaff_s7[10];\n                  pppppppcVar29 = pppppppcVar14;\n                  unaff_s7 = (code *******)FUN_0004ae34(&local_d8);\n                  pppppppcVar28 = pppppppcVar33;\n                  if (unaff_s7 != (code *******)0x0) break;\n                  if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                }\n                else {\n                  unaff_s7 = (code *******)pppppppcVar14[10];\nLAB_00054d1c:\n                  pppppppcVar28 = (code *******)PTR_s_nt0_000795b8;\n                  if (unaff_s7 != (code *******)0x0) break;\n                }\n                pppppppcVar28 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                local_dc = (code *******)\n                           (*(code *)PTR___assert_fail_000799f8)\n                                     (PTR_s_nt0_000795b8 + 0x71a0,pppppppcVar29,0x435);\n                if (local_dc == pppppppcVar26) {\n                  if ((int)local_dc < (int)param_3) {\n                    uVar7 = (uint)(byte)*(code *)((int)local_dc + (int)param_2);\n                  }\n                  else {\n                    uVar7 = 0;\n                  }\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    uVar7 = (uint)*(byte *)((int)ppppppcVar32 + uVar7);\n                  }\n                  if (*(code *)((int)local_148 + uVar7) == (code)0x0) {\n                    local_150 = (code *******)0x1;\n                    pppppppcVar30 = param_9;\n                    pppppppcVar33 = pppppppcVar28;\n                    goto LAB_000557e4;\n                  }\n                }\n              }\n              pppppppcVar33 = pppppppcVar28;\n              bVar1 = pppppppcVar36 != (code *******)0x0;\n              if ((local_50 == (code *******)0x0) ||\n                 (local_50[(int)pppppppcVar42] = (code ******)unaff_s7,\n                 pppppppcVar14[0x13] == (code ******)0x0)) {\nLAB_00054d50:\n                if ((int)unaff_s7[0xd] << 4 < 0) {\n                  if ((((uint)unaff_s7[0xd] & 0x1000000) == 0) ||\n                     (pppppppcVar29 = unaff_s7, pppppppcVar30 = pppppppcVar42,\n                     iVar18 = FUN_00049440(&local_b4), iVar18 != 0)) {\n                    unaff_s8 = pppppppcVar42;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                  }\n                  else {\n                    pppppppcVar42 = (code *******)0xffffffff;\n                    pppppppcVar28 = (code *******)0x0;\n                  }\n                }\n                else {\n                  pppppppcVar42 = (code *******)0xffffffff;\n                  pppppppcVar28 = (code *******)0x0;\n                }\n                pcVar8 = (code *)(PTR_DAT_000799a4 + -0x7144);\n                pcVar9 = (code *)(PTR_DAT_000799a4 + -0x1980);\n                pcVar10 = (code *)(PTR_DAT_000799a4 + -0x2f9c);\n                unaff_s8 = pppppppcVar42;\n                local_144 = pppppppcVar36;\n                while( true ) {\n                  uVar44 = CONCAT44(local_98,local_84);\n                  unaff_s5 = (code *******)((int)local_8c + 1);\n                  pppppppcVar29 = local_8c;\n                  if ((int)local_7c <= (int)local_8c) break;\n                  if (((int)local_90 <= (int)unaff_s5) && ((int)local_90 < (int)local_84))\n                  goto LAB_00054e94;\n                  if ((int)local_98 <= (int)unaff_s5) {\n                    while ((int)((ulonglong)uVar44 >> 0x20) < (int)uVar44) {\nLAB_00054e94:\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 2);\n                      local_d8 = (code *******)(*pcVar8)(&local_b4);\n                      if (local_d8 == (code *******)0x0) break;\n                      pppppppcVar14 = param_4;\n                      if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                      pppppppcVar33 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                      pppppppcVar30 = (code *******)0x46c;\n                      pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                      uVar44 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0);\n                      pppppppcVar28 = pppppppcVar38;\n                    }\n                  }\n                  pppppppcVar42 = local_60;\n                  if ((int)unaff_s7[0xd] << 5 < 0) {\n                    pppppppcVar31 = pppppppcVar42;\n                    if (0 < (int)unaff_s7[2]) {\n                      pcVar11 = (code *)(PTR_DAT_000799a4 + -0x6fdc);\n                      pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6ef0);\n                      param_6 = (code *******)0x0;\n                      do {\n                        param_5 = (code *******)unaff_s7[3][(int)param_6];\n                        ppppppcVar39 = *pppppppcVar42;\n                        pppppcVar13 = ppppppcVar39[(int)param_5 * 2 + 1];\n                        if (((uint)pppppcVar13 & 0x800) != 0) {\n                          if (((uint)pppppcVar13 & 0xffc000) != 0) {\n                            pppppppcVar29 = local_8c;\n                            uVar19 = (*pcVar12)(&local_b4,local_8c,local_5c);\n                            uVar7 = (uint)((int)ppppppcVar39[(int)param_5 * 2 + 1] << 8) >> 0x16;\n                            if ((uVar7 & 4) == 0) {\n                              uVar27 = uVar19 & 1;\n                              if ((uVar7 & 8) != 0) goto joined_r0x00054f40;\n                            }\n                            else {\n                              uVar27 = uVar7 & 8;\n                              if ((uVar19 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                              if (uVar27 != 0) goto LAB_000550a4;\n                            }\n                            if ((((uVar7 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                               (((uVar7 & 0x80) != 0 &&\n                                (pppppppcVar33 = local_8c, (uVar19 & 8) == 0)))) goto LAB_000550a4;\n                          }\n                          pppppppcVar30 = &local_b4;\n                          pppppppcVar29 = param_5;\n                          pppppppcVar33 = local_8c;\n                          iVar18 = (*pcVar10)(pppppppcVar42);\n                          if (iVar18 != 0) {\n                            pppppppcVar14 = (code *******)((int)local_8c + iVar18);\n                            if (iVar18 <= local_3c) {\n                              iVar18 = local_3c;\n                            }\n                            pppppppcVar29 = pppppppcVar14;\n                            local_3c = iVar18;\n                            local_d4 = (code *******)(*pcVar11)(&local_b4);\n                            pppppppcVar15 = local_d4;\n                            if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                            pppppppcVar30 =\n                                 (code *******)\n                                 (pppppppcVar42[6] + (int)pppppppcVar42[3][(int)param_5] * 3);\n                            unaff_s4 = (code *******)((int)pppppppcVar14 * 4);\n                            param_5 = local_50 + (int)pppppppcVar14;\n                            if (*param_5 == (code ******)0x0) {\n                              local_d0 = (code *******)*pppppppcVar30;\n                              local_cc = (code *******)pppppppcVar30[1];\n                              local_c8 = (code *******)pppppppcVar30[2];\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *param_5 = ppppppcVar39;\n                            }\n                            else {\n                              pppppppcVar29 = (code *******)(*param_5)[10];\n                              local_d4 = (code *******)FUN_000484bc(&local_d0);\n                              pppppppcVar15 = local_d4;\n                              if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar15 = local_50 + (int)pppppppcVar14;\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *pppppppcVar15 = ppppppcVar39;\n                              (*(code *)PTR_free_00079c24)(local_c8);\n                            }\n                            unaff_s4 = local_50 + (int)pppppppcVar14;\n                            if ((*unaff_s4 == (code ******)0x0) &&\n                               (pppppppcVar15 = local_d4, local_d4 != (code *******)0x0))\n                            goto LAB_00055e44;\n                          }\n                        }\nLAB_000550a4:\n                        param_6 = (code *******)((int)param_6 + 1);\n                      } while ((int)param_6 < (int)unaff_s7[2]);\n                    }\n                    local_d8 = (code *******)0x0;\n                  }\n                  uVar7 = (uint)(byte)*(code *)((int)local_8c + (int)local_b0);\n                  local_8c = (code *******)((int)local_8c + 1);\n                  do {\n                    if (unaff_s7[0xb] != (code ******)0x0) {\n                      pppppppcVar30 = (code *******)unaff_s7[0xb][uVar7];\nLAB_000553a0:\n                      pppppppcVar14 = pppppppcVar30;\n                      if (local_50 != (code *******)0x0) goto LAB_000553ac;\n                      goto LAB_000553cc;\n                    }\n                    pppppppcVar31 = (code *******)unaff_s7[0xc];\n                    if (pppppppcVar31 != (code *******)0x0) {\n                      pppppppcVar29 = (code *******)((int)local_8c + -1);\n                      uVar19 = FUN_00049110(&local_b4);\n                      if ((uVar19 & 1) == 0) {\n                        pppppppcVar30 = (code *******)pppppppcVar31[uVar7];\n                      }\n                      else {\n                        pppppppcVar31 = pppppppcVar31 + uVar7 + 0x100;\n                        pppppppcVar30 = (code *******)*pppppppcVar31;\n                      }\n                      goto LAB_000553a0;\n                    }\n                    pppppppcVar29 = unaff_s7;\n                    pppppppcVar30 = local_5c;\n                    iVar18 = (*pcVar9)(local_60);\n                  } while (iVar18 != 0);\n                  local_d8 = (code *******)0xc;\n                  pppppppcVar15 = local_d8;\nLAB_00055e44:\n                  local_d8 = pppppppcVar15;\n                  param_4 = (code *******)0x0;\n                  if (local_50 == (code *******)0x0) {\n                    pppppppcVar14 = param_4;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    break;\n                  }\n                  pppppppcVar30 = (code *******)0x0;\nLAB_000553ac:\n                  pppppppcVar29 = &local_b4;\n                  pppppppcVar14 = (code *******)FUN_00053684(&local_d8);\nLAB_000553cc:\n                  param_4 = pppppppcVar14;\n                  if (pppppppcVar14 == (code *******)0x0) {\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    if ((local_50 == (code *******)0x0) ||\n                       ((pppppppcVar28 != (code *******)0x0 && (pppppppcVar34 == (code *******)0x0))\n                       )) break;\n                    param_6 = &local_b4;\n                    param_5 = (code *******)&local_d8;\n                    pppppppcVar31 = (code *******)(PTR_DAT_000799a4 + 0x3684);\n                    do {\n                      pppppppcVar15 = local_50 + (int)local_8c;\n                      pppppppcVar42 = local_8c;\n                      do {\n                        pppppppcVar42 = (code *******)((int)pppppppcVar42 + 1);\n                        pppppppcVar29 = local_4c;\n                        param_4 = pppppppcVar14;\n                        if ((int)local_4c < (int)pppppppcVar42) goto LAB_00055da8;\n                        local_8c = (code *******)((int)local_8c + 1);\n                        pppppppcVar15 = pppppppcVar15 + 1;\n                      } while (*pppppppcVar15 == (code ******)0x0);\n                      pppppppcVar30 = (code *******)0x0;\n                      pppppppcVar29 = param_6;\n                      param_4 = (code *******)(*(code *)pppppppcVar31)(param_5);\n                      if (local_d8 != (code *******)0x0) {\n                        if (param_4 == (code *******)0x0) goto LAB_00055da8;\n                        break;\n                      }\n                      pppppppcVar29 = local_4c;\n                    } while (param_4 == (code *******)0x0);\n                  }\n                  pppppppcVar15 = (code *******)((uint)unaff_s7 ^ (uint)param_4);\n                  pppppppcVar42 = unaff_s7;\n                  pppppppcVar14 = local_138;\n                  if ((bVar1) &&\n                     (pppppppcVar42 = pppppppcVar15, pppppppcVar14 = unaff_s5,\n                     pppppppcVar15 != (code *******)0x0)) {\n                    bVar1 = false;\n                    pppppppcVar14 = local_138;\n                  }\n                  local_138 = pppppppcVar14;\n                  unaff_s7 = param_4;\n                  if ((((uint)param_4[0xd] & 0x8000000) != 0) &&\n                     ((((uint)param_4[0xd] & 0x1000000) == 0 ||\n                      (pppppppcVar29 = param_4, pppppppcVar30 = local_8c,\n                      iVar18 = FUN_00049440(&local_b4), iVar18 != 0)))) {\n                    unaff_s7 = pppppppcVar42;\n                    unaff_s8 = local_8c;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                    local_144 = (code *******)0x0;\n                    unaff_s7 = param_4;\n                  }\n                }\nLAB_00055da8:\n                if (local_144 != (code *******)0x0) {\n                  *local_144 = (code ******)((int)local_138 + (int)*local_144);\n                }\n              }\n              else {\n                param_4 = unaff_s7 + 1;\n                pppppppcVar30 = (code *******)0x0;\n                pppppppcVar29 = param_4;\n                local_d8 = (code *******)FUN_00047a44(&local_b4);\n                unaff_s8 = local_d8;\n                if (local_d8 == (code *******)0x0) {\n                  if (((uint)unaff_s7[0xd] & 0x2000000) == 0) {\n                    pppppppcVar29 = param_4;\n                    bVar1 = false;\n                  }\n                  else {\n                    pppppppcVar29 = param_4;\n                    local_d8 = (code *******)FUN_00052d84(&local_b4);\n                    unaff_s8 = local_d8;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055dbc;\n                    bVar1 = false;\n                  }\n                  goto LAB_00054d50;\n                }\n              }\nLAB_00055dbc:\n              if (unaff_s8 == (code *******)0xffffffff) {\nLAB_00055b04:\n                FUN_0004b7e8(&local_b4);\nLAB_00055b1c:\n                local_dc = (code *******)((int)pppppppcVar24 + (int)local_dc);\n                if ((int)pppppppcVar25 <= (int)local_dc) goto code_r0x00055b38;\n                local_150 = (code *******)0x1;\n                goto LAB_000557e4;\n              }\n              if (unaff_s8 == (code *******)&SUB_fffffffe) {\n                local_150 = (code *******)0xc;\n                goto LAB_000557e4;\n              }\n              local_58 = unaff_s8;\n              if (((uint)param_1[7] & 0x8000000) == 0) {\n                if (pppppppcVar3 < (code *******)0x2) {\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055c08;\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                else {\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                if (pppppppcVar3 < (code *******)0x2) {\nLAB_00055c6c:\n                  pppppppcVar28 = pppppppcVar33;\n                  unaff_s4 = local_60;\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055548;\n                }\n                else {\n                  cVar23 = *(code *)(pppppppcVar38 + 0x16);\nLAB_00055c20:\n                  pppppppcVar28 = pppppppcVar33;\n                  if (-1 < (char)cVar23) goto LAB_00055c6c;\n                }\n                pppppppcVar31 = local_54;\n                pppppppcVar42 = local_60;\n                unaff_s4 = pppppppcVar42;\n                if (unaff_s8 < (code *******)0x3fffffff) {\n                  param_4 = (code *******)((int)((int)unaff_s8 + 1) * 4);\n                  unaff_s5 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                  if (unaff_s5 == (code *******)0x0) {\nLAB_00055b9c:\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    local_150 = (code *******)0xc;\n                    pppppppcVar33 = pppppppcVar28;\n                  }\n                  else {\n                    pppppppcVar29 = (code *******)&local_d0;\n                    if (pppppppcVar42[0x13] == (code ******)0x0) {\n                      local_cc = (code *******)0x0;\n                      local_c8 = pppppppcVar31;\n                      local_c0 = 0;\n                      local_bc = 0;\n                      local_b8 = 0;\n                      local_d0 = unaff_s5;\n                      local_c4 = unaff_s8;\n                      param_5 = (code *******)FUN_0005421c(&local_b4);\n                      (*(code *)PTR_free_00079c24)(local_b8);\n                      if (param_5 == (code *******)0x0) {\n                        param_4 = (code *******)*unaff_s5;\n                        if (param_4 == (code *******)0x0) {\nLAB_00055b70:\n                          (*(code *)PTR_free_00079c24)(unaff_s5);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          pppppppcVar33 = pppppppcVar28;\n                          goto LAB_00055b04;\n                        }\nLAB_00055528:\n                        (*(code *)PTR_free_00079c24)(local_50);\n                        pppppppcVar33 = pppppppcVar28;\n                        unaff_s4 = pppppppcVar42;\n                        local_58 = unaff_s8;\n                        local_54 = pppppppcVar31;\n                        local_50 = unaff_s5;\n                        goto LAB_00055548;\n                      }\nLAB_00055acc:\n                      param_4 = (code *******)0x0;\n                      pppppppcVar33 = pppppppcVar28;\n                      unaff_s4 = pppppppcVar42;\n                    }\n                    else {\n                      param_4 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                      if (param_4 == (code *******)0x0) goto LAB_00055b9c;\n                      unaff_s7 = (code *******)&local_d0;\n                      pcVar8 = (code *)(PTR_DAT_000799a4 + 0x421c);\n                      pcVar9 = (code *)(PTR_DAT_000799a4 + -0x6bc0);\n                      pppppppcVar33 = pppppppcVar28;\n                      while( true ) {\n                        pppppppcVar28 = (code *******)((int)unaff_s8 + 1);\n                        param_6 = (code *******)((int)pppppppcVar28 * 4);\n                        pppppppcVar30 = param_6;\n                        (*(code *)PTR_memset_00079b00)(param_4,0);\n                        local_c0 = 0;\n                        local_bc = 0;\n                        local_b8 = 0;\n                        pppppppcVar29 = unaff_s7;\n                        local_d0 = unaff_s5;\n                        local_cc = param_4;\n                        local_c8 = pppppppcVar31;\n                        local_c4 = unaff_s8;\n                        param_5 = (code *******)(*pcVar8)(&local_b4);\n                        (*(code *)PTR_free_00079c24)(local_b8);\n                        unaff_s4 = pppppppcVar28;\n                        if (param_5 != (code *******)0x0) break;\n                        if ((*unaff_s5 != (code ******)0x0) ||\n                           (param_6 = param_6 + -1, *param_4 != (code ******)0x0)) {\n                          pppppppcVar29 = unaff_s5;\n                          pppppppcVar30 = param_4;\n                          param_5 = (code *******)FUN_000520d0(pppppppcVar42);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          if (param_5 != (code *******)0x0) goto LAB_00055acc;\n                          goto LAB_00055528;\n                        }\n                        param_6 = (code *******)((int)local_50 + (int)param_6);\n                        do {\n                          while( true ) {\n                            unaff_s8 = (code *******)((int)unaff_s8 + -1);\n                            if ((int)unaff_s8 < 0) goto LAB_00055b70;\n                            pppppppcVar29 = (code *******)param_6[-1];\n                            if (pppppppcVar29 != (code *******)0x0) break;\n                            param_6 = param_6 + -1;\n                          }\n                          param_6 = param_6 + -1;\n                        } while (((uint)pppppppcVar29[0xd] & 0x8000000) == 0);\n                        pppppppcVar31 = (code *******)(*pcVar9)(&local_b4,pppppppcVar29,unaff_s8);\n                        pppppppcVar33 = pppppppcVar28;\n                      }\n                    }\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    (*(code *)PTR_free_00079c24)(param_4);\n                    local_150 = param_5;\n                    if (param_5 == (code *******)0x1) goto LAB_00055b04;\n                  }\n                }\n                else {\n                  local_150 = (code *******)0xc;\n                  pppppppcVar33 = pppppppcVar28;\n                }\n                goto LAB_000557e4;\n              }\n              if (pppppppcVar38[0x13] != (code ******)0x0) {\n                pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                pppppppcVar30 = unaff_s8;\n                local_54 = (code *******)FUN_00049440(&local_b4);\n                goto LAB_00055c6c;\n              }\nLAB_00055c08:\n              if ((((uint)param_1[7] & 0x8000000) == 0) && ((code *******)0x1 < pppppppcVar3)) {\n                cVar23 = *(code *)(pppppppcVar38 + 0x16);\n                goto LAB_00055c20;\n              }\nLAB_00055548:\n              if (pppppppcVar3 == (code *******)0x0) goto LAB_000557e4;\n              if (pppppppcVar3 < (code *******)0x2) {\n                *param_8 = (code ******)0x0;\n                param_8[1] = (code ******)local_58;\n                goto LAB_000555ac;\n              }\n              pppppppcVar29 = param_8 + 2;\n              do {\n                pppppppcVar29[1] = (code ******)0xffffffff;\n                *pppppppcVar29 = (code ******)0xffffffff;\n                pppppppcVar29 = pppppppcVar29 + 2;\n              } while (pppppppcVar29 != param_8 + (int)pppppppcVar3 * 2);\n              *param_8 = (code ******)0x0;\n              param_8[1] = (code ******)local_58;\n              if (((uint)param_1[7] & 0x8000000) != 0) {\nLAB_000555ac:\n                pppppppcVar33 = param_8;\n                do {\n                  pppppppcVar29 = (code *******)*pppppppcVar33;\n                  if (pppppppcVar29 != (code *******)0xffffffff) {\n                    if (local_68 != '\0') {\n                      pppppppcVar34 = local_94;\n                      if (pppppppcVar29 != local_98) {\n                        pppppppcVar34 = *(code ********)(local_a8 + (int)pppppppcVar29 * 4);\n                      }\n                      *pppppppcVar33 = (code ******)pppppppcVar34;\n                      pppppppcVar29 = local_94;\n                      if (local_98 != (code *******)pppppppcVar33[1]) {\n                        pppppppcVar29 = *(code ********)(local_a8 + (int)pppppppcVar33[1] * 4);\n                      }\n                      pppppppcVar33[1] = (code ******)pppppppcVar29;\n                    }\n                    *pppppppcVar33 = (code ******)((int)local_dc + (int)*pppppppcVar33);\n                    pppppppcVar29 = (code *******)((int)local_dc + (int)pppppppcVar33[1]);\n                    pppppppcVar33[1] = (code ******)pppppppcVar29;\n                  }\n                  pppppppcVar33 = pppppppcVar33 + 2;\n                } while (pppppppcVar33 != param_8 + (int)pppppppcVar3 * 2);\n                if (0 < local_118) {\n                  pppppppcVar33 = param_8 + (int)pppppppcVar3 * 2;\n                  do {\n                    *pppppppcVar33 = (code ******)0xffffffff;\n                    pppppppcVar33[1] = (code ******)0xffffffff;\n                    pppppppcVar33 = pppppppcVar33 + 2;\n                  } while (pppppppcVar33 != param_8 + (int)param_7 * 2);\n                }\n                pppppppcVar30 = local_dc;\n                pppppppcVar33 = param_8;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar38[0x21] != (code ******)0x0) {\n                  pppppppcVar30 = (code *******)((int)pppppppcVar3 + -1);\n                  pppppppcVar34 = (code *******)0x0;\n                  pppppppcVar3 = param_8;\n                  while( true ) {\n                    pppppppcVar29 = (code *******)((int)pppppppcVar34 * 4);\n                    if (pppppppcVar30 == pppppppcVar34) break;\n                    if (*(code ********)((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) !=\n                        pppppppcVar34) {\n                      pppppppcVar3[2] =\n                           param_8[(int)((int)*(code ********)\n                                               ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1)\n                                   * 2];\n                      pppppppcVar3[3] =\n                           param_8[((int)*(code ******)\n                                          ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1) * 2 +\n                                   1];\n                    }\n                    pppppppcVar34 = (code *******)((int)pppppppcVar34 + 1);\n                    pppppppcVar3 = pppppppcVar3 + 2;\n                  }\n                }\n                goto LAB_000557e4;\n              }\n              if ((char)*(code *)(pppppppcVar38 + 0x16) < '\0') {\n                local_168 = (uint)(0 < (int)pppppppcVar38[0x13]);\n              }\n              else {\n                local_168 = 0;\n              }\n              pppppppcVar29 = &local_b4;\n              pppppppcVar30 = pppppppcVar3;\n              pppppppcVar33 = param_8;\n              local_150 = (code *******)FUN_0004f4a0(param_1);\n              if (local_150 == (code *******)0x0) goto LAB_000555ac;\n            }" (if "if") (parenthesized_expression "((int)param_4 < (int)pppppppcVar25)" (( "(") (binary_expression "(int)param_4 < (int)pppppppcVar25" (cast_expression "(int)param_4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_4")) (< "<") (cast_expression "(int)pppppppcVar25" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppcVar25"))) () ")")) (compound_statement "{\n              local_150 = (code *******)0x1;\n              param_6 = pppppppcVar36;\n            }" ({ "{") (expression_statement "local_150 = (code *******)0x1;" (assignment_expression "local_150 = (code *******)0x1" (identifier "local_150") (= "=") (cast_expression "(code *******)0x1" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x1"))) (; ";")) (expression_statement "param_6 = pppppppcVar36;" (assignment_expression "param_6 = pppppppcVar36" (identifier "param_6") (= "=") (identifier "pppppppcVar36")) (; ";")) (} "}")) (else_clause "else if ((int)pppppppcVar26 < (int)param_4) {\n              local_150 = (code *******)0x1;\n              param_4 = (code *******)(uint)((int)param_5 < (int)param_4);\n              param_6 = pppppppcVar36;\n            }\n            else {\n              pppppppcVar36 = (code *******)&local_dc;\n              if ((code *******)(uint)((int)param_5 < (int)param_4) != (code *******)0x0) {\n                pppppppcVar36 = (code *******)0x0;\n              }\n              pcVar4 = (code *)(PTR_DAT_000799a4 + -0x2b7c);\n              piVar5 = (int *)(PTR_s_nt0_000795b8 + (uVar16 - 4) * 4 + 0x6e38);\nLAB_00055b44:\n              if (uVar16 - 4 < 5) {\n                    \n                    \n                pppppppcVar29 = (code *******)(*(code *)(&_gp_1 + *piVar5))();\n                return pppppppcVar29;\n              }\n              param_5 = &local_b4;\n              pppppppcVar28 = pppppppcVar33;\n              while( true ) {\n                param_4 = local_dc;\n                pppppppcVar33 = (code *******)((int)local_dc - local_9c);\n                pppppppcVar30 = param_9;\n                pppppppcVar31 = pppppppcVar2;\n                param_6 = local_148;\n                unaff_s4 = param_3;\n                unaff_s5 = pppppppcVar24;\n                unaff_s7 = pppppppcVar26;\n                if (local_94 <= pppppppcVar33) {\n                  pppppppcVar29 = local_dc;\n                  local_150 = (code *******)(*pcVar4)(param_5);\n                  pppppppcVar33 = pppppppcVar28;\n                  if (local_150 != (code *******)0x0) goto LAB_000557e4;\n                  pppppppcVar33 = (code *******)((int)param_4 - local_9c);\n                }\n                if ((int)param_4 < (int)param_3) {\n                  uVar7 = (uint)(byte)*(code *)((int)pppppppcVar33 + (int)local_b0);\n                }\n                else {\n                  uVar7 = 0;\n                }\n                param_4 = (code *******)((int)param_4 + (int)pppppppcVar24);\n                if (*(code *)((int)local_148 + uVar7) != (code)0x0) break;\n                pppppppcVar33 = pppppppcVar28;\n                local_dc = param_4;\n                if ((int)param_4 < (int)pppppppcVar25) {\n                  local_150 = (code *******)0x1;\n                  goto LAB_000557e4;\n                }\n                if ((code *******)(uint)((int)pppppppcVar26 < (int)param_4) != (code *******)0x0) {\n                  local_150 = (code *******)0x1;\n                  param_4 = (code *******)(uint)((int)pppppppcVar26 < (int)param_4);\n                  goto LAB_000557e4;\n                }\n              }\n              while( true ) {\n                pppppppcVar29 = local_dc;\n                pppppppcVar30 = param_9;\n                pppppppcVar6 = (code *******)(*pcVar4)(&local_b4);\n                pppppppcVar14 = local_60;\n                pppppppcVar42 = local_8c;\n                pppppppcVar33 = pppppppcVar28;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar6 != (code *******)0x0) goto LAB_000557e4;\n                if (((ppppppcVar35 != (code ******)0x1) && (local_98 != (code *******)0x0)) &&\n                   (*local_ac == -1)) goto LAB_00055b1c;\n                local_3c = 0;\n                local_48 = 0;\n                local_4c = (code *******)0x0;\n                local_138 = local_8c;\n                local_d8 = (code *******)0x0;\n                unaff_s7 = (code *******)local_60[9];\n                pppppppcVar30 = local_5c;\n                param_4 = pppppppcVar14;\n                if (((uint)unaff_s7[0xd] & 0x1000000) == 0) break;\n                pppppppcVar29 = (code *******)((int)local_8c + -1);\n                pppppppcVar33 = (code *******)FUN_00049110(&local_b4);\n                if (((uint)pppppppcVar33 & 1) == 0) {\n                  if (pppppppcVar33 == (code *******)0x0) break;\n                  if (((uint)pppppppcVar33 & 6) == 6) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xc];\n                    goto LAB_00054d1c;\n                  }\n                  if (((uint)pppppppcVar33 & 2) != 0) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xb];\n                    goto LAB_00054d1c;\n                  }\n                  pppppppcVar28 = pppppppcVar33;\n                  if (((uint)pppppppcVar33 & 4) == 0) break;\n                  pppppppcVar30 = (code *******)unaff_s7[10];\n                  pppppppcVar29 = pppppppcVar14;\n                  unaff_s7 = (code *******)FUN_0004ae34(&local_d8);\n                  pppppppcVar28 = pppppppcVar33;\n                  if (unaff_s7 != (code *******)0x0) break;\n                  if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                }\n                else {\n                  unaff_s7 = (code *******)pppppppcVar14[10];\nLAB_00054d1c:\n                  pppppppcVar28 = (code *******)PTR_s_nt0_000795b8;\n                  if (unaff_s7 != (code *******)0x0) break;\n                }\n                pppppppcVar28 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                local_dc = (code *******)\n                           (*(code *)PTR___assert_fail_000799f8)\n                                     (PTR_s_nt0_000795b8 + 0x71a0,pppppppcVar29,0x435);\n                if (local_dc == pppppppcVar26) {\n                  if ((int)local_dc < (int)param_3) {\n                    uVar7 = (uint)(byte)*(code *)((int)local_dc + (int)param_2);\n                  }\n                  else {\n                    uVar7 = 0;\n                  }\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    uVar7 = (uint)*(byte *)((int)ppppppcVar32 + uVar7);\n                  }\n                  if (*(code *)((int)local_148 + uVar7) == (code)0x0) {\n                    local_150 = (code *******)0x1;\n                    pppppppcVar30 = param_9;\n                    pppppppcVar33 = pppppppcVar28;\n                    goto LAB_000557e4;\n                  }\n                }\n              }\n              pppppppcVar33 = pppppppcVar28;\n              bVar1 = pppppppcVar36 != (code *******)0x0;\n              if ((local_50 == (code *******)0x0) ||\n                 (local_50[(int)pppppppcVar42] = (code ******)unaff_s7,\n                 pppppppcVar14[0x13] == (code ******)0x0)) {\nLAB_00054d50:\n                if ((int)unaff_s7[0xd] << 4 < 0) {\n                  if ((((uint)unaff_s7[0xd] & 0x1000000) == 0) ||\n                     (pppppppcVar29 = unaff_s7, pppppppcVar30 = pppppppcVar42,\n                     iVar18 = FUN_00049440(&local_b4), iVar18 != 0)) {\n                    unaff_s8 = pppppppcVar42;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                  }\n                  else {\n                    pppppppcVar42 = (code *******)0xffffffff;\n                    pppppppcVar28 = (code *******)0x0;\n                  }\n                }\n                else {\n                  pppppppcVar42 = (code *******)0xffffffff;\n                  pppppppcVar28 = (code *******)0x0;\n                }\n                pcVar8 = (code *)(PTR_DAT_000799a4 + -0x7144);\n                pcVar9 = (code *)(PTR_DAT_000799a4 + -0x1980);\n                pcVar10 = (code *)(PTR_DAT_000799a4 + -0x2f9c);\n                unaff_s8 = pppppppcVar42;\n                local_144 = pppppppcVar36;\n                while( true ) {\n                  uVar44 = CONCAT44(local_98,local_84);\n                  unaff_s5 = (code *******)((int)local_8c + 1);\n                  pppppppcVar29 = local_8c;\n                  if ((int)local_7c <= (int)local_8c) break;\n                  if (((int)local_90 <= (int)unaff_s5) && ((int)local_90 < (int)local_84))\n                  goto LAB_00054e94;\n                  if ((int)local_98 <= (int)unaff_s5) {\n                    while ((int)((ulonglong)uVar44 >> 0x20) < (int)uVar44) {\nLAB_00054e94:\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 2);\n                      local_d8 = (code *******)(*pcVar8)(&local_b4);\n                      if (local_d8 == (code *******)0x0) break;\n                      pppppppcVar14 = param_4;\n                      if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                      pppppppcVar33 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                      pppppppcVar30 = (code *******)0x46c;\n                      pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                      uVar44 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0);\n                      pppppppcVar28 = pppppppcVar38;\n                    }\n                  }\n                  pppppppcVar42 = local_60;\n                  if ((int)unaff_s7[0xd] << 5 < 0) {\n                    pppppppcVar31 = pppppppcVar42;\n                    if (0 < (int)unaff_s7[2]) {\n                      pcVar11 = (code *)(PTR_DAT_000799a4 + -0x6fdc);\n                      pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6ef0);\n                      param_6 = (code *******)0x0;\n                      do {\n                        param_5 = (code *******)unaff_s7[3][(int)param_6];\n                        ppppppcVar39 = *pppppppcVar42;\n                        pppppcVar13 = ppppppcVar39[(int)param_5 * 2 + 1];\n                        if (((uint)pppppcVar13 & 0x800) != 0) {\n                          if (((uint)pppppcVar13 & 0xffc000) != 0) {\n                            pppppppcVar29 = local_8c;\n                            uVar19 = (*pcVar12)(&local_b4,local_8c,local_5c);\n                            uVar7 = (uint)((int)ppppppcVar39[(int)param_5 * 2 + 1] << 8) >> 0x16;\n                            if ((uVar7 & 4) == 0) {\n                              uVar27 = uVar19 & 1;\n                              if ((uVar7 & 8) != 0) goto joined_r0x00054f40;\n                            }\n                            else {\n                              uVar27 = uVar7 & 8;\n                              if ((uVar19 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                              if (uVar27 != 0) goto LAB_000550a4;\n                            }\n                            if ((((uVar7 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                               (((uVar7 & 0x80) != 0 &&\n                                (pppppppcVar33 = local_8c, (uVar19 & 8) == 0)))) goto LAB_000550a4;\n                          }\n                          pppppppcVar30 = &local_b4;\n                          pppppppcVar29 = param_5;\n                          pppppppcVar33 = local_8c;\n                          iVar18 = (*pcVar10)(pppppppcVar42);\n                          if (iVar18 != 0) {\n                            pppppppcVar14 = (code *******)((int)local_8c + iVar18);\n                            if (iVar18 <= local_3c) {\n                              iVar18 = local_3c;\n                            }\n                            pppppppcVar29 = pppppppcVar14;\n                            local_3c = iVar18;\n                            local_d4 = (code *******)(*pcVar11)(&local_b4);\n                            pppppppcVar15 = local_d4;\n                            if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                            pppppppcVar30 =\n                                 (code *******)\n                                 (pppppppcVar42[6] + (int)pppppppcVar42[3][(int)param_5] * 3);\n                            unaff_s4 = (code *******)((int)pppppppcVar14 * 4);\n                            param_5 = local_50 + (int)pppppppcVar14;\n                            if (*param_5 == (code ******)0x0) {\n                              local_d0 = (code *******)*pppppppcVar30;\n                              local_cc = (code *******)pppppppcVar30[1];\n                              local_c8 = (code *******)pppppppcVar30[2];\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *param_5 = ppppppcVar39;\n                            }\n                            else {\n                              pppppppcVar29 = (code *******)(*param_5)[10];\n                              local_d4 = (code *******)FUN_000484bc(&local_d0);\n                              pppppppcVar15 = local_d4;\n                              if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar15 = local_50 + (int)pppppppcVar14;\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *pppppppcVar15 = ppppppcVar39;\n                              (*(code *)PTR_free_00079c24)(local_c8);\n                            }\n                            unaff_s4 = local_50 + (int)pppppppcVar14;\n                            if ((*unaff_s4 == (code ******)0x0) &&\n                               (pppppppcVar15 = local_d4, local_d4 != (code *******)0x0))\n                            goto LAB_00055e44;\n                          }\n                        }\nLAB_000550a4:\n                        param_6 = (code *******)((int)param_6 + 1);\n                      } while ((int)param_6 < (int)unaff_s7[2]);\n                    }\n                    local_d8 = (code *******)0x0;\n                  }\n                  uVar7 = (uint)(byte)*(code *)((int)local_8c + (int)local_b0);\n                  local_8c = (code *******)((int)local_8c + 1);\n                  do {\n                    if (unaff_s7[0xb] != (code ******)0x0) {\n                      pppppppcVar30 = (code *******)unaff_s7[0xb][uVar7];\nLAB_000553a0:\n                      pppppppcVar14 = pppppppcVar30;\n                      if (local_50 != (code *******)0x0) goto LAB_000553ac;\n                      goto LAB_000553cc;\n                    }\n                    pppppppcVar31 = (code *******)unaff_s7[0xc];\n                    if (pppppppcVar31 != (code *******)0x0) {\n                      pppppppcVar29 = (code *******)((int)local_8c + -1);\n                      uVar19 = FUN_00049110(&local_b4);\n                      if ((uVar19 & 1) == 0) {\n                        pppppppcVar30 = (code *******)pppppppcVar31[uVar7];\n                      }\n                      else {\n                        pppppppcVar31 = pppppppcVar31 + uVar7 + 0x100;\n                        pppppppcVar30 = (code *******)*pppppppcVar31;\n                      }\n                      goto LAB_000553a0;\n                    }\n                    pppppppcVar29 = unaff_s7;\n                    pppppppcVar30 = local_5c;\n                    iVar18 = (*pcVar9)(local_60);\n                  } while (iVar18 != 0);\n                  local_d8 = (code *******)0xc;\n                  pppppppcVar15 = local_d8;\nLAB_00055e44:\n                  local_d8 = pppppppcVar15;\n                  param_4 = (code *******)0x0;\n                  if (local_50 == (code *******)0x0) {\n                    pppppppcVar14 = param_4;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    break;\n                  }\n                  pppppppcVar30 = (code *******)0x0;\nLAB_000553ac:\n                  pppppppcVar29 = &local_b4;\n                  pppppppcVar14 = (code *******)FUN_00053684(&local_d8);\nLAB_000553cc:\n                  param_4 = pppppppcVar14;\n                  if (pppppppcVar14 == (code *******)0x0) {\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    if ((local_50 == (code *******)0x0) ||\n                       ((pppppppcVar28 != (code *******)0x0 && (pppppppcVar34 == (code *******)0x0))\n                       )) break;\n                    param_6 = &local_b4;\n                    param_5 = (code *******)&local_d8;\n                    pppppppcVar31 = (code *******)(PTR_DAT_000799a4 + 0x3684);\n                    do {\n                      pppppppcVar15 = local_50 + (int)local_8c;\n                      pppppppcVar42 = local_8c;\n                      do {\n                        pppppppcVar42 = (code *******)((int)pppppppcVar42 + 1);\n                        pppppppcVar29 = local_4c;\n                        param_4 = pppppppcVar14;\n                        if ((int)local_4c < (int)pppppppcVar42) goto LAB_00055da8;\n                        local_8c = (code *******)((int)local_8c + 1);\n                        pppppppcVar15 = pppppppcVar15 + 1;\n                      } while (*pppppppcVar15 == (code ******)0x0);\n                      pppppppcVar30 = (code *******)0x0;\n                      pppppppcVar29 = param_6;\n                      param_4 = (code *******)(*(code *)pppppppcVar31)(param_5);\n                      if (local_d8 != (code *******)0x0) {\n                        if (param_4 == (code *******)0x0) goto LAB_00055da8;\n                        break;\n                      }\n                      pppppppcVar29 = local_4c;\n                    } while (param_4 == (code *******)0x0);\n                  }\n                  pppppppcVar15 = (code *******)((uint)unaff_s7 ^ (uint)param_4);\n                  pppppppcVar42 = unaff_s7;\n                  pppppppcVar14 = local_138;\n                  if ((bVar1) &&\n                     (pppppppcVar42 = pppppppcVar15, pppppppcVar14 = unaff_s5,\n                     pppppppcVar15 != (code *******)0x0)) {\n                    bVar1 = false;\n                    pppppppcVar14 = local_138;\n                  }\n                  local_138 = pppppppcVar14;\n                  unaff_s7 = param_4;\n                  if ((((uint)param_4[0xd] & 0x8000000) != 0) &&\n                     ((((uint)param_4[0xd] & 0x1000000) == 0 ||\n                      (pppppppcVar29 = param_4, pppppppcVar30 = local_8c,\n                      iVar18 = FUN_00049440(&local_b4), iVar18 != 0)))) {\n                    unaff_s7 = pppppppcVar42;\n                    unaff_s8 = local_8c;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                    local_144 = (code *******)0x0;\n                    unaff_s7 = param_4;\n                  }\n                }\nLAB_00055da8:\n                if (local_144 != (code *******)0x0) {\n                  *local_144 = (code ******)((int)local_138 + (int)*local_144);\n                }\n              }\n              else {\n                param_4 = unaff_s7 + 1;\n                pppppppcVar30 = (code *******)0x0;\n                pppppppcVar29 = param_4;\n                local_d8 = (code *******)FUN_00047a44(&local_b4);\n                unaff_s8 = local_d8;\n                if (local_d8 == (code *******)0x0) {\n                  if (((uint)unaff_s7[0xd] & 0x2000000) == 0) {\n                    pppppppcVar29 = param_4;\n                    bVar1 = false;\n                  }\n                  else {\n                    pppppppcVar29 = param_4;\n                    local_d8 = (code *******)FUN_00052d84(&local_b4);\n                    unaff_s8 = local_d8;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055dbc;\n                    bVar1 = false;\n                  }\n                  goto LAB_00054d50;\n                }\n              }\nLAB_00055dbc:\n              if (unaff_s8 == (code *******)0xffffffff) {\nLAB_00055b04:\n                FUN_0004b7e8(&local_b4);\nLAB_00055b1c:\n                local_dc = (code *******)((int)pppppppcVar24 + (int)local_dc);\n                if ((int)pppppppcVar25 <= (int)local_dc) goto code_r0x00055b38;\n                local_150 = (code *******)0x1;\n                goto LAB_000557e4;\n              }\n              if (unaff_s8 == (code *******)&SUB_fffffffe) {\n                local_150 = (code *******)0xc;\n                goto LAB_000557e4;\n              }\n              local_58 = unaff_s8;\n              if (((uint)param_1[7] & 0x8000000) == 0) {\n                if (pppppppcVar3 < (code *******)0x2) {\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055c08;\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                else {\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                if (pppppppcVar3 < (code *******)0x2) {\nLAB_00055c6c:\n                  pppppppcVar28 = pppppppcVar33;\n                  unaff_s4 = local_60;\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055548;\n                }\n                else {\n                  cVar23 = *(code *)(pppppppcVar38 + 0x16);\nLAB_00055c20:\n                  pppppppcVar28 = pppppppcVar33;\n                  if (-1 < (char)cVar23) goto LAB_00055c6c;\n                }\n                pppppppcVar31 = local_54;\n                pppppppcVar42 = local_60;\n                unaff_s4 = pppppppcVar42;\n                if (unaff_s8 < (code *******)0x3fffffff) {\n                  param_4 = (code *******)((int)((int)unaff_s8 + 1) * 4);\n                  unaff_s5 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                  if (unaff_s5 == (code *******)0x0) {\nLAB_00055b9c:\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    local_150 = (code *******)0xc;\n                    pppppppcVar33 = pppppppcVar28;\n                  }\n                  else {\n                    pppppppcVar29 = (code *******)&local_d0;\n                    if (pppppppcVar42[0x13] == (code ******)0x0) {\n                      local_cc = (code *******)0x0;\n                      local_c8 = pppppppcVar31;\n                      local_c0 = 0;\n                      local_bc = 0;\n                      local_b8 = 0;\n                      local_d0 = unaff_s5;\n                      local_c4 = unaff_s8;\n                      param_5 = (code *******)FUN_0005421c(&local_b4);\n                      (*(code *)PTR_free_00079c24)(local_b8);\n                      if (param_5 == (code *******)0x0) {\n                        param_4 = (code *******)*unaff_s5;\n                        if (param_4 == (code *******)0x0) {\nLAB_00055b70:\n                          (*(code *)PTR_free_00079c24)(unaff_s5);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          pppppppcVar33 = pppppppcVar28;\n                          goto LAB_00055b04;\n                        }\nLAB_00055528:\n                        (*(code *)PTR_free_00079c24)(local_50);\n                        pppppppcVar33 = pppppppcVar28;\n                        unaff_s4 = pppppppcVar42;\n                        local_58 = unaff_s8;\n                        local_54 = pppppppcVar31;\n                        local_50 = unaff_s5;\n                        goto LAB_00055548;\n                      }\nLAB_00055acc:\n                      param_4 = (code *******)0x0;\n                      pppppppcVar33 = pppppppcVar28;\n                      unaff_s4 = pppppppcVar42;\n                    }\n                    else {\n                      param_4 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                      if (param_4 == (code *******)0x0) goto LAB_00055b9c;\n                      unaff_s7 = (code *******)&local_d0;\n                      pcVar8 = (code *)(PTR_DAT_000799a4 + 0x421c);\n                      pcVar9 = (code *)(PTR_DAT_000799a4 + -0x6bc0);\n                      pppppppcVar33 = pppppppcVar28;\n                      while( true ) {\n                        pppppppcVar28 = (code *******)((int)unaff_s8 + 1);\n                        param_6 = (code *******)((int)pppppppcVar28 * 4);\n                        pppppppcVar30 = param_6;\n                        (*(code *)PTR_memset_00079b00)(param_4,0);\n                        local_c0 = 0;\n                        local_bc = 0;\n                        local_b8 = 0;\n                        pppppppcVar29 = unaff_s7;\n                        local_d0 = unaff_s5;\n                        local_cc = param_4;\n                        local_c8 = pppppppcVar31;\n                        local_c4 = unaff_s8;\n                        param_5 = (code *******)(*pcVar8)(&local_b4);\n                        (*(code *)PTR_free_00079c24)(local_b8);\n                        unaff_s4 = pppppppcVar28;\n                        if (param_5 != (code *******)0x0) break;\n                        if ((*unaff_s5 != (code ******)0x0) ||\n                           (param_6 = param_6 + -1, *param_4 != (code ******)0x0)) {\n                          pppppppcVar29 = unaff_s5;\n                          pppppppcVar30 = param_4;\n                          param_5 = (code *******)FUN_000520d0(pppppppcVar42);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          if (param_5 != (code *******)0x0) goto LAB_00055acc;\n                          goto LAB_00055528;\n                        }\n                        param_6 = (code *******)((int)local_50 + (int)param_6);\n                        do {\n                          while( true ) {\n                            unaff_s8 = (code *******)((int)unaff_s8 + -1);\n                            if ((int)unaff_s8 < 0) goto LAB_00055b70;\n                            pppppppcVar29 = (code *******)param_6[-1];\n                            if (pppppppcVar29 != (code *******)0x0) break;\n                            param_6 = param_6 + -1;\n                          }\n                          param_6 = param_6 + -1;\n                        } while (((uint)pppppppcVar29[0xd] & 0x8000000) == 0);\n                        pppppppcVar31 = (code *******)(*pcVar9)(&local_b4,pppppppcVar29,unaff_s8);\n                        pppppppcVar33 = pppppppcVar28;\n                      }\n                    }\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    (*(code *)PTR_free_00079c24)(param_4);\n                    local_150 = param_5;\n                    if (param_5 == (code *******)0x1) goto LAB_00055b04;\n                  }\n                }\n                else {\n                  local_150 = (code *******)0xc;\n                  pppppppcVar33 = pppppppcVar28;\n                }\n                goto LAB_000557e4;\n              }\n              if (pppppppcVar38[0x13] != (code ******)0x0) {\n                pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                pppppppcVar30 = unaff_s8;\n                local_54 = (code *******)FUN_00049440(&local_b4);\n                goto LAB_00055c6c;\n              }\nLAB_00055c08:\n              if ((((uint)param_1[7] & 0x8000000) == 0) && ((code *******)0x1 < pppppppcVar3)) {\n                cVar23 = *(code *)(pppppppcVar38 + 0x16);\n                goto LAB_00055c20;\n              }\nLAB_00055548:\n              if (pppppppcVar3 == (code *******)0x0) goto LAB_000557e4;\n              if (pppppppcVar3 < (code *******)0x2) {\n                *param_8 = (code ******)0x0;\n                param_8[1] = (code ******)local_58;\n                goto LAB_000555ac;\n              }\n              pppppppcVar29 = param_8 + 2;\n              do {\n                pppppppcVar29[1] = (code ******)0xffffffff;\n                *pppppppcVar29 = (code ******)0xffffffff;\n                pppppppcVar29 = pppppppcVar29 + 2;\n              } while (pppppppcVar29 != param_8 + (int)pppppppcVar3 * 2);\n              *param_8 = (code ******)0x0;\n              param_8[1] = (code ******)local_58;\n              if (((uint)param_1[7] & 0x8000000) != 0) {\nLAB_000555ac:\n                pppppppcVar33 = param_8;\n                do {\n                  pppppppcVar29 = (code *******)*pppppppcVar33;\n                  if (pppppppcVar29 != (code *******)0xffffffff) {\n                    if (local_68 != '\0') {\n                      pppppppcVar34 = local_94;\n                      if (pppppppcVar29 != local_98) {\n                        pppppppcVar34 = *(code ********)(local_a8 + (int)pppppppcVar29 * 4);\n                      }\n                      *pppppppcVar33 = (code ******)pppppppcVar34;\n                      pppppppcVar29 = local_94;\n                      if (local_98 != (code *******)pppppppcVar33[1]) {\n                        pppppppcVar29 = *(code ********)(local_a8 + (int)pppppppcVar33[1] * 4);\n                      }\n                      pppppppcVar33[1] = (code ******)pppppppcVar29;\n                    }\n                    *pppppppcVar33 = (code ******)((int)local_dc + (int)*pppppppcVar33);\n                    pppppppcVar29 = (code *******)((int)local_dc + (int)pppppppcVar33[1]);\n                    pppppppcVar33[1] = (code ******)pppppppcVar29;\n                  }\n                  pppppppcVar33 = pppppppcVar33 + 2;\n                } while (pppppppcVar33 != param_8 + (int)pppppppcVar3 * 2);\n                if (0 < local_118) {\n                  pppppppcVar33 = param_8 + (int)pppppppcVar3 * 2;\n                  do {\n                    *pppppppcVar33 = (code ******)0xffffffff;\n                    pppppppcVar33[1] = (code ******)0xffffffff;\n                    pppppppcVar33 = pppppppcVar33 + 2;\n                  } while (pppppppcVar33 != param_8 + (int)param_7 * 2);\n                }\n                pppppppcVar30 = local_dc;\n                pppppppcVar33 = param_8;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar38[0x21] != (code ******)0x0) {\n                  pppppppcVar30 = (code *******)((int)pppppppcVar3 + -1);\n                  pppppppcVar34 = (code *******)0x0;\n                  pppppppcVar3 = param_8;\n                  while( true ) {\n                    pppppppcVar29 = (code *******)((int)pppppppcVar34 * 4);\n                    if (pppppppcVar30 == pppppppcVar34) break;\n                    if (*(code ********)((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) !=\n                        pppppppcVar34) {\n                      pppppppcVar3[2] =\n                           param_8[(int)((int)*(code ********)\n                                               ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1)\n                                   * 2];\n                      pppppppcVar3[3] =\n                           param_8[((int)*(code ******)\n                                          ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1) * 2 +\n                                   1];\n                    }\n                    pppppppcVar34 = (code *******)((int)pppppppcVar34 + 1);\n                    pppppppcVar3 = pppppppcVar3 + 2;\n                  }\n                }\n                goto LAB_000557e4;\n              }\n              if ((char)*(code *)(pppppppcVar38 + 0x16) < '\0') {\n                local_168 = (uint)(0 < (int)pppppppcVar38[0x13]);\n              }\n              else {\n                local_168 = 0;\n              }\n              pppppppcVar29 = &local_b4;\n              pppppppcVar30 = pppppppcVar3;\n              pppppppcVar33 = param_8;\n              local_150 = (code *******)FUN_0004f4a0(param_1);\n              if (local_150 == (code *******)0x0) goto LAB_000555ac;\n            }" (else "else") (if_statement "if ((int)pppppppcVar26 < (int)param_4) {\n              local_150 = (code *******)0x1;\n              param_4 = (code *******)(uint)((int)param_5 < (int)param_4);\n              param_6 = pppppppcVar36;\n            }\n            else {\n              pppppppcVar36 = (code *******)&local_dc;\n              if ((code *******)(uint)((int)param_5 < (int)param_4) != (code *******)0x0) {\n                pppppppcVar36 = (code *******)0x0;\n              }\n              pcVar4 = (code *)(PTR_DAT_000799a4 + -0x2b7c);\n              piVar5 = (int *)(PTR_s_nt0_000795b8 + (uVar16 - 4) * 4 + 0x6e38);\nLAB_00055b44:\n              if (uVar16 - 4 < 5) {\n                    \n                    \n                pppppppcVar29 = (code *******)(*(code *)(&_gp_1 + *piVar5))();\n                return pppppppcVar29;\n              }\n              param_5 = &local_b4;\n              pppppppcVar28 = pppppppcVar33;\n              while( true ) {\n                param_4 = local_dc;\n                pppppppcVar33 = (code *******)((int)local_dc - local_9c);\n                pppppppcVar30 = param_9;\n                pppppppcVar31 = pppppppcVar2;\n                param_6 = local_148;\n                unaff_s4 = param_3;\n                unaff_s5 = pppppppcVar24;\n                unaff_s7 = pppppppcVar26;\n                if (local_94 <= pppppppcVar33) {\n                  pppppppcVar29 = local_dc;\n                  local_150 = (code *******)(*pcVar4)(param_5);\n                  pppppppcVar33 = pppppppcVar28;\n                  if (local_150 != (code *******)0x0) goto LAB_000557e4;\n                  pppppppcVar33 = (code *******)((int)param_4 - local_9c);\n                }\n                if ((int)param_4 < (int)param_3) {\n                  uVar7 = (uint)(byte)*(code *)((int)pppppppcVar33 + (int)local_b0);\n                }\n                else {\n                  uVar7 = 0;\n                }\n                param_4 = (code *******)((int)param_4 + (int)pppppppcVar24);\n                if (*(code *)((int)local_148 + uVar7) != (code)0x0) break;\n                pppppppcVar33 = pppppppcVar28;\n                local_dc = param_4;\n                if ((int)param_4 < (int)pppppppcVar25) {\n                  local_150 = (code *******)0x1;\n                  goto LAB_000557e4;\n                }\n                if ((code *******)(uint)((int)pppppppcVar26 < (int)param_4) != (code *******)0x0) {\n                  local_150 = (code *******)0x1;\n                  param_4 = (code *******)(uint)((int)pppppppcVar26 < (int)param_4);\n                  goto LAB_000557e4;\n                }\n              }\n              while( true ) {\n                pppppppcVar29 = local_dc;\n                pppppppcVar30 = param_9;\n                pppppppcVar6 = (code *******)(*pcVar4)(&local_b4);\n                pppppppcVar14 = local_60;\n                pppppppcVar42 = local_8c;\n                pppppppcVar33 = pppppppcVar28;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar6 != (code *******)0x0) goto LAB_000557e4;\n                if (((ppppppcVar35 != (code ******)0x1) && (local_98 != (code *******)0x0)) &&\n                   (*local_ac == -1)) goto LAB_00055b1c;\n                local_3c = 0;\n                local_48 = 0;\n                local_4c = (code *******)0x0;\n                local_138 = local_8c;\n                local_d8 = (code *******)0x0;\n                unaff_s7 = (code *******)local_60[9];\n                pppppppcVar30 = local_5c;\n                param_4 = pppppppcVar14;\n                if (((uint)unaff_s7[0xd] & 0x1000000) == 0) break;\n                pppppppcVar29 = (code *******)((int)local_8c + -1);\n                pppppppcVar33 = (code *******)FUN_00049110(&local_b4);\n                if (((uint)pppppppcVar33 & 1) == 0) {\n                  if (pppppppcVar33 == (code *******)0x0) break;\n                  if (((uint)pppppppcVar33 & 6) == 6) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xc];\n                    goto LAB_00054d1c;\n                  }\n                  if (((uint)pppppppcVar33 & 2) != 0) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xb];\n                    goto LAB_00054d1c;\n                  }\n                  pppppppcVar28 = pppppppcVar33;\n                  if (((uint)pppppppcVar33 & 4) == 0) break;\n                  pppppppcVar30 = (code *******)unaff_s7[10];\n                  pppppppcVar29 = pppppppcVar14;\n                  unaff_s7 = (code *******)FUN_0004ae34(&local_d8);\n                  pppppppcVar28 = pppppppcVar33;\n                  if (unaff_s7 != (code *******)0x0) break;\n                  if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                }\n                else {\n                  unaff_s7 = (code *******)pppppppcVar14[10];\nLAB_00054d1c:\n                  pppppppcVar28 = (code *******)PTR_s_nt0_000795b8;\n                  if (unaff_s7 != (code *******)0x0) break;\n                }\n                pppppppcVar28 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                local_dc = (code *******)\n                           (*(code *)PTR___assert_fail_000799f8)\n                                     (PTR_s_nt0_000795b8 + 0x71a0,pppppppcVar29,0x435);\n                if (local_dc == pppppppcVar26) {\n                  if ((int)local_dc < (int)param_3) {\n                    uVar7 = (uint)(byte)*(code *)((int)local_dc + (int)param_2);\n                  }\n                  else {\n                    uVar7 = 0;\n                  }\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    uVar7 = (uint)*(byte *)((int)ppppppcVar32 + uVar7);\n                  }\n                  if (*(code *)((int)local_148 + uVar7) == (code)0x0) {\n                    local_150 = (code *******)0x1;\n                    pppppppcVar30 = param_9;\n                    pppppppcVar33 = pppppppcVar28;\n                    goto LAB_000557e4;\n                  }\n                }\n              }\n              pppppppcVar33 = pppppppcVar28;\n              bVar1 = pppppppcVar36 != (code *******)0x0;\n              if ((local_50 == (code *******)0x0) ||\n                 (local_50[(int)pppppppcVar42] = (code ******)unaff_s7,\n                 pppppppcVar14[0x13] == (code ******)0x0)) {\nLAB_00054d50:\n                if ((int)unaff_s7[0xd] << 4 < 0) {\n                  if ((((uint)unaff_s7[0xd] & 0x1000000) == 0) ||\n                     (pppppppcVar29 = unaff_s7, pppppppcVar30 = pppppppcVar42,\n                     iVar18 = FUN_00049440(&local_b4), iVar18 != 0)) {\n                    unaff_s8 = pppppppcVar42;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                  }\n                  else {\n                    pppppppcVar42 = (code *******)0xffffffff;\n                    pppppppcVar28 = (code *******)0x0;\n                  }\n                }\n                else {\n                  pppppppcVar42 = (code *******)0xffffffff;\n                  pppppppcVar28 = (code *******)0x0;\n                }\n                pcVar8 = (code *)(PTR_DAT_000799a4 + -0x7144);\n                pcVar9 = (code *)(PTR_DAT_000799a4 + -0x1980);\n                pcVar10 = (code *)(PTR_DAT_000799a4 + -0x2f9c);\n                unaff_s8 = pppppppcVar42;\n                local_144 = pppppppcVar36;\n                while( true ) {\n                  uVar44 = CONCAT44(local_98,local_84);\n                  unaff_s5 = (code *******)((int)local_8c + 1);\n                  pppppppcVar29 = local_8c;\n                  if ((int)local_7c <= (int)local_8c) break;\n                  if (((int)local_90 <= (int)unaff_s5) && ((int)local_90 < (int)local_84))\n                  goto LAB_00054e94;\n                  if ((int)local_98 <= (int)unaff_s5) {\n                    while ((int)((ulonglong)uVar44 >> 0x20) < (int)uVar44) {\nLAB_00054e94:\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 2);\n                      local_d8 = (code *******)(*pcVar8)(&local_b4);\n                      if (local_d8 == (code *******)0x0) break;\n                      pppppppcVar14 = param_4;\n                      if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                      pppppppcVar33 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                      pppppppcVar30 = (code *******)0x46c;\n                      pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                      uVar44 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0);\n                      pppppppcVar28 = pppppppcVar38;\n                    }\n                  }\n                  pppppppcVar42 = local_60;\n                  if ((int)unaff_s7[0xd] << 5 < 0) {\n                    pppppppcVar31 = pppppppcVar42;\n                    if (0 < (int)unaff_s7[2]) {\n                      pcVar11 = (code *)(PTR_DAT_000799a4 + -0x6fdc);\n                      pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6ef0);\n                      param_6 = (code *******)0x0;\n                      do {\n                        param_5 = (code *******)unaff_s7[3][(int)param_6];\n                        ppppppcVar39 = *pppppppcVar42;\n                        pppppcVar13 = ppppppcVar39[(int)param_5 * 2 + 1];\n                        if (((uint)pppppcVar13 & 0x800) != 0) {\n                          if (((uint)pppppcVar13 & 0xffc000) != 0) {\n                            pppppppcVar29 = local_8c;\n                            uVar19 = (*pcVar12)(&local_b4,local_8c,local_5c);\n                            uVar7 = (uint)((int)ppppppcVar39[(int)param_5 * 2 + 1] << 8) >> 0x16;\n                            if ((uVar7 & 4) == 0) {\n                              uVar27 = uVar19 & 1;\n                              if ((uVar7 & 8) != 0) goto joined_r0x00054f40;\n                            }\n                            else {\n                              uVar27 = uVar7 & 8;\n                              if ((uVar19 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                              if (uVar27 != 0) goto LAB_000550a4;\n                            }\n                            if ((((uVar7 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                               (((uVar7 & 0x80) != 0 &&\n                                (pppppppcVar33 = local_8c, (uVar19 & 8) == 0)))) goto LAB_000550a4;\n                          }\n                          pppppppcVar30 = &local_b4;\n                          pppppppcVar29 = param_5;\n                          pppppppcVar33 = local_8c;\n                          iVar18 = (*pcVar10)(pppppppcVar42);\n                          if (iVar18 != 0) {\n                            pppppppcVar14 = (code *******)((int)local_8c + iVar18);\n                            if (iVar18 <= local_3c) {\n                              iVar18 = local_3c;\n                            }\n                            pppppppcVar29 = pppppppcVar14;\n                            local_3c = iVar18;\n                            local_d4 = (code *******)(*pcVar11)(&local_b4);\n                            pppppppcVar15 = local_d4;\n                            if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                            pppppppcVar30 =\n                                 (code *******)\n                                 (pppppppcVar42[6] + (int)pppppppcVar42[3][(int)param_5] * 3);\n                            unaff_s4 = (code *******)((int)pppppppcVar14 * 4);\n                            param_5 = local_50 + (int)pppppppcVar14;\n                            if (*param_5 == (code ******)0x0) {\n                              local_d0 = (code *******)*pppppppcVar30;\n                              local_cc = (code *******)pppppppcVar30[1];\n                              local_c8 = (code *******)pppppppcVar30[2];\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *param_5 = ppppppcVar39;\n                            }\n                            else {\n                              pppppppcVar29 = (code *******)(*param_5)[10];\n                              local_d4 = (code *******)FUN_000484bc(&local_d0);\n                              pppppppcVar15 = local_d4;\n                              if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar15 = local_50 + (int)pppppppcVar14;\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *pppppppcVar15 = ppppppcVar39;\n                              (*(code *)PTR_free_00079c24)(local_c8);\n                            }\n                            unaff_s4 = local_50 + (int)pppppppcVar14;\n                            if ((*unaff_s4 == (code ******)0x0) &&\n                               (pppppppcVar15 = local_d4, local_d4 != (code *******)0x0))\n                            goto LAB_00055e44;\n                          }\n                        }\nLAB_000550a4:\n                        param_6 = (code *******)((int)param_6 + 1);\n                      } while ((int)param_6 < (int)unaff_s7[2]);\n                    }\n                    local_d8 = (code *******)0x0;\n                  }\n                  uVar7 = (uint)(byte)*(code *)((int)local_8c + (int)local_b0);\n                  local_8c = (code *******)((int)local_8c + 1);\n                  do {\n                    if (unaff_s7[0xb] != (code ******)0x0) {\n                      pppppppcVar30 = (code *******)unaff_s7[0xb][uVar7];\nLAB_000553a0:\n                      pppppppcVar14 = pppppppcVar30;\n                      if (local_50 != (code *******)0x0) goto LAB_000553ac;\n                      goto LAB_000553cc;\n                    }\n                    pppppppcVar31 = (code *******)unaff_s7[0xc];\n                    if (pppppppcVar31 != (code *******)0x0) {\n                      pppppppcVar29 = (code *******)((int)local_8c + -1);\n                      uVar19 = FUN_00049110(&local_b4);\n                      if ((uVar19 & 1) == 0) {\n                        pppppppcVar30 = (code *******)pppppppcVar31[uVar7];\n                      }\n                      else {\n                        pppppppcVar31 = pppppppcVar31 + uVar7 + 0x100;\n                        pppppppcVar30 = (code *******)*pppppppcVar31;\n                      }\n                      goto LAB_000553a0;\n                    }\n                    pppppppcVar29 = unaff_s7;\n                    pppppppcVar30 = local_5c;\n                    iVar18 = (*pcVar9)(local_60);\n                  } while (iVar18 != 0);\n                  local_d8 = (code *******)0xc;\n                  pppppppcVar15 = local_d8;\nLAB_00055e44:\n                  local_d8 = pppppppcVar15;\n                  param_4 = (code *******)0x0;\n                  if (local_50 == (code *******)0x0) {\n                    pppppppcVar14 = param_4;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    break;\n                  }\n                  pppppppcVar30 = (code *******)0x0;\nLAB_000553ac:\n                  pppppppcVar29 = &local_b4;\n                  pppppppcVar14 = (code *******)FUN_00053684(&local_d8);\nLAB_000553cc:\n                  param_4 = pppppppcVar14;\n                  if (pppppppcVar14 == (code *******)0x0) {\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    if ((local_50 == (code *******)0x0) ||\n                       ((pppppppcVar28 != (code *******)0x0 && (pppppppcVar34 == (code *******)0x0))\n                       )) break;\n                    param_6 = &local_b4;\n                    param_5 = (code *******)&local_d8;\n                    pppppppcVar31 = (code *******)(PTR_DAT_000799a4 + 0x3684);\n                    do {\n                      pppppppcVar15 = local_50 + (int)local_8c;\n                      pppppppcVar42 = local_8c;\n                      do {\n                        pppppppcVar42 = (code *******)((int)pppppppcVar42 + 1);\n                        pppppppcVar29 = local_4c;\n                        param_4 = pppppppcVar14;\n                        if ((int)local_4c < (int)pppppppcVar42) goto LAB_00055da8;\n                        local_8c = (code *******)((int)local_8c + 1);\n                        pppppppcVar15 = pppppppcVar15 + 1;\n                      } while (*pppppppcVar15 == (code ******)0x0);\n                      pppppppcVar30 = (code *******)0x0;\n                      pppppppcVar29 = param_6;\n                      param_4 = (code *******)(*(code *)pppppppcVar31)(param_5);\n                      if (local_d8 != (code *******)0x0) {\n                        if (param_4 == (code *******)0x0) goto LAB_00055da8;\n                        break;\n                      }\n                      pppppppcVar29 = local_4c;\n                    } while (param_4 == (code *******)0x0);\n                  }\n                  pppppppcVar15 = (code *******)((uint)unaff_s7 ^ (uint)param_4);\n                  pppppppcVar42 = unaff_s7;\n                  pppppppcVar14 = local_138;\n                  if ((bVar1) &&\n                     (pppppppcVar42 = pppppppcVar15, pppppppcVar14 = unaff_s5,\n                     pppppppcVar15 != (code *******)0x0)) {\n                    bVar1 = false;\n                    pppppppcVar14 = local_138;\n                  }\n                  local_138 = pppppppcVar14;\n                  unaff_s7 = param_4;\n                  if ((((uint)param_4[0xd] & 0x8000000) != 0) &&\n                     ((((uint)param_4[0xd] & 0x1000000) == 0 ||\n                      (pppppppcVar29 = param_4, pppppppcVar30 = local_8c,\n                      iVar18 = FUN_00049440(&local_b4), iVar18 != 0)))) {\n                    unaff_s7 = pppppppcVar42;\n                    unaff_s8 = local_8c;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                    local_144 = (code *******)0x0;\n                    unaff_s7 = param_4;\n                  }\n                }\nLAB_00055da8:\n                if (local_144 != (code *******)0x0) {\n                  *local_144 = (code ******)((int)local_138 + (int)*local_144);\n                }\n              }\n              else {\n                param_4 = unaff_s7 + 1;\n                pppppppcVar30 = (code *******)0x0;\n                pppppppcVar29 = param_4;\n                local_d8 = (code *******)FUN_00047a44(&local_b4);\n                unaff_s8 = local_d8;\n                if (local_d8 == (code *******)0x0) {\n                  if (((uint)unaff_s7[0xd] & 0x2000000) == 0) {\n                    pppppppcVar29 = param_4;\n                    bVar1 = false;\n                  }\n                  else {\n                    pppppppcVar29 = param_4;\n                    local_d8 = (code *******)FUN_00052d84(&local_b4);\n                    unaff_s8 = local_d8;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055dbc;\n                    bVar1 = false;\n                  }\n                  goto LAB_00054d50;\n                }\n              }\nLAB_00055dbc:\n              if (unaff_s8 == (code *******)0xffffffff) {\nLAB_00055b04:\n                FUN_0004b7e8(&local_b4);\nLAB_00055b1c:\n                local_dc = (code *******)((int)pppppppcVar24 + (int)local_dc);\n                if ((int)pppppppcVar25 <= (int)local_dc) goto code_r0x00055b38;\n                local_150 = (code *******)0x1;\n                goto LAB_000557e4;\n              }\n              if (unaff_s8 == (code *******)&SUB_fffffffe) {\n                local_150 = (code *******)0xc;\n                goto LAB_000557e4;\n              }\n              local_58 = unaff_s8;\n              if (((uint)param_1[7] & 0x8000000) == 0) {\n                if (pppppppcVar3 < (code *******)0x2) {\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055c08;\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                else {\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                if (pppppppcVar3 < (code *******)0x2) {\nLAB_00055c6c:\n                  pppppppcVar28 = pppppppcVar33;\n                  unaff_s4 = local_60;\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055548;\n                }\n                else {\n                  cVar23 = *(code *)(pppppppcVar38 + 0x16);\nLAB_00055c20:\n                  pppppppcVar28 = pppppppcVar33;\n                  if (-1 < (char)cVar23) goto LAB_00055c6c;\n                }\n                pppppppcVar31 = local_54;\n                pppppppcVar42 = local_60;\n                unaff_s4 = pppppppcVar42;\n                if (unaff_s8 < (code *******)0x3fffffff) {\n                  param_4 = (code *******)((int)((int)unaff_s8 + 1) * 4);\n                  unaff_s5 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                  if (unaff_s5 == (code *******)0x0) {\nLAB_00055b9c:\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    local_150 = (code *******)0xc;\n                    pppppppcVar33 = pppppppcVar28;\n                  }\n                  else {\n                    pppppppcVar29 = (code *******)&local_d0;\n                    if (pppppppcVar42[0x13] == (code ******)0x0) {\n                      local_cc = (code *******)0x0;\n                      local_c8 = pppppppcVar31;\n                      local_c0 = 0;\n                      local_bc = 0;\n                      local_b8 = 0;\n                      local_d0 = unaff_s5;\n                      local_c4 = unaff_s8;\n                      param_5 = (code *******)FUN_0005421c(&local_b4);\n                      (*(code *)PTR_free_00079c24)(local_b8);\n                      if (param_5 == (code *******)0x0) {\n                        param_4 = (code *******)*unaff_s5;\n                        if (param_4 == (code *******)0x0) {\nLAB_00055b70:\n                          (*(code *)PTR_free_00079c24)(unaff_s5);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          pppppppcVar33 = pppppppcVar28;\n                          goto LAB_00055b04;\n                        }\nLAB_00055528:\n                        (*(code *)PTR_free_00079c24)(local_50);\n                        pppppppcVar33 = pppppppcVar28;\n                        unaff_s4 = pppppppcVar42;\n                        local_58 = unaff_s8;\n                        local_54 = pppppppcVar31;\n                        local_50 = unaff_s5;\n                        goto LAB_00055548;\n                      }\nLAB_00055acc:\n                      param_4 = (code *******)0x0;\n                      pppppppcVar33 = pppppppcVar28;\n                      unaff_s4 = pppppppcVar42;\n                    }\n                    else {\n                      param_4 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                      if (param_4 == (code *******)0x0) goto LAB_00055b9c;\n                      unaff_s7 = (code *******)&local_d0;\n                      pcVar8 = (code *)(PTR_DAT_000799a4 + 0x421c);\n                      pcVar9 = (code *)(PTR_DAT_000799a4 + -0x6bc0);\n                      pppppppcVar33 = pppppppcVar28;\n                      while( true ) {\n                        pppppppcVar28 = (code *******)((int)unaff_s8 + 1);\n                        param_6 = (code *******)((int)pppppppcVar28 * 4);\n                        pppppppcVar30 = param_6;\n                        (*(code *)PTR_memset_00079b00)(param_4,0);\n                        local_c0 = 0;\n                        local_bc = 0;\n                        local_b8 = 0;\n                        pppppppcVar29 = unaff_s7;\n                        local_d0 = unaff_s5;\n                        local_cc = param_4;\n                        local_c8 = pppppppcVar31;\n                        local_c4 = unaff_s8;\n                        param_5 = (code *******)(*pcVar8)(&local_b4);\n                        (*(code *)PTR_free_00079c24)(local_b8);\n                        unaff_s4 = pppppppcVar28;\n                        if (param_5 != (code *******)0x0) break;\n                        if ((*unaff_s5 != (code ******)0x0) ||\n                           (param_6 = param_6 + -1, *param_4 != (code ******)0x0)) {\n                          pppppppcVar29 = unaff_s5;\n                          pppppppcVar30 = param_4;\n                          param_5 = (code *******)FUN_000520d0(pppppppcVar42);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          if (param_5 != (code *******)0x0) goto LAB_00055acc;\n                          goto LAB_00055528;\n                        }\n                        param_6 = (code *******)((int)local_50 + (int)param_6);\n                        do {\n                          while( true ) {\n                            unaff_s8 = (code *******)((int)unaff_s8 + -1);\n                            if ((int)unaff_s8 < 0) goto LAB_00055b70;\n                            pppppppcVar29 = (code *******)param_6[-1];\n                            if (pppppppcVar29 != (code *******)0x0) break;\n                            param_6 = param_6 + -1;\n                          }\n                          param_6 = param_6 + -1;\n                        } while (((uint)pppppppcVar29[0xd] & 0x8000000) == 0);\n                        pppppppcVar31 = (code *******)(*pcVar9)(&local_b4,pppppppcVar29,unaff_s8);\n                        pppppppcVar33 = pppppppcVar28;\n                      }\n                    }\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    (*(code *)PTR_free_00079c24)(param_4);\n                    local_150 = param_5;\n                    if (param_5 == (code *******)0x1) goto LAB_00055b04;\n                  }\n                }\n                else {\n                  local_150 = (code *******)0xc;\n                  pppppppcVar33 = pppppppcVar28;\n                }\n                goto LAB_000557e4;\n              }\n              if (pppppppcVar38[0x13] != (code ******)0x0) {\n                pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                pppppppcVar30 = unaff_s8;\n                local_54 = (code *******)FUN_00049440(&local_b4);\n                goto LAB_00055c6c;\n              }\nLAB_00055c08:\n              if ((((uint)param_1[7] & 0x8000000) == 0) && ((code *******)0x1 < pppppppcVar3)) {\n                cVar23 = *(code *)(pppppppcVar38 + 0x16);\n                goto LAB_00055c20;\n              }\nLAB_00055548:\n              if (pppppppcVar3 == (code *******)0x0) goto LAB_000557e4;\n              if (pppppppcVar3 < (code *******)0x2) {\n                *param_8 = (code ******)0x0;\n                param_8[1] = (code ******)local_58;\n                goto LAB_000555ac;\n              }\n              pppppppcVar29 = param_8 + 2;\n              do {\n                pppppppcVar29[1] = (code ******)0xffffffff;\n                *pppppppcVar29 = (code ******)0xffffffff;\n                pppppppcVar29 = pppppppcVar29 + 2;\n              } while (pppppppcVar29 != param_8 + (int)pppppppcVar3 * 2);\n              *param_8 = (code ******)0x0;\n              param_8[1] = (code ******)local_58;\n              if (((uint)param_1[7] & 0x8000000) != 0) {\nLAB_000555ac:\n                pppppppcVar33 = param_8;\n                do {\n                  pppppppcVar29 = (code *******)*pppppppcVar33;\n                  if (pppppppcVar29 != (code *******)0xffffffff) {\n                    if (local_68 != '\0') {\n                      pppppppcVar34 = local_94;\n                      if (pppppppcVar29 != local_98) {\n                        pppppppcVar34 = *(code ********)(local_a8 + (int)pppppppcVar29 * 4);\n                      }\n                      *pppppppcVar33 = (code ******)pppppppcVar34;\n                      pppppppcVar29 = local_94;\n                      if (local_98 != (code *******)pppppppcVar33[1]) {\n                        pppppppcVar29 = *(code ********)(local_a8 + (int)pppppppcVar33[1] * 4);\n                      }\n                      pppppppcVar33[1] = (code ******)pppppppcVar29;\n                    }\n                    *pppppppcVar33 = (code ******)((int)local_dc + (int)*pppppppcVar33);\n                    pppppppcVar29 = (code *******)((int)local_dc + (int)pppppppcVar33[1]);\n                    pppppppcVar33[1] = (code ******)pppppppcVar29;\n                  }\n                  pppppppcVar33 = pppppppcVar33 + 2;\n                } while (pppppppcVar33 != param_8 + (int)pppppppcVar3 * 2);\n                if (0 < local_118) {\n                  pppppppcVar33 = param_8 + (int)pppppppcVar3 * 2;\n                  do {\n                    *pppppppcVar33 = (code ******)0xffffffff;\n                    pppppppcVar33[1] = (code ******)0xffffffff;\n                    pppppppcVar33 = pppppppcVar33 + 2;\n                  } while (pppppppcVar33 != param_8 + (int)param_7 * 2);\n                }\n                pppppppcVar30 = local_dc;\n                pppppppcVar33 = param_8;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar38[0x21] != (code ******)0x0) {\n                  pppppppcVar30 = (code *******)((int)pppppppcVar3 + -1);\n                  pppppppcVar34 = (code *******)0x0;\n                  pppppppcVar3 = param_8;\n                  while( true ) {\n                    pppppppcVar29 = (code *******)((int)pppppppcVar34 * 4);\n                    if (pppppppcVar30 == pppppppcVar34) break;\n                    if (*(code ********)((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) !=\n                        pppppppcVar34) {\n                      pppppppcVar3[2] =\n                           param_8[(int)((int)*(code ********)\n                                               ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1)\n                                   * 2];\n                      pppppppcVar3[3] =\n                           param_8[((int)*(code ******)\n                                          ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1) * 2 +\n                                   1];\n                    }\n                    pppppppcVar34 = (code *******)((int)pppppppcVar34 + 1);\n                    pppppppcVar3 = pppppppcVar3 + 2;\n                  }\n                }\n                goto LAB_000557e4;\n              }\n              if ((char)*(code *)(pppppppcVar38 + 0x16) < '\0') {\n                local_168 = (uint)(0 < (int)pppppppcVar38[0x13]);\n              }\n              else {\n                local_168 = 0;\n              }\n              pppppppcVar29 = &local_b4;\n              pppppppcVar30 = pppppppcVar3;\n              pppppppcVar33 = param_8;\n              local_150 = (code *******)FUN_0004f4a0(param_1);\n              if (local_150 == (code *******)0x0) goto LAB_000555ac;\n            }" (if "if") (parenthesized_expression "((int)pppppppcVar26 < (int)param_4)" (( "(") (binary_expression "(int)pppppppcVar26 < (int)param_4" (cast_expression "(int)pppppppcVar26" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppcVar26")) (< "<") (cast_expression "(int)param_4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_4"))) () ")")) (compound_statement "{\n              local_150 = (code *******)0x1;\n              param_4 = (code *******)(uint)((int)param_5 < (int)param_4);\n              param_6 = pppppppcVar36;\n            }" ({ "{") (expression_statement "local_150 = (code *******)0x1;" (assignment_expression "local_150 = (code *******)0x1" (identifier "local_150") (= "=") (cast_expression "(code *******)0x1" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x1"))) (; ";")) (expression_statement "param_4 = (code *******)(uint)((int)param_5 < (int)param_4);" (assignment_expression "param_4 = (code *******)(uint)((int)param_5 < (int)param_4)" (identifier "param_4") (= "=") (cast_expression "(code *******)(uint)((int)param_5 < (int)param_4)" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (call_expression "(uint)((int)param_5 < (int)param_4)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int)param_5 < (int)param_4)" (( "(") (binary_expression "(int)param_5 < (int)param_4" (cast_expression "(int)param_5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_5")) (< "<") (cast_expression "(int)param_4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_4"))) () ")"))))) (; ";")) (expression_statement "param_6 = pppppppcVar36;" (assignment_expression "param_6 = pppppppcVar36" (identifier "param_6") (= "=") (identifier "pppppppcVar36")) (; ";")) (} "}")) (else_clause "else {\n              pppppppcVar36 = (code *******)&local_dc;\n              if ((code *******)(uint)((int)param_5 < (int)param_4) != (code *******)0x0) {\n                pppppppcVar36 = (code *******)0x0;\n              }\n              pcVar4 = (code *)(PTR_DAT_000799a4 + -0x2b7c);\n              piVar5 = (int *)(PTR_s_nt0_000795b8 + (uVar16 - 4) * 4 + 0x6e38);\nLAB_00055b44:\n              if (uVar16 - 4 < 5) {\n                    \n                    \n                pppppppcVar29 = (code *******)(*(code *)(&_gp_1 + *piVar5))();\n                return pppppppcVar29;\n              }\n              param_5 = &local_b4;\n              pppppppcVar28 = pppppppcVar33;\n              while( true ) {\n                param_4 = local_dc;\n                pppppppcVar33 = (code *******)((int)local_dc - local_9c);\n                pppppppcVar30 = param_9;\n                pppppppcVar31 = pppppppcVar2;\n                param_6 = local_148;\n                unaff_s4 = param_3;\n                unaff_s5 = pppppppcVar24;\n                unaff_s7 = pppppppcVar26;\n                if (local_94 <= pppppppcVar33) {\n                  pppppppcVar29 = local_dc;\n                  local_150 = (code *******)(*pcVar4)(param_5);\n                  pppppppcVar33 = pppppppcVar28;\n                  if (local_150 != (code *******)0x0) goto LAB_000557e4;\n                  pppppppcVar33 = (code *******)((int)param_4 - local_9c);\n                }\n                if ((int)param_4 < (int)param_3) {\n                  uVar7 = (uint)(byte)*(code *)((int)pppppppcVar33 + (int)local_b0);\n                }\n                else {\n                  uVar7 = 0;\n                }\n                param_4 = (code *******)((int)param_4 + (int)pppppppcVar24);\n                if (*(code *)((int)local_148 + uVar7) != (code)0x0) break;\n                pppppppcVar33 = pppppppcVar28;\n                local_dc = param_4;\n                if ((int)param_4 < (int)pppppppcVar25) {\n                  local_150 = (code *******)0x1;\n                  goto LAB_000557e4;\n                }\n                if ((code *******)(uint)((int)pppppppcVar26 < (int)param_4) != (code *******)0x0) {\n                  local_150 = (code *******)0x1;\n                  param_4 = (code *******)(uint)((int)pppppppcVar26 < (int)param_4);\n                  goto LAB_000557e4;\n                }\n              }\n              while( true ) {\n                pppppppcVar29 = local_dc;\n                pppppppcVar30 = param_9;\n                pppppppcVar6 = (code *******)(*pcVar4)(&local_b4);\n                pppppppcVar14 = local_60;\n                pppppppcVar42 = local_8c;\n                pppppppcVar33 = pppppppcVar28;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar6 != (code *******)0x0) goto LAB_000557e4;\n                if (((ppppppcVar35 != (code ******)0x1) && (local_98 != (code *******)0x0)) &&\n                   (*local_ac == -1)) goto LAB_00055b1c;\n                local_3c = 0;\n                local_48 = 0;\n                local_4c = (code *******)0x0;\n                local_138 = local_8c;\n                local_d8 = (code *******)0x0;\n                unaff_s7 = (code *******)local_60[9];\n                pppppppcVar30 = local_5c;\n                param_4 = pppppppcVar14;\n                if (((uint)unaff_s7[0xd] & 0x1000000) == 0) break;\n                pppppppcVar29 = (code *******)((int)local_8c + -1);\n                pppppppcVar33 = (code *******)FUN_00049110(&local_b4);\n                if (((uint)pppppppcVar33 & 1) == 0) {\n                  if (pppppppcVar33 == (code *******)0x0) break;\n                  if (((uint)pppppppcVar33 & 6) == 6) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xc];\n                    goto LAB_00054d1c;\n                  }\n                  if (((uint)pppppppcVar33 & 2) != 0) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xb];\n                    goto LAB_00054d1c;\n                  }\n                  pppppppcVar28 = pppppppcVar33;\n                  if (((uint)pppppppcVar33 & 4) == 0) break;\n                  pppppppcVar30 = (code *******)unaff_s7[10];\n                  pppppppcVar29 = pppppppcVar14;\n                  unaff_s7 = (code *******)FUN_0004ae34(&local_d8);\n                  pppppppcVar28 = pppppppcVar33;\n                  if (unaff_s7 != (code *******)0x0) break;\n                  if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                }\n                else {\n                  unaff_s7 = (code *******)pppppppcVar14[10];\nLAB_00054d1c:\n                  pppppppcVar28 = (code *******)PTR_s_nt0_000795b8;\n                  if (unaff_s7 != (code *******)0x0) break;\n                }\n                pppppppcVar28 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                local_dc = (code *******)\n                           (*(code *)PTR___assert_fail_000799f8)\n                                     (PTR_s_nt0_000795b8 + 0x71a0,pppppppcVar29,0x435);\n                if (local_dc == pppppppcVar26) {\n                  if ((int)local_dc < (int)param_3) {\n                    uVar7 = (uint)(byte)*(code *)((int)local_dc + (int)param_2);\n                  }\n                  else {\n                    uVar7 = 0;\n                  }\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    uVar7 = (uint)*(byte *)((int)ppppppcVar32 + uVar7);\n                  }\n                  if (*(code *)((int)local_148 + uVar7) == (code)0x0) {\n                    local_150 = (code *******)0x1;\n                    pppppppcVar30 = param_9;\n                    pppppppcVar33 = pppppppcVar28;\n                    goto LAB_000557e4;\n                  }\n                }\n              }\n              pppppppcVar33 = pppppppcVar28;\n              bVar1 = pppppppcVar36 != (code *******)0x0;\n              if ((local_50 == (code *******)0x0) ||\n                 (local_50[(int)pppppppcVar42] = (code ******)unaff_s7,\n                 pppppppcVar14[0x13] == (code ******)0x0)) {\nLAB_00054d50:\n                if ((int)unaff_s7[0xd] << 4 < 0) {\n                  if ((((uint)unaff_s7[0xd] & 0x1000000) == 0) ||\n                     (pppppppcVar29 = unaff_s7, pppppppcVar30 = pppppppcVar42,\n                     iVar18 = FUN_00049440(&local_b4), iVar18 != 0)) {\n                    unaff_s8 = pppppppcVar42;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                  }\n                  else {\n                    pppppppcVar42 = (code *******)0xffffffff;\n                    pppppppcVar28 = (code *******)0x0;\n                  }\n                }\n                else {\n                  pppppppcVar42 = (code *******)0xffffffff;\n                  pppppppcVar28 = (code *******)0x0;\n                }\n                pcVar8 = (code *)(PTR_DAT_000799a4 + -0x7144);\n                pcVar9 = (code *)(PTR_DAT_000799a4 + -0x1980);\n                pcVar10 = (code *)(PTR_DAT_000799a4 + -0x2f9c);\n                unaff_s8 = pppppppcVar42;\n                local_144 = pppppppcVar36;\n                while( true ) {\n                  uVar44 = CONCAT44(local_98,local_84);\n                  unaff_s5 = (code *******)((int)local_8c + 1);\n                  pppppppcVar29 = local_8c;\n                  if ((int)local_7c <= (int)local_8c) break;\n                  if (((int)local_90 <= (int)unaff_s5) && ((int)local_90 < (int)local_84))\n                  goto LAB_00054e94;\n                  if ((int)local_98 <= (int)unaff_s5) {\n                    while ((int)((ulonglong)uVar44 >> 0x20) < (int)uVar44) {\nLAB_00054e94:\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 2);\n                      local_d8 = (code *******)(*pcVar8)(&local_b4);\n                      if (local_d8 == (code *******)0x0) break;\n                      pppppppcVar14 = param_4;\n                      if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                      pppppppcVar33 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                      pppppppcVar30 = (code *******)0x46c;\n                      pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                      uVar44 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0);\n                      pppppppcVar28 = pppppppcVar38;\n                    }\n                  }\n                  pppppppcVar42 = local_60;\n                  if ((int)unaff_s7[0xd] << 5 < 0) {\n                    pppppppcVar31 = pppppppcVar42;\n                    if (0 < (int)unaff_s7[2]) {\n                      pcVar11 = (code *)(PTR_DAT_000799a4 + -0x6fdc);\n                      pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6ef0);\n                      param_6 = (code *******)0x0;\n                      do {\n                        param_5 = (code *******)unaff_s7[3][(int)param_6];\n                        ppppppcVar39 = *pppppppcVar42;\n                        pppppcVar13 = ppppppcVar39[(int)param_5 * 2 + 1];\n                        if (((uint)pppppcVar13 & 0x800) != 0) {\n                          if (((uint)pppppcVar13 & 0xffc000) != 0) {\n                            pppppppcVar29 = local_8c;\n                            uVar19 = (*pcVar12)(&local_b4,local_8c,local_5c);\n                            uVar7 = (uint)((int)ppppppcVar39[(int)param_5 * 2 + 1] << 8) >> 0x16;\n                            if ((uVar7 & 4) == 0) {\n                              uVar27 = uVar19 & 1;\n                              if ((uVar7 & 8) != 0) goto joined_r0x00054f40;\n                            }\n                            else {\n                              uVar27 = uVar7 & 8;\n                              if ((uVar19 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                              if (uVar27 != 0) goto LAB_000550a4;\n                            }\n                            if ((((uVar7 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                               (((uVar7 & 0x80) != 0 &&\n                                (pppppppcVar33 = local_8c, (uVar19 & 8) == 0)))) goto LAB_000550a4;\n                          }\n                          pppppppcVar30 = &local_b4;\n                          pppppppcVar29 = param_5;\n                          pppppppcVar33 = local_8c;\n                          iVar18 = (*pcVar10)(pppppppcVar42);\n                          if (iVar18 != 0) {\n                            pppppppcVar14 = (code *******)((int)local_8c + iVar18);\n                            if (iVar18 <= local_3c) {\n                              iVar18 = local_3c;\n                            }\n                            pppppppcVar29 = pppppppcVar14;\n                            local_3c = iVar18;\n                            local_d4 = (code *******)(*pcVar11)(&local_b4);\n                            pppppppcVar15 = local_d4;\n                            if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                            pppppppcVar30 =\n                                 (code *******)\n                                 (pppppppcVar42[6] + (int)pppppppcVar42[3][(int)param_5] * 3);\n                            unaff_s4 = (code *******)((int)pppppppcVar14 * 4);\n                            param_5 = local_50 + (int)pppppppcVar14;\n                            if (*param_5 == (code ******)0x0) {\n                              local_d0 = (code *******)*pppppppcVar30;\n                              local_cc = (code *******)pppppppcVar30[1];\n                              local_c8 = (code *******)pppppppcVar30[2];\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *param_5 = ppppppcVar39;\n                            }\n                            else {\n                              pppppppcVar29 = (code *******)(*param_5)[10];\n                              local_d4 = (code *******)FUN_000484bc(&local_d0);\n                              pppppppcVar15 = local_d4;\n                              if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar15 = local_50 + (int)pppppppcVar14;\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *pppppppcVar15 = ppppppcVar39;\n                              (*(code *)PTR_free_00079c24)(local_c8);\n                            }\n                            unaff_s4 = local_50 + (int)pppppppcVar14;\n                            if ((*unaff_s4 == (code ******)0x0) &&\n                               (pppppppcVar15 = local_d4, local_d4 != (code *******)0x0))\n                            goto LAB_00055e44;\n                          }\n                        }\nLAB_000550a4:\n                        param_6 = (code *******)((int)param_6 + 1);\n                      } while ((int)param_6 < (int)unaff_s7[2]);\n                    }\n                    local_d8 = (code *******)0x0;\n                  }\n                  uVar7 = (uint)(byte)*(code *)((int)local_8c + (int)local_b0);\n                  local_8c = (code *******)((int)local_8c + 1);\n                  do {\n                    if (unaff_s7[0xb] != (code ******)0x0) {\n                      pppppppcVar30 = (code *******)unaff_s7[0xb][uVar7];\nLAB_000553a0:\n                      pppppppcVar14 = pppppppcVar30;\n                      if (local_50 != (code *******)0x0) goto LAB_000553ac;\n                      goto LAB_000553cc;\n                    }\n                    pppppppcVar31 = (code *******)unaff_s7[0xc];\n                    if (pppppppcVar31 != (code *******)0x0) {\n                      pppppppcVar29 = (code *******)((int)local_8c + -1);\n                      uVar19 = FUN_00049110(&local_b4);\n                      if ((uVar19 & 1) == 0) {\n                        pppppppcVar30 = (code *******)pppppppcVar31[uVar7];\n                      }\n                      else {\n                        pppppppcVar31 = pppppppcVar31 + uVar7 + 0x100;\n                        pppppppcVar30 = (code *******)*pppppppcVar31;\n                      }\n                      goto LAB_000553a0;\n                    }\n                    pppppppcVar29 = unaff_s7;\n                    pppppppcVar30 = local_5c;\n                    iVar18 = (*pcVar9)(local_60);\n                  } while (iVar18 != 0);\n                  local_d8 = (code *******)0xc;\n                  pppppppcVar15 = local_d8;\nLAB_00055e44:\n                  local_d8 = pppppppcVar15;\n                  param_4 = (code *******)0x0;\n                  if (local_50 == (code *******)0x0) {\n                    pppppppcVar14 = param_4;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    break;\n                  }\n                  pppppppcVar30 = (code *******)0x0;\nLAB_000553ac:\n                  pppppppcVar29 = &local_b4;\n                  pppppppcVar14 = (code *******)FUN_00053684(&local_d8);\nLAB_000553cc:\n                  param_4 = pppppppcVar14;\n                  if (pppppppcVar14 == (code *******)0x0) {\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    if ((local_50 == (code *******)0x0) ||\n                       ((pppppppcVar28 != (code *******)0x0 && (pppppppcVar34 == (code *******)0x0))\n                       )) break;\n                    param_6 = &local_b4;\n                    param_5 = (code *******)&local_d8;\n                    pppppppcVar31 = (code *******)(PTR_DAT_000799a4 + 0x3684);\n                    do {\n                      pppppppcVar15 = local_50 + (int)local_8c;\n                      pppppppcVar42 = local_8c;\n                      do {\n                        pppppppcVar42 = (code *******)((int)pppppppcVar42 + 1);\n                        pppppppcVar29 = local_4c;\n                        param_4 = pppppppcVar14;\n                        if ((int)local_4c < (int)pppppppcVar42) goto LAB_00055da8;\n                        local_8c = (code *******)((int)local_8c + 1);\n                        pppppppcVar15 = pppppppcVar15 + 1;\n                      } while (*pppppppcVar15 == (code ******)0x0);\n                      pppppppcVar30 = (code *******)0x0;\n                      pppppppcVar29 = param_6;\n                      param_4 = (code *******)(*(code *)pppppppcVar31)(param_5);\n                      if (local_d8 != (code *******)0x0) {\n                        if (param_4 == (code *******)0x0) goto LAB_00055da8;\n                        break;\n                      }\n                      pppppppcVar29 = local_4c;\n                    } while (param_4 == (code *******)0x0);\n                  }\n                  pppppppcVar15 = (code *******)((uint)unaff_s7 ^ (uint)param_4);\n                  pppppppcVar42 = unaff_s7;\n                  pppppppcVar14 = local_138;\n                  if ((bVar1) &&\n                     (pppppppcVar42 = pppppppcVar15, pppppppcVar14 = unaff_s5,\n                     pppppppcVar15 != (code *******)0x0)) {\n                    bVar1 = false;\n                    pppppppcVar14 = local_138;\n                  }\n                  local_138 = pppppppcVar14;\n                  unaff_s7 = param_4;\n                  if ((((uint)param_4[0xd] & 0x8000000) != 0) &&\n                     ((((uint)param_4[0xd] & 0x1000000) == 0 ||\n                      (pppppppcVar29 = param_4, pppppppcVar30 = local_8c,\n                      iVar18 = FUN_00049440(&local_b4), iVar18 != 0)))) {\n                    unaff_s7 = pppppppcVar42;\n                    unaff_s8 = local_8c;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                    local_144 = (code *******)0x0;\n                    unaff_s7 = param_4;\n                  }\n                }\nLAB_00055da8:\n                if (local_144 != (code *******)0x0) {\n                  *local_144 = (code ******)((int)local_138 + (int)*local_144);\n                }\n              }\n              else {\n                param_4 = unaff_s7 + 1;\n                pppppppcVar30 = (code *******)0x0;\n                pppppppcVar29 = param_4;\n                local_d8 = (code *******)FUN_00047a44(&local_b4);\n                unaff_s8 = local_d8;\n                if (local_d8 == (code *******)0x0) {\n                  if (((uint)unaff_s7[0xd] & 0x2000000) == 0) {\n                    pppppppcVar29 = param_4;\n                    bVar1 = false;\n                  }\n                  else {\n                    pppppppcVar29 = param_4;\n                    local_d8 = (code *******)FUN_00052d84(&local_b4);\n                    unaff_s8 = local_d8;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055dbc;\n                    bVar1 = false;\n                  }\n                  goto LAB_00054d50;\n                }\n              }\nLAB_00055dbc:\n              if (unaff_s8 == (code *******)0xffffffff) {\nLAB_00055b04:\n                FUN_0004b7e8(&local_b4);\nLAB_00055b1c:\n                local_dc = (code *******)((int)pppppppcVar24 + (int)local_dc);\n                if ((int)pppppppcVar25 <= (int)local_dc) goto code_r0x00055b38;\n                local_150 = (code *******)0x1;\n                goto LAB_000557e4;\n              }\n              if (unaff_s8 == (code *******)&SUB_fffffffe) {\n                local_150 = (code *******)0xc;\n                goto LAB_000557e4;\n              }\n              local_58 = unaff_s8;\n              if (((uint)param_1[7] & 0x8000000) == 0) {\n                if (pppppppcVar3 < (code *******)0x2) {\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055c08;\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                else {\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                if (pppppppcVar3 < (code *******)0x2) {\nLAB_00055c6c:\n                  pppppppcVar28 = pppppppcVar33;\n                  unaff_s4 = local_60;\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055548;\n                }\n                else {\n                  cVar23 = *(code *)(pppppppcVar38 + 0x16);\nLAB_00055c20:\n                  pppppppcVar28 = pppppppcVar33;\n                  if (-1 < (char)cVar23) goto LAB_00055c6c;\n                }\n                pppppppcVar31 = local_54;\n                pppppppcVar42 = local_60;\n                unaff_s4 = pppppppcVar42;\n                if (unaff_s8 < (code *******)0x3fffffff) {\n                  param_4 = (code *******)((int)((int)unaff_s8 + 1) * 4);\n                  unaff_s5 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                  if (unaff_s5 == (code *******)0x0) {\nLAB_00055b9c:\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    local_150 = (code *******)0xc;\n                    pppppppcVar33 = pppppppcVar28;\n                  }\n                  else {\n                    pppppppcVar29 = (code *******)&local_d0;\n                    if (pppppppcVar42[0x13] == (code ******)0x0) {\n                      local_cc = (code *******)0x0;\n                      local_c8 = pppppppcVar31;\n                      local_c0 = 0;\n                      local_bc = 0;\n                      local_b8 = 0;\n                      local_d0 = unaff_s5;\n                      local_c4 = unaff_s8;\n                      param_5 = (code *******)FUN_0005421c(&local_b4);\n                      (*(code *)PTR_free_00079c24)(local_b8);\n                      if (param_5 == (code *******)0x0) {\n                        param_4 = (code *******)*unaff_s5;\n                        if (param_4 == (code *******)0x0) {\nLAB_00055b70:\n                          (*(code *)PTR_free_00079c24)(unaff_s5);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          pppppppcVar33 = pppppppcVar28;\n                          goto LAB_00055b04;\n                        }\nLAB_00055528:\n                        (*(code *)PTR_free_00079c24)(local_50);\n                        pppppppcVar33 = pppppppcVar28;\n                        unaff_s4 = pppppppcVar42;\n                        local_58 = unaff_s8;\n                        local_54 = pppppppcVar31;\n                        local_50 = unaff_s5;\n                        goto LAB_00055548;\n                      }\nLAB_00055acc:\n                      param_4 = (code *******)0x0;\n                      pppppppcVar33 = pppppppcVar28;\n                      unaff_s4 = pppppppcVar42;\n                    }\n                    else {\n                      param_4 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                      if (param_4 == (code *******)0x0) goto LAB_00055b9c;\n                      unaff_s7 = (code *******)&local_d0;\n                      pcVar8 = (code *)(PTR_DAT_000799a4 + 0x421c);\n                      pcVar9 = (code *)(PTR_DAT_000799a4 + -0x6bc0);\n                      pppppppcVar33 = pppppppcVar28;\n                      while( true ) {\n                        pppppppcVar28 = (code *******)((int)unaff_s8 + 1);\n                        param_6 = (code *******)((int)pppppppcVar28 * 4);\n                        pppppppcVar30 = param_6;\n                        (*(code *)PTR_memset_00079b00)(param_4,0);\n                        local_c0 = 0;\n                        local_bc = 0;\n                        local_b8 = 0;\n                        pppppppcVar29 = unaff_s7;\n                        local_d0 = unaff_s5;\n                        local_cc = param_4;\n                        local_c8 = pppppppcVar31;\n                        local_c4 = unaff_s8;\n                        param_5 = (code *******)(*pcVar8)(&local_b4);\n                        (*(code *)PTR_free_00079c24)(local_b8);\n                        unaff_s4 = pppppppcVar28;\n                        if (param_5 != (code *******)0x0) break;\n                        if ((*unaff_s5 != (code ******)0x0) ||\n                           (param_6 = param_6 + -1, *param_4 != (code ******)0x0)) {\n                          pppppppcVar29 = unaff_s5;\n                          pppppppcVar30 = param_4;\n                          param_5 = (code *******)FUN_000520d0(pppppppcVar42);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          if (param_5 != (code *******)0x0) goto LAB_00055acc;\n                          goto LAB_00055528;\n                        }\n                        param_6 = (code *******)((int)local_50 + (int)param_6);\n                        do {\n                          while( true ) {\n                            unaff_s8 = (code *******)((int)unaff_s8 + -1);\n                            if ((int)unaff_s8 < 0) goto LAB_00055b70;\n                            pppppppcVar29 = (code *******)param_6[-1];\n                            if (pppppppcVar29 != (code *******)0x0) break;\n                            param_6 = param_6 + -1;\n                          }\n                          param_6 = param_6 + -1;\n                        } while (((uint)pppppppcVar29[0xd] & 0x8000000) == 0);\n                        pppppppcVar31 = (code *******)(*pcVar9)(&local_b4,pppppppcVar29,unaff_s8);\n                        pppppppcVar33 = pppppppcVar28;\n                      }\n                    }\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    (*(code *)PTR_free_00079c24)(param_4);\n                    local_150 = param_5;\n                    if (param_5 == (code *******)0x1) goto LAB_00055b04;\n                  }\n                }\n                else {\n                  local_150 = (code *******)0xc;\n                  pppppppcVar33 = pppppppcVar28;\n                }\n                goto LAB_000557e4;\n              }\n              if (pppppppcVar38[0x13] != (code ******)0x0) {\n                pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                pppppppcVar30 = unaff_s8;\n                local_54 = (code *******)FUN_00049440(&local_b4);\n                goto LAB_00055c6c;\n              }\nLAB_00055c08:\n              if ((((uint)param_1[7] & 0x8000000) == 0) && ((code *******)0x1 < pppppppcVar3)) {\n                cVar23 = *(code *)(pppppppcVar38 + 0x16);\n                goto LAB_00055c20;\n              }\nLAB_00055548:\n              if (pppppppcVar3 == (code *******)0x0) goto LAB_000557e4;\n              if (pppppppcVar3 < (code *******)0x2) {\n                *param_8 = (code ******)0x0;\n                param_8[1] = (code ******)local_58;\n                goto LAB_000555ac;\n              }\n              pppppppcVar29 = param_8 + 2;\n              do {\n                pppppppcVar29[1] = (code ******)0xffffffff;\n                *pppppppcVar29 = (code ******)0xffffffff;\n                pppppppcVar29 = pppppppcVar29 + 2;\n              } while (pppppppcVar29 != param_8 + (int)pppppppcVar3 * 2);\n              *param_8 = (code ******)0x0;\n              param_8[1] = (code ******)local_58;\n              if (((uint)param_1[7] & 0x8000000) != 0) {\nLAB_000555ac:\n                pppppppcVar33 = param_8;\n                do {\n                  pppppppcVar29 = (code *******)*pppppppcVar33;\n                  if (pppppppcVar29 != (code *******)0xffffffff) {\n                    if (local_68 != '\0') {\n                      pppppppcVar34 = local_94;\n                      if (pppppppcVar29 != local_98) {\n                        pppppppcVar34 = *(code ********)(local_a8 + (int)pppppppcVar29 * 4);\n                      }\n                      *pppppppcVar33 = (code ******)pppppppcVar34;\n                      pppppppcVar29 = local_94;\n                      if (local_98 != (code *******)pppppppcVar33[1]) {\n                        pppppppcVar29 = *(code ********)(local_a8 + (int)pppppppcVar33[1] * 4);\n                      }\n                      pppppppcVar33[1] = (code ******)pppppppcVar29;\n                    }\n                    *pppppppcVar33 = (code ******)((int)local_dc + (int)*pppppppcVar33);\n                    pppppppcVar29 = (code *******)((int)local_dc + (int)pppppppcVar33[1]);\n                    pppppppcVar33[1] = (code ******)pppppppcVar29;\n                  }\n                  pppppppcVar33 = pppppppcVar33 + 2;\n                } while (pppppppcVar33 != param_8 + (int)pppppppcVar3 * 2);\n                if (0 < local_118) {\n                  pppppppcVar33 = param_8 + (int)pppppppcVar3 * 2;\n                  do {\n                    *pppppppcVar33 = (code ******)0xffffffff;\n                    pppppppcVar33[1] = (code ******)0xffffffff;\n                    pppppppcVar33 = pppppppcVar33 + 2;\n                  } while (pppppppcVar33 != param_8 + (int)param_7 * 2);\n                }\n                pppppppcVar30 = local_dc;\n                pppppppcVar33 = param_8;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar38[0x21] != (code ******)0x0) {\n                  pppppppcVar30 = (code *******)((int)pppppppcVar3 + -1);\n                  pppppppcVar34 = (code *******)0x0;\n                  pppppppcVar3 = param_8;\n                  while( true ) {\n                    pppppppcVar29 = (code *******)((int)pppppppcVar34 * 4);\n                    if (pppppppcVar30 == pppppppcVar34) break;\n                    if (*(code ********)((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) !=\n                        pppppppcVar34) {\n                      pppppppcVar3[2] =\n                           param_8[(int)((int)*(code ********)\n                                               ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1)\n                                   * 2];\n                      pppppppcVar3[3] =\n                           param_8[((int)*(code ******)\n                                          ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1) * 2 +\n                                   1];\n                    }\n                    pppppppcVar34 = (code *******)((int)pppppppcVar34 + 1);\n                    pppppppcVar3 = pppppppcVar3 + 2;\n                  }\n                }\n                goto LAB_000557e4;\n              }\n              if ((char)*(code *)(pppppppcVar38 + 0x16) < '\0') {\n                local_168 = (uint)(0 < (int)pppppppcVar38[0x13]);\n              }\n              else {\n                local_168 = 0;\n              }\n              pppppppcVar29 = &local_b4;\n              pppppppcVar30 = pppppppcVar3;\n              pppppppcVar33 = param_8;\n              local_150 = (code *******)FUN_0004f4a0(param_1);\n              if (local_150 == (code *******)0x0) goto LAB_000555ac;\n            }" (else "else") (compound_statement "{\n              pppppppcVar36 = (code *******)&local_dc;\n              if ((code *******)(uint)((int)param_5 < (int)param_4) != (code *******)0x0) {\n                pppppppcVar36 = (code *******)0x0;\n              }\n              pcVar4 = (code *)(PTR_DAT_000799a4 + -0x2b7c);\n              piVar5 = (int *)(PTR_s_nt0_000795b8 + (uVar16 - 4) * 4 + 0x6e38);\nLAB_00055b44:\n              if (uVar16 - 4 < 5) {\n                    \n                    \n                pppppppcVar29 = (code *******)(*(code *)(&_gp_1 + *piVar5))();\n                return pppppppcVar29;\n              }\n              param_5 = &local_b4;\n              pppppppcVar28 = pppppppcVar33;\n              while( true ) {\n                param_4 = local_dc;\n                pppppppcVar33 = (code *******)((int)local_dc - local_9c);\n                pppppppcVar30 = param_9;\n                pppppppcVar31 = pppppppcVar2;\n                param_6 = local_148;\n                unaff_s4 = param_3;\n                unaff_s5 = pppppppcVar24;\n                unaff_s7 = pppppppcVar26;\n                if (local_94 <= pppppppcVar33) {\n                  pppppppcVar29 = local_dc;\n                  local_150 = (code *******)(*pcVar4)(param_5);\n                  pppppppcVar33 = pppppppcVar28;\n                  if (local_150 != (code *******)0x0) goto LAB_000557e4;\n                  pppppppcVar33 = (code *******)((int)param_4 - local_9c);\n                }\n                if ((int)param_4 < (int)param_3) {\n                  uVar7 = (uint)(byte)*(code *)((int)pppppppcVar33 + (int)local_b0);\n                }\n                else {\n                  uVar7 = 0;\n                }\n                param_4 = (code *******)((int)param_4 + (int)pppppppcVar24);\n                if (*(code *)((int)local_148 + uVar7) != (code)0x0) break;\n                pppppppcVar33 = pppppppcVar28;\n                local_dc = param_4;\n                if ((int)param_4 < (int)pppppppcVar25) {\n                  local_150 = (code *******)0x1;\n                  goto LAB_000557e4;\n                }\n                if ((code *******)(uint)((int)pppppppcVar26 < (int)param_4) != (code *******)0x0) {\n                  local_150 = (code *******)0x1;\n                  param_4 = (code *******)(uint)((int)pppppppcVar26 < (int)param_4);\n                  goto LAB_000557e4;\n                }\n              }\n              while( true ) {\n                pppppppcVar29 = local_dc;\n                pppppppcVar30 = param_9;\n                pppppppcVar6 = (code *******)(*pcVar4)(&local_b4);\n                pppppppcVar14 = local_60;\n                pppppppcVar42 = local_8c;\n                pppppppcVar33 = pppppppcVar28;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar6 != (code *******)0x0) goto LAB_000557e4;\n                if (((ppppppcVar35 != (code ******)0x1) && (local_98 != (code *******)0x0)) &&\n                   (*local_ac == -1)) goto LAB_00055b1c;\n                local_3c = 0;\n                local_48 = 0;\n                local_4c = (code *******)0x0;\n                local_138 = local_8c;\n                local_d8 = (code *******)0x0;\n                unaff_s7 = (code *******)local_60[9];\n                pppppppcVar30 = local_5c;\n                param_4 = pppppppcVar14;\n                if (((uint)unaff_s7[0xd] & 0x1000000) == 0) break;\n                pppppppcVar29 = (code *******)((int)local_8c + -1);\n                pppppppcVar33 = (code *******)FUN_00049110(&local_b4);\n                if (((uint)pppppppcVar33 & 1) == 0) {\n                  if (pppppppcVar33 == (code *******)0x0) break;\n                  if (((uint)pppppppcVar33 & 6) == 6) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xc];\n                    goto LAB_00054d1c;\n                  }\n                  if (((uint)pppppppcVar33 & 2) != 0) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xb];\n                    goto LAB_00054d1c;\n                  }\n                  pppppppcVar28 = pppppppcVar33;\n                  if (((uint)pppppppcVar33 & 4) == 0) break;\n                  pppppppcVar30 = (code *******)unaff_s7[10];\n                  pppppppcVar29 = pppppppcVar14;\n                  unaff_s7 = (code *******)FUN_0004ae34(&local_d8);\n                  pppppppcVar28 = pppppppcVar33;\n                  if (unaff_s7 != (code *******)0x0) break;\n                  if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                }\n                else {\n                  unaff_s7 = (code *******)pppppppcVar14[10];\nLAB_00054d1c:\n                  pppppppcVar28 = (code *******)PTR_s_nt0_000795b8;\n                  if (unaff_s7 != (code *******)0x0) break;\n                }\n                pppppppcVar28 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                local_dc = (code *******)\n                           (*(code *)PTR___assert_fail_000799f8)\n                                     (PTR_s_nt0_000795b8 + 0x71a0,pppppppcVar29,0x435);\n                if (local_dc == pppppppcVar26) {\n                  if ((int)local_dc < (int)param_3) {\n                    uVar7 = (uint)(byte)*(code *)((int)local_dc + (int)param_2);\n                  }\n                  else {\n                    uVar7 = 0;\n                  }\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    uVar7 = (uint)*(byte *)((int)ppppppcVar32 + uVar7);\n                  }\n                  if (*(code *)((int)local_148 + uVar7) == (code)0x0) {\n                    local_150 = (code *******)0x1;\n                    pppppppcVar30 = param_9;\n                    pppppppcVar33 = pppppppcVar28;\n                    goto LAB_000557e4;\n                  }\n                }\n              }\n              pppppppcVar33 = pppppppcVar28;\n              bVar1 = pppppppcVar36 != (code *******)0x0;\n              if ((local_50 == (code *******)0x0) ||\n                 (local_50[(int)pppppppcVar42] = (code ******)unaff_s7,\n                 pppppppcVar14[0x13] == (code ******)0x0)) {\nLAB_00054d50:\n                if ((int)unaff_s7[0xd] << 4 < 0) {\n                  if ((((uint)unaff_s7[0xd] & 0x1000000) == 0) ||\n                     (pppppppcVar29 = unaff_s7, pppppppcVar30 = pppppppcVar42,\n                     iVar18 = FUN_00049440(&local_b4), iVar18 != 0)) {\n                    unaff_s8 = pppppppcVar42;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                  }\n                  else {\n                    pppppppcVar42 = (code *******)0xffffffff;\n                    pppppppcVar28 = (code *******)0x0;\n                  }\n                }\n                else {\n                  pppppppcVar42 = (code *******)0xffffffff;\n                  pppppppcVar28 = (code *******)0x0;\n                }\n                pcVar8 = (code *)(PTR_DAT_000799a4 + -0x7144);\n                pcVar9 = (code *)(PTR_DAT_000799a4 + -0x1980);\n                pcVar10 = (code *)(PTR_DAT_000799a4 + -0x2f9c);\n                unaff_s8 = pppppppcVar42;\n                local_144 = pppppppcVar36;\n                while( true ) {\n                  uVar44 = CONCAT44(local_98,local_84);\n                  unaff_s5 = (code *******)((int)local_8c + 1);\n                  pppppppcVar29 = local_8c;\n                  if ((int)local_7c <= (int)local_8c) break;\n                  if (((int)local_90 <= (int)unaff_s5) && ((int)local_90 < (int)local_84))\n                  goto LAB_00054e94;\n                  if ((int)local_98 <= (int)unaff_s5) {\n                    while ((int)((ulonglong)uVar44 >> 0x20) < (int)uVar44) {\nLAB_00054e94:\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 2);\n                      local_d8 = (code *******)(*pcVar8)(&local_b4);\n                      if (local_d8 == (code *******)0x0) break;\n                      pppppppcVar14 = param_4;\n                      if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                      pppppppcVar33 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                      pppppppcVar30 = (code *******)0x46c;\n                      pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                      uVar44 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0);\n                      pppppppcVar28 = pppppppcVar38;\n                    }\n                  }\n                  pppppppcVar42 = local_60;\n                  if ((int)unaff_s7[0xd] << 5 < 0) {\n                    pppppppcVar31 = pppppppcVar42;\n                    if (0 < (int)unaff_s7[2]) {\n                      pcVar11 = (code *)(PTR_DAT_000799a4 + -0x6fdc);\n                      pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6ef0);\n                      param_6 = (code *******)0x0;\n                      do {\n                        param_5 = (code *******)unaff_s7[3][(int)param_6];\n                        ppppppcVar39 = *pppppppcVar42;\n                        pppppcVar13 = ppppppcVar39[(int)param_5 * 2 + 1];\n                        if (((uint)pppppcVar13 & 0x800) != 0) {\n                          if (((uint)pppppcVar13 & 0xffc000) != 0) {\n                            pppppppcVar29 = local_8c;\n                            uVar19 = (*pcVar12)(&local_b4,local_8c,local_5c);\n                            uVar7 = (uint)((int)ppppppcVar39[(int)param_5 * 2 + 1] << 8) >> 0x16;\n                            if ((uVar7 & 4) == 0) {\n                              uVar27 = uVar19 & 1;\n                              if ((uVar7 & 8) != 0) goto joined_r0x00054f40;\n                            }\n                            else {\n                              uVar27 = uVar7 & 8;\n                              if ((uVar19 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                              if (uVar27 != 0) goto LAB_000550a4;\n                            }\n                            if ((((uVar7 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                               (((uVar7 & 0x80) != 0 &&\n                                (pppppppcVar33 = local_8c, (uVar19 & 8) == 0)))) goto LAB_000550a4;\n                          }\n                          pppppppcVar30 = &local_b4;\n                          pppppppcVar29 = param_5;\n                          pppppppcVar33 = local_8c;\n                          iVar18 = (*pcVar10)(pppppppcVar42);\n                          if (iVar18 != 0) {\n                            pppppppcVar14 = (code *******)((int)local_8c + iVar18);\n                            if (iVar18 <= local_3c) {\n                              iVar18 = local_3c;\n                            }\n                            pppppppcVar29 = pppppppcVar14;\n                            local_3c = iVar18;\n                            local_d4 = (code *******)(*pcVar11)(&local_b4);\n                            pppppppcVar15 = local_d4;\n                            if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                            pppppppcVar30 =\n                                 (code *******)\n                                 (pppppppcVar42[6] + (int)pppppppcVar42[3][(int)param_5] * 3);\n                            unaff_s4 = (code *******)((int)pppppppcVar14 * 4);\n                            param_5 = local_50 + (int)pppppppcVar14;\n                            if (*param_5 == (code ******)0x0) {\n                              local_d0 = (code *******)*pppppppcVar30;\n                              local_cc = (code *******)pppppppcVar30[1];\n                              local_c8 = (code *******)pppppppcVar30[2];\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *param_5 = ppppppcVar39;\n                            }\n                            else {\n                              pppppppcVar29 = (code *******)(*param_5)[10];\n                              local_d4 = (code *******)FUN_000484bc(&local_d0);\n                              pppppppcVar15 = local_d4;\n                              if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar15 = local_50 + (int)pppppppcVar14;\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *pppppppcVar15 = ppppppcVar39;\n                              (*(code *)PTR_free_00079c24)(local_c8);\n                            }\n                            unaff_s4 = local_50 + (int)pppppppcVar14;\n                            if ((*unaff_s4 == (code ******)0x0) &&\n                               (pppppppcVar15 = local_d4, local_d4 != (code *******)0x0))\n                            goto LAB_00055e44;\n                          }\n                        }\nLAB_000550a4:\n                        param_6 = (code *******)((int)param_6 + 1);\n                      } while ((int)param_6 < (int)unaff_s7[2]);\n                    }\n                    local_d8 = (code *******)0x0;\n                  }\n                  uVar7 = (uint)(byte)*(code *)((int)local_8c + (int)local_b0);\n                  local_8c = (code *******)((int)local_8c + 1);\n                  do {\n                    if (unaff_s7[0xb] != (code ******)0x0) {\n                      pppppppcVar30 = (code *******)unaff_s7[0xb][uVar7];\nLAB_000553a0:\n                      pppppppcVar14 = pppppppcVar30;\n                      if (local_50 != (code *******)0x0) goto LAB_000553ac;\n                      goto LAB_000553cc;\n                    }\n                    pppppppcVar31 = (code *******)unaff_s7[0xc];\n                    if (pppppppcVar31 != (code *******)0x0) {\n                      pppppppcVar29 = (code *******)((int)local_8c + -1);\n                      uVar19 = FUN_00049110(&local_b4);\n                      if ((uVar19 & 1) == 0) {\n                        pppppppcVar30 = (code *******)pppppppcVar31[uVar7];\n                      }\n                      else {\n                        pppppppcVar31 = pppppppcVar31 + uVar7 + 0x100;\n                        pppppppcVar30 = (code *******)*pppppppcVar31;\n                      }\n                      goto LAB_000553a0;\n                    }\n                    pppppppcVar29 = unaff_s7;\n                    pppppppcVar30 = local_5c;\n                    iVar18 = (*pcVar9)(local_60);\n                  } while (iVar18 != 0);\n                  local_d8 = (code *******)0xc;\n                  pppppppcVar15 = local_d8;\nLAB_00055e44:\n                  local_d8 = pppppppcVar15;\n                  param_4 = (code *******)0x0;\n                  if (local_50 == (code *******)0x0) {\n                    pppppppcVar14 = param_4;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    break;\n                  }\n                  pppppppcVar30 = (code *******)0x0;\nLAB_000553ac:\n                  pppppppcVar29 = &local_b4;\n                  pppppppcVar14 = (code *******)FUN_00053684(&local_d8);\nLAB_000553cc:\n                  param_4 = pppppppcVar14;\n                  if (pppppppcVar14 == (code *******)0x0) {\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    if ((local_50 == (code *******)0x0) ||\n                       ((pppppppcVar28 != (code *******)0x0 && (pppppppcVar34 == (code *******)0x0))\n                       )) break;\n                    param_6 = &local_b4;\n                    param_5 = (code *******)&local_d8;\n                    pppppppcVar31 = (code *******)(PTR_DAT_000799a4 + 0x3684);\n                    do {\n                      pppppppcVar15 = local_50 + (int)local_8c;\n                      pppppppcVar42 = local_8c;\n                      do {\n                        pppppppcVar42 = (code *******)((int)pppppppcVar42 + 1);\n                        pppppppcVar29 = local_4c;\n                        param_4 = pppppppcVar14;\n                        if ((int)local_4c < (int)pppppppcVar42) goto LAB_00055da8;\n                        local_8c = (code *******)((int)local_8c + 1);\n                        pppppppcVar15 = pppppppcVar15 + 1;\n                      } while (*pppppppcVar15 == (code ******)0x0);\n                      pppppppcVar30 = (code *******)0x0;\n                      pppppppcVar29 = param_6;\n                      param_4 = (code *******)(*(code *)pppppppcVar31)(param_5);\n                      if (local_d8 != (code *******)0x0) {\n                        if (param_4 == (code *******)0x0) goto LAB_00055da8;\n                        break;\n                      }\n                      pppppppcVar29 = local_4c;\n                    } while (param_4 == (code *******)0x0);\n                  }\n                  pppppppcVar15 = (code *******)((uint)unaff_s7 ^ (uint)param_4);\n                  pppppppcVar42 = unaff_s7;\n                  pppppppcVar14 = local_138;\n                  if ((bVar1) &&\n                     (pppppppcVar42 = pppppppcVar15, pppppppcVar14 = unaff_s5,\n                     pppppppcVar15 != (code *******)0x0)) {\n                    bVar1 = false;\n                    pppppppcVar14 = local_138;\n                  }\n                  local_138 = pppppppcVar14;\n                  unaff_s7 = param_4;\n                  if ((((uint)param_4[0xd] & 0x8000000) != 0) &&\n                     ((((uint)param_4[0xd] & 0x1000000) == 0 ||\n                      (pppppppcVar29 = param_4, pppppppcVar30 = local_8c,\n                      iVar18 = FUN_00049440(&local_b4), iVar18 != 0)))) {\n                    unaff_s7 = pppppppcVar42;\n                    unaff_s8 = local_8c;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                    local_144 = (code *******)0x0;\n                    unaff_s7 = param_4;\n                  }\n                }\nLAB_00055da8:\n                if (local_144 != (code *******)0x0) {\n                  *local_144 = (code ******)((int)local_138 + (int)*local_144);\n                }\n              }\n              else {\n                param_4 = unaff_s7 + 1;\n                pppppppcVar30 = (code *******)0x0;\n                pppppppcVar29 = param_4;\n                local_d8 = (code *******)FUN_00047a44(&local_b4);\n                unaff_s8 = local_d8;\n                if (local_d8 == (code *******)0x0) {\n                  if (((uint)unaff_s7[0xd] & 0x2000000) == 0) {\n                    pppppppcVar29 = param_4;\n                    bVar1 = false;\n                  }\n                  else {\n                    pppppppcVar29 = param_4;\n                    local_d8 = (code *******)FUN_00052d84(&local_b4);\n                    unaff_s8 = local_d8;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055dbc;\n                    bVar1 = false;\n                  }\n                  goto LAB_00054d50;\n                }\n              }\nLAB_00055dbc:\n              if (unaff_s8 == (code *******)0xffffffff) {\nLAB_00055b04:\n                FUN_0004b7e8(&local_b4);\nLAB_00055b1c:\n                local_dc = (code *******)((int)pppppppcVar24 + (int)local_dc);\n                if ((int)pppppppcVar25 <= (int)local_dc) goto code_r0x00055b38;\n                local_150 = (code *******)0x1;\n                goto LAB_000557e4;\n              }\n              if (unaff_s8 == (code *******)&SUB_fffffffe) {\n                local_150 = (code *******)0xc;\n                goto LAB_000557e4;\n              }\n              local_58 = unaff_s8;\n              if (((uint)param_1[7] & 0x8000000) == 0) {\n                if (pppppppcVar3 < (code *******)0x2) {\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055c08;\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                else {\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                if (pppppppcVar3 < (code *******)0x2) {\nLAB_00055c6c:\n                  pppppppcVar28 = pppppppcVar33;\n                  unaff_s4 = local_60;\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055548;\n                }\n                else {\n                  cVar23 = *(code *)(pppppppcVar38 + 0x16);\nLAB_00055c20:\n                  pppppppcVar28 = pppppppcVar33;\n                  if (-1 < (char)cVar23) goto LAB_00055c6c;\n                }\n                pppppppcVar31 = local_54;\n                pppppppcVar42 = local_60;\n                unaff_s4 = pppppppcVar42;\n                if (unaff_s8 < (code *******)0x3fffffff) {\n                  param_4 = (code *******)((int)((int)unaff_s8 + 1) * 4);\n                  unaff_s5 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                  if (unaff_s5 == (code *******)0x0) {\nLAB_00055b9c:\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    local_150 = (code *******)0xc;\n                    pppppppcVar33 = pppppppcVar28;\n                  }\n                  else {\n                    pppppppcVar29 = (code *******)&local_d0;\n                    if (pppppppcVar42[0x13] == (code ******)0x0) {\n                      local_cc = (code *******)0x0;\n                      local_c8 = pppppppcVar31;\n                      local_c0 = 0;\n                      local_bc = 0;\n                      local_b8 = 0;\n                      local_d0 = unaff_s5;\n                      local_c4 = unaff_s8;\n                      param_5 = (code *******)FUN_0005421c(&local_b4);\n                      (*(code *)PTR_free_00079c24)(local_b8);\n                      if (param_5 == (code *******)0x0) {\n                        param_4 = (code *******)*unaff_s5;\n                        if (param_4 == (code *******)0x0) {\nLAB_00055b70:\n                          (*(code *)PTR_free_00079c24)(unaff_s5);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          pppppppcVar33 = pppppppcVar28;\n                          goto LAB_00055b04;\n                        }\nLAB_00055528:\n                        (*(code *)PTR_free_00079c24)(local_50);\n                        pppppppcVar33 = pppppppcVar28;\n                        unaff_s4 = pppppppcVar42;\n                        local_58 = unaff_s8;\n                        local_54 = pppppppcVar31;\n                        local_50 = unaff_s5;\n                        goto LAB_00055548;\n                      }\nLAB_00055acc:\n                      param_4 = (code *******)0x0;\n                      pppppppcVar33 = pppppppcVar28;\n                      unaff_s4 = pppppppcVar42;\n                    }\n                    else {\n                      param_4 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                      if (param_4 == (code *******)0x0) goto LAB_00055b9c;\n                      unaff_s7 = (code *******)&local_d0;\n                      pcVar8 = (code *)(PTR_DAT_000799a4 + 0x421c);\n                      pcVar9 = (code *)(PTR_DAT_000799a4 + -0x6bc0);\n                      pppppppcVar33 = pppppppcVar28;\n                      while( true ) {\n                        pppppppcVar28 = (code *******)((int)unaff_s8 + 1);\n                        param_6 = (code *******)((int)pppppppcVar28 * 4);\n                        pppppppcVar30 = param_6;\n                        (*(code *)PTR_memset_00079b00)(param_4,0);\n                        local_c0 = 0;\n                        local_bc = 0;\n                        local_b8 = 0;\n                        pppppppcVar29 = unaff_s7;\n                        local_d0 = unaff_s5;\n                        local_cc = param_4;\n                        local_c8 = pppppppcVar31;\n                        local_c4 = unaff_s8;\n                        param_5 = (code *******)(*pcVar8)(&local_b4);\n                        (*(code *)PTR_free_00079c24)(local_b8);\n                        unaff_s4 = pppppppcVar28;\n                        if (param_5 != (code *******)0x0) break;\n                        if ((*unaff_s5 != (code ******)0x0) ||\n                           (param_6 = param_6 + -1, *param_4 != (code ******)0x0)) {\n                          pppppppcVar29 = unaff_s5;\n                          pppppppcVar30 = param_4;\n                          param_5 = (code *******)FUN_000520d0(pppppppcVar42);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          if (param_5 != (code *******)0x0) goto LAB_00055acc;\n                          goto LAB_00055528;\n                        }\n                        param_6 = (code *******)((int)local_50 + (int)param_6);\n                        do {\n                          while( true ) {\n                            unaff_s8 = (code *******)((int)unaff_s8 + -1);\n                            if ((int)unaff_s8 < 0) goto LAB_00055b70;\n                            pppppppcVar29 = (code *******)param_6[-1];\n                            if (pppppppcVar29 != (code *******)0x0) break;\n                            param_6 = param_6 + -1;\n                          }\n                          param_6 = param_6 + -1;\n                        } while (((uint)pppppppcVar29[0xd] & 0x8000000) == 0);\n                        pppppppcVar31 = (code *******)(*pcVar9)(&local_b4,pppppppcVar29,unaff_s8);\n                        pppppppcVar33 = pppppppcVar28;\n                      }\n                    }\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    (*(code *)PTR_free_00079c24)(param_4);\n                    local_150 = param_5;\n                    if (param_5 == (code *******)0x1) goto LAB_00055b04;\n                  }\n                }\n                else {\n                  local_150 = (code *******)0xc;\n                  pppppppcVar33 = pppppppcVar28;\n                }\n                goto LAB_000557e4;\n              }\n              if (pppppppcVar38[0x13] != (code ******)0x0) {\n                pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                pppppppcVar30 = unaff_s8;\n                local_54 = (code *******)FUN_00049440(&local_b4);\n                goto LAB_00055c6c;\n              }\nLAB_00055c08:\n              if ((((uint)param_1[7] & 0x8000000) == 0) && ((code *******)0x1 < pppppppcVar3)) {\n                cVar23 = *(code *)(pppppppcVar38 + 0x16);\n                goto LAB_00055c20;\n              }\nLAB_00055548:\n              if (pppppppcVar3 == (code *******)0x0) goto LAB_000557e4;\n              if (pppppppcVar3 < (code *******)0x2) {\n                *param_8 = (code ******)0x0;\n                param_8[1] = (code ******)local_58;\n                goto LAB_000555ac;\n              }\n              pppppppcVar29 = param_8 + 2;\n              do {\n                pppppppcVar29[1] = (code ******)0xffffffff;\n                *pppppppcVar29 = (code ******)0xffffffff;\n                pppppppcVar29 = pppppppcVar29 + 2;\n              } while (pppppppcVar29 != param_8 + (int)pppppppcVar3 * 2);\n              *param_8 = (code ******)0x0;\n              param_8[1] = (code ******)local_58;\n              if (((uint)param_1[7] & 0x8000000) != 0) {\nLAB_000555ac:\n                pppppppcVar33 = param_8;\n                do {\n                  pppppppcVar29 = (code *******)*pppppppcVar33;\n                  if (pppppppcVar29 != (code *******)0xffffffff) {\n                    if (local_68 != '\0') {\n                      pppppppcVar34 = local_94;\n                      if (pppppppcVar29 != local_98) {\n                        pppppppcVar34 = *(code ********)(local_a8 + (int)pppppppcVar29 * 4);\n                      }\n                      *pppppppcVar33 = (code ******)pppppppcVar34;\n                      pppppppcVar29 = local_94;\n                      if (local_98 != (code *******)pppppppcVar33[1]) {\n                        pppppppcVar29 = *(code ********)(local_a8 + (int)pppppppcVar33[1] * 4);\n                      }\n                      pppppppcVar33[1] = (code ******)pppppppcVar29;\n                    }\n                    *pppppppcVar33 = (code ******)((int)local_dc + (int)*pppppppcVar33);\n                    pppppppcVar29 = (code *******)((int)local_dc + (int)pppppppcVar33[1]);\n                    pppppppcVar33[1] = (code ******)pppppppcVar29;\n                  }\n                  pppppppcVar33 = pppppppcVar33 + 2;\n                } while (pppppppcVar33 != param_8 + (int)pppppppcVar3 * 2);\n                if (0 < local_118) {\n                  pppppppcVar33 = param_8 + (int)pppppppcVar3 * 2;\n                  do {\n                    *pppppppcVar33 = (code ******)0xffffffff;\n                    pppppppcVar33[1] = (code ******)0xffffffff;\n                    pppppppcVar33 = pppppppcVar33 + 2;\n                  } while (pppppppcVar33 != param_8 + (int)param_7 * 2);\n                }\n                pppppppcVar30 = local_dc;\n                pppppppcVar33 = param_8;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar38[0x21] != (code ******)0x0) {\n                  pppppppcVar30 = (code *******)((int)pppppppcVar3 + -1);\n                  pppppppcVar34 = (code *******)0x0;\n                  pppppppcVar3 = param_8;\n                  while( true ) {\n                    pppppppcVar29 = (code *******)((int)pppppppcVar34 * 4);\n                    if (pppppppcVar30 == pppppppcVar34) break;\n                    if (*(code ********)((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) !=\n                        pppppppcVar34) {\n                      pppppppcVar3[2] =\n                           param_8[(int)((int)*(code ********)\n                                               ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1)\n                                   * 2];\n                      pppppppcVar3[3] =\n                           param_8[((int)*(code ******)\n                                          ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1) * 2 +\n                                   1];\n                    }\n                    pppppppcVar34 = (code *******)((int)pppppppcVar34 + 1);\n                    pppppppcVar3 = pppppppcVar3 + 2;\n                  }\n                }\n                goto LAB_000557e4;\n              }\n              if ((char)*(code *)(pppppppcVar38 + 0x16) < '\0') {\n                local_168 = (uint)(0 < (int)pppppppcVar38[0x13]);\n              }\n              else {\n                local_168 = 0;\n              }\n              pppppppcVar29 = &local_b4;\n              pppppppcVar30 = pppppppcVar3;\n              pppppppcVar33 = param_8;\n              local_150 = (code *******)FUN_0004f4a0(param_1);\n              if (local_150 == (code *******)0x0) goto LAB_000555ac;\n            }" ({ "{") (expression_statement "pppppppcVar36 = (code *******)&local_dc;" (assignment_expression "pppppppcVar36 = (code *******)&local_dc" (identifier "pppppppcVar36") (= "=") (cast_expression "(code *******)&local_dc" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (pointer_expression "&local_dc" (& "&") (identifier "local_dc")))) (; ";")) (if_statement "if ((code *******)(uint)((int)param_5 < (int)param_4) != (code *******)0x0) {\n                pppppppcVar36 = (code *******)0x0;\n              }" (if "if") (parenthesized_expression "((code *******)(uint)((int)param_5 < (int)param_4) != (code *******)0x0)" (( "(") (binary_expression "(code *******)(uint)((int)param_5 < (int)param_4) != (code *******)0x0" (cast_expression "(code *******)(uint)((int)param_5 < (int)param_4)" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (call_expression "(uint)((int)param_5 < (int)param_4)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int)param_5 < (int)param_4)" (( "(") (binary_expression "(int)param_5 < (int)param_4" (cast_expression "(int)param_5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_5")) (< "<") (cast_expression "(int)param_4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_4"))) () ")")))) (!= "!=") (cast_expression "(code *******)0x0" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                pppppppcVar36 = (code *******)0x0;\n              }" ({ "{") (expression_statement "pppppppcVar36 = (code *******)0x0;" (assignment_expression "pppppppcVar36 = (code *******)0x0" (identifier "pppppppcVar36") (= "=") (cast_expression "(code *******)0x0" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) (; ";")) (} "}"))) (expression_statement "pcVar4 = (code *)(PTR_DAT_000799a4 + -0x2b7c);" (assignment_expression "pcVar4 = (code *)(PTR_DAT_000799a4 + -0x2b7c)" (identifier "pcVar4") (= "=") (cast_expression "(code *)(PTR_DAT_000799a4 + -0x2b7c)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_000799a4 + -0x2b7c)" (( "(") (binary_expression "PTR_DAT_000799a4 + -0x2b7c" (identifier "PTR_DAT_000799a4") (+ "+") (number_literal "-0x2b7c")) () ")")))) (; ";")) (expression_statement "piVar5 = (int *)(PTR_s_nt0_000795b8 + (uVar16 - 4) * 4 + 0x6e38);" (assignment_expression "piVar5 = (int *)(PTR_s_nt0_000795b8 + (uVar16 - 4) * 4 + 0x6e38)" (identifier "piVar5") (= "=") (cast_expression "(int *)(PTR_s_nt0_000795b8 + (uVar16 - 4) * 4 + 0x6e38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_s_nt0_000795b8 + (uVar16 - 4) * 4 + 0x6e38)" (( "(") (binary_expression "PTR_s_nt0_000795b8 + (uVar16 - 4) * 4 + 0x6e38" (binary_expression "PTR_s_nt0_000795b8 + (uVar16 - 4) * 4" (identifier "PTR_s_nt0_000795b8") (+ "+") (binary_expression "(uVar16 - 4) * 4" (parenthesized_expression "(uVar16 - 4)" (( "(") (binary_expression "uVar16 - 4" (identifier "uVar16") (- "-") (number_literal "4")) () ")")) (* "*") (number_literal "4"))) (+ "+") (number_literal "0x6e38")) () ")")))) (; ";")) (labeled_statement "LAB_00055b44:\n              if (uVar16 - 4 < 5) {\n                    \n                    \n                pppppppcVar29 = (code *******)(*(code *)(&_gp_1 + *piVar5))();\n                return pppppppcVar29;\n              }" (statement_identifier "LAB_00055b44") (: ":") (if_statement "if (uVar16 - 4 < 5) {\n                    \n                    \n                pppppppcVar29 = (code *******)(*(code *)(&_gp_1 + *piVar5))();\n                return pppppppcVar29;\n              }" (if "if") (parenthesized_expression "(uVar16 - 4 < 5)" (( "(") (binary_expression "uVar16 - 4 < 5" (binary_expression "uVar16 - 4" (identifier "uVar16") (- "-") (number_literal "4")) (< "<") (number_literal "5")) () ")")) (compound_statement "{\n                    \n                    \n                pppppppcVar29 = (code *******)(*(code *)(&_gp_1 + *piVar5))();\n                return pppppppcVar29;\n              }" ({ "{") (expression_statement "pppppppcVar29 = (code *******)(*(code *)(&_gp_1 + *piVar5))();" (assignment_expression "pppppppcVar29 = (code *******)(*(code *)(&_gp_1 + *piVar5))()" (identifier "pppppppcVar29") (= "=") (cast_expression "(code *******)(*(code *)(&_gp_1 + *piVar5))()" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (call_expression "(*(code *)(&_gp_1 + *piVar5))()" (parenthesized_expression "(*(code *)(&_gp_1 + *piVar5))" (( "(") (pointer_expression "*(code *)(&_gp_1 + *piVar5)" (* "*") (cast_expression "(code *)(&_gp_1 + *piVar5)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&_gp_1 + *piVar5)" (( "(") (binary_expression "&_gp_1 + *piVar5" (pointer_expression "&_gp_1" (& "&") (identifier "_gp_1")) (+ "+") (pointer_expression "*piVar5" (* "*") (identifier "piVar5"))) () ")")))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (return_statement "return pppppppcVar29;" (return "return") (identifier "pppppppcVar29") (; ";")) (} "}")))) (expression_statement "param_5 = &local_b4;" (assignment_expression "param_5 = &local_b4" (identifier "param_5") (= "=") (pointer_expression "&local_b4" (& "&") (identifier "local_b4"))) (; ";")) (expression_statement "pppppppcVar28 = pppppppcVar33;" (assignment_expression "pppppppcVar28 = pppppppcVar33" (identifier "pppppppcVar28") (= "=") (identifier "pppppppcVar33")) (; ";")) (while_statement "while( true ) {\n                param_4 = local_dc;\n                pppppppcVar33 = (code *******)((int)local_dc - local_9c);\n                pppppppcVar30 = param_9;\n                pppppppcVar31 = pppppppcVar2;\n                param_6 = local_148;\n                unaff_s4 = param_3;\n                unaff_s5 = pppppppcVar24;\n                unaff_s7 = pppppppcVar26;\n                if (local_94 <= pppppppcVar33) {\n                  pppppppcVar29 = local_dc;\n                  local_150 = (code *******)(*pcVar4)(param_5);\n                  pppppppcVar33 = pppppppcVar28;\n                  if (local_150 != (code *******)0x0) goto LAB_000557e4;\n                  pppppppcVar33 = (code *******)((int)param_4 - local_9c);\n                }\n                if ((int)param_4 < (int)param_3) {\n                  uVar7 = (uint)(byte)*(code *)((int)pppppppcVar33 + (int)local_b0);\n                }\n                else {\n                  uVar7 = 0;\n                }\n                param_4 = (code *******)((int)param_4 + (int)pppppppcVar24);\n                if (*(code *)((int)local_148 + uVar7) != (code)0x0) break;\n                pppppppcVar33 = pppppppcVar28;\n                local_dc = param_4;\n                if ((int)param_4 < (int)pppppppcVar25) {\n                  local_150 = (code *******)0x1;\n                  goto LAB_000557e4;\n                }\n                if ((code *******)(uint)((int)pppppppcVar26 < (int)param_4) != (code *******)0x0) {\n                  local_150 = (code *******)0x1;\n                  param_4 = (code *******)(uint)((int)pppppppcVar26 < (int)param_4);\n                  goto LAB_000557e4;\n                }\n              }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n                param_4 = local_dc;\n                pppppppcVar33 = (code *******)((int)local_dc - local_9c);\n                pppppppcVar30 = param_9;\n                pppppppcVar31 = pppppppcVar2;\n                param_6 = local_148;\n                unaff_s4 = param_3;\n                unaff_s5 = pppppppcVar24;\n                unaff_s7 = pppppppcVar26;\n                if (local_94 <= pppppppcVar33) {\n                  pppppppcVar29 = local_dc;\n                  local_150 = (code *******)(*pcVar4)(param_5);\n                  pppppppcVar33 = pppppppcVar28;\n                  if (local_150 != (code *******)0x0) goto LAB_000557e4;\n                  pppppppcVar33 = (code *******)((int)param_4 - local_9c);\n                }\n                if ((int)param_4 < (int)param_3) {\n                  uVar7 = (uint)(byte)*(code *)((int)pppppppcVar33 + (int)local_b0);\n                }\n                else {\n                  uVar7 = 0;\n                }\n                param_4 = (code *******)((int)param_4 + (int)pppppppcVar24);\n                if (*(code *)((int)local_148 + uVar7) != (code)0x0) break;\n                pppppppcVar33 = pppppppcVar28;\n                local_dc = param_4;\n                if ((int)param_4 < (int)pppppppcVar25) {\n                  local_150 = (code *******)0x1;\n                  goto LAB_000557e4;\n                }\n                if ((code *******)(uint)((int)pppppppcVar26 < (int)param_4) != (code *******)0x0) {\n                  local_150 = (code *******)0x1;\n                  param_4 = (code *******)(uint)((int)pppppppcVar26 < (int)param_4);\n                  goto LAB_000557e4;\n                }\n              }" ({ "{") (expression_statement "param_4 = local_dc;" (assignment_expression "param_4 = local_dc" (identifier "param_4") (= "=") (identifier "local_dc")) (; ";")) (expression_statement "pppppppcVar33 = (code *******)((int)local_dc - local_9c);" (assignment_expression "pppppppcVar33 = (code *******)((int)local_dc - local_9c)" (identifier "pppppppcVar33") (= "=") (cast_expression "(code *******)((int)local_dc - local_9c)" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "((int)local_dc - local_9c)" (( "(") (binary_expression "(int)local_dc - local_9c" (cast_expression "(int)local_dc" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_dc")) (- "-") (identifier "local_9c")) () ")")))) (; ";")) (expression_statement "pppppppcVar30 = param_9;" (assignment_expression "pppppppcVar30 = param_9" (identifier "pppppppcVar30") (= "=") (identifier "param_9")) (; ";")) (expression_statement "pppppppcVar31 = pppppppcVar2;" (assignment_expression "pppppppcVar31 = pppppppcVar2" (identifier "pppppppcVar31") (= "=") (identifier "pppppppcVar2")) (; ";")) (expression_statement "param_6 = local_148;" (assignment_expression "param_6 = local_148" (identifier "param_6") (= "=") (identifier "local_148")) (; ";")) (expression_statement "unaff_s4 = param_3;" (assignment_expression "unaff_s4 = param_3" (identifier "unaff_s4") (= "=") (identifier "param_3")) (; ";")) (expression_statement "unaff_s5 = pppppppcVar24;" (assignment_expression "unaff_s5 = pppppppcVar24" (identifier "unaff_s5") (= "=") (identifier "pppppppcVar24")) (; ";")) (expression_statement "unaff_s7 = pppppppcVar26;" (assignment_expression "unaff_s7 = pppppppcVar26" (identifier "unaff_s7") (= "=") (identifier "pppppppcVar26")) (; ";")) (if_statement "if (local_94 <= pppppppcVar33) {\n                  pppppppcVar29 = local_dc;\n                  local_150 = (code *******)(*pcVar4)(param_5);\n                  pppppppcVar33 = pppppppcVar28;\n                  if (local_150 != (code *******)0x0) goto LAB_000557e4;\n                  pppppppcVar33 = (code *******)((int)param_4 - local_9c);\n                }" (if "if") (parenthesized_expression "(local_94 <= pppppppcVar33)" (( "(") (binary_expression "local_94 <= pppppppcVar33" (identifier "local_94") (<= "<=") (identifier "pppppppcVar33")) () ")")) (compound_statement "{\n                  pppppppcVar29 = local_dc;\n                  local_150 = (code *******)(*pcVar4)(param_5);\n                  pppppppcVar33 = pppppppcVar28;\n                  if (local_150 != (code *******)0x0) goto LAB_000557e4;\n                  pppppppcVar33 = (code *******)((int)param_4 - local_9c);\n                }" ({ "{") (expression_statement "pppppppcVar29 = local_dc;" (assignment_expression "pppppppcVar29 = local_dc" (identifier "pppppppcVar29") (= "=") (identifier "local_dc")) (; ";")) (expression_statement "local_150 = (code *******)(*pcVar4)(param_5);" (assignment_expression "local_150 = (code *******)(*pcVar4)(param_5)" (identifier "local_150") (= "=") (cast_expression "(code *******)(*pcVar4)(param_5)" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (call_expression "(*pcVar4)(param_5)" (parenthesized_expression "(*pcVar4)" (( "(") (pointer_expression "*pcVar4" (* "*") (identifier "pcVar4")) () ")")) (argument_list "(param_5)" (( "(") (identifier "param_5") () ")"))))) (; ";")) (expression_statement "pppppppcVar33 = pppppppcVar28;" (assignment_expression "pppppppcVar33 = pppppppcVar28" (identifier "pppppppcVar33") (= "=") (identifier "pppppppcVar28")) (; ";")) (if_statement "if (local_150 != (code *******)0x0) goto LAB_000557e4;" (if "if") (parenthesized_expression "(local_150 != (code *******)0x0)" (( "(") (binary_expression "local_150 != (code *******)0x0" (identifier "local_150") (!= "!=") (cast_expression "(code *******)0x0" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_000557e4;" (goto "goto") (statement_identifier "LAB_000557e4") (; ";"))) (expression_statement "pppppppcVar33 = (code *******)((int)param_4 - local_9c);" (assignment_expression "pppppppcVar33 = (code *******)((int)param_4 - local_9c)" (identifier "pppppppcVar33") (= "=") (cast_expression "(code *******)((int)param_4 - local_9c)" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "((int)param_4 - local_9c)" (( "(") (binary_expression "(int)param_4 - local_9c" (cast_expression "(int)param_4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_4")) (- "-") (identifier "local_9c")) () ")")))) (; ";")) (} "}"))) (if_statement "if ((int)param_4 < (int)param_3) {\n                  uVar7 = (uint)(byte)*(code *)((int)pppppppcVar33 + (int)local_b0);\n                }\n                else {\n                  uVar7 = 0;\n                }" (if "if") (parenthesized_expression "((int)param_4 < (int)param_3)" (( "(") (binary_expression "(int)param_4 < (int)param_3" (cast_expression "(int)param_4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_4")) (< "<") (cast_expression "(int)param_3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_3"))) () ")")) (compound_statement "{\n                  uVar7 = (uint)(byte)*(code *)((int)pppppppcVar33 + (int)local_b0);\n                }" ({ "{") (expression_statement "uVar7 = (uint)(byte)*(code *)((int)pppppppcVar33 + (int)local_b0);" (assignment_expression "uVar7 = (uint)(byte)*(code *)((int)pppppppcVar33 + (int)local_b0)" (identifier "uVar7") (= "=") (binary_expression "(uint)(byte)*(code *)((int)pppppppcVar33 + (int)local_b0)" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(byte)" (( "(") (identifier "byte") () ")"))) (* "*") (cast_expression "(code *)((int)pppppppcVar33 + (int)local_b0)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pppppppcVar33 + (int)local_b0)" (( "(") (binary_expression "(int)pppppppcVar33 + (int)local_b0" (cast_expression "(int)pppppppcVar33" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppcVar33")) (+ "+") (cast_expression "(int)local_b0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_b0"))) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n                  uVar7 = 0;\n                }" (else "else") (compound_statement "{\n                  uVar7 = 0;\n                }" ({ "{") (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" (identifier "uVar7") (= "=") (number_literal "0")) (; ";")) (} "}")))) (expression_statement "param_4 = (code *******)((int)param_4 + (int)pppppppcVar24);" (assignment_expression "param_4 = (code *******)((int)param_4 + (int)pppppppcVar24)" (identifier "param_4") (= "=") (cast_expression "(code *******)((int)param_4 + (int)pppppppcVar24)" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "((int)param_4 + (int)pppppppcVar24)" (( "(") (binary_expression "(int)param_4 + (int)pppppppcVar24" (cast_expression "(int)param_4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_4")) (+ "+") (cast_expression "(int)pppppppcVar24" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppcVar24"))) () ")")))) (; ";")) (if_statement "if (*(code *)((int)local_148 + uVar7) != (code)0x0) break;" (if "if") (parenthesized_expression "(*(code *)((int)local_148 + uVar7) != (code)0x0)" (( "(") (binary_expression "*(code *)((int)local_148 + uVar7) != (code)0x0" (pointer_expression "*(code *)((int)local_148 + uVar7)" (* "*") (cast_expression "(code *)((int)local_148 + uVar7)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_148 + uVar7)" (( "(") (binary_expression "(int)local_148 + uVar7" (cast_expression "(int)local_148" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_148")) (+ "+") (identifier "uVar7")) () ")")))) (!= "!=") (cast_expression "(code)0x0" (( "(") (type_descriptor "code" (type_identifier "code")) () ")") (number_literal "0x0"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "pppppppcVar33 = pppppppcVar28;" (assignment_expression "pppppppcVar33 = pppppppcVar28" (identifier "pppppppcVar33") (= "=") (identifier "pppppppcVar28")) (; ";")) (expression_statement "local_dc = param_4;" (assignment_expression "local_dc = param_4" (identifier "local_dc") (= "=") (identifier "param_4")) (; ";")) (if_statement "if ((int)param_4 < (int)pppppppcVar25) {\n                  local_150 = (code *******)0x1;\n                  goto LAB_000557e4;\n                }" (if "if") (parenthesized_expression "((int)param_4 < (int)pppppppcVar25)" (( "(") (binary_expression "(int)param_4 < (int)pppppppcVar25" (cast_expression "(int)param_4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_4")) (< "<") (cast_expression "(int)pppppppcVar25" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppcVar25"))) () ")")) (compound_statement "{\n                  local_150 = (code *******)0x1;\n                  goto LAB_000557e4;\n                }" ({ "{") (expression_statement "local_150 = (code *******)0x1;" (assignment_expression "local_150 = (code *******)0x1" (identifier "local_150") (= "=") (cast_expression "(code *******)0x1" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x1"))) (; ";")) (goto_statement "goto LAB_000557e4;" (goto "goto") (statement_identifier "LAB_000557e4") (; ";")) (} "}"))) (if_statement "if ((code *******)(uint)((int)pppppppcVar26 < (int)param_4) != (code *******)0x0) {\n                  local_150 = (code *******)0x1;\n                  param_4 = (code *******)(uint)((int)pppppppcVar26 < (int)param_4);\n                  goto LAB_000557e4;\n                }" (if "if") (parenthesized_expression "((code *******)(uint)((int)pppppppcVar26 < (int)param_4) != (code *******)0x0)" (( "(") (binary_expression "(code *******)(uint)((int)pppppppcVar26 < (int)param_4) != (code *******)0x0" (cast_expression "(code *******)(uint)((int)pppppppcVar26 < (int)param_4)" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (call_expression "(uint)((int)pppppppcVar26 < (int)param_4)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int)pppppppcVar26 < (int)param_4)" (( "(") (binary_expression "(int)pppppppcVar26 < (int)param_4" (cast_expression "(int)pppppppcVar26" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppcVar26")) (< "<") (cast_expression "(int)param_4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_4"))) () ")")))) (!= "!=") (cast_expression "(code *******)0x0" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                  local_150 = (code *******)0x1;\n                  param_4 = (code *******)(uint)((int)pppppppcVar26 < (int)param_4);\n                  goto LAB_000557e4;\n                }" ({ "{") (expression_statement "local_150 = (code *******)0x1;" (assignment_expression "local_150 = (code *******)0x1" (identifier "local_150") (= "=") (cast_expression "(code *******)0x1" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x1"))) (; ";")) (expression_statement "param_4 = (code *******)(uint)((int)pppppppcVar26 < (int)param_4);" (assignment_expression "param_4 = (code *******)(uint)((int)pppppppcVar26 < (int)param_4)" (identifier "param_4") (= "=") (cast_expression "(code *******)(uint)((int)pppppppcVar26 < (int)param_4)" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (call_expression "(uint)((int)pppppppcVar26 < (int)param_4)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int)pppppppcVar26 < (int)param_4)" (( "(") (binary_expression "(int)pppppppcVar26 < (int)param_4" (cast_expression "(int)pppppppcVar26" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppcVar26")) (< "<") (cast_expression "(int)param_4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_4"))) () ")"))))) (; ";")) (goto_statement "goto LAB_000557e4;" (goto "goto") (statement_identifier "LAB_000557e4") (; ";")) (} "}"))) (} "}"))) (while_statement "while( true ) {\n                pppppppcVar29 = local_dc;\n                pppppppcVar30 = param_9;\n                pppppppcVar6 = (code *******)(*pcVar4)(&local_b4);\n                pppppppcVar14 = local_60;\n                pppppppcVar42 = local_8c;\n                pppppppcVar33 = pppppppcVar28;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar6 != (code *******)0x0) goto LAB_000557e4;\n                if (((ppppppcVar35 != (code ******)0x1) && (local_98 != (code *******)0x0)) &&\n                   (*local_ac == -1)) goto LAB_00055b1c;\n                local_3c = 0;\n                local_48 = 0;\n                local_4c = (code *******)0x0;\n                local_138 = local_8c;\n                local_d8 = (code *******)0x0;\n                unaff_s7 = (code *******)local_60[9];\n                pppppppcVar30 = local_5c;\n                param_4 = pppppppcVar14;\n                if (((uint)unaff_s7[0xd] & 0x1000000) == 0) break;\n                pppppppcVar29 = (code *******)((int)local_8c + -1);\n                pppppppcVar33 = (code *******)FUN_00049110(&local_b4);\n                if (((uint)pppppppcVar33 & 1) == 0) {\n                  if (pppppppcVar33 == (code *******)0x0) break;\n                  if (((uint)pppppppcVar33 & 6) == 6) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xc];\n                    goto LAB_00054d1c;\n                  }\n                  if (((uint)pppppppcVar33 & 2) != 0) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xb];\n                    goto LAB_00054d1c;\n                  }\n                  pppppppcVar28 = pppppppcVar33;\n                  if (((uint)pppppppcVar33 & 4) == 0) break;\n                  pppppppcVar30 = (code *******)unaff_s7[10];\n                  pppppppcVar29 = pppppppcVar14;\n                  unaff_s7 = (code *******)FUN_0004ae34(&local_d8);\n                  pppppppcVar28 = pppppppcVar33;\n                  if (unaff_s7 != (code *******)0x0) break;\n                  if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                }\n                else {\n                  unaff_s7 = (code *******)pppppppcVar14[10];\nLAB_00054d1c:\n                  pppppppcVar28 = (code *******)PTR_s_nt0_000795b8;\n                  if (unaff_s7 != (code *******)0x0) break;\n                }\n                pppppppcVar28 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                local_dc = (code *******)\n                           (*(code *)PTR___assert_fail_000799f8)\n                                     (PTR_s_nt0_000795b8 + 0x71a0,pppppppcVar29,0x435);\n                if (local_dc == pppppppcVar26) {\n                  if ((int)local_dc < (int)param_3) {\n                    uVar7 = (uint)(byte)*(code *)((int)local_dc + (int)param_2);\n                  }\n                  else {\n                    uVar7 = 0;\n                  }\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    uVar7 = (uint)*(byte *)((int)ppppppcVar32 + uVar7);\n                  }\n                  if (*(code *)((int)local_148 + uVar7) == (code)0x0) {\n                    local_150 = (code *******)0x1;\n                    pppppppcVar30 = param_9;\n                    pppppppcVar33 = pppppppcVar28;\n                    goto LAB_000557e4;\n                  }\n                }\n              }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n                pppppppcVar29 = local_dc;\n                pppppppcVar30 = param_9;\n                pppppppcVar6 = (code *******)(*pcVar4)(&local_b4);\n                pppppppcVar14 = local_60;\n                pppppppcVar42 = local_8c;\n                pppppppcVar33 = pppppppcVar28;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar6 != (code *******)0x0) goto LAB_000557e4;\n                if (((ppppppcVar35 != (code ******)0x1) && (local_98 != (code *******)0x0)) &&\n                   (*local_ac == -1)) goto LAB_00055b1c;\n                local_3c = 0;\n                local_48 = 0;\n                local_4c = (code *******)0x0;\n                local_138 = local_8c;\n                local_d8 = (code *******)0x0;\n                unaff_s7 = (code *******)local_60[9];\n                pppppppcVar30 = local_5c;\n                param_4 = pppppppcVar14;\n                if (((uint)unaff_s7[0xd] & 0x1000000) == 0) break;\n                pppppppcVar29 = (code *******)((int)local_8c + -1);\n                pppppppcVar33 = (code *******)FUN_00049110(&local_b4);\n                if (((uint)pppppppcVar33 & 1) == 0) {\n                  if (pppppppcVar33 == (code *******)0x0) break;\n                  if (((uint)pppppppcVar33 & 6) == 6) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xc];\n                    goto LAB_00054d1c;\n                  }\n                  if (((uint)pppppppcVar33 & 2) != 0) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xb];\n                    goto LAB_00054d1c;\n                  }\n                  pppppppcVar28 = pppppppcVar33;\n                  if (((uint)pppppppcVar33 & 4) == 0) break;\n                  pppppppcVar30 = (code *******)unaff_s7[10];\n                  pppppppcVar29 = pppppppcVar14;\n                  unaff_s7 = (code *******)FUN_0004ae34(&local_d8);\n                  pppppppcVar28 = pppppppcVar33;\n                  if (unaff_s7 != (code *******)0x0) break;\n                  if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                }\n                else {\n                  unaff_s7 = (code *******)pppppppcVar14[10];\nLAB_00054d1c:\n                  pppppppcVar28 = (code *******)PTR_s_nt0_000795b8;\n                  if (unaff_s7 != (code *******)0x0) break;\n                }\n                pppppppcVar28 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                local_dc = (code *******)\n                           (*(code *)PTR___assert_fail_000799f8)\n                                     (PTR_s_nt0_000795b8 + 0x71a0,pppppppcVar29,0x435);\n                if (local_dc == pppppppcVar26) {\n                  if ((int)local_dc < (int)param_3) {\n                    uVar7 = (uint)(byte)*(code *)((int)local_dc + (int)param_2);\n                  }\n                  else {\n                    uVar7 = 0;\n                  }\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    uVar7 = (uint)*(byte *)((int)ppppppcVar32 + uVar7);\n                  }\n                  if (*(code *)((int)local_148 + uVar7) == (code)0x0) {\n                    local_150 = (code *******)0x1;\n                    pppppppcVar30 = param_9;\n                    pppppppcVar33 = pppppppcVar28;\n                    goto LAB_000557e4;\n                  }\n                }\n              }" ({ "{") (expression_statement "pppppppcVar29 = local_dc;" (assignment_expression "pppppppcVar29 = local_dc" (identifier "pppppppcVar29") (= "=") (identifier "local_dc")) (; ";")) (expression_statement "pppppppcVar30 = param_9;" (assignment_expression "pppppppcVar30 = param_9" (identifier "pppppppcVar30") (= "=") (identifier "param_9")) (; ";")) (expression_statement "pppppppcVar6 = (code *******)(*pcVar4)(&local_b4);" (assignment_expression "pppppppcVar6 = (code *******)(*pcVar4)(&local_b4)" (identifier "pppppppcVar6") (= "=") (cast_expression "(code *******)(*pcVar4)(&local_b4)" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (call_expression "(*pcVar4)(&local_b4)" (parenthesized_expression "(*pcVar4)" (( "(") (pointer_expression "*pcVar4" (* "*") (identifier "pcVar4")) () ")")) (argument_list "(&local_b4)" (( "(") (pointer_expression "&local_b4" (& "&") (identifier "local_b4")) () ")"))))) (; ";")) (expression_statement "pppppppcVar14 = local_60;" (assignment_expression "pppppppcVar14 = local_60" (identifier "pppppppcVar14") (= "=") (identifier "local_60")) (; ";")) (expression_statement "pppppppcVar42 = local_8c;" (assignment_expression "pppppppcVar42 = local_8c" (identifier "pppppppcVar42") (= "=") (identifier "local_8c")) (; ";")) (expression_statement "pppppppcVar33 = pppppppcVar28;" (assignment_expression "pppppppcVar33 = pppppppcVar28" (identifier "pppppppcVar33") (= "=") (identifier "pppppppcVar28")) (; ";")) (expression_statement "local_150 = pppppppcVar6;" (assignment_expression "local_150 = pppppppcVar6" (identifier "local_150") (= "=") (identifier "pppppppcVar6")) (; ";")) (if_statement "if (pppppppcVar6 != (code *******)0x0) goto LAB_000557e4;" (if "if") (parenthesized_expression "(pppppppcVar6 != (code *******)0x0)" (( "(") (binary_expression "pppppppcVar6 != (code *******)0x0" (identifier "pppppppcVar6") (!= "!=") (cast_expression "(code *******)0x0" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_000557e4;" (goto "goto") (statement_identifier "LAB_000557e4") (; ";"))) (if_statement "if (((ppppppcVar35 != (code ******)0x1) && (local_98 != (code *******)0x0)) &&\n                   (*local_ac == -1)) goto LAB_00055b1c;" (if "if") (parenthesized_expression "(((ppppppcVar35 != (code ******)0x1) && (local_98 != (code *******)0x0)) &&\n                   (*local_ac == -1))" (( "(") (binary_expression "((ppppppcVar35 != (code ******)0x1) && (local_98 != (code *******)0x0)) &&\n                   (*local_ac == -1)" (parenthesized_expression "((ppppppcVar35 != (code ******)0x1) && (local_98 != (code *******)0x0))" (( "(") (binary_expression "(ppppppcVar35 != (code ******)0x1) && (local_98 != (code *******)0x0)" (parenthesized_expression "(ppppppcVar35 != (code ******)0x1)" (( "(") (binary_expression "ppppppcVar35 != (code ******)0x1" (identifier "ppppppcVar35") (!= "!=") (cast_expression "(code ******)0x1" (( "(") (type_descriptor "code ******" (type_identifier "code") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x1"))) () ")")) (&& "&&") (parenthesized_expression "(local_98 != (code *******)0x0)" (( "(") (binary_expression "local_98 != (code *******)0x0" (identifier "local_98") (!= "!=") (cast_expression "(code *******)0x0" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(*local_ac == -1)" (( "(") (binary_expression "*local_ac == -1" (pointer_expression "*local_ac" (* "*") (identifier "local_ac")) (== "==") (number_literal "-1")) () ")"))) () ")")) (goto_statement "goto LAB_00055b1c;" (goto "goto") (statement_identifier "LAB_00055b1c") (; ";"))) (expression_statement "local_3c = 0;" (assignment_expression "local_3c = 0" (identifier "local_3c") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_48 = 0;" (assignment_expression "local_48 = 0" (identifier "local_48") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_4c = (code *******)0x0;" (assignment_expression "local_4c = (code *******)0x0" (identifier "local_4c") (= "=") (cast_expression "(code *******)0x0" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_138 = local_8c;" (assignment_expression "local_138 = local_8c" (identifier "local_138") (= "=") (identifier "local_8c")) (; ";")) (expression_statement "local_d8 = (code *******)0x0;" (assignment_expression "local_d8 = (code *******)0x0" (identifier "local_d8") (= "=") (cast_expression "(code *******)0x0" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "unaff_s7 = (code *******)local_60[9];" (assignment_expression "unaff_s7 = (code *******)local_60[9]" (identifier "unaff_s7") (= "=") (cast_expression "(code *******)local_60[9]" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (subscript_expression "local_60[9]" (identifier "local_60") ([ "[") (number_literal "9") (] "]")))) (; ";")) (expression_statement "pppppppcVar30 = local_5c;" (assignment_expression "pppppppcVar30 = local_5c" (identifier "pppppppcVar30") (= "=") (identifier "local_5c")) (; ";")) (expression_statement "param_4 = pppppppcVar14;" (assignment_expression "param_4 = pppppppcVar14" (identifier "param_4") (= "=") (identifier "pppppppcVar14")) (; ";")) (if_statement "if (((uint)unaff_s7[0xd] & 0x1000000) == 0) break;" (if "if") (parenthesized_expression "(((uint)unaff_s7[0xd] & 0x1000000) == 0)" (( "(") (binary_expression "((uint)unaff_s7[0xd] & 0x1000000) == 0" (parenthesized_expression "((uint)unaff_s7[0xd] & 0x1000000)" (( "(") (binary_expression "(uint)unaff_s7[0xd] & 0x1000000" (cast_expression "(uint)unaff_s7[0xd]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "unaff_s7[0xd]" (identifier "unaff_s7") ([ "[") (number_literal "0xd") (] "]"))) (& "&") (number_literal "0x1000000")) () ")")) (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "pppppppcVar29 = (code *******)((int)local_8c + -1);" (assignment_expression "pppppppcVar29 = (code *******)((int)local_8c + -1)" (identifier "pppppppcVar29") (= "=") (cast_expression "(code *******)((int)local_8c + -1)" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "((int)local_8c + -1)" (( "(") (binary_expression "(int)local_8c + -1" (cast_expression "(int)local_8c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_8c")) (+ "+") (number_literal "-1")) () ")")))) (; ";")) (expression_statement "pppppppcVar33 = (code *******)FUN_00049110(&local_b4);" (assignment_expression "pppppppcVar33 = (code *******)FUN_00049110(&local_b4)" (identifier "pppppppcVar33") (= "=") (cast_expression "(code *******)FUN_00049110(&local_b4)" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (call_expression "FUN_00049110(&local_b4)" (identifier "FUN_00049110") (argument_list "(&local_b4)" (( "(") (pointer_expression "&local_b4" (& "&") (identifier "local_b4")) () ")"))))) (; ";")) (if_statement "if (((uint)pppppppcVar33 & 1) == 0) {\n                  if (pppppppcVar33 == (code *******)0x0) break;\n                  if (((uint)pppppppcVar33 & 6) == 6) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xc];\n                    goto LAB_00054d1c;\n                  }\n                  if (((uint)pppppppcVar33 & 2) != 0) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xb];\n                    goto LAB_00054d1c;\n                  }\n                  pppppppcVar28 = pppppppcVar33;\n                  if (((uint)pppppppcVar33 & 4) == 0) break;\n                  pppppppcVar30 = (code *******)unaff_s7[10];\n                  pppppppcVar29 = pppppppcVar14;\n                  unaff_s7 = (code *******)FUN_0004ae34(&local_d8);\n                  pppppppcVar28 = pppppppcVar33;\n                  if (unaff_s7 != (code *******)0x0) break;\n                  if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                }\n                else {\n                  unaff_s7 = (code *******)pppppppcVar14[10];\nLAB_00054d1c:\n                  pppppppcVar28 = (code *******)PTR_s_nt0_000795b8;\n                  if (unaff_s7 != (code *******)0x0) break;\n                }" (if "if") (parenthesized_expression "(((uint)pppppppcVar33 & 1) == 0)" (( "(") (binary_expression "((uint)pppppppcVar33 & 1) == 0" (parenthesized_expression "((uint)pppppppcVar33 & 1)" (( "(") (binary_expression "(uint)pppppppcVar33 & 1" (cast_expression "(uint)pppppppcVar33" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pppppppcVar33")) (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                  if (pppppppcVar33 == (code *******)0x0) break;\n                  if (((uint)pppppppcVar33 & 6) == 6) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xc];\n                    goto LAB_00054d1c;\n                  }\n                  if (((uint)pppppppcVar33 & 2) != 0) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xb];\n                    goto LAB_00054d1c;\n                  }\n                  pppppppcVar28 = pppppppcVar33;\n                  if (((uint)pppppppcVar33 & 4) == 0) break;\n                  pppppppcVar30 = (code *******)unaff_s7[10];\n                  pppppppcVar29 = pppppppcVar14;\n                  unaff_s7 = (code *******)FUN_0004ae34(&local_d8);\n                  pppppppcVar28 = pppppppcVar33;\n                  if (unaff_s7 != (code *******)0x0) break;\n                  if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                }" ({ "{") (if_statement "if (pppppppcVar33 == (code *******)0x0) break;" (if "if") (parenthesized_expression "(pppppppcVar33 == (code *******)0x0)" (( "(") (binary_expression "pppppppcVar33 == (code *******)0x0" (identifier "pppppppcVar33") (== "==") (cast_expression "(code *******)0x0" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (if_statement "if (((uint)pppppppcVar33 & 6) == 6) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xc];\n                    goto LAB_00054d1c;\n                  }" (if "if") (parenthesized_expression "(((uint)pppppppcVar33 & 6) == 6)" (( "(") (binary_expression "((uint)pppppppcVar33 & 6) == 6" (parenthesized_expression "((uint)pppppppcVar33 & 6)" (( "(") (binary_expression "(uint)pppppppcVar33 & 6" (cast_expression "(uint)pppppppcVar33" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pppppppcVar33")) (& "&") (number_literal "6")) () ")")) (== "==") (number_literal "6")) () ")")) (compound_statement "{\n                    unaff_s7 = (code *******)pppppppcVar14[0xc];\n                    goto LAB_00054d1c;\n                  }" ({ "{") (expression_statement "unaff_s7 = (code *******)pppppppcVar14[0xc];" (assignment_expression "unaff_s7 = (code *******)pppppppcVar14[0xc]" (identifier "unaff_s7") (= "=") (cast_expression "(code *******)pppppppcVar14[0xc]" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (subscript_expression "pppppppcVar14[0xc]" (identifier "pppppppcVar14") ([ "[") (number_literal "0xc") (] "]")))) (; ";")) (goto_statement "goto LAB_00054d1c;" (goto "goto") (statement_identifier "LAB_00054d1c") (; ";")) (} "}"))) (if_statement "if (((uint)pppppppcVar33 & 2) != 0) {\n                    unaff_s7 = (code *******)pppppppcVar14[0xb];\n                    goto LAB_00054d1c;\n                  }" (if "if") (parenthesized_expression "(((uint)pppppppcVar33 & 2) != 0)" (( "(") (binary_expression "((uint)pppppppcVar33 & 2) != 0" (parenthesized_expression "((uint)pppppppcVar33 & 2)" (( "(") (binary_expression "(uint)pppppppcVar33 & 2" (cast_expression "(uint)pppppppcVar33" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pppppppcVar33")) (& "&") (number_literal "2")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                    unaff_s7 = (code *******)pppppppcVar14[0xb];\n                    goto LAB_00054d1c;\n                  }" ({ "{") (expression_statement "unaff_s7 = (code *******)pppppppcVar14[0xb];" (assignment_expression "unaff_s7 = (code *******)pppppppcVar14[0xb]" (identifier "unaff_s7") (= "=") (cast_expression "(code *******)pppppppcVar14[0xb]" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (subscript_expression "pppppppcVar14[0xb]" (identifier "pppppppcVar14") ([ "[") (number_literal "0xb") (] "]")))) (; ";")) (goto_statement "goto LAB_00054d1c;" (goto "goto") (statement_identifier "LAB_00054d1c") (; ";")) (} "}"))) (expression_statement "pppppppcVar28 = pppppppcVar33;" (assignment_expression "pppppppcVar28 = pppppppcVar33" (identifier "pppppppcVar28") (= "=") (identifier "pppppppcVar33")) (; ";")) (if_statement "if (((uint)pppppppcVar33 & 4) == 0) break;" (if "if") (parenthesized_expression "(((uint)pppppppcVar33 & 4) == 0)" (( "(") (binary_expression "((uint)pppppppcVar33 & 4) == 0" (parenthesized_expression "((uint)pppppppcVar33 & 4)" (( "(") (binary_expression "(uint)pppppppcVar33 & 4" (cast_expression "(uint)pppppppcVar33" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pppppppcVar33")) (& "&") (number_literal "4")) () ")")) (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "pppppppcVar30 = (code *******)unaff_s7[10];" (assignment_expression "pppppppcVar30 = (code *******)unaff_s7[10]" (identifier "pppppppcVar30") (= "=") (cast_expression "(code *******)unaff_s7[10]" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (subscript_expression "unaff_s7[10]" (identifier "unaff_s7") ([ "[") (number_literal "10") (] "]")))) (; ";")) (expression_statement "pppppppcVar29 = pppppppcVar14;" (assignment_expression "pppppppcVar29 = pppppppcVar14" (identifier "pppppppcVar29") (= "=") (identifier "pppppppcVar14")) (; ";")) (expression_statement "unaff_s7 = (code *******)FUN_0004ae34(&local_d8);" (assignment_expression "unaff_s7 = (code *******)FUN_0004ae34(&local_d8)" (identifier "unaff_s7") (= "=") (cast_expression "(code *******)FUN_0004ae34(&local_d8)" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (call_expression "FUN_0004ae34(&local_d8)" (identifier "FUN_0004ae34") (argument_list "(&local_d8)" (( "(") (pointer_expression "&local_d8" (& "&") (identifier "local_d8")) () ")"))))) (; ";")) (expression_statement "pppppppcVar28 = pppppppcVar33;" (assignment_expression "pppppppcVar28 = pppppppcVar33" (identifier "pppppppcVar28") (= "=") (identifier "pppppppcVar33")) (; ";")) (if_statement "if (unaff_s7 != (code *******)0x0) break;" (if "if") (parenthesized_expression "(unaff_s7 != (code *******)0x0)" (( "(") (binary_expression "unaff_s7 != (code *******)0x0" (identifier "unaff_s7") (!= "!=") (cast_expression "(code *******)0x0" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (if_statement "if (local_d8 == (code *******)0xc) goto LAB_00055914;" (if "if") (parenthesized_expression "(local_d8 == (code *******)0xc)" (( "(") (binary_expression "local_d8 == (code *******)0xc" (identifier "local_d8") (== "==") (cast_expression "(code *******)0xc" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0xc"))) () ")")) (goto_statement "goto LAB_00055914;" (goto "goto") (statement_identifier "LAB_00055914") (; ";"))) (} "}")) (else_clause "else {\n                  unaff_s7 = (code *******)pppppppcVar14[10];\nLAB_00054d1c:\n                  pppppppcVar28 = (code *******)PTR_s_nt0_000795b8;\n                  if (unaff_s7 != (code *******)0x0) break;\n                }" (else "else") (compound_statement "{\n                  unaff_s7 = (code *******)pppppppcVar14[10];\nLAB_00054d1c:\n                  pppppppcVar28 = (code *******)PTR_s_nt0_000795b8;\n                  if (unaff_s7 != (code *******)0x0) break;\n                }" ({ "{") (expression_statement "unaff_s7 = (code *******)pppppppcVar14[10];" (assignment_expression "unaff_s7 = (code *******)pppppppcVar14[10]" (identifier "unaff_s7") (= "=") (cast_expression "(code *******)pppppppcVar14[10]" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (subscript_expression "pppppppcVar14[10]" (identifier "pppppppcVar14") ([ "[") (number_literal "10") (] "]")))) (; ";")) (labeled_statement "LAB_00054d1c:\n                  pppppppcVar28 = (code *******)PTR_s_nt0_000795b8;" (statement_identifier "LAB_00054d1c") (: ":") (expression_statement "pppppppcVar28 = (code *******)PTR_s_nt0_000795b8;" (assignment_expression "pppppppcVar28 = (code *******)PTR_s_nt0_000795b8" (identifier "pppppppcVar28") (= "=") (cast_expression "(code *******)PTR_s_nt0_000795b8" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (identifier "PTR_s_nt0_000795b8"))) (; ";"))) (if_statement "if (unaff_s7 != (code *******)0x0) break;" (if "if") (parenthesized_expression "(unaff_s7 != (code *******)0x0)" (( "(") (binary_expression "unaff_s7 != (code *******)0x0" (identifier "unaff_s7") (!= "!=") (cast_expression "(code *******)0x0" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (} "}")))) (expression_statement "pppppppcVar28 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);" (assignment_expression "pppppppcVar28 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0)" (identifier "pppppppcVar28") (= "=") (cast_expression "(code *******)(PTR_s_nt0_000795b8 + 0x6eb0)" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "(PTR_s_nt0_000795b8 + 0x6eb0)" (( "(") (binary_expression "PTR_s_nt0_000795b8 + 0x6eb0" (identifier "PTR_s_nt0_000795b8") (+ "+") (number_literal "0x6eb0")) () ")")))) (; ";")) (expression_statement "pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);" (assignment_expression "pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c)" (identifier "pppppppcVar29") (= "=") (cast_expression "(code *******)(PTR_s_nt0_000795b8 + 0x712c)" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "(PTR_s_nt0_000795b8 + 0x712c)" (( "(") (binary_expression "PTR_s_nt0_000795b8 + 0x712c" (identifier "PTR_s_nt0_000795b8") (+ "+") (number_literal "0x712c")) () ")")))) (; ";")) (expression_statement "local_dc = (code *******)\n                           (*(code *)PTR___assert_fail_000799f8)\n                                     (PTR_s_nt0_000795b8 + 0x71a0,pppppppcVar29,0x435);" (assignment_expression "local_dc = (code *******)\n                           (*(code *)PTR___assert_fail_000799f8)\n                                     (PTR_s_nt0_000795b8 + 0x71a0,pppppppcVar29,0x435)" (identifier "local_dc") (= "=") (cast_expression "(code *******)\n                           (*(code *)PTR___assert_fail_000799f8)\n                                     (PTR_s_nt0_000795b8 + 0x71a0,pppppppcVar29,0x435)" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (call_expression "(*(code *)PTR___assert_fail_000799f8)\n                                     (PTR_s_nt0_000795b8 + 0x71a0,pppppppcVar29,0x435)" (parenthesized_expression "(*(code *)PTR___assert_fail_000799f8)" (( "(") (pointer_expression "*(code *)PTR___assert_fail_000799f8" (* "*") (cast_expression "(code *)PTR___assert_fail_000799f8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___assert_fail_000799f8"))) () ")")) (argument_list "(PTR_s_nt0_000795b8 + 0x71a0,pppppppcVar29,0x435)" (( "(") (binary_expression "PTR_s_nt0_000795b8 + 0x71a0" (identifier "PTR_s_nt0_000795b8") (+ "+") (number_literal "0x71a0")) (, ",") (identifier "pppppppcVar29") (, ",") (number_literal "0x435") () ")"))))) (; ";")) (if_statement "if (local_dc == pppppppcVar26) {\n                  if ((int)local_dc < (int)param_3) {\n                    uVar7 = (uint)(byte)*(code *)((int)local_dc + (int)param_2);\n                  }\n                  else {\n                    uVar7 = 0;\n                  }\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    uVar7 = (uint)*(byte *)((int)ppppppcVar32 + uVar7);\n                  }\n                  if (*(code *)((int)local_148 + uVar7) == (code)0x0) {\n                    local_150 = (code *******)0x1;\n                    pppppppcVar30 = param_9;\n                    pppppppcVar33 = pppppppcVar28;\n                    goto LAB_000557e4;\n                  }\n                }" (if "if") (parenthesized_expression "(local_dc == pppppppcVar26)" (( "(") (binary_expression "local_dc == pppppppcVar26" (identifier "local_dc") (== "==") (identifier "pppppppcVar26")) () ")")) (compound_statement "{\n                  if ((int)local_dc < (int)param_3) {\n                    uVar7 = (uint)(byte)*(code *)((int)local_dc + (int)param_2);\n                  }\n                  else {\n                    uVar7 = 0;\n                  }\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    uVar7 = (uint)*(byte *)((int)ppppppcVar32 + uVar7);\n                  }\n                  if (*(code *)((int)local_148 + uVar7) == (code)0x0) {\n                    local_150 = (code *******)0x1;\n                    pppppppcVar30 = param_9;\n                    pppppppcVar33 = pppppppcVar28;\n                    goto LAB_000557e4;\n                  }\n                }" ({ "{") (if_statement "if ((int)local_dc < (int)param_3) {\n                    uVar7 = (uint)(byte)*(code *)((int)local_dc + (int)param_2);\n                  }\n                  else {\n                    uVar7 = 0;\n                  }" (if "if") (parenthesized_expression "((int)local_dc < (int)param_3)" (( "(") (binary_expression "(int)local_dc < (int)param_3" (cast_expression "(int)local_dc" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_dc")) (< "<") (cast_expression "(int)param_3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_3"))) () ")")) (compound_statement "{\n                    uVar7 = (uint)(byte)*(code *)((int)local_dc + (int)param_2);\n                  }" ({ "{") (expression_statement "uVar7 = (uint)(byte)*(code *)((int)local_dc + (int)param_2);" (assignment_expression "uVar7 = (uint)(byte)*(code *)((int)local_dc + (int)param_2)" (identifier "uVar7") (= "=") (binary_expression "(uint)(byte)*(code *)((int)local_dc + (int)param_2)" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(byte)" (( "(") (identifier "byte") () ")"))) (* "*") (cast_expression "(code *)((int)local_dc + (int)param_2)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_dc + (int)param_2)" (( "(") (binary_expression "(int)local_dc + (int)param_2" (cast_expression "(int)local_dc" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_dc")) (+ "+") (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2"))) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n                    uVar7 = 0;\n                  }" (else "else") (compound_statement "{\n                    uVar7 = 0;\n                  }" ({ "{") (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" (identifier "uVar7") (= "=") (number_literal "0")) (; ";")) (} "}")))) (if_statement "if (ppppppcVar32 != (code ******)0x0) {\n                    uVar7 = (uint)*(byte *)((int)ppppppcVar32 + uVar7);\n                  }" (if "if") (parenthesized_expression "(ppppppcVar32 != (code ******)0x0)" (( "(") (binary_expression "ppppppcVar32 != (code ******)0x0" (identifier "ppppppcVar32") (!= "!=") (cast_expression "(code ******)0x0" (( "(") (type_descriptor "code ******" (type_identifier "code") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                    uVar7 = (uint)*(byte *)((int)ppppppcVar32 + uVar7);\n                  }" ({ "{") (expression_statement "uVar7 = (uint)*(byte *)((int)ppppppcVar32 + uVar7);" (assignment_expression "uVar7 = (uint)*(byte *)((int)ppppppcVar32 + uVar7)" (identifier "uVar7") (= "=") (binary_expression "(uint)*(byte *)((int)ppppppcVar32 + uVar7)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)((int)ppppppcVar32 + uVar7)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppppppcVar32 + uVar7)" (( "(") (binary_expression "(int)ppppppcVar32 + uVar7" (cast_expression "(int)ppppppcVar32" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppppppcVar32")) (+ "+") (identifier "uVar7")) () ")"))))) (; ";")) (} "}"))) (if_statement "if (*(code *)((int)local_148 + uVar7) == (code)0x0) {\n                    local_150 = (code *******)0x1;\n                    pppppppcVar30 = param_9;\n                    pppppppcVar33 = pppppppcVar28;\n                    goto LAB_000557e4;\n                  }" (if "if") (parenthesized_expression "(*(code *)((int)local_148 + uVar7) == (code)0x0)" (( "(") (binary_expression "*(code *)((int)local_148 + uVar7) == (code)0x0" (pointer_expression "*(code *)((int)local_148 + uVar7)" (* "*") (cast_expression "(code *)((int)local_148 + uVar7)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_148 + uVar7)" (( "(") (binary_expression "(int)local_148 + uVar7" (cast_expression "(int)local_148" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_148")) (+ "+") (identifier "uVar7")) () ")")))) (== "==") (cast_expression "(code)0x0" (( "(") (type_descriptor "code" (type_identifier "code")) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                    local_150 = (code *******)0x1;\n                    pppppppcVar30 = param_9;\n                    pppppppcVar33 = pppppppcVar28;\n                    goto LAB_000557e4;\n                  }" ({ "{") (expression_statement "local_150 = (code *******)0x1;" (assignment_expression "local_150 = (code *******)0x1" (identifier "local_150") (= "=") (cast_expression "(code *******)0x1" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x1"))) (; ";")) (expression_statement "pppppppcVar30 = param_9;" (assignment_expression "pppppppcVar30 = param_9" (identifier "pppppppcVar30") (= "=") (identifier "param_9")) (; ";")) (expression_statement "pppppppcVar33 = pppppppcVar28;" (assignment_expression "pppppppcVar33 = pppppppcVar28" (identifier "pppppppcVar33") (= "=") (identifier "pppppppcVar28")) (; ";")) (goto_statement "goto LAB_000557e4;" (goto "goto") (statement_identifier "LAB_000557e4") (; ";")) (} "}"))) (} "}"))) (} "}"))) (expression_statement "pppppppcVar33 = pppppppcVar28;" (assignment_expression "pppppppcVar33 = pppppppcVar28" (identifier "pppppppcVar33") (= "=") (identifier "pppppppcVar28")) (; ";")) (expression_statement "bVar1 = pppppppcVar36 != (code *******)0x0;" (assignment_expression "bVar1 = pppppppcVar36 != (code *******)0x0" (identifier "bVar1") (= "=") (binary_expression "pppppppcVar36 != (code *******)0x0" (identifier "pppppppcVar36") (!= "!=") (cast_expression "(code *******)0x0" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0")))) (; ";")) (if_statement "if ((local_50 == (code *******)0x0) ||\n                 (local_50[(int)pppppppcVar42] = (code ******)unaff_s7,\n                 pppppppcVar14[0x13] == (code ******)0x0)) {\nLAB_00054d50:\n                if ((int)unaff_s7[0xd] << 4 < 0) {\n                  if ((((uint)unaff_s7[0xd] & 0x1000000) == 0) ||\n                     (pppppppcVar29 = unaff_s7, pppppppcVar30 = pppppppcVar42,\n                     iVar18 = FUN_00049440(&local_b4), iVar18 != 0)) {\n                    unaff_s8 = pppppppcVar42;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                  }\n                  else {\n                    pppppppcVar42 = (code *******)0xffffffff;\n                    pppppppcVar28 = (code *******)0x0;\n                  }\n                }\n                else {\n                  pppppppcVar42 = (code *******)0xffffffff;\n                  pppppppcVar28 = (code *******)0x0;\n                }\n                pcVar8 = (code *)(PTR_DAT_000799a4 + -0x7144);\n                pcVar9 = (code *)(PTR_DAT_000799a4 + -0x1980);\n                pcVar10 = (code *)(PTR_DAT_000799a4 + -0x2f9c);\n                unaff_s8 = pppppppcVar42;\n                local_144 = pppppppcVar36;\n                while( true ) {\n                  uVar44 = CONCAT44(local_98,local_84);\n                  unaff_s5 = (code *******)((int)local_8c + 1);\n                  pppppppcVar29 = local_8c;\n                  if ((int)local_7c <= (int)local_8c) break;\n                  if (((int)local_90 <= (int)unaff_s5) && ((int)local_90 < (int)local_84))\n                  goto LAB_00054e94;\n                  if ((int)local_98 <= (int)unaff_s5) {\n                    while ((int)((ulonglong)uVar44 >> 0x20) < (int)uVar44) {\nLAB_00054e94:\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 2);\n                      local_d8 = (code *******)(*pcVar8)(&local_b4);\n                      if (local_d8 == (code *******)0x0) break;\n                      pppppppcVar14 = param_4;\n                      if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                      pppppppcVar33 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                      pppppppcVar30 = (code *******)0x46c;\n                      pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                      uVar44 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0);\n                      pppppppcVar28 = pppppppcVar38;\n                    }\n                  }\n                  pppppppcVar42 = local_60;\n                  if ((int)unaff_s7[0xd] << 5 < 0) {\n                    pppppppcVar31 = pppppppcVar42;\n                    if (0 < (int)unaff_s7[2]) {\n                      pcVar11 = (code *)(PTR_DAT_000799a4 + -0x6fdc);\n                      pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6ef0);\n                      param_6 = (code *******)0x0;\n                      do {\n                        param_5 = (code *******)unaff_s7[3][(int)param_6];\n                        ppppppcVar39 = *pppppppcVar42;\n                        pppppcVar13 = ppppppcVar39[(int)param_5 * 2 + 1];\n                        if (((uint)pppppcVar13 & 0x800) != 0) {\n                          if (((uint)pppppcVar13 & 0xffc000) != 0) {\n                            pppppppcVar29 = local_8c;\n                            uVar19 = (*pcVar12)(&local_b4,local_8c,local_5c);\n                            uVar7 = (uint)((int)ppppppcVar39[(int)param_5 * 2 + 1] << 8) >> 0x16;\n                            if ((uVar7 & 4) == 0) {\n                              uVar27 = uVar19 & 1;\n                              if ((uVar7 & 8) != 0) goto joined_r0x00054f40;\n                            }\n                            else {\n                              uVar27 = uVar7 & 8;\n                              if ((uVar19 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                              if (uVar27 != 0) goto LAB_000550a4;\n                            }\n                            if ((((uVar7 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                               (((uVar7 & 0x80) != 0 &&\n                                (pppppppcVar33 = local_8c, (uVar19 & 8) == 0)))) goto LAB_000550a4;\n                          }\n                          pppppppcVar30 = &local_b4;\n                          pppppppcVar29 = param_5;\n                          pppppppcVar33 = local_8c;\n                          iVar18 = (*pcVar10)(pppppppcVar42);\n                          if (iVar18 != 0) {\n                            pppppppcVar14 = (code *******)((int)local_8c + iVar18);\n                            if (iVar18 <= local_3c) {\n                              iVar18 = local_3c;\n                            }\n                            pppppppcVar29 = pppppppcVar14;\n                            local_3c = iVar18;\n                            local_d4 = (code *******)(*pcVar11)(&local_b4);\n                            pppppppcVar15 = local_d4;\n                            if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                            pppppppcVar30 =\n                                 (code *******)\n                                 (pppppppcVar42[6] + (int)pppppppcVar42[3][(int)param_5] * 3);\n                            unaff_s4 = (code *******)((int)pppppppcVar14 * 4);\n                            param_5 = local_50 + (int)pppppppcVar14;\n                            if (*param_5 == (code ******)0x0) {\n                              local_d0 = (code *******)*pppppppcVar30;\n                              local_cc = (code *******)pppppppcVar30[1];\n                              local_c8 = (code *******)pppppppcVar30[2];\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *param_5 = ppppppcVar39;\n                            }\n                            else {\n                              pppppppcVar29 = (code *******)(*param_5)[10];\n                              local_d4 = (code *******)FUN_000484bc(&local_d0);\n                              pppppppcVar15 = local_d4;\n                              if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar15 = local_50 + (int)pppppppcVar14;\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *pppppppcVar15 = ppppppcVar39;\n                              (*(code *)PTR_free_00079c24)(local_c8);\n                            }\n                            unaff_s4 = local_50 + (int)pppppppcVar14;\n                            if ((*unaff_s4 == (code ******)0x0) &&\n                               (pppppppcVar15 = local_d4, local_d4 != (code *******)0x0))\n                            goto LAB_00055e44;\n                          }\n                        }\nLAB_000550a4:\n                        param_6 = (code *******)((int)param_6 + 1);\n                      } while ((int)param_6 < (int)unaff_s7[2]);\n                    }\n                    local_d8 = (code *******)0x0;\n                  }\n                  uVar7 = (uint)(byte)*(code *)((int)local_8c + (int)local_b0);\n                  local_8c = (code *******)((int)local_8c + 1);\n                  do {\n                    if (unaff_s7[0xb] != (code ******)0x0) {\n                      pppppppcVar30 = (code *******)unaff_s7[0xb][uVar7];\nLAB_000553a0:\n                      pppppppcVar14 = pppppppcVar30;\n                      if (local_50 != (code *******)0x0) goto LAB_000553ac;\n                      goto LAB_000553cc;\n                    }\n                    pppppppcVar31 = (code *******)unaff_s7[0xc];\n                    if (pppppppcVar31 != (code *******)0x0) {\n                      pppppppcVar29 = (code *******)((int)local_8c + -1);\n                      uVar19 = FUN_00049110(&local_b4);\n                      if ((uVar19 & 1) == 0) {\n                        pppppppcVar30 = (code *******)pppppppcVar31[uVar7];\n                      }\n                      else {\n                        pppppppcVar31 = pppppppcVar31 + uVar7 + 0x100;\n                        pppppppcVar30 = (code *******)*pppppppcVar31;\n                      }\n                      goto LAB_000553a0;\n                    }\n                    pppppppcVar29 = unaff_s7;\n                    pppppppcVar30 = local_5c;\n                    iVar18 = (*pcVar9)(local_60);\n                  } while (iVar18 != 0);\n                  local_d8 = (code *******)0xc;\n                  pppppppcVar15 = local_d8;\nLAB_00055e44:\n                  local_d8 = pppppppcVar15;\n                  param_4 = (code *******)0x0;\n                  if (local_50 == (code *******)0x0) {\n                    pppppppcVar14 = param_4;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    break;\n                  }\n                  pppppppcVar30 = (code *******)0x0;\nLAB_000553ac:\n                  pppppppcVar29 = &local_b4;\n                  pppppppcVar14 = (code *******)FUN_00053684(&local_d8);\nLAB_000553cc:\n                  param_4 = pppppppcVar14;\n                  if (pppppppcVar14 == (code *******)0x0) {\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    if ((local_50 == (code *******)0x0) ||\n                       ((pppppppcVar28 != (code *******)0x0 && (pppppppcVar34 == (code *******)0x0))\n                       )) break;\n                    param_6 = &local_b4;\n                    param_5 = (code *******)&local_d8;\n                    pppppppcVar31 = (code *******)(PTR_DAT_000799a4 + 0x3684);\n                    do {\n                      pppppppcVar15 = local_50 + (int)local_8c;\n                      pppppppcVar42 = local_8c;\n                      do {\n                        pppppppcVar42 = (code *******)((int)pppppppcVar42 + 1);\n                        pppppppcVar29 = local_4c;\n                        param_4 = pppppppcVar14;\n                        if ((int)local_4c < (int)pppppppcVar42) goto LAB_00055da8;\n                        local_8c = (code *******)((int)local_8c + 1);\n                        pppppppcVar15 = pppppppcVar15 + 1;\n                      } while (*pppppppcVar15 == (code ******)0x0);\n                      pppppppcVar30 = (code *******)0x0;\n                      pppppppcVar29 = param_6;\n                      param_4 = (code *******)(*(code *)pppppppcVar31)(param_5);\n                      if (local_d8 != (code *******)0x0) {\n                        if (param_4 == (code *******)0x0) goto LAB_00055da8;\n                        break;\n                      }\n                      pppppppcVar29 = local_4c;\n                    } while (param_4 == (code *******)0x0);\n                  }\n                  pppppppcVar15 = (code *******)((uint)unaff_s7 ^ (uint)param_4);\n                  pppppppcVar42 = unaff_s7;\n                  pppppppcVar14 = local_138;\n                  if ((bVar1) &&\n                     (pppppppcVar42 = pppppppcVar15, pppppppcVar14 = unaff_s5,\n                     pppppppcVar15 != (code *******)0x0)) {\n                    bVar1 = false;\n                    pppppppcVar14 = local_138;\n                  }\n                  local_138 = pppppppcVar14;\n                  unaff_s7 = param_4;\n                  if ((((uint)param_4[0xd] & 0x8000000) != 0) &&\n                     ((((uint)param_4[0xd] & 0x1000000) == 0 ||\n                      (pppppppcVar29 = param_4, pppppppcVar30 = local_8c,\n                      iVar18 = FUN_00049440(&local_b4), iVar18 != 0)))) {\n                    unaff_s7 = pppppppcVar42;\n                    unaff_s8 = local_8c;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                    local_144 = (code *******)0x0;\n                    unaff_s7 = param_4;\n                  }\n                }\nLAB_00055da8:\n                if (local_144 != (code *******)0x0) {\n                  *local_144 = (code ******)((int)local_138 + (int)*local_144);\n                }\n              }\n              else {\n                param_4 = unaff_s7 + 1;\n                pppppppcVar30 = (code *******)0x0;\n                pppppppcVar29 = param_4;\n                local_d8 = (code *******)FUN_00047a44(&local_b4);\n                unaff_s8 = local_d8;\n                if (local_d8 == (code *******)0x0) {\n                  if (((uint)unaff_s7[0xd] & 0x2000000) == 0) {\n                    pppppppcVar29 = param_4;\n                    bVar1 = false;\n                  }\n                  else {\n                    pppppppcVar29 = param_4;\n                    local_d8 = (code *******)FUN_00052d84(&local_b4);\n                    unaff_s8 = local_d8;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055dbc;\n                    bVar1 = false;\n                  }\n                  goto LAB_00054d50;\n                }\n              }" (if "if") (parenthesized_expression "((local_50 == (code *******)0x0) ||\n                 (local_50[(int)pppppppcVar42] = (code ******)unaff_s7,\n                 pppppppcVar14[0x13] == (code ******)0x0))" (( "(") (binary_expression "(local_50 == (code *******)0x0) ||\n                 (local_50[(int)pppppppcVar42] = (code ******)unaff_s7,\n                 pppppppcVar14[0x13] == (code ******)0x0)" (parenthesized_expression "(local_50 == (code *******)0x0)" (( "(") (binary_expression "local_50 == (code *******)0x0" (identifier "local_50") (== "==") (cast_expression "(code *******)0x0" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) () ")")) (|| "||") (parenthesized_expression "(local_50[(int)pppppppcVar42] = (code ******)unaff_s7,\n                 pppppppcVar14[0x13] == (code ******)0x0)" (( "(") (comma_expression "local_50[(int)pppppppcVar42] = (code ******)unaff_s7,\n                 pppppppcVar14[0x13] == (code ******)0x0" (assignment_expression "local_50[(int)pppppppcVar42] = (code ******)unaff_s7" (subscript_expression "local_50[(int)pppppppcVar42]" (identifier "local_50") ([ "[") (cast_expression "(int)pppppppcVar42" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppcVar42")) (] "]")) (= "=") (cast_expression "(code ******)unaff_s7" (( "(") (type_descriptor "code ******" (type_identifier "code") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (identifier "unaff_s7"))) (, ",") (binary_expression "pppppppcVar14[0x13] == (code ******)0x0" (subscript_expression "pppppppcVar14[0x13]" (identifier "pppppppcVar14") ([ "[") (number_literal "0x13") (] "]")) (== "==") (cast_expression "(code ******)0x0" (( "(") (type_descriptor "code ******" (type_identifier "code") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0")))) () ")"))) () ")")) (compound_statement "{\nLAB_00054d50:\n                if ((int)unaff_s7[0xd] << 4 < 0) {\n                  if ((((uint)unaff_s7[0xd] & 0x1000000) == 0) ||\n                     (pppppppcVar29 = unaff_s7, pppppppcVar30 = pppppppcVar42,\n                     iVar18 = FUN_00049440(&local_b4), iVar18 != 0)) {\n                    unaff_s8 = pppppppcVar42;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                  }\n                  else {\n                    pppppppcVar42 = (code *******)0xffffffff;\n                    pppppppcVar28 = (code *******)0x0;\n                  }\n                }\n                else {\n                  pppppppcVar42 = (code *******)0xffffffff;\n                  pppppppcVar28 = (code *******)0x0;\n                }\n                pcVar8 = (code *)(PTR_DAT_000799a4 + -0x7144);\n                pcVar9 = (code *)(PTR_DAT_000799a4 + -0x1980);\n                pcVar10 = (code *)(PTR_DAT_000799a4 + -0x2f9c);\n                unaff_s8 = pppppppcVar42;\n                local_144 = pppppppcVar36;\n                while( true ) {\n                  uVar44 = CONCAT44(local_98,local_84);\n                  unaff_s5 = (code *******)((int)local_8c + 1);\n                  pppppppcVar29 = local_8c;\n                  if ((int)local_7c <= (int)local_8c) break;\n                  if (((int)local_90 <= (int)unaff_s5) && ((int)local_90 < (int)local_84))\n                  goto LAB_00054e94;\n                  if ((int)local_98 <= (int)unaff_s5) {\n                    while ((int)((ulonglong)uVar44 >> 0x20) < (int)uVar44) {\nLAB_00054e94:\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 2);\n                      local_d8 = (code *******)(*pcVar8)(&local_b4);\n                      if (local_d8 == (code *******)0x0) break;\n                      pppppppcVar14 = param_4;\n                      if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                      pppppppcVar33 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                      pppppppcVar30 = (code *******)0x46c;\n                      pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                      uVar44 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0);\n                      pppppppcVar28 = pppppppcVar38;\n                    }\n                  }\n                  pppppppcVar42 = local_60;\n                  if ((int)unaff_s7[0xd] << 5 < 0) {\n                    pppppppcVar31 = pppppppcVar42;\n                    if (0 < (int)unaff_s7[2]) {\n                      pcVar11 = (code *)(PTR_DAT_000799a4 + -0x6fdc);\n                      pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6ef0);\n                      param_6 = (code *******)0x0;\n                      do {\n                        param_5 = (code *******)unaff_s7[3][(int)param_6];\n                        ppppppcVar39 = *pppppppcVar42;\n                        pppppcVar13 = ppppppcVar39[(int)param_5 * 2 + 1];\n                        if (((uint)pppppcVar13 & 0x800) != 0) {\n                          if (((uint)pppppcVar13 & 0xffc000) != 0) {\n                            pppppppcVar29 = local_8c;\n                            uVar19 = (*pcVar12)(&local_b4,local_8c,local_5c);\n                            uVar7 = (uint)((int)ppppppcVar39[(int)param_5 * 2 + 1] << 8) >> 0x16;\n                            if ((uVar7 & 4) == 0) {\n                              uVar27 = uVar19 & 1;\n                              if ((uVar7 & 8) != 0) goto joined_r0x00054f40;\n                            }\n                            else {\n                              uVar27 = uVar7 & 8;\n                              if ((uVar19 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                              if (uVar27 != 0) goto LAB_000550a4;\n                            }\n                            if ((((uVar7 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                               (((uVar7 & 0x80) != 0 &&\n                                (pppppppcVar33 = local_8c, (uVar19 & 8) == 0)))) goto LAB_000550a4;\n                          }\n                          pppppppcVar30 = &local_b4;\n                          pppppppcVar29 = param_5;\n                          pppppppcVar33 = local_8c;\n                          iVar18 = (*pcVar10)(pppppppcVar42);\n                          if (iVar18 != 0) {\n                            pppppppcVar14 = (code *******)((int)local_8c + iVar18);\n                            if (iVar18 <= local_3c) {\n                              iVar18 = local_3c;\n                            }\n                            pppppppcVar29 = pppppppcVar14;\n                            local_3c = iVar18;\n                            local_d4 = (code *******)(*pcVar11)(&local_b4);\n                            pppppppcVar15 = local_d4;\n                            if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                            pppppppcVar30 =\n                                 (code *******)\n                                 (pppppppcVar42[6] + (int)pppppppcVar42[3][(int)param_5] * 3);\n                            unaff_s4 = (code *******)((int)pppppppcVar14 * 4);\n                            param_5 = local_50 + (int)pppppppcVar14;\n                            if (*param_5 == (code ******)0x0) {\n                              local_d0 = (code *******)*pppppppcVar30;\n                              local_cc = (code *******)pppppppcVar30[1];\n                              local_c8 = (code *******)pppppppcVar30[2];\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *param_5 = ppppppcVar39;\n                            }\n                            else {\n                              pppppppcVar29 = (code *******)(*param_5)[10];\n                              local_d4 = (code *******)FUN_000484bc(&local_d0);\n                              pppppppcVar15 = local_d4;\n                              if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar15 = local_50 + (int)pppppppcVar14;\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *pppppppcVar15 = ppppppcVar39;\n                              (*(code *)PTR_free_00079c24)(local_c8);\n                            }\n                            unaff_s4 = local_50 + (int)pppppppcVar14;\n                            if ((*unaff_s4 == (code ******)0x0) &&\n                               (pppppppcVar15 = local_d4, local_d4 != (code *******)0x0))\n                            goto LAB_00055e44;\n                          }\n                        }\nLAB_000550a4:\n                        param_6 = (code *******)((int)param_6 + 1);\n                      } while ((int)param_6 < (int)unaff_s7[2]);\n                    }\n                    local_d8 = (code *******)0x0;\n                  }\n                  uVar7 = (uint)(byte)*(code *)((int)local_8c + (int)local_b0);\n                  local_8c = (code *******)((int)local_8c + 1);\n                  do {\n                    if (unaff_s7[0xb] != (code ******)0x0) {\n                      pppppppcVar30 = (code *******)unaff_s7[0xb][uVar7];\nLAB_000553a0:\n                      pppppppcVar14 = pppppppcVar30;\n                      if (local_50 != (code *******)0x0) goto LAB_000553ac;\n                      goto LAB_000553cc;\n                    }\n                    pppppppcVar31 = (code *******)unaff_s7[0xc];\n                    if (pppppppcVar31 != (code *******)0x0) {\n                      pppppppcVar29 = (code *******)((int)local_8c + -1);\n                      uVar19 = FUN_00049110(&local_b4);\n                      if ((uVar19 & 1) == 0) {\n                        pppppppcVar30 = (code *******)pppppppcVar31[uVar7];\n                      }\n                      else {\n                        pppppppcVar31 = pppppppcVar31 + uVar7 + 0x100;\n                        pppppppcVar30 = (code *******)*pppppppcVar31;\n                      }\n                      goto LAB_000553a0;\n                    }\n                    pppppppcVar29 = unaff_s7;\n                    pppppppcVar30 = local_5c;\n                    iVar18 = (*pcVar9)(local_60);\n                  } while (iVar18 != 0);\n                  local_d8 = (code *******)0xc;\n                  pppppppcVar15 = local_d8;\nLAB_00055e44:\n                  local_d8 = pppppppcVar15;\n                  param_4 = (code *******)0x0;\n                  if (local_50 == (code *******)0x0) {\n                    pppppppcVar14 = param_4;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    break;\n                  }\n                  pppppppcVar30 = (code *******)0x0;\nLAB_000553ac:\n                  pppppppcVar29 = &local_b4;\n                  pppppppcVar14 = (code *******)FUN_00053684(&local_d8);\nLAB_000553cc:\n                  param_4 = pppppppcVar14;\n                  if (pppppppcVar14 == (code *******)0x0) {\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    if ((local_50 == (code *******)0x0) ||\n                       ((pppppppcVar28 != (code *******)0x0 && (pppppppcVar34 == (code *******)0x0))\n                       )) break;\n                    param_6 = &local_b4;\n                    param_5 = (code *******)&local_d8;\n                    pppppppcVar31 = (code *******)(PTR_DAT_000799a4 + 0x3684);\n                    do {\n                      pppppppcVar15 = local_50 + (int)local_8c;\n                      pppppppcVar42 = local_8c;\n                      do {\n                        pppppppcVar42 = (code *******)((int)pppppppcVar42 + 1);\n                        pppppppcVar29 = local_4c;\n                        param_4 = pppppppcVar14;\n                        if ((int)local_4c < (int)pppppppcVar42) goto LAB_00055da8;\n                        local_8c = (code *******)((int)local_8c + 1);\n                        pppppppcVar15 = pppppppcVar15 + 1;\n                      } while (*pppppppcVar15 == (code ******)0x0);\n                      pppppppcVar30 = (code *******)0x0;\n                      pppppppcVar29 = param_6;\n                      param_4 = (code *******)(*(code *)pppppppcVar31)(param_5);\n                      if (local_d8 != (code *******)0x0) {\n                        if (param_4 == (code *******)0x0) goto LAB_00055da8;\n                        break;\n                      }\n                      pppppppcVar29 = local_4c;\n                    } while (param_4 == (code *******)0x0);\n                  }\n                  pppppppcVar15 = (code *******)((uint)unaff_s7 ^ (uint)param_4);\n                  pppppppcVar42 = unaff_s7;\n                  pppppppcVar14 = local_138;\n                  if ((bVar1) &&\n                     (pppppppcVar42 = pppppppcVar15, pppppppcVar14 = unaff_s5,\n                     pppppppcVar15 != (code *******)0x0)) {\n                    bVar1 = false;\n                    pppppppcVar14 = local_138;\n                  }\n                  local_138 = pppppppcVar14;\n                  unaff_s7 = param_4;\n                  if ((((uint)param_4[0xd] & 0x8000000) != 0) &&\n                     ((((uint)param_4[0xd] & 0x1000000) == 0 ||\n                      (pppppppcVar29 = param_4, pppppppcVar30 = local_8c,\n                      iVar18 = FUN_00049440(&local_b4), iVar18 != 0)))) {\n                    unaff_s7 = pppppppcVar42;\n                    unaff_s8 = local_8c;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                    local_144 = (code *******)0x0;\n                    unaff_s7 = param_4;\n                  }\n                }\nLAB_00055da8:\n                if (local_144 != (code *******)0x0) {\n                  *local_144 = (code ******)((int)local_138 + (int)*local_144);\n                }\n              }" ({ "{") (labeled_statement "LAB_00054d50:\n                if ((int)unaff_s7[0xd] << 4 < 0) {\n                  if ((((uint)unaff_s7[0xd] & 0x1000000) == 0) ||\n                     (pppppppcVar29 = unaff_s7, pppppppcVar30 = pppppppcVar42,\n                     iVar18 = FUN_00049440(&local_b4), iVar18 != 0)) {\n                    unaff_s8 = pppppppcVar42;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                  }\n                  else {\n                    pppppppcVar42 = (code *******)0xffffffff;\n                    pppppppcVar28 = (code *******)0x0;\n                  }\n                }\n                else {\n                  pppppppcVar42 = (code *******)0xffffffff;\n                  pppppppcVar28 = (code *******)0x0;\n                }" (statement_identifier "LAB_00054d50") (: ":") (if_statement "if ((int)unaff_s7[0xd] << 4 < 0) {\n                  if ((((uint)unaff_s7[0xd] & 0x1000000) == 0) ||\n                     (pppppppcVar29 = unaff_s7, pppppppcVar30 = pppppppcVar42,\n                     iVar18 = FUN_00049440(&local_b4), iVar18 != 0)) {\n                    unaff_s8 = pppppppcVar42;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                  }\n                  else {\n                    pppppppcVar42 = (code *******)0xffffffff;\n                    pppppppcVar28 = (code *******)0x0;\n                  }\n                }\n                else {\n                  pppppppcVar42 = (code *******)0xffffffff;\n                  pppppppcVar28 = (code *******)0x0;\n                }" (if "if") (parenthesized_expression "((int)unaff_s7[0xd] << 4 < 0)" (( "(") (binary_expression "(int)unaff_s7[0xd] << 4 < 0" (binary_expression "(int)unaff_s7[0xd] << 4" (cast_expression "(int)unaff_s7[0xd]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "unaff_s7[0xd]" (identifier "unaff_s7") ([ "[") (number_literal "0xd") (] "]"))) (<< "<<") (number_literal "4")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n                  if ((((uint)unaff_s7[0xd] & 0x1000000) == 0) ||\n                     (pppppppcVar29 = unaff_s7, pppppppcVar30 = pppppppcVar42,\n                     iVar18 = FUN_00049440(&local_b4), iVar18 != 0)) {\n                    unaff_s8 = pppppppcVar42;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                  }\n                  else {\n                    pppppppcVar42 = (code *******)0xffffffff;\n                    pppppppcVar28 = (code *******)0x0;\n                  }\n                }" ({ "{") (if_statement "if ((((uint)unaff_s7[0xd] & 0x1000000) == 0) ||\n                     (pppppppcVar29 = unaff_s7, pppppppcVar30 = pppppppcVar42,\n                     iVar18 = FUN_00049440(&local_b4), iVar18 != 0)) {\n                    unaff_s8 = pppppppcVar42;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                  }\n                  else {\n                    pppppppcVar42 = (code *******)0xffffffff;\n                    pppppppcVar28 = (code *******)0x0;\n                  }" (if "if") (parenthesized_expression "((((uint)unaff_s7[0xd] & 0x1000000) == 0) ||\n                     (pppppppcVar29 = unaff_s7, pppppppcVar30 = pppppppcVar42,\n                     iVar18 = FUN_00049440(&local_b4), iVar18 != 0))" (( "(") (binary_expression "(((uint)unaff_s7[0xd] & 0x1000000) == 0) ||\n                     (pppppppcVar29 = unaff_s7, pppppppcVar30 = pppppppcVar42,\n                     iVar18 = FUN_00049440(&local_b4), iVar18 != 0)" (parenthesized_expression "(((uint)unaff_s7[0xd] & 0x1000000) == 0)" (( "(") (binary_expression "((uint)unaff_s7[0xd] & 0x1000000) == 0" (parenthesized_expression "((uint)unaff_s7[0xd] & 0x1000000)" (( "(") (binary_expression "(uint)unaff_s7[0xd] & 0x1000000" (cast_expression "(uint)unaff_s7[0xd]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "unaff_s7[0xd]" (identifier "unaff_s7") ([ "[") (number_literal "0xd") (] "]"))) (& "&") (number_literal "0x1000000")) () ")")) (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(pppppppcVar29 = unaff_s7, pppppppcVar30 = pppppppcVar42,\n                     iVar18 = FUN_00049440(&local_b4), iVar18 != 0)" (( "(") (comma_expression "pppppppcVar29 = unaff_s7, pppppppcVar30 = pppppppcVar42,\n                     iVar18 = FUN_00049440(&local_b4), iVar18 != 0" (assignment_expression "pppppppcVar29 = unaff_s7" (identifier "pppppppcVar29") (= "=") (identifier "unaff_s7")) (, ",") (comma_expression "pppppppcVar30 = pppppppcVar42,\n                     iVar18 = FUN_00049440(&local_b4), iVar18 != 0" (assignment_expression "pppppppcVar30 = pppppppcVar42" (identifier "pppppppcVar30") (= "=") (identifier "pppppppcVar42")) (, ",") (comma_expression "iVar18 = FUN_00049440(&local_b4), iVar18 != 0" (assignment_expression "iVar18 = FUN_00049440(&local_b4)" (identifier "iVar18") (= "=") (call_expression "FUN_00049440(&local_b4)" (identifier "FUN_00049440") (argument_list "(&local_b4)" (( "(") (pointer_expression "&local_b4" (& "&") (identifier "local_b4")) () ")")))) (, ",") (binary_expression "iVar18 != 0" (identifier "iVar18") (!= "!=") (number_literal "0"))))) () ")"))) () ")")) (compound_statement "{\n                    unaff_s8 = pppppppcVar42;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                  }" ({ "{") (expression_statement "unaff_s8 = pppppppcVar42;" (assignment_expression "unaff_s8 = pppppppcVar42" (identifier "unaff_s8") (= "=") (identifier "pppppppcVar42")) (; ";")) (if_statement "if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;" (if "if") (parenthesized_expression "(pppppppcVar34 == (code *******)0x0)" (( "(") (binary_expression "pppppppcVar34 == (code *******)0x0" (identifier "pppppppcVar34") (== "==") (cast_expression "(code *******)0x0" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00055dbc;" (goto "goto") (statement_identifier "LAB_00055dbc") (; ";"))) (expression_statement "pppppppcVar28 = (code *******)0x1;" (assignment_expression "pppppppcVar28 = (code *******)0x1" (identifier "pppppppcVar28") (= "=") (cast_expression "(code *******)0x1" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x1"))) (; ";")) (} "}")) (else_clause "else {\n                    pppppppcVar42 = (code *******)0xffffffff;\n                    pppppppcVar28 = (code *******)0x0;\n                  }" (else "else") (compound_statement "{\n                    pppppppcVar42 = (code *******)0xffffffff;\n                    pppppppcVar28 = (code *******)0x0;\n                  }" ({ "{") (expression_statement "pppppppcVar42 = (code *******)0xffffffff;" (assignment_expression "pppppppcVar42 = (code *******)0xffffffff" (identifier "pppppppcVar42") (= "=") (cast_expression "(code *******)0xffffffff" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0xffffffff"))) (; ";")) (expression_statement "pppppppcVar28 = (code *******)0x0;" (assignment_expression "pppppppcVar28 = (code *******)0x0" (identifier "pppppppcVar28") (= "=") (cast_expression "(code *******)0x0" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n                  pppppppcVar42 = (code *******)0xffffffff;\n                  pppppppcVar28 = (code *******)0x0;\n                }" (else "else") (compound_statement "{\n                  pppppppcVar42 = (code *******)0xffffffff;\n                  pppppppcVar28 = (code *******)0x0;\n                }" ({ "{") (expression_statement "pppppppcVar42 = (code *******)0xffffffff;" (assignment_expression "pppppppcVar42 = (code *******)0xffffffff" (identifier "pppppppcVar42") (= "=") (cast_expression "(code *******)0xffffffff" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0xffffffff"))) (; ";")) (expression_statement "pppppppcVar28 = (code *******)0x0;" (assignment_expression "pppppppcVar28 = (code *******)0x0" (identifier "pppppppcVar28") (= "=") (cast_expression "(code *******)0x0" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) (; ";")) (} "}"))))) (expression_statement "pcVar8 = (code *)(PTR_DAT_000799a4 + -0x7144);" (assignment_expression "pcVar8 = (code *)(PTR_DAT_000799a4 + -0x7144)" (identifier "pcVar8") (= "=") (cast_expression "(code *)(PTR_DAT_000799a4 + -0x7144)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_000799a4 + -0x7144)" (( "(") (binary_expression "PTR_DAT_000799a4 + -0x7144" (identifier "PTR_DAT_000799a4") (+ "+") (number_literal "-0x7144")) () ")")))) (; ";")) (expression_statement "pcVar9 = (code *)(PTR_DAT_000799a4 + -0x1980);" (assignment_expression "pcVar9 = (code *)(PTR_DAT_000799a4 + -0x1980)" (identifier "pcVar9") (= "=") (cast_expression "(code *)(PTR_DAT_000799a4 + -0x1980)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_000799a4 + -0x1980)" (( "(") (binary_expression "PTR_DAT_000799a4 + -0x1980" (identifier "PTR_DAT_000799a4") (+ "+") (number_literal "-0x1980")) () ")")))) (; ";")) (expression_statement "pcVar10 = (code *)(PTR_DAT_000799a4 + -0x2f9c);" (assignment_expression "pcVar10 = (code *)(PTR_DAT_000799a4 + -0x2f9c)" (identifier "pcVar10") (= "=") (cast_expression "(code *)(PTR_DAT_000799a4 + -0x2f9c)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_000799a4 + -0x2f9c)" (( "(") (binary_expression "PTR_DAT_000799a4 + -0x2f9c" (identifier "PTR_DAT_000799a4") (+ "+") (number_literal "-0x2f9c")) () ")")))) (; ";")) (expression_statement "unaff_s8 = pppppppcVar42;" (assignment_expression "unaff_s8 = pppppppcVar42" (identifier "unaff_s8") (= "=") (identifier "pppppppcVar42")) (; ";")) (expression_statement "local_144 = pppppppcVar36;" (assignment_expression "local_144 = pppppppcVar36" (identifier "local_144") (= "=") (identifier "pppppppcVar36")) (; ";")) (while_statement "while( true ) {\n                  uVar44 = CONCAT44(local_98,local_84);\n                  unaff_s5 = (code *******)((int)local_8c + 1);\n                  pppppppcVar29 = local_8c;\n                  if ((int)local_7c <= (int)local_8c) break;\n                  if (((int)local_90 <= (int)unaff_s5) && ((int)local_90 < (int)local_84))\n                  goto LAB_00054e94;\n                  if ((int)local_98 <= (int)unaff_s5) {\n                    while ((int)((ulonglong)uVar44 >> 0x20) < (int)uVar44) {\nLAB_00054e94:\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 2);\n                      local_d8 = (code *******)(*pcVar8)(&local_b4);\n                      if (local_d8 == (code *******)0x0) break;\n                      pppppppcVar14 = param_4;\n                      if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                      pppppppcVar33 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                      pppppppcVar30 = (code *******)0x46c;\n                      pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                      uVar44 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0);\n                      pppppppcVar28 = pppppppcVar38;\n                    }\n                  }\n                  pppppppcVar42 = local_60;\n                  if ((int)unaff_s7[0xd] << 5 < 0) {\n                    pppppppcVar31 = pppppppcVar42;\n                    if (0 < (int)unaff_s7[2]) {\n                      pcVar11 = (code *)(PTR_DAT_000799a4 + -0x6fdc);\n                      pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6ef0);\n                      param_6 = (code *******)0x0;\n                      do {\n                        param_5 = (code *******)unaff_s7[3][(int)param_6];\n                        ppppppcVar39 = *pppppppcVar42;\n                        pppppcVar13 = ppppppcVar39[(int)param_5 * 2 + 1];\n                        if (((uint)pppppcVar13 & 0x800) != 0) {\n                          if (((uint)pppppcVar13 & 0xffc000) != 0) {\n                            pppppppcVar29 = local_8c;\n                            uVar19 = (*pcVar12)(&local_b4,local_8c,local_5c);\n                            uVar7 = (uint)((int)ppppppcVar39[(int)param_5 * 2 + 1] << 8) >> 0x16;\n                            if ((uVar7 & 4) == 0) {\n                              uVar27 = uVar19 & 1;\n                              if ((uVar7 & 8) != 0) goto joined_r0x00054f40;\n                            }\n                            else {\n                              uVar27 = uVar7 & 8;\n                              if ((uVar19 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                              if (uVar27 != 0) goto LAB_000550a4;\n                            }\n                            if ((((uVar7 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                               (((uVar7 & 0x80) != 0 &&\n                                (pppppppcVar33 = local_8c, (uVar19 & 8) == 0)))) goto LAB_000550a4;\n                          }\n                          pppppppcVar30 = &local_b4;\n                          pppppppcVar29 = param_5;\n                          pppppppcVar33 = local_8c;\n                          iVar18 = (*pcVar10)(pppppppcVar42);\n                          if (iVar18 != 0) {\n                            pppppppcVar14 = (code *******)((int)local_8c + iVar18);\n                            if (iVar18 <= local_3c) {\n                              iVar18 = local_3c;\n                            }\n                            pppppppcVar29 = pppppppcVar14;\n                            local_3c = iVar18;\n                            local_d4 = (code *******)(*pcVar11)(&local_b4);\n                            pppppppcVar15 = local_d4;\n                            if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                            pppppppcVar30 =\n                                 (code *******)\n                                 (pppppppcVar42[6] + (int)pppppppcVar42[3][(int)param_5] * 3);\n                            unaff_s4 = (code *******)((int)pppppppcVar14 * 4);\n                            param_5 = local_50 + (int)pppppppcVar14;\n                            if (*param_5 == (code ******)0x0) {\n                              local_d0 = (code *******)*pppppppcVar30;\n                              local_cc = (code *******)pppppppcVar30[1];\n                              local_c8 = (code *******)pppppppcVar30[2];\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *param_5 = ppppppcVar39;\n                            }\n                            else {\n                              pppppppcVar29 = (code *******)(*param_5)[10];\n                              local_d4 = (code *******)FUN_000484bc(&local_d0);\n                              pppppppcVar15 = local_d4;\n                              if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar15 = local_50 + (int)pppppppcVar14;\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *pppppppcVar15 = ppppppcVar39;\n                              (*(code *)PTR_free_00079c24)(local_c8);\n                            }\n                            unaff_s4 = local_50 + (int)pppppppcVar14;\n                            if ((*unaff_s4 == (code ******)0x0) &&\n                               (pppppppcVar15 = local_d4, local_d4 != (code *******)0x0))\n                            goto LAB_00055e44;\n                          }\n                        }\nLAB_000550a4:\n                        param_6 = (code *******)((int)param_6 + 1);\n                      } while ((int)param_6 < (int)unaff_s7[2]);\n                    }\n                    local_d8 = (code *******)0x0;\n                  }\n                  uVar7 = (uint)(byte)*(code *)((int)local_8c + (int)local_b0);\n                  local_8c = (code *******)((int)local_8c + 1);\n                  do {\n                    if (unaff_s7[0xb] != (code ******)0x0) {\n                      pppppppcVar30 = (code *******)unaff_s7[0xb][uVar7];\nLAB_000553a0:\n                      pppppppcVar14 = pppppppcVar30;\n                      if (local_50 != (code *******)0x0) goto LAB_000553ac;\n                      goto LAB_000553cc;\n                    }\n                    pppppppcVar31 = (code *******)unaff_s7[0xc];\n                    if (pppppppcVar31 != (code *******)0x0) {\n                      pppppppcVar29 = (code *******)((int)local_8c + -1);\n                      uVar19 = FUN_00049110(&local_b4);\n                      if ((uVar19 & 1) == 0) {\n                        pppppppcVar30 = (code *******)pppppppcVar31[uVar7];\n                      }\n                      else {\n                        pppppppcVar31 = pppppppcVar31 + uVar7 + 0x100;\n                        pppppppcVar30 = (code *******)*pppppppcVar31;\n                      }\n                      goto LAB_000553a0;\n                    }\n                    pppppppcVar29 = unaff_s7;\n                    pppppppcVar30 = local_5c;\n                    iVar18 = (*pcVar9)(local_60);\n                  } while (iVar18 != 0);\n                  local_d8 = (code *******)0xc;\n                  pppppppcVar15 = local_d8;\nLAB_00055e44:\n                  local_d8 = pppppppcVar15;\n                  param_4 = (code *******)0x0;\n                  if (local_50 == (code *******)0x0) {\n                    pppppppcVar14 = param_4;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    break;\n                  }\n                  pppppppcVar30 = (code *******)0x0;\nLAB_000553ac:\n                  pppppppcVar29 = &local_b4;\n                  pppppppcVar14 = (code *******)FUN_00053684(&local_d8);\nLAB_000553cc:\n                  param_4 = pppppppcVar14;\n                  if (pppppppcVar14 == (code *******)0x0) {\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    if ((local_50 == (code *******)0x0) ||\n                       ((pppppppcVar28 != (code *******)0x0 && (pppppppcVar34 == (code *******)0x0))\n                       )) break;\n                    param_6 = &local_b4;\n                    param_5 = (code *******)&local_d8;\n                    pppppppcVar31 = (code *******)(PTR_DAT_000799a4 + 0x3684);\n                    do {\n                      pppppppcVar15 = local_50 + (int)local_8c;\n                      pppppppcVar42 = local_8c;\n                      do {\n                        pppppppcVar42 = (code *******)((int)pppppppcVar42 + 1);\n                        pppppppcVar29 = local_4c;\n                        param_4 = pppppppcVar14;\n                        if ((int)local_4c < (int)pppppppcVar42) goto LAB_00055da8;\n                        local_8c = (code *******)((int)local_8c + 1);\n                        pppppppcVar15 = pppppppcVar15 + 1;\n                      } while (*pppppppcVar15 == (code ******)0x0);\n                      pppppppcVar30 = (code *******)0x0;\n                      pppppppcVar29 = param_6;\n                      param_4 = (code *******)(*(code *)pppppppcVar31)(param_5);\n                      if (local_d8 != (code *******)0x0) {\n                        if (param_4 == (code *******)0x0) goto LAB_00055da8;\n                        break;\n                      }\n                      pppppppcVar29 = local_4c;\n                    } while (param_4 == (code *******)0x0);\n                  }\n                  pppppppcVar15 = (code *******)((uint)unaff_s7 ^ (uint)param_4);\n                  pppppppcVar42 = unaff_s7;\n                  pppppppcVar14 = local_138;\n                  if ((bVar1) &&\n                     (pppppppcVar42 = pppppppcVar15, pppppppcVar14 = unaff_s5,\n                     pppppppcVar15 != (code *******)0x0)) {\n                    bVar1 = false;\n                    pppppppcVar14 = local_138;\n                  }\n                  local_138 = pppppppcVar14;\n                  unaff_s7 = param_4;\n                  if ((((uint)param_4[0xd] & 0x8000000) != 0) &&\n                     ((((uint)param_4[0xd] & 0x1000000) == 0 ||\n                      (pppppppcVar29 = param_4, pppppppcVar30 = local_8c,\n                      iVar18 = FUN_00049440(&local_b4), iVar18 != 0)))) {\n                    unaff_s7 = pppppppcVar42;\n                    unaff_s8 = local_8c;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                    local_144 = (code *******)0x0;\n                    unaff_s7 = param_4;\n                  }\n                }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n                  uVar44 = CONCAT44(local_98,local_84);\n                  unaff_s5 = (code *******)((int)local_8c + 1);\n                  pppppppcVar29 = local_8c;\n                  if ((int)local_7c <= (int)local_8c) break;\n                  if (((int)local_90 <= (int)unaff_s5) && ((int)local_90 < (int)local_84))\n                  goto LAB_00054e94;\n                  if ((int)local_98 <= (int)unaff_s5) {\n                    while ((int)((ulonglong)uVar44 >> 0x20) < (int)uVar44) {\nLAB_00054e94:\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 2);\n                      local_d8 = (code *******)(*pcVar8)(&local_b4);\n                      if (local_d8 == (code *******)0x0) break;\n                      pppppppcVar14 = param_4;\n                      if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                      pppppppcVar33 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                      pppppppcVar30 = (code *******)0x46c;\n                      pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                      uVar44 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0);\n                      pppppppcVar28 = pppppppcVar38;\n                    }\n                  }\n                  pppppppcVar42 = local_60;\n                  if ((int)unaff_s7[0xd] << 5 < 0) {\n                    pppppppcVar31 = pppppppcVar42;\n                    if (0 < (int)unaff_s7[2]) {\n                      pcVar11 = (code *)(PTR_DAT_000799a4 + -0x6fdc);\n                      pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6ef0);\n                      param_6 = (code *******)0x0;\n                      do {\n                        param_5 = (code *******)unaff_s7[3][(int)param_6];\n                        ppppppcVar39 = *pppppppcVar42;\n                        pppppcVar13 = ppppppcVar39[(int)param_5 * 2 + 1];\n                        if (((uint)pppppcVar13 & 0x800) != 0) {\n                          if (((uint)pppppcVar13 & 0xffc000) != 0) {\n                            pppppppcVar29 = local_8c;\n                            uVar19 = (*pcVar12)(&local_b4,local_8c,local_5c);\n                            uVar7 = (uint)((int)ppppppcVar39[(int)param_5 * 2 + 1] << 8) >> 0x16;\n                            if ((uVar7 & 4) == 0) {\n                              uVar27 = uVar19 & 1;\n                              if ((uVar7 & 8) != 0) goto joined_r0x00054f40;\n                            }\n                            else {\n                              uVar27 = uVar7 & 8;\n                              if ((uVar19 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                              if (uVar27 != 0) goto LAB_000550a4;\n                            }\n                            if ((((uVar7 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                               (((uVar7 & 0x80) != 0 &&\n                                (pppppppcVar33 = local_8c, (uVar19 & 8) == 0)))) goto LAB_000550a4;\n                          }\n                          pppppppcVar30 = &local_b4;\n                          pppppppcVar29 = param_5;\n                          pppppppcVar33 = local_8c;\n                          iVar18 = (*pcVar10)(pppppppcVar42);\n                          if (iVar18 != 0) {\n                            pppppppcVar14 = (code *******)((int)local_8c + iVar18);\n                            if (iVar18 <= local_3c) {\n                              iVar18 = local_3c;\n                            }\n                            pppppppcVar29 = pppppppcVar14;\n                            local_3c = iVar18;\n                            local_d4 = (code *******)(*pcVar11)(&local_b4);\n                            pppppppcVar15 = local_d4;\n                            if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                            pppppppcVar30 =\n                                 (code *******)\n                                 (pppppppcVar42[6] + (int)pppppppcVar42[3][(int)param_5] * 3);\n                            unaff_s4 = (code *******)((int)pppppppcVar14 * 4);\n                            param_5 = local_50 + (int)pppppppcVar14;\n                            if (*param_5 == (code ******)0x0) {\n                              local_d0 = (code *******)*pppppppcVar30;\n                              local_cc = (code *******)pppppppcVar30[1];\n                              local_c8 = (code *******)pppppppcVar30[2];\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *param_5 = ppppppcVar39;\n                            }\n                            else {\n                              pppppppcVar29 = (code *******)(*param_5)[10];\n                              local_d4 = (code *******)FUN_000484bc(&local_d0);\n                              pppppppcVar15 = local_d4;\n                              if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar15 = local_50 + (int)pppppppcVar14;\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *pppppppcVar15 = ppppppcVar39;\n                              (*(code *)PTR_free_00079c24)(local_c8);\n                            }\n                            unaff_s4 = local_50 + (int)pppppppcVar14;\n                            if ((*unaff_s4 == (code ******)0x0) &&\n                               (pppppppcVar15 = local_d4, local_d4 != (code *******)0x0))\n                            goto LAB_00055e44;\n                          }\n                        }\nLAB_000550a4:\n                        param_6 = (code *******)((int)param_6 + 1);\n                      } while ((int)param_6 < (int)unaff_s7[2]);\n                    }\n                    local_d8 = (code *******)0x0;\n                  }\n                  uVar7 = (uint)(byte)*(code *)((int)local_8c + (int)local_b0);\n                  local_8c = (code *******)((int)local_8c + 1);\n                  do {\n                    if (unaff_s7[0xb] != (code ******)0x0) {\n                      pppppppcVar30 = (code *******)unaff_s7[0xb][uVar7];\nLAB_000553a0:\n                      pppppppcVar14 = pppppppcVar30;\n                      if (local_50 != (code *******)0x0) goto LAB_000553ac;\n                      goto LAB_000553cc;\n                    }\n                    pppppppcVar31 = (code *******)unaff_s7[0xc];\n                    if (pppppppcVar31 != (code *******)0x0) {\n                      pppppppcVar29 = (code *******)((int)local_8c + -1);\n                      uVar19 = FUN_00049110(&local_b4);\n                      if ((uVar19 & 1) == 0) {\n                        pppppppcVar30 = (code *******)pppppppcVar31[uVar7];\n                      }\n                      else {\n                        pppppppcVar31 = pppppppcVar31 + uVar7 + 0x100;\n                        pppppppcVar30 = (code *******)*pppppppcVar31;\n                      }\n                      goto LAB_000553a0;\n                    }\n                    pppppppcVar29 = unaff_s7;\n                    pppppppcVar30 = local_5c;\n                    iVar18 = (*pcVar9)(local_60);\n                  } while (iVar18 != 0);\n                  local_d8 = (code *******)0xc;\n                  pppppppcVar15 = local_d8;\nLAB_00055e44:\n                  local_d8 = pppppppcVar15;\n                  param_4 = (code *******)0x0;\n                  if (local_50 == (code *******)0x0) {\n                    pppppppcVar14 = param_4;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    break;\n                  }\n                  pppppppcVar30 = (code *******)0x0;\nLAB_000553ac:\n                  pppppppcVar29 = &local_b4;\n                  pppppppcVar14 = (code *******)FUN_00053684(&local_d8);\nLAB_000553cc:\n                  param_4 = pppppppcVar14;\n                  if (pppppppcVar14 == (code *******)0x0) {\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    if ((local_50 == (code *******)0x0) ||\n                       ((pppppppcVar28 != (code *******)0x0 && (pppppppcVar34 == (code *******)0x0))\n                       )) break;\n                    param_6 = &local_b4;\n                    param_5 = (code *******)&local_d8;\n                    pppppppcVar31 = (code *******)(PTR_DAT_000799a4 + 0x3684);\n                    do {\n                      pppppppcVar15 = local_50 + (int)local_8c;\n                      pppppppcVar42 = local_8c;\n                      do {\n                        pppppppcVar42 = (code *******)((int)pppppppcVar42 + 1);\n                        pppppppcVar29 = local_4c;\n                        param_4 = pppppppcVar14;\n                        if ((int)local_4c < (int)pppppppcVar42) goto LAB_00055da8;\n                        local_8c = (code *******)((int)local_8c + 1);\n                        pppppppcVar15 = pppppppcVar15 + 1;\n                      } while (*pppppppcVar15 == (code ******)0x0);\n                      pppppppcVar30 = (code *******)0x0;\n                      pppppppcVar29 = param_6;\n                      param_4 = (code *******)(*(code *)pppppppcVar31)(param_5);\n                      if (local_d8 != (code *******)0x0) {\n                        if (param_4 == (code *******)0x0) goto LAB_00055da8;\n                        break;\n                      }\n                      pppppppcVar29 = local_4c;\n                    } while (param_4 == (code *******)0x0);\n                  }\n                  pppppppcVar15 = (code *******)((uint)unaff_s7 ^ (uint)param_4);\n                  pppppppcVar42 = unaff_s7;\n                  pppppppcVar14 = local_138;\n                  if ((bVar1) &&\n                     (pppppppcVar42 = pppppppcVar15, pppppppcVar14 = unaff_s5,\n                     pppppppcVar15 != (code *******)0x0)) {\n                    bVar1 = false;\n                    pppppppcVar14 = local_138;\n                  }\n                  local_138 = pppppppcVar14;\n                  unaff_s7 = param_4;\n                  if ((((uint)param_4[0xd] & 0x8000000) != 0) &&\n                     ((((uint)param_4[0xd] & 0x1000000) == 0 ||\n                      (pppppppcVar29 = param_4, pppppppcVar30 = local_8c,\n                      iVar18 = FUN_00049440(&local_b4), iVar18 != 0)))) {\n                    unaff_s7 = pppppppcVar42;\n                    unaff_s8 = local_8c;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                    local_144 = (code *******)0x0;\n                    unaff_s7 = param_4;\n                  }\n                }" ({ "{") (expression_statement "uVar44 = CONCAT44(local_98,local_84);" (assignment_expression "uVar44 = CONCAT44(local_98,local_84)" (identifier "uVar44") (= "=") (call_expression "CONCAT44(local_98,local_84)" (identifier "CONCAT44") (argument_list "(local_98,local_84)" (( "(") (identifier "local_98") (, ",") (identifier "local_84") () ")")))) (; ";")) (expression_statement "unaff_s5 = (code *******)((int)local_8c + 1);" (assignment_expression "unaff_s5 = (code *******)((int)local_8c + 1)" (identifier "unaff_s5") (= "=") (cast_expression "(code *******)((int)local_8c + 1)" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "((int)local_8c + 1)" (( "(") (binary_expression "(int)local_8c + 1" (cast_expression "(int)local_8c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_8c")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "pppppppcVar29 = local_8c;" (assignment_expression "pppppppcVar29 = local_8c" (identifier "pppppppcVar29") (= "=") (identifier "local_8c")) (; ";")) (if_statement "if ((int)local_7c <= (int)local_8c) break;" (if "if") (parenthesized_expression "((int)local_7c <= (int)local_8c)" (( "(") (binary_expression "(int)local_7c <= (int)local_8c" (cast_expression "(int)local_7c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_7c")) (<= "<=") (cast_expression "(int)local_8c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_8c"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (if_statement "if (((int)local_90 <= (int)unaff_s5) && ((int)local_90 < (int)local_84))\n                  goto LAB_00054e94;" (if "if") (parenthesized_expression "(((int)local_90 <= (int)unaff_s5) && ((int)local_90 < (int)local_84))" (( "(") (binary_expression "((int)local_90 <= (int)unaff_s5) && ((int)local_90 < (int)local_84)" (parenthesized_expression "((int)local_90 <= (int)unaff_s5)" (( "(") (binary_expression "(int)local_90 <= (int)unaff_s5" (cast_expression "(int)local_90" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_90")) (<= "<=") (cast_expression "(int)unaff_s5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s5"))) () ")")) (&& "&&") (parenthesized_expression "((int)local_90 < (int)local_84)" (( "(") (binary_expression "(int)local_90 < (int)local_84" (cast_expression "(int)local_90" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_90")) (< "<") (cast_expression "(int)local_84" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_84"))) () ")"))) () ")")) (goto_statement "goto LAB_00054e94;" (goto "goto") (statement_identifier "LAB_00054e94") (; ";"))) (if_statement "if ((int)local_98 <= (int)unaff_s5) {\n                    while ((int)((ulonglong)uVar44 >> 0x20) < (int)uVar44) {\nLAB_00054e94:\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 2);\n                      local_d8 = (code *******)(*pcVar8)(&local_b4);\n                      if (local_d8 == (code *******)0x0) break;\n                      pppppppcVar14 = param_4;\n                      if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                      pppppppcVar33 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                      pppppppcVar30 = (code *******)0x46c;\n                      pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                      uVar44 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0);\n                      pppppppcVar28 = pppppppcVar38;\n                    }\n                  }" (if "if") (parenthesized_expression "((int)local_98 <= (int)unaff_s5)" (( "(") (binary_expression "(int)local_98 <= (int)unaff_s5" (cast_expression "(int)local_98" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_98")) (<= "<=") (cast_expression "(int)unaff_s5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s5"))) () ")")) (compound_statement "{\n                    while ((int)((ulonglong)uVar44 >> 0x20) < (int)uVar44) {\nLAB_00054e94:\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 2);\n                      local_d8 = (code *******)(*pcVar8)(&local_b4);\n                      if (local_d8 == (code *******)0x0) break;\n                      pppppppcVar14 = param_4;\n                      if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                      pppppppcVar33 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                      pppppppcVar30 = (code *******)0x46c;\n                      pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                      uVar44 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0);\n                      pppppppcVar28 = pppppppcVar38;\n                    }\n                  }" ({ "{") (while_statement "while ((int)((ulonglong)uVar44 >> 0x20) < (int)uVar44) {\nLAB_00054e94:\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 2);\n                      local_d8 = (code *******)(*pcVar8)(&local_b4);\n                      if (local_d8 == (code *******)0x0) break;\n                      pppppppcVar14 = param_4;\n                      if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                      pppppppcVar33 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                      pppppppcVar30 = (code *******)0x46c;\n                      pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                      uVar44 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0);\n                      pppppppcVar28 = pppppppcVar38;\n                    }" (while "while") (parenthesized_expression "((int)((ulonglong)uVar44 >> 0x20) < (int)uVar44)" (( "(") (binary_expression "(int)((ulonglong)uVar44 >> 0x20) < (int)uVar44" (cast_expression "(int)((ulonglong)uVar44 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)uVar44 >> 0x20)" (( "(") (binary_expression "(ulonglong)uVar44 >> 0x20" (cast_expression "(ulonglong)uVar44" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar44")) (>> ">>") (number_literal "0x20")) () ")"))) (< "<") (cast_expression "(int)uVar44" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar44"))) () ")")) (compound_statement "{\nLAB_00054e94:\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 2);\n                      local_d8 = (code *******)(*pcVar8)(&local_b4);\n                      if (local_d8 == (code *******)0x0) break;\n                      pppppppcVar14 = param_4;\n                      if (local_d8 == (code *******)0xc) goto LAB_00055914;\n                      pppppppcVar33 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);\n                      pppppppcVar30 = (code *******)0x46c;\n                      pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);\n                      uVar44 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0);\n                      pppppppcVar28 = pppppppcVar38;\n                    }" ({ "{") (labeled_statement "LAB_00054e94:\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 2);" (statement_identifier "LAB_00054e94") (: ":") (expression_statement "pppppppcVar29 = (code *******)((int)pppppppcVar29 + 2);" (assignment_expression "pppppppcVar29 = (code *******)((int)pppppppcVar29 + 2)" (identifier "pppppppcVar29") (= "=") (cast_expression "(code *******)((int)pppppppcVar29 + 2)" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "((int)pppppppcVar29 + 2)" (( "(") (binary_expression "(int)pppppppcVar29 + 2" (cast_expression "(int)pppppppcVar29" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppcVar29")) (+ "+") (number_literal "2")) () ")")))) (; ";"))) (expression_statement "local_d8 = (code *******)(*pcVar8)(&local_b4);" (assignment_expression "local_d8 = (code *******)(*pcVar8)(&local_b4)" (identifier "local_d8") (= "=") (cast_expression "(code *******)(*pcVar8)(&local_b4)" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (call_expression "(*pcVar8)(&local_b4)" (parenthesized_expression "(*pcVar8)" (( "(") (pointer_expression "*pcVar8" (* "*") (identifier "pcVar8")) () ")")) (argument_list "(&local_b4)" (( "(") (pointer_expression "&local_b4" (& "&") (identifier "local_b4")) () ")"))))) (; ";")) (if_statement "if (local_d8 == (code *******)0x0) break;" (if "if") (parenthesized_expression "(local_d8 == (code *******)0x0)" (( "(") (binary_expression "local_d8 == (code *******)0x0" (identifier "local_d8") (== "==") (cast_expression "(code *******)0x0" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "pppppppcVar14 = param_4;" (assignment_expression "pppppppcVar14 = param_4" (identifier "pppppppcVar14") (= "=") (identifier "param_4")) (; ";")) (if_statement "if (local_d8 == (code *******)0xc) goto LAB_00055914;" (if "if") (parenthesized_expression "(local_d8 == (code *******)0xc)" (( "(") (binary_expression "local_d8 == (code *******)0xc" (identifier "local_d8") (== "==") (cast_expression "(code *******)0xc" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0xc"))) () ")")) (goto_statement "goto LAB_00055914;" (goto "goto") (statement_identifier "LAB_00055914") (; ";"))) (expression_statement "pppppppcVar33 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);" (assignment_expression "pppppppcVar33 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0)" (identifier "pppppppcVar33") (= "=") (cast_expression "(code *******)(PTR_s_nt0_000795b8 + 0x6eb0)" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "(PTR_s_nt0_000795b8 + 0x6eb0)" (( "(") (binary_expression "PTR_s_nt0_000795b8 + 0x6eb0" (identifier "PTR_s_nt0_000795b8") (+ "+") (number_literal "0x6eb0")) () ")")))) (; ";")) (expression_statement "pppppppcVar30 = (code *******)0x46c;" (assignment_expression "pppppppcVar30 = (code *******)0x46c" (identifier "pppppppcVar30") (= "=") (cast_expression "(code *******)0x46c" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x46c"))) (; ";")) (expression_statement "pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);" (assignment_expression "pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c)" (identifier "pppppppcVar29") (= "=") (cast_expression "(code *******)(PTR_s_nt0_000795b8 + 0x712c)" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "(PTR_s_nt0_000795b8 + 0x712c)" (( "(") (binary_expression "PTR_s_nt0_000795b8 + 0x712c" (identifier "PTR_s_nt0_000795b8") (+ "+") (number_literal "0x712c")) () ")")))) (; ";")) (expression_statement "uVar44 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0);" (assignment_expression "uVar44 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0)" (identifier "uVar44") (= "=") (call_expression "(*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0)" (parenthesized_expression "(*(code *)PTR___assert_fail_000799f8)" (( "(") (pointer_expression "*(code *)PTR___assert_fail_000799f8" (* "*") (cast_expression "(code *)PTR___assert_fail_000799f8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___assert_fail_000799f8"))) () ")")) (argument_list "(PTR_s_nt0_000795b8 + 0x71a0)" (( "(") (binary_expression "PTR_s_nt0_000795b8 + 0x71a0" (identifier "PTR_s_nt0_000795b8") (+ "+") (number_literal "0x71a0")) () ")")))) (; ";")) (expression_statement "pppppppcVar28 = pppppppcVar38;" (assignment_expression "pppppppcVar28 = pppppppcVar38" (identifier "pppppppcVar28") (= "=") (identifier "pppppppcVar38")) (; ";")) (} "}"))) (} "}"))) (expression_statement "pppppppcVar42 = local_60;" (assignment_expression "pppppppcVar42 = local_60" (identifier "pppppppcVar42") (= "=") (identifier "local_60")) (; ";")) (if_statement "if ((int)unaff_s7[0xd] << 5 < 0) {\n                    pppppppcVar31 = pppppppcVar42;\n                    if (0 < (int)unaff_s7[2]) {\n                      pcVar11 = (code *)(PTR_DAT_000799a4 + -0x6fdc);\n                      pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6ef0);\n                      param_6 = (code *******)0x0;\n                      do {\n                        param_5 = (code *******)unaff_s7[3][(int)param_6];\n                        ppppppcVar39 = *pppppppcVar42;\n                        pppppcVar13 = ppppppcVar39[(int)param_5 * 2 + 1];\n                        if (((uint)pppppcVar13 & 0x800) != 0) {\n                          if (((uint)pppppcVar13 & 0xffc000) != 0) {\n                            pppppppcVar29 = local_8c;\n                            uVar19 = (*pcVar12)(&local_b4,local_8c,local_5c);\n                            uVar7 = (uint)((int)ppppppcVar39[(int)param_5 * 2 + 1] << 8) >> 0x16;\n                            if ((uVar7 & 4) == 0) {\n                              uVar27 = uVar19 & 1;\n                              if ((uVar7 & 8) != 0) goto joined_r0x00054f40;\n                            }\n                            else {\n                              uVar27 = uVar7 & 8;\n                              if ((uVar19 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                              if (uVar27 != 0) goto LAB_000550a4;\n                            }\n                            if ((((uVar7 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                               (((uVar7 & 0x80) != 0 &&\n                                (pppppppcVar33 = local_8c, (uVar19 & 8) == 0)))) goto LAB_000550a4;\n                          }\n                          pppppppcVar30 = &local_b4;\n                          pppppppcVar29 = param_5;\n                          pppppppcVar33 = local_8c;\n                          iVar18 = (*pcVar10)(pppppppcVar42);\n                          if (iVar18 != 0) {\n                            pppppppcVar14 = (code *******)((int)local_8c + iVar18);\n                            if (iVar18 <= local_3c) {\n                              iVar18 = local_3c;\n                            }\n                            pppppppcVar29 = pppppppcVar14;\n                            local_3c = iVar18;\n                            local_d4 = (code *******)(*pcVar11)(&local_b4);\n                            pppppppcVar15 = local_d4;\n                            if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                            pppppppcVar30 =\n                                 (code *******)\n                                 (pppppppcVar42[6] + (int)pppppppcVar42[3][(int)param_5] * 3);\n                            unaff_s4 = (code *******)((int)pppppppcVar14 * 4);\n                            param_5 = local_50 + (int)pppppppcVar14;\n                            if (*param_5 == (code ******)0x0) {\n                              local_d0 = (code *******)*pppppppcVar30;\n                              local_cc = (code *******)pppppppcVar30[1];\n                              local_c8 = (code *******)pppppppcVar30[2];\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *param_5 = ppppppcVar39;\n                            }\n                            else {\n                              pppppppcVar29 = (code *******)(*param_5)[10];\n                              local_d4 = (code *******)FUN_000484bc(&local_d0);\n                              pppppppcVar15 = local_d4;\n                              if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar15 = local_50 + (int)pppppppcVar14;\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *pppppppcVar15 = ppppppcVar39;\n                              (*(code *)PTR_free_00079c24)(local_c8);\n                            }\n                            unaff_s4 = local_50 + (int)pppppppcVar14;\n                            if ((*unaff_s4 == (code ******)0x0) &&\n                               (pppppppcVar15 = local_d4, local_d4 != (code *******)0x0))\n                            goto LAB_00055e44;\n                          }\n                        }\nLAB_000550a4:\n                        param_6 = (code *******)((int)param_6 + 1);\n                      } while ((int)param_6 < (int)unaff_s7[2]);\n                    }\n                    local_d8 = (code *******)0x0;\n                  }" (if "if") (parenthesized_expression "((int)unaff_s7[0xd] << 5 < 0)" (( "(") (binary_expression "(int)unaff_s7[0xd] << 5 < 0" (binary_expression "(int)unaff_s7[0xd] << 5" (cast_expression "(int)unaff_s7[0xd]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "unaff_s7[0xd]" (identifier "unaff_s7") ([ "[") (number_literal "0xd") (] "]"))) (<< "<<") (number_literal "5")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n                    pppppppcVar31 = pppppppcVar42;\n                    if (0 < (int)unaff_s7[2]) {\n                      pcVar11 = (code *)(PTR_DAT_000799a4 + -0x6fdc);\n                      pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6ef0);\n                      param_6 = (code *******)0x0;\n                      do {\n                        param_5 = (code *******)unaff_s7[3][(int)param_6];\n                        ppppppcVar39 = *pppppppcVar42;\n                        pppppcVar13 = ppppppcVar39[(int)param_5 * 2 + 1];\n                        if (((uint)pppppcVar13 & 0x800) != 0) {\n                          if (((uint)pppppcVar13 & 0xffc000) != 0) {\n                            pppppppcVar29 = local_8c;\n                            uVar19 = (*pcVar12)(&local_b4,local_8c,local_5c);\n                            uVar7 = (uint)((int)ppppppcVar39[(int)param_5 * 2 + 1] << 8) >> 0x16;\n                            if ((uVar7 & 4) == 0) {\n                              uVar27 = uVar19 & 1;\n                              if ((uVar7 & 8) != 0) goto joined_r0x00054f40;\n                            }\n                            else {\n                              uVar27 = uVar7 & 8;\n                              if ((uVar19 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                              if (uVar27 != 0) goto LAB_000550a4;\n                            }\n                            if ((((uVar7 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                               (((uVar7 & 0x80) != 0 &&\n                                (pppppppcVar33 = local_8c, (uVar19 & 8) == 0)))) goto LAB_000550a4;\n                          }\n                          pppppppcVar30 = &local_b4;\n                          pppppppcVar29 = param_5;\n                          pppppppcVar33 = local_8c;\n                          iVar18 = (*pcVar10)(pppppppcVar42);\n                          if (iVar18 != 0) {\n                            pppppppcVar14 = (code *******)((int)local_8c + iVar18);\n                            if (iVar18 <= local_3c) {\n                              iVar18 = local_3c;\n                            }\n                            pppppppcVar29 = pppppppcVar14;\n                            local_3c = iVar18;\n                            local_d4 = (code *******)(*pcVar11)(&local_b4);\n                            pppppppcVar15 = local_d4;\n                            if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                            pppppppcVar30 =\n                                 (code *******)\n                                 (pppppppcVar42[6] + (int)pppppppcVar42[3][(int)param_5] * 3);\n                            unaff_s4 = (code *******)((int)pppppppcVar14 * 4);\n                            param_5 = local_50 + (int)pppppppcVar14;\n                            if (*param_5 == (code ******)0x0) {\n                              local_d0 = (code *******)*pppppppcVar30;\n                              local_cc = (code *******)pppppppcVar30[1];\n                              local_c8 = (code *******)pppppppcVar30[2];\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *param_5 = ppppppcVar39;\n                            }\n                            else {\n                              pppppppcVar29 = (code *******)(*param_5)[10];\n                              local_d4 = (code *******)FUN_000484bc(&local_d0);\n                              pppppppcVar15 = local_d4;\n                              if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar15 = local_50 + (int)pppppppcVar14;\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *pppppppcVar15 = ppppppcVar39;\n                              (*(code *)PTR_free_00079c24)(local_c8);\n                            }\n                            unaff_s4 = local_50 + (int)pppppppcVar14;\n                            if ((*unaff_s4 == (code ******)0x0) &&\n                               (pppppppcVar15 = local_d4, local_d4 != (code *******)0x0))\n                            goto LAB_00055e44;\n                          }\n                        }\nLAB_000550a4:\n                        param_6 = (code *******)((int)param_6 + 1);\n                      } while ((int)param_6 < (int)unaff_s7[2]);\n                    }\n                    local_d8 = (code *******)0x0;\n                  }" ({ "{") (expression_statement "pppppppcVar31 = pppppppcVar42;" (assignment_expression "pppppppcVar31 = pppppppcVar42" (identifier "pppppppcVar31") (= "=") (identifier "pppppppcVar42")) (; ";")) (if_statement "if (0 < (int)unaff_s7[2]) {\n                      pcVar11 = (code *)(PTR_DAT_000799a4 + -0x6fdc);\n                      pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6ef0);\n                      param_6 = (code *******)0x0;\n                      do {\n                        param_5 = (code *******)unaff_s7[3][(int)param_6];\n                        ppppppcVar39 = *pppppppcVar42;\n                        pppppcVar13 = ppppppcVar39[(int)param_5 * 2 + 1];\n                        if (((uint)pppppcVar13 & 0x800) != 0) {\n                          if (((uint)pppppcVar13 & 0xffc000) != 0) {\n                            pppppppcVar29 = local_8c;\n                            uVar19 = (*pcVar12)(&local_b4,local_8c,local_5c);\n                            uVar7 = (uint)((int)ppppppcVar39[(int)param_5 * 2 + 1] << 8) >> 0x16;\n                            if ((uVar7 & 4) == 0) {\n                              uVar27 = uVar19 & 1;\n                              if ((uVar7 & 8) != 0) goto joined_r0x00054f40;\n                            }\n                            else {\n                              uVar27 = uVar7 & 8;\n                              if ((uVar19 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                              if (uVar27 != 0) goto LAB_000550a4;\n                            }\n                            if ((((uVar7 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                               (((uVar7 & 0x80) != 0 &&\n                                (pppppppcVar33 = local_8c, (uVar19 & 8) == 0)))) goto LAB_000550a4;\n                          }\n                          pppppppcVar30 = &local_b4;\n                          pppppppcVar29 = param_5;\n                          pppppppcVar33 = local_8c;\n                          iVar18 = (*pcVar10)(pppppppcVar42);\n                          if (iVar18 != 0) {\n                            pppppppcVar14 = (code *******)((int)local_8c + iVar18);\n                            if (iVar18 <= local_3c) {\n                              iVar18 = local_3c;\n                            }\n                            pppppppcVar29 = pppppppcVar14;\n                            local_3c = iVar18;\n                            local_d4 = (code *******)(*pcVar11)(&local_b4);\n                            pppppppcVar15 = local_d4;\n                            if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                            pppppppcVar30 =\n                                 (code *******)\n                                 (pppppppcVar42[6] + (int)pppppppcVar42[3][(int)param_5] * 3);\n                            unaff_s4 = (code *******)((int)pppppppcVar14 * 4);\n                            param_5 = local_50 + (int)pppppppcVar14;\n                            if (*param_5 == (code ******)0x0) {\n                              local_d0 = (code *******)*pppppppcVar30;\n                              local_cc = (code *******)pppppppcVar30[1];\n                              local_c8 = (code *******)pppppppcVar30[2];\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *param_5 = ppppppcVar39;\n                            }\n                            else {\n                              pppppppcVar29 = (code *******)(*param_5)[10];\n                              local_d4 = (code *******)FUN_000484bc(&local_d0);\n                              pppppppcVar15 = local_d4;\n                              if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar15 = local_50 + (int)pppppppcVar14;\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *pppppppcVar15 = ppppppcVar39;\n                              (*(code *)PTR_free_00079c24)(local_c8);\n                            }\n                            unaff_s4 = local_50 + (int)pppppppcVar14;\n                            if ((*unaff_s4 == (code ******)0x0) &&\n                               (pppppppcVar15 = local_d4, local_d4 != (code *******)0x0))\n                            goto LAB_00055e44;\n                          }\n                        }\nLAB_000550a4:\n                        param_6 = (code *******)((int)param_6 + 1);\n                      } while ((int)param_6 < (int)unaff_s7[2]);\n                    }" (if "if") (parenthesized_expression "(0 < (int)unaff_s7[2])" (( "(") (binary_expression "0 < (int)unaff_s7[2]" (number_literal "0") (< "<") (cast_expression "(int)unaff_s7[2]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "unaff_s7[2]" (identifier "unaff_s7") ([ "[") (number_literal "2") (] "]")))) () ")")) (compound_statement "{\n                      pcVar11 = (code *)(PTR_DAT_000799a4 + -0x6fdc);\n                      pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6ef0);\n                      param_6 = (code *******)0x0;\n                      do {\n                        param_5 = (code *******)unaff_s7[3][(int)param_6];\n                        ppppppcVar39 = *pppppppcVar42;\n                        pppppcVar13 = ppppppcVar39[(int)param_5 * 2 + 1];\n                        if (((uint)pppppcVar13 & 0x800) != 0) {\n                          if (((uint)pppppcVar13 & 0xffc000) != 0) {\n                            pppppppcVar29 = local_8c;\n                            uVar19 = (*pcVar12)(&local_b4,local_8c,local_5c);\n                            uVar7 = (uint)((int)ppppppcVar39[(int)param_5 * 2 + 1] << 8) >> 0x16;\n                            if ((uVar7 & 4) == 0) {\n                              uVar27 = uVar19 & 1;\n                              if ((uVar7 & 8) != 0) goto joined_r0x00054f40;\n                            }\n                            else {\n                              uVar27 = uVar7 & 8;\n                              if ((uVar19 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                              if (uVar27 != 0) goto LAB_000550a4;\n                            }\n                            if ((((uVar7 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                               (((uVar7 & 0x80) != 0 &&\n                                (pppppppcVar33 = local_8c, (uVar19 & 8) == 0)))) goto LAB_000550a4;\n                          }\n                          pppppppcVar30 = &local_b4;\n                          pppppppcVar29 = param_5;\n                          pppppppcVar33 = local_8c;\n                          iVar18 = (*pcVar10)(pppppppcVar42);\n                          if (iVar18 != 0) {\n                            pppppppcVar14 = (code *******)((int)local_8c + iVar18);\n                            if (iVar18 <= local_3c) {\n                              iVar18 = local_3c;\n                            }\n                            pppppppcVar29 = pppppppcVar14;\n                            local_3c = iVar18;\n                            local_d4 = (code *******)(*pcVar11)(&local_b4);\n                            pppppppcVar15 = local_d4;\n                            if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                            pppppppcVar30 =\n                                 (code *******)\n                                 (pppppppcVar42[6] + (int)pppppppcVar42[3][(int)param_5] * 3);\n                            unaff_s4 = (code *******)((int)pppppppcVar14 * 4);\n                            param_5 = local_50 + (int)pppppppcVar14;\n                            if (*param_5 == (code ******)0x0) {\n                              local_d0 = (code *******)*pppppppcVar30;\n                              local_cc = (code *******)pppppppcVar30[1];\n                              local_c8 = (code *******)pppppppcVar30[2];\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *param_5 = ppppppcVar39;\n                            }\n                            else {\n                              pppppppcVar29 = (code *******)(*param_5)[10];\n                              local_d4 = (code *******)FUN_000484bc(&local_d0);\n                              pppppppcVar15 = local_d4;\n                              if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar15 = local_50 + (int)pppppppcVar14;\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *pppppppcVar15 = ppppppcVar39;\n                              (*(code *)PTR_free_00079c24)(local_c8);\n                            }\n                            unaff_s4 = local_50 + (int)pppppppcVar14;\n                            if ((*unaff_s4 == (code ******)0x0) &&\n                               (pppppppcVar15 = local_d4, local_d4 != (code *******)0x0))\n                            goto LAB_00055e44;\n                          }\n                        }\nLAB_000550a4:\n                        param_6 = (code *******)((int)param_6 + 1);\n                      } while ((int)param_6 < (int)unaff_s7[2]);\n                    }" ({ "{") (expression_statement "pcVar11 = (code *)(PTR_DAT_000799a4 + -0x6fdc);" (assignment_expression "pcVar11 = (code *)(PTR_DAT_000799a4 + -0x6fdc)" (identifier "pcVar11") (= "=") (cast_expression "(code *)(PTR_DAT_000799a4 + -0x6fdc)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_000799a4 + -0x6fdc)" (( "(") (binary_expression "PTR_DAT_000799a4 + -0x6fdc" (identifier "PTR_DAT_000799a4") (+ "+") (number_literal "-0x6fdc")) () ")")))) (; ";")) (expression_statement "pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6ef0);" (assignment_expression "pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6ef0)" (identifier "pcVar12") (= "=") (cast_expression "(code *)(PTR_DAT_000799a4 + -0x6ef0)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_000799a4 + -0x6ef0)" (( "(") (binary_expression "PTR_DAT_000799a4 + -0x6ef0" (identifier "PTR_DAT_000799a4") (+ "+") (number_literal "-0x6ef0")) () ")")))) (; ";")) (expression_statement "param_6 = (code *******)0x0;" (assignment_expression "param_6 = (code *******)0x0" (identifier "param_6") (= "=") (cast_expression "(code *******)0x0" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) (; ";")) (do_statement "do {\n                        param_5 = (code *******)unaff_s7[3][(int)param_6];\n                        ppppppcVar39 = *pppppppcVar42;\n                        pppppcVar13 = ppppppcVar39[(int)param_5 * 2 + 1];\n                        if (((uint)pppppcVar13 & 0x800) != 0) {\n                          if (((uint)pppppcVar13 & 0xffc000) != 0) {\n                            pppppppcVar29 = local_8c;\n                            uVar19 = (*pcVar12)(&local_b4,local_8c,local_5c);\n                            uVar7 = (uint)((int)ppppppcVar39[(int)param_5 * 2 + 1] << 8) >> 0x16;\n                            if ((uVar7 & 4) == 0) {\n                              uVar27 = uVar19 & 1;\n                              if ((uVar7 & 8) != 0) goto joined_r0x00054f40;\n                            }\n                            else {\n                              uVar27 = uVar7 & 8;\n                              if ((uVar19 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                              if (uVar27 != 0) goto LAB_000550a4;\n                            }\n                            if ((((uVar7 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                               (((uVar7 & 0x80) != 0 &&\n                                (pppppppcVar33 = local_8c, (uVar19 & 8) == 0)))) goto LAB_000550a4;\n                          }\n                          pppppppcVar30 = &local_b4;\n                          pppppppcVar29 = param_5;\n                          pppppppcVar33 = local_8c;\n                          iVar18 = (*pcVar10)(pppppppcVar42);\n                          if (iVar18 != 0) {\n                            pppppppcVar14 = (code *******)((int)local_8c + iVar18);\n                            if (iVar18 <= local_3c) {\n                              iVar18 = local_3c;\n                            }\n                            pppppppcVar29 = pppppppcVar14;\n                            local_3c = iVar18;\n                            local_d4 = (code *******)(*pcVar11)(&local_b4);\n                            pppppppcVar15 = local_d4;\n                            if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                            pppppppcVar30 =\n                                 (code *******)\n                                 (pppppppcVar42[6] + (int)pppppppcVar42[3][(int)param_5] * 3);\n                            unaff_s4 = (code *******)((int)pppppppcVar14 * 4);\n                            param_5 = local_50 + (int)pppppppcVar14;\n                            if (*param_5 == (code ******)0x0) {\n                              local_d0 = (code *******)*pppppppcVar30;\n                              local_cc = (code *******)pppppppcVar30[1];\n                              local_c8 = (code *******)pppppppcVar30[2];\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *param_5 = ppppppcVar39;\n                            }\n                            else {\n                              pppppppcVar29 = (code *******)(*param_5)[10];\n                              local_d4 = (code *******)FUN_000484bc(&local_d0);\n                              pppppppcVar15 = local_d4;\n                              if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar15 = local_50 + (int)pppppppcVar14;\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *pppppppcVar15 = ppppppcVar39;\n                              (*(code *)PTR_free_00079c24)(local_c8);\n                            }\n                            unaff_s4 = local_50 + (int)pppppppcVar14;\n                            if ((*unaff_s4 == (code ******)0x0) &&\n                               (pppppppcVar15 = local_d4, local_d4 != (code *******)0x0))\n                            goto LAB_00055e44;\n                          }\n                        }\nLAB_000550a4:\n                        param_6 = (code *******)((int)param_6 + 1);\n                      } while ((int)param_6 < (int)unaff_s7[2]);" (do "do") (compound_statement "{\n                        param_5 = (code *******)unaff_s7[3][(int)param_6];\n                        ppppppcVar39 = *pppppppcVar42;\n                        pppppcVar13 = ppppppcVar39[(int)param_5 * 2 + 1];\n                        if (((uint)pppppcVar13 & 0x800) != 0) {\n                          if (((uint)pppppcVar13 & 0xffc000) != 0) {\n                            pppppppcVar29 = local_8c;\n                            uVar19 = (*pcVar12)(&local_b4,local_8c,local_5c);\n                            uVar7 = (uint)((int)ppppppcVar39[(int)param_5 * 2 + 1] << 8) >> 0x16;\n                            if ((uVar7 & 4) == 0) {\n                              uVar27 = uVar19 & 1;\n                              if ((uVar7 & 8) != 0) goto joined_r0x00054f40;\n                            }\n                            else {\n                              uVar27 = uVar7 & 8;\n                              if ((uVar19 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                              if (uVar27 != 0) goto LAB_000550a4;\n                            }\n                            if ((((uVar7 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                               (((uVar7 & 0x80) != 0 &&\n                                (pppppppcVar33 = local_8c, (uVar19 & 8) == 0)))) goto LAB_000550a4;\n                          }\n                          pppppppcVar30 = &local_b4;\n                          pppppppcVar29 = param_5;\n                          pppppppcVar33 = local_8c;\n                          iVar18 = (*pcVar10)(pppppppcVar42);\n                          if (iVar18 != 0) {\n                            pppppppcVar14 = (code *******)((int)local_8c + iVar18);\n                            if (iVar18 <= local_3c) {\n                              iVar18 = local_3c;\n                            }\n                            pppppppcVar29 = pppppppcVar14;\n                            local_3c = iVar18;\n                            local_d4 = (code *******)(*pcVar11)(&local_b4);\n                            pppppppcVar15 = local_d4;\n                            if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                            pppppppcVar30 =\n                                 (code *******)\n                                 (pppppppcVar42[6] + (int)pppppppcVar42[3][(int)param_5] * 3);\n                            unaff_s4 = (code *******)((int)pppppppcVar14 * 4);\n                            param_5 = local_50 + (int)pppppppcVar14;\n                            if (*param_5 == (code ******)0x0) {\n                              local_d0 = (code *******)*pppppppcVar30;\n                              local_cc = (code *******)pppppppcVar30[1];\n                              local_c8 = (code *******)pppppppcVar30[2];\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *param_5 = ppppppcVar39;\n                            }\n                            else {\n                              pppppppcVar29 = (code *******)(*param_5)[10];\n                              local_d4 = (code *******)FUN_000484bc(&local_d0);\n                              pppppppcVar15 = local_d4;\n                              if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar15 = local_50 + (int)pppppppcVar14;\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *pppppppcVar15 = ppppppcVar39;\n                              (*(code *)PTR_free_00079c24)(local_c8);\n                            }\n                            unaff_s4 = local_50 + (int)pppppppcVar14;\n                            if ((*unaff_s4 == (code ******)0x0) &&\n                               (pppppppcVar15 = local_d4, local_d4 != (code *******)0x0))\n                            goto LAB_00055e44;\n                          }\n                        }\nLAB_000550a4:\n                        param_6 = (code *******)((int)param_6 + 1);\n                      }" ({ "{") (expression_statement "param_5 = (code *******)unaff_s7[3][(int)param_6];" (assignment_expression "param_5 = (code *******)unaff_s7[3][(int)param_6]" (identifier "param_5") (= "=") (cast_expression "(code *******)unaff_s7[3][(int)param_6]" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (subscript_expression "unaff_s7[3][(int)param_6]" (subscript_expression "unaff_s7[3]" (identifier "unaff_s7") ([ "[") (number_literal "3") (] "]")) ([ "[") (cast_expression "(int)param_6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_6")) (] "]")))) (; ";")) (expression_statement "ppppppcVar39 = *pppppppcVar42;" (assignment_expression "ppppppcVar39 = *pppppppcVar42" (identifier "ppppppcVar39") (= "=") (pointer_expression "*pppppppcVar42" (* "*") (identifier "pppppppcVar42"))) (; ";")) (expression_statement "pppppcVar13 = ppppppcVar39[(int)param_5 * 2 + 1];" (assignment_expression "pppppcVar13 = ppppppcVar39[(int)param_5 * 2 + 1]" (identifier "pppppcVar13") (= "=") (subscript_expression "ppppppcVar39[(int)param_5 * 2 + 1]" (identifier "ppppppcVar39") ([ "[") (binary_expression "(int)param_5 * 2 + 1" (binary_expression "(int)param_5 * 2" (cast_expression "(int)param_5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_5")) (* "*") (number_literal "2")) (+ "+") (number_literal "1")) (] "]"))) (; ";")) (if_statement "if (((uint)pppppcVar13 & 0x800) != 0) {\n                          if (((uint)pppppcVar13 & 0xffc000) != 0) {\n                            pppppppcVar29 = local_8c;\n                            uVar19 = (*pcVar12)(&local_b4,local_8c,local_5c);\n                            uVar7 = (uint)((int)ppppppcVar39[(int)param_5 * 2 + 1] << 8) >> 0x16;\n                            if ((uVar7 & 4) == 0) {\n                              uVar27 = uVar19 & 1;\n                              if ((uVar7 & 8) != 0) goto joined_r0x00054f40;\n                            }\n                            else {\n                              uVar27 = uVar7 & 8;\n                              if ((uVar19 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                              if (uVar27 != 0) goto LAB_000550a4;\n                            }\n                            if ((((uVar7 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                               (((uVar7 & 0x80) != 0 &&\n                                (pppppppcVar33 = local_8c, (uVar19 & 8) == 0)))) goto LAB_000550a4;\n                          }\n                          pppppppcVar30 = &local_b4;\n                          pppppppcVar29 = param_5;\n                          pppppppcVar33 = local_8c;\n                          iVar18 = (*pcVar10)(pppppppcVar42);\n                          if (iVar18 != 0) {\n                            pppppppcVar14 = (code *******)((int)local_8c + iVar18);\n                            if (iVar18 <= local_3c) {\n                              iVar18 = local_3c;\n                            }\n                            pppppppcVar29 = pppppppcVar14;\n                            local_3c = iVar18;\n                            local_d4 = (code *******)(*pcVar11)(&local_b4);\n                            pppppppcVar15 = local_d4;\n                            if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                            pppppppcVar30 =\n                                 (code *******)\n                                 (pppppppcVar42[6] + (int)pppppppcVar42[3][(int)param_5] * 3);\n                            unaff_s4 = (code *******)((int)pppppppcVar14 * 4);\n                            param_5 = local_50 + (int)pppppppcVar14;\n                            if (*param_5 == (code ******)0x0) {\n                              local_d0 = (code *******)*pppppppcVar30;\n                              local_cc = (code *******)pppppppcVar30[1];\n                              local_c8 = (code *******)pppppppcVar30[2];\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *param_5 = ppppppcVar39;\n                            }\n                            else {\n                              pppppppcVar29 = (code *******)(*param_5)[10];\n                              local_d4 = (code *******)FUN_000484bc(&local_d0);\n                              pppppppcVar15 = local_d4;\n                              if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar15 = local_50 + (int)pppppppcVar14;\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *pppppppcVar15 = ppppppcVar39;\n                              (*(code *)PTR_free_00079c24)(local_c8);\n                            }\n                            unaff_s4 = local_50 + (int)pppppppcVar14;\n                            if ((*unaff_s4 == (code ******)0x0) &&\n                               (pppppppcVar15 = local_d4, local_d4 != (code *******)0x0))\n                            goto LAB_00055e44;\n                          }\n                        }" (if "if") (parenthesized_expression "(((uint)pppppcVar13 & 0x800) != 0)" (( "(") (binary_expression "((uint)pppppcVar13 & 0x800) != 0" (parenthesized_expression "((uint)pppppcVar13 & 0x800)" (( "(") (binary_expression "(uint)pppppcVar13 & 0x800" (cast_expression "(uint)pppppcVar13" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pppppcVar13")) (& "&") (number_literal "0x800")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                          if (((uint)pppppcVar13 & 0xffc000) != 0) {\n                            pppppppcVar29 = local_8c;\n                            uVar19 = (*pcVar12)(&local_b4,local_8c,local_5c);\n                            uVar7 = (uint)((int)ppppppcVar39[(int)param_5 * 2 + 1] << 8) >> 0x16;\n                            if ((uVar7 & 4) == 0) {\n                              uVar27 = uVar19 & 1;\n                              if ((uVar7 & 8) != 0) goto joined_r0x00054f40;\n                            }\n                            else {\n                              uVar27 = uVar7 & 8;\n                              if ((uVar19 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                              if (uVar27 != 0) goto LAB_000550a4;\n                            }\n                            if ((((uVar7 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                               (((uVar7 & 0x80) != 0 &&\n                                (pppppppcVar33 = local_8c, (uVar19 & 8) == 0)))) goto LAB_000550a4;\n                          }\n                          pppppppcVar30 = &local_b4;\n                          pppppppcVar29 = param_5;\n                          pppppppcVar33 = local_8c;\n                          iVar18 = (*pcVar10)(pppppppcVar42);\n                          if (iVar18 != 0) {\n                            pppppppcVar14 = (code *******)((int)local_8c + iVar18);\n                            if (iVar18 <= local_3c) {\n                              iVar18 = local_3c;\n                            }\n                            pppppppcVar29 = pppppppcVar14;\n                            local_3c = iVar18;\n                            local_d4 = (code *******)(*pcVar11)(&local_b4);\n                            pppppppcVar15 = local_d4;\n                            if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                            pppppppcVar30 =\n                                 (code *******)\n                                 (pppppppcVar42[6] + (int)pppppppcVar42[3][(int)param_5] * 3);\n                            unaff_s4 = (code *******)((int)pppppppcVar14 * 4);\n                            param_5 = local_50 + (int)pppppppcVar14;\n                            if (*param_5 == (code ******)0x0) {\n                              local_d0 = (code *******)*pppppppcVar30;\n                              local_cc = (code *******)pppppppcVar30[1];\n                              local_c8 = (code *******)pppppppcVar30[2];\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *param_5 = ppppppcVar39;\n                            }\n                            else {\n                              pppppppcVar29 = (code *******)(*param_5)[10];\n                              local_d4 = (code *******)FUN_000484bc(&local_d0);\n                              pppppppcVar15 = local_d4;\n                              if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar15 = local_50 + (int)pppppppcVar14;\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *pppppppcVar15 = ppppppcVar39;\n                              (*(code *)PTR_free_00079c24)(local_c8);\n                            }\n                            unaff_s4 = local_50 + (int)pppppppcVar14;\n                            if ((*unaff_s4 == (code ******)0x0) &&\n                               (pppppppcVar15 = local_d4, local_d4 != (code *******)0x0))\n                            goto LAB_00055e44;\n                          }\n                        }" ({ "{") (if_statement "if (((uint)pppppcVar13 & 0xffc000) != 0) {\n                            pppppppcVar29 = local_8c;\n                            uVar19 = (*pcVar12)(&local_b4,local_8c,local_5c);\n                            uVar7 = (uint)((int)ppppppcVar39[(int)param_5 * 2 + 1] << 8) >> 0x16;\n                            if ((uVar7 & 4) == 0) {\n                              uVar27 = uVar19 & 1;\n                              if ((uVar7 & 8) != 0) goto joined_r0x00054f40;\n                            }\n                            else {\n                              uVar27 = uVar7 & 8;\n                              if ((uVar19 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                              if (uVar27 != 0) goto LAB_000550a4;\n                            }\n                            if ((((uVar7 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                               (((uVar7 & 0x80) != 0 &&\n                                (pppppppcVar33 = local_8c, (uVar19 & 8) == 0)))) goto LAB_000550a4;\n                          }" (if "if") (parenthesized_expression "(((uint)pppppcVar13 & 0xffc000) != 0)" (( "(") (binary_expression "((uint)pppppcVar13 & 0xffc000) != 0" (parenthesized_expression "((uint)pppppcVar13 & 0xffc000)" (( "(") (binary_expression "(uint)pppppcVar13 & 0xffc000" (cast_expression "(uint)pppppcVar13" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pppppcVar13")) (& "&") (number_literal "0xffc000")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                            pppppppcVar29 = local_8c;\n                            uVar19 = (*pcVar12)(&local_b4,local_8c,local_5c);\n                            uVar7 = (uint)((int)ppppppcVar39[(int)param_5 * 2 + 1] << 8) >> 0x16;\n                            if ((uVar7 & 4) == 0) {\n                              uVar27 = uVar19 & 1;\n                              if ((uVar7 & 8) != 0) goto joined_r0x00054f40;\n                            }\n                            else {\n                              uVar27 = uVar7 & 8;\n                              if ((uVar19 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                              if (uVar27 != 0) goto LAB_000550a4;\n                            }\n                            if ((((uVar7 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                               (((uVar7 & 0x80) != 0 &&\n                                (pppppppcVar33 = local_8c, (uVar19 & 8) == 0)))) goto LAB_000550a4;\n                          }" ({ "{") (expression_statement "pppppppcVar29 = local_8c;" (assignment_expression "pppppppcVar29 = local_8c" (identifier "pppppppcVar29") (= "=") (identifier "local_8c")) (; ";")) (expression_statement "uVar19 = (*pcVar12)(&local_b4,local_8c,local_5c);" (assignment_expression "uVar19 = (*pcVar12)(&local_b4,local_8c,local_5c)" (identifier "uVar19") (= "=") (call_expression "(*pcVar12)(&local_b4,local_8c,local_5c)" (parenthesized_expression "(*pcVar12)" (( "(") (pointer_expression "*pcVar12" (* "*") (identifier "pcVar12")) () ")")) (argument_list "(&local_b4,local_8c,local_5c)" (( "(") (pointer_expression "&local_b4" (& "&") (identifier "local_b4")) (, ",") (identifier "local_8c") (, ",") (identifier "local_5c") () ")")))) (; ";")) (expression_statement "uVar7 = (uint)((int)ppppppcVar39[(int)param_5 * 2 + 1] << 8) >> 0x16;" (assignment_expression "uVar7 = (uint)((int)ppppppcVar39[(int)param_5 * 2 + 1] << 8) >> 0x16" (identifier "uVar7") (= "=") (binary_expression "(uint)((int)ppppppcVar39[(int)param_5 * 2 + 1] << 8) >> 0x16" (call_expression "(uint)((int)ppppppcVar39[(int)param_5 * 2 + 1] << 8)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int)ppppppcVar39[(int)param_5 * 2 + 1] << 8)" (( "(") (binary_expression "(int)ppppppcVar39[(int)param_5 * 2 + 1] << 8" (cast_expression "(int)ppppppcVar39[(int)param_5 * 2 + 1]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "ppppppcVar39[(int)param_5 * 2 + 1]" (identifier "ppppppcVar39") ([ "[") (binary_expression "(int)param_5 * 2 + 1" (binary_expression "(int)param_5 * 2" (cast_expression "(int)param_5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_5")) (* "*") (number_literal "2")) (+ "+") (number_literal "1")) (] "]"))) (<< "<<") (number_literal "8")) () ")"))) (>> ">>") (number_literal "0x16"))) (; ";")) (if_statement "if ((uVar7 & 4) == 0) {\n                              uVar27 = uVar19 & 1;\n                              if ((uVar7 & 8) != 0) goto joined_r0x00054f40;\n                            }\n                            else {\n                              uVar27 = uVar7 & 8;\n                              if ((uVar19 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                              if (uVar27 != 0) goto LAB_000550a4;\n                            }" (if "if") (parenthesized_expression "((uVar7 & 4) == 0)" (( "(") (binary_expression "(uVar7 & 4) == 0" (parenthesized_expression "(uVar7 & 4)" (( "(") (binary_expression "uVar7 & 4" (identifier "uVar7") (& "&") (number_literal "4")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                              uVar27 = uVar19 & 1;\n                              if ((uVar7 & 8) != 0) goto joined_r0x00054f40;\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 ((uVar7 & 8) != 0) goto joined_r0x00054f40;" (if "if") (parenthesized_expression "((uVar7 & 8) != 0)" (( "(") (binary_expression "(uVar7 & 8) != 0" (parenthesized_expression "(uVar7 & 8)" (( "(") (binary_expression "uVar7 & 8" (identifier "uVar7") (& "&") (number_literal "8")) () ")")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto joined_r0x00054f40;" (goto "goto") (statement_identifier "joined_r0x00054f40") (; ";"))) (} "}")) (else_clause "else {\n                              uVar27 = uVar7 & 8;\n                              if ((uVar19 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                              if (uVar27 != 0) goto LAB_000550a4;\n                            }" (else "else") (compound_statement "{\n                              uVar27 = uVar7 & 8;\n                              if ((uVar19 & 1) == 0) goto LAB_000550a4;\njoined_r0x00054f40:\n                              if (uVar27 != 0) goto LAB_000550a4;\n                            }" ({ "{") (expression_statement "uVar27 = uVar7 & 8;" (assignment_expression "uVar27 = uVar7 & 8" (identifier "uVar27") (= "=") (binary_expression "uVar7 & 8" (identifier "uVar7") (& "&") (number_literal "8"))) (; ";")) (if_statement "if ((uVar19 & 1) == 0) goto LAB_000550a4;" (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_000550a4;" (goto "goto") (statement_identifier "LAB_000550a4") (; ";"))) (labeled_statement "joined_r0x00054f40:\n                              if (uVar27 != 0) goto LAB_000550a4;" (statement_identifier "joined_r0x00054f40") (: ":") (if_statement "if (uVar27 != 0) goto LAB_000550a4;" (if "if") (parenthesized_expression "(uVar27 != 0)" (( "(") (binary_expression "uVar27 != 0" (identifier "uVar27") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_000550a4;" (goto "goto") (statement_identifier "LAB_000550a4") (; ";")))) (} "}")))) (if_statement "if ((((uVar7 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                               (((uVar7 & 0x80) != 0 &&\n                                (pppppppcVar33 = local_8c, (uVar19 & 8) == 0)))) goto LAB_000550a4;" (if "if") (parenthesized_expression "((((uVar7 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                               (((uVar7 & 0x80) != 0 &&\n                                (pppppppcVar33 = local_8c, (uVar19 & 8) == 0))))" (( "(") (binary_expression "(((uVar7 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||\n                               (((uVar7 & 0x80) != 0 &&\n                                (pppppppcVar33 = local_8c, (uVar19 & 8) == 0)))" (parenthesized_expression "(((uVar7 & 0x20) != 0) && ((uVar19 & 2) == 0))" (( "(") (binary_expression "((uVar7 & 0x20) != 0) && ((uVar19 & 2) == 0)" (parenthesized_expression "((uVar7 & 0x20) != 0)" (( "(") (binary_expression "(uVar7 & 0x20) != 0" (parenthesized_expression "(uVar7 & 0x20)" (( "(") (binary_expression "uVar7 & 0x20" (identifier "uVar7") (& "&") (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 "(((uVar7 & 0x80) != 0 &&\n                                (pppppppcVar33 = local_8c, (uVar19 & 8) == 0)))" (( "(") (parenthesized_expression "((uVar7 & 0x80) != 0 &&\n                                (pppppppcVar33 = local_8c, (uVar19 & 8) == 0))" (( "(") (binary_expression "(uVar7 & 0x80) != 0 &&\n                                (pppppppcVar33 = local_8c, (uVar19 & 8) == 0)" (binary_expression "(uVar7 & 0x80) != 0" (parenthesized_expression "(uVar7 & 0x80)" (( "(") (binary_expression "uVar7 & 0x80" (identifier "uVar7") (& "&") (number_literal "0x80")) () ")")) (!= "!=") (number_literal "0")) (&& "&&") (parenthesized_expression "(pppppppcVar33 = local_8c, (uVar19 & 8) == 0)" (( "(") (comma_expression "pppppppcVar33 = local_8c, (uVar19 & 8) == 0" (assignment_expression "pppppppcVar33 = local_8c" (identifier "pppppppcVar33") (= "=") (identifier "local_8c")) (, ",") (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_000550a4;" (goto "goto") (statement_identifier "LAB_000550a4") (; ";"))) (} "}"))) (expression_statement "pppppppcVar30 = &local_b4;" (assignment_expression "pppppppcVar30 = &local_b4" (identifier "pppppppcVar30") (= "=") (pointer_expression "&local_b4" (& "&") (identifier "local_b4"))) (; ";")) (expression_statement "pppppppcVar29 = param_5;" (assignment_expression "pppppppcVar29 = param_5" (identifier "pppppppcVar29") (= "=") (identifier "param_5")) (; ";")) (expression_statement "pppppppcVar33 = local_8c;" (assignment_expression "pppppppcVar33 = local_8c" (identifier "pppppppcVar33") (= "=") (identifier "local_8c")) (; ";")) (expression_statement "iVar18 = (*pcVar10)(pppppppcVar42);" (assignment_expression "iVar18 = (*pcVar10)(pppppppcVar42)" (identifier "iVar18") (= "=") (call_expression "(*pcVar10)(pppppppcVar42)" (parenthesized_expression "(*pcVar10)" (( "(") (pointer_expression "*pcVar10" (* "*") (identifier "pcVar10")) () ")")) (argument_list "(pppppppcVar42)" (( "(") (identifier "pppppppcVar42") () ")")))) (; ";")) (if_statement "if (iVar18 != 0) {\n                            pppppppcVar14 = (code *******)((int)local_8c + iVar18);\n                            if (iVar18 <= local_3c) {\n                              iVar18 = local_3c;\n                            }\n                            pppppppcVar29 = pppppppcVar14;\n                            local_3c = iVar18;\n                            local_d4 = (code *******)(*pcVar11)(&local_b4);\n                            pppppppcVar15 = local_d4;\n                            if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                            pppppppcVar30 =\n                                 (code *******)\n                                 (pppppppcVar42[6] + (int)pppppppcVar42[3][(int)param_5] * 3);\n                            unaff_s4 = (code *******)((int)pppppppcVar14 * 4);\n                            param_5 = local_50 + (int)pppppppcVar14;\n                            if (*param_5 == (code ******)0x0) {\n                              local_d0 = (code *******)*pppppppcVar30;\n                              local_cc = (code *******)pppppppcVar30[1];\n                              local_c8 = (code *******)pppppppcVar30[2];\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *param_5 = ppppppcVar39;\n                            }\n                            else {\n                              pppppppcVar29 = (code *******)(*param_5)[10];\n                              local_d4 = (code *******)FUN_000484bc(&local_d0);\n                              pppppppcVar15 = local_d4;\n                              if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar15 = local_50 + (int)pppppppcVar14;\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *pppppppcVar15 = ppppppcVar39;\n                              (*(code *)PTR_free_00079c24)(local_c8);\n                            }\n                            unaff_s4 = local_50 + (int)pppppppcVar14;\n                            if ((*unaff_s4 == (code ******)0x0) &&\n                               (pppppppcVar15 = local_d4, local_d4 != (code *******)0x0))\n                            goto LAB_00055e44;\n                          }" (if "if") (parenthesized_expression "(iVar18 != 0)" (( "(") (binary_expression "iVar18 != 0" (identifier "iVar18") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                            pppppppcVar14 = (code *******)((int)local_8c + iVar18);\n                            if (iVar18 <= local_3c) {\n                              iVar18 = local_3c;\n                            }\n                            pppppppcVar29 = pppppppcVar14;\n                            local_3c = iVar18;\n                            local_d4 = (code *******)(*pcVar11)(&local_b4);\n                            pppppppcVar15 = local_d4;\n                            if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                            pppppppcVar30 =\n                                 (code *******)\n                                 (pppppppcVar42[6] + (int)pppppppcVar42[3][(int)param_5] * 3);\n                            unaff_s4 = (code *******)((int)pppppppcVar14 * 4);\n                            param_5 = local_50 + (int)pppppppcVar14;\n                            if (*param_5 == (code ******)0x0) {\n                              local_d0 = (code *******)*pppppppcVar30;\n                              local_cc = (code *******)pppppppcVar30[1];\n                              local_c8 = (code *******)pppppppcVar30[2];\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *param_5 = ppppppcVar39;\n                            }\n                            else {\n                              pppppppcVar29 = (code *******)(*param_5)[10];\n                              local_d4 = (code *******)FUN_000484bc(&local_d0);\n                              pppppppcVar15 = local_d4;\n                              if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar15 = local_50 + (int)pppppppcVar14;\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *pppppppcVar15 = ppppppcVar39;\n                              (*(code *)PTR_free_00079c24)(local_c8);\n                            }\n                            unaff_s4 = local_50 + (int)pppppppcVar14;\n                            if ((*unaff_s4 == (code ******)0x0) &&\n                               (pppppppcVar15 = local_d4, local_d4 != (code *******)0x0))\n                            goto LAB_00055e44;\n                          }" ({ "{") (expression_statement "pppppppcVar14 = (code *******)((int)local_8c + iVar18);" (assignment_expression "pppppppcVar14 = (code *******)((int)local_8c + iVar18)" (identifier "pppppppcVar14") (= "=") (cast_expression "(code *******)((int)local_8c + iVar18)" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "((int)local_8c + iVar18)" (( "(") (binary_expression "(int)local_8c + iVar18" (cast_expression "(int)local_8c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_8c")) (+ "+") (identifier "iVar18")) () ")")))) (; ";")) (if_statement "if (iVar18 <= local_3c) {\n                              iVar18 = local_3c;\n                            }" (if "if") (parenthesized_expression "(iVar18 <= local_3c)" (( "(") (binary_expression "iVar18 <= local_3c" (identifier "iVar18") (<= "<=") (identifier "local_3c")) () ")")) (compound_statement "{\n                              iVar18 = local_3c;\n                            }" ({ "{") (expression_statement "iVar18 = local_3c;" (assignment_expression "iVar18 = local_3c" (identifier "iVar18") (= "=") (identifier "local_3c")) (; ";")) (} "}"))) (expression_statement "pppppppcVar29 = pppppppcVar14;" (assignment_expression "pppppppcVar29 = pppppppcVar14" (identifier "pppppppcVar29") (= "=") (identifier "pppppppcVar14")) (; ";")) (expression_statement "local_3c = iVar18;" (assignment_expression "local_3c = iVar18" (identifier "local_3c") (= "=") (identifier "iVar18")) (; ";")) (expression_statement "local_d4 = (code *******)(*pcVar11)(&local_b4);" (assignment_expression "local_d4 = (code *******)(*pcVar11)(&local_b4)" (identifier "local_d4") (= "=") (cast_expression "(code *******)(*pcVar11)(&local_b4)" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (call_expression "(*pcVar11)(&local_b4)" (parenthesized_expression "(*pcVar11)" (( "(") (pointer_expression "*pcVar11" (* "*") (identifier "pcVar11")) () ")")) (argument_list "(&local_b4)" (( "(") (pointer_expression "&local_b4" (& "&") (identifier "local_b4")) () ")"))))) (; ";")) (expression_statement "pppppppcVar15 = local_d4;" (assignment_expression "pppppppcVar15 = local_d4" (identifier "pppppppcVar15") (= "=") (identifier "local_d4")) (; ";")) (if_statement "if (local_d4 != (code *******)0x0) goto LAB_00055e44;" (if "if") (parenthesized_expression "(local_d4 != (code *******)0x0)" (( "(") (binary_expression "local_d4 != (code *******)0x0" (identifier "local_d4") (!= "!=") (cast_expression "(code *******)0x0" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00055e44;" (goto "goto") (statement_identifier "LAB_00055e44") (; ";"))) (expression_statement "pppppppcVar30 =\n                                 (code *******)\n                                 (pppppppcVar42[6] + (int)pppppppcVar42[3][(int)param_5] * 3);" (assignment_expression "pppppppcVar30 =\n                                 (code *******)\n                                 (pppppppcVar42[6] + (int)pppppppcVar42[3][(int)param_5] * 3)" (identifier "pppppppcVar30") (= "=") (cast_expression "(code *******)\n                                 (pppppppcVar42[6] + (int)pppppppcVar42[3][(int)param_5] * 3)" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "(pppppppcVar42[6] + (int)pppppppcVar42[3][(int)param_5] * 3)" (( "(") (binary_expression "pppppppcVar42[6] + (int)pppppppcVar42[3][(int)param_5] * 3" (subscript_expression "pppppppcVar42[6]" (identifier "pppppppcVar42") ([ "[") (number_literal "6") (] "]")) (+ "+") (binary_expression "(int)pppppppcVar42[3][(int)param_5] * 3" (cast_expression "(int)pppppppcVar42[3][(int)param_5]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "pppppppcVar42[3][(int)param_5]" (subscript_expression "pppppppcVar42[3]" (identifier "pppppppcVar42") ([ "[") (number_literal "3") (] "]")) ([ "[") (cast_expression "(int)param_5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_5")) (] "]"))) (* "*") (number_literal "3"))) () ")")))) (; ";")) (expression_statement "unaff_s4 = (code *******)((int)pppppppcVar14 * 4);" (assignment_expression "unaff_s4 = (code *******)((int)pppppppcVar14 * 4)" (identifier "unaff_s4") (= "=") (cast_expression "(code *******)((int)pppppppcVar14 * 4)" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "((int)pppppppcVar14 * 4)" (( "(") (binary_expression "(int)pppppppcVar14 * 4" (cast_expression "(int)pppppppcVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppcVar14")) (* "*") (number_literal "4")) () ")")))) (; ";")) (expression_statement "param_5 = local_50 + (int)pppppppcVar14;" (assignment_expression "param_5 = local_50 + (int)pppppppcVar14" (identifier "param_5") (= "=") (binary_expression "local_50 + (int)pppppppcVar14" (identifier "local_50") (+ "+") (cast_expression "(int)pppppppcVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppcVar14")))) (; ";")) (if_statement "if (*param_5 == (code ******)0x0) {\n                              local_d0 = (code *******)*pppppppcVar30;\n                              local_cc = (code *******)pppppppcVar30[1];\n                              local_c8 = (code *******)pppppppcVar30[2];\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *param_5 = ppppppcVar39;\n                            }\n                            else {\n                              pppppppcVar29 = (code *******)(*param_5)[10];\n                              local_d4 = (code *******)FUN_000484bc(&local_d0);\n                              pppppppcVar15 = local_d4;\n                              if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar15 = local_50 + (int)pppppppcVar14;\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *pppppppcVar15 = ppppppcVar39;\n                              (*(code *)PTR_free_00079c24)(local_c8);\n                            }" (if "if") (parenthesized_expression "(*param_5 == (code ******)0x0)" (( "(") (binary_expression "*param_5 == (code ******)0x0" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (== "==") (cast_expression "(code ******)0x0" (( "(") (type_descriptor "code ******" (type_identifier "code") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                              local_d0 = (code *******)*pppppppcVar30;\n                              local_cc = (code *******)pppppppcVar30[1];\n                              local_c8 = (code *******)pppppppcVar30[2];\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *param_5 = ppppppcVar39;\n                            }" ({ "{") (expression_statement "local_d0 = (code *******)*pppppppcVar30;" (assignment_expression "local_d0 = (code *******)*pppppppcVar30" (identifier "local_d0") (= "=") (cast_expression "(code *******)*pppppppcVar30" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (pointer_expression "*pppppppcVar30" (* "*") (identifier "pppppppcVar30")))) (; ";")) (expression_statement "local_cc = (code *******)pppppppcVar30[1];" (assignment_expression "local_cc = (code *******)pppppppcVar30[1]" (identifier "local_cc") (= "=") (cast_expression "(code *******)pppppppcVar30[1]" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (subscript_expression "pppppppcVar30[1]" (identifier "pppppppcVar30") ([ "[") (number_literal "1") (] "]")))) (; ";")) (expression_statement "local_c8 = (code *******)pppppppcVar30[2];" (assignment_expression "local_c8 = (code *******)pppppppcVar30[2]" (identifier "local_c8") (= "=") (cast_expression "(code *******)pppppppcVar30[2]" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (subscript_expression "pppppppcVar30[2]" (identifier "pppppppcVar30") ([ "[") (number_literal "2") (] "]")))) (; ";")) (expression_statement "pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);" (assignment_expression "pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c)" (identifier "pppppppcVar33") (= "=") (cast_expression "(code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c)" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (call_expression "(*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c)" (parenthesized_expression "(*pcVar12)" (( "(") (pointer_expression "*pcVar12" (* "*") (identifier "pcVar12")) () ")")) (argument_list "(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c)" (( "(") (pointer_expression "&local_b4" (& "&") (identifier "local_b4")) (, ",") (cast_expression "(code *)((int)pppppppcVar14 + -1)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pppppppcVar14 + -1)" (( "(") (binary_expression "(int)pppppppcVar14 + -1" (cast_expression "(int)pppppppcVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppcVar14")) (+ "+") (number_literal "-1")) () ")"))) (, ",") (identifier "local_5c") () ")"))))) (; ";")) (expression_statement "pppppppcVar30 = (code *******)&local_d0;" (assignment_expression "pppppppcVar30 = (code *******)&local_d0" (identifier "pppppppcVar30") (= "=") (cast_expression "(code *******)&local_d0" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (pointer_expression "&local_d0" (& "&") (identifier "local_d0")))) (; ";")) (expression_statement "pppppppcVar29 = pppppppcVar42;" (assignment_expression "pppppppcVar29 = pppppppcVar42" (identifier "pppppppcVar29") (= "=") (identifier "pppppppcVar42")) (; ";")) (expression_statement "ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);" (assignment_expression "ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4)" (identifier "ppppppcVar39") (= "=") (cast_expression "(code ******)FUN_0004ae34(&local_d4)" (( "(") (type_descriptor "code ******" (type_identifier "code") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (call_expression "FUN_0004ae34(&local_d4)" (identifier "FUN_0004ae34") (argument_list "(&local_d4)" (( "(") (pointer_expression "&local_d4" (& "&") (identifier "local_d4")) () ")"))))) (; ";")) (expression_statement "*param_5 = ppppppcVar39;" (assignment_expression "*param_5 = ppppppcVar39" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (= "=") (identifier "ppppppcVar39")) (; ";")) (} "}")) (else_clause "else {\n                              pppppppcVar29 = (code *******)(*param_5)[10];\n                              local_d4 = (code *******)FUN_000484bc(&local_d0);\n                              pppppppcVar15 = local_d4;\n                              if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar15 = local_50 + (int)pppppppcVar14;\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *pppppppcVar15 = ppppppcVar39;\n                              (*(code *)PTR_free_00079c24)(local_c8);\n                            }" (else "else") (compound_statement "{\n                              pppppppcVar29 = (code *******)(*param_5)[10];\n                              local_d4 = (code *******)FUN_000484bc(&local_d0);\n                              pppppppcVar15 = local_d4;\n                              if (local_d4 != (code *******)0x0) goto LAB_00055e44;\n                              pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);\n                              pppppppcVar15 = local_50 + (int)pppppppcVar14;\n                              pppppppcVar30 = (code *******)&local_d0;\n                              pppppppcVar29 = pppppppcVar42;\n                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);\n                              *pppppppcVar15 = ppppppcVar39;\n                              (*(code *)PTR_free_00079c24)(local_c8);\n                            }" ({ "{") (expression_statement "pppppppcVar29 = (code *******)(*param_5)[10];" (assignment_expression "pppppppcVar29 = (code *******)(*param_5)[10]" (identifier "pppppppcVar29") (= "=") (cast_expression "(code *******)(*param_5)[10]" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (subscript_expression "(*param_5)[10]" (parenthesized_expression "(*param_5)" (( "(") (pointer_expression "*param_5" (* "*") (identifier "param_5")) () ")")) ([ "[") (number_literal "10") (] "]")))) (; ";")) (expression_statement "local_d4 = (code *******)FUN_000484bc(&local_d0);" (assignment_expression "local_d4 = (code *******)FUN_000484bc(&local_d0)" (identifier "local_d4") (= "=") (cast_expression "(code *******)FUN_000484bc(&local_d0)" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (call_expression "FUN_000484bc(&local_d0)" (identifier "FUN_000484bc") (argument_list "(&local_d0)" (( "(") (pointer_expression "&local_d0" (& "&") (identifier "local_d0")) () ")"))))) (; ";")) (expression_statement "pppppppcVar15 = local_d4;" (assignment_expression "pppppppcVar15 = local_d4" (identifier "pppppppcVar15") (= "=") (identifier "local_d4")) (; ";")) (if_statement "if (local_d4 != (code *******)0x0) goto LAB_00055e44;" (if "if") (parenthesized_expression "(local_d4 != (code *******)0x0)" (( "(") (binary_expression "local_d4 != (code *******)0x0" (identifier "local_d4") (!= "!=") (cast_expression "(code *******)0x0" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00055e44;" (goto "goto") (statement_identifier "LAB_00055e44") (; ";"))) (expression_statement "pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);" (assignment_expression "pppppppcVar33 =\n                                   (code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c)" (identifier "pppppppcVar33") (= "=") (cast_expression "(code *******)\n                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c)" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (call_expression "(*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c)" (parenthesized_expression "(*pcVar12)" (( "(") (pointer_expression "*pcVar12" (* "*") (identifier "pcVar12")) () ")")) (argument_list "(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c)" (( "(") (pointer_expression "&local_b4" (& "&") (identifier "local_b4")) (, ",") (cast_expression "(code *)((int)pppppppcVar14 + -1)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pppppppcVar14 + -1)" (( "(") (binary_expression "(int)pppppppcVar14 + -1" (cast_expression "(int)pppppppcVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppcVar14")) (+ "+") (number_literal "-1")) () ")"))) (, ",") (identifier "local_5c") () ")"))))) (; ";")) (expression_statement "pppppppcVar15 = local_50 + (int)pppppppcVar14;" (assignment_expression "pppppppcVar15 = local_50 + (int)pppppppcVar14" (identifier "pppppppcVar15") (= "=") (binary_expression "local_50 + (int)pppppppcVar14" (identifier "local_50") (+ "+") (cast_expression "(int)pppppppcVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppcVar14")))) (; ";")) (expression_statement "pppppppcVar30 = (code *******)&local_d0;" (assignment_expression "pppppppcVar30 = (code *******)&local_d0" (identifier "pppppppcVar30") (= "=") (cast_expression "(code *******)&local_d0" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (pointer_expression "&local_d0" (& "&") (identifier "local_d0")))) (; ";")) (expression_statement "pppppppcVar29 = pppppppcVar42;" (assignment_expression "pppppppcVar29 = pppppppcVar42" (identifier "pppppppcVar29") (= "=") (identifier "pppppppcVar42")) (; ";")) (expression_statement "ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);" (assignment_expression "ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4)" (identifier "ppppppcVar39") (= "=") (cast_expression "(code ******)FUN_0004ae34(&local_d4)" (( "(") (type_descriptor "code ******" (type_identifier "code") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (call_expression "FUN_0004ae34(&local_d4)" (identifier "FUN_0004ae34") (argument_list "(&local_d4)" (( "(") (pointer_expression "&local_d4" (& "&") (identifier "local_d4")) () ")"))))) (; ";")) (expression_statement "*pppppppcVar15 = ppppppcVar39;" (assignment_expression "*pppppppcVar15 = ppppppcVar39" (pointer_expression "*pppppppcVar15" (* "*") (identifier "pppppppcVar15")) (= "=") (identifier "ppppppcVar39")) (; ";")) (expression_statement "(*(code *)PTR_free_00079c24)(local_c8);" (call_expression "(*(code *)PTR_free_00079c24)(local_c8)" (parenthesized_expression "(*(code *)PTR_free_00079c24)" (( "(") (pointer_expression "*(code *)PTR_free_00079c24" (* "*") (cast_expression "(code *)PTR_free_00079c24" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_free_00079c24"))) () ")")) (argument_list "(local_c8)" (( "(") (identifier "local_c8") () ")"))) (; ";")) (} "}")))) (expression_statement "unaff_s4 = local_50 + (int)pppppppcVar14;" (assignment_expression "unaff_s4 = local_50 + (int)pppppppcVar14" (identifier "unaff_s4") (= "=") (binary_expression "local_50 + (int)pppppppcVar14" (identifier "local_50") (+ "+") (cast_expression "(int)pppppppcVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppcVar14")))) (; ";")) (if_statement "if ((*unaff_s4 == (code ******)0x0) &&\n                               (pppppppcVar15 = local_d4, local_d4 != (code *******)0x0))\n                            goto LAB_00055e44;" (if "if") (parenthesized_expression "((*unaff_s4 == (code ******)0x0) &&\n                               (pppppppcVar15 = local_d4, local_d4 != (code *******)0x0))" (( "(") (binary_expression "(*unaff_s4 == (code ******)0x0) &&\n                               (pppppppcVar15 = local_d4, local_d4 != (code *******)0x0)" (parenthesized_expression "(*unaff_s4 == (code ******)0x0)" (( "(") (binary_expression "*unaff_s4 == (code ******)0x0" (pointer_expression "*unaff_s4" (* "*") (identifier "unaff_s4")) (== "==") (cast_expression "(code ******)0x0" (( "(") (type_descriptor "code ******" (type_identifier "code") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(pppppppcVar15 = local_d4, local_d4 != (code *******)0x0)" (( "(") (comma_expression "pppppppcVar15 = local_d4, local_d4 != (code *******)0x0" (assignment_expression "pppppppcVar15 = local_d4" (identifier "pppppppcVar15") (= "=") (identifier "local_d4")) (, ",") (binary_expression "local_d4 != (code *******)0x0" (identifier "local_d4") (!= "!=") (cast_expression "(code *******)0x0" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0")))) () ")"))) () ")")) (goto_statement "goto LAB_00055e44;" (goto "goto") (statement_identifier "LAB_00055e44") (; ";"))) (} "}"))) (} "}"))) (labeled_statement "LAB_000550a4:\n                        param_6 = (code *******)((int)param_6 + 1);" (statement_identifier "LAB_000550a4") (: ":") (expression_statement "param_6 = (code *******)((int)param_6 + 1);" (assignment_expression "param_6 = (code *******)((int)param_6 + 1)" (identifier "param_6") (= "=") (cast_expression "(code *******)((int)param_6 + 1)" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "((int)param_6 + 1)" (( "(") (binary_expression "(int)param_6 + 1" (cast_expression "(int)param_6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_6")) (+ "+") (number_literal "1")) () ")")))) (; ";"))) (} "}")) (while "while") (parenthesized_expression "((int)param_6 < (int)unaff_s7[2])" (( "(") (binary_expression "(int)param_6 < (int)unaff_s7[2]" (cast_expression "(int)param_6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_6")) (< "<") (cast_expression "(int)unaff_s7[2]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "unaff_s7[2]" (identifier "unaff_s7") ([ "[") (number_literal "2") (] "]")))) () ")")) (; ";")) (} "}"))) (expression_statement "local_d8 = (code *******)0x0;" (assignment_expression "local_d8 = (code *******)0x0" (identifier "local_d8") (= "=") (cast_expression "(code *******)0x0" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) (; ";")) (} "}"))) (expression_statement "uVar7 = (uint)(byte)*(code *)((int)local_8c + (int)local_b0);" (assignment_expression "uVar7 = (uint)(byte)*(code *)((int)local_8c + (int)local_b0)" (identifier "uVar7") (= "=") (binary_expression "(uint)(byte)*(code *)((int)local_8c + (int)local_b0)" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(byte)" (( "(") (identifier "byte") () ")"))) (* "*") (cast_expression "(code *)((int)local_8c + (int)local_b0)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_8c + (int)local_b0)" (( "(") (binary_expression "(int)local_8c + (int)local_b0" (cast_expression "(int)local_8c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_8c")) (+ "+") (cast_expression "(int)local_b0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_b0"))) () ")"))))) (; ";")) (expression_statement "local_8c = (code *******)((int)local_8c + 1);" (assignment_expression "local_8c = (code *******)((int)local_8c + 1)" (identifier "local_8c") (= "=") (cast_expression "(code *******)((int)local_8c + 1)" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "((int)local_8c + 1)" (( "(") (binary_expression "(int)local_8c + 1" (cast_expression "(int)local_8c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_8c")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (do_statement "do {\n                    if (unaff_s7[0xb] != (code ******)0x0) {\n                      pppppppcVar30 = (code *******)unaff_s7[0xb][uVar7];\nLAB_000553a0:\n                      pppppppcVar14 = pppppppcVar30;\n                      if (local_50 != (code *******)0x0) goto LAB_000553ac;\n                      goto LAB_000553cc;\n                    }\n                    pppppppcVar31 = (code *******)unaff_s7[0xc];\n                    if (pppppppcVar31 != (code *******)0x0) {\n                      pppppppcVar29 = (code *******)((int)local_8c + -1);\n                      uVar19 = FUN_00049110(&local_b4);\n                      if ((uVar19 & 1) == 0) {\n                        pppppppcVar30 = (code *******)pppppppcVar31[uVar7];\n                      }\n                      else {\n                        pppppppcVar31 = pppppppcVar31 + uVar7 + 0x100;\n                        pppppppcVar30 = (code *******)*pppppppcVar31;\n                      }\n                      goto LAB_000553a0;\n                    }\n                    pppppppcVar29 = unaff_s7;\n                    pppppppcVar30 = local_5c;\n                    iVar18 = (*pcVar9)(local_60);\n                  } while (iVar18 != 0);" (do "do") (compound_statement "{\n                    if (unaff_s7[0xb] != (code ******)0x0) {\n                      pppppppcVar30 = (code *******)unaff_s7[0xb][uVar7];\nLAB_000553a0:\n                      pppppppcVar14 = pppppppcVar30;\n                      if (local_50 != (code *******)0x0) goto LAB_000553ac;\n                      goto LAB_000553cc;\n                    }\n                    pppppppcVar31 = (code *******)unaff_s7[0xc];\n                    if (pppppppcVar31 != (code *******)0x0) {\n                      pppppppcVar29 = (code *******)((int)local_8c + -1);\n                      uVar19 = FUN_00049110(&local_b4);\n                      if ((uVar19 & 1) == 0) {\n                        pppppppcVar30 = (code *******)pppppppcVar31[uVar7];\n                      }\n                      else {\n                        pppppppcVar31 = pppppppcVar31 + uVar7 + 0x100;\n                        pppppppcVar30 = (code *******)*pppppppcVar31;\n                      }\n                      goto LAB_000553a0;\n                    }\n                    pppppppcVar29 = unaff_s7;\n                    pppppppcVar30 = local_5c;\n                    iVar18 = (*pcVar9)(local_60);\n                  }" ({ "{") (if_statement "if (unaff_s7[0xb] != (code ******)0x0) {\n                      pppppppcVar30 = (code *******)unaff_s7[0xb][uVar7];\nLAB_000553a0:\n                      pppppppcVar14 = pppppppcVar30;\n                      if (local_50 != (code *******)0x0) goto LAB_000553ac;\n                      goto LAB_000553cc;\n                    }" (if "if") (parenthesized_expression "(unaff_s7[0xb] != (code ******)0x0)" (( "(") (binary_expression "unaff_s7[0xb] != (code ******)0x0" (subscript_expression "unaff_s7[0xb]" (identifier "unaff_s7") ([ "[") (number_literal "0xb") (] "]")) (!= "!=") (cast_expression "(code ******)0x0" (( "(") (type_descriptor "code ******" (type_identifier "code") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                      pppppppcVar30 = (code *******)unaff_s7[0xb][uVar7];\nLAB_000553a0:\n                      pppppppcVar14 = pppppppcVar30;\n                      if (local_50 != (code *******)0x0) goto LAB_000553ac;\n                      goto LAB_000553cc;\n                    }" ({ "{") (expression_statement "pppppppcVar30 = (code *******)unaff_s7[0xb][uVar7];" (assignment_expression "pppppppcVar30 = (code *******)unaff_s7[0xb][uVar7]" (identifier "pppppppcVar30") (= "=") (cast_expression "(code *******)unaff_s7[0xb][uVar7]" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (subscript_expression "unaff_s7[0xb][uVar7]" (subscript_expression "unaff_s7[0xb]" (identifier "unaff_s7") ([ "[") (number_literal "0xb") (] "]")) ([ "[") (identifier "uVar7") (] "]")))) (; ";")) (labeled_statement "LAB_000553a0:\n                      pppppppcVar14 = pppppppcVar30;" (statement_identifier "LAB_000553a0") (: ":") (expression_statement "pppppppcVar14 = pppppppcVar30;" (assignment_expression "pppppppcVar14 = pppppppcVar30" (identifier "pppppppcVar14") (= "=") (identifier "pppppppcVar30")) (; ";"))) (if_statement "if (local_50 != (code *******)0x0) goto LAB_000553ac;" (if "if") (parenthesized_expression "(local_50 != (code *******)0x0)" (( "(") (binary_expression "local_50 != (code *******)0x0" (identifier "local_50") (!= "!=") (cast_expression "(code *******)0x0" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_000553ac;" (goto "goto") (statement_identifier "LAB_000553ac") (; ";"))) (goto_statement "goto LAB_000553cc;" (goto "goto") (statement_identifier "LAB_000553cc") (; ";")) (} "}"))) (expression_statement "pppppppcVar31 = (code *******)unaff_s7[0xc];" (assignment_expression "pppppppcVar31 = (code *******)unaff_s7[0xc]" (identifier "pppppppcVar31") (= "=") (cast_expression "(code *******)unaff_s7[0xc]" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (subscript_expression "unaff_s7[0xc]" (identifier "unaff_s7") ([ "[") (number_literal "0xc") (] "]")))) (; ";")) (if_statement "if (pppppppcVar31 != (code *******)0x0) {\n                      pppppppcVar29 = (code *******)((int)local_8c + -1);\n                      uVar19 = FUN_00049110(&local_b4);\n                      if ((uVar19 & 1) == 0) {\n                        pppppppcVar30 = (code *******)pppppppcVar31[uVar7];\n                      }\n                      else {\n                        pppppppcVar31 = pppppppcVar31 + uVar7 + 0x100;\n                        pppppppcVar30 = (code *******)*pppppppcVar31;\n                      }\n                      goto LAB_000553a0;\n                    }" (if "if") (parenthesized_expression "(pppppppcVar31 != (code *******)0x0)" (( "(") (binary_expression "pppppppcVar31 != (code *******)0x0" (identifier "pppppppcVar31") (!= "!=") (cast_expression "(code *******)0x0" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                      pppppppcVar29 = (code *******)((int)local_8c + -1);\n                      uVar19 = FUN_00049110(&local_b4);\n                      if ((uVar19 & 1) == 0) {\n                        pppppppcVar30 = (code *******)pppppppcVar31[uVar7];\n                      }\n                      else {\n                        pppppppcVar31 = pppppppcVar31 + uVar7 + 0x100;\n                        pppppppcVar30 = (code *******)*pppppppcVar31;\n                      }\n                      goto LAB_000553a0;\n                    }" ({ "{") (expression_statement "pppppppcVar29 = (code *******)((int)local_8c + -1);" (assignment_expression "pppppppcVar29 = (code *******)((int)local_8c + -1)" (identifier "pppppppcVar29") (= "=") (cast_expression "(code *******)((int)local_8c + -1)" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "((int)local_8c + -1)" (( "(") (binary_expression "(int)local_8c + -1" (cast_expression "(int)local_8c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_8c")) (+ "+") (number_literal "-1")) () ")")))) (; ";")) (expression_statement "uVar19 = FUN_00049110(&local_b4);" (assignment_expression "uVar19 = FUN_00049110(&local_b4)" (identifier "uVar19") (= "=") (call_expression "FUN_00049110(&local_b4)" (identifier "FUN_00049110") (argument_list "(&local_b4)" (( "(") (pointer_expression "&local_b4" (& "&") (identifier "local_b4")) () ")")))) (; ";")) (if_statement "if ((uVar19 & 1) == 0) {\n                        pppppppcVar30 = (code *******)pppppppcVar31[uVar7];\n                      }\n                      else {\n                        pppppppcVar31 = pppppppcVar31 + uVar7 + 0x100;\n                        pppppppcVar30 = (code *******)*pppppppcVar31;\n                      }" (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")) () ")")) (compound_statement "{\n                        pppppppcVar30 = (code *******)pppppppcVar31[uVar7];\n                      }" ({ "{") (expression_statement "pppppppcVar30 = (code *******)pppppppcVar31[uVar7];" (assignment_expression "pppppppcVar30 = (code *******)pppppppcVar31[uVar7]" (identifier "pppppppcVar30") (= "=") (cast_expression "(code *******)pppppppcVar31[uVar7]" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (subscript_expression "pppppppcVar31[uVar7]" (identifier "pppppppcVar31") ([ "[") (identifier "uVar7") (] "]")))) (; ";")) (} "}")) (else_clause "else {\n                        pppppppcVar31 = pppppppcVar31 + uVar7 + 0x100;\n                        pppppppcVar30 = (code *******)*pppppppcVar31;\n                      }" (else "else") (compound_statement "{\n                        pppppppcVar31 = pppppppcVar31 + uVar7 + 0x100;\n                        pppppppcVar30 = (code *******)*pppppppcVar31;\n                      }" ({ "{") (expression_statement "pppppppcVar31 = pppppppcVar31 + uVar7 + 0x100;" (assignment_expression "pppppppcVar31 = pppppppcVar31 + uVar7 + 0x100" (identifier "pppppppcVar31") (= "=") (binary_expression "pppppppcVar31 + uVar7 + 0x100" (binary_expression "pppppppcVar31 + uVar7" (identifier "pppppppcVar31") (+ "+") (identifier "uVar7")) (+ "+") (number_literal "0x100"))) (; ";")) (expression_statement "pppppppcVar30 = (code *******)*pppppppcVar31;" (assignment_expression "pppppppcVar30 = (code *******)*pppppppcVar31" (identifier "pppppppcVar30") (= "=") (cast_expression "(code *******)*pppppppcVar31" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (pointer_expression "*pppppppcVar31" (* "*") (identifier "pppppppcVar31")))) (; ";")) (} "}")))) (goto_statement "goto LAB_000553a0;" (goto "goto") (statement_identifier "LAB_000553a0") (; ";")) (} "}"))) (expression_statement "pppppppcVar29 = unaff_s7;" (assignment_expression "pppppppcVar29 = unaff_s7" (identifier "pppppppcVar29") (= "=") (identifier "unaff_s7")) (; ";")) (expression_statement "pppppppcVar30 = local_5c;" (assignment_expression "pppppppcVar30 = local_5c" (identifier "pppppppcVar30") (= "=") (identifier "local_5c")) (; ";")) (expression_statement "iVar18 = (*pcVar9)(local_60);" (assignment_expression "iVar18 = (*pcVar9)(local_60)" (identifier "iVar18") (= "=") (call_expression "(*pcVar9)(local_60)" (parenthesized_expression "(*pcVar9)" (( "(") (pointer_expression "*pcVar9" (* "*") (identifier "pcVar9")) () ")")) (argument_list "(local_60)" (( "(") (identifier "local_60") () ")")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar18 != 0)" (( "(") (binary_expression "iVar18 != 0" (identifier "iVar18") (!= "!=") (number_literal "0")) () ")")) (; ";")) (expression_statement "local_d8 = (code *******)0xc;" (assignment_expression "local_d8 = (code *******)0xc" (identifier "local_d8") (= "=") (cast_expression "(code *******)0xc" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0xc"))) (; ";")) (expression_statement "pppppppcVar15 = local_d8;" (assignment_expression "pppppppcVar15 = local_d8" (identifier "pppppppcVar15") (= "=") (identifier "local_d8")) (; ";")) (labeled_statement "LAB_00055e44:\n                  local_d8 = pppppppcVar15;" (statement_identifier "LAB_00055e44") (: ":") (expression_statement "local_d8 = pppppppcVar15;" (assignment_expression "local_d8 = pppppppcVar15" (identifier "local_d8") (= "=") (identifier "pppppppcVar15")) (; ";"))) (expression_statement "param_4 = (code *******)0x0;" (assignment_expression "param_4 = (code *******)0x0" (identifier "param_4") (= "=") (cast_expression "(code *******)0x0" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) (; ";")) (if_statement "if (local_50 == (code *******)0x0) {\n                    pppppppcVar14 = param_4;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    break;\n                  }" (if "if") (parenthesized_expression "(local_50 == (code *******)0x0)" (( "(") (binary_expression "local_50 == (code *******)0x0" (identifier "local_50") (== "==") (cast_expression "(code *******)0x0" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                    pppppppcVar14 = param_4;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    break;\n                  }" ({ "{") (expression_statement "pppppppcVar14 = param_4;" (assignment_expression "pppppppcVar14 = param_4" (identifier "pppppppcVar14") (= "=") (identifier "param_4")) (; ";")) (if_statement "if (local_d8 != (code *******)0x0) goto LAB_00055914;" (if "if") (parenthesized_expression "(local_d8 != (code *******)0x0)" (( "(") (binary_expression "local_d8 != (code *******)0x0" (identifier "local_d8") (!= "!=") (cast_expression "(code *******)0x0" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00055914;" (goto "goto") (statement_identifier "LAB_00055914") (; ";"))) (break_statement "break;" (break "break") (; ";")) (} "}"))) (expression_statement "pppppppcVar30 = (code *******)0x0;" (assignment_expression "pppppppcVar30 = (code *******)0x0" (identifier "pppppppcVar30") (= "=") (cast_expression "(code *******)0x0" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) (; ";")) (labeled_statement "LAB_000553ac:\n                  pppppppcVar29 = &local_b4;" (statement_identifier "LAB_000553ac") (: ":") (expression_statement "pppppppcVar29 = &local_b4;" (assignment_expression "pppppppcVar29 = &local_b4" (identifier "pppppppcVar29") (= "=") (pointer_expression "&local_b4" (& "&") (identifier "local_b4"))) (; ";"))) (expression_statement "pppppppcVar14 = (code *******)FUN_00053684(&local_d8);" (assignment_expression "pppppppcVar14 = (code *******)FUN_00053684(&local_d8)" (identifier "pppppppcVar14") (= "=") (cast_expression "(code *******)FUN_00053684(&local_d8)" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (call_expression "FUN_00053684(&local_d8)" (identifier "FUN_00053684") (argument_list "(&local_d8)" (( "(") (pointer_expression "&local_d8" (& "&") (identifier "local_d8")) () ")"))))) (; ";")) (labeled_statement "LAB_000553cc:\n                  param_4 = pppppppcVar14;" (statement_identifier "LAB_000553cc") (: ":") (expression_statement "param_4 = pppppppcVar14;" (assignment_expression "param_4 = pppppppcVar14" (identifier "param_4") (= "=") (identifier "pppppppcVar14")) (; ";"))) (if_statement "if (pppppppcVar14 == (code *******)0x0) {\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    if ((local_50 == (code *******)0x0) ||\n                       ((pppppppcVar28 != (code *******)0x0 && (pppppppcVar34 == (code *******)0x0))\n                       )) break;\n                    param_6 = &local_b4;\n                    param_5 = (code *******)&local_d8;\n                    pppppppcVar31 = (code *******)(PTR_DAT_000799a4 + 0x3684);\n                    do {\n                      pppppppcVar15 = local_50 + (int)local_8c;\n                      pppppppcVar42 = local_8c;\n                      do {\n                        pppppppcVar42 = (code *******)((int)pppppppcVar42 + 1);\n                        pppppppcVar29 = local_4c;\n                        param_4 = pppppppcVar14;\n                        if ((int)local_4c < (int)pppppppcVar42) goto LAB_00055da8;\n                        local_8c = (code *******)((int)local_8c + 1);\n                        pppppppcVar15 = pppppppcVar15 + 1;\n                      } while (*pppppppcVar15 == (code ******)0x0);\n                      pppppppcVar30 = (code *******)0x0;\n                      pppppppcVar29 = param_6;\n                      param_4 = (code *******)(*(code *)pppppppcVar31)(param_5);\n                      if (local_d8 != (code *******)0x0) {\n                        if (param_4 == (code *******)0x0) goto LAB_00055da8;\n                        break;\n                      }\n                      pppppppcVar29 = local_4c;\n                    } while (param_4 == (code *******)0x0);\n                  }" (if "if") (parenthesized_expression "(pppppppcVar14 == (code *******)0x0)" (( "(") (binary_expression "pppppppcVar14 == (code *******)0x0" (identifier "pppppppcVar14") (== "==") (cast_expression "(code *******)0x0" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                    if (local_d8 != (code *******)0x0) goto LAB_00055914;\n                    if ((local_50 == (code *******)0x0) ||\n                       ((pppppppcVar28 != (code *******)0x0 && (pppppppcVar34 == (code *******)0x0))\n                       )) break;\n                    param_6 = &local_b4;\n                    param_5 = (code *******)&local_d8;\n                    pppppppcVar31 = (code *******)(PTR_DAT_000799a4 + 0x3684);\n                    do {\n                      pppppppcVar15 = local_50 + (int)local_8c;\n                      pppppppcVar42 = local_8c;\n                      do {\n                        pppppppcVar42 = (code *******)((int)pppppppcVar42 + 1);\n                        pppppppcVar29 = local_4c;\n                        param_4 = pppppppcVar14;\n                        if ((int)local_4c < (int)pppppppcVar42) goto LAB_00055da8;\n                        local_8c = (code *******)((int)local_8c + 1);\n                        pppppppcVar15 = pppppppcVar15 + 1;\n                      } while (*pppppppcVar15 == (code ******)0x0);\n                      pppppppcVar30 = (code *******)0x0;\n                      pppppppcVar29 = param_6;\n                      param_4 = (code *******)(*(code *)pppppppcVar31)(param_5);\n                      if (local_d8 != (code *******)0x0) {\n                        if (param_4 == (code *******)0x0) goto LAB_00055da8;\n                        break;\n                      }\n                      pppppppcVar29 = local_4c;\n                    } while (param_4 == (code *******)0x0);\n                  }" ({ "{") (if_statement "if (local_d8 != (code *******)0x0) goto LAB_00055914;" (if "if") (parenthesized_expression "(local_d8 != (code *******)0x0)" (( "(") (binary_expression "local_d8 != (code *******)0x0" (identifier "local_d8") (!= "!=") (cast_expression "(code *******)0x0" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00055914;" (goto "goto") (statement_identifier "LAB_00055914") (; ";"))) (if_statement "if ((local_50 == (code *******)0x0) ||\n                       ((pppppppcVar28 != (code *******)0x0 && (pppppppcVar34 == (code *******)0x0))\n                       )) break;" (if "if") (parenthesized_expression "((local_50 == (code *******)0x0) ||\n                       ((pppppppcVar28 != (code *******)0x0 && (pppppppcVar34 == (code *******)0x0))\n                       ))" (( "(") (binary_expression "(local_50 == (code *******)0x0) ||\n                       ((pppppppcVar28 != (code *******)0x0 && (pppppppcVar34 == (code *******)0x0))\n                       )" (parenthesized_expression "(local_50 == (code *******)0x0)" (( "(") (binary_expression "local_50 == (code *******)0x0" (identifier "local_50") (== "==") (cast_expression "(code *******)0x0" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) () ")")) (|| "||") (parenthesized_expression "((pppppppcVar28 != (code *******)0x0 && (pppppppcVar34 == (code *******)0x0))\n                       )" (( "(") (parenthesized_expression "(pppppppcVar28 != (code *******)0x0 && (pppppppcVar34 == (code *******)0x0))" (( "(") (binary_expression "pppppppcVar28 != (code *******)0x0 && (pppppppcVar34 == (code *******)0x0)" (binary_expression "pppppppcVar28 != (code *******)0x0" (identifier "pppppppcVar28") (!= "!=") (cast_expression "(code *******)0x0" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) (&& "&&") (parenthesized_expression "(pppppppcVar34 == (code *******)0x0)" (( "(") (binary_expression "pppppppcVar34 == (code *******)0x0" (identifier "pppppppcVar34") (== "==") (cast_expression "(code *******)0x0" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) () ")"))) () ")")) () ")"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "param_6 = &local_b4;" (assignment_expression "param_6 = &local_b4" (identifier "param_6") (= "=") (pointer_expression "&local_b4" (& "&") (identifier "local_b4"))) (; ";")) (expression_statement "param_5 = (code *******)&local_d8;" (assignment_expression "param_5 = (code *******)&local_d8" (identifier "param_5") (= "=") (cast_expression "(code *******)&local_d8" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (pointer_expression "&local_d8" (& "&") (identifier "local_d8")))) (; ";")) (expression_statement "pppppppcVar31 = (code *******)(PTR_DAT_000799a4 + 0x3684);" (assignment_expression "pppppppcVar31 = (code *******)(PTR_DAT_000799a4 + 0x3684)" (identifier "pppppppcVar31") (= "=") (cast_expression "(code *******)(PTR_DAT_000799a4 + 0x3684)" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "(PTR_DAT_000799a4 + 0x3684)" (( "(") (binary_expression "PTR_DAT_000799a4 + 0x3684" (identifier "PTR_DAT_000799a4") (+ "+") (number_literal "0x3684")) () ")")))) (; ";")) (do_statement "do {\n                      pppppppcVar15 = local_50 + (int)local_8c;\n                      pppppppcVar42 = local_8c;\n                      do {\n                        pppppppcVar42 = (code *******)((int)pppppppcVar42 + 1);\n                        pppppppcVar29 = local_4c;\n                        param_4 = pppppppcVar14;\n                        if ((int)local_4c < (int)pppppppcVar42) goto LAB_00055da8;\n                        local_8c = (code *******)((int)local_8c + 1);\n                        pppppppcVar15 = pppppppcVar15 + 1;\n                      } while (*pppppppcVar15 == (code ******)0x0);\n                      pppppppcVar30 = (code *******)0x0;\n                      pppppppcVar29 = param_6;\n                      param_4 = (code *******)(*(code *)pppppppcVar31)(param_5);\n                      if (local_d8 != (code *******)0x0) {\n                        if (param_4 == (code *******)0x0) goto LAB_00055da8;\n                        break;\n                      }\n                      pppppppcVar29 = local_4c;\n                    } while (param_4 == (code *******)0x0);" (do "do") (compound_statement "{\n                      pppppppcVar15 = local_50 + (int)local_8c;\n                      pppppppcVar42 = local_8c;\n                      do {\n                        pppppppcVar42 = (code *******)((int)pppppppcVar42 + 1);\n                        pppppppcVar29 = local_4c;\n                        param_4 = pppppppcVar14;\n                        if ((int)local_4c < (int)pppppppcVar42) goto LAB_00055da8;\n                        local_8c = (code *******)((int)local_8c + 1);\n                        pppppppcVar15 = pppppppcVar15 + 1;\n                      } while (*pppppppcVar15 == (code ******)0x0);\n                      pppppppcVar30 = (code *******)0x0;\n                      pppppppcVar29 = param_6;\n                      param_4 = (code *******)(*(code *)pppppppcVar31)(param_5);\n                      if (local_d8 != (code *******)0x0) {\n                        if (param_4 == (code *******)0x0) goto LAB_00055da8;\n                        break;\n                      }\n                      pppppppcVar29 = local_4c;\n                    }" ({ "{") (expression_statement "pppppppcVar15 = local_50 + (int)local_8c;" (assignment_expression "pppppppcVar15 = local_50 + (int)local_8c" (identifier "pppppppcVar15") (= "=") (binary_expression "local_50 + (int)local_8c" (identifier "local_50") (+ "+") (cast_expression "(int)local_8c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_8c")))) (; ";")) (expression_statement "pppppppcVar42 = local_8c;" (assignment_expression "pppppppcVar42 = local_8c" (identifier "pppppppcVar42") (= "=") (identifier "local_8c")) (; ";")) (do_statement "do {\n                        pppppppcVar42 = (code *******)((int)pppppppcVar42 + 1);\n                        pppppppcVar29 = local_4c;\n                        param_4 = pppppppcVar14;\n                        if ((int)local_4c < (int)pppppppcVar42) goto LAB_00055da8;\n                        local_8c = (code *******)((int)local_8c + 1);\n                        pppppppcVar15 = pppppppcVar15 + 1;\n                      } while (*pppppppcVar15 == (code ******)0x0);" (do "do") (compound_statement "{\n                        pppppppcVar42 = (code *******)((int)pppppppcVar42 + 1);\n                        pppppppcVar29 = local_4c;\n                        param_4 = pppppppcVar14;\n                        if ((int)local_4c < (int)pppppppcVar42) goto LAB_00055da8;\n                        local_8c = (code *******)((int)local_8c + 1);\n                        pppppppcVar15 = pppppppcVar15 + 1;\n                      }" ({ "{") (expression_statement "pppppppcVar42 = (code *******)((int)pppppppcVar42 + 1);" (assignment_expression "pppppppcVar42 = (code *******)((int)pppppppcVar42 + 1)" (identifier "pppppppcVar42") (= "=") (cast_expression "(code *******)((int)pppppppcVar42 + 1)" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "((int)pppppppcVar42 + 1)" (( "(") (binary_expression "(int)pppppppcVar42 + 1" (cast_expression "(int)pppppppcVar42" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppcVar42")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "pppppppcVar29 = local_4c;" (assignment_expression "pppppppcVar29 = local_4c" (identifier "pppppppcVar29") (= "=") (identifier "local_4c")) (; ";")) (expression_statement "param_4 = pppppppcVar14;" (assignment_expression "param_4 = pppppppcVar14" (identifier "param_4") (= "=") (identifier "pppppppcVar14")) (; ";")) (if_statement "if ((int)local_4c < (int)pppppppcVar42) goto LAB_00055da8;" (if "if") (parenthesized_expression "((int)local_4c < (int)pppppppcVar42)" (( "(") (binary_expression "(int)local_4c < (int)pppppppcVar42" (cast_expression "(int)local_4c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_4c")) (< "<") (cast_expression "(int)pppppppcVar42" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppcVar42"))) () ")")) (goto_statement "goto LAB_00055da8;" (goto "goto") (statement_identifier "LAB_00055da8") (; ";"))) (expression_statement "local_8c = (code *******)((int)local_8c + 1);" (assignment_expression "local_8c = (code *******)((int)local_8c + 1)" (identifier "local_8c") (= "=") (cast_expression "(code *******)((int)local_8c + 1)" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "((int)local_8c + 1)" (( "(") (binary_expression "(int)local_8c + 1" (cast_expression "(int)local_8c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_8c")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "pppppppcVar15 = pppppppcVar15 + 1;" (assignment_expression "pppppppcVar15 = pppppppcVar15 + 1" (identifier "pppppppcVar15") (= "=") (binary_expression "pppppppcVar15 + 1" (identifier "pppppppcVar15") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(*pppppppcVar15 == (code ******)0x0)" (( "(") (binary_expression "*pppppppcVar15 == (code ******)0x0" (pointer_expression "*pppppppcVar15" (* "*") (identifier "pppppppcVar15")) (== "==") (cast_expression "(code ******)0x0" (( "(") (type_descriptor "code ******" (type_identifier "code") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (expression_statement "pppppppcVar30 = (code *******)0x0;" (assignment_expression "pppppppcVar30 = (code *******)0x0" (identifier "pppppppcVar30") (= "=") (cast_expression "(code *******)0x0" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "pppppppcVar29 = param_6;" (assignment_expression "pppppppcVar29 = param_6" (identifier "pppppppcVar29") (= "=") (identifier "param_6")) (; ";")) (expression_statement "param_4 = (code *******)(*(code *)pppppppcVar31)(param_5);" (assignment_expression "param_4 = (code *******)(*(code *)pppppppcVar31)(param_5)" (identifier "param_4") (= "=") (cast_expression "(code *******)(*(code *)pppppppcVar31)(param_5)" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (call_expression "(*(code *)pppppppcVar31)(param_5)" (parenthesized_expression "(*(code *)pppppppcVar31)" (( "(") (pointer_expression "*(code *)pppppppcVar31" (* "*") (cast_expression "(code *)pppppppcVar31" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pppppppcVar31"))) () ")")) (argument_list "(param_5)" (( "(") (identifier "param_5") () ")"))))) (; ";")) (if_statement "if (local_d8 != (code *******)0x0) {\n                        if (param_4 == (code *******)0x0) goto LAB_00055da8;\n                        break;\n                      }" (if "if") (parenthesized_expression "(local_d8 != (code *******)0x0)" (( "(") (binary_expression "local_d8 != (code *******)0x0" (identifier "local_d8") (!= "!=") (cast_expression "(code *******)0x0" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                        if (param_4 == (code *******)0x0) goto LAB_00055da8;\n                        break;\n                      }" ({ "{") (if_statement "if (param_4 == (code *******)0x0) goto LAB_00055da8;" (if "if") (parenthesized_expression "(param_4 == (code *******)0x0)" (( "(") (binary_expression "param_4 == (code *******)0x0" (identifier "param_4") (== "==") (cast_expression "(code *******)0x0" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00055da8;" (goto "goto") (statement_identifier "LAB_00055da8") (; ";"))) (break_statement "break;" (break "break") (; ";")) (} "}"))) (expression_statement "pppppppcVar29 = local_4c;" (assignment_expression "pppppppcVar29 = local_4c" (identifier "pppppppcVar29") (= "=") (identifier "local_4c")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(param_4 == (code *******)0x0)" (( "(") (binary_expression "param_4 == (code *******)0x0" (identifier "param_4") (== "==") (cast_expression "(code *******)0x0" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (} "}"))) (expression_statement "pppppppcVar15 = (code *******)((uint)unaff_s7 ^ (uint)param_4);" (assignment_expression "pppppppcVar15 = (code *******)((uint)unaff_s7 ^ (uint)param_4)" (identifier "pppppppcVar15") (= "=") (cast_expression "(code *******)((uint)unaff_s7 ^ (uint)param_4)" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "((uint)unaff_s7 ^ (uint)param_4)" (( "(") (binary_expression "(uint)unaff_s7 ^ (uint)param_4" (cast_expression "(uint)unaff_s7" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "unaff_s7")) (^ "^") (cast_expression "(uint)param_4" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "param_4"))) () ")")))) (; ";")) (expression_statement "pppppppcVar42 = unaff_s7;" (assignment_expression "pppppppcVar42 = unaff_s7" (identifier "pppppppcVar42") (= "=") (identifier "unaff_s7")) (; ";")) (expression_statement "pppppppcVar14 = local_138;" (assignment_expression "pppppppcVar14 = local_138" (identifier "pppppppcVar14") (= "=") (identifier "local_138")) (; ";")) (if_statement "if ((bVar1) &&\n                     (pppppppcVar42 = pppppppcVar15, pppppppcVar14 = unaff_s5,\n                     pppppppcVar15 != (code *******)0x0)) {\n                    bVar1 = false;\n                    pppppppcVar14 = local_138;\n                  }" (if "if") (parenthesized_expression "((bVar1) &&\n                     (pppppppcVar42 = pppppppcVar15, pppppppcVar14 = unaff_s5,\n                     pppppppcVar15 != (code *******)0x0))" (( "(") (binary_expression "(bVar1) &&\n                     (pppppppcVar42 = pppppppcVar15, pppppppcVar14 = unaff_s5,\n                     pppppppcVar15 != (code *******)0x0)" (parenthesized_expression "(bVar1)" (( "(") (identifier "bVar1") () ")")) (&& "&&") (parenthesized_expression "(pppppppcVar42 = pppppppcVar15, pppppppcVar14 = unaff_s5,\n                     pppppppcVar15 != (code *******)0x0)" (( "(") (comma_expression "pppppppcVar42 = pppppppcVar15, pppppppcVar14 = unaff_s5,\n                     pppppppcVar15 != (code *******)0x0" (assignment_expression "pppppppcVar42 = pppppppcVar15" (identifier "pppppppcVar42") (= "=") (identifier "pppppppcVar15")) (, ",") (comma_expression "pppppppcVar14 = unaff_s5,\n                     pppppppcVar15 != (code *******)0x0" (assignment_expression "pppppppcVar14 = unaff_s5" (identifier "pppppppcVar14") (= "=") (identifier "unaff_s5")) (, ",") (binary_expression "pppppppcVar15 != (code *******)0x0" (identifier "pppppppcVar15") (!= "!=") (cast_expression "(code *******)0x0" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))))) () ")"))) () ")")) (compound_statement "{\n                    bVar1 = false;\n                    pppppppcVar14 = local_138;\n                  }" ({ "{") (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" (identifier "bVar1") (= "=") (false "false")) (; ";")) (expression_statement "pppppppcVar14 = local_138;" (assignment_expression "pppppppcVar14 = local_138" (identifier "pppppppcVar14") (= "=") (identifier "local_138")) (; ";")) (} "}"))) (expression_statement "local_138 = pppppppcVar14;" (assignment_expression "local_138 = pppppppcVar14" (identifier "local_138") (= "=") (identifier "pppppppcVar14")) (; ";")) (expression_statement "unaff_s7 = param_4;" (assignment_expression "unaff_s7 = param_4" (identifier "unaff_s7") (= "=") (identifier "param_4")) (; ";")) (if_statement "if ((((uint)param_4[0xd] & 0x8000000) != 0) &&\n                     ((((uint)param_4[0xd] & 0x1000000) == 0 ||\n                      (pppppppcVar29 = param_4, pppppppcVar30 = local_8c,\n                      iVar18 = FUN_00049440(&local_b4), iVar18 != 0)))) {\n                    unaff_s7 = pppppppcVar42;\n                    unaff_s8 = local_8c;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                    local_144 = (code *******)0x0;\n                    unaff_s7 = param_4;\n                  }" (if "if") (parenthesized_expression "((((uint)param_4[0xd] & 0x8000000) != 0) &&\n                     ((((uint)param_4[0xd] & 0x1000000) == 0 ||\n                      (pppppppcVar29 = param_4, pppppppcVar30 = local_8c,\n                      iVar18 = FUN_00049440(&local_b4), iVar18 != 0))))" (( "(") (binary_expression "(((uint)param_4[0xd] & 0x8000000) != 0) &&\n                     ((((uint)param_4[0xd] & 0x1000000) == 0 ||\n                      (pppppppcVar29 = param_4, pppppppcVar30 = local_8c,\n                      iVar18 = FUN_00049440(&local_b4), iVar18 != 0)))" (parenthesized_expression "(((uint)param_4[0xd] & 0x8000000) != 0)" (( "(") (binary_expression "((uint)param_4[0xd] & 0x8000000) != 0" (parenthesized_expression "((uint)param_4[0xd] & 0x8000000)" (( "(") (binary_expression "(uint)param_4[0xd] & 0x8000000" (cast_expression "(uint)param_4[0xd]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "param_4[0xd]" (identifier "param_4") ([ "[") (number_literal "0xd") (] "]"))) (& "&") (number_literal "0x8000000")) () ")")) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "((((uint)param_4[0xd] & 0x1000000) == 0 ||\n                      (pppppppcVar29 = param_4, pppppppcVar30 = local_8c,\n                      iVar18 = FUN_00049440(&local_b4), iVar18 != 0)))" (( "(") (parenthesized_expression "(((uint)param_4[0xd] & 0x1000000) == 0 ||\n                      (pppppppcVar29 = param_4, pppppppcVar30 = local_8c,\n                      iVar18 = FUN_00049440(&local_b4), iVar18 != 0))" (( "(") (binary_expression "((uint)param_4[0xd] & 0x1000000) == 0 ||\n                      (pppppppcVar29 = param_4, pppppppcVar30 = local_8c,\n                      iVar18 = FUN_00049440(&local_b4), iVar18 != 0)" (binary_expression "((uint)param_4[0xd] & 0x1000000) == 0" (parenthesized_expression "((uint)param_4[0xd] & 0x1000000)" (( "(") (binary_expression "(uint)param_4[0xd] & 0x1000000" (cast_expression "(uint)param_4[0xd]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "param_4[0xd]" (identifier "param_4") ([ "[") (number_literal "0xd") (] "]"))) (& "&") (number_literal "0x1000000")) () ")")) (== "==") (number_literal "0")) (|| "||") (parenthesized_expression "(pppppppcVar29 = param_4, pppppppcVar30 = local_8c,\n                      iVar18 = FUN_00049440(&local_b4), iVar18 != 0)" (( "(") (comma_expression "pppppppcVar29 = param_4, pppppppcVar30 = local_8c,\n                      iVar18 = FUN_00049440(&local_b4), iVar18 != 0" (assignment_expression "pppppppcVar29 = param_4" (identifier "pppppppcVar29") (= "=") (identifier "param_4")) (, ",") (comma_expression "pppppppcVar30 = local_8c,\n                      iVar18 = FUN_00049440(&local_b4), iVar18 != 0" (assignment_expression "pppppppcVar30 = local_8c" (identifier "pppppppcVar30") (= "=") (identifier "local_8c")) (, ",") (comma_expression "iVar18 = FUN_00049440(&local_b4), iVar18 != 0" (assignment_expression "iVar18 = FUN_00049440(&local_b4)" (identifier "iVar18") (= "=") (call_expression "FUN_00049440(&local_b4)" (identifier "FUN_00049440") (argument_list "(&local_b4)" (( "(") (pointer_expression "&local_b4" (& "&") (identifier "local_b4")) () ")")))) (, ",") (binary_expression "iVar18 != 0" (identifier "iVar18") (!= "!=") (number_literal "0"))))) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n                    unaff_s7 = pppppppcVar42;\n                    unaff_s8 = local_8c;\n                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;\n                    pppppppcVar28 = (code *******)0x1;\n                    local_144 = (code *******)0x0;\n                    unaff_s7 = param_4;\n                  }" ({ "{") (expression_statement "unaff_s7 = pppppppcVar42;" (assignment_expression "unaff_s7 = pppppppcVar42" (identifier "unaff_s7") (= "=") (identifier "pppppppcVar42")) (; ";")) (expression_statement "unaff_s8 = local_8c;" (assignment_expression "unaff_s8 = local_8c" (identifier "unaff_s8") (= "=") (identifier "local_8c")) (; ";")) (if_statement "if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;" (if "if") (parenthesized_expression "(pppppppcVar34 == (code *******)0x0)" (( "(") (binary_expression "pppppppcVar34 == (code *******)0x0" (identifier "pppppppcVar34") (== "==") (cast_expression "(code *******)0x0" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00055dbc;" (goto "goto") (statement_identifier "LAB_00055dbc") (; ";"))) (expression_statement "pppppppcVar28 = (code *******)0x1;" (assignment_expression "pppppppcVar28 = (code *******)0x1" (identifier "pppppppcVar28") (= "=") (cast_expression "(code *******)0x1" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x1"))) (; ";")) (expression_statement "local_144 = (code *******)0x0;" (assignment_expression "local_144 = (code *******)0x0" (identifier "local_144") (= "=") (cast_expression "(code *******)0x0" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "unaff_s7 = param_4;" (assignment_expression "unaff_s7 = param_4" (identifier "unaff_s7") (= "=") (identifier "param_4")) (; ";")) (} "}"))) (} "}"))) (labeled_statement "LAB_00055da8:\n                if (local_144 != (code *******)0x0) {\n                  *local_144 = (code ******)((int)local_138 + (int)*local_144);\n                }" (statement_identifier "LAB_00055da8") (: ":") (if_statement "if (local_144 != (code *******)0x0) {\n                  *local_144 = (code ******)((int)local_138 + (int)*local_144);\n                }" (if "if") (parenthesized_expression "(local_144 != (code *******)0x0)" (( "(") (binary_expression "local_144 != (code *******)0x0" (identifier "local_144") (!= "!=") (cast_expression "(code *******)0x0" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                  *local_144 = (code ******)((int)local_138 + (int)*local_144);\n                }" ({ "{") (expression_statement "*local_144 = (code ******)((int)local_138 + (int)*local_144);" (assignment_expression "*local_144 = (code ******)((int)local_138 + (int)*local_144)" (pointer_expression "*local_144" (* "*") (identifier "local_144")) (= "=") (cast_expression "(code ******)((int)local_138 + (int)*local_144)" (( "(") (type_descriptor "code ******" (type_identifier "code") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (parenthesized_expression "((int)local_138 + (int)*local_144)" (( "(") (binary_expression "(int)local_138 + (int)*local_144" (cast_expression "(int)local_138" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_138")) (+ "+") (cast_expression "(int)*local_144" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*local_144" (* "*") (identifier "local_144")))) () ")")))) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n                param_4 = unaff_s7 + 1;\n                pppppppcVar30 = (code *******)0x0;\n                pppppppcVar29 = param_4;\n                local_d8 = (code *******)FUN_00047a44(&local_b4);\n                unaff_s8 = local_d8;\n                if (local_d8 == (code *******)0x0) {\n                  if (((uint)unaff_s7[0xd] & 0x2000000) == 0) {\n                    pppppppcVar29 = param_4;\n                    bVar1 = false;\n                  }\n                  else {\n                    pppppppcVar29 = param_4;\n                    local_d8 = (code *******)FUN_00052d84(&local_b4);\n                    unaff_s8 = local_d8;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055dbc;\n                    bVar1 = false;\n                  }\n                  goto LAB_00054d50;\n                }\n              }" (else "else") (compound_statement "{\n                param_4 = unaff_s7 + 1;\n                pppppppcVar30 = (code *******)0x0;\n                pppppppcVar29 = param_4;\n                local_d8 = (code *******)FUN_00047a44(&local_b4);\n                unaff_s8 = local_d8;\n                if (local_d8 == (code *******)0x0) {\n                  if (((uint)unaff_s7[0xd] & 0x2000000) == 0) {\n                    pppppppcVar29 = param_4;\n                    bVar1 = false;\n                  }\n                  else {\n                    pppppppcVar29 = param_4;\n                    local_d8 = (code *******)FUN_00052d84(&local_b4);\n                    unaff_s8 = local_d8;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055dbc;\n                    bVar1 = false;\n                  }\n                  goto LAB_00054d50;\n                }\n              }" ({ "{") (expression_statement "param_4 = unaff_s7 + 1;" (assignment_expression "param_4 = unaff_s7 + 1" (identifier "param_4") (= "=") (binary_expression "unaff_s7 + 1" (identifier "unaff_s7") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pppppppcVar30 = (code *******)0x0;" (assignment_expression "pppppppcVar30 = (code *******)0x0" (identifier "pppppppcVar30") (= "=") (cast_expression "(code *******)0x0" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "pppppppcVar29 = param_4;" (assignment_expression "pppppppcVar29 = param_4" (identifier "pppppppcVar29") (= "=") (identifier "param_4")) (; ";")) (expression_statement "local_d8 = (code *******)FUN_00047a44(&local_b4);" (assignment_expression "local_d8 = (code *******)FUN_00047a44(&local_b4)" (identifier "local_d8") (= "=") (cast_expression "(code *******)FUN_00047a44(&local_b4)" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (call_expression "FUN_00047a44(&local_b4)" (identifier "FUN_00047a44") (argument_list "(&local_b4)" (( "(") (pointer_expression "&local_b4" (& "&") (identifier "local_b4")) () ")"))))) (; ";")) (expression_statement "unaff_s8 = local_d8;" (assignment_expression "unaff_s8 = local_d8" (identifier "unaff_s8") (= "=") (identifier "local_d8")) (; ";")) (if_statement "if (local_d8 == (code *******)0x0) {\n                  if (((uint)unaff_s7[0xd] & 0x2000000) == 0) {\n                    pppppppcVar29 = param_4;\n                    bVar1 = false;\n                  }\n                  else {\n                    pppppppcVar29 = param_4;\n                    local_d8 = (code *******)FUN_00052d84(&local_b4);\n                    unaff_s8 = local_d8;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055dbc;\n                    bVar1 = false;\n                  }\n                  goto LAB_00054d50;\n                }" (if "if") (parenthesized_expression "(local_d8 == (code *******)0x0)" (( "(") (binary_expression "local_d8 == (code *******)0x0" (identifier "local_d8") (== "==") (cast_expression "(code *******)0x0" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                  if (((uint)unaff_s7[0xd] & 0x2000000) == 0) {\n                    pppppppcVar29 = param_4;\n                    bVar1 = false;\n                  }\n                  else {\n                    pppppppcVar29 = param_4;\n                    local_d8 = (code *******)FUN_00052d84(&local_b4);\n                    unaff_s8 = local_d8;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055dbc;\n                    bVar1 = false;\n                  }\n                  goto LAB_00054d50;\n                }" ({ "{") (if_statement "if (((uint)unaff_s7[0xd] & 0x2000000) == 0) {\n                    pppppppcVar29 = param_4;\n                    bVar1 = false;\n                  }\n                  else {\n                    pppppppcVar29 = param_4;\n                    local_d8 = (code *******)FUN_00052d84(&local_b4);\n                    unaff_s8 = local_d8;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055dbc;\n                    bVar1 = false;\n                  }" (if "if") (parenthesized_expression "(((uint)unaff_s7[0xd] & 0x2000000) == 0)" (( "(") (binary_expression "((uint)unaff_s7[0xd] & 0x2000000) == 0" (parenthesized_expression "((uint)unaff_s7[0xd] & 0x2000000)" (( "(") (binary_expression "(uint)unaff_s7[0xd] & 0x2000000" (cast_expression "(uint)unaff_s7[0xd]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "unaff_s7[0xd]" (identifier "unaff_s7") ([ "[") (number_literal "0xd") (] "]"))) (& "&") (number_literal "0x2000000")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    pppppppcVar29 = param_4;\n                    bVar1 = false;\n                  }" ({ "{") (expression_statement "pppppppcVar29 = param_4;" (assignment_expression "pppppppcVar29 = param_4" (identifier "pppppppcVar29") (= "=") (identifier "param_4")) (; ";")) (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" (identifier "bVar1") (= "=") (false "false")) (; ";")) (} "}")) (else_clause "else {\n                    pppppppcVar29 = param_4;\n                    local_d8 = (code *******)FUN_00052d84(&local_b4);\n                    unaff_s8 = local_d8;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055dbc;\n                    bVar1 = false;\n                  }" (else "else") (compound_statement "{\n                    pppppppcVar29 = param_4;\n                    local_d8 = (code *******)FUN_00052d84(&local_b4);\n                    unaff_s8 = local_d8;\n                    if (local_d8 != (code *******)0x0) goto LAB_00055dbc;\n                    bVar1 = false;\n                  }" ({ "{") (expression_statement "pppppppcVar29 = param_4;" (assignment_expression "pppppppcVar29 = param_4" (identifier "pppppppcVar29") (= "=") (identifier "param_4")) (; ";")) (expression_statement "local_d8 = (code *******)FUN_00052d84(&local_b4);" (assignment_expression "local_d8 = (code *******)FUN_00052d84(&local_b4)" (identifier "local_d8") (= "=") (cast_expression "(code *******)FUN_00052d84(&local_b4)" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (call_expression "FUN_00052d84(&local_b4)" (identifier "FUN_00052d84") (argument_list "(&local_b4)" (( "(") (pointer_expression "&local_b4" (& "&") (identifier "local_b4")) () ")"))))) (; ";")) (expression_statement "unaff_s8 = local_d8;" (assignment_expression "unaff_s8 = local_d8" (identifier "unaff_s8") (= "=") (identifier "local_d8")) (; ";")) (if_statement "if (local_d8 != (code *******)0x0) goto LAB_00055dbc;" (if "if") (parenthesized_expression "(local_d8 != (code *******)0x0)" (( "(") (binary_expression "local_d8 != (code *******)0x0" (identifier "local_d8") (!= "!=") (cast_expression "(code *******)0x0" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00055dbc;" (goto "goto") (statement_identifier "LAB_00055dbc") (; ";"))) (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" (identifier "bVar1") (= "=") (false "false")) (; ";")) (} "}")))) (goto_statement "goto LAB_00054d50;" (goto "goto") (statement_identifier "LAB_00054d50") (; ";")) (} "}"))) (} "}")))) (labeled_statement "LAB_00055dbc:\n              if (unaff_s8 == (code *******)0xffffffff) {\nLAB_00055b04:\n                FUN_0004b7e8(&local_b4);\nLAB_00055b1c:\n                local_dc = (code *******)((int)pppppppcVar24 + (int)local_dc);\n                if ((int)pppppppcVar25 <= (int)local_dc) goto code_r0x00055b38;\n                local_150 = (code *******)0x1;\n                goto LAB_000557e4;\n              }" (statement_identifier "LAB_00055dbc") (: ":") (if_statement "if (unaff_s8 == (code *******)0xffffffff) {\nLAB_00055b04:\n                FUN_0004b7e8(&local_b4);\nLAB_00055b1c:\n                local_dc = (code *******)((int)pppppppcVar24 + (int)local_dc);\n                if ((int)pppppppcVar25 <= (int)local_dc) goto code_r0x00055b38;\n                local_150 = (code *******)0x1;\n                goto LAB_000557e4;\n              }" (if "if") (parenthesized_expression "(unaff_s8 == (code *******)0xffffffff)" (( "(") (binary_expression "unaff_s8 == (code *******)0xffffffff" (identifier "unaff_s8") (== "==") (cast_expression "(code *******)0xffffffff" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0xffffffff"))) () ")")) (compound_statement "{\nLAB_00055b04:\n                FUN_0004b7e8(&local_b4);\nLAB_00055b1c:\n                local_dc = (code *******)((int)pppppppcVar24 + (int)local_dc);\n                if ((int)pppppppcVar25 <= (int)local_dc) goto code_r0x00055b38;\n                local_150 = (code *******)0x1;\n                goto LAB_000557e4;\n              }" ({ "{") (labeled_statement "LAB_00055b04:\n                FUN_0004b7e8(&local_b4);" (statement_identifier "LAB_00055b04") (: ":") (expression_statement "FUN_0004b7e8(&local_b4);" (call_expression "FUN_0004b7e8(&local_b4)" (identifier "FUN_0004b7e8") (argument_list "(&local_b4)" (( "(") (pointer_expression "&local_b4" (& "&") (identifier "local_b4")) () ")"))) (; ";"))) (labeled_statement "LAB_00055b1c:\n                local_dc = (code *******)((int)pppppppcVar24 + (int)local_dc);" (statement_identifier "LAB_00055b1c") (: ":") (expression_statement "local_dc = (code *******)((int)pppppppcVar24 + (int)local_dc);" (assignment_expression "local_dc = (code *******)((int)pppppppcVar24 + (int)local_dc)" (identifier "local_dc") (= "=") (cast_expression "(code *******)((int)pppppppcVar24 + (int)local_dc)" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "((int)pppppppcVar24 + (int)local_dc)" (( "(") (binary_expression "(int)pppppppcVar24 + (int)local_dc" (cast_expression "(int)pppppppcVar24" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppcVar24")) (+ "+") (cast_expression "(int)local_dc" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_dc"))) () ")")))) (; ";"))) (if_statement "if ((int)pppppppcVar25 <= (int)local_dc) goto code_r0x00055b38;" (if "if") (parenthesized_expression "((int)pppppppcVar25 <= (int)local_dc)" (( "(") (binary_expression "(int)pppppppcVar25 <= (int)local_dc" (cast_expression "(int)pppppppcVar25" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppcVar25")) (<= "<=") (cast_expression "(int)local_dc" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_dc"))) () ")")) (goto_statement "goto code_r0x00055b38;" (goto "goto") (statement_identifier "code_r0x00055b38") (; ";"))) (expression_statement "local_150 = (code *******)0x1;" (assignment_expression "local_150 = (code *******)0x1" (identifier "local_150") (= "=") (cast_expression "(code *******)0x1" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x1"))) (; ";")) (goto_statement "goto LAB_000557e4;" (goto "goto") (statement_identifier "LAB_000557e4") (; ";")) (} "}")))) (if_statement "if (unaff_s8 == (code *******)&SUB_fffffffe) {\n                local_150 = (code *******)0xc;\n                goto LAB_000557e4;\n              }" (if "if") (parenthesized_expression "(unaff_s8 == (code *******)&SUB_fffffffe)" (( "(") (binary_expression "unaff_s8 == (code *******)&SUB_fffffffe" (identifier "unaff_s8") (== "==") (cast_expression "(code *******)&SUB_fffffffe" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (pointer_expression "&SUB_fffffffe" (& "&") (identifier "SUB_fffffffe")))) () ")")) (compound_statement "{\n                local_150 = (code *******)0xc;\n                goto LAB_000557e4;\n              }" ({ "{") (expression_statement "local_150 = (code *******)0xc;" (assignment_expression "local_150 = (code *******)0xc" (identifier "local_150") (= "=") (cast_expression "(code *******)0xc" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0xc"))) (; ";")) (goto_statement "goto LAB_000557e4;" (goto "goto") (statement_identifier "LAB_000557e4") (; ";")) (} "}"))) (expression_statement "local_58 = unaff_s8;" (assignment_expression "local_58 = unaff_s8" (identifier "local_58") (= "=") (identifier "unaff_s8")) (; ";")) (if_statement "if (((uint)param_1[7] & 0x8000000) == 0) {\n                if (pppppppcVar3 < (code *******)0x2) {\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055c08;\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                else {\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                if (pppppppcVar3 < (code *******)0x2) {\nLAB_00055c6c:\n                  pppppppcVar28 = pppppppcVar33;\n                  unaff_s4 = local_60;\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055548;\n                }\n                else {\n                  cVar23 = *(code *)(pppppppcVar38 + 0x16);\nLAB_00055c20:\n                  pppppppcVar28 = pppppppcVar33;\n                  if (-1 < (char)cVar23) goto LAB_00055c6c;\n                }\n                pppppppcVar31 = local_54;\n                pppppppcVar42 = local_60;\n                unaff_s4 = pppppppcVar42;\n                if (unaff_s8 < (code *******)0x3fffffff) {\n                  param_4 = (code *******)((int)((int)unaff_s8 + 1) * 4);\n                  unaff_s5 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                  if (unaff_s5 == (code *******)0x0) {\nLAB_00055b9c:\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    local_150 = (code *******)0xc;\n                    pppppppcVar33 = pppppppcVar28;\n                  }\n                  else {\n                    pppppppcVar29 = (code *******)&local_d0;\n                    if (pppppppcVar42[0x13] == (code ******)0x0) {\n                      local_cc = (code *******)0x0;\n                      local_c8 = pppppppcVar31;\n                      local_c0 = 0;\n                      local_bc = 0;\n                      local_b8 = 0;\n                      local_d0 = unaff_s5;\n                      local_c4 = unaff_s8;\n                      param_5 = (code *******)FUN_0005421c(&local_b4);\n                      (*(code *)PTR_free_00079c24)(local_b8);\n                      if (param_5 == (code *******)0x0) {\n                        param_4 = (code *******)*unaff_s5;\n                        if (param_4 == (code *******)0x0) {\nLAB_00055b70:\n                          (*(code *)PTR_free_00079c24)(unaff_s5);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          pppppppcVar33 = pppppppcVar28;\n                          goto LAB_00055b04;\n                        }\nLAB_00055528:\n                        (*(code *)PTR_free_00079c24)(local_50);\n                        pppppppcVar33 = pppppppcVar28;\n                        unaff_s4 = pppppppcVar42;\n                        local_58 = unaff_s8;\n                        local_54 = pppppppcVar31;\n                        local_50 = unaff_s5;\n                        goto LAB_00055548;\n                      }\nLAB_00055acc:\n                      param_4 = (code *******)0x0;\n                      pppppppcVar33 = pppppppcVar28;\n                      unaff_s4 = pppppppcVar42;\n                    }\n                    else {\n                      param_4 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                      if (param_4 == (code *******)0x0) goto LAB_00055b9c;\n                      unaff_s7 = (code *******)&local_d0;\n                      pcVar8 = (code *)(PTR_DAT_000799a4 + 0x421c);\n                      pcVar9 = (code *)(PTR_DAT_000799a4 + -0x6bc0);\n                      pppppppcVar33 = pppppppcVar28;\n                      while( true ) {\n                        pppppppcVar28 = (code *******)((int)unaff_s8 + 1);\n                        param_6 = (code *******)((int)pppppppcVar28 * 4);\n                        pppppppcVar30 = param_6;\n                        (*(code *)PTR_memset_00079b00)(param_4,0);\n                        local_c0 = 0;\n                        local_bc = 0;\n                        local_b8 = 0;\n                        pppppppcVar29 = unaff_s7;\n                        local_d0 = unaff_s5;\n                        local_cc = param_4;\n                        local_c8 = pppppppcVar31;\n                        local_c4 = unaff_s8;\n                        param_5 = (code *******)(*pcVar8)(&local_b4);\n                        (*(code *)PTR_free_00079c24)(local_b8);\n                        unaff_s4 = pppppppcVar28;\n                        if (param_5 != (code *******)0x0) break;\n                        if ((*unaff_s5 != (code ******)0x0) ||\n                           (param_6 = param_6 + -1, *param_4 != (code ******)0x0)) {\n                          pppppppcVar29 = unaff_s5;\n                          pppppppcVar30 = param_4;\n                          param_5 = (code *******)FUN_000520d0(pppppppcVar42);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          if (param_5 != (code *******)0x0) goto LAB_00055acc;\n                          goto LAB_00055528;\n                        }\n                        param_6 = (code *******)((int)local_50 + (int)param_6);\n                        do {\n                          while( true ) {\n                            unaff_s8 = (code *******)((int)unaff_s8 + -1);\n                            if ((int)unaff_s8 < 0) goto LAB_00055b70;\n                            pppppppcVar29 = (code *******)param_6[-1];\n                            if (pppppppcVar29 != (code *******)0x0) break;\n                            param_6 = param_6 + -1;\n                          }\n                          param_6 = param_6 + -1;\n                        } while (((uint)pppppppcVar29[0xd] & 0x8000000) == 0);\n                        pppppppcVar31 = (code *******)(*pcVar9)(&local_b4,pppppppcVar29,unaff_s8);\n                        pppppppcVar33 = pppppppcVar28;\n                      }\n                    }\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    (*(code *)PTR_free_00079c24)(param_4);\n                    local_150 = param_5;\n                    if (param_5 == (code *******)0x1) goto LAB_00055b04;\n                  }\n                }\n                else {\n                  local_150 = (code *******)0xc;\n                  pppppppcVar33 = pppppppcVar28;\n                }\n                goto LAB_000557e4;\n              }" (if "if") (parenthesized_expression "(((uint)param_1[7] & 0x8000000) == 0)" (( "(") (binary_expression "((uint)param_1[7] & 0x8000000) == 0" (parenthesized_expression "((uint)param_1[7] & 0x8000000)" (( "(") (binary_expression "(uint)param_1[7] & 0x8000000" (cast_expression "(uint)param_1[7]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "param_1[7]" (identifier "param_1") ([ "[") (number_literal "7") (] "]"))) (& "&") (number_literal "0x8000000")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                if (pppppppcVar3 < (code *******)0x2) {\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055c08;\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                else {\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                if (pppppppcVar3 < (code *******)0x2) {\nLAB_00055c6c:\n                  pppppppcVar28 = pppppppcVar33;\n                  unaff_s4 = local_60;\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055548;\n                }\n                else {\n                  cVar23 = *(code *)(pppppppcVar38 + 0x16);\nLAB_00055c20:\n                  pppppppcVar28 = pppppppcVar33;\n                  if (-1 < (char)cVar23) goto LAB_00055c6c;\n                }\n                pppppppcVar31 = local_54;\n                pppppppcVar42 = local_60;\n                unaff_s4 = pppppppcVar42;\n                if (unaff_s8 < (code *******)0x3fffffff) {\n                  param_4 = (code *******)((int)((int)unaff_s8 + 1) * 4);\n                  unaff_s5 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                  if (unaff_s5 == (code *******)0x0) {\nLAB_00055b9c:\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    local_150 = (code *******)0xc;\n                    pppppppcVar33 = pppppppcVar28;\n                  }\n                  else {\n                    pppppppcVar29 = (code *******)&local_d0;\n                    if (pppppppcVar42[0x13] == (code ******)0x0) {\n                      local_cc = (code *******)0x0;\n                      local_c8 = pppppppcVar31;\n                      local_c0 = 0;\n                      local_bc = 0;\n                      local_b8 = 0;\n                      local_d0 = unaff_s5;\n                      local_c4 = unaff_s8;\n                      param_5 = (code *******)FUN_0005421c(&local_b4);\n                      (*(code *)PTR_free_00079c24)(local_b8);\n                      if (param_5 == (code *******)0x0) {\n                        param_4 = (code *******)*unaff_s5;\n                        if (param_4 == (code *******)0x0) {\nLAB_00055b70:\n                          (*(code *)PTR_free_00079c24)(unaff_s5);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          pppppppcVar33 = pppppppcVar28;\n                          goto LAB_00055b04;\n                        }\nLAB_00055528:\n                        (*(code *)PTR_free_00079c24)(local_50);\n                        pppppppcVar33 = pppppppcVar28;\n                        unaff_s4 = pppppppcVar42;\n                        local_58 = unaff_s8;\n                        local_54 = pppppppcVar31;\n                        local_50 = unaff_s5;\n                        goto LAB_00055548;\n                      }\nLAB_00055acc:\n                      param_4 = (code *******)0x0;\n                      pppppppcVar33 = pppppppcVar28;\n                      unaff_s4 = pppppppcVar42;\n                    }\n                    else {\n                      param_4 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                      if (param_4 == (code *******)0x0) goto LAB_00055b9c;\n                      unaff_s7 = (code *******)&local_d0;\n                      pcVar8 = (code *)(PTR_DAT_000799a4 + 0x421c);\n                      pcVar9 = (code *)(PTR_DAT_000799a4 + -0x6bc0);\n                      pppppppcVar33 = pppppppcVar28;\n                      while( true ) {\n                        pppppppcVar28 = (code *******)((int)unaff_s8 + 1);\n                        param_6 = (code *******)((int)pppppppcVar28 * 4);\n                        pppppppcVar30 = param_6;\n                        (*(code *)PTR_memset_00079b00)(param_4,0);\n                        local_c0 = 0;\n                        local_bc = 0;\n                        local_b8 = 0;\n                        pppppppcVar29 = unaff_s7;\n                        local_d0 = unaff_s5;\n                        local_cc = param_4;\n                        local_c8 = pppppppcVar31;\n                        local_c4 = unaff_s8;\n                        param_5 = (code *******)(*pcVar8)(&local_b4);\n                        (*(code *)PTR_free_00079c24)(local_b8);\n                        unaff_s4 = pppppppcVar28;\n                        if (param_5 != (code *******)0x0) break;\n                        if ((*unaff_s5 != (code ******)0x0) ||\n                           (param_6 = param_6 + -1, *param_4 != (code ******)0x0)) {\n                          pppppppcVar29 = unaff_s5;\n                          pppppppcVar30 = param_4;\n                          param_5 = (code *******)FUN_000520d0(pppppppcVar42);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          if (param_5 != (code *******)0x0) goto LAB_00055acc;\n                          goto LAB_00055528;\n                        }\n                        param_6 = (code *******)((int)local_50 + (int)param_6);\n                        do {\n                          while( true ) {\n                            unaff_s8 = (code *******)((int)unaff_s8 + -1);\n                            if ((int)unaff_s8 < 0) goto LAB_00055b70;\n                            pppppppcVar29 = (code *******)param_6[-1];\n                            if (pppppppcVar29 != (code *******)0x0) break;\n                            param_6 = param_6 + -1;\n                          }\n                          param_6 = param_6 + -1;\n                        } while (((uint)pppppppcVar29[0xd] & 0x8000000) == 0);\n                        pppppppcVar31 = (code *******)(*pcVar9)(&local_b4,pppppppcVar29,unaff_s8);\n                        pppppppcVar33 = pppppppcVar28;\n                      }\n                    }\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    (*(code *)PTR_free_00079c24)(param_4);\n                    local_150 = param_5;\n                    if (param_5 == (code *******)0x1) goto LAB_00055b04;\n                  }\n                }\n                else {\n                  local_150 = (code *******)0xc;\n                  pppppppcVar33 = pppppppcVar28;\n                }\n                goto LAB_000557e4;\n              }" ({ "{") (if_statement "if (pppppppcVar3 < (code *******)0x2) {\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055c08;\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }\n                else {\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }" (if "if") (parenthesized_expression "(pppppppcVar3 < (code *******)0x2)" (( "(") (binary_expression "pppppppcVar3 < (code *******)0x2" (identifier "pppppppcVar3") (< "<") (cast_expression "(code *******)0x2" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x2"))) () ")")) (compound_statement "{\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055c08;\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }" ({ "{") (if_statement "if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055c08;" (if "if") (parenthesized_expression "(pppppppcVar38[0x13] == (code ******)0x0)" (( "(") (binary_expression "pppppppcVar38[0x13] == (code ******)0x0" (subscript_expression "pppppppcVar38[0x13]" (identifier "pppppppcVar38") ([ "[") (number_literal "0x13") (] "]")) (== "==") (cast_expression "(code ******)0x0" (( "(") (type_descriptor "code ******" (type_identifier "code") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00055c08;" (goto "goto") (statement_identifier "LAB_00055c08") (; ";"))) (expression_statement "pppppppcVar29 = (code *******)local_50[(int)unaff_s8];" (assignment_expression "pppppppcVar29 = (code *******)local_50[(int)unaff_s8]" (identifier "pppppppcVar29") (= "=") (cast_expression "(code *******)local_50[(int)unaff_s8]" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (subscript_expression "local_50[(int)unaff_s8]" (identifier "local_50") ([ "[") (cast_expression "(int)unaff_s8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s8")) (] "]")))) (; ";")) (expression_statement "pppppppcVar30 = unaff_s8;" (assignment_expression "pppppppcVar30 = unaff_s8" (identifier "pppppppcVar30") (= "=") (identifier "unaff_s8")) (; ";")) (expression_statement "local_54 = (code *******)FUN_00049440(&local_b4);" (assignment_expression "local_54 = (code *******)FUN_00049440(&local_b4)" (identifier "local_54") (= "=") (cast_expression "(code *******)FUN_00049440(&local_b4)" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (call_expression "FUN_00049440(&local_b4)" (identifier "FUN_00049440") (argument_list "(&local_b4)" (( "(") (pointer_expression "&local_b4" (& "&") (identifier "local_b4")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }" (else "else") (compound_statement "{\n                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                  pppppppcVar30 = unaff_s8;\n                  local_54 = (code *******)FUN_00049440(&local_b4);\n                }" ({ "{") (expression_statement "pppppppcVar29 = (code *******)local_50[(int)unaff_s8];" (assignment_expression "pppppppcVar29 = (code *******)local_50[(int)unaff_s8]" (identifier "pppppppcVar29") (= "=") (cast_expression "(code *******)local_50[(int)unaff_s8]" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (subscript_expression "local_50[(int)unaff_s8]" (identifier "local_50") ([ "[") (cast_expression "(int)unaff_s8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s8")) (] "]")))) (; ";")) (expression_statement "pppppppcVar30 = unaff_s8;" (assignment_expression "pppppppcVar30 = unaff_s8" (identifier "pppppppcVar30") (= "=") (identifier "unaff_s8")) (; ";")) (expression_statement "local_54 = (code *******)FUN_00049440(&local_b4);" (assignment_expression "local_54 = (code *******)FUN_00049440(&local_b4)" (identifier "local_54") (= "=") (cast_expression "(code *******)FUN_00049440(&local_b4)" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (call_expression "FUN_00049440(&local_b4)" (identifier "FUN_00049440") (argument_list "(&local_b4)" (( "(") (pointer_expression "&local_b4" (& "&") (identifier "local_b4")) () ")"))))) (; ";")) (} "}")))) (if_statement "if (pppppppcVar3 < (code *******)0x2) {\nLAB_00055c6c:\n                  pppppppcVar28 = pppppppcVar33;\n                  unaff_s4 = local_60;\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055548;\n                }\n                else {\n                  cVar23 = *(code *)(pppppppcVar38 + 0x16);\nLAB_00055c20:\n                  pppppppcVar28 = pppppppcVar33;\n                  if (-1 < (char)cVar23) goto LAB_00055c6c;\n                }" (if "if") (parenthesized_expression "(pppppppcVar3 < (code *******)0x2)" (( "(") (binary_expression "pppppppcVar3 < (code *******)0x2" (identifier "pppppppcVar3") (< "<") (cast_expression "(code *******)0x2" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x2"))) () ")")) (compound_statement "{\nLAB_00055c6c:\n                  pppppppcVar28 = pppppppcVar33;\n                  unaff_s4 = local_60;\n                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055548;\n                }" ({ "{") (labeled_statement "LAB_00055c6c:\n                  pppppppcVar28 = pppppppcVar33;" (statement_identifier "LAB_00055c6c") (: ":") (expression_statement "pppppppcVar28 = pppppppcVar33;" (assignment_expression "pppppppcVar28 = pppppppcVar33" (identifier "pppppppcVar28") (= "=") (identifier "pppppppcVar33")) (; ";"))) (expression_statement "unaff_s4 = local_60;" (assignment_expression "unaff_s4 = local_60" (identifier "unaff_s4") (= "=") (identifier "local_60")) (; ";")) (if_statement "if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055548;" (if "if") (parenthesized_expression "(pppppppcVar38[0x13] == (code ******)0x0)" (( "(") (binary_expression "pppppppcVar38[0x13] == (code ******)0x0" (subscript_expression "pppppppcVar38[0x13]" (identifier "pppppppcVar38") ([ "[") (number_literal "0x13") (] "]")) (== "==") (cast_expression "(code ******)0x0" (( "(") (type_descriptor "code ******" (type_identifier "code") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00055548;" (goto "goto") (statement_identifier "LAB_00055548") (; ";"))) (} "}")) (else_clause "else {\n                  cVar23 = *(code *)(pppppppcVar38 + 0x16);\nLAB_00055c20:\n                  pppppppcVar28 = pppppppcVar33;\n                  if (-1 < (char)cVar23) goto LAB_00055c6c;\n                }" (else "else") (compound_statement "{\n                  cVar23 = *(code *)(pppppppcVar38 + 0x16);\nLAB_00055c20:\n                  pppppppcVar28 = pppppppcVar33;\n                  if (-1 < (char)cVar23) goto LAB_00055c6c;\n                }" ({ "{") (expression_statement "cVar23 = *(code *)(pppppppcVar38 + 0x16);" (assignment_expression "cVar23 = *(code *)(pppppppcVar38 + 0x16)" (identifier "cVar23") (= "=") (pointer_expression "*(code *)(pppppppcVar38 + 0x16)" (* "*") (cast_expression "(code *)(pppppppcVar38 + 0x16)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pppppppcVar38 + 0x16)" (( "(") (binary_expression "pppppppcVar38 + 0x16" (identifier "pppppppcVar38") (+ "+") (number_literal "0x16")) () ")"))))) (; ";")) (labeled_statement "LAB_00055c20:\n                  pppppppcVar28 = pppppppcVar33;" (statement_identifier "LAB_00055c20") (: ":") (expression_statement "pppppppcVar28 = pppppppcVar33;" (assignment_expression "pppppppcVar28 = pppppppcVar33" (identifier "pppppppcVar28") (= "=") (identifier "pppppppcVar33")) (; ";"))) (if_statement "if (-1 < (char)cVar23) goto LAB_00055c6c;" (if "if") (parenthesized_expression "(-1 < (char)cVar23)" (( "(") (binary_expression "-1 < (char)cVar23" (number_literal "-1") (< "<") (cast_expression "(char)cVar23" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "cVar23"))) () ")")) (goto_statement "goto LAB_00055c6c;" (goto "goto") (statement_identifier "LAB_00055c6c") (; ";"))) (} "}")))) (expression_statement "pppppppcVar31 = local_54;" (assignment_expression "pppppppcVar31 = local_54" (identifier "pppppppcVar31") (= "=") (identifier "local_54")) (; ";")) (expression_statement "pppppppcVar42 = local_60;" (assignment_expression "pppppppcVar42 = local_60" (identifier "pppppppcVar42") (= "=") (identifier "local_60")) (; ";")) (expression_statement "unaff_s4 = pppppppcVar42;" (assignment_expression "unaff_s4 = pppppppcVar42" (identifier "unaff_s4") (= "=") (identifier "pppppppcVar42")) (; ";")) (if_statement "if (unaff_s8 < (code *******)0x3fffffff) {\n                  param_4 = (code *******)((int)((int)unaff_s8 + 1) * 4);\n                  unaff_s5 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                  if (unaff_s5 == (code *******)0x0) {\nLAB_00055b9c:\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    local_150 = (code *******)0xc;\n                    pppppppcVar33 = pppppppcVar28;\n                  }\n                  else {\n                    pppppppcVar29 = (code *******)&local_d0;\n                    if (pppppppcVar42[0x13] == (code ******)0x0) {\n                      local_cc = (code *******)0x0;\n                      local_c8 = pppppppcVar31;\n                      local_c0 = 0;\n                      local_bc = 0;\n                      local_b8 = 0;\n                      local_d0 = unaff_s5;\n                      local_c4 = unaff_s8;\n                      param_5 = (code *******)FUN_0005421c(&local_b4);\n                      (*(code *)PTR_free_00079c24)(local_b8);\n                      if (param_5 == (code *******)0x0) {\n                        param_4 = (code *******)*unaff_s5;\n                        if (param_4 == (code *******)0x0) {\nLAB_00055b70:\n                          (*(code *)PTR_free_00079c24)(unaff_s5);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          pppppppcVar33 = pppppppcVar28;\n                          goto LAB_00055b04;\n                        }\nLAB_00055528:\n                        (*(code *)PTR_free_00079c24)(local_50);\n                        pppppppcVar33 = pppppppcVar28;\n                        unaff_s4 = pppppppcVar42;\n                        local_58 = unaff_s8;\n                        local_54 = pppppppcVar31;\n                        local_50 = unaff_s5;\n                        goto LAB_00055548;\n                      }\nLAB_00055acc:\n                      param_4 = (code *******)0x0;\n                      pppppppcVar33 = pppppppcVar28;\n                      unaff_s4 = pppppppcVar42;\n                    }\n                    else {\n                      param_4 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                      if (param_4 == (code *******)0x0) goto LAB_00055b9c;\n                      unaff_s7 = (code *******)&local_d0;\n                      pcVar8 = (code *)(PTR_DAT_000799a4 + 0x421c);\n                      pcVar9 = (code *)(PTR_DAT_000799a4 + -0x6bc0);\n                      pppppppcVar33 = pppppppcVar28;\n                      while( true ) {\n                        pppppppcVar28 = (code *******)((int)unaff_s8 + 1);\n                        param_6 = (code *******)((int)pppppppcVar28 * 4);\n                        pppppppcVar30 = param_6;\n                        (*(code *)PTR_memset_00079b00)(param_4,0);\n                        local_c0 = 0;\n                        local_bc = 0;\n                        local_b8 = 0;\n                        pppppppcVar29 = unaff_s7;\n                        local_d0 = unaff_s5;\n                        local_cc = param_4;\n                        local_c8 = pppppppcVar31;\n                        local_c4 = unaff_s8;\n                        param_5 = (code *******)(*pcVar8)(&local_b4);\n                        (*(code *)PTR_free_00079c24)(local_b8);\n                        unaff_s4 = pppppppcVar28;\n                        if (param_5 != (code *******)0x0) break;\n                        if ((*unaff_s5 != (code ******)0x0) ||\n                           (param_6 = param_6 + -1, *param_4 != (code ******)0x0)) {\n                          pppppppcVar29 = unaff_s5;\n                          pppppppcVar30 = param_4;\n                          param_5 = (code *******)FUN_000520d0(pppppppcVar42);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          if (param_5 != (code *******)0x0) goto LAB_00055acc;\n                          goto LAB_00055528;\n                        }\n                        param_6 = (code *******)((int)local_50 + (int)param_6);\n                        do {\n                          while( true ) {\n                            unaff_s8 = (code *******)((int)unaff_s8 + -1);\n                            if ((int)unaff_s8 < 0) goto LAB_00055b70;\n                            pppppppcVar29 = (code *******)param_6[-1];\n                            if (pppppppcVar29 != (code *******)0x0) break;\n                            param_6 = param_6 + -1;\n                          }\n                          param_6 = param_6 + -1;\n                        } while (((uint)pppppppcVar29[0xd] & 0x8000000) == 0);\n                        pppppppcVar31 = (code *******)(*pcVar9)(&local_b4,pppppppcVar29,unaff_s8);\n                        pppppppcVar33 = pppppppcVar28;\n                      }\n                    }\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    (*(code *)PTR_free_00079c24)(param_4);\n                    local_150 = param_5;\n                    if (param_5 == (code *******)0x1) goto LAB_00055b04;\n                  }\n                }\n                else {\n                  local_150 = (code *******)0xc;\n                  pppppppcVar33 = pppppppcVar28;\n                }" (if "if") (parenthesized_expression "(unaff_s8 < (code *******)0x3fffffff)" (( "(") (binary_expression "unaff_s8 < (code *******)0x3fffffff" (identifier "unaff_s8") (< "<") (cast_expression "(code *******)0x3fffffff" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x3fffffff"))) () ")")) (compound_statement "{\n                  param_4 = (code *******)((int)((int)unaff_s8 + 1) * 4);\n                  unaff_s5 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                  if (unaff_s5 == (code *******)0x0) {\nLAB_00055b9c:\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    local_150 = (code *******)0xc;\n                    pppppppcVar33 = pppppppcVar28;\n                  }\n                  else {\n                    pppppppcVar29 = (code *******)&local_d0;\n                    if (pppppppcVar42[0x13] == (code ******)0x0) {\n                      local_cc = (code *******)0x0;\n                      local_c8 = pppppppcVar31;\n                      local_c0 = 0;\n                      local_bc = 0;\n                      local_b8 = 0;\n                      local_d0 = unaff_s5;\n                      local_c4 = unaff_s8;\n                      param_5 = (code *******)FUN_0005421c(&local_b4);\n                      (*(code *)PTR_free_00079c24)(local_b8);\n                      if (param_5 == (code *******)0x0) {\n                        param_4 = (code *******)*unaff_s5;\n                        if (param_4 == (code *******)0x0) {\nLAB_00055b70:\n                          (*(code *)PTR_free_00079c24)(unaff_s5);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          pppppppcVar33 = pppppppcVar28;\n                          goto LAB_00055b04;\n                        }\nLAB_00055528:\n                        (*(code *)PTR_free_00079c24)(local_50);\n                        pppppppcVar33 = pppppppcVar28;\n                        unaff_s4 = pppppppcVar42;\n                        local_58 = unaff_s8;\n                        local_54 = pppppppcVar31;\n                        local_50 = unaff_s5;\n                        goto LAB_00055548;\n                      }\nLAB_00055acc:\n                      param_4 = (code *******)0x0;\n                      pppppppcVar33 = pppppppcVar28;\n                      unaff_s4 = pppppppcVar42;\n                    }\n                    else {\n                      param_4 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                      if (param_4 == (code *******)0x0) goto LAB_00055b9c;\n                      unaff_s7 = (code *******)&local_d0;\n                      pcVar8 = (code *)(PTR_DAT_000799a4 + 0x421c);\n                      pcVar9 = (code *)(PTR_DAT_000799a4 + -0x6bc0);\n                      pppppppcVar33 = pppppppcVar28;\n                      while( true ) {\n                        pppppppcVar28 = (code *******)((int)unaff_s8 + 1);\n                        param_6 = (code *******)((int)pppppppcVar28 * 4);\n                        pppppppcVar30 = param_6;\n                        (*(code *)PTR_memset_00079b00)(param_4,0);\n                        local_c0 = 0;\n                        local_bc = 0;\n                        local_b8 = 0;\n                        pppppppcVar29 = unaff_s7;\n                        local_d0 = unaff_s5;\n                        local_cc = param_4;\n                        local_c8 = pppppppcVar31;\n                        local_c4 = unaff_s8;\n                        param_5 = (code *******)(*pcVar8)(&local_b4);\n                        (*(code *)PTR_free_00079c24)(local_b8);\n                        unaff_s4 = pppppppcVar28;\n                        if (param_5 != (code *******)0x0) break;\n                        if ((*unaff_s5 != (code ******)0x0) ||\n                           (param_6 = param_6 + -1, *param_4 != (code ******)0x0)) {\n                          pppppppcVar29 = unaff_s5;\n                          pppppppcVar30 = param_4;\n                          param_5 = (code *******)FUN_000520d0(pppppppcVar42);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          if (param_5 != (code *******)0x0) goto LAB_00055acc;\n                          goto LAB_00055528;\n                        }\n                        param_6 = (code *******)((int)local_50 + (int)param_6);\n                        do {\n                          while( true ) {\n                            unaff_s8 = (code *******)((int)unaff_s8 + -1);\n                            if ((int)unaff_s8 < 0) goto LAB_00055b70;\n                            pppppppcVar29 = (code *******)param_6[-1];\n                            if (pppppppcVar29 != (code *******)0x0) break;\n                            param_6 = param_6 + -1;\n                          }\n                          param_6 = param_6 + -1;\n                        } while (((uint)pppppppcVar29[0xd] & 0x8000000) == 0);\n                        pppppppcVar31 = (code *******)(*pcVar9)(&local_b4,pppppppcVar29,unaff_s8);\n                        pppppppcVar33 = pppppppcVar28;\n                      }\n                    }\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    (*(code *)PTR_free_00079c24)(param_4);\n                    local_150 = param_5;\n                    if (param_5 == (code *******)0x1) goto LAB_00055b04;\n                  }\n                }" ({ "{") (expression_statement "param_4 = (code *******)((int)((int)unaff_s8 + 1) * 4);" (assignment_expression "param_4 = (code *******)((int)((int)unaff_s8 + 1) * 4)" (identifier "param_4") (= "=") (cast_expression "(code *******)((int)((int)unaff_s8 + 1) * 4)" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "((int)((int)unaff_s8 + 1) * 4)" (( "(") (binary_expression "(int)((int)unaff_s8 + 1) * 4" (cast_expression "(int)((int)unaff_s8 + 1)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((int)unaff_s8 + 1)" (( "(") (binary_expression "(int)unaff_s8 + 1" (cast_expression "(int)unaff_s8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s8")) (+ "+") (number_literal "1")) () ")"))) (* "*") (number_literal "4")) () ")")))) (; ";")) (expression_statement "unaff_s5 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);" (assignment_expression "unaff_s5 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4)" (identifier "unaff_s5") (= "=") (cast_expression "(code *******)(*(code *)PTR_malloc_00079b54)(param_4)" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (call_expression "(*(code *)PTR_malloc_00079b54)(param_4)" (parenthesized_expression "(*(code *)PTR_malloc_00079b54)" (( "(") (pointer_expression "*(code *)PTR_malloc_00079b54" (* "*") (cast_expression "(code *)PTR_malloc_00079b54" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_malloc_00079b54"))) () ")")) (argument_list "(param_4)" (( "(") (identifier "param_4") () ")"))))) (; ";")) (if_statement "if (unaff_s5 == (code *******)0x0) {\nLAB_00055b9c:\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    local_150 = (code *******)0xc;\n                    pppppppcVar33 = pppppppcVar28;\n                  }\n                  else {\n                    pppppppcVar29 = (code *******)&local_d0;\n                    if (pppppppcVar42[0x13] == (code ******)0x0) {\n                      local_cc = (code *******)0x0;\n                      local_c8 = pppppppcVar31;\n                      local_c0 = 0;\n                      local_bc = 0;\n                      local_b8 = 0;\n                      local_d0 = unaff_s5;\n                      local_c4 = unaff_s8;\n                      param_5 = (code *******)FUN_0005421c(&local_b4);\n                      (*(code *)PTR_free_00079c24)(local_b8);\n                      if (param_5 == (code *******)0x0) {\n                        param_4 = (code *******)*unaff_s5;\n                        if (param_4 == (code *******)0x0) {\nLAB_00055b70:\n                          (*(code *)PTR_free_00079c24)(unaff_s5);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          pppppppcVar33 = pppppppcVar28;\n                          goto LAB_00055b04;\n                        }\nLAB_00055528:\n                        (*(code *)PTR_free_00079c24)(local_50);\n                        pppppppcVar33 = pppppppcVar28;\n                        unaff_s4 = pppppppcVar42;\n                        local_58 = unaff_s8;\n                        local_54 = pppppppcVar31;\n                        local_50 = unaff_s5;\n                        goto LAB_00055548;\n                      }\nLAB_00055acc:\n                      param_4 = (code *******)0x0;\n                      pppppppcVar33 = pppppppcVar28;\n                      unaff_s4 = pppppppcVar42;\n                    }\n                    else {\n                      param_4 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                      if (param_4 == (code *******)0x0) goto LAB_00055b9c;\n                      unaff_s7 = (code *******)&local_d0;\n                      pcVar8 = (code *)(PTR_DAT_000799a4 + 0x421c);\n                      pcVar9 = (code *)(PTR_DAT_000799a4 + -0x6bc0);\n                      pppppppcVar33 = pppppppcVar28;\n                      while( true ) {\n                        pppppppcVar28 = (code *******)((int)unaff_s8 + 1);\n                        param_6 = (code *******)((int)pppppppcVar28 * 4);\n                        pppppppcVar30 = param_6;\n                        (*(code *)PTR_memset_00079b00)(param_4,0);\n                        local_c0 = 0;\n                        local_bc = 0;\n                        local_b8 = 0;\n                        pppppppcVar29 = unaff_s7;\n                        local_d0 = unaff_s5;\n                        local_cc = param_4;\n                        local_c8 = pppppppcVar31;\n                        local_c4 = unaff_s8;\n                        param_5 = (code *******)(*pcVar8)(&local_b4);\n                        (*(code *)PTR_free_00079c24)(local_b8);\n                        unaff_s4 = pppppppcVar28;\n                        if (param_5 != (code *******)0x0) break;\n                        if ((*unaff_s5 != (code ******)0x0) ||\n                           (param_6 = param_6 + -1, *param_4 != (code ******)0x0)) {\n                          pppppppcVar29 = unaff_s5;\n                          pppppppcVar30 = param_4;\n                          param_5 = (code *******)FUN_000520d0(pppppppcVar42);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          if (param_5 != (code *******)0x0) goto LAB_00055acc;\n                          goto LAB_00055528;\n                        }\n                        param_6 = (code *******)((int)local_50 + (int)param_6);\n                        do {\n                          while( true ) {\n                            unaff_s8 = (code *******)((int)unaff_s8 + -1);\n                            if ((int)unaff_s8 < 0) goto LAB_00055b70;\n                            pppppppcVar29 = (code *******)param_6[-1];\n                            if (pppppppcVar29 != (code *******)0x0) break;\n                            param_6 = param_6 + -1;\n                          }\n                          param_6 = param_6 + -1;\n                        } while (((uint)pppppppcVar29[0xd] & 0x8000000) == 0);\n                        pppppppcVar31 = (code *******)(*pcVar9)(&local_b4,pppppppcVar29,unaff_s8);\n                        pppppppcVar33 = pppppppcVar28;\n                      }\n                    }\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    (*(code *)PTR_free_00079c24)(param_4);\n                    local_150 = param_5;\n                    if (param_5 == (code *******)0x1) goto LAB_00055b04;\n                  }" (if "if") (parenthesized_expression "(unaff_s5 == (code *******)0x0)" (( "(") (binary_expression "unaff_s5 == (code *******)0x0" (identifier "unaff_s5") (== "==") (cast_expression "(code *******)0x0" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\nLAB_00055b9c:\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    local_150 = (code *******)0xc;\n                    pppppppcVar33 = pppppppcVar28;\n                  }" ({ "{") (labeled_statement "LAB_00055b9c:\n                    (*(code *)PTR_free_00079c24)(unaff_s5);" (statement_identifier "LAB_00055b9c") (: ":") (expression_statement "(*(code *)PTR_free_00079c24)(unaff_s5);" (call_expression "(*(code *)PTR_free_00079c24)(unaff_s5)" (parenthesized_expression "(*(code *)PTR_free_00079c24)" (( "(") (pointer_expression "*(code *)PTR_free_00079c24" (* "*") (cast_expression "(code *)PTR_free_00079c24" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_free_00079c24"))) () ")")) (argument_list "(unaff_s5)" (( "(") (identifier "unaff_s5") () ")"))) (; ";"))) (expression_statement "local_150 = (code *******)0xc;" (assignment_expression "local_150 = (code *******)0xc" (identifier "local_150") (= "=") (cast_expression "(code *******)0xc" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0xc"))) (; ";")) (expression_statement "pppppppcVar33 = pppppppcVar28;" (assignment_expression "pppppppcVar33 = pppppppcVar28" (identifier "pppppppcVar33") (= "=") (identifier "pppppppcVar28")) (; ";")) (} "}")) (else_clause "else {\n                    pppppppcVar29 = (code *******)&local_d0;\n                    if (pppppppcVar42[0x13] == (code ******)0x0) {\n                      local_cc = (code *******)0x0;\n                      local_c8 = pppppppcVar31;\n                      local_c0 = 0;\n                      local_bc = 0;\n                      local_b8 = 0;\n                      local_d0 = unaff_s5;\n                      local_c4 = unaff_s8;\n                      param_5 = (code *******)FUN_0005421c(&local_b4);\n                      (*(code *)PTR_free_00079c24)(local_b8);\n                      if (param_5 == (code *******)0x0) {\n                        param_4 = (code *******)*unaff_s5;\n                        if (param_4 == (code *******)0x0) {\nLAB_00055b70:\n                          (*(code *)PTR_free_00079c24)(unaff_s5);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          pppppppcVar33 = pppppppcVar28;\n                          goto LAB_00055b04;\n                        }\nLAB_00055528:\n                        (*(code *)PTR_free_00079c24)(local_50);\n                        pppppppcVar33 = pppppppcVar28;\n                        unaff_s4 = pppppppcVar42;\n                        local_58 = unaff_s8;\n                        local_54 = pppppppcVar31;\n                        local_50 = unaff_s5;\n                        goto LAB_00055548;\n                      }\nLAB_00055acc:\n                      param_4 = (code *******)0x0;\n                      pppppppcVar33 = pppppppcVar28;\n                      unaff_s4 = pppppppcVar42;\n                    }\n                    else {\n                      param_4 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                      if (param_4 == (code *******)0x0) goto LAB_00055b9c;\n                      unaff_s7 = (code *******)&local_d0;\n                      pcVar8 = (code *)(PTR_DAT_000799a4 + 0x421c);\n                      pcVar9 = (code *)(PTR_DAT_000799a4 + -0x6bc0);\n                      pppppppcVar33 = pppppppcVar28;\n                      while( true ) {\n                        pppppppcVar28 = (code *******)((int)unaff_s8 + 1);\n                        param_6 = (code *******)((int)pppppppcVar28 * 4);\n                        pppppppcVar30 = param_6;\n                        (*(code *)PTR_memset_00079b00)(param_4,0);\n                        local_c0 = 0;\n                        local_bc = 0;\n                        local_b8 = 0;\n                        pppppppcVar29 = unaff_s7;\n                        local_d0 = unaff_s5;\n                        local_cc = param_4;\n                        local_c8 = pppppppcVar31;\n                        local_c4 = unaff_s8;\n                        param_5 = (code *******)(*pcVar8)(&local_b4);\n                        (*(code *)PTR_free_00079c24)(local_b8);\n                        unaff_s4 = pppppppcVar28;\n                        if (param_5 != (code *******)0x0) break;\n                        if ((*unaff_s5 != (code ******)0x0) ||\n                           (param_6 = param_6 + -1, *param_4 != (code ******)0x0)) {\n                          pppppppcVar29 = unaff_s5;\n                          pppppppcVar30 = param_4;\n                          param_5 = (code *******)FUN_000520d0(pppppppcVar42);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          if (param_5 != (code *******)0x0) goto LAB_00055acc;\n                          goto LAB_00055528;\n                        }\n                        param_6 = (code *******)((int)local_50 + (int)param_6);\n                        do {\n                          while( true ) {\n                            unaff_s8 = (code *******)((int)unaff_s8 + -1);\n                            if ((int)unaff_s8 < 0) goto LAB_00055b70;\n                            pppppppcVar29 = (code *******)param_6[-1];\n                            if (pppppppcVar29 != (code *******)0x0) break;\n                            param_6 = param_6 + -1;\n                          }\n                          param_6 = param_6 + -1;\n                        } while (((uint)pppppppcVar29[0xd] & 0x8000000) == 0);\n                        pppppppcVar31 = (code *******)(*pcVar9)(&local_b4,pppppppcVar29,unaff_s8);\n                        pppppppcVar33 = pppppppcVar28;\n                      }\n                    }\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    (*(code *)PTR_free_00079c24)(param_4);\n                    local_150 = param_5;\n                    if (param_5 == (code *******)0x1) goto LAB_00055b04;\n                  }" (else "else") (compound_statement "{\n                    pppppppcVar29 = (code *******)&local_d0;\n                    if (pppppppcVar42[0x13] == (code ******)0x0) {\n                      local_cc = (code *******)0x0;\n                      local_c8 = pppppppcVar31;\n                      local_c0 = 0;\n                      local_bc = 0;\n                      local_b8 = 0;\n                      local_d0 = unaff_s5;\n                      local_c4 = unaff_s8;\n                      param_5 = (code *******)FUN_0005421c(&local_b4);\n                      (*(code *)PTR_free_00079c24)(local_b8);\n                      if (param_5 == (code *******)0x0) {\n                        param_4 = (code *******)*unaff_s5;\n                        if (param_4 == (code *******)0x0) {\nLAB_00055b70:\n                          (*(code *)PTR_free_00079c24)(unaff_s5);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          pppppppcVar33 = pppppppcVar28;\n                          goto LAB_00055b04;\n                        }\nLAB_00055528:\n                        (*(code *)PTR_free_00079c24)(local_50);\n                        pppppppcVar33 = pppppppcVar28;\n                        unaff_s4 = pppppppcVar42;\n                        local_58 = unaff_s8;\n                        local_54 = pppppppcVar31;\n                        local_50 = unaff_s5;\n                        goto LAB_00055548;\n                      }\nLAB_00055acc:\n                      param_4 = (code *******)0x0;\n                      pppppppcVar33 = pppppppcVar28;\n                      unaff_s4 = pppppppcVar42;\n                    }\n                    else {\n                      param_4 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                      if (param_4 == (code *******)0x0) goto LAB_00055b9c;\n                      unaff_s7 = (code *******)&local_d0;\n                      pcVar8 = (code *)(PTR_DAT_000799a4 + 0x421c);\n                      pcVar9 = (code *)(PTR_DAT_000799a4 + -0x6bc0);\n                      pppppppcVar33 = pppppppcVar28;\n                      while( true ) {\n                        pppppppcVar28 = (code *******)((int)unaff_s8 + 1);\n                        param_6 = (code *******)((int)pppppppcVar28 * 4);\n                        pppppppcVar30 = param_6;\n                        (*(code *)PTR_memset_00079b00)(param_4,0);\n                        local_c0 = 0;\n                        local_bc = 0;\n                        local_b8 = 0;\n                        pppppppcVar29 = unaff_s7;\n                        local_d0 = unaff_s5;\n                        local_cc = param_4;\n                        local_c8 = pppppppcVar31;\n                        local_c4 = unaff_s8;\n                        param_5 = (code *******)(*pcVar8)(&local_b4);\n                        (*(code *)PTR_free_00079c24)(local_b8);\n                        unaff_s4 = pppppppcVar28;\n                        if (param_5 != (code *******)0x0) break;\n                        if ((*unaff_s5 != (code ******)0x0) ||\n                           (param_6 = param_6 + -1, *param_4 != (code ******)0x0)) {\n                          pppppppcVar29 = unaff_s5;\n                          pppppppcVar30 = param_4;\n                          param_5 = (code *******)FUN_000520d0(pppppppcVar42);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          if (param_5 != (code *******)0x0) goto LAB_00055acc;\n                          goto LAB_00055528;\n                        }\n                        param_6 = (code *******)((int)local_50 + (int)param_6);\n                        do {\n                          while( true ) {\n                            unaff_s8 = (code *******)((int)unaff_s8 + -1);\n                            if ((int)unaff_s8 < 0) goto LAB_00055b70;\n                            pppppppcVar29 = (code *******)param_6[-1];\n                            if (pppppppcVar29 != (code *******)0x0) break;\n                            param_6 = param_6 + -1;\n                          }\n                          param_6 = param_6 + -1;\n                        } while (((uint)pppppppcVar29[0xd] & 0x8000000) == 0);\n                        pppppppcVar31 = (code *******)(*pcVar9)(&local_b4,pppppppcVar29,unaff_s8);\n                        pppppppcVar33 = pppppppcVar28;\n                      }\n                    }\n                    (*(code *)PTR_free_00079c24)(unaff_s5);\n                    (*(code *)PTR_free_00079c24)(param_4);\n                    local_150 = param_5;\n                    if (param_5 == (code *******)0x1) goto LAB_00055b04;\n                  }" ({ "{") (expression_statement "pppppppcVar29 = (code *******)&local_d0;" (assignment_expression "pppppppcVar29 = (code *******)&local_d0" (identifier "pppppppcVar29") (= "=") (cast_expression "(code *******)&local_d0" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (pointer_expression "&local_d0" (& "&") (identifier "local_d0")))) (; ";")) (if_statement "if (pppppppcVar42[0x13] == (code ******)0x0) {\n                      local_cc = (code *******)0x0;\n                      local_c8 = pppppppcVar31;\n                      local_c0 = 0;\n                      local_bc = 0;\n                      local_b8 = 0;\n                      local_d0 = unaff_s5;\n                      local_c4 = unaff_s8;\n                      param_5 = (code *******)FUN_0005421c(&local_b4);\n                      (*(code *)PTR_free_00079c24)(local_b8);\n                      if (param_5 == (code *******)0x0) {\n                        param_4 = (code *******)*unaff_s5;\n                        if (param_4 == (code *******)0x0) {\nLAB_00055b70:\n                          (*(code *)PTR_free_00079c24)(unaff_s5);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          pppppppcVar33 = pppppppcVar28;\n                          goto LAB_00055b04;\n                        }\nLAB_00055528:\n                        (*(code *)PTR_free_00079c24)(local_50);\n                        pppppppcVar33 = pppppppcVar28;\n                        unaff_s4 = pppppppcVar42;\n                        local_58 = unaff_s8;\n                        local_54 = pppppppcVar31;\n                        local_50 = unaff_s5;\n                        goto LAB_00055548;\n                      }\nLAB_00055acc:\n                      param_4 = (code *******)0x0;\n                      pppppppcVar33 = pppppppcVar28;\n                      unaff_s4 = pppppppcVar42;\n                    }\n                    else {\n                      param_4 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                      if (param_4 == (code *******)0x0) goto LAB_00055b9c;\n                      unaff_s7 = (code *******)&local_d0;\n                      pcVar8 = (code *)(PTR_DAT_000799a4 + 0x421c);\n                      pcVar9 = (code *)(PTR_DAT_000799a4 + -0x6bc0);\n                      pppppppcVar33 = pppppppcVar28;\n                      while( true ) {\n                        pppppppcVar28 = (code *******)((int)unaff_s8 + 1);\n                        param_6 = (code *******)((int)pppppppcVar28 * 4);\n                        pppppppcVar30 = param_6;\n                        (*(code *)PTR_memset_00079b00)(param_4,0);\n                        local_c0 = 0;\n                        local_bc = 0;\n                        local_b8 = 0;\n                        pppppppcVar29 = unaff_s7;\n                        local_d0 = unaff_s5;\n                        local_cc = param_4;\n                        local_c8 = pppppppcVar31;\n                        local_c4 = unaff_s8;\n                        param_5 = (code *******)(*pcVar8)(&local_b4);\n                        (*(code *)PTR_free_00079c24)(local_b8);\n                        unaff_s4 = pppppppcVar28;\n                        if (param_5 != (code *******)0x0) break;\n                        if ((*unaff_s5 != (code ******)0x0) ||\n                           (param_6 = param_6 + -1, *param_4 != (code ******)0x0)) {\n                          pppppppcVar29 = unaff_s5;\n                          pppppppcVar30 = param_4;\n                          param_5 = (code *******)FUN_000520d0(pppppppcVar42);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          if (param_5 != (code *******)0x0) goto LAB_00055acc;\n                          goto LAB_00055528;\n                        }\n                        param_6 = (code *******)((int)local_50 + (int)param_6);\n                        do {\n                          while( true ) {\n                            unaff_s8 = (code *******)((int)unaff_s8 + -1);\n                            if ((int)unaff_s8 < 0) goto LAB_00055b70;\n                            pppppppcVar29 = (code *******)param_6[-1];\n                            if (pppppppcVar29 != (code *******)0x0) break;\n                            param_6 = param_6 + -1;\n                          }\n                          param_6 = param_6 + -1;\n                        } while (((uint)pppppppcVar29[0xd] & 0x8000000) == 0);\n                        pppppppcVar31 = (code *******)(*pcVar9)(&local_b4,pppppppcVar29,unaff_s8);\n                        pppppppcVar33 = pppppppcVar28;\n                      }\n                    }" (if "if") (parenthesized_expression "(pppppppcVar42[0x13] == (code ******)0x0)" (( "(") (binary_expression "pppppppcVar42[0x13] == (code ******)0x0" (subscript_expression "pppppppcVar42[0x13]" (identifier "pppppppcVar42") ([ "[") (number_literal "0x13") (] "]")) (== "==") (cast_expression "(code ******)0x0" (( "(") (type_descriptor "code ******" (type_identifier "code") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                      local_cc = (code *******)0x0;\n                      local_c8 = pppppppcVar31;\n                      local_c0 = 0;\n                      local_bc = 0;\n                      local_b8 = 0;\n                      local_d0 = unaff_s5;\n                      local_c4 = unaff_s8;\n                      param_5 = (code *******)FUN_0005421c(&local_b4);\n                      (*(code *)PTR_free_00079c24)(local_b8);\n                      if (param_5 == (code *******)0x0) {\n                        param_4 = (code *******)*unaff_s5;\n                        if (param_4 == (code *******)0x0) {\nLAB_00055b70:\n                          (*(code *)PTR_free_00079c24)(unaff_s5);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          pppppppcVar33 = pppppppcVar28;\n                          goto LAB_00055b04;\n                        }\nLAB_00055528:\n                        (*(code *)PTR_free_00079c24)(local_50);\n                        pppppppcVar33 = pppppppcVar28;\n                        unaff_s4 = pppppppcVar42;\n                        local_58 = unaff_s8;\n                        local_54 = pppppppcVar31;\n                        local_50 = unaff_s5;\n                        goto LAB_00055548;\n                      }\nLAB_00055acc:\n                      param_4 = (code *******)0x0;\n                      pppppppcVar33 = pppppppcVar28;\n                      unaff_s4 = pppppppcVar42;\n                    }" ({ "{") (expression_statement "local_cc = (code *******)0x0;" (assignment_expression "local_cc = (code *******)0x0" (identifier "local_cc") (= "=") (cast_expression "(code *******)0x0" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_c8 = pppppppcVar31;" (assignment_expression "local_c8 = pppppppcVar31" (identifier "local_c8") (= "=") (identifier "pppppppcVar31")) (; ";")) (expression_statement "local_c0 = 0;" (assignment_expression "local_c0 = 0" (identifier "local_c0") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_bc = 0;" (assignment_expression "local_bc = 0" (identifier "local_bc") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_b8 = 0;" (assignment_expression "local_b8 = 0" (identifier "local_b8") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_d0 = unaff_s5;" (assignment_expression "local_d0 = unaff_s5" (identifier "local_d0") (= "=") (identifier "unaff_s5")) (; ";")) (expression_statement "local_c4 = unaff_s8;" (assignment_expression "local_c4 = unaff_s8" (identifier "local_c4") (= "=") (identifier "unaff_s8")) (; ";")) (expression_statement "param_5 = (code *******)FUN_0005421c(&local_b4);" (assignment_expression "param_5 = (code *******)FUN_0005421c(&local_b4)" (identifier "param_5") (= "=") (cast_expression "(code *******)FUN_0005421c(&local_b4)" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (call_expression "FUN_0005421c(&local_b4)" (identifier "FUN_0005421c") (argument_list "(&local_b4)" (( "(") (pointer_expression "&local_b4" (& "&") (identifier "local_b4")) () ")"))))) (; ";")) (expression_statement "(*(code *)PTR_free_00079c24)(local_b8);" (call_expression "(*(code *)PTR_free_00079c24)(local_b8)" (parenthesized_expression "(*(code *)PTR_free_00079c24)" (( "(") (pointer_expression "*(code *)PTR_free_00079c24" (* "*") (cast_expression "(code *)PTR_free_00079c24" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_free_00079c24"))) () ")")) (argument_list "(local_b8)" (( "(") (identifier "local_b8") () ")"))) (; ";")) (if_statement "if (param_5 == (code *******)0x0) {\n                        param_4 = (code *******)*unaff_s5;\n                        if (param_4 == (code *******)0x0) {\nLAB_00055b70:\n                          (*(code *)PTR_free_00079c24)(unaff_s5);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          pppppppcVar33 = pppppppcVar28;\n                          goto LAB_00055b04;\n                        }\nLAB_00055528:\n                        (*(code *)PTR_free_00079c24)(local_50);\n                        pppppppcVar33 = pppppppcVar28;\n                        unaff_s4 = pppppppcVar42;\n                        local_58 = unaff_s8;\n                        local_54 = pppppppcVar31;\n                        local_50 = unaff_s5;\n                        goto LAB_00055548;\n                      }" (if "if") (parenthesized_expression "(param_5 == (code *******)0x0)" (( "(") (binary_expression "param_5 == (code *******)0x0" (identifier "param_5") (== "==") (cast_expression "(code *******)0x0" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                        param_4 = (code *******)*unaff_s5;\n                        if (param_4 == (code *******)0x0) {\nLAB_00055b70:\n                          (*(code *)PTR_free_00079c24)(unaff_s5);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          pppppppcVar33 = pppppppcVar28;\n                          goto LAB_00055b04;\n                        }\nLAB_00055528:\n                        (*(code *)PTR_free_00079c24)(local_50);\n                        pppppppcVar33 = pppppppcVar28;\n                        unaff_s4 = pppppppcVar42;\n                        local_58 = unaff_s8;\n                        local_54 = pppppppcVar31;\n                        local_50 = unaff_s5;\n                        goto LAB_00055548;\n                      }" ({ "{") (expression_statement "param_4 = (code *******)*unaff_s5;" (assignment_expression "param_4 = (code *******)*unaff_s5" (identifier "param_4") (= "=") (cast_expression "(code *******)*unaff_s5" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (pointer_expression "*unaff_s5" (* "*") (identifier "unaff_s5")))) (; ";")) (if_statement "if (param_4 == (code *******)0x0) {\nLAB_00055b70:\n                          (*(code *)PTR_free_00079c24)(unaff_s5);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          pppppppcVar33 = pppppppcVar28;\n                          goto LAB_00055b04;\n                        }" (if "if") (parenthesized_expression "(param_4 == (code *******)0x0)" (( "(") (binary_expression "param_4 == (code *******)0x0" (identifier "param_4") (== "==") (cast_expression "(code *******)0x0" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\nLAB_00055b70:\n                          (*(code *)PTR_free_00079c24)(unaff_s5);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          pppppppcVar33 = pppppppcVar28;\n                          goto LAB_00055b04;\n                        }" ({ "{") (labeled_statement "LAB_00055b70:\n                          (*(code *)PTR_free_00079c24)(unaff_s5);" (statement_identifier "LAB_00055b70") (: ":") (expression_statement "(*(code *)PTR_free_00079c24)(unaff_s5);" (call_expression "(*(code *)PTR_free_00079c24)(unaff_s5)" (parenthesized_expression "(*(code *)PTR_free_00079c24)" (( "(") (pointer_expression "*(code *)PTR_free_00079c24" (* "*") (cast_expression "(code *)PTR_free_00079c24" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_free_00079c24"))) () ")")) (argument_list "(unaff_s5)" (( "(") (identifier "unaff_s5") () ")"))) (; ";"))) (expression_statement "(*(code *)PTR_free_00079c24)(param_4);" (call_expression "(*(code *)PTR_free_00079c24)(param_4)" (parenthesized_expression "(*(code *)PTR_free_00079c24)" (( "(") (pointer_expression "*(code *)PTR_free_00079c24" (* "*") (cast_expression "(code *)PTR_free_00079c24" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_free_00079c24"))) () ")")) (argument_list "(param_4)" (( "(") (identifier "param_4") () ")"))) (; ";")) (expression_statement "pppppppcVar33 = pppppppcVar28;" (assignment_expression "pppppppcVar33 = pppppppcVar28" (identifier "pppppppcVar33") (= "=") (identifier "pppppppcVar28")) (; ";")) (goto_statement "goto LAB_00055b04;" (goto "goto") (statement_identifier "LAB_00055b04") (; ";")) (} "}"))) (labeled_statement "LAB_00055528:\n                        (*(code *)PTR_free_00079c24)(local_50);" (statement_identifier "LAB_00055528") (: ":") (expression_statement "(*(code *)PTR_free_00079c24)(local_50);" (call_expression "(*(code *)PTR_free_00079c24)(local_50)" (parenthesized_expression "(*(code *)PTR_free_00079c24)" (( "(") (pointer_expression "*(code *)PTR_free_00079c24" (* "*") (cast_expression "(code *)PTR_free_00079c24" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_free_00079c24"))) () ")")) (argument_list "(local_50)" (( "(") (identifier "local_50") () ")"))) (; ";"))) (expression_statement "pppppppcVar33 = pppppppcVar28;" (assignment_expression "pppppppcVar33 = pppppppcVar28" (identifier "pppppppcVar33") (= "=") (identifier "pppppppcVar28")) (; ";")) (expression_statement "unaff_s4 = pppppppcVar42;" (assignment_expression "unaff_s4 = pppppppcVar42" (identifier "unaff_s4") (= "=") (identifier "pppppppcVar42")) (; ";")) (expression_statement "local_58 = unaff_s8;" (assignment_expression "local_58 = unaff_s8" (identifier "local_58") (= "=") (identifier "unaff_s8")) (; ";")) (expression_statement "local_54 = pppppppcVar31;" (assignment_expression "local_54 = pppppppcVar31" (identifier "local_54") (= "=") (identifier "pppppppcVar31")) (; ";")) (expression_statement "local_50 = unaff_s5;" (assignment_expression "local_50 = unaff_s5" (identifier "local_50") (= "=") (identifier "unaff_s5")) (; ";")) (goto_statement "goto LAB_00055548;" (goto "goto") (statement_identifier "LAB_00055548") (; ";")) (} "}"))) (labeled_statement "LAB_00055acc:\n                      param_4 = (code *******)0x0;" (statement_identifier "LAB_00055acc") (: ":") (expression_statement "param_4 = (code *******)0x0;" (assignment_expression "param_4 = (code *******)0x0" (identifier "param_4") (= "=") (cast_expression "(code *******)0x0" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) (; ";"))) (expression_statement "pppppppcVar33 = pppppppcVar28;" (assignment_expression "pppppppcVar33 = pppppppcVar28" (identifier "pppppppcVar33") (= "=") (identifier "pppppppcVar28")) (; ";")) (expression_statement "unaff_s4 = pppppppcVar42;" (assignment_expression "unaff_s4 = pppppppcVar42" (identifier "unaff_s4") (= "=") (identifier "pppppppcVar42")) (; ";")) (} "}")) (else_clause "else {\n                      param_4 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                      if (param_4 == (code *******)0x0) goto LAB_00055b9c;\n                      unaff_s7 = (code *******)&local_d0;\n                      pcVar8 = (code *)(PTR_DAT_000799a4 + 0x421c);\n                      pcVar9 = (code *)(PTR_DAT_000799a4 + -0x6bc0);\n                      pppppppcVar33 = pppppppcVar28;\n                      while( true ) {\n                        pppppppcVar28 = (code *******)((int)unaff_s8 + 1);\n                        param_6 = (code *******)((int)pppppppcVar28 * 4);\n                        pppppppcVar30 = param_6;\n                        (*(code *)PTR_memset_00079b00)(param_4,0);\n                        local_c0 = 0;\n                        local_bc = 0;\n                        local_b8 = 0;\n                        pppppppcVar29 = unaff_s7;\n                        local_d0 = unaff_s5;\n                        local_cc = param_4;\n                        local_c8 = pppppppcVar31;\n                        local_c4 = unaff_s8;\n                        param_5 = (code *******)(*pcVar8)(&local_b4);\n                        (*(code *)PTR_free_00079c24)(local_b8);\n                        unaff_s4 = pppppppcVar28;\n                        if (param_5 != (code *******)0x0) break;\n                        if ((*unaff_s5 != (code ******)0x0) ||\n                           (param_6 = param_6 + -1, *param_4 != (code ******)0x0)) {\n                          pppppppcVar29 = unaff_s5;\n                          pppppppcVar30 = param_4;\n                          param_5 = (code *******)FUN_000520d0(pppppppcVar42);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          if (param_5 != (code *******)0x0) goto LAB_00055acc;\n                          goto LAB_00055528;\n                        }\n                        param_6 = (code *******)((int)local_50 + (int)param_6);\n                        do {\n                          while( true ) {\n                            unaff_s8 = (code *******)((int)unaff_s8 + -1);\n                            if ((int)unaff_s8 < 0) goto LAB_00055b70;\n                            pppppppcVar29 = (code *******)param_6[-1];\n                            if (pppppppcVar29 != (code *******)0x0) break;\n                            param_6 = param_6 + -1;\n                          }\n                          param_6 = param_6 + -1;\n                        } while (((uint)pppppppcVar29[0xd] & 0x8000000) == 0);\n                        pppppppcVar31 = (code *******)(*pcVar9)(&local_b4,pppppppcVar29,unaff_s8);\n                        pppppppcVar33 = pppppppcVar28;\n                      }\n                    }" (else "else") (compound_statement "{\n                      param_4 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);\n                      if (param_4 == (code *******)0x0) goto LAB_00055b9c;\n                      unaff_s7 = (code *******)&local_d0;\n                      pcVar8 = (code *)(PTR_DAT_000799a4 + 0x421c);\n                      pcVar9 = (code *)(PTR_DAT_000799a4 + -0x6bc0);\n                      pppppppcVar33 = pppppppcVar28;\n                      while( true ) {\n                        pppppppcVar28 = (code *******)((int)unaff_s8 + 1);\n                        param_6 = (code *******)((int)pppppppcVar28 * 4);\n                        pppppppcVar30 = param_6;\n                        (*(code *)PTR_memset_00079b00)(param_4,0);\n                        local_c0 = 0;\n                        local_bc = 0;\n                        local_b8 = 0;\n                        pppppppcVar29 = unaff_s7;\n                        local_d0 = unaff_s5;\n                        local_cc = param_4;\n                        local_c8 = pppppppcVar31;\n                        local_c4 = unaff_s8;\n                        param_5 = (code *******)(*pcVar8)(&local_b4);\n                        (*(code *)PTR_free_00079c24)(local_b8);\n                        unaff_s4 = pppppppcVar28;\n                        if (param_5 != (code *******)0x0) break;\n                        if ((*unaff_s5 != (code ******)0x0) ||\n                           (param_6 = param_6 + -1, *param_4 != (code ******)0x0)) {\n                          pppppppcVar29 = unaff_s5;\n                          pppppppcVar30 = param_4;\n                          param_5 = (code *******)FUN_000520d0(pppppppcVar42);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          if (param_5 != (code *******)0x0) goto LAB_00055acc;\n                          goto LAB_00055528;\n                        }\n                        param_6 = (code *******)((int)local_50 + (int)param_6);\n                        do {\n                          while( true ) {\n                            unaff_s8 = (code *******)((int)unaff_s8 + -1);\n                            if ((int)unaff_s8 < 0) goto LAB_00055b70;\n                            pppppppcVar29 = (code *******)param_6[-1];\n                            if (pppppppcVar29 != (code *******)0x0) break;\n                            param_6 = param_6 + -1;\n                          }\n                          param_6 = param_6 + -1;\n                        } while (((uint)pppppppcVar29[0xd] & 0x8000000) == 0);\n                        pppppppcVar31 = (code *******)(*pcVar9)(&local_b4,pppppppcVar29,unaff_s8);\n                        pppppppcVar33 = pppppppcVar28;\n                      }\n                    }" ({ "{") (expression_statement "param_4 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);" (assignment_expression "param_4 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4)" (identifier "param_4") (= "=") (cast_expression "(code *******)(*(code *)PTR_malloc_00079b54)(param_4)" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (call_expression "(*(code *)PTR_malloc_00079b54)(param_4)" (parenthesized_expression "(*(code *)PTR_malloc_00079b54)" (( "(") (pointer_expression "*(code *)PTR_malloc_00079b54" (* "*") (cast_expression "(code *)PTR_malloc_00079b54" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_malloc_00079b54"))) () ")")) (argument_list "(param_4)" (( "(") (identifier "param_4") () ")"))))) (; ";")) (if_statement "if (param_4 == (code *******)0x0) goto LAB_00055b9c;" (if "if") (parenthesized_expression "(param_4 == (code *******)0x0)" (( "(") (binary_expression "param_4 == (code *******)0x0" (identifier "param_4") (== "==") (cast_expression "(code *******)0x0" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00055b9c;" (goto "goto") (statement_identifier "LAB_00055b9c") (; ";"))) (expression_statement "unaff_s7 = (code *******)&local_d0;" (assignment_expression "unaff_s7 = (code *******)&local_d0" (identifier "unaff_s7") (= "=") (cast_expression "(code *******)&local_d0" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (pointer_expression "&local_d0" (& "&") (identifier "local_d0")))) (; ";")) (expression_statement "pcVar8 = (code *)(PTR_DAT_000799a4 + 0x421c);" (assignment_expression "pcVar8 = (code *)(PTR_DAT_000799a4 + 0x421c)" (identifier "pcVar8") (= "=") (cast_expression "(code *)(PTR_DAT_000799a4 + 0x421c)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_000799a4 + 0x421c)" (( "(") (binary_expression "PTR_DAT_000799a4 + 0x421c" (identifier "PTR_DAT_000799a4") (+ "+") (number_literal "0x421c")) () ")")))) (; ";")) (expression_statement "pcVar9 = (code *)(PTR_DAT_000799a4 + -0x6bc0);" (assignment_expression "pcVar9 = (code *)(PTR_DAT_000799a4 + -0x6bc0)" (identifier "pcVar9") (= "=") (cast_expression "(code *)(PTR_DAT_000799a4 + -0x6bc0)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_000799a4 + -0x6bc0)" (( "(") (binary_expression "PTR_DAT_000799a4 + -0x6bc0" (identifier "PTR_DAT_000799a4") (+ "+") (number_literal "-0x6bc0")) () ")")))) (; ";")) (expression_statement "pppppppcVar33 = pppppppcVar28;" (assignment_expression "pppppppcVar33 = pppppppcVar28" (identifier "pppppppcVar33") (= "=") (identifier "pppppppcVar28")) (; ";")) (while_statement "while( true ) {\n                        pppppppcVar28 = (code *******)((int)unaff_s8 + 1);\n                        param_6 = (code *******)((int)pppppppcVar28 * 4);\n                        pppppppcVar30 = param_6;\n                        (*(code *)PTR_memset_00079b00)(param_4,0);\n                        local_c0 = 0;\n                        local_bc = 0;\n                        local_b8 = 0;\n                        pppppppcVar29 = unaff_s7;\n                        local_d0 = unaff_s5;\n                        local_cc = param_4;\n                        local_c8 = pppppppcVar31;\n                        local_c4 = unaff_s8;\n                        param_5 = (code *******)(*pcVar8)(&local_b4);\n                        (*(code *)PTR_free_00079c24)(local_b8);\n                        unaff_s4 = pppppppcVar28;\n                        if (param_5 != (code *******)0x0) break;\n                        if ((*unaff_s5 != (code ******)0x0) ||\n                           (param_6 = param_6 + -1, *param_4 != (code ******)0x0)) {\n                          pppppppcVar29 = unaff_s5;\n                          pppppppcVar30 = param_4;\n                          param_5 = (code *******)FUN_000520d0(pppppppcVar42);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          if (param_5 != (code *******)0x0) goto LAB_00055acc;\n                          goto LAB_00055528;\n                        }\n                        param_6 = (code *******)((int)local_50 + (int)param_6);\n                        do {\n                          while( true ) {\n                            unaff_s8 = (code *******)((int)unaff_s8 + -1);\n                            if ((int)unaff_s8 < 0) goto LAB_00055b70;\n                            pppppppcVar29 = (code *******)param_6[-1];\n                            if (pppppppcVar29 != (code *******)0x0) break;\n                            param_6 = param_6 + -1;\n                          }\n                          param_6 = param_6 + -1;\n                        } while (((uint)pppppppcVar29[0xd] & 0x8000000) == 0);\n                        pppppppcVar31 = (code *******)(*pcVar9)(&local_b4,pppppppcVar29,unaff_s8);\n                        pppppppcVar33 = pppppppcVar28;\n                      }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n                        pppppppcVar28 = (code *******)((int)unaff_s8 + 1);\n                        param_6 = (code *******)((int)pppppppcVar28 * 4);\n                        pppppppcVar30 = param_6;\n                        (*(code *)PTR_memset_00079b00)(param_4,0);\n                        local_c0 = 0;\n                        local_bc = 0;\n                        local_b8 = 0;\n                        pppppppcVar29 = unaff_s7;\n                        local_d0 = unaff_s5;\n                        local_cc = param_4;\n                        local_c8 = pppppppcVar31;\n                        local_c4 = unaff_s8;\n                        param_5 = (code *******)(*pcVar8)(&local_b4);\n                        (*(code *)PTR_free_00079c24)(local_b8);\n                        unaff_s4 = pppppppcVar28;\n                        if (param_5 != (code *******)0x0) break;\n                        if ((*unaff_s5 != (code ******)0x0) ||\n                           (param_6 = param_6 + -1, *param_4 != (code ******)0x0)) {\n                          pppppppcVar29 = unaff_s5;\n                          pppppppcVar30 = param_4;\n                          param_5 = (code *******)FUN_000520d0(pppppppcVar42);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          if (param_5 != (code *******)0x0) goto LAB_00055acc;\n                          goto LAB_00055528;\n                        }\n                        param_6 = (code *******)((int)local_50 + (int)param_6);\n                        do {\n                          while( true ) {\n                            unaff_s8 = (code *******)((int)unaff_s8 + -1);\n                            if ((int)unaff_s8 < 0) goto LAB_00055b70;\n                            pppppppcVar29 = (code *******)param_6[-1];\n                            if (pppppppcVar29 != (code *******)0x0) break;\n                            param_6 = param_6 + -1;\n                          }\n                          param_6 = param_6 + -1;\n                        } while (((uint)pppppppcVar29[0xd] & 0x8000000) == 0);\n                        pppppppcVar31 = (code *******)(*pcVar9)(&local_b4,pppppppcVar29,unaff_s8);\n                        pppppppcVar33 = pppppppcVar28;\n                      }" ({ "{") (expression_statement "pppppppcVar28 = (code *******)((int)unaff_s8 + 1);" (assignment_expression "pppppppcVar28 = (code *******)((int)unaff_s8 + 1)" (identifier "pppppppcVar28") (= "=") (cast_expression "(code *******)((int)unaff_s8 + 1)" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "((int)unaff_s8 + 1)" (( "(") (binary_expression "(int)unaff_s8 + 1" (cast_expression "(int)unaff_s8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s8")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "param_6 = (code *******)((int)pppppppcVar28 * 4);" (assignment_expression "param_6 = (code *******)((int)pppppppcVar28 * 4)" (identifier "param_6") (= "=") (cast_expression "(code *******)((int)pppppppcVar28 * 4)" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "((int)pppppppcVar28 * 4)" (( "(") (binary_expression "(int)pppppppcVar28 * 4" (cast_expression "(int)pppppppcVar28" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppcVar28")) (* "*") (number_literal "4")) () ")")))) (; ";")) (expression_statement "pppppppcVar30 = param_6;" (assignment_expression "pppppppcVar30 = param_6" (identifier "pppppppcVar30") (= "=") (identifier "param_6")) (; ";")) (expression_statement "(*(code *)PTR_memset_00079b00)(param_4,0);" (call_expression "(*(code *)PTR_memset_00079b00)(param_4,0)" (parenthesized_expression "(*(code *)PTR_memset_00079b00)" (( "(") (pointer_expression "*(code *)PTR_memset_00079b00" (* "*") (cast_expression "(code *)PTR_memset_00079b00" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_memset_00079b00"))) () ")")) (argument_list "(param_4,0)" (( "(") (identifier "param_4") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "local_c0 = 0;" (assignment_expression "local_c0 = 0" (identifier "local_c0") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_bc = 0;" (assignment_expression "local_bc = 0" (identifier "local_bc") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_b8 = 0;" (assignment_expression "local_b8 = 0" (identifier "local_b8") (= "=") (number_literal "0")) (; ";")) (expression_statement "pppppppcVar29 = unaff_s7;" (assignment_expression "pppppppcVar29 = unaff_s7" (identifier "pppppppcVar29") (= "=") (identifier "unaff_s7")) (; ";")) (expression_statement "local_d0 = unaff_s5;" (assignment_expression "local_d0 = unaff_s5" (identifier "local_d0") (= "=") (identifier "unaff_s5")) (; ";")) (expression_statement "local_cc = param_4;" (assignment_expression "local_cc = param_4" (identifier "local_cc") (= "=") (identifier "param_4")) (; ";")) (expression_statement "local_c8 = pppppppcVar31;" (assignment_expression "local_c8 = pppppppcVar31" (identifier "local_c8") (= "=") (identifier "pppppppcVar31")) (; ";")) (expression_statement "local_c4 = unaff_s8;" (assignment_expression "local_c4 = unaff_s8" (identifier "local_c4") (= "=") (identifier "unaff_s8")) (; ";")) (expression_statement "param_5 = (code *******)(*pcVar8)(&local_b4);" (assignment_expression "param_5 = (code *******)(*pcVar8)(&local_b4)" (identifier "param_5") (= "=") (cast_expression "(code *******)(*pcVar8)(&local_b4)" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (call_expression "(*pcVar8)(&local_b4)" (parenthesized_expression "(*pcVar8)" (( "(") (pointer_expression "*pcVar8" (* "*") (identifier "pcVar8")) () ")")) (argument_list "(&local_b4)" (( "(") (pointer_expression "&local_b4" (& "&") (identifier "local_b4")) () ")"))))) (; ";")) (expression_statement "(*(code *)PTR_free_00079c24)(local_b8);" (call_expression "(*(code *)PTR_free_00079c24)(local_b8)" (parenthesized_expression "(*(code *)PTR_free_00079c24)" (( "(") (pointer_expression "*(code *)PTR_free_00079c24" (* "*") (cast_expression "(code *)PTR_free_00079c24" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_free_00079c24"))) () ")")) (argument_list "(local_b8)" (( "(") (identifier "local_b8") () ")"))) (; ";")) (expression_statement "unaff_s4 = pppppppcVar28;" (assignment_expression "unaff_s4 = pppppppcVar28" (identifier "unaff_s4") (= "=") (identifier "pppppppcVar28")) (; ";")) (if_statement "if (param_5 != (code *******)0x0) break;" (if "if") (parenthesized_expression "(param_5 != (code *******)0x0)" (( "(") (binary_expression "param_5 != (code *******)0x0" (identifier "param_5") (!= "!=") (cast_expression "(code *******)0x0" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (if_statement "if ((*unaff_s5 != (code ******)0x0) ||\n                           (param_6 = param_6 + -1, *param_4 != (code ******)0x0)) {\n                          pppppppcVar29 = unaff_s5;\n                          pppppppcVar30 = param_4;\n                          param_5 = (code *******)FUN_000520d0(pppppppcVar42);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          if (param_5 != (code *******)0x0) goto LAB_00055acc;\n                          goto LAB_00055528;\n                        }" (if "if") (parenthesized_expression "((*unaff_s5 != (code ******)0x0) ||\n                           (param_6 = param_6 + -1, *param_4 != (code ******)0x0))" (( "(") (binary_expression "(*unaff_s5 != (code ******)0x0) ||\n                           (param_6 = param_6 + -1, *param_4 != (code ******)0x0)" (parenthesized_expression "(*unaff_s5 != (code ******)0x0)" (( "(") (binary_expression "*unaff_s5 != (code ******)0x0" (pointer_expression "*unaff_s5" (* "*") (identifier "unaff_s5")) (!= "!=") (cast_expression "(code ******)0x0" (( "(") (type_descriptor "code ******" (type_identifier "code") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) () ")")) (|| "||") (parenthesized_expression "(param_6 = param_6 + -1, *param_4 != (code ******)0x0)" (( "(") (comma_expression "param_6 = param_6 + -1, *param_4 != (code ******)0x0" (assignment_expression "param_6 = param_6 + -1" (identifier "param_6") (= "=") (binary_expression "param_6 + -1" (identifier "param_6") (+ "+") (number_literal "-1"))) (, ",") (binary_expression "*param_4 != (code ******)0x0" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (!= "!=") (cast_expression "(code ******)0x0" (( "(") (type_descriptor "code ******" (type_identifier "code") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0")))) () ")"))) () ")")) (compound_statement "{\n                          pppppppcVar29 = unaff_s5;\n                          pppppppcVar30 = param_4;\n                          param_5 = (code *******)FUN_000520d0(pppppppcVar42);\n                          (*(code *)PTR_free_00079c24)(param_4);\n                          if (param_5 != (code *******)0x0) goto LAB_00055acc;\n                          goto LAB_00055528;\n                        }" ({ "{") (expression_statement "pppppppcVar29 = unaff_s5;" (assignment_expression "pppppppcVar29 = unaff_s5" (identifier "pppppppcVar29") (= "=") (identifier "unaff_s5")) (; ";")) (expression_statement "pppppppcVar30 = param_4;" (assignment_expression "pppppppcVar30 = param_4" (identifier "pppppppcVar30") (= "=") (identifier "param_4")) (; ";")) (expression_statement "param_5 = (code *******)FUN_000520d0(pppppppcVar42);" (assignment_expression "param_5 = (code *******)FUN_000520d0(pppppppcVar42)" (identifier "param_5") (= "=") (cast_expression "(code *******)FUN_000520d0(pppppppcVar42)" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (call_expression "FUN_000520d0(pppppppcVar42)" (identifier "FUN_000520d0") (argument_list "(pppppppcVar42)" (( "(") (identifier "pppppppcVar42") () ")"))))) (; ";")) (expression_statement "(*(code *)PTR_free_00079c24)(param_4);" (call_expression "(*(code *)PTR_free_00079c24)(param_4)" (parenthesized_expression "(*(code *)PTR_free_00079c24)" (( "(") (pointer_expression "*(code *)PTR_free_00079c24" (* "*") (cast_expression "(code *)PTR_free_00079c24" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_free_00079c24"))) () ")")) (argument_list "(param_4)" (( "(") (identifier "param_4") () ")"))) (; ";")) (if_statement "if (param_5 != (code *******)0x0) goto LAB_00055acc;" (if "if") (parenthesized_expression "(param_5 != (code *******)0x0)" (( "(") (binary_expression "param_5 != (code *******)0x0" (identifier "param_5") (!= "!=") (cast_expression "(code *******)0x0" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00055acc;" (goto "goto") (statement_identifier "LAB_00055acc") (; ";"))) (goto_statement "goto LAB_00055528;" (goto "goto") (statement_identifier "LAB_00055528") (; ";")) (} "}"))) (expression_statement "param_6 = (code *******)((int)local_50 + (int)param_6);" (assignment_expression "param_6 = (code *******)((int)local_50 + (int)param_6)" (identifier "param_6") (= "=") (cast_expression "(code *******)((int)local_50 + (int)param_6)" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "((int)local_50 + (int)param_6)" (( "(") (binary_expression "(int)local_50 + (int)param_6" (cast_expression "(int)local_50" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_50")) (+ "+") (cast_expression "(int)param_6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_6"))) () ")")))) (; ";")) (do_statement "do {\n                          while( true ) {\n                            unaff_s8 = (code *******)((int)unaff_s8 + -1);\n                            if ((int)unaff_s8 < 0) goto LAB_00055b70;\n                            pppppppcVar29 = (code *******)param_6[-1];\n                            if (pppppppcVar29 != (code *******)0x0) break;\n                            param_6 = param_6 + -1;\n                          }\n                          param_6 = param_6 + -1;\n                        } while (((uint)pppppppcVar29[0xd] & 0x8000000) == 0);" (do "do") (compound_statement "{\n                          while( true ) {\n                            unaff_s8 = (code *******)((int)unaff_s8 + -1);\n                            if ((int)unaff_s8 < 0) goto LAB_00055b70;\n                            pppppppcVar29 = (code *******)param_6[-1];\n                            if (pppppppcVar29 != (code *******)0x0) break;\n                            param_6 = param_6 + -1;\n                          }\n                          param_6 = param_6 + -1;\n                        }" ({ "{") (while_statement "while( true ) {\n                            unaff_s8 = (code *******)((int)unaff_s8 + -1);\n                            if ((int)unaff_s8 < 0) goto LAB_00055b70;\n                            pppppppcVar29 = (code *******)param_6[-1];\n                            if (pppppppcVar29 != (code *******)0x0) break;\n                            param_6 = param_6 + -1;\n                          }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n                            unaff_s8 = (code *******)((int)unaff_s8 + -1);\n                            if ((int)unaff_s8 < 0) goto LAB_00055b70;\n                            pppppppcVar29 = (code *******)param_6[-1];\n                            if (pppppppcVar29 != (code *******)0x0) break;\n                            param_6 = param_6 + -1;\n                          }" ({ "{") (expression_statement "unaff_s8 = (code *******)((int)unaff_s8 + -1);" (assignment_expression "unaff_s8 = (code *******)((int)unaff_s8 + -1)" (identifier "unaff_s8") (= "=") (cast_expression "(code *******)((int)unaff_s8 + -1)" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "((int)unaff_s8 + -1)" (( "(") (binary_expression "(int)unaff_s8 + -1" (cast_expression "(int)unaff_s8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s8")) (+ "+") (number_literal "-1")) () ")")))) (; ";")) (if_statement "if ((int)unaff_s8 < 0) goto LAB_00055b70;" (if "if") (parenthesized_expression "((int)unaff_s8 < 0)" (( "(") (binary_expression "(int)unaff_s8 < 0" (cast_expression "(int)unaff_s8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s8")) (< "<") (number_literal "0")) () ")")) (goto_statement "goto LAB_00055b70;" (goto "goto") (statement_identifier "LAB_00055b70") (; ";"))) (expression_statement "pppppppcVar29 = (code *******)param_6[-1];" (assignment_expression "pppppppcVar29 = (code *******)param_6[-1]" (identifier "pppppppcVar29") (= "=") (cast_expression "(code *******)param_6[-1]" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (subscript_expression "param_6[-1]" (identifier "param_6") ([ "[") (number_literal "-1") (] "]")))) (; ";")) (if_statement "if (pppppppcVar29 != (code *******)0x0) break;" (if "if") (parenthesized_expression "(pppppppcVar29 != (code *******)0x0)" (( "(") (binary_expression "pppppppcVar29 != (code *******)0x0" (identifier "pppppppcVar29") (!= "!=") (cast_expression "(code *******)0x0" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "param_6 = param_6 + -1;" (assignment_expression "param_6 = param_6 + -1" (identifier "param_6") (= "=") (binary_expression "param_6 + -1" (identifier "param_6") (+ "+") (number_literal "-1"))) (; ";")) (} "}"))) (expression_statement "param_6 = param_6 + -1;" (assignment_expression "param_6 = param_6 + -1" (identifier "param_6") (= "=") (binary_expression "param_6 + -1" (identifier "param_6") (+ "+") (number_literal "-1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(((uint)pppppppcVar29[0xd] & 0x8000000) == 0)" (( "(") (binary_expression "((uint)pppppppcVar29[0xd] & 0x8000000) == 0" (parenthesized_expression "((uint)pppppppcVar29[0xd] & 0x8000000)" (( "(") (binary_expression "(uint)pppppppcVar29[0xd] & 0x8000000" (cast_expression "(uint)pppppppcVar29[0xd]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "pppppppcVar29[0xd]" (identifier "pppppppcVar29") ([ "[") (number_literal "0xd") (] "]"))) (& "&") (number_literal "0x8000000")) () ")")) (== "==") (number_literal "0")) () ")")) (; ";")) (expression_statement "pppppppcVar31 = (code *******)(*pcVar9)(&local_b4,pppppppcVar29,unaff_s8);" (assignment_expression "pppppppcVar31 = (code *******)(*pcVar9)(&local_b4,pppppppcVar29,unaff_s8)" (identifier "pppppppcVar31") (= "=") (cast_expression "(code *******)(*pcVar9)(&local_b4,pppppppcVar29,unaff_s8)" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (call_expression "(*pcVar9)(&local_b4,pppppppcVar29,unaff_s8)" (parenthesized_expression "(*pcVar9)" (( "(") (pointer_expression "*pcVar9" (* "*") (identifier "pcVar9")) () ")")) (argument_list "(&local_b4,pppppppcVar29,unaff_s8)" (( "(") (pointer_expression "&local_b4" (& "&") (identifier "local_b4")) (, ",") (identifier "pppppppcVar29") (, ",") (identifier "unaff_s8") () ")"))))) (; ";")) (expression_statement "pppppppcVar33 = pppppppcVar28;" (assignment_expression "pppppppcVar33 = pppppppcVar28" (identifier "pppppppcVar33") (= "=") (identifier "pppppppcVar28")) (; ";")) (} "}"))) (} "}")))) (expression_statement "(*(code *)PTR_free_00079c24)(unaff_s5);" (call_expression "(*(code *)PTR_free_00079c24)(unaff_s5)" (parenthesized_expression "(*(code *)PTR_free_00079c24)" (( "(") (pointer_expression "*(code *)PTR_free_00079c24" (* "*") (cast_expression "(code *)PTR_free_00079c24" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_free_00079c24"))) () ")")) (argument_list "(unaff_s5)" (( "(") (identifier "unaff_s5") () ")"))) (; ";")) (expression_statement "(*(code *)PTR_free_00079c24)(param_4);" (call_expression "(*(code *)PTR_free_00079c24)(param_4)" (parenthesized_expression "(*(code *)PTR_free_00079c24)" (( "(") (pointer_expression "*(code *)PTR_free_00079c24" (* "*") (cast_expression "(code *)PTR_free_00079c24" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_free_00079c24"))) () ")")) (argument_list "(param_4)" (( "(") (identifier "param_4") () ")"))) (; ";")) (expression_statement "local_150 = param_5;" (assignment_expression "local_150 = param_5" (identifier "local_150") (= "=") (identifier "param_5")) (; ";")) (if_statement "if (param_5 == (code *******)0x1) goto LAB_00055b04;" (if "if") (parenthesized_expression "(param_5 == (code *******)0x1)" (( "(") (binary_expression "param_5 == (code *******)0x1" (identifier "param_5") (== "==") (cast_expression "(code *******)0x1" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x1"))) () ")")) (goto_statement "goto LAB_00055b04;" (goto "goto") (statement_identifier "LAB_00055b04") (; ";"))) (} "}")))) (} "}")) (else_clause "else {\n                  local_150 = (code *******)0xc;\n                  pppppppcVar33 = pppppppcVar28;\n                }" (else "else") (compound_statement "{\n                  local_150 = (code *******)0xc;\n                  pppppppcVar33 = pppppppcVar28;\n                }" ({ "{") (expression_statement "local_150 = (code *******)0xc;" (assignment_expression "local_150 = (code *******)0xc" (identifier "local_150") (= "=") (cast_expression "(code *******)0xc" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0xc"))) (; ";")) (expression_statement "pppppppcVar33 = pppppppcVar28;" (assignment_expression "pppppppcVar33 = pppppppcVar28" (identifier "pppppppcVar33") (= "=") (identifier "pppppppcVar28")) (; ";")) (} "}")))) (goto_statement "goto LAB_000557e4;" (goto "goto") (statement_identifier "LAB_000557e4") (; ";")) (} "}"))) (if_statement "if (pppppppcVar38[0x13] != (code ******)0x0) {\n                pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                pppppppcVar30 = unaff_s8;\n                local_54 = (code *******)FUN_00049440(&local_b4);\n                goto LAB_00055c6c;\n              }" (if "if") (parenthesized_expression "(pppppppcVar38[0x13] != (code ******)0x0)" (( "(") (binary_expression "pppppppcVar38[0x13] != (code ******)0x0" (subscript_expression "pppppppcVar38[0x13]" (identifier "pppppppcVar38") ([ "[") (number_literal "0x13") (] "]")) (!= "!=") (cast_expression "(code ******)0x0" (( "(") (type_descriptor "code ******" (type_identifier "code") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                pppppppcVar29 = (code *******)local_50[(int)unaff_s8];\n                pppppppcVar30 = unaff_s8;\n                local_54 = (code *******)FUN_00049440(&local_b4);\n                goto LAB_00055c6c;\n              }" ({ "{") (expression_statement "pppppppcVar29 = (code *******)local_50[(int)unaff_s8];" (assignment_expression "pppppppcVar29 = (code *******)local_50[(int)unaff_s8]" (identifier "pppppppcVar29") (= "=") (cast_expression "(code *******)local_50[(int)unaff_s8]" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (subscript_expression "local_50[(int)unaff_s8]" (identifier "local_50") ([ "[") (cast_expression "(int)unaff_s8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s8")) (] "]")))) (; ";")) (expression_statement "pppppppcVar30 = unaff_s8;" (assignment_expression "pppppppcVar30 = unaff_s8" (identifier "pppppppcVar30") (= "=") (identifier "unaff_s8")) (; ";")) (expression_statement "local_54 = (code *******)FUN_00049440(&local_b4);" (assignment_expression "local_54 = (code *******)FUN_00049440(&local_b4)" (identifier "local_54") (= "=") (cast_expression "(code *******)FUN_00049440(&local_b4)" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (call_expression "FUN_00049440(&local_b4)" (identifier "FUN_00049440") (argument_list "(&local_b4)" (( "(") (pointer_expression "&local_b4" (& "&") (identifier "local_b4")) () ")"))))) (; ";")) (goto_statement "goto LAB_00055c6c;" (goto "goto") (statement_identifier "LAB_00055c6c") (; ";")) (} "}"))) (labeled_statement "LAB_00055c08:\n              if ((((uint)param_1[7] & 0x8000000) == 0) && ((code *******)0x1 < pppppppcVar3)) {\n                cVar23 = *(code *)(pppppppcVar38 + 0x16);\n                goto LAB_00055c20;\n              }" (statement_identifier "LAB_00055c08") (: ":") (if_statement "if ((((uint)param_1[7] & 0x8000000) == 0) && ((code *******)0x1 < pppppppcVar3)) {\n                cVar23 = *(code *)(pppppppcVar38 + 0x16);\n                goto LAB_00055c20;\n              }" (if "if") (parenthesized_expression "((((uint)param_1[7] & 0x8000000) == 0) && ((code *******)0x1 < pppppppcVar3))" (( "(") (binary_expression "(((uint)param_1[7] & 0x8000000) == 0) && ((code *******)0x1 < pppppppcVar3)" (parenthesized_expression "(((uint)param_1[7] & 0x8000000) == 0)" (( "(") (binary_expression "((uint)param_1[7] & 0x8000000) == 0" (parenthesized_expression "((uint)param_1[7] & 0x8000000)" (( "(") (binary_expression "(uint)param_1[7] & 0x8000000" (cast_expression "(uint)param_1[7]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "param_1[7]" (identifier "param_1") ([ "[") (number_literal "7") (] "]"))) (& "&") (number_literal "0x8000000")) () ")")) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "((code *******)0x1 < pppppppcVar3)" (( "(") (binary_expression "(code *******)0x1 < pppppppcVar3" (cast_expression "(code *******)0x1" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x1")) (< "<") (identifier "pppppppcVar3")) () ")"))) () ")")) (compound_statement "{\n                cVar23 = *(code *)(pppppppcVar38 + 0x16);\n                goto LAB_00055c20;\n              }" ({ "{") (expression_statement "cVar23 = *(code *)(pppppppcVar38 + 0x16);" (assignment_expression "cVar23 = *(code *)(pppppppcVar38 + 0x16)" (identifier "cVar23") (= "=") (pointer_expression "*(code *)(pppppppcVar38 + 0x16)" (* "*") (cast_expression "(code *)(pppppppcVar38 + 0x16)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pppppppcVar38 + 0x16)" (( "(") (binary_expression "pppppppcVar38 + 0x16" (identifier "pppppppcVar38") (+ "+") (number_literal "0x16")) () ")"))))) (; ";")) (goto_statement "goto LAB_00055c20;" (goto "goto") (statement_identifier "LAB_00055c20") (; ";")) (} "}")))) (labeled_statement "LAB_00055548:\n              if (pppppppcVar3 == (code *******)0x0) goto LAB_000557e4;" (statement_identifier "LAB_00055548") (: ":") (if_statement "if (pppppppcVar3 == (code *******)0x0) goto LAB_000557e4;" (if "if") (parenthesized_expression "(pppppppcVar3 == (code *******)0x0)" (( "(") (binary_expression "pppppppcVar3 == (code *******)0x0" (identifier "pppppppcVar3") (== "==") (cast_expression "(code *******)0x0" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_000557e4;" (goto "goto") (statement_identifier "LAB_000557e4") (; ";")))) (if_statement "if (pppppppcVar3 < (code *******)0x2) {\n                *param_8 = (code ******)0x0;\n                param_8[1] = (code ******)local_58;\n                goto LAB_000555ac;\n              }" (if "if") (parenthesized_expression "(pppppppcVar3 < (code *******)0x2)" (( "(") (binary_expression "pppppppcVar3 < (code *******)0x2" (identifier "pppppppcVar3") (< "<") (cast_expression "(code *******)0x2" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x2"))) () ")")) (compound_statement "{\n                *param_8 = (code ******)0x0;\n                param_8[1] = (code ******)local_58;\n                goto LAB_000555ac;\n              }" ({ "{") (expression_statement "*param_8 = (code ******)0x0;" (assignment_expression "*param_8 = (code ******)0x0" (pointer_expression "*param_8" (* "*") (identifier "param_8")) (= "=") (cast_expression "(code ******)0x0" (( "(") (type_descriptor "code ******" (type_identifier "code") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "param_8[1] = (code ******)local_58;" (assignment_expression "param_8[1] = (code ******)local_58" (subscript_expression "param_8[1]" (identifier "param_8") ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(code ******)local_58" (( "(") (type_descriptor "code ******" (type_identifier "code") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (identifier "local_58"))) (; ";")) (goto_statement "goto LAB_000555ac;" (goto "goto") (statement_identifier "LAB_000555ac") (; ";")) (} "}"))) (expression_statement "pppppppcVar29 = param_8 + 2;" (assignment_expression "pppppppcVar29 = param_8 + 2" (identifier "pppppppcVar29") (= "=") (binary_expression "param_8 + 2" (identifier "param_8") (+ "+") (number_literal "2"))) (; ";")) (do_statement "do {\n                pppppppcVar29[1] = (code ******)0xffffffff;\n                *pppppppcVar29 = (code ******)0xffffffff;\n                pppppppcVar29 = pppppppcVar29 + 2;\n              } while (pppppppcVar29 != param_8 + (int)pppppppcVar3 * 2);" (do "do") (compound_statement "{\n                pppppppcVar29[1] = (code ******)0xffffffff;\n                *pppppppcVar29 = (code ******)0xffffffff;\n                pppppppcVar29 = pppppppcVar29 + 2;\n              }" ({ "{") (expression_statement "pppppppcVar29[1] = (code ******)0xffffffff;" (assignment_expression "pppppppcVar29[1] = (code ******)0xffffffff" (subscript_expression "pppppppcVar29[1]" (identifier "pppppppcVar29") ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(code ******)0xffffffff" (( "(") (type_descriptor "code ******" (type_identifier "code") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0xffffffff"))) (; ";")) (expression_statement "*pppppppcVar29 = (code ******)0xffffffff;" (assignment_expression "*pppppppcVar29 = (code ******)0xffffffff" (pointer_expression "*pppppppcVar29" (* "*") (identifier "pppppppcVar29")) (= "=") (cast_expression "(code ******)0xffffffff" (( "(") (type_descriptor "code ******" (type_identifier "code") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0xffffffff"))) (; ";")) (expression_statement "pppppppcVar29 = pppppppcVar29 + 2;" (assignment_expression "pppppppcVar29 = pppppppcVar29 + 2" (identifier "pppppppcVar29") (= "=") (binary_expression "pppppppcVar29 + 2" (identifier "pppppppcVar29") (+ "+") (number_literal "2"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pppppppcVar29 != param_8 + (int)pppppppcVar3 * 2)" (( "(") (binary_expression "pppppppcVar29 != param_8 + (int)pppppppcVar3 * 2" (identifier "pppppppcVar29") (!= "!=") (binary_expression "param_8 + (int)pppppppcVar3 * 2" (identifier "param_8") (+ "+") (binary_expression "(int)pppppppcVar3 * 2" (cast_expression "(int)pppppppcVar3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppcVar3")) (* "*") (number_literal "2")))) () ")")) (; ";")) (expression_statement "*param_8 = (code ******)0x0;" (assignment_expression "*param_8 = (code ******)0x0" (pointer_expression "*param_8" (* "*") (identifier "param_8")) (= "=") (cast_expression "(code ******)0x0" (( "(") (type_descriptor "code ******" (type_identifier "code") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "param_8[1] = (code ******)local_58;" (assignment_expression "param_8[1] = (code ******)local_58" (subscript_expression "param_8[1]" (identifier "param_8") ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(code ******)local_58" (( "(") (type_descriptor "code ******" (type_identifier "code") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (identifier "local_58"))) (; ";")) (if_statement "if (((uint)param_1[7] & 0x8000000) != 0) {\nLAB_000555ac:\n                pppppppcVar33 = param_8;\n                do {\n                  pppppppcVar29 = (code *******)*pppppppcVar33;\n                  if (pppppppcVar29 != (code *******)0xffffffff) {\n                    if (local_68 != '\0') {\n                      pppppppcVar34 = local_94;\n                      if (pppppppcVar29 != local_98) {\n                        pppppppcVar34 = *(code ********)(local_a8 + (int)pppppppcVar29 * 4);\n                      }\n                      *pppppppcVar33 = (code ******)pppppppcVar34;\n                      pppppppcVar29 = local_94;\n                      if (local_98 != (code *******)pppppppcVar33[1]) {\n                        pppppppcVar29 = *(code ********)(local_a8 + (int)pppppppcVar33[1] * 4);\n                      }\n                      pppppppcVar33[1] = (code ******)pppppppcVar29;\n                    }\n                    *pppppppcVar33 = (code ******)((int)local_dc + (int)*pppppppcVar33);\n                    pppppppcVar29 = (code *******)((int)local_dc + (int)pppppppcVar33[1]);\n                    pppppppcVar33[1] = (code ******)pppppppcVar29;\n                  }\n                  pppppppcVar33 = pppppppcVar33 + 2;\n                } while (pppppppcVar33 != param_8 + (int)pppppppcVar3 * 2);\n                if (0 < local_118) {\n                  pppppppcVar33 = param_8 + (int)pppppppcVar3 * 2;\n                  do {\n                    *pppppppcVar33 = (code ******)0xffffffff;\n                    pppppppcVar33[1] = (code ******)0xffffffff;\n                    pppppppcVar33 = pppppppcVar33 + 2;\n                  } while (pppppppcVar33 != param_8 + (int)param_7 * 2);\n                }\n                pppppppcVar30 = local_dc;\n                pppppppcVar33 = param_8;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar38[0x21] != (code ******)0x0) {\n                  pppppppcVar30 = (code *******)((int)pppppppcVar3 + -1);\n                  pppppppcVar34 = (code *******)0x0;\n                  pppppppcVar3 = param_8;\n                  while( true ) {\n                    pppppppcVar29 = (code *******)((int)pppppppcVar34 * 4);\n                    if (pppppppcVar30 == pppppppcVar34) break;\n                    if (*(code ********)((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) !=\n                        pppppppcVar34) {\n                      pppppppcVar3[2] =\n                           param_8[(int)((int)*(code ********)\n                                               ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1)\n                                   * 2];\n                      pppppppcVar3[3] =\n                           param_8[((int)*(code ******)\n                                          ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1) * 2 +\n                                   1];\n                    }\n                    pppppppcVar34 = (code *******)((int)pppppppcVar34 + 1);\n                    pppppppcVar3 = pppppppcVar3 + 2;\n                  }\n                }\n                goto LAB_000557e4;\n              }" (if "if") (parenthesized_expression "(((uint)param_1[7] & 0x8000000) != 0)" (( "(") (binary_expression "((uint)param_1[7] & 0x8000000) != 0" (parenthesized_expression "((uint)param_1[7] & 0x8000000)" (( "(") (binary_expression "(uint)param_1[7] & 0x8000000" (cast_expression "(uint)param_1[7]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "param_1[7]" (identifier "param_1") ([ "[") (number_literal "7") (] "]"))) (& "&") (number_literal "0x8000000")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\nLAB_000555ac:\n                pppppppcVar33 = param_8;\n                do {\n                  pppppppcVar29 = (code *******)*pppppppcVar33;\n                  if (pppppppcVar29 != (code *******)0xffffffff) {\n                    if (local_68 != '\0') {\n                      pppppppcVar34 = local_94;\n                      if (pppppppcVar29 != local_98) {\n                        pppppppcVar34 = *(code ********)(local_a8 + (int)pppppppcVar29 * 4);\n                      }\n                      *pppppppcVar33 = (code ******)pppppppcVar34;\n                      pppppppcVar29 = local_94;\n                      if (local_98 != (code *******)pppppppcVar33[1]) {\n                        pppppppcVar29 = *(code ********)(local_a8 + (int)pppppppcVar33[1] * 4);\n                      }\n                      pppppppcVar33[1] = (code ******)pppppppcVar29;\n                    }\n                    *pppppppcVar33 = (code ******)((int)local_dc + (int)*pppppppcVar33);\n                    pppppppcVar29 = (code *******)((int)local_dc + (int)pppppppcVar33[1]);\n                    pppppppcVar33[1] = (code ******)pppppppcVar29;\n                  }\n                  pppppppcVar33 = pppppppcVar33 + 2;\n                } while (pppppppcVar33 != param_8 + (int)pppppppcVar3 * 2);\n                if (0 < local_118) {\n                  pppppppcVar33 = param_8 + (int)pppppppcVar3 * 2;\n                  do {\n                    *pppppppcVar33 = (code ******)0xffffffff;\n                    pppppppcVar33[1] = (code ******)0xffffffff;\n                    pppppppcVar33 = pppppppcVar33 + 2;\n                  } while (pppppppcVar33 != param_8 + (int)param_7 * 2);\n                }\n                pppppppcVar30 = local_dc;\n                pppppppcVar33 = param_8;\n                local_150 = pppppppcVar6;\n                if (pppppppcVar38[0x21] != (code ******)0x0) {\n                  pppppppcVar30 = (code *******)((int)pppppppcVar3 + -1);\n                  pppppppcVar34 = (code *******)0x0;\n                  pppppppcVar3 = param_8;\n                  while( true ) {\n                    pppppppcVar29 = (code *******)((int)pppppppcVar34 * 4);\n                    if (pppppppcVar30 == pppppppcVar34) break;\n                    if (*(code ********)((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) !=\n                        pppppppcVar34) {\n                      pppppppcVar3[2] =\n                           param_8[(int)((int)*(code ********)\n                                               ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1)\n                                   * 2];\n                      pppppppcVar3[3] =\n                           param_8[((int)*(code ******)\n                                          ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1) * 2 +\n                                   1];\n                    }\n                    pppppppcVar34 = (code *******)((int)pppppppcVar34 + 1);\n                    pppppppcVar3 = pppppppcVar3 + 2;\n                  }\n                }\n                goto LAB_000557e4;\n              }" ({ "{") (labeled_statement "LAB_000555ac:\n                pppppppcVar33 = param_8;" (statement_identifier "LAB_000555ac") (: ":") (expression_statement "pppppppcVar33 = param_8;" (assignment_expression "pppppppcVar33 = param_8" (identifier "pppppppcVar33") (= "=") (identifier "param_8")) (; ";"))) (do_statement "do {\n                  pppppppcVar29 = (code *******)*pppppppcVar33;\n                  if (pppppppcVar29 != (code *******)0xffffffff) {\n                    if (local_68 != '\0') {\n                      pppppppcVar34 = local_94;\n                      if (pppppppcVar29 != local_98) {\n                        pppppppcVar34 = *(code ********)(local_a8 + (int)pppppppcVar29 * 4);\n                      }\n                      *pppppppcVar33 = (code ******)pppppppcVar34;\n                      pppppppcVar29 = local_94;\n                      if (local_98 != (code *******)pppppppcVar33[1]) {\n                        pppppppcVar29 = *(code ********)(local_a8 + (int)pppppppcVar33[1] * 4);\n                      }\n                      pppppppcVar33[1] = (code ******)pppppppcVar29;\n                    }\n                    *pppppppcVar33 = (code ******)((int)local_dc + (int)*pppppppcVar33);\n                    pppppppcVar29 = (code *******)((int)local_dc + (int)pppppppcVar33[1]);\n                    pppppppcVar33[1] = (code ******)pppppppcVar29;\n                  }\n                  pppppppcVar33 = pppppppcVar33 + 2;\n                } while (pppppppcVar33 != param_8 + (int)pppppppcVar3 * 2);" (do "do") (compound_statement "{\n                  pppppppcVar29 = (code *******)*pppppppcVar33;\n                  if (pppppppcVar29 != (code *******)0xffffffff) {\n                    if (local_68 != '\0') {\n                      pppppppcVar34 = local_94;\n                      if (pppppppcVar29 != local_98) {\n                        pppppppcVar34 = *(code ********)(local_a8 + (int)pppppppcVar29 * 4);\n                      }\n                      *pppppppcVar33 = (code ******)pppppppcVar34;\n                      pppppppcVar29 = local_94;\n                      if (local_98 != (code *******)pppppppcVar33[1]) {\n                        pppppppcVar29 = *(code ********)(local_a8 + (int)pppppppcVar33[1] * 4);\n                      }\n                      pppppppcVar33[1] = (code ******)pppppppcVar29;\n                    }\n                    *pppppppcVar33 = (code ******)((int)local_dc + (int)*pppppppcVar33);\n                    pppppppcVar29 = (code *******)((int)local_dc + (int)pppppppcVar33[1]);\n                    pppppppcVar33[1] = (code ******)pppppppcVar29;\n                  }\n                  pppppppcVar33 = pppppppcVar33 + 2;\n                }" ({ "{") (expression_statement "pppppppcVar29 = (code *******)*pppppppcVar33;" (assignment_expression "pppppppcVar29 = (code *******)*pppppppcVar33" (identifier "pppppppcVar29") (= "=") (cast_expression "(code *******)*pppppppcVar33" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (pointer_expression "*pppppppcVar33" (* "*") (identifier "pppppppcVar33")))) (; ";")) (if_statement "if (pppppppcVar29 != (code *******)0xffffffff) {\n                    if (local_68 != '\0') {\n                      pppppppcVar34 = local_94;\n                      if (pppppppcVar29 != local_98) {\n                        pppppppcVar34 = *(code ********)(local_a8 + (int)pppppppcVar29 * 4);\n                      }\n                      *pppppppcVar33 = (code ******)pppppppcVar34;\n                      pppppppcVar29 = local_94;\n                      if (local_98 != (code *******)pppppppcVar33[1]) {\n                        pppppppcVar29 = *(code ********)(local_a8 + (int)pppppppcVar33[1] * 4);\n                      }\n                      pppppppcVar33[1] = (code ******)pppppppcVar29;\n                    }\n                    *pppppppcVar33 = (code ******)((int)local_dc + (int)*pppppppcVar33);\n                    pppppppcVar29 = (code *******)((int)local_dc + (int)pppppppcVar33[1]);\n                    pppppppcVar33[1] = (code ******)pppppppcVar29;\n                  }" (if "if") (parenthesized_expression "(pppppppcVar29 != (code *******)0xffffffff)" (( "(") (binary_expression "pppppppcVar29 != (code *******)0xffffffff" (identifier "pppppppcVar29") (!= "!=") (cast_expression "(code *******)0xffffffff" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0xffffffff"))) () ")")) (compound_statement "{\n                    if (local_68 != '\0') {\n                      pppppppcVar34 = local_94;\n                      if (pppppppcVar29 != local_98) {\n                        pppppppcVar34 = *(code ********)(local_a8 + (int)pppppppcVar29 * 4);\n                      }\n                      *pppppppcVar33 = (code ******)pppppppcVar34;\n                      pppppppcVar29 = local_94;\n                      if (local_98 != (code *******)pppppppcVar33[1]) {\n                        pppppppcVar29 = *(code ********)(local_a8 + (int)pppppppcVar33[1] * 4);\n                      }\n                      pppppppcVar33[1] = (code ******)pppppppcVar29;\n                    }\n                    *pppppppcVar33 = (code ******)((int)local_dc + (int)*pppppppcVar33);\n                    pppppppcVar29 = (code *******)((int)local_dc + (int)pppppppcVar33[1]);\n                    pppppppcVar33[1] = (code ******)pppppppcVar29;\n                  }" ({ "{") (if_statement "if (local_68 != '\0') {\n                      pppppppcVar34 = local_94;\n                      if (pppppppcVar29 != local_98) {\n                        pppppppcVar34 = *(code ********)(local_a8 + (int)pppppppcVar29 * 4);\n                      }\n                      *pppppppcVar33 = (code ******)pppppppcVar34;\n                      pppppppcVar29 = local_94;\n                      if (local_98 != (code *******)pppppppcVar33[1]) {\n                        pppppppcVar29 = *(code ********)(local_a8 + (int)pppppppcVar33[1] * 4);\n                      }\n                      pppppppcVar33[1] = (code ******)pppppppcVar29;\n                    }" (if "if") (parenthesized_expression "(local_68 != '\0')" (( "(") (binary_expression "local_68 != '\0'" (identifier "local_68") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n                      pppppppcVar34 = local_94;\n                      if (pppppppcVar29 != local_98) {\n                        pppppppcVar34 = *(code ********)(local_a8 + (int)pppppppcVar29 * 4);\n                      }\n                      *pppppppcVar33 = (code ******)pppppppcVar34;\n                      pppppppcVar29 = local_94;\n                      if (local_98 != (code *******)pppppppcVar33[1]) {\n                        pppppppcVar29 = *(code ********)(local_a8 + (int)pppppppcVar33[1] * 4);\n                      }\n                      pppppppcVar33[1] = (code ******)pppppppcVar29;\n                    }" ({ "{") (expression_statement "pppppppcVar34 = local_94;" (assignment_expression "pppppppcVar34 = local_94" (identifier "pppppppcVar34") (= "=") (identifier "local_94")) (; ";")) (if_statement "if (pppppppcVar29 != local_98) {\n                        pppppppcVar34 = *(code ********)(local_a8 + (int)pppppppcVar29 * 4);\n                      }" (if "if") (parenthesized_expression "(pppppppcVar29 != local_98)" (( "(") (binary_expression "pppppppcVar29 != local_98" (identifier "pppppppcVar29") (!= "!=") (identifier "local_98")) () ")")) (compound_statement "{\n                        pppppppcVar34 = *(code ********)(local_a8 + (int)pppppppcVar29 * 4);\n                      }" ({ "{") (expression_statement "pppppppcVar34 = *(code ********)(local_a8 + (int)pppppppcVar29 * 4);" (assignment_expression "pppppppcVar34 = *(code ********)(local_a8 + (int)pppppppcVar29 * 4)" (identifier "pppppppcVar34") (= "=") (pointer_expression "*(code ********)(local_a8 + (int)pppppppcVar29 * 4)" (* "*") (cast_expression "(code ********)(local_a8 + (int)pppppppcVar29 * 4)" (( "(") (type_descriptor "code ********" (type_identifier "code") (abstract_pointer_declarator "********" (* "*") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))))) () ")") (parenthesized_expression "(local_a8 + (int)pppppppcVar29 * 4)" (( "(") (binary_expression "local_a8 + (int)pppppppcVar29 * 4" (identifier "local_a8") (+ "+") (binary_expression "(int)pppppppcVar29 * 4" (cast_expression "(int)pppppppcVar29" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppcVar29")) (* "*") (number_literal "4"))) () ")"))))) (; ";")) (} "}"))) (expression_statement "*pppppppcVar33 = (code ******)pppppppcVar34;" (assignment_expression "*pppppppcVar33 = (code ******)pppppppcVar34" (pointer_expression "*pppppppcVar33" (* "*") (identifier "pppppppcVar33")) (= "=") (cast_expression "(code ******)pppppppcVar34" (( "(") (type_descriptor "code ******" (type_identifier "code") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (identifier "pppppppcVar34"))) (; ";")) (expression_statement "pppppppcVar29 = local_94;" (assignment_expression "pppppppcVar29 = local_94" (identifier "pppppppcVar29") (= "=") (identifier "local_94")) (; ";")) (if_statement "if (local_98 != (code *******)pppppppcVar33[1]) {\n                        pppppppcVar29 = *(code ********)(local_a8 + (int)pppppppcVar33[1] * 4);\n                      }" (if "if") (parenthesized_expression "(local_98 != (code *******)pppppppcVar33[1])" (( "(") (binary_expression "local_98 != (code *******)pppppppcVar33[1]" (identifier "local_98") (!= "!=") (cast_expression "(code *******)pppppppcVar33[1]" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (subscript_expression "pppppppcVar33[1]" (identifier "pppppppcVar33") ([ "[") (number_literal "1") (] "]")))) () ")")) (compound_statement "{\n                        pppppppcVar29 = *(code ********)(local_a8 + (int)pppppppcVar33[1] * 4);\n                      }" ({ "{") (expression_statement "pppppppcVar29 = *(code ********)(local_a8 + (int)pppppppcVar33[1] * 4);" (assignment_expression "pppppppcVar29 = *(code ********)(local_a8 + (int)pppppppcVar33[1] * 4)" (identifier "pppppppcVar29") (= "=") (pointer_expression "*(code ********)(local_a8 + (int)pppppppcVar33[1] * 4)" (* "*") (cast_expression "(code ********)(local_a8 + (int)pppppppcVar33[1] * 4)" (( "(") (type_descriptor "code ********" (type_identifier "code") (abstract_pointer_declarator "********" (* "*") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))))) () ")") (parenthesized_expression "(local_a8 + (int)pppppppcVar33[1] * 4)" (( "(") (binary_expression "local_a8 + (int)pppppppcVar33[1] * 4" (identifier "local_a8") (+ "+") (binary_expression "(int)pppppppcVar33[1] * 4" (cast_expression "(int)pppppppcVar33[1]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "pppppppcVar33[1]" (identifier "pppppppcVar33") ([ "[") (number_literal "1") (] "]"))) (* "*") (number_literal "4"))) () ")"))))) (; ";")) (} "}"))) (expression_statement "pppppppcVar33[1] = (code ******)pppppppcVar29;" (assignment_expression "pppppppcVar33[1] = (code ******)pppppppcVar29" (subscript_expression "pppppppcVar33[1]" (identifier "pppppppcVar33") ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(code ******)pppppppcVar29" (( "(") (type_descriptor "code ******" (type_identifier "code") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (identifier "pppppppcVar29"))) (; ";")) (} "}"))) (expression_statement "*pppppppcVar33 = (code ******)((int)local_dc + (int)*pppppppcVar33);" (assignment_expression "*pppppppcVar33 = (code ******)((int)local_dc + (int)*pppppppcVar33)" (pointer_expression "*pppppppcVar33" (* "*") (identifier "pppppppcVar33")) (= "=") (cast_expression "(code ******)((int)local_dc + (int)*pppppppcVar33)" (( "(") (type_descriptor "code ******" (type_identifier "code") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (parenthesized_expression "((int)local_dc + (int)*pppppppcVar33)" (( "(") (binary_expression "(int)local_dc + (int)*pppppppcVar33" (cast_expression "(int)local_dc" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_dc")) (+ "+") (cast_expression "(int)*pppppppcVar33" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*pppppppcVar33" (* "*") (identifier "pppppppcVar33")))) () ")")))) (; ";")) (expression_statement "pppppppcVar29 = (code *******)((int)local_dc + (int)pppppppcVar33[1]);" (assignment_expression "pppppppcVar29 = (code *******)((int)local_dc + (int)pppppppcVar33[1])" (identifier "pppppppcVar29") (= "=") (cast_expression "(code *******)((int)local_dc + (int)pppppppcVar33[1])" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "((int)local_dc + (int)pppppppcVar33[1])" (( "(") (binary_expression "(int)local_dc + (int)pppppppcVar33[1]" (cast_expression "(int)local_dc" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_dc")) (+ "+") (cast_expression "(int)pppppppcVar33[1]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "pppppppcVar33[1]" (identifier "pppppppcVar33") ([ "[") (number_literal "1") (] "]")))) () ")")))) (; ";")) (expression_statement "pppppppcVar33[1] = (code ******)pppppppcVar29;" (assignment_expression "pppppppcVar33[1] = (code ******)pppppppcVar29" (subscript_expression "pppppppcVar33[1]" (identifier "pppppppcVar33") ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(code ******)pppppppcVar29" (( "(") (type_descriptor "code ******" (type_identifier "code") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (identifier "pppppppcVar29"))) (; ";")) (} "}"))) (expression_statement "pppppppcVar33 = pppppppcVar33 + 2;" (assignment_expression "pppppppcVar33 = pppppppcVar33 + 2" (identifier "pppppppcVar33") (= "=") (binary_expression "pppppppcVar33 + 2" (identifier "pppppppcVar33") (+ "+") (number_literal "2"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pppppppcVar33 != param_8 + (int)pppppppcVar3 * 2)" (( "(") (binary_expression "pppppppcVar33 != param_8 + (int)pppppppcVar3 * 2" (identifier "pppppppcVar33") (!= "!=") (binary_expression "param_8 + (int)pppppppcVar3 * 2" (identifier "param_8") (+ "+") (binary_expression "(int)pppppppcVar3 * 2" (cast_expression "(int)pppppppcVar3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppcVar3")) (* "*") (number_literal "2")))) () ")")) (; ";")) (if_statement "if (0 < local_118) {\n                  pppppppcVar33 = param_8 + (int)pppppppcVar3 * 2;\n                  do {\n                    *pppppppcVar33 = (code ******)0xffffffff;\n                    pppppppcVar33[1] = (code ******)0xffffffff;\n                    pppppppcVar33 = pppppppcVar33 + 2;\n                  } while (pppppppcVar33 != param_8 + (int)param_7 * 2);\n                }" (if "if") (parenthesized_expression "(0 < local_118)" (( "(") (binary_expression "0 < local_118" (number_literal "0") (< "<") (identifier "local_118")) () ")")) (compound_statement "{\n                  pppppppcVar33 = param_8 + (int)pppppppcVar3 * 2;\n                  do {\n                    *pppppppcVar33 = (code ******)0xffffffff;\n                    pppppppcVar33[1] = (code ******)0xffffffff;\n                    pppppppcVar33 = pppppppcVar33 + 2;\n                  } while (pppppppcVar33 != param_8 + (int)param_7 * 2);\n                }" ({ "{") (expression_statement "pppppppcVar33 = param_8 + (int)pppppppcVar3 * 2;" (assignment_expression "pppppppcVar33 = param_8 + (int)pppppppcVar3 * 2" (identifier "pppppppcVar33") (= "=") (binary_expression "param_8 + (int)pppppppcVar3 * 2" (identifier "param_8") (+ "+") (binary_expression "(int)pppppppcVar3 * 2" (cast_expression "(int)pppppppcVar3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppcVar3")) (* "*") (number_literal "2")))) (; ";")) (do_statement "do {\n                    *pppppppcVar33 = (code ******)0xffffffff;\n                    pppppppcVar33[1] = (code ******)0xffffffff;\n                    pppppppcVar33 = pppppppcVar33 + 2;\n                  } while (pppppppcVar33 != param_8 + (int)param_7 * 2);" (do "do") (compound_statement "{\n                    *pppppppcVar33 = (code ******)0xffffffff;\n                    pppppppcVar33[1] = (code ******)0xffffffff;\n                    pppppppcVar33 = pppppppcVar33 + 2;\n                  }" ({ "{") (expression_statement "*pppppppcVar33 = (code ******)0xffffffff;" (assignment_expression "*pppppppcVar33 = (code ******)0xffffffff" (pointer_expression "*pppppppcVar33" (* "*") (identifier "pppppppcVar33")) (= "=") (cast_expression "(code ******)0xffffffff" (( "(") (type_descriptor "code ******" (type_identifier "code") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0xffffffff"))) (; ";")) (expression_statement "pppppppcVar33[1] = (code ******)0xffffffff;" (assignment_expression "pppppppcVar33[1] = (code ******)0xffffffff" (subscript_expression "pppppppcVar33[1]" (identifier "pppppppcVar33") ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(code ******)0xffffffff" (( "(") (type_descriptor "code ******" (type_identifier "code") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0xffffffff"))) (; ";")) (expression_statement "pppppppcVar33 = pppppppcVar33 + 2;" (assignment_expression "pppppppcVar33 = pppppppcVar33 + 2" (identifier "pppppppcVar33") (= "=") (binary_expression "pppppppcVar33 + 2" (identifier "pppppppcVar33") (+ "+") (number_literal "2"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pppppppcVar33 != param_8 + (int)param_7 * 2)" (( "(") (binary_expression "pppppppcVar33 != param_8 + (int)param_7 * 2" (identifier "pppppppcVar33") (!= "!=") (binary_expression "param_8 + (int)param_7 * 2" (identifier "param_8") (+ "+") (binary_expression "(int)param_7 * 2" (cast_expression "(int)param_7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_7")) (* "*") (number_literal "2")))) () ")")) (; ";")) (} "}"))) (expression_statement "pppppppcVar30 = local_dc;" (assignment_expression "pppppppcVar30 = local_dc" (identifier "pppppppcVar30") (= "=") (identifier "local_dc")) (; ";")) (expression_statement "pppppppcVar33 = param_8;" (assignment_expression "pppppppcVar33 = param_8" (identifier "pppppppcVar33") (= "=") (identifier "param_8")) (; ";")) (expression_statement "local_150 = pppppppcVar6;" (assignment_expression "local_150 = pppppppcVar6" (identifier "local_150") (= "=") (identifier "pppppppcVar6")) (; ";")) (if_statement "if (pppppppcVar38[0x21] != (code ******)0x0) {\n                  pppppppcVar30 = (code *******)((int)pppppppcVar3 + -1);\n                  pppppppcVar34 = (code *******)0x0;\n                  pppppppcVar3 = param_8;\n                  while( true ) {\n                    pppppppcVar29 = (code *******)((int)pppppppcVar34 * 4);\n                    if (pppppppcVar30 == pppppppcVar34) break;\n                    if (*(code ********)((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) !=\n                        pppppppcVar34) {\n                      pppppppcVar3[2] =\n                           param_8[(int)((int)*(code ********)\n                                               ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1)\n                                   * 2];\n                      pppppppcVar3[3] =\n                           param_8[((int)*(code ******)\n                                          ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1) * 2 +\n                                   1];\n                    }\n                    pppppppcVar34 = (code *******)((int)pppppppcVar34 + 1);\n                    pppppppcVar3 = pppppppcVar3 + 2;\n                  }\n                }" (if "if") (parenthesized_expression "(pppppppcVar38[0x21] != (code ******)0x0)" (( "(") (binary_expression "pppppppcVar38[0x21] != (code ******)0x0" (subscript_expression "pppppppcVar38[0x21]" (identifier "pppppppcVar38") ([ "[") (number_literal "0x21") (] "]")) (!= "!=") (cast_expression "(code ******)0x0" (( "(") (type_descriptor "code ******" (type_identifier "code") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                  pppppppcVar30 = (code *******)((int)pppppppcVar3 + -1);\n                  pppppppcVar34 = (code *******)0x0;\n                  pppppppcVar3 = param_8;\n                  while( true ) {\n                    pppppppcVar29 = (code *******)((int)pppppppcVar34 * 4);\n                    if (pppppppcVar30 == pppppppcVar34) break;\n                    if (*(code ********)((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) !=\n                        pppppppcVar34) {\n                      pppppppcVar3[2] =\n                           param_8[(int)((int)*(code ********)\n                                               ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1)\n                                   * 2];\n                      pppppppcVar3[3] =\n                           param_8[((int)*(code ******)\n                                          ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1) * 2 +\n                                   1];\n                    }\n                    pppppppcVar34 = (code *******)((int)pppppppcVar34 + 1);\n                    pppppppcVar3 = pppppppcVar3 + 2;\n                  }\n                }" ({ "{") (expression_statement "pppppppcVar30 = (code *******)((int)pppppppcVar3 + -1);" (assignment_expression "pppppppcVar30 = (code *******)((int)pppppppcVar3 + -1)" (identifier "pppppppcVar30") (= "=") (cast_expression "(code *******)((int)pppppppcVar3 + -1)" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "((int)pppppppcVar3 + -1)" (( "(") (binary_expression "(int)pppppppcVar3 + -1" (cast_expression "(int)pppppppcVar3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppcVar3")) (+ "+") (number_literal "-1")) () ")")))) (; ";")) (expression_statement "pppppppcVar34 = (code *******)0x0;" (assignment_expression "pppppppcVar34 = (code *******)0x0" (identifier "pppppppcVar34") (= "=") (cast_expression "(code *******)0x0" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "pppppppcVar3 = param_8;" (assignment_expression "pppppppcVar3 = param_8" (identifier "pppppppcVar3") (= "=") (identifier "param_8")) (; ";")) (while_statement "while( true ) {\n                    pppppppcVar29 = (code *******)((int)pppppppcVar34 * 4);\n                    if (pppppppcVar30 == pppppppcVar34) break;\n                    if (*(code ********)((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) !=\n                        pppppppcVar34) {\n                      pppppppcVar3[2] =\n                           param_8[(int)((int)*(code ********)\n                                               ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1)\n                                   * 2];\n                      pppppppcVar3[3] =\n                           param_8[((int)*(code ******)\n                                          ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1) * 2 +\n                                   1];\n                    }\n                    pppppppcVar34 = (code *******)((int)pppppppcVar34 + 1);\n                    pppppppcVar3 = pppppppcVar3 + 2;\n                  }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n                    pppppppcVar29 = (code *******)((int)pppppppcVar34 * 4);\n                    if (pppppppcVar30 == pppppppcVar34) break;\n                    if (*(code ********)((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) !=\n                        pppppppcVar34) {\n                      pppppppcVar3[2] =\n                           param_8[(int)((int)*(code ********)\n                                               ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1)\n                                   * 2];\n                      pppppppcVar3[3] =\n                           param_8[((int)*(code ******)\n                                          ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1) * 2 +\n                                   1];\n                    }\n                    pppppppcVar34 = (code *******)((int)pppppppcVar34 + 1);\n                    pppppppcVar3 = pppppppcVar3 + 2;\n                  }" ({ "{") (expression_statement "pppppppcVar29 = (code *******)((int)pppppppcVar34 * 4);" (assignment_expression "pppppppcVar29 = (code *******)((int)pppppppcVar34 * 4)" (identifier "pppppppcVar29") (= "=") (cast_expression "(code *******)((int)pppppppcVar34 * 4)" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "((int)pppppppcVar34 * 4)" (( "(") (binary_expression "(int)pppppppcVar34 * 4" (cast_expression "(int)pppppppcVar34" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppcVar34")) (* "*") (number_literal "4")) () ")")))) (; ";")) (if_statement "if (pppppppcVar30 == pppppppcVar34) break;" (if "if") (parenthesized_expression "(pppppppcVar30 == pppppppcVar34)" (( "(") (binary_expression "pppppppcVar30 == pppppppcVar34" (identifier "pppppppcVar30") (== "==") (identifier "pppppppcVar34")) () ")")) (break_statement "break;" (break "break") (; ";"))) (if_statement "if (*(code ********)((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) !=\n                        pppppppcVar34) {\n                      pppppppcVar3[2] =\n                           param_8[(int)((int)*(code ********)\n                                               ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1)\n                                   * 2];\n                      pppppppcVar3[3] =\n                           param_8[((int)*(code ******)\n                                          ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1) * 2 +\n                                   1];\n                    }" (if "if") (parenthesized_expression "(*(code ********)((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) !=\n                        pppppppcVar34)" (( "(") (binary_expression "*(code ********)((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) !=\n                        pppppppcVar34" (pointer_expression "*(code ********)((int)pppppppcVar29 + (int)pppppppcVar38[0x21])" (* "*") (cast_expression "(code ********)((int)pppppppcVar29 + (int)pppppppcVar38[0x21])" (( "(") (type_descriptor "code ********" (type_identifier "code") (abstract_pointer_declarator "********" (* "*") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))))) () ")") (parenthesized_expression "((int)pppppppcVar29 + (int)pppppppcVar38[0x21])" (( "(") (binary_expression "(int)pppppppcVar29 + (int)pppppppcVar38[0x21]" (cast_expression "(int)pppppppcVar29" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppcVar29")) (+ "+") (cast_expression "(int)pppppppcVar38[0x21]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "pppppppcVar38[0x21]" (identifier "pppppppcVar38") ([ "[") (number_literal "0x21") (] "]")))) () ")")))) (!= "!=") (identifier "pppppppcVar34")) () ")")) (compound_statement "{\n                      pppppppcVar3[2] =\n                           param_8[(int)((int)*(code ********)\n                                               ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1)\n                                   * 2];\n                      pppppppcVar3[3] =\n                           param_8[((int)*(code ******)\n                                          ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1) * 2 +\n                                   1];\n                    }" ({ "{") (expression_statement "pppppppcVar3[2] =\n                           param_8[(int)((int)*(code ********)\n                                               ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1)\n                                   * 2];" (assignment_expression "pppppppcVar3[2] =\n                           param_8[(int)((int)*(code ********)\n                                               ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1)\n                                   * 2]" (subscript_expression "pppppppcVar3[2]" (identifier "pppppppcVar3") ([ "[") (number_literal "2") (] "]")) (= "=") (subscript_expression "param_8[(int)((int)*(code ********)\n                                               ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1)\n                                   * 2]" (identifier "param_8") ([ "[") (binary_expression "(int)((int)*(code ********)\n                                               ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1)\n                                   * 2" (cast_expression "(int)((int)*(code ********)\n                                               ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((int)*(code ********)\n                                               ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1)" (( "(") (binary_expression "(int)*(code ********)\n                                               ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1" (cast_expression "(int)*(code ********)\n                                               ((int)pppppppcVar29 + (int)pppppppcVar38[0x21])" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*(code ********)\n                                               ((int)pppppppcVar29 + (int)pppppppcVar38[0x21])" (* "*") (cast_expression "(code ********)\n                                               ((int)pppppppcVar29 + (int)pppppppcVar38[0x21])" (( "(") (type_descriptor "code ********" (type_identifier "code") (abstract_pointer_declarator "********" (* "*") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))))) () ")") (parenthesized_expression "((int)pppppppcVar29 + (int)pppppppcVar38[0x21])" (( "(") (binary_expression "(int)pppppppcVar29 + (int)pppppppcVar38[0x21]" (cast_expression "(int)pppppppcVar29" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppcVar29")) (+ "+") (cast_expression "(int)pppppppcVar38[0x21]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "pppppppcVar38[0x21]" (identifier "pppppppcVar38") ([ "[") (number_literal "0x21") (] "]")))) () ")"))))) (+ "+") (number_literal "1")) () ")"))) (* "*") (number_literal "2")) (] "]"))) (; ";")) (expression_statement "pppppppcVar3[3] =\n                           param_8[((int)*(code ******)\n                                          ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1) * 2 +\n                                   1];" (assignment_expression "pppppppcVar3[3] =\n                           param_8[((int)*(code ******)\n                                          ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1) * 2 +\n                                   1]" (subscript_expression "pppppppcVar3[3]" (identifier "pppppppcVar3") ([ "[") (number_literal "3") (] "]")) (= "=") (subscript_expression "param_8[((int)*(code ******)\n                                          ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1) * 2 +\n                                   1]" (identifier "param_8") ([ "[") (binary_expression "((int)*(code ******)\n                                          ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1) * 2 +\n                                   1" (binary_expression "((int)*(code ******)\n                                          ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1) * 2" (parenthesized_expression "((int)*(code ******)\n                                          ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1)" (( "(") (binary_expression "(int)*(code ******)\n                                          ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1" (cast_expression "(int)*(code ******)\n                                          ((int)pppppppcVar29 + (int)pppppppcVar38[0x21])" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*(code ******)\n                                          ((int)pppppppcVar29 + (int)pppppppcVar38[0x21])" (* "*") (cast_expression "(code ******)\n                                          ((int)pppppppcVar29 + (int)pppppppcVar38[0x21])" (( "(") (type_descriptor "code ******" (type_identifier "code") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (parenthesized_expression "((int)pppppppcVar29 + (int)pppppppcVar38[0x21])" (( "(") (binary_expression "(int)pppppppcVar29 + (int)pppppppcVar38[0x21]" (cast_expression "(int)pppppppcVar29" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppcVar29")) (+ "+") (cast_expression "(int)pppppppcVar38[0x21]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "pppppppcVar38[0x21]" (identifier "pppppppcVar38") ([ "[") (number_literal "0x21") (] "]")))) () ")"))))) (+ "+") (number_literal "1")) () ")")) (* "*") (number_literal "2")) (+ "+") (number_literal "1")) (] "]"))) (; ";")) (} "}"))) (expression_statement "pppppppcVar34 = (code *******)((int)pppppppcVar34 + 1);" (assignment_expression "pppppppcVar34 = (code *******)((int)pppppppcVar34 + 1)" (identifier "pppppppcVar34") (= "=") (cast_expression "(code *******)((int)pppppppcVar34 + 1)" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "((int)pppppppcVar34 + 1)" (( "(") (binary_expression "(int)pppppppcVar34 + 1" (cast_expression "(int)pppppppcVar34" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppcVar34")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "pppppppcVar3 = pppppppcVar3 + 2;" (assignment_expression "pppppppcVar3 = pppppppcVar3 + 2" (identifier "pppppppcVar3") (= "=") (binary_expression "pppppppcVar3 + 2" (identifier "pppppppcVar3") (+ "+") (number_literal "2"))) (; ";")) (} "}"))) (} "}"))) (goto_statement "goto LAB_000557e4;" (goto "goto") (statement_identifier "LAB_000557e4") (; ";")) (} "}"))) (if_statement "if ((char)*(code *)(pppppppcVar38 + 0x16) < '\0') {\n                local_168 = (uint)(0 < (int)pppppppcVar38[0x13]);\n              }\n              else {\n                local_168 = 0;\n              }" (if "if") (parenthesized_expression "((char)*(code *)(pppppppcVar38 + 0x16) < '\0')" (( "(") (binary_expression "(char)*(code *)(pppppppcVar38 + 0x16) < '\0'" (cast_expression "(char)*(code *)(pppppppcVar38 + 0x16)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (pointer_expression "*(code *)(pppppppcVar38 + 0x16)" (* "*") (cast_expression "(code *)(pppppppcVar38 + 0x16)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pppppppcVar38 + 0x16)" (( "(") (binary_expression "pppppppcVar38 + 0x16" (identifier "pppppppcVar38") (+ "+") (number_literal "0x16")) () ")"))))) (< "<") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n                local_168 = (uint)(0 < (int)pppppppcVar38[0x13]);\n              }" ({ "{") (expression_statement "local_168 = (uint)(0 < (int)pppppppcVar38[0x13]);" (assignment_expression "local_168 = (uint)(0 < (int)pppppppcVar38[0x13])" (identifier "local_168") (= "=") (call_expression "(uint)(0 < (int)pppppppcVar38[0x13])" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(0 < (int)pppppppcVar38[0x13])" (( "(") (binary_expression "0 < (int)pppppppcVar38[0x13]" (number_literal "0") (< "<") (cast_expression "(int)pppppppcVar38[0x13]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "pppppppcVar38[0x13]" (identifier "pppppppcVar38") ([ "[") (number_literal "0x13") (] "]")))) () ")")))) (; ";")) (} "}")) (else_clause "else {\n                local_168 = 0;\n              }" (else "else") (compound_statement "{\n                local_168 = 0;\n              }" ({ "{") (expression_statement "local_168 = 0;" (assignment_expression "local_168 = 0" (identifier "local_168") (= "=") (number_literal "0")) (; ";")) (} "}")))) (expression_statement "pppppppcVar29 = &local_b4;" (assignment_expression "pppppppcVar29 = &local_b4" (identifier "pppppppcVar29") (= "=") (pointer_expression "&local_b4" (& "&") (identifier "local_b4"))) (; ";")) (expression_statement "pppppppcVar30 = pppppppcVar3;" (assignment_expression "pppppppcVar30 = pppppppcVar3" (identifier "pppppppcVar30") (= "=") (identifier "pppppppcVar3")) (; ";")) (expression_statement "pppppppcVar33 = param_8;" (assignment_expression "pppppppcVar33 = param_8" (identifier "pppppppcVar33") (= "=") (identifier "param_8")) (; ";")) (expression_statement "local_150 = (code *******)FUN_0004f4a0(param_1);" (assignment_expression "local_150 = (code *******)FUN_0004f4a0(param_1)" (identifier "local_150") (= "=") (cast_expression "(code *******)FUN_0004f4a0(param_1)" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (call_expression "FUN_0004f4a0(param_1)" (identifier "FUN_0004f4a0") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")"))))) (; ";")) (if_statement "if (local_150 == (code *******)0x0) goto LAB_000555ac;" (if "if") (parenthesized_expression "(local_150 == (code *******)0x0)" (( "(") (binary_expression "local_150 == (code *******)0x0" (identifier "local_150") (== "==") (cast_expression "(code *******)0x0" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_000555ac;" (goto "goto") (statement_identifier "LAB_000555ac") (; ";"))) (} "}")))))) (} "}")) (else_clause "else if (local_90 < 0x3fffffff) {\n            local_50 = (code *******)(*(code *)PTR_malloc_00079b54)((local_90 + 1) * 4);\n            if (local_50 != (code *******)0x0) goto LAB_00055a40;\n            local_150 = (code *******)0xc;\n            param_6 = pppppppcVar36;\n          }\n          else {\n            local_150 = (code *******)0xc;\n            param_6 = pppppppcVar36;\n          }" (else "else") (if_statement "if (local_90 < 0x3fffffff) {\n            local_50 = (code *******)(*(code *)PTR_malloc_00079b54)((local_90 + 1) * 4);\n            if (local_50 != (code *******)0x0) goto LAB_00055a40;\n            local_150 = (code *******)0xc;\n            param_6 = pppppppcVar36;\n          }\n          else {\n            local_150 = (code *******)0xc;\n            param_6 = pppppppcVar36;\n          }" (if "if") (parenthesized_expression "(local_90 < 0x3fffffff)" (( "(") (binary_expression "local_90 < 0x3fffffff" (identifier "local_90") (< "<") (number_literal "0x3fffffff")) () ")")) (compound_statement "{\n            local_50 = (code *******)(*(code *)PTR_malloc_00079b54)((local_90 + 1) * 4);\n            if (local_50 != (code *******)0x0) goto LAB_00055a40;\n            local_150 = (code *******)0xc;\n            param_6 = pppppppcVar36;\n          }" ({ "{") (expression_statement "local_50 = (code *******)(*(code *)PTR_malloc_00079b54)((local_90 + 1) * 4);" (assignment_expression "local_50 = (code *******)(*(code *)PTR_malloc_00079b54)((local_90 + 1) * 4)" (identifier "local_50") (= "=") (cast_expression "(code *******)(*(code *)PTR_malloc_00079b54)((local_90 + 1) * 4)" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (call_expression "(*(code *)PTR_malloc_00079b54)((local_90 + 1) * 4)" (parenthesized_expression "(*(code *)PTR_malloc_00079b54)" (( "(") (pointer_expression "*(code *)PTR_malloc_00079b54" (* "*") (cast_expression "(code *)PTR_malloc_00079b54" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_malloc_00079b54"))) () ")")) (argument_list "((local_90 + 1) * 4)" (( "(") (binary_expression "(local_90 + 1) * 4" (parenthesized_expression "(local_90 + 1)" (( "(") (binary_expression "local_90 + 1" (identifier "local_90") (+ "+") (number_literal "1")) () ")")) (* "*") (number_literal "4")) () ")"))))) (; ";")) (if_statement "if (local_50 != (code *******)0x0) goto LAB_00055a40;" (if "if") (parenthesized_expression "(local_50 != (code *******)0x0)" (( "(") (binary_expression "local_50 != (code *******)0x0" (identifier "local_50") (!= "!=") (cast_expression "(code *******)0x0" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00055a40;" (goto "goto") (statement_identifier "LAB_00055a40") (; ";"))) (expression_statement "local_150 = (code *******)0xc;" (assignment_expression "local_150 = (code *******)0xc" (identifier "local_150") (= "=") (cast_expression "(code *******)0xc" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0xc"))) (; ";")) (expression_statement "param_6 = pppppppcVar36;" (assignment_expression "param_6 = pppppppcVar36" (identifier "param_6") (= "=") (identifier "pppppppcVar36")) (; ";")) (} "}")) (else_clause "else {\n            local_150 = (code *******)0xc;\n            param_6 = pppppppcVar36;\n          }" (else "else") (compound_statement "{\n            local_150 = (code *******)0xc;\n            param_6 = pppppppcVar36;\n          }" ({ "{") (expression_statement "local_150 = (code *******)0xc;" (assignment_expression "local_150 = (code *******)0xc" (identifier "local_150") (= "=") (cast_expression "(code *******)0xc" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0xc"))) (; ";")) (expression_statement "param_6 = pppppppcVar36;" (assignment_expression "param_6 = pppppppcVar36" (identifier "param_6") (= "=") (identifier "pppppppcVar36")) (; ";")) (} "}")))))) (} "}")) (else_clause "else {\n          unaff_s5 = (code *******)((int)ppppppcVar35 * 8);\n          if (pppppppcVar36 < (code *******)0xccccccd) {\n            unaff_s4 = (code *******)(*(code *)PTR_malloc_00079b54)((int)ppppppcVar35 * 0x28);\n            local_40 = unaff_s4;\n            local_30 = (*(code *)PTR_malloc_00079b54)(unaff_s5);\n            if ((unaff_s4 != (code *******)0x0) && (local_30 != 0)) goto LAB_000559f0;\n          }\n          local_150 = (code *******)0xc;\n          param_6 = pppppppcVar36;\n        }" (else "else") (compound_statement "{\n          unaff_s5 = (code *******)((int)ppppppcVar35 * 8);\n          if (pppppppcVar36 < (code *******)0xccccccd) {\n            unaff_s4 = (code *******)(*(code *)PTR_malloc_00079b54)((int)ppppppcVar35 * 0x28);\n            local_40 = unaff_s4;\n            local_30 = (*(code *)PTR_malloc_00079b54)(unaff_s5);\n            if ((unaff_s4 != (code *******)0x0) && (local_30 != 0)) goto LAB_000559f0;\n          }\n          local_150 = (code *******)0xc;\n          param_6 = pppppppcVar36;\n        }" ({ "{") (expression_statement "unaff_s5 = (code *******)((int)ppppppcVar35 * 8);" (assignment_expression "unaff_s5 = (code *******)((int)ppppppcVar35 * 8)" (identifier "unaff_s5") (= "=") (cast_expression "(code *******)((int)ppppppcVar35 * 8)" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "((int)ppppppcVar35 * 8)" (( "(") (binary_expression "(int)ppppppcVar35 * 8" (cast_expression "(int)ppppppcVar35" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppppppcVar35")) (* "*") (number_literal "8")) () ")")))) (; ";")) (if_statement "if (pppppppcVar36 < (code *******)0xccccccd) {\n            unaff_s4 = (code *******)(*(code *)PTR_malloc_00079b54)((int)ppppppcVar35 * 0x28);\n            local_40 = unaff_s4;\n            local_30 = (*(code *)PTR_malloc_00079b54)(unaff_s5);\n            if ((unaff_s4 != (code *******)0x0) && (local_30 != 0)) goto LAB_000559f0;\n          }" (if "if") (parenthesized_expression "(pppppppcVar36 < (code *******)0xccccccd)" (( "(") (binary_expression "pppppppcVar36 < (code *******)0xccccccd" (identifier "pppppppcVar36") (< "<") (cast_expression "(code *******)0xccccccd" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0xccccccd"))) () ")")) (compound_statement "{\n            unaff_s4 = (code *******)(*(code *)PTR_malloc_00079b54)((int)ppppppcVar35 * 0x28);\n            local_40 = unaff_s4;\n            local_30 = (*(code *)PTR_malloc_00079b54)(unaff_s5);\n            if ((unaff_s4 != (code *******)0x0) && (local_30 != 0)) goto LAB_000559f0;\n          }" ({ "{") (expression_statement "unaff_s4 = (code *******)(*(code *)PTR_malloc_00079b54)((int)ppppppcVar35 * 0x28);" (assignment_expression "unaff_s4 = (code *******)(*(code *)PTR_malloc_00079b54)((int)ppppppcVar35 * 0x28)" (identifier "unaff_s4") (= "=") (cast_expression "(code *******)(*(code *)PTR_malloc_00079b54)((int)ppppppcVar35 * 0x28)" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (call_expression "(*(code *)PTR_malloc_00079b54)((int)ppppppcVar35 * 0x28)" (parenthesized_expression "(*(code *)PTR_malloc_00079b54)" (( "(") (pointer_expression "*(code *)PTR_malloc_00079b54" (* "*") (cast_expression "(code *)PTR_malloc_00079b54" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_malloc_00079b54"))) () ")")) (argument_list "((int)ppppppcVar35 * 0x28)" (( "(") (binary_expression "(int)ppppppcVar35 * 0x28" (cast_expression "(int)ppppppcVar35" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppppppcVar35")) (* "*") (number_literal "0x28")) () ")"))))) (; ";")) (expression_statement "local_40 = unaff_s4;" (assignment_expression "local_40 = unaff_s4" (identifier "local_40") (= "=") (identifier "unaff_s4")) (; ";")) (expression_statement "local_30 = (*(code *)PTR_malloc_00079b54)(unaff_s5);" (assignment_expression "local_30 = (*(code *)PTR_malloc_00079b54)(unaff_s5)" (identifier "local_30") (= "=") (call_expression "(*(code *)PTR_malloc_00079b54)(unaff_s5)" (parenthesized_expression "(*(code *)PTR_malloc_00079b54)" (( "(") (pointer_expression "*(code *)PTR_malloc_00079b54" (* "*") (cast_expression "(code *)PTR_malloc_00079b54" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_malloc_00079b54"))) () ")")) (argument_list "(unaff_s5)" (( "(") (identifier "unaff_s5") () ")")))) (; ";")) (if_statement "if ((unaff_s4 != (code *******)0x0) && (local_30 != 0)) goto LAB_000559f0;" (if "if") (parenthesized_expression "((unaff_s4 != (code *******)0x0) && (local_30 != 0))" (( "(") (binary_expression "(unaff_s4 != (code *******)0x0) && (local_30 != 0)" (parenthesized_expression "(unaff_s4 != (code *******)0x0)" (( "(") (binary_expression "unaff_s4 != (code *******)0x0" (identifier "unaff_s4") (!= "!=") (cast_expression "(code *******)0x0" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(local_30 != 0)" (( "(") (binary_expression "local_30 != 0" (identifier "local_30") (!= "!=") (number_literal "0")) () ")"))) () ")")) (goto_statement "goto LAB_000559f0;" (goto "goto") (statement_identifier "LAB_000559f0") (; ";"))) (} "}"))) (expression_statement "local_150 = (code *******)0xc;" (assignment_expression "local_150 = (code *******)0xc" (identifier "local_150") (= "=") (cast_expression "(code *******)0xc" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0xc"))) (; ";")) (expression_statement "param_6 = pppppppcVar36;" (assignment_expression "param_6 = pppppppcVar36" (identifier "param_6") (= "=") (identifier "pppppppcVar36")) (; ";")) (} "}")))) (labeled_statement "LAB_000557e4:\n        (*(code *)PTR_free_00079c24)(local_50);" (statement_identifier "LAB_000557e4") (: ":") (expression_statement "(*(code *)PTR_free_00079c24)(local_50);" (call_expression "(*(code *)PTR_free_00079c24)(local_50)" (parenthesized_expression "(*(code *)PTR_free_00079c24)" (( "(") (pointer_expression "*(code *)PTR_free_00079c24" (* "*") (cast_expression "(code *)PTR_free_00079c24" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_free_00079c24"))) () ")")) (argument_list "(local_50)" (( "(") (identifier "local_50") () ")"))) (; ";"))) (expression_statement "param_1 = pppppppcVar30;" (assignment_expression "param_1 = pppppppcVar30" (identifier "param_1") (= "=") (identifier "pppppppcVar30")) (; ";")) (if_statement "if (pppppppcVar38[0x13] != (code ******)0x0) {\n          FUN_0004b7e8(&local_b4);\n          (*(code *)PTR_free_00079c24)(local_30);\n          (*(code *)PTR_free_00079c24)(local_40);\n          param_1 = pppppppcVar30;\n        }" (if "if") (parenthesized_expression "(pppppppcVar38[0x13] != (code ******)0x0)" (( "(") (binary_expression "pppppppcVar38[0x13] != (code ******)0x0" (subscript_expression "pppppppcVar38[0x13]" (identifier "pppppppcVar38") ([ "[") (number_literal "0x13") (] "]")) (!= "!=") (cast_expression "(code ******)0x0" (( "(") (type_descriptor "code ******" (type_identifier "code") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          FUN_0004b7e8(&local_b4);\n          (*(code *)PTR_free_00079c24)(local_30);\n          (*(code *)PTR_free_00079c24)(local_40);\n          param_1 = pppppppcVar30;\n        }" ({ "{") (expression_statement "FUN_0004b7e8(&local_b4);" (call_expression "FUN_0004b7e8(&local_b4)" (identifier "FUN_0004b7e8") (argument_list "(&local_b4)" (( "(") (pointer_expression "&local_b4" (& "&") (identifier "local_b4")) () ")"))) (; ";")) (expression_statement "(*(code *)PTR_free_00079c24)(local_30);" (call_expression "(*(code *)PTR_free_00079c24)(local_30)" (parenthesized_expression "(*(code *)PTR_free_00079c24)" (( "(") (pointer_expression "*(code *)PTR_free_00079c24" (* "*") (cast_expression "(code *)PTR_free_00079c24" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_free_00079c24"))) () ")")) (argument_list "(local_30)" (( "(") (identifier "local_30") () ")"))) (; ";")) (expression_statement "(*(code *)PTR_free_00079c24)(local_40);" (call_expression "(*(code *)PTR_free_00079c24)(local_40)" (parenthesized_expression "(*(code *)PTR_free_00079c24)" (( "(") (pointer_expression "*(code *)PTR_free_00079c24" (* "*") (cast_expression "(code *)PTR_free_00079c24" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_free_00079c24"))) () ")")) (argument_list "(local_40)" (( "(") (identifier "local_40") () ")"))) (; ";")) (expression_statement "param_1 = pppppppcVar30;" (assignment_expression "param_1 = pppppppcVar30" (identifier "param_1") (= "=") (identifier "pppppppcVar30")) (; ";")) (} "}"))) (expression_statement "FUN_0004b2bc(&local_b4);" (call_expression "FUN_0004b2bc(&local_b4)" (identifier "FUN_0004b2bc") (argument_list "(&local_b4)" (( "(") (pointer_expression "&local_b4" (& "&") (identifier "local_b4")) () ")"))) (; ";")) (expression_statement "pppppppcStack_1a0 = param_4;" (assignment_expression "pppppppcStack_1a0 = param_4" (identifier "pppppppcStack_1a0") (= "=") (identifier "param_4")) (; ";")) (expression_statement "pppppppcStack_19c = pppppppcVar31;" (assignment_expression "pppppppcStack_19c = pppppppcVar31" (identifier "pppppppcStack_19c") (= "=") (identifier "pppppppcVar31")) (; ";")) (} "}")))) (} "}")))) (} "}")))))))))) (if_statement "if (local_2c == *(code ********)PTR___stack_chk_guard_00079c10) {\n    return local_150;\n  }" (if "if") (parenthesized_expression "(local_2c == *(code ********)PTR___stack_chk_guard_00079c10)" (( "(") (binary_expression "local_2c == *(code ********)PTR___stack_chk_guard_00079c10" (identifier "local_2c") (== "==") (pointer_expression "*(code ********)PTR___stack_chk_guard_00079c10" (* "*") (cast_expression "(code ********)PTR___stack_chk_guard_00079c10" (( "(") (type_descriptor "code ********" (type_identifier "code") (abstract_pointer_declarator "********" (* "*") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))))) () ")") (identifier "PTR___stack_chk_guard_00079c10")))) () ")")) (compound_statement "{\n    return local_150;\n  }" ({ "{") (return_statement "return local_150;" (return "return") (identifier "local_150") (; ";")) (} "}"))) (expression_statement "pcVar4 = FUN_00055e64;" (assignment_expression "pcVar4 = FUN_00055e64" (identifier "pcVar4") (= "=") (identifier "FUN_00055e64")) (; ";")) (expression_statement "pppppppcVar3 = local_2c;" (assignment_expression "pppppppcVar3 = local_2c" (identifier "pppppppcVar3") (= "=") (identifier "local_2c")) (; ";")) (expression_statement "puVar41 = PTR___stack_chk_fail_00079bd0;" (assignment_expression "puVar41 = PTR___stack_chk_fail_00079bd0" (identifier "puVar41") (= "=") (identifier "PTR___stack_chk_fail_00079bd0")) (; ";")) (expression_statement "(*(code *)PTR___stack_chk_fail_00079bd0)();" (call_expression "(*(code *)PTR___stack_chk_fail_00079bd0)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_00079bd0)" (( "(") (pointer_expression "*(code *)PTR___stack_chk_fail_00079bd0" (* "*") (cast_expression "(code *)PTR___stack_chk_fail_00079bd0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_fail_00079bd0"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iStack_1a4 = **(int **)(puVar41 + 0x23dac);" (assignment_expression "iStack_1a4 = **(int **)(puVar41 + 0x23dac)" (identifier "iStack_1a4") (= "=") (pointer_expression "**(int **)(puVar41 + 0x23dac)" (* "*") (pointer_expression "*(int **)(puVar41 + 0x23dac)" (* "*") (cast_expression "(int **)(puVar41 + 0x23dac)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar41 + 0x23dac)" (( "(") (binary_expression "puVar41 + 0x23dac" (identifier "puVar41") (+ "+") (number_literal "0x23dac")) () ")")))))) (; ";")) (expression_statement "pppppppcStack_20c = (code *******)0x0;" (assignment_expression "pppppppcStack_20c = (code *******)0x0" (identifier "pppppppcStack_20c") (= "=") (cast_expression "(code *******)0x0" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "pppppppcVar3[3] = (code ******)pppppppcVar33;" (assignment_expression "pppppppcVar3[3] = (code ******)pppppppcVar33" (subscript_expression "pppppppcVar3[3]" (identifier "pppppppcVar3") ([ "[") (number_literal "3") (] "]")) (= "=") (cast_expression "(code ******)pppppppcVar33" (( "(") (type_descriptor "code ******" (type_identifier "code") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (identifier "pppppppcVar33"))) (; ";")) (expression_statement "pppppppcVar3[2] = (code ******)0x0;" (assignment_expression "pppppppcVar3[2] = (code ******)0x0" (subscript_expression "pppppppcVar3[2]" (identifier "pppppppcVar3") ([ "[") (number_literal "2") (] "]")) (= "=") (cast_expression "(code ******)0x0" (( "(") (type_descriptor "code ******" (type_identifier "code") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "pppppppcVar3[6] = (code ******)0x0;" (assignment_expression "pppppppcVar3[6] = (code ******)0x0" (subscript_expression "pppppppcVar3[6]" (identifier "pppppppcVar3") ([ "[") (number_literal "6") (] "]")) (= "=") (cast_expression "(code ******)0x0" (( "(") (type_descriptor "code ******" (type_identifier "code") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "*(byte *)(pppppppcVar3 + 7) = (byte)*(code *)(pppppppcVar3 + 7) & 9;" (assignment_expression "*(byte *)(pppppppcVar3 + 7) = (byte)*(code *)(pppppppcVar3 + 7) & 9" (pointer_expression "*(byte *)(pppppppcVar3 + 7)" (* "*") (cast_expression "(byte *)(pppppppcVar3 + 7)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pppppppcVar3 + 7)" (( "(") (binary_expression "pppppppcVar3 + 7" (identifier "pppppppcVar3") (+ "+") (number_literal "7")) () ")")))) (= "=") (binary_expression "(byte)*(code *)(pppppppcVar3 + 7) & 9" (binary_expression "(byte)*(code *)(pppppppcVar3 + 7)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (* "*") (cast_expression "(code *)(pppppppcVar3 + 7)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pppppppcVar3 + 7)" (( "(") (binary_expression "pppppppcVar3 + 7" (identifier "pppppppcVar3") (+ "+") (number_literal "7")) () ")")))) (& "&") (number_literal "9"))) (; ";")) (expression_statement "pppppppcVar34 = (code *******)*pppppppcVar3;" (assignment_expression "pppppppcVar34 = (code *******)*pppppppcVar3" (identifier "pppppppcVar34") (= "=") (cast_expression "(code *******)*pppppppcVar3" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (pointer_expression "*pppppppcVar3" (* "*") (identifier "pppppppcVar3")))) (; ";")) (expression_statement "pppppppcStack_198 = param_5;" (assignment_expression "pppppppcStack_198 = param_5" (identifier "pppppppcStack_198") (= "=") (identifier "param_5")) (; ";")) (expression_statement "pppppppcStack_194 = param_6;" (assignment_expression "pppppppcStack_194 = param_6" (identifier "pppppppcStack_194") (= "=") (identifier "param_6")) (; ";")) (expression_statement "pppppppcStack_190 = unaff_s4;" (assignment_expression "pppppppcStack_190 = unaff_s4" (identifier "pppppppcStack_190") (= "=") (identifier "unaff_s4")) (; ";")) (expression_statement "pppppppcStack_18c = unaff_s5;" (assignment_expression "pppppppcStack_18c = unaff_s5" (identifier "pppppppcStack_18c") (= "=") (identifier "unaff_s5")) (; ";")) (expression_statement "pppppppcStack_188 = pppppppcVar38;" (assignment_expression "pppppppcStack_188 = pppppppcVar38" (identifier "pppppppcStack_188") (= "=") (identifier "pppppppcVar38")) (; ";")) (expression_statement "pppppppcStack_184 = unaff_s7;" (assignment_expression "pppppppcStack_184 = unaff_s7" (identifier "pppppppcStack_184") (= "=") (identifier "unaff_s7")) (; ";")) (expression_statement "pppppppcStack_180 = unaff_s8;" (assignment_expression "pppppppcStack_180 = unaff_s8" (identifier "pppppppcStack_180") (= "=") (identifier "unaff_s8")) (; ";")) (expression_statement "pcStack_17c = pcVar4;" (assignment_expression "pcStack_17c = pcVar4" (identifier "pcStack_17c") (= "=") (identifier "pcVar4")) (; ";")) (if_statement "if (pppppppcVar3[1] < (code ******)0xa0) {\n    pppppppcVar38 = (code *******)0xa0;\n    pppppppcVar31 = param_1;\n    pppppppcVar34 = (code *******)(**(code **)(puVar41 + 0x23cf8))(pppppppcVar34,0xa0);\n    if (pppppppcVar34 == (code *******)0x0) {\n      pppppppcVar29 = (code *******)0xc;\n      goto LAB_00056cfc;\n    }\n    pppppppcVar3[1] = (code ******)0xa0;\n    *pppppppcVar3 = (code ******)pppppppcVar34;\n  }" (if "if") (parenthesized_expression "(pppppppcVar3[1] < (code ******)0xa0)" (( "(") (binary_expression "pppppppcVar3[1] < (code ******)0xa0" (subscript_expression "pppppppcVar3[1]" (identifier "pppppppcVar3") ([ "[") (number_literal "1") (] "]")) (< "<") (cast_expression "(code ******)0xa0" (( "(") (type_descriptor "code ******" (type_identifier "code") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0xa0"))) () ")")) (compound_statement "{\n    pppppppcVar38 = (code *******)0xa0;\n    pppppppcVar31 = param_1;\n    pppppppcVar34 = (code *******)(**(code **)(puVar41 + 0x23cf8))(pppppppcVar34,0xa0);\n    if (pppppppcVar34 == (code *******)0x0) {\n      pppppppcVar29 = (code *******)0xc;\n      goto LAB_00056cfc;\n    }\n    pppppppcVar3[1] = (code ******)0xa0;\n    *pppppppcVar3 = (code ******)pppppppcVar34;\n  }" ({ "{") (expression_statement "pppppppcVar38 = (code *******)0xa0;" (assignment_expression "pppppppcVar38 = (code *******)0xa0" (identifier "pppppppcVar38") (= "=") (cast_expression "(code *******)0xa0" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0xa0"))) (; ";")) (expression_statement "pppppppcVar31 = param_1;" (assignment_expression "pppppppcVar31 = param_1" (identifier "pppppppcVar31") (= "=") (identifier "param_1")) (; ";")) (expression_statement "pppppppcVar34 = (code *******)(**(code **)(puVar41 + 0x23cf8))(pppppppcVar34,0xa0);" (assignment_expression "pppppppcVar34 = (code *******)(**(code **)(puVar41 + 0x23cf8))(pppppppcVar34,0xa0)" (identifier "pppppppcVar34") (= "=") (cast_expression "(code *******)(**(code **)(puVar41 + 0x23cf8))(pppppppcVar34,0xa0)" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (call_expression "(**(code **)(puVar41 + 0x23cf8))(pppppppcVar34,0xa0)" (parenthesized_expression "(**(code **)(puVar41 + 0x23cf8))" (( "(") (pointer_expression "**(code **)(puVar41 + 0x23cf8)" (* "*") (pointer_expression "*(code **)(puVar41 + 0x23cf8)" (* "*") (cast_expression "(code **)(puVar41 + 0x23cf8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar41 + 0x23cf8)" (( "(") (binary_expression "puVar41 + 0x23cf8" (identifier "puVar41") (+ "+") (number_literal "0x23cf8")) () ")"))))) () ")")) (argument_list "(pppppppcVar34,0xa0)" (( "(") (identifier "pppppppcVar34") (, ",") (number_literal "0xa0") () ")"))))) (; ";")) (if_statement "if (pppppppcVar34 == (code *******)0x0) {\n      pppppppcVar29 = (code *******)0xc;\n      goto LAB_00056cfc;\n    }" (if "if") (parenthesized_expression "(pppppppcVar34 == (code *******)0x0)" (( "(") (binary_expression "pppppppcVar34 == (code *******)0x0" (identifier "pppppppcVar34") (== "==") (cast_expression "(code *******)0x0" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      pppppppcVar29 = (code *******)0xc;\n      goto LAB_00056cfc;\n    }" ({ "{") (expression_statement "pppppppcVar29 = (code *******)0xc;" (assignment_expression "pppppppcVar29 = (code *******)0xc" (identifier "pppppppcVar29") (= "=") (cast_expression "(code *******)0xc" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0xc"))) (; ";")) (goto_statement "goto LAB_00056cfc;" (goto "goto") (statement_identifier "LAB_00056cfc") (; ";")) (} "}"))) (expression_statement "pppppppcVar3[1] = (code ******)0xa0;" (assignment_expression "pppppppcVar3[1] = (code ******)0xa0" (subscript_expression "pppppppcVar3[1]" (identifier "pppppppcVar3") ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(code ******)0xa0" (( "(") (type_descriptor "code ******" (type_identifier "code") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0xa0"))) (; ";")) (expression_statement "*pppppppcVar3 = (code ******)pppppppcVar34;" (assignment_expression "*pppppppcVar3 = (code ******)pppppppcVar34" (pointer_expression "*pppppppcVar3" (* "*") (identifier "pppppppcVar3")) (= "=") (cast_expression "(code ******)pppppppcVar34" (( "(") (type_descriptor "code ******" (type_identifier "code") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (identifier "pppppppcVar34"))) (; ";")) (} "}"))) (expression_statement "pppppppcVar3[2] = (code ******)0xa0;" (assignment_expression "pppppppcVar3[2] = (code ******)0xa0" (subscript_expression "pppppppcVar3[2]" (identifier "pppppppcVar3") ([ "[") (number_literal "2") (] "]")) (= "=") (cast_expression "(code ******)0xa0" (( "(") (type_descriptor "code ******" (type_identifier "code") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0xa0"))) (; ";")) (expression_statement "pppppppcVar31 = (code *******)0xa0;" (assignment_expression "pppppppcVar31 = (code *******)0xa0" (identifier "pppppppcVar31") (= "=") (cast_expression "(code *******)0xa0" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0xa0"))) (; ";")) (expression_statement "pppppppcVar38 = (code *******)0x0;" (assignment_expression "pppppppcVar38 = (code *******)0x0" (identifier "pppppppcVar38") (= "=") (cast_expression "(code *******)0x0" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "(**(code **)(puVar41 + 0x23c9c))(pppppppcVar34,0);" (call_expression "(**(code **)(puVar41 + 0x23c9c))(pppppppcVar34,0)" (parenthesized_expression "(**(code **)(puVar41 + 0x23c9c))" (( "(") (pointer_expression "**(code **)(puVar41 + 0x23c9c)" (* "*") (pointer_expression "*(code **)(puVar41 + 0x23c9c)" (* "*") (cast_expression "(code **)(puVar41 + 0x23c9c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar41 + 0x23c9c)" (( "(") (binary_expression "puVar41 + 0x23c9c" (identifier "puVar41") (+ "+") (number_literal "0x23c9c")) () ")"))))) () ")")) (argument_list "(pppppppcVar34,0)" (( "(") (identifier "pppppppcVar34") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "pppppppcVar34[0x10] = (code ******)0x1f;" (assignment_expression "pppppppcVar34[0x10] = (code ******)0x1f" (subscript_expression "pppppppcVar34[0x10]" (identifier "pppppppcVar34") ([ "[") (number_literal "0x10") (] "]")) (= "=") (cast_expression "(code ******)0x1f" (( "(") (type_descriptor "code ******" (type_identifier "code") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x1f"))) (; ";")) (if_statement "if (param_1 < (code *******)0xaaaaaaa) {\n    pppppppcVar34[1] = (code ******)((int)param_1 + 1);\n    ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23cf0))(((int)param_1 + 1) * 8);\n    *pppppppcVar34 = ppppppcVar32;\n    if (param_1 == (code *******)0x0) {\n      pppppppcVar30 = (code *******)0x1;\n    }\n    else {\n      pppppppcVar30 = (code *******)0x1;\n      do {\n        pppppppcVar30 = (code *******)((int)pppppppcVar30 << 1);\n      } while (pppppppcVar30 <= param_1);\n    }\n    pppppppcVar38 = pppppppcVar30;\n    ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23b8c))(0xc,pppppppcVar30);\n    pppppppcVar34[8] = ppppppcVar32;\n    pppppppcVar34[0x11] = (code ******)((int)pppppppcVar30 + -1);\n    ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23d2c))();\n    pppppppcVar34[0x17] = ppppppcVar32;\n    pbVar17 = (byte *)(**(code **)(puVar41 + 0x23c2c))(0xe);\n    if ((((*pbVar17 & 0xdf) == 0x55) && ((pbVar17[1] & 0xdf) == 0x54)) &&\n       (pppppppcVar38 = (code *******)0x4, (pbVar17[2] & 0xdf) == 0x46)) {\n      iVar18 = 3;\n      if (pbVar17[3] == 0x2d) {\n        iVar18 = 4;\n      }\n      pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23754) + 0x71b4);\n      iVar18 = (**(code **)(puVar41 + 0x23dfc))(pbVar17 + iVar18,pppppppcVar38);\n      if (iVar18 == 0) {\n        *(byte *)(pppppppcVar34 + 0x16) = (byte)*(code *)(pppppppcVar34 + 0x16) & 0xdf | 0x20;\n      }\n    }\n    *(byte *)(pppppppcVar34 + 0x16) = (byte)*(code *)(pppppppcVar34 + 0x16) & 0xef;\n    if (1 < (int)pppppppcVar34[0x17]) {\n      if (((uint)pppppppcVar34[0x16] & 0x20000000) == 0) {\n        pppppppcVar38 = (code *******)0x1;\n        ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23b8c))(0x20,1);\n        pppppppcVar34[0xf] = ppppppcVar32;\n        if (ppppppcVar32 == (code ******)0x0) goto LAB_00056e5c;\n        iVar18 = 0;\n        do {\n          uVar16 = iVar18 << 3;\n          uVar7 = 0;\n          do {\n            uVar19 = (**(code **)(puVar41 + 0x23c88))(uVar16);\n            if (uVar19 != 0xffffffff) {\n              pppppppcVar38 = *(code ********)((int)pppppppcVar34[0xf] + iVar18);\n              *(uint *)((int)pppppppcVar34[0xf] + iVar18) =\n                   (uint)pppppppcVar38 | 1 << (uVar7 & 0x1f);\n            }\n            if (((uVar16 & 0xffffff80) == 0) && (uVar19 != uVar16)) {\n              *(byte *)(pppppppcVar34 + 0x16) = (byte)*(code *)(pppppppcVar34 + 0x16) & 0xef | 0x10;\n            }\n            uVar7 = uVar7 + 1;\n            uVar16 = uVar16 + 1;\n          } while (uVar7 != 0x20);\n          iVar18 = iVar18 + 4;\n        } while (iVar18 != 0x20);\n      }\n      else {\n        pppppppcVar34[0xf] = (code ******)(*(int *)(puVar41 + 0x23754) + 0x6ee4);\n      }\n    }\n    if ((*pppppppcVar34 == (code ******)0x0) || (pppppppcVar34[8] == (code ******)0x0))\n    goto LAB_00056e5c;\n    pppppppcStack_20c = (code *******)0x0;\n    if (*(int *)(puVar41 + 0x23c78) == 0) {\nLAB_00056054:\n      ppppppcVar32 = pppppppcVar3[5];\n      uVar16 = (uint)pppppppcVar33 & 0x400000;\n      bVar1 = uVar16 != 0;\n      pppppppcVar31 = (code *******)0x4c;\n      pppppppcVar38 = (code *******)0x0;\n      (**(code **)(puVar41 + 0x23c9c))(apppppppcStack_1f4,0);\n      cStack_1ad = ppppppcVar32 != (code ******)0x0 || bVar1;\n      ppppppcStack_1a8 = pppppppcVar34[0x17];\n      bStack_1af = (byte)((uint)((int)pppppppcVar34[0x16] << 2) >> 0x1f);\n      bStack_1ae = (byte)((uint)((int)pppppppcVar34[0x16] << 3) >> 0x1f);\n      pppppppcStack_1f8 = pppppppcVar29;\n      pppppppcStack_1cc = param_1;\n      pppppppcStack_1c8 = param_1;\n      pppppppcStack_1c4 = param_1;\n      pppppppcStack_1c0 = param_1;\n      ppppppcStack_1b8 = ppppppcVar32;\n      uStack_1b0 = bVar1;\n      if (0 < (int)param_1) {\n        pppppppcVar38 = (code *******)((int)param_1 + 1);\n        pppppppcVar30 = (code *******)FUN_00046d2c(&pppppppcStack_1f8,pppppppcVar38);\n        if (pppppppcVar30 == (code *******)0x0) goto LAB_000560cc;\n        goto LAB_00056168;\n      }\nLAB_000560cc:\n      if (cStack_1ad != '\0') {\n        pppppppcVar29 = apppppppcStack_1f4[0];\n      }\n      apppppppcStack_1f4[0] = pppppppcVar29;\n      if (uVar16 == 0) {\n        if ((int)pppppppcVar34[0x17] < 2) {\n          if (ppppppcVar32 != (code ******)0x0) {\n            FUN_00045dc8();\n          }\n        }\n        else {\n          FUN_00047cb0(&pppppppcStack_1f8);\n        }\n      }\n      else {\n        if (1 < (int)pppppppcVar34[0x17]) {\n          iVar18 = *(int *)(puVar41 + 0x23abc);\n          do {\n            pppppppcVar30 = (code *******)FUN_00048714(&pppppppcStack_1f8);\n            if (pppppppcVar30 != (code *******)0x0) break;\n            if (((int)param_1 <= iStack_1d8) ||\n               (pppppppcVar38 = (code *******)(iStack_1d4 << 1),\n               (int)pppppppcVar34[0x17] + iStack_1dc < iStack_1d4)) goto LAB_000563d0;\n            pppppppcVar30 =\n                 (code *******)(*(code *)(iVar18 + 0x6d2c))(&pppppppcStack_1f8,pppppppcVar38);\n          } while (pppppppcVar30 == (code *******)0x0);\n          goto LAB_00056168;\n        }\n        FUN_00047be4(&pppppppcStack_1f8);\n      }\nLAB_000563d0:\n      pppppppcStack_20c = (code *******)0x0;\n      pppppppcVar3[6] = (code ******)0x0;\n      ppppppcVar32 = *pppppppcVar3;\n      ppppppcVar32[0x20] = (code *****)pppppppcVar33;\n      FUN_00049e40(&ppppppcStack_204,&pppppppcStack_1f8,(uint)pppppppcVar33 | 0x800000);\n      pppppppcVar38 = pppppppcVar3;\n      pppppppcVar29 =\n           (code *******)\n           FUN_00051868(&pppppppcStack_1f8,pppppppcVar3,&ppppppcStack_204,pppppppcVar33,0,\n                        &pppppppcStack_20c);\n      if (pppppppcStack_20c == (code *******)0x0) {\n        pppppppcVar31 = (code *******)0x0;\n        pppppppcVar38 = (code *******)0x0;\n        pppppppcVar33 = (code *******)FUN_000470f0(ppppppcVar32,0,0,2);\n        pppppppcVar30 = pppppppcVar33;\n        if (pppppppcVar29 != (code *******)0x0) {\nLAB_000564b0:\n          pppppppcVar31 = pppppppcVar33;\n          pppppppcVar30 = (code *******)FUN_000470f0(ppppppcVar32,pppppppcVar29,pppppppcVar33,0x10);\n          pppppppcVar38 = pppppppcVar29;\n        }\n        if ((pppppppcVar33 == (code *******)0x0) ||\n           (pcVar4 = *(code **)(puVar41 + 0x23cf0), pppppppcVar30 == (code *******)0x0)) {\n          pppppppcStack_20c = (code *******)0xc;\n          goto LAB_000566f4;\n        }\n        pppppppcVar34[0xd] = (code ******)pppppppcVar30;\n        pppppppcVar29 = (code *******)*pppppppcVar3;\n        ppppppcVar39 = pppppppcVar29[1];\n        iVar18 = (int)ppppppcVar39 << 2;\n        ppppppcVar32 = (code ******)(*pcVar4)(iVar18);\n        pppppppcVar29[3] = ppppppcVar32;\n        ppppppcVar35 = (code ******)(**(code **)(puVar41 + 0x23cf0))(iVar18);\n        pppppppcVar29[4] = ppppppcVar35;\n        iVar18 = (int)ppppppcVar39 * 0xc;\n        ppppppcVar39 = (code ******)(**(code **)(puVar41 + 0x23cf0))(iVar18);\n        pppppppcVar29[5] = ppppppcVar39;\n        ppppppcVar20 = (code ******)(**(code **)(puVar41 + 0x23cf0))(iVar18);\n        pppppppcVar29[6] = ppppppcVar20;\n        if (ppppppcVar32 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else if (ppppppcVar35 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else if (ppppppcVar39 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else if (ppppppcVar20 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else {\n          ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23cf0))((int)pppppppcVar3[6] << 2);\n          pppppppcVar29[0x21] = ppppppcVar32;\n          if (ppppppcVar32 != (code ******)0x0) {\n            ppppppcVar32 = (code ******)0x0;\n            if (pppppppcVar3[6] != (code ******)0x0) {\n              do {\n                pppppppcVar29[0x21][(int)ppppppcVar32] = (code *****)ppppppcVar32;\n                ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n              } while (ppppppcVar32 < pppppppcVar3[6]);\n            }\n            FUN_00046050(pppppppcVar29[0xd],*(int *)(puVar41 + 0x23abc) + 0x60e8,pppppppcVar29);\n            ppppppcVar32 = pppppppcVar3[6];\n            if (ppppppcVar32 == (code ******)0x0) {\nLAB_00056704:\n              (**(code **)(puVar41 + 0x23dc0))(pppppppcVar29[0x21]);\n              pppppppcVar29[0x21] = (code ******)0x0;\n            }\n            else {\n              ppppppcVar35 = pppppppcVar29[0x21];\n              if (*ppppppcVar35 == (code *****)0x0) {\n                ppppppcVar39 = (code ******)0x0;\n                do {\n                  ppppppcVar35 = ppppppcVar35 + 1;\n                  ppppppcVar39 = (code ******)((int)ppppppcVar39 + 1);\n                  if (ppppppcVar32 == ppppppcVar39) {\n                    if (ppppppcVar32 == ppppppcVar39) goto LAB_00056704;\n                    break;\n                  }\n                } while ((code ******)*ppppppcVar35 == ppppppcVar39);\n              }\n            }\n          }\n          pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23abc) + 0x73a4);\n          pppppppcVar30 = (code *******)FUN_00045fb4(pppppppcVar29[0xd],pppppppcVar38,pppppppcVar3);\n          pppppppcVar31 = pppppppcVar29;\n          if (pppppppcVar30 == (code *******)0x0) {\n            pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23b40) + -0x5be4);\n            pppppppcVar30 = (code *******)FUN_00045fb4(pppppppcVar29[0xd],pppppppcVar38);\n            if (pppppppcVar30 == (code *******)0x0) {\n              FUN_00046050(pppppppcVar29[0xd],*(int *)(puVar41 + 0x23abc) + 0x61b4);\n              pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23b40) + -0x4614);\n              pppppppcVar30 = (code *******)FUN_00046050(pppppppcVar29[0xd],pppppppcVar38);\n              if (pppppppcVar30 == (code *******)0x0) {\n                uVar7 = 0;\n                iVar18 = *(int *)(puVar41 + 0x23b40);\n                pppppppcVar33 = (code *******)0x0;\nLAB_00056744:\n                if ((code *******)pppppppcVar29[2] != pppppppcVar33) {\nLAB_00056750:\n                  if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                    pppppppcVar38 = pppppppcVar29;\n                    pppppppcVar31 = pppppppcVar33;\n                    pppppppcVar30 =\n                         (code *******)\n                         (*(code *)(iVar18 + -0x561c))\n                                   (&ppppppcStack_204,pppppppcVar29,pppppppcVar33,1);\n                    if (pppppppcVar30 != (code *******)0x0) goto LAB_00056168;\n                    if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                      (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                      uVar7 = 1;\n                    }\n                  }\n                  pppppppcVar33 = (code *******)((int)pppppppcVar33 + 1);\n                  goto LAB_00056744;\n                }\n                if (uVar7 != 0) {\n                  uVar7 = 0;\n                  pppppppcVar33 = (code *******)0x0;\n                  goto LAB_00056750;\n                }\n                if (((((uint)pppppppcVar3[7] & 0x8000000) == 0) &&\n                    (pppppppcVar3[6] != (code ******)0x0)) &&\n                   ((char)*(code *)(pppppppcVar29 + 0x16) < '\0')) {\n                  ppppppcVar32 = pppppppcVar29[2];\n                }\n                else {\n                  if (pppppppcVar29[0x13] == (code ******)0x0) goto LAB_000568f0;\n                  ppppppcVar32 = pppppppcVar29[2];\n                }\n                ppppppcVar35 = (code ******)\n                               (**(code **)(puVar41 + 0x23cf0))((int)ppppppcVar32 * 0xc);\n                pppppppcVar29[7] = ppppppcVar35;\n                if (ppppppcVar35 == (code ******)0x0) {\n                  pppppppcVar30 = (code *******)0xc;\n                  goto LAB_00056168;\n                }\n                if (ppppppcVar32 != (code ******)0x0) {\n                  iVar18 = 0;\n                  ppppppcVar32 = (code ******)0x0;\n                  do {\n                    puVar21 = (undefined1 *)((int)pppppppcVar29[7] + iVar18);\n                    *puVar21 = 0;\n                    puVar21[1] = 0;\n                    puVar21[2] = 0;\n                    puVar21[3] = 0;\n                    puVar21[4] = 0;\n                    puVar21[5] = 0;\n                    puVar21[6] = 0;\n                    puVar21[7] = 0;\n                    puVar21[8] = 0;\n                    puVar21[9] = 0;\n                    puVar21[10] = 0;\n                    puVar21[0xb] = 0;\n                    ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                    iVar18 = iVar18 + 0xc;\n                  } while (ppppppcVar32 < pppppppcVar29[2]);\n                  iVar18 = *(int *)(puVar41 + 0x23abc);\n                  if (pppppppcVar29[2] != (code ******)0x0) {\n                    iVar43 = 0;\n                    pppppppcStack_218 = (code *******)0x0;\n                    do {\n                      piVar5 = *(int **)((int)pppppppcVar29[6] + iVar43 + 8);\n                      if (0 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4)) {\n                        iVar37 = 0;\n                        do {\n                          pppppppcVar38 = pppppppcStack_218;\n                          iVar22 = (*(code *)(iVar18 + 0x6e30))\n                                             (pppppppcVar29[7] + *piVar5 * 3,pppppppcStack_218);\n                          pppppppcVar30 = (code *******)0xc;\n                          if (iVar22 == 0) goto LAB_00056168;\n                          iVar37 = iVar37 + 1;\n                          piVar5 = piVar5 + 1;\n                        } while (iVar37 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4));\n                      }\n                      pppppppcStack_218 = (code *******)((int)pppppppcStack_218 + 1);\n                      iVar43 = iVar43 + 0xc;\n                    } while (pppppppcStack_218 < pppppppcVar29[2]);\n                  }\n                }\nLAB_000568f0:\n                pppppppcStack_20c = (code *******)0x0;\n                if (((((uint)pppppppcVar34[0x16] & 0x20000000) != 0) && (uVar16 == 0)) &&\n                   (pppppppcVar3[5] == (code ******)0x0)) {\n                  if (pppppppcVar34[2] != (code ******)0x0) {\n                    pppppppcVar31 = (code *******)(*(int *)(puVar41 + 0x23754) + 0x6e4c);\n                    if (*(byte *)(*pppppppcVar34 + 1) < 0xd) {\n                    \n                    \n                      pppppppcVar29 =\n                           (code *******)\n                           (*(code *)(puVar41 +\n                                     (int)(pppppppcVar31[*(byte *)(*pppppppcVar34 + 1)] + 0xadc7)))\n                                     ();\n                      return pppppppcVar29;\n                    }\n                    (**(code **)(puVar41 + 0x23bc4))(0);\n                    if (uVar7 != 0) {\n                      pppppppcVar31 = (code *******)&DAT_00000007;\n                      ppppppcVar32 = (code ******)0x0;\n                      do {\n                        ppppppcVar35 = *pppppppcVar34 + (int)ppppppcVar32 * 2;\n                        if (*(char *)(ppppppcVar35 + 1) == '\x01') {\n                          if (*(char *)ppppppcVar35 < '\0') {\n                            ppppppcVar35[1] = (code *****)((uint)ppppppcVar35[1] & 0xfffffbff);\n                          }\n                        }\n                        else if (*(char *)(ppppppcVar35 + 1) == '\x05') {\n                          *(char *)(ppppppcVar35 + 1) = '\a';\n                        }\n                        ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                      } while (ppppppcVar32 < pppppppcVar34[2]);\n                    }\n                  }\n                  pppppppcVar34[0x17] = (code ******)0x1;\n                  if (0 < (int)pppppppcVar34[0x13]) {\n                    uVar7 = 1;\n                  }\n                  *(byte *)(pppppppcVar34 + 0x16) =\n                       (byte)*(code *)(pppppppcVar34 + 0x16) & 0x9f | (byte)((uVar7 & 1) << 6);\n                }\n                ppppppcVar32 = (code ******)pppppppcVar34[0xd][3][7];\n                pppppppcVar34[0x12] = ppppppcVar32;\n                pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppppcVar32 * 3);\n                pppppppcVar33 = (code *******)FUN_000483e8(&ppppppcStack_204,pppppppcVar38);\n                pppppppcVar29 = pppppppcVar33;\n                pppppppcStack_208 = pppppppcVar33;\n                if (pppppppcVar33 == (code *******)0x0) {\n                  if ((0 < (int)pppppppcVar34[0x13]) && (0 < iStack_200)) {\n                    iVar18 = *(int *)(puVar41 + 0x23abc);\n                    iVar43 = *(int *)(puVar41 + 0x23abc);\n                    pppppppcVar29 = (code *******)0x0;\n                    do {\n                      pppppppcVar31 =\n                           (code *******)(*pppppppcVar34 + piStack_1fc[(int)pppppppcVar29] * 2);\n                      if (*(code *)(pppppppcVar31 + 1) == (code)0x4) {\n                        iVar37 = 0;\n                        piVar5 = piStack_1fc;\n                        if (iStack_200 < 1) {\nLAB_00056b8c:\n                          if (iStack_200 != iVar37) {\n                            ppppcVar40 = *pppppppcVar34[5][piStack_1fc[(int)pppppppcVar29] * 3 + 2];\n                            iVar37 = (*(code *)(iVar18 + 0x5ea8))(&ppppppcStack_204,ppppcVar40);\n                            if (iVar37 == 0) {\n                              pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppcVar40 * 3)\n                              ;\n                              pppppppcVar29 =\n                                   (code *******)\n                                   (*(code *)(iVar43 + 0x7f1c))(&ppppppcStack_204,pppppppcVar38);\n                              if (pppppppcVar29 != (code *******)0x0) goto LAB_00056cb8;\n                            }\n                          }\n                        }\n                        else {\n                          do {\n                            ppppppcVar32 = *pppppppcVar34 + *piVar5 * 2;\n                            if ((*(char *)(ppppppcVar32 + 1) == '\t') &&\n                               ((code ******)*ppppppcVar32 == *pppppppcVar31)) goto LAB_00056b8c;\n                            iVar37 = iVar37 + 1;\n                            piVar5 = piVar5 + 1;\n                          } while (iStack_200 != iVar37);\n                        }\n                      }\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1);\n                    } while ((int)pppppppcVar29 < iStack_200);\n                  }\n                  pppppppcVar31 = &ppppppcStack_204;\n                  pppppppcVar38 = pppppppcVar34;\n                  ppppppcVar32 = (code ******)\n                                 FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,0);\n                  pppppppcVar34[9] = ppppppcVar32;\n                  pppppppcVar29 = pppppppcStack_208;\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    if (((uint)ppppppcVar32[0xd] & 0x1000000) == 0) {\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar34[10] = ppppppcVar32;\n                    }\n                    else {\n                      pppppppcVar31 = &ppppppcStack_204;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,1);\n                      pppppppcVar34[10] = ppppppcVar32;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,2);\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar38 = pppppppcVar34;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,6);\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar29 = pppppppcStack_208;\n                      if (((pppppppcVar34[10] == (code ******)0x0) ||\n                          (pppppppcVar34[0xb] == (code ******)0x0)) ||\n                         (ppppppcVar32 == (code ******)0x0)) goto LAB_00056cb8;\n                    }\n                    (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                    pppppppcVar29 = pppppppcVar33;\n                  }\n                }\nLAB_00056cb8:\n                pppppppcStack_20c = pppppppcVar29;\n                FUN_0004b234(pppppppcVar3);\n                FUN_0004b2bc(&pppppppcStack_1f8);\n                pppppppcVar29 = pppppppcStack_20c;\n                if (pppppppcStack_20c != (code *******)0x0) {\n                  if (*(int *)(puVar41 + 0x23c78) != 0) {\n                    (**(code **)(puVar41 + 0x23df0))(pppppppcVar34 + 0x22);\n                  }\n                  FUN_0004b338(pppppppcVar34);\n                  *pppppppcVar3 = (code ******)0x0;\n                  pppppppcVar3[1] = (code ******)0x0;\n                  pppppppcVar29 = pppppppcStack_20c;\n                }\n                goto LAB_00056cfc;\n              }\n            }\n          }\n        }\n      }\n      else {\n        pppppppcVar31 = (code *******)0x0;\n        if (pppppppcVar29 != (code *******)0x0) {\n          pppppppcVar33 = (code *******)FUN_000470f0(ppppppcVar32,0,0,2);\n          goto LAB_000564b0;\n        }\nLAB_000566f4:\n        pppppppcVar34[0xd] = (code ******)0x0;\n        pppppppcVar30 = pppppppcStack_20c;\n      }\nLAB_00056168:\n      pppppppcStack_20c = pppppppcVar30;\n      FUN_0004b234(pppppppcVar3);\n      FUN_0004b2bc(&pppppppcStack_1f8);\n      if (*(int *)(puVar41 + 0x23c78) != 0) {\n        (**(code **)(puVar41 + 0x23df0))(pppppppcVar34 + 0x22);\n      }\n      FUN_0004b338(pppppppcVar34);\n      *pppppppcVar3 = (code ******)0x0;\n      pppppppcVar3[1] = (code ******)0x0;\n      pppppppcVar29 = pppppppcStack_20c;\n      goto LAB_00056cfc;\n    }\n    pppppppcVar38 = (code *******)0x0;\n    iVar18 = (**(code **)(puVar41 + 0x23d98))(pppppppcVar34 + 0x22,0);\n    if (iVar18 != 0) goto LAB_00056e5c;\n    if (pppppppcStack_20c == (code *******)0x0) goto LAB_00056054;\n  }\n  else {\nLAB_00056e5c:\n    pppppppcStack_20c = (code *******)0xc;\n  }" (if "if") (parenthesized_expression "(param_1 < (code *******)0xaaaaaaa)" (( "(") (binary_expression "param_1 < (code *******)0xaaaaaaa" (identifier "param_1") (< "<") (cast_expression "(code *******)0xaaaaaaa" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0xaaaaaaa"))) () ")")) (compound_statement "{\n    pppppppcVar34[1] = (code ******)((int)param_1 + 1);\n    ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23cf0))(((int)param_1 + 1) * 8);\n    *pppppppcVar34 = ppppppcVar32;\n    if (param_1 == (code *******)0x0) {\n      pppppppcVar30 = (code *******)0x1;\n    }\n    else {\n      pppppppcVar30 = (code *******)0x1;\n      do {\n        pppppppcVar30 = (code *******)((int)pppppppcVar30 << 1);\n      } while (pppppppcVar30 <= param_1);\n    }\n    pppppppcVar38 = pppppppcVar30;\n    ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23b8c))(0xc,pppppppcVar30);\n    pppppppcVar34[8] = ppppppcVar32;\n    pppppppcVar34[0x11] = (code ******)((int)pppppppcVar30 + -1);\n    ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23d2c))();\n    pppppppcVar34[0x17] = ppppppcVar32;\n    pbVar17 = (byte *)(**(code **)(puVar41 + 0x23c2c))(0xe);\n    if ((((*pbVar17 & 0xdf) == 0x55) && ((pbVar17[1] & 0xdf) == 0x54)) &&\n       (pppppppcVar38 = (code *******)0x4, (pbVar17[2] & 0xdf) == 0x46)) {\n      iVar18 = 3;\n      if (pbVar17[3] == 0x2d) {\n        iVar18 = 4;\n      }\n      pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23754) + 0x71b4);\n      iVar18 = (**(code **)(puVar41 + 0x23dfc))(pbVar17 + iVar18,pppppppcVar38);\n      if (iVar18 == 0) {\n        *(byte *)(pppppppcVar34 + 0x16) = (byte)*(code *)(pppppppcVar34 + 0x16) & 0xdf | 0x20;\n      }\n    }\n    *(byte *)(pppppppcVar34 + 0x16) = (byte)*(code *)(pppppppcVar34 + 0x16) & 0xef;\n    if (1 < (int)pppppppcVar34[0x17]) {\n      if (((uint)pppppppcVar34[0x16] & 0x20000000) == 0) {\n        pppppppcVar38 = (code *******)0x1;\n        ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23b8c))(0x20,1);\n        pppppppcVar34[0xf] = ppppppcVar32;\n        if (ppppppcVar32 == (code ******)0x0) goto LAB_00056e5c;\n        iVar18 = 0;\n        do {\n          uVar16 = iVar18 << 3;\n          uVar7 = 0;\n          do {\n            uVar19 = (**(code **)(puVar41 + 0x23c88))(uVar16);\n            if (uVar19 != 0xffffffff) {\n              pppppppcVar38 = *(code ********)((int)pppppppcVar34[0xf] + iVar18);\n              *(uint *)((int)pppppppcVar34[0xf] + iVar18) =\n                   (uint)pppppppcVar38 | 1 << (uVar7 & 0x1f);\n            }\n            if (((uVar16 & 0xffffff80) == 0) && (uVar19 != uVar16)) {\n              *(byte *)(pppppppcVar34 + 0x16) = (byte)*(code *)(pppppppcVar34 + 0x16) & 0xef | 0x10;\n            }\n            uVar7 = uVar7 + 1;\n            uVar16 = uVar16 + 1;\n          } while (uVar7 != 0x20);\n          iVar18 = iVar18 + 4;\n        } while (iVar18 != 0x20);\n      }\n      else {\n        pppppppcVar34[0xf] = (code ******)(*(int *)(puVar41 + 0x23754) + 0x6ee4);\n      }\n    }\n    if ((*pppppppcVar34 == (code ******)0x0) || (pppppppcVar34[8] == (code ******)0x0))\n    goto LAB_00056e5c;\n    pppppppcStack_20c = (code *******)0x0;\n    if (*(int *)(puVar41 + 0x23c78) == 0) {\nLAB_00056054:\n      ppppppcVar32 = pppppppcVar3[5];\n      uVar16 = (uint)pppppppcVar33 & 0x400000;\n      bVar1 = uVar16 != 0;\n      pppppppcVar31 = (code *******)0x4c;\n      pppppppcVar38 = (code *******)0x0;\n      (**(code **)(puVar41 + 0x23c9c))(apppppppcStack_1f4,0);\n      cStack_1ad = ppppppcVar32 != (code ******)0x0 || bVar1;\n      ppppppcStack_1a8 = pppppppcVar34[0x17];\n      bStack_1af = (byte)((uint)((int)pppppppcVar34[0x16] << 2) >> 0x1f);\n      bStack_1ae = (byte)((uint)((int)pppppppcVar34[0x16] << 3) >> 0x1f);\n      pppppppcStack_1f8 = pppppppcVar29;\n      pppppppcStack_1cc = param_1;\n      pppppppcStack_1c8 = param_1;\n      pppppppcStack_1c4 = param_1;\n      pppppppcStack_1c0 = param_1;\n      ppppppcStack_1b8 = ppppppcVar32;\n      uStack_1b0 = bVar1;\n      if (0 < (int)param_1) {\n        pppppppcVar38 = (code *******)((int)param_1 + 1);\n        pppppppcVar30 = (code *******)FUN_00046d2c(&pppppppcStack_1f8,pppppppcVar38);\n        if (pppppppcVar30 == (code *******)0x0) goto LAB_000560cc;\n        goto LAB_00056168;\n      }\nLAB_000560cc:\n      if (cStack_1ad != '\0') {\n        pppppppcVar29 = apppppppcStack_1f4[0];\n      }\n      apppppppcStack_1f4[0] = pppppppcVar29;\n      if (uVar16 == 0) {\n        if ((int)pppppppcVar34[0x17] < 2) {\n          if (ppppppcVar32 != (code ******)0x0) {\n            FUN_00045dc8();\n          }\n        }\n        else {\n          FUN_00047cb0(&pppppppcStack_1f8);\n        }\n      }\n      else {\n        if (1 < (int)pppppppcVar34[0x17]) {\n          iVar18 = *(int *)(puVar41 + 0x23abc);\n          do {\n            pppppppcVar30 = (code *******)FUN_00048714(&pppppppcStack_1f8);\n            if (pppppppcVar30 != (code *******)0x0) break;\n            if (((int)param_1 <= iStack_1d8) ||\n               (pppppppcVar38 = (code *******)(iStack_1d4 << 1),\n               (int)pppppppcVar34[0x17] + iStack_1dc < iStack_1d4)) goto LAB_000563d0;\n            pppppppcVar30 =\n                 (code *******)(*(code *)(iVar18 + 0x6d2c))(&pppppppcStack_1f8,pppppppcVar38);\n          } while (pppppppcVar30 == (code *******)0x0);\n          goto LAB_00056168;\n        }\n        FUN_00047be4(&pppppppcStack_1f8);\n      }\nLAB_000563d0:\n      pppppppcStack_20c = (code *******)0x0;\n      pppppppcVar3[6] = (code ******)0x0;\n      ppppppcVar32 = *pppppppcVar3;\n      ppppppcVar32[0x20] = (code *****)pppppppcVar33;\n      FUN_00049e40(&ppppppcStack_204,&pppppppcStack_1f8,(uint)pppppppcVar33 | 0x800000);\n      pppppppcVar38 = pppppppcVar3;\n      pppppppcVar29 =\n           (code *******)\n           FUN_00051868(&pppppppcStack_1f8,pppppppcVar3,&ppppppcStack_204,pppppppcVar33,0,\n                        &pppppppcStack_20c);\n      if (pppppppcStack_20c == (code *******)0x0) {\n        pppppppcVar31 = (code *******)0x0;\n        pppppppcVar38 = (code *******)0x0;\n        pppppppcVar33 = (code *******)FUN_000470f0(ppppppcVar32,0,0,2);\n        pppppppcVar30 = pppppppcVar33;\n        if (pppppppcVar29 != (code *******)0x0) {\nLAB_000564b0:\n          pppppppcVar31 = pppppppcVar33;\n          pppppppcVar30 = (code *******)FUN_000470f0(ppppppcVar32,pppppppcVar29,pppppppcVar33,0x10);\n          pppppppcVar38 = pppppppcVar29;\n        }\n        if ((pppppppcVar33 == (code *******)0x0) ||\n           (pcVar4 = *(code **)(puVar41 + 0x23cf0), pppppppcVar30 == (code *******)0x0)) {\n          pppppppcStack_20c = (code *******)0xc;\n          goto LAB_000566f4;\n        }\n        pppppppcVar34[0xd] = (code ******)pppppppcVar30;\n        pppppppcVar29 = (code *******)*pppppppcVar3;\n        ppppppcVar39 = pppppppcVar29[1];\n        iVar18 = (int)ppppppcVar39 << 2;\n        ppppppcVar32 = (code ******)(*pcVar4)(iVar18);\n        pppppppcVar29[3] = ppppppcVar32;\n        ppppppcVar35 = (code ******)(**(code **)(puVar41 + 0x23cf0))(iVar18);\n        pppppppcVar29[4] = ppppppcVar35;\n        iVar18 = (int)ppppppcVar39 * 0xc;\n        ppppppcVar39 = (code ******)(**(code **)(puVar41 + 0x23cf0))(iVar18);\n        pppppppcVar29[5] = ppppppcVar39;\n        ppppppcVar20 = (code ******)(**(code **)(puVar41 + 0x23cf0))(iVar18);\n        pppppppcVar29[6] = ppppppcVar20;\n        if (ppppppcVar32 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else if (ppppppcVar35 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else if (ppppppcVar39 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else if (ppppppcVar20 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else {\n          ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23cf0))((int)pppppppcVar3[6] << 2);\n          pppppppcVar29[0x21] = ppppppcVar32;\n          if (ppppppcVar32 != (code ******)0x0) {\n            ppppppcVar32 = (code ******)0x0;\n            if (pppppppcVar3[6] != (code ******)0x0) {\n              do {\n                pppppppcVar29[0x21][(int)ppppppcVar32] = (code *****)ppppppcVar32;\n                ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n              } while (ppppppcVar32 < pppppppcVar3[6]);\n            }\n            FUN_00046050(pppppppcVar29[0xd],*(int *)(puVar41 + 0x23abc) + 0x60e8,pppppppcVar29);\n            ppppppcVar32 = pppppppcVar3[6];\n            if (ppppppcVar32 == (code ******)0x0) {\nLAB_00056704:\n              (**(code **)(puVar41 + 0x23dc0))(pppppppcVar29[0x21]);\n              pppppppcVar29[0x21] = (code ******)0x0;\n            }\n            else {\n              ppppppcVar35 = pppppppcVar29[0x21];\n              if (*ppppppcVar35 == (code *****)0x0) {\n                ppppppcVar39 = (code ******)0x0;\n                do {\n                  ppppppcVar35 = ppppppcVar35 + 1;\n                  ppppppcVar39 = (code ******)((int)ppppppcVar39 + 1);\n                  if (ppppppcVar32 == ppppppcVar39) {\n                    if (ppppppcVar32 == ppppppcVar39) goto LAB_00056704;\n                    break;\n                  }\n                } while ((code ******)*ppppppcVar35 == ppppppcVar39);\n              }\n            }\n          }\n          pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23abc) + 0x73a4);\n          pppppppcVar30 = (code *******)FUN_00045fb4(pppppppcVar29[0xd],pppppppcVar38,pppppppcVar3);\n          pppppppcVar31 = pppppppcVar29;\n          if (pppppppcVar30 == (code *******)0x0) {\n            pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23b40) + -0x5be4);\n            pppppppcVar30 = (code *******)FUN_00045fb4(pppppppcVar29[0xd],pppppppcVar38);\n            if (pppppppcVar30 == (code *******)0x0) {\n              FUN_00046050(pppppppcVar29[0xd],*(int *)(puVar41 + 0x23abc) + 0x61b4);\n              pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23b40) + -0x4614);\n              pppppppcVar30 = (code *******)FUN_00046050(pppppppcVar29[0xd],pppppppcVar38);\n              if (pppppppcVar30 == (code *******)0x0) {\n                uVar7 = 0;\n                iVar18 = *(int *)(puVar41 + 0x23b40);\n                pppppppcVar33 = (code *******)0x0;\nLAB_00056744:\n                if ((code *******)pppppppcVar29[2] != pppppppcVar33) {\nLAB_00056750:\n                  if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                    pppppppcVar38 = pppppppcVar29;\n                    pppppppcVar31 = pppppppcVar33;\n                    pppppppcVar30 =\n                         (code *******)\n                         (*(code *)(iVar18 + -0x561c))\n                                   (&ppppppcStack_204,pppppppcVar29,pppppppcVar33,1);\n                    if (pppppppcVar30 != (code *******)0x0) goto LAB_00056168;\n                    if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                      (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                      uVar7 = 1;\n                    }\n                  }\n                  pppppppcVar33 = (code *******)((int)pppppppcVar33 + 1);\n                  goto LAB_00056744;\n                }\n                if (uVar7 != 0) {\n                  uVar7 = 0;\n                  pppppppcVar33 = (code *******)0x0;\n                  goto LAB_00056750;\n                }\n                if (((((uint)pppppppcVar3[7] & 0x8000000) == 0) &&\n                    (pppppppcVar3[6] != (code ******)0x0)) &&\n                   ((char)*(code *)(pppppppcVar29 + 0x16) < '\0')) {\n                  ppppppcVar32 = pppppppcVar29[2];\n                }\n                else {\n                  if (pppppppcVar29[0x13] == (code ******)0x0) goto LAB_000568f0;\n                  ppppppcVar32 = pppppppcVar29[2];\n                }\n                ppppppcVar35 = (code ******)\n                               (**(code **)(puVar41 + 0x23cf0))((int)ppppppcVar32 * 0xc);\n                pppppppcVar29[7] = ppppppcVar35;\n                if (ppppppcVar35 == (code ******)0x0) {\n                  pppppppcVar30 = (code *******)0xc;\n                  goto LAB_00056168;\n                }\n                if (ppppppcVar32 != (code ******)0x0) {\n                  iVar18 = 0;\n                  ppppppcVar32 = (code ******)0x0;\n                  do {\n                    puVar21 = (undefined1 *)((int)pppppppcVar29[7] + iVar18);\n                    *puVar21 = 0;\n                    puVar21[1] = 0;\n                    puVar21[2] = 0;\n                    puVar21[3] = 0;\n                    puVar21[4] = 0;\n                    puVar21[5] = 0;\n                    puVar21[6] = 0;\n                    puVar21[7] = 0;\n                    puVar21[8] = 0;\n                    puVar21[9] = 0;\n                    puVar21[10] = 0;\n                    puVar21[0xb] = 0;\n                    ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                    iVar18 = iVar18 + 0xc;\n                  } while (ppppppcVar32 < pppppppcVar29[2]);\n                  iVar18 = *(int *)(puVar41 + 0x23abc);\n                  if (pppppppcVar29[2] != (code ******)0x0) {\n                    iVar43 = 0;\n                    pppppppcStack_218 = (code *******)0x0;\n                    do {\n                      piVar5 = *(int **)((int)pppppppcVar29[6] + iVar43 + 8);\n                      if (0 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4)) {\n                        iVar37 = 0;\n                        do {\n                          pppppppcVar38 = pppppppcStack_218;\n                          iVar22 = (*(code *)(iVar18 + 0x6e30))\n                                             (pppppppcVar29[7] + *piVar5 * 3,pppppppcStack_218);\n                          pppppppcVar30 = (code *******)0xc;\n                          if (iVar22 == 0) goto LAB_00056168;\n                          iVar37 = iVar37 + 1;\n                          piVar5 = piVar5 + 1;\n                        } while (iVar37 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4));\n                      }\n                      pppppppcStack_218 = (code *******)((int)pppppppcStack_218 + 1);\n                      iVar43 = iVar43 + 0xc;\n                    } while (pppppppcStack_218 < pppppppcVar29[2]);\n                  }\n                }\nLAB_000568f0:\n                pppppppcStack_20c = (code *******)0x0;\n                if (((((uint)pppppppcVar34[0x16] & 0x20000000) != 0) && (uVar16 == 0)) &&\n                   (pppppppcVar3[5] == (code ******)0x0)) {\n                  if (pppppppcVar34[2] != (code ******)0x0) {\n                    pppppppcVar31 = (code *******)(*(int *)(puVar41 + 0x23754) + 0x6e4c);\n                    if (*(byte *)(*pppppppcVar34 + 1) < 0xd) {\n                    \n                    \n                      pppppppcVar29 =\n                           (code *******)\n                           (*(code *)(puVar41 +\n                                     (int)(pppppppcVar31[*(byte *)(*pppppppcVar34 + 1)] + 0xadc7)))\n                                     ();\n                      return pppppppcVar29;\n                    }\n                    (**(code **)(puVar41 + 0x23bc4))(0);\n                    if (uVar7 != 0) {\n                      pppppppcVar31 = (code *******)&DAT_00000007;\n                      ppppppcVar32 = (code ******)0x0;\n                      do {\n                        ppppppcVar35 = *pppppppcVar34 + (int)ppppppcVar32 * 2;\n                        if (*(char *)(ppppppcVar35 + 1) == '\x01') {\n                          if (*(char *)ppppppcVar35 < '\0') {\n                            ppppppcVar35[1] = (code *****)((uint)ppppppcVar35[1] & 0xfffffbff);\n                          }\n                        }\n                        else if (*(char *)(ppppppcVar35 + 1) == '\x05') {\n                          *(char *)(ppppppcVar35 + 1) = '\a';\n                        }\n                        ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                      } while (ppppppcVar32 < pppppppcVar34[2]);\n                    }\n                  }\n                  pppppppcVar34[0x17] = (code ******)0x1;\n                  if (0 < (int)pppppppcVar34[0x13]) {\n                    uVar7 = 1;\n                  }\n                  *(byte *)(pppppppcVar34 + 0x16) =\n                       (byte)*(code *)(pppppppcVar34 + 0x16) & 0x9f | (byte)((uVar7 & 1) << 6);\n                }\n                ppppppcVar32 = (code ******)pppppppcVar34[0xd][3][7];\n                pppppppcVar34[0x12] = ppppppcVar32;\n                pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppppcVar32 * 3);\n                pppppppcVar33 = (code *******)FUN_000483e8(&ppppppcStack_204,pppppppcVar38);\n                pppppppcVar29 = pppppppcVar33;\n                pppppppcStack_208 = pppppppcVar33;\n                if (pppppppcVar33 == (code *******)0x0) {\n                  if ((0 < (int)pppppppcVar34[0x13]) && (0 < iStack_200)) {\n                    iVar18 = *(int *)(puVar41 + 0x23abc);\n                    iVar43 = *(int *)(puVar41 + 0x23abc);\n                    pppppppcVar29 = (code *******)0x0;\n                    do {\n                      pppppppcVar31 =\n                           (code *******)(*pppppppcVar34 + piStack_1fc[(int)pppppppcVar29] * 2);\n                      if (*(code *)(pppppppcVar31 + 1) == (code)0x4) {\n                        iVar37 = 0;\n                        piVar5 = piStack_1fc;\n                        if (iStack_200 < 1) {\nLAB_00056b8c:\n                          if (iStack_200 != iVar37) {\n                            ppppcVar40 = *pppppppcVar34[5][piStack_1fc[(int)pppppppcVar29] * 3 + 2];\n                            iVar37 = (*(code *)(iVar18 + 0x5ea8))(&ppppppcStack_204,ppppcVar40);\n                            if (iVar37 == 0) {\n                              pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppcVar40 * 3)\n                              ;\n                              pppppppcVar29 =\n                                   (code *******)\n                                   (*(code *)(iVar43 + 0x7f1c))(&ppppppcStack_204,pppppppcVar38);\n                              if (pppppppcVar29 != (code *******)0x0) goto LAB_00056cb8;\n                            }\n                          }\n                        }\n                        else {\n                          do {\n                            ppppppcVar32 = *pppppppcVar34 + *piVar5 * 2;\n                            if ((*(char *)(ppppppcVar32 + 1) == '\t') &&\n                               ((code ******)*ppppppcVar32 == *pppppppcVar31)) goto LAB_00056b8c;\n                            iVar37 = iVar37 + 1;\n                            piVar5 = piVar5 + 1;\n                          } while (iStack_200 != iVar37);\n                        }\n                      }\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1);\n                    } while ((int)pppppppcVar29 < iStack_200);\n                  }\n                  pppppppcVar31 = &ppppppcStack_204;\n                  pppppppcVar38 = pppppppcVar34;\n                  ppppppcVar32 = (code ******)\n                                 FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,0);\n                  pppppppcVar34[9] = ppppppcVar32;\n                  pppppppcVar29 = pppppppcStack_208;\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    if (((uint)ppppppcVar32[0xd] & 0x1000000) == 0) {\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar34[10] = ppppppcVar32;\n                    }\n                    else {\n                      pppppppcVar31 = &ppppppcStack_204;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,1);\n                      pppppppcVar34[10] = ppppppcVar32;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,2);\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar38 = pppppppcVar34;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,6);\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar29 = pppppppcStack_208;\n                      if (((pppppppcVar34[10] == (code ******)0x0) ||\n                          (pppppppcVar34[0xb] == (code ******)0x0)) ||\n                         (ppppppcVar32 == (code ******)0x0)) goto LAB_00056cb8;\n                    }\n                    (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                    pppppppcVar29 = pppppppcVar33;\n                  }\n                }\nLAB_00056cb8:\n                pppppppcStack_20c = pppppppcVar29;\n                FUN_0004b234(pppppppcVar3);\n                FUN_0004b2bc(&pppppppcStack_1f8);\n                pppppppcVar29 = pppppppcStack_20c;\n                if (pppppppcStack_20c != (code *******)0x0) {\n                  if (*(int *)(puVar41 + 0x23c78) != 0) {\n                    (**(code **)(puVar41 + 0x23df0))(pppppppcVar34 + 0x22);\n                  }\n                  FUN_0004b338(pppppppcVar34);\n                  *pppppppcVar3 = (code ******)0x0;\n                  pppppppcVar3[1] = (code ******)0x0;\n                  pppppppcVar29 = pppppppcStack_20c;\n                }\n                goto LAB_00056cfc;\n              }\n            }\n          }\n        }\n      }\n      else {\n        pppppppcVar31 = (code *******)0x0;\n        if (pppppppcVar29 != (code *******)0x0) {\n          pppppppcVar33 = (code *******)FUN_000470f0(ppppppcVar32,0,0,2);\n          goto LAB_000564b0;\n        }\nLAB_000566f4:\n        pppppppcVar34[0xd] = (code ******)0x0;\n        pppppppcVar30 = pppppppcStack_20c;\n      }\nLAB_00056168:\n      pppppppcStack_20c = pppppppcVar30;\n      FUN_0004b234(pppppppcVar3);\n      FUN_0004b2bc(&pppppppcStack_1f8);\n      if (*(int *)(puVar41 + 0x23c78) != 0) {\n        (**(code **)(puVar41 + 0x23df0))(pppppppcVar34 + 0x22);\n      }\n      FUN_0004b338(pppppppcVar34);\n      *pppppppcVar3 = (code ******)0x0;\n      pppppppcVar3[1] = (code ******)0x0;\n      pppppppcVar29 = pppppppcStack_20c;\n      goto LAB_00056cfc;\n    }\n    pppppppcVar38 = (code *******)0x0;\n    iVar18 = (**(code **)(puVar41 + 0x23d98))(pppppppcVar34 + 0x22,0);\n    if (iVar18 != 0) goto LAB_00056e5c;\n    if (pppppppcStack_20c == (code *******)0x0) goto LAB_00056054;\n  }" ({ "{") (expression_statement "pppppppcVar34[1] = (code ******)((int)param_1 + 1);" (assignment_expression "pppppppcVar34[1] = (code ******)((int)param_1 + 1)" (subscript_expression "pppppppcVar34[1]" (identifier "pppppppcVar34") ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(code ******)((int)param_1 + 1)" (( "(") (type_descriptor "code ******" (type_identifier "code") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (parenthesized_expression "((int)param_1 + 1)" (( "(") (binary_expression "(int)param_1 + 1" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23cf0))(((int)param_1 + 1) * 8);" (assignment_expression "ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23cf0))(((int)param_1 + 1) * 8)" (identifier "ppppppcVar32") (= "=") (cast_expression "(code ******)(**(code **)(puVar41 + 0x23cf0))(((int)param_1 + 1) * 8)" (( "(") (type_descriptor "code ******" (type_identifier "code") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (call_expression "(**(code **)(puVar41 + 0x23cf0))(((int)param_1 + 1) * 8)" (parenthesized_expression "(**(code **)(puVar41 + 0x23cf0))" (( "(") (pointer_expression "**(code **)(puVar41 + 0x23cf0)" (* "*") (pointer_expression "*(code **)(puVar41 + 0x23cf0)" (* "*") (cast_expression "(code **)(puVar41 + 0x23cf0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar41 + 0x23cf0)" (( "(") (binary_expression "puVar41 + 0x23cf0" (identifier "puVar41") (+ "+") (number_literal "0x23cf0")) () ")"))))) () ")")) (argument_list "(((int)param_1 + 1) * 8)" (( "(") (binary_expression "((int)param_1 + 1) * 8" (parenthesized_expression "((int)param_1 + 1)" (( "(") (binary_expression "(int)param_1 + 1" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (+ "+") (number_literal "1")) () ")")) (* "*") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "*pppppppcVar34 = ppppppcVar32;" (assignment_expression "*pppppppcVar34 = ppppppcVar32" (pointer_expression "*pppppppcVar34" (* "*") (identifier "pppppppcVar34")) (= "=") (identifier "ppppppcVar32")) (; ";")) (if_statement "if (param_1 == (code *******)0x0) {\n      pppppppcVar30 = (code *******)0x1;\n    }\n    else {\n      pppppppcVar30 = (code *******)0x1;\n      do {\n        pppppppcVar30 = (code *******)((int)pppppppcVar30 << 1);\n      } while (pppppppcVar30 <= param_1);\n    }" (if "if") (parenthesized_expression "(param_1 == (code *******)0x0)" (( "(") (binary_expression "param_1 == (code *******)0x0" (identifier "param_1") (== "==") (cast_expression "(code *******)0x0" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      pppppppcVar30 = (code *******)0x1;\n    }" ({ "{") (expression_statement "pppppppcVar30 = (code *******)0x1;" (assignment_expression "pppppppcVar30 = (code *******)0x1" (identifier "pppppppcVar30") (= "=") (cast_expression "(code *******)0x1" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x1"))) (; ";")) (} "}")) (else_clause "else {\n      pppppppcVar30 = (code *******)0x1;\n      do {\n        pppppppcVar30 = (code *******)((int)pppppppcVar30 << 1);\n      } while (pppppppcVar30 <= param_1);\n    }" (else "else") (compound_statement "{\n      pppppppcVar30 = (code *******)0x1;\n      do {\n        pppppppcVar30 = (code *******)((int)pppppppcVar30 << 1);\n      } while (pppppppcVar30 <= param_1);\n    }" ({ "{") (expression_statement "pppppppcVar30 = (code *******)0x1;" (assignment_expression "pppppppcVar30 = (code *******)0x1" (identifier "pppppppcVar30") (= "=") (cast_expression "(code *******)0x1" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x1"))) (; ";")) (do_statement "do {\n        pppppppcVar30 = (code *******)((int)pppppppcVar30 << 1);\n      } while (pppppppcVar30 <= param_1);" (do "do") (compound_statement "{\n        pppppppcVar30 = (code *******)((int)pppppppcVar30 << 1);\n      }" ({ "{") (expression_statement "pppppppcVar30 = (code *******)((int)pppppppcVar30 << 1);" (assignment_expression "pppppppcVar30 = (code *******)((int)pppppppcVar30 << 1)" (identifier "pppppppcVar30") (= "=") (cast_expression "(code *******)((int)pppppppcVar30 << 1)" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "((int)pppppppcVar30 << 1)" (( "(") (binary_expression "(int)pppppppcVar30 << 1" (cast_expression "(int)pppppppcVar30" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppcVar30")) (<< "<<") (number_literal "1")) () ")")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pppppppcVar30 <= param_1)" (( "(") (binary_expression "pppppppcVar30 <= param_1" (identifier "pppppppcVar30") (<= "<=") (identifier "param_1")) () ")")) (; ";")) (} "}")))) (expression_statement "pppppppcVar38 = pppppppcVar30;" (assignment_expression "pppppppcVar38 = pppppppcVar30" (identifier "pppppppcVar38") (= "=") (identifier "pppppppcVar30")) (; ";")) (expression_statement "ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23b8c))(0xc,pppppppcVar30);" (assignment_expression "ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23b8c))(0xc,pppppppcVar30)" (identifier "ppppppcVar32") (= "=") (cast_expression "(code ******)(**(code **)(puVar41 + 0x23b8c))(0xc,pppppppcVar30)" (( "(") (type_descriptor "code ******" (type_identifier "code") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (call_expression "(**(code **)(puVar41 + 0x23b8c))(0xc,pppppppcVar30)" (parenthesized_expression "(**(code **)(puVar41 + 0x23b8c))" (( "(") (pointer_expression "**(code **)(puVar41 + 0x23b8c)" (* "*") (pointer_expression "*(code **)(puVar41 + 0x23b8c)" (* "*") (cast_expression "(code **)(puVar41 + 0x23b8c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar41 + 0x23b8c)" (( "(") (binary_expression "puVar41 + 0x23b8c" (identifier "puVar41") (+ "+") (number_literal "0x23b8c")) () ")"))))) () ")")) (argument_list "(0xc,pppppppcVar30)" (( "(") (number_literal "0xc") (, ",") (identifier "pppppppcVar30") () ")"))))) (; ";")) (expression_statement "pppppppcVar34[8] = ppppppcVar32;" (assignment_expression "pppppppcVar34[8] = ppppppcVar32" (subscript_expression "pppppppcVar34[8]" (identifier "pppppppcVar34") ([ "[") (number_literal "8") (] "]")) (= "=") (identifier "ppppppcVar32")) (; ";")) (expression_statement "pppppppcVar34[0x11] = (code ******)((int)pppppppcVar30 + -1);" (assignment_expression "pppppppcVar34[0x11] = (code ******)((int)pppppppcVar30 + -1)" (subscript_expression "pppppppcVar34[0x11]" (identifier "pppppppcVar34") ([ "[") (number_literal "0x11") (] "]")) (= "=") (cast_expression "(code ******)((int)pppppppcVar30 + -1)" (( "(") (type_descriptor "code ******" (type_identifier "code") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (parenthesized_expression "((int)pppppppcVar30 + -1)" (( "(") (binary_expression "(int)pppppppcVar30 + -1" (cast_expression "(int)pppppppcVar30" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppcVar30")) (+ "+") (number_literal "-1")) () ")")))) (; ";")) (expression_statement "ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23d2c))();" (assignment_expression "ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23d2c))()" (identifier "ppppppcVar32") (= "=") (cast_expression "(code ******)(**(code **)(puVar41 + 0x23d2c))()" (( "(") (type_descriptor "code ******" (type_identifier "code") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (call_expression "(**(code **)(puVar41 + 0x23d2c))()" (parenthesized_expression "(**(code **)(puVar41 + 0x23d2c))" (( "(") (pointer_expression "**(code **)(puVar41 + 0x23d2c)" (* "*") (pointer_expression "*(code **)(puVar41 + 0x23d2c)" (* "*") (cast_expression "(code **)(puVar41 + 0x23d2c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar41 + 0x23d2c)" (( "(") (binary_expression "puVar41 + 0x23d2c" (identifier "puVar41") (+ "+") (number_literal "0x23d2c")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "pppppppcVar34[0x17] = ppppppcVar32;" (assignment_expression "pppppppcVar34[0x17] = ppppppcVar32" (subscript_expression "pppppppcVar34[0x17]" (identifier "pppppppcVar34") ([ "[") (number_literal "0x17") (] "]")) (= "=") (identifier "ppppppcVar32")) (; ";")) (expression_statement "pbVar17 = (byte *)(**(code **)(puVar41 + 0x23c2c))(0xe);" (assignment_expression "pbVar17 = (byte *)(**(code **)(puVar41 + 0x23c2c))(0xe)" (identifier "pbVar17") (= "=") (cast_expression "(byte *)(**(code **)(puVar41 + 0x23c2c))(0xe)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(puVar41 + 0x23c2c))(0xe)" (parenthesized_expression "(**(code **)(puVar41 + 0x23c2c))" (( "(") (pointer_expression "**(code **)(puVar41 + 0x23c2c)" (* "*") (pointer_expression "*(code **)(puVar41 + 0x23c2c)" (* "*") (cast_expression "(code **)(puVar41 + 0x23c2c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar41 + 0x23c2c)" (( "(") (binary_expression "puVar41 + 0x23c2c" (identifier "puVar41") (+ "+") (number_literal "0x23c2c")) () ")"))))) () ")")) (argument_list "(0xe)" (( "(") (number_literal "0xe") () ")"))))) (; ";")) (if_statement "if ((((*pbVar17 & 0xdf) == 0x55) && ((pbVar17[1] & 0xdf) == 0x54)) &&\n       (pppppppcVar38 = (code *******)0x4, (pbVar17[2] & 0xdf) == 0x46)) {\n      iVar18 = 3;\n      if (pbVar17[3] == 0x2d) {\n        iVar18 = 4;\n      }\n      pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23754) + 0x71b4);\n      iVar18 = (**(code **)(puVar41 + 0x23dfc))(pbVar17 + iVar18,pppppppcVar38);\n      if (iVar18 == 0) {\n        *(byte *)(pppppppcVar34 + 0x16) = (byte)*(code *)(pppppppcVar34 + 0x16) & 0xdf | 0x20;\n      }\n    }" (if "if") (parenthesized_expression "((((*pbVar17 & 0xdf) == 0x55) && ((pbVar17[1] & 0xdf) == 0x54)) &&\n       (pppppppcVar38 = (code *******)0x4, (pbVar17[2] & 0xdf) == 0x46))" (( "(") (binary_expression "(((*pbVar17 & 0xdf) == 0x55) && ((pbVar17[1] & 0xdf) == 0x54)) &&\n       (pppppppcVar38 = (code *******)0x4, (pbVar17[2] & 0xdf) == 0x46)" (parenthesized_expression "(((*pbVar17 & 0xdf) == 0x55) && ((pbVar17[1] & 0xdf) == 0x54))" (( "(") (binary_expression "((*pbVar17 & 0xdf) == 0x55) && ((pbVar17[1] & 0xdf) == 0x54)" (parenthesized_expression "((*pbVar17 & 0xdf) == 0x55)" (( "(") (binary_expression "(*pbVar17 & 0xdf) == 0x55" (parenthesized_expression "(*pbVar17 & 0xdf)" (( "(") (binary_expression "*pbVar17 & 0xdf" (pointer_expression "*pbVar17" (* "*") (identifier "pbVar17")) (& "&") (number_literal "0xdf")) () ")")) (== "==") (number_literal "0x55")) () ")")) (&& "&&") (parenthesized_expression "((pbVar17[1] & 0xdf) == 0x54)" (( "(") (binary_expression "(pbVar17[1] & 0xdf) == 0x54" (parenthesized_expression "(pbVar17[1] & 0xdf)" (( "(") (binary_expression "pbVar17[1] & 0xdf" (subscript_expression "pbVar17[1]" (identifier "pbVar17") ([ "[") (number_literal "1") (] "]")) (& "&") (number_literal "0xdf")) () ")")) (== "==") (number_literal "0x54")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(pppppppcVar38 = (code *******)0x4, (pbVar17[2] & 0xdf) == 0x46)" (( "(") (comma_expression "pppppppcVar38 = (code *******)0x4, (pbVar17[2] & 0xdf) == 0x46" (assignment_expression "pppppppcVar38 = (code *******)0x4" (identifier "pppppppcVar38") (= "=") (cast_expression "(code *******)0x4" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x4"))) (, ",") (binary_expression "(pbVar17[2] & 0xdf) == 0x46" (parenthesized_expression "(pbVar17[2] & 0xdf)" (( "(") (binary_expression "pbVar17[2] & 0xdf" (subscript_expression "pbVar17[2]" (identifier "pbVar17") ([ "[") (number_literal "2") (] "]")) (& "&") (number_literal "0xdf")) () ")")) (== "==") (number_literal "0x46"))) () ")"))) () ")")) (compound_statement "{\n      iVar18 = 3;\n      if (pbVar17[3] == 0x2d) {\n        iVar18 = 4;\n      }\n      pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23754) + 0x71b4);\n      iVar18 = (**(code **)(puVar41 + 0x23dfc))(pbVar17 + iVar18,pppppppcVar38);\n      if (iVar18 == 0) {\n        *(byte *)(pppppppcVar34 + 0x16) = (byte)*(code *)(pppppppcVar34 + 0x16) & 0xdf | 0x20;\n      }\n    }" ({ "{") (expression_statement "iVar18 = 3;" (assignment_expression "iVar18 = 3" (identifier "iVar18") (= "=") (number_literal "3")) (; ";")) (if_statement "if (pbVar17[3] == 0x2d) {\n        iVar18 = 4;\n      }" (if "if") (parenthesized_expression "(pbVar17[3] == 0x2d)" (( "(") (binary_expression "pbVar17[3] == 0x2d" (subscript_expression "pbVar17[3]" (identifier "pbVar17") ([ "[") (number_literal "3") (] "]")) (== "==") (number_literal "0x2d")) () ")")) (compound_statement "{\n        iVar18 = 4;\n      }" ({ "{") (expression_statement "iVar18 = 4;" (assignment_expression "iVar18 = 4" (identifier "iVar18") (= "=") (number_literal "4")) (; ";")) (} "}"))) (expression_statement "pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23754) + 0x71b4);" (assignment_expression "pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23754) + 0x71b4)" (identifier "pppppppcVar38") (= "=") (cast_expression "(code *******)(*(int *)(puVar41 + 0x23754) + 0x71b4)" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "(*(int *)(puVar41 + 0x23754) + 0x71b4)" (( "(") (binary_expression "*(int *)(puVar41 + 0x23754) + 0x71b4" (pointer_expression "*(int *)(puVar41 + 0x23754)" (* "*") (cast_expression "(int *)(puVar41 + 0x23754)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar41 + 0x23754)" (( "(") (binary_expression "puVar41 + 0x23754" (identifier "puVar41") (+ "+") (number_literal "0x23754")) () ")")))) (+ "+") (number_literal "0x71b4")) () ")")))) (; ";")) (expression_statement "iVar18 = (**(code **)(puVar41 + 0x23dfc))(pbVar17 + iVar18,pppppppcVar38);" (assignment_expression "iVar18 = (**(code **)(puVar41 + 0x23dfc))(pbVar17 + iVar18,pppppppcVar38)" (identifier "iVar18") (= "=") (call_expression "(**(code **)(puVar41 + 0x23dfc))(pbVar17 + iVar18,pppppppcVar38)" (parenthesized_expression "(**(code **)(puVar41 + 0x23dfc))" (( "(") (pointer_expression "**(code **)(puVar41 + 0x23dfc)" (* "*") (pointer_expression "*(code **)(puVar41 + 0x23dfc)" (* "*") (cast_expression "(code **)(puVar41 + 0x23dfc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar41 + 0x23dfc)" (( "(") (binary_expression "puVar41 + 0x23dfc" (identifier "puVar41") (+ "+") (number_literal "0x23dfc")) () ")"))))) () ")")) (argument_list "(pbVar17 + iVar18,pppppppcVar38)" (( "(") (binary_expression "pbVar17 + iVar18" (identifier "pbVar17") (+ "+") (identifier "iVar18")) (, ",") (identifier "pppppppcVar38") () ")")))) (; ";")) (if_statement "if (iVar18 == 0) {\n        *(byte *)(pppppppcVar34 + 0x16) = (byte)*(code *)(pppppppcVar34 + 0x16) & 0xdf | 0x20;\n      }" (if "if") (parenthesized_expression "(iVar18 == 0)" (( "(") (binary_expression "iVar18 == 0" (identifier "iVar18") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        *(byte *)(pppppppcVar34 + 0x16) = (byte)*(code *)(pppppppcVar34 + 0x16) & 0xdf | 0x20;\n      }" ({ "{") (expression_statement "*(byte *)(pppppppcVar34 + 0x16) = (byte)*(code *)(pppppppcVar34 + 0x16) & 0xdf | 0x20;" (assignment_expression "*(byte *)(pppppppcVar34 + 0x16) = (byte)*(code *)(pppppppcVar34 + 0x16) & 0xdf | 0x20" (pointer_expression "*(byte *)(pppppppcVar34 + 0x16)" (* "*") (cast_expression "(byte *)(pppppppcVar34 + 0x16)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pppppppcVar34 + 0x16)" (( "(") (binary_expression "pppppppcVar34 + 0x16" (identifier "pppppppcVar34") (+ "+") (number_literal "0x16")) () ")")))) (= "=") (binary_expression "(byte)*(code *)(pppppppcVar34 + 0x16) & 0xdf | 0x20" (binary_expression "(byte)*(code *)(pppppppcVar34 + 0x16) & 0xdf" (binary_expression "(byte)*(code *)(pppppppcVar34 + 0x16)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (* "*") (cast_expression "(code *)(pppppppcVar34 + 0x16)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pppppppcVar34 + 0x16)" (( "(") (binary_expression "pppppppcVar34 + 0x16" (identifier "pppppppcVar34") (+ "+") (number_literal "0x16")) () ")")))) (& "&") (number_literal "0xdf")) (| "|") (number_literal "0x20"))) (; ";")) (} "}"))) (} "}"))) (expression_statement "*(byte *)(pppppppcVar34 + 0x16) = (byte)*(code *)(pppppppcVar34 + 0x16) & 0xef;" (assignment_expression "*(byte *)(pppppppcVar34 + 0x16) = (byte)*(code *)(pppppppcVar34 + 0x16) & 0xef" (pointer_expression "*(byte *)(pppppppcVar34 + 0x16)" (* "*") (cast_expression "(byte *)(pppppppcVar34 + 0x16)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pppppppcVar34 + 0x16)" (( "(") (binary_expression "pppppppcVar34 + 0x16" (identifier "pppppppcVar34") (+ "+") (number_literal "0x16")) () ")")))) (= "=") (binary_expression "(byte)*(code *)(pppppppcVar34 + 0x16) & 0xef" (binary_expression "(byte)*(code *)(pppppppcVar34 + 0x16)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (* "*") (cast_expression "(code *)(pppppppcVar34 + 0x16)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pppppppcVar34 + 0x16)" (( "(") (binary_expression "pppppppcVar34 + 0x16" (identifier "pppppppcVar34") (+ "+") (number_literal "0x16")) () ")")))) (& "&") (number_literal "0xef"))) (; ";")) (if_statement "if (1 < (int)pppppppcVar34[0x17]) {\n      if (((uint)pppppppcVar34[0x16] & 0x20000000) == 0) {\n        pppppppcVar38 = (code *******)0x1;\n        ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23b8c))(0x20,1);\n        pppppppcVar34[0xf] = ppppppcVar32;\n        if (ppppppcVar32 == (code ******)0x0) goto LAB_00056e5c;\n        iVar18 = 0;\n        do {\n          uVar16 = iVar18 << 3;\n          uVar7 = 0;\n          do {\n            uVar19 = (**(code **)(puVar41 + 0x23c88))(uVar16);\n            if (uVar19 != 0xffffffff) {\n              pppppppcVar38 = *(code ********)((int)pppppppcVar34[0xf] + iVar18);\n              *(uint *)((int)pppppppcVar34[0xf] + iVar18) =\n                   (uint)pppppppcVar38 | 1 << (uVar7 & 0x1f);\n            }\n            if (((uVar16 & 0xffffff80) == 0) && (uVar19 != uVar16)) {\n              *(byte *)(pppppppcVar34 + 0x16) = (byte)*(code *)(pppppppcVar34 + 0x16) & 0xef | 0x10;\n            }\n            uVar7 = uVar7 + 1;\n            uVar16 = uVar16 + 1;\n          } while (uVar7 != 0x20);\n          iVar18 = iVar18 + 4;\n        } while (iVar18 != 0x20);\n      }\n      else {\n        pppppppcVar34[0xf] = (code ******)(*(int *)(puVar41 + 0x23754) + 0x6ee4);\n      }\n    }" (if "if") (parenthesized_expression "(1 < (int)pppppppcVar34[0x17])" (( "(") (binary_expression "1 < (int)pppppppcVar34[0x17]" (number_literal "1") (< "<") (cast_expression "(int)pppppppcVar34[0x17]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "pppppppcVar34[0x17]" (identifier "pppppppcVar34") ([ "[") (number_literal "0x17") (] "]")))) () ")")) (compound_statement "{\n      if (((uint)pppppppcVar34[0x16] & 0x20000000) == 0) {\n        pppppppcVar38 = (code *******)0x1;\n        ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23b8c))(0x20,1);\n        pppppppcVar34[0xf] = ppppppcVar32;\n        if (ppppppcVar32 == (code ******)0x0) goto LAB_00056e5c;\n        iVar18 = 0;\n        do {\n          uVar16 = iVar18 << 3;\n          uVar7 = 0;\n          do {\n            uVar19 = (**(code **)(puVar41 + 0x23c88))(uVar16);\n            if (uVar19 != 0xffffffff) {\n              pppppppcVar38 = *(code ********)((int)pppppppcVar34[0xf] + iVar18);\n              *(uint *)((int)pppppppcVar34[0xf] + iVar18) =\n                   (uint)pppppppcVar38 | 1 << (uVar7 & 0x1f);\n            }\n            if (((uVar16 & 0xffffff80) == 0) && (uVar19 != uVar16)) {\n              *(byte *)(pppppppcVar34 + 0x16) = (byte)*(code *)(pppppppcVar34 + 0x16) & 0xef | 0x10;\n            }\n            uVar7 = uVar7 + 1;\n            uVar16 = uVar16 + 1;\n          } while (uVar7 != 0x20);\n          iVar18 = iVar18 + 4;\n        } while (iVar18 != 0x20);\n      }\n      else {\n        pppppppcVar34[0xf] = (code ******)(*(int *)(puVar41 + 0x23754) + 0x6ee4);\n      }\n    }" ({ "{") (if_statement "if (((uint)pppppppcVar34[0x16] & 0x20000000) == 0) {\n        pppppppcVar38 = (code *******)0x1;\n        ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23b8c))(0x20,1);\n        pppppppcVar34[0xf] = ppppppcVar32;\n        if (ppppppcVar32 == (code ******)0x0) goto LAB_00056e5c;\n        iVar18 = 0;\n        do {\n          uVar16 = iVar18 << 3;\n          uVar7 = 0;\n          do {\n            uVar19 = (**(code **)(puVar41 + 0x23c88))(uVar16);\n            if (uVar19 != 0xffffffff) {\n              pppppppcVar38 = *(code ********)((int)pppppppcVar34[0xf] + iVar18);\n              *(uint *)((int)pppppppcVar34[0xf] + iVar18) =\n                   (uint)pppppppcVar38 | 1 << (uVar7 & 0x1f);\n            }\n            if (((uVar16 & 0xffffff80) == 0) && (uVar19 != uVar16)) {\n              *(byte *)(pppppppcVar34 + 0x16) = (byte)*(code *)(pppppppcVar34 + 0x16) & 0xef | 0x10;\n            }\n            uVar7 = uVar7 + 1;\n            uVar16 = uVar16 + 1;\n          } while (uVar7 != 0x20);\n          iVar18 = iVar18 + 4;\n        } while (iVar18 != 0x20);\n      }\n      else {\n        pppppppcVar34[0xf] = (code ******)(*(int *)(puVar41 + 0x23754) + 0x6ee4);\n      }" (if "if") (parenthesized_expression "(((uint)pppppppcVar34[0x16] & 0x20000000) == 0)" (( "(") (binary_expression "((uint)pppppppcVar34[0x16] & 0x20000000) == 0" (parenthesized_expression "((uint)pppppppcVar34[0x16] & 0x20000000)" (( "(") (binary_expression "(uint)pppppppcVar34[0x16] & 0x20000000" (cast_expression "(uint)pppppppcVar34[0x16]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "pppppppcVar34[0x16]" (identifier "pppppppcVar34") ([ "[") (number_literal "0x16") (] "]"))) (& "&") (number_literal "0x20000000")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        pppppppcVar38 = (code *******)0x1;\n        ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23b8c))(0x20,1);\n        pppppppcVar34[0xf] = ppppppcVar32;\n        if (ppppppcVar32 == (code ******)0x0) goto LAB_00056e5c;\n        iVar18 = 0;\n        do {\n          uVar16 = iVar18 << 3;\n          uVar7 = 0;\n          do {\n            uVar19 = (**(code **)(puVar41 + 0x23c88))(uVar16);\n            if (uVar19 != 0xffffffff) {\n              pppppppcVar38 = *(code ********)((int)pppppppcVar34[0xf] + iVar18);\n              *(uint *)((int)pppppppcVar34[0xf] + iVar18) =\n                   (uint)pppppppcVar38 | 1 << (uVar7 & 0x1f);\n            }\n            if (((uVar16 & 0xffffff80) == 0) && (uVar19 != uVar16)) {\n              *(byte *)(pppppppcVar34 + 0x16) = (byte)*(code *)(pppppppcVar34 + 0x16) & 0xef | 0x10;\n            }\n            uVar7 = uVar7 + 1;\n            uVar16 = uVar16 + 1;\n          } while (uVar7 != 0x20);\n          iVar18 = iVar18 + 4;\n        } while (iVar18 != 0x20);\n      }" ({ "{") (expression_statement "pppppppcVar38 = (code *******)0x1;" (assignment_expression "pppppppcVar38 = (code *******)0x1" (identifier "pppppppcVar38") (= "=") (cast_expression "(code *******)0x1" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x1"))) (; ";")) (expression_statement "ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23b8c))(0x20,1);" (assignment_expression "ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23b8c))(0x20,1)" (identifier "ppppppcVar32") (= "=") (cast_expression "(code ******)(**(code **)(puVar41 + 0x23b8c))(0x20,1)" (( "(") (type_descriptor "code ******" (type_identifier "code") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (call_expression "(**(code **)(puVar41 + 0x23b8c))(0x20,1)" (parenthesized_expression "(**(code **)(puVar41 + 0x23b8c))" (( "(") (pointer_expression "**(code **)(puVar41 + 0x23b8c)" (* "*") (pointer_expression "*(code **)(puVar41 + 0x23b8c)" (* "*") (cast_expression "(code **)(puVar41 + 0x23b8c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar41 + 0x23b8c)" (( "(") (binary_expression "puVar41 + 0x23b8c" (identifier "puVar41") (+ "+") (number_literal "0x23b8c")) () ")"))))) () ")")) (argument_list "(0x20,1)" (( "(") (number_literal "0x20") (, ",") (number_literal "1") () ")"))))) (; ";")) (expression_statement "pppppppcVar34[0xf] = ppppppcVar32;" (assignment_expression "pppppppcVar34[0xf] = ppppppcVar32" (subscript_expression "pppppppcVar34[0xf]" (identifier "pppppppcVar34") ([ "[") (number_literal "0xf") (] "]")) (= "=") (identifier "ppppppcVar32")) (; ";")) (if_statement "if (ppppppcVar32 == (code ******)0x0) goto LAB_00056e5c;" (if "if") (parenthesized_expression "(ppppppcVar32 == (code ******)0x0)" (( "(") (binary_expression "ppppppcVar32 == (code ******)0x0" (identifier "ppppppcVar32") (== "==") (cast_expression "(code ******)0x0" (( "(") (type_descriptor "code ******" (type_identifier "code") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00056e5c;" (goto "goto") (statement_identifier "LAB_00056e5c") (; ";"))) (expression_statement "iVar18 = 0;" (assignment_expression "iVar18 = 0" (identifier "iVar18") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n          uVar16 = iVar18 << 3;\n          uVar7 = 0;\n          do {\n            uVar19 = (**(code **)(puVar41 + 0x23c88))(uVar16);\n            if (uVar19 != 0xffffffff) {\n              pppppppcVar38 = *(code ********)((int)pppppppcVar34[0xf] + iVar18);\n              *(uint *)((int)pppppppcVar34[0xf] + iVar18) =\n                   (uint)pppppppcVar38 | 1 << (uVar7 & 0x1f);\n            }\n            if (((uVar16 & 0xffffff80) == 0) && (uVar19 != uVar16)) {\n              *(byte *)(pppppppcVar34 + 0x16) = (byte)*(code *)(pppppppcVar34 + 0x16) & 0xef | 0x10;\n            }\n            uVar7 = uVar7 + 1;\n            uVar16 = uVar16 + 1;\n          } while (uVar7 != 0x20);\n          iVar18 = iVar18 + 4;\n        } while (iVar18 != 0x20);" (do "do") (compound_statement "{\n          uVar16 = iVar18 << 3;\n          uVar7 = 0;\n          do {\n            uVar19 = (**(code **)(puVar41 + 0x23c88))(uVar16);\n            if (uVar19 != 0xffffffff) {\n              pppppppcVar38 = *(code ********)((int)pppppppcVar34[0xf] + iVar18);\n              *(uint *)((int)pppppppcVar34[0xf] + iVar18) =\n                   (uint)pppppppcVar38 | 1 << (uVar7 & 0x1f);\n            }\n            if (((uVar16 & 0xffffff80) == 0) && (uVar19 != uVar16)) {\n              *(byte *)(pppppppcVar34 + 0x16) = (byte)*(code *)(pppppppcVar34 + 0x16) & 0xef | 0x10;\n            }\n            uVar7 = uVar7 + 1;\n            uVar16 = uVar16 + 1;\n          } while (uVar7 != 0x20);\n          iVar18 = iVar18 + 4;\n        }" ({ "{") (expression_statement "uVar16 = iVar18 << 3;" (assignment_expression "uVar16 = iVar18 << 3" (identifier "uVar16") (= "=") (binary_expression "iVar18 << 3" (identifier "iVar18") (<< "<<") (number_literal "3"))) (; ";")) (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" (identifier "uVar7") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n            uVar19 = (**(code **)(puVar41 + 0x23c88))(uVar16);\n            if (uVar19 != 0xffffffff) {\n              pppppppcVar38 = *(code ********)((int)pppppppcVar34[0xf] + iVar18);\n              *(uint *)((int)pppppppcVar34[0xf] + iVar18) =\n                   (uint)pppppppcVar38 | 1 << (uVar7 & 0x1f);\n            }\n            if (((uVar16 & 0xffffff80) == 0) && (uVar19 != uVar16)) {\n              *(byte *)(pppppppcVar34 + 0x16) = (byte)*(code *)(pppppppcVar34 + 0x16) & 0xef | 0x10;\n            }\n            uVar7 = uVar7 + 1;\n            uVar16 = uVar16 + 1;\n          } while (uVar7 != 0x20);" (do "do") (compound_statement "{\n            uVar19 = (**(code **)(puVar41 + 0x23c88))(uVar16);\n            if (uVar19 != 0xffffffff) {\n              pppppppcVar38 = *(code ********)((int)pppppppcVar34[0xf] + iVar18);\n              *(uint *)((int)pppppppcVar34[0xf] + iVar18) =\n                   (uint)pppppppcVar38 | 1 << (uVar7 & 0x1f);\n            }\n            if (((uVar16 & 0xffffff80) == 0) && (uVar19 != uVar16)) {\n              *(byte *)(pppppppcVar34 + 0x16) = (byte)*(code *)(pppppppcVar34 + 0x16) & 0xef | 0x10;\n            }\n            uVar7 = uVar7 + 1;\n            uVar16 = uVar16 + 1;\n          }" ({ "{") (expression_statement "uVar19 = (**(code **)(puVar41 + 0x23c88))(uVar16);" (assignment_expression "uVar19 = (**(code **)(puVar41 + 0x23c88))(uVar16)" (identifier "uVar19") (= "=") (call_expression "(**(code **)(puVar41 + 0x23c88))(uVar16)" (parenthesized_expression "(**(code **)(puVar41 + 0x23c88))" (( "(") (pointer_expression "**(code **)(puVar41 + 0x23c88)" (* "*") (pointer_expression "*(code **)(puVar41 + 0x23c88)" (* "*") (cast_expression "(code **)(puVar41 + 0x23c88)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar41 + 0x23c88)" (( "(") (binary_expression "puVar41 + 0x23c88" (identifier "puVar41") (+ "+") (number_literal "0x23c88")) () ")"))))) () ")")) (argument_list "(uVar16)" (( "(") (identifier "uVar16") () ")")))) (; ";")) (if_statement "if (uVar19 != 0xffffffff) {\n              pppppppcVar38 = *(code ********)((int)pppppppcVar34[0xf] + iVar18);\n              *(uint *)((int)pppppppcVar34[0xf] + iVar18) =\n                   (uint)pppppppcVar38 | 1 << (uVar7 & 0x1f);\n            }" (if "if") (parenthesized_expression "(uVar19 != 0xffffffff)" (( "(") (binary_expression "uVar19 != 0xffffffff" (identifier "uVar19") (!= "!=") (number_literal "0xffffffff")) () ")")) (compound_statement "{\n              pppppppcVar38 = *(code ********)((int)pppppppcVar34[0xf] + iVar18);\n              *(uint *)((int)pppppppcVar34[0xf] + iVar18) =\n                   (uint)pppppppcVar38 | 1 << (uVar7 & 0x1f);\n            }" ({ "{") (expression_statement "pppppppcVar38 = *(code ********)((int)pppppppcVar34[0xf] + iVar18);" (assignment_expression "pppppppcVar38 = *(code ********)((int)pppppppcVar34[0xf] + iVar18)" (identifier "pppppppcVar38") (= "=") (pointer_expression "*(code ********)((int)pppppppcVar34[0xf] + iVar18)" (* "*") (cast_expression "(code ********)((int)pppppppcVar34[0xf] + iVar18)" (( "(") (type_descriptor "code ********" (type_identifier "code") (abstract_pointer_declarator "********" (* "*") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))))) () ")") (parenthesized_expression "((int)pppppppcVar34[0xf] + iVar18)" (( "(") (binary_expression "(int)pppppppcVar34[0xf] + iVar18" (cast_expression "(int)pppppppcVar34[0xf]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "pppppppcVar34[0xf]" (identifier "pppppppcVar34") ([ "[") (number_literal "0xf") (] "]"))) (+ "+") (identifier "iVar18")) () ")"))))) (; ";")) (expression_statement "*(uint *)((int)pppppppcVar34[0xf] + iVar18) =\n                   (uint)pppppppcVar38 | 1 << (uVar7 & 0x1f);" (assignment_expression "*(uint *)((int)pppppppcVar34[0xf] + iVar18) =\n                   (uint)pppppppcVar38 | 1 << (uVar7 & 0x1f)" (pointer_expression "*(uint *)((int)pppppppcVar34[0xf] + iVar18)" (* "*") (cast_expression "(uint *)((int)pppppppcVar34[0xf] + iVar18)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pppppppcVar34[0xf] + iVar18)" (( "(") (binary_expression "(int)pppppppcVar34[0xf] + iVar18" (cast_expression "(int)pppppppcVar34[0xf]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "pppppppcVar34[0xf]" (identifier "pppppppcVar34") ([ "[") (number_literal "0xf") (] "]"))) (+ "+") (identifier "iVar18")) () ")")))) (= "=") (binary_expression "(uint)pppppppcVar38 | 1 << (uVar7 & 0x1f)" (cast_expression "(uint)pppppppcVar38" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pppppppcVar38")) (| "|") (binary_expression "1 << (uVar7 & 0x1f)" (number_literal "1") (<< "<<") (parenthesized_expression "(uVar7 & 0x1f)" (( "(") (binary_expression "uVar7 & 0x1f" (identifier "uVar7") (& "&") (number_literal "0x1f")) () ")"))))) (; ";")) (} "}"))) (if_statement "if (((uVar16 & 0xffffff80) == 0) && (uVar19 != uVar16)) {\n              *(byte *)(pppppppcVar34 + 0x16) = (byte)*(code *)(pppppppcVar34 + 0x16) & 0xef | 0x10;\n            }" (if "if") (parenthesized_expression "(((uVar16 & 0xffffff80) == 0) && (uVar19 != uVar16))" (( "(") (binary_expression "((uVar16 & 0xffffff80) == 0) && (uVar19 != uVar16)" (parenthesized_expression "((uVar16 & 0xffffff80) == 0)" (( "(") (binary_expression "(uVar16 & 0xffffff80) == 0" (parenthesized_expression "(uVar16 & 0xffffff80)" (( "(") (binary_expression "uVar16 & 0xffffff80" (identifier "uVar16") (& "&") (number_literal "0xffffff80")) () ")")) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(uVar19 != uVar16)" (( "(") (binary_expression "uVar19 != uVar16" (identifier "uVar19") (!= "!=") (identifier "uVar16")) () ")"))) () ")")) (compound_statement "{\n              *(byte *)(pppppppcVar34 + 0x16) = (byte)*(code *)(pppppppcVar34 + 0x16) & 0xef | 0x10;\n            }" ({ "{") (expression_statement "*(byte *)(pppppppcVar34 + 0x16) = (byte)*(code *)(pppppppcVar34 + 0x16) & 0xef | 0x10;" (assignment_expression "*(byte *)(pppppppcVar34 + 0x16) = (byte)*(code *)(pppppppcVar34 + 0x16) & 0xef | 0x10" (pointer_expression "*(byte *)(pppppppcVar34 + 0x16)" (* "*") (cast_expression "(byte *)(pppppppcVar34 + 0x16)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pppppppcVar34 + 0x16)" (( "(") (binary_expression "pppppppcVar34 + 0x16" (identifier "pppppppcVar34") (+ "+") (number_literal "0x16")) () ")")))) (= "=") (binary_expression "(byte)*(code *)(pppppppcVar34 + 0x16) & 0xef | 0x10" (binary_expression "(byte)*(code *)(pppppppcVar34 + 0x16) & 0xef" (binary_expression "(byte)*(code *)(pppppppcVar34 + 0x16)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (* "*") (cast_expression "(code *)(pppppppcVar34 + 0x16)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pppppppcVar34 + 0x16)" (( "(") (binary_expression "pppppppcVar34 + 0x16" (identifier "pppppppcVar34") (+ "+") (number_literal "0x16")) () ")")))) (& "&") (number_literal "0xef")) (| "|") (number_literal "0x10"))) (; ";")) (} "}"))) (expression_statement "uVar7 = uVar7 + 1;" (assignment_expression "uVar7 = uVar7 + 1" (identifier "uVar7") (= "=") (binary_expression "uVar7 + 1" (identifier "uVar7") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar16 = uVar16 + 1;" (assignment_expression "uVar16 = uVar16 + 1" (identifier "uVar16") (= "=") (binary_expression "uVar16 + 1" (identifier "uVar16") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar7 != 0x20)" (( "(") (binary_expression "uVar7 != 0x20" (identifier "uVar7") (!= "!=") (number_literal "0x20")) () ")")) (; ";")) (expression_statement "iVar18 = iVar18 + 4;" (assignment_expression "iVar18 = iVar18 + 4" (identifier "iVar18") (= "=") (binary_expression "iVar18 + 4" (identifier "iVar18") (+ "+") (number_literal "4"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar18 != 0x20)" (( "(") (binary_expression "iVar18 != 0x20" (identifier "iVar18") (!= "!=") (number_literal "0x20")) () ")")) (; ";")) (} "}")) (else_clause "else {\n        pppppppcVar34[0xf] = (code ******)(*(int *)(puVar41 + 0x23754) + 0x6ee4);\n      }" (else "else") (compound_statement "{\n        pppppppcVar34[0xf] = (code ******)(*(int *)(puVar41 + 0x23754) + 0x6ee4);\n      }" ({ "{") (expression_statement "pppppppcVar34[0xf] = (code ******)(*(int *)(puVar41 + 0x23754) + 0x6ee4);" (assignment_expression "pppppppcVar34[0xf] = (code ******)(*(int *)(puVar41 + 0x23754) + 0x6ee4)" (subscript_expression "pppppppcVar34[0xf]" (identifier "pppppppcVar34") ([ "[") (number_literal "0xf") (] "]")) (= "=") (cast_expression "(code ******)(*(int *)(puVar41 + 0x23754) + 0x6ee4)" (( "(") (type_descriptor "code ******" (type_identifier "code") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (parenthesized_expression "(*(int *)(puVar41 + 0x23754) + 0x6ee4)" (( "(") (binary_expression "*(int *)(puVar41 + 0x23754) + 0x6ee4" (pointer_expression "*(int *)(puVar41 + 0x23754)" (* "*") (cast_expression "(int *)(puVar41 + 0x23754)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar41 + 0x23754)" (( "(") (binary_expression "puVar41 + 0x23754" (identifier "puVar41") (+ "+") (number_literal "0x23754")) () ")")))) (+ "+") (number_literal "0x6ee4")) () ")")))) (; ";")) (} "}")))) (} "}"))) (if_statement "if ((*pppppppcVar34 == (code ******)0x0) || (pppppppcVar34[8] == (code ******)0x0))\n    goto LAB_00056e5c;" (if "if") (parenthesized_expression "((*pppppppcVar34 == (code ******)0x0) || (pppppppcVar34[8] == (code ******)0x0))" (( "(") (binary_expression "(*pppppppcVar34 == (code ******)0x0) || (pppppppcVar34[8] == (code ******)0x0)" (parenthesized_expression "(*pppppppcVar34 == (code ******)0x0)" (( "(") (binary_expression "*pppppppcVar34 == (code ******)0x0" (pointer_expression "*pppppppcVar34" (* "*") (identifier "pppppppcVar34")) (== "==") (cast_expression "(code ******)0x0" (( "(") (type_descriptor "code ******" (type_identifier "code") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) () ")")) (|| "||") (parenthesized_expression "(pppppppcVar34[8] == (code ******)0x0)" (( "(") (binary_expression "pppppppcVar34[8] == (code ******)0x0" (subscript_expression "pppppppcVar34[8]" (identifier "pppppppcVar34") ([ "[") (number_literal "8") (] "]")) (== "==") (cast_expression "(code ******)0x0" (( "(") (type_descriptor "code ******" (type_identifier "code") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) () ")"))) () ")")) (goto_statement "goto LAB_00056e5c;" (goto "goto") (statement_identifier "LAB_00056e5c") (; ";"))) (expression_statement "pppppppcStack_20c = (code *******)0x0;" (assignment_expression "pppppppcStack_20c = (code *******)0x0" (identifier "pppppppcStack_20c") (= "=") (cast_expression "(code *******)0x0" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) (; ";")) (if_statement "if (*(int *)(puVar41 + 0x23c78) == 0) {\nLAB_00056054:\n      ppppppcVar32 = pppppppcVar3[5];\n      uVar16 = (uint)pppppppcVar33 & 0x400000;\n      bVar1 = uVar16 != 0;\n      pppppppcVar31 = (code *******)0x4c;\n      pppppppcVar38 = (code *******)0x0;\n      (**(code **)(puVar41 + 0x23c9c))(apppppppcStack_1f4,0);\n      cStack_1ad = ppppppcVar32 != (code ******)0x0 || bVar1;\n      ppppppcStack_1a8 = pppppppcVar34[0x17];\n      bStack_1af = (byte)((uint)((int)pppppppcVar34[0x16] << 2) >> 0x1f);\n      bStack_1ae = (byte)((uint)((int)pppppppcVar34[0x16] << 3) >> 0x1f);\n      pppppppcStack_1f8 = pppppppcVar29;\n      pppppppcStack_1cc = param_1;\n      pppppppcStack_1c8 = param_1;\n      pppppppcStack_1c4 = param_1;\n      pppppppcStack_1c0 = param_1;\n      ppppppcStack_1b8 = ppppppcVar32;\n      uStack_1b0 = bVar1;\n      if (0 < (int)param_1) {\n        pppppppcVar38 = (code *******)((int)param_1 + 1);\n        pppppppcVar30 = (code *******)FUN_00046d2c(&pppppppcStack_1f8,pppppppcVar38);\n        if (pppppppcVar30 == (code *******)0x0) goto LAB_000560cc;\n        goto LAB_00056168;\n      }\nLAB_000560cc:\n      if (cStack_1ad != '\0') {\n        pppppppcVar29 = apppppppcStack_1f4[0];\n      }\n      apppppppcStack_1f4[0] = pppppppcVar29;\n      if (uVar16 == 0) {\n        if ((int)pppppppcVar34[0x17] < 2) {\n          if (ppppppcVar32 != (code ******)0x0) {\n            FUN_00045dc8();\n          }\n        }\n        else {\n          FUN_00047cb0(&pppppppcStack_1f8);\n        }\n      }\n      else {\n        if (1 < (int)pppppppcVar34[0x17]) {\n          iVar18 = *(int *)(puVar41 + 0x23abc);\n          do {\n            pppppppcVar30 = (code *******)FUN_00048714(&pppppppcStack_1f8);\n            if (pppppppcVar30 != (code *******)0x0) break;\n            if (((int)param_1 <= iStack_1d8) ||\n               (pppppppcVar38 = (code *******)(iStack_1d4 << 1),\n               (int)pppppppcVar34[0x17] + iStack_1dc < iStack_1d4)) goto LAB_000563d0;\n            pppppppcVar30 =\n                 (code *******)(*(code *)(iVar18 + 0x6d2c))(&pppppppcStack_1f8,pppppppcVar38);\n          } while (pppppppcVar30 == (code *******)0x0);\n          goto LAB_00056168;\n        }\n        FUN_00047be4(&pppppppcStack_1f8);\n      }\nLAB_000563d0:\n      pppppppcStack_20c = (code *******)0x0;\n      pppppppcVar3[6] = (code ******)0x0;\n      ppppppcVar32 = *pppppppcVar3;\n      ppppppcVar32[0x20] = (code *****)pppppppcVar33;\n      FUN_00049e40(&ppppppcStack_204,&pppppppcStack_1f8,(uint)pppppppcVar33 | 0x800000);\n      pppppppcVar38 = pppppppcVar3;\n      pppppppcVar29 =\n           (code *******)\n           FUN_00051868(&pppppppcStack_1f8,pppppppcVar3,&ppppppcStack_204,pppppppcVar33,0,\n                        &pppppppcStack_20c);\n      if (pppppppcStack_20c == (code *******)0x0) {\n        pppppppcVar31 = (code *******)0x0;\n        pppppppcVar38 = (code *******)0x0;\n        pppppppcVar33 = (code *******)FUN_000470f0(ppppppcVar32,0,0,2);\n        pppppppcVar30 = pppppppcVar33;\n        if (pppppppcVar29 != (code *******)0x0) {\nLAB_000564b0:\n          pppppppcVar31 = pppppppcVar33;\n          pppppppcVar30 = (code *******)FUN_000470f0(ppppppcVar32,pppppppcVar29,pppppppcVar33,0x10);\n          pppppppcVar38 = pppppppcVar29;\n        }\n        if ((pppppppcVar33 == (code *******)0x0) ||\n           (pcVar4 = *(code **)(puVar41 + 0x23cf0), pppppppcVar30 == (code *******)0x0)) {\n          pppppppcStack_20c = (code *******)0xc;\n          goto LAB_000566f4;\n        }\n        pppppppcVar34[0xd] = (code ******)pppppppcVar30;\n        pppppppcVar29 = (code *******)*pppppppcVar3;\n        ppppppcVar39 = pppppppcVar29[1];\n        iVar18 = (int)ppppppcVar39 << 2;\n        ppppppcVar32 = (code ******)(*pcVar4)(iVar18);\n        pppppppcVar29[3] = ppppppcVar32;\n        ppppppcVar35 = (code ******)(**(code **)(puVar41 + 0x23cf0))(iVar18);\n        pppppppcVar29[4] = ppppppcVar35;\n        iVar18 = (int)ppppppcVar39 * 0xc;\n        ppppppcVar39 = (code ******)(**(code **)(puVar41 + 0x23cf0))(iVar18);\n        pppppppcVar29[5] = ppppppcVar39;\n        ppppppcVar20 = (code ******)(**(code **)(puVar41 + 0x23cf0))(iVar18);\n        pppppppcVar29[6] = ppppppcVar20;\n        if (ppppppcVar32 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else if (ppppppcVar35 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else if (ppppppcVar39 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else if (ppppppcVar20 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else {\n          ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23cf0))((int)pppppppcVar3[6] << 2);\n          pppppppcVar29[0x21] = ppppppcVar32;\n          if (ppppppcVar32 != (code ******)0x0) {\n            ppppppcVar32 = (code ******)0x0;\n            if (pppppppcVar3[6] != (code ******)0x0) {\n              do {\n                pppppppcVar29[0x21][(int)ppppppcVar32] = (code *****)ppppppcVar32;\n                ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n              } while (ppppppcVar32 < pppppppcVar3[6]);\n            }\n            FUN_00046050(pppppppcVar29[0xd],*(int *)(puVar41 + 0x23abc) + 0x60e8,pppppppcVar29);\n            ppppppcVar32 = pppppppcVar3[6];\n            if (ppppppcVar32 == (code ******)0x0) {\nLAB_00056704:\n              (**(code **)(puVar41 + 0x23dc0))(pppppppcVar29[0x21]);\n              pppppppcVar29[0x21] = (code ******)0x0;\n            }\n            else {\n              ppppppcVar35 = pppppppcVar29[0x21];\n              if (*ppppppcVar35 == (code *****)0x0) {\n                ppppppcVar39 = (code ******)0x0;\n                do {\n                  ppppppcVar35 = ppppppcVar35 + 1;\n                  ppppppcVar39 = (code ******)((int)ppppppcVar39 + 1);\n                  if (ppppppcVar32 == ppppppcVar39) {\n                    if (ppppppcVar32 == ppppppcVar39) goto LAB_00056704;\n                    break;\n                  }\n                } while ((code ******)*ppppppcVar35 == ppppppcVar39);\n              }\n            }\n          }\n          pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23abc) + 0x73a4);\n          pppppppcVar30 = (code *******)FUN_00045fb4(pppppppcVar29[0xd],pppppppcVar38,pppppppcVar3);\n          pppppppcVar31 = pppppppcVar29;\n          if (pppppppcVar30 == (code *******)0x0) {\n            pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23b40) + -0x5be4);\n            pppppppcVar30 = (code *******)FUN_00045fb4(pppppppcVar29[0xd],pppppppcVar38);\n            if (pppppppcVar30 == (code *******)0x0) {\n              FUN_00046050(pppppppcVar29[0xd],*(int *)(puVar41 + 0x23abc) + 0x61b4);\n              pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23b40) + -0x4614);\n              pppppppcVar30 = (code *******)FUN_00046050(pppppppcVar29[0xd],pppppppcVar38);\n              if (pppppppcVar30 == (code *******)0x0) {\n                uVar7 = 0;\n                iVar18 = *(int *)(puVar41 + 0x23b40);\n                pppppppcVar33 = (code *******)0x0;\nLAB_00056744:\n                if ((code *******)pppppppcVar29[2] != pppppppcVar33) {\nLAB_00056750:\n                  if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                    pppppppcVar38 = pppppppcVar29;\n                    pppppppcVar31 = pppppppcVar33;\n                    pppppppcVar30 =\n                         (code *******)\n                         (*(code *)(iVar18 + -0x561c))\n                                   (&ppppppcStack_204,pppppppcVar29,pppppppcVar33,1);\n                    if (pppppppcVar30 != (code *******)0x0) goto LAB_00056168;\n                    if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                      (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                      uVar7 = 1;\n                    }\n                  }\n                  pppppppcVar33 = (code *******)((int)pppppppcVar33 + 1);\n                  goto LAB_00056744;\n                }\n                if (uVar7 != 0) {\n                  uVar7 = 0;\n                  pppppppcVar33 = (code *******)0x0;\n                  goto LAB_00056750;\n                }\n                if (((((uint)pppppppcVar3[7] & 0x8000000) == 0) &&\n                    (pppppppcVar3[6] != (code ******)0x0)) &&\n                   ((char)*(code *)(pppppppcVar29 + 0x16) < '\0')) {\n                  ppppppcVar32 = pppppppcVar29[2];\n                }\n                else {\n                  if (pppppppcVar29[0x13] == (code ******)0x0) goto LAB_000568f0;\n                  ppppppcVar32 = pppppppcVar29[2];\n                }\n                ppppppcVar35 = (code ******)\n                               (**(code **)(puVar41 + 0x23cf0))((int)ppppppcVar32 * 0xc);\n                pppppppcVar29[7] = ppppppcVar35;\n                if (ppppppcVar35 == (code ******)0x0) {\n                  pppppppcVar30 = (code *******)0xc;\n                  goto LAB_00056168;\n                }\n                if (ppppppcVar32 != (code ******)0x0) {\n                  iVar18 = 0;\n                  ppppppcVar32 = (code ******)0x0;\n                  do {\n                    puVar21 = (undefined1 *)((int)pppppppcVar29[7] + iVar18);\n                    *puVar21 = 0;\n                    puVar21[1] = 0;\n                    puVar21[2] = 0;\n                    puVar21[3] = 0;\n                    puVar21[4] = 0;\n                    puVar21[5] = 0;\n                    puVar21[6] = 0;\n                    puVar21[7] = 0;\n                    puVar21[8] = 0;\n                    puVar21[9] = 0;\n                    puVar21[10] = 0;\n                    puVar21[0xb] = 0;\n                    ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                    iVar18 = iVar18 + 0xc;\n                  } while (ppppppcVar32 < pppppppcVar29[2]);\n                  iVar18 = *(int *)(puVar41 + 0x23abc);\n                  if (pppppppcVar29[2] != (code ******)0x0) {\n                    iVar43 = 0;\n                    pppppppcStack_218 = (code *******)0x0;\n                    do {\n                      piVar5 = *(int **)((int)pppppppcVar29[6] + iVar43 + 8);\n                      if (0 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4)) {\n                        iVar37 = 0;\n                        do {\n                          pppppppcVar38 = pppppppcStack_218;\n                          iVar22 = (*(code *)(iVar18 + 0x6e30))\n                                             (pppppppcVar29[7] + *piVar5 * 3,pppppppcStack_218);\n                          pppppppcVar30 = (code *******)0xc;\n                          if (iVar22 == 0) goto LAB_00056168;\n                          iVar37 = iVar37 + 1;\n                          piVar5 = piVar5 + 1;\n                        } while (iVar37 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4));\n                      }\n                      pppppppcStack_218 = (code *******)((int)pppppppcStack_218 + 1);\n                      iVar43 = iVar43 + 0xc;\n                    } while (pppppppcStack_218 < pppppppcVar29[2]);\n                  }\n                }\nLAB_000568f0:\n                pppppppcStack_20c = (code *******)0x0;\n                if (((((uint)pppppppcVar34[0x16] & 0x20000000) != 0) && (uVar16 == 0)) &&\n                   (pppppppcVar3[5] == (code ******)0x0)) {\n                  if (pppppppcVar34[2] != (code ******)0x0) {\n                    pppppppcVar31 = (code *******)(*(int *)(puVar41 + 0x23754) + 0x6e4c);\n                    if (*(byte *)(*pppppppcVar34 + 1) < 0xd) {\n                    \n                    \n                      pppppppcVar29 =\n                           (code *******)\n                           (*(code *)(puVar41 +\n                                     (int)(pppppppcVar31[*(byte *)(*pppppppcVar34 + 1)] + 0xadc7)))\n                                     ();\n                      return pppppppcVar29;\n                    }\n                    (**(code **)(puVar41 + 0x23bc4))(0);\n                    if (uVar7 != 0) {\n                      pppppppcVar31 = (code *******)&DAT_00000007;\n                      ppppppcVar32 = (code ******)0x0;\n                      do {\n                        ppppppcVar35 = *pppppppcVar34 + (int)ppppppcVar32 * 2;\n                        if (*(char *)(ppppppcVar35 + 1) == '\x01') {\n                          if (*(char *)ppppppcVar35 < '\0') {\n                            ppppppcVar35[1] = (code *****)((uint)ppppppcVar35[1] & 0xfffffbff);\n                          }\n                        }\n                        else if (*(char *)(ppppppcVar35 + 1) == '\x05') {\n                          *(char *)(ppppppcVar35 + 1) = '\a';\n                        }\n                        ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                      } while (ppppppcVar32 < pppppppcVar34[2]);\n                    }\n                  }\n                  pppppppcVar34[0x17] = (code ******)0x1;\n                  if (0 < (int)pppppppcVar34[0x13]) {\n                    uVar7 = 1;\n                  }\n                  *(byte *)(pppppppcVar34 + 0x16) =\n                       (byte)*(code *)(pppppppcVar34 + 0x16) & 0x9f | (byte)((uVar7 & 1) << 6);\n                }\n                ppppppcVar32 = (code ******)pppppppcVar34[0xd][3][7];\n                pppppppcVar34[0x12] = ppppppcVar32;\n                pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppppcVar32 * 3);\n                pppppppcVar33 = (code *******)FUN_000483e8(&ppppppcStack_204,pppppppcVar38);\n                pppppppcVar29 = pppppppcVar33;\n                pppppppcStack_208 = pppppppcVar33;\n                if (pppppppcVar33 == (code *******)0x0) {\n                  if ((0 < (int)pppppppcVar34[0x13]) && (0 < iStack_200)) {\n                    iVar18 = *(int *)(puVar41 + 0x23abc);\n                    iVar43 = *(int *)(puVar41 + 0x23abc);\n                    pppppppcVar29 = (code *******)0x0;\n                    do {\n                      pppppppcVar31 =\n                           (code *******)(*pppppppcVar34 + piStack_1fc[(int)pppppppcVar29] * 2);\n                      if (*(code *)(pppppppcVar31 + 1) == (code)0x4) {\n                        iVar37 = 0;\n                        piVar5 = piStack_1fc;\n                        if (iStack_200 < 1) {\nLAB_00056b8c:\n                          if (iStack_200 != iVar37) {\n                            ppppcVar40 = *pppppppcVar34[5][piStack_1fc[(int)pppppppcVar29] * 3 + 2];\n                            iVar37 = (*(code *)(iVar18 + 0x5ea8))(&ppppppcStack_204,ppppcVar40);\n                            if (iVar37 == 0) {\n                              pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppcVar40 * 3)\n                              ;\n                              pppppppcVar29 =\n                                   (code *******)\n                                   (*(code *)(iVar43 + 0x7f1c))(&ppppppcStack_204,pppppppcVar38);\n                              if (pppppppcVar29 != (code *******)0x0) goto LAB_00056cb8;\n                            }\n                          }\n                        }\n                        else {\n                          do {\n                            ppppppcVar32 = *pppppppcVar34 + *piVar5 * 2;\n                            if ((*(char *)(ppppppcVar32 + 1) == '\t') &&\n                               ((code ******)*ppppppcVar32 == *pppppppcVar31)) goto LAB_00056b8c;\n                            iVar37 = iVar37 + 1;\n                            piVar5 = piVar5 + 1;\n                          } while (iStack_200 != iVar37);\n                        }\n                      }\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1);\n                    } while ((int)pppppppcVar29 < iStack_200);\n                  }\n                  pppppppcVar31 = &ppppppcStack_204;\n                  pppppppcVar38 = pppppppcVar34;\n                  ppppppcVar32 = (code ******)\n                                 FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,0);\n                  pppppppcVar34[9] = ppppppcVar32;\n                  pppppppcVar29 = pppppppcStack_208;\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    if (((uint)ppppppcVar32[0xd] & 0x1000000) == 0) {\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar34[10] = ppppppcVar32;\n                    }\n                    else {\n                      pppppppcVar31 = &ppppppcStack_204;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,1);\n                      pppppppcVar34[10] = ppppppcVar32;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,2);\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar38 = pppppppcVar34;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,6);\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar29 = pppppppcStack_208;\n                      if (((pppppppcVar34[10] == (code ******)0x0) ||\n                          (pppppppcVar34[0xb] == (code ******)0x0)) ||\n                         (ppppppcVar32 == (code ******)0x0)) goto LAB_00056cb8;\n                    }\n                    (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                    pppppppcVar29 = pppppppcVar33;\n                  }\n                }\nLAB_00056cb8:\n                pppppppcStack_20c = pppppppcVar29;\n                FUN_0004b234(pppppppcVar3);\n                FUN_0004b2bc(&pppppppcStack_1f8);\n                pppppppcVar29 = pppppppcStack_20c;\n                if (pppppppcStack_20c != (code *******)0x0) {\n                  if (*(int *)(puVar41 + 0x23c78) != 0) {\n                    (**(code **)(puVar41 + 0x23df0))(pppppppcVar34 + 0x22);\n                  }\n                  FUN_0004b338(pppppppcVar34);\n                  *pppppppcVar3 = (code ******)0x0;\n                  pppppppcVar3[1] = (code ******)0x0;\n                  pppppppcVar29 = pppppppcStack_20c;\n                }\n                goto LAB_00056cfc;\n              }\n            }\n          }\n        }\n      }\n      else {\n        pppppppcVar31 = (code *******)0x0;\n        if (pppppppcVar29 != (code *******)0x0) {\n          pppppppcVar33 = (code *******)FUN_000470f0(ppppppcVar32,0,0,2);\n          goto LAB_000564b0;\n        }\nLAB_000566f4:\n        pppppppcVar34[0xd] = (code ******)0x0;\n        pppppppcVar30 = pppppppcStack_20c;\n      }\nLAB_00056168:\n      pppppppcStack_20c = pppppppcVar30;\n      FUN_0004b234(pppppppcVar3);\n      FUN_0004b2bc(&pppppppcStack_1f8);\n      if (*(int *)(puVar41 + 0x23c78) != 0) {\n        (**(code **)(puVar41 + 0x23df0))(pppppppcVar34 + 0x22);\n      }\n      FUN_0004b338(pppppppcVar34);\n      *pppppppcVar3 = (code ******)0x0;\n      pppppppcVar3[1] = (code ******)0x0;\n      pppppppcVar29 = pppppppcStack_20c;\n      goto LAB_00056cfc;\n    }" (if "if") (parenthesized_expression "(*(int *)(puVar41 + 0x23c78) == 0)" (( "(") (binary_expression "*(int *)(puVar41 + 0x23c78) == 0" (pointer_expression "*(int *)(puVar41 + 0x23c78)" (* "*") (cast_expression "(int *)(puVar41 + 0x23c78)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar41 + 0x23c78)" (( "(") (binary_expression "puVar41 + 0x23c78" (identifier "puVar41") (+ "+") (number_literal "0x23c78")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_00056054:\n      ppppppcVar32 = pppppppcVar3[5];\n      uVar16 = (uint)pppppppcVar33 & 0x400000;\n      bVar1 = uVar16 != 0;\n      pppppppcVar31 = (code *******)0x4c;\n      pppppppcVar38 = (code *******)0x0;\n      (**(code **)(puVar41 + 0x23c9c))(apppppppcStack_1f4,0);\n      cStack_1ad = ppppppcVar32 != (code ******)0x0 || bVar1;\n      ppppppcStack_1a8 = pppppppcVar34[0x17];\n      bStack_1af = (byte)((uint)((int)pppppppcVar34[0x16] << 2) >> 0x1f);\n      bStack_1ae = (byte)((uint)((int)pppppppcVar34[0x16] << 3) >> 0x1f);\n      pppppppcStack_1f8 = pppppppcVar29;\n      pppppppcStack_1cc = param_1;\n      pppppppcStack_1c8 = param_1;\n      pppppppcStack_1c4 = param_1;\n      pppppppcStack_1c0 = param_1;\n      ppppppcStack_1b8 = ppppppcVar32;\n      uStack_1b0 = bVar1;\n      if (0 < (int)param_1) {\n        pppppppcVar38 = (code *******)((int)param_1 + 1);\n        pppppppcVar30 = (code *******)FUN_00046d2c(&pppppppcStack_1f8,pppppppcVar38);\n        if (pppppppcVar30 == (code *******)0x0) goto LAB_000560cc;\n        goto LAB_00056168;\n      }\nLAB_000560cc:\n      if (cStack_1ad != '\0') {\n        pppppppcVar29 = apppppppcStack_1f4[0];\n      }\n      apppppppcStack_1f4[0] = pppppppcVar29;\n      if (uVar16 == 0) {\n        if ((int)pppppppcVar34[0x17] < 2) {\n          if (ppppppcVar32 != (code ******)0x0) {\n            FUN_00045dc8();\n          }\n        }\n        else {\n          FUN_00047cb0(&pppppppcStack_1f8);\n        }\n      }\n      else {\n        if (1 < (int)pppppppcVar34[0x17]) {\n          iVar18 = *(int *)(puVar41 + 0x23abc);\n          do {\n            pppppppcVar30 = (code *******)FUN_00048714(&pppppppcStack_1f8);\n            if (pppppppcVar30 != (code *******)0x0) break;\n            if (((int)param_1 <= iStack_1d8) ||\n               (pppppppcVar38 = (code *******)(iStack_1d4 << 1),\n               (int)pppppppcVar34[0x17] + iStack_1dc < iStack_1d4)) goto LAB_000563d0;\n            pppppppcVar30 =\n                 (code *******)(*(code *)(iVar18 + 0x6d2c))(&pppppppcStack_1f8,pppppppcVar38);\n          } while (pppppppcVar30 == (code *******)0x0);\n          goto LAB_00056168;\n        }\n        FUN_00047be4(&pppppppcStack_1f8);\n      }\nLAB_000563d0:\n      pppppppcStack_20c = (code *******)0x0;\n      pppppppcVar3[6] = (code ******)0x0;\n      ppppppcVar32 = *pppppppcVar3;\n      ppppppcVar32[0x20] = (code *****)pppppppcVar33;\n      FUN_00049e40(&ppppppcStack_204,&pppppppcStack_1f8,(uint)pppppppcVar33 | 0x800000);\n      pppppppcVar38 = pppppppcVar3;\n      pppppppcVar29 =\n           (code *******)\n           FUN_00051868(&pppppppcStack_1f8,pppppppcVar3,&ppppppcStack_204,pppppppcVar33,0,\n                        &pppppppcStack_20c);\n      if (pppppppcStack_20c == (code *******)0x0) {\n        pppppppcVar31 = (code *******)0x0;\n        pppppppcVar38 = (code *******)0x0;\n        pppppppcVar33 = (code *******)FUN_000470f0(ppppppcVar32,0,0,2);\n        pppppppcVar30 = pppppppcVar33;\n        if (pppppppcVar29 != (code *******)0x0) {\nLAB_000564b0:\n          pppppppcVar31 = pppppppcVar33;\n          pppppppcVar30 = (code *******)FUN_000470f0(ppppppcVar32,pppppppcVar29,pppppppcVar33,0x10);\n          pppppppcVar38 = pppppppcVar29;\n        }\n        if ((pppppppcVar33 == (code *******)0x0) ||\n           (pcVar4 = *(code **)(puVar41 + 0x23cf0), pppppppcVar30 == (code *******)0x0)) {\n          pppppppcStack_20c = (code *******)0xc;\n          goto LAB_000566f4;\n        }\n        pppppppcVar34[0xd] = (code ******)pppppppcVar30;\n        pppppppcVar29 = (code *******)*pppppppcVar3;\n        ppppppcVar39 = pppppppcVar29[1];\n        iVar18 = (int)ppppppcVar39 << 2;\n        ppppppcVar32 = (code ******)(*pcVar4)(iVar18);\n        pppppppcVar29[3] = ppppppcVar32;\n        ppppppcVar35 = (code ******)(**(code **)(puVar41 + 0x23cf0))(iVar18);\n        pppppppcVar29[4] = ppppppcVar35;\n        iVar18 = (int)ppppppcVar39 * 0xc;\n        ppppppcVar39 = (code ******)(**(code **)(puVar41 + 0x23cf0))(iVar18);\n        pppppppcVar29[5] = ppppppcVar39;\n        ppppppcVar20 = (code ******)(**(code **)(puVar41 + 0x23cf0))(iVar18);\n        pppppppcVar29[6] = ppppppcVar20;\n        if (ppppppcVar32 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else if (ppppppcVar35 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else if (ppppppcVar39 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else if (ppppppcVar20 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else {\n          ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23cf0))((int)pppppppcVar3[6] << 2);\n          pppppppcVar29[0x21] = ppppppcVar32;\n          if (ppppppcVar32 != (code ******)0x0) {\n            ppppppcVar32 = (code ******)0x0;\n            if (pppppppcVar3[6] != (code ******)0x0) {\n              do {\n                pppppppcVar29[0x21][(int)ppppppcVar32] = (code *****)ppppppcVar32;\n                ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n              } while (ppppppcVar32 < pppppppcVar3[6]);\n            }\n            FUN_00046050(pppppppcVar29[0xd],*(int *)(puVar41 + 0x23abc) + 0x60e8,pppppppcVar29);\n            ppppppcVar32 = pppppppcVar3[6];\n            if (ppppppcVar32 == (code ******)0x0) {\nLAB_00056704:\n              (**(code **)(puVar41 + 0x23dc0))(pppppppcVar29[0x21]);\n              pppppppcVar29[0x21] = (code ******)0x0;\n            }\n            else {\n              ppppppcVar35 = pppppppcVar29[0x21];\n              if (*ppppppcVar35 == (code *****)0x0) {\n                ppppppcVar39 = (code ******)0x0;\n                do {\n                  ppppppcVar35 = ppppppcVar35 + 1;\n                  ppppppcVar39 = (code ******)((int)ppppppcVar39 + 1);\n                  if (ppppppcVar32 == ppppppcVar39) {\n                    if (ppppppcVar32 == ppppppcVar39) goto LAB_00056704;\n                    break;\n                  }\n                } while ((code ******)*ppppppcVar35 == ppppppcVar39);\n              }\n            }\n          }\n          pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23abc) + 0x73a4);\n          pppppppcVar30 = (code *******)FUN_00045fb4(pppppppcVar29[0xd],pppppppcVar38,pppppppcVar3);\n          pppppppcVar31 = pppppppcVar29;\n          if (pppppppcVar30 == (code *******)0x0) {\n            pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23b40) + -0x5be4);\n            pppppppcVar30 = (code *******)FUN_00045fb4(pppppppcVar29[0xd],pppppppcVar38);\n            if (pppppppcVar30 == (code *******)0x0) {\n              FUN_00046050(pppppppcVar29[0xd],*(int *)(puVar41 + 0x23abc) + 0x61b4);\n              pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23b40) + -0x4614);\n              pppppppcVar30 = (code *******)FUN_00046050(pppppppcVar29[0xd],pppppppcVar38);\n              if (pppppppcVar30 == (code *******)0x0) {\n                uVar7 = 0;\n                iVar18 = *(int *)(puVar41 + 0x23b40);\n                pppppppcVar33 = (code *******)0x0;\nLAB_00056744:\n                if ((code *******)pppppppcVar29[2] != pppppppcVar33) {\nLAB_00056750:\n                  if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                    pppppppcVar38 = pppppppcVar29;\n                    pppppppcVar31 = pppppppcVar33;\n                    pppppppcVar30 =\n                         (code *******)\n                         (*(code *)(iVar18 + -0x561c))\n                                   (&ppppppcStack_204,pppppppcVar29,pppppppcVar33,1);\n                    if (pppppppcVar30 != (code *******)0x0) goto LAB_00056168;\n                    if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                      (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                      uVar7 = 1;\n                    }\n                  }\n                  pppppppcVar33 = (code *******)((int)pppppppcVar33 + 1);\n                  goto LAB_00056744;\n                }\n                if (uVar7 != 0) {\n                  uVar7 = 0;\n                  pppppppcVar33 = (code *******)0x0;\n                  goto LAB_00056750;\n                }\n                if (((((uint)pppppppcVar3[7] & 0x8000000) == 0) &&\n                    (pppppppcVar3[6] != (code ******)0x0)) &&\n                   ((char)*(code *)(pppppppcVar29 + 0x16) < '\0')) {\n                  ppppppcVar32 = pppppppcVar29[2];\n                }\n                else {\n                  if (pppppppcVar29[0x13] == (code ******)0x0) goto LAB_000568f0;\n                  ppppppcVar32 = pppppppcVar29[2];\n                }\n                ppppppcVar35 = (code ******)\n                               (**(code **)(puVar41 + 0x23cf0))((int)ppppppcVar32 * 0xc);\n                pppppppcVar29[7] = ppppppcVar35;\n                if (ppppppcVar35 == (code ******)0x0) {\n                  pppppppcVar30 = (code *******)0xc;\n                  goto LAB_00056168;\n                }\n                if (ppppppcVar32 != (code ******)0x0) {\n                  iVar18 = 0;\n                  ppppppcVar32 = (code ******)0x0;\n                  do {\n                    puVar21 = (undefined1 *)((int)pppppppcVar29[7] + iVar18);\n                    *puVar21 = 0;\n                    puVar21[1] = 0;\n                    puVar21[2] = 0;\n                    puVar21[3] = 0;\n                    puVar21[4] = 0;\n                    puVar21[5] = 0;\n                    puVar21[6] = 0;\n                    puVar21[7] = 0;\n                    puVar21[8] = 0;\n                    puVar21[9] = 0;\n                    puVar21[10] = 0;\n                    puVar21[0xb] = 0;\n                    ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                    iVar18 = iVar18 + 0xc;\n                  } while (ppppppcVar32 < pppppppcVar29[2]);\n                  iVar18 = *(int *)(puVar41 + 0x23abc);\n                  if (pppppppcVar29[2] != (code ******)0x0) {\n                    iVar43 = 0;\n                    pppppppcStack_218 = (code *******)0x0;\n                    do {\n                      piVar5 = *(int **)((int)pppppppcVar29[6] + iVar43 + 8);\n                      if (0 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4)) {\n                        iVar37 = 0;\n                        do {\n                          pppppppcVar38 = pppppppcStack_218;\n                          iVar22 = (*(code *)(iVar18 + 0x6e30))\n                                             (pppppppcVar29[7] + *piVar5 * 3,pppppppcStack_218);\n                          pppppppcVar30 = (code *******)0xc;\n                          if (iVar22 == 0) goto LAB_00056168;\n                          iVar37 = iVar37 + 1;\n                          piVar5 = piVar5 + 1;\n                        } while (iVar37 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4));\n                      }\n                      pppppppcStack_218 = (code *******)((int)pppppppcStack_218 + 1);\n                      iVar43 = iVar43 + 0xc;\n                    } while (pppppppcStack_218 < pppppppcVar29[2]);\n                  }\n                }\nLAB_000568f0:\n                pppppppcStack_20c = (code *******)0x0;\n                if (((((uint)pppppppcVar34[0x16] & 0x20000000) != 0) && (uVar16 == 0)) &&\n                   (pppppppcVar3[5] == (code ******)0x0)) {\n                  if (pppppppcVar34[2] != (code ******)0x0) {\n                    pppppppcVar31 = (code *******)(*(int *)(puVar41 + 0x23754) + 0x6e4c);\n                    if (*(byte *)(*pppppppcVar34 + 1) < 0xd) {\n                    \n                    \n                      pppppppcVar29 =\n                           (code *******)\n                           (*(code *)(puVar41 +\n                                     (int)(pppppppcVar31[*(byte *)(*pppppppcVar34 + 1)] + 0xadc7)))\n                                     ();\n                      return pppppppcVar29;\n                    }\n                    (**(code **)(puVar41 + 0x23bc4))(0);\n                    if (uVar7 != 0) {\n                      pppppppcVar31 = (code *******)&DAT_00000007;\n                      ppppppcVar32 = (code ******)0x0;\n                      do {\n                        ppppppcVar35 = *pppppppcVar34 + (int)ppppppcVar32 * 2;\n                        if (*(char *)(ppppppcVar35 + 1) == '\x01') {\n                          if (*(char *)ppppppcVar35 < '\0') {\n                            ppppppcVar35[1] = (code *****)((uint)ppppppcVar35[1] & 0xfffffbff);\n                          }\n                        }\n                        else if (*(char *)(ppppppcVar35 + 1) == '\x05') {\n                          *(char *)(ppppppcVar35 + 1) = '\a';\n                        }\n                        ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                      } while (ppppppcVar32 < pppppppcVar34[2]);\n                    }\n                  }\n                  pppppppcVar34[0x17] = (code ******)0x1;\n                  if (0 < (int)pppppppcVar34[0x13]) {\n                    uVar7 = 1;\n                  }\n                  *(byte *)(pppppppcVar34 + 0x16) =\n                       (byte)*(code *)(pppppppcVar34 + 0x16) & 0x9f | (byte)((uVar7 & 1) << 6);\n                }\n                ppppppcVar32 = (code ******)pppppppcVar34[0xd][3][7];\n                pppppppcVar34[0x12] = ppppppcVar32;\n                pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppppcVar32 * 3);\n                pppppppcVar33 = (code *******)FUN_000483e8(&ppppppcStack_204,pppppppcVar38);\n                pppppppcVar29 = pppppppcVar33;\n                pppppppcStack_208 = pppppppcVar33;\n                if (pppppppcVar33 == (code *******)0x0) {\n                  if ((0 < (int)pppppppcVar34[0x13]) && (0 < iStack_200)) {\n                    iVar18 = *(int *)(puVar41 + 0x23abc);\n                    iVar43 = *(int *)(puVar41 + 0x23abc);\n                    pppppppcVar29 = (code *******)0x0;\n                    do {\n                      pppppppcVar31 =\n                           (code *******)(*pppppppcVar34 + piStack_1fc[(int)pppppppcVar29] * 2);\n                      if (*(code *)(pppppppcVar31 + 1) == (code)0x4) {\n                        iVar37 = 0;\n                        piVar5 = piStack_1fc;\n                        if (iStack_200 < 1) {\nLAB_00056b8c:\n                          if (iStack_200 != iVar37) {\n                            ppppcVar40 = *pppppppcVar34[5][piStack_1fc[(int)pppppppcVar29] * 3 + 2];\n                            iVar37 = (*(code *)(iVar18 + 0x5ea8))(&ppppppcStack_204,ppppcVar40);\n                            if (iVar37 == 0) {\n                              pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppcVar40 * 3)\n                              ;\n                              pppppppcVar29 =\n                                   (code *******)\n                                   (*(code *)(iVar43 + 0x7f1c))(&ppppppcStack_204,pppppppcVar38);\n                              if (pppppppcVar29 != (code *******)0x0) goto LAB_00056cb8;\n                            }\n                          }\n                        }\n                        else {\n                          do {\n                            ppppppcVar32 = *pppppppcVar34 + *piVar5 * 2;\n                            if ((*(char *)(ppppppcVar32 + 1) == '\t') &&\n                               ((code ******)*ppppppcVar32 == *pppppppcVar31)) goto LAB_00056b8c;\n                            iVar37 = iVar37 + 1;\n                            piVar5 = piVar5 + 1;\n                          } while (iStack_200 != iVar37);\n                        }\n                      }\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1);\n                    } while ((int)pppppppcVar29 < iStack_200);\n                  }\n                  pppppppcVar31 = &ppppppcStack_204;\n                  pppppppcVar38 = pppppppcVar34;\n                  ppppppcVar32 = (code ******)\n                                 FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,0);\n                  pppppppcVar34[9] = ppppppcVar32;\n                  pppppppcVar29 = pppppppcStack_208;\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    if (((uint)ppppppcVar32[0xd] & 0x1000000) == 0) {\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar34[10] = ppppppcVar32;\n                    }\n                    else {\n                      pppppppcVar31 = &ppppppcStack_204;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,1);\n                      pppppppcVar34[10] = ppppppcVar32;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,2);\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar38 = pppppppcVar34;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,6);\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar29 = pppppppcStack_208;\n                      if (((pppppppcVar34[10] == (code ******)0x0) ||\n                          (pppppppcVar34[0xb] == (code ******)0x0)) ||\n                         (ppppppcVar32 == (code ******)0x0)) goto LAB_00056cb8;\n                    }\n                    (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                    pppppppcVar29 = pppppppcVar33;\n                  }\n                }\nLAB_00056cb8:\n                pppppppcStack_20c = pppppppcVar29;\n                FUN_0004b234(pppppppcVar3);\n                FUN_0004b2bc(&pppppppcStack_1f8);\n                pppppppcVar29 = pppppppcStack_20c;\n                if (pppppppcStack_20c != (code *******)0x0) {\n                  if (*(int *)(puVar41 + 0x23c78) != 0) {\n                    (**(code **)(puVar41 + 0x23df0))(pppppppcVar34 + 0x22);\n                  }\n                  FUN_0004b338(pppppppcVar34);\n                  *pppppppcVar3 = (code ******)0x0;\n                  pppppppcVar3[1] = (code ******)0x0;\n                  pppppppcVar29 = pppppppcStack_20c;\n                }\n                goto LAB_00056cfc;\n              }\n            }\n          }\n        }\n      }\n      else {\n        pppppppcVar31 = (code *******)0x0;\n        if (pppppppcVar29 != (code *******)0x0) {\n          pppppppcVar33 = (code *******)FUN_000470f0(ppppppcVar32,0,0,2);\n          goto LAB_000564b0;\n        }\nLAB_000566f4:\n        pppppppcVar34[0xd] = (code ******)0x0;\n        pppppppcVar30 = pppppppcStack_20c;\n      }\nLAB_00056168:\n      pppppppcStack_20c = pppppppcVar30;\n      FUN_0004b234(pppppppcVar3);\n      FUN_0004b2bc(&pppppppcStack_1f8);\n      if (*(int *)(puVar41 + 0x23c78) != 0) {\n        (**(code **)(puVar41 + 0x23df0))(pppppppcVar34 + 0x22);\n      }\n      FUN_0004b338(pppppppcVar34);\n      *pppppppcVar3 = (code ******)0x0;\n      pppppppcVar3[1] = (code ******)0x0;\n      pppppppcVar29 = pppppppcStack_20c;\n      goto LAB_00056cfc;\n    }" ({ "{") (labeled_statement "LAB_00056054:\n      ppppppcVar32 = pppppppcVar3[5];" (statement_identifier "LAB_00056054") (: ":") (expression_statement "ppppppcVar32 = pppppppcVar3[5];" (assignment_expression "ppppppcVar32 = pppppppcVar3[5]" (identifier "ppppppcVar32") (= "=") (subscript_expression "pppppppcVar3[5]" (identifier "pppppppcVar3") ([ "[") (number_literal "5") (] "]"))) (; ";"))) (expression_statement "uVar16 = (uint)pppppppcVar33 & 0x400000;" (assignment_expression "uVar16 = (uint)pppppppcVar33 & 0x400000" (identifier "uVar16") (= "=") (binary_expression "(uint)pppppppcVar33 & 0x400000" (cast_expression "(uint)pppppppcVar33" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pppppppcVar33")) (& "&") (number_literal "0x400000"))) (; ";")) (expression_statement "bVar1 = uVar16 != 0;" (assignment_expression "bVar1 = uVar16 != 0" (identifier "bVar1") (= "=") (binary_expression "uVar16 != 0" (identifier "uVar16") (!= "!=") (number_literal "0"))) (; ";")) (expression_statement "pppppppcVar31 = (code *******)0x4c;" (assignment_expression "pppppppcVar31 = (code *******)0x4c" (identifier "pppppppcVar31") (= "=") (cast_expression "(code *******)0x4c" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x4c"))) (; ";")) (expression_statement "pppppppcVar38 = (code *******)0x0;" (assignment_expression "pppppppcVar38 = (code *******)0x0" (identifier "pppppppcVar38") (= "=") (cast_expression "(code *******)0x0" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "(**(code **)(puVar41 + 0x23c9c))(apppppppcStack_1f4,0);" (call_expression "(**(code **)(puVar41 + 0x23c9c))(apppppppcStack_1f4,0)" (parenthesized_expression "(**(code **)(puVar41 + 0x23c9c))" (( "(") (pointer_expression "**(code **)(puVar41 + 0x23c9c)" (* "*") (pointer_expression "*(code **)(puVar41 + 0x23c9c)" (* "*") (cast_expression "(code **)(puVar41 + 0x23c9c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar41 + 0x23c9c)" (( "(") (binary_expression "puVar41 + 0x23c9c" (identifier "puVar41") (+ "+") (number_literal "0x23c9c")) () ")"))))) () ")")) (argument_list "(apppppppcStack_1f4,0)" (( "(") (identifier "apppppppcStack_1f4") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "cStack_1ad = ppppppcVar32 != (code ******)0x0 || bVar1;" (assignment_expression "cStack_1ad = ppppppcVar32 != (code ******)0x0 || bVar1" (identifier "cStack_1ad") (= "=") (binary_expression "ppppppcVar32 != (code ******)0x0 || bVar1" (binary_expression "ppppppcVar32 != (code ******)0x0" (identifier "ppppppcVar32") (!= "!=") (cast_expression "(code ******)0x0" (( "(") (type_descriptor "code ******" (type_identifier "code") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) (|| "||") (identifier "bVar1"))) (; ";")) (expression_statement "ppppppcStack_1a8 = pppppppcVar34[0x17];" (assignment_expression "ppppppcStack_1a8 = pppppppcVar34[0x17]" (identifier "ppppppcStack_1a8") (= "=") (subscript_expression "pppppppcVar34[0x17]" (identifier "pppppppcVar34") ([ "[") (number_literal "0x17") (] "]"))) (; ";")) (expression_statement "bStack_1af = (byte)((uint)((int)pppppppcVar34[0x16] << 2) >> 0x1f);" (assignment_expression "bStack_1af = (byte)((uint)((int)pppppppcVar34[0x16] << 2) >> 0x1f)" (identifier "bStack_1af") (= "=") (call_expression "(byte)((uint)((int)pppppppcVar34[0x16] << 2) >> 0x1f)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((uint)((int)pppppppcVar34[0x16] << 2) >> 0x1f)" (( "(") (binary_expression "(uint)((int)pppppppcVar34[0x16] << 2) >> 0x1f" (call_expression "(uint)((int)pppppppcVar34[0x16] << 2)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int)pppppppcVar34[0x16] << 2)" (( "(") (binary_expression "(int)pppppppcVar34[0x16] << 2" (cast_expression "(int)pppppppcVar34[0x16]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "pppppppcVar34[0x16]" (identifier "pppppppcVar34") ([ "[") (number_literal "0x16") (] "]"))) (<< "<<") (number_literal "2")) () ")"))) (>> ">>") (number_literal "0x1f")) () ")")))) (; ";")) (expression_statement "bStack_1ae = (byte)((uint)((int)pppppppcVar34[0x16] << 3) >> 0x1f);" (assignment_expression "bStack_1ae = (byte)((uint)((int)pppppppcVar34[0x16] << 3) >> 0x1f)" (identifier "bStack_1ae") (= "=") (call_expression "(byte)((uint)((int)pppppppcVar34[0x16] << 3) >> 0x1f)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((uint)((int)pppppppcVar34[0x16] << 3) >> 0x1f)" (( "(") (binary_expression "(uint)((int)pppppppcVar34[0x16] << 3) >> 0x1f" (call_expression "(uint)((int)pppppppcVar34[0x16] << 3)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int)pppppppcVar34[0x16] << 3)" (( "(") (binary_expression "(int)pppppppcVar34[0x16] << 3" (cast_expression "(int)pppppppcVar34[0x16]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "pppppppcVar34[0x16]" (identifier "pppppppcVar34") ([ "[") (number_literal "0x16") (] "]"))) (<< "<<") (number_literal "3")) () ")"))) (>> ">>") (number_literal "0x1f")) () ")")))) (; ";")) (expression_statement "pppppppcStack_1f8 = pppppppcVar29;" (assignment_expression "pppppppcStack_1f8 = pppppppcVar29" (identifier "pppppppcStack_1f8") (= "=") (identifier "pppppppcVar29")) (; ";")) (expression_statement "pppppppcStack_1cc = param_1;" (assignment_expression "pppppppcStack_1cc = param_1" (identifier "pppppppcStack_1cc") (= "=") (identifier "param_1")) (; ";")) (expression_statement "pppppppcStack_1c8 = param_1;" (assignment_expression "pppppppcStack_1c8 = param_1" (identifier "pppppppcStack_1c8") (= "=") (identifier "param_1")) (; ";")) (expression_statement "pppppppcStack_1c4 = param_1;" (assignment_expression "pppppppcStack_1c4 = param_1" (identifier "pppppppcStack_1c4") (= "=") (identifier "param_1")) (; ";")) (expression_statement "pppppppcStack_1c0 = param_1;" (assignment_expression "pppppppcStack_1c0 = param_1" (identifier "pppppppcStack_1c0") (= "=") (identifier "param_1")) (; ";")) (expression_statement "ppppppcStack_1b8 = ppppppcVar32;" (assignment_expression "ppppppcStack_1b8 = ppppppcVar32" (identifier "ppppppcStack_1b8") (= "=") (identifier "ppppppcVar32")) (; ";")) (expression_statement "uStack_1b0 = bVar1;" (assignment_expression "uStack_1b0 = bVar1" (identifier "uStack_1b0") (= "=") (identifier "bVar1")) (; ";")) (if_statement "if (0 < (int)param_1) {\n        pppppppcVar38 = (code *******)((int)param_1 + 1);\n        pppppppcVar30 = (code *******)FUN_00046d2c(&pppppppcStack_1f8,pppppppcVar38);\n        if (pppppppcVar30 == (code *******)0x0) goto LAB_000560cc;\n        goto LAB_00056168;\n      }" (if "if") (parenthesized_expression "(0 < (int)param_1)" (( "(") (binary_expression "0 < (int)param_1" (number_literal "0") (< "<") (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1"))) () ")")) (compound_statement "{\n        pppppppcVar38 = (code *******)((int)param_1 + 1);\n        pppppppcVar30 = (code *******)FUN_00046d2c(&pppppppcStack_1f8,pppppppcVar38);\n        if (pppppppcVar30 == (code *******)0x0) goto LAB_000560cc;\n        goto LAB_00056168;\n      }" ({ "{") (expression_statement "pppppppcVar38 = (code *******)((int)param_1 + 1);" (assignment_expression "pppppppcVar38 = (code *******)((int)param_1 + 1)" (identifier "pppppppcVar38") (= "=") (cast_expression "(code *******)((int)param_1 + 1)" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "((int)param_1 + 1)" (( "(") (binary_expression "(int)param_1 + 1" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "pppppppcVar30 = (code *******)FUN_00046d2c(&pppppppcStack_1f8,pppppppcVar38);" (assignment_expression "pppppppcVar30 = (code *******)FUN_00046d2c(&pppppppcStack_1f8,pppppppcVar38)" (identifier "pppppppcVar30") (= "=") (cast_expression "(code *******)FUN_00046d2c(&pppppppcStack_1f8,pppppppcVar38)" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (call_expression "FUN_00046d2c(&pppppppcStack_1f8,pppppppcVar38)" (identifier "FUN_00046d2c") (argument_list "(&pppppppcStack_1f8,pppppppcVar38)" (( "(") (pointer_expression "&pppppppcStack_1f8" (& "&") (identifier "pppppppcStack_1f8")) (, ",") (identifier "pppppppcVar38") () ")"))))) (; ";")) (if_statement "if (pppppppcVar30 == (code *******)0x0) goto LAB_000560cc;" (if "if") (parenthesized_expression "(pppppppcVar30 == (code *******)0x0)" (( "(") (binary_expression "pppppppcVar30 == (code *******)0x0" (identifier "pppppppcVar30") (== "==") (cast_expression "(code *******)0x0" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_000560cc;" (goto "goto") (statement_identifier "LAB_000560cc") (; ";"))) (goto_statement "goto LAB_00056168;" (goto "goto") (statement_identifier "LAB_00056168") (; ";")) (} "}"))) (labeled_statement "LAB_000560cc:\n      if (cStack_1ad != '\0') {\n        pppppppcVar29 = apppppppcStack_1f4[0];\n      }" (statement_identifier "LAB_000560cc") (: ":") (if_statement "if (cStack_1ad != '\0') {\n        pppppppcVar29 = apppppppcStack_1f4[0];\n      }" (if "if") (parenthesized_expression "(cStack_1ad != '\0')" (( "(") (binary_expression "cStack_1ad != '\0'" (identifier "cStack_1ad") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        pppppppcVar29 = apppppppcStack_1f4[0];\n      }" ({ "{") (expression_statement "pppppppcVar29 = apppppppcStack_1f4[0];" (assignment_expression "pppppppcVar29 = apppppppcStack_1f4[0]" (identifier "pppppppcVar29") (= "=") (subscript_expression "apppppppcStack_1f4[0]" (identifier "apppppppcStack_1f4") ([ "[") (number_literal "0") (] "]"))) (; ";")) (} "}")))) (expression_statement "apppppppcStack_1f4[0] = pppppppcVar29;" (assignment_expression "apppppppcStack_1f4[0] = pppppppcVar29" (subscript_expression "apppppppcStack_1f4[0]" (identifier "apppppppcStack_1f4") ([ "[") (number_literal "0") (] "]")) (= "=") (identifier "pppppppcVar29")) (; ";")) (if_statement "if (uVar16 == 0) {\n        if ((int)pppppppcVar34[0x17] < 2) {\n          if (ppppppcVar32 != (code ******)0x0) {\n            FUN_00045dc8();\n          }\n        }\n        else {\n          FUN_00047cb0(&pppppppcStack_1f8);\n        }\n      }\n      else {\n        if (1 < (int)pppppppcVar34[0x17]) {\n          iVar18 = *(int *)(puVar41 + 0x23abc);\n          do {\n            pppppppcVar30 = (code *******)FUN_00048714(&pppppppcStack_1f8);\n            if (pppppppcVar30 != (code *******)0x0) break;\n            if (((int)param_1 <= iStack_1d8) ||\n               (pppppppcVar38 = (code *******)(iStack_1d4 << 1),\n               (int)pppppppcVar34[0x17] + iStack_1dc < iStack_1d4)) goto LAB_000563d0;\n            pppppppcVar30 =\n                 (code *******)(*(code *)(iVar18 + 0x6d2c))(&pppppppcStack_1f8,pppppppcVar38);\n          } while (pppppppcVar30 == (code *******)0x0);\n          goto LAB_00056168;\n        }\n        FUN_00047be4(&pppppppcStack_1f8);\n      }" (if "if") (parenthesized_expression "(uVar16 == 0)" (( "(") (binary_expression "uVar16 == 0" (identifier "uVar16") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        if ((int)pppppppcVar34[0x17] < 2) {\n          if (ppppppcVar32 != (code ******)0x0) {\n            FUN_00045dc8();\n          }\n        }\n        else {\n          FUN_00047cb0(&pppppppcStack_1f8);\n        }\n      }" ({ "{") (if_statement "if ((int)pppppppcVar34[0x17] < 2) {\n          if (ppppppcVar32 != (code ******)0x0) {\n            FUN_00045dc8();\n          }\n        }\n        else {\n          FUN_00047cb0(&pppppppcStack_1f8);\n        }" (if "if") (parenthesized_expression "((int)pppppppcVar34[0x17] < 2)" (( "(") (binary_expression "(int)pppppppcVar34[0x17] < 2" (cast_expression "(int)pppppppcVar34[0x17]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "pppppppcVar34[0x17]" (identifier "pppppppcVar34") ([ "[") (number_literal "0x17") (] "]"))) (< "<") (number_literal "2")) () ")")) (compound_statement "{\n          if (ppppppcVar32 != (code ******)0x0) {\n            FUN_00045dc8();\n          }\n        }" ({ "{") (if_statement "if (ppppppcVar32 != (code ******)0x0) {\n            FUN_00045dc8();\n          }" (if "if") (parenthesized_expression "(ppppppcVar32 != (code ******)0x0)" (( "(") (binary_expression "ppppppcVar32 != (code ******)0x0" (identifier "ppppppcVar32") (!= "!=") (cast_expression "(code ******)0x0" (( "(") (type_descriptor "code ******" (type_identifier "code") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            FUN_00045dc8();\n          }" ({ "{") (expression_statement "FUN_00045dc8();" (call_expression "FUN_00045dc8()" (identifier "FUN_00045dc8") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n          FUN_00047cb0(&pppppppcStack_1f8);\n        }" (else "else") (compound_statement "{\n          FUN_00047cb0(&pppppppcStack_1f8);\n        }" ({ "{") (expression_statement "FUN_00047cb0(&pppppppcStack_1f8);" (call_expression "FUN_00047cb0(&pppppppcStack_1f8)" (identifier "FUN_00047cb0") (argument_list "(&pppppppcStack_1f8)" (( "(") (pointer_expression "&pppppppcStack_1f8" (& "&") (identifier "pppppppcStack_1f8")) () ")"))) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n        if (1 < (int)pppppppcVar34[0x17]) {\n          iVar18 = *(int *)(puVar41 + 0x23abc);\n          do {\n            pppppppcVar30 = (code *******)FUN_00048714(&pppppppcStack_1f8);\n            if (pppppppcVar30 != (code *******)0x0) break;\n            if (((int)param_1 <= iStack_1d8) ||\n               (pppppppcVar38 = (code *******)(iStack_1d4 << 1),\n               (int)pppppppcVar34[0x17] + iStack_1dc < iStack_1d4)) goto LAB_000563d0;\n            pppppppcVar30 =\n                 (code *******)(*(code *)(iVar18 + 0x6d2c))(&pppppppcStack_1f8,pppppppcVar38);\n          } while (pppppppcVar30 == (code *******)0x0);\n          goto LAB_00056168;\n        }\n        FUN_00047be4(&pppppppcStack_1f8);\n      }" (else "else") (compound_statement "{\n        if (1 < (int)pppppppcVar34[0x17]) {\n          iVar18 = *(int *)(puVar41 + 0x23abc);\n          do {\n            pppppppcVar30 = (code *******)FUN_00048714(&pppppppcStack_1f8);\n            if (pppppppcVar30 != (code *******)0x0) break;\n            if (((int)param_1 <= iStack_1d8) ||\n               (pppppppcVar38 = (code *******)(iStack_1d4 << 1),\n               (int)pppppppcVar34[0x17] + iStack_1dc < iStack_1d4)) goto LAB_000563d0;\n            pppppppcVar30 =\n                 (code *******)(*(code *)(iVar18 + 0x6d2c))(&pppppppcStack_1f8,pppppppcVar38);\n          } while (pppppppcVar30 == (code *******)0x0);\n          goto LAB_00056168;\n        }\n        FUN_00047be4(&pppppppcStack_1f8);\n      }" ({ "{") (if_statement "if (1 < (int)pppppppcVar34[0x17]) {\n          iVar18 = *(int *)(puVar41 + 0x23abc);\n          do {\n            pppppppcVar30 = (code *******)FUN_00048714(&pppppppcStack_1f8);\n            if (pppppppcVar30 != (code *******)0x0) break;\n            if (((int)param_1 <= iStack_1d8) ||\n               (pppppppcVar38 = (code *******)(iStack_1d4 << 1),\n               (int)pppppppcVar34[0x17] + iStack_1dc < iStack_1d4)) goto LAB_000563d0;\n            pppppppcVar30 =\n                 (code *******)(*(code *)(iVar18 + 0x6d2c))(&pppppppcStack_1f8,pppppppcVar38);\n          } while (pppppppcVar30 == (code *******)0x0);\n          goto LAB_00056168;\n        }" (if "if") (parenthesized_expression "(1 < (int)pppppppcVar34[0x17])" (( "(") (binary_expression "1 < (int)pppppppcVar34[0x17]" (number_literal "1") (< "<") (cast_expression "(int)pppppppcVar34[0x17]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "pppppppcVar34[0x17]" (identifier "pppppppcVar34") ([ "[") (number_literal "0x17") (] "]")))) () ")")) (compound_statement "{\n          iVar18 = *(int *)(puVar41 + 0x23abc);\n          do {\n            pppppppcVar30 = (code *******)FUN_00048714(&pppppppcStack_1f8);\n            if (pppppppcVar30 != (code *******)0x0) break;\n            if (((int)param_1 <= iStack_1d8) ||\n               (pppppppcVar38 = (code *******)(iStack_1d4 << 1),\n               (int)pppppppcVar34[0x17] + iStack_1dc < iStack_1d4)) goto LAB_000563d0;\n            pppppppcVar30 =\n                 (code *******)(*(code *)(iVar18 + 0x6d2c))(&pppppppcStack_1f8,pppppppcVar38);\n          } while (pppppppcVar30 == (code *******)0x0);\n          goto LAB_00056168;\n        }" ({ "{") (expression_statement "iVar18 = *(int *)(puVar41 + 0x23abc);" (assignment_expression "iVar18 = *(int *)(puVar41 + 0x23abc)" (identifier "iVar18") (= "=") (pointer_expression "*(int *)(puVar41 + 0x23abc)" (* "*") (cast_expression "(int *)(puVar41 + 0x23abc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar41 + 0x23abc)" (( "(") (binary_expression "puVar41 + 0x23abc" (identifier "puVar41") (+ "+") (number_literal "0x23abc")) () ")"))))) (; ";")) (do_statement "do {\n            pppppppcVar30 = (code *******)FUN_00048714(&pppppppcStack_1f8);\n            if (pppppppcVar30 != (code *******)0x0) break;\n            if (((int)param_1 <= iStack_1d8) ||\n               (pppppppcVar38 = (code *******)(iStack_1d4 << 1),\n               (int)pppppppcVar34[0x17] + iStack_1dc < iStack_1d4)) goto LAB_000563d0;\n            pppppppcVar30 =\n                 (code *******)(*(code *)(iVar18 + 0x6d2c))(&pppppppcStack_1f8,pppppppcVar38);\n          } while (pppppppcVar30 == (code *******)0x0);" (do "do") (compound_statement "{\n            pppppppcVar30 = (code *******)FUN_00048714(&pppppppcStack_1f8);\n            if (pppppppcVar30 != (code *******)0x0) break;\n            if (((int)param_1 <= iStack_1d8) ||\n               (pppppppcVar38 = (code *******)(iStack_1d4 << 1),\n               (int)pppppppcVar34[0x17] + iStack_1dc < iStack_1d4)) goto LAB_000563d0;\n            pppppppcVar30 =\n                 (code *******)(*(code *)(iVar18 + 0x6d2c))(&pppppppcStack_1f8,pppppppcVar38);\n          }" ({ "{") (expression_statement "pppppppcVar30 = (code *******)FUN_00048714(&pppppppcStack_1f8);" (assignment_expression "pppppppcVar30 = (code *******)FUN_00048714(&pppppppcStack_1f8)" (identifier "pppppppcVar30") (= "=") (cast_expression "(code *******)FUN_00048714(&pppppppcStack_1f8)" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (call_expression "FUN_00048714(&pppppppcStack_1f8)" (identifier "FUN_00048714") (argument_list "(&pppppppcStack_1f8)" (( "(") (pointer_expression "&pppppppcStack_1f8" (& "&") (identifier "pppppppcStack_1f8")) () ")"))))) (; ";")) (if_statement "if (pppppppcVar30 != (code *******)0x0) break;" (if "if") (parenthesized_expression "(pppppppcVar30 != (code *******)0x0)" (( "(") (binary_expression "pppppppcVar30 != (code *******)0x0" (identifier "pppppppcVar30") (!= "!=") (cast_expression "(code *******)0x0" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (if_statement "if (((int)param_1 <= iStack_1d8) ||\n               (pppppppcVar38 = (code *******)(iStack_1d4 << 1),\n               (int)pppppppcVar34[0x17] + iStack_1dc < iStack_1d4)) goto LAB_000563d0;" (if "if") (parenthesized_expression "(((int)param_1 <= iStack_1d8) ||\n               (pppppppcVar38 = (code *******)(iStack_1d4 << 1),\n               (int)pppppppcVar34[0x17] + iStack_1dc < iStack_1d4))" (( "(") (binary_expression "((int)param_1 <= iStack_1d8) ||\n               (pppppppcVar38 = (code *******)(iStack_1d4 << 1),\n               (int)pppppppcVar34[0x17] + iStack_1dc < iStack_1d4)" (parenthesized_expression "((int)param_1 <= iStack_1d8)" (( "(") (binary_expression "(int)param_1 <= iStack_1d8" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (<= "<=") (identifier "iStack_1d8")) () ")")) (|| "||") (parenthesized_expression "(pppppppcVar38 = (code *******)(iStack_1d4 << 1),\n               (int)pppppppcVar34[0x17] + iStack_1dc < iStack_1d4)" (( "(") (comma_expression "pppppppcVar38 = (code *******)(iStack_1d4 << 1),\n               (int)pppppppcVar34[0x17] + iStack_1dc < iStack_1d4" (assignment_expression "pppppppcVar38 = (code *******)(iStack_1d4 << 1)" (identifier "pppppppcVar38") (= "=") (cast_expression "(code *******)(iStack_1d4 << 1)" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "(iStack_1d4 << 1)" (( "(") (binary_expression "iStack_1d4 << 1" (identifier "iStack_1d4") (<< "<<") (number_literal "1")) () ")")))) (, ",") (binary_expression "(int)pppppppcVar34[0x17] + iStack_1dc < iStack_1d4" (binary_expression "(int)pppppppcVar34[0x17] + iStack_1dc" (cast_expression "(int)pppppppcVar34[0x17]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "pppppppcVar34[0x17]" (identifier "pppppppcVar34") ([ "[") (number_literal "0x17") (] "]"))) (+ "+") (identifier "iStack_1dc")) (< "<") (identifier "iStack_1d4"))) () ")"))) () ")")) (goto_statement "goto LAB_000563d0;" (goto "goto") (statement_identifier "LAB_000563d0") (; ";"))) (expression_statement "pppppppcVar30 =\n                 (code *******)(*(code *)(iVar18 + 0x6d2c))(&pppppppcStack_1f8,pppppppcVar38);" (assignment_expression "pppppppcVar30 =\n                 (code *******)(*(code *)(iVar18 + 0x6d2c))(&pppppppcStack_1f8,pppppppcVar38)" (identifier "pppppppcVar30") (= "=") (cast_expression "(code *******)(*(code *)(iVar18 + 0x6d2c))(&pppppppcStack_1f8,pppppppcVar38)" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (call_expression "(*(code *)(iVar18 + 0x6d2c))(&pppppppcStack_1f8,pppppppcVar38)" (parenthesized_expression "(*(code *)(iVar18 + 0x6d2c))" (( "(") (pointer_expression "*(code *)(iVar18 + 0x6d2c)" (* "*") (cast_expression "(code *)(iVar18 + 0x6d2c)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0x6d2c)" (( "(") (binary_expression "iVar18 + 0x6d2c" (identifier "iVar18") (+ "+") (number_literal "0x6d2c")) () ")")))) () ")")) (argument_list "(&pppppppcStack_1f8,pppppppcVar38)" (( "(") (pointer_expression "&pppppppcStack_1f8" (& "&") (identifier "pppppppcStack_1f8")) (, ",") (identifier "pppppppcVar38") () ")"))))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pppppppcVar30 == (code *******)0x0)" (( "(") (binary_expression "pppppppcVar30 == (code *******)0x0" (identifier "pppppppcVar30") (== "==") (cast_expression "(code *******)0x0" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (goto_statement "goto LAB_00056168;" (goto "goto") (statement_identifier "LAB_00056168") (; ";")) (} "}"))) (expression_statement "FUN_00047be4(&pppppppcStack_1f8);" (call_expression "FUN_00047be4(&pppppppcStack_1f8)" (identifier "FUN_00047be4") (argument_list "(&pppppppcStack_1f8)" (( "(") (pointer_expression "&pppppppcStack_1f8" (& "&") (identifier "pppppppcStack_1f8")) () ")"))) (; ";")) (} "}")))) (labeled_statement "LAB_000563d0:\n      pppppppcStack_20c = (code *******)0x0;" (statement_identifier "LAB_000563d0") (: ":") (expression_statement "pppppppcStack_20c = (code *******)0x0;" (assignment_expression "pppppppcStack_20c = (code *******)0x0" (identifier "pppppppcStack_20c") (= "=") (cast_expression "(code *******)0x0" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) (; ";"))) (expression_statement "pppppppcVar3[6] = (code ******)0x0;" (assignment_expression "pppppppcVar3[6] = (code ******)0x0" (subscript_expression "pppppppcVar3[6]" (identifier "pppppppcVar3") ([ "[") (number_literal "6") (] "]")) (= "=") (cast_expression "(code ******)0x0" (( "(") (type_descriptor "code ******" (type_identifier "code") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "ppppppcVar32 = *pppppppcVar3;" (assignment_expression "ppppppcVar32 = *pppppppcVar3" (identifier "ppppppcVar32") (= "=") (pointer_expression "*pppppppcVar3" (* "*") (identifier "pppppppcVar3"))) (; ";")) (expression_statement "ppppppcVar32[0x20] = (code *****)pppppppcVar33;" (assignment_expression "ppppppcVar32[0x20] = (code *****)pppppppcVar33" (subscript_expression "ppppppcVar32[0x20]" (identifier "ppppppcVar32") ([ "[") (number_literal "0x20") (] "]")) (= "=") (cast_expression "(code *****)pppppppcVar33" (( "(") (type_descriptor "code *****" (type_identifier "code") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (identifier "pppppppcVar33"))) (; ";")) (expression_statement "FUN_00049e40(&ppppppcStack_204,&pppppppcStack_1f8,(uint)pppppppcVar33 | 0x800000);" (call_expression "FUN_00049e40(&ppppppcStack_204,&pppppppcStack_1f8,(uint)pppppppcVar33 | 0x800000)" (identifier "FUN_00049e40") (argument_list "(&ppppppcStack_204,&pppppppcStack_1f8,(uint)pppppppcVar33 | 0x800000)" (( "(") (pointer_expression "&ppppppcStack_204" (& "&") (identifier "ppppppcStack_204")) (, ",") (pointer_expression "&pppppppcStack_1f8" (& "&") (identifier "pppppppcStack_1f8")) (, ",") (binary_expression "(uint)pppppppcVar33 | 0x800000" (cast_expression "(uint)pppppppcVar33" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pppppppcVar33")) (| "|") (number_literal "0x800000")) () ")"))) (; ";")) (expression_statement "pppppppcVar38 = pppppppcVar3;" (assignment_expression "pppppppcVar38 = pppppppcVar3" (identifier "pppppppcVar38") (= "=") (identifier "pppppppcVar3")) (; ";")) (expression_statement "pppppppcVar29 =\n           (code *******)\n           FUN_00051868(&pppppppcStack_1f8,pppppppcVar3,&ppppppcStack_204,pppppppcVar33,0,\n                        &pppppppcStack_20c);" (assignment_expression "pppppppcVar29 =\n           (code *******)\n           FUN_00051868(&pppppppcStack_1f8,pppppppcVar3,&ppppppcStack_204,pppppppcVar33,0,\n                        &pppppppcStack_20c)" (identifier "pppppppcVar29") (= "=") (cast_expression "(code *******)\n           FUN_00051868(&pppppppcStack_1f8,pppppppcVar3,&ppppppcStack_204,pppppppcVar33,0,\n                        &pppppppcStack_20c)" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (call_expression "FUN_00051868(&pppppppcStack_1f8,pppppppcVar3,&ppppppcStack_204,pppppppcVar33,0,\n                        &pppppppcStack_20c)" (identifier "FUN_00051868") (argument_list "(&pppppppcStack_1f8,pppppppcVar3,&ppppppcStack_204,pppppppcVar33,0,\n                        &pppppppcStack_20c)" (( "(") (pointer_expression "&pppppppcStack_1f8" (& "&") (identifier "pppppppcStack_1f8")) (, ",") (identifier "pppppppcVar3") (, ",") (pointer_expression "&ppppppcStack_204" (& "&") (identifier "ppppppcStack_204")) (, ",") (identifier "pppppppcVar33") (, ",") (number_literal "0") (, ",") (pointer_expression "&pppppppcStack_20c" (& "&") (identifier "pppppppcStack_20c")) () ")"))))) (; ";")) (if_statement "if (pppppppcStack_20c == (code *******)0x0) {\n        pppppppcVar31 = (code *******)0x0;\n        pppppppcVar38 = (code *******)0x0;\n        pppppppcVar33 = (code *******)FUN_000470f0(ppppppcVar32,0,0,2);\n        pppppppcVar30 = pppppppcVar33;\n        if (pppppppcVar29 != (code *******)0x0) {\nLAB_000564b0:\n          pppppppcVar31 = pppppppcVar33;\n          pppppppcVar30 = (code *******)FUN_000470f0(ppppppcVar32,pppppppcVar29,pppppppcVar33,0x10);\n          pppppppcVar38 = pppppppcVar29;\n        }\n        if ((pppppppcVar33 == (code *******)0x0) ||\n           (pcVar4 = *(code **)(puVar41 + 0x23cf0), pppppppcVar30 == (code *******)0x0)) {\n          pppppppcStack_20c = (code *******)0xc;\n          goto LAB_000566f4;\n        }\n        pppppppcVar34[0xd] = (code ******)pppppppcVar30;\n        pppppppcVar29 = (code *******)*pppppppcVar3;\n        ppppppcVar39 = pppppppcVar29[1];\n        iVar18 = (int)ppppppcVar39 << 2;\n        ppppppcVar32 = (code ******)(*pcVar4)(iVar18);\n        pppppppcVar29[3] = ppppppcVar32;\n        ppppppcVar35 = (code ******)(**(code **)(puVar41 + 0x23cf0))(iVar18);\n        pppppppcVar29[4] = ppppppcVar35;\n        iVar18 = (int)ppppppcVar39 * 0xc;\n        ppppppcVar39 = (code ******)(**(code **)(puVar41 + 0x23cf0))(iVar18);\n        pppppppcVar29[5] = ppppppcVar39;\n        ppppppcVar20 = (code ******)(**(code **)(puVar41 + 0x23cf0))(iVar18);\n        pppppppcVar29[6] = ppppppcVar20;\n        if (ppppppcVar32 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else if (ppppppcVar35 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else if (ppppppcVar39 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else if (ppppppcVar20 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else {\n          ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23cf0))((int)pppppppcVar3[6] << 2);\n          pppppppcVar29[0x21] = ppppppcVar32;\n          if (ppppppcVar32 != (code ******)0x0) {\n            ppppppcVar32 = (code ******)0x0;\n            if (pppppppcVar3[6] != (code ******)0x0) {\n              do {\n                pppppppcVar29[0x21][(int)ppppppcVar32] = (code *****)ppppppcVar32;\n                ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n              } while (ppppppcVar32 < pppppppcVar3[6]);\n            }\n            FUN_00046050(pppppppcVar29[0xd],*(int *)(puVar41 + 0x23abc) + 0x60e8,pppppppcVar29);\n            ppppppcVar32 = pppppppcVar3[6];\n            if (ppppppcVar32 == (code ******)0x0) {\nLAB_00056704:\n              (**(code **)(puVar41 + 0x23dc0))(pppppppcVar29[0x21]);\n              pppppppcVar29[0x21] = (code ******)0x0;\n            }\n            else {\n              ppppppcVar35 = pppppppcVar29[0x21];\n              if (*ppppppcVar35 == (code *****)0x0) {\n                ppppppcVar39 = (code ******)0x0;\n                do {\n                  ppppppcVar35 = ppppppcVar35 + 1;\n                  ppppppcVar39 = (code ******)((int)ppppppcVar39 + 1);\n                  if (ppppppcVar32 == ppppppcVar39) {\n                    if (ppppppcVar32 == ppppppcVar39) goto LAB_00056704;\n                    break;\n                  }\n                } while ((code ******)*ppppppcVar35 == ppppppcVar39);\n              }\n            }\n          }\n          pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23abc) + 0x73a4);\n          pppppppcVar30 = (code *******)FUN_00045fb4(pppppppcVar29[0xd],pppppppcVar38,pppppppcVar3);\n          pppppppcVar31 = pppppppcVar29;\n          if (pppppppcVar30 == (code *******)0x0) {\n            pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23b40) + -0x5be4);\n            pppppppcVar30 = (code *******)FUN_00045fb4(pppppppcVar29[0xd],pppppppcVar38);\n            if (pppppppcVar30 == (code *******)0x0) {\n              FUN_00046050(pppppppcVar29[0xd],*(int *)(puVar41 + 0x23abc) + 0x61b4);\n              pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23b40) + -0x4614);\n              pppppppcVar30 = (code *******)FUN_00046050(pppppppcVar29[0xd],pppppppcVar38);\n              if (pppppppcVar30 == (code *******)0x0) {\n                uVar7 = 0;\n                iVar18 = *(int *)(puVar41 + 0x23b40);\n                pppppppcVar33 = (code *******)0x0;\nLAB_00056744:\n                if ((code *******)pppppppcVar29[2] != pppppppcVar33) {\nLAB_00056750:\n                  if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                    pppppppcVar38 = pppppppcVar29;\n                    pppppppcVar31 = pppppppcVar33;\n                    pppppppcVar30 =\n                         (code *******)\n                         (*(code *)(iVar18 + -0x561c))\n                                   (&ppppppcStack_204,pppppppcVar29,pppppppcVar33,1);\n                    if (pppppppcVar30 != (code *******)0x0) goto LAB_00056168;\n                    if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                      (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                      uVar7 = 1;\n                    }\n                  }\n                  pppppppcVar33 = (code *******)((int)pppppppcVar33 + 1);\n                  goto LAB_00056744;\n                }\n                if (uVar7 != 0) {\n                  uVar7 = 0;\n                  pppppppcVar33 = (code *******)0x0;\n                  goto LAB_00056750;\n                }\n                if (((((uint)pppppppcVar3[7] & 0x8000000) == 0) &&\n                    (pppppppcVar3[6] != (code ******)0x0)) &&\n                   ((char)*(code *)(pppppppcVar29 + 0x16) < '\0')) {\n                  ppppppcVar32 = pppppppcVar29[2];\n                }\n                else {\n                  if (pppppppcVar29[0x13] == (code ******)0x0) goto LAB_000568f0;\n                  ppppppcVar32 = pppppppcVar29[2];\n                }\n                ppppppcVar35 = (code ******)\n                               (**(code **)(puVar41 + 0x23cf0))((int)ppppppcVar32 * 0xc);\n                pppppppcVar29[7] = ppppppcVar35;\n                if (ppppppcVar35 == (code ******)0x0) {\n                  pppppppcVar30 = (code *******)0xc;\n                  goto LAB_00056168;\n                }\n                if (ppppppcVar32 != (code ******)0x0) {\n                  iVar18 = 0;\n                  ppppppcVar32 = (code ******)0x0;\n                  do {\n                    puVar21 = (undefined1 *)((int)pppppppcVar29[7] + iVar18);\n                    *puVar21 = 0;\n                    puVar21[1] = 0;\n                    puVar21[2] = 0;\n                    puVar21[3] = 0;\n                    puVar21[4] = 0;\n                    puVar21[5] = 0;\n                    puVar21[6] = 0;\n                    puVar21[7] = 0;\n                    puVar21[8] = 0;\n                    puVar21[9] = 0;\n                    puVar21[10] = 0;\n                    puVar21[0xb] = 0;\n                    ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                    iVar18 = iVar18 + 0xc;\n                  } while (ppppppcVar32 < pppppppcVar29[2]);\n                  iVar18 = *(int *)(puVar41 + 0x23abc);\n                  if (pppppppcVar29[2] != (code ******)0x0) {\n                    iVar43 = 0;\n                    pppppppcStack_218 = (code *******)0x0;\n                    do {\n                      piVar5 = *(int **)((int)pppppppcVar29[6] + iVar43 + 8);\n                      if (0 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4)) {\n                        iVar37 = 0;\n                        do {\n                          pppppppcVar38 = pppppppcStack_218;\n                          iVar22 = (*(code *)(iVar18 + 0x6e30))\n                                             (pppppppcVar29[7] + *piVar5 * 3,pppppppcStack_218);\n                          pppppppcVar30 = (code *******)0xc;\n                          if (iVar22 == 0) goto LAB_00056168;\n                          iVar37 = iVar37 + 1;\n                          piVar5 = piVar5 + 1;\n                        } while (iVar37 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4));\n                      }\n                      pppppppcStack_218 = (code *******)((int)pppppppcStack_218 + 1);\n                      iVar43 = iVar43 + 0xc;\n                    } while (pppppppcStack_218 < pppppppcVar29[2]);\n                  }\n                }\nLAB_000568f0:\n                pppppppcStack_20c = (code *******)0x0;\n                if (((((uint)pppppppcVar34[0x16] & 0x20000000) != 0) && (uVar16 == 0)) &&\n                   (pppppppcVar3[5] == (code ******)0x0)) {\n                  if (pppppppcVar34[2] != (code ******)0x0) {\n                    pppppppcVar31 = (code *******)(*(int *)(puVar41 + 0x23754) + 0x6e4c);\n                    if (*(byte *)(*pppppppcVar34 + 1) < 0xd) {\n                    \n                    \n                      pppppppcVar29 =\n                           (code *******)\n                           (*(code *)(puVar41 +\n                                     (int)(pppppppcVar31[*(byte *)(*pppppppcVar34 + 1)] + 0xadc7)))\n                                     ();\n                      return pppppppcVar29;\n                    }\n                    (**(code **)(puVar41 + 0x23bc4))(0);\n                    if (uVar7 != 0) {\n                      pppppppcVar31 = (code *******)&DAT_00000007;\n                      ppppppcVar32 = (code ******)0x0;\n                      do {\n                        ppppppcVar35 = *pppppppcVar34 + (int)ppppppcVar32 * 2;\n                        if (*(char *)(ppppppcVar35 + 1) == '\x01') {\n                          if (*(char *)ppppppcVar35 < '\0') {\n                            ppppppcVar35[1] = (code *****)((uint)ppppppcVar35[1] & 0xfffffbff);\n                          }\n                        }\n                        else if (*(char *)(ppppppcVar35 + 1) == '\x05') {\n                          *(char *)(ppppppcVar35 + 1) = '\a';\n                        }\n                        ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                      } while (ppppppcVar32 < pppppppcVar34[2]);\n                    }\n                  }\n                  pppppppcVar34[0x17] = (code ******)0x1;\n                  if (0 < (int)pppppppcVar34[0x13]) {\n                    uVar7 = 1;\n                  }\n                  *(byte *)(pppppppcVar34 + 0x16) =\n                       (byte)*(code *)(pppppppcVar34 + 0x16) & 0x9f | (byte)((uVar7 & 1) << 6);\n                }\n                ppppppcVar32 = (code ******)pppppppcVar34[0xd][3][7];\n                pppppppcVar34[0x12] = ppppppcVar32;\n                pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppppcVar32 * 3);\n                pppppppcVar33 = (code *******)FUN_000483e8(&ppppppcStack_204,pppppppcVar38);\n                pppppppcVar29 = pppppppcVar33;\n                pppppppcStack_208 = pppppppcVar33;\n                if (pppppppcVar33 == (code *******)0x0) {\n                  if ((0 < (int)pppppppcVar34[0x13]) && (0 < iStack_200)) {\n                    iVar18 = *(int *)(puVar41 + 0x23abc);\n                    iVar43 = *(int *)(puVar41 + 0x23abc);\n                    pppppppcVar29 = (code *******)0x0;\n                    do {\n                      pppppppcVar31 =\n                           (code *******)(*pppppppcVar34 + piStack_1fc[(int)pppppppcVar29] * 2);\n                      if (*(code *)(pppppppcVar31 + 1) == (code)0x4) {\n                        iVar37 = 0;\n                        piVar5 = piStack_1fc;\n                        if (iStack_200 < 1) {\nLAB_00056b8c:\n                          if (iStack_200 != iVar37) {\n                            ppppcVar40 = *pppppppcVar34[5][piStack_1fc[(int)pppppppcVar29] * 3 + 2];\n                            iVar37 = (*(code *)(iVar18 + 0x5ea8))(&ppppppcStack_204,ppppcVar40);\n                            if (iVar37 == 0) {\n                              pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppcVar40 * 3)\n                              ;\n                              pppppppcVar29 =\n                                   (code *******)\n                                   (*(code *)(iVar43 + 0x7f1c))(&ppppppcStack_204,pppppppcVar38);\n                              if (pppppppcVar29 != (code *******)0x0) goto LAB_00056cb8;\n                            }\n                          }\n                        }\n                        else {\n                          do {\n                            ppppppcVar32 = *pppppppcVar34 + *piVar5 * 2;\n                            if ((*(char *)(ppppppcVar32 + 1) == '\t') &&\n                               ((code ******)*ppppppcVar32 == *pppppppcVar31)) goto LAB_00056b8c;\n                            iVar37 = iVar37 + 1;\n                            piVar5 = piVar5 + 1;\n                          } while (iStack_200 != iVar37);\n                        }\n                      }\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1);\n                    } while ((int)pppppppcVar29 < iStack_200);\n                  }\n                  pppppppcVar31 = &ppppppcStack_204;\n                  pppppppcVar38 = pppppppcVar34;\n                  ppppppcVar32 = (code ******)\n                                 FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,0);\n                  pppppppcVar34[9] = ppppppcVar32;\n                  pppppppcVar29 = pppppppcStack_208;\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    if (((uint)ppppppcVar32[0xd] & 0x1000000) == 0) {\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar34[10] = ppppppcVar32;\n                    }\n                    else {\n                      pppppppcVar31 = &ppppppcStack_204;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,1);\n                      pppppppcVar34[10] = ppppppcVar32;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,2);\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar38 = pppppppcVar34;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,6);\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar29 = pppppppcStack_208;\n                      if (((pppppppcVar34[10] == (code ******)0x0) ||\n                          (pppppppcVar34[0xb] == (code ******)0x0)) ||\n                         (ppppppcVar32 == (code ******)0x0)) goto LAB_00056cb8;\n                    }\n                    (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                    pppppppcVar29 = pppppppcVar33;\n                  }\n                }\nLAB_00056cb8:\n                pppppppcStack_20c = pppppppcVar29;\n                FUN_0004b234(pppppppcVar3);\n                FUN_0004b2bc(&pppppppcStack_1f8);\n                pppppppcVar29 = pppppppcStack_20c;\n                if (pppppppcStack_20c != (code *******)0x0) {\n                  if (*(int *)(puVar41 + 0x23c78) != 0) {\n                    (**(code **)(puVar41 + 0x23df0))(pppppppcVar34 + 0x22);\n                  }\n                  FUN_0004b338(pppppppcVar34);\n                  *pppppppcVar3 = (code ******)0x0;\n                  pppppppcVar3[1] = (code ******)0x0;\n                  pppppppcVar29 = pppppppcStack_20c;\n                }\n                goto LAB_00056cfc;\n              }\n            }\n          }\n        }\n      }\n      else {\n        pppppppcVar31 = (code *******)0x0;\n        if (pppppppcVar29 != (code *******)0x0) {\n          pppppppcVar33 = (code *******)FUN_000470f0(ppppppcVar32,0,0,2);\n          goto LAB_000564b0;\n        }\nLAB_000566f4:\n        pppppppcVar34[0xd] = (code ******)0x0;\n        pppppppcVar30 = pppppppcStack_20c;\n      }" (if "if") (parenthesized_expression "(pppppppcStack_20c == (code *******)0x0)" (( "(") (binary_expression "pppppppcStack_20c == (code *******)0x0" (identifier "pppppppcStack_20c") (== "==") (cast_expression "(code *******)0x0" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        pppppppcVar31 = (code *******)0x0;\n        pppppppcVar38 = (code *******)0x0;\n        pppppppcVar33 = (code *******)FUN_000470f0(ppppppcVar32,0,0,2);\n        pppppppcVar30 = pppppppcVar33;\n        if (pppppppcVar29 != (code *******)0x0) {\nLAB_000564b0:\n          pppppppcVar31 = pppppppcVar33;\n          pppppppcVar30 = (code *******)FUN_000470f0(ppppppcVar32,pppppppcVar29,pppppppcVar33,0x10);\n          pppppppcVar38 = pppppppcVar29;\n        }\n        if ((pppppppcVar33 == (code *******)0x0) ||\n           (pcVar4 = *(code **)(puVar41 + 0x23cf0), pppppppcVar30 == (code *******)0x0)) {\n          pppppppcStack_20c = (code *******)0xc;\n          goto LAB_000566f4;\n        }\n        pppppppcVar34[0xd] = (code ******)pppppppcVar30;\n        pppppppcVar29 = (code *******)*pppppppcVar3;\n        ppppppcVar39 = pppppppcVar29[1];\n        iVar18 = (int)ppppppcVar39 << 2;\n        ppppppcVar32 = (code ******)(*pcVar4)(iVar18);\n        pppppppcVar29[3] = ppppppcVar32;\n        ppppppcVar35 = (code ******)(**(code **)(puVar41 + 0x23cf0))(iVar18);\n        pppppppcVar29[4] = ppppppcVar35;\n        iVar18 = (int)ppppppcVar39 * 0xc;\n        ppppppcVar39 = (code ******)(**(code **)(puVar41 + 0x23cf0))(iVar18);\n        pppppppcVar29[5] = ppppppcVar39;\n        ppppppcVar20 = (code ******)(**(code **)(puVar41 + 0x23cf0))(iVar18);\n        pppppppcVar29[6] = ppppppcVar20;\n        if (ppppppcVar32 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else if (ppppppcVar35 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else if (ppppppcVar39 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else if (ppppppcVar20 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else {\n          ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23cf0))((int)pppppppcVar3[6] << 2);\n          pppppppcVar29[0x21] = ppppppcVar32;\n          if (ppppppcVar32 != (code ******)0x0) {\n            ppppppcVar32 = (code ******)0x0;\n            if (pppppppcVar3[6] != (code ******)0x0) {\n              do {\n                pppppppcVar29[0x21][(int)ppppppcVar32] = (code *****)ppppppcVar32;\n                ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n              } while (ppppppcVar32 < pppppppcVar3[6]);\n            }\n            FUN_00046050(pppppppcVar29[0xd],*(int *)(puVar41 + 0x23abc) + 0x60e8,pppppppcVar29);\n            ppppppcVar32 = pppppppcVar3[6];\n            if (ppppppcVar32 == (code ******)0x0) {\nLAB_00056704:\n              (**(code **)(puVar41 + 0x23dc0))(pppppppcVar29[0x21]);\n              pppppppcVar29[0x21] = (code ******)0x0;\n            }\n            else {\n              ppppppcVar35 = pppppppcVar29[0x21];\n              if (*ppppppcVar35 == (code *****)0x0) {\n                ppppppcVar39 = (code ******)0x0;\n                do {\n                  ppppppcVar35 = ppppppcVar35 + 1;\n                  ppppppcVar39 = (code ******)((int)ppppppcVar39 + 1);\n                  if (ppppppcVar32 == ppppppcVar39) {\n                    if (ppppppcVar32 == ppppppcVar39) goto LAB_00056704;\n                    break;\n                  }\n                } while ((code ******)*ppppppcVar35 == ppppppcVar39);\n              }\n            }\n          }\n          pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23abc) + 0x73a4);\n          pppppppcVar30 = (code *******)FUN_00045fb4(pppppppcVar29[0xd],pppppppcVar38,pppppppcVar3);\n          pppppppcVar31 = pppppppcVar29;\n          if (pppppppcVar30 == (code *******)0x0) {\n            pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23b40) + -0x5be4);\n            pppppppcVar30 = (code *******)FUN_00045fb4(pppppppcVar29[0xd],pppppppcVar38);\n            if (pppppppcVar30 == (code *******)0x0) {\n              FUN_00046050(pppppppcVar29[0xd],*(int *)(puVar41 + 0x23abc) + 0x61b4);\n              pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23b40) + -0x4614);\n              pppppppcVar30 = (code *******)FUN_00046050(pppppppcVar29[0xd],pppppppcVar38);\n              if (pppppppcVar30 == (code *******)0x0) {\n                uVar7 = 0;\n                iVar18 = *(int *)(puVar41 + 0x23b40);\n                pppppppcVar33 = (code *******)0x0;\nLAB_00056744:\n                if ((code *******)pppppppcVar29[2] != pppppppcVar33) {\nLAB_00056750:\n                  if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                    pppppppcVar38 = pppppppcVar29;\n                    pppppppcVar31 = pppppppcVar33;\n                    pppppppcVar30 =\n                         (code *******)\n                         (*(code *)(iVar18 + -0x561c))\n                                   (&ppppppcStack_204,pppppppcVar29,pppppppcVar33,1);\n                    if (pppppppcVar30 != (code *******)0x0) goto LAB_00056168;\n                    if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                      (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                      uVar7 = 1;\n                    }\n                  }\n                  pppppppcVar33 = (code *******)((int)pppppppcVar33 + 1);\n                  goto LAB_00056744;\n                }\n                if (uVar7 != 0) {\n                  uVar7 = 0;\n                  pppppppcVar33 = (code *******)0x0;\n                  goto LAB_00056750;\n                }\n                if (((((uint)pppppppcVar3[7] & 0x8000000) == 0) &&\n                    (pppppppcVar3[6] != (code ******)0x0)) &&\n                   ((char)*(code *)(pppppppcVar29 + 0x16) < '\0')) {\n                  ppppppcVar32 = pppppppcVar29[2];\n                }\n                else {\n                  if (pppppppcVar29[0x13] == (code ******)0x0) goto LAB_000568f0;\n                  ppppppcVar32 = pppppppcVar29[2];\n                }\n                ppppppcVar35 = (code ******)\n                               (**(code **)(puVar41 + 0x23cf0))((int)ppppppcVar32 * 0xc);\n                pppppppcVar29[7] = ppppppcVar35;\n                if (ppppppcVar35 == (code ******)0x0) {\n                  pppppppcVar30 = (code *******)0xc;\n                  goto LAB_00056168;\n                }\n                if (ppppppcVar32 != (code ******)0x0) {\n                  iVar18 = 0;\n                  ppppppcVar32 = (code ******)0x0;\n                  do {\n                    puVar21 = (undefined1 *)((int)pppppppcVar29[7] + iVar18);\n                    *puVar21 = 0;\n                    puVar21[1] = 0;\n                    puVar21[2] = 0;\n                    puVar21[3] = 0;\n                    puVar21[4] = 0;\n                    puVar21[5] = 0;\n                    puVar21[6] = 0;\n                    puVar21[7] = 0;\n                    puVar21[8] = 0;\n                    puVar21[9] = 0;\n                    puVar21[10] = 0;\n                    puVar21[0xb] = 0;\n                    ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                    iVar18 = iVar18 + 0xc;\n                  } while (ppppppcVar32 < pppppppcVar29[2]);\n                  iVar18 = *(int *)(puVar41 + 0x23abc);\n                  if (pppppppcVar29[2] != (code ******)0x0) {\n                    iVar43 = 0;\n                    pppppppcStack_218 = (code *******)0x0;\n                    do {\n                      piVar5 = *(int **)((int)pppppppcVar29[6] + iVar43 + 8);\n                      if (0 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4)) {\n                        iVar37 = 0;\n                        do {\n                          pppppppcVar38 = pppppppcStack_218;\n                          iVar22 = (*(code *)(iVar18 + 0x6e30))\n                                             (pppppppcVar29[7] + *piVar5 * 3,pppppppcStack_218);\n                          pppppppcVar30 = (code *******)0xc;\n                          if (iVar22 == 0) goto LAB_00056168;\n                          iVar37 = iVar37 + 1;\n                          piVar5 = piVar5 + 1;\n                        } while (iVar37 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4));\n                      }\n                      pppppppcStack_218 = (code *******)((int)pppppppcStack_218 + 1);\n                      iVar43 = iVar43 + 0xc;\n                    } while (pppppppcStack_218 < pppppppcVar29[2]);\n                  }\n                }\nLAB_000568f0:\n                pppppppcStack_20c = (code *******)0x0;\n                if (((((uint)pppppppcVar34[0x16] & 0x20000000) != 0) && (uVar16 == 0)) &&\n                   (pppppppcVar3[5] == (code ******)0x0)) {\n                  if (pppppppcVar34[2] != (code ******)0x0) {\n                    pppppppcVar31 = (code *******)(*(int *)(puVar41 + 0x23754) + 0x6e4c);\n                    if (*(byte *)(*pppppppcVar34 + 1) < 0xd) {\n                    \n                    \n                      pppppppcVar29 =\n                           (code *******)\n                           (*(code *)(puVar41 +\n                                     (int)(pppppppcVar31[*(byte *)(*pppppppcVar34 + 1)] + 0xadc7)))\n                                     ();\n                      return pppppppcVar29;\n                    }\n                    (**(code **)(puVar41 + 0x23bc4))(0);\n                    if (uVar7 != 0) {\n                      pppppppcVar31 = (code *******)&DAT_00000007;\n                      ppppppcVar32 = (code ******)0x0;\n                      do {\n                        ppppppcVar35 = *pppppppcVar34 + (int)ppppppcVar32 * 2;\n                        if (*(char *)(ppppppcVar35 + 1) == '\x01') {\n                          if (*(char *)ppppppcVar35 < '\0') {\n                            ppppppcVar35[1] = (code *****)((uint)ppppppcVar35[1] & 0xfffffbff);\n                          }\n                        }\n                        else if (*(char *)(ppppppcVar35 + 1) == '\x05') {\n                          *(char *)(ppppppcVar35 + 1) = '\a';\n                        }\n                        ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                      } while (ppppppcVar32 < pppppppcVar34[2]);\n                    }\n                  }\n                  pppppppcVar34[0x17] = (code ******)0x1;\n                  if (0 < (int)pppppppcVar34[0x13]) {\n                    uVar7 = 1;\n                  }\n                  *(byte *)(pppppppcVar34 + 0x16) =\n                       (byte)*(code *)(pppppppcVar34 + 0x16) & 0x9f | (byte)((uVar7 & 1) << 6);\n                }\n                ppppppcVar32 = (code ******)pppppppcVar34[0xd][3][7];\n                pppppppcVar34[0x12] = ppppppcVar32;\n                pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppppcVar32 * 3);\n                pppppppcVar33 = (code *******)FUN_000483e8(&ppppppcStack_204,pppppppcVar38);\n                pppppppcVar29 = pppppppcVar33;\n                pppppppcStack_208 = pppppppcVar33;\n                if (pppppppcVar33 == (code *******)0x0) {\n                  if ((0 < (int)pppppppcVar34[0x13]) && (0 < iStack_200)) {\n                    iVar18 = *(int *)(puVar41 + 0x23abc);\n                    iVar43 = *(int *)(puVar41 + 0x23abc);\n                    pppppppcVar29 = (code *******)0x0;\n                    do {\n                      pppppppcVar31 =\n                           (code *******)(*pppppppcVar34 + piStack_1fc[(int)pppppppcVar29] * 2);\n                      if (*(code *)(pppppppcVar31 + 1) == (code)0x4) {\n                        iVar37 = 0;\n                        piVar5 = piStack_1fc;\n                        if (iStack_200 < 1) {\nLAB_00056b8c:\n                          if (iStack_200 != iVar37) {\n                            ppppcVar40 = *pppppppcVar34[5][piStack_1fc[(int)pppppppcVar29] * 3 + 2];\n                            iVar37 = (*(code *)(iVar18 + 0x5ea8))(&ppppppcStack_204,ppppcVar40);\n                            if (iVar37 == 0) {\n                              pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppcVar40 * 3)\n                              ;\n                              pppppppcVar29 =\n                                   (code *******)\n                                   (*(code *)(iVar43 + 0x7f1c))(&ppppppcStack_204,pppppppcVar38);\n                              if (pppppppcVar29 != (code *******)0x0) goto LAB_00056cb8;\n                            }\n                          }\n                        }\n                        else {\n                          do {\n                            ppppppcVar32 = *pppppppcVar34 + *piVar5 * 2;\n                            if ((*(char *)(ppppppcVar32 + 1) == '\t') &&\n                               ((code ******)*ppppppcVar32 == *pppppppcVar31)) goto LAB_00056b8c;\n                            iVar37 = iVar37 + 1;\n                            piVar5 = piVar5 + 1;\n                          } while (iStack_200 != iVar37);\n                        }\n                      }\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1);\n                    } while ((int)pppppppcVar29 < iStack_200);\n                  }\n                  pppppppcVar31 = &ppppppcStack_204;\n                  pppppppcVar38 = pppppppcVar34;\n                  ppppppcVar32 = (code ******)\n                                 FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,0);\n                  pppppppcVar34[9] = ppppppcVar32;\n                  pppppppcVar29 = pppppppcStack_208;\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    if (((uint)ppppppcVar32[0xd] & 0x1000000) == 0) {\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar34[10] = ppppppcVar32;\n                    }\n                    else {\n                      pppppppcVar31 = &ppppppcStack_204;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,1);\n                      pppppppcVar34[10] = ppppppcVar32;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,2);\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar38 = pppppppcVar34;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,6);\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar29 = pppppppcStack_208;\n                      if (((pppppppcVar34[10] == (code ******)0x0) ||\n                          (pppppppcVar34[0xb] == (code ******)0x0)) ||\n                         (ppppppcVar32 == (code ******)0x0)) goto LAB_00056cb8;\n                    }\n                    (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                    pppppppcVar29 = pppppppcVar33;\n                  }\n                }\nLAB_00056cb8:\n                pppppppcStack_20c = pppppppcVar29;\n                FUN_0004b234(pppppppcVar3);\n                FUN_0004b2bc(&pppppppcStack_1f8);\n                pppppppcVar29 = pppppppcStack_20c;\n                if (pppppppcStack_20c != (code *******)0x0) {\n                  if (*(int *)(puVar41 + 0x23c78) != 0) {\n                    (**(code **)(puVar41 + 0x23df0))(pppppppcVar34 + 0x22);\n                  }\n                  FUN_0004b338(pppppppcVar34);\n                  *pppppppcVar3 = (code ******)0x0;\n                  pppppppcVar3[1] = (code ******)0x0;\n                  pppppppcVar29 = pppppppcStack_20c;\n                }\n                goto LAB_00056cfc;\n              }\n            }\n          }\n        }\n      }" ({ "{") (expression_statement "pppppppcVar31 = (code *******)0x0;" (assignment_expression "pppppppcVar31 = (code *******)0x0" (identifier "pppppppcVar31") (= "=") (cast_expression "(code *******)0x0" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "pppppppcVar38 = (code *******)0x0;" (assignment_expression "pppppppcVar38 = (code *******)0x0" (identifier "pppppppcVar38") (= "=") (cast_expression "(code *******)0x0" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "pppppppcVar33 = (code *******)FUN_000470f0(ppppppcVar32,0,0,2);" (assignment_expression "pppppppcVar33 = (code *******)FUN_000470f0(ppppppcVar32,0,0,2)" (identifier "pppppppcVar33") (= "=") (cast_expression "(code *******)FUN_000470f0(ppppppcVar32,0,0,2)" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (call_expression "FUN_000470f0(ppppppcVar32,0,0,2)" (identifier "FUN_000470f0") (argument_list "(ppppppcVar32,0,0,2)" (( "(") (identifier "ppppppcVar32") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "2") () ")"))))) (; ";")) (expression_statement "pppppppcVar30 = pppppppcVar33;" (assignment_expression "pppppppcVar30 = pppppppcVar33" (identifier "pppppppcVar30") (= "=") (identifier "pppppppcVar33")) (; ";")) (if_statement "if (pppppppcVar29 != (code *******)0x0) {\nLAB_000564b0:\n          pppppppcVar31 = pppppppcVar33;\n          pppppppcVar30 = (code *******)FUN_000470f0(ppppppcVar32,pppppppcVar29,pppppppcVar33,0x10);\n          pppppppcVar38 = pppppppcVar29;\n        }" (if "if") (parenthesized_expression "(pppppppcVar29 != (code *******)0x0)" (( "(") (binary_expression "pppppppcVar29 != (code *******)0x0" (identifier "pppppppcVar29") (!= "!=") (cast_expression "(code *******)0x0" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\nLAB_000564b0:\n          pppppppcVar31 = pppppppcVar33;\n          pppppppcVar30 = (code *******)FUN_000470f0(ppppppcVar32,pppppppcVar29,pppppppcVar33,0x10);\n          pppppppcVar38 = pppppppcVar29;\n        }" ({ "{") (labeled_statement "LAB_000564b0:\n          pppppppcVar31 = pppppppcVar33;" (statement_identifier "LAB_000564b0") (: ":") (expression_statement "pppppppcVar31 = pppppppcVar33;" (assignment_expression "pppppppcVar31 = pppppppcVar33" (identifier "pppppppcVar31") (= "=") (identifier "pppppppcVar33")) (; ";"))) (expression_statement "pppppppcVar30 = (code *******)FUN_000470f0(ppppppcVar32,pppppppcVar29,pppppppcVar33,0x10);" (assignment_expression "pppppppcVar30 = (code *******)FUN_000470f0(ppppppcVar32,pppppppcVar29,pppppppcVar33,0x10)" (identifier "pppppppcVar30") (= "=") (cast_expression "(code *******)FUN_000470f0(ppppppcVar32,pppppppcVar29,pppppppcVar33,0x10)" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (call_expression "FUN_000470f0(ppppppcVar32,pppppppcVar29,pppppppcVar33,0x10)" (identifier "FUN_000470f0") (argument_list "(ppppppcVar32,pppppppcVar29,pppppppcVar33,0x10)" (( "(") (identifier "ppppppcVar32") (, ",") (identifier "pppppppcVar29") (, ",") (identifier "pppppppcVar33") (, ",") (number_literal "0x10") () ")"))))) (; ";")) (expression_statement "pppppppcVar38 = pppppppcVar29;" (assignment_expression "pppppppcVar38 = pppppppcVar29" (identifier "pppppppcVar38") (= "=") (identifier "pppppppcVar29")) (; ";")) (} "}"))) (if_statement "if ((pppppppcVar33 == (code *******)0x0) ||\n           (pcVar4 = *(code **)(puVar41 + 0x23cf0), pppppppcVar30 == (code *******)0x0)) {\n          pppppppcStack_20c = (code *******)0xc;\n          goto LAB_000566f4;\n        }" (if "if") (parenthesized_expression "((pppppppcVar33 == (code *******)0x0) ||\n           (pcVar4 = *(code **)(puVar41 + 0x23cf0), pppppppcVar30 == (code *******)0x0))" (( "(") (binary_expression "(pppppppcVar33 == (code *******)0x0) ||\n           (pcVar4 = *(code **)(puVar41 + 0x23cf0), pppppppcVar30 == (code *******)0x0)" (parenthesized_expression "(pppppppcVar33 == (code *******)0x0)" (( "(") (binary_expression "pppppppcVar33 == (code *******)0x0" (identifier "pppppppcVar33") (== "==") (cast_expression "(code *******)0x0" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) () ")")) (|| "||") (parenthesized_expression "(pcVar4 = *(code **)(puVar41 + 0x23cf0), pppppppcVar30 == (code *******)0x0)" (( "(") (comma_expression "pcVar4 = *(code **)(puVar41 + 0x23cf0), pppppppcVar30 == (code *******)0x0" (assignment_expression "pcVar4 = *(code **)(puVar41 + 0x23cf0)" (identifier "pcVar4") (= "=") (pointer_expression "*(code **)(puVar41 + 0x23cf0)" (* "*") (cast_expression "(code **)(puVar41 + 0x23cf0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar41 + 0x23cf0)" (( "(") (binary_expression "puVar41 + 0x23cf0" (identifier "puVar41") (+ "+") (number_literal "0x23cf0")) () ")"))))) (, ",") (binary_expression "pppppppcVar30 == (code *******)0x0" (identifier "pppppppcVar30") (== "==") (cast_expression "(code *******)0x0" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0")))) () ")"))) () ")")) (compound_statement "{\n          pppppppcStack_20c = (code *******)0xc;\n          goto LAB_000566f4;\n        }" ({ "{") (expression_statement "pppppppcStack_20c = (code *******)0xc;" (assignment_expression "pppppppcStack_20c = (code *******)0xc" (identifier "pppppppcStack_20c") (= "=") (cast_expression "(code *******)0xc" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0xc"))) (; ";")) (goto_statement "goto LAB_000566f4;" (goto "goto") (statement_identifier "LAB_000566f4") (; ";")) (} "}"))) (expression_statement "pppppppcVar34[0xd] = (code ******)pppppppcVar30;" (assignment_expression "pppppppcVar34[0xd] = (code ******)pppppppcVar30" (subscript_expression "pppppppcVar34[0xd]" (identifier "pppppppcVar34") ([ "[") (number_literal "0xd") (] "]")) (= "=") (cast_expression "(code ******)pppppppcVar30" (( "(") (type_descriptor "code ******" (type_identifier "code") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (identifier "pppppppcVar30"))) (; ";")) (expression_statement "pppppppcVar29 = (code *******)*pppppppcVar3;" (assignment_expression "pppppppcVar29 = (code *******)*pppppppcVar3" (identifier "pppppppcVar29") (= "=") (cast_expression "(code *******)*pppppppcVar3" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (pointer_expression "*pppppppcVar3" (* "*") (identifier "pppppppcVar3")))) (; ";")) (expression_statement "ppppppcVar39 = pppppppcVar29[1];" (assignment_expression "ppppppcVar39 = pppppppcVar29[1]" (identifier "ppppppcVar39") (= "=") (subscript_expression "pppppppcVar29[1]" (identifier "pppppppcVar29") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "iVar18 = (int)ppppppcVar39 << 2;" (assignment_expression "iVar18 = (int)ppppppcVar39 << 2" (identifier "iVar18") (= "=") (binary_expression "(int)ppppppcVar39 << 2" (cast_expression "(int)ppppppcVar39" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppppppcVar39")) (<< "<<") (number_literal "2"))) (; ";")) (expression_statement "ppppppcVar32 = (code ******)(*pcVar4)(iVar18);" (assignment_expression "ppppppcVar32 = (code ******)(*pcVar4)(iVar18)" (identifier "ppppppcVar32") (= "=") (cast_expression "(code ******)(*pcVar4)(iVar18)" (( "(") (type_descriptor "code ******" (type_identifier "code") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (call_expression "(*pcVar4)(iVar18)" (parenthesized_expression "(*pcVar4)" (( "(") (pointer_expression "*pcVar4" (* "*") (identifier "pcVar4")) () ")")) (argument_list "(iVar18)" (( "(") (identifier "iVar18") () ")"))))) (; ";")) (expression_statement "pppppppcVar29[3] = ppppppcVar32;" (assignment_expression "pppppppcVar29[3] = ppppppcVar32" (subscript_expression "pppppppcVar29[3]" (identifier "pppppppcVar29") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "ppppppcVar32")) (; ";")) (expression_statement "ppppppcVar35 = (code ******)(**(code **)(puVar41 + 0x23cf0))(iVar18);" (assignment_expression "ppppppcVar35 = (code ******)(**(code **)(puVar41 + 0x23cf0))(iVar18)" (identifier "ppppppcVar35") (= "=") (cast_expression "(code ******)(**(code **)(puVar41 + 0x23cf0))(iVar18)" (( "(") (type_descriptor "code ******" (type_identifier "code") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (call_expression "(**(code **)(puVar41 + 0x23cf0))(iVar18)" (parenthesized_expression "(**(code **)(puVar41 + 0x23cf0))" (( "(") (pointer_expression "**(code **)(puVar41 + 0x23cf0)" (* "*") (pointer_expression "*(code **)(puVar41 + 0x23cf0)" (* "*") (cast_expression "(code **)(puVar41 + 0x23cf0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar41 + 0x23cf0)" (( "(") (binary_expression "puVar41 + 0x23cf0" (identifier "puVar41") (+ "+") (number_literal "0x23cf0")) () ")"))))) () ")")) (argument_list "(iVar18)" (( "(") (identifier "iVar18") () ")"))))) (; ";")) (expression_statement "pppppppcVar29[4] = ppppppcVar35;" (assignment_expression "pppppppcVar29[4] = ppppppcVar35" (subscript_expression "pppppppcVar29[4]" (identifier "pppppppcVar29") ([ "[") (number_literal "4") (] "]")) (= "=") (identifier "ppppppcVar35")) (; ";")) (expression_statement "iVar18 = (int)ppppppcVar39 * 0xc;" (assignment_expression "iVar18 = (int)ppppppcVar39 * 0xc" (identifier "iVar18") (= "=") (binary_expression "(int)ppppppcVar39 * 0xc" (cast_expression "(int)ppppppcVar39" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppppppcVar39")) (* "*") (number_literal "0xc"))) (; ";")) (expression_statement "ppppppcVar39 = (code ******)(**(code **)(puVar41 + 0x23cf0))(iVar18);" (assignment_expression "ppppppcVar39 = (code ******)(**(code **)(puVar41 + 0x23cf0))(iVar18)" (identifier "ppppppcVar39") (= "=") (cast_expression "(code ******)(**(code **)(puVar41 + 0x23cf0))(iVar18)" (( "(") (type_descriptor "code ******" (type_identifier "code") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (call_expression "(**(code **)(puVar41 + 0x23cf0))(iVar18)" (parenthesized_expression "(**(code **)(puVar41 + 0x23cf0))" (( "(") (pointer_expression "**(code **)(puVar41 + 0x23cf0)" (* "*") (pointer_expression "*(code **)(puVar41 + 0x23cf0)" (* "*") (cast_expression "(code **)(puVar41 + 0x23cf0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar41 + 0x23cf0)" (( "(") (binary_expression "puVar41 + 0x23cf0" (identifier "puVar41") (+ "+") (number_literal "0x23cf0")) () ")"))))) () ")")) (argument_list "(iVar18)" (( "(") (identifier "iVar18") () ")"))))) (; ";")) (expression_statement "pppppppcVar29[5] = ppppppcVar39;" (assignment_expression "pppppppcVar29[5] = ppppppcVar39" (subscript_expression "pppppppcVar29[5]" (identifier "pppppppcVar29") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "ppppppcVar39")) (; ";")) (expression_statement "ppppppcVar20 = (code ******)(**(code **)(puVar41 + 0x23cf0))(iVar18);" (assignment_expression "ppppppcVar20 = (code ******)(**(code **)(puVar41 + 0x23cf0))(iVar18)" (identifier "ppppppcVar20") (= "=") (cast_expression "(code ******)(**(code **)(puVar41 + 0x23cf0))(iVar18)" (( "(") (type_descriptor "code ******" (type_identifier "code") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (call_expression "(**(code **)(puVar41 + 0x23cf0))(iVar18)" (parenthesized_expression "(**(code **)(puVar41 + 0x23cf0))" (( "(") (pointer_expression "**(code **)(puVar41 + 0x23cf0)" (* "*") (pointer_expression "*(code **)(puVar41 + 0x23cf0)" (* "*") (cast_expression "(code **)(puVar41 + 0x23cf0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar41 + 0x23cf0)" (( "(") (binary_expression "puVar41 + 0x23cf0" (identifier "puVar41") (+ "+") (number_literal "0x23cf0")) () ")"))))) () ")")) (argument_list "(iVar18)" (( "(") (identifier "iVar18") () ")"))))) (; ";")) (expression_statement "pppppppcVar29[6] = ppppppcVar20;" (assignment_expression "pppppppcVar29[6] = ppppppcVar20" (subscript_expression "pppppppcVar29[6]" (identifier "pppppppcVar29") ([ "[") (number_literal "6") (] "]")) (= "=") (identifier "ppppppcVar20")) (; ";")) (if_statement "if (ppppppcVar32 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else if (ppppppcVar35 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else if (ppppppcVar39 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else if (ppppppcVar20 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else {\n          ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23cf0))((int)pppppppcVar3[6] << 2);\n          pppppppcVar29[0x21] = ppppppcVar32;\n          if (ppppppcVar32 != (code ******)0x0) {\n            ppppppcVar32 = (code ******)0x0;\n            if (pppppppcVar3[6] != (code ******)0x0) {\n              do {\n                pppppppcVar29[0x21][(int)ppppppcVar32] = (code *****)ppppppcVar32;\n                ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n              } while (ppppppcVar32 < pppppppcVar3[6]);\n            }\n            FUN_00046050(pppppppcVar29[0xd],*(int *)(puVar41 + 0x23abc) + 0x60e8,pppppppcVar29);\n            ppppppcVar32 = pppppppcVar3[6];\n            if (ppppppcVar32 == (code ******)0x0) {\nLAB_00056704:\n              (**(code **)(puVar41 + 0x23dc0))(pppppppcVar29[0x21]);\n              pppppppcVar29[0x21] = (code ******)0x0;\n            }\n            else {\n              ppppppcVar35 = pppppppcVar29[0x21];\n              if (*ppppppcVar35 == (code *****)0x0) {\n                ppppppcVar39 = (code ******)0x0;\n                do {\n                  ppppppcVar35 = ppppppcVar35 + 1;\n                  ppppppcVar39 = (code ******)((int)ppppppcVar39 + 1);\n                  if (ppppppcVar32 == ppppppcVar39) {\n                    if (ppppppcVar32 == ppppppcVar39) goto LAB_00056704;\n                    break;\n                  }\n                } while ((code ******)*ppppppcVar35 == ppppppcVar39);\n              }\n            }\n          }\n          pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23abc) + 0x73a4);\n          pppppppcVar30 = (code *******)FUN_00045fb4(pppppppcVar29[0xd],pppppppcVar38,pppppppcVar3);\n          pppppppcVar31 = pppppppcVar29;\n          if (pppppppcVar30 == (code *******)0x0) {\n            pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23b40) + -0x5be4);\n            pppppppcVar30 = (code *******)FUN_00045fb4(pppppppcVar29[0xd],pppppppcVar38);\n            if (pppppppcVar30 == (code *******)0x0) {\n              FUN_00046050(pppppppcVar29[0xd],*(int *)(puVar41 + 0x23abc) + 0x61b4);\n              pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23b40) + -0x4614);\n              pppppppcVar30 = (code *******)FUN_00046050(pppppppcVar29[0xd],pppppppcVar38);\n              if (pppppppcVar30 == (code *******)0x0) {\n                uVar7 = 0;\n                iVar18 = *(int *)(puVar41 + 0x23b40);\n                pppppppcVar33 = (code *******)0x0;\nLAB_00056744:\n                if ((code *******)pppppppcVar29[2] != pppppppcVar33) {\nLAB_00056750:\n                  if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                    pppppppcVar38 = pppppppcVar29;\n                    pppppppcVar31 = pppppppcVar33;\n                    pppppppcVar30 =\n                         (code *******)\n                         (*(code *)(iVar18 + -0x561c))\n                                   (&ppppppcStack_204,pppppppcVar29,pppppppcVar33,1);\n                    if (pppppppcVar30 != (code *******)0x0) goto LAB_00056168;\n                    if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                      (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                      uVar7 = 1;\n                    }\n                  }\n                  pppppppcVar33 = (code *******)((int)pppppppcVar33 + 1);\n                  goto LAB_00056744;\n                }\n                if (uVar7 != 0) {\n                  uVar7 = 0;\n                  pppppppcVar33 = (code *******)0x0;\n                  goto LAB_00056750;\n                }\n                if (((((uint)pppppppcVar3[7] & 0x8000000) == 0) &&\n                    (pppppppcVar3[6] != (code ******)0x0)) &&\n                   ((char)*(code *)(pppppppcVar29 + 0x16) < '\0')) {\n                  ppppppcVar32 = pppppppcVar29[2];\n                }\n                else {\n                  if (pppppppcVar29[0x13] == (code ******)0x0) goto LAB_000568f0;\n                  ppppppcVar32 = pppppppcVar29[2];\n                }\n                ppppppcVar35 = (code ******)\n                               (**(code **)(puVar41 + 0x23cf0))((int)ppppppcVar32 * 0xc);\n                pppppppcVar29[7] = ppppppcVar35;\n                if (ppppppcVar35 == (code ******)0x0) {\n                  pppppppcVar30 = (code *******)0xc;\n                  goto LAB_00056168;\n                }\n                if (ppppppcVar32 != (code ******)0x0) {\n                  iVar18 = 0;\n                  ppppppcVar32 = (code ******)0x0;\n                  do {\n                    puVar21 = (undefined1 *)((int)pppppppcVar29[7] + iVar18);\n                    *puVar21 = 0;\n                    puVar21[1] = 0;\n                    puVar21[2] = 0;\n                    puVar21[3] = 0;\n                    puVar21[4] = 0;\n                    puVar21[5] = 0;\n                    puVar21[6] = 0;\n                    puVar21[7] = 0;\n                    puVar21[8] = 0;\n                    puVar21[9] = 0;\n                    puVar21[10] = 0;\n                    puVar21[0xb] = 0;\n                    ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                    iVar18 = iVar18 + 0xc;\n                  } while (ppppppcVar32 < pppppppcVar29[2]);\n                  iVar18 = *(int *)(puVar41 + 0x23abc);\n                  if (pppppppcVar29[2] != (code ******)0x0) {\n                    iVar43 = 0;\n                    pppppppcStack_218 = (code *******)0x0;\n                    do {\n                      piVar5 = *(int **)((int)pppppppcVar29[6] + iVar43 + 8);\n                      if (0 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4)) {\n                        iVar37 = 0;\n                        do {\n                          pppppppcVar38 = pppppppcStack_218;\n                          iVar22 = (*(code *)(iVar18 + 0x6e30))\n                                             (pppppppcVar29[7] + *piVar5 * 3,pppppppcStack_218);\n                          pppppppcVar30 = (code *******)0xc;\n                          if (iVar22 == 0) goto LAB_00056168;\n                          iVar37 = iVar37 + 1;\n                          piVar5 = piVar5 + 1;\n                        } while (iVar37 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4));\n                      }\n                      pppppppcStack_218 = (code *******)((int)pppppppcStack_218 + 1);\n                      iVar43 = iVar43 + 0xc;\n                    } while (pppppppcStack_218 < pppppppcVar29[2]);\n                  }\n                }\nLAB_000568f0:\n                pppppppcStack_20c = (code *******)0x0;\n                if (((((uint)pppppppcVar34[0x16] & 0x20000000) != 0) && (uVar16 == 0)) &&\n                   (pppppppcVar3[5] == (code ******)0x0)) {\n                  if (pppppppcVar34[2] != (code ******)0x0) {\n                    pppppppcVar31 = (code *******)(*(int *)(puVar41 + 0x23754) + 0x6e4c);\n                    if (*(byte *)(*pppppppcVar34 + 1) < 0xd) {\n                    \n                    \n                      pppppppcVar29 =\n                           (code *******)\n                           (*(code *)(puVar41 +\n                                     (int)(pppppppcVar31[*(byte *)(*pppppppcVar34 + 1)] + 0xadc7)))\n                                     ();\n                      return pppppppcVar29;\n                    }\n                    (**(code **)(puVar41 + 0x23bc4))(0);\n                    if (uVar7 != 0) {\n                      pppppppcVar31 = (code *******)&DAT_00000007;\n                      ppppppcVar32 = (code ******)0x0;\n                      do {\n                        ppppppcVar35 = *pppppppcVar34 + (int)ppppppcVar32 * 2;\n                        if (*(char *)(ppppppcVar35 + 1) == '\x01') {\n                          if (*(char *)ppppppcVar35 < '\0') {\n                            ppppppcVar35[1] = (code *****)((uint)ppppppcVar35[1] & 0xfffffbff);\n                          }\n                        }\n                        else if (*(char *)(ppppppcVar35 + 1) == '\x05') {\n                          *(char *)(ppppppcVar35 + 1) = '\a';\n                        }\n                        ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                      } while (ppppppcVar32 < pppppppcVar34[2]);\n                    }\n                  }\n                  pppppppcVar34[0x17] = (code ******)0x1;\n                  if (0 < (int)pppppppcVar34[0x13]) {\n                    uVar7 = 1;\n                  }\n                  *(byte *)(pppppppcVar34 + 0x16) =\n                       (byte)*(code *)(pppppppcVar34 + 0x16) & 0x9f | (byte)((uVar7 & 1) << 6);\n                }\n                ppppppcVar32 = (code ******)pppppppcVar34[0xd][3][7];\n                pppppppcVar34[0x12] = ppppppcVar32;\n                pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppppcVar32 * 3);\n                pppppppcVar33 = (code *******)FUN_000483e8(&ppppppcStack_204,pppppppcVar38);\n                pppppppcVar29 = pppppppcVar33;\n                pppppppcStack_208 = pppppppcVar33;\n                if (pppppppcVar33 == (code *******)0x0) {\n                  if ((0 < (int)pppppppcVar34[0x13]) && (0 < iStack_200)) {\n                    iVar18 = *(int *)(puVar41 + 0x23abc);\n                    iVar43 = *(int *)(puVar41 + 0x23abc);\n                    pppppppcVar29 = (code *******)0x0;\n                    do {\n                      pppppppcVar31 =\n                           (code *******)(*pppppppcVar34 + piStack_1fc[(int)pppppppcVar29] * 2);\n                      if (*(code *)(pppppppcVar31 + 1) == (code)0x4) {\n                        iVar37 = 0;\n                        piVar5 = piStack_1fc;\n                        if (iStack_200 < 1) {\nLAB_00056b8c:\n                          if (iStack_200 != iVar37) {\n                            ppppcVar40 = *pppppppcVar34[5][piStack_1fc[(int)pppppppcVar29] * 3 + 2];\n                            iVar37 = (*(code *)(iVar18 + 0x5ea8))(&ppppppcStack_204,ppppcVar40);\n                            if (iVar37 == 0) {\n                              pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppcVar40 * 3)\n                              ;\n                              pppppppcVar29 =\n                                   (code *******)\n                                   (*(code *)(iVar43 + 0x7f1c))(&ppppppcStack_204,pppppppcVar38);\n                              if (pppppppcVar29 != (code *******)0x0) goto LAB_00056cb8;\n                            }\n                          }\n                        }\n                        else {\n                          do {\n                            ppppppcVar32 = *pppppppcVar34 + *piVar5 * 2;\n                            if ((*(char *)(ppppppcVar32 + 1) == '\t') &&\n                               ((code ******)*ppppppcVar32 == *pppppppcVar31)) goto LAB_00056b8c;\n                            iVar37 = iVar37 + 1;\n                            piVar5 = piVar5 + 1;\n                          } while (iStack_200 != iVar37);\n                        }\n                      }\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1);\n                    } while ((int)pppppppcVar29 < iStack_200);\n                  }\n                  pppppppcVar31 = &ppppppcStack_204;\n                  pppppppcVar38 = pppppppcVar34;\n                  ppppppcVar32 = (code ******)\n                                 FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,0);\n                  pppppppcVar34[9] = ppppppcVar32;\n                  pppppppcVar29 = pppppppcStack_208;\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    if (((uint)ppppppcVar32[0xd] & 0x1000000) == 0) {\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar34[10] = ppppppcVar32;\n                    }\n                    else {\n                      pppppppcVar31 = &ppppppcStack_204;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,1);\n                      pppppppcVar34[10] = ppppppcVar32;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,2);\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar38 = pppppppcVar34;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,6);\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar29 = pppppppcStack_208;\n                      if (((pppppppcVar34[10] == (code ******)0x0) ||\n                          (pppppppcVar34[0xb] == (code ******)0x0)) ||\n                         (ppppppcVar32 == (code ******)0x0)) goto LAB_00056cb8;\n                    }\n                    (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                    pppppppcVar29 = pppppppcVar33;\n                  }\n                }\nLAB_00056cb8:\n                pppppppcStack_20c = pppppppcVar29;\n                FUN_0004b234(pppppppcVar3);\n                FUN_0004b2bc(&pppppppcStack_1f8);\n                pppppppcVar29 = pppppppcStack_20c;\n                if (pppppppcStack_20c != (code *******)0x0) {\n                  if (*(int *)(puVar41 + 0x23c78) != 0) {\n                    (**(code **)(puVar41 + 0x23df0))(pppppppcVar34 + 0x22);\n                  }\n                  FUN_0004b338(pppppppcVar34);\n                  *pppppppcVar3 = (code ******)0x0;\n                  pppppppcVar3[1] = (code ******)0x0;\n                  pppppppcVar29 = pppppppcStack_20c;\n                }\n                goto LAB_00056cfc;\n              }\n            }\n          }\n        }" (if "if") (parenthesized_expression "(ppppppcVar32 == (code ******)0x0)" (( "(") (binary_expression "ppppppcVar32 == (code ******)0x0" (identifier "ppppppcVar32") (== "==") (cast_expression "(code ******)0x0" (( "(") (type_descriptor "code ******" (type_identifier "code") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          pppppppcVar30 = (code *******)0xc;\n        }" ({ "{") (expression_statement "pppppppcVar30 = (code *******)0xc;" (assignment_expression "pppppppcVar30 = (code *******)0xc" (identifier "pppppppcVar30") (= "=") (cast_expression "(code *******)0xc" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0xc"))) (; ";")) (} "}")) (else_clause "else if (ppppppcVar35 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else if (ppppppcVar39 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else if (ppppppcVar20 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else {\n          ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23cf0))((int)pppppppcVar3[6] << 2);\n          pppppppcVar29[0x21] = ppppppcVar32;\n          if (ppppppcVar32 != (code ******)0x0) {\n            ppppppcVar32 = (code ******)0x0;\n            if (pppppppcVar3[6] != (code ******)0x0) {\n              do {\n                pppppppcVar29[0x21][(int)ppppppcVar32] = (code *****)ppppppcVar32;\n                ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n              } while (ppppppcVar32 < pppppppcVar3[6]);\n            }\n            FUN_00046050(pppppppcVar29[0xd],*(int *)(puVar41 + 0x23abc) + 0x60e8,pppppppcVar29);\n            ppppppcVar32 = pppppppcVar3[6];\n            if (ppppppcVar32 == (code ******)0x0) {\nLAB_00056704:\n              (**(code **)(puVar41 + 0x23dc0))(pppppppcVar29[0x21]);\n              pppppppcVar29[0x21] = (code ******)0x0;\n            }\n            else {\n              ppppppcVar35 = pppppppcVar29[0x21];\n              if (*ppppppcVar35 == (code *****)0x0) {\n                ppppppcVar39 = (code ******)0x0;\n                do {\n                  ppppppcVar35 = ppppppcVar35 + 1;\n                  ppppppcVar39 = (code ******)((int)ppppppcVar39 + 1);\n                  if (ppppppcVar32 == ppppppcVar39) {\n                    if (ppppppcVar32 == ppppppcVar39) goto LAB_00056704;\n                    break;\n                  }\n                } while ((code ******)*ppppppcVar35 == ppppppcVar39);\n              }\n            }\n          }\n          pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23abc) + 0x73a4);\n          pppppppcVar30 = (code *******)FUN_00045fb4(pppppppcVar29[0xd],pppppppcVar38,pppppppcVar3);\n          pppppppcVar31 = pppppppcVar29;\n          if (pppppppcVar30 == (code *******)0x0) {\n            pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23b40) + -0x5be4);\n            pppppppcVar30 = (code *******)FUN_00045fb4(pppppppcVar29[0xd],pppppppcVar38);\n            if (pppppppcVar30 == (code *******)0x0) {\n              FUN_00046050(pppppppcVar29[0xd],*(int *)(puVar41 + 0x23abc) + 0x61b4);\n              pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23b40) + -0x4614);\n              pppppppcVar30 = (code *******)FUN_00046050(pppppppcVar29[0xd],pppppppcVar38);\n              if (pppppppcVar30 == (code *******)0x0) {\n                uVar7 = 0;\n                iVar18 = *(int *)(puVar41 + 0x23b40);\n                pppppppcVar33 = (code *******)0x0;\nLAB_00056744:\n                if ((code *******)pppppppcVar29[2] != pppppppcVar33) {\nLAB_00056750:\n                  if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                    pppppppcVar38 = pppppppcVar29;\n                    pppppppcVar31 = pppppppcVar33;\n                    pppppppcVar30 =\n                         (code *******)\n                         (*(code *)(iVar18 + -0x561c))\n                                   (&ppppppcStack_204,pppppppcVar29,pppppppcVar33,1);\n                    if (pppppppcVar30 != (code *******)0x0) goto LAB_00056168;\n                    if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                      (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                      uVar7 = 1;\n                    }\n                  }\n                  pppppppcVar33 = (code *******)((int)pppppppcVar33 + 1);\n                  goto LAB_00056744;\n                }\n                if (uVar7 != 0) {\n                  uVar7 = 0;\n                  pppppppcVar33 = (code *******)0x0;\n                  goto LAB_00056750;\n                }\n                if (((((uint)pppppppcVar3[7] & 0x8000000) == 0) &&\n                    (pppppppcVar3[6] != (code ******)0x0)) &&\n                   ((char)*(code *)(pppppppcVar29 + 0x16) < '\0')) {\n                  ppppppcVar32 = pppppppcVar29[2];\n                }\n                else {\n                  if (pppppppcVar29[0x13] == (code ******)0x0) goto LAB_000568f0;\n                  ppppppcVar32 = pppppppcVar29[2];\n                }\n                ppppppcVar35 = (code ******)\n                               (**(code **)(puVar41 + 0x23cf0))((int)ppppppcVar32 * 0xc);\n                pppppppcVar29[7] = ppppppcVar35;\n                if (ppppppcVar35 == (code ******)0x0) {\n                  pppppppcVar30 = (code *******)0xc;\n                  goto LAB_00056168;\n                }\n                if (ppppppcVar32 != (code ******)0x0) {\n                  iVar18 = 0;\n                  ppppppcVar32 = (code ******)0x0;\n                  do {\n                    puVar21 = (undefined1 *)((int)pppppppcVar29[7] + iVar18);\n                    *puVar21 = 0;\n                    puVar21[1] = 0;\n                    puVar21[2] = 0;\n                    puVar21[3] = 0;\n                    puVar21[4] = 0;\n                    puVar21[5] = 0;\n                    puVar21[6] = 0;\n                    puVar21[7] = 0;\n                    puVar21[8] = 0;\n                    puVar21[9] = 0;\n                    puVar21[10] = 0;\n                    puVar21[0xb] = 0;\n                    ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                    iVar18 = iVar18 + 0xc;\n                  } while (ppppppcVar32 < pppppppcVar29[2]);\n                  iVar18 = *(int *)(puVar41 + 0x23abc);\n                  if (pppppppcVar29[2] != (code ******)0x0) {\n                    iVar43 = 0;\n                    pppppppcStack_218 = (code *******)0x0;\n                    do {\n                      piVar5 = *(int **)((int)pppppppcVar29[6] + iVar43 + 8);\n                      if (0 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4)) {\n                        iVar37 = 0;\n                        do {\n                          pppppppcVar38 = pppppppcStack_218;\n                          iVar22 = (*(code *)(iVar18 + 0x6e30))\n                                             (pppppppcVar29[7] + *piVar5 * 3,pppppppcStack_218);\n                          pppppppcVar30 = (code *******)0xc;\n                          if (iVar22 == 0) goto LAB_00056168;\n                          iVar37 = iVar37 + 1;\n                          piVar5 = piVar5 + 1;\n                        } while (iVar37 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4));\n                      }\n                      pppppppcStack_218 = (code *******)((int)pppppppcStack_218 + 1);\n                      iVar43 = iVar43 + 0xc;\n                    } while (pppppppcStack_218 < pppppppcVar29[2]);\n                  }\n                }\nLAB_000568f0:\n                pppppppcStack_20c = (code *******)0x0;\n                if (((((uint)pppppppcVar34[0x16] & 0x20000000) != 0) && (uVar16 == 0)) &&\n                   (pppppppcVar3[5] == (code ******)0x0)) {\n                  if (pppppppcVar34[2] != (code ******)0x0) {\n                    pppppppcVar31 = (code *******)(*(int *)(puVar41 + 0x23754) + 0x6e4c);\n                    if (*(byte *)(*pppppppcVar34 + 1) < 0xd) {\n                    \n                    \n                      pppppppcVar29 =\n                           (code *******)\n                           (*(code *)(puVar41 +\n                                     (int)(pppppppcVar31[*(byte *)(*pppppppcVar34 + 1)] + 0xadc7)))\n                                     ();\n                      return pppppppcVar29;\n                    }\n                    (**(code **)(puVar41 + 0x23bc4))(0);\n                    if (uVar7 != 0) {\n                      pppppppcVar31 = (code *******)&DAT_00000007;\n                      ppppppcVar32 = (code ******)0x0;\n                      do {\n                        ppppppcVar35 = *pppppppcVar34 + (int)ppppppcVar32 * 2;\n                        if (*(char *)(ppppppcVar35 + 1) == '\x01') {\n                          if (*(char *)ppppppcVar35 < '\0') {\n                            ppppppcVar35[1] = (code *****)((uint)ppppppcVar35[1] & 0xfffffbff);\n                          }\n                        }\n                        else if (*(char *)(ppppppcVar35 + 1) == '\x05') {\n                          *(char *)(ppppppcVar35 + 1) = '\a';\n                        }\n                        ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                      } while (ppppppcVar32 < pppppppcVar34[2]);\n                    }\n                  }\n                  pppppppcVar34[0x17] = (code ******)0x1;\n                  if (0 < (int)pppppppcVar34[0x13]) {\n                    uVar7 = 1;\n                  }\n                  *(byte *)(pppppppcVar34 + 0x16) =\n                       (byte)*(code *)(pppppppcVar34 + 0x16) & 0x9f | (byte)((uVar7 & 1) << 6);\n                }\n                ppppppcVar32 = (code ******)pppppppcVar34[0xd][3][7];\n                pppppppcVar34[0x12] = ppppppcVar32;\n                pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppppcVar32 * 3);\n                pppppppcVar33 = (code *******)FUN_000483e8(&ppppppcStack_204,pppppppcVar38);\n                pppppppcVar29 = pppppppcVar33;\n                pppppppcStack_208 = pppppppcVar33;\n                if (pppppppcVar33 == (code *******)0x0) {\n                  if ((0 < (int)pppppppcVar34[0x13]) && (0 < iStack_200)) {\n                    iVar18 = *(int *)(puVar41 + 0x23abc);\n                    iVar43 = *(int *)(puVar41 + 0x23abc);\n                    pppppppcVar29 = (code *******)0x0;\n                    do {\n                      pppppppcVar31 =\n                           (code *******)(*pppppppcVar34 + piStack_1fc[(int)pppppppcVar29] * 2);\n                      if (*(code *)(pppppppcVar31 + 1) == (code)0x4) {\n                        iVar37 = 0;\n                        piVar5 = piStack_1fc;\n                        if (iStack_200 < 1) {\nLAB_00056b8c:\n                          if (iStack_200 != iVar37) {\n                            ppppcVar40 = *pppppppcVar34[5][piStack_1fc[(int)pppppppcVar29] * 3 + 2];\n                            iVar37 = (*(code *)(iVar18 + 0x5ea8))(&ppppppcStack_204,ppppcVar40);\n                            if (iVar37 == 0) {\n                              pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppcVar40 * 3)\n                              ;\n                              pppppppcVar29 =\n                                   (code *******)\n                                   (*(code *)(iVar43 + 0x7f1c))(&ppppppcStack_204,pppppppcVar38);\n                              if (pppppppcVar29 != (code *******)0x0) goto LAB_00056cb8;\n                            }\n                          }\n                        }\n                        else {\n                          do {\n                            ppppppcVar32 = *pppppppcVar34 + *piVar5 * 2;\n                            if ((*(char *)(ppppppcVar32 + 1) == '\t') &&\n                               ((code ******)*ppppppcVar32 == *pppppppcVar31)) goto LAB_00056b8c;\n                            iVar37 = iVar37 + 1;\n                            piVar5 = piVar5 + 1;\n                          } while (iStack_200 != iVar37);\n                        }\n                      }\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1);\n                    } while ((int)pppppppcVar29 < iStack_200);\n                  }\n                  pppppppcVar31 = &ppppppcStack_204;\n                  pppppppcVar38 = pppppppcVar34;\n                  ppppppcVar32 = (code ******)\n                                 FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,0);\n                  pppppppcVar34[9] = ppppppcVar32;\n                  pppppppcVar29 = pppppppcStack_208;\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    if (((uint)ppppppcVar32[0xd] & 0x1000000) == 0) {\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar34[10] = ppppppcVar32;\n                    }\n                    else {\n                      pppppppcVar31 = &ppppppcStack_204;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,1);\n                      pppppppcVar34[10] = ppppppcVar32;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,2);\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar38 = pppppppcVar34;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,6);\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar29 = pppppppcStack_208;\n                      if (((pppppppcVar34[10] == (code ******)0x0) ||\n                          (pppppppcVar34[0xb] == (code ******)0x0)) ||\n                         (ppppppcVar32 == (code ******)0x0)) goto LAB_00056cb8;\n                    }\n                    (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                    pppppppcVar29 = pppppppcVar33;\n                  }\n                }\nLAB_00056cb8:\n                pppppppcStack_20c = pppppppcVar29;\n                FUN_0004b234(pppppppcVar3);\n                FUN_0004b2bc(&pppppppcStack_1f8);\n                pppppppcVar29 = pppppppcStack_20c;\n                if (pppppppcStack_20c != (code *******)0x0) {\n                  if (*(int *)(puVar41 + 0x23c78) != 0) {\n                    (**(code **)(puVar41 + 0x23df0))(pppppppcVar34 + 0x22);\n                  }\n                  FUN_0004b338(pppppppcVar34);\n                  *pppppppcVar3 = (code ******)0x0;\n                  pppppppcVar3[1] = (code ******)0x0;\n                  pppppppcVar29 = pppppppcStack_20c;\n                }\n                goto LAB_00056cfc;\n              }\n            }\n          }\n        }" (else "else") (if_statement "if (ppppppcVar35 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else if (ppppppcVar39 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else if (ppppppcVar20 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else {\n          ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23cf0))((int)pppppppcVar3[6] << 2);\n          pppppppcVar29[0x21] = ppppppcVar32;\n          if (ppppppcVar32 != (code ******)0x0) {\n            ppppppcVar32 = (code ******)0x0;\n            if (pppppppcVar3[6] != (code ******)0x0) {\n              do {\n                pppppppcVar29[0x21][(int)ppppppcVar32] = (code *****)ppppppcVar32;\n                ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n              } while (ppppppcVar32 < pppppppcVar3[6]);\n            }\n            FUN_00046050(pppppppcVar29[0xd],*(int *)(puVar41 + 0x23abc) + 0x60e8,pppppppcVar29);\n            ppppppcVar32 = pppppppcVar3[6];\n            if (ppppppcVar32 == (code ******)0x0) {\nLAB_00056704:\n              (**(code **)(puVar41 + 0x23dc0))(pppppppcVar29[0x21]);\n              pppppppcVar29[0x21] = (code ******)0x0;\n            }\n            else {\n              ppppppcVar35 = pppppppcVar29[0x21];\n              if (*ppppppcVar35 == (code *****)0x0) {\n                ppppppcVar39 = (code ******)0x0;\n                do {\n                  ppppppcVar35 = ppppppcVar35 + 1;\n                  ppppppcVar39 = (code ******)((int)ppppppcVar39 + 1);\n                  if (ppppppcVar32 == ppppppcVar39) {\n                    if (ppppppcVar32 == ppppppcVar39) goto LAB_00056704;\n                    break;\n                  }\n                } while ((code ******)*ppppppcVar35 == ppppppcVar39);\n              }\n            }\n          }\n          pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23abc) + 0x73a4);\n          pppppppcVar30 = (code *******)FUN_00045fb4(pppppppcVar29[0xd],pppppppcVar38,pppppppcVar3);\n          pppppppcVar31 = pppppppcVar29;\n          if (pppppppcVar30 == (code *******)0x0) {\n            pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23b40) + -0x5be4);\n            pppppppcVar30 = (code *******)FUN_00045fb4(pppppppcVar29[0xd],pppppppcVar38);\n            if (pppppppcVar30 == (code *******)0x0) {\n              FUN_00046050(pppppppcVar29[0xd],*(int *)(puVar41 + 0x23abc) + 0x61b4);\n              pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23b40) + -0x4614);\n              pppppppcVar30 = (code *******)FUN_00046050(pppppppcVar29[0xd],pppppppcVar38);\n              if (pppppppcVar30 == (code *******)0x0) {\n                uVar7 = 0;\n                iVar18 = *(int *)(puVar41 + 0x23b40);\n                pppppppcVar33 = (code *******)0x0;\nLAB_00056744:\n                if ((code *******)pppppppcVar29[2] != pppppppcVar33) {\nLAB_00056750:\n                  if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                    pppppppcVar38 = pppppppcVar29;\n                    pppppppcVar31 = pppppppcVar33;\n                    pppppppcVar30 =\n                         (code *******)\n                         (*(code *)(iVar18 + -0x561c))\n                                   (&ppppppcStack_204,pppppppcVar29,pppppppcVar33,1);\n                    if (pppppppcVar30 != (code *******)0x0) goto LAB_00056168;\n                    if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                      (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                      uVar7 = 1;\n                    }\n                  }\n                  pppppppcVar33 = (code *******)((int)pppppppcVar33 + 1);\n                  goto LAB_00056744;\n                }\n                if (uVar7 != 0) {\n                  uVar7 = 0;\n                  pppppppcVar33 = (code *******)0x0;\n                  goto LAB_00056750;\n                }\n                if (((((uint)pppppppcVar3[7] & 0x8000000) == 0) &&\n                    (pppppppcVar3[6] != (code ******)0x0)) &&\n                   ((char)*(code *)(pppppppcVar29 + 0x16) < '\0')) {\n                  ppppppcVar32 = pppppppcVar29[2];\n                }\n                else {\n                  if (pppppppcVar29[0x13] == (code ******)0x0) goto LAB_000568f0;\n                  ppppppcVar32 = pppppppcVar29[2];\n                }\n                ppppppcVar35 = (code ******)\n                               (**(code **)(puVar41 + 0x23cf0))((int)ppppppcVar32 * 0xc);\n                pppppppcVar29[7] = ppppppcVar35;\n                if (ppppppcVar35 == (code ******)0x0) {\n                  pppppppcVar30 = (code *******)0xc;\n                  goto LAB_00056168;\n                }\n                if (ppppppcVar32 != (code ******)0x0) {\n                  iVar18 = 0;\n                  ppppppcVar32 = (code ******)0x0;\n                  do {\n                    puVar21 = (undefined1 *)((int)pppppppcVar29[7] + iVar18);\n                    *puVar21 = 0;\n                    puVar21[1] = 0;\n                    puVar21[2] = 0;\n                    puVar21[3] = 0;\n                    puVar21[4] = 0;\n                    puVar21[5] = 0;\n                    puVar21[6] = 0;\n                    puVar21[7] = 0;\n                    puVar21[8] = 0;\n                    puVar21[9] = 0;\n                    puVar21[10] = 0;\n                    puVar21[0xb] = 0;\n                    ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                    iVar18 = iVar18 + 0xc;\n                  } while (ppppppcVar32 < pppppppcVar29[2]);\n                  iVar18 = *(int *)(puVar41 + 0x23abc);\n                  if (pppppppcVar29[2] != (code ******)0x0) {\n                    iVar43 = 0;\n                    pppppppcStack_218 = (code *******)0x0;\n                    do {\n                      piVar5 = *(int **)((int)pppppppcVar29[6] + iVar43 + 8);\n                      if (0 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4)) {\n                        iVar37 = 0;\n                        do {\n                          pppppppcVar38 = pppppppcStack_218;\n                          iVar22 = (*(code *)(iVar18 + 0x6e30))\n                                             (pppppppcVar29[7] + *piVar5 * 3,pppppppcStack_218);\n                          pppppppcVar30 = (code *******)0xc;\n                          if (iVar22 == 0) goto LAB_00056168;\n                          iVar37 = iVar37 + 1;\n                          piVar5 = piVar5 + 1;\n                        } while (iVar37 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4));\n                      }\n                      pppppppcStack_218 = (code *******)((int)pppppppcStack_218 + 1);\n                      iVar43 = iVar43 + 0xc;\n                    } while (pppppppcStack_218 < pppppppcVar29[2]);\n                  }\n                }\nLAB_000568f0:\n                pppppppcStack_20c = (code *******)0x0;\n                if (((((uint)pppppppcVar34[0x16] & 0x20000000) != 0) && (uVar16 == 0)) &&\n                   (pppppppcVar3[5] == (code ******)0x0)) {\n                  if (pppppppcVar34[2] != (code ******)0x0) {\n                    pppppppcVar31 = (code *******)(*(int *)(puVar41 + 0x23754) + 0x6e4c);\n                    if (*(byte *)(*pppppppcVar34 + 1) < 0xd) {\n                    \n                    \n                      pppppppcVar29 =\n                           (code *******)\n                           (*(code *)(puVar41 +\n                                     (int)(pppppppcVar31[*(byte *)(*pppppppcVar34 + 1)] + 0xadc7)))\n                                     ();\n                      return pppppppcVar29;\n                    }\n                    (**(code **)(puVar41 + 0x23bc4))(0);\n                    if (uVar7 != 0) {\n                      pppppppcVar31 = (code *******)&DAT_00000007;\n                      ppppppcVar32 = (code ******)0x0;\n                      do {\n                        ppppppcVar35 = *pppppppcVar34 + (int)ppppppcVar32 * 2;\n                        if (*(char *)(ppppppcVar35 + 1) == '\x01') {\n                          if (*(char *)ppppppcVar35 < '\0') {\n                            ppppppcVar35[1] = (code *****)((uint)ppppppcVar35[1] & 0xfffffbff);\n                          }\n                        }\n                        else if (*(char *)(ppppppcVar35 + 1) == '\x05') {\n                          *(char *)(ppppppcVar35 + 1) = '\a';\n                        }\n                        ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                      } while (ppppppcVar32 < pppppppcVar34[2]);\n                    }\n                  }\n                  pppppppcVar34[0x17] = (code ******)0x1;\n                  if (0 < (int)pppppppcVar34[0x13]) {\n                    uVar7 = 1;\n                  }\n                  *(byte *)(pppppppcVar34 + 0x16) =\n                       (byte)*(code *)(pppppppcVar34 + 0x16) & 0x9f | (byte)((uVar7 & 1) << 6);\n                }\n                ppppppcVar32 = (code ******)pppppppcVar34[0xd][3][7];\n                pppppppcVar34[0x12] = ppppppcVar32;\n                pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppppcVar32 * 3);\n                pppppppcVar33 = (code *******)FUN_000483e8(&ppppppcStack_204,pppppppcVar38);\n                pppppppcVar29 = pppppppcVar33;\n                pppppppcStack_208 = pppppppcVar33;\n                if (pppppppcVar33 == (code *******)0x0) {\n                  if ((0 < (int)pppppppcVar34[0x13]) && (0 < iStack_200)) {\n                    iVar18 = *(int *)(puVar41 + 0x23abc);\n                    iVar43 = *(int *)(puVar41 + 0x23abc);\n                    pppppppcVar29 = (code *******)0x0;\n                    do {\n                      pppppppcVar31 =\n                           (code *******)(*pppppppcVar34 + piStack_1fc[(int)pppppppcVar29] * 2);\n                      if (*(code *)(pppppppcVar31 + 1) == (code)0x4) {\n                        iVar37 = 0;\n                        piVar5 = piStack_1fc;\n                        if (iStack_200 < 1) {\nLAB_00056b8c:\n                          if (iStack_200 != iVar37) {\n                            ppppcVar40 = *pppppppcVar34[5][piStack_1fc[(int)pppppppcVar29] * 3 + 2];\n                            iVar37 = (*(code *)(iVar18 + 0x5ea8))(&ppppppcStack_204,ppppcVar40);\n                            if (iVar37 == 0) {\n                              pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppcVar40 * 3)\n                              ;\n                              pppppppcVar29 =\n                                   (code *******)\n                                   (*(code *)(iVar43 + 0x7f1c))(&ppppppcStack_204,pppppppcVar38);\n                              if (pppppppcVar29 != (code *******)0x0) goto LAB_00056cb8;\n                            }\n                          }\n                        }\n                        else {\n                          do {\n                            ppppppcVar32 = *pppppppcVar34 + *piVar5 * 2;\n                            if ((*(char *)(ppppppcVar32 + 1) == '\t') &&\n                               ((code ******)*ppppppcVar32 == *pppppppcVar31)) goto LAB_00056b8c;\n                            iVar37 = iVar37 + 1;\n                            piVar5 = piVar5 + 1;\n                          } while (iStack_200 != iVar37);\n                        }\n                      }\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1);\n                    } while ((int)pppppppcVar29 < iStack_200);\n                  }\n                  pppppppcVar31 = &ppppppcStack_204;\n                  pppppppcVar38 = pppppppcVar34;\n                  ppppppcVar32 = (code ******)\n                                 FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,0);\n                  pppppppcVar34[9] = ppppppcVar32;\n                  pppppppcVar29 = pppppppcStack_208;\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    if (((uint)ppppppcVar32[0xd] & 0x1000000) == 0) {\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar34[10] = ppppppcVar32;\n                    }\n                    else {\n                      pppppppcVar31 = &ppppppcStack_204;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,1);\n                      pppppppcVar34[10] = ppppppcVar32;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,2);\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar38 = pppppppcVar34;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,6);\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar29 = pppppppcStack_208;\n                      if (((pppppppcVar34[10] == (code ******)0x0) ||\n                          (pppppppcVar34[0xb] == (code ******)0x0)) ||\n                         (ppppppcVar32 == (code ******)0x0)) goto LAB_00056cb8;\n                    }\n                    (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                    pppppppcVar29 = pppppppcVar33;\n                  }\n                }\nLAB_00056cb8:\n                pppppppcStack_20c = pppppppcVar29;\n                FUN_0004b234(pppppppcVar3);\n                FUN_0004b2bc(&pppppppcStack_1f8);\n                pppppppcVar29 = pppppppcStack_20c;\n                if (pppppppcStack_20c != (code *******)0x0) {\n                  if (*(int *)(puVar41 + 0x23c78) != 0) {\n                    (**(code **)(puVar41 + 0x23df0))(pppppppcVar34 + 0x22);\n                  }\n                  FUN_0004b338(pppppppcVar34);\n                  *pppppppcVar3 = (code ******)0x0;\n                  pppppppcVar3[1] = (code ******)0x0;\n                  pppppppcVar29 = pppppppcStack_20c;\n                }\n                goto LAB_00056cfc;\n              }\n            }\n          }\n        }" (if "if") (parenthesized_expression "(ppppppcVar35 == (code ******)0x0)" (( "(") (binary_expression "ppppppcVar35 == (code ******)0x0" (identifier "ppppppcVar35") (== "==") (cast_expression "(code ******)0x0" (( "(") (type_descriptor "code ******" (type_identifier "code") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          pppppppcVar30 = (code *******)0xc;\n        }" ({ "{") (expression_statement "pppppppcVar30 = (code *******)0xc;" (assignment_expression "pppppppcVar30 = (code *******)0xc" (identifier "pppppppcVar30") (= "=") (cast_expression "(code *******)0xc" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0xc"))) (; ";")) (} "}")) (else_clause "else if (ppppppcVar39 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else if (ppppppcVar20 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else {\n          ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23cf0))((int)pppppppcVar3[6] << 2);\n          pppppppcVar29[0x21] = ppppppcVar32;\n          if (ppppppcVar32 != (code ******)0x0) {\n            ppppppcVar32 = (code ******)0x0;\n            if (pppppppcVar3[6] != (code ******)0x0) {\n              do {\n                pppppppcVar29[0x21][(int)ppppppcVar32] = (code *****)ppppppcVar32;\n                ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n              } while (ppppppcVar32 < pppppppcVar3[6]);\n            }\n            FUN_00046050(pppppppcVar29[0xd],*(int *)(puVar41 + 0x23abc) + 0x60e8,pppppppcVar29);\n            ppppppcVar32 = pppppppcVar3[6];\n            if (ppppppcVar32 == (code ******)0x0) {\nLAB_00056704:\n              (**(code **)(puVar41 + 0x23dc0))(pppppppcVar29[0x21]);\n              pppppppcVar29[0x21] = (code ******)0x0;\n            }\n            else {\n              ppppppcVar35 = pppppppcVar29[0x21];\n              if (*ppppppcVar35 == (code *****)0x0) {\n                ppppppcVar39 = (code ******)0x0;\n                do {\n                  ppppppcVar35 = ppppppcVar35 + 1;\n                  ppppppcVar39 = (code ******)((int)ppppppcVar39 + 1);\n                  if (ppppppcVar32 == ppppppcVar39) {\n                    if (ppppppcVar32 == ppppppcVar39) goto LAB_00056704;\n                    break;\n                  }\n                } while ((code ******)*ppppppcVar35 == ppppppcVar39);\n              }\n            }\n          }\n          pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23abc) + 0x73a4);\n          pppppppcVar30 = (code *******)FUN_00045fb4(pppppppcVar29[0xd],pppppppcVar38,pppppppcVar3);\n          pppppppcVar31 = pppppppcVar29;\n          if (pppppppcVar30 == (code *******)0x0) {\n            pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23b40) + -0x5be4);\n            pppppppcVar30 = (code *******)FUN_00045fb4(pppppppcVar29[0xd],pppppppcVar38);\n            if (pppppppcVar30 == (code *******)0x0) {\n              FUN_00046050(pppppppcVar29[0xd],*(int *)(puVar41 + 0x23abc) + 0x61b4);\n              pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23b40) + -0x4614);\n              pppppppcVar30 = (code *******)FUN_00046050(pppppppcVar29[0xd],pppppppcVar38);\n              if (pppppppcVar30 == (code *******)0x0) {\n                uVar7 = 0;\n                iVar18 = *(int *)(puVar41 + 0x23b40);\n                pppppppcVar33 = (code *******)0x0;\nLAB_00056744:\n                if ((code *******)pppppppcVar29[2] != pppppppcVar33) {\nLAB_00056750:\n                  if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                    pppppppcVar38 = pppppppcVar29;\n                    pppppppcVar31 = pppppppcVar33;\n                    pppppppcVar30 =\n                         (code *******)\n                         (*(code *)(iVar18 + -0x561c))\n                                   (&ppppppcStack_204,pppppppcVar29,pppppppcVar33,1);\n                    if (pppppppcVar30 != (code *******)0x0) goto LAB_00056168;\n                    if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                      (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                      uVar7 = 1;\n                    }\n                  }\n                  pppppppcVar33 = (code *******)((int)pppppppcVar33 + 1);\n                  goto LAB_00056744;\n                }\n                if (uVar7 != 0) {\n                  uVar7 = 0;\n                  pppppppcVar33 = (code *******)0x0;\n                  goto LAB_00056750;\n                }\n                if (((((uint)pppppppcVar3[7] & 0x8000000) == 0) &&\n                    (pppppppcVar3[6] != (code ******)0x0)) &&\n                   ((char)*(code *)(pppppppcVar29 + 0x16) < '\0')) {\n                  ppppppcVar32 = pppppppcVar29[2];\n                }\n                else {\n                  if (pppppppcVar29[0x13] == (code ******)0x0) goto LAB_000568f0;\n                  ppppppcVar32 = pppppppcVar29[2];\n                }\n                ppppppcVar35 = (code ******)\n                               (**(code **)(puVar41 + 0x23cf0))((int)ppppppcVar32 * 0xc);\n                pppppppcVar29[7] = ppppppcVar35;\n                if (ppppppcVar35 == (code ******)0x0) {\n                  pppppppcVar30 = (code *******)0xc;\n                  goto LAB_00056168;\n                }\n                if (ppppppcVar32 != (code ******)0x0) {\n                  iVar18 = 0;\n                  ppppppcVar32 = (code ******)0x0;\n                  do {\n                    puVar21 = (undefined1 *)((int)pppppppcVar29[7] + iVar18);\n                    *puVar21 = 0;\n                    puVar21[1] = 0;\n                    puVar21[2] = 0;\n                    puVar21[3] = 0;\n                    puVar21[4] = 0;\n                    puVar21[5] = 0;\n                    puVar21[6] = 0;\n                    puVar21[7] = 0;\n                    puVar21[8] = 0;\n                    puVar21[9] = 0;\n                    puVar21[10] = 0;\n                    puVar21[0xb] = 0;\n                    ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                    iVar18 = iVar18 + 0xc;\n                  } while (ppppppcVar32 < pppppppcVar29[2]);\n                  iVar18 = *(int *)(puVar41 + 0x23abc);\n                  if (pppppppcVar29[2] != (code ******)0x0) {\n                    iVar43 = 0;\n                    pppppppcStack_218 = (code *******)0x0;\n                    do {\n                      piVar5 = *(int **)((int)pppppppcVar29[6] + iVar43 + 8);\n                      if (0 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4)) {\n                        iVar37 = 0;\n                        do {\n                          pppppppcVar38 = pppppppcStack_218;\n                          iVar22 = (*(code *)(iVar18 + 0x6e30))\n                                             (pppppppcVar29[7] + *piVar5 * 3,pppppppcStack_218);\n                          pppppppcVar30 = (code *******)0xc;\n                          if (iVar22 == 0) goto LAB_00056168;\n                          iVar37 = iVar37 + 1;\n                          piVar5 = piVar5 + 1;\n                        } while (iVar37 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4));\n                      }\n                      pppppppcStack_218 = (code *******)((int)pppppppcStack_218 + 1);\n                      iVar43 = iVar43 + 0xc;\n                    } while (pppppppcStack_218 < pppppppcVar29[2]);\n                  }\n                }\nLAB_000568f0:\n                pppppppcStack_20c = (code *******)0x0;\n                if (((((uint)pppppppcVar34[0x16] & 0x20000000) != 0) && (uVar16 == 0)) &&\n                   (pppppppcVar3[5] == (code ******)0x0)) {\n                  if (pppppppcVar34[2] != (code ******)0x0) {\n                    pppppppcVar31 = (code *******)(*(int *)(puVar41 + 0x23754) + 0x6e4c);\n                    if (*(byte *)(*pppppppcVar34 + 1) < 0xd) {\n                    \n                    \n                      pppppppcVar29 =\n                           (code *******)\n                           (*(code *)(puVar41 +\n                                     (int)(pppppppcVar31[*(byte *)(*pppppppcVar34 + 1)] + 0xadc7)))\n                                     ();\n                      return pppppppcVar29;\n                    }\n                    (**(code **)(puVar41 + 0x23bc4))(0);\n                    if (uVar7 != 0) {\n                      pppppppcVar31 = (code *******)&DAT_00000007;\n                      ppppppcVar32 = (code ******)0x0;\n                      do {\n                        ppppppcVar35 = *pppppppcVar34 + (int)ppppppcVar32 * 2;\n                        if (*(char *)(ppppppcVar35 + 1) == '\x01') {\n                          if (*(char *)ppppppcVar35 < '\0') {\n                            ppppppcVar35[1] = (code *****)((uint)ppppppcVar35[1] & 0xfffffbff);\n                          }\n                        }\n                        else if (*(char *)(ppppppcVar35 + 1) == '\x05') {\n                          *(char *)(ppppppcVar35 + 1) = '\a';\n                        }\n                        ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                      } while (ppppppcVar32 < pppppppcVar34[2]);\n                    }\n                  }\n                  pppppppcVar34[0x17] = (code ******)0x1;\n                  if (0 < (int)pppppppcVar34[0x13]) {\n                    uVar7 = 1;\n                  }\n                  *(byte *)(pppppppcVar34 + 0x16) =\n                       (byte)*(code *)(pppppppcVar34 + 0x16) & 0x9f | (byte)((uVar7 & 1) << 6);\n                }\n                ppppppcVar32 = (code ******)pppppppcVar34[0xd][3][7];\n                pppppppcVar34[0x12] = ppppppcVar32;\n                pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppppcVar32 * 3);\n                pppppppcVar33 = (code *******)FUN_000483e8(&ppppppcStack_204,pppppppcVar38);\n                pppppppcVar29 = pppppppcVar33;\n                pppppppcStack_208 = pppppppcVar33;\n                if (pppppppcVar33 == (code *******)0x0) {\n                  if ((0 < (int)pppppppcVar34[0x13]) && (0 < iStack_200)) {\n                    iVar18 = *(int *)(puVar41 + 0x23abc);\n                    iVar43 = *(int *)(puVar41 + 0x23abc);\n                    pppppppcVar29 = (code *******)0x0;\n                    do {\n                      pppppppcVar31 =\n                           (code *******)(*pppppppcVar34 + piStack_1fc[(int)pppppppcVar29] * 2);\n                      if (*(code *)(pppppppcVar31 + 1) == (code)0x4) {\n                        iVar37 = 0;\n                        piVar5 = piStack_1fc;\n                        if (iStack_200 < 1) {\nLAB_00056b8c:\n                          if (iStack_200 != iVar37) {\n                            ppppcVar40 = *pppppppcVar34[5][piStack_1fc[(int)pppppppcVar29] * 3 + 2];\n                            iVar37 = (*(code *)(iVar18 + 0x5ea8))(&ppppppcStack_204,ppppcVar40);\n                            if (iVar37 == 0) {\n                              pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppcVar40 * 3)\n                              ;\n                              pppppppcVar29 =\n                                   (code *******)\n                                   (*(code *)(iVar43 + 0x7f1c))(&ppppppcStack_204,pppppppcVar38);\n                              if (pppppppcVar29 != (code *******)0x0) goto LAB_00056cb8;\n                            }\n                          }\n                        }\n                        else {\n                          do {\n                            ppppppcVar32 = *pppppppcVar34 + *piVar5 * 2;\n                            if ((*(char *)(ppppppcVar32 + 1) == '\t') &&\n                               ((code ******)*ppppppcVar32 == *pppppppcVar31)) goto LAB_00056b8c;\n                            iVar37 = iVar37 + 1;\n                            piVar5 = piVar5 + 1;\n                          } while (iStack_200 != iVar37);\n                        }\n                      }\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1);\n                    } while ((int)pppppppcVar29 < iStack_200);\n                  }\n                  pppppppcVar31 = &ppppppcStack_204;\n                  pppppppcVar38 = pppppppcVar34;\n                  ppppppcVar32 = (code ******)\n                                 FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,0);\n                  pppppppcVar34[9] = ppppppcVar32;\n                  pppppppcVar29 = pppppppcStack_208;\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    if (((uint)ppppppcVar32[0xd] & 0x1000000) == 0) {\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar34[10] = ppppppcVar32;\n                    }\n                    else {\n                      pppppppcVar31 = &ppppppcStack_204;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,1);\n                      pppppppcVar34[10] = ppppppcVar32;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,2);\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar38 = pppppppcVar34;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,6);\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar29 = pppppppcStack_208;\n                      if (((pppppppcVar34[10] == (code ******)0x0) ||\n                          (pppppppcVar34[0xb] == (code ******)0x0)) ||\n                         (ppppppcVar32 == (code ******)0x0)) goto LAB_00056cb8;\n                    }\n                    (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                    pppppppcVar29 = pppppppcVar33;\n                  }\n                }\nLAB_00056cb8:\n                pppppppcStack_20c = pppppppcVar29;\n                FUN_0004b234(pppppppcVar3);\n                FUN_0004b2bc(&pppppppcStack_1f8);\n                pppppppcVar29 = pppppppcStack_20c;\n                if (pppppppcStack_20c != (code *******)0x0) {\n                  if (*(int *)(puVar41 + 0x23c78) != 0) {\n                    (**(code **)(puVar41 + 0x23df0))(pppppppcVar34 + 0x22);\n                  }\n                  FUN_0004b338(pppppppcVar34);\n                  *pppppppcVar3 = (code ******)0x0;\n                  pppppppcVar3[1] = (code ******)0x0;\n                  pppppppcVar29 = pppppppcStack_20c;\n                }\n                goto LAB_00056cfc;\n              }\n            }\n          }\n        }" (else "else") (if_statement "if (ppppppcVar39 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else if (ppppppcVar20 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else {\n          ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23cf0))((int)pppppppcVar3[6] << 2);\n          pppppppcVar29[0x21] = ppppppcVar32;\n          if (ppppppcVar32 != (code ******)0x0) {\n            ppppppcVar32 = (code ******)0x0;\n            if (pppppppcVar3[6] != (code ******)0x0) {\n              do {\n                pppppppcVar29[0x21][(int)ppppppcVar32] = (code *****)ppppppcVar32;\n                ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n              } while (ppppppcVar32 < pppppppcVar3[6]);\n            }\n            FUN_00046050(pppppppcVar29[0xd],*(int *)(puVar41 + 0x23abc) + 0x60e8,pppppppcVar29);\n            ppppppcVar32 = pppppppcVar3[6];\n            if (ppppppcVar32 == (code ******)0x0) {\nLAB_00056704:\n              (**(code **)(puVar41 + 0x23dc0))(pppppppcVar29[0x21]);\n              pppppppcVar29[0x21] = (code ******)0x0;\n            }\n            else {\n              ppppppcVar35 = pppppppcVar29[0x21];\n              if (*ppppppcVar35 == (code *****)0x0) {\n                ppppppcVar39 = (code ******)0x0;\n                do {\n                  ppppppcVar35 = ppppppcVar35 + 1;\n                  ppppppcVar39 = (code ******)((int)ppppppcVar39 + 1);\n                  if (ppppppcVar32 == ppppppcVar39) {\n                    if (ppppppcVar32 == ppppppcVar39) goto LAB_00056704;\n                    break;\n                  }\n                } while ((code ******)*ppppppcVar35 == ppppppcVar39);\n              }\n            }\n          }\n          pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23abc) + 0x73a4);\n          pppppppcVar30 = (code *******)FUN_00045fb4(pppppppcVar29[0xd],pppppppcVar38,pppppppcVar3);\n          pppppppcVar31 = pppppppcVar29;\n          if (pppppppcVar30 == (code *******)0x0) {\n            pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23b40) + -0x5be4);\n            pppppppcVar30 = (code *******)FUN_00045fb4(pppppppcVar29[0xd],pppppppcVar38);\n            if (pppppppcVar30 == (code *******)0x0) {\n              FUN_00046050(pppppppcVar29[0xd],*(int *)(puVar41 + 0x23abc) + 0x61b4);\n              pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23b40) + -0x4614);\n              pppppppcVar30 = (code *******)FUN_00046050(pppppppcVar29[0xd],pppppppcVar38);\n              if (pppppppcVar30 == (code *******)0x0) {\n                uVar7 = 0;\n                iVar18 = *(int *)(puVar41 + 0x23b40);\n                pppppppcVar33 = (code *******)0x0;\nLAB_00056744:\n                if ((code *******)pppppppcVar29[2] != pppppppcVar33) {\nLAB_00056750:\n                  if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                    pppppppcVar38 = pppppppcVar29;\n                    pppppppcVar31 = pppppppcVar33;\n                    pppppppcVar30 =\n                         (code *******)\n                         (*(code *)(iVar18 + -0x561c))\n                                   (&ppppppcStack_204,pppppppcVar29,pppppppcVar33,1);\n                    if (pppppppcVar30 != (code *******)0x0) goto LAB_00056168;\n                    if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                      (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                      uVar7 = 1;\n                    }\n                  }\n                  pppppppcVar33 = (code *******)((int)pppppppcVar33 + 1);\n                  goto LAB_00056744;\n                }\n                if (uVar7 != 0) {\n                  uVar7 = 0;\n                  pppppppcVar33 = (code *******)0x0;\n                  goto LAB_00056750;\n                }\n                if (((((uint)pppppppcVar3[7] & 0x8000000) == 0) &&\n                    (pppppppcVar3[6] != (code ******)0x0)) &&\n                   ((char)*(code *)(pppppppcVar29 + 0x16) < '\0')) {\n                  ppppppcVar32 = pppppppcVar29[2];\n                }\n                else {\n                  if (pppppppcVar29[0x13] == (code ******)0x0) goto LAB_000568f0;\n                  ppppppcVar32 = pppppppcVar29[2];\n                }\n                ppppppcVar35 = (code ******)\n                               (**(code **)(puVar41 + 0x23cf0))((int)ppppppcVar32 * 0xc);\n                pppppppcVar29[7] = ppppppcVar35;\n                if (ppppppcVar35 == (code ******)0x0) {\n                  pppppppcVar30 = (code *******)0xc;\n                  goto LAB_00056168;\n                }\n                if (ppppppcVar32 != (code ******)0x0) {\n                  iVar18 = 0;\n                  ppppppcVar32 = (code ******)0x0;\n                  do {\n                    puVar21 = (undefined1 *)((int)pppppppcVar29[7] + iVar18);\n                    *puVar21 = 0;\n                    puVar21[1] = 0;\n                    puVar21[2] = 0;\n                    puVar21[3] = 0;\n                    puVar21[4] = 0;\n                    puVar21[5] = 0;\n                    puVar21[6] = 0;\n                    puVar21[7] = 0;\n                    puVar21[8] = 0;\n                    puVar21[9] = 0;\n                    puVar21[10] = 0;\n                    puVar21[0xb] = 0;\n                    ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                    iVar18 = iVar18 + 0xc;\n                  } while (ppppppcVar32 < pppppppcVar29[2]);\n                  iVar18 = *(int *)(puVar41 + 0x23abc);\n                  if (pppppppcVar29[2] != (code ******)0x0) {\n                    iVar43 = 0;\n                    pppppppcStack_218 = (code *******)0x0;\n                    do {\n                      piVar5 = *(int **)((int)pppppppcVar29[6] + iVar43 + 8);\n                      if (0 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4)) {\n                        iVar37 = 0;\n                        do {\n                          pppppppcVar38 = pppppppcStack_218;\n                          iVar22 = (*(code *)(iVar18 + 0x6e30))\n                                             (pppppppcVar29[7] + *piVar5 * 3,pppppppcStack_218);\n                          pppppppcVar30 = (code *******)0xc;\n                          if (iVar22 == 0) goto LAB_00056168;\n                          iVar37 = iVar37 + 1;\n                          piVar5 = piVar5 + 1;\n                        } while (iVar37 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4));\n                      }\n                      pppppppcStack_218 = (code *******)((int)pppppppcStack_218 + 1);\n                      iVar43 = iVar43 + 0xc;\n                    } while (pppppppcStack_218 < pppppppcVar29[2]);\n                  }\n                }\nLAB_000568f0:\n                pppppppcStack_20c = (code *******)0x0;\n                if (((((uint)pppppppcVar34[0x16] & 0x20000000) != 0) && (uVar16 == 0)) &&\n                   (pppppppcVar3[5] == (code ******)0x0)) {\n                  if (pppppppcVar34[2] != (code ******)0x0) {\n                    pppppppcVar31 = (code *******)(*(int *)(puVar41 + 0x23754) + 0x6e4c);\n                    if (*(byte *)(*pppppppcVar34 + 1) < 0xd) {\n                    \n                    \n                      pppppppcVar29 =\n                           (code *******)\n                           (*(code *)(puVar41 +\n                                     (int)(pppppppcVar31[*(byte *)(*pppppppcVar34 + 1)] + 0xadc7)))\n                                     ();\n                      return pppppppcVar29;\n                    }\n                    (**(code **)(puVar41 + 0x23bc4))(0);\n                    if (uVar7 != 0) {\n                      pppppppcVar31 = (code *******)&DAT_00000007;\n                      ppppppcVar32 = (code ******)0x0;\n                      do {\n                        ppppppcVar35 = *pppppppcVar34 + (int)ppppppcVar32 * 2;\n                        if (*(char *)(ppppppcVar35 + 1) == '\x01') {\n                          if (*(char *)ppppppcVar35 < '\0') {\n                            ppppppcVar35[1] = (code *****)((uint)ppppppcVar35[1] & 0xfffffbff);\n                          }\n                        }\n                        else if (*(char *)(ppppppcVar35 + 1) == '\x05') {\n                          *(char *)(ppppppcVar35 + 1) = '\a';\n                        }\n                        ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                      } while (ppppppcVar32 < pppppppcVar34[2]);\n                    }\n                  }\n                  pppppppcVar34[0x17] = (code ******)0x1;\n                  if (0 < (int)pppppppcVar34[0x13]) {\n                    uVar7 = 1;\n                  }\n                  *(byte *)(pppppppcVar34 + 0x16) =\n                       (byte)*(code *)(pppppppcVar34 + 0x16) & 0x9f | (byte)((uVar7 & 1) << 6);\n                }\n                ppppppcVar32 = (code ******)pppppppcVar34[0xd][3][7];\n                pppppppcVar34[0x12] = ppppppcVar32;\n                pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppppcVar32 * 3);\n                pppppppcVar33 = (code *******)FUN_000483e8(&ppppppcStack_204,pppppppcVar38);\n                pppppppcVar29 = pppppppcVar33;\n                pppppppcStack_208 = pppppppcVar33;\n                if (pppppppcVar33 == (code *******)0x0) {\n                  if ((0 < (int)pppppppcVar34[0x13]) && (0 < iStack_200)) {\n                    iVar18 = *(int *)(puVar41 + 0x23abc);\n                    iVar43 = *(int *)(puVar41 + 0x23abc);\n                    pppppppcVar29 = (code *******)0x0;\n                    do {\n                      pppppppcVar31 =\n                           (code *******)(*pppppppcVar34 + piStack_1fc[(int)pppppppcVar29] * 2);\n                      if (*(code *)(pppppppcVar31 + 1) == (code)0x4) {\n                        iVar37 = 0;\n                        piVar5 = piStack_1fc;\n                        if (iStack_200 < 1) {\nLAB_00056b8c:\n                          if (iStack_200 != iVar37) {\n                            ppppcVar40 = *pppppppcVar34[5][piStack_1fc[(int)pppppppcVar29] * 3 + 2];\n                            iVar37 = (*(code *)(iVar18 + 0x5ea8))(&ppppppcStack_204,ppppcVar40);\n                            if (iVar37 == 0) {\n                              pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppcVar40 * 3)\n                              ;\n                              pppppppcVar29 =\n                                   (code *******)\n                                   (*(code *)(iVar43 + 0x7f1c))(&ppppppcStack_204,pppppppcVar38);\n                              if (pppppppcVar29 != (code *******)0x0) goto LAB_00056cb8;\n                            }\n                          }\n                        }\n                        else {\n                          do {\n                            ppppppcVar32 = *pppppppcVar34 + *piVar5 * 2;\n                            if ((*(char *)(ppppppcVar32 + 1) == '\t') &&\n                               ((code ******)*ppppppcVar32 == *pppppppcVar31)) goto LAB_00056b8c;\n                            iVar37 = iVar37 + 1;\n                            piVar5 = piVar5 + 1;\n                          } while (iStack_200 != iVar37);\n                        }\n                      }\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1);\n                    } while ((int)pppppppcVar29 < iStack_200);\n                  }\n                  pppppppcVar31 = &ppppppcStack_204;\n                  pppppppcVar38 = pppppppcVar34;\n                  ppppppcVar32 = (code ******)\n                                 FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,0);\n                  pppppppcVar34[9] = ppppppcVar32;\n                  pppppppcVar29 = pppppppcStack_208;\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    if (((uint)ppppppcVar32[0xd] & 0x1000000) == 0) {\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar34[10] = ppppppcVar32;\n                    }\n                    else {\n                      pppppppcVar31 = &ppppppcStack_204;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,1);\n                      pppppppcVar34[10] = ppppppcVar32;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,2);\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar38 = pppppppcVar34;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,6);\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar29 = pppppppcStack_208;\n                      if (((pppppppcVar34[10] == (code ******)0x0) ||\n                          (pppppppcVar34[0xb] == (code ******)0x0)) ||\n                         (ppppppcVar32 == (code ******)0x0)) goto LAB_00056cb8;\n                    }\n                    (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                    pppppppcVar29 = pppppppcVar33;\n                  }\n                }\nLAB_00056cb8:\n                pppppppcStack_20c = pppppppcVar29;\n                FUN_0004b234(pppppppcVar3);\n                FUN_0004b2bc(&pppppppcStack_1f8);\n                pppppppcVar29 = pppppppcStack_20c;\n                if (pppppppcStack_20c != (code *******)0x0) {\n                  if (*(int *)(puVar41 + 0x23c78) != 0) {\n                    (**(code **)(puVar41 + 0x23df0))(pppppppcVar34 + 0x22);\n                  }\n                  FUN_0004b338(pppppppcVar34);\n                  *pppppppcVar3 = (code ******)0x0;\n                  pppppppcVar3[1] = (code ******)0x0;\n                  pppppppcVar29 = pppppppcStack_20c;\n                }\n                goto LAB_00056cfc;\n              }\n            }\n          }\n        }" (if "if") (parenthesized_expression "(ppppppcVar39 == (code ******)0x0)" (( "(") (binary_expression "ppppppcVar39 == (code ******)0x0" (identifier "ppppppcVar39") (== "==") (cast_expression "(code ******)0x0" (( "(") (type_descriptor "code ******" (type_identifier "code") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          pppppppcVar30 = (code *******)0xc;\n        }" ({ "{") (expression_statement "pppppppcVar30 = (code *******)0xc;" (assignment_expression "pppppppcVar30 = (code *******)0xc" (identifier "pppppppcVar30") (= "=") (cast_expression "(code *******)0xc" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0xc"))) (; ";")) (} "}")) (else_clause "else if (ppppppcVar20 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else {\n          ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23cf0))((int)pppppppcVar3[6] << 2);\n          pppppppcVar29[0x21] = ppppppcVar32;\n          if (ppppppcVar32 != (code ******)0x0) {\n            ppppppcVar32 = (code ******)0x0;\n            if (pppppppcVar3[6] != (code ******)0x0) {\n              do {\n                pppppppcVar29[0x21][(int)ppppppcVar32] = (code *****)ppppppcVar32;\n                ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n              } while (ppppppcVar32 < pppppppcVar3[6]);\n            }\n            FUN_00046050(pppppppcVar29[0xd],*(int *)(puVar41 + 0x23abc) + 0x60e8,pppppppcVar29);\n            ppppppcVar32 = pppppppcVar3[6];\n            if (ppppppcVar32 == (code ******)0x0) {\nLAB_00056704:\n              (**(code **)(puVar41 + 0x23dc0))(pppppppcVar29[0x21]);\n              pppppppcVar29[0x21] = (code ******)0x0;\n            }\n            else {\n              ppppppcVar35 = pppppppcVar29[0x21];\n              if (*ppppppcVar35 == (code *****)0x0) {\n                ppppppcVar39 = (code ******)0x0;\n                do {\n                  ppppppcVar35 = ppppppcVar35 + 1;\n                  ppppppcVar39 = (code ******)((int)ppppppcVar39 + 1);\n                  if (ppppppcVar32 == ppppppcVar39) {\n                    if (ppppppcVar32 == ppppppcVar39) goto LAB_00056704;\n                    break;\n                  }\n                } while ((code ******)*ppppppcVar35 == ppppppcVar39);\n              }\n            }\n          }\n          pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23abc) + 0x73a4);\n          pppppppcVar30 = (code *******)FUN_00045fb4(pppppppcVar29[0xd],pppppppcVar38,pppppppcVar3);\n          pppppppcVar31 = pppppppcVar29;\n          if (pppppppcVar30 == (code *******)0x0) {\n            pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23b40) + -0x5be4);\n            pppppppcVar30 = (code *******)FUN_00045fb4(pppppppcVar29[0xd],pppppppcVar38);\n            if (pppppppcVar30 == (code *******)0x0) {\n              FUN_00046050(pppppppcVar29[0xd],*(int *)(puVar41 + 0x23abc) + 0x61b4);\n              pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23b40) + -0x4614);\n              pppppppcVar30 = (code *******)FUN_00046050(pppppppcVar29[0xd],pppppppcVar38);\n              if (pppppppcVar30 == (code *******)0x0) {\n                uVar7 = 0;\n                iVar18 = *(int *)(puVar41 + 0x23b40);\n                pppppppcVar33 = (code *******)0x0;\nLAB_00056744:\n                if ((code *******)pppppppcVar29[2] != pppppppcVar33) {\nLAB_00056750:\n                  if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                    pppppppcVar38 = pppppppcVar29;\n                    pppppppcVar31 = pppppppcVar33;\n                    pppppppcVar30 =\n                         (code *******)\n                         (*(code *)(iVar18 + -0x561c))\n                                   (&ppppppcStack_204,pppppppcVar29,pppppppcVar33,1);\n                    if (pppppppcVar30 != (code *******)0x0) goto LAB_00056168;\n                    if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                      (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                      uVar7 = 1;\n                    }\n                  }\n                  pppppppcVar33 = (code *******)((int)pppppppcVar33 + 1);\n                  goto LAB_00056744;\n                }\n                if (uVar7 != 0) {\n                  uVar7 = 0;\n                  pppppppcVar33 = (code *******)0x0;\n                  goto LAB_00056750;\n                }\n                if (((((uint)pppppppcVar3[7] & 0x8000000) == 0) &&\n                    (pppppppcVar3[6] != (code ******)0x0)) &&\n                   ((char)*(code *)(pppppppcVar29 + 0x16) < '\0')) {\n                  ppppppcVar32 = pppppppcVar29[2];\n                }\n                else {\n                  if (pppppppcVar29[0x13] == (code ******)0x0) goto LAB_000568f0;\n                  ppppppcVar32 = pppppppcVar29[2];\n                }\n                ppppppcVar35 = (code ******)\n                               (**(code **)(puVar41 + 0x23cf0))((int)ppppppcVar32 * 0xc);\n                pppppppcVar29[7] = ppppppcVar35;\n                if (ppppppcVar35 == (code ******)0x0) {\n                  pppppppcVar30 = (code *******)0xc;\n                  goto LAB_00056168;\n                }\n                if (ppppppcVar32 != (code ******)0x0) {\n                  iVar18 = 0;\n                  ppppppcVar32 = (code ******)0x0;\n                  do {\n                    puVar21 = (undefined1 *)((int)pppppppcVar29[7] + iVar18);\n                    *puVar21 = 0;\n                    puVar21[1] = 0;\n                    puVar21[2] = 0;\n                    puVar21[3] = 0;\n                    puVar21[4] = 0;\n                    puVar21[5] = 0;\n                    puVar21[6] = 0;\n                    puVar21[7] = 0;\n                    puVar21[8] = 0;\n                    puVar21[9] = 0;\n                    puVar21[10] = 0;\n                    puVar21[0xb] = 0;\n                    ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                    iVar18 = iVar18 + 0xc;\n                  } while (ppppppcVar32 < pppppppcVar29[2]);\n                  iVar18 = *(int *)(puVar41 + 0x23abc);\n                  if (pppppppcVar29[2] != (code ******)0x0) {\n                    iVar43 = 0;\n                    pppppppcStack_218 = (code *******)0x0;\n                    do {\n                      piVar5 = *(int **)((int)pppppppcVar29[6] + iVar43 + 8);\n                      if (0 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4)) {\n                        iVar37 = 0;\n                        do {\n                          pppppppcVar38 = pppppppcStack_218;\n                          iVar22 = (*(code *)(iVar18 + 0x6e30))\n                                             (pppppppcVar29[7] + *piVar5 * 3,pppppppcStack_218);\n                          pppppppcVar30 = (code *******)0xc;\n                          if (iVar22 == 0) goto LAB_00056168;\n                          iVar37 = iVar37 + 1;\n                          piVar5 = piVar5 + 1;\n                        } while (iVar37 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4));\n                      }\n                      pppppppcStack_218 = (code *******)((int)pppppppcStack_218 + 1);\n                      iVar43 = iVar43 + 0xc;\n                    } while (pppppppcStack_218 < pppppppcVar29[2]);\n                  }\n                }\nLAB_000568f0:\n                pppppppcStack_20c = (code *******)0x0;\n                if (((((uint)pppppppcVar34[0x16] & 0x20000000) != 0) && (uVar16 == 0)) &&\n                   (pppppppcVar3[5] == (code ******)0x0)) {\n                  if (pppppppcVar34[2] != (code ******)0x0) {\n                    pppppppcVar31 = (code *******)(*(int *)(puVar41 + 0x23754) + 0x6e4c);\n                    if (*(byte *)(*pppppppcVar34 + 1) < 0xd) {\n                    \n                    \n                      pppppppcVar29 =\n                           (code *******)\n                           (*(code *)(puVar41 +\n                                     (int)(pppppppcVar31[*(byte *)(*pppppppcVar34 + 1)] + 0xadc7)))\n                                     ();\n                      return pppppppcVar29;\n                    }\n                    (**(code **)(puVar41 + 0x23bc4))(0);\n                    if (uVar7 != 0) {\n                      pppppppcVar31 = (code *******)&DAT_00000007;\n                      ppppppcVar32 = (code ******)0x0;\n                      do {\n                        ppppppcVar35 = *pppppppcVar34 + (int)ppppppcVar32 * 2;\n                        if (*(char *)(ppppppcVar35 + 1) == '\x01') {\n                          if (*(char *)ppppppcVar35 < '\0') {\n                            ppppppcVar35[1] = (code *****)((uint)ppppppcVar35[1] & 0xfffffbff);\n                          }\n                        }\n                        else if (*(char *)(ppppppcVar35 + 1) == '\x05') {\n                          *(char *)(ppppppcVar35 + 1) = '\a';\n                        }\n                        ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                      } while (ppppppcVar32 < pppppppcVar34[2]);\n                    }\n                  }\n                  pppppppcVar34[0x17] = (code ******)0x1;\n                  if (0 < (int)pppppppcVar34[0x13]) {\n                    uVar7 = 1;\n                  }\n                  *(byte *)(pppppppcVar34 + 0x16) =\n                       (byte)*(code *)(pppppppcVar34 + 0x16) & 0x9f | (byte)((uVar7 & 1) << 6);\n                }\n                ppppppcVar32 = (code ******)pppppppcVar34[0xd][3][7];\n                pppppppcVar34[0x12] = ppppppcVar32;\n                pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppppcVar32 * 3);\n                pppppppcVar33 = (code *******)FUN_000483e8(&ppppppcStack_204,pppppppcVar38);\n                pppppppcVar29 = pppppppcVar33;\n                pppppppcStack_208 = pppppppcVar33;\n                if (pppppppcVar33 == (code *******)0x0) {\n                  if ((0 < (int)pppppppcVar34[0x13]) && (0 < iStack_200)) {\n                    iVar18 = *(int *)(puVar41 + 0x23abc);\n                    iVar43 = *(int *)(puVar41 + 0x23abc);\n                    pppppppcVar29 = (code *******)0x0;\n                    do {\n                      pppppppcVar31 =\n                           (code *******)(*pppppppcVar34 + piStack_1fc[(int)pppppppcVar29] * 2);\n                      if (*(code *)(pppppppcVar31 + 1) == (code)0x4) {\n                        iVar37 = 0;\n                        piVar5 = piStack_1fc;\n                        if (iStack_200 < 1) {\nLAB_00056b8c:\n                          if (iStack_200 != iVar37) {\n                            ppppcVar40 = *pppppppcVar34[5][piStack_1fc[(int)pppppppcVar29] * 3 + 2];\n                            iVar37 = (*(code *)(iVar18 + 0x5ea8))(&ppppppcStack_204,ppppcVar40);\n                            if (iVar37 == 0) {\n                              pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppcVar40 * 3)\n                              ;\n                              pppppppcVar29 =\n                                   (code *******)\n                                   (*(code *)(iVar43 + 0x7f1c))(&ppppppcStack_204,pppppppcVar38);\n                              if (pppppppcVar29 != (code *******)0x0) goto LAB_00056cb8;\n                            }\n                          }\n                        }\n                        else {\n                          do {\n                            ppppppcVar32 = *pppppppcVar34 + *piVar5 * 2;\n                            if ((*(char *)(ppppppcVar32 + 1) == '\t') &&\n                               ((code ******)*ppppppcVar32 == *pppppppcVar31)) goto LAB_00056b8c;\n                            iVar37 = iVar37 + 1;\n                            piVar5 = piVar5 + 1;\n                          } while (iStack_200 != iVar37);\n                        }\n                      }\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1);\n                    } while ((int)pppppppcVar29 < iStack_200);\n                  }\n                  pppppppcVar31 = &ppppppcStack_204;\n                  pppppppcVar38 = pppppppcVar34;\n                  ppppppcVar32 = (code ******)\n                                 FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,0);\n                  pppppppcVar34[9] = ppppppcVar32;\n                  pppppppcVar29 = pppppppcStack_208;\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    if (((uint)ppppppcVar32[0xd] & 0x1000000) == 0) {\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar34[10] = ppppppcVar32;\n                    }\n                    else {\n                      pppppppcVar31 = &ppppppcStack_204;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,1);\n                      pppppppcVar34[10] = ppppppcVar32;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,2);\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar38 = pppppppcVar34;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,6);\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar29 = pppppppcStack_208;\n                      if (((pppppppcVar34[10] == (code ******)0x0) ||\n                          (pppppppcVar34[0xb] == (code ******)0x0)) ||\n                         (ppppppcVar32 == (code ******)0x0)) goto LAB_00056cb8;\n                    }\n                    (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                    pppppppcVar29 = pppppppcVar33;\n                  }\n                }\nLAB_00056cb8:\n                pppppppcStack_20c = pppppppcVar29;\n                FUN_0004b234(pppppppcVar3);\n                FUN_0004b2bc(&pppppppcStack_1f8);\n                pppppppcVar29 = pppppppcStack_20c;\n                if (pppppppcStack_20c != (code *******)0x0) {\n                  if (*(int *)(puVar41 + 0x23c78) != 0) {\n                    (**(code **)(puVar41 + 0x23df0))(pppppppcVar34 + 0x22);\n                  }\n                  FUN_0004b338(pppppppcVar34);\n                  *pppppppcVar3 = (code ******)0x0;\n                  pppppppcVar3[1] = (code ******)0x0;\n                  pppppppcVar29 = pppppppcStack_20c;\n                }\n                goto LAB_00056cfc;\n              }\n            }\n          }\n        }" (else "else") (if_statement "if (ppppppcVar20 == (code ******)0x0) {\n          pppppppcVar30 = (code *******)0xc;\n        }\n        else {\n          ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23cf0))((int)pppppppcVar3[6] << 2);\n          pppppppcVar29[0x21] = ppppppcVar32;\n          if (ppppppcVar32 != (code ******)0x0) {\n            ppppppcVar32 = (code ******)0x0;\n            if (pppppppcVar3[6] != (code ******)0x0) {\n              do {\n                pppppppcVar29[0x21][(int)ppppppcVar32] = (code *****)ppppppcVar32;\n                ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n              } while (ppppppcVar32 < pppppppcVar3[6]);\n            }\n            FUN_00046050(pppppppcVar29[0xd],*(int *)(puVar41 + 0x23abc) + 0x60e8,pppppppcVar29);\n            ppppppcVar32 = pppppppcVar3[6];\n            if (ppppppcVar32 == (code ******)0x0) {\nLAB_00056704:\n              (**(code **)(puVar41 + 0x23dc0))(pppppppcVar29[0x21]);\n              pppppppcVar29[0x21] = (code ******)0x0;\n            }\n            else {\n              ppppppcVar35 = pppppppcVar29[0x21];\n              if (*ppppppcVar35 == (code *****)0x0) {\n                ppppppcVar39 = (code ******)0x0;\n                do {\n                  ppppppcVar35 = ppppppcVar35 + 1;\n                  ppppppcVar39 = (code ******)((int)ppppppcVar39 + 1);\n                  if (ppppppcVar32 == ppppppcVar39) {\n                    if (ppppppcVar32 == ppppppcVar39) goto LAB_00056704;\n                    break;\n                  }\n                } while ((code ******)*ppppppcVar35 == ppppppcVar39);\n              }\n            }\n          }\n          pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23abc) + 0x73a4);\n          pppppppcVar30 = (code *******)FUN_00045fb4(pppppppcVar29[0xd],pppppppcVar38,pppppppcVar3);\n          pppppppcVar31 = pppppppcVar29;\n          if (pppppppcVar30 == (code *******)0x0) {\n            pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23b40) + -0x5be4);\n            pppppppcVar30 = (code *******)FUN_00045fb4(pppppppcVar29[0xd],pppppppcVar38);\n            if (pppppppcVar30 == (code *******)0x0) {\n              FUN_00046050(pppppppcVar29[0xd],*(int *)(puVar41 + 0x23abc) + 0x61b4);\n              pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23b40) + -0x4614);\n              pppppppcVar30 = (code *******)FUN_00046050(pppppppcVar29[0xd],pppppppcVar38);\n              if (pppppppcVar30 == (code *******)0x0) {\n                uVar7 = 0;\n                iVar18 = *(int *)(puVar41 + 0x23b40);\n                pppppppcVar33 = (code *******)0x0;\nLAB_00056744:\n                if ((code *******)pppppppcVar29[2] != pppppppcVar33) {\nLAB_00056750:\n                  if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                    pppppppcVar38 = pppppppcVar29;\n                    pppppppcVar31 = pppppppcVar33;\n                    pppppppcVar30 =\n                         (code *******)\n                         (*(code *)(iVar18 + -0x561c))\n                                   (&ppppppcStack_204,pppppppcVar29,pppppppcVar33,1);\n                    if (pppppppcVar30 != (code *******)0x0) goto LAB_00056168;\n                    if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                      (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                      uVar7 = 1;\n                    }\n                  }\n                  pppppppcVar33 = (code *******)((int)pppppppcVar33 + 1);\n                  goto LAB_00056744;\n                }\n                if (uVar7 != 0) {\n                  uVar7 = 0;\n                  pppppppcVar33 = (code *******)0x0;\n                  goto LAB_00056750;\n                }\n                if (((((uint)pppppppcVar3[7] & 0x8000000) == 0) &&\n                    (pppppppcVar3[6] != (code ******)0x0)) &&\n                   ((char)*(code *)(pppppppcVar29 + 0x16) < '\0')) {\n                  ppppppcVar32 = pppppppcVar29[2];\n                }\n                else {\n                  if (pppppppcVar29[0x13] == (code ******)0x0) goto LAB_000568f0;\n                  ppppppcVar32 = pppppppcVar29[2];\n                }\n                ppppppcVar35 = (code ******)\n                               (**(code **)(puVar41 + 0x23cf0))((int)ppppppcVar32 * 0xc);\n                pppppppcVar29[7] = ppppppcVar35;\n                if (ppppppcVar35 == (code ******)0x0) {\n                  pppppppcVar30 = (code *******)0xc;\n                  goto LAB_00056168;\n                }\n                if (ppppppcVar32 != (code ******)0x0) {\n                  iVar18 = 0;\n                  ppppppcVar32 = (code ******)0x0;\n                  do {\n                    puVar21 = (undefined1 *)((int)pppppppcVar29[7] + iVar18);\n                    *puVar21 = 0;\n                    puVar21[1] = 0;\n                    puVar21[2] = 0;\n                    puVar21[3] = 0;\n                    puVar21[4] = 0;\n                    puVar21[5] = 0;\n                    puVar21[6] = 0;\n                    puVar21[7] = 0;\n                    puVar21[8] = 0;\n                    puVar21[9] = 0;\n                    puVar21[10] = 0;\n                    puVar21[0xb] = 0;\n                    ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                    iVar18 = iVar18 + 0xc;\n                  } while (ppppppcVar32 < pppppppcVar29[2]);\n                  iVar18 = *(int *)(puVar41 + 0x23abc);\n                  if (pppppppcVar29[2] != (code ******)0x0) {\n                    iVar43 = 0;\n                    pppppppcStack_218 = (code *******)0x0;\n                    do {\n                      piVar5 = *(int **)((int)pppppppcVar29[6] + iVar43 + 8);\n                      if (0 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4)) {\n                        iVar37 = 0;\n                        do {\n                          pppppppcVar38 = pppppppcStack_218;\n                          iVar22 = (*(code *)(iVar18 + 0x6e30))\n                                             (pppppppcVar29[7] + *piVar5 * 3,pppppppcStack_218);\n                          pppppppcVar30 = (code *******)0xc;\n                          if (iVar22 == 0) goto LAB_00056168;\n                          iVar37 = iVar37 + 1;\n                          piVar5 = piVar5 + 1;\n                        } while (iVar37 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4));\n                      }\n                      pppppppcStack_218 = (code *******)((int)pppppppcStack_218 + 1);\n                      iVar43 = iVar43 + 0xc;\n                    } while (pppppppcStack_218 < pppppppcVar29[2]);\n                  }\n                }\nLAB_000568f0:\n                pppppppcStack_20c = (code *******)0x0;\n                if (((((uint)pppppppcVar34[0x16] & 0x20000000) != 0) && (uVar16 == 0)) &&\n                   (pppppppcVar3[5] == (code ******)0x0)) {\n                  if (pppppppcVar34[2] != (code ******)0x0) {\n                    pppppppcVar31 = (code *******)(*(int *)(puVar41 + 0x23754) + 0x6e4c);\n                    if (*(byte *)(*pppppppcVar34 + 1) < 0xd) {\n                    \n                    \n                      pppppppcVar29 =\n                           (code *******)\n                           (*(code *)(puVar41 +\n                                     (int)(pppppppcVar31[*(byte *)(*pppppppcVar34 + 1)] + 0xadc7)))\n                                     ();\n                      return pppppppcVar29;\n                    }\n                    (**(code **)(puVar41 + 0x23bc4))(0);\n                    if (uVar7 != 0) {\n                      pppppppcVar31 = (code *******)&DAT_00000007;\n                      ppppppcVar32 = (code ******)0x0;\n                      do {\n                        ppppppcVar35 = *pppppppcVar34 + (int)ppppppcVar32 * 2;\n                        if (*(char *)(ppppppcVar35 + 1) == '\x01') {\n                          if (*(char *)ppppppcVar35 < '\0') {\n                            ppppppcVar35[1] = (code *****)((uint)ppppppcVar35[1] & 0xfffffbff);\n                          }\n                        }\n                        else if (*(char *)(ppppppcVar35 + 1) == '\x05') {\n                          *(char *)(ppppppcVar35 + 1) = '\a';\n                        }\n                        ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                      } while (ppppppcVar32 < pppppppcVar34[2]);\n                    }\n                  }\n                  pppppppcVar34[0x17] = (code ******)0x1;\n                  if (0 < (int)pppppppcVar34[0x13]) {\n                    uVar7 = 1;\n                  }\n                  *(byte *)(pppppppcVar34 + 0x16) =\n                       (byte)*(code *)(pppppppcVar34 + 0x16) & 0x9f | (byte)((uVar7 & 1) << 6);\n                }\n                ppppppcVar32 = (code ******)pppppppcVar34[0xd][3][7];\n                pppppppcVar34[0x12] = ppppppcVar32;\n                pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppppcVar32 * 3);\n                pppppppcVar33 = (code *******)FUN_000483e8(&ppppppcStack_204,pppppppcVar38);\n                pppppppcVar29 = pppppppcVar33;\n                pppppppcStack_208 = pppppppcVar33;\n                if (pppppppcVar33 == (code *******)0x0) {\n                  if ((0 < (int)pppppppcVar34[0x13]) && (0 < iStack_200)) {\n                    iVar18 = *(int *)(puVar41 + 0x23abc);\n                    iVar43 = *(int *)(puVar41 + 0x23abc);\n                    pppppppcVar29 = (code *******)0x0;\n                    do {\n                      pppppppcVar31 =\n                           (code *******)(*pppppppcVar34 + piStack_1fc[(int)pppppppcVar29] * 2);\n                      if (*(code *)(pppppppcVar31 + 1) == (code)0x4) {\n                        iVar37 = 0;\n                        piVar5 = piStack_1fc;\n                        if (iStack_200 < 1) {\nLAB_00056b8c:\n                          if (iStack_200 != iVar37) {\n                            ppppcVar40 = *pppppppcVar34[5][piStack_1fc[(int)pppppppcVar29] * 3 + 2];\n                            iVar37 = (*(code *)(iVar18 + 0x5ea8))(&ppppppcStack_204,ppppcVar40);\n                            if (iVar37 == 0) {\n                              pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppcVar40 * 3)\n                              ;\n                              pppppppcVar29 =\n                                   (code *******)\n                                   (*(code *)(iVar43 + 0x7f1c))(&ppppppcStack_204,pppppppcVar38);\n                              if (pppppppcVar29 != (code *******)0x0) goto LAB_00056cb8;\n                            }\n                          }\n                        }\n                        else {\n                          do {\n                            ppppppcVar32 = *pppppppcVar34 + *piVar5 * 2;\n                            if ((*(char *)(ppppppcVar32 + 1) == '\t') &&\n                               ((code ******)*ppppppcVar32 == *pppppppcVar31)) goto LAB_00056b8c;\n                            iVar37 = iVar37 + 1;\n                            piVar5 = piVar5 + 1;\n                          } while (iStack_200 != iVar37);\n                        }\n                      }\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1);\n                    } while ((int)pppppppcVar29 < iStack_200);\n                  }\n                  pppppppcVar31 = &ppppppcStack_204;\n                  pppppppcVar38 = pppppppcVar34;\n                  ppppppcVar32 = (code ******)\n                                 FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,0);\n                  pppppppcVar34[9] = ppppppcVar32;\n                  pppppppcVar29 = pppppppcStack_208;\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    if (((uint)ppppppcVar32[0xd] & 0x1000000) == 0) {\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar34[10] = ppppppcVar32;\n                    }\n                    else {\n                      pppppppcVar31 = &ppppppcStack_204;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,1);\n                      pppppppcVar34[10] = ppppppcVar32;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,2);\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar38 = pppppppcVar34;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,6);\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar29 = pppppppcStack_208;\n                      if (((pppppppcVar34[10] == (code ******)0x0) ||\n                          (pppppppcVar34[0xb] == (code ******)0x0)) ||\n                         (ppppppcVar32 == (code ******)0x0)) goto LAB_00056cb8;\n                    }\n                    (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                    pppppppcVar29 = pppppppcVar33;\n                  }\n                }\nLAB_00056cb8:\n                pppppppcStack_20c = pppppppcVar29;\n                FUN_0004b234(pppppppcVar3);\n                FUN_0004b2bc(&pppppppcStack_1f8);\n                pppppppcVar29 = pppppppcStack_20c;\n                if (pppppppcStack_20c != (code *******)0x0) {\n                  if (*(int *)(puVar41 + 0x23c78) != 0) {\n                    (**(code **)(puVar41 + 0x23df0))(pppppppcVar34 + 0x22);\n                  }\n                  FUN_0004b338(pppppppcVar34);\n                  *pppppppcVar3 = (code ******)0x0;\n                  pppppppcVar3[1] = (code ******)0x0;\n                  pppppppcVar29 = pppppppcStack_20c;\n                }\n                goto LAB_00056cfc;\n              }\n            }\n          }\n        }" (if "if") (parenthesized_expression "(ppppppcVar20 == (code ******)0x0)" (( "(") (binary_expression "ppppppcVar20 == (code ******)0x0" (identifier "ppppppcVar20") (== "==") (cast_expression "(code ******)0x0" (( "(") (type_descriptor "code ******" (type_identifier "code") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          pppppppcVar30 = (code *******)0xc;\n        }" ({ "{") (expression_statement "pppppppcVar30 = (code *******)0xc;" (assignment_expression "pppppppcVar30 = (code *******)0xc" (identifier "pppppppcVar30") (= "=") (cast_expression "(code *******)0xc" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0xc"))) (; ";")) (} "}")) (else_clause "else {\n          ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23cf0))((int)pppppppcVar3[6] << 2);\n          pppppppcVar29[0x21] = ppppppcVar32;\n          if (ppppppcVar32 != (code ******)0x0) {\n            ppppppcVar32 = (code ******)0x0;\n            if (pppppppcVar3[6] != (code ******)0x0) {\n              do {\n                pppppppcVar29[0x21][(int)ppppppcVar32] = (code *****)ppppppcVar32;\n                ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n              } while (ppppppcVar32 < pppppppcVar3[6]);\n            }\n            FUN_00046050(pppppppcVar29[0xd],*(int *)(puVar41 + 0x23abc) + 0x60e8,pppppppcVar29);\n            ppppppcVar32 = pppppppcVar3[6];\n            if (ppppppcVar32 == (code ******)0x0) {\nLAB_00056704:\n              (**(code **)(puVar41 + 0x23dc0))(pppppppcVar29[0x21]);\n              pppppppcVar29[0x21] = (code ******)0x0;\n            }\n            else {\n              ppppppcVar35 = pppppppcVar29[0x21];\n              if (*ppppppcVar35 == (code *****)0x0) {\n                ppppppcVar39 = (code ******)0x0;\n                do {\n                  ppppppcVar35 = ppppppcVar35 + 1;\n                  ppppppcVar39 = (code ******)((int)ppppppcVar39 + 1);\n                  if (ppppppcVar32 == ppppppcVar39) {\n                    if (ppppppcVar32 == ppppppcVar39) goto LAB_00056704;\n                    break;\n                  }\n                } while ((code ******)*ppppppcVar35 == ppppppcVar39);\n              }\n            }\n          }\n          pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23abc) + 0x73a4);\n          pppppppcVar30 = (code *******)FUN_00045fb4(pppppppcVar29[0xd],pppppppcVar38,pppppppcVar3);\n          pppppppcVar31 = pppppppcVar29;\n          if (pppppppcVar30 == (code *******)0x0) {\n            pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23b40) + -0x5be4);\n            pppppppcVar30 = (code *******)FUN_00045fb4(pppppppcVar29[0xd],pppppppcVar38);\n            if (pppppppcVar30 == (code *******)0x0) {\n              FUN_00046050(pppppppcVar29[0xd],*(int *)(puVar41 + 0x23abc) + 0x61b4);\n              pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23b40) + -0x4614);\n              pppppppcVar30 = (code *******)FUN_00046050(pppppppcVar29[0xd],pppppppcVar38);\n              if (pppppppcVar30 == (code *******)0x0) {\n                uVar7 = 0;\n                iVar18 = *(int *)(puVar41 + 0x23b40);\n                pppppppcVar33 = (code *******)0x0;\nLAB_00056744:\n                if ((code *******)pppppppcVar29[2] != pppppppcVar33) {\nLAB_00056750:\n                  if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                    pppppppcVar38 = pppppppcVar29;\n                    pppppppcVar31 = pppppppcVar33;\n                    pppppppcVar30 =\n                         (code *******)\n                         (*(code *)(iVar18 + -0x561c))\n                                   (&ppppppcStack_204,pppppppcVar29,pppppppcVar33,1);\n                    if (pppppppcVar30 != (code *******)0x0) goto LAB_00056168;\n                    if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                      (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                      uVar7 = 1;\n                    }\n                  }\n                  pppppppcVar33 = (code *******)((int)pppppppcVar33 + 1);\n                  goto LAB_00056744;\n                }\n                if (uVar7 != 0) {\n                  uVar7 = 0;\n                  pppppppcVar33 = (code *******)0x0;\n                  goto LAB_00056750;\n                }\n                if (((((uint)pppppppcVar3[7] & 0x8000000) == 0) &&\n                    (pppppppcVar3[6] != (code ******)0x0)) &&\n                   ((char)*(code *)(pppppppcVar29 + 0x16) < '\0')) {\n                  ppppppcVar32 = pppppppcVar29[2];\n                }\n                else {\n                  if (pppppppcVar29[0x13] == (code ******)0x0) goto LAB_000568f0;\n                  ppppppcVar32 = pppppppcVar29[2];\n                }\n                ppppppcVar35 = (code ******)\n                               (**(code **)(puVar41 + 0x23cf0))((int)ppppppcVar32 * 0xc);\n                pppppppcVar29[7] = ppppppcVar35;\n                if (ppppppcVar35 == (code ******)0x0) {\n                  pppppppcVar30 = (code *******)0xc;\n                  goto LAB_00056168;\n                }\n                if (ppppppcVar32 != (code ******)0x0) {\n                  iVar18 = 0;\n                  ppppppcVar32 = (code ******)0x0;\n                  do {\n                    puVar21 = (undefined1 *)((int)pppppppcVar29[7] + iVar18);\n                    *puVar21 = 0;\n                    puVar21[1] = 0;\n                    puVar21[2] = 0;\n                    puVar21[3] = 0;\n                    puVar21[4] = 0;\n                    puVar21[5] = 0;\n                    puVar21[6] = 0;\n                    puVar21[7] = 0;\n                    puVar21[8] = 0;\n                    puVar21[9] = 0;\n                    puVar21[10] = 0;\n                    puVar21[0xb] = 0;\n                    ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                    iVar18 = iVar18 + 0xc;\n                  } while (ppppppcVar32 < pppppppcVar29[2]);\n                  iVar18 = *(int *)(puVar41 + 0x23abc);\n                  if (pppppppcVar29[2] != (code ******)0x0) {\n                    iVar43 = 0;\n                    pppppppcStack_218 = (code *******)0x0;\n                    do {\n                      piVar5 = *(int **)((int)pppppppcVar29[6] + iVar43 + 8);\n                      if (0 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4)) {\n                        iVar37 = 0;\n                        do {\n                          pppppppcVar38 = pppppppcStack_218;\n                          iVar22 = (*(code *)(iVar18 + 0x6e30))\n                                             (pppppppcVar29[7] + *piVar5 * 3,pppppppcStack_218);\n                          pppppppcVar30 = (code *******)0xc;\n                          if (iVar22 == 0) goto LAB_00056168;\n                          iVar37 = iVar37 + 1;\n                          piVar5 = piVar5 + 1;\n                        } while (iVar37 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4));\n                      }\n                      pppppppcStack_218 = (code *******)((int)pppppppcStack_218 + 1);\n                      iVar43 = iVar43 + 0xc;\n                    } while (pppppppcStack_218 < pppppppcVar29[2]);\n                  }\n                }\nLAB_000568f0:\n                pppppppcStack_20c = (code *******)0x0;\n                if (((((uint)pppppppcVar34[0x16] & 0x20000000) != 0) && (uVar16 == 0)) &&\n                   (pppppppcVar3[5] == (code ******)0x0)) {\n                  if (pppppppcVar34[2] != (code ******)0x0) {\n                    pppppppcVar31 = (code *******)(*(int *)(puVar41 + 0x23754) + 0x6e4c);\n                    if (*(byte *)(*pppppppcVar34 + 1) < 0xd) {\n                    \n                    \n                      pppppppcVar29 =\n                           (code *******)\n                           (*(code *)(puVar41 +\n                                     (int)(pppppppcVar31[*(byte *)(*pppppppcVar34 + 1)] + 0xadc7)))\n                                     ();\n                      return pppppppcVar29;\n                    }\n                    (**(code **)(puVar41 + 0x23bc4))(0);\n                    if (uVar7 != 0) {\n                      pppppppcVar31 = (code *******)&DAT_00000007;\n                      ppppppcVar32 = (code ******)0x0;\n                      do {\n                        ppppppcVar35 = *pppppppcVar34 + (int)ppppppcVar32 * 2;\n                        if (*(char *)(ppppppcVar35 + 1) == '\x01') {\n                          if (*(char *)ppppppcVar35 < '\0') {\n                            ppppppcVar35[1] = (code *****)((uint)ppppppcVar35[1] & 0xfffffbff);\n                          }\n                        }\n                        else if (*(char *)(ppppppcVar35 + 1) == '\x05') {\n                          *(char *)(ppppppcVar35 + 1) = '\a';\n                        }\n                        ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                      } while (ppppppcVar32 < pppppppcVar34[2]);\n                    }\n                  }\n                  pppppppcVar34[0x17] = (code ******)0x1;\n                  if (0 < (int)pppppppcVar34[0x13]) {\n                    uVar7 = 1;\n                  }\n                  *(byte *)(pppppppcVar34 + 0x16) =\n                       (byte)*(code *)(pppppppcVar34 + 0x16) & 0x9f | (byte)((uVar7 & 1) << 6);\n                }\n                ppppppcVar32 = (code ******)pppppppcVar34[0xd][3][7];\n                pppppppcVar34[0x12] = ppppppcVar32;\n                pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppppcVar32 * 3);\n                pppppppcVar33 = (code *******)FUN_000483e8(&ppppppcStack_204,pppppppcVar38);\n                pppppppcVar29 = pppppppcVar33;\n                pppppppcStack_208 = pppppppcVar33;\n                if (pppppppcVar33 == (code *******)0x0) {\n                  if ((0 < (int)pppppppcVar34[0x13]) && (0 < iStack_200)) {\n                    iVar18 = *(int *)(puVar41 + 0x23abc);\n                    iVar43 = *(int *)(puVar41 + 0x23abc);\n                    pppppppcVar29 = (code *******)0x0;\n                    do {\n                      pppppppcVar31 =\n                           (code *******)(*pppppppcVar34 + piStack_1fc[(int)pppppppcVar29] * 2);\n                      if (*(code *)(pppppppcVar31 + 1) == (code)0x4) {\n                        iVar37 = 0;\n                        piVar5 = piStack_1fc;\n                        if (iStack_200 < 1) {\nLAB_00056b8c:\n                          if (iStack_200 != iVar37) {\n                            ppppcVar40 = *pppppppcVar34[5][piStack_1fc[(int)pppppppcVar29] * 3 + 2];\n                            iVar37 = (*(code *)(iVar18 + 0x5ea8))(&ppppppcStack_204,ppppcVar40);\n                            if (iVar37 == 0) {\n                              pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppcVar40 * 3)\n                              ;\n                              pppppppcVar29 =\n                                   (code *******)\n                                   (*(code *)(iVar43 + 0x7f1c))(&ppppppcStack_204,pppppppcVar38);\n                              if (pppppppcVar29 != (code *******)0x0) goto LAB_00056cb8;\n                            }\n                          }\n                        }\n                        else {\n                          do {\n                            ppppppcVar32 = *pppppppcVar34 + *piVar5 * 2;\n                            if ((*(char *)(ppppppcVar32 + 1) == '\t') &&\n                               ((code ******)*ppppppcVar32 == *pppppppcVar31)) goto LAB_00056b8c;\n                            iVar37 = iVar37 + 1;\n                            piVar5 = piVar5 + 1;\n                          } while (iStack_200 != iVar37);\n                        }\n                      }\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1);\n                    } while ((int)pppppppcVar29 < iStack_200);\n                  }\n                  pppppppcVar31 = &ppppppcStack_204;\n                  pppppppcVar38 = pppppppcVar34;\n                  ppppppcVar32 = (code ******)\n                                 FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,0);\n                  pppppppcVar34[9] = ppppppcVar32;\n                  pppppppcVar29 = pppppppcStack_208;\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    if (((uint)ppppppcVar32[0xd] & 0x1000000) == 0) {\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar34[10] = ppppppcVar32;\n                    }\n                    else {\n                      pppppppcVar31 = &ppppppcStack_204;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,1);\n                      pppppppcVar34[10] = ppppppcVar32;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,2);\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar38 = pppppppcVar34;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,6);\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar29 = pppppppcStack_208;\n                      if (((pppppppcVar34[10] == (code ******)0x0) ||\n                          (pppppppcVar34[0xb] == (code ******)0x0)) ||\n                         (ppppppcVar32 == (code ******)0x0)) goto LAB_00056cb8;\n                    }\n                    (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                    pppppppcVar29 = pppppppcVar33;\n                  }\n                }\nLAB_00056cb8:\n                pppppppcStack_20c = pppppppcVar29;\n                FUN_0004b234(pppppppcVar3);\n                FUN_0004b2bc(&pppppppcStack_1f8);\n                pppppppcVar29 = pppppppcStack_20c;\n                if (pppppppcStack_20c != (code *******)0x0) {\n                  if (*(int *)(puVar41 + 0x23c78) != 0) {\n                    (**(code **)(puVar41 + 0x23df0))(pppppppcVar34 + 0x22);\n                  }\n                  FUN_0004b338(pppppppcVar34);\n                  *pppppppcVar3 = (code ******)0x0;\n                  pppppppcVar3[1] = (code ******)0x0;\n                  pppppppcVar29 = pppppppcStack_20c;\n                }\n                goto LAB_00056cfc;\n              }\n            }\n          }\n        }" (else "else") (compound_statement "{\n          ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23cf0))((int)pppppppcVar3[6] << 2);\n          pppppppcVar29[0x21] = ppppppcVar32;\n          if (ppppppcVar32 != (code ******)0x0) {\n            ppppppcVar32 = (code ******)0x0;\n            if (pppppppcVar3[6] != (code ******)0x0) {\n              do {\n                pppppppcVar29[0x21][(int)ppppppcVar32] = (code *****)ppppppcVar32;\n                ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n              } while (ppppppcVar32 < pppppppcVar3[6]);\n            }\n            FUN_00046050(pppppppcVar29[0xd],*(int *)(puVar41 + 0x23abc) + 0x60e8,pppppppcVar29);\n            ppppppcVar32 = pppppppcVar3[6];\n            if (ppppppcVar32 == (code ******)0x0) {\nLAB_00056704:\n              (**(code **)(puVar41 + 0x23dc0))(pppppppcVar29[0x21]);\n              pppppppcVar29[0x21] = (code ******)0x0;\n            }\n            else {\n              ppppppcVar35 = pppppppcVar29[0x21];\n              if (*ppppppcVar35 == (code *****)0x0) {\n                ppppppcVar39 = (code ******)0x0;\n                do {\n                  ppppppcVar35 = ppppppcVar35 + 1;\n                  ppppppcVar39 = (code ******)((int)ppppppcVar39 + 1);\n                  if (ppppppcVar32 == ppppppcVar39) {\n                    if (ppppppcVar32 == ppppppcVar39) goto LAB_00056704;\n                    break;\n                  }\n                } while ((code ******)*ppppppcVar35 == ppppppcVar39);\n              }\n            }\n          }\n          pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23abc) + 0x73a4);\n          pppppppcVar30 = (code *******)FUN_00045fb4(pppppppcVar29[0xd],pppppppcVar38,pppppppcVar3);\n          pppppppcVar31 = pppppppcVar29;\n          if (pppppppcVar30 == (code *******)0x0) {\n            pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23b40) + -0x5be4);\n            pppppppcVar30 = (code *******)FUN_00045fb4(pppppppcVar29[0xd],pppppppcVar38);\n            if (pppppppcVar30 == (code *******)0x0) {\n              FUN_00046050(pppppppcVar29[0xd],*(int *)(puVar41 + 0x23abc) + 0x61b4);\n              pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23b40) + -0x4614);\n              pppppppcVar30 = (code *******)FUN_00046050(pppppppcVar29[0xd],pppppppcVar38);\n              if (pppppppcVar30 == (code *******)0x0) {\n                uVar7 = 0;\n                iVar18 = *(int *)(puVar41 + 0x23b40);\n                pppppppcVar33 = (code *******)0x0;\nLAB_00056744:\n                if ((code *******)pppppppcVar29[2] != pppppppcVar33) {\nLAB_00056750:\n                  if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                    pppppppcVar38 = pppppppcVar29;\n                    pppppppcVar31 = pppppppcVar33;\n                    pppppppcVar30 =\n                         (code *******)\n                         (*(code *)(iVar18 + -0x561c))\n                                   (&ppppppcStack_204,pppppppcVar29,pppppppcVar33,1);\n                    if (pppppppcVar30 != (code *******)0x0) goto LAB_00056168;\n                    if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                      (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                      uVar7 = 1;\n                    }\n                  }\n                  pppppppcVar33 = (code *******)((int)pppppppcVar33 + 1);\n                  goto LAB_00056744;\n                }\n                if (uVar7 != 0) {\n                  uVar7 = 0;\n                  pppppppcVar33 = (code *******)0x0;\n                  goto LAB_00056750;\n                }\n                if (((((uint)pppppppcVar3[7] & 0x8000000) == 0) &&\n                    (pppppppcVar3[6] != (code ******)0x0)) &&\n                   ((char)*(code *)(pppppppcVar29 + 0x16) < '\0')) {\n                  ppppppcVar32 = pppppppcVar29[2];\n                }\n                else {\n                  if (pppppppcVar29[0x13] == (code ******)0x0) goto LAB_000568f0;\n                  ppppppcVar32 = pppppppcVar29[2];\n                }\n                ppppppcVar35 = (code ******)\n                               (**(code **)(puVar41 + 0x23cf0))((int)ppppppcVar32 * 0xc);\n                pppppppcVar29[7] = ppppppcVar35;\n                if (ppppppcVar35 == (code ******)0x0) {\n                  pppppppcVar30 = (code *******)0xc;\n                  goto LAB_00056168;\n                }\n                if (ppppppcVar32 != (code ******)0x0) {\n                  iVar18 = 0;\n                  ppppppcVar32 = (code ******)0x0;\n                  do {\n                    puVar21 = (undefined1 *)((int)pppppppcVar29[7] + iVar18);\n                    *puVar21 = 0;\n                    puVar21[1] = 0;\n                    puVar21[2] = 0;\n                    puVar21[3] = 0;\n                    puVar21[4] = 0;\n                    puVar21[5] = 0;\n                    puVar21[6] = 0;\n                    puVar21[7] = 0;\n                    puVar21[8] = 0;\n                    puVar21[9] = 0;\n                    puVar21[10] = 0;\n                    puVar21[0xb] = 0;\n                    ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                    iVar18 = iVar18 + 0xc;\n                  } while (ppppppcVar32 < pppppppcVar29[2]);\n                  iVar18 = *(int *)(puVar41 + 0x23abc);\n                  if (pppppppcVar29[2] != (code ******)0x0) {\n                    iVar43 = 0;\n                    pppppppcStack_218 = (code *******)0x0;\n                    do {\n                      piVar5 = *(int **)((int)pppppppcVar29[6] + iVar43 + 8);\n                      if (0 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4)) {\n                        iVar37 = 0;\n                        do {\n                          pppppppcVar38 = pppppppcStack_218;\n                          iVar22 = (*(code *)(iVar18 + 0x6e30))\n                                             (pppppppcVar29[7] + *piVar5 * 3,pppppppcStack_218);\n                          pppppppcVar30 = (code *******)0xc;\n                          if (iVar22 == 0) goto LAB_00056168;\n                          iVar37 = iVar37 + 1;\n                          piVar5 = piVar5 + 1;\n                        } while (iVar37 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4));\n                      }\n                      pppppppcStack_218 = (code *******)((int)pppppppcStack_218 + 1);\n                      iVar43 = iVar43 + 0xc;\n                    } while (pppppppcStack_218 < pppppppcVar29[2]);\n                  }\n                }\nLAB_000568f0:\n                pppppppcStack_20c = (code *******)0x0;\n                if (((((uint)pppppppcVar34[0x16] & 0x20000000) != 0) && (uVar16 == 0)) &&\n                   (pppppppcVar3[5] == (code ******)0x0)) {\n                  if (pppppppcVar34[2] != (code ******)0x0) {\n                    pppppppcVar31 = (code *******)(*(int *)(puVar41 + 0x23754) + 0x6e4c);\n                    if (*(byte *)(*pppppppcVar34 + 1) < 0xd) {\n                    \n                    \n                      pppppppcVar29 =\n                           (code *******)\n                           (*(code *)(puVar41 +\n                                     (int)(pppppppcVar31[*(byte *)(*pppppppcVar34 + 1)] + 0xadc7)))\n                                     ();\n                      return pppppppcVar29;\n                    }\n                    (**(code **)(puVar41 + 0x23bc4))(0);\n                    if (uVar7 != 0) {\n                      pppppppcVar31 = (code *******)&DAT_00000007;\n                      ppppppcVar32 = (code ******)0x0;\n                      do {\n                        ppppppcVar35 = *pppppppcVar34 + (int)ppppppcVar32 * 2;\n                        if (*(char *)(ppppppcVar35 + 1) == '\x01') {\n                          if (*(char *)ppppppcVar35 < '\0') {\n                            ppppppcVar35[1] = (code *****)((uint)ppppppcVar35[1] & 0xfffffbff);\n                          }\n                        }\n                        else if (*(char *)(ppppppcVar35 + 1) == '\x05') {\n                          *(char *)(ppppppcVar35 + 1) = '\a';\n                        }\n                        ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                      } while (ppppppcVar32 < pppppppcVar34[2]);\n                    }\n                  }\n                  pppppppcVar34[0x17] = (code ******)0x1;\n                  if (0 < (int)pppppppcVar34[0x13]) {\n                    uVar7 = 1;\n                  }\n                  *(byte *)(pppppppcVar34 + 0x16) =\n                       (byte)*(code *)(pppppppcVar34 + 0x16) & 0x9f | (byte)((uVar7 & 1) << 6);\n                }\n                ppppppcVar32 = (code ******)pppppppcVar34[0xd][3][7];\n                pppppppcVar34[0x12] = ppppppcVar32;\n                pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppppcVar32 * 3);\n                pppppppcVar33 = (code *******)FUN_000483e8(&ppppppcStack_204,pppppppcVar38);\n                pppppppcVar29 = pppppppcVar33;\n                pppppppcStack_208 = pppppppcVar33;\n                if (pppppppcVar33 == (code *******)0x0) {\n                  if ((0 < (int)pppppppcVar34[0x13]) && (0 < iStack_200)) {\n                    iVar18 = *(int *)(puVar41 + 0x23abc);\n                    iVar43 = *(int *)(puVar41 + 0x23abc);\n                    pppppppcVar29 = (code *******)0x0;\n                    do {\n                      pppppppcVar31 =\n                           (code *******)(*pppppppcVar34 + piStack_1fc[(int)pppppppcVar29] * 2);\n                      if (*(code *)(pppppppcVar31 + 1) == (code)0x4) {\n                        iVar37 = 0;\n                        piVar5 = piStack_1fc;\n                        if (iStack_200 < 1) {\nLAB_00056b8c:\n                          if (iStack_200 != iVar37) {\n                            ppppcVar40 = *pppppppcVar34[5][piStack_1fc[(int)pppppppcVar29] * 3 + 2];\n                            iVar37 = (*(code *)(iVar18 + 0x5ea8))(&ppppppcStack_204,ppppcVar40);\n                            if (iVar37 == 0) {\n                              pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppcVar40 * 3)\n                              ;\n                              pppppppcVar29 =\n                                   (code *******)\n                                   (*(code *)(iVar43 + 0x7f1c))(&ppppppcStack_204,pppppppcVar38);\n                              if (pppppppcVar29 != (code *******)0x0) goto LAB_00056cb8;\n                            }\n                          }\n                        }\n                        else {\n                          do {\n                            ppppppcVar32 = *pppppppcVar34 + *piVar5 * 2;\n                            if ((*(char *)(ppppppcVar32 + 1) == '\t') &&\n                               ((code ******)*ppppppcVar32 == *pppppppcVar31)) goto LAB_00056b8c;\n                            iVar37 = iVar37 + 1;\n                            piVar5 = piVar5 + 1;\n                          } while (iStack_200 != iVar37);\n                        }\n                      }\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1);\n                    } while ((int)pppppppcVar29 < iStack_200);\n                  }\n                  pppppppcVar31 = &ppppppcStack_204;\n                  pppppppcVar38 = pppppppcVar34;\n                  ppppppcVar32 = (code ******)\n                                 FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,0);\n                  pppppppcVar34[9] = ppppppcVar32;\n                  pppppppcVar29 = pppppppcStack_208;\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    if (((uint)ppppppcVar32[0xd] & 0x1000000) == 0) {\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar34[10] = ppppppcVar32;\n                    }\n                    else {\n                      pppppppcVar31 = &ppppppcStack_204;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,1);\n                      pppppppcVar34[10] = ppppppcVar32;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,2);\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar38 = pppppppcVar34;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,6);\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar29 = pppppppcStack_208;\n                      if (((pppppppcVar34[10] == (code ******)0x0) ||\n                          (pppppppcVar34[0xb] == (code ******)0x0)) ||\n                         (ppppppcVar32 == (code ******)0x0)) goto LAB_00056cb8;\n                    }\n                    (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                    pppppppcVar29 = pppppppcVar33;\n                  }\n                }\nLAB_00056cb8:\n                pppppppcStack_20c = pppppppcVar29;\n                FUN_0004b234(pppppppcVar3);\n                FUN_0004b2bc(&pppppppcStack_1f8);\n                pppppppcVar29 = pppppppcStack_20c;\n                if (pppppppcStack_20c != (code *******)0x0) {\n                  if (*(int *)(puVar41 + 0x23c78) != 0) {\n                    (**(code **)(puVar41 + 0x23df0))(pppppppcVar34 + 0x22);\n                  }\n                  FUN_0004b338(pppppppcVar34);\n                  *pppppppcVar3 = (code ******)0x0;\n                  pppppppcVar3[1] = (code ******)0x0;\n                  pppppppcVar29 = pppppppcStack_20c;\n                }\n                goto LAB_00056cfc;\n              }\n            }\n          }\n        }" ({ "{") (expression_statement "ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23cf0))((int)pppppppcVar3[6] << 2);" (assignment_expression "ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23cf0))((int)pppppppcVar3[6] << 2)" (identifier "ppppppcVar32") (= "=") (cast_expression "(code ******)(**(code **)(puVar41 + 0x23cf0))((int)pppppppcVar3[6] << 2)" (( "(") (type_descriptor "code ******" (type_identifier "code") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (call_expression "(**(code **)(puVar41 + 0x23cf0))((int)pppppppcVar3[6] << 2)" (parenthesized_expression "(**(code **)(puVar41 + 0x23cf0))" (( "(") (pointer_expression "**(code **)(puVar41 + 0x23cf0)" (* "*") (pointer_expression "*(code **)(puVar41 + 0x23cf0)" (* "*") (cast_expression "(code **)(puVar41 + 0x23cf0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar41 + 0x23cf0)" (( "(") (binary_expression "puVar41 + 0x23cf0" (identifier "puVar41") (+ "+") (number_literal "0x23cf0")) () ")"))))) () ")")) (argument_list "((int)pppppppcVar3[6] << 2)" (( "(") (binary_expression "(int)pppppppcVar3[6] << 2" (cast_expression "(int)pppppppcVar3[6]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "pppppppcVar3[6]" (identifier "pppppppcVar3") ([ "[") (number_literal "6") (] "]"))) (<< "<<") (number_literal "2")) () ")"))))) (; ";")) (expression_statement "pppppppcVar29[0x21] = ppppppcVar32;" (assignment_expression "pppppppcVar29[0x21] = ppppppcVar32" (subscript_expression "pppppppcVar29[0x21]" (identifier "pppppppcVar29") ([ "[") (number_literal "0x21") (] "]")) (= "=") (identifier "ppppppcVar32")) (; ";")) (if_statement "if (ppppppcVar32 != (code ******)0x0) {\n            ppppppcVar32 = (code ******)0x0;\n            if (pppppppcVar3[6] != (code ******)0x0) {\n              do {\n                pppppppcVar29[0x21][(int)ppppppcVar32] = (code *****)ppppppcVar32;\n                ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n              } while (ppppppcVar32 < pppppppcVar3[6]);\n            }\n            FUN_00046050(pppppppcVar29[0xd],*(int *)(puVar41 + 0x23abc) + 0x60e8,pppppppcVar29);\n            ppppppcVar32 = pppppppcVar3[6];\n            if (ppppppcVar32 == (code ******)0x0) {\nLAB_00056704:\n              (**(code **)(puVar41 + 0x23dc0))(pppppppcVar29[0x21]);\n              pppppppcVar29[0x21] = (code ******)0x0;\n            }\n            else {\n              ppppppcVar35 = pppppppcVar29[0x21];\n              if (*ppppppcVar35 == (code *****)0x0) {\n                ppppppcVar39 = (code ******)0x0;\n                do {\n                  ppppppcVar35 = ppppppcVar35 + 1;\n                  ppppppcVar39 = (code ******)((int)ppppppcVar39 + 1);\n                  if (ppppppcVar32 == ppppppcVar39) {\n                    if (ppppppcVar32 == ppppppcVar39) goto LAB_00056704;\n                    break;\n                  }\n                } while ((code ******)*ppppppcVar35 == ppppppcVar39);\n              }\n            }\n          }" (if "if") (parenthesized_expression "(ppppppcVar32 != (code ******)0x0)" (( "(") (binary_expression "ppppppcVar32 != (code ******)0x0" (identifier "ppppppcVar32") (!= "!=") (cast_expression "(code ******)0x0" (( "(") (type_descriptor "code ******" (type_identifier "code") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            ppppppcVar32 = (code ******)0x0;\n            if (pppppppcVar3[6] != (code ******)0x0) {\n              do {\n                pppppppcVar29[0x21][(int)ppppppcVar32] = (code *****)ppppppcVar32;\n                ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n              } while (ppppppcVar32 < pppppppcVar3[6]);\n            }\n            FUN_00046050(pppppppcVar29[0xd],*(int *)(puVar41 + 0x23abc) + 0x60e8,pppppppcVar29);\n            ppppppcVar32 = pppppppcVar3[6];\n            if (ppppppcVar32 == (code ******)0x0) {\nLAB_00056704:\n              (**(code **)(puVar41 + 0x23dc0))(pppppppcVar29[0x21]);\n              pppppppcVar29[0x21] = (code ******)0x0;\n            }\n            else {\n              ppppppcVar35 = pppppppcVar29[0x21];\n              if (*ppppppcVar35 == (code *****)0x0) {\n                ppppppcVar39 = (code ******)0x0;\n                do {\n                  ppppppcVar35 = ppppppcVar35 + 1;\n                  ppppppcVar39 = (code ******)((int)ppppppcVar39 + 1);\n                  if (ppppppcVar32 == ppppppcVar39) {\n                    if (ppppppcVar32 == ppppppcVar39) goto LAB_00056704;\n                    break;\n                  }\n                } while ((code ******)*ppppppcVar35 == ppppppcVar39);\n              }\n            }\n          }" ({ "{") (expression_statement "ppppppcVar32 = (code ******)0x0;" (assignment_expression "ppppppcVar32 = (code ******)0x0" (identifier "ppppppcVar32") (= "=") (cast_expression "(code ******)0x0" (( "(") (type_descriptor "code ******" (type_identifier "code") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) (; ";")) (if_statement "if (pppppppcVar3[6] != (code ******)0x0) {\n              do {\n                pppppppcVar29[0x21][(int)ppppppcVar32] = (code *****)ppppppcVar32;\n                ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n              } while (ppppppcVar32 < pppppppcVar3[6]);\n            }" (if "if") (parenthesized_expression "(pppppppcVar3[6] != (code ******)0x0)" (( "(") (binary_expression "pppppppcVar3[6] != (code ******)0x0" (subscript_expression "pppppppcVar3[6]" (identifier "pppppppcVar3") ([ "[") (number_literal "6") (] "]")) (!= "!=") (cast_expression "(code ******)0x0" (( "(") (type_descriptor "code ******" (type_identifier "code") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n              do {\n                pppppppcVar29[0x21][(int)ppppppcVar32] = (code *****)ppppppcVar32;\n                ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n              } while (ppppppcVar32 < pppppppcVar3[6]);\n            }" ({ "{") (do_statement "do {\n                pppppppcVar29[0x21][(int)ppppppcVar32] = (code *****)ppppppcVar32;\n                ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n              } while (ppppppcVar32 < pppppppcVar3[6]);" (do "do") (compound_statement "{\n                pppppppcVar29[0x21][(int)ppppppcVar32] = (code *****)ppppppcVar32;\n                ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n              }" ({ "{") (expression_statement "pppppppcVar29[0x21][(int)ppppppcVar32] = (code *****)ppppppcVar32;" (assignment_expression "pppppppcVar29[0x21][(int)ppppppcVar32] = (code *****)ppppppcVar32" (subscript_expression "pppppppcVar29[0x21][(int)ppppppcVar32]" (subscript_expression "pppppppcVar29[0x21]" (identifier "pppppppcVar29") ([ "[") (number_literal "0x21") (] "]")) ([ "[") (cast_expression "(int)ppppppcVar32" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppppppcVar32")) (] "]")) (= "=") (cast_expression "(code *****)ppppppcVar32" (( "(") (type_descriptor "code *****" (type_identifier "code") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (identifier "ppppppcVar32"))) (; ";")) (expression_statement "ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);" (assignment_expression "ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1)" (identifier "ppppppcVar32") (= "=") (cast_expression "(code ******)((int)ppppppcVar32 + 1)" (( "(") (type_descriptor "code ******" (type_identifier "code") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (parenthesized_expression "((int)ppppppcVar32 + 1)" (( "(") (binary_expression "(int)ppppppcVar32 + 1" (cast_expression "(int)ppppppcVar32" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppppppcVar32")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(ppppppcVar32 < pppppppcVar3[6])" (( "(") (binary_expression "ppppppcVar32 < pppppppcVar3[6]" (identifier "ppppppcVar32") (< "<") (subscript_expression "pppppppcVar3[6]" (identifier "pppppppcVar3") ([ "[") (number_literal "6") (] "]"))) () ")")) (; ";")) (} "}"))) (expression_statement "FUN_00046050(pppppppcVar29[0xd],*(int *)(puVar41 + 0x23abc) + 0x60e8,pppppppcVar29);" (call_expression "FUN_00046050(pppppppcVar29[0xd],*(int *)(puVar41 + 0x23abc) + 0x60e8,pppppppcVar29)" (identifier "FUN_00046050") (argument_list "(pppppppcVar29[0xd],*(int *)(puVar41 + 0x23abc) + 0x60e8,pppppppcVar29)" (( "(") (subscript_expression "pppppppcVar29[0xd]" (identifier "pppppppcVar29") ([ "[") (number_literal "0xd") (] "]")) (, ",") (binary_expression "*(int *)(puVar41 + 0x23abc) + 0x60e8" (pointer_expression "*(int *)(puVar41 + 0x23abc)" (* "*") (cast_expression "(int *)(puVar41 + 0x23abc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar41 + 0x23abc)" (( "(") (binary_expression "puVar41 + 0x23abc" (identifier "puVar41") (+ "+") (number_literal "0x23abc")) () ")")))) (+ "+") (number_literal "0x60e8")) (, ",") (identifier "pppppppcVar29") () ")"))) (; ";")) (expression_statement "ppppppcVar32 = pppppppcVar3[6];" (assignment_expression "ppppppcVar32 = pppppppcVar3[6]" (identifier "ppppppcVar32") (= "=") (subscript_expression "pppppppcVar3[6]" (identifier "pppppppcVar3") ([ "[") (number_literal "6") (] "]"))) (; ";")) (if_statement "if (ppppppcVar32 == (code ******)0x0) {\nLAB_00056704:\n              (**(code **)(puVar41 + 0x23dc0))(pppppppcVar29[0x21]);\n              pppppppcVar29[0x21] = (code ******)0x0;\n            }\n            else {\n              ppppppcVar35 = pppppppcVar29[0x21];\n              if (*ppppppcVar35 == (code *****)0x0) {\n                ppppppcVar39 = (code ******)0x0;\n                do {\n                  ppppppcVar35 = ppppppcVar35 + 1;\n                  ppppppcVar39 = (code ******)((int)ppppppcVar39 + 1);\n                  if (ppppppcVar32 == ppppppcVar39) {\n                    if (ppppppcVar32 == ppppppcVar39) goto LAB_00056704;\n                    break;\n                  }\n                } while ((code ******)*ppppppcVar35 == ppppppcVar39);\n              }\n            }" (if "if") (parenthesized_expression "(ppppppcVar32 == (code ******)0x0)" (( "(") (binary_expression "ppppppcVar32 == (code ******)0x0" (identifier "ppppppcVar32") (== "==") (cast_expression "(code ******)0x0" (( "(") (type_descriptor "code ******" (type_identifier "code") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\nLAB_00056704:\n              (**(code **)(puVar41 + 0x23dc0))(pppppppcVar29[0x21]);\n              pppppppcVar29[0x21] = (code ******)0x0;\n            }" ({ "{") (labeled_statement "LAB_00056704:\n              (**(code **)(puVar41 + 0x23dc0))(pppppppcVar29[0x21]);" (statement_identifier "LAB_00056704") (: ":") (expression_statement "(**(code **)(puVar41 + 0x23dc0))(pppppppcVar29[0x21]);" (call_expression "(**(code **)(puVar41 + 0x23dc0))(pppppppcVar29[0x21])" (parenthesized_expression "(**(code **)(puVar41 + 0x23dc0))" (( "(") (pointer_expression "**(code **)(puVar41 + 0x23dc0)" (* "*") (pointer_expression "*(code **)(puVar41 + 0x23dc0)" (* "*") (cast_expression "(code **)(puVar41 + 0x23dc0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar41 + 0x23dc0)" (( "(") (binary_expression "puVar41 + 0x23dc0" (identifier "puVar41") (+ "+") (number_literal "0x23dc0")) () ")"))))) () ")")) (argument_list "(pppppppcVar29[0x21])" (( "(") (subscript_expression "pppppppcVar29[0x21]" (identifier "pppppppcVar29") ([ "[") (number_literal "0x21") (] "]")) () ")"))) (; ";"))) (expression_statement "pppppppcVar29[0x21] = (code ******)0x0;" (assignment_expression "pppppppcVar29[0x21] = (code ******)0x0" (subscript_expression "pppppppcVar29[0x21]" (identifier "pppppppcVar29") ([ "[") (number_literal "0x21") (] "]")) (= "=") (cast_expression "(code ******)0x0" (( "(") (type_descriptor "code ******" (type_identifier "code") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) (; ";")) (} "}")) (else_clause "else {\n              ppppppcVar35 = pppppppcVar29[0x21];\n              if (*ppppppcVar35 == (code *****)0x0) {\n                ppppppcVar39 = (code ******)0x0;\n                do {\n                  ppppppcVar35 = ppppppcVar35 + 1;\n                  ppppppcVar39 = (code ******)((int)ppppppcVar39 + 1);\n                  if (ppppppcVar32 == ppppppcVar39) {\n                    if (ppppppcVar32 == ppppppcVar39) goto LAB_00056704;\n                    break;\n                  }\n                } while ((code ******)*ppppppcVar35 == ppppppcVar39);\n              }\n            }" (else "else") (compound_statement "{\n              ppppppcVar35 = pppppppcVar29[0x21];\n              if (*ppppppcVar35 == (code *****)0x0) {\n                ppppppcVar39 = (code ******)0x0;\n                do {\n                  ppppppcVar35 = ppppppcVar35 + 1;\n                  ppppppcVar39 = (code ******)((int)ppppppcVar39 + 1);\n                  if (ppppppcVar32 == ppppppcVar39) {\n                    if (ppppppcVar32 == ppppppcVar39) goto LAB_00056704;\n                    break;\n                  }\n                } while ((code ******)*ppppppcVar35 == ppppppcVar39);\n              }\n            }" ({ "{") (expression_statement "ppppppcVar35 = pppppppcVar29[0x21];" (assignment_expression "ppppppcVar35 = pppppppcVar29[0x21]" (identifier "ppppppcVar35") (= "=") (subscript_expression "pppppppcVar29[0x21]" (identifier "pppppppcVar29") ([ "[") (number_literal "0x21") (] "]"))) (; ";")) (if_statement "if (*ppppppcVar35 == (code *****)0x0) {\n                ppppppcVar39 = (code ******)0x0;\n                do {\n                  ppppppcVar35 = ppppppcVar35 + 1;\n                  ppppppcVar39 = (code ******)((int)ppppppcVar39 + 1);\n                  if (ppppppcVar32 == ppppppcVar39) {\n                    if (ppppppcVar32 == ppppppcVar39) goto LAB_00056704;\n                    break;\n                  }\n                } while ((code ******)*ppppppcVar35 == ppppppcVar39);\n              }" (if "if") (parenthesized_expression "(*ppppppcVar35 == (code *****)0x0)" (( "(") (binary_expression "*ppppppcVar35 == (code *****)0x0" (pointer_expression "*ppppppcVar35" (* "*") (identifier "ppppppcVar35")) (== "==") (cast_expression "(code *****)0x0" (( "(") (type_descriptor "code *****" (type_identifier "code") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                ppppppcVar39 = (code ******)0x0;\n                do {\n                  ppppppcVar35 = ppppppcVar35 + 1;\n                  ppppppcVar39 = (code ******)((int)ppppppcVar39 + 1);\n                  if (ppppppcVar32 == ppppppcVar39) {\n                    if (ppppppcVar32 == ppppppcVar39) goto LAB_00056704;\n                    break;\n                  }\n                } while ((code ******)*ppppppcVar35 == ppppppcVar39);\n              }" ({ "{") (expression_statement "ppppppcVar39 = (code ******)0x0;" (assignment_expression "ppppppcVar39 = (code ******)0x0" (identifier "ppppppcVar39") (= "=") (cast_expression "(code ******)0x0" (( "(") (type_descriptor "code ******" (type_identifier "code") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) (; ";")) (do_statement "do {\n                  ppppppcVar35 = ppppppcVar35 + 1;\n                  ppppppcVar39 = (code ******)((int)ppppppcVar39 + 1);\n                  if (ppppppcVar32 == ppppppcVar39) {\n                    if (ppppppcVar32 == ppppppcVar39) goto LAB_00056704;\n                    break;\n                  }\n                } while ((code ******)*ppppppcVar35 == ppppppcVar39);" (do "do") (compound_statement "{\n                  ppppppcVar35 = ppppppcVar35 + 1;\n                  ppppppcVar39 = (code ******)((int)ppppppcVar39 + 1);\n                  if (ppppppcVar32 == ppppppcVar39) {\n                    if (ppppppcVar32 == ppppppcVar39) goto LAB_00056704;\n                    break;\n                  }\n                }" ({ "{") (expression_statement "ppppppcVar35 = ppppppcVar35 + 1;" (assignment_expression "ppppppcVar35 = ppppppcVar35 + 1" (identifier "ppppppcVar35") (= "=") (binary_expression "ppppppcVar35 + 1" (identifier "ppppppcVar35") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "ppppppcVar39 = (code ******)((int)ppppppcVar39 + 1);" (assignment_expression "ppppppcVar39 = (code ******)((int)ppppppcVar39 + 1)" (identifier "ppppppcVar39") (= "=") (cast_expression "(code ******)((int)ppppppcVar39 + 1)" (( "(") (type_descriptor "code ******" (type_identifier "code") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (parenthesized_expression "((int)ppppppcVar39 + 1)" (( "(") (binary_expression "(int)ppppppcVar39 + 1" (cast_expression "(int)ppppppcVar39" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppppppcVar39")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (if_statement "if (ppppppcVar32 == ppppppcVar39) {\n                    if (ppppppcVar32 == ppppppcVar39) goto LAB_00056704;\n                    break;\n                  }" (if "if") (parenthesized_expression "(ppppppcVar32 == ppppppcVar39)" (( "(") (binary_expression "ppppppcVar32 == ppppppcVar39" (identifier "ppppppcVar32") (== "==") (identifier "ppppppcVar39")) () ")")) (compound_statement "{\n                    if (ppppppcVar32 == ppppppcVar39) goto LAB_00056704;\n                    break;\n                  }" ({ "{") (if_statement "if (ppppppcVar32 == ppppppcVar39) goto LAB_00056704;" (if "if") (parenthesized_expression "(ppppppcVar32 == ppppppcVar39)" (( "(") (binary_expression "ppppppcVar32 == ppppppcVar39" (identifier "ppppppcVar32") (== "==") (identifier "ppppppcVar39")) () ")")) (goto_statement "goto LAB_00056704;" (goto "goto") (statement_identifier "LAB_00056704") (; ";"))) (break_statement "break;" (break "break") (; ";")) (} "}"))) (} "}")) (while "while") (parenthesized_expression "((code ******)*ppppppcVar35 == ppppppcVar39)" (( "(") (binary_expression "(code ******)*ppppppcVar35 == ppppppcVar39" (cast_expression "(code ******)*ppppppcVar35" (( "(") (type_descriptor "code ******" (type_identifier "code") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (pointer_expression "*ppppppcVar35" (* "*") (identifier "ppppppcVar35"))) (== "==") (identifier "ppppppcVar39")) () ")")) (; ";")) (} "}"))) (} "}")))) (} "}"))) (expression_statement "pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23abc) + 0x73a4);" (assignment_expression "pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23abc) + 0x73a4)" (identifier "pppppppcVar38") (= "=") (cast_expression "(code *******)(*(int *)(puVar41 + 0x23abc) + 0x73a4)" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "(*(int *)(puVar41 + 0x23abc) + 0x73a4)" (( "(") (binary_expression "*(int *)(puVar41 + 0x23abc) + 0x73a4" (pointer_expression "*(int *)(puVar41 + 0x23abc)" (* "*") (cast_expression "(int *)(puVar41 + 0x23abc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar41 + 0x23abc)" (( "(") (binary_expression "puVar41 + 0x23abc" (identifier "puVar41") (+ "+") (number_literal "0x23abc")) () ")")))) (+ "+") (number_literal "0x73a4")) () ")")))) (; ";")) (expression_statement "pppppppcVar30 = (code *******)FUN_00045fb4(pppppppcVar29[0xd],pppppppcVar38,pppppppcVar3);" (assignment_expression "pppppppcVar30 = (code *******)FUN_00045fb4(pppppppcVar29[0xd],pppppppcVar38,pppppppcVar3)" (identifier "pppppppcVar30") (= "=") (cast_expression "(code *******)FUN_00045fb4(pppppppcVar29[0xd],pppppppcVar38,pppppppcVar3)" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (call_expression "FUN_00045fb4(pppppppcVar29[0xd],pppppppcVar38,pppppppcVar3)" (identifier "FUN_00045fb4") (argument_list "(pppppppcVar29[0xd],pppppppcVar38,pppppppcVar3)" (( "(") (subscript_expression "pppppppcVar29[0xd]" (identifier "pppppppcVar29") ([ "[") (number_literal "0xd") (] "]")) (, ",") (identifier "pppppppcVar38") (, ",") (identifier "pppppppcVar3") () ")"))))) (; ";")) (expression_statement "pppppppcVar31 = pppppppcVar29;" (assignment_expression "pppppppcVar31 = pppppppcVar29" (identifier "pppppppcVar31") (= "=") (identifier "pppppppcVar29")) (; ";")) (if_statement "if (pppppppcVar30 == (code *******)0x0) {\n            pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23b40) + -0x5be4);\n            pppppppcVar30 = (code *******)FUN_00045fb4(pppppppcVar29[0xd],pppppppcVar38);\n            if (pppppppcVar30 == (code *******)0x0) {\n              FUN_00046050(pppppppcVar29[0xd],*(int *)(puVar41 + 0x23abc) + 0x61b4);\n              pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23b40) + -0x4614);\n              pppppppcVar30 = (code *******)FUN_00046050(pppppppcVar29[0xd],pppppppcVar38);\n              if (pppppppcVar30 == (code *******)0x0) {\n                uVar7 = 0;\n                iVar18 = *(int *)(puVar41 + 0x23b40);\n                pppppppcVar33 = (code *******)0x0;\nLAB_00056744:\n                if ((code *******)pppppppcVar29[2] != pppppppcVar33) {\nLAB_00056750:\n                  if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                    pppppppcVar38 = pppppppcVar29;\n                    pppppppcVar31 = pppppppcVar33;\n                    pppppppcVar30 =\n                         (code *******)\n                         (*(code *)(iVar18 + -0x561c))\n                                   (&ppppppcStack_204,pppppppcVar29,pppppppcVar33,1);\n                    if (pppppppcVar30 != (code *******)0x0) goto LAB_00056168;\n                    if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                      (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                      uVar7 = 1;\n                    }\n                  }\n                  pppppppcVar33 = (code *******)((int)pppppppcVar33 + 1);\n                  goto LAB_00056744;\n                }\n                if (uVar7 != 0) {\n                  uVar7 = 0;\n                  pppppppcVar33 = (code *******)0x0;\n                  goto LAB_00056750;\n                }\n                if (((((uint)pppppppcVar3[7] & 0x8000000) == 0) &&\n                    (pppppppcVar3[6] != (code ******)0x0)) &&\n                   ((char)*(code *)(pppppppcVar29 + 0x16) < '\0')) {\n                  ppppppcVar32 = pppppppcVar29[2];\n                }\n                else {\n                  if (pppppppcVar29[0x13] == (code ******)0x0) goto LAB_000568f0;\n                  ppppppcVar32 = pppppppcVar29[2];\n                }\n                ppppppcVar35 = (code ******)\n                               (**(code **)(puVar41 + 0x23cf0))((int)ppppppcVar32 * 0xc);\n                pppppppcVar29[7] = ppppppcVar35;\n                if (ppppppcVar35 == (code ******)0x0) {\n                  pppppppcVar30 = (code *******)0xc;\n                  goto LAB_00056168;\n                }\n                if (ppppppcVar32 != (code ******)0x0) {\n                  iVar18 = 0;\n                  ppppppcVar32 = (code ******)0x0;\n                  do {\n                    puVar21 = (undefined1 *)((int)pppppppcVar29[7] + iVar18);\n                    *puVar21 = 0;\n                    puVar21[1] = 0;\n                    puVar21[2] = 0;\n                    puVar21[3] = 0;\n                    puVar21[4] = 0;\n                    puVar21[5] = 0;\n                    puVar21[6] = 0;\n                    puVar21[7] = 0;\n                    puVar21[8] = 0;\n                    puVar21[9] = 0;\n                    puVar21[10] = 0;\n                    puVar21[0xb] = 0;\n                    ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                    iVar18 = iVar18 + 0xc;\n                  } while (ppppppcVar32 < pppppppcVar29[2]);\n                  iVar18 = *(int *)(puVar41 + 0x23abc);\n                  if (pppppppcVar29[2] != (code ******)0x0) {\n                    iVar43 = 0;\n                    pppppppcStack_218 = (code *******)0x0;\n                    do {\n                      piVar5 = *(int **)((int)pppppppcVar29[6] + iVar43 + 8);\n                      if (0 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4)) {\n                        iVar37 = 0;\n                        do {\n                          pppppppcVar38 = pppppppcStack_218;\n                          iVar22 = (*(code *)(iVar18 + 0x6e30))\n                                             (pppppppcVar29[7] + *piVar5 * 3,pppppppcStack_218);\n                          pppppppcVar30 = (code *******)0xc;\n                          if (iVar22 == 0) goto LAB_00056168;\n                          iVar37 = iVar37 + 1;\n                          piVar5 = piVar5 + 1;\n                        } while (iVar37 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4));\n                      }\n                      pppppppcStack_218 = (code *******)((int)pppppppcStack_218 + 1);\n                      iVar43 = iVar43 + 0xc;\n                    } while (pppppppcStack_218 < pppppppcVar29[2]);\n                  }\n                }\nLAB_000568f0:\n                pppppppcStack_20c = (code *******)0x0;\n                if (((((uint)pppppppcVar34[0x16] & 0x20000000) != 0) && (uVar16 == 0)) &&\n                   (pppppppcVar3[5] == (code ******)0x0)) {\n                  if (pppppppcVar34[2] != (code ******)0x0) {\n                    pppppppcVar31 = (code *******)(*(int *)(puVar41 + 0x23754) + 0x6e4c);\n                    if (*(byte *)(*pppppppcVar34 + 1) < 0xd) {\n                    \n                    \n                      pppppppcVar29 =\n                           (code *******)\n                           (*(code *)(puVar41 +\n                                     (int)(pppppppcVar31[*(byte *)(*pppppppcVar34 + 1)] + 0xadc7)))\n                                     ();\n                      return pppppppcVar29;\n                    }\n                    (**(code **)(puVar41 + 0x23bc4))(0);\n                    if (uVar7 != 0) {\n                      pppppppcVar31 = (code *******)&DAT_00000007;\n                      ppppppcVar32 = (code ******)0x0;\n                      do {\n                        ppppppcVar35 = *pppppppcVar34 + (int)ppppppcVar32 * 2;\n                        if (*(char *)(ppppppcVar35 + 1) == '\x01') {\n                          if (*(char *)ppppppcVar35 < '\0') {\n                            ppppppcVar35[1] = (code *****)((uint)ppppppcVar35[1] & 0xfffffbff);\n                          }\n                        }\n                        else if (*(char *)(ppppppcVar35 + 1) == '\x05') {\n                          *(char *)(ppppppcVar35 + 1) = '\a';\n                        }\n                        ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                      } while (ppppppcVar32 < pppppppcVar34[2]);\n                    }\n                  }\n                  pppppppcVar34[0x17] = (code ******)0x1;\n                  if (0 < (int)pppppppcVar34[0x13]) {\n                    uVar7 = 1;\n                  }\n                  *(byte *)(pppppppcVar34 + 0x16) =\n                       (byte)*(code *)(pppppppcVar34 + 0x16) & 0x9f | (byte)((uVar7 & 1) << 6);\n                }\n                ppppppcVar32 = (code ******)pppppppcVar34[0xd][3][7];\n                pppppppcVar34[0x12] = ppppppcVar32;\n                pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppppcVar32 * 3);\n                pppppppcVar33 = (code *******)FUN_000483e8(&ppppppcStack_204,pppppppcVar38);\n                pppppppcVar29 = pppppppcVar33;\n                pppppppcStack_208 = pppppppcVar33;\n                if (pppppppcVar33 == (code *******)0x0) {\n                  if ((0 < (int)pppppppcVar34[0x13]) && (0 < iStack_200)) {\n                    iVar18 = *(int *)(puVar41 + 0x23abc);\n                    iVar43 = *(int *)(puVar41 + 0x23abc);\n                    pppppppcVar29 = (code *******)0x0;\n                    do {\n                      pppppppcVar31 =\n                           (code *******)(*pppppppcVar34 + piStack_1fc[(int)pppppppcVar29] * 2);\n                      if (*(code *)(pppppppcVar31 + 1) == (code)0x4) {\n                        iVar37 = 0;\n                        piVar5 = piStack_1fc;\n                        if (iStack_200 < 1) {\nLAB_00056b8c:\n                          if (iStack_200 != iVar37) {\n                            ppppcVar40 = *pppppppcVar34[5][piStack_1fc[(int)pppppppcVar29] * 3 + 2];\n                            iVar37 = (*(code *)(iVar18 + 0x5ea8))(&ppppppcStack_204,ppppcVar40);\n                            if (iVar37 == 0) {\n                              pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppcVar40 * 3)\n                              ;\n                              pppppppcVar29 =\n                                   (code *******)\n                                   (*(code *)(iVar43 + 0x7f1c))(&ppppppcStack_204,pppppppcVar38);\n                              if (pppppppcVar29 != (code *******)0x0) goto LAB_00056cb8;\n                            }\n                          }\n                        }\n                        else {\n                          do {\n                            ppppppcVar32 = *pppppppcVar34 + *piVar5 * 2;\n                            if ((*(char *)(ppppppcVar32 + 1) == '\t') &&\n                               ((code ******)*ppppppcVar32 == *pppppppcVar31)) goto LAB_00056b8c;\n                            iVar37 = iVar37 + 1;\n                            piVar5 = piVar5 + 1;\n                          } while (iStack_200 != iVar37);\n                        }\n                      }\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1);\n                    } while ((int)pppppppcVar29 < iStack_200);\n                  }\n                  pppppppcVar31 = &ppppppcStack_204;\n                  pppppppcVar38 = pppppppcVar34;\n                  ppppppcVar32 = (code ******)\n                                 FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,0);\n                  pppppppcVar34[9] = ppppppcVar32;\n                  pppppppcVar29 = pppppppcStack_208;\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    if (((uint)ppppppcVar32[0xd] & 0x1000000) == 0) {\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar34[10] = ppppppcVar32;\n                    }\n                    else {\n                      pppppppcVar31 = &ppppppcStack_204;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,1);\n                      pppppppcVar34[10] = ppppppcVar32;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,2);\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar38 = pppppppcVar34;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,6);\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar29 = pppppppcStack_208;\n                      if (((pppppppcVar34[10] == (code ******)0x0) ||\n                          (pppppppcVar34[0xb] == (code ******)0x0)) ||\n                         (ppppppcVar32 == (code ******)0x0)) goto LAB_00056cb8;\n                    }\n                    (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                    pppppppcVar29 = pppppppcVar33;\n                  }\n                }\nLAB_00056cb8:\n                pppppppcStack_20c = pppppppcVar29;\n                FUN_0004b234(pppppppcVar3);\n                FUN_0004b2bc(&pppppppcStack_1f8);\n                pppppppcVar29 = pppppppcStack_20c;\n                if (pppppppcStack_20c != (code *******)0x0) {\n                  if (*(int *)(puVar41 + 0x23c78) != 0) {\n                    (**(code **)(puVar41 + 0x23df0))(pppppppcVar34 + 0x22);\n                  }\n                  FUN_0004b338(pppppppcVar34);\n                  *pppppppcVar3 = (code ******)0x0;\n                  pppppppcVar3[1] = (code ******)0x0;\n                  pppppppcVar29 = pppppppcStack_20c;\n                }\n                goto LAB_00056cfc;\n              }\n            }\n          }" (if "if") (parenthesized_expression "(pppppppcVar30 == (code *******)0x0)" (( "(") (binary_expression "pppppppcVar30 == (code *******)0x0" (identifier "pppppppcVar30") (== "==") (cast_expression "(code *******)0x0" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23b40) + -0x5be4);\n            pppppppcVar30 = (code *******)FUN_00045fb4(pppppppcVar29[0xd],pppppppcVar38);\n            if (pppppppcVar30 == (code *******)0x0) {\n              FUN_00046050(pppppppcVar29[0xd],*(int *)(puVar41 + 0x23abc) + 0x61b4);\n              pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23b40) + -0x4614);\n              pppppppcVar30 = (code *******)FUN_00046050(pppppppcVar29[0xd],pppppppcVar38);\n              if (pppppppcVar30 == (code *******)0x0) {\n                uVar7 = 0;\n                iVar18 = *(int *)(puVar41 + 0x23b40);\n                pppppppcVar33 = (code *******)0x0;\nLAB_00056744:\n                if ((code *******)pppppppcVar29[2] != pppppppcVar33) {\nLAB_00056750:\n                  if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                    pppppppcVar38 = pppppppcVar29;\n                    pppppppcVar31 = pppppppcVar33;\n                    pppppppcVar30 =\n                         (code *******)\n                         (*(code *)(iVar18 + -0x561c))\n                                   (&ppppppcStack_204,pppppppcVar29,pppppppcVar33,1);\n                    if (pppppppcVar30 != (code *******)0x0) goto LAB_00056168;\n                    if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                      (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                      uVar7 = 1;\n                    }\n                  }\n                  pppppppcVar33 = (code *******)((int)pppppppcVar33 + 1);\n                  goto LAB_00056744;\n                }\n                if (uVar7 != 0) {\n                  uVar7 = 0;\n                  pppppppcVar33 = (code *******)0x0;\n                  goto LAB_00056750;\n                }\n                if (((((uint)pppppppcVar3[7] & 0x8000000) == 0) &&\n                    (pppppppcVar3[6] != (code ******)0x0)) &&\n                   ((char)*(code *)(pppppppcVar29 + 0x16) < '\0')) {\n                  ppppppcVar32 = pppppppcVar29[2];\n                }\n                else {\n                  if (pppppppcVar29[0x13] == (code ******)0x0) goto LAB_000568f0;\n                  ppppppcVar32 = pppppppcVar29[2];\n                }\n                ppppppcVar35 = (code ******)\n                               (**(code **)(puVar41 + 0x23cf0))((int)ppppppcVar32 * 0xc);\n                pppppppcVar29[7] = ppppppcVar35;\n                if (ppppppcVar35 == (code ******)0x0) {\n                  pppppppcVar30 = (code *******)0xc;\n                  goto LAB_00056168;\n                }\n                if (ppppppcVar32 != (code ******)0x0) {\n                  iVar18 = 0;\n                  ppppppcVar32 = (code ******)0x0;\n                  do {\n                    puVar21 = (undefined1 *)((int)pppppppcVar29[7] + iVar18);\n                    *puVar21 = 0;\n                    puVar21[1] = 0;\n                    puVar21[2] = 0;\n                    puVar21[3] = 0;\n                    puVar21[4] = 0;\n                    puVar21[5] = 0;\n                    puVar21[6] = 0;\n                    puVar21[7] = 0;\n                    puVar21[8] = 0;\n                    puVar21[9] = 0;\n                    puVar21[10] = 0;\n                    puVar21[0xb] = 0;\n                    ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                    iVar18 = iVar18 + 0xc;\n                  } while (ppppppcVar32 < pppppppcVar29[2]);\n                  iVar18 = *(int *)(puVar41 + 0x23abc);\n                  if (pppppppcVar29[2] != (code ******)0x0) {\n                    iVar43 = 0;\n                    pppppppcStack_218 = (code *******)0x0;\n                    do {\n                      piVar5 = *(int **)((int)pppppppcVar29[6] + iVar43 + 8);\n                      if (0 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4)) {\n                        iVar37 = 0;\n                        do {\n                          pppppppcVar38 = pppppppcStack_218;\n                          iVar22 = (*(code *)(iVar18 + 0x6e30))\n                                             (pppppppcVar29[7] + *piVar5 * 3,pppppppcStack_218);\n                          pppppppcVar30 = (code *******)0xc;\n                          if (iVar22 == 0) goto LAB_00056168;\n                          iVar37 = iVar37 + 1;\n                          piVar5 = piVar5 + 1;\n                        } while (iVar37 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4));\n                      }\n                      pppppppcStack_218 = (code *******)((int)pppppppcStack_218 + 1);\n                      iVar43 = iVar43 + 0xc;\n                    } while (pppppppcStack_218 < pppppppcVar29[2]);\n                  }\n                }\nLAB_000568f0:\n                pppppppcStack_20c = (code *******)0x0;\n                if (((((uint)pppppppcVar34[0x16] & 0x20000000) != 0) && (uVar16 == 0)) &&\n                   (pppppppcVar3[5] == (code ******)0x0)) {\n                  if (pppppppcVar34[2] != (code ******)0x0) {\n                    pppppppcVar31 = (code *******)(*(int *)(puVar41 + 0x23754) + 0x6e4c);\n                    if (*(byte *)(*pppppppcVar34 + 1) < 0xd) {\n                    \n                    \n                      pppppppcVar29 =\n                           (code *******)\n                           (*(code *)(puVar41 +\n                                     (int)(pppppppcVar31[*(byte *)(*pppppppcVar34 + 1)] + 0xadc7)))\n                                     ();\n                      return pppppppcVar29;\n                    }\n                    (**(code **)(puVar41 + 0x23bc4))(0);\n                    if (uVar7 != 0) {\n                      pppppppcVar31 = (code *******)&DAT_00000007;\n                      ppppppcVar32 = (code ******)0x0;\n                      do {\n                        ppppppcVar35 = *pppppppcVar34 + (int)ppppppcVar32 * 2;\n                        if (*(char *)(ppppppcVar35 + 1) == '\x01') {\n                          if (*(char *)ppppppcVar35 < '\0') {\n                            ppppppcVar35[1] = (code *****)((uint)ppppppcVar35[1] & 0xfffffbff);\n                          }\n                        }\n                        else if (*(char *)(ppppppcVar35 + 1) == '\x05') {\n                          *(char *)(ppppppcVar35 + 1) = '\a';\n                        }\n                        ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                      } while (ppppppcVar32 < pppppppcVar34[2]);\n                    }\n                  }\n                  pppppppcVar34[0x17] = (code ******)0x1;\n                  if (0 < (int)pppppppcVar34[0x13]) {\n                    uVar7 = 1;\n                  }\n                  *(byte *)(pppppppcVar34 + 0x16) =\n                       (byte)*(code *)(pppppppcVar34 + 0x16) & 0x9f | (byte)((uVar7 & 1) << 6);\n                }\n                ppppppcVar32 = (code ******)pppppppcVar34[0xd][3][7];\n                pppppppcVar34[0x12] = ppppppcVar32;\n                pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppppcVar32 * 3);\n                pppppppcVar33 = (code *******)FUN_000483e8(&ppppppcStack_204,pppppppcVar38);\n                pppppppcVar29 = pppppppcVar33;\n                pppppppcStack_208 = pppppppcVar33;\n                if (pppppppcVar33 == (code *******)0x0) {\n                  if ((0 < (int)pppppppcVar34[0x13]) && (0 < iStack_200)) {\n                    iVar18 = *(int *)(puVar41 + 0x23abc);\n                    iVar43 = *(int *)(puVar41 + 0x23abc);\n                    pppppppcVar29 = (code *******)0x0;\n                    do {\n                      pppppppcVar31 =\n                           (code *******)(*pppppppcVar34 + piStack_1fc[(int)pppppppcVar29] * 2);\n                      if (*(code *)(pppppppcVar31 + 1) == (code)0x4) {\n                        iVar37 = 0;\n                        piVar5 = piStack_1fc;\n                        if (iStack_200 < 1) {\nLAB_00056b8c:\n                          if (iStack_200 != iVar37) {\n                            ppppcVar40 = *pppppppcVar34[5][piStack_1fc[(int)pppppppcVar29] * 3 + 2];\n                            iVar37 = (*(code *)(iVar18 + 0x5ea8))(&ppppppcStack_204,ppppcVar40);\n                            if (iVar37 == 0) {\n                              pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppcVar40 * 3)\n                              ;\n                              pppppppcVar29 =\n                                   (code *******)\n                                   (*(code *)(iVar43 + 0x7f1c))(&ppppppcStack_204,pppppppcVar38);\n                              if (pppppppcVar29 != (code *******)0x0) goto LAB_00056cb8;\n                            }\n                          }\n                        }\n                        else {\n                          do {\n                            ppppppcVar32 = *pppppppcVar34 + *piVar5 * 2;\n                            if ((*(char *)(ppppppcVar32 + 1) == '\t') &&\n                               ((code ******)*ppppppcVar32 == *pppppppcVar31)) goto LAB_00056b8c;\n                            iVar37 = iVar37 + 1;\n                            piVar5 = piVar5 + 1;\n                          } while (iStack_200 != iVar37);\n                        }\n                      }\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1);\n                    } while ((int)pppppppcVar29 < iStack_200);\n                  }\n                  pppppppcVar31 = &ppppppcStack_204;\n                  pppppppcVar38 = pppppppcVar34;\n                  ppppppcVar32 = (code ******)\n                                 FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,0);\n                  pppppppcVar34[9] = ppppppcVar32;\n                  pppppppcVar29 = pppppppcStack_208;\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    if (((uint)ppppppcVar32[0xd] & 0x1000000) == 0) {\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar34[10] = ppppppcVar32;\n                    }\n                    else {\n                      pppppppcVar31 = &ppppppcStack_204;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,1);\n                      pppppppcVar34[10] = ppppppcVar32;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,2);\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar38 = pppppppcVar34;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,6);\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar29 = pppppppcStack_208;\n                      if (((pppppppcVar34[10] == (code ******)0x0) ||\n                          (pppppppcVar34[0xb] == (code ******)0x0)) ||\n                         (ppppppcVar32 == (code ******)0x0)) goto LAB_00056cb8;\n                    }\n                    (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                    pppppppcVar29 = pppppppcVar33;\n                  }\n                }\nLAB_00056cb8:\n                pppppppcStack_20c = pppppppcVar29;\n                FUN_0004b234(pppppppcVar3);\n                FUN_0004b2bc(&pppppppcStack_1f8);\n                pppppppcVar29 = pppppppcStack_20c;\n                if (pppppppcStack_20c != (code *******)0x0) {\n                  if (*(int *)(puVar41 + 0x23c78) != 0) {\n                    (**(code **)(puVar41 + 0x23df0))(pppppppcVar34 + 0x22);\n                  }\n                  FUN_0004b338(pppppppcVar34);\n                  *pppppppcVar3 = (code ******)0x0;\n                  pppppppcVar3[1] = (code ******)0x0;\n                  pppppppcVar29 = pppppppcStack_20c;\n                }\n                goto LAB_00056cfc;\n              }\n            }\n          }" ({ "{") (expression_statement "pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23b40) + -0x5be4);" (assignment_expression "pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23b40) + -0x5be4)" (identifier "pppppppcVar38") (= "=") (cast_expression "(code *******)(*(int *)(puVar41 + 0x23b40) + -0x5be4)" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "(*(int *)(puVar41 + 0x23b40) + -0x5be4)" (( "(") (binary_expression "*(int *)(puVar41 + 0x23b40) + -0x5be4" (pointer_expression "*(int *)(puVar41 + 0x23b40)" (* "*") (cast_expression "(int *)(puVar41 + 0x23b40)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar41 + 0x23b40)" (( "(") (binary_expression "puVar41 + 0x23b40" (identifier "puVar41") (+ "+") (number_literal "0x23b40")) () ")")))) (+ "+") (number_literal "-0x5be4")) () ")")))) (; ";")) (expression_statement "pppppppcVar30 = (code *******)FUN_00045fb4(pppppppcVar29[0xd],pppppppcVar38);" (assignment_expression "pppppppcVar30 = (code *******)FUN_00045fb4(pppppppcVar29[0xd],pppppppcVar38)" (identifier "pppppppcVar30") (= "=") (cast_expression "(code *******)FUN_00045fb4(pppppppcVar29[0xd],pppppppcVar38)" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (call_expression "FUN_00045fb4(pppppppcVar29[0xd],pppppppcVar38)" (identifier "FUN_00045fb4") (argument_list "(pppppppcVar29[0xd],pppppppcVar38)" (( "(") (subscript_expression "pppppppcVar29[0xd]" (identifier "pppppppcVar29") ([ "[") (number_literal "0xd") (] "]")) (, ",") (identifier "pppppppcVar38") () ")"))))) (; ";")) (if_statement "if (pppppppcVar30 == (code *******)0x0) {\n              FUN_00046050(pppppppcVar29[0xd],*(int *)(puVar41 + 0x23abc) + 0x61b4);\n              pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23b40) + -0x4614);\n              pppppppcVar30 = (code *******)FUN_00046050(pppppppcVar29[0xd],pppppppcVar38);\n              if (pppppppcVar30 == (code *******)0x0) {\n                uVar7 = 0;\n                iVar18 = *(int *)(puVar41 + 0x23b40);\n                pppppppcVar33 = (code *******)0x0;\nLAB_00056744:\n                if ((code *******)pppppppcVar29[2] != pppppppcVar33) {\nLAB_00056750:\n                  if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                    pppppppcVar38 = pppppppcVar29;\n                    pppppppcVar31 = pppppppcVar33;\n                    pppppppcVar30 =\n                         (code *******)\n                         (*(code *)(iVar18 + -0x561c))\n                                   (&ppppppcStack_204,pppppppcVar29,pppppppcVar33,1);\n                    if (pppppppcVar30 != (code *******)0x0) goto LAB_00056168;\n                    if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                      (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                      uVar7 = 1;\n                    }\n                  }\n                  pppppppcVar33 = (code *******)((int)pppppppcVar33 + 1);\n                  goto LAB_00056744;\n                }\n                if (uVar7 != 0) {\n                  uVar7 = 0;\n                  pppppppcVar33 = (code *******)0x0;\n                  goto LAB_00056750;\n                }\n                if (((((uint)pppppppcVar3[7] & 0x8000000) == 0) &&\n                    (pppppppcVar3[6] != (code ******)0x0)) &&\n                   ((char)*(code *)(pppppppcVar29 + 0x16) < '\0')) {\n                  ppppppcVar32 = pppppppcVar29[2];\n                }\n                else {\n                  if (pppppppcVar29[0x13] == (code ******)0x0) goto LAB_000568f0;\n                  ppppppcVar32 = pppppppcVar29[2];\n                }\n                ppppppcVar35 = (code ******)\n                               (**(code **)(puVar41 + 0x23cf0))((int)ppppppcVar32 * 0xc);\n                pppppppcVar29[7] = ppppppcVar35;\n                if (ppppppcVar35 == (code ******)0x0) {\n                  pppppppcVar30 = (code *******)0xc;\n                  goto LAB_00056168;\n                }\n                if (ppppppcVar32 != (code ******)0x0) {\n                  iVar18 = 0;\n                  ppppppcVar32 = (code ******)0x0;\n                  do {\n                    puVar21 = (undefined1 *)((int)pppppppcVar29[7] + iVar18);\n                    *puVar21 = 0;\n                    puVar21[1] = 0;\n                    puVar21[2] = 0;\n                    puVar21[3] = 0;\n                    puVar21[4] = 0;\n                    puVar21[5] = 0;\n                    puVar21[6] = 0;\n                    puVar21[7] = 0;\n                    puVar21[8] = 0;\n                    puVar21[9] = 0;\n                    puVar21[10] = 0;\n                    puVar21[0xb] = 0;\n                    ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                    iVar18 = iVar18 + 0xc;\n                  } while (ppppppcVar32 < pppppppcVar29[2]);\n                  iVar18 = *(int *)(puVar41 + 0x23abc);\n                  if (pppppppcVar29[2] != (code ******)0x0) {\n                    iVar43 = 0;\n                    pppppppcStack_218 = (code *******)0x0;\n                    do {\n                      piVar5 = *(int **)((int)pppppppcVar29[6] + iVar43 + 8);\n                      if (0 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4)) {\n                        iVar37 = 0;\n                        do {\n                          pppppppcVar38 = pppppppcStack_218;\n                          iVar22 = (*(code *)(iVar18 + 0x6e30))\n                                             (pppppppcVar29[7] + *piVar5 * 3,pppppppcStack_218);\n                          pppppppcVar30 = (code *******)0xc;\n                          if (iVar22 == 0) goto LAB_00056168;\n                          iVar37 = iVar37 + 1;\n                          piVar5 = piVar5 + 1;\n                        } while (iVar37 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4));\n                      }\n                      pppppppcStack_218 = (code *******)((int)pppppppcStack_218 + 1);\n                      iVar43 = iVar43 + 0xc;\n                    } while (pppppppcStack_218 < pppppppcVar29[2]);\n                  }\n                }\nLAB_000568f0:\n                pppppppcStack_20c = (code *******)0x0;\n                if (((((uint)pppppppcVar34[0x16] & 0x20000000) != 0) && (uVar16 == 0)) &&\n                   (pppppppcVar3[5] == (code ******)0x0)) {\n                  if (pppppppcVar34[2] != (code ******)0x0) {\n                    pppppppcVar31 = (code *******)(*(int *)(puVar41 + 0x23754) + 0x6e4c);\n                    if (*(byte *)(*pppppppcVar34 + 1) < 0xd) {\n                    \n                    \n                      pppppppcVar29 =\n                           (code *******)\n                           (*(code *)(puVar41 +\n                                     (int)(pppppppcVar31[*(byte *)(*pppppppcVar34 + 1)] + 0xadc7)))\n                                     ();\n                      return pppppppcVar29;\n                    }\n                    (**(code **)(puVar41 + 0x23bc4))(0);\n                    if (uVar7 != 0) {\n                      pppppppcVar31 = (code *******)&DAT_00000007;\n                      ppppppcVar32 = (code ******)0x0;\n                      do {\n                        ppppppcVar35 = *pppppppcVar34 + (int)ppppppcVar32 * 2;\n                        if (*(char *)(ppppppcVar35 + 1) == '\x01') {\n                          if (*(char *)ppppppcVar35 < '\0') {\n                            ppppppcVar35[1] = (code *****)((uint)ppppppcVar35[1] & 0xfffffbff);\n                          }\n                        }\n                        else if (*(char *)(ppppppcVar35 + 1) == '\x05') {\n                          *(char *)(ppppppcVar35 + 1) = '\a';\n                        }\n                        ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                      } while (ppppppcVar32 < pppppppcVar34[2]);\n                    }\n                  }\n                  pppppppcVar34[0x17] = (code ******)0x1;\n                  if (0 < (int)pppppppcVar34[0x13]) {\n                    uVar7 = 1;\n                  }\n                  *(byte *)(pppppppcVar34 + 0x16) =\n                       (byte)*(code *)(pppppppcVar34 + 0x16) & 0x9f | (byte)((uVar7 & 1) << 6);\n                }\n                ppppppcVar32 = (code ******)pppppppcVar34[0xd][3][7];\n                pppppppcVar34[0x12] = ppppppcVar32;\n                pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppppcVar32 * 3);\n                pppppppcVar33 = (code *******)FUN_000483e8(&ppppppcStack_204,pppppppcVar38);\n                pppppppcVar29 = pppppppcVar33;\n                pppppppcStack_208 = pppppppcVar33;\n                if (pppppppcVar33 == (code *******)0x0) {\n                  if ((0 < (int)pppppppcVar34[0x13]) && (0 < iStack_200)) {\n                    iVar18 = *(int *)(puVar41 + 0x23abc);\n                    iVar43 = *(int *)(puVar41 + 0x23abc);\n                    pppppppcVar29 = (code *******)0x0;\n                    do {\n                      pppppppcVar31 =\n                           (code *******)(*pppppppcVar34 + piStack_1fc[(int)pppppppcVar29] * 2);\n                      if (*(code *)(pppppppcVar31 + 1) == (code)0x4) {\n                        iVar37 = 0;\n                        piVar5 = piStack_1fc;\n                        if (iStack_200 < 1) {\nLAB_00056b8c:\n                          if (iStack_200 != iVar37) {\n                            ppppcVar40 = *pppppppcVar34[5][piStack_1fc[(int)pppppppcVar29] * 3 + 2];\n                            iVar37 = (*(code *)(iVar18 + 0x5ea8))(&ppppppcStack_204,ppppcVar40);\n                            if (iVar37 == 0) {\n                              pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppcVar40 * 3)\n                              ;\n                              pppppppcVar29 =\n                                   (code *******)\n                                   (*(code *)(iVar43 + 0x7f1c))(&ppppppcStack_204,pppppppcVar38);\n                              if (pppppppcVar29 != (code *******)0x0) goto LAB_00056cb8;\n                            }\n                          }\n                        }\n                        else {\n                          do {\n                            ppppppcVar32 = *pppppppcVar34 + *piVar5 * 2;\n                            if ((*(char *)(ppppppcVar32 + 1) == '\t') &&\n                               ((code ******)*ppppppcVar32 == *pppppppcVar31)) goto LAB_00056b8c;\n                            iVar37 = iVar37 + 1;\n                            piVar5 = piVar5 + 1;\n                          } while (iStack_200 != iVar37);\n                        }\n                      }\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1);\n                    } while ((int)pppppppcVar29 < iStack_200);\n                  }\n                  pppppppcVar31 = &ppppppcStack_204;\n                  pppppppcVar38 = pppppppcVar34;\n                  ppppppcVar32 = (code ******)\n                                 FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,0);\n                  pppppppcVar34[9] = ppppppcVar32;\n                  pppppppcVar29 = pppppppcStack_208;\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    if (((uint)ppppppcVar32[0xd] & 0x1000000) == 0) {\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar34[10] = ppppppcVar32;\n                    }\n                    else {\n                      pppppppcVar31 = &ppppppcStack_204;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,1);\n                      pppppppcVar34[10] = ppppppcVar32;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,2);\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar38 = pppppppcVar34;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,6);\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar29 = pppppppcStack_208;\n                      if (((pppppppcVar34[10] == (code ******)0x0) ||\n                          (pppppppcVar34[0xb] == (code ******)0x0)) ||\n                         (ppppppcVar32 == (code ******)0x0)) goto LAB_00056cb8;\n                    }\n                    (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                    pppppppcVar29 = pppppppcVar33;\n                  }\n                }\nLAB_00056cb8:\n                pppppppcStack_20c = pppppppcVar29;\n                FUN_0004b234(pppppppcVar3);\n                FUN_0004b2bc(&pppppppcStack_1f8);\n                pppppppcVar29 = pppppppcStack_20c;\n                if (pppppppcStack_20c != (code *******)0x0) {\n                  if (*(int *)(puVar41 + 0x23c78) != 0) {\n                    (**(code **)(puVar41 + 0x23df0))(pppppppcVar34 + 0x22);\n                  }\n                  FUN_0004b338(pppppppcVar34);\n                  *pppppppcVar3 = (code ******)0x0;\n                  pppppppcVar3[1] = (code ******)0x0;\n                  pppppppcVar29 = pppppppcStack_20c;\n                }\n                goto LAB_00056cfc;\n              }\n            }" (if "if") (parenthesized_expression "(pppppppcVar30 == (code *******)0x0)" (( "(") (binary_expression "pppppppcVar30 == (code *******)0x0" (identifier "pppppppcVar30") (== "==") (cast_expression "(code *******)0x0" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n              FUN_00046050(pppppppcVar29[0xd],*(int *)(puVar41 + 0x23abc) + 0x61b4);\n              pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23b40) + -0x4614);\n              pppppppcVar30 = (code *******)FUN_00046050(pppppppcVar29[0xd],pppppppcVar38);\n              if (pppppppcVar30 == (code *******)0x0) {\n                uVar7 = 0;\n                iVar18 = *(int *)(puVar41 + 0x23b40);\n                pppppppcVar33 = (code *******)0x0;\nLAB_00056744:\n                if ((code *******)pppppppcVar29[2] != pppppppcVar33) {\nLAB_00056750:\n                  if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                    pppppppcVar38 = pppppppcVar29;\n                    pppppppcVar31 = pppppppcVar33;\n                    pppppppcVar30 =\n                         (code *******)\n                         (*(code *)(iVar18 + -0x561c))\n                                   (&ppppppcStack_204,pppppppcVar29,pppppppcVar33,1);\n                    if (pppppppcVar30 != (code *******)0x0) goto LAB_00056168;\n                    if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                      (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                      uVar7 = 1;\n                    }\n                  }\n                  pppppppcVar33 = (code *******)((int)pppppppcVar33 + 1);\n                  goto LAB_00056744;\n                }\n                if (uVar7 != 0) {\n                  uVar7 = 0;\n                  pppppppcVar33 = (code *******)0x0;\n                  goto LAB_00056750;\n                }\n                if (((((uint)pppppppcVar3[7] & 0x8000000) == 0) &&\n                    (pppppppcVar3[6] != (code ******)0x0)) &&\n                   ((char)*(code *)(pppppppcVar29 + 0x16) < '\0')) {\n                  ppppppcVar32 = pppppppcVar29[2];\n                }\n                else {\n                  if (pppppppcVar29[0x13] == (code ******)0x0) goto LAB_000568f0;\n                  ppppppcVar32 = pppppppcVar29[2];\n                }\n                ppppppcVar35 = (code ******)\n                               (**(code **)(puVar41 + 0x23cf0))((int)ppppppcVar32 * 0xc);\n                pppppppcVar29[7] = ppppppcVar35;\n                if (ppppppcVar35 == (code ******)0x0) {\n                  pppppppcVar30 = (code *******)0xc;\n                  goto LAB_00056168;\n                }\n                if (ppppppcVar32 != (code ******)0x0) {\n                  iVar18 = 0;\n                  ppppppcVar32 = (code ******)0x0;\n                  do {\n                    puVar21 = (undefined1 *)((int)pppppppcVar29[7] + iVar18);\n                    *puVar21 = 0;\n                    puVar21[1] = 0;\n                    puVar21[2] = 0;\n                    puVar21[3] = 0;\n                    puVar21[4] = 0;\n                    puVar21[5] = 0;\n                    puVar21[6] = 0;\n                    puVar21[7] = 0;\n                    puVar21[8] = 0;\n                    puVar21[9] = 0;\n                    puVar21[10] = 0;\n                    puVar21[0xb] = 0;\n                    ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                    iVar18 = iVar18 + 0xc;\n                  } while (ppppppcVar32 < pppppppcVar29[2]);\n                  iVar18 = *(int *)(puVar41 + 0x23abc);\n                  if (pppppppcVar29[2] != (code ******)0x0) {\n                    iVar43 = 0;\n                    pppppppcStack_218 = (code *******)0x0;\n                    do {\n                      piVar5 = *(int **)((int)pppppppcVar29[6] + iVar43 + 8);\n                      if (0 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4)) {\n                        iVar37 = 0;\n                        do {\n                          pppppppcVar38 = pppppppcStack_218;\n                          iVar22 = (*(code *)(iVar18 + 0x6e30))\n                                             (pppppppcVar29[7] + *piVar5 * 3,pppppppcStack_218);\n                          pppppppcVar30 = (code *******)0xc;\n                          if (iVar22 == 0) goto LAB_00056168;\n                          iVar37 = iVar37 + 1;\n                          piVar5 = piVar5 + 1;\n                        } while (iVar37 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4));\n                      }\n                      pppppppcStack_218 = (code *******)((int)pppppppcStack_218 + 1);\n                      iVar43 = iVar43 + 0xc;\n                    } while (pppppppcStack_218 < pppppppcVar29[2]);\n                  }\n                }\nLAB_000568f0:\n                pppppppcStack_20c = (code *******)0x0;\n                if (((((uint)pppppppcVar34[0x16] & 0x20000000) != 0) && (uVar16 == 0)) &&\n                   (pppppppcVar3[5] == (code ******)0x0)) {\n                  if (pppppppcVar34[2] != (code ******)0x0) {\n                    pppppppcVar31 = (code *******)(*(int *)(puVar41 + 0x23754) + 0x6e4c);\n                    if (*(byte *)(*pppppppcVar34 + 1) < 0xd) {\n                    \n                    \n                      pppppppcVar29 =\n                           (code *******)\n                           (*(code *)(puVar41 +\n                                     (int)(pppppppcVar31[*(byte *)(*pppppppcVar34 + 1)] + 0xadc7)))\n                                     ();\n                      return pppppppcVar29;\n                    }\n                    (**(code **)(puVar41 + 0x23bc4))(0);\n                    if (uVar7 != 0) {\n                      pppppppcVar31 = (code *******)&DAT_00000007;\n                      ppppppcVar32 = (code ******)0x0;\n                      do {\n                        ppppppcVar35 = *pppppppcVar34 + (int)ppppppcVar32 * 2;\n                        if (*(char *)(ppppppcVar35 + 1) == '\x01') {\n                          if (*(char *)ppppppcVar35 < '\0') {\n                            ppppppcVar35[1] = (code *****)((uint)ppppppcVar35[1] & 0xfffffbff);\n                          }\n                        }\n                        else if (*(char *)(ppppppcVar35 + 1) == '\x05') {\n                          *(char *)(ppppppcVar35 + 1) = '\a';\n                        }\n                        ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                      } while (ppppppcVar32 < pppppppcVar34[2]);\n                    }\n                  }\n                  pppppppcVar34[0x17] = (code ******)0x1;\n                  if (0 < (int)pppppppcVar34[0x13]) {\n                    uVar7 = 1;\n                  }\n                  *(byte *)(pppppppcVar34 + 0x16) =\n                       (byte)*(code *)(pppppppcVar34 + 0x16) & 0x9f | (byte)((uVar7 & 1) << 6);\n                }\n                ppppppcVar32 = (code ******)pppppppcVar34[0xd][3][7];\n                pppppppcVar34[0x12] = ppppppcVar32;\n                pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppppcVar32 * 3);\n                pppppppcVar33 = (code *******)FUN_000483e8(&ppppppcStack_204,pppppppcVar38);\n                pppppppcVar29 = pppppppcVar33;\n                pppppppcStack_208 = pppppppcVar33;\n                if (pppppppcVar33 == (code *******)0x0) {\n                  if ((0 < (int)pppppppcVar34[0x13]) && (0 < iStack_200)) {\n                    iVar18 = *(int *)(puVar41 + 0x23abc);\n                    iVar43 = *(int *)(puVar41 + 0x23abc);\n                    pppppppcVar29 = (code *******)0x0;\n                    do {\n                      pppppppcVar31 =\n                           (code *******)(*pppppppcVar34 + piStack_1fc[(int)pppppppcVar29] * 2);\n                      if (*(code *)(pppppppcVar31 + 1) == (code)0x4) {\n                        iVar37 = 0;\n                        piVar5 = piStack_1fc;\n                        if (iStack_200 < 1) {\nLAB_00056b8c:\n                          if (iStack_200 != iVar37) {\n                            ppppcVar40 = *pppppppcVar34[5][piStack_1fc[(int)pppppppcVar29] * 3 + 2];\n                            iVar37 = (*(code *)(iVar18 + 0x5ea8))(&ppppppcStack_204,ppppcVar40);\n                            if (iVar37 == 0) {\n                              pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppcVar40 * 3)\n                              ;\n                              pppppppcVar29 =\n                                   (code *******)\n                                   (*(code *)(iVar43 + 0x7f1c))(&ppppppcStack_204,pppppppcVar38);\n                              if (pppppppcVar29 != (code *******)0x0) goto LAB_00056cb8;\n                            }\n                          }\n                        }\n                        else {\n                          do {\n                            ppppppcVar32 = *pppppppcVar34 + *piVar5 * 2;\n                            if ((*(char *)(ppppppcVar32 + 1) == '\t') &&\n                               ((code ******)*ppppppcVar32 == *pppppppcVar31)) goto LAB_00056b8c;\n                            iVar37 = iVar37 + 1;\n                            piVar5 = piVar5 + 1;\n                          } while (iStack_200 != iVar37);\n                        }\n                      }\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1);\n                    } while ((int)pppppppcVar29 < iStack_200);\n                  }\n                  pppppppcVar31 = &ppppppcStack_204;\n                  pppppppcVar38 = pppppppcVar34;\n                  ppppppcVar32 = (code ******)\n                                 FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,0);\n                  pppppppcVar34[9] = ppppppcVar32;\n                  pppppppcVar29 = pppppppcStack_208;\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    if (((uint)ppppppcVar32[0xd] & 0x1000000) == 0) {\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar34[10] = ppppppcVar32;\n                    }\n                    else {\n                      pppppppcVar31 = &ppppppcStack_204;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,1);\n                      pppppppcVar34[10] = ppppppcVar32;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,2);\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar38 = pppppppcVar34;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,6);\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar29 = pppppppcStack_208;\n                      if (((pppppppcVar34[10] == (code ******)0x0) ||\n                          (pppppppcVar34[0xb] == (code ******)0x0)) ||\n                         (ppppppcVar32 == (code ******)0x0)) goto LAB_00056cb8;\n                    }\n                    (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                    pppppppcVar29 = pppppppcVar33;\n                  }\n                }\nLAB_00056cb8:\n                pppppppcStack_20c = pppppppcVar29;\n                FUN_0004b234(pppppppcVar3);\n                FUN_0004b2bc(&pppppppcStack_1f8);\n                pppppppcVar29 = pppppppcStack_20c;\n                if (pppppppcStack_20c != (code *******)0x0) {\n                  if (*(int *)(puVar41 + 0x23c78) != 0) {\n                    (**(code **)(puVar41 + 0x23df0))(pppppppcVar34 + 0x22);\n                  }\n                  FUN_0004b338(pppppppcVar34);\n                  *pppppppcVar3 = (code ******)0x0;\n                  pppppppcVar3[1] = (code ******)0x0;\n                  pppppppcVar29 = pppppppcStack_20c;\n                }\n                goto LAB_00056cfc;\n              }\n            }" ({ "{") (expression_statement "FUN_00046050(pppppppcVar29[0xd],*(int *)(puVar41 + 0x23abc) + 0x61b4);" (call_expression "FUN_00046050(pppppppcVar29[0xd],*(int *)(puVar41 + 0x23abc) + 0x61b4)" (identifier "FUN_00046050") (argument_list "(pppppppcVar29[0xd],*(int *)(puVar41 + 0x23abc) + 0x61b4)" (( "(") (subscript_expression "pppppppcVar29[0xd]" (identifier "pppppppcVar29") ([ "[") (number_literal "0xd") (] "]")) (, ",") (binary_expression "*(int *)(puVar41 + 0x23abc) + 0x61b4" (pointer_expression "*(int *)(puVar41 + 0x23abc)" (* "*") (cast_expression "(int *)(puVar41 + 0x23abc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar41 + 0x23abc)" (( "(") (binary_expression "puVar41 + 0x23abc" (identifier "puVar41") (+ "+") (number_literal "0x23abc")) () ")")))) (+ "+") (number_literal "0x61b4")) () ")"))) (; ";")) (expression_statement "pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23b40) + -0x4614);" (assignment_expression "pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23b40) + -0x4614)" (identifier "pppppppcVar38") (= "=") (cast_expression "(code *******)(*(int *)(puVar41 + 0x23b40) + -0x4614)" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "(*(int *)(puVar41 + 0x23b40) + -0x4614)" (( "(") (binary_expression "*(int *)(puVar41 + 0x23b40) + -0x4614" (pointer_expression "*(int *)(puVar41 + 0x23b40)" (* "*") (cast_expression "(int *)(puVar41 + 0x23b40)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar41 + 0x23b40)" (( "(") (binary_expression "puVar41 + 0x23b40" (identifier "puVar41") (+ "+") (number_literal "0x23b40")) () ")")))) (+ "+") (number_literal "-0x4614")) () ")")))) (; ";")) (expression_statement "pppppppcVar30 = (code *******)FUN_00046050(pppppppcVar29[0xd],pppppppcVar38);" (assignment_expression "pppppppcVar30 = (code *******)FUN_00046050(pppppppcVar29[0xd],pppppppcVar38)" (identifier "pppppppcVar30") (= "=") (cast_expression "(code *******)FUN_00046050(pppppppcVar29[0xd],pppppppcVar38)" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (call_expression "FUN_00046050(pppppppcVar29[0xd],pppppppcVar38)" (identifier "FUN_00046050") (argument_list "(pppppppcVar29[0xd],pppppppcVar38)" (( "(") (subscript_expression "pppppppcVar29[0xd]" (identifier "pppppppcVar29") ([ "[") (number_literal "0xd") (] "]")) (, ",") (identifier "pppppppcVar38") () ")"))))) (; ";")) (if_statement "if (pppppppcVar30 == (code *******)0x0) {\n                uVar7 = 0;\n                iVar18 = *(int *)(puVar41 + 0x23b40);\n                pppppppcVar33 = (code *******)0x0;\nLAB_00056744:\n                if ((code *******)pppppppcVar29[2] != pppppppcVar33) {\nLAB_00056750:\n                  if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                    pppppppcVar38 = pppppppcVar29;\n                    pppppppcVar31 = pppppppcVar33;\n                    pppppppcVar30 =\n                         (code *******)\n                         (*(code *)(iVar18 + -0x561c))\n                                   (&ppppppcStack_204,pppppppcVar29,pppppppcVar33,1);\n                    if (pppppppcVar30 != (code *******)0x0) goto LAB_00056168;\n                    if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                      (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                      uVar7 = 1;\n                    }\n                  }\n                  pppppppcVar33 = (code *******)((int)pppppppcVar33 + 1);\n                  goto LAB_00056744;\n                }\n                if (uVar7 != 0) {\n                  uVar7 = 0;\n                  pppppppcVar33 = (code *******)0x0;\n                  goto LAB_00056750;\n                }\n                if (((((uint)pppppppcVar3[7] & 0x8000000) == 0) &&\n                    (pppppppcVar3[6] != (code ******)0x0)) &&\n                   ((char)*(code *)(pppppppcVar29 + 0x16) < '\0')) {\n                  ppppppcVar32 = pppppppcVar29[2];\n                }\n                else {\n                  if (pppppppcVar29[0x13] == (code ******)0x0) goto LAB_000568f0;\n                  ppppppcVar32 = pppppppcVar29[2];\n                }\n                ppppppcVar35 = (code ******)\n                               (**(code **)(puVar41 + 0x23cf0))((int)ppppppcVar32 * 0xc);\n                pppppppcVar29[7] = ppppppcVar35;\n                if (ppppppcVar35 == (code ******)0x0) {\n                  pppppppcVar30 = (code *******)0xc;\n                  goto LAB_00056168;\n                }\n                if (ppppppcVar32 != (code ******)0x0) {\n                  iVar18 = 0;\n                  ppppppcVar32 = (code ******)0x0;\n                  do {\n                    puVar21 = (undefined1 *)((int)pppppppcVar29[7] + iVar18);\n                    *puVar21 = 0;\n                    puVar21[1] = 0;\n                    puVar21[2] = 0;\n                    puVar21[3] = 0;\n                    puVar21[4] = 0;\n                    puVar21[5] = 0;\n                    puVar21[6] = 0;\n                    puVar21[7] = 0;\n                    puVar21[8] = 0;\n                    puVar21[9] = 0;\n                    puVar21[10] = 0;\n                    puVar21[0xb] = 0;\n                    ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                    iVar18 = iVar18 + 0xc;\n                  } while (ppppppcVar32 < pppppppcVar29[2]);\n                  iVar18 = *(int *)(puVar41 + 0x23abc);\n                  if (pppppppcVar29[2] != (code ******)0x0) {\n                    iVar43 = 0;\n                    pppppppcStack_218 = (code *******)0x0;\n                    do {\n                      piVar5 = *(int **)((int)pppppppcVar29[6] + iVar43 + 8);\n                      if (0 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4)) {\n                        iVar37 = 0;\n                        do {\n                          pppppppcVar38 = pppppppcStack_218;\n                          iVar22 = (*(code *)(iVar18 + 0x6e30))\n                                             (pppppppcVar29[7] + *piVar5 * 3,pppppppcStack_218);\n                          pppppppcVar30 = (code *******)0xc;\n                          if (iVar22 == 0) goto LAB_00056168;\n                          iVar37 = iVar37 + 1;\n                          piVar5 = piVar5 + 1;\n                        } while (iVar37 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4));\n                      }\n                      pppppppcStack_218 = (code *******)((int)pppppppcStack_218 + 1);\n                      iVar43 = iVar43 + 0xc;\n                    } while (pppppppcStack_218 < pppppppcVar29[2]);\n                  }\n                }\nLAB_000568f0:\n                pppppppcStack_20c = (code *******)0x0;\n                if (((((uint)pppppppcVar34[0x16] & 0x20000000) != 0) && (uVar16 == 0)) &&\n                   (pppppppcVar3[5] == (code ******)0x0)) {\n                  if (pppppppcVar34[2] != (code ******)0x0) {\n                    pppppppcVar31 = (code *******)(*(int *)(puVar41 + 0x23754) + 0x6e4c);\n                    if (*(byte *)(*pppppppcVar34 + 1) < 0xd) {\n                    \n                    \n                      pppppppcVar29 =\n                           (code *******)\n                           (*(code *)(puVar41 +\n                                     (int)(pppppppcVar31[*(byte *)(*pppppppcVar34 + 1)] + 0xadc7)))\n                                     ();\n                      return pppppppcVar29;\n                    }\n                    (**(code **)(puVar41 + 0x23bc4))(0);\n                    if (uVar7 != 0) {\n                      pppppppcVar31 = (code *******)&DAT_00000007;\n                      ppppppcVar32 = (code ******)0x0;\n                      do {\n                        ppppppcVar35 = *pppppppcVar34 + (int)ppppppcVar32 * 2;\n                        if (*(char *)(ppppppcVar35 + 1) == '\x01') {\n                          if (*(char *)ppppppcVar35 < '\0') {\n                            ppppppcVar35[1] = (code *****)((uint)ppppppcVar35[1] & 0xfffffbff);\n                          }\n                        }\n                        else if (*(char *)(ppppppcVar35 + 1) == '\x05') {\n                          *(char *)(ppppppcVar35 + 1) = '\a';\n                        }\n                        ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                      } while (ppppppcVar32 < pppppppcVar34[2]);\n                    }\n                  }\n                  pppppppcVar34[0x17] = (code ******)0x1;\n                  if (0 < (int)pppppppcVar34[0x13]) {\n                    uVar7 = 1;\n                  }\n                  *(byte *)(pppppppcVar34 + 0x16) =\n                       (byte)*(code *)(pppppppcVar34 + 0x16) & 0x9f | (byte)((uVar7 & 1) << 6);\n                }\n                ppppppcVar32 = (code ******)pppppppcVar34[0xd][3][7];\n                pppppppcVar34[0x12] = ppppppcVar32;\n                pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppppcVar32 * 3);\n                pppppppcVar33 = (code *******)FUN_000483e8(&ppppppcStack_204,pppppppcVar38);\n                pppppppcVar29 = pppppppcVar33;\n                pppppppcStack_208 = pppppppcVar33;\n                if (pppppppcVar33 == (code *******)0x0) {\n                  if ((0 < (int)pppppppcVar34[0x13]) && (0 < iStack_200)) {\n                    iVar18 = *(int *)(puVar41 + 0x23abc);\n                    iVar43 = *(int *)(puVar41 + 0x23abc);\n                    pppppppcVar29 = (code *******)0x0;\n                    do {\n                      pppppppcVar31 =\n                           (code *******)(*pppppppcVar34 + piStack_1fc[(int)pppppppcVar29] * 2);\n                      if (*(code *)(pppppppcVar31 + 1) == (code)0x4) {\n                        iVar37 = 0;\n                        piVar5 = piStack_1fc;\n                        if (iStack_200 < 1) {\nLAB_00056b8c:\n                          if (iStack_200 != iVar37) {\n                            ppppcVar40 = *pppppppcVar34[5][piStack_1fc[(int)pppppppcVar29] * 3 + 2];\n                            iVar37 = (*(code *)(iVar18 + 0x5ea8))(&ppppppcStack_204,ppppcVar40);\n                            if (iVar37 == 0) {\n                              pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppcVar40 * 3)\n                              ;\n                              pppppppcVar29 =\n                                   (code *******)\n                                   (*(code *)(iVar43 + 0x7f1c))(&ppppppcStack_204,pppppppcVar38);\n                              if (pppppppcVar29 != (code *******)0x0) goto LAB_00056cb8;\n                            }\n                          }\n                        }\n                        else {\n                          do {\n                            ppppppcVar32 = *pppppppcVar34 + *piVar5 * 2;\n                            if ((*(char *)(ppppppcVar32 + 1) == '\t') &&\n                               ((code ******)*ppppppcVar32 == *pppppppcVar31)) goto LAB_00056b8c;\n                            iVar37 = iVar37 + 1;\n                            piVar5 = piVar5 + 1;\n                          } while (iStack_200 != iVar37);\n                        }\n                      }\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1);\n                    } while ((int)pppppppcVar29 < iStack_200);\n                  }\n                  pppppppcVar31 = &ppppppcStack_204;\n                  pppppppcVar38 = pppppppcVar34;\n                  ppppppcVar32 = (code ******)\n                                 FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,0);\n                  pppppppcVar34[9] = ppppppcVar32;\n                  pppppppcVar29 = pppppppcStack_208;\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    if (((uint)ppppppcVar32[0xd] & 0x1000000) == 0) {\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar34[10] = ppppppcVar32;\n                    }\n                    else {\n                      pppppppcVar31 = &ppppppcStack_204;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,1);\n                      pppppppcVar34[10] = ppppppcVar32;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,2);\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar38 = pppppppcVar34;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,6);\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar29 = pppppppcStack_208;\n                      if (((pppppppcVar34[10] == (code ******)0x0) ||\n                          (pppppppcVar34[0xb] == (code ******)0x0)) ||\n                         (ppppppcVar32 == (code ******)0x0)) goto LAB_00056cb8;\n                    }\n                    (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                    pppppppcVar29 = pppppppcVar33;\n                  }\n                }\nLAB_00056cb8:\n                pppppppcStack_20c = pppppppcVar29;\n                FUN_0004b234(pppppppcVar3);\n                FUN_0004b2bc(&pppppppcStack_1f8);\n                pppppppcVar29 = pppppppcStack_20c;\n                if (pppppppcStack_20c != (code *******)0x0) {\n                  if (*(int *)(puVar41 + 0x23c78) != 0) {\n                    (**(code **)(puVar41 + 0x23df0))(pppppppcVar34 + 0x22);\n                  }\n                  FUN_0004b338(pppppppcVar34);\n                  *pppppppcVar3 = (code ******)0x0;\n                  pppppppcVar3[1] = (code ******)0x0;\n                  pppppppcVar29 = pppppppcStack_20c;\n                }\n                goto LAB_00056cfc;\n              }" (if "if") (parenthesized_expression "(pppppppcVar30 == (code *******)0x0)" (( "(") (binary_expression "pppppppcVar30 == (code *******)0x0" (identifier "pppppppcVar30") (== "==") (cast_expression "(code *******)0x0" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                uVar7 = 0;\n                iVar18 = *(int *)(puVar41 + 0x23b40);\n                pppppppcVar33 = (code *******)0x0;\nLAB_00056744:\n                if ((code *******)pppppppcVar29[2] != pppppppcVar33) {\nLAB_00056750:\n                  if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                    pppppppcVar38 = pppppppcVar29;\n                    pppppppcVar31 = pppppppcVar33;\n                    pppppppcVar30 =\n                         (code *******)\n                         (*(code *)(iVar18 + -0x561c))\n                                   (&ppppppcStack_204,pppppppcVar29,pppppppcVar33,1);\n                    if (pppppppcVar30 != (code *******)0x0) goto LAB_00056168;\n                    if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                      (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                      uVar7 = 1;\n                    }\n                  }\n                  pppppppcVar33 = (code *******)((int)pppppppcVar33 + 1);\n                  goto LAB_00056744;\n                }\n                if (uVar7 != 0) {\n                  uVar7 = 0;\n                  pppppppcVar33 = (code *******)0x0;\n                  goto LAB_00056750;\n                }\n                if (((((uint)pppppppcVar3[7] & 0x8000000) == 0) &&\n                    (pppppppcVar3[6] != (code ******)0x0)) &&\n                   ((char)*(code *)(pppppppcVar29 + 0x16) < '\0')) {\n                  ppppppcVar32 = pppppppcVar29[2];\n                }\n                else {\n                  if (pppppppcVar29[0x13] == (code ******)0x0) goto LAB_000568f0;\n                  ppppppcVar32 = pppppppcVar29[2];\n                }\n                ppppppcVar35 = (code ******)\n                               (**(code **)(puVar41 + 0x23cf0))((int)ppppppcVar32 * 0xc);\n                pppppppcVar29[7] = ppppppcVar35;\n                if (ppppppcVar35 == (code ******)0x0) {\n                  pppppppcVar30 = (code *******)0xc;\n                  goto LAB_00056168;\n                }\n                if (ppppppcVar32 != (code ******)0x0) {\n                  iVar18 = 0;\n                  ppppppcVar32 = (code ******)0x0;\n                  do {\n                    puVar21 = (undefined1 *)((int)pppppppcVar29[7] + iVar18);\n                    *puVar21 = 0;\n                    puVar21[1] = 0;\n                    puVar21[2] = 0;\n                    puVar21[3] = 0;\n                    puVar21[4] = 0;\n                    puVar21[5] = 0;\n                    puVar21[6] = 0;\n                    puVar21[7] = 0;\n                    puVar21[8] = 0;\n                    puVar21[9] = 0;\n                    puVar21[10] = 0;\n                    puVar21[0xb] = 0;\n                    ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                    iVar18 = iVar18 + 0xc;\n                  } while (ppppppcVar32 < pppppppcVar29[2]);\n                  iVar18 = *(int *)(puVar41 + 0x23abc);\n                  if (pppppppcVar29[2] != (code ******)0x0) {\n                    iVar43 = 0;\n                    pppppppcStack_218 = (code *******)0x0;\n                    do {\n                      piVar5 = *(int **)((int)pppppppcVar29[6] + iVar43 + 8);\n                      if (0 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4)) {\n                        iVar37 = 0;\n                        do {\n                          pppppppcVar38 = pppppppcStack_218;\n                          iVar22 = (*(code *)(iVar18 + 0x6e30))\n                                             (pppppppcVar29[7] + *piVar5 * 3,pppppppcStack_218);\n                          pppppppcVar30 = (code *******)0xc;\n                          if (iVar22 == 0) goto LAB_00056168;\n                          iVar37 = iVar37 + 1;\n                          piVar5 = piVar5 + 1;\n                        } while (iVar37 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4));\n                      }\n                      pppppppcStack_218 = (code *******)((int)pppppppcStack_218 + 1);\n                      iVar43 = iVar43 + 0xc;\n                    } while (pppppppcStack_218 < pppppppcVar29[2]);\n                  }\n                }\nLAB_000568f0:\n                pppppppcStack_20c = (code *******)0x0;\n                if (((((uint)pppppppcVar34[0x16] & 0x20000000) != 0) && (uVar16 == 0)) &&\n                   (pppppppcVar3[5] == (code ******)0x0)) {\n                  if (pppppppcVar34[2] != (code ******)0x0) {\n                    pppppppcVar31 = (code *******)(*(int *)(puVar41 + 0x23754) + 0x6e4c);\n                    if (*(byte *)(*pppppppcVar34 + 1) < 0xd) {\n                    \n                    \n                      pppppppcVar29 =\n                           (code *******)\n                           (*(code *)(puVar41 +\n                                     (int)(pppppppcVar31[*(byte *)(*pppppppcVar34 + 1)] + 0xadc7)))\n                                     ();\n                      return pppppppcVar29;\n                    }\n                    (**(code **)(puVar41 + 0x23bc4))(0);\n                    if (uVar7 != 0) {\n                      pppppppcVar31 = (code *******)&DAT_00000007;\n                      ppppppcVar32 = (code ******)0x0;\n                      do {\n                        ppppppcVar35 = *pppppppcVar34 + (int)ppppppcVar32 * 2;\n                        if (*(char *)(ppppppcVar35 + 1) == '\x01') {\n                          if (*(char *)ppppppcVar35 < '\0') {\n                            ppppppcVar35[1] = (code *****)((uint)ppppppcVar35[1] & 0xfffffbff);\n                          }\n                        }\n                        else if (*(char *)(ppppppcVar35 + 1) == '\x05') {\n                          *(char *)(ppppppcVar35 + 1) = '\a';\n                        }\n                        ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                      } while (ppppppcVar32 < pppppppcVar34[2]);\n                    }\n                  }\n                  pppppppcVar34[0x17] = (code ******)0x1;\n                  if (0 < (int)pppppppcVar34[0x13]) {\n                    uVar7 = 1;\n                  }\n                  *(byte *)(pppppppcVar34 + 0x16) =\n                       (byte)*(code *)(pppppppcVar34 + 0x16) & 0x9f | (byte)((uVar7 & 1) << 6);\n                }\n                ppppppcVar32 = (code ******)pppppppcVar34[0xd][3][7];\n                pppppppcVar34[0x12] = ppppppcVar32;\n                pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppppcVar32 * 3);\n                pppppppcVar33 = (code *******)FUN_000483e8(&ppppppcStack_204,pppppppcVar38);\n                pppppppcVar29 = pppppppcVar33;\n                pppppppcStack_208 = pppppppcVar33;\n                if (pppppppcVar33 == (code *******)0x0) {\n                  if ((0 < (int)pppppppcVar34[0x13]) && (0 < iStack_200)) {\n                    iVar18 = *(int *)(puVar41 + 0x23abc);\n                    iVar43 = *(int *)(puVar41 + 0x23abc);\n                    pppppppcVar29 = (code *******)0x0;\n                    do {\n                      pppppppcVar31 =\n                           (code *******)(*pppppppcVar34 + piStack_1fc[(int)pppppppcVar29] * 2);\n                      if (*(code *)(pppppppcVar31 + 1) == (code)0x4) {\n                        iVar37 = 0;\n                        piVar5 = piStack_1fc;\n                        if (iStack_200 < 1) {\nLAB_00056b8c:\n                          if (iStack_200 != iVar37) {\n                            ppppcVar40 = *pppppppcVar34[5][piStack_1fc[(int)pppppppcVar29] * 3 + 2];\n                            iVar37 = (*(code *)(iVar18 + 0x5ea8))(&ppppppcStack_204,ppppcVar40);\n                            if (iVar37 == 0) {\n                              pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppcVar40 * 3)\n                              ;\n                              pppppppcVar29 =\n                                   (code *******)\n                                   (*(code *)(iVar43 + 0x7f1c))(&ppppppcStack_204,pppppppcVar38);\n                              if (pppppppcVar29 != (code *******)0x0) goto LAB_00056cb8;\n                            }\n                          }\n                        }\n                        else {\n                          do {\n                            ppppppcVar32 = *pppppppcVar34 + *piVar5 * 2;\n                            if ((*(char *)(ppppppcVar32 + 1) == '\t') &&\n                               ((code ******)*ppppppcVar32 == *pppppppcVar31)) goto LAB_00056b8c;\n                            iVar37 = iVar37 + 1;\n                            piVar5 = piVar5 + 1;\n                          } while (iStack_200 != iVar37);\n                        }\n                      }\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1);\n                    } while ((int)pppppppcVar29 < iStack_200);\n                  }\n                  pppppppcVar31 = &ppppppcStack_204;\n                  pppppppcVar38 = pppppppcVar34;\n                  ppppppcVar32 = (code ******)\n                                 FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,0);\n                  pppppppcVar34[9] = ppppppcVar32;\n                  pppppppcVar29 = pppppppcStack_208;\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    if (((uint)ppppppcVar32[0xd] & 0x1000000) == 0) {\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar34[10] = ppppppcVar32;\n                    }\n                    else {\n                      pppppppcVar31 = &ppppppcStack_204;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,1);\n                      pppppppcVar34[10] = ppppppcVar32;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,2);\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar38 = pppppppcVar34;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,6);\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar29 = pppppppcStack_208;\n                      if (((pppppppcVar34[10] == (code ******)0x0) ||\n                          (pppppppcVar34[0xb] == (code ******)0x0)) ||\n                         (ppppppcVar32 == (code ******)0x0)) goto LAB_00056cb8;\n                    }\n                    (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                    pppppppcVar29 = pppppppcVar33;\n                  }\n                }\nLAB_00056cb8:\n                pppppppcStack_20c = pppppppcVar29;\n                FUN_0004b234(pppppppcVar3);\n                FUN_0004b2bc(&pppppppcStack_1f8);\n                pppppppcVar29 = pppppppcStack_20c;\n                if (pppppppcStack_20c != (code *******)0x0) {\n                  if (*(int *)(puVar41 + 0x23c78) != 0) {\n                    (**(code **)(puVar41 + 0x23df0))(pppppppcVar34 + 0x22);\n                  }\n                  FUN_0004b338(pppppppcVar34);\n                  *pppppppcVar3 = (code ******)0x0;\n                  pppppppcVar3[1] = (code ******)0x0;\n                  pppppppcVar29 = pppppppcStack_20c;\n                }\n                goto LAB_00056cfc;\n              }" ({ "{") (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" (identifier "uVar7") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar18 = *(int *)(puVar41 + 0x23b40);" (assignment_expression "iVar18 = *(int *)(puVar41 + 0x23b40)" (identifier "iVar18") (= "=") (pointer_expression "*(int *)(puVar41 + 0x23b40)" (* "*") (cast_expression "(int *)(puVar41 + 0x23b40)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar41 + 0x23b40)" (( "(") (binary_expression "puVar41 + 0x23b40" (identifier "puVar41") (+ "+") (number_literal "0x23b40")) () ")"))))) (; ";")) (expression_statement "pppppppcVar33 = (code *******)0x0;" (assignment_expression "pppppppcVar33 = (code *******)0x0" (identifier "pppppppcVar33") (= "=") (cast_expression "(code *******)0x0" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) (; ";")) (labeled_statement "LAB_00056744:\n                if ((code *******)pppppppcVar29[2] != pppppppcVar33) {\nLAB_00056750:\n                  if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                    pppppppcVar38 = pppppppcVar29;\n                    pppppppcVar31 = pppppppcVar33;\n                    pppppppcVar30 =\n                         (code *******)\n                         (*(code *)(iVar18 + -0x561c))\n                                   (&ppppppcStack_204,pppppppcVar29,pppppppcVar33,1);\n                    if (pppppppcVar30 != (code *******)0x0) goto LAB_00056168;\n                    if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                      (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                      uVar7 = 1;\n                    }\n                  }\n                  pppppppcVar33 = (code *******)((int)pppppppcVar33 + 1);\n                  goto LAB_00056744;\n                }" (statement_identifier "LAB_00056744") (: ":") (if_statement "if ((code *******)pppppppcVar29[2] != pppppppcVar33) {\nLAB_00056750:\n                  if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                    pppppppcVar38 = pppppppcVar29;\n                    pppppppcVar31 = pppppppcVar33;\n                    pppppppcVar30 =\n                         (code *******)\n                         (*(code *)(iVar18 + -0x561c))\n                                   (&ppppppcStack_204,pppppppcVar29,pppppppcVar33,1);\n                    if (pppppppcVar30 != (code *******)0x0) goto LAB_00056168;\n                    if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                      (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                      uVar7 = 1;\n                    }\n                  }\n                  pppppppcVar33 = (code *******)((int)pppppppcVar33 + 1);\n                  goto LAB_00056744;\n                }" (if "if") (parenthesized_expression "((code *******)pppppppcVar29[2] != pppppppcVar33)" (( "(") (binary_expression "(code *******)pppppppcVar29[2] != pppppppcVar33" (cast_expression "(code *******)pppppppcVar29[2]" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (subscript_expression "pppppppcVar29[2]" (identifier "pppppppcVar29") ([ "[") (number_literal "2") (] "]"))) (!= "!=") (identifier "pppppppcVar33")) () ")")) (compound_statement "{\nLAB_00056750:\n                  if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                    pppppppcVar38 = pppppppcVar29;\n                    pppppppcVar31 = pppppppcVar33;\n                    pppppppcVar30 =\n                         (code *******)\n                         (*(code *)(iVar18 + -0x561c))\n                                   (&ppppppcStack_204,pppppppcVar29,pppppppcVar33,1);\n                    if (pppppppcVar30 != (code *******)0x0) goto LAB_00056168;\n                    if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                      (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                      uVar7 = 1;\n                    }\n                  }\n                  pppppppcVar33 = (code *******)((int)pppppppcVar33 + 1);\n                  goto LAB_00056744;\n                }" ({ "{") (labeled_statement "LAB_00056750:\n                  if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                    pppppppcVar38 = pppppppcVar29;\n                    pppppppcVar31 = pppppppcVar33;\n                    pppppppcVar30 =\n                         (code *******)\n                         (*(code *)(iVar18 + -0x561c))\n                                   (&ppppppcStack_204,pppppppcVar29,pppppppcVar33,1);\n                    if (pppppppcVar30 != (code *******)0x0) goto LAB_00056168;\n                    if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                      (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                      uVar7 = 1;\n                    }\n                  }" (statement_identifier "LAB_00056750") (: ":") (if_statement "if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                    pppppppcVar38 = pppppppcVar29;\n                    pppppppcVar31 = pppppppcVar33;\n                    pppppppcVar30 =\n                         (code *******)\n                         (*(code *)(iVar18 + -0x561c))\n                                   (&ppppppcStack_204,pppppppcVar29,pppppppcVar33,1);\n                    if (pppppppcVar30 != (code *******)0x0) goto LAB_00056168;\n                    if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                      (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                      uVar7 = 1;\n                    }\n                  }" (if "if") (parenthesized_expression "(pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0)" (( "(") (binary_expression "pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0" (subscript_expression "pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1]" (subscript_expression "pppppppcVar29[6]" (identifier "pppppppcVar29") ([ "[") (number_literal "6") (] "]")) ([ "[") (binary_expression "(int)pppppppcVar33 * 3 + 1" (binary_expression "(int)pppppppcVar33 * 3" (cast_expression "(int)pppppppcVar33" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppcVar33")) (* "*") (number_literal "3")) (+ "+") (number_literal "1")) (] "]")) (== "==") (cast_expression "(code *****)0x0" (( "(") (type_descriptor "code *****" (type_identifier "code") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                    pppppppcVar38 = pppppppcVar29;\n                    pppppppcVar31 = pppppppcVar33;\n                    pppppppcVar30 =\n                         (code *******)\n                         (*(code *)(iVar18 + -0x561c))\n                                   (&ppppppcStack_204,pppppppcVar29,pppppppcVar33,1);\n                    if (pppppppcVar30 != (code *******)0x0) goto LAB_00056168;\n                    if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                      (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                      uVar7 = 1;\n                    }\n                  }" ({ "{") (expression_statement "pppppppcVar38 = pppppppcVar29;" (assignment_expression "pppppppcVar38 = pppppppcVar29" (identifier "pppppppcVar38") (= "=") (identifier "pppppppcVar29")) (; ";")) (expression_statement "pppppppcVar31 = pppppppcVar33;" (assignment_expression "pppppppcVar31 = pppppppcVar33" (identifier "pppppppcVar31") (= "=") (identifier "pppppppcVar33")) (; ";")) (expression_statement "pppppppcVar30 =\n                         (code *******)\n                         (*(code *)(iVar18 + -0x561c))\n                                   (&ppppppcStack_204,pppppppcVar29,pppppppcVar33,1);" (assignment_expression "pppppppcVar30 =\n                         (code *******)\n                         (*(code *)(iVar18 + -0x561c))\n                                   (&ppppppcStack_204,pppppppcVar29,pppppppcVar33,1)" (identifier "pppppppcVar30") (= "=") (cast_expression "(code *******)\n                         (*(code *)(iVar18 + -0x561c))\n                                   (&ppppppcStack_204,pppppppcVar29,pppppppcVar33,1)" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (call_expression "(*(code *)(iVar18 + -0x561c))\n                                   (&ppppppcStack_204,pppppppcVar29,pppppppcVar33,1)" (parenthesized_expression "(*(code *)(iVar18 + -0x561c))" (( "(") (pointer_expression "*(code *)(iVar18 + -0x561c)" (* "*") (cast_expression "(code *)(iVar18 + -0x561c)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + -0x561c)" (( "(") (binary_expression "iVar18 + -0x561c" (identifier "iVar18") (+ "+") (number_literal "-0x561c")) () ")")))) () ")")) (argument_list "(&ppppppcStack_204,pppppppcVar29,pppppppcVar33,1)" (( "(") (pointer_expression "&ppppppcStack_204" (& "&") (identifier "ppppppcStack_204")) (, ",") (identifier "pppppppcVar29") (, ",") (identifier "pppppppcVar33") (, ",") (number_literal "1") () ")"))))) (; ";")) (if_statement "if (pppppppcVar30 != (code *******)0x0) goto LAB_00056168;" (if "if") (parenthesized_expression "(pppppppcVar30 != (code *******)0x0)" (( "(") (binary_expression "pppppppcVar30 != (code *******)0x0" (identifier "pppppppcVar30") (!= "!=") (cast_expression "(code *******)0x0" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00056168;" (goto "goto") (statement_identifier "LAB_00056168") (; ";"))) (if_statement "if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {\n                      (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                      uVar7 = 1;\n                    }" (if "if") (parenthesized_expression "(pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0)" (( "(") (binary_expression "pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0" (subscript_expression "pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1]" (subscript_expression "pppppppcVar29[6]" (identifier "pppppppcVar29") ([ "[") (number_literal "6") (] "]")) ([ "[") (binary_expression "(int)pppppppcVar33 * 3 + 1" (binary_expression "(int)pppppppcVar33 * 3" (cast_expression "(int)pppppppcVar33" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppcVar33")) (* "*") (number_literal "3")) (+ "+") (number_literal "1")) (] "]")) (== "==") (cast_expression "(code *****)0x0" (( "(") (type_descriptor "code *****" (type_identifier "code") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                      (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                      uVar7 = 1;\n                    }" ({ "{") (expression_statement "(**(code **)(puVar41 + 0x23dc0))(piStack_1fc);" (call_expression "(**(code **)(puVar41 + 0x23dc0))(piStack_1fc)" (parenthesized_expression "(**(code **)(puVar41 + 0x23dc0))" (( "(") (pointer_expression "**(code **)(puVar41 + 0x23dc0)" (* "*") (pointer_expression "*(code **)(puVar41 + 0x23dc0)" (* "*") (cast_expression "(code **)(puVar41 + 0x23dc0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar41 + 0x23dc0)" (( "(") (binary_expression "puVar41 + 0x23dc0" (identifier "puVar41") (+ "+") (number_literal "0x23dc0")) () ")"))))) () ")")) (argument_list "(piStack_1fc)" (( "(") (identifier "piStack_1fc") () ")"))) (; ";")) (expression_statement "uVar7 = 1;" (assignment_expression "uVar7 = 1" (identifier "uVar7") (= "=") (number_literal "1")) (; ";")) (} "}"))) (} "}")))) (expression_statement "pppppppcVar33 = (code *******)((int)pppppppcVar33 + 1);" (assignment_expression "pppppppcVar33 = (code *******)((int)pppppppcVar33 + 1)" (identifier "pppppppcVar33") (= "=") (cast_expression "(code *******)((int)pppppppcVar33 + 1)" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "((int)pppppppcVar33 + 1)" (( "(") (binary_expression "(int)pppppppcVar33 + 1" (cast_expression "(int)pppppppcVar33" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppcVar33")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (goto_statement "goto LAB_00056744;" (goto "goto") (statement_identifier "LAB_00056744") (; ";")) (} "}")))) (if_statement "if (uVar7 != 0) {\n                  uVar7 = 0;\n                  pppppppcVar33 = (code *******)0x0;\n                  goto LAB_00056750;\n                }" (if "if") (parenthesized_expression "(uVar7 != 0)" (( "(") (binary_expression "uVar7 != 0" (identifier "uVar7") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                  uVar7 = 0;\n                  pppppppcVar33 = (code *******)0x0;\n                  goto LAB_00056750;\n                }" ({ "{") (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" (identifier "uVar7") (= "=") (number_literal "0")) (; ";")) (expression_statement "pppppppcVar33 = (code *******)0x0;" (assignment_expression "pppppppcVar33 = (code *******)0x0" (identifier "pppppppcVar33") (= "=") (cast_expression "(code *******)0x0" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) (; ";")) (goto_statement "goto LAB_00056750;" (goto "goto") (statement_identifier "LAB_00056750") (; ";")) (} "}"))) (if_statement "if (((((uint)pppppppcVar3[7] & 0x8000000) == 0) &&\n                    (pppppppcVar3[6] != (code ******)0x0)) &&\n                   ((char)*(code *)(pppppppcVar29 + 0x16) < '\0')) {\n                  ppppppcVar32 = pppppppcVar29[2];\n                }\n                else {\n                  if (pppppppcVar29[0x13] == (code ******)0x0) goto LAB_000568f0;\n                  ppppppcVar32 = pppppppcVar29[2];\n                }" (if "if") (parenthesized_expression "(((((uint)pppppppcVar3[7] & 0x8000000) == 0) &&\n                    (pppppppcVar3[6] != (code ******)0x0)) &&\n                   ((char)*(code *)(pppppppcVar29 + 0x16) < '\0'))" (( "(") (binary_expression "((((uint)pppppppcVar3[7] & 0x8000000) == 0) &&\n                    (pppppppcVar3[6] != (code ******)0x0)) &&\n                   ((char)*(code *)(pppppppcVar29 + 0x16) < '\0')" (parenthesized_expression "((((uint)pppppppcVar3[7] & 0x8000000) == 0) &&\n                    (pppppppcVar3[6] != (code ******)0x0))" (( "(") (binary_expression "(((uint)pppppppcVar3[7] & 0x8000000) == 0) &&\n                    (pppppppcVar3[6] != (code ******)0x0)" (parenthesized_expression "(((uint)pppppppcVar3[7] & 0x8000000) == 0)" (( "(") (binary_expression "((uint)pppppppcVar3[7] & 0x8000000) == 0" (parenthesized_expression "((uint)pppppppcVar3[7] & 0x8000000)" (( "(") (binary_expression "(uint)pppppppcVar3[7] & 0x8000000" (cast_expression "(uint)pppppppcVar3[7]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "pppppppcVar3[7]" (identifier "pppppppcVar3") ([ "[") (number_literal "7") (] "]"))) (& "&") (number_literal "0x8000000")) () ")")) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(pppppppcVar3[6] != (code ******)0x0)" (( "(") (binary_expression "pppppppcVar3[6] != (code ******)0x0" (subscript_expression "pppppppcVar3[6]" (identifier "pppppppcVar3") ([ "[") (number_literal "6") (] "]")) (!= "!=") (cast_expression "(code ******)0x0" (( "(") (type_descriptor "code ******" (type_identifier "code") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((char)*(code *)(pppppppcVar29 + 0x16) < '\0')" (( "(") (binary_expression "(char)*(code *)(pppppppcVar29 + 0x16) < '\0'" (cast_expression "(char)*(code *)(pppppppcVar29 + 0x16)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (pointer_expression "*(code *)(pppppppcVar29 + 0x16)" (* "*") (cast_expression "(code *)(pppppppcVar29 + 0x16)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pppppppcVar29 + 0x16)" (( "(") (binary_expression "pppppppcVar29 + 0x16" (identifier "pppppppcVar29") (+ "+") (number_literal "0x16")) () ")"))))) (< "<") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (compound_statement "{\n                  ppppppcVar32 = pppppppcVar29[2];\n                }" ({ "{") (expression_statement "ppppppcVar32 = pppppppcVar29[2];" (assignment_expression "ppppppcVar32 = pppppppcVar29[2]" (identifier "ppppppcVar32") (= "=") (subscript_expression "pppppppcVar29[2]" (identifier "pppppppcVar29") ([ "[") (number_literal "2") (] "]"))) (; ";")) (} "}")) (else_clause "else {\n                  if (pppppppcVar29[0x13] == (code ******)0x0) goto LAB_000568f0;\n                  ppppppcVar32 = pppppppcVar29[2];\n                }" (else "else") (compound_statement "{\n                  if (pppppppcVar29[0x13] == (code ******)0x0) goto LAB_000568f0;\n                  ppppppcVar32 = pppppppcVar29[2];\n                }" ({ "{") (if_statement "if (pppppppcVar29[0x13] == (code ******)0x0) goto LAB_000568f0;" (if "if") (parenthesized_expression "(pppppppcVar29[0x13] == (code ******)0x0)" (( "(") (binary_expression "pppppppcVar29[0x13] == (code ******)0x0" (subscript_expression "pppppppcVar29[0x13]" (identifier "pppppppcVar29") ([ "[") (number_literal "0x13") (] "]")) (== "==") (cast_expression "(code ******)0x0" (( "(") (type_descriptor "code ******" (type_identifier "code") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_000568f0;" (goto "goto") (statement_identifier "LAB_000568f0") (; ";"))) (expression_statement "ppppppcVar32 = pppppppcVar29[2];" (assignment_expression "ppppppcVar32 = pppppppcVar29[2]" (identifier "ppppppcVar32") (= "=") (subscript_expression "pppppppcVar29[2]" (identifier "pppppppcVar29") ([ "[") (number_literal "2") (] "]"))) (; ";")) (} "}")))) (expression_statement "ppppppcVar35 = (code ******)\n                               (**(code **)(puVar41 + 0x23cf0))((int)ppppppcVar32 * 0xc);" (assignment_expression "ppppppcVar35 = (code ******)\n                               (**(code **)(puVar41 + 0x23cf0))((int)ppppppcVar32 * 0xc)" (identifier "ppppppcVar35") (= "=") (cast_expression "(code ******)\n                               (**(code **)(puVar41 + 0x23cf0))((int)ppppppcVar32 * 0xc)" (( "(") (type_descriptor "code ******" (type_identifier "code") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (call_expression "(**(code **)(puVar41 + 0x23cf0))((int)ppppppcVar32 * 0xc)" (parenthesized_expression "(**(code **)(puVar41 + 0x23cf0))" (( "(") (pointer_expression "**(code **)(puVar41 + 0x23cf0)" (* "*") (pointer_expression "*(code **)(puVar41 + 0x23cf0)" (* "*") (cast_expression "(code **)(puVar41 + 0x23cf0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar41 + 0x23cf0)" (( "(") (binary_expression "puVar41 + 0x23cf0" (identifier "puVar41") (+ "+") (number_literal "0x23cf0")) () ")"))))) () ")")) (argument_list "((int)ppppppcVar32 * 0xc)" (( "(") (binary_expression "(int)ppppppcVar32 * 0xc" (cast_expression "(int)ppppppcVar32" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppppppcVar32")) (* "*") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "pppppppcVar29[7] = ppppppcVar35;" (assignment_expression "pppppppcVar29[7] = ppppppcVar35" (subscript_expression "pppppppcVar29[7]" (identifier "pppppppcVar29") ([ "[") (number_literal "7") (] "]")) (= "=") (identifier "ppppppcVar35")) (; ";")) (if_statement "if (ppppppcVar35 == (code ******)0x0) {\n                  pppppppcVar30 = (code *******)0xc;\n                  goto LAB_00056168;\n                }" (if "if") (parenthesized_expression "(ppppppcVar35 == (code ******)0x0)" (( "(") (binary_expression "ppppppcVar35 == (code ******)0x0" (identifier "ppppppcVar35") (== "==") (cast_expression "(code ******)0x0" (( "(") (type_descriptor "code ******" (type_identifier "code") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                  pppppppcVar30 = (code *******)0xc;\n                  goto LAB_00056168;\n                }" ({ "{") (expression_statement "pppppppcVar30 = (code *******)0xc;" (assignment_expression "pppppppcVar30 = (code *******)0xc" (identifier "pppppppcVar30") (= "=") (cast_expression "(code *******)0xc" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0xc"))) (; ";")) (goto_statement "goto LAB_00056168;" (goto "goto") (statement_identifier "LAB_00056168") (; ";")) (} "}"))) (if_statement "if (ppppppcVar32 != (code ******)0x0) {\n                  iVar18 = 0;\n                  ppppppcVar32 = (code ******)0x0;\n                  do {\n                    puVar21 = (undefined1 *)((int)pppppppcVar29[7] + iVar18);\n                    *puVar21 = 0;\n                    puVar21[1] = 0;\n                    puVar21[2] = 0;\n                    puVar21[3] = 0;\n                    puVar21[4] = 0;\n                    puVar21[5] = 0;\n                    puVar21[6] = 0;\n                    puVar21[7] = 0;\n                    puVar21[8] = 0;\n                    puVar21[9] = 0;\n                    puVar21[10] = 0;\n                    puVar21[0xb] = 0;\n                    ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                    iVar18 = iVar18 + 0xc;\n                  } while (ppppppcVar32 < pppppppcVar29[2]);\n                  iVar18 = *(int *)(puVar41 + 0x23abc);\n                  if (pppppppcVar29[2] != (code ******)0x0) {\n                    iVar43 = 0;\n                    pppppppcStack_218 = (code *******)0x0;\n                    do {\n                      piVar5 = *(int **)((int)pppppppcVar29[6] + iVar43 + 8);\n                      if (0 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4)) {\n                        iVar37 = 0;\n                        do {\n                          pppppppcVar38 = pppppppcStack_218;\n                          iVar22 = (*(code *)(iVar18 + 0x6e30))\n                                             (pppppppcVar29[7] + *piVar5 * 3,pppppppcStack_218);\n                          pppppppcVar30 = (code *******)0xc;\n                          if (iVar22 == 0) goto LAB_00056168;\n                          iVar37 = iVar37 + 1;\n                          piVar5 = piVar5 + 1;\n                        } while (iVar37 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4));\n                      }\n                      pppppppcStack_218 = (code *******)((int)pppppppcStack_218 + 1);\n                      iVar43 = iVar43 + 0xc;\n                    } while (pppppppcStack_218 < pppppppcVar29[2]);\n                  }\n                }" (if "if") (parenthesized_expression "(ppppppcVar32 != (code ******)0x0)" (( "(") (binary_expression "ppppppcVar32 != (code ******)0x0" (identifier "ppppppcVar32") (!= "!=") (cast_expression "(code ******)0x0" (( "(") (type_descriptor "code ******" (type_identifier "code") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                  iVar18 = 0;\n                  ppppppcVar32 = (code ******)0x0;\n                  do {\n                    puVar21 = (undefined1 *)((int)pppppppcVar29[7] + iVar18);\n                    *puVar21 = 0;\n                    puVar21[1] = 0;\n                    puVar21[2] = 0;\n                    puVar21[3] = 0;\n                    puVar21[4] = 0;\n                    puVar21[5] = 0;\n                    puVar21[6] = 0;\n                    puVar21[7] = 0;\n                    puVar21[8] = 0;\n                    puVar21[9] = 0;\n                    puVar21[10] = 0;\n                    puVar21[0xb] = 0;\n                    ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                    iVar18 = iVar18 + 0xc;\n                  } while (ppppppcVar32 < pppppppcVar29[2]);\n                  iVar18 = *(int *)(puVar41 + 0x23abc);\n                  if (pppppppcVar29[2] != (code ******)0x0) {\n                    iVar43 = 0;\n                    pppppppcStack_218 = (code *******)0x0;\n                    do {\n                      piVar5 = *(int **)((int)pppppppcVar29[6] + iVar43 + 8);\n                      if (0 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4)) {\n                        iVar37 = 0;\n                        do {\n                          pppppppcVar38 = pppppppcStack_218;\n                          iVar22 = (*(code *)(iVar18 + 0x6e30))\n                                             (pppppppcVar29[7] + *piVar5 * 3,pppppppcStack_218);\n                          pppppppcVar30 = (code *******)0xc;\n                          if (iVar22 == 0) goto LAB_00056168;\n                          iVar37 = iVar37 + 1;\n                          piVar5 = piVar5 + 1;\n                        } while (iVar37 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4));\n                      }\n                      pppppppcStack_218 = (code *******)((int)pppppppcStack_218 + 1);\n                      iVar43 = iVar43 + 0xc;\n                    } while (pppppppcStack_218 < pppppppcVar29[2]);\n                  }\n                }" ({ "{") (expression_statement "iVar18 = 0;" (assignment_expression "iVar18 = 0" (identifier "iVar18") (= "=") (number_literal "0")) (; ";")) (expression_statement "ppppppcVar32 = (code ******)0x0;" (assignment_expression "ppppppcVar32 = (code ******)0x0" (identifier "ppppppcVar32") (= "=") (cast_expression "(code ******)0x0" (( "(") (type_descriptor "code ******" (type_identifier "code") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) (; ";")) (do_statement "do {\n                    puVar21 = (undefined1 *)((int)pppppppcVar29[7] + iVar18);\n                    *puVar21 = 0;\n                    puVar21[1] = 0;\n                    puVar21[2] = 0;\n                    puVar21[3] = 0;\n                    puVar21[4] = 0;\n                    puVar21[5] = 0;\n                    puVar21[6] = 0;\n                    puVar21[7] = 0;\n                    puVar21[8] = 0;\n                    puVar21[9] = 0;\n                    puVar21[10] = 0;\n                    puVar21[0xb] = 0;\n                    ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                    iVar18 = iVar18 + 0xc;\n                  } while (ppppppcVar32 < pppppppcVar29[2]);" (do "do") (compound_statement "{\n                    puVar21 = (undefined1 *)((int)pppppppcVar29[7] + iVar18);\n                    *puVar21 = 0;\n                    puVar21[1] = 0;\n                    puVar21[2] = 0;\n                    puVar21[3] = 0;\n                    puVar21[4] = 0;\n                    puVar21[5] = 0;\n                    puVar21[6] = 0;\n                    puVar21[7] = 0;\n                    puVar21[8] = 0;\n                    puVar21[9] = 0;\n                    puVar21[10] = 0;\n                    puVar21[0xb] = 0;\n                    ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                    iVar18 = iVar18 + 0xc;\n                  }" ({ "{") (expression_statement "puVar21 = (undefined1 *)((int)pppppppcVar29[7] + iVar18);" (assignment_expression "puVar21 = (undefined1 *)((int)pppppppcVar29[7] + iVar18)" (identifier "puVar21") (= "=") (cast_expression "(undefined1 *)((int)pppppppcVar29[7] + iVar18)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pppppppcVar29[7] + iVar18)" (( "(") (binary_expression "(int)pppppppcVar29[7] + iVar18" (cast_expression "(int)pppppppcVar29[7]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "pppppppcVar29[7]" (identifier "pppppppcVar29") ([ "[") (number_literal "7") (] "]"))) (+ "+") (identifier "iVar18")) () ")")))) (; ";")) (expression_statement "*puVar21 = 0;" (assignment_expression "*puVar21 = 0" (pointer_expression "*puVar21" (* "*") (identifier "puVar21")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar21[1] = 0;" (assignment_expression "puVar21[1] = 0" (subscript_expression "puVar21[1]" (identifier "puVar21") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar21[2] = 0;" (assignment_expression "puVar21[2] = 0" (subscript_expression "puVar21[2]" (identifier "puVar21") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar21[3] = 0;" (assignment_expression "puVar21[3] = 0" (subscript_expression "puVar21[3]" (identifier "puVar21") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar21[4] = 0;" (assignment_expression "puVar21[4] = 0" (subscript_expression "puVar21[4]" (identifier "puVar21") ([ "[") (number_literal "4") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar21[5] = 0;" (assignment_expression "puVar21[5] = 0" (subscript_expression "puVar21[5]" (identifier "puVar21") ([ "[") (number_literal "5") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar21[6] = 0;" (assignment_expression "puVar21[6] = 0" (subscript_expression "puVar21[6]" (identifier "puVar21") ([ "[") (number_literal "6") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar21[7] = 0;" (assignment_expression "puVar21[7] = 0" (subscript_expression "puVar21[7]" (identifier "puVar21") ([ "[") (number_literal "7") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar21[8] = 0;" (assignment_expression "puVar21[8] = 0" (subscript_expression "puVar21[8]" (identifier "puVar21") ([ "[") (number_literal "8") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar21[9] = 0;" (assignment_expression "puVar21[9] = 0" (subscript_expression "puVar21[9]" (identifier "puVar21") ([ "[") (number_literal "9") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar21[10] = 0;" (assignment_expression "puVar21[10] = 0" (subscript_expression "puVar21[10]" (identifier "puVar21") ([ "[") (number_literal "10") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar21[0xb] = 0;" (assignment_expression "puVar21[0xb] = 0" (subscript_expression "puVar21[0xb]" (identifier "puVar21") ([ "[") (number_literal "0xb") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);" (assignment_expression "ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1)" (identifier "ppppppcVar32") (= "=") (cast_expression "(code ******)((int)ppppppcVar32 + 1)" (( "(") (type_descriptor "code ******" (type_identifier "code") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (parenthesized_expression "((int)ppppppcVar32 + 1)" (( "(") (binary_expression "(int)ppppppcVar32 + 1" (cast_expression "(int)ppppppcVar32" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppppppcVar32")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "iVar18 = iVar18 + 0xc;" (assignment_expression "iVar18 = iVar18 + 0xc" (identifier "iVar18") (= "=") (binary_expression "iVar18 + 0xc" (identifier "iVar18") (+ "+") (number_literal "0xc"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(ppppppcVar32 < pppppppcVar29[2])" (( "(") (binary_expression "ppppppcVar32 < pppppppcVar29[2]" (identifier "ppppppcVar32") (< "<") (subscript_expression "pppppppcVar29[2]" (identifier "pppppppcVar29") ([ "[") (number_literal "2") (] "]"))) () ")")) (; ";")) (expression_statement "iVar18 = *(int *)(puVar41 + 0x23abc);" (assignment_expression "iVar18 = *(int *)(puVar41 + 0x23abc)" (identifier "iVar18") (= "=") (pointer_expression "*(int *)(puVar41 + 0x23abc)" (* "*") (cast_expression "(int *)(puVar41 + 0x23abc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar41 + 0x23abc)" (( "(") (binary_expression "puVar41 + 0x23abc" (identifier "puVar41") (+ "+") (number_literal "0x23abc")) () ")"))))) (; ";")) (if_statement "if (pppppppcVar29[2] != (code ******)0x0) {\n                    iVar43 = 0;\n                    pppppppcStack_218 = (code *******)0x0;\n                    do {\n                      piVar5 = *(int **)((int)pppppppcVar29[6] + iVar43 + 8);\n                      if (0 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4)) {\n                        iVar37 = 0;\n                        do {\n                          pppppppcVar38 = pppppppcStack_218;\n                          iVar22 = (*(code *)(iVar18 + 0x6e30))\n                                             (pppppppcVar29[7] + *piVar5 * 3,pppppppcStack_218);\n                          pppppppcVar30 = (code *******)0xc;\n                          if (iVar22 == 0) goto LAB_00056168;\n                          iVar37 = iVar37 + 1;\n                          piVar5 = piVar5 + 1;\n                        } while (iVar37 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4));\n                      }\n                      pppppppcStack_218 = (code *******)((int)pppppppcStack_218 + 1);\n                      iVar43 = iVar43 + 0xc;\n                    } while (pppppppcStack_218 < pppppppcVar29[2]);\n                  }" (if "if") (parenthesized_expression "(pppppppcVar29[2] != (code ******)0x0)" (( "(") (binary_expression "pppppppcVar29[2] != (code ******)0x0" (subscript_expression "pppppppcVar29[2]" (identifier "pppppppcVar29") ([ "[") (number_literal "2") (] "]")) (!= "!=") (cast_expression "(code ******)0x0" (( "(") (type_descriptor "code ******" (type_identifier "code") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                    iVar43 = 0;\n                    pppppppcStack_218 = (code *******)0x0;\n                    do {\n                      piVar5 = *(int **)((int)pppppppcVar29[6] + iVar43 + 8);\n                      if (0 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4)) {\n                        iVar37 = 0;\n                        do {\n                          pppppppcVar38 = pppppppcStack_218;\n                          iVar22 = (*(code *)(iVar18 + 0x6e30))\n                                             (pppppppcVar29[7] + *piVar5 * 3,pppppppcStack_218);\n                          pppppppcVar30 = (code *******)0xc;\n                          if (iVar22 == 0) goto LAB_00056168;\n                          iVar37 = iVar37 + 1;\n                          piVar5 = piVar5 + 1;\n                        } while (iVar37 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4));\n                      }\n                      pppppppcStack_218 = (code *******)((int)pppppppcStack_218 + 1);\n                      iVar43 = iVar43 + 0xc;\n                    } while (pppppppcStack_218 < pppppppcVar29[2]);\n                  }" ({ "{") (expression_statement "iVar43 = 0;" (assignment_expression "iVar43 = 0" (identifier "iVar43") (= "=") (number_literal "0")) (; ";")) (expression_statement "pppppppcStack_218 = (code *******)0x0;" (assignment_expression "pppppppcStack_218 = (code *******)0x0" (identifier "pppppppcStack_218") (= "=") (cast_expression "(code *******)0x0" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) (; ";")) (do_statement "do {\n                      piVar5 = *(int **)((int)pppppppcVar29[6] + iVar43 + 8);\n                      if (0 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4)) {\n                        iVar37 = 0;\n                        do {\n                          pppppppcVar38 = pppppppcStack_218;\n                          iVar22 = (*(code *)(iVar18 + 0x6e30))\n                                             (pppppppcVar29[7] + *piVar5 * 3,pppppppcStack_218);\n                          pppppppcVar30 = (code *******)0xc;\n                          if (iVar22 == 0) goto LAB_00056168;\n                          iVar37 = iVar37 + 1;\n                          piVar5 = piVar5 + 1;\n                        } while (iVar37 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4));\n                      }\n                      pppppppcStack_218 = (code *******)((int)pppppppcStack_218 + 1);\n                      iVar43 = iVar43 + 0xc;\n                    } while (pppppppcStack_218 < pppppppcVar29[2]);" (do "do") (compound_statement "{\n                      piVar5 = *(int **)((int)pppppppcVar29[6] + iVar43 + 8);\n                      if (0 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4)) {\n                        iVar37 = 0;\n                        do {\n                          pppppppcVar38 = pppppppcStack_218;\n                          iVar22 = (*(code *)(iVar18 + 0x6e30))\n                                             (pppppppcVar29[7] + *piVar5 * 3,pppppppcStack_218);\n                          pppppppcVar30 = (code *******)0xc;\n                          if (iVar22 == 0) goto LAB_00056168;\n                          iVar37 = iVar37 + 1;\n                          piVar5 = piVar5 + 1;\n                        } while (iVar37 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4));\n                      }\n                      pppppppcStack_218 = (code *******)((int)pppppppcStack_218 + 1);\n                      iVar43 = iVar43 + 0xc;\n                    }" ({ "{") (expression_statement "piVar5 = *(int **)((int)pppppppcVar29[6] + iVar43 + 8);" (assignment_expression "piVar5 = *(int **)((int)pppppppcVar29[6] + iVar43 + 8)" (identifier "piVar5") (= "=") (pointer_expression "*(int **)((int)pppppppcVar29[6] + iVar43 + 8)" (* "*") (cast_expression "(int **)((int)pppppppcVar29[6] + iVar43 + 8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)pppppppcVar29[6] + iVar43 + 8)" (( "(") (binary_expression "(int)pppppppcVar29[6] + iVar43 + 8" (binary_expression "(int)pppppppcVar29[6] + iVar43" (cast_expression "(int)pppppppcVar29[6]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "pppppppcVar29[6]" (identifier "pppppppcVar29") ([ "[") (number_literal "6") (] "]"))) (+ "+") (identifier "iVar43")) (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if (0 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4)) {\n                        iVar37 = 0;\n                        do {\n                          pppppppcVar38 = pppppppcStack_218;\n                          iVar22 = (*(code *)(iVar18 + 0x6e30))\n                                             (pppppppcVar29[7] + *piVar5 * 3,pppppppcStack_218);\n                          pppppppcVar30 = (code *******)0xc;\n                          if (iVar22 == 0) goto LAB_00056168;\n                          iVar37 = iVar37 + 1;\n                          piVar5 = piVar5 + 1;\n                        } while (iVar37 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4));\n                      }" (if "if") (parenthesized_expression "(0 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4))" (( "(") (binary_expression "0 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4)" (number_literal "0") (< "<") (pointer_expression "*(int *)((int)pppppppcVar29[6] + iVar43 + 4)" (* "*") (cast_expression "(int *)((int)pppppppcVar29[6] + iVar43 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pppppppcVar29[6] + iVar43 + 4)" (( "(") (binary_expression "(int)pppppppcVar29[6] + iVar43 + 4" (binary_expression "(int)pppppppcVar29[6] + iVar43" (cast_expression "(int)pppppppcVar29[6]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "pppppppcVar29[6]" (identifier "pppppppcVar29") ([ "[") (number_literal "6") (] "]"))) (+ "+") (identifier "iVar43")) (+ "+") (number_literal "4")) () ")"))))) () ")")) (compound_statement "{\n                        iVar37 = 0;\n                        do {\n                          pppppppcVar38 = pppppppcStack_218;\n                          iVar22 = (*(code *)(iVar18 + 0x6e30))\n                                             (pppppppcVar29[7] + *piVar5 * 3,pppppppcStack_218);\n                          pppppppcVar30 = (code *******)0xc;\n                          if (iVar22 == 0) goto LAB_00056168;\n                          iVar37 = iVar37 + 1;\n                          piVar5 = piVar5 + 1;\n                        } while (iVar37 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4));\n                      }" ({ "{") (expression_statement "iVar37 = 0;" (assignment_expression "iVar37 = 0" (identifier "iVar37") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n                          pppppppcVar38 = pppppppcStack_218;\n                          iVar22 = (*(code *)(iVar18 + 0x6e30))\n                                             (pppppppcVar29[7] + *piVar5 * 3,pppppppcStack_218);\n                          pppppppcVar30 = (code *******)0xc;\n                          if (iVar22 == 0) goto LAB_00056168;\n                          iVar37 = iVar37 + 1;\n                          piVar5 = piVar5 + 1;\n                        } while (iVar37 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4));" (do "do") (compound_statement "{\n                          pppppppcVar38 = pppppppcStack_218;\n                          iVar22 = (*(code *)(iVar18 + 0x6e30))\n                                             (pppppppcVar29[7] + *piVar5 * 3,pppppppcStack_218);\n                          pppppppcVar30 = (code *******)0xc;\n                          if (iVar22 == 0) goto LAB_00056168;\n                          iVar37 = iVar37 + 1;\n                          piVar5 = piVar5 + 1;\n                        }" ({ "{") (expression_statement "pppppppcVar38 = pppppppcStack_218;" (assignment_expression "pppppppcVar38 = pppppppcStack_218" (identifier "pppppppcVar38") (= "=") (identifier "pppppppcStack_218")) (; ";")) (expression_statement "iVar22 = (*(code *)(iVar18 + 0x6e30))\n                                             (pppppppcVar29[7] + *piVar5 * 3,pppppppcStack_218);" (assignment_expression "iVar22 = (*(code *)(iVar18 + 0x6e30))\n                                             (pppppppcVar29[7] + *piVar5 * 3,pppppppcStack_218)" (identifier "iVar22") (= "=") (call_expression "(*(code *)(iVar18 + 0x6e30))\n                                             (pppppppcVar29[7] + *piVar5 * 3,pppppppcStack_218)" (parenthesized_expression "(*(code *)(iVar18 + 0x6e30))" (( "(") (pointer_expression "*(code *)(iVar18 + 0x6e30)" (* "*") (cast_expression "(code *)(iVar18 + 0x6e30)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0x6e30)" (( "(") (binary_expression "iVar18 + 0x6e30" (identifier "iVar18") (+ "+") (number_literal "0x6e30")) () ")")))) () ")")) (argument_list "(pppppppcVar29[7] + *piVar5 * 3,pppppppcStack_218)" (( "(") (binary_expression "pppppppcVar29[7] + *piVar5 * 3" (subscript_expression "pppppppcVar29[7]" (identifier "pppppppcVar29") ([ "[") (number_literal "7") (] "]")) (+ "+") (binary_expression "*piVar5 * 3" (pointer_expression "*piVar5" (* "*") (identifier "piVar5")) (* "*") (number_literal "3"))) (, ",") (identifier "pppppppcStack_218") () ")")))) (; ";")) (expression_statement "pppppppcVar30 = (code *******)0xc;" (assignment_expression "pppppppcVar30 = (code *******)0xc" (identifier "pppppppcVar30") (= "=") (cast_expression "(code *******)0xc" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0xc"))) (; ";")) (if_statement "if (iVar22 == 0) goto LAB_00056168;" (if "if") (parenthesized_expression "(iVar22 == 0)" (( "(") (binary_expression "iVar22 == 0" (identifier "iVar22") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00056168;" (goto "goto") (statement_identifier "LAB_00056168") (; ";"))) (expression_statement "iVar37 = iVar37 + 1;" (assignment_expression "iVar37 = iVar37 + 1" (identifier "iVar37") (= "=") (binary_expression "iVar37 + 1" (identifier "iVar37") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "piVar5 = piVar5 + 1;" (assignment_expression "piVar5 = piVar5 + 1" (identifier "piVar5") (= "=") (binary_expression "piVar5 + 1" (identifier "piVar5") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar37 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4))" (( "(") (binary_expression "iVar37 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4)" (identifier "iVar37") (< "<") (pointer_expression "*(int *)((int)pppppppcVar29[6] + iVar43 + 4)" (* "*") (cast_expression "(int *)((int)pppppppcVar29[6] + iVar43 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pppppppcVar29[6] + iVar43 + 4)" (( "(") (binary_expression "(int)pppppppcVar29[6] + iVar43 + 4" (binary_expression "(int)pppppppcVar29[6] + iVar43" (cast_expression "(int)pppppppcVar29[6]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "pppppppcVar29[6]" (identifier "pppppppcVar29") ([ "[") (number_literal "6") (] "]"))) (+ "+") (identifier "iVar43")) (+ "+") (number_literal "4")) () ")"))))) () ")")) (; ";")) (} "}"))) (expression_statement "pppppppcStack_218 = (code *******)((int)pppppppcStack_218 + 1);" (assignment_expression "pppppppcStack_218 = (code *******)((int)pppppppcStack_218 + 1)" (identifier "pppppppcStack_218") (= "=") (cast_expression "(code *******)((int)pppppppcStack_218 + 1)" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "((int)pppppppcStack_218 + 1)" (( "(") (binary_expression "(int)pppppppcStack_218 + 1" (cast_expression "(int)pppppppcStack_218" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppcStack_218")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "iVar43 = iVar43 + 0xc;" (assignment_expression "iVar43 = iVar43 + 0xc" (identifier "iVar43") (= "=") (binary_expression "iVar43 + 0xc" (identifier "iVar43") (+ "+") (number_literal "0xc"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pppppppcStack_218 < pppppppcVar29[2])" (( "(") (binary_expression "pppppppcStack_218 < pppppppcVar29[2]" (identifier "pppppppcStack_218") (< "<") (subscript_expression "pppppppcVar29[2]" (identifier "pppppppcVar29") ([ "[") (number_literal "2") (] "]"))) () ")")) (; ";")) (} "}"))) (} "}"))) (labeled_statement "LAB_000568f0:\n                pppppppcStack_20c = (code *******)0x0;" (statement_identifier "LAB_000568f0") (: ":") (expression_statement "pppppppcStack_20c = (code *******)0x0;" (assignment_expression "pppppppcStack_20c = (code *******)0x0" (identifier "pppppppcStack_20c") (= "=") (cast_expression "(code *******)0x0" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) (; ";"))) (if_statement "if (((((uint)pppppppcVar34[0x16] & 0x20000000) != 0) && (uVar16 == 0)) &&\n                   (pppppppcVar3[5] == (code ******)0x0)) {\n                  if (pppppppcVar34[2] != (code ******)0x0) {\n                    pppppppcVar31 = (code *******)(*(int *)(puVar41 + 0x23754) + 0x6e4c);\n                    if (*(byte *)(*pppppppcVar34 + 1) < 0xd) {\n                    \n                    \n                      pppppppcVar29 =\n                           (code *******)\n                           (*(code *)(puVar41 +\n                                     (int)(pppppppcVar31[*(byte *)(*pppppppcVar34 + 1)] + 0xadc7)))\n                                     ();\n                      return pppppppcVar29;\n                    }\n                    (**(code **)(puVar41 + 0x23bc4))(0);\n                    if (uVar7 != 0) {\n                      pppppppcVar31 = (code *******)&DAT_00000007;\n                      ppppppcVar32 = (code ******)0x0;\n                      do {\n                        ppppppcVar35 = *pppppppcVar34 + (int)ppppppcVar32 * 2;\n                        if (*(char *)(ppppppcVar35 + 1) == '\x01') {\n                          if (*(char *)ppppppcVar35 < '\0') {\n                            ppppppcVar35[1] = (code *****)((uint)ppppppcVar35[1] & 0xfffffbff);\n                          }\n                        }\n                        else if (*(char *)(ppppppcVar35 + 1) == '\x05') {\n                          *(char *)(ppppppcVar35 + 1) = '\a';\n                        }\n                        ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                      } while (ppppppcVar32 < pppppppcVar34[2]);\n                    }\n                  }\n                  pppppppcVar34[0x17] = (code ******)0x1;\n                  if (0 < (int)pppppppcVar34[0x13]) {\n                    uVar7 = 1;\n                  }\n                  *(byte *)(pppppppcVar34 + 0x16) =\n                       (byte)*(code *)(pppppppcVar34 + 0x16) & 0x9f | (byte)((uVar7 & 1) << 6);\n                }" (if "if") (parenthesized_expression "(((((uint)pppppppcVar34[0x16] & 0x20000000) != 0) && (uVar16 == 0)) &&\n                   (pppppppcVar3[5] == (code ******)0x0))" (( "(") (binary_expression "((((uint)pppppppcVar34[0x16] & 0x20000000) != 0) && (uVar16 == 0)) &&\n                   (pppppppcVar3[5] == (code ******)0x0)" (parenthesized_expression "((((uint)pppppppcVar34[0x16] & 0x20000000) != 0) && (uVar16 == 0))" (( "(") (binary_expression "(((uint)pppppppcVar34[0x16] & 0x20000000) != 0) && (uVar16 == 0)" (parenthesized_expression "(((uint)pppppppcVar34[0x16] & 0x20000000) != 0)" (( "(") (binary_expression "((uint)pppppppcVar34[0x16] & 0x20000000) != 0" (parenthesized_expression "((uint)pppppppcVar34[0x16] & 0x20000000)" (( "(") (binary_expression "(uint)pppppppcVar34[0x16] & 0x20000000" (cast_expression "(uint)pppppppcVar34[0x16]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "pppppppcVar34[0x16]" (identifier "pppppppcVar34") ([ "[") (number_literal "0x16") (] "]"))) (& "&") (number_literal "0x20000000")) () ")")) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(uVar16 == 0)" (( "(") (binary_expression "uVar16 == 0" (identifier "uVar16") (== "==") (number_literal "0")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(pppppppcVar3[5] == (code ******)0x0)" (( "(") (binary_expression "pppppppcVar3[5] == (code ******)0x0" (subscript_expression "pppppppcVar3[5]" (identifier "pppppppcVar3") ([ "[") (number_literal "5") (] "]")) (== "==") (cast_expression "(code ******)0x0" (( "(") (type_descriptor "code ******" (type_identifier "code") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) () ")"))) () ")")) (compound_statement "{\n                  if (pppppppcVar34[2] != (code ******)0x0) {\n                    pppppppcVar31 = (code *******)(*(int *)(puVar41 + 0x23754) + 0x6e4c);\n                    if (*(byte *)(*pppppppcVar34 + 1) < 0xd) {\n                    \n                    \n                      pppppppcVar29 =\n                           (code *******)\n                           (*(code *)(puVar41 +\n                                     (int)(pppppppcVar31[*(byte *)(*pppppppcVar34 + 1)] + 0xadc7)))\n                                     ();\n                      return pppppppcVar29;\n                    }\n                    (**(code **)(puVar41 + 0x23bc4))(0);\n                    if (uVar7 != 0) {\n                      pppppppcVar31 = (code *******)&DAT_00000007;\n                      ppppppcVar32 = (code ******)0x0;\n                      do {\n                        ppppppcVar35 = *pppppppcVar34 + (int)ppppppcVar32 * 2;\n                        if (*(char *)(ppppppcVar35 + 1) == '\x01') {\n                          if (*(char *)ppppppcVar35 < '\0') {\n                            ppppppcVar35[1] = (code *****)((uint)ppppppcVar35[1] & 0xfffffbff);\n                          }\n                        }\n                        else if (*(char *)(ppppppcVar35 + 1) == '\x05') {\n                          *(char *)(ppppppcVar35 + 1) = '\a';\n                        }\n                        ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                      } while (ppppppcVar32 < pppppppcVar34[2]);\n                    }\n                  }\n                  pppppppcVar34[0x17] = (code ******)0x1;\n                  if (0 < (int)pppppppcVar34[0x13]) {\n                    uVar7 = 1;\n                  }\n                  *(byte *)(pppppppcVar34 + 0x16) =\n                       (byte)*(code *)(pppppppcVar34 + 0x16) & 0x9f | (byte)((uVar7 & 1) << 6);\n                }" ({ "{") (if_statement "if (pppppppcVar34[2] != (code ******)0x0) {\n                    pppppppcVar31 = (code *******)(*(int *)(puVar41 + 0x23754) + 0x6e4c);\n                    if (*(byte *)(*pppppppcVar34 + 1) < 0xd) {\n                    \n                    \n                      pppppppcVar29 =\n                           (code *******)\n                           (*(code *)(puVar41 +\n                                     (int)(pppppppcVar31[*(byte *)(*pppppppcVar34 + 1)] + 0xadc7)))\n                                     ();\n                      return pppppppcVar29;\n                    }\n                    (**(code **)(puVar41 + 0x23bc4))(0);\n                    if (uVar7 != 0) {\n                      pppppppcVar31 = (code *******)&DAT_00000007;\n                      ppppppcVar32 = (code ******)0x0;\n                      do {\n                        ppppppcVar35 = *pppppppcVar34 + (int)ppppppcVar32 * 2;\n                        if (*(char *)(ppppppcVar35 + 1) == '\x01') {\n                          if (*(char *)ppppppcVar35 < '\0') {\n                            ppppppcVar35[1] = (code *****)((uint)ppppppcVar35[1] & 0xfffffbff);\n                          }\n                        }\n                        else if (*(char *)(ppppppcVar35 + 1) == '\x05') {\n                          *(char *)(ppppppcVar35 + 1) = '\a';\n                        }\n                        ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                      } while (ppppppcVar32 < pppppppcVar34[2]);\n                    }\n                  }" (if "if") (parenthesized_expression "(pppppppcVar34[2] != (code ******)0x0)" (( "(") (binary_expression "pppppppcVar34[2] != (code ******)0x0" (subscript_expression "pppppppcVar34[2]" (identifier "pppppppcVar34") ([ "[") (number_literal "2") (] "]")) (!= "!=") (cast_expression "(code ******)0x0" (( "(") (type_descriptor "code ******" (type_identifier "code") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                    pppppppcVar31 = (code *******)(*(int *)(puVar41 + 0x23754) + 0x6e4c);\n                    if (*(byte *)(*pppppppcVar34 + 1) < 0xd) {\n                    \n                    \n                      pppppppcVar29 =\n                           (code *******)\n                           (*(code *)(puVar41 +\n                                     (int)(pppppppcVar31[*(byte *)(*pppppppcVar34 + 1)] + 0xadc7)))\n                                     ();\n                      return pppppppcVar29;\n                    }\n                    (**(code **)(puVar41 + 0x23bc4))(0);\n                    if (uVar7 != 0) {\n                      pppppppcVar31 = (code *******)&DAT_00000007;\n                      ppppppcVar32 = (code ******)0x0;\n                      do {\n                        ppppppcVar35 = *pppppppcVar34 + (int)ppppppcVar32 * 2;\n                        if (*(char *)(ppppppcVar35 + 1) == '\x01') {\n                          if (*(char *)ppppppcVar35 < '\0') {\n                            ppppppcVar35[1] = (code *****)((uint)ppppppcVar35[1] & 0xfffffbff);\n                          }\n                        }\n                        else if (*(char *)(ppppppcVar35 + 1) == '\x05') {\n                          *(char *)(ppppppcVar35 + 1) = '\a';\n                        }\n                        ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                      } while (ppppppcVar32 < pppppppcVar34[2]);\n                    }\n                  }" ({ "{") (expression_statement "pppppppcVar31 = (code *******)(*(int *)(puVar41 + 0x23754) + 0x6e4c);" (assignment_expression "pppppppcVar31 = (code *******)(*(int *)(puVar41 + 0x23754) + 0x6e4c)" (identifier "pppppppcVar31") (= "=") (cast_expression "(code *******)(*(int *)(puVar41 + 0x23754) + 0x6e4c)" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "(*(int *)(puVar41 + 0x23754) + 0x6e4c)" (( "(") (binary_expression "*(int *)(puVar41 + 0x23754) + 0x6e4c" (pointer_expression "*(int *)(puVar41 + 0x23754)" (* "*") (cast_expression "(int *)(puVar41 + 0x23754)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar41 + 0x23754)" (( "(") (binary_expression "puVar41 + 0x23754" (identifier "puVar41") (+ "+") (number_literal "0x23754")) () ")")))) (+ "+") (number_literal "0x6e4c")) () ")")))) (; ";")) (if_statement "if (*(byte *)(*pppppppcVar34 + 1) < 0xd) {\n                    \n                    \n                      pppppppcVar29 =\n                           (code *******)\n                           (*(code *)(puVar41 +\n                                     (int)(pppppppcVar31[*(byte *)(*pppppppcVar34 + 1)] + 0xadc7)))\n                                     ();\n                      return pppppppcVar29;\n                    }" (if "if") (parenthesized_expression "(*(byte *)(*pppppppcVar34 + 1) < 0xd)" (( "(") (binary_expression "*(byte *)(*pppppppcVar34 + 1) < 0xd" (pointer_expression "*(byte *)(*pppppppcVar34 + 1)" (* "*") (cast_expression "(byte *)(*pppppppcVar34 + 1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*pppppppcVar34 + 1)" (( "(") (binary_expression "*pppppppcVar34 + 1" (pointer_expression "*pppppppcVar34" (* "*") (identifier "pppppppcVar34")) (+ "+") (number_literal "1")) () ")")))) (< "<") (number_literal "0xd")) () ")")) (compound_statement "{\n                    \n                    \n                      pppppppcVar29 =\n                           (code *******)\n                           (*(code *)(puVar41 +\n                                     (int)(pppppppcVar31[*(byte *)(*pppppppcVar34 + 1)] + 0xadc7)))\n                                     ();\n                      return pppppppcVar29;\n                    }" ({ "{") (expression_statement "pppppppcVar29 =\n                           (code *******)\n                           (*(code *)(puVar41 +\n                                     (int)(pppppppcVar31[*(byte *)(*pppppppcVar34 + 1)] + 0xadc7)))\n                                     ();" (assignment_expression "pppppppcVar29 =\n                           (code *******)\n                           (*(code *)(puVar41 +\n                                     (int)(pppppppcVar31[*(byte *)(*pppppppcVar34 + 1)] + 0xadc7)))\n                                     ()" (identifier "pppppppcVar29") (= "=") (cast_expression "(code *******)\n                           (*(code *)(puVar41 +\n                                     (int)(pppppppcVar31[*(byte *)(*pppppppcVar34 + 1)] + 0xadc7)))\n                                     ()" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (call_expression "(*(code *)(puVar41 +\n                                     (int)(pppppppcVar31[*(byte *)(*pppppppcVar34 + 1)] + 0xadc7)))\n                                     ()" (parenthesized_expression "(*(code *)(puVar41 +\n                                     (int)(pppppppcVar31[*(byte *)(*pppppppcVar34 + 1)] + 0xadc7)))" (( "(") (pointer_expression "*(code *)(puVar41 +\n                                     (int)(pppppppcVar31[*(byte *)(*pppppppcVar34 + 1)] + 0xadc7))" (* "*") (cast_expression "(code *)(puVar41 +\n                                     (int)(pppppppcVar31[*(byte *)(*pppppppcVar34 + 1)] + 0xadc7))" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar41 +\n                                     (int)(pppppppcVar31[*(byte *)(*pppppppcVar34 + 1)] + 0xadc7))" (( "(") (binary_expression "puVar41 +\n                                     (int)(pppppppcVar31[*(byte *)(*pppppppcVar34 + 1)] + 0xadc7)" (identifier "puVar41") (+ "+") (cast_expression "(int)(pppppppcVar31[*(byte *)(*pppppppcVar34 + 1)] + 0xadc7)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(pppppppcVar31[*(byte *)(*pppppppcVar34 + 1)] + 0xadc7)" (( "(") (binary_expression "pppppppcVar31[*(byte *)(*pppppppcVar34 + 1)] + 0xadc7" (subscript_expression "pppppppcVar31[*(byte *)(*pppppppcVar34 + 1)]" (identifier "pppppppcVar31") ([ "[") (pointer_expression "*(byte *)(*pppppppcVar34 + 1)" (* "*") (cast_expression "(byte *)(*pppppppcVar34 + 1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*pppppppcVar34 + 1)" (( "(") (binary_expression "*pppppppcVar34 + 1" (pointer_expression "*pppppppcVar34" (* "*") (identifier "pppppppcVar34")) (+ "+") (number_literal "1")) () ")")))) (] "]")) (+ "+") (number_literal "0xadc7")) () ")")))) () ")")))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (return_statement "return pppppppcVar29;" (return "return") (identifier "pppppppcVar29") (; ";")) (} "}"))) (expression_statement "(**(code **)(puVar41 + 0x23bc4))(0);" (call_expression "(**(code **)(puVar41 + 0x23bc4))(0)" (parenthesized_expression "(**(code **)(puVar41 + 0x23bc4))" (( "(") (pointer_expression "**(code **)(puVar41 + 0x23bc4)" (* "*") (pointer_expression "*(code **)(puVar41 + 0x23bc4)" (* "*") (cast_expression "(code **)(puVar41 + 0x23bc4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar41 + 0x23bc4)" (( "(") (binary_expression "puVar41 + 0x23bc4" (identifier "puVar41") (+ "+") (number_literal "0x23bc4")) () ")"))))) () ")")) (argument_list "(0)" (( "(") (number_literal "0") () ")"))) (; ";")) (if_statement "if (uVar7 != 0) {\n                      pppppppcVar31 = (code *******)&DAT_00000007;\n                      ppppppcVar32 = (code ******)0x0;\n                      do {\n                        ppppppcVar35 = *pppppppcVar34 + (int)ppppppcVar32 * 2;\n                        if (*(char *)(ppppppcVar35 + 1) == '\x01') {\n                          if (*(char *)ppppppcVar35 < '\0') {\n                            ppppppcVar35[1] = (code *****)((uint)ppppppcVar35[1] & 0xfffffbff);\n                          }\n                        }\n                        else if (*(char *)(ppppppcVar35 + 1) == '\x05') {\n                          *(char *)(ppppppcVar35 + 1) = '\a';\n                        }\n                        ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                      } while (ppppppcVar32 < pppppppcVar34[2]);\n                    }" (if "if") (parenthesized_expression "(uVar7 != 0)" (( "(") (binary_expression "uVar7 != 0" (identifier "uVar7") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                      pppppppcVar31 = (code *******)&DAT_00000007;\n                      ppppppcVar32 = (code ******)0x0;\n                      do {\n                        ppppppcVar35 = *pppppppcVar34 + (int)ppppppcVar32 * 2;\n                        if (*(char *)(ppppppcVar35 + 1) == '\x01') {\n                          if (*(char *)ppppppcVar35 < '\0') {\n                            ppppppcVar35[1] = (code *****)((uint)ppppppcVar35[1] & 0xfffffbff);\n                          }\n                        }\n                        else if (*(char *)(ppppppcVar35 + 1) == '\x05') {\n                          *(char *)(ppppppcVar35 + 1) = '\a';\n                        }\n                        ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                      } while (ppppppcVar32 < pppppppcVar34[2]);\n                    }" ({ "{") (expression_statement "pppppppcVar31 = (code *******)&DAT_00000007;" (assignment_expression "pppppppcVar31 = (code *******)&DAT_00000007" (identifier "pppppppcVar31") (= "=") (cast_expression "(code *******)&DAT_00000007" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (pointer_expression "&DAT_00000007" (& "&") (identifier "DAT_00000007")))) (; ";")) (expression_statement "ppppppcVar32 = (code ******)0x0;" (assignment_expression "ppppppcVar32 = (code ******)0x0" (identifier "ppppppcVar32") (= "=") (cast_expression "(code ******)0x0" (( "(") (type_descriptor "code ******" (type_identifier "code") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) (; ";")) (do_statement "do {\n                        ppppppcVar35 = *pppppppcVar34 + (int)ppppppcVar32 * 2;\n                        if (*(char *)(ppppppcVar35 + 1) == '\x01') {\n                          if (*(char *)ppppppcVar35 < '\0') {\n                            ppppppcVar35[1] = (code *****)((uint)ppppppcVar35[1] & 0xfffffbff);\n                          }\n                        }\n                        else if (*(char *)(ppppppcVar35 + 1) == '\x05') {\n                          *(char *)(ppppppcVar35 + 1) = '\a';\n                        }\n                        ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                      } while (ppppppcVar32 < pppppppcVar34[2]);" (do "do") (compound_statement "{\n                        ppppppcVar35 = *pppppppcVar34 + (int)ppppppcVar32 * 2;\n                        if (*(char *)(ppppppcVar35 + 1) == '\x01') {\n                          if (*(char *)ppppppcVar35 < '\0') {\n                            ppppppcVar35[1] = (code *****)((uint)ppppppcVar35[1] & 0xfffffbff);\n                          }\n                        }\n                        else if (*(char *)(ppppppcVar35 + 1) == '\x05') {\n                          *(char *)(ppppppcVar35 + 1) = '\a';\n                        }\n                        ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);\n                      }" ({ "{") (expression_statement "ppppppcVar35 = *pppppppcVar34 + (int)ppppppcVar32 * 2;" (assignment_expression "ppppppcVar35 = *pppppppcVar34 + (int)ppppppcVar32 * 2" (identifier "ppppppcVar35") (= "=") (binary_expression "*pppppppcVar34 + (int)ppppppcVar32 * 2" (pointer_expression "*pppppppcVar34" (* "*") (identifier "pppppppcVar34")) (+ "+") (binary_expression "(int)ppppppcVar32 * 2" (cast_expression "(int)ppppppcVar32" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppppppcVar32")) (* "*") (number_literal "2")))) (; ";")) (if_statement "if (*(char *)(ppppppcVar35 + 1) == '\x01') {\n                          if (*(char *)ppppppcVar35 < '\0') {\n                            ppppppcVar35[1] = (code *****)((uint)ppppppcVar35[1] & 0xfffffbff);\n                          }\n                        }\n                        else if (*(char *)(ppppppcVar35 + 1) == '\x05') {\n                          *(char *)(ppppppcVar35 + 1) = '\a';\n                        }" (if "if") (parenthesized_expression "(*(char *)(ppppppcVar35 + 1) == '\x01')" (( "(") (binary_expression "*(char *)(ppppppcVar35 + 1) == '\x01'" (pointer_expression "*(char *)(ppppppcVar35 + 1)" (* "*") (cast_expression "(char *)(ppppppcVar35 + 1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(ppppppcVar35 + 1)" (( "(") (binary_expression "ppppppcVar35 + 1" (identifier "ppppppcVar35") (+ "+") (number_literal "1")) () ")")))) (== "==") (char_literal "'\x01'" (' "'") (escape_sequence "\x01") (' "'"))) () ")")) (compound_statement "{\n                          if (*(char *)ppppppcVar35 < '\0') {\n                            ppppppcVar35[1] = (code *****)((uint)ppppppcVar35[1] & 0xfffffbff);\n                          }\n                        }" ({ "{") (if_statement "if (*(char *)ppppppcVar35 < '\0') {\n                            ppppppcVar35[1] = (code *****)((uint)ppppppcVar35[1] & 0xfffffbff);\n                          }" (if "if") (parenthesized_expression "(*(char *)ppppppcVar35 < '\0')" (( "(") (binary_expression "*(char *)ppppppcVar35 < '\0'" (pointer_expression "*(char *)ppppppcVar35" (* "*") (cast_expression "(char *)ppppppcVar35" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "ppppppcVar35"))) (< "<") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n                            ppppppcVar35[1] = (code *****)((uint)ppppppcVar35[1] & 0xfffffbff);\n                          }" ({ "{") (expression_statement "ppppppcVar35[1] = (code *****)((uint)ppppppcVar35[1] & 0xfffffbff);" (assignment_expression "ppppppcVar35[1] = (code *****)((uint)ppppppcVar35[1] & 0xfffffbff)" (subscript_expression "ppppppcVar35[1]" (identifier "ppppppcVar35") ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(code *****)((uint)ppppppcVar35[1] & 0xfffffbff)" (( "(") (type_descriptor "code *****" (type_identifier "code") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (parenthesized_expression "((uint)ppppppcVar35[1] & 0xfffffbff)" (( "(") (binary_expression "(uint)ppppppcVar35[1] & 0xfffffbff" (cast_expression "(uint)ppppppcVar35[1]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "ppppppcVar35[1]" (identifier "ppppppcVar35") ([ "[") (number_literal "1") (] "]"))) (& "&") (number_literal "0xfffffbff")) () ")")))) (; ";")) (} "}"))) (} "}")) (else_clause "else if (*(char *)(ppppppcVar35 + 1) == '\x05') {\n                          *(char *)(ppppppcVar35 + 1) = '\a';\n                        }" (else "else") (if_statement "if (*(char *)(ppppppcVar35 + 1) == '\x05') {\n                          *(char *)(ppppppcVar35 + 1) = '\a';\n                        }" (if "if") (parenthesized_expression "(*(char *)(ppppppcVar35 + 1) == '\x05')" (( "(") (binary_expression "*(char *)(ppppppcVar35 + 1) == '\x05'" (pointer_expression "*(char *)(ppppppcVar35 + 1)" (* "*") (cast_expression "(char *)(ppppppcVar35 + 1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(ppppppcVar35 + 1)" (( "(") (binary_expression "ppppppcVar35 + 1" (identifier "ppppppcVar35") (+ "+") (number_literal "1")) () ")")))) (== "==") (char_literal "'\x05'" (' "'") (escape_sequence "\x05") (' "'"))) () ")")) (compound_statement "{\n                          *(char *)(ppppppcVar35 + 1) = '\a';\n                        }" ({ "{") (expression_statement "*(char *)(ppppppcVar35 + 1) = '\a';" (assignment_expression "*(char *)(ppppppcVar35 + 1) = '\a'" (pointer_expression "*(char *)(ppppppcVar35 + 1)" (* "*") (cast_expression "(char *)(ppppppcVar35 + 1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(ppppppcVar35 + 1)" (( "(") (binary_expression "ppppppcVar35 + 1" (identifier "ppppppcVar35") (+ "+") (number_literal "1")) () ")")))) (= "=") (char_literal "'\a'" (' "'") (escape_sequence "\a") (' "'"))) (; ";")) (} "}"))))) (expression_statement "ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);" (assignment_expression "ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1)" (identifier "ppppppcVar32") (= "=") (cast_expression "(code ******)((int)ppppppcVar32 + 1)" (( "(") (type_descriptor "code ******" (type_identifier "code") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (parenthesized_expression "((int)ppppppcVar32 + 1)" (( "(") (binary_expression "(int)ppppppcVar32 + 1" (cast_expression "(int)ppppppcVar32" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppppppcVar32")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(ppppppcVar32 < pppppppcVar34[2])" (( "(") (binary_expression "ppppppcVar32 < pppppppcVar34[2]" (identifier "ppppppcVar32") (< "<") (subscript_expression "pppppppcVar34[2]" (identifier "pppppppcVar34") ([ "[") (number_literal "2") (] "]"))) () ")")) (; ";")) (} "}"))) (} "}"))) (expression_statement "pppppppcVar34[0x17] = (code ******)0x1;" (assignment_expression "pppppppcVar34[0x17] = (code ******)0x1" (subscript_expression "pppppppcVar34[0x17]" (identifier "pppppppcVar34") ([ "[") (number_literal "0x17") (] "]")) (= "=") (cast_expression "(code ******)0x1" (( "(") (type_descriptor "code ******" (type_identifier "code") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x1"))) (; ";")) (if_statement "if (0 < (int)pppppppcVar34[0x13]) {\n                    uVar7 = 1;\n                  }" (if "if") (parenthesized_expression "(0 < (int)pppppppcVar34[0x13])" (( "(") (binary_expression "0 < (int)pppppppcVar34[0x13]" (number_literal "0") (< "<") (cast_expression "(int)pppppppcVar34[0x13]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "pppppppcVar34[0x13]" (identifier "pppppppcVar34") ([ "[") (number_literal "0x13") (] "]")))) () ")")) (compound_statement "{\n                    uVar7 = 1;\n                  }" ({ "{") (expression_statement "uVar7 = 1;" (assignment_expression "uVar7 = 1" (identifier "uVar7") (= "=") (number_literal "1")) (; ";")) (} "}"))) (expression_statement "*(byte *)(pppppppcVar34 + 0x16) =\n                       (byte)*(code *)(pppppppcVar34 + 0x16) & 0x9f | (byte)((uVar7 & 1) << 6);" (assignment_expression "*(byte *)(pppppppcVar34 + 0x16) =\n                       (byte)*(code *)(pppppppcVar34 + 0x16) & 0x9f | (byte)((uVar7 & 1) << 6)" (pointer_expression "*(byte *)(pppppppcVar34 + 0x16)" (* "*") (cast_expression "(byte *)(pppppppcVar34 + 0x16)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pppppppcVar34 + 0x16)" (( "(") (binary_expression "pppppppcVar34 + 0x16" (identifier "pppppppcVar34") (+ "+") (number_literal "0x16")) () ")")))) (= "=") (binary_expression "(byte)*(code *)(pppppppcVar34 + 0x16) & 0x9f | (byte)((uVar7 & 1) << 6)" (binary_expression "(byte)*(code *)(pppppppcVar34 + 0x16) & 0x9f" (binary_expression "(byte)*(code *)(pppppppcVar34 + 0x16)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (* "*") (cast_expression "(code *)(pppppppcVar34 + 0x16)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pppppppcVar34 + 0x16)" (( "(") (binary_expression "pppppppcVar34 + 0x16" (identifier "pppppppcVar34") (+ "+") (number_literal "0x16")) () ")")))) (& "&") (number_literal "0x9f")) (| "|") (call_expression "(byte)((uVar7 & 1) << 6)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((uVar7 & 1) << 6)" (( "(") (binary_expression "(uVar7 & 1) << 6" (parenthesized_expression "(uVar7 & 1)" (( "(") (binary_expression "uVar7 & 1" (identifier "uVar7") (& "&") (number_literal "1")) () ")")) (<< "<<") (number_literal "6")) () ")"))))) (; ";")) (} "}"))) (expression_statement "ppppppcVar32 = (code ******)pppppppcVar34[0xd][3][7];" (assignment_expression "ppppppcVar32 = (code ******)pppppppcVar34[0xd][3][7]" (identifier "ppppppcVar32") (= "=") (cast_expression "(code ******)pppppppcVar34[0xd][3][7]" (( "(") (type_descriptor "code ******" (type_identifier "code") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (subscript_expression "pppppppcVar34[0xd][3][7]" (subscript_expression "pppppppcVar34[0xd][3]" (subscript_expression "pppppppcVar34[0xd]" (identifier "pppppppcVar34") ([ "[") (number_literal "0xd") (] "]")) ([ "[") (number_literal "3") (] "]")) ([ "[") (number_literal "7") (] "]")))) (; ";")) (expression_statement "pppppppcVar34[0x12] = ppppppcVar32;" (assignment_expression "pppppppcVar34[0x12] = ppppppcVar32" (subscript_expression "pppppppcVar34[0x12]" (identifier "pppppppcVar34") ([ "[") (number_literal "0x12") (] "]")) (= "=") (identifier "ppppppcVar32")) (; ";")) (expression_statement "pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppppcVar32 * 3);" (assignment_expression "pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppppcVar32 * 3)" (identifier "pppppppcVar38") (= "=") (cast_expression "(code *******)(pppppppcVar34[6] + (int)ppppppcVar32 * 3)" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "(pppppppcVar34[6] + (int)ppppppcVar32 * 3)" (( "(") (binary_expression "pppppppcVar34[6] + (int)ppppppcVar32 * 3" (subscript_expression "pppppppcVar34[6]" (identifier "pppppppcVar34") ([ "[") (number_literal "6") (] "]")) (+ "+") (binary_expression "(int)ppppppcVar32 * 3" (cast_expression "(int)ppppppcVar32" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppppppcVar32")) (* "*") (number_literal "3"))) () ")")))) (; ";")) (expression_statement "pppppppcVar33 = (code *******)FUN_000483e8(&ppppppcStack_204,pppppppcVar38);" (assignment_expression "pppppppcVar33 = (code *******)FUN_000483e8(&ppppppcStack_204,pppppppcVar38)" (identifier "pppppppcVar33") (= "=") (cast_expression "(code *******)FUN_000483e8(&ppppppcStack_204,pppppppcVar38)" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (call_expression "FUN_000483e8(&ppppppcStack_204,pppppppcVar38)" (identifier "FUN_000483e8") (argument_list "(&ppppppcStack_204,pppppppcVar38)" (( "(") (pointer_expression "&ppppppcStack_204" (& "&") (identifier "ppppppcStack_204")) (, ",") (identifier "pppppppcVar38") () ")"))))) (; ";")) (expression_statement "pppppppcVar29 = pppppppcVar33;" (assignment_expression "pppppppcVar29 = pppppppcVar33" (identifier "pppppppcVar29") (= "=") (identifier "pppppppcVar33")) (; ";")) (expression_statement "pppppppcStack_208 = pppppppcVar33;" (assignment_expression "pppppppcStack_208 = pppppppcVar33" (identifier "pppppppcStack_208") (= "=") (identifier "pppppppcVar33")) (; ";")) (if_statement "if (pppppppcVar33 == (code *******)0x0) {\n                  if ((0 < (int)pppppppcVar34[0x13]) && (0 < iStack_200)) {\n                    iVar18 = *(int *)(puVar41 + 0x23abc);\n                    iVar43 = *(int *)(puVar41 + 0x23abc);\n                    pppppppcVar29 = (code *******)0x0;\n                    do {\n                      pppppppcVar31 =\n                           (code *******)(*pppppppcVar34 + piStack_1fc[(int)pppppppcVar29] * 2);\n                      if (*(code *)(pppppppcVar31 + 1) == (code)0x4) {\n                        iVar37 = 0;\n                        piVar5 = piStack_1fc;\n                        if (iStack_200 < 1) {\nLAB_00056b8c:\n                          if (iStack_200 != iVar37) {\n                            ppppcVar40 = *pppppppcVar34[5][piStack_1fc[(int)pppppppcVar29] * 3 + 2];\n                            iVar37 = (*(code *)(iVar18 + 0x5ea8))(&ppppppcStack_204,ppppcVar40);\n                            if (iVar37 == 0) {\n                              pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppcVar40 * 3)\n                              ;\n                              pppppppcVar29 =\n                                   (code *******)\n                                   (*(code *)(iVar43 + 0x7f1c))(&ppppppcStack_204,pppppppcVar38);\n                              if (pppppppcVar29 != (code *******)0x0) goto LAB_00056cb8;\n                            }\n                          }\n                        }\n                        else {\n                          do {\n                            ppppppcVar32 = *pppppppcVar34 + *piVar5 * 2;\n                            if ((*(char *)(ppppppcVar32 + 1) == '\t') &&\n                               ((code ******)*ppppppcVar32 == *pppppppcVar31)) goto LAB_00056b8c;\n                            iVar37 = iVar37 + 1;\n                            piVar5 = piVar5 + 1;\n                          } while (iStack_200 != iVar37);\n                        }\n                      }\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1);\n                    } while ((int)pppppppcVar29 < iStack_200);\n                  }\n                  pppppppcVar31 = &ppppppcStack_204;\n                  pppppppcVar38 = pppppppcVar34;\n                  ppppppcVar32 = (code ******)\n                                 FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,0);\n                  pppppppcVar34[9] = ppppppcVar32;\n                  pppppppcVar29 = pppppppcStack_208;\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    if (((uint)ppppppcVar32[0xd] & 0x1000000) == 0) {\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar34[10] = ppppppcVar32;\n                    }\n                    else {\n                      pppppppcVar31 = &ppppppcStack_204;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,1);\n                      pppppppcVar34[10] = ppppppcVar32;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,2);\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar38 = pppppppcVar34;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,6);\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar29 = pppppppcStack_208;\n                      if (((pppppppcVar34[10] == (code ******)0x0) ||\n                          (pppppppcVar34[0xb] == (code ******)0x0)) ||\n                         (ppppppcVar32 == (code ******)0x0)) goto LAB_00056cb8;\n                    }\n                    (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                    pppppppcVar29 = pppppppcVar33;\n                  }\n                }" (if "if") (parenthesized_expression "(pppppppcVar33 == (code *******)0x0)" (( "(") (binary_expression "pppppppcVar33 == (code *******)0x0" (identifier "pppppppcVar33") (== "==") (cast_expression "(code *******)0x0" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                  if ((0 < (int)pppppppcVar34[0x13]) && (0 < iStack_200)) {\n                    iVar18 = *(int *)(puVar41 + 0x23abc);\n                    iVar43 = *(int *)(puVar41 + 0x23abc);\n                    pppppppcVar29 = (code *******)0x0;\n                    do {\n                      pppppppcVar31 =\n                           (code *******)(*pppppppcVar34 + piStack_1fc[(int)pppppppcVar29] * 2);\n                      if (*(code *)(pppppppcVar31 + 1) == (code)0x4) {\n                        iVar37 = 0;\n                        piVar5 = piStack_1fc;\n                        if (iStack_200 < 1) {\nLAB_00056b8c:\n                          if (iStack_200 != iVar37) {\n                            ppppcVar40 = *pppppppcVar34[5][piStack_1fc[(int)pppppppcVar29] * 3 + 2];\n                            iVar37 = (*(code *)(iVar18 + 0x5ea8))(&ppppppcStack_204,ppppcVar40);\n                            if (iVar37 == 0) {\n                              pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppcVar40 * 3)\n                              ;\n                              pppppppcVar29 =\n                                   (code *******)\n                                   (*(code *)(iVar43 + 0x7f1c))(&ppppppcStack_204,pppppppcVar38);\n                              if (pppppppcVar29 != (code *******)0x0) goto LAB_00056cb8;\n                            }\n                          }\n                        }\n                        else {\n                          do {\n                            ppppppcVar32 = *pppppppcVar34 + *piVar5 * 2;\n                            if ((*(char *)(ppppppcVar32 + 1) == '\t') &&\n                               ((code ******)*ppppppcVar32 == *pppppppcVar31)) goto LAB_00056b8c;\n                            iVar37 = iVar37 + 1;\n                            piVar5 = piVar5 + 1;\n                          } while (iStack_200 != iVar37);\n                        }\n                      }\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1);\n                    } while ((int)pppppppcVar29 < iStack_200);\n                  }\n                  pppppppcVar31 = &ppppppcStack_204;\n                  pppppppcVar38 = pppppppcVar34;\n                  ppppppcVar32 = (code ******)\n                                 FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,0);\n                  pppppppcVar34[9] = ppppppcVar32;\n                  pppppppcVar29 = pppppppcStack_208;\n                  if (ppppppcVar32 != (code ******)0x0) {\n                    if (((uint)ppppppcVar32[0xd] & 0x1000000) == 0) {\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar34[10] = ppppppcVar32;\n                    }\n                    else {\n                      pppppppcVar31 = &ppppppcStack_204;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,1);\n                      pppppppcVar34[10] = ppppppcVar32;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,2);\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar38 = pppppppcVar34;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,6);\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar29 = pppppppcStack_208;\n                      if (((pppppppcVar34[10] == (code ******)0x0) ||\n                          (pppppppcVar34[0xb] == (code ******)0x0)) ||\n                         (ppppppcVar32 == (code ******)0x0)) goto LAB_00056cb8;\n                    }\n                    (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                    pppppppcVar29 = pppppppcVar33;\n                  }\n                }" ({ "{") (if_statement "if ((0 < (int)pppppppcVar34[0x13]) && (0 < iStack_200)) {\n                    iVar18 = *(int *)(puVar41 + 0x23abc);\n                    iVar43 = *(int *)(puVar41 + 0x23abc);\n                    pppppppcVar29 = (code *******)0x0;\n                    do {\n                      pppppppcVar31 =\n                           (code *******)(*pppppppcVar34 + piStack_1fc[(int)pppppppcVar29] * 2);\n                      if (*(code *)(pppppppcVar31 + 1) == (code)0x4) {\n                        iVar37 = 0;\n                        piVar5 = piStack_1fc;\n                        if (iStack_200 < 1) {\nLAB_00056b8c:\n                          if (iStack_200 != iVar37) {\n                            ppppcVar40 = *pppppppcVar34[5][piStack_1fc[(int)pppppppcVar29] * 3 + 2];\n                            iVar37 = (*(code *)(iVar18 + 0x5ea8))(&ppppppcStack_204,ppppcVar40);\n                            if (iVar37 == 0) {\n                              pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppcVar40 * 3)\n                              ;\n                              pppppppcVar29 =\n                                   (code *******)\n                                   (*(code *)(iVar43 + 0x7f1c))(&ppppppcStack_204,pppppppcVar38);\n                              if (pppppppcVar29 != (code *******)0x0) goto LAB_00056cb8;\n                            }\n                          }\n                        }\n                        else {\n                          do {\n                            ppppppcVar32 = *pppppppcVar34 + *piVar5 * 2;\n                            if ((*(char *)(ppppppcVar32 + 1) == '\t') &&\n                               ((code ******)*ppppppcVar32 == *pppppppcVar31)) goto LAB_00056b8c;\n                            iVar37 = iVar37 + 1;\n                            piVar5 = piVar5 + 1;\n                          } while (iStack_200 != iVar37);\n                        }\n                      }\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1);\n                    } while ((int)pppppppcVar29 < iStack_200);\n                  }" (if "if") (parenthesized_expression "((0 < (int)pppppppcVar34[0x13]) && (0 < iStack_200))" (( "(") (binary_expression "(0 < (int)pppppppcVar34[0x13]) && (0 < iStack_200)" (parenthesized_expression "(0 < (int)pppppppcVar34[0x13])" (( "(") (binary_expression "0 < (int)pppppppcVar34[0x13]" (number_literal "0") (< "<") (cast_expression "(int)pppppppcVar34[0x13]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "pppppppcVar34[0x13]" (identifier "pppppppcVar34") ([ "[") (number_literal "0x13") (] "]")))) () ")")) (&& "&&") (parenthesized_expression "(0 < iStack_200)" (( "(") (binary_expression "0 < iStack_200" (number_literal "0") (< "<") (identifier "iStack_200")) () ")"))) () ")")) (compound_statement "{\n                    iVar18 = *(int *)(puVar41 + 0x23abc);\n                    iVar43 = *(int *)(puVar41 + 0x23abc);\n                    pppppppcVar29 = (code *******)0x0;\n                    do {\n                      pppppppcVar31 =\n                           (code *******)(*pppppppcVar34 + piStack_1fc[(int)pppppppcVar29] * 2);\n                      if (*(code *)(pppppppcVar31 + 1) == (code)0x4) {\n                        iVar37 = 0;\n                        piVar5 = piStack_1fc;\n                        if (iStack_200 < 1) {\nLAB_00056b8c:\n                          if (iStack_200 != iVar37) {\n                            ppppcVar40 = *pppppppcVar34[5][piStack_1fc[(int)pppppppcVar29] * 3 + 2];\n                            iVar37 = (*(code *)(iVar18 + 0x5ea8))(&ppppppcStack_204,ppppcVar40);\n                            if (iVar37 == 0) {\n                              pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppcVar40 * 3)\n                              ;\n                              pppppppcVar29 =\n                                   (code *******)\n                                   (*(code *)(iVar43 + 0x7f1c))(&ppppppcStack_204,pppppppcVar38);\n                              if (pppppppcVar29 != (code *******)0x0) goto LAB_00056cb8;\n                            }\n                          }\n                        }\n                        else {\n                          do {\n                            ppppppcVar32 = *pppppppcVar34 + *piVar5 * 2;\n                            if ((*(char *)(ppppppcVar32 + 1) == '\t') &&\n                               ((code ******)*ppppppcVar32 == *pppppppcVar31)) goto LAB_00056b8c;\n                            iVar37 = iVar37 + 1;\n                            piVar5 = piVar5 + 1;\n                          } while (iStack_200 != iVar37);\n                        }\n                      }\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1);\n                    } while ((int)pppppppcVar29 < iStack_200);\n                  }" ({ "{") (expression_statement "iVar18 = *(int *)(puVar41 + 0x23abc);" (assignment_expression "iVar18 = *(int *)(puVar41 + 0x23abc)" (identifier "iVar18") (= "=") (pointer_expression "*(int *)(puVar41 + 0x23abc)" (* "*") (cast_expression "(int *)(puVar41 + 0x23abc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar41 + 0x23abc)" (( "(") (binary_expression "puVar41 + 0x23abc" (identifier "puVar41") (+ "+") (number_literal "0x23abc")) () ")"))))) (; ";")) (expression_statement "iVar43 = *(int *)(puVar41 + 0x23abc);" (assignment_expression "iVar43 = *(int *)(puVar41 + 0x23abc)" (identifier "iVar43") (= "=") (pointer_expression "*(int *)(puVar41 + 0x23abc)" (* "*") (cast_expression "(int *)(puVar41 + 0x23abc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar41 + 0x23abc)" (( "(") (binary_expression "puVar41 + 0x23abc" (identifier "puVar41") (+ "+") (number_literal "0x23abc")) () ")"))))) (; ";")) (expression_statement "pppppppcVar29 = (code *******)0x0;" (assignment_expression "pppppppcVar29 = (code *******)0x0" (identifier "pppppppcVar29") (= "=") (cast_expression "(code *******)0x0" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) (; ";")) (do_statement "do {\n                      pppppppcVar31 =\n                           (code *******)(*pppppppcVar34 + piStack_1fc[(int)pppppppcVar29] * 2);\n                      if (*(code *)(pppppppcVar31 + 1) == (code)0x4) {\n                        iVar37 = 0;\n                        piVar5 = piStack_1fc;\n                        if (iStack_200 < 1) {\nLAB_00056b8c:\n                          if (iStack_200 != iVar37) {\n                            ppppcVar40 = *pppppppcVar34[5][piStack_1fc[(int)pppppppcVar29] * 3 + 2];\n                            iVar37 = (*(code *)(iVar18 + 0x5ea8))(&ppppppcStack_204,ppppcVar40);\n                            if (iVar37 == 0) {\n                              pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppcVar40 * 3)\n                              ;\n                              pppppppcVar29 =\n                                   (code *******)\n                                   (*(code *)(iVar43 + 0x7f1c))(&ppppppcStack_204,pppppppcVar38);\n                              if (pppppppcVar29 != (code *******)0x0) goto LAB_00056cb8;\n                            }\n                          }\n                        }\n                        else {\n                          do {\n                            ppppppcVar32 = *pppppppcVar34 + *piVar5 * 2;\n                            if ((*(char *)(ppppppcVar32 + 1) == '\t') &&\n                               ((code ******)*ppppppcVar32 == *pppppppcVar31)) goto LAB_00056b8c;\n                            iVar37 = iVar37 + 1;\n                            piVar5 = piVar5 + 1;\n                          } while (iStack_200 != iVar37);\n                        }\n                      }\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1);\n                    } while ((int)pppppppcVar29 < iStack_200);" (do "do") (compound_statement "{\n                      pppppppcVar31 =\n                           (code *******)(*pppppppcVar34 + piStack_1fc[(int)pppppppcVar29] * 2);\n                      if (*(code *)(pppppppcVar31 + 1) == (code)0x4) {\n                        iVar37 = 0;\n                        piVar5 = piStack_1fc;\n                        if (iStack_200 < 1) {\nLAB_00056b8c:\n                          if (iStack_200 != iVar37) {\n                            ppppcVar40 = *pppppppcVar34[5][piStack_1fc[(int)pppppppcVar29] * 3 + 2];\n                            iVar37 = (*(code *)(iVar18 + 0x5ea8))(&ppppppcStack_204,ppppcVar40);\n                            if (iVar37 == 0) {\n                              pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppcVar40 * 3)\n                              ;\n                              pppppppcVar29 =\n                                   (code *******)\n                                   (*(code *)(iVar43 + 0x7f1c))(&ppppppcStack_204,pppppppcVar38);\n                              if (pppppppcVar29 != (code *******)0x0) goto LAB_00056cb8;\n                            }\n                          }\n                        }\n                        else {\n                          do {\n                            ppppppcVar32 = *pppppppcVar34 + *piVar5 * 2;\n                            if ((*(char *)(ppppppcVar32 + 1) == '\t') &&\n                               ((code ******)*ppppppcVar32 == *pppppppcVar31)) goto LAB_00056b8c;\n                            iVar37 = iVar37 + 1;\n                            piVar5 = piVar5 + 1;\n                          } while (iStack_200 != iVar37);\n                        }\n                      }\n                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1);\n                    }" ({ "{") (expression_statement "pppppppcVar31 =\n                           (code *******)(*pppppppcVar34 + piStack_1fc[(int)pppppppcVar29] * 2);" (assignment_expression "pppppppcVar31 =\n                           (code *******)(*pppppppcVar34 + piStack_1fc[(int)pppppppcVar29] * 2)" (identifier "pppppppcVar31") (= "=") (cast_expression "(code *******)(*pppppppcVar34 + piStack_1fc[(int)pppppppcVar29] * 2)" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "(*pppppppcVar34 + piStack_1fc[(int)pppppppcVar29] * 2)" (( "(") (binary_expression "*pppppppcVar34 + piStack_1fc[(int)pppppppcVar29] * 2" (pointer_expression "*pppppppcVar34" (* "*") (identifier "pppppppcVar34")) (+ "+") (binary_expression "piStack_1fc[(int)pppppppcVar29] * 2" (subscript_expression "piStack_1fc[(int)pppppppcVar29]" (identifier "piStack_1fc") ([ "[") (cast_expression "(int)pppppppcVar29" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppcVar29")) (] "]")) (* "*") (number_literal "2"))) () ")")))) (; ";")) (if_statement "if (*(code *)(pppppppcVar31 + 1) == (code)0x4) {\n                        iVar37 = 0;\n                        piVar5 = piStack_1fc;\n                        if (iStack_200 < 1) {\nLAB_00056b8c:\n                          if (iStack_200 != iVar37) {\n                            ppppcVar40 = *pppppppcVar34[5][piStack_1fc[(int)pppppppcVar29] * 3 + 2];\n                            iVar37 = (*(code *)(iVar18 + 0x5ea8))(&ppppppcStack_204,ppppcVar40);\n                            if (iVar37 == 0) {\n                              pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppcVar40 * 3)\n                              ;\n                              pppppppcVar29 =\n                                   (code *******)\n                                   (*(code *)(iVar43 + 0x7f1c))(&ppppppcStack_204,pppppppcVar38);\n                              if (pppppppcVar29 != (code *******)0x0) goto LAB_00056cb8;\n                            }\n                          }\n                        }\n                        else {\n                          do {\n                            ppppppcVar32 = *pppppppcVar34 + *piVar5 * 2;\n                            if ((*(char *)(ppppppcVar32 + 1) == '\t') &&\n                               ((code ******)*ppppppcVar32 == *pppppppcVar31)) goto LAB_00056b8c;\n                            iVar37 = iVar37 + 1;\n                            piVar5 = piVar5 + 1;\n                          } while (iStack_200 != iVar37);\n                        }\n                      }" (if "if") (parenthesized_expression "(*(code *)(pppppppcVar31 + 1) == (code)0x4)" (( "(") (binary_expression "*(code *)(pppppppcVar31 + 1) == (code)0x4" (pointer_expression "*(code *)(pppppppcVar31 + 1)" (* "*") (cast_expression "(code *)(pppppppcVar31 + 1)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pppppppcVar31 + 1)" (( "(") (binary_expression "pppppppcVar31 + 1" (identifier "pppppppcVar31") (+ "+") (number_literal "1")) () ")")))) (== "==") (cast_expression "(code)0x4" (( "(") (type_descriptor "code" (type_identifier "code")) () ")") (number_literal "0x4"))) () ")")) (compound_statement "{\n                        iVar37 = 0;\n                        piVar5 = piStack_1fc;\n                        if (iStack_200 < 1) {\nLAB_00056b8c:\n                          if (iStack_200 != iVar37) {\n                            ppppcVar40 = *pppppppcVar34[5][piStack_1fc[(int)pppppppcVar29] * 3 + 2];\n                            iVar37 = (*(code *)(iVar18 + 0x5ea8))(&ppppppcStack_204,ppppcVar40);\n                            if (iVar37 == 0) {\n                              pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppcVar40 * 3)\n                              ;\n                              pppppppcVar29 =\n                                   (code *******)\n                                   (*(code *)(iVar43 + 0x7f1c))(&ppppppcStack_204,pppppppcVar38);\n                              if (pppppppcVar29 != (code *******)0x0) goto LAB_00056cb8;\n                            }\n                          }\n                        }\n                        else {\n                          do {\n                            ppppppcVar32 = *pppppppcVar34 + *piVar5 * 2;\n                            if ((*(char *)(ppppppcVar32 + 1) == '\t') &&\n                               ((code ******)*ppppppcVar32 == *pppppppcVar31)) goto LAB_00056b8c;\n                            iVar37 = iVar37 + 1;\n                            piVar5 = piVar5 + 1;\n                          } while (iStack_200 != iVar37);\n                        }\n                      }" ({ "{") (expression_statement "iVar37 = 0;" (assignment_expression "iVar37 = 0" (identifier "iVar37") (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar5 = piStack_1fc;" (assignment_expression "piVar5 = piStack_1fc" (identifier "piVar5") (= "=") (identifier "piStack_1fc")) (; ";")) (if_statement "if (iStack_200 < 1) {\nLAB_00056b8c:\n                          if (iStack_200 != iVar37) {\n                            ppppcVar40 = *pppppppcVar34[5][piStack_1fc[(int)pppppppcVar29] * 3 + 2];\n                            iVar37 = (*(code *)(iVar18 + 0x5ea8))(&ppppppcStack_204,ppppcVar40);\n                            if (iVar37 == 0) {\n                              pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppcVar40 * 3)\n                              ;\n                              pppppppcVar29 =\n                                   (code *******)\n                                   (*(code *)(iVar43 + 0x7f1c))(&ppppppcStack_204,pppppppcVar38);\n                              if (pppppppcVar29 != (code *******)0x0) goto LAB_00056cb8;\n                            }\n                          }\n                        }\n                        else {\n                          do {\n                            ppppppcVar32 = *pppppppcVar34 + *piVar5 * 2;\n                            if ((*(char *)(ppppppcVar32 + 1) == '\t') &&\n                               ((code ******)*ppppppcVar32 == *pppppppcVar31)) goto LAB_00056b8c;\n                            iVar37 = iVar37 + 1;\n                            piVar5 = piVar5 + 1;\n                          } while (iStack_200 != iVar37);\n                        }" (if "if") (parenthesized_expression "(iStack_200 < 1)" (( "(") (binary_expression "iStack_200 < 1" (identifier "iStack_200") (< "<") (number_literal "1")) () ")")) (compound_statement "{\nLAB_00056b8c:\n                          if (iStack_200 != iVar37) {\n                            ppppcVar40 = *pppppppcVar34[5][piStack_1fc[(int)pppppppcVar29] * 3 + 2];\n                            iVar37 = (*(code *)(iVar18 + 0x5ea8))(&ppppppcStack_204,ppppcVar40);\n                            if (iVar37 == 0) {\n                              pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppcVar40 * 3)\n                              ;\n                              pppppppcVar29 =\n                                   (code *******)\n                                   (*(code *)(iVar43 + 0x7f1c))(&ppppppcStack_204,pppppppcVar38);\n                              if (pppppppcVar29 != (code *******)0x0) goto LAB_00056cb8;\n                            }\n                          }\n                        }" ({ "{") (labeled_statement "LAB_00056b8c:\n                          if (iStack_200 != iVar37) {\n                            ppppcVar40 = *pppppppcVar34[5][piStack_1fc[(int)pppppppcVar29] * 3 + 2];\n                            iVar37 = (*(code *)(iVar18 + 0x5ea8))(&ppppppcStack_204,ppppcVar40);\n                            if (iVar37 == 0) {\n                              pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppcVar40 * 3)\n                              ;\n                              pppppppcVar29 =\n                                   (code *******)\n                                   (*(code *)(iVar43 + 0x7f1c))(&ppppppcStack_204,pppppppcVar38);\n                              if (pppppppcVar29 != (code *******)0x0) goto LAB_00056cb8;\n                            }\n                          }" (statement_identifier "LAB_00056b8c") (: ":") (if_statement "if (iStack_200 != iVar37) {\n                            ppppcVar40 = *pppppppcVar34[5][piStack_1fc[(int)pppppppcVar29] * 3 + 2];\n                            iVar37 = (*(code *)(iVar18 + 0x5ea8))(&ppppppcStack_204,ppppcVar40);\n                            if (iVar37 == 0) {\n                              pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppcVar40 * 3)\n                              ;\n                              pppppppcVar29 =\n                                   (code *******)\n                                   (*(code *)(iVar43 + 0x7f1c))(&ppppppcStack_204,pppppppcVar38);\n                              if (pppppppcVar29 != (code *******)0x0) goto LAB_00056cb8;\n                            }\n                          }" (if "if") (parenthesized_expression "(iStack_200 != iVar37)" (( "(") (binary_expression "iStack_200 != iVar37" (identifier "iStack_200") (!= "!=") (identifier "iVar37")) () ")")) (compound_statement "{\n                            ppppcVar40 = *pppppppcVar34[5][piStack_1fc[(int)pppppppcVar29] * 3 + 2];\n                            iVar37 = (*(code *)(iVar18 + 0x5ea8))(&ppppppcStack_204,ppppcVar40);\n                            if (iVar37 == 0) {\n                              pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppcVar40 * 3)\n                              ;\n                              pppppppcVar29 =\n                                   (code *******)\n                                   (*(code *)(iVar43 + 0x7f1c))(&ppppppcStack_204,pppppppcVar38);\n                              if (pppppppcVar29 != (code *******)0x0) goto LAB_00056cb8;\n                            }\n                          }" ({ "{") (expression_statement "ppppcVar40 = *pppppppcVar34[5][piStack_1fc[(int)pppppppcVar29] * 3 + 2];" (assignment_expression "ppppcVar40 = *pppppppcVar34[5][piStack_1fc[(int)pppppppcVar29] * 3 + 2]" (identifier "ppppcVar40") (= "=") (pointer_expression "*pppppppcVar34[5][piStack_1fc[(int)pppppppcVar29] * 3 + 2]" (* "*") (subscript_expression "pppppppcVar34[5][piStack_1fc[(int)pppppppcVar29] * 3 + 2]" (subscript_expression "pppppppcVar34[5]" (identifier "pppppppcVar34") ([ "[") (number_literal "5") (] "]")) ([ "[") (binary_expression "piStack_1fc[(int)pppppppcVar29] * 3 + 2" (binary_expression "piStack_1fc[(int)pppppppcVar29] * 3" (subscript_expression "piStack_1fc[(int)pppppppcVar29]" (identifier "piStack_1fc") ([ "[") (cast_expression "(int)pppppppcVar29" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppcVar29")) (] "]")) (* "*") (number_literal "3")) (+ "+") (number_literal "2")) (] "]")))) (; ";")) (expression_statement "iVar37 = (*(code *)(iVar18 + 0x5ea8))(&ppppppcStack_204,ppppcVar40);" (assignment_expression "iVar37 = (*(code *)(iVar18 + 0x5ea8))(&ppppppcStack_204,ppppcVar40)" (identifier "iVar37") (= "=") (call_expression "(*(code *)(iVar18 + 0x5ea8))(&ppppppcStack_204,ppppcVar40)" (parenthesized_expression "(*(code *)(iVar18 + 0x5ea8))" (( "(") (pointer_expression "*(code *)(iVar18 + 0x5ea8)" (* "*") (cast_expression "(code *)(iVar18 + 0x5ea8)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0x5ea8)" (( "(") (binary_expression "iVar18 + 0x5ea8" (identifier "iVar18") (+ "+") (number_literal "0x5ea8")) () ")")))) () ")")) (argument_list "(&ppppppcStack_204,ppppcVar40)" (( "(") (pointer_expression "&ppppppcStack_204" (& "&") (identifier "ppppppcStack_204")) (, ",") (identifier "ppppcVar40") () ")")))) (; ";")) (if_statement "if (iVar37 == 0) {\n                              pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppcVar40 * 3)\n                              ;\n                              pppppppcVar29 =\n                                   (code *******)\n                                   (*(code *)(iVar43 + 0x7f1c))(&ppppppcStack_204,pppppppcVar38);\n                              if (pppppppcVar29 != (code *******)0x0) goto LAB_00056cb8;\n                            }" (if "if") (parenthesized_expression "(iVar37 == 0)" (( "(") (binary_expression "iVar37 == 0" (identifier "iVar37") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                              pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppcVar40 * 3)\n                              ;\n                              pppppppcVar29 =\n                                   (code *******)\n                                   (*(code *)(iVar43 + 0x7f1c))(&ppppppcStack_204,pppppppcVar38);\n                              if (pppppppcVar29 != (code *******)0x0) goto LAB_00056cb8;\n                            }" ({ "{") (expression_statement "pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppcVar40 * 3)\n                              ;" (assignment_expression "pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppcVar40 * 3)" (identifier "pppppppcVar38") (= "=") (cast_expression "(code *******)(pppppppcVar34[6] + (int)ppppcVar40 * 3)" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "(pppppppcVar34[6] + (int)ppppcVar40 * 3)" (( "(") (binary_expression "pppppppcVar34[6] + (int)ppppcVar40 * 3" (subscript_expression "pppppppcVar34[6]" (identifier "pppppppcVar34") ([ "[") (number_literal "6") (] "]")) (+ "+") (binary_expression "(int)ppppcVar40 * 3" (cast_expression "(int)ppppcVar40" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppppcVar40")) (* "*") (number_literal "3"))) () ")")))) (; ";")) (expression_statement "pppppppcVar29 =\n                                   (code *******)\n                                   (*(code *)(iVar43 + 0x7f1c))(&ppppppcStack_204,pppppppcVar38);" (assignment_expression "pppppppcVar29 =\n                                   (code *******)\n                                   (*(code *)(iVar43 + 0x7f1c))(&ppppppcStack_204,pppppppcVar38)" (identifier "pppppppcVar29") (= "=") (cast_expression "(code *******)\n                                   (*(code *)(iVar43 + 0x7f1c))(&ppppppcStack_204,pppppppcVar38)" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (call_expression "(*(code *)(iVar43 + 0x7f1c))(&ppppppcStack_204,pppppppcVar38)" (parenthesized_expression "(*(code *)(iVar43 + 0x7f1c))" (( "(") (pointer_expression "*(code *)(iVar43 + 0x7f1c)" (* "*") (cast_expression "(code *)(iVar43 + 0x7f1c)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar43 + 0x7f1c)" (( "(") (binary_expression "iVar43 + 0x7f1c" (identifier "iVar43") (+ "+") (number_literal "0x7f1c")) () ")")))) () ")")) (argument_list "(&ppppppcStack_204,pppppppcVar38)" (( "(") (pointer_expression "&ppppppcStack_204" (& "&") (identifier "ppppppcStack_204")) (, ",") (identifier "pppppppcVar38") () ")"))))) (; ";")) (if_statement "if (pppppppcVar29 != (code *******)0x0) goto LAB_00056cb8;" (if "if") (parenthesized_expression "(pppppppcVar29 != (code *******)0x0)" (( "(") (binary_expression "pppppppcVar29 != (code *******)0x0" (identifier "pppppppcVar29") (!= "!=") (cast_expression "(code *******)0x0" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00056cb8;" (goto "goto") (statement_identifier "LAB_00056cb8") (; ";"))) (} "}"))) (} "}")))) (} "}")) (else_clause "else {\n                          do {\n                            ppppppcVar32 = *pppppppcVar34 + *piVar5 * 2;\n                            if ((*(char *)(ppppppcVar32 + 1) == '\t') &&\n                               ((code ******)*ppppppcVar32 == *pppppppcVar31)) goto LAB_00056b8c;\n                            iVar37 = iVar37 + 1;\n                            piVar5 = piVar5 + 1;\n                          } while (iStack_200 != iVar37);\n                        }" (else "else") (compound_statement "{\n                          do {\n                            ppppppcVar32 = *pppppppcVar34 + *piVar5 * 2;\n                            if ((*(char *)(ppppppcVar32 + 1) == '\t') &&\n                               ((code ******)*ppppppcVar32 == *pppppppcVar31)) goto LAB_00056b8c;\n                            iVar37 = iVar37 + 1;\n                            piVar5 = piVar5 + 1;\n                          } while (iStack_200 != iVar37);\n                        }" ({ "{") (do_statement "do {\n                            ppppppcVar32 = *pppppppcVar34 + *piVar5 * 2;\n                            if ((*(char *)(ppppppcVar32 + 1) == '\t') &&\n                               ((code ******)*ppppppcVar32 == *pppppppcVar31)) goto LAB_00056b8c;\n                            iVar37 = iVar37 + 1;\n                            piVar5 = piVar5 + 1;\n                          } while (iStack_200 != iVar37);" (do "do") (compound_statement "{\n                            ppppppcVar32 = *pppppppcVar34 + *piVar5 * 2;\n                            if ((*(char *)(ppppppcVar32 + 1) == '\t') &&\n                               ((code ******)*ppppppcVar32 == *pppppppcVar31)) goto LAB_00056b8c;\n                            iVar37 = iVar37 + 1;\n                            piVar5 = piVar5 + 1;\n                          }" ({ "{") (expression_statement "ppppppcVar32 = *pppppppcVar34 + *piVar5 * 2;" (assignment_expression "ppppppcVar32 = *pppppppcVar34 + *piVar5 * 2" (identifier "ppppppcVar32") (= "=") (binary_expression "*pppppppcVar34 + *piVar5 * 2" (pointer_expression "*pppppppcVar34" (* "*") (identifier "pppppppcVar34")) (+ "+") (binary_expression "*piVar5 * 2" (pointer_expression "*piVar5" (* "*") (identifier "piVar5")) (* "*") (number_literal "2")))) (; ";")) (if_statement "if ((*(char *)(ppppppcVar32 + 1) == '\t') &&\n                               ((code ******)*ppppppcVar32 == *pppppppcVar31)) goto LAB_00056b8c;" (if "if") (parenthesized_expression "((*(char *)(ppppppcVar32 + 1) == '\t') &&\n                               ((code ******)*ppppppcVar32 == *pppppppcVar31))" (( "(") (binary_expression "(*(char *)(ppppppcVar32 + 1) == '\t') &&\n                               ((code ******)*ppppppcVar32 == *pppppppcVar31)" (parenthesized_expression "(*(char *)(ppppppcVar32 + 1) == '\t')" (( "(") (binary_expression "*(char *)(ppppppcVar32 + 1) == '\t'" (pointer_expression "*(char *)(ppppppcVar32 + 1)" (* "*") (cast_expression "(char *)(ppppppcVar32 + 1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(ppppppcVar32 + 1)" (( "(") (binary_expression "ppppppcVar32 + 1" (identifier "ppppppcVar32") (+ "+") (number_literal "1")) () ")")))) (== "==") (char_literal "'\t'" (' "'") (escape_sequence "\t") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "((code ******)*ppppppcVar32 == *pppppppcVar31)" (( "(") (binary_expression "(code ******)*ppppppcVar32 == *pppppppcVar31" (cast_expression "(code ******)*ppppppcVar32" (( "(") (type_descriptor "code ******" (type_identifier "code") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (pointer_expression "*ppppppcVar32" (* "*") (identifier "ppppppcVar32"))) (== "==") (pointer_expression "*pppppppcVar31" (* "*") (identifier "pppppppcVar31"))) () ")"))) () ")")) (goto_statement "goto LAB_00056b8c;" (goto "goto") (statement_identifier "LAB_00056b8c") (; ";"))) (expression_statement "iVar37 = iVar37 + 1;" (assignment_expression "iVar37 = iVar37 + 1" (identifier "iVar37") (= "=") (binary_expression "iVar37 + 1" (identifier "iVar37") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "piVar5 = piVar5 + 1;" (assignment_expression "piVar5 = piVar5 + 1" (identifier "piVar5") (= "=") (binary_expression "piVar5 + 1" (identifier "piVar5") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iStack_200 != iVar37)" (( "(") (binary_expression "iStack_200 != iVar37" (identifier "iStack_200") (!= "!=") (identifier "iVar37")) () ")")) (; ";")) (} "}")))) (} "}"))) (expression_statement "pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1);" (assignment_expression "pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1)" (identifier "pppppppcVar29") (= "=") (cast_expression "(code *******)((int)pppppppcVar29 + 1)" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "((int)pppppppcVar29 + 1)" (( "(") (binary_expression "(int)pppppppcVar29 + 1" (cast_expression "(int)pppppppcVar29" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppcVar29")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((int)pppppppcVar29 < iStack_200)" (( "(") (binary_expression "(int)pppppppcVar29 < iStack_200" (cast_expression "(int)pppppppcVar29" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppcVar29")) (< "<") (identifier "iStack_200")) () ")")) (; ";")) (} "}"))) (expression_statement "pppppppcVar31 = &ppppppcStack_204;" (assignment_expression "pppppppcVar31 = &ppppppcStack_204" (identifier "pppppppcVar31") (= "=") (pointer_expression "&ppppppcStack_204" (& "&") (identifier "ppppppcStack_204"))) (; ";")) (expression_statement "pppppppcVar38 = pppppppcVar34;" (assignment_expression "pppppppcVar38 = pppppppcVar34" (identifier "pppppppcVar38") (= "=") (identifier "pppppppcVar34")) (; ";")) (expression_statement "ppppppcVar32 = (code ******)\n                                 FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,0);" (assignment_expression "ppppppcVar32 = (code ******)\n                                 FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,0)" (identifier "ppppppcVar32") (= "=") (cast_expression "(code ******)\n                                 FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,0)" (( "(") (type_descriptor "code ******" (type_identifier "code") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (call_expression "FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,0)" (identifier "FUN_0004ae34") (argument_list "(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,0)" (( "(") (pointer_expression "&pppppppcStack_208" (& "&") (identifier "pppppppcStack_208")) (, ",") (identifier "pppppppcVar34") (, ",") (identifier "pppppppcVar31") (, ",") (number_literal "0") () ")"))))) (; ";")) (expression_statement "pppppppcVar34[9] = ppppppcVar32;" (assignment_expression "pppppppcVar34[9] = ppppppcVar32" (subscript_expression "pppppppcVar34[9]" (identifier "pppppppcVar34") ([ "[") (number_literal "9") (] "]")) (= "=") (identifier "ppppppcVar32")) (; ";")) (expression_statement "pppppppcVar29 = pppppppcStack_208;" (assignment_expression "pppppppcVar29 = pppppppcStack_208" (identifier "pppppppcVar29") (= "=") (identifier "pppppppcStack_208")) (; ";")) (if_statement "if (ppppppcVar32 != (code ******)0x0) {\n                    if (((uint)ppppppcVar32[0xd] & 0x1000000) == 0) {\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar34[10] = ppppppcVar32;\n                    }\n                    else {\n                      pppppppcVar31 = &ppppppcStack_204;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,1);\n                      pppppppcVar34[10] = ppppppcVar32;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,2);\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar38 = pppppppcVar34;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,6);\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar29 = pppppppcStack_208;\n                      if (((pppppppcVar34[10] == (code ******)0x0) ||\n                          (pppppppcVar34[0xb] == (code ******)0x0)) ||\n                         (ppppppcVar32 == (code ******)0x0)) goto LAB_00056cb8;\n                    }\n                    (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                    pppppppcVar29 = pppppppcVar33;\n                  }" (if "if") (parenthesized_expression "(ppppppcVar32 != (code ******)0x0)" (( "(") (binary_expression "ppppppcVar32 != (code ******)0x0" (identifier "ppppppcVar32") (!= "!=") (cast_expression "(code ******)0x0" (( "(") (type_descriptor "code ******" (type_identifier "code") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                    if (((uint)ppppppcVar32[0xd] & 0x1000000) == 0) {\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar34[10] = ppppppcVar32;\n                    }\n                    else {\n                      pppppppcVar31 = &ppppppcStack_204;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,1);\n                      pppppppcVar34[10] = ppppppcVar32;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,2);\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar38 = pppppppcVar34;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,6);\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar29 = pppppppcStack_208;\n                      if (((pppppppcVar34[10] == (code ******)0x0) ||\n                          (pppppppcVar34[0xb] == (code ******)0x0)) ||\n                         (ppppppcVar32 == (code ******)0x0)) goto LAB_00056cb8;\n                    }\n                    (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);\n                    pppppppcVar29 = pppppppcVar33;\n                  }" ({ "{") (if_statement "if (((uint)ppppppcVar32[0xd] & 0x1000000) == 0) {\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar34[10] = ppppppcVar32;\n                    }\n                    else {\n                      pppppppcVar31 = &ppppppcStack_204;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,1);\n                      pppppppcVar34[10] = ppppppcVar32;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,2);\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar38 = pppppppcVar34;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,6);\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar29 = pppppppcStack_208;\n                      if (((pppppppcVar34[10] == (code ******)0x0) ||\n                          (pppppppcVar34[0xb] == (code ******)0x0)) ||\n                         (ppppppcVar32 == (code ******)0x0)) goto LAB_00056cb8;\n                    }" (if "if") (parenthesized_expression "(((uint)ppppppcVar32[0xd] & 0x1000000) == 0)" (( "(") (binary_expression "((uint)ppppppcVar32[0xd] & 0x1000000) == 0" (parenthesized_expression "((uint)ppppppcVar32[0xd] & 0x1000000)" (( "(") (binary_expression "(uint)ppppppcVar32[0xd] & 0x1000000" (cast_expression "(uint)ppppppcVar32[0xd]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "ppppppcVar32[0xd]" (identifier "ppppppcVar32") ([ "[") (number_literal "0xd") (] "]"))) (& "&") (number_literal "0x1000000")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar34[10] = ppppppcVar32;\n                    }" ({ "{") (expression_statement "pppppppcVar34[0xc] = ppppppcVar32;" (assignment_expression "pppppppcVar34[0xc] = ppppppcVar32" (subscript_expression "pppppppcVar34[0xc]" (identifier "pppppppcVar34") ([ "[") (number_literal "0xc") (] "]")) (= "=") (identifier "ppppppcVar32")) (; ";")) (expression_statement "pppppppcVar34[0xb] = ppppppcVar32;" (assignment_expression "pppppppcVar34[0xb] = ppppppcVar32" (subscript_expression "pppppppcVar34[0xb]" (identifier "pppppppcVar34") ([ "[") (number_literal "0xb") (] "]")) (= "=") (identifier "ppppppcVar32")) (; ";")) (expression_statement "pppppppcVar34[10] = ppppppcVar32;" (assignment_expression "pppppppcVar34[10] = ppppppcVar32" (subscript_expression "pppppppcVar34[10]" (identifier "pppppppcVar34") ([ "[") (number_literal "10") (] "]")) (= "=") (identifier "ppppppcVar32")) (; ";")) (} "}")) (else_clause "else {\n                      pppppppcVar31 = &ppppppcStack_204;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,1);\n                      pppppppcVar34[10] = ppppppcVar32;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,2);\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar38 = pppppppcVar34;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,6);\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar29 = pppppppcStack_208;\n                      if (((pppppppcVar34[10] == (code ******)0x0) ||\n                          (pppppppcVar34[0xb] == (code ******)0x0)) ||\n                         (ppppppcVar32 == (code ******)0x0)) goto LAB_00056cb8;\n                    }" (else "else") (compound_statement "{\n                      pppppppcVar31 = &ppppppcStack_204;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,1);\n                      pppppppcVar34[10] = ppppppcVar32;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,2);\n                      pppppppcVar34[0xb] = ppppppcVar32;\n                      pppppppcVar38 = pppppppcVar34;\n                      ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,6);\n                      pppppppcVar34[0xc] = ppppppcVar32;\n                      pppppppcVar29 = pppppppcStack_208;\n                      if (((pppppppcVar34[10] == (code ******)0x0) ||\n                          (pppppppcVar34[0xb] == (code ******)0x0)) ||\n                         (ppppppcVar32 == (code ******)0x0)) goto LAB_00056cb8;\n                    }" ({ "{") (expression_statement "pppppppcVar31 = &ppppppcStack_204;" (assignment_expression "pppppppcVar31 = &ppppppcStack_204" (identifier "pppppppcVar31") (= "=") (pointer_expression "&ppppppcStack_204" (& "&") (identifier "ppppppcStack_204"))) (; ";")) (expression_statement "ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,1);" (assignment_expression "ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,1)" (identifier "ppppppcVar32") (= "=") (cast_expression "(code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,1)" (( "(") (type_descriptor "code ******" (type_identifier "code") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (call_expression "FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,1)" (identifier "FUN_0004ae34") (argument_list "(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,1)" (( "(") (pointer_expression "&pppppppcStack_208" (& "&") (identifier "pppppppcStack_208")) (, ",") (identifier "pppppppcVar34") (, ",") (identifier "pppppppcVar31") (, ",") (number_literal "1") () ")"))))) (; ";")) (expression_statement "pppppppcVar34[10] = ppppppcVar32;" (assignment_expression "pppppppcVar34[10] = ppppppcVar32" (subscript_expression "pppppppcVar34[10]" (identifier "pppppppcVar34") ([ "[") (number_literal "10") (] "]")) (= "=") (identifier "ppppppcVar32")) (; ";")) (expression_statement "ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,2);" (assignment_expression "ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,2)" (identifier "ppppppcVar32") (= "=") (cast_expression "(code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,2)" (( "(") (type_descriptor "code ******" (type_identifier "code") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (call_expression "FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,2)" (identifier "FUN_0004ae34") (argument_list "(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,2)" (( "(") (pointer_expression "&pppppppcStack_208" (& "&") (identifier "pppppppcStack_208")) (, ",") (identifier "pppppppcVar34") (, ",") (identifier "pppppppcVar31") (, ",") (number_literal "2") () ")"))))) (; ";")) (expression_statement "pppppppcVar34[0xb] = ppppppcVar32;" (assignment_expression "pppppppcVar34[0xb] = ppppppcVar32" (subscript_expression "pppppppcVar34[0xb]" (identifier "pppppppcVar34") ([ "[") (number_literal "0xb") (] "]")) (= "=") (identifier "ppppppcVar32")) (; ";")) (expression_statement "pppppppcVar38 = pppppppcVar34;" (assignment_expression "pppppppcVar38 = pppppppcVar34" (identifier "pppppppcVar38") (= "=") (identifier "pppppppcVar34")) (; ";")) (expression_statement "ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,6);" (assignment_expression "ppppppcVar32 = (code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,6)" (identifier "ppppppcVar32") (= "=") (cast_expression "(code ******)\n                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,6)" (( "(") (type_descriptor "code ******" (type_identifier "code") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (call_expression "FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,6)" (identifier "FUN_0004ae34") (argument_list "(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,6)" (( "(") (pointer_expression "&pppppppcStack_208" (& "&") (identifier "pppppppcStack_208")) (, ",") (identifier "pppppppcVar34") (, ",") (identifier "pppppppcVar31") (, ",") (number_literal "6") () ")"))))) (; ";")) (expression_statement "pppppppcVar34[0xc] = ppppppcVar32;" (assignment_expression "pppppppcVar34[0xc] = ppppppcVar32" (subscript_expression "pppppppcVar34[0xc]" (identifier "pppppppcVar34") ([ "[") (number_literal "0xc") (] "]")) (= "=") (identifier "ppppppcVar32")) (; ";")) (expression_statement "pppppppcVar29 = pppppppcStack_208;" (assignment_expression "pppppppcVar29 = pppppppcStack_208" (identifier "pppppppcVar29") (= "=") (identifier "pppppppcStack_208")) (; ";")) (if_statement "if (((pppppppcVar34[10] == (code ******)0x0) ||\n                          (pppppppcVar34[0xb] == (code ******)0x0)) ||\n                         (ppppppcVar32 == (code ******)0x0)) goto LAB_00056cb8;" (if "if") (parenthesized_expression "(((pppppppcVar34[10] == (code ******)0x0) ||\n                          (pppppppcVar34[0xb] == (code ******)0x0)) ||\n                         (ppppppcVar32 == (code ******)0x0))" (( "(") (binary_expression "((pppppppcVar34[10] == (code ******)0x0) ||\n                          (pppppppcVar34[0xb] == (code ******)0x0)) ||\n                         (ppppppcVar32 == (code ******)0x0)" (parenthesized_expression "((pppppppcVar34[10] == (code ******)0x0) ||\n                          (pppppppcVar34[0xb] == (code ******)0x0))" (( "(") (binary_expression "(pppppppcVar34[10] == (code ******)0x0) ||\n                          (pppppppcVar34[0xb] == (code ******)0x0)" (parenthesized_expression "(pppppppcVar34[10] == (code ******)0x0)" (( "(") (binary_expression "pppppppcVar34[10] == (code ******)0x0" (subscript_expression "pppppppcVar34[10]" (identifier "pppppppcVar34") ([ "[") (number_literal "10") (] "]")) (== "==") (cast_expression "(code ******)0x0" (( "(") (type_descriptor "code ******" (type_identifier "code") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) () ")")) (|| "||") (parenthesized_expression "(pppppppcVar34[0xb] == (code ******)0x0)" (( "(") (binary_expression "pppppppcVar34[0xb] == (code ******)0x0" (subscript_expression "pppppppcVar34[0xb]" (identifier "pppppppcVar34") ([ "[") (number_literal "0xb") (] "]")) (== "==") (cast_expression "(code ******)0x0" (( "(") (type_descriptor "code ******" (type_identifier "code") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) () ")"))) () ")")) (|| "||") (parenthesized_expression "(ppppppcVar32 == (code ******)0x0)" (( "(") (binary_expression "ppppppcVar32 == (code ******)0x0" (identifier "ppppppcVar32") (== "==") (cast_expression "(code ******)0x0" (( "(") (type_descriptor "code ******" (type_identifier "code") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) () ")"))) () ")")) (goto_statement "goto LAB_00056cb8;" (goto "goto") (statement_identifier "LAB_00056cb8") (; ";"))) (} "}")))) (expression_statement "(**(code **)(puVar41 + 0x23dc0))(piStack_1fc);" (call_expression "(**(code **)(puVar41 + 0x23dc0))(piStack_1fc)" (parenthesized_expression "(**(code **)(puVar41 + 0x23dc0))" (( "(") (pointer_expression "**(code **)(puVar41 + 0x23dc0)" (* "*") (pointer_expression "*(code **)(puVar41 + 0x23dc0)" (* "*") (cast_expression "(code **)(puVar41 + 0x23dc0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar41 + 0x23dc0)" (( "(") (binary_expression "puVar41 + 0x23dc0" (identifier "puVar41") (+ "+") (number_literal "0x23dc0")) () ")"))))) () ")")) (argument_list "(piStack_1fc)" (( "(") (identifier "piStack_1fc") () ")"))) (; ";")) (expression_statement "pppppppcVar29 = pppppppcVar33;" (assignment_expression "pppppppcVar29 = pppppppcVar33" (identifier "pppppppcVar29") (= "=") (identifier "pppppppcVar33")) (; ";")) (} "}"))) (} "}"))) (labeled_statement "LAB_00056cb8:\n                pppppppcStack_20c = pppppppcVar29;" (statement_identifier "LAB_00056cb8") (: ":") (expression_statement "pppppppcStack_20c = pppppppcVar29;" (assignment_expression "pppppppcStack_20c = pppppppcVar29" (identifier "pppppppcStack_20c") (= "=") (identifier "pppppppcVar29")) (; ";"))) (expression_statement "FUN_0004b234(pppppppcVar3);" (call_expression "FUN_0004b234(pppppppcVar3)" (identifier "FUN_0004b234") (argument_list "(pppppppcVar3)" (( "(") (identifier "pppppppcVar3") () ")"))) (; ";")) (expression_statement "FUN_0004b2bc(&pppppppcStack_1f8);" (call_expression "FUN_0004b2bc(&pppppppcStack_1f8)" (identifier "FUN_0004b2bc") (argument_list "(&pppppppcStack_1f8)" (( "(") (pointer_expression "&pppppppcStack_1f8" (& "&") (identifier "pppppppcStack_1f8")) () ")"))) (; ";")) (expression_statement "pppppppcVar29 = pppppppcStack_20c;" (assignment_expression "pppppppcVar29 = pppppppcStack_20c" (identifier "pppppppcVar29") (= "=") (identifier "pppppppcStack_20c")) (; ";")) (if_statement "if (pppppppcStack_20c != (code *******)0x0) {\n                  if (*(int *)(puVar41 + 0x23c78) != 0) {\n                    (**(code **)(puVar41 + 0x23df0))(pppppppcVar34 + 0x22);\n                  }\n                  FUN_0004b338(pppppppcVar34);\n                  *pppppppcVar3 = (code ******)0x0;\n                  pppppppcVar3[1] = (code ******)0x0;\n                  pppppppcVar29 = pppppppcStack_20c;\n                }" (if "if") (parenthesized_expression "(pppppppcStack_20c != (code *******)0x0)" (( "(") (binary_expression "pppppppcStack_20c != (code *******)0x0" (identifier "pppppppcStack_20c") (!= "!=") (cast_expression "(code *******)0x0" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                  if (*(int *)(puVar41 + 0x23c78) != 0) {\n                    (**(code **)(puVar41 + 0x23df0))(pppppppcVar34 + 0x22);\n                  }\n                  FUN_0004b338(pppppppcVar34);\n                  *pppppppcVar3 = (code ******)0x0;\n                  pppppppcVar3[1] = (code ******)0x0;\n                  pppppppcVar29 = pppppppcStack_20c;\n                }" ({ "{") (if_statement "if (*(int *)(puVar41 + 0x23c78) != 0) {\n                    (**(code **)(puVar41 + 0x23df0))(pppppppcVar34 + 0x22);\n                  }" (if "if") (parenthesized_expression "(*(int *)(puVar41 + 0x23c78) != 0)" (( "(") (binary_expression "*(int *)(puVar41 + 0x23c78) != 0" (pointer_expression "*(int *)(puVar41 + 0x23c78)" (* "*") (cast_expression "(int *)(puVar41 + 0x23c78)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar41 + 0x23c78)" (( "(") (binary_expression "puVar41 + 0x23c78" (identifier "puVar41") (+ "+") (number_literal "0x23c78")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                    (**(code **)(puVar41 + 0x23df0))(pppppppcVar34 + 0x22);\n                  }" ({ "{") (expression_statement "(**(code **)(puVar41 + 0x23df0))(pppppppcVar34 + 0x22);" (call_expression "(**(code **)(puVar41 + 0x23df0))(pppppppcVar34 + 0x22)" (parenthesized_expression "(**(code **)(puVar41 + 0x23df0))" (( "(") (pointer_expression "**(code **)(puVar41 + 0x23df0)" (* "*") (pointer_expression "*(code **)(puVar41 + 0x23df0)" (* "*") (cast_expression "(code **)(puVar41 + 0x23df0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar41 + 0x23df0)" (( "(") (binary_expression "puVar41 + 0x23df0" (identifier "puVar41") (+ "+") (number_literal "0x23df0")) () ")"))))) () ")")) (argument_list "(pppppppcVar34 + 0x22)" (( "(") (binary_expression "pppppppcVar34 + 0x22" (identifier "pppppppcVar34") (+ "+") (number_literal "0x22")) () ")"))) (; ";")) (} "}"))) (expression_statement "FUN_0004b338(pppppppcVar34);" (call_expression "FUN_0004b338(pppppppcVar34)" (identifier "FUN_0004b338") (argument_list "(pppppppcVar34)" (( "(") (identifier "pppppppcVar34") () ")"))) (; ";")) (expression_statement "*pppppppcVar3 = (code ******)0x0;" (assignment_expression "*pppppppcVar3 = (code ******)0x0" (pointer_expression "*pppppppcVar3" (* "*") (identifier "pppppppcVar3")) (= "=") (cast_expression "(code ******)0x0" (( "(") (type_descriptor "code ******" (type_identifier "code") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "pppppppcVar3[1] = (code ******)0x0;" (assignment_expression "pppppppcVar3[1] = (code ******)0x0" (subscript_expression "pppppppcVar3[1]" (identifier "pppppppcVar3") ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(code ******)0x0" (( "(") (type_descriptor "code ******" (type_identifier "code") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "pppppppcVar29 = pppppppcStack_20c;" (assignment_expression "pppppppcVar29 = pppppppcStack_20c" (identifier "pppppppcVar29") (= "=") (identifier "pppppppcStack_20c")) (; ";")) (} "}"))) (goto_statement "goto LAB_00056cfc;" (goto "goto") (statement_identifier "LAB_00056cfc") (; ";")) (} "}"))) (} "}"))) (} "}"))) (} "}")))))))))) (} "}")) (else_clause "else {\n        pppppppcVar31 = (code *******)0x0;\n        if (pppppppcVar29 != (code *******)0x0) {\n          pppppppcVar33 = (code *******)FUN_000470f0(ppppppcVar32,0,0,2);\n          goto LAB_000564b0;\n        }\nLAB_000566f4:\n        pppppppcVar34[0xd] = (code ******)0x0;\n        pppppppcVar30 = pppppppcStack_20c;\n      }" (else "else") (compound_statement "{\n        pppppppcVar31 = (code *******)0x0;\n        if (pppppppcVar29 != (code *******)0x0) {\n          pppppppcVar33 = (code *******)FUN_000470f0(ppppppcVar32,0,0,2);\n          goto LAB_000564b0;\n        }\nLAB_000566f4:\n        pppppppcVar34[0xd] = (code ******)0x0;\n        pppppppcVar30 = pppppppcStack_20c;\n      }" ({ "{") (expression_statement "pppppppcVar31 = (code *******)0x0;" (assignment_expression "pppppppcVar31 = (code *******)0x0" (identifier "pppppppcVar31") (= "=") (cast_expression "(code *******)0x0" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) (; ";")) (if_statement "if (pppppppcVar29 != (code *******)0x0) {\n          pppppppcVar33 = (code *******)FUN_000470f0(ppppppcVar32,0,0,2);\n          goto LAB_000564b0;\n        }" (if "if") (parenthesized_expression "(pppppppcVar29 != (code *******)0x0)" (( "(") (binary_expression "pppppppcVar29 != (code *******)0x0" (identifier "pppppppcVar29") (!= "!=") (cast_expression "(code *******)0x0" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          pppppppcVar33 = (code *******)FUN_000470f0(ppppppcVar32,0,0,2);\n          goto LAB_000564b0;\n        }" ({ "{") (expression_statement "pppppppcVar33 = (code *******)FUN_000470f0(ppppppcVar32,0,0,2);" (assignment_expression "pppppppcVar33 = (code *******)FUN_000470f0(ppppppcVar32,0,0,2)" (identifier "pppppppcVar33") (= "=") (cast_expression "(code *******)FUN_000470f0(ppppppcVar32,0,0,2)" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (call_expression "FUN_000470f0(ppppppcVar32,0,0,2)" (identifier "FUN_000470f0") (argument_list "(ppppppcVar32,0,0,2)" (( "(") (identifier "ppppppcVar32") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "2") () ")"))))) (; ";")) (goto_statement "goto LAB_000564b0;" (goto "goto") (statement_identifier "LAB_000564b0") (; ";")) (} "}"))) (labeled_statement "LAB_000566f4:\n        pppppppcVar34[0xd] = (code ******)0x0;" (statement_identifier "LAB_000566f4") (: ":") (expression_statement "pppppppcVar34[0xd] = (code ******)0x0;" (assignment_expression "pppppppcVar34[0xd] = (code ******)0x0" (subscript_expression "pppppppcVar34[0xd]" (identifier "pppppppcVar34") ([ "[") (number_literal "0xd") (] "]")) (= "=") (cast_expression "(code ******)0x0" (( "(") (type_descriptor "code ******" (type_identifier "code") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) (; ";"))) (expression_statement "pppppppcVar30 = pppppppcStack_20c;" (assignment_expression "pppppppcVar30 = pppppppcStack_20c" (identifier "pppppppcVar30") (= "=") (identifier "pppppppcStack_20c")) (; ";")) (} "}")))) (labeled_statement "LAB_00056168:\n      pppppppcStack_20c = pppppppcVar30;" (statement_identifier "LAB_00056168") (: ":") (expression_statement "pppppppcStack_20c = pppppppcVar30;" (assignment_expression "pppppppcStack_20c = pppppppcVar30" (identifier "pppppppcStack_20c") (= "=") (identifier "pppppppcVar30")) (; ";"))) (expression_statement "FUN_0004b234(pppppppcVar3);" (call_expression "FUN_0004b234(pppppppcVar3)" (identifier "FUN_0004b234") (argument_list "(pppppppcVar3)" (( "(") (identifier "pppppppcVar3") () ")"))) (; ";")) (expression_statement "FUN_0004b2bc(&pppppppcStack_1f8);" (call_expression "FUN_0004b2bc(&pppppppcStack_1f8)" (identifier "FUN_0004b2bc") (argument_list "(&pppppppcStack_1f8)" (( "(") (pointer_expression "&pppppppcStack_1f8" (& "&") (identifier "pppppppcStack_1f8")) () ")"))) (; ";")) (if_statement "if (*(int *)(puVar41 + 0x23c78) != 0) {\n        (**(code **)(puVar41 + 0x23df0))(pppppppcVar34 + 0x22);\n      }" (if "if") (parenthesized_expression "(*(int *)(puVar41 + 0x23c78) != 0)" (( "(") (binary_expression "*(int *)(puVar41 + 0x23c78) != 0" (pointer_expression "*(int *)(puVar41 + 0x23c78)" (* "*") (cast_expression "(int *)(puVar41 + 0x23c78)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar41 + 0x23c78)" (( "(") (binary_expression "puVar41 + 0x23c78" (identifier "puVar41") (+ "+") (number_literal "0x23c78")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        (**(code **)(puVar41 + 0x23df0))(pppppppcVar34 + 0x22);\n      }" ({ "{") (expression_statement "(**(code **)(puVar41 + 0x23df0))(pppppppcVar34 + 0x22);" (call_expression "(**(code **)(puVar41 + 0x23df0))(pppppppcVar34 + 0x22)" (parenthesized_expression "(**(code **)(puVar41 + 0x23df0))" (( "(") (pointer_expression "**(code **)(puVar41 + 0x23df0)" (* "*") (pointer_expression "*(code **)(puVar41 + 0x23df0)" (* "*") (cast_expression "(code **)(puVar41 + 0x23df0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar41 + 0x23df0)" (( "(") (binary_expression "puVar41 + 0x23df0" (identifier "puVar41") (+ "+") (number_literal "0x23df0")) () ")"))))) () ")")) (argument_list "(pppppppcVar34 + 0x22)" (( "(") (binary_expression "pppppppcVar34 + 0x22" (identifier "pppppppcVar34") (+ "+") (number_literal "0x22")) () ")"))) (; ";")) (} "}"))) (expression_statement "FUN_0004b338(pppppppcVar34);" (call_expression "FUN_0004b338(pppppppcVar34)" (identifier "FUN_0004b338") (argument_list "(pppppppcVar34)" (( "(") (identifier "pppppppcVar34") () ")"))) (; ";")) (expression_statement "*pppppppcVar3 = (code ******)0x0;" (assignment_expression "*pppppppcVar3 = (code ******)0x0" (pointer_expression "*pppppppcVar3" (* "*") (identifier "pppppppcVar3")) (= "=") (cast_expression "(code ******)0x0" (( "(") (type_descriptor "code ******" (type_identifier "code") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "pppppppcVar3[1] = (code ******)0x0;" (assignment_expression "pppppppcVar3[1] = (code ******)0x0" (subscript_expression "pppppppcVar3[1]" (identifier "pppppppcVar3") ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(code ******)0x0" (( "(") (type_descriptor "code ******" (type_identifier "code") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "pppppppcVar29 = pppppppcStack_20c;" (assignment_expression "pppppppcVar29 = pppppppcStack_20c" (identifier "pppppppcVar29") (= "=") (identifier "pppppppcStack_20c")) (; ";")) (goto_statement "goto LAB_00056cfc;" (goto "goto") (statement_identifier "LAB_00056cfc") (; ";")) (} "}"))) (expression_statement "pppppppcVar38 = (code *******)0x0;" (assignment_expression "pppppppcVar38 = (code *******)0x0" (identifier "pppppppcVar38") (= "=") (cast_expression "(code *******)0x0" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "iVar18 = (**(code **)(puVar41 + 0x23d98))(pppppppcVar34 + 0x22,0);" (assignment_expression "iVar18 = (**(code **)(puVar41 + 0x23d98))(pppppppcVar34 + 0x22,0)" (identifier "iVar18") (= "=") (call_expression "(**(code **)(puVar41 + 0x23d98))(pppppppcVar34 + 0x22,0)" (parenthesized_expression "(**(code **)(puVar41 + 0x23d98))" (( "(") (pointer_expression "**(code **)(puVar41 + 0x23d98)" (* "*") (pointer_expression "*(code **)(puVar41 + 0x23d98)" (* "*") (cast_expression "(code **)(puVar41 + 0x23d98)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar41 + 0x23d98)" (( "(") (binary_expression "puVar41 + 0x23d98" (identifier "puVar41") (+ "+") (number_literal "0x23d98")) () ")"))))) () ")")) (argument_list "(pppppppcVar34 + 0x22,0)" (( "(") (binary_expression "pppppppcVar34 + 0x22" (identifier "pppppppcVar34") (+ "+") (number_literal "0x22")) (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar18 != 0) goto LAB_00056e5c;" (if "if") (parenthesized_expression "(iVar18 != 0)" (( "(") (binary_expression "iVar18 != 0" (identifier "iVar18") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00056e5c;" (goto "goto") (statement_identifier "LAB_00056e5c") (; ";"))) (if_statement "if (pppppppcStack_20c == (code *******)0x0) goto LAB_00056054;" (if "if") (parenthesized_expression "(pppppppcStack_20c == (code *******)0x0)" (( "(") (binary_expression "pppppppcStack_20c == (code *******)0x0" (identifier "pppppppcStack_20c") (== "==") (cast_expression "(code *******)0x0" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00056054;" (goto "goto") (statement_identifier "LAB_00056054") (; ";"))) (} "}")) (else_clause "else {\nLAB_00056e5c:\n    pppppppcStack_20c = (code *******)0xc;\n  }" (else "else") (compound_statement "{\nLAB_00056e5c:\n    pppppppcStack_20c = (code *******)0xc;\n  }" ({ "{") (labeled_statement "LAB_00056e5c:\n    pppppppcStack_20c = (code *******)0xc;" (statement_identifier "LAB_00056e5c") (: ":") (expression_statement "pppppppcStack_20c = (code *******)0xc;" (assignment_expression "pppppppcStack_20c = (code *******)0xc" (identifier "pppppppcStack_20c") (= "=") (cast_expression "(code *******)0xc" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0xc"))) (; ";"))) (} "}")))) (expression_statement "FUN_0004b338(pppppppcVar34);" (call_expression "FUN_0004b338(pppppppcVar34)" (identifier "FUN_0004b338") (argument_list "(pppppppcVar34)" (( "(") (identifier "pppppppcVar34") () ")"))) (; ";")) (expression_statement "*pppppppcVar3 = (code ******)0x0;" (assignment_expression "*pppppppcVar3 = (code ******)0x0" (pointer_expression "*pppppppcVar3" (* "*") (identifier "pppppppcVar3")) (= "=") (cast_expression "(code ******)0x0" (( "(") (type_descriptor "code ******" (type_identifier "code") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "pppppppcVar3[1] = (code ******)0x0;" (assignment_expression "pppppppcVar3[1] = (code ******)0x0" (subscript_expression "pppppppcVar3[1]" (identifier "pppppppcVar3") ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(code ******)0x0" (( "(") (type_descriptor "code ******" (type_identifier "code") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "pppppppcVar29 = pppppppcStack_20c;" (assignment_expression "pppppppcVar29 = pppppppcStack_20c" (identifier "pppppppcVar29") (= "=") (identifier "pppppppcStack_20c")) (; ";")) (labeled_statement "LAB_00056cfc:\n  if (iStack_1a4 == **(int **)(puVar41 + 0x23dac)) {\n    return pppppppcVar29;\n  }" (statement_identifier "LAB_00056cfc") (: ":") (if_statement "if (iStack_1a4 == **(int **)(puVar41 + 0x23dac)) {\n    return pppppppcVar29;\n  }" (if "if") (parenthesized_expression "(iStack_1a4 == **(int **)(puVar41 + 0x23dac))" (( "(") (binary_expression "iStack_1a4 == **(int **)(puVar41 + 0x23dac)" (identifier "iStack_1a4") (== "==") (pointer_expression "**(int **)(puVar41 + 0x23dac)" (* "*") (pointer_expression "*(int **)(puVar41 + 0x23dac)" (* "*") (cast_expression "(int **)(puVar41 + 0x23dac)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar41 + 0x23dac)" (( "(") (binary_expression "puVar41 + 0x23dac" (identifier "puVar41") (+ "+") (number_literal "0x23dac")) () ")")))))) () ")")) (compound_statement "{\n    return pppppppcVar29;\n  }" ({ "{") (return_statement "return pppppppcVar29;" (return "return") (identifier "pppppppcVar29") (; ";")) (} "}")))) (expression_statement "pcVar4 = *(code **)(puVar41 + 0x23d6c);" (assignment_expression "pcVar4 = *(code **)(puVar41 + 0x23d6c)" (identifier "pcVar4") (= "=") (pointer_expression "*(code **)(puVar41 + 0x23d6c)" (* "*") (cast_expression "(code **)(puVar41 + 0x23d6c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar41 + 0x23d6c)" (( "(") (binary_expression "puVar41 + 0x23d6c" (identifier "puVar41") (+ "+") (number_literal "0x23d6c")) () ")"))))) (; ";")) (expression_statement "iVar18 = iStack_1a4;" (assignment_expression "iVar18 = iStack_1a4" (identifier "iVar18") (= "=") (identifier "iStack_1a4")) (; ";")) (expression_statement "(*pcVar4)();" (call_expression "(*pcVar4)()" (parenthesized_expression "(*pcVar4)" (( "(") (pointer_expression "*pcVar4" (* "*") (identifier "pcVar4")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "*(byte *)(pppppppcVar31 + 7) =\n       (byte)*(code *)(pppppppcVar31 + 7) & 0xf6 |\n       (byte)(((uint)(**(int **)(pcVar4 + 0x22b18) << 6) >> 0x1f) << 3) | 1;" (assignment_expression "*(byte *)(pppppppcVar31 + 7) =\n       (byte)*(code *)(pppppppcVar31 + 7) & 0xf6 |\n       (byte)(((uint)(**(int **)(pcVar4 + 0x22b18) << 6) >> 0x1f) << 3) | 1" (pointer_expression "*(byte *)(pppppppcVar31 + 7)" (* "*") (cast_expression "(byte *)(pppppppcVar31 + 7)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pppppppcVar31 + 7)" (( "(") (binary_expression "pppppppcVar31 + 7" (identifier "pppppppcVar31") (+ "+") (number_literal "7")) () ")")))) (= "=") (binary_expression "(byte)*(code *)(pppppppcVar31 + 7) & 0xf6 |\n       (byte)(((uint)(**(int **)(pcVar4 + 0x22b18) << 6) >> 0x1f) << 3) | 1" (binary_expression "(byte)*(code *)(pppppppcVar31 + 7) & 0xf6 |\n       (byte)(((uint)(**(int **)(pcVar4 + 0x22b18) << 6) >> 0x1f) << 3)" (binary_expression "(byte)*(code *)(pppppppcVar31 + 7) & 0xf6" (binary_expression "(byte)*(code *)(pppppppcVar31 + 7)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (* "*") (cast_expression "(code *)(pppppppcVar31 + 7)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pppppppcVar31 + 7)" (( "(") (binary_expression "pppppppcVar31 + 7" (identifier "pppppppcVar31") (+ "+") (number_literal "7")) () ")")))) (& "&") (number_literal "0xf6")) (| "|") (call_expression "(byte)(((uint)(**(int **)(pcVar4 + 0x22b18) << 6) >> 0x1f) << 3)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(((uint)(**(int **)(pcVar4 + 0x22b18) << 6) >> 0x1f) << 3)" (( "(") (binary_expression "((uint)(**(int **)(pcVar4 + 0x22b18) << 6) >> 0x1f) << 3" (parenthesized_expression "((uint)(**(int **)(pcVar4 + 0x22b18) << 6) >> 0x1f)" (( "(") (binary_expression "(uint)(**(int **)(pcVar4 + 0x22b18) << 6) >> 0x1f" (call_expression "(uint)(**(int **)(pcVar4 + 0x22b18) << 6)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(**(int **)(pcVar4 + 0x22b18) << 6)" (( "(") (binary_expression "**(int **)(pcVar4 + 0x22b18) << 6" (pointer_expression "**(int **)(pcVar4 + 0x22b18)" (* "*") (pointer_expression "*(int **)(pcVar4 + 0x22b18)" (* "*") (cast_expression "(int **)(pcVar4 + 0x22b18)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar4 + 0x22b18)" (( "(") (binary_expression "pcVar4 + 0x22b18" (identifier "pcVar4") (+ "+") (number_literal "0x22b18")) () ")"))))) (<< "<<") (number_literal "6")) () ")"))) (>> ">>") (number_literal "0x1f")) () ")")) (<< "<<") (number_literal "3")) () ")")))) (| "|") (number_literal "1"))) (; ";")) (expression_statement "iVar18 = FUN_00055e64(pppppppcVar31,iVar18,pppppppcVar38);" (assignment_expression "iVar18 = FUN_00055e64(pppppppcVar31,iVar18,pppppppcVar38)" (identifier "iVar18") (= "=") (call_expression "FUN_00055e64(pppppppcVar31,iVar18,pppppppcVar38)" (identifier "FUN_00055e64") (argument_list "(pppppppcVar31,iVar18,pppppppcVar38)" (( "(") (identifier "pppppppcVar31") (, ",") (identifier "iVar18") (, ",") (identifier "pppppppcVar38") () ")")))) (; ";")) (if_statement "if (iVar18 == 0) {\n    pppppppcVar29 = (code *******)0x0;\n  }\n  else {\n    pppppppcVar29 =\n         (code *******)\n         (**(code **)(pcVar4 + 0x22d48))\n                   (0,*(int *)(pcVar4 + 0x22728) + 0x6f48 +\n                      *(int *)(iVar18 * 4 + *(int *)(pcVar4 + 0x22728) + 0x6f04),5);\n  }" (if "if") (parenthesized_expression "(iVar18 == 0)" (( "(") (binary_expression "iVar18 == 0" (identifier "iVar18") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    pppppppcVar29 = (code *******)0x0;\n  }" ({ "{") (expression_statement "pppppppcVar29 = (code *******)0x0;" (assignment_expression "pppppppcVar29 = (code *******)0x0" (identifier "pppppppcVar29") (= "=") (cast_expression "(code *******)0x0" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) (; ";")) (} "}")) (else_clause "else {\n    pppppppcVar29 =\n         (code *******)\n         (**(code **)(pcVar4 + 0x22d48))\n                   (0,*(int *)(pcVar4 + 0x22728) + 0x6f48 +\n                      *(int *)(iVar18 * 4 + *(int *)(pcVar4 + 0x22728) + 0x6f04),5);\n  }" (else "else") (compound_statement "{\n    pppppppcVar29 =\n         (code *******)\n         (**(code **)(pcVar4 + 0x22d48))\n                   (0,*(int *)(pcVar4 + 0x22728) + 0x6f48 +\n                      *(int *)(iVar18 * 4 + *(int *)(pcVar4 + 0x22728) + 0x6f04),5);\n  }" ({ "{") (expression_statement "pppppppcVar29 =\n         (code *******)\n         (**(code **)(pcVar4 + 0x22d48))\n                   (0,*(int *)(pcVar4 + 0x22728) + 0x6f48 +\n                      *(int *)(iVar18 * 4 + *(int *)(pcVar4 + 0x22728) + 0x6f04),5);" (assignment_expression "pppppppcVar29 =\n         (code *******)\n         (**(code **)(pcVar4 + 0x22d48))\n                   (0,*(int *)(pcVar4 + 0x22728) + 0x6f48 +\n                      *(int *)(iVar18 * 4 + *(int *)(pcVar4 + 0x22728) + 0x6f04),5)" (identifier "pppppppcVar29") (= "=") (cast_expression "(code *******)\n         (**(code **)(pcVar4 + 0x22d48))\n                   (0,*(int *)(pcVar4 + 0x22728) + 0x6f48 +\n                      *(int *)(iVar18 * 4 + *(int *)(pcVar4 + 0x22728) + 0x6f04),5)" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (call_expression "(**(code **)(pcVar4 + 0x22d48))\n                   (0,*(int *)(pcVar4 + 0x22728) + 0x6f48 +\n                      *(int *)(iVar18 * 4 + *(int *)(pcVar4 + 0x22728) + 0x6f04),5)" (parenthesized_expression "(**(code **)(pcVar4 + 0x22d48))" (( "(") (pointer_expression "**(code **)(pcVar4 + 0x22d48)" (* "*") (pointer_expression "*(code **)(pcVar4 + 0x22d48)" (* "*") (cast_expression "(code **)(pcVar4 + 0x22d48)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar4 + 0x22d48)" (( "(") (binary_expression "pcVar4 + 0x22d48" (identifier "pcVar4") (+ "+") (number_literal "0x22d48")) () ")"))))) () ")")) (argument_list "(0,*(int *)(pcVar4 + 0x22728) + 0x6f48 +\n                      *(int *)(iVar18 * 4 + *(int *)(pcVar4 + 0x22728) + 0x6f04),5)" (( "(") (number_literal "0") (, ",") (binary_expression "*(int *)(pcVar4 + 0x22728) + 0x6f48 +\n                      *(int *)(iVar18 * 4 + *(int *)(pcVar4 + 0x22728) + 0x6f04)" (binary_expression "*(int *)(pcVar4 + 0x22728) + 0x6f48" (pointer_expression "*(int *)(pcVar4 + 0x22728)" (* "*") (cast_expression "(int *)(pcVar4 + 0x22728)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar4 + 0x22728)" (( "(") (binary_expression "pcVar4 + 0x22728" (identifier "pcVar4") (+ "+") (number_literal "0x22728")) () ")")))) (+ "+") (number_literal "0x6f48")) (+ "+") (pointer_expression "*(int *)(iVar18 * 4 + *(int *)(pcVar4 + 0x22728) + 0x6f04)" (* "*") (cast_expression "(int *)(iVar18 * 4 + *(int *)(pcVar4 + 0x22728) + 0x6f04)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 * 4 + *(int *)(pcVar4 + 0x22728) + 0x6f04)" (( "(") (binary_expression "iVar18 * 4 + *(int *)(pcVar4 + 0x22728) + 0x6f04" (binary_expression "iVar18 * 4 + *(int *)(pcVar4 + 0x22728)" (binary_expression "iVar18 * 4" (identifier "iVar18") (* "*") (number_literal "4")) (+ "+") (pointer_expression "*(int *)(pcVar4 + 0x22728)" (* "*") (cast_expression "(int *)(pcVar4 + 0x22728)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar4 + 0x22728)" (( "(") (binary_expression "pcVar4 + 0x22728" (identifier "pcVar4") (+ "+") (number_literal "0x22728")) () ")"))))) (+ "+") (number_literal "0x6f04")) () ")"))))) (, ",") (number_literal "5") () ")"))))) (; ";")) (} "}")))) (return_statement "return pppppppcVar29;" (return "return") (identifier "pppppppcVar29") (; ";")) (labeled_statement "code_r0x00055b38:\n  if ((int)pppppppcVar26 < (int)local_dc) goto LAB_000557a8;" (statement_identifier "code_r0x00055b38") (: ":") (if_statement "if ((int)pppppppcVar26 < (int)local_dc) goto LAB_000557a8;" (if "if") (parenthesized_expression "((int)pppppppcVar26 < (int)local_dc)" (( "(") (binary_expression "(int)pppppppcVar26 < (int)local_dc" (cast_expression "(int)pppppppcVar26" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppcVar26")) (< "<") (cast_expression "(int)local_dc" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_dc"))) () ")")) (goto_statement "goto LAB_000557a8;" (goto "goto") (statement_identifier "LAB_000557a8") (; ";")))) (goto_statement "goto LAB_00055b44;" (goto "goto") (statement_identifier "LAB_00055b44") (; ";")) (labeled_statement "LAB_000557a8:\n  local_150 = (code *******)0x1;" (statement_identifier "LAB_000557a8") (: ":") (expression_statement "local_150 = (code *******)0x1;" (assignment_expression "local_150 = (code *******)0x1" (identifier "local_150") (= "=") (cast_expression "(code *******)0x1" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x1"))) (; ";"))) (goto_statement "goto LAB_000557e4;" (goto "goto") (statement_identifier "LAB_000557e4") (; ";")) (labeled_statement "LAB_00055914:\n  local_150 = (code *******)0xc;" (statement_identifier "LAB_00055914") (: ":") (expression_statement "local_150 = (code *******)0xc;" (assignment_expression "local_150 = (code *******)0xc" (identifier "local_150") (= "=") (cast_expression "(code *******)0xc" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0xc"))) (; ";"))) (expression_statement "param_4 = pppppppcVar14;" (assignment_expression "param_4 = pppppppcVar14" (identifier "param_4") (= "=") (identifier "pppppppcVar14")) (; ";")) (goto_statement "goto LAB_000557e4;" (goto "goto") (statement_identifier "LAB_000557e4") (; ";")) (} "}")))

type_1
function_1(type_2 *var_52,char *string,type_3 var_5,type_3 var_1,type_3 var_2,type_3 var_27,
                  size_t var_3,type_4 *var_45,int var_9)

{
  type_5 var_51;
  type_6 *paVar2;
  type_7 *prVar3;
  type_6 preg_00;
  type_6 aVar4;
  type_8 *var_89;
  int *piVar6;
  type_6 aVar7;
  type_9 var_15;
  type_8 *pcVar9;
  type_8 *pcVar10;
  type_8 *pcVar11;
  type_8 *pcVar12;
  type_8 *pcVar13;
  type_10 **var_37;
  type_6 aVar15;
  type_6 aVar16;
  type_3 var_23;
  type_6 *var_34;
  bool var_55;
  type_4 *var_46;
  type_11 var_12;
  type_1 var_56;
  char var_42;
  type_12 bVar22;
  type_13 *prVar23;
  type_5 *var_53;
  type_14 var_54;
  type_9 var_29;
  type_15 *var_69;
  type_16 *var_70;
  type_17 **var_71;
  type_17 *var_72;
  type_17 *var_74;
  type_18 *puVar32;
  int var_77;
  type_1 var_81;
  type_10 *var_85;
  int *var_21;
  type_6 aVar39;
  type_6 aVar40;
  type_6 aVar41;
  type_11 *prVar42;
  type_6 *paVar43;
  type_19 *pwVar44;
  char *pattern;
  type_6 aVar45;
  type_6 aVar46;
  type_20 rVar47;
  type_1 var_83;
  type_6 aVar49;
  type_21 *var_6;
  type_7 *var_17;
  type_7 *var_36;
  type_22 var_90;
  type_23 *prVar53;
  type_6 *var_24;
  int var_8;
  type_6 aVar56;
  type_24 *var_76;
  type_7 *var_48;
  int var_78;
  type_6 unaff_s5;
  type_7 *prVar59;
  type_9 var_28;
  type_6 unaff_s7;
  int var_30;
  type_25 *var_50;
  type_6 unaff_s8;
  type_26 uVar63;
  type_6 aStack_218;
  type_1 var_67;
  type_1 rStack_208;
  type_16 var_84;
  type_6 aStack_1f8;
  type_6 aaStack_1f4 [6];
  int var_63;
  int var_61;
  int var_62;
  type_6 aStack_1cc;
  type_6 aStack_1c8;
  type_6 aStack_1c4;
  type_6 aStack_1c0;
  type_9 uStack_1b8;
  type_18 uStack_1b0;
  type_5 bStack_1af;
  type_5 bStack_1ae;
  char var_57;
  int iStack_1a8;
  char *var_88;
  type_6 aStack_1a0;
  type_6 *paStack_19c;
  type_6 aStack_198;
  type_6 aStack_194;
  type_7 *prStack_190;
  type_6 aStack_18c;
  type_7 *prStack_188;
  type_6 aStack_184;
  type_6 aStack_180;
  type_8 *pcStack_17c;
  type_6 local_150;
  type_6 local_148;
  int *var_38;
  type_6 local_138;
  int var_4;
  type_3 var_14;
  type_1 var_19;
  type_1 var_31;
  type_16 var_32;
  type_6 local_c4;
  type_27 var_13;
  
  preg_00 = *(type_6 *)PTR___stack_chk_guard_00079c10;
  prVar59 = var_52->buffer;
  aVar45.sbcset = (type_14)0x0;
  var_17 = (type_7 *)var_1;
  (*(type_8 *)PTR_memset_00079b00)(&var_13,0,0x88);
  local_148 = (type_6)var_52->fastmap;
  if ((type_7 *)local_148.sbcset != (type_7 *)0x0) {
    if ((var_52->field_0x1c & 0x10) == 0) {
      local_148.sbcset = (type_14)0x0;
    }
    else if (var_1 == var_2) {
      local_148.sbcset = (type_14)0x0;
    }
    else if ((char)var_52->field_0x1c < '\0') {
      local_148.sbcset = (type_14)0x0;
    }
  }
  if (var_52->re_nsub < var_3) {
    var_4 = (var_3 - 1) - var_52->re_nsub;
  }
  else {
    var_4 = 0;
  }
  aStack_1a0.idx = var_1;
  paStack_19c = (type_6 *)var_52;
  local_c4 = unaff_s8;
  var_13.dfa = prVar59;
  if (var_52->used == 0) {
    local_150.idx = 1;
  }
  else if (prVar59->init_state == (type_10 *)0x0) {
    local_150.idx = 1;
  }
  else if (prVar59->init_state_word == (type_10 *)0x0) {
    local_150.idx = 1;
  }
  else if (prVar59->init_state_nl == (type_10 *)0x0) {
    local_150.idx = 1;
  }
  else {
    aVar45 = (type_6)prVar59->init_state_begbuf;
    if ((type_7 *)aVar45.sbcset == (type_7 *)0x0) {
      local_150.idx = 1;
    }
    else {
      aVar4.idx = var_2;
      if (((((prVar59->init_state->nodes).nelem == 0) &&
           ((prVar59->init_state_word->nodes).nelem == 0)) &&
          (((prVar59->init_state_nl->nodes).nelem == 0 || ((var_52->field_0x1c & 1) == 0)))) &&
         ((aVar4.idx = var_1, var_1 != 0 &&
          (var_1 = var_2, aVar4.idx = var_2, var_2 != 0)))) {
        local_150.idx = 1;
        aStack_1a0.idx = var_2;
      }
      else {
        var_2 = aVar4.idx;
        aVar4.sbcset = (type_14)(var_3 - var_4);
        if ((type_7 *)aVar4.sbcset == (type_7 *)0x0) {
          var_24 = (type_6 *)(type_9)(prVar59->nbackref != 0);
        }
        else {
          var_24 = (type_6 *)0x1;
        }
        var_6 = var_52->translate;
        var_13.input.icase = (type_21)((var_52->var_90 << 9) >> 0x1f);
        var_13.input.mb_cur_max = prVar59->mb_cur_max;
        aVar46.sbcset = (type_14)(prVar59->nodes_len + 1);
        if (aVar46.idx < var_13.input.mb_cur_max) {
          aVar46 = (type_6)var_13.input.mb_cur_max;
        }
        aVar49.idx._0_3_ = 0;
        aVar49.idx._3_1_ = ((type_14)(var_5 + 1)).idx < aVar46.idx;
        var_17 = (type_7 *)0x1;
        var_13.input.mbs_allocated = var_13.input.icase;
        if (var_6 != (type_21 *)0x0) {
          var_13.input.mbs_allocated = 1;
        }
        var_13.input.is_utf8 = (type_21)((type_9)(*(int *)&prVar59->field_0x58 << 2) >> 0x1f);
        var_13.input.map_notascii = (type_21)((type_9)(*(int *)&prVar59->field_0x58 << 3) >> 0x1f);
        aVar45.sbcset = ((type_14)(var_5 + 1)).sbcset;
        if ((type_7 *)aVar49.sbcset == (type_7 *)0x0) {
          aVar45 = aVar46;
        }
        var_13.input.raw_mbs = (type_21 *)string;
        var_13.input.raw_len = var_5;
        var_13.input.len = var_5;
        var_13.input.raw_stop = var_5;
        var_13.input.var_27 = var_5;
        var_13.input.trans = var_6;
        local_150.idx = var_7(&var_13.input,aVar45.idx);
        aVar46.idx = var_1;
        var_34 = var_24;
        var_27 = var_27;
        if ((type_7 *)local_150.sbcset != (type_7 *)0x0) goto LAB_000557e4;
        var_13.input.word_char = prVar59->word_char;
        var_13.input.word_ops_used = (type_21)((type_9)(*(int *)&prVar59->field_0x58 << 4) >> 0x1f);
        paVar2 = (type_6 *)0x0;
        var_13.input.valid_len = (type_3)paVar2;
        if ((var_13.input.mbs_allocated == '\0') &&
           (var_13.input.mbs = (type_21 *)string, prVar59->mb_cur_max < 2)) {
          var_13.input.valid_len = var_5;
        }
        var_13.input.var_27 = var_27;
        var_13.input.raw_stop = var_27;
        var_13.input.newline_anchor = (type_21)((type_9)(*(int *)&var_52->field_0x1c << 7) >> 0x1f);
        var_8 = prVar59->nbackref;
        aVar56.idx = var_8 * 2;
        var_13.var_9 = var_9;
        var_13.match_last = -1;
        var_13.input.valid_raw_len = var_13.input.valid_len;
        if ((int)aVar56 < 1) {
LAB_000559f0:
          var_13.max_mb_elem_len = 1;
          var_13.abkref_ents = aVar56.idx;
          var_13.asub_tops = aVar56.idx;
          if ((aVar4.sbcset < (type_7 *)0x2) && ((prVar59->field_0x58 & 0x40) == 0)) {
            var_13.state_log = (type_10 **)0x0;
LAB_00055a40:
            var_13.input.tip_context = 6;
            if ((var_9 & 1U) != 0) {
              var_13.input.tip_context = 4;
            }
            aVar39.idx = 1;
            aVar40.idx = var_1;
            if (var_2 < var_1) {
              aVar39.idx = -1;
              aVar40.idx = var_2;
            }
            aVar41.idx = var_2;
            if (var_2 <= var_1) {
              aVar41.idx = var_1;
            }
            var_8 = prVar59->mb_cur_max;
            var_12 = 8;
            if ((type_7 *)local_148.sbcset != (type_7 *)0x0) {
              if (var_8 == 1) {
                paVar43 = (type_6 *)0x4;
              }
              else {
                paVar43 = paVar2;
                if ((-1 < (int)(var_52->var_90 << 9)) && (var_6 == (type_21 *)0x0)) {
                  paVar43 = (type_6 *)0x4;
                }
              }
              aVar45.sbcset = (type_14)0x0;
              if (var_1 <= var_2) {
                aVar45.idx = 2;
              }
              var_12 = (type_9)(var_6 != (type_21 *)0x0) | (type_9)paVar43 | aVar45.ctx_type;
            }
            var_14 = var_1;
            if (var_1 < aVar40.idx) {
              local_150.idx = 1;
              var_27 = aVar56.idx;
            }
            else {
              aVar46.idx._0_3_ = 0;
              aVar46.idx._3_1_ = var_2 < var_1;
              if (aVar41.idx < var_1) {
                local_150.idx = 1;
                var_27 = aVar56.idx;
              }
              else {
                var_21 = &var_14;
                if ((type_7 *)aVar46.sbcset != (type_7 *)0x0) {
                  var_21 = (int *)0x0;
                }
                var_89 = (type_8 *)(var_10 + -0x2b7c);
                piVar6 = (int *)(var_11 + (var_12 - 4) * 4 + 0x6e38);
LAB_00055b44:
                if (var_12 - 4 < 5) {
                    /* WARNING: Could not emulate address calculation at 0x00054920 */
                    /* WARNING: Treating indirect jump as call */
                  var_56 = (*(type_8 *)(&_gp + *piVar6))();
                  return var_56;
                }
                var_2 = (type_3)&var_13;
                var_36 = var_17;
                while( true ) {
                  aVar46.idx = var_14;
                  var_15 = var_14 - var_13.input.raw_mbs_idx;
                  aVar49 = (type_6)var_9;
                  var_34 = paVar2;
                  var_27 = local_148.idx;
                  var_48 = (type_7 *)var_5;
                  unaff_s5 = aVar39;
                  unaff_s7 = aVar41;
                  if ((type_9)var_13.input.valid_raw_len <= var_15) {
                    aVar45.idx = var_14;
                    local_150.sbcset = (type_14)(*var_89)(var_2);
                    var_17 = var_36;
                    if ((type_7 *)local_150.sbcset != (type_7 *)0x0) goto LAB_000557e4;
                    var_15 = (int)aVar46.sbcset - var_13.input.raw_mbs_idx;
                  }
                  if (aVar46.idx < var_5) {
                    var_15 = (type_9)var_13.input.mbs[var_15];
                  }
                  else {
                    var_15 = 0;
                  }
                  aVar56.sbcset = aVar46.sbcset + aVar39.sbcset;
                  aVar46.sbcset = aVar56.sbcset;
                  if (*(char *)((int)local_148.sbcset + var_15) != '\0') break;
                  var_17 = var_36;
                  var_14 = aVar56.idx;
                  if (aVar56.idx < aVar40.idx) {
                    local_150.idx = 1;
                    goto LAB_000557e4;
                  }
                  aVar46.idx._0_3_ = 0;
                  aVar46.idx._3_1_ = aVar41.idx < aVar56.idx;
                  if ((type_7 *)aVar46.sbcset != (type_7 *)0x0) {
                    local_150.idx = 1;
                    goto LAB_000557e4;
                  }
                }
                while( true ) {
                  aVar45.idx = var_14;
                  aVar49 = (type_6)var_9;
                  aVar7.sbcset = (type_14)(*var_89)(&var_13);
                  aVar15 = (type_6)var_13.dfa;
                  aVar56.idx = var_13.input.cur_idx;
                  var_17 = var_36;
                  local_150.sbcset = aVar7.sbcset;
                  if ((type_7 *)aVar7.sbcset != (type_7 *)0x0) goto LAB_000557e4;
                  if (((var_8 != 1) && (var_13.input.valid_len != 0)) &&
                     (*var_13.input.wcs == 0xffffffff)) goto LAB_00055b1c;
                  var_13.max_mb_elem_len = 0;
                  var_13.nbkref_ents = 0;
                  var_13.state_log_top = 0;
                  local_138.idx = var_13.input.cur_idx;
                  var_19 = var_26;
                  unaff_s7 = (type_6)(var_13.dfa)->init_state;
                  aVar49 = (type_6)var_13.var_9;
                  aVar46 = aVar15;
                  if ((*(type_5 *)(unaff_s7.idx + 0x34) & 1) == 0) break;
                  aVar45.sbcset = (type_14)(var_13.input.cur_idx + -1);
                  var_17 = (type_7 *)var_16(&var_13.input,aVar45.idx,var_13.var_9);
                  if (((type_9)var_17 & 1) == 0) {
                    if (var_17 == (type_7 *)0x0) break;
                    if (((type_9)var_17 & 6) == 6) {
                      unaff_s7 = (type_6)
                                 ((type_7 *)aVar15.idx)->init_state_begbuf;
                      goto LAB_00054d1c;
                    }
                    if (((type_9)var_17 & 2) != 0) {
                      unaff_s7 = (type_6)
                                 ((type_7 *)aVar15.idx)->init_state_nl;
                      goto LAB_00054d1c;
                    }
                    var_36 = var_17;
                    if (((type_9)var_17 & 4) == 0) break;
                    aVar49 = (type_6)
                             ((type_6 *)(unaff_s7.idx + 0x28))->mbcset;
                    aVar45 = aVar15;
                    unaff_s7.sbcset =
                         &var_18
                                    (&var_19,aVar15.sbcset,(type_16 *)aVar49.mbcset,(type_9)var_17)
                          ->hash;
                    var_36 = var_17;
                    if ((type_7 *)unaff_s7.sbcset != (type_7 *)0x0) break;
                    if (var_19 == var_20) goto LAB_00055914;
                  }
                  else {
                    unaff_s7 = (type_6)
                               ((type_7 *)aVar15.idx)->init_state_word;
LAB_00054d1c:
                    var_36 = (type_7 *)var_11;
                    if ((type_7 *)unaff_s7.sbcset != (type_7 *)0x0) break;
                  }
                  var_36 = (type_7 *)(var_11 + 0x6eb0);
                  aVar45.sbcset = (type_14)(var_11 + 0x712c);
                  var_14 = (*(type_8 *)PTR___assert_fail_000799f8)
                                          (var_11 + 0x71a0,aVar45.sbcset,0x435);
                  if ((type_14)var_14 == aVar41.sbcset) {
                    if (var_14 < var_5) {
                      var_15 = (type_9)(type_5)string[var_14];
                    }
                    else {
                      var_15 = 0;
                    }
                    if (var_6 != (type_21 *)0x0) {
                      var_15 = (type_9)var_6[var_15];
                    }
                    if (*(char *)((int)local_148.sbcset + var_15) == '\0') {
                      local_150.idx = 1;
                      aVar49 = (type_6)var_9;
                      var_17 = var_36;
                      goto LAB_000557e4;
                    }
                  }
                }
                var_17 = var_36;
                var_55 = var_21 != (int *)0x0;
                if ((var_13.state_log == (type_10 **)0x0) ||
                   (((type_6 *)(var_13.state_log + aVar56.idx))->mbcset =
                         (type_28 *)unaff_s7, ((type_7 *)aVar15.idx)->nbackref == 0)) {
LAB_00054d50:
                  if ((int)*(type_29 **)(unaff_s7.idx + 0x34) << 4 < 0) {
                    if (((*(type_5 *)(unaff_s7.idx + 0x34) & 1) == 0) ||
                       (aVar45 = unaff_s7, aVar49 = aVar56,
                       var_23 = var_22(&var_13,unaff_s7.idx,aVar56.idx), var_23 != 0
                       )) {
                      local_c4 = aVar56;
                      if (var_24 == (type_6 *)0x0) goto LAB_00055dbc;
                      var_36 = (type_7 *)0x1;
                    }
                    else {
                      aVar56.idx = -1;
                      var_36 = (type_7 *)0x0;
                    }
                  }
                  else {
                    aVar56.idx = -1;
                    var_36 = (type_7 *)0x0;
                  }
                  pcVar9 = (type_8 *)(var_10 + -0x7144);
                  pcVar10 = (type_8 *)(var_10 + -0x1980);
                  pcVar11 = (type_8 *)(var_10 + -0x2f9c);
                  local_c4 = aVar56;
                  var_38 = var_21;
                  while( true ) {
                    uVar63 = var_25(var_13.input.valid_len,var_13.input.len);
                    unaff_s5.sbcset = (type_14)(var_13.input.cur_idx + 1);
                    aVar45.idx = var_13.input.cur_idx;
                    if (var_13.input.var_27 <= var_13.input.cur_idx) break;
                    if ((var_13.input.bufs_len <= unaff_s5.idx) &&
                       (var_13.input.bufs_len < var_13.input.len)) goto LAB_00054e94;
                    if (var_13.input.valid_len <= unaff_s5.idx) {
                      while ((int)((type_30)uVar63 >> 0x20) < (int)uVar63) {
LAB_00054e94:
                        aVar45.sbcset =
                             (type_14)
                             ((int)&((type_31 *)&(aVar45.mbcset)->mbchars)->raw_mbs + 2);
                        var_19 = (*pcVar9)(&var_13);
                        if (var_19 == var_26) break;
                        aVar15 = aVar46;
                        if (var_19 == var_20) goto LAB_00055914;
                        var_17 = (type_7 *)(var_11 + 0x6eb0);
                        aVar49.idx = 0x46c;
                        aVar45.sbcset = (type_14)(var_11 + 0x712c);
                        uVar63 = (*(type_8 *)PTR___assert_fail_000799f8)(var_11 + 0x71a0);
                        var_36 = prVar59;
                      }
                    }
                    prVar3 = var_13.dfa;
                    if ((int)*(type_29 **)(unaff_s7.idx + 0x34) << 5 < 0) {
                      var_34 = (type_6 *)prVar3;
                      if (0 < (int)(unaff_s7.mbcset)->range_ends) {
                        pcVar12 = (type_8 *)(var_10 + -0x6fdc);
                        pcVar13 = (type_8 *)(var_10 + -0x6ef0);
                        var_27 = 0;
                        do {
                          var_2 = ((type_6 *)
                                       ((unaff_s7.mbcset)->char_classes + var_27))->idx;
                          prVar53 = prVar3->nodes;
                          var_15 = *(type_9 *)&prVar53[var_2].field_0x4;
                          if ((var_15 & 0x800) != 0) {
                            if ((var_15 & 0xffc000) != 0) {
                              aVar45.idx = var_13.input.cur_idx;
                              var_28 = (*pcVar13)(&var_13,var_13.input.cur_idx,var_13.var_9);
                              var_15 = (type_9)(*(int *)&prVar53[var_2].field_0x4 << 8) >> 0x16;
                              if ((var_15 & 4) == 0) {
                                var_29 = var_28 & 1;
                                if ((var_15 & 8) != 0) goto joined_r0x00054f40;
                              }
                              else {
                                var_29 = var_15 & 8;
                                if ((var_28 & 1) == 0) goto LAB_000550a4;
joined_r0x00054f40:
                                if (var_29 != 0) goto LAB_000550a4;
                              }
                              if ((((var_15 & 0x20) != 0) && ((var_28 & 2) == 0)) ||
                                 (((var_15 & 0x80) != 0 &&
                                  (var_17 = (type_7 *)var_13.input.cur_idx, (var_28 & 8) == 0))))
                              goto LAB_000550a4;
                            }
                            aVar49.sbcset = (type_14)&var_13;
                            aVar45.idx = var_2;
                            var_17 = (type_7 *)var_13.input.cur_idx;
                            var_30 = (*pcVar11)(prVar3);
                            if (var_30 != 0) {
                              aVar46.sbcset = (type_14)(var_30 + var_13.input.cur_idx);
                              if (var_30 <= var_13.max_mb_elem_len) {
                                var_30 = var_13.max_mb_elem_len;
                              }
                              aVar45.sbcset = aVar46.sbcset;
                              var_13.max_mb_elem_len = var_30;
                              var_31 = (*pcVar12)(&var_13);
                              var_56 = var_31;
                              if (var_31 != var_26) goto LAB_00055e44;
                              aVar49.sbcset =
                                   (type_14)(prVar3->eclosures + prVar3->nexts[var_2]);
                              var_48 = (type_7 *)(aVar46.idx * 4);
                              var_2 = (type_3)(var_13.state_log + aVar46.idx);
                              if (*(type_12 *)var_2 == 0) {
                                var_32.alloc = *aVar49.sbcset;
                                var_32.nelem =
                                     ((type_16 *)&(aVar49.mbcset)->range_starts)->alloc;
                                var_32.elems = (aVar49.mbcset)->range_ends;
                                var_17 = (type_7 *)
                                          (*pcVar13)(&var_13,(type_18 *)(aVar46.idx + -1),
                                                     var_13.var_9);
                                aVar49.sbcset = (type_14)&var_32;
                                aVar45 = (type_6)prVar3;
                                var_85 = var_18
                                                    (&var_31,prVar3,(type_16 *)aVar49.mbcset,
                                                     (type_9)var_17);
                                ((type_31 *)&((type_28 *)var_2)->mbchars)->raw_mbs =
                                     (type_21 *)var_85;
                              }
                              else {
                                aVar45 = (type_6)
                                         ((type_6 *)
                                         (*(type_12 *)var_2 + 0x28))->mbcset;
                                var_31 = var_33
                                                  (&var_32,(type_16 *)aVar45.mbcset,
                                                   (type_16 *)aVar49.mbcset);
                                var_56 = var_31;
                                if (var_31 != var_26) goto LAB_00055e44;
                                var_17 = (type_7 *)
                                          (*pcVar13)(&var_13,(type_18 *)(aVar46.idx + -1),
                                                     var_13.var_9);
                                var_37 = var_13.state_log + aVar46.idx;
                                aVar49.sbcset = (type_14)&var_32;
                                aVar45 = (type_6)prVar3;
                                var_85 = var_18
                                                    (&var_31,prVar3,(type_16 *)aVar49.mbcset,
                                                     (type_9)var_17);
                                *var_37 = var_85;
                                (*(type_8 *)PTR_free_00079c24)(var_32.elems);
                              }
                              var_48 = (type_7 *)(var_13.state_log + aVar46.idx);
                              if ((var_48->nodes == (type_23 *)0x0) &&
                                 (var_56 = var_31, var_31 != var_26)) goto LAB_00055e44;
                            }
                          }
LAB_000550a4:
                          var_27 = (int)&((type_31 *)&((type_28 *)var_27)->mbchars)->raw_mbs +
                                 1;
                        } while (var_27 < (int)(unaff_s7.mbcset)->range_ends);
                      }
                      var_19 = var_26;
                    }
                    var_15 = (type_9)var_13.input.mbs[var_13.input.cur_idx];
                    var_13.input.cur_idx = var_13.input.cur_idx + 1;
                    do {
                      if (*(type_10 **)(unaff_s7.idx + 0x2c) != (type_10 *)0x0) {
                        aVar49 = (type_6)
                                 ((type_6 *)
                                 (&(*(type_10 **)(unaff_s7.idx + 0x2c))->hash + var_15))->
                                 mbcset;
LAB_000553a0:
                        aVar15 = aVar49;
                        if (var_13.state_log != (type_10 **)0x0) goto LAB_000553ac;
                        goto LAB_000553cc;
                      }
                      var_34 = *(type_6 **)(unaff_s7.idx + 0x30);
                      if (var_34 != (type_6 *)0x0) {
                        aVar45.sbcset = (type_14)(var_13.input.cur_idx + -1);
                        var_28 = var_16(&var_13.input,aVar45.idx,var_13.var_9);
                        if ((var_28 & 1) == 0) {
                          aVar49 = (type_6)var_34[var_15].mbcset;
                        }
                        else {
                          var_34 = var_34 + var_15 + 0x100;
                          aVar49 = (type_6)var_34->mbcset;
                        }
                        goto LAB_000553a0;
                      }
                      aVar45 = unaff_s7;
                      aVar49 = (type_6)var_13.var_9;
                      var_30 = (*pcVar10)(var_13.dfa);
                    } while (var_30 != 0);
                    var_19 = var_20;
                    var_56 = var_19;
LAB_00055e44:
                    var_19 = var_56;
                    aVar46.sbcset = (type_14)0x0;
                    if (var_13.state_log == (type_10 **)0x0) {
                      aVar15.sbcset = aVar46.sbcset;
                      if (var_19 != var_26) goto LAB_00055914;
                      break;
                    }
                    aVar49.sbcset = (type_14)0x0;
LAB_000553ac:
                    aVar45.sbcset = (type_14)&var_13;
                    aVar15.sbcset =
                         &var_35
                                    (&var_19,(type_27 *)aVar45.mbcset,aVar49.sbcset)->hash;
LAB_000553cc:
                    aVar46 = aVar15;
                    if ((type_7 *)aVar15.sbcset == (type_7 *)0x0) {
                      if (var_19 != var_26) goto LAB_00055914;
                      if ((var_13.state_log == (type_10 **)0x0) ||
                         ((var_36 != (type_7 *)0x0 &&
                          (var_24 == (type_6 *)0x0)))) break;
                      var_27 = (type_3)&var_13;
                      var_2 = (type_3)&var_19;
                      var_34 = (type_6 *)(var_10 + 0x3684);
                      do {
                        var_37 = var_13.state_log + var_13.input.cur_idx;
                        var_23 = var_13.input.cur_idx;
                        do {
                          var_23 = var_23 + 1;
                          aVar45.idx = var_13.state_log_top;
                          aVar46 = aVar15;
                          if (var_13.state_log_top < var_23) goto LAB_00055da8;
                          var_13.input.cur_idx = var_13.input.cur_idx + 1;
                          var_37 = var_37 + 1;
                        } while (*var_37 == (type_10 *)0x0);
                        aVar49.sbcset = (type_14)0x0;
                        aVar45.sbcset = (type_14)var_27;
                        aVar46.sbcset = (type_14)(*(type_8 *)var_34)(var_2);
                        if (var_19 != var_26) {
                          if ((type_7 *)aVar46.sbcset == (type_7 *)0x0) goto LAB_00055da8;
                          break;
                        }
                        aVar45.idx = var_13.state_log_top;
                      } while ((type_7 *)aVar46.sbcset == (type_7 *)0x0);
                    }
                    aVar16.ctx_type = unaff_s7.ctx_type ^ aVar46.ctx_type;
                    aVar56 = unaff_s7;
                    aVar15 = local_138;
                    if ((var_55) &&
                       (aVar56.ctx_type = aVar16.ctx_type, aVar15.sbcset = unaff_s5.sbcset,
                       (type_7 *)aVar16.sbcset != (type_7 *)0x0)) {
                      var_55 = false;
                      aVar15 = local_138;
                    }
                    local_138 = aVar15;
                    unaff_s7 = aVar46;
                    if (((*(type_5 *)(aVar46.idx + 0x34) & 8) != 0) &&
                       (((*(type_5 *)(aVar46.idx + 0x34) & 1) == 0 ||
                        (aVar45 = aVar46, aVar49.idx = var_13.input.cur_idx,
                        var_23 = var_22(&var_13,aVar46.idx,var_13.input.cur_idx),
                        var_23 != 0)))) {
                      unaff_s7 = aVar56;
                      local_c4.idx = var_13.input.cur_idx;
                      if (var_24 == (type_6 *)0x0) goto LAB_00055dbc;
                      var_36 = (type_7 *)0x1;
                      var_38 = (int *)0x0;
                      unaff_s7 = aVar46;
                    }
                  }
LAB_00055da8:
                  if (var_38 != (int *)0x0) {
                    *var_38 = *var_38 + (int)local_138.sbcset;
                  }
                }
                else {
                  aVar46.sbcset = (type_14)&(unaff_s7.mbcset)->range_starts;
                  aVar49.sbcset = (type_14)0x0;
                  aVar45 = aVar46;
                  var_19 = var_39(&var_13,(type_16 *)aVar46.mbcset,0);
                  local_c4.idx = var_19;
                  if ((type_7 *)var_19 == (type_7 *)0x0) {
                    if ((*(type_5 *)(unaff_s7.idx + 0x34) & 2) == 0) {
                      aVar45 = aVar46;
                      var_55 = false;
                    }
                    else {
                      aVar45 = aVar46;
                      var_19 = var_40(&var_13,(type_16 *)aVar46.mbcset);
                      local_c4.idx = var_19;
                      if ((type_7 *)var_19 != (type_7 *)0x0) goto LAB_00055dbc;
                      var_55 = false;
                    }
                    goto LAB_00054d50;
                  }
                }
LAB_00055dbc:
                if ((type_7 *)local_c4.sbcset == (type_7 *)0xffffffff) {
LAB_00055b04:
                  var_41(&var_13);
LAB_00055b1c:
                  var_14 = aVar39.idx + var_14;
                  if (aVar40.idx <= var_14) goto code_r0x00055b38;
                  local_150.idx = 1;
                  goto LAB_000557e4;
                }
                if ((type_7 *)local_c4.sbcset == (type_7 *)&SUB_fffffffe) {
                  local_150.idx = 0xc;
                  goto LAB_000557e4;
                }
                var_13.match_last = local_c4.idx;
                if ((var_52->field_0x1c & 8) == 0) {
                  if (aVar4.sbcset < (type_7 *)0x2) {
                    if (prVar59->nbackref == 0) goto LAB_00055c08;
                    aVar45 = (type_6)
                             ((type_6 *)(var_13.state_log + local_c4.idx))->
                             mbcset;
                    aVar49 = local_c4;
                    var_13.last_node =
                         var_22(&var_13,(type_10 *)aVar45.mbcset,local_c4.idx)
                    ;
                  }
                  else {
                    aVar45 = (type_6)
                             ((type_6 *)(var_13.state_log + local_c4.idx))->
                             mbcset;
                    aVar49 = local_c4;
                    var_13.last_node =
                         var_22(&var_13,(type_10 *)aVar45.mbcset,local_c4.idx)
                    ;
                  }
                  if (aVar4.sbcset < (type_7 *)0x2) {
LAB_00055c6c:
                    var_36 = var_17;
                    var_48 = var_13.dfa;
                    if (prVar59->nbackref == 0) goto LAB_00055548;
                  }
                  else {
                    var_42 = prVar59->field_0x58;
LAB_00055c20:
                    var_36 = var_17;
                    if (-1 < var_42) goto LAB_00055c6c;
                  }
                  var_34 = (type_6 *)var_13.last_node;
                  prVar3 = var_13.dfa;
                  var_48 = prVar3;
                  if ((type_9)local_c4 < (type_7 *)0x3fffffff) {
                    aVar46.idx = (int)((int)&((type_31 *)&(local_c4.mbcset)->mbchars)->raw_mbs +
                                      1) * 4;
                    unaff_s5.sbcset = (type_14)(*(type_8 *)PTR_malloc_00079b54)(aVar46.sbcset)
                    ;
                    if ((type_7 *)unaff_s5.sbcset == (type_7 *)0x0) {
LAB_00055b9c:
                      (*(type_8 *)PTR_free_00079c24)(unaff_s5.sbcset);
                      local_150.idx = 0xc;
                      var_17 = var_36;
                    }
                    else {
                      aVar45.sbcset = (type_14)&var_32;
                      if (prVar3->nbackref == 0) {
                        var_32.nelem = 0;
                        var_32.elems = &var_34->idx;
                        var_32.alloc = (type_3)unaff_s5.sbcset;
                        var_2 = var_43(&var_13,(type_32 *)aVar45.mbcset);
                        (*(type_8 *)PTR_free_00079c24)(0);
                        if ((type_7 *)var_2 == (type_7 *)0x0) {
                          aVar46.mbcset = (type_28 *)*unaff_s5.sbcset;
                          if ((type_7 *)aVar46.sbcset == (type_7 *)0x0) {
LAB_00055b70:
                            (*(type_8 *)PTR_free_00079c24)(unaff_s5.sbcset);
                            (*(type_8 *)PTR_free_00079c24)(aVar46.sbcset);
                            var_17 = var_36;
                            goto LAB_00055b04;
                          }
LAB_00055528:
                          (*(type_8 *)PTR_free_00079c24)(var_13.state_log);
                          var_17 = var_36;
                          var_48 = prVar3;
                          var_13.match_last = local_c4.idx;
                          var_13.last_node = (type_3)var_34;
                          var_13.state_log = (type_10 **)unaff_s5.sbcset;
                          goto LAB_00055548;
                        }
LAB_00055acc:
                        aVar46.sbcset = (type_14)0x0;
                        var_17 = var_36;
                        var_48 = prVar3;
                      }
                      else {
                        aVar46.sbcset =
                             (type_14)(*(type_8 *)PTR_malloc_00079b54)(aVar46.sbcset);
                        if ((type_7 *)aVar46.sbcset == (type_7 *)0x0) goto LAB_00055b9c;
                        unaff_s7.sbcset = (type_14)&var_32;
                        pcVar9 = (type_8 *)(var_10 + 0x421c);
                        pcVar10 = (type_8 *)(var_10 + -0x6bc0);
                        var_17 = var_36;
                        while( true ) {
                          var_36 = (type_7 *)(local_c4.idx + 1);
                          var_27 = (int)var_36 * 4;
                          aVar49.idx = var_27;
                          (*(type_8 *)PTR_memset_00079b00)(aVar46.sbcset,0);
                          aVar45.sbcset = unaff_s7.sbcset;
                          var_32.alloc = (type_3)unaff_s5.sbcset;
                          var_32.nelem = (type_3)aVar46.sbcset;
                          var_32.elems = (type_3 *)var_34;
                          var_2 = (*pcVar9)(&var_13);
                          (*(type_8 *)PTR_free_00079c24)(0);
                          var_48 = var_36;
                          if ((type_7 *)var_2 != (type_7 *)0x0) break;
                          if ((*unaff_s5.sbcset != 0) || (var_27 = var_27 + -4, *aVar46.sbcset != 0)) {
                            aVar45.sbcset = unaff_s5.sbcset;
                            aVar49.sbcset = aVar46.sbcset;
                            var_2 = var_44(prVar3,(type_10 **)unaff_s5.sbcset,
                                                           (type_10 **)aVar46.sbcset,
                                                           (type_3)var_36);
                            (*(type_8 *)PTR_free_00079c24)(aVar46.sbcset);
                            if ((type_7 *)var_2 != (type_7 *)0x0) goto LAB_00055acc;
                            goto LAB_00055528;
                          }
                          var_27 = (type_3)(var_13.state_log + (int)&var_36[-1].lock.__align + 0x17);
                          do {
                            while( true ) {
                              local_c4.sbcset = (type_14)(local_c4.idx + -1);
                              if (local_c4.idx < 0) goto LAB_00055b70;
                              aVar45 = (type_6)
                                       ((type_6 *)(var_27 + -4))->idx;
                              if ((type_7 *)aVar45.sbcset != (type_7 *)0x0) break;
                              var_27 = var_27 + -4;
                            }
                            var_27 = var_27 + -4;
                          } while ((*(type_5 *)(aVar45.idx + 0x34) & 8) == 0);
                          var_34 = (type_6 *)
                                    (*pcVar10)(&var_13,aVar45.sbcset,local_c4.sbcset);
                          var_17 = var_36;
                        }
                      }
                      (*(type_8 *)PTR_free_00079c24)(unaff_s5.sbcset);
                      (*(type_8 *)PTR_free_00079c24)(aVar46.sbcset);
                      local_150.idx = var_2;
                      if ((type_7 *)var_2 == (type_7 *)0x1) goto LAB_00055b04;
                    }
                  }
                  else {
                    local_150.idx = 0xc;
                    var_17 = var_36;
                  }
                  goto LAB_000557e4;
                }
                if (prVar59->nbackref != 0) {
                  aVar45 = (type_6)
                           ((type_6 *)(var_13.state_log + local_c4.idx))->
                           mbcset;
                  aVar49 = local_c4;
                  var_13.last_node =
                       var_22(&var_13,(type_10 *)aVar45.mbcset,local_c4.idx);
                  goto LAB_00055c6c;
                }
LAB_00055c08:
                if (((var_52->field_0x1c & 8) == 0) && ((type_7 *)0x1 < aVar4.sbcset)) {
                  var_42 = prVar59->field_0x58;
                  goto LAB_00055c20;
                }
LAB_00055548:
                if ((type_7 *)aVar4.sbcset == (type_7 *)0x0) goto LAB_000557e4;
                if (aVar4.sbcset < (type_7 *)0x2) {
                  var_45->rm_so = 0;
                  var_45->rm_eo = var_13.match_last;
                  goto LAB_000555ac;
                }
                var_46 = var_45 + 1;
                do {
                  var_46->rm_eo = -1;
                  var_46->rm_so = -1;
                  var_46 = var_46 + 1;
                } while (var_46 != var_45 + aVar4.idx);
                var_45->rm_so = 0;
                var_45->rm_eo = var_13.match_last;
                if ((var_52->field_0x1c & 8) != 0) {
LAB_000555ac:
                  var_46 = var_45;
                  do {
                    aVar45.sbcset = (type_14)var_46->rm_so;
                    if ((type_7 *)aVar45.sbcset != (type_7 *)0xffffffff) {
                      if (var_13.input.offsets_needed != '\0') {
                        rVar47 = var_13.input.valid_raw_len;
                        if (aVar45.sbcset != (type_14)var_13.input.valid_len) {
                          rVar47 = var_13.input.offsets[aVar45.idx];
                        }
                        var_46->rm_so = rVar47;
                        rVar47 = var_13.input.valid_raw_len;
                        if (var_13.input.valid_len != var_46->rm_eo) {
                          rVar47 = var_13.input.offsets[var_46->rm_eo];
                        }
                        var_46->rm_eo = rVar47;
                      }
                      var_46->rm_so = var_46->rm_so + var_14;
                      aVar45.sbcset = (type_14)(var_46->rm_eo + var_14);
                      var_46->rm_eo = (type_20)aVar45;
                    }
                    var_46 = var_46 + 1;
                  } while (var_46 != var_45 + aVar4.idx);
                  if (0 < var_4) {
                    var_46 = var_45 + aVar4.idx;
                    do {
                      var_46->rm_so = -1;
                      var_46->rm_eo = -1;
                      var_46 = var_46 + 1;
                    } while (var_46 != var_45 + var_3);
                  }
                  aVar49.idx = var_14;
                  var_17 = (type_7 *)var_45;
                  local_150.sbcset = aVar7.sbcset;
                  if (prVar59->subexp_map != (type_3 *)0x0) {
                    aVar49.sbcset = (type_14)(aVar4.idx + -1);
                    var_36 = (type_7 *)0x0;
                    var_46 = var_45;
                    while( true ) {
                      aVar45.idx = (int)var_36 * 4;
                      if ((type_7 *)aVar49.sbcset == var_36) break;
                      if ((type_7 *)prVar59->subexp_map[(int)var_36] != var_36) {
                        var_46[1].rm_so =
                             var_45[(int)((int)&((type_31 *)
                                                &((type_7 *)prVar59->subexp_map[(int)var_36])->
                                                 nodes)->raw_mbs + 1)].rm_so;
                        var_46[1].rm_eo = var_45[prVar59->subexp_map[(int)var_36] + 1].rm_eo;
                      }
                      var_36 = (type_7 *)((int)&((type_31 *)&var_36->nodes)->raw_mbs + 1);
                      var_46 = var_46 + 1;
                    }
                  }
                  goto LAB_000557e4;
                }
                if ((char)prVar59->field_0x58 < '\0') {
                  var_55 = 0 < prVar59->nbackref;
                }
                else {
                  var_55 = false;
                }
                aVar45.sbcset = (type_14)&var_13;
                aVar49.sbcset = aVar4.sbcset;
                var_17 = (type_7 *)var_45;
                local_150.idx =
                     var_47(var_52,(type_27 *)aVar45.mbcset,aVar4.ctx_type,var_45,var_55)
                ;
                if ((type_7 *)local_150.sbcset == (type_7 *)0x0) goto LAB_000555ac;
              }
            }
          }
          else if ((type_9)var_13.input.bufs_len < 0x3fffffff) {
            var_13.state_log =
                 (type_10 **)(*(type_8 *)PTR_malloc_00079b54)((var_13.input.bufs_len + 1) * 4);
            if (var_13.state_log != (type_10 **)0x0) goto LAB_00055a40;
            local_150.idx = 0xc;
            var_27 = aVar56.idx;
          }
          else {
            local_150.idx = 0xc;
            var_27 = aVar56.idx;
          }
        }
        else {
          unaff_s5.idx = var_8 * 8;
          if (aVar56.sbcset < (type_7 *)0xccccccd) {
            var_48 = (type_7 *)(*(type_8 *)PTR_malloc_00079b54)(var_8 * 0x28);
            var_13.bkref_ents = (type_33 *)var_48;
            var_13.sub_tops = (type_17 **)(*(type_8 *)PTR_malloc_00079b54)(unaff_s5.sbcset);
            if ((var_48 != (type_7 *)0x0) && (var_13.sub_tops != (type_17 **)0x0))
            goto LAB_000559f0;
          }
          local_150.idx = 0xc;
          var_27 = aVar56.idx;
        }
LAB_000557e4:
        (*(type_8 *)PTR_free_00079c24)(var_13.state_log);
        var_52 = (type_2 *)aVar49;
        if (prVar59->nbackref != 0) {
          var_41(&var_13);
          (*(type_8 *)PTR_free_00079c24)(var_13.sub_tops);
          (*(type_8 *)PTR_free_00079c24)(var_13.bkref_ents);
          var_52 = (type_2 *)aVar49;
        }
        var_49(&var_13.input);
        aStack_1a0 = aVar46;
        paStack_19c = var_34;
      }
    }
  }
  if ((type_7 *)preg_00.sbcset == *(type_7 **)PTR___stack_chk_guard_00079c10) {
    return (type_1)local_150.sbcset;
  }
  var_89 = var_91;
  var_50 = PTR___stack_chk_fail_00079bd0;
  (*(type_8 *)PTR___stack_chk_fail_00079bd0)();
  var_88 = (char *)**(type_34 **)(var_50 + 0x23dac);
  var_67 = var_26;
  var_51 = *(type_5 *)&((type_16 *)&(preg_00.mbcset)->nequiv_classes)->alloc;
  (preg_00.mbcset)->char_classes = (type_15 *)var_17;
  (preg_00.mbcset)->range_ends = (type_19 *)0x0;
  (preg_00.mbcset)->ncoll_syms = 0;
  *(type_5 *)&((type_16 *)&(preg_00.mbcset)->nequiv_classes)->alloc = var_51 & 9;
  aVar4.mbcset = (type_28 *)((type_31 *)&(preg_00.mbcset)->mbchars)->raw_mbs;
  aStack_198.idx = var_2;
  aStack_194.idx = var_27;
  prStack_190 = var_48;
  aStack_18c = unaff_s5;
  prStack_188 = prVar59;
  aStack_184 = unaff_s7;
  aStack_180 = local_c4;
  pcStack_17c = var_89;
  if ((type_9)((type_16 *)&(preg_00.mbcset)->range_starts)->alloc < 0xa0) {
    aVar46.idx = 0xa0;
    aVar49 = (type_6)var_52;
    aVar4.sbcset = (type_14)(**(type_8 **)(var_50 + 0x23cf8))(aVar4.sbcset);
    if ((type_7 *)aVar4.sbcset == (type_7 *)0x0) {
      var_56 = var_20;
      goto LAB_00056cfc;
    }
    ((type_16 *)&(preg_00.mbcset)->range_starts)->alloc = 0xa0;
    ((type_31 *)&(preg_00.mbcset)->mbchars)->raw_mbs = (type_21 *)aVar4;
  }
  (preg_00.mbcset)->range_ends = (type_19 *)0xa0;
  aVar49.idx = 0xa0;
  aVar46.sbcset = (type_14)0x0;
  (**(type_8 **)(var_50 + 0x23c9c))(aVar4.sbcset);
  *(int *)(aVar4.idx + 0x40) = 0x1f;
  pwVar44 = (type_19 *)((int)&((type_31 *)&((type_28 *)var_52)->mbchars)->raw_mbs + 1);
  if (var_52 < (type_7 *)0xaaaaaaa) {
    (aVar4.mbcset)->range_starts = pwVar44;
    bVar22 = (**(type_8 **)(var_50 + 0x23cf0))((int)pwVar44 * 8);
    *aVar4.sbcset = bVar22;
    if ((type_7 *)var_52 == (type_7 *)0x0) {
      aVar56.idx = 1;
    }
    else {
      aVar56.idx = 1;
      do {
        aVar56.ctx_type = aVar56.ctx_type << 1;
      } while (aVar56.sbcset <= var_52);
    }
    aVar46 = aVar56;
    prVar23 = (type_13 *)(**(type_8 **)(var_50 + 0x23b8c))(0xc);
    (aVar4.mbcset)->nranges = (type_3)prVar23;
    *(type_18 **)(aVar4.idx + 0x44) = (type_18 *)(aVar56.idx + -1);
    var_8 = (**(type_8 **)(var_50 + 0x23d2c))();
    *(int *)(aVar4.idx + 0x5c) = var_8;
    var_53 = (type_5 *)(**(type_8 **)(var_50 + 0x23c2c))(0xe);
    if ((((*var_53 & 0xdf) == 0x55) && ((var_53[1] & 0xdf) == 0x54)) &&
       (aVar46.idx = 4, (var_53[2] & 0xdf) == 0x46)) {
      var_8 = 3;
      if (var_53[3] == 0x2d) {
        var_8 = 4;
      }
      aVar46.sbcset = (type_14)(*(int *)(var_50 + 0x23754) + 0x71b4);
      var_8 = (**(type_8 **)(var_50 + 0x23dfc))(var_53 + var_8);
      if (var_8 == 0) {
        *(type_5 *)(aVar4.idx + 0x58) = *(type_5 *)(aVar4.idx + 0x58) & 0xdf | 0x20;
      }
    }
    *(type_5 *)(aVar4.idx + 0x58) = *(type_5 *)(aVar4.idx + 0x58) & 0xef;
    if (1 < *(int *)(aVar4.idx + 0x5c)) {
      if ((*(type_5 *)(aVar4.idx + 0x58) & 0x20) == 0) {
        aVar46.idx = 1;
        var_54 = (type_14)(**(type_8 **)(var_50 + 0x23b8c))(0x20);
        *(type_14 *)(aVar4.idx + 0x3c) = var_54;
        if (var_54 == (type_14)0x0) goto LAB_00056e5c;
        var_8 = 0;
        do {
          var_15 = var_8 << 3;
          var_28 = 0;
          do {
            var_29 = (**(type_8 **)(var_50 + 0x23c88))(var_15);
            if (var_29 != 0xffffffff) {
              prVar42 = (type_11 *)((int)*(type_14 *)(aVar4.idx + 0x3c) + var_8);
              aVar46.ctx_type = *prVar42;
              *prVar42 = aVar46.ctx_type | 1 << (var_28 & 0x1f);
            }
            if (((var_15 & 0xffffff80) == 0) && (var_29 != var_15)) {
              *(type_5 *)(aVar4.idx + 0x58) = *(type_5 *)(aVar4.idx + 0x58) & 0xef | 0x10;
            }
            var_28 = var_28 + 1;
            var_15 = var_15 + 1;
          } while (var_28 != 0x20);
          var_8 = var_8 + 4;
        } while (var_8 != 0x20);
      }
      else {
        *(type_14 *)(aVar4.idx + 0x3c) =
             (type_14)(*(int *)(var_50 + 0x23754) + 0x6ee4);
      }
    }
    if ((*aVar4.sbcset == 0) ||
       ((type_13 *)(aVar4.mbcset)->nranges == (type_13 *)0x0))
    goto LAB_00056e5c;
    var_67 = var_26;
    if (*(int *)(var_50 + 0x23c78) == 0) {
LAB_00056054:
      var_28 = ((type_35 *)&(preg_00.mbcset)->nmbchars)->__wch;
      var_15 = (type_9)var_17 & 0x400000;
      var_55 = var_15 != 0;
      aVar49.idx = 0x4c;
      aVar46.sbcset = (type_14)0x0;
      (**(type_8 **)(var_50 + 0x23c9c))(aaStack_1f4);
      var_57 = var_28 != 0 || var_55;
      iStack_1a8 = *(int *)(aVar4.idx + 0x5c);
      bStack_1af = (type_5)((type_9)(*(int *)(aVar4.idx + 0x58) << 2) >> 0x1f);
      bStack_1ae = (type_5)((type_9)(*(int *)(aVar4.idx + 0x58) << 3) >> 0x1f);
      aStack_1f8 = aVar45;
      aStack_1cc = (type_6)var_52;
      aStack_1c8 = (type_6)var_52;
      aStack_1c4 = (type_6)var_52;
      aStack_1c0 = (type_6)var_52;
      uStack_1b8 = var_28;
      uStack_1b0 = var_55;
      if (0 < (int)var_52) {
        aVar46.sbcset = (type_14)((int)var_52 + 1);
        var_56 = var_7((type_31 *)&aStack_1f8,aVar46.idx);
        if (var_56 == var_26) goto LAB_000560cc;
        goto LAB_00056168;
      }
LAB_000560cc:
      if (var_57 != '\0') {
        aVar45 = aaStack_1f4[0];
      }
      aaStack_1f4[0] = aVar45;
      if (var_15 == 0) {
        if (*(int *)(aVar4.idx + 0x5c) < 2) {
          if (var_28 != 0) {
            var_58((type_31 *)&aStack_1f8);
          }
        }
        else {
          var_59((type_31 *)&aStack_1f8);
        }
      }
      else {
        if (1 < *(int *)(aVar4.idx + 0x5c)) {
          var_8 = *(int *)(var_50 + 0x23abc);
          do {
            var_56 = var_60((type_31 *)&aStack_1f8);
            if (var_56 != var_26) break;
            if (((int)var_52 <= var_61) ||
               (aVar46.ctx_type = var_62 << 1,
               var_63 + *(int *)(aVar4.idx + 0x5c) < var_62)) goto LAB_000563d0;
            var_56 = (*(type_8 *)(var_8 + 0x6d2c))(&aStack_1f8);
          } while (var_56 == var_26);
          goto LAB_00056168;
        }
        var_64((type_31 *)&aStack_1f8);
      }
LAB_000563d0:
      var_67 = var_26;
      (preg_00.mbcset)->ncoll_syms = 0;
      prVar59 = (type_7 *)((type_31 *)&(preg_00.mbcset)->mbchars)->raw_mbs;
      prVar59->var_90 = (type_22)var_17;
      var_65((type_23 *)&var_84,(type_31 *)&aStack_1f8,(type_9)var_17 | 0x800000);
      aVar46 = preg_00;
      aVar45.sbcset =
           (type_14)
           var_66((type_31 *)&aStack_1f8,preg_00.sbcset,(type_23 *)&var_84,
                         (type_22)var_17,0,&var_67);
      if (var_67 == var_26) {
        aVar49.sbcset = (type_14)0x0;
        aVar46.sbcset = (type_14)0x0;
        aVar56.mbcset =
             (type_28 *)var_68(prVar59,(type_29 *)0x0,(type_29 *)0x0,END_OF_RE);
        aVar39.mbcset = aVar56.mbcset;
        if ((type_7 *)aVar45.sbcset != (type_7 *)0x0) {
LAB_000564b0:
          aVar49 = aVar56;
          aVar39.sbcset =
               (type_14)
               var_68(prVar59,(type_29 *)aVar45.mbcset,aVar56.sbcset,CONCAT);
          aVar46 = aVar45;
        }
        if (((type_7 *)aVar56.sbcset == (type_7 *)0x0) ||
           (var_89 = *(type_8 **)(var_50 + 0x23cf0), (type_7 *)aVar39.sbcset == (type_7 *)0x0)) {
          var_67 = var_20;
          goto LAB_000566f4;
        }
        ((type_6 *)(aVar4.idx + 0x34))->mbcset = (type_28 *)aVar39;
        aVar45.mbcset = (type_28 *)*preg_00.sbcset;
        var_30 = ((type_16 *)&(aVar45.mbcset)->range_starts)->alloc;
        var_8 = var_30 << 2;
        var_69 = (type_15 *)(*var_89)(var_8);
        (aVar45.mbcset)->char_classes = var_69;
        var_8 = (**(type_8 **)(var_50 + 0x23cf0))(var_8);
        ((type_16 *)(aVar45.idx + 0x10))->alloc = var_8;
        var_30 = var_30 * 0xc;
        var_28 = (**(type_8 **)(var_50 + 0x23cf0))(var_30);
        ((type_35 *)&(aVar45.mbcset)->nmbchars)->__wch = var_28;
        var_70 = (type_16 *)(**(type_8 **)(var_50 + 0x23cf0))(var_30);
        (aVar45.mbcset)->ncoll_syms = (type_3)var_70;
        if (var_69 == (type_15 *)0x0) {
          var_56 = var_20;
        }
        else if (var_8 == 0) {
          var_56 = var_20;
        }
        else if (var_28 == 0) {
          var_56 = var_20;
        }
        else if (var_70 == (type_16 *)0x0) {
          var_56 = var_20;
        }
        else {
          var_71 = (type_17 **)
                     (**(type_8 **)(var_50 + 0x23cf0))((int)(preg_00.mbcset)->ncoll_syms << 2);
          *(type_17 ***)(aVar45.idx + 0x84) = var_71;
          if (var_71 != (type_17 **)0x0) {
            var_72 = (type_17 *)0x0;
            if ((type_16 *)(preg_00.mbcset)->ncoll_syms != (type_16 *)0x0) {
              do {
                (*(type_17 ***)(aVar45.idx + 0x84))[(int)var_72] = var_72;
                var_72 = (type_17 *)((int)&var_72->str_idx + 1);
              } while (var_72 < (type_17 *)(preg_00.mbcset)->ncoll_syms);
            }
            var_73(*(type_29 **)(aVar45.idx + 0x34),
                     (type_36 *)
                     (*(int *)(var_50 + 0x23abc) + 0x60e8),aVar45.sbcset);
            var_72 = (type_17 *)(preg_00.mbcset)->ncoll_syms;
            if (var_72 == (type_17 *)0x0) {
LAB_00056704:
              (**(type_8 **)(var_50 + 0x23dc0))(*(type_17 ***)(aVar45.idx + 0x84));
              *(type_17 ***)(aVar45.idx + 0x84) = (type_17 **)0x0;
            }
            else {
              var_71 = *(type_17 ***)(aVar45.idx + 0x84);
              if (*var_71 == (type_17 *)0x0) {
                var_74 = (type_17 *)0x0;
                do {
                  var_71 = var_71 + 1;
                  var_74 = (type_17 *)((int)&var_74->str_idx + 1);
                  if (var_72 == var_74) {
                    if (var_72 == var_74) goto LAB_00056704;
                    break;
                  }
                } while (*var_71 == var_74);
              }
            }
          }
          aVar46.sbcset = (type_14)(*(int *)(var_50 + 0x23abc) + 0x73a4);
          var_56 = var_75(*(type_29 **)(aVar45.idx + 0x34),
                             (type_36 *)aVar46.sbcset,
                             preg_00.sbcset);
          aVar49.mbcset = aVar45.mbcset;
          if (var_56 == var_26) {
            aVar46.sbcset = (type_14)(*(int *)(var_50 + 0x23b40) + -0x5be4);
            var_56 = var_75(*(type_29 **)(aVar45.idx + 0x34),
                               (type_36 *)aVar46.sbcset,
                               aVar45.sbcset);
            if (var_56 == var_26) {
              var_73(*(type_29 **)(aVar45.idx + 0x34),
                       (type_36 *)
                       (*(int *)(var_50 + 0x23abc) + 0x61b4),aVar45.sbcset);
              aVar46.sbcset = (type_14)(*(int *)(var_50 + 0x23b40) + -0x4614);
              var_56 = var_73(*(type_29 **)(aVar45.idx + 0x34),
                                (type_36 *)aVar46.sbcset,
                                aVar45.sbcset);
              if (var_56 == var_26) {
                var_28 = 0;
                var_8 = *(int *)(var_50 + 0x23b40);
                aVar56.sbcset = (type_14)0x0;
LAB_00056744:
                if ((type_7 *)(aVar45.mbcset)->range_ends != (type_7 *)aVar56.sbcset) {
LAB_00056750:
                  if (((type_16 *)(aVar45.mbcset)->ncoll_syms)[aVar56.idx].nelem == 0) {
                    aVar46.mbcset = aVar45.mbcset;
                    aVar49 = aVar56;
                    var_56 = (*(type_8 *)(var_8 + -0x561c))
                                       (&var_84,aVar45.sbcset,aVar56.sbcset,1);
                    if (var_56 != var_26) goto LAB_00056168;
                    if (((type_16 *)(aVar45.mbcset)->ncoll_syms)[aVar56.idx].nelem == 0) {
                      (**(type_8 **)(var_50 + 0x23dc0))(var_84.elems);
                      var_28 = 1;
                    }
                  }
                  aVar56.sbcset =
                       (type_14)
                       ((int)&((type_31 *)&(aVar56.mbcset)->mbchars)->raw_mbs + 1);
                  goto LAB_00056744;
                }
                if (var_28 != 0) {
                  var_28 = 0;
                  aVar56.sbcset = (type_14)0x0;
                  goto LAB_00056750;
                }
                if ((((((type_16 *)&(preg_00.mbcset)->nequiv_classes)->alloc & 0x8000000) == 0)
                    && ((type_16 *)(preg_00.mbcset)->ncoll_syms != (type_16 *)0x0)) &&
                   (*(char *)(aVar45.idx + 0x58) < '\0')) {
                  var_76 = (type_24 *)(aVar45.mbcset)->range_ends;
                }
                else {
                  if (*(type_3 *)(aVar45.idx + 0x4c) == 0) goto LAB_000568f0;
                  var_76 = (type_24 *)(aVar45.mbcset)->range_ends;
                }
                var_8 = (**(type_8 **)(var_50 + 0x23cf0))((int)var_76 * 0xc);
                ((type_16 *)&(aVar45.mbcset)->nequiv_classes)->alloc = var_8;
                if (var_8 == 0) {
                  var_56 = var_20;
                  goto LAB_00056168;
                }
                if (var_76 != (type_24 *)0x0) {
                  var_8 = 0;
                  var_29 = 0;
                  do {
                    puVar32 = (type_18 *)
                              (((type_16 *)&(aVar45.mbcset)->nequiv_classes)->alloc + var_8);
                    *puVar32 = 0;
                    puVar32[1] = 0;
                    puVar32[2] = 0;
                    puVar32[3] = 0;
                    puVar32[4] = 0;
                    puVar32[5] = 0;
                    puVar32[6] = 0;
                    puVar32[7] = 0;
                    puVar32[8] = 0;
                    puVar32[9] = 0;
                    puVar32[10] = 0;
                    puVar32[0xb] = 0;
                    var_29 = var_29 + 1;
                    var_8 = var_8 + 0xc;
                  } while (var_29 < (aVar45.mbcset)->range_ends);
                  var_8 = *(int *)(var_50 + 0x23abc);
                  if ((type_24 *)(aVar45.mbcset)->range_ends != (type_24 *)0x0) {
                    var_30 = 0;
                    aStack_218.sbcset = (type_14)0x0;
                    do {
                      var_21 = *(int **)((int)&((type_16 *)(aVar45.mbcset)->ncoll_syms)->elems
                                         + var_30);
                      if (0 < *(int *)((int)&((type_16 *)(aVar45.mbcset)->ncoll_syms)->nelem +
                                      var_30)) {
                        var_78 = 0;
                        do {
                          aVar46 = aStack_218;
                          var_77 = (*(type_8 *)(var_8 + 0x6e30))
                                             (((type_16 *)&(aVar45.mbcset)->nequiv_classes)->
                                              alloc + *var_21 * 0xc);
                          var_56 = var_20;
                          if (var_77 == 0) goto LAB_00056168;
                          var_78 = var_78 + 1;
                          var_21 = var_21 + 1;
                        } while (var_78 < *(int *)((int)&((type_16 *)(aVar45.mbcset)->ncoll_syms
                                                         )->nelem + var_30));
                      }
                      aStack_218.sbcset =
                           (type_14)
                           ((int)&((type_31 *)&(aStack_218.mbcset)->mbchars)->raw_mbs + 1);
                      var_30 = var_30 + 0xc;
                    } while (aStack_218.sbcset < (type_7 *)(aVar45.mbcset)->range_ends);
                  }
                }
LAB_000568f0:
                var_67 = var_26;
                if ((((*(type_5 *)(aVar4.idx + 0x58) & 0x20) != 0) && (var_15 == 0)) &&
                   (((type_35 *)&(preg_00.mbcset)->nmbchars)->__wch == 0
                   )) {
                  if ((aVar4.mbcset)->range_ends != (type_19 *)0x0) {
                    aVar49.sbcset = (type_14)(*(int *)(var_50 + 0x23754) + 0x6e4c);
                    if (*(type_5 *)(*aVar4.sbcset + 4) < 0xd) {
                    /* WARNING: Could not recover jumptable at 0x00056a60. Too many branches */
                    /* WARNING: Treating indirect jump as call */
                      var_56 = (*(type_8 *)(var_50 +
                                         aVar49.sbcset[*(type_5 *)(*aVar4.sbcset + 4)] + 0x2b71c))();
                      return var_56;
                    }
                    (**(type_8 **)(var_50 + 0x23bc4))(0);
                    if (var_28 != 0) {
                      aVar49.idx = (type_3)&var_79;
                      var_15 = 0;
                      do {
                        prVar53 = (type_23 *)(aVar4.mbcset)->mbchars + var_15;
                        if (prVar53->field_0x4 == '\x01') {
                          if ((char)(prVar53->opr).c < '\0') {
                            *(type_9 *)&prVar53->field_0x4 = *(type_9 *)&prVar53->field_0x4 & 0xfffffbff
                            ;
                          }
                        }
                        else if (prVar53->field_0x4 == '\x05') {
                          prVar53->field_0x4 = 7;
                        }
                        var_15 = var_15 + 1;
                      } while (var_15 < (aVar4.mbcset)->range_ends);
                    }
                  }
                  *(int *)(aVar4.idx + 0x5c) = 1;
                  if (0 < *(type_3 *)(aVar4.idx + 0x4c)) {
                    var_28 = 1;
                  }
                  *(type_5 *)(aVar4.idx + 0x58) =
                       *(type_5 *)(aVar4.idx + 0x58) & 0x9f | (type_5)((var_28 & 1) << 6);
                }
                var_8 = (*(type_29 **)(aVar4.idx + 0x34))->first->node_idx;
                *(int *)(aVar4.idx + 0x48) = var_8;
                aVar46.sbcset =
                     (type_14)((type_16 *)(aVar4.mbcset)->ncoll_syms + var_8);
                var_81 = var_80(&var_84,(type_16 *)aVar46.mbcset);
                var_56 = var_81;
                rStack_208 = var_81;
                if (var_81 == var_26) {
                  if ((0 < *(type_3 *)(aVar4.idx + 0x4c)) && (var_26 < var_84.nelem)) {
                    var_8 = *(int *)(var_50 + 0x23abc);
                    var_30 = *(int *)(var_50 + 0x23abc);
                    var_56 = var_26;
                    do {
                      aVar49.sbcset =
                           (type_14)
                           ((type_23 *)(aVar4.mbcset)->mbchars + var_84.elems[var_56]);
                      if (*(char *)&((type_16 *)&(aVar49.mbcset)->range_starts)->alloc == '\x04'
                         ) {
                        var_83 = var_26;
                        var_21 = var_84.elems;
                        if (var_84.nelem < var_82) {
LAB_00056b8c:
                          if (var_84.nelem != var_83) {
                            var_77 = *((type_16 *)(aVar4.mbcset)->nmbchars)
                                      [var_84.elems[var_56]].elems;
                            var_78 = (*(type_8 *)(var_8 + 0x5ea8))(&var_84,var_77);
                            if (var_78 == 0) {
                              aVar46.sbcset =
                                   (type_14)
                                   ((type_16 *)(aVar4.mbcset)->ncoll_syms + var_77);
                              var_56 = (*(type_8 *)(var_30 + 0x7f1c))(&var_84);
                              if (var_56 != var_26) goto LAB_00056cb8;
                            }
                          }
                        }
                        else {
                          do {
                            prVar53 = (type_23 *)(aVar4.mbcset)->mbchars + *var_21;
                            if ((prVar53->field_0x4 == '\t') &&
                               ((prVar53->opr).sbcset == (type_14)*aVar49.sbcset))
                            goto LAB_00056b8c;
                            var_83 = var_83 + var_82;
                            var_21 = var_21 + 1;
                          } while (var_84.nelem != var_83);
                        }
                      }
                      var_56 = var_56 + var_82;
                    } while (var_56 < var_84.nelem);
                  }
                  aVar49.sbcset = (type_14)&var_84;
                  aVar46 = aVar4;
                  var_85 = var_18
                                      (&rStack_208,(type_7 *)aVar4.mbcset,
                                       (type_16 *)aVar49.mbcset,0);
                  (aVar4.mbcset)->nchar_classes = (type_3)var_85;
                  var_56 = rStack_208;
                  if (var_85 != (type_10 *)0x0) {
                    if ((var_85->field_0x34 & 1) == 0) {
                      *(type_10 **)(aVar4.idx + 0x30) = var_85;
                      *(type_10 **)(aVar4.idx + 0x2c) = var_85;
                      *(type_10 **)(aVar4.idx + 0x28) = var_85;
                    }
                    else {
                      aVar49.sbcset = (type_14)&var_84;
                      var_85 = var_18
                                          (&rStack_208,(type_7 *)aVar4.mbcset,
                                           (type_16 *)aVar49.mbcset,1);
                      *(type_10 **)(aVar4.idx + 0x28) = var_85;
                      var_85 = var_18
                                          (&rStack_208,(type_7 *)aVar4.mbcset,
                                           (type_16 *)aVar49.mbcset,2);
                      *(type_10 **)(aVar4.idx + 0x2c) = var_85;
                      aVar46 = aVar4;
                      var_85 = var_18
                                          (&rStack_208,(type_7 *)aVar4.mbcset,
                                           (type_16 *)aVar49.mbcset,6);
                      *(type_10 **)(aVar4.idx + 0x30) = var_85;
                      var_56 = rStack_208;
                      if (((*(type_10 **)(aVar4.idx + 0x28) == (type_10 *)0x0) ||
                          (*(type_10 **)(aVar4.idx + 0x2c) == (type_10 *)0x0)) ||
                         (var_85 == (type_10 *)0x0)) goto LAB_00056cb8;
                    }
                    (**(type_8 **)(var_50 + 0x23dc0))(var_84.elems);
                    var_56 = var_81;
                  }
                }
LAB_00056cb8:
                var_67 = var_56;
                var_86((type_2 *)preg_00.mbcset);
                var_49((type_31 *)&aStack_1f8);
                var_56 = var_67;
                if (var_67 != var_26) {
                  if (*(int *)(var_50 + 0x23c78) != 0) {
                    (**(type_8 **)(var_50 + 0x23df0))((type_37 *)(aVar4.idx + 0x88));
                  }
                  var_87((type_7 *)aVar4.mbcset);
                  *preg_00.sbcset = 0;
                  ((type_16 *)&(preg_00.mbcset)->range_starts)->alloc = 0;
                  var_56 = var_67;
                }
                goto LAB_00056cfc;
              }
            }
          }
        }
      }
      else {
        aVar49.sbcset = (type_14)0x0;
        if ((type_7 *)aVar45.sbcset != (type_7 *)0x0) {
          aVar56.mbcset =
               (type_28 *)var_68(prVar59,(type_29 *)0x0,(type_29 *)0x0,END_OF_RE);
          goto LAB_000564b0;
        }
LAB_000566f4:
        *(type_29 **)(aVar4.idx + 0x34) = (type_29 *)0x0;
        var_56 = var_67;
      }
LAB_00056168:
      var_67 = var_56;
      var_86((type_2 *)preg_00.mbcset);
      var_49((type_31 *)&aStack_1f8);
      if (*(int *)(var_50 + 0x23c78) != 0) {
        (**(type_8 **)(var_50 + 0x23df0))((type_37 *)(aVar4.idx + 0x88));
      }
      var_87((type_7 *)aVar4.mbcset);
      *preg_00.sbcset = 0;
      ((type_16 *)&(preg_00.mbcset)->range_starts)->alloc = 0;
      var_56 = var_67;
      goto LAB_00056cfc;
    }
    aVar46.sbcset = (type_14)0x0;
    var_8 = (**(type_8 **)(var_50 + 0x23d98))((type_37 *)(aVar4.idx + 0x88));
    if (var_8 != 0) goto LAB_00056e5c;
    if (var_67 == var_26) goto LAB_00056054;
  }
  else {
LAB_00056e5c:
    var_67 = var_20;
  }
  var_87((type_7 *)aVar4.mbcset);
  *preg_00.sbcset = 0;
  ((type_16 *)&(preg_00.mbcset)->range_starts)->alloc = 0;
  var_56 = var_67;
LAB_00056cfc:
  if (var_88 == (char *)**(int **)(var_50 + 0x23dac)) {
    return var_56;
  }
  var_89 = *(type_8 **)(var_50 + 0x23d6c);
  pattern = var_88;
  (*var_89)();
  var_90 = **(type_22 **)(var_89 + 0x22b18);
  *(type_5 *)&((type_16 *)&(aVar49.mbcset)->nequiv_classes)->alloc =
       *(type_5 *)&((type_16 *)&(aVar49.mbcset)->nequiv_classes)->alloc & 0xf6 |
       (type_5)(((var_90 << 6) >> 0x1f) << 3) | 1;
  var_56 = var_91((type_2 *)aVar49.mbcset,pattern,aVar46.ctx_type,var_90);
  if (var_56 == var_26) {
    var_56 = var_26;
  }
  else {
    var_56 = (**(type_8 **)(var_89 + 0x22d48))
                       (0,*(int *)(var_89 + 0x22728) + 0x6f48 +
                          *(int *)(var_56 * 4 + *(int *)(var_89 + 0x22728) + 0x6f04),5);
  }
  return var_56;
code_r0x00055b38:
  if (aVar41.idx < var_14) goto LAB_000557a8;
  goto LAB_00055b44;
LAB_000557a8:
  local_150.idx = 1;
  goto LAB_000557e4;
LAB_00055914:
  local_150.idx = 0xc;
  aVar46 = aVar15;
  goto LAB_000557e4;
}


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

/* WARNING: Type propagation algorithm not settling */

code *******
MASKED(code *******param_1,code ******param_2,code *******param_3,code *******param_4,
            code *******param_5,code *******param_6,code ******param_7,code *******param_8,
            code *******param_9)

{
  bool bVar1;
  code *******pppppppcVar2;
  code *******pppppppcVar3;
  code *pcVar4;
  int *piVar5;
  code *******pppppppcVar6;
  uint uVar7;
  code *pcVar8;
  code *pcVar9;
  code *pcVar10;
  code *pcVar11;
  code *pcVar12;
  code *****pppppcVar13;
  code *******pppppppcVar14;
  code *******pppppppcVar15;
  uint uVar16;
  code cVar23;
  byte *pbVar17;
  int iVar18;
  uint uVar19;
  code ******ppppppcVar20;
  undefined1 *puVar21;
  int iVar22;
  code *******pppppppcVar24;
  code *******pppppppcVar25;
  code *******pppppppcVar26;
  uint uVar27;
  code *******pppppppcVar28;
  code *******pppppppcVar29;
  code *******pppppppcVar30;
  code *******pppppppcVar31;
  code ******ppppppcVar32;
  code *******pppppppcVar33;
  code *******pppppppcVar34;
  code ******ppppppcVar35;
  code *******pppppppcVar36;
  code *******unaff_s4;
  int iVar37;
  code *******unaff_s5;
  code *******pppppppcVar38;
  code *******unaff_s7;
  code ******ppppppcVar39;
  code ****ppppcVar40;
  undefined *puVar41;
  code *******unaff_s8;
  code *******pppppppcVar42;
  int iVar43;
  undefined8 uVar44;
  code *******pppppppcStack_218;
  code *******pppppppcStack_20c;
  code *******pppppppcStack_208;
  code ******ppppppcStack_204;
  int iStack_200;
  int *piStack_1fc;
  code *******pppppppcStack_1f8;
  code *******apppppppcStack_1f4 [6];
  int iStack_1dc;
  int iStack_1d8;
  int iStack_1d4;
  code *******pppppppcStack_1cc;
  code *******pppppppcStack_1c8;
  code *******pppppppcStack_1c4;
  code *******pppppppcStack_1c0;
  code ******ppppppcStack_1b8;
  undefined1 uStack_1b0;
  byte bStack_1af;
  byte bStack_1ae;
  char cStack_1ad;
  code ******ppppppcStack_1a8;
  int iStack_1a4;
  code *******pppppppcStack_1a0;
  code *******pppppppcStack_19c;
  code *******pppppppcStack_198;
  code *******pppppppcStack_194;
  code *******pppppppcStack_190;
  code *******pppppppcStack_18c;
  code *******pppppppcStack_188;
  code *******pppppppcStack_184;
  code *******pppppppcStack_180;
  code *pcStack_17c;
  uint local_168;
  code *******local_150;
  code *******local_148;
  code *******local_144;
  code *******local_138;
  int local_118;
  code *******local_dc;
  code *******local_d8;
  code *******local_d4;
  code *******local_d0;
  code *******local_cc;
  code *******local_c8;
  code *******local_c4;
  undefined4 local_c0;
  undefined4 local_bc;
  undefined4 local_b8;
  code ******local_b4;
  code ******local_b0;
  int *local_ac;
  int local_a8;
  int local_9c;
  code *******local_98;
  code *******local_94;
  uint local_90;
  code *******local_8c;
  code *******local_88;
  code *******local_84;
  code *******local_80;
  code *******local_7c;
  undefined4 local_78;
  code ******local_74;
  code *******local_70;
  byte local_6c;
  byte local_6b;
  byte local_6a;
  byte local_69;
  char local_68;
  byte local_67;
  byte local_66;
  code *******local_64;
  code *******local_60;
  code *******local_5c;
  code *******local_58;
  code *******local_54;
  code *******local_50;
  code *******local_4c;
  undefined4 local_48;
  code *******local_44;
  code *******local_40;
  int local_3c;
  code *******local_34;
  int local_30;
  code *******local_2c;
  
  local_2c = *(code ********)PTR___stack_chk_guard_00079c10;
  pppppppcVar38 = (code *******)*param_1;
  pppppppcVar29 = (code *******)0x0;
  pppppppcVar33 = param_4;
  (*(code *)PTR_memset_00079b00)(&local_b4,0,0x88);
  local_148 = (code *******)param_1[4];
  if (local_148 != (code *******)0x0) {
    if (((byte)*(code *)(param_1 + 7) & 0x10) == 0) {
      local_148 = (code *******)0x0;
    }
    else if (param_4 == param_5) {
      local_148 = (code *******)0x0;
    }
    else if ((char)*(code *)(param_1 + 7) < '\0') {
      local_148 = (code *******)0x0;
    }
  }
  if (param_1[6] < param_7) {
    local_118 = (int)param_7 + (-1 - (int)param_1[6]);
  }
  else {
    local_118 = 0;
  }
  pppppppcStack_1a0 = param_4;
  pppppppcStack_19c = param_1;
  local_60 = pppppppcVar38;
  if (param_1[2] == (code ******)0x0) {
    local_150 = (code *******)0x1;
  }
  else if (pppppppcVar38[9] == (code ******)0x0) {
    local_150 = (code *******)0x1;
  }
  else if (pppppppcVar38[10] == (code ******)0x0) {
    local_150 = (code *******)0x1;
  }
  else if (pppppppcVar38[0xb] == (code ******)0x0) {
    local_150 = (code *******)0x1;
  }
  else {
    pppppppcVar29 = (code *******)pppppppcVar38[0xc];
    if (pppppppcVar29 == (code *******)0x0) {
      local_150 = (code *******)0x1;
    }
    else {
      pppppppcVar3 = param_5;
      if ((((pppppppcVar38[9][2] == (code *****)0x0) && (pppppppcVar38[10][2] == (code *****)0x0))
          && ((pppppppcVar38[0xb][2] == (code *****)0x0 || (((uint)param_1[7] & 0x1000000) == 0))))
         && ((pppppppcVar3 = param_4, param_4 != (code *******)0x0 &&
             (param_4 = param_5, pppppppcVar3 = param_5, param_5 != (code *******)0x0)))) {
        local_150 = (code *******)0x1;
        pppppppcStack_1a0 = param_5;
      }
      else {
        param_5 = pppppppcVar3;
        pppppppcVar3 = (code *******)((int)param_7 - local_118);
        if (pppppppcVar3 == (code *******)0x0) {
          pppppppcVar34 = (code *******)(uint)(pppppppcVar38[0x13] != (code ******)0x0);
        }
        else {
          pppppppcVar34 = (code *******)0x1;
        }
        ppppppcVar32 = param_1[5];
        local_6c = (byte)((uint)((int)param_1[3] << 9) >> 0x1f);
        local_64 = (code *******)pppppppcVar38[0x17];
        pppppppcVar31 = (code *******)((int)pppppppcVar38[2] + 1);
        if ((int)pppppppcVar38[2] + 1 < (int)local_64) {
          pppppppcVar31 = local_64;
        }
        pppppppcVar30 = (code *******)(uint)((int)param_3 + 1 < (int)pppppppcVar31);
        pppppppcVar33 = (code *******)0x1;
        local_69 = local_6c;
        if (ppppppcVar32 != (code ******)0x0) {
          local_69 = 1;
        }
        local_6b = (byte)((uint)((int)pppppppcVar38[0x16] << 2) >> 0x1f);
        local_6a = (byte)((uint)((int)pppppppcVar38[0x16] << 3) >> 0x1f);
        pppppppcVar29 = (code *******)((int)param_3 + 1);
        if (pppppppcVar30 == (code *******)0x0) {
          pppppppcVar29 = pppppppcVar31;
        }
        local_b4 = param_2;
        local_88 = param_3;
        local_84 = param_3;
        local_80 = param_3;
        local_7c = param_3;
        local_74 = ppppppcVar32;
        local_150 = (code *******)FUN_00046d2c(&local_b4);
        pppppppcVar31 = pppppppcVar34;
        param_6 = param_6;
        if (local_150 != (code *******)0x0) goto LAB_000557e4;
        local_70 = pppppppcVar38 + 0x18;
        local_66 = (byte)((uint)((int)pppppppcVar38[0x16] << 4) >> 0x1f);
        pppppppcVar2 = (code *******)0x0;
        local_98 = pppppppcVar2;
        if ((local_69 == 0) && (local_b0 = param_2, (int)pppppppcVar38[0x17] < 2)) {
          local_98 = param_3;
        }
        local_7c = param_6;
        local_80 = param_6;
        local_67 = (byte)((uint)((int)param_1[7] << 7) >> 0x1f);
        ppppppcVar35 = pppppppcVar38[0x13];
        pppppppcVar36 = (code *******)((int)ppppppcVar35 * 2);
        local_5c = param_9;
        local_58 = (code *******)0xffffffff;
        local_94 = local_98;
        if ((int)pppppppcVar36 < 1) {
LAB_000559f0:
          local_3c = 1;
          local_44 = pppppppcVar36;
          local_34 = pppppppcVar36;
          if ((pppppppcVar3 < (code *******)0x2) && (((uint)pppppppcVar38[0x16] & 0x40000000) == 0))
          {
            local_50 = (code *******)0x0;
LAB_00055a40:
            local_78 = 6;
            if (((uint)param_9 & 1) != 0) {
              local_78 = 4;
            }
            pppppppcVar24 = (code *******)0x1;
            pppppppcVar25 = param_4;
            if ((int)param_5 < (int)param_4) {
              pppppppcVar24 = (code *******)0xffffffff;
              pppppppcVar25 = param_5;
            }
            pppppppcVar26 = param_5;
            if ((int)param_5 <= (int)param_4) {
              pppppppcVar26 = param_4;
            }
            ppppppcVar35 = pppppppcVar38[0x17];
            uVar16 = 8;
            if (local_148 != (code *******)0x0) {
              if (ppppppcVar35 == (code ******)0x1) {
                pppppppcVar28 = (code *******)0x4;
              }
              else {
                pppppppcVar28 = pppppppcVar2;
                if ((-1 < (int)param_1[3] << 9) && (ppppppcVar32 == (code ******)0x0)) {
                  pppppppcVar28 = (code *******)0x4;
                }
              }
              pppppppcVar29 = (code *******)0x0;
              if ((int)param_4 <= (int)param_5) {
                pppppppcVar29 = (code *******)0x2;
              }
              uVar16 = (uint)(ppppppcVar32 != (code ******)0x0) | (uint)pppppppcVar28 |
                       (uint)pppppppcVar29;
            }
            local_dc = param_4;
            if ((int)param_4 < (int)pppppppcVar25) {
              local_150 = (code *******)0x1;
              param_6 = pppppppcVar36;
            }
            else if ((int)pppppppcVar26 < (int)param_4) {
              local_150 = (code *******)0x1;
              param_4 = (code *******)(uint)((int)param_5 < (int)param_4);
              param_6 = pppppppcVar36;
            }
            else {
              pppppppcVar36 = (code *******)&local_dc;
              if ((code *******)(uint)((int)param_5 < (int)param_4) != (code *******)0x0) {
                pppppppcVar36 = (code *******)0x0;
              }
              pcVar4 = (code *)(PTR_DAT_000799a4 + -0x2b7c);
              piVar5 = (int *)(PTR_s_nt0_000795b8 + (uVar16 - 4) * 4 + 0x6e38);
LAB_00055b44:
              if (uVar16 - 4 < 5) {
                    /* WARNING: Could not emulate address calculation at 0x00054920 */
                    /* WARNING: Treating indirect jump as call */
                pppppppcVar29 = (code *******)(*(code *)(&_gp_1 + *piVar5))();
                return pppppppcVar29;
              }
              param_5 = &local_b4;
              pppppppcVar28 = pppppppcVar33;
              while( true ) {
                param_4 = local_dc;
                pppppppcVar33 = (code *******)((int)local_dc - local_9c);
                pppppppcVar30 = param_9;
                pppppppcVar31 = pppppppcVar2;
                param_6 = local_148;
                unaff_s4 = param_3;
                unaff_s5 = pppppppcVar24;
                unaff_s7 = pppppppcVar26;
                if (local_94 <= pppppppcVar33) {
                  pppppppcVar29 = local_dc;
                  local_150 = (code *******)(*pcVar4)(param_5);
                  pppppppcVar33 = pppppppcVar28;
                  if (local_150 != (code *******)0x0) goto LAB_000557e4;
                  pppppppcVar33 = (code *******)((int)param_4 - local_9c);
                }
                if ((int)param_4 < (int)param_3) {
                  uVar7 = (uint)(byte)*(code *)((int)pppppppcVar33 + (int)local_b0);
                }
                else {
                  uVar7 = 0;
                }
                param_4 = (code *******)((int)param_4 + (int)pppppppcVar24);
                if (*(code *)((int)local_148 + uVar7) != (code)0x0) break;
                pppppppcVar33 = pppppppcVar28;
                local_dc = param_4;
                if ((int)param_4 < (int)pppppppcVar25) {
                  local_150 = (code *******)0x1;
                  goto LAB_000557e4;
                }
                if ((code *******)(uint)((int)pppppppcVar26 < (int)param_4) != (code *******)0x0) {
                  local_150 = (code *******)0x1;
                  param_4 = (code *******)(uint)((int)pppppppcVar26 < (int)param_4);
                  goto LAB_000557e4;
                }
              }
              while( true ) {
                pppppppcVar29 = local_dc;
                pppppppcVar30 = param_9;
                pppppppcVar6 = (code *******)(*pcVar4)(&local_b4);
                pppppppcVar14 = local_60;
                pppppppcVar42 = local_8c;
                pppppppcVar33 = pppppppcVar28;
                local_150 = pppppppcVar6;
                if (pppppppcVar6 != (code *******)0x0) goto LAB_000557e4;
                if (((ppppppcVar35 != (code ******)0x1) && (local_98 != (code *******)0x0)) &&
                   (*local_ac == -1)) goto LAB_00055b1c;
                local_3c = 0;
                local_48 = 0;
                local_4c = (code *******)0x0;
                local_138 = local_8c;
                local_d8 = (code *******)0x0;
                unaff_s7 = (code *******)local_60[9];
                pppppppcVar30 = local_5c;
                param_4 = pppppppcVar14;
                if (((uint)unaff_s7[0xd] & 0x1000000) == 0) break;
                pppppppcVar29 = (code *******)((int)local_8c + -1);
                pppppppcVar33 = (code *******)FUN_00049110(&local_b4);
                if (((uint)pppppppcVar33 & 1) == 0) {
                  if (pppppppcVar33 == (code *******)0x0) break;
                  if (((uint)pppppppcVar33 & 6) == 6) {
                    unaff_s7 = (code *******)pppppppcVar14[0xc];
                    goto LAB_00054d1c;
                  }
                  if (((uint)pppppppcVar33 & 2) != 0) {
                    unaff_s7 = (code *******)pppppppcVar14[0xb];
                    goto LAB_00054d1c;
                  }
                  pppppppcVar28 = pppppppcVar33;
                  if (((uint)pppppppcVar33 & 4) == 0) break;
                  pppppppcVar30 = (code *******)unaff_s7[10];
                  pppppppcVar29 = pppppppcVar14;
                  unaff_s7 = (code *******)FUN_0004ae34(&local_d8);
                  pppppppcVar28 = pppppppcVar33;
                  if (unaff_s7 != (code *******)0x0) break;
                  if (local_d8 == (code *******)0xc) goto LAB_00055914;
                }
                else {
                  unaff_s7 = (code *******)pppppppcVar14[10];
LAB_00054d1c:
                  pppppppcVar28 = (code *******)PTR_s_nt0_000795b8;
                  if (unaff_s7 != (code *******)0x0) break;
                }
                pppppppcVar28 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);
                pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);
                local_dc = (code *******)
                           (*(code *)PTR___assert_fail_000799f8)
                                     (PTR_s_nt0_000795b8 + 0x71a0,pppppppcVar29,0x435);
                if (local_dc == pppppppcVar26) {
                  if ((int)local_dc < (int)param_3) {
                    uVar7 = (uint)(byte)*(code *)((int)local_dc + (int)param_2);
                  }
                  else {
                    uVar7 = 0;
                  }
                  if (ppppppcVar32 != (code ******)0x0) {
                    uVar7 = (uint)*(byte *)((int)ppppppcVar32 + uVar7);
                  }
                  if (*(code *)((int)local_148 + uVar7) == (code)0x0) {
                    local_150 = (code *******)0x1;
                    pppppppcVar30 = param_9;
                    pppppppcVar33 = pppppppcVar28;
                    goto LAB_000557e4;
                  }
                }
              }
              pppppppcVar33 = pppppppcVar28;
              bVar1 = pppppppcVar36 != (code *******)0x0;
              if ((local_50 == (code *******)0x0) ||
                 (local_50[(int)pppppppcVar42] = (code ******)unaff_s7,
                 pppppppcVar14[0x13] == (code ******)0x0)) {
LAB_00054d50:
                if ((int)unaff_s7[0xd] << 4 < 0) {
                  if ((((uint)unaff_s7[0xd] & 0x1000000) == 0) ||
                     (pppppppcVar29 = unaff_s7, pppppppcVar30 = pppppppcVar42,
                     iVar18 = FUN_00049440(&local_b4), iVar18 != 0)) {
                    unaff_s8 = pppppppcVar42;
                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;
                    pppppppcVar28 = (code *******)0x1;
                  }
                  else {
                    pppppppcVar42 = (code *******)0xffffffff;
                    pppppppcVar28 = (code *******)0x0;
                  }
                }
                else {
                  pppppppcVar42 = (code *******)0xffffffff;
                  pppppppcVar28 = (code *******)0x0;
                }
                pcVar8 = (code *)(PTR_DAT_000799a4 + -0x7144);
                pcVar9 = (code *)(PTR_DAT_000799a4 + -0x1980);
                pcVar10 = (code *)(PTR_DAT_000799a4 + -0x2f9c);
                unaff_s8 = pppppppcVar42;
                local_144 = pppppppcVar36;
                while( true ) {
                  uVar44 = CONCAT44(local_98,local_84);
                  unaff_s5 = (code *******)((int)local_8c + 1);
                  pppppppcVar29 = local_8c;
                  if ((int)local_7c <= (int)local_8c) break;
                  if (((int)local_90 <= (int)unaff_s5) && ((int)local_90 < (int)local_84))
                  goto LAB_00054e94;
                  if ((int)local_98 <= (int)unaff_s5) {
                    while ((int)((ulonglong)uVar44 >> 0x20) < (int)uVar44) {
LAB_00054e94:
                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 2);
                      local_d8 = (code *******)(*pcVar8)(&local_b4);
                      if (local_d8 == (code *******)0x0) break;
                      pppppppcVar14 = param_4;
                      if (local_d8 == (code *******)0xc) goto LAB_00055914;
                      pppppppcVar33 = (code *******)(PTR_s_nt0_000795b8 + 0x6eb0);
                      pppppppcVar30 = (code *******)0x46c;
                      pppppppcVar29 = (code *******)(PTR_s_nt0_000795b8 + 0x712c);
                      uVar44 = (*(code *)PTR___assert_fail_000799f8)(PTR_s_nt0_000795b8 + 0x71a0);
                      pppppppcVar28 = pppppppcVar38;
                    }
                  }
                  pppppppcVar42 = local_60;
                  if ((int)unaff_s7[0xd] << 5 < 0) {
                    pppppppcVar31 = pppppppcVar42;
                    if (0 < (int)unaff_s7[2]) {
                      pcVar11 = (code *)(PTR_DAT_000799a4 + -0x6fdc);
                      pcVar12 = (code *)(PTR_DAT_000799a4 + -0x6ef0);
                      param_6 = (code *******)0x0;
                      do {
                        param_5 = (code *******)unaff_s7[3][(int)param_6];
                        ppppppcVar39 = *pppppppcVar42;
                        pppppcVar13 = ppppppcVar39[(int)param_5 * 2 + 1];
                        if (((uint)pppppcVar13 & 0x800) != 0) {
                          if (((uint)pppppcVar13 & 0xffc000) != 0) {
                            pppppppcVar29 = local_8c;
                            uVar19 = (*pcVar12)(&local_b4,local_8c,local_5c);
                            uVar7 = (uint)((int)ppppppcVar39[(int)param_5 * 2 + 1] << 8) >> 0x16;
                            if ((uVar7 & 4) == 0) {
                              uVar27 = uVar19 & 1;
                              if ((uVar7 & 8) != 0) goto joined_r0x00054f40;
                            }
                            else {
                              uVar27 = uVar7 & 8;
                              if ((uVar19 & 1) == 0) goto LAB_000550a4;
joined_r0x00054f40:
                              if (uVar27 != 0) goto LAB_000550a4;
                            }
                            if ((((uVar7 & 0x20) != 0) && ((uVar19 & 2) == 0)) ||
                               (((uVar7 & 0x80) != 0 &&
                                (pppppppcVar33 = local_8c, (uVar19 & 8) == 0)))) goto LAB_000550a4;
                          }
                          pppppppcVar30 = &local_b4;
                          pppppppcVar29 = param_5;
                          pppppppcVar33 = local_8c;
                          iVar18 = (*pcVar10)(pppppppcVar42);
                          if (iVar18 != 0) {
                            pppppppcVar14 = (code *******)((int)local_8c + iVar18);
                            if (iVar18 <= local_3c) {
                              iVar18 = local_3c;
                            }
                            pppppppcVar29 = pppppppcVar14;
                            local_3c = iVar18;
                            local_d4 = (code *******)(*pcVar11)(&local_b4);
                            pppppppcVar15 = local_d4;
                            if (local_d4 != (code *******)0x0) goto LAB_00055e44;
                            pppppppcVar30 =
                                 (code *******)
                                 (pppppppcVar42[6] + (int)pppppppcVar42[3][(int)param_5] * 3);
                            unaff_s4 = (code *******)((int)pppppppcVar14 * 4);
                            param_5 = local_50 + (int)pppppppcVar14;
                            if (*param_5 == (code ******)0x0) {
                              local_d0 = (code *******)*pppppppcVar30;
                              local_cc = (code *******)pppppppcVar30[1];
                              local_c8 = (code *******)pppppppcVar30[2];
                              pppppppcVar33 =
                                   (code *******)
                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);
                              pppppppcVar30 = (code *******)&local_d0;
                              pppppppcVar29 = pppppppcVar42;
                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);
                              *param_5 = ppppppcVar39;
                            }
                            else {
                              pppppppcVar29 = (code *******)(*param_5)[10];
                              local_d4 = (code *******)FUN_000484bc(&local_d0);
                              pppppppcVar15 = local_d4;
                              if (local_d4 != (code *******)0x0) goto LAB_00055e44;
                              pppppppcVar33 =
                                   (code *******)
                                   (*pcVar12)(&local_b4,(code *)((int)pppppppcVar14 + -1),local_5c);
                              pppppppcVar15 = local_50 + (int)pppppppcVar14;
                              pppppppcVar30 = (code *******)&local_d0;
                              pppppppcVar29 = pppppppcVar42;
                              ppppppcVar39 = (code ******)FUN_0004ae34(&local_d4);
                              *pppppppcVar15 = ppppppcVar39;
                              (*(code *)PTR_free_00079c24)(local_c8);
                            }
                            unaff_s4 = local_50 + (int)pppppppcVar14;
                            if ((*unaff_s4 == (code ******)0x0) &&
                               (pppppppcVar15 = local_d4, local_d4 != (code *******)0x0))
                            goto LAB_00055e44;
                          }
                        }
LAB_000550a4:
                        param_6 = (code *******)((int)param_6 + 1);
                      } while ((int)param_6 < (int)unaff_s7[2]);
                    }
                    local_d8 = (code *******)0x0;
                  }
                  uVar7 = (uint)(byte)*(code *)((int)local_8c + (int)local_b0);
                  local_8c = (code *******)((int)local_8c + 1);
                  do {
                    if (unaff_s7[0xb] != (code ******)0x0) {
                      pppppppcVar30 = (code *******)unaff_s7[0xb][uVar7];
LAB_000553a0:
                      pppppppcVar14 = pppppppcVar30;
                      if (local_50 != (code *******)0x0) goto LAB_000553ac;
                      goto LAB_000553cc;
                    }
                    pppppppcVar31 = (code *******)unaff_s7[0xc];
                    if (pppppppcVar31 != (code *******)0x0) {
                      pppppppcVar29 = (code *******)((int)local_8c + -1);
                      uVar19 = FUN_00049110(&local_b4);
                      if ((uVar19 & 1) == 0) {
                        pppppppcVar30 = (code *******)pppppppcVar31[uVar7];
                      }
                      else {
                        pppppppcVar31 = pppppppcVar31 + uVar7 + 0x100;
                        pppppppcVar30 = (code *******)*pppppppcVar31;
                      }
                      goto LAB_000553a0;
                    }
                    pppppppcVar29 = unaff_s7;
                    pppppppcVar30 = local_5c;
                    iVar18 = (*pcVar9)(local_60);
                  } while (iVar18 != 0);
                  local_d8 = (code *******)0xc;
                  pppppppcVar15 = local_d8;
LAB_00055e44:
                  local_d8 = pppppppcVar15;
                  param_4 = (code *******)0x0;
                  if (local_50 == (code *******)0x0) {
                    pppppppcVar14 = param_4;
                    if (local_d8 != (code *******)0x0) goto LAB_00055914;
                    break;
                  }
                  pppppppcVar30 = (code *******)0x0;
LAB_000553ac:
                  pppppppcVar29 = &local_b4;
                  pppppppcVar14 = (code *******)FUN_00053684(&local_d8);
LAB_000553cc:
                  param_4 = pppppppcVar14;
                  if (pppppppcVar14 == (code *******)0x0) {
                    if (local_d8 != (code *******)0x0) goto LAB_00055914;
                    if ((local_50 == (code *******)0x0) ||
                       ((pppppppcVar28 != (code *******)0x0 && (pppppppcVar34 == (code *******)0x0))
                       )) break;
                    param_6 = &local_b4;
                    param_5 = (code *******)&local_d8;
                    pppppppcVar31 = (code *******)(PTR_DAT_000799a4 + 0x3684);
                    do {
                      pppppppcVar15 = local_50 + (int)local_8c;
                      pppppppcVar42 = local_8c;
                      do {
                        pppppppcVar42 = (code *******)((int)pppppppcVar42 + 1);
                        pppppppcVar29 = local_4c;
                        param_4 = pppppppcVar14;
                        if ((int)local_4c < (int)pppppppcVar42) goto LAB_00055da8;
                        local_8c = (code *******)((int)local_8c + 1);
                        pppppppcVar15 = pppppppcVar15 + 1;
                      } while (*pppppppcVar15 == (code ******)0x0);
                      pppppppcVar30 = (code *******)0x0;
                      pppppppcVar29 = param_6;
                      param_4 = (code *******)(*(code *)pppppppcVar31)(param_5);
                      if (local_d8 != (code *******)0x0) {
                        if (param_4 == (code *******)0x0) goto LAB_00055da8;
                        break;
                      }
                      pppppppcVar29 = local_4c;
                    } while (param_4 == (code *******)0x0);
                  }
                  pppppppcVar15 = (code *******)((uint)unaff_s7 ^ (uint)param_4);
                  pppppppcVar42 = unaff_s7;
                  pppppppcVar14 = local_138;
                  if ((bVar1) &&
                     (pppppppcVar42 = pppppppcVar15, pppppppcVar14 = unaff_s5,
                     pppppppcVar15 != (code *******)0x0)) {
                    bVar1 = false;
                    pppppppcVar14 = local_138;
                  }
                  local_138 = pppppppcVar14;
                  unaff_s7 = param_4;
                  if ((((uint)param_4[0xd] & 0x8000000) != 0) &&
                     ((((uint)param_4[0xd] & 0x1000000) == 0 ||
                      (pppppppcVar29 = param_4, pppppppcVar30 = local_8c,
                      iVar18 = FUN_00049440(&local_b4), iVar18 != 0)))) {
                    unaff_s7 = pppppppcVar42;
                    unaff_s8 = local_8c;
                    if (pppppppcVar34 == (code *******)0x0) goto LAB_00055dbc;
                    pppppppcVar28 = (code *******)0x1;
                    local_144 = (code *******)0x0;
                    unaff_s7 = param_4;
                  }
                }
LAB_00055da8:
                if (local_144 != (code *******)0x0) {
                  *local_144 = (code ******)((int)local_138 + (int)*local_144);
                }
              }
              else {
                param_4 = unaff_s7 + 1;
                pppppppcVar30 = (code *******)0x0;
                pppppppcVar29 = param_4;
                local_d8 = (code *******)FUN_00047a44(&local_b4);
                unaff_s8 = local_d8;
                if (local_d8 == (code *******)0x0) {
                  if (((uint)unaff_s7[0xd] & 0x2000000) == 0) {
                    pppppppcVar29 = param_4;
                    bVar1 = false;
                  }
                  else {
                    pppppppcVar29 = param_4;
                    local_d8 = (code *******)FUN_00052d84(&local_b4);
                    unaff_s8 = local_d8;
                    if (local_d8 != (code *******)0x0) goto LAB_00055dbc;
                    bVar1 = false;
                  }
                  goto LAB_00054d50;
                }
              }
LAB_00055dbc:
              if (unaff_s8 == (code *******)0xffffffff) {
LAB_00055b04:
                FUN_0004b7e8(&local_b4);
LAB_00055b1c:
                local_dc = (code *******)((int)pppppppcVar24 + (int)local_dc);
                if ((int)pppppppcVar25 <= (int)local_dc) goto code_r0x00055b38;
                local_150 = (code *******)0x1;
                goto LAB_000557e4;
              }
              if (unaff_s8 == (code *******)&SUB_fffffffe) {
                local_150 = (code *******)0xc;
                goto LAB_000557e4;
              }
              local_58 = unaff_s8;
              if (((uint)param_1[7] & 0x8000000) == 0) {
                if (pppppppcVar3 < (code *******)0x2) {
                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055c08;
                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];
                  pppppppcVar30 = unaff_s8;
                  local_54 = (code *******)FUN_00049440(&local_b4);
                }
                else {
                  pppppppcVar29 = (code *******)local_50[(int)unaff_s8];
                  pppppppcVar30 = unaff_s8;
                  local_54 = (code *******)FUN_00049440(&local_b4);
                }
                if (pppppppcVar3 < (code *******)0x2) {
LAB_00055c6c:
                  pppppppcVar28 = pppppppcVar33;
                  unaff_s4 = local_60;
                  if (pppppppcVar38[0x13] == (code ******)0x0) goto LAB_00055548;
                }
                else {
                  cVar23 = *(code *)(pppppppcVar38 + 0x16);
LAB_00055c20:
                  pppppppcVar28 = pppppppcVar33;
                  if (-1 < (char)cVar23) goto LAB_00055c6c;
                }
                pppppppcVar31 = local_54;
                pppppppcVar42 = local_60;
                unaff_s4 = pppppppcVar42;
                if (unaff_s8 < (code *******)0x3fffffff) {
                  param_4 = (code *******)((int)((int)unaff_s8 + 1) * 4);
                  unaff_s5 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);
                  if (unaff_s5 == (code *******)0x0) {
LAB_00055b9c:
                    (*(code *)PTR_free_00079c24)(unaff_s5);
                    local_150 = (code *******)0xc;
                    pppppppcVar33 = pppppppcVar28;
                  }
                  else {
                    pppppppcVar29 = (code *******)&local_d0;
                    if (pppppppcVar42[0x13] == (code ******)0x0) {
                      local_cc = (code *******)0x0;
                      local_c8 = pppppppcVar31;
                      local_c0 = 0;
                      local_bc = 0;
                      local_b8 = 0;
                      local_d0 = unaff_s5;
                      local_c4 = unaff_s8;
                      param_5 = (code *******)FUN_0005421c(&local_b4);
                      (*(code *)PTR_free_00079c24)(local_b8);
                      if (param_5 == (code *******)0x0) {
                        param_4 = (code *******)*unaff_s5;
                        if (param_4 == (code *******)0x0) {
LAB_00055b70:
                          (*(code *)PTR_free_00079c24)(unaff_s5);
                          (*(code *)PTR_free_00079c24)(param_4);
                          pppppppcVar33 = pppppppcVar28;
                          goto LAB_00055b04;
                        }
LAB_00055528:
                        (*(code *)PTR_free_00079c24)(local_50);
                        pppppppcVar33 = pppppppcVar28;
                        unaff_s4 = pppppppcVar42;
                        local_58 = unaff_s8;
                        local_54 = pppppppcVar31;
                        local_50 = unaff_s5;
                        goto LAB_00055548;
                      }
LAB_00055acc:
                      param_4 = (code *******)0x0;
                      pppppppcVar33 = pppppppcVar28;
                      unaff_s4 = pppppppcVar42;
                    }
                    else {
                      param_4 = (code *******)(*(code *)PTR_malloc_00079b54)(param_4);
                      if (param_4 == (code *******)0x0) goto LAB_00055b9c;
                      unaff_s7 = (code *******)&local_d0;
                      pcVar8 = (code *)(PTR_DAT_000799a4 + 0x421c);
                      pcVar9 = (code *)(PTR_DAT_000799a4 + -0x6bc0);
                      pppppppcVar33 = pppppppcVar28;
                      while( true ) {
                        pppppppcVar28 = (code *******)((int)unaff_s8 + 1);
                        param_6 = (code *******)((int)pppppppcVar28 * 4);
                        pppppppcVar30 = param_6;
                        (*(code *)PTR_memset_00079b00)(param_4,0);
                        local_c0 = 0;
                        local_bc = 0;
                        local_b8 = 0;
                        pppppppcVar29 = unaff_s7;
                        local_d0 = unaff_s5;
                        local_cc = param_4;
                        local_c8 = pppppppcVar31;
                        local_c4 = unaff_s8;
                        param_5 = (code *******)(*pcVar8)(&local_b4);
                        (*(code *)PTR_free_00079c24)(local_b8);
                        unaff_s4 = pppppppcVar28;
                        if (param_5 != (code *******)0x0) break;
                        if ((*unaff_s5 != (code ******)0x0) ||
                           (param_6 = param_6 + -1, *param_4 != (code ******)0x0)) {
                          pppppppcVar29 = unaff_s5;
                          pppppppcVar30 = param_4;
                          param_5 = (code *******)FUN_000520d0(pppppppcVar42);
                          (*(code *)PTR_free_00079c24)(param_4);
                          if (param_5 != (code *******)0x0) goto LAB_00055acc;
                          goto LAB_00055528;
                        }
                        param_6 = (code *******)((int)local_50 + (int)param_6);
                        do {
                          while( true ) {
                            unaff_s8 = (code *******)((int)unaff_s8 + -1);
                            if ((int)unaff_s8 < 0) goto LAB_00055b70;
                            pppppppcVar29 = (code *******)param_6[-1];
                            if (pppppppcVar29 != (code *******)0x0) break;
                            param_6 = param_6 + -1;
                          }
                          param_6 = param_6 + -1;
                        } while (((uint)pppppppcVar29[0xd] & 0x8000000) == 0);
                        pppppppcVar31 = (code *******)(*pcVar9)(&local_b4,pppppppcVar29,unaff_s8);
                        pppppppcVar33 = pppppppcVar28;
                      }
                    }
                    (*(code *)PTR_free_00079c24)(unaff_s5);
                    (*(code *)PTR_free_00079c24)(param_4);
                    local_150 = param_5;
                    if (param_5 == (code *******)0x1) goto LAB_00055b04;
                  }
                }
                else {
                  local_150 = (code *******)0xc;
                  pppppppcVar33 = pppppppcVar28;
                }
                goto LAB_000557e4;
              }
              if (pppppppcVar38[0x13] != (code ******)0x0) {
                pppppppcVar29 = (code *******)local_50[(int)unaff_s8];
                pppppppcVar30 = unaff_s8;
                local_54 = (code *******)FUN_00049440(&local_b4);
                goto LAB_00055c6c;
              }
LAB_00055c08:
              if ((((uint)param_1[7] & 0x8000000) == 0) && ((code *******)0x1 < pppppppcVar3)) {
                cVar23 = *(code *)(pppppppcVar38 + 0x16);
                goto LAB_00055c20;
              }
LAB_00055548:
              if (pppppppcVar3 == (code *******)0x0) goto LAB_000557e4;
              if (pppppppcVar3 < (code *******)0x2) {
                *param_8 = (code ******)0x0;
                param_8[1] = (code ******)local_58;
                goto LAB_000555ac;
              }
              pppppppcVar29 = param_8 + 2;
              do {
                pppppppcVar29[1] = (code ******)0xffffffff;
                *pppppppcVar29 = (code ******)0xffffffff;
                pppppppcVar29 = pppppppcVar29 + 2;
              } while (pppppppcVar29 != param_8 + (int)pppppppcVar3 * 2);
              *param_8 = (code ******)0x0;
              param_8[1] = (code ******)local_58;
              if (((uint)param_1[7] & 0x8000000) != 0) {
LAB_000555ac:
                pppppppcVar33 = param_8;
                do {
                  pppppppcVar29 = (code *******)*pppppppcVar33;
                  if (pppppppcVar29 != (code *******)0xffffffff) {
                    if (local_68 != '\0') {
                      pppppppcVar34 = local_94;
                      if (pppppppcVar29 != local_98) {
                        pppppppcVar34 = *(code ********)(local_a8 + (int)pppppppcVar29 * 4);
                      }
                      *pppppppcVar33 = (code ******)pppppppcVar34;
                      pppppppcVar29 = local_94;
                      if (local_98 != (code *******)pppppppcVar33[1]) {
                        pppppppcVar29 = *(code ********)(local_a8 + (int)pppppppcVar33[1] * 4);
                      }
                      pppppppcVar33[1] = (code ******)pppppppcVar29;
                    }
                    *pppppppcVar33 = (code ******)((int)local_dc + (int)*pppppppcVar33);
                    pppppppcVar29 = (code *******)((int)local_dc + (int)pppppppcVar33[1]);
                    pppppppcVar33[1] = (code ******)pppppppcVar29;
                  }
                  pppppppcVar33 = pppppppcVar33 + 2;
                } while (pppppppcVar33 != param_8 + (int)pppppppcVar3 * 2);
                if (0 < local_118) {
                  pppppppcVar33 = param_8 + (int)pppppppcVar3 * 2;
                  do {
                    *pppppppcVar33 = (code ******)0xffffffff;
                    pppppppcVar33[1] = (code ******)0xffffffff;
                    pppppppcVar33 = pppppppcVar33 + 2;
                  } while (pppppppcVar33 != param_8 + (int)param_7 * 2);
                }
                pppppppcVar30 = local_dc;
                pppppppcVar33 = param_8;
                local_150 = pppppppcVar6;
                if (pppppppcVar38[0x21] != (code ******)0x0) {
                  pppppppcVar30 = (code *******)((int)pppppppcVar3 + -1);
                  pppppppcVar34 = (code *******)0x0;
                  pppppppcVar3 = param_8;
                  while( true ) {
                    pppppppcVar29 = (code *******)((int)pppppppcVar34 * 4);
                    if (pppppppcVar30 == pppppppcVar34) break;
                    if (*(code ********)((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) !=
                        pppppppcVar34) {
                      pppppppcVar3[2] =
                           param_8[(int)((int)*(code ********)
                                               ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1)
                                   * 2];
                      pppppppcVar3[3] =
                           param_8[((int)*(code ******)
                                          ((int)pppppppcVar29 + (int)pppppppcVar38[0x21]) + 1) * 2 +
                                   1];
                    }
                    pppppppcVar34 = (code *******)((int)pppppppcVar34 + 1);
                    pppppppcVar3 = pppppppcVar3 + 2;
                  }
                }
                goto LAB_000557e4;
              }
              if ((char)*(code *)(pppppppcVar38 + 0x16) < '\0') {
                local_168 = (uint)(0 < (int)pppppppcVar38[0x13]);
              }
              else {
                local_168 = 0;
              }
              pppppppcVar29 = &local_b4;
              pppppppcVar30 = pppppppcVar3;
              pppppppcVar33 = param_8;
              local_150 = (code *******)FUN_0004f4a0(param_1);
              if (local_150 == (code *******)0x0) goto LAB_000555ac;
            }
          }
          else if (local_90 < 0x3fffffff) {
            local_50 = (code *******)(*(code *)PTR_malloc_00079b54)((local_90 + 1) * 4);
            if (local_50 != (code *******)0x0) goto LAB_00055a40;
            local_150 = (code *******)0xc;
            param_6 = pppppppcVar36;
          }
          else {
            local_150 = (code *******)0xc;
            param_6 = pppppppcVar36;
          }
        }
        else {
          unaff_s5 = (code *******)((int)ppppppcVar35 * 8);
          if (pppppppcVar36 < (code *******)0xccccccd) {
            unaff_s4 = (code *******)(*(code *)PTR_malloc_00079b54)((int)ppppppcVar35 * 0x28);
            local_40 = unaff_s4;
            local_30 = (*(code *)PTR_malloc_00079b54)(unaff_s5);
            if ((unaff_s4 != (code *******)0x0) && (local_30 != 0)) goto LAB_000559f0;
          }
          local_150 = (code *******)0xc;
          param_6 = pppppppcVar36;
        }
LAB_000557e4:
        (*(code *)PTR_free_00079c24)(local_50);
        param_1 = pppppppcVar30;
        if (pppppppcVar38[0x13] != (code ******)0x0) {
          FUN_0004b7e8(&local_b4);
          (*(code *)PTR_free_00079c24)(local_30);
          (*(code *)PTR_free_00079c24)(local_40);
          param_1 = pppppppcVar30;
        }
        FUN_0004b2bc(&local_b4);
        pppppppcStack_1a0 = param_4;
        pppppppcStack_19c = pppppppcVar31;
      }
    }
  }
  if (local_2c == *(code ********)PTR___stack_chk_guard_00079c10) {
    return local_150;
  }
  pcVar4 = FUN_00055e64;
  pppppppcVar3 = local_2c;
  puVar41 = PTR___stack_chk_fail_00079bd0;
  (*(code *)PTR___stack_chk_fail_00079bd0)();
  iStack_1a4 = **(int **)(puVar41 + 0x23dac);
  pppppppcStack_20c = (code *******)0x0;
  pppppppcVar3[3] = (code ******)pppppppcVar33;
  pppppppcVar3[2] = (code ******)0x0;
  pppppppcVar3[6] = (code ******)0x0;
  *(byte *)(pppppppcVar3 + 7) = (byte)*(code *)(pppppppcVar3 + 7) & 9;
  pppppppcVar34 = (code *******)*pppppppcVar3;
  pppppppcStack_198 = param_5;
  pppppppcStack_194 = param_6;
  pppppppcStack_190 = unaff_s4;
  pppppppcStack_18c = unaff_s5;
  pppppppcStack_188 = pppppppcVar38;
  pppppppcStack_184 = unaff_s7;
  pppppppcStack_180 = unaff_s8;
  pcStack_17c = pcVar4;
  if (pppppppcVar3[1] < (code ******)0xa0) {
    pppppppcVar38 = (code *******)0xa0;
    pppppppcVar31 = param_1;
    pppppppcVar34 = (code *******)(**(code **)(puVar41 + 0x23cf8))(pppppppcVar34,0xa0);
    if (pppppppcVar34 == (code *******)0x0) {
      pppppppcVar29 = (code *******)0xc;
      goto LAB_00056cfc;
    }
    pppppppcVar3[1] = (code ******)0xa0;
    *pppppppcVar3 = (code ******)pppppppcVar34;
  }
  pppppppcVar3[2] = (code ******)0xa0;
  pppppppcVar31 = (code *******)0xa0;
  pppppppcVar38 = (code *******)0x0;
  (**(code **)(puVar41 + 0x23c9c))(pppppppcVar34,0);
  pppppppcVar34[0x10] = (code ******)0x1f;
  if (param_1 < (code *******)0xaaaaaaa) {
    pppppppcVar34[1] = (code ******)((int)param_1 + 1);
    ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23cf0))(((int)param_1 + 1) * 8);
    *pppppppcVar34 = ppppppcVar32;
    if (param_1 == (code *******)0x0) {
      pppppppcVar30 = (code *******)0x1;
    }
    else {
      pppppppcVar30 = (code *******)0x1;
      do {
        pppppppcVar30 = (code *******)((int)pppppppcVar30 << 1);
      } while (pppppppcVar30 <= param_1);
    }
    pppppppcVar38 = pppppppcVar30;
    ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23b8c))(0xc,pppppppcVar30);
    pppppppcVar34[8] = ppppppcVar32;
    pppppppcVar34[0x11] = (code ******)((int)pppppppcVar30 + -1);
    ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23d2c))();
    pppppppcVar34[0x17] = ppppppcVar32;
    pbVar17 = (byte *)(**(code **)(puVar41 + 0x23c2c))(0xe);
    if ((((*pbVar17 & 0xdf) == 0x55) && ((pbVar17[1] & 0xdf) == 0x54)) &&
       (pppppppcVar38 = (code *******)0x4, (pbVar17[2] & 0xdf) == 0x46)) {
      iVar18 = 3;
      if (pbVar17[3] == 0x2d) {
        iVar18 = 4;
      }
      pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23754) + 0x71b4);
      iVar18 = (**(code **)(puVar41 + 0x23dfc))(pbVar17 + iVar18,pppppppcVar38);
      if (iVar18 == 0) {
        *(byte *)(pppppppcVar34 + 0x16) = (byte)*(code *)(pppppppcVar34 + 0x16) & 0xdf | 0x20;
      }
    }
    *(byte *)(pppppppcVar34 + 0x16) = (byte)*(code *)(pppppppcVar34 + 0x16) & 0xef;
    if (1 < (int)pppppppcVar34[0x17]) {
      if (((uint)pppppppcVar34[0x16] & 0x20000000) == 0) {
        pppppppcVar38 = (code *******)0x1;
        ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23b8c))(0x20,1);
        pppppppcVar34[0xf] = ppppppcVar32;
        if (ppppppcVar32 == (code ******)0x0) goto LAB_00056e5c;
        iVar18 = 0;
        do {
          uVar16 = iVar18 << 3;
          uVar7 = 0;
          do {
            uVar19 = (**(code **)(puVar41 + 0x23c88))(uVar16);
            if (uVar19 != 0xffffffff) {
              pppppppcVar38 = *(code ********)((int)pppppppcVar34[0xf] + iVar18);
              *(uint *)((int)pppppppcVar34[0xf] + iVar18) =
                   (uint)pppppppcVar38 | 1 << (uVar7 & 0x1f);
            }
            if (((uVar16 & 0xffffff80) == 0) && (uVar19 != uVar16)) {
              *(byte *)(pppppppcVar34 + 0x16) = (byte)*(code *)(pppppppcVar34 + 0x16) & 0xef | 0x10;
            }
            uVar7 = uVar7 + 1;
            uVar16 = uVar16 + 1;
          } while (uVar7 != 0x20);
          iVar18 = iVar18 + 4;
        } while (iVar18 != 0x20);
      }
      else {
        pppppppcVar34[0xf] = (code ******)(*(int *)(puVar41 + 0x23754) + 0x6ee4);
      }
    }
    if ((*pppppppcVar34 == (code ******)0x0) || (pppppppcVar34[8] == (code ******)0x0))
    goto LAB_00056e5c;
    pppppppcStack_20c = (code *******)0x0;
    if (*(int *)(puVar41 + 0x23c78) == 0) {
LAB_00056054:
      ppppppcVar32 = pppppppcVar3[5];
      uVar16 = (uint)pppppppcVar33 & 0x400000;
      bVar1 = uVar16 != 0;
      pppppppcVar31 = (code *******)0x4c;
      pppppppcVar38 = (code *******)0x0;
      (**(code **)(puVar41 + 0x23c9c))(apppppppcStack_1f4,0);
      cStack_1ad = ppppppcVar32 != (code ******)0x0 || bVar1;
      ppppppcStack_1a8 = pppppppcVar34[0x17];
      bStack_1af = (byte)((uint)((int)pppppppcVar34[0x16] << 2) >> 0x1f);
      bStack_1ae = (byte)((uint)((int)pppppppcVar34[0x16] << 3) >> 0x1f);
      pppppppcStack_1f8 = pppppppcVar29;
      pppppppcStack_1cc = param_1;
      pppppppcStack_1c8 = param_1;
      pppppppcStack_1c4 = param_1;
      pppppppcStack_1c0 = param_1;
      ppppppcStack_1b8 = ppppppcVar32;
      uStack_1b0 = bVar1;
      if (0 < (int)param_1) {
        pppppppcVar38 = (code *******)((int)param_1 + 1);
        pppppppcVar30 = (code *******)FUN_00046d2c(&pppppppcStack_1f8,pppppppcVar38);
        if (pppppppcVar30 == (code *******)0x0) goto LAB_000560cc;
        goto LAB_00056168;
      }
LAB_000560cc:
      if (cStack_1ad != '\0') {
        pppppppcVar29 = apppppppcStack_1f4[0];
      }
      apppppppcStack_1f4[0] = pppppppcVar29;
      if (uVar16 == 0) {
        if ((int)pppppppcVar34[0x17] < 2) {
          if (ppppppcVar32 != (code ******)0x0) {
            FUN_00045dc8();
          }
        }
        else {
          FUN_00047cb0(&pppppppcStack_1f8);
        }
      }
      else {
        if (1 < (int)pppppppcVar34[0x17]) {
          iVar18 = *(int *)(puVar41 + 0x23abc);
          do {
            pppppppcVar30 = (code *******)FUN_00048714(&pppppppcStack_1f8);
            if (pppppppcVar30 != (code *******)0x0) break;
            if (((int)param_1 <= iStack_1d8) ||
               (pppppppcVar38 = (code *******)(iStack_1d4 << 1),
               (int)pppppppcVar34[0x17] + iStack_1dc < iStack_1d4)) goto LAB_000563d0;
            pppppppcVar30 =
                 (code *******)(*(code *)(iVar18 + 0x6d2c))(&pppppppcStack_1f8,pppppppcVar38);
          } while (pppppppcVar30 == (code *******)0x0);
          goto LAB_00056168;
        }
        FUN_00047be4(&pppppppcStack_1f8);
      }
LAB_000563d0:
      pppppppcStack_20c = (code *******)0x0;
      pppppppcVar3[6] = (code ******)0x0;
      ppppppcVar32 = *pppppppcVar3;
      ppppppcVar32[0x20] = (code *****)pppppppcVar33;
      FUN_00049e40(&ppppppcStack_204,&pppppppcStack_1f8,(uint)pppppppcVar33 | 0x800000);
      pppppppcVar38 = pppppppcVar3;
      pppppppcVar29 =
           (code *******)
           FUN_00051868(&pppppppcStack_1f8,pppppppcVar3,&ppppppcStack_204,pppppppcVar33,0,
                        &pppppppcStack_20c);
      if (pppppppcStack_20c == (code *******)0x0) {
        pppppppcVar31 = (code *******)0x0;
        pppppppcVar38 = (code *******)0x0;
        pppppppcVar33 = (code *******)FUN_000470f0(ppppppcVar32,0,0,2);
        pppppppcVar30 = pppppppcVar33;
        if (pppppppcVar29 != (code *******)0x0) {
LAB_000564b0:
          pppppppcVar31 = pppppppcVar33;
          pppppppcVar30 = (code *******)FUN_000470f0(ppppppcVar32,pppppppcVar29,pppppppcVar33,0x10);
          pppppppcVar38 = pppppppcVar29;
        }
        if ((pppppppcVar33 == (code *******)0x0) ||
           (pcVar4 = *(code **)(puVar41 + 0x23cf0), pppppppcVar30 == (code *******)0x0)) {
          pppppppcStack_20c = (code *******)0xc;
          goto LAB_000566f4;
        }
        pppppppcVar34[0xd] = (code ******)pppppppcVar30;
        pppppppcVar29 = (code *******)*pppppppcVar3;
        ppppppcVar39 = pppppppcVar29[1];
        iVar18 = (int)ppppppcVar39 << 2;
        ppppppcVar32 = (code ******)(*pcVar4)(iVar18);
        pppppppcVar29[3] = ppppppcVar32;
        ppppppcVar35 = (code ******)(**(code **)(puVar41 + 0x23cf0))(iVar18);
        pppppppcVar29[4] = ppppppcVar35;
        iVar18 = (int)ppppppcVar39 * 0xc;
        ppppppcVar39 = (code ******)(**(code **)(puVar41 + 0x23cf0))(iVar18);
        pppppppcVar29[5] = ppppppcVar39;
        ppppppcVar20 = (code ******)(**(code **)(puVar41 + 0x23cf0))(iVar18);
        pppppppcVar29[6] = ppppppcVar20;
        if (ppppppcVar32 == (code ******)0x0) {
          pppppppcVar30 = (code *******)0xc;
        }
        else if (ppppppcVar35 == (code ******)0x0) {
          pppppppcVar30 = (code *******)0xc;
        }
        else if (ppppppcVar39 == (code ******)0x0) {
          pppppppcVar30 = (code *******)0xc;
        }
        else if (ppppppcVar20 == (code ******)0x0) {
          pppppppcVar30 = (code *******)0xc;
        }
        else {
          ppppppcVar32 = (code ******)(**(code **)(puVar41 + 0x23cf0))((int)pppppppcVar3[6] << 2);
          pppppppcVar29[0x21] = ppppppcVar32;
          if (ppppppcVar32 != (code ******)0x0) {
            ppppppcVar32 = (code ******)0x0;
            if (pppppppcVar3[6] != (code ******)0x0) {
              do {
                pppppppcVar29[0x21][(int)ppppppcVar32] = (code *****)ppppppcVar32;
                ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);
              } while (ppppppcVar32 < pppppppcVar3[6]);
            }
            FUN_00046050(pppppppcVar29[0xd],*(int *)(puVar41 + 0x23abc) + 0x60e8,pppppppcVar29);
            ppppppcVar32 = pppppppcVar3[6];
            if (ppppppcVar32 == (code ******)0x0) {
LAB_00056704:
              (**(code **)(puVar41 + 0x23dc0))(pppppppcVar29[0x21]);
              pppppppcVar29[0x21] = (code ******)0x0;
            }
            else {
              ppppppcVar35 = pppppppcVar29[0x21];
              if (*ppppppcVar35 == (code *****)0x0) {
                ppppppcVar39 = (code ******)0x0;
                do {
                  ppppppcVar35 = ppppppcVar35 + 1;
                  ppppppcVar39 = (code ******)((int)ppppppcVar39 + 1);
                  if (ppppppcVar32 == ppppppcVar39) {
                    if (ppppppcVar32 == ppppppcVar39) goto LAB_00056704;
                    break;
                  }
                } while ((code ******)*ppppppcVar35 == ppppppcVar39);
              }
            }
          }
          pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23abc) + 0x73a4);
          pppppppcVar30 = (code *******)FUN_00045fb4(pppppppcVar29[0xd],pppppppcVar38,pppppppcVar3);
          pppppppcVar31 = pppppppcVar29;
          if (pppppppcVar30 == (code *******)0x0) {
            pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23b40) + -0x5be4);
            pppppppcVar30 = (code *******)FUN_00045fb4(pppppppcVar29[0xd],pppppppcVar38);
            if (pppppppcVar30 == (code *******)0x0) {
              FUN_00046050(pppppppcVar29[0xd],*(int *)(puVar41 + 0x23abc) + 0x61b4);
              pppppppcVar38 = (code *******)(*(int *)(puVar41 + 0x23b40) + -0x4614);
              pppppppcVar30 = (code *******)FUN_00046050(pppppppcVar29[0xd],pppppppcVar38);
              if (pppppppcVar30 == (code *******)0x0) {
                uVar7 = 0;
                iVar18 = *(int *)(puVar41 + 0x23b40);
                pppppppcVar33 = (code *******)0x0;
LAB_00056744:
                if ((code *******)pppppppcVar29[2] != pppppppcVar33) {
LAB_00056750:
                  if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {
                    pppppppcVar38 = pppppppcVar29;
                    pppppppcVar31 = pppppppcVar33;
                    pppppppcVar30 =
                         (code *******)
                         (*(code *)(iVar18 + -0x561c))
                                   (&ppppppcStack_204,pppppppcVar29,pppppppcVar33,1);
                    if (pppppppcVar30 != (code *******)0x0) goto LAB_00056168;
                    if (pppppppcVar29[6][(int)pppppppcVar33 * 3 + 1] == (code *****)0x0) {
                      (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);
                      uVar7 = 1;
                    }
                  }
                  pppppppcVar33 = (code *******)((int)pppppppcVar33 + 1);
                  goto LAB_00056744;
                }
                if (uVar7 != 0) {
                  uVar7 = 0;
                  pppppppcVar33 = (code *******)0x0;
                  goto LAB_00056750;
                }
                if (((((uint)pppppppcVar3[7] & 0x8000000) == 0) &&
                    (pppppppcVar3[6] != (code ******)0x0)) &&
                   ((char)*(code *)(pppppppcVar29 + 0x16) < '\0')) {
                  ppppppcVar32 = pppppppcVar29[2];
                }
                else {
                  if (pppppppcVar29[0x13] == (code ******)0x0) goto LAB_000568f0;
                  ppppppcVar32 = pppppppcVar29[2];
                }
                ppppppcVar35 = (code ******)
                               (**(code **)(puVar41 + 0x23cf0))((int)ppppppcVar32 * 0xc);
                pppppppcVar29[7] = ppppppcVar35;
                if (ppppppcVar35 == (code ******)0x0) {
                  pppppppcVar30 = (code *******)0xc;
                  goto LAB_00056168;
                }
                if (ppppppcVar32 != (code ******)0x0) {
                  iVar18 = 0;
                  ppppppcVar32 = (code ******)0x0;
                  do {
                    puVar21 = (undefined1 *)((int)pppppppcVar29[7] + iVar18);
                    *puVar21 = 0;
                    puVar21[1] = 0;
                    puVar21[2] = 0;
                    puVar21[3] = 0;
                    puVar21[4] = 0;
                    puVar21[5] = 0;
                    puVar21[6] = 0;
                    puVar21[7] = 0;
                    puVar21[8] = 0;
                    puVar21[9] = 0;
                    puVar21[10] = 0;
                    puVar21[0xb] = 0;
                    ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);
                    iVar18 = iVar18 + 0xc;
                  } while (ppppppcVar32 < pppppppcVar29[2]);
                  iVar18 = *(int *)(puVar41 + 0x23abc);
                  if (pppppppcVar29[2] != (code ******)0x0) {
                    iVar43 = 0;
                    pppppppcStack_218 = (code *******)0x0;
                    do {
                      piVar5 = *(int **)((int)pppppppcVar29[6] + iVar43 + 8);
                      if (0 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4)) {
                        iVar37 = 0;
                        do {
                          pppppppcVar38 = pppppppcStack_218;
                          iVar22 = (*(code *)(iVar18 + 0x6e30))
                                             (pppppppcVar29[7] + *piVar5 * 3,pppppppcStack_218);
                          pppppppcVar30 = (code *******)0xc;
                          if (iVar22 == 0) goto LAB_00056168;
                          iVar37 = iVar37 + 1;
                          piVar5 = piVar5 + 1;
                        } while (iVar37 < *(int *)((int)pppppppcVar29[6] + iVar43 + 4));
                      }
                      pppppppcStack_218 = (code *******)((int)pppppppcStack_218 + 1);
                      iVar43 = iVar43 + 0xc;
                    } while (pppppppcStack_218 < pppppppcVar29[2]);
                  }
                }
LAB_000568f0:
                pppppppcStack_20c = (code *******)0x0;
                if (((((uint)pppppppcVar34[0x16] & 0x20000000) != 0) && (uVar16 == 0)) &&
                   (pppppppcVar3[5] == (code ******)0x0)) {
                  if (pppppppcVar34[2] != (code ******)0x0) {
                    pppppppcVar31 = (code *******)(*(int *)(puVar41 + 0x23754) + 0x6e4c);
                    if (*(byte *)(*pppppppcVar34 + 1) < 0xd) {
                    /* WARNING: Could not recover jumptable at 0x00056a60. Too many branches */
                    /* WARNING: Treating indirect jump as call */
                      pppppppcVar29 =
                           (code *******)
                           (*(code *)(puVar41 +
                                     (int)(pppppppcVar31[*(byte *)(*pppppppcVar34 + 1)] + 0xadc7)))
                                     ();
                      return pppppppcVar29;
                    }
                    (**(code **)(puVar41 + 0x23bc4))(0);
                    if (uVar7 != 0) {
                      pppppppcVar31 = (code *******)&DAT_00000007;
                      ppppppcVar32 = (code ******)0x0;
                      do {
                        ppppppcVar35 = *pppppppcVar34 + (int)ppppppcVar32 * 2;
                        if (*(char *)(ppppppcVar35 + 1) == '\x01') {
                          if (*(char *)ppppppcVar35 < '\0') {
                            ppppppcVar35[1] = (code *****)((uint)ppppppcVar35[1] & 0xfffffbff);
                          }
                        }
                        else if (*(char *)(ppppppcVar35 + 1) == '\x05') {
                          *(char *)(ppppppcVar35 + 1) = '\a';
                        }
                        ppppppcVar32 = (code ******)((int)ppppppcVar32 + 1);
                      } while (ppppppcVar32 < pppppppcVar34[2]);
                    }
                  }
                  pppppppcVar34[0x17] = (code ******)0x1;
                  if (0 < (int)pppppppcVar34[0x13]) {
                    uVar7 = 1;
                  }
                  *(byte *)(pppppppcVar34 + 0x16) =
                       (byte)*(code *)(pppppppcVar34 + 0x16) & 0x9f | (byte)((uVar7 & 1) << 6);
                }
                ppppppcVar32 = (code ******)pppppppcVar34[0xd][3][7];
                pppppppcVar34[0x12] = ppppppcVar32;
                pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppppcVar32 * 3);
                pppppppcVar33 = (code *******)FUN_000483e8(&ppppppcStack_204,pppppppcVar38);
                pppppppcVar29 = pppppppcVar33;
                pppppppcStack_208 = pppppppcVar33;
                if (pppppppcVar33 == (code *******)0x0) {
                  if ((0 < (int)pppppppcVar34[0x13]) && (0 < iStack_200)) {
                    iVar18 = *(int *)(puVar41 + 0x23abc);
                    iVar43 = *(int *)(puVar41 + 0x23abc);
                    pppppppcVar29 = (code *******)0x0;
                    do {
                      pppppppcVar31 =
                           (code *******)(*pppppppcVar34 + piStack_1fc[(int)pppppppcVar29] * 2);
                      if (*(code *)(pppppppcVar31 + 1) == (code)0x4) {
                        iVar37 = 0;
                        piVar5 = piStack_1fc;
                        if (iStack_200 < 1) {
LAB_00056b8c:
                          if (iStack_200 != iVar37) {
                            ppppcVar40 = *pppppppcVar34[5][piStack_1fc[(int)pppppppcVar29] * 3 + 2];
                            iVar37 = (*(code *)(iVar18 + 0x5ea8))(&ppppppcStack_204,ppppcVar40);
                            if (iVar37 == 0) {
                              pppppppcVar38 = (code *******)(pppppppcVar34[6] + (int)ppppcVar40 * 3)
                              ;
                              pppppppcVar29 =
                                   (code *******)
                                   (*(code *)(iVar43 + 0x7f1c))(&ppppppcStack_204,pppppppcVar38);
                              if (pppppppcVar29 != (code *******)0x0) goto LAB_00056cb8;
                            }
                          }
                        }
                        else {
                          do {
                            ppppppcVar32 = *pppppppcVar34 + *piVar5 * 2;
                            if ((*(char *)(ppppppcVar32 + 1) == '\t') &&
                               ((code ******)*ppppppcVar32 == *pppppppcVar31)) goto LAB_00056b8c;
                            iVar37 = iVar37 + 1;
                            piVar5 = piVar5 + 1;
                          } while (iStack_200 != iVar37);
                        }
                      }
                      pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1);
                    } while ((int)pppppppcVar29 < iStack_200);
                  }
                  pppppppcVar31 = &ppppppcStack_204;
                  pppppppcVar38 = pppppppcVar34;
                  ppppppcVar32 = (code ******)
                                 FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,0);
                  pppppppcVar34[9] = ppppppcVar32;
                  pppppppcVar29 = pppppppcStack_208;
                  if (ppppppcVar32 != (code ******)0x0) {
                    if (((uint)ppppppcVar32[0xd] & 0x1000000) == 0) {
                      pppppppcVar34[0xc] = ppppppcVar32;
                      pppppppcVar34[0xb] = ppppppcVar32;
                      pppppppcVar34[10] = ppppppcVar32;
                    }
                    else {
                      pppppppcVar31 = &ppppppcStack_204;
                      ppppppcVar32 = (code ******)
                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,1);
                      pppppppcVar34[10] = ppppppcVar32;
                      ppppppcVar32 = (code ******)
                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,2);
                      pppppppcVar34[0xb] = ppppppcVar32;
                      pppppppcVar38 = pppppppcVar34;
                      ppppppcVar32 = (code ******)
                                     FUN_0004ae34(&pppppppcStack_208,pppppppcVar34,pppppppcVar31,6);
                      pppppppcVar34[0xc] = ppppppcVar32;
                      pppppppcVar29 = pppppppcStack_208;
                      if (((pppppppcVar34[10] == (code ******)0x0) ||
                          (pppppppcVar34[0xb] == (code ******)0x0)) ||
                         (ppppppcVar32 == (code ******)0x0)) goto LAB_00056cb8;
                    }
                    (**(code **)(puVar41 + 0x23dc0))(piStack_1fc);
                    pppppppcVar29 = pppppppcVar33;
                  }
                }
LAB_00056cb8:
                pppppppcStack_20c = pppppppcVar29;
                FUN_0004b234(pppppppcVar3);
                FUN_0004b2bc(&pppppppcStack_1f8);
                pppppppcVar29 = pppppppcStack_20c;
                if (pppppppcStack_20c != (code *******)0x0) {
                  if (*(int *)(puVar41 + 0x23c78) != 0) {
                    (**(code **)(puVar41 + 0x23df0))(pppppppcVar34 + 0x22);
                  }
                  FUN_0004b338(pppppppcVar34);
                  *pppppppcVar3 = (code ******)0x0;
                  pppppppcVar3[1] = (code ******)0x0;
                  pppppppcVar29 = pppppppcStack_20c;
                }
                goto LAB_00056cfc;
              }
            }
          }
        }
      }
      else {
        pppppppcVar31 = (code *******)0x0;
        if (pppppppcVar29 != (code *******)0x0) {
          pppppppcVar33 = (code *******)FUN_000470f0(ppppppcVar32,0,0,2);
          goto LAB_000564b0;
        }
LAB_000566f4:
        pppppppcVar34[0xd] = (code ******)0x0;
        pppppppcVar30 = pppppppcStack_20c;
      }
LAB_00056168:
      pppppppcStack_20c = pppppppcVar30;
      FUN_0004b234(pppppppcVar3);
      FUN_0004b2bc(&pppppppcStack_1f8);
      if (*(int *)(puVar41 + 0x23c78) != 0) {
        (**(code **)(puVar41 + 0x23df0))(pppppppcVar34 + 0x22);
      }
      FUN_0004b338(pppppppcVar34);
      *pppppppcVar3 = (code ******)0x0;
      pppppppcVar3[1] = (code ******)0x0;
      pppppppcVar29 = pppppppcStack_20c;
      goto LAB_00056cfc;
    }
    pppppppcVar38 = (code *******)0x0;
    iVar18 = (**(code **)(puVar41 + 0x23d98))(pppppppcVar34 + 0x22,0);
    if (iVar18 != 0) goto LAB_00056e5c;
    if (pppppppcStack_20c == (code *******)0x0) goto LAB_00056054;
  }
  else {
LAB_00056e5c:
    pppppppcStack_20c = (code *******)0xc;
  }
  FUN_0004b338(pppppppcVar34);
  *pppppppcVar3 = (code ******)0x0;
  pppppppcVar3[1] = (code ******)0x0;
  pppppppcVar29 = pppppppcStack_20c;
LAB_00056cfc:
  if (iStack_1a4 == **(int **)(puVar41 + 0x23dac)) {
    return pppppppcVar29;
  }
  pcVar4 = *(code **)(puVar41 + 0x23d6c);
  iVar18 = iStack_1a4;
  (*pcVar4)();
  *(byte *)(pppppppcVar31 + 7) =
       (byte)*(code *)(pppppppcVar31 + 7) & 0xf6 |
       (byte)(((uint)(**(int **)(pcVar4 + 0x22b18) << 6) >> 0x1f) << 3) | 1;
  iVar18 = FUN_00055e64(pppppppcVar31,iVar18,pppppppcVar38);
  if (iVar18 == 0) {
    pppppppcVar29 = (code *******)0x0;
  }
  else {
    pppppppcVar29 =
         (code *******)
         (**(code **)(pcVar4 + 0x22d48))
                   (0,*(int *)(pcVar4 + 0x22728) + 0x6f48 +
                      *(int *)(iVar18 * 4 + *(int *)(pcVar4 + 0x22728) + 0x6f04),5);
  }
  return pppppppcVar29;
code_r0x00055b38:
  if ((int)pppppppcVar26 < (int)local_dc) goto LAB_000557a8;
  goto LAB_00055b44;
LAB_000557a8:
  local_150 = (code *******)0x1;
  goto LAB_000557e4;
LAB_00055914:
  local_150 = (code *******)0xc;
  param_4 = pppppppcVar14;
  goto LAB_000557e4;
}

